diff --git a/common/locales/en.js b/common/locales/en.js
index f9d3fe6..e86ab63 100644
--- a/common/locales/en.js
+++ b/common/locales/en.js
@@ -193,5 +193,7 @@ export default {
Nodata:'No data available at the moment!',
versionmsg:'It is already the latest version!',
receiveOrder:'Collect Order',
- loading:'loading'
+ loading:'loading',
+ downmp:'Download business card',
+ downmpmsg:'Are you sure to download the current business card image?',
}
\ No newline at end of file
diff --git a/common/locales/ru.js b/common/locales/ru.js
index 0df8893..fafa538 100644
--- a/common/locales/ru.js
+++ b/common/locales/ru.js
@@ -2,16 +2,191 @@ export default {
// 可以以页面为单位来写,比如首页的内容,写在index字段,个人中心写在center,共同部分写在common部分
tabbar: {
home: 'начало',
+ highseas: 'открытое море',
customer: 'клиент',
mine: 'мой'
},
+ navbar: {
+ customerinfo: "Информация о клиенте",
+ addfollowup: "Добавить последующие ",
+ highseas: "Открытое море клиентов",
+ userList: "Управление клиентами",
+ tagselect: "Фильтр по меткам",
+ persondata: "Личные данные",
+ businesscard: "Моя визитка"
+ },
home: {
- desc: 'начало'
+ desc: "начало",
+ langbtn: "Сменить язык",
+ title: "Вы сопровождаете линке",
+ day: "день",
+ databf: "Данные Брифинги",
+ addxs: "Новые Подсказка",
+ addkh: "Новые клиенты",
+ addbf: "Новые посещения",
+ addgj: "Новые последующие "
},
customer: {
- desc: 'клиент'
+ desc: "клиент",
+ title: "Управление клиентами",
+ inputhd: "Введите имя клиента или номер телефона",
+ followtype: "Способ последующие ",
+ Online: "Онлайн последующие ",
+ Visit: "Посещение",
+ addfollow: "Добавить последующие",
+ followtime: "Время последующие ",
+ updataimg: "Загрузить скриншот последнего чата",
+ followrecord: "Запись последующие ",
+ followlocation: "Текущее местоположение",
+ locationimg: "Сфотографировать текущее местоположение",
+ Visitcontent: "Содержание посещения",
+ Visiinputhd: "Введите содержание посещения~",
+ Remarks: "Примечание (необязательно)",
+ Remarksinputhd: "Введите примечание~",
+ NextReminder: "Следующее напоминание о последующие ",
+ CustomerChannel: "Канал клиента",
+ CustomerChannelinput: "Выберите канал клиента",
+ Medal: "Коммерческая возможность",
+ Medalinput: "Выберите коммерческую возможность",
+ CustomerName: "Имя клиента",
+ CustomerNameinput: "Введите имя клиента",
+ WhatsAppinput: "Введите WhatsApp",
+ Emailinput: "Введите Email",
+ Customerph: "Предпочтения клиента",
+ Customerphinput: "Выберите предпочтения клиента",
+ Cstomerfj: "Классификация клиентов",
+ Cstomerfjinput: "Выберите классификацию",
+ Cstomertag: "Метка клиента",
+ Cstomertaginput: "Выберите",
+ Country: "Страна",
+ Countryinput: "Выберите страну",
+ Company: "Компания",
+ Companyinput: "Определить местоположение",
+ CustomerScreening: "Фильтрация клиентов"
},
mine: {
- desc: 'мой'
- }
+ desc: "мой",
+ title: "мой",
+ msg: "Уведомления",
+ cpassword: "Изменить пароль",
+ contact: "Связаться с поддержкой",
+ feedback: "Отправить заявку",
+ about: "О нас",
+ logoff: "Удалить аккаунт",
+ logout: "Выйти",
+ kfphone: "Телефон поддержки",
+ lxcall: "Контакт",
+ lxcallinputhd: "Введите ваш номер",
+ feedbackinputhd: "Введите ваши ценные предложения~",
+ nickname: "Никнейм",
+ nicknameinputhd: "Введите никнейм",
+ idinputhd: "Введите ID",
+ Versionup: "Обновление версии",
+ Privacy: "Политика конфиденциальности",
+ UserAgreement: "Пользовательское соглашение",
+ copyright: "© Henan Xinyouhe Technology Co., Ltd. Все права защищены",
+ logoffmsg: "Следующая информация будет удалена без возможности восстановления",
+ logoffts1: "Идентификационные и учетные данные",
+ logoffts2: "Вся информация о клиентах",
+ logoffts3: "Личная информация",
+ logoffbtn: "Подтвердить удаление",
+ changeavatar: "Нажмите, чтобы сменить аватар",
+ recyclebin: "Корзина",
+ restore: "Восстановить клиента",
+ position: "Должность",
+ positioninput: "Введите должность",
+ QRcode: "QR-код",
+ WeChat: "WeChat",
+ UploadQRcode: "Загрузить QR-код"
+ },
+ call: "Позвонить",
+ delete: "Удалить",
+ all: "Все",
+ tday: "Сегодня",
+ threeday: "Последние 3 дня",
+ sevenday: "Последние 7 дней",
+ followup: "Последующие меры",
+ deal: "Завершено",
+ lost: "Потеряно",
+ cancel: "Отмена",
+ confirm: "Подтвердить",
+ prompt: "Подсказка",
+ deletemsg: "Вы уверены, что хотите удалить этого клиента?",
+ receivemsg: "Вы уверены, что хотите принять этого клиента?",
+ submit: "Отправить",
+ gender: "Пол",
+ gender0: "Неизвестно",
+ gender1: "Мужской",
+ gender2: "Женский",
+ Region: "Страна/регион",
+ Regioninputhd: "Выбрать",
+ login: "Войти",
+ threelogin: "Вход через Третья сторона",
+ account: "Аккаунт",
+ password: "Пароль",
+ fgpassword: "Забыли пароль",
+ Facebook: "Feishu",
+ email: "Email",
+ emailinput: "Введите email",
+ phone: "Телефон",
+ agreeMsg: "Я прочитал и согласен с",
+ and: "и",
+ empty: "Нет записей~",
+ times: "Время",
+ address: "Адрес",
+ emailerr: "Email не может быть пустым",
+ emailerr1: "Неверный формат email",
+ passworerr: "Пароль не может быть пустым",
+ passworerr1: "Пароли не совпадают",
+ agreementarr: "Пожалуйста, сначала согласитесь с пользовательским соглашением и политикой конфиденциальности",
+ reg: "Регистрация",
+ codeerr: "Код подтверждения не может быть пустым",
+ getcode: "Получить код",
+ code: "Код подтверждения",
+ save: "Сохранить",
+ resetpassword: "Сбросить пароль",
+ newpassword: "Новый пароль",
+ Confirmpassword: "Подтвердите пароль",
+ Confirmbtn: "Подтвердить изменение",
+ edtbtn: "Редактировать данные",
+ zh: "Китайский",
+ en: "Английский",
+ ru: "Русский",
+ subsuccess: "Успешно отправлено",
+ onedaygj: "Через 1 день",
+ threedaygj: "Через 3 дня",
+ sevendaygj: "Через 7 дней",
+ autodaygj: "Настроить",
+ nexttime: "Настройка напоминания о следующем последующие ",
+ details: "Детали",
+ auth: "Авторизация Feishu",
+ inputnl: "Выберите",
+ noresults: "Нет результатов",
+ keyword: "Введите ключевое слово для поиска",
+ restoremsg: "Подтвердите восстановление данных клиента?",
+ onedayn: "В течение 1 дня",
+ threedayn: "В течение 3 дней",
+ sevendayn: "В течение 7 дней",
+ follow: " последующие ",
+ timeout: "Просрочено",
+ hour: "час",
+ minute: "мин",
+ second: "сек",
+ nextgjtime: "Время следующего последующие ",
+ Remindergj: "Напоминание о последующие ",
+ callPhonemsg: "Ошибка номера!",
+ download: "Скачать",
+ addtag: "Добавить метку",
+ CustomerProfile: "Профиль клиента",
+ CustomerProfilemag: "Нет меток профиля!",
+ retract: "Свернуть",
+ expand: "Развернуть",
+ remarks: "Примечание",
+ channel: "Канал",
+ Nodata: "Нет данных!",
+ versionmsg: "Уже последняя версия!",
+ receiveOrder: "Принять заказ",
+ loading: "Загрузка",
+ downmp:'Скачать визитку',
+ downmpmsg:'Вы уверены в загрузке текущей карты?',
}
\ No newline at end of file
diff --git a/common/locales/zh.js b/common/locales/zh.js
index 8319c51..d1fe67f 100644
--- a/common/locales/zh.js
+++ b/common/locales/zh.js
@@ -192,6 +192,8 @@ export default {
Nodata:'暂无数据!',
versionmsg:'已是最新版本!',
receiveOrder:'领单',
- loading:'加载中'
+ loading:'加载中',
+ downmp:'下载名片',
+ downmpmsg:'确定下载当前名片图吗?',
}
\ No newline at end of file
diff --git a/pages/index/mine.vue b/pages/index/mine.vue
index 5ec9a8b..ab8fc91 100644
--- a/pages/index/mine.vue
+++ b/pages/index/mine.vue
@@ -7,7 +7,7 @@
-
+
diff --git a/pages/mine/businesscard.vue b/pages/mine/businesscard.vue
index 332f643..8101592 100644
--- a/pages/mine/businesscard.vue
+++ b/pages/mine/businesscard.vue
@@ -13,7 +13,7 @@
{{userinfo.position}}
-
+
@@ -38,7 +38,7 @@
-
+
{{userinfo.socialize}}
+
+
+
@@ -59,7 +63,11 @@
export default {
data() {
return {
- userinfo:{}
+ userinfo:{},
+ showPreview: false,
+ previewUrl: '',
+ imageSrc:'',
+ imageSrcewm:'',
}
},
onLoad() {
@@ -76,64 +84,55 @@
method:'get',
}).then(res => {
that.userinfo = res.data.data;
+ that.downloadImageToLocal(res.data.data.avatar_url,'imageSrc')
+ that.downloadImageToLocal(res.data.data.socialize_pic_url,'imageSrcewm')
})
},
- saveImgFile(baseImg){
- const bitmap = new plus.nativeObj.Bitmap('test')
- bitmap.loadBase64Data(
- baseImg,
- function () {
- const url = '_doc/' + new Date().getTime() + '.png' // url为时间戳命名方式
- bitmap.save(
- url,
- {
- overwrite: true // 是否覆盖
- },
- i => {
- plus.gallery.save(
- i.target,
- function () {
- uni.showToast({
- title: '图片保存至相册成功',
- icon: 'none'
- });
- bitmap.clear()
- },
- function (e) {
- uni.showToast({
- title: '图片保存至相册失败',
- icon: 'none'
- });
- // console.log('图片保存至相册失败:' + JSON.stringify(e))
- bitmap.clear()
- }
- )
- },
- e => {
- uni.showToast({
- title: '图片保存失败1',
- icon: 'none'
- });
- bitmap.clear()
- }
- )
- },
- e => {
- uni.showToast({
- title: '图片保存失败2',
- icon: 'none'
- });
- bitmap.clear()
- }
- )
+ async downloadImageToLocal(imageUrl,item) {
+ try {
+ // 1. 下载图片到临时路径
+ const { tempFilePath } = await new Promise((resolve, reject) => {
+ uni.downloadFile({
+ url: imageUrl,
+ success: resolve,
+ fail: reject,
+ });
+ });
+
+ // 2. 返回临时路径(可直接用于 显示)
+ console.log('下载成功,临时路径:', tempFilePath);
+ if(item =='imageSrc'){
+ this.imageSrc = tempFilePath;
+ }else{
+ this.imageSrcewm = tempFilePath;
+ }
+
+ } catch (err) {
+ console.error('下载失败:', err);
+ throw new Error('图片下载失败');
+ }
},
- downloadImage(url, filename) {
- // 创建一个隐藏的 标签
- const link = document.createElement('a');
- link.href = url;
- link.download = filename;
- // 触发点击事件
- link.click();
+ downloadImage(url, canvas) {
+ const filename1 = '_doc/' + new Date().getTime() + '.png' // url为时间戳命名方式
+ if (uni.getSystemInfoSync().platform === 'h5') {
+ // 创建一个隐藏的 标签
+ const link = document.createElement('a');
+ link.href = url;
+ link.download = filename1;
+ // 触发点击事件
+ link.click();
+ }else {
+ canvas.toBlob((blob) => {
+ const blobUrl = URL.createObjectURL(blob);
+ const link = document.createElement('a');
+ link.href = blobUrl;
+ link.download = filename1;
+ document.body.appendChild(link);
+ link.click();
+ document.body.removeChild(link);
+ URL.revokeObjectURL(blobUrl); // 释放内存
+ }, 'image/png');
+ }
},
goDown(){
const element = document.getElementById('poster');
@@ -142,15 +141,19 @@
backgroundColor: '#f5f5f5', //海报的背景颜色
useCORS: true ,// 允许跨域
allowTaint: true, // 允许污染画布
+ scale: 2, // 提高清晰度
+ logging: false // 关闭日志(可选)
}).then(canvas => {
// canvas 其实就是我们所讲的res 的意思 返回报文的意思
let baseImg = canvas.toDataURL('image/png')
uni.showModal ({
- title: '下载名片',
- content: '确定下载当前名片图吗?',
+ title: this.$t('downmp'),
+ content: this.$t('downmpmsg'),
+ cancelText: this.$t('cancel'),
+ confirmText: this.$t('confirm'),
success: function (res) {
if (res.confirm) {
- that.downloadImage(baseImg, 'screenshot.png');
+ that.downloadImage(baseImg,canvas);
} else if (res.cancel) {
console.log('用户点击取消');
}
diff --git a/pages/mine/changinfo.vue b/pages/mine/changinfo.vue
index fa8462e..94ce5e1 100644
--- a/pages/mine/changinfo.vue
+++ b/pages/mine/changinfo.vue
@@ -4,7 +4,7 @@
-
+
{{$t('mine.changeavatar')}}