1
This commit is contained in:
parent
671b357c44
commit
61f6c9514d
6
App.vue
6
App.vue
@ -45,9 +45,9 @@
|
|||||||
}
|
}
|
||||||
// #endif
|
// #endif
|
||||||
// #ifdef APP-PLUS
|
// #ifdef APP-PLUS
|
||||||
if (store.state.userInfo.token) {
|
// if (store.state.userInfo.token) {
|
||||||
socket.init();
|
// socket.init();
|
||||||
}
|
// }
|
||||||
APPUpdate();
|
APPUpdate();
|
||||||
// #endif
|
// #endif
|
||||||
},
|
},
|
||||||
|
@ -4,11 +4,11 @@ if (process.env.NODE_ENV === 'development') {
|
|||||||
// 开发环境
|
// 开发环境
|
||||||
// baseUrl = "http://localhost:7001/";
|
// baseUrl = "http://localhost:7001/";
|
||||||
// socketUrl = "ws://localhost:6001/";
|
// socketUrl = "ws://localhost:6001/";
|
||||||
baseUrl = "http://api.dxmt.io";
|
baseUrl = "https://api.dxmt.io";
|
||||||
//socketUrl = "ws://8.129.186.35:6001/";
|
//socketUrl = "ws://8.129.186.35:6001/";
|
||||||
} else if (process.env.NODE_ENV === 'production') {
|
} else if (process.env.NODE_ENV === 'production') {
|
||||||
// 生产环境
|
// 生产环境
|
||||||
baseUrl = "http://api.dxmt.io";
|
baseUrl = "https://api.dxmt.io";
|
||||||
//socketUrl = "ws://8.129.186.35:6001/";
|
//socketUrl = "ws://8.129.186.35:6001/";
|
||||||
}
|
}
|
||||||
const courtConfig = {
|
const courtConfig = {
|
||||||
|
@ -180,10 +180,22 @@ $http.dataFactory = async function(res) {
|
|||||||
// uni.navigateTo({
|
// uni.navigateTo({
|
||||||
// url:'/pages/mine/index'
|
// url:'/pages/mine/index'
|
||||||
// })
|
// })
|
||||||
|
const savedLocale = uni.getStorageSync('locale') || 'en';
|
||||||
|
let msg = '';
|
||||||
|
if(savedLocale == 'zh'){
|
||||||
|
console.log(httpData.msg)
|
||||||
|
if(httpData.msg.indexOf('limit of uncompleted orders') > 0){
|
||||||
|
msg = '订单已达上限,请完成该订单或者15分钟后再试';
|
||||||
|
}else{
|
||||||
|
msg = httpData.msg;
|
||||||
|
}
|
||||||
|
}else{
|
||||||
|
msg = httpData.msg;
|
||||||
|
}
|
||||||
//其他错误提示
|
//其他错误提示
|
||||||
if (res.isPrompt) {
|
if (res.isPrompt) {
|
||||||
uni.showToast({
|
uni.showToast({
|
||||||
title: httpData.info || httpData.msg,
|
title: httpData.info || msg,
|
||||||
icon: "none",
|
icon: "none",
|
||||||
duration: 3000
|
duration: 3000
|
||||||
});
|
});
|
||||||
@ -191,7 +203,7 @@ $http.dataFactory = async function(res) {
|
|||||||
// 返回错误的结果(catch接受数据)
|
// 返回错误的结果(catch接受数据)
|
||||||
return Promise.reject({
|
return Promise.reject({
|
||||||
statusCode: 0,
|
statusCode: 0,
|
||||||
errMsg: "【request】" + (httpData.info || httpData.msg)
|
errMsg: "【request】" + (httpData.info || msg)
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -211,10 +223,10 @@ $http.requestError = function(e){
|
|||||||
if(e.statusCode === 0){
|
if(e.statusCode === 0){
|
||||||
throw e;
|
throw e;
|
||||||
} else {
|
} else {
|
||||||
uni.showToast({
|
// uni.showToast({
|
||||||
title: "网络错误,请检查一下网络",
|
// title: "网络错误,请检查一下网络",
|
||||||
icon: "none"
|
// icon: "none"
|
||||||
});
|
// });
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
export default $http;
|
export default $http;
|
||||||
|
@ -22,7 +22,8 @@
|
|||||||
"send_fail":"Send Fail",
|
"send_fail":"Send Fail",
|
||||||
"loading":"loading...",
|
"loading":"loading...",
|
||||||
"gallery":"gallery",
|
"gallery":"gallery",
|
||||||
"camera":"camera"
|
"camera":"camera",
|
||||||
|
"primq5x5u38kuch8iwpeemy87y": "MT Global official group"
|
||||||
},
|
},
|
||||||
"setIndex":{
|
"setIndex":{
|
||||||
"title": "setting",
|
"title": "setting",
|
||||||
@ -93,7 +94,9 @@
|
|||||||
"text7": "To answer",
|
"text7": "To answer",
|
||||||
"text8": "Answer time",
|
"text8": "Answer time",
|
||||||
"text9": "Details",
|
"text9": "Details",
|
||||||
"text10": "Done"
|
"text10": "Done",
|
||||||
|
"text11": "Reward",
|
||||||
|
"text12": "Cycle"
|
||||||
},
|
},
|
||||||
"Select": {
|
"Select": {
|
||||||
"title": "Select",
|
"title": "Select",
|
||||||
@ -166,8 +169,8 @@
|
|||||||
"text19": "Email is empty",
|
"text19": "Email is empty",
|
||||||
"text20": "Email address error",
|
"text20": "Email address error",
|
||||||
"text21": "Please enter a 6-10 digit password",
|
"text21": "Please enter a 6-10 digit password",
|
||||||
"text22": "Two passwords are inconsistent"
|
"text22": "Two passwords are inconsistent",
|
||||||
|
"text23": "Code"
|
||||||
},
|
},
|
||||||
"personal":{
|
"personal":{
|
||||||
"title": "Personal details",
|
"title": "Personal details",
|
||||||
@ -215,7 +218,9 @@
|
|||||||
"text12": "Please enter the correct email address",
|
"text12": "Please enter the correct email address",
|
||||||
"text13": "Already have an account?",
|
"text13": "Already have an account?",
|
||||||
"text14": "Please enter a 6-10 digit password",
|
"text14": "Please enter a 6-10 digit password",
|
||||||
"text15": "Two passwords are inconsistent"
|
"text15": "Two passwords are inconsistent",
|
||||||
|
"text16": "Invite code",
|
||||||
|
"text17": "Sign up now"
|
||||||
},
|
},
|
||||||
"putforward":{
|
"putforward":{
|
||||||
"title": "Put forward",
|
"title": "Put forward",
|
||||||
@ -278,7 +283,8 @@
|
|||||||
"text2": "Accumulated earnings",
|
"text2": "Accumulated earnings",
|
||||||
"text3": "Cash withdrawn",
|
"text3": "Cash withdrawn",
|
||||||
"text4": "Wallet fund records",
|
"text4": "Wallet fund records",
|
||||||
"text5": "View details"
|
"text5": "View details",
|
||||||
|
"text6": "After"
|
||||||
},
|
},
|
||||||
"fundrecords":{
|
"fundrecords":{
|
||||||
"title": "Wallet fund records",
|
"title": "Wallet fund records",
|
||||||
@ -312,7 +318,11 @@
|
|||||||
"text8": "View all",
|
"text8": "View all",
|
||||||
"text9": "Join date",
|
"text9": "Join date",
|
||||||
"text10": "KPI results",
|
"text10": "KPI results",
|
||||||
"text11": "Total Team Size"
|
"text11": "Total Team Size",
|
||||||
|
"text12": "Identity",
|
||||||
|
"text13": "User",
|
||||||
|
"text14": "channel provider",
|
||||||
|
"text15": "VIP"
|
||||||
},
|
},
|
||||||
"invite": {
|
"invite": {
|
||||||
"text1": "Save",
|
"text1": "Save",
|
||||||
@ -386,7 +396,8 @@
|
|||||||
"text22": "Behavior pattern simulation",
|
"text22": "Behavior pattern simulation",
|
||||||
"text23": "Equipment environment quarantine",
|
"text23": "Equipment environment quarantine",
|
||||||
"text24": "Core advantage",
|
"text24": "Core advantage",
|
||||||
"text25": "Select Language"
|
"text25": "Select Language",
|
||||||
|
"text26": "{par} purchased {par1} on {par2}"
|
||||||
},
|
},
|
||||||
"nav":{
|
"nav":{
|
||||||
"home": "Home",
|
"home": "Home",
|
||||||
|
@ -22,7 +22,8 @@
|
|||||||
"send_fail":"发送失败",
|
"send_fail":"发送失败",
|
||||||
"loading":"加载中...",
|
"loading":"加载中...",
|
||||||
"gallery":"照片",
|
"gallery":"照片",
|
||||||
"camera":"相机"
|
"camera":"相机",
|
||||||
|
"primq5x5u38kuch8iwpeemy87y": "MT全球官方社群"
|
||||||
},
|
},
|
||||||
"setIndex":{
|
"setIndex":{
|
||||||
"title": "设置",
|
"title": "设置",
|
||||||
@ -50,7 +51,7 @@
|
|||||||
"text13": "邮箱地址错误",
|
"text13": "邮箱地址错误",
|
||||||
"text14": "发送成功",
|
"text14": "发送成功",
|
||||||
"text15": "在{par}之后发送",
|
"text15": "在{par}之后发送",
|
||||||
"text16": "请输入6-10位纯数字密码",
|
"text16": "请输入6-10位密码",
|
||||||
"text17": "两个密码不一致"
|
"text17": "两个密码不一致"
|
||||||
},
|
},
|
||||||
"setPin":{
|
"setPin":{
|
||||||
@ -89,11 +90,13 @@
|
|||||||
"text3": "已完成",
|
"text3": "已完成",
|
||||||
"text4": "已答题",
|
"text4": "已答题",
|
||||||
"text5": "周期",
|
"text5": "周期",
|
||||||
"text6": "奖励",
|
"text6": "报酬",
|
||||||
"text7": "去答题",
|
"text7": "去答题",
|
||||||
"text8": "答题时间",
|
"text8": "答题时间",
|
||||||
"text9": "详情",
|
"text9": "详情",
|
||||||
"text10": "已完成"
|
"text10": "已完成",
|
||||||
|
"text11": "报酬",
|
||||||
|
"text12": "周期"
|
||||||
},
|
},
|
||||||
"Select": {
|
"Select": {
|
||||||
"title": "选择",
|
"title": "选择",
|
||||||
@ -155,7 +158,7 @@
|
|||||||
"text8": "重新发送",
|
"text8": "重新发送",
|
||||||
"text9": "修改密码",
|
"text9": "修改密码",
|
||||||
"text10": "不要担心忘记密码,你可以把它改成一个你能记住的密码。",
|
"text10": "不要担心忘记密码,你可以把它改成一个你能记住的密码。",
|
||||||
"text11": "密码",
|
"text11": "登录密码",
|
||||||
"text12": "请输入您的密码",
|
"text12": "请输入您的密码",
|
||||||
"text13": "确认密码",
|
"text13": "确认密码",
|
||||||
"text14": "请输入您的确认密码",
|
"text14": "请输入您的确认密码",
|
||||||
@ -166,8 +169,8 @@
|
|||||||
"text19": "请输入邮箱",
|
"text19": "请输入邮箱",
|
||||||
"text20": "邮箱地址错误",
|
"text20": "邮箱地址错误",
|
||||||
"text21": "请输入6-10位数字密码",
|
"text21": "请输入6-10位数字密码",
|
||||||
"text22": "两次输入密码不一致"
|
"text22": "两次输入密码不一致",
|
||||||
|
"text23": "验证码"
|
||||||
},
|
},
|
||||||
"personal":{
|
"personal":{
|
||||||
"title": "个人信息",
|
"title": "个人信息",
|
||||||
@ -181,7 +184,7 @@
|
|||||||
},
|
},
|
||||||
"login":{
|
"login":{
|
||||||
"title": "登录",
|
"title": "登录",
|
||||||
"text1": "调查问卷",
|
"text1": "问卷调查",
|
||||||
"text2": "登录您的帐户",
|
"text2": "登录您的帐户",
|
||||||
"text3": "输入您的邮箱和密码登录",
|
"text3": "输入您的邮箱和密码登录",
|
||||||
"text4": "请输入您的邮箱地址",
|
"text4": "请输入您的邮箱地址",
|
||||||
@ -215,7 +218,9 @@
|
|||||||
"text12": "请输入正确的邮箱地址",
|
"text12": "请输入正确的邮箱地址",
|
||||||
"text13": "已经有账户了吗?",
|
"text13": "已经有账户了吗?",
|
||||||
"text14": "请输入6-10位数字密码",
|
"text14": "请输入6-10位数字密码",
|
||||||
"text15": "两个密码不一致"
|
"text15": "两个密码不一致",
|
||||||
|
"text16": "邀请码",
|
||||||
|
"text17": "立即注册"
|
||||||
},
|
},
|
||||||
"putforward":{
|
"putforward":{
|
||||||
"title": "提现",
|
"title": "提现",
|
||||||
@ -278,7 +283,8 @@
|
|||||||
"text2": "累计收益",
|
"text2": "累计收益",
|
||||||
"text3": "已提金额",
|
"text3": "已提金额",
|
||||||
"text4": "钱包资金记录",
|
"text4": "钱包资金记录",
|
||||||
"text5": "查看详情"
|
"text5": "查看详情",
|
||||||
|
"text6": "余额"
|
||||||
},
|
},
|
||||||
"fundrecords":{
|
"fundrecords":{
|
||||||
"title": "钱包资金记录",
|
"title": "钱包资金记录",
|
||||||
@ -306,16 +312,20 @@
|
|||||||
"text2": "我的社区",
|
"text2": "我的社区",
|
||||||
"text3": "团队总人数",
|
"text3": "团队总人数",
|
||||||
"text4": "分享总人数",
|
"text4": "分享总人数",
|
||||||
"text5": "KPI业绩-大区",
|
"text5": "KPI业绩-大市场",
|
||||||
"text6": "KPI业绩-小区",
|
"text6": "KPI业绩-小市场",
|
||||||
"text7": "分享列表",
|
"text7": "分享列表",
|
||||||
"text8": "查看所有",
|
"text8": "查看所有",
|
||||||
"text9": "注册时间",
|
"text9": "注册时间",
|
||||||
"text10": "KPI业绩",
|
"text10": "KPI业绩",
|
||||||
"text11": "团队总人数"
|
"text11": "团队总人数",
|
||||||
|
"text12": "身份",
|
||||||
|
"text13": "普通用户",
|
||||||
|
"text14": "渠道商",
|
||||||
|
"text15": "VIP"
|
||||||
},
|
},
|
||||||
"invite": {
|
"invite": {
|
||||||
"text1": "保持",
|
"text1": "保存",
|
||||||
"text2": "分享",
|
"text2": "分享",
|
||||||
"text3": "长按并保存",
|
"text3": "长按并保存",
|
||||||
"text4": "正在下载海报"
|
"text4": "正在下载海报"
|
||||||
@ -371,7 +381,7 @@
|
|||||||
"text7": "邀请朋友获得高额佣金",
|
"text7": "邀请朋友获得高额佣金",
|
||||||
"text8": "查看详情",
|
"text8": "查看详情",
|
||||||
"text9": "已答题",
|
"text9": "已答题",
|
||||||
"text10": "奖励",
|
"text10": "报酬",
|
||||||
"text11": "查看所有",
|
"text11": "查看所有",
|
||||||
"text12": "新技术的应用(自动化工具/人工智能辅助)",
|
"text12": "新技术的应用(自动化工具/人工智能辅助)",
|
||||||
"text13": "智能答题引擎",
|
"text13": "智能答题引擎",
|
||||||
@ -386,7 +396,8 @@
|
|||||||
"text22": "行为模式模拟",
|
"text22": "行为模式模拟",
|
||||||
"text23": "设备环境隔离",
|
"text23": "设备环境隔离",
|
||||||
"text24": "核心优势",
|
"text24": "核心优势",
|
||||||
"text25": "选择语言"
|
"text25": "选择语言",
|
||||||
|
"text26": "用户 {par} 于 {par2} 购买了 {par1}"
|
||||||
},
|
},
|
||||||
"nav":{
|
"nav":{
|
||||||
"home": "首页",
|
"home": "首页",
|
||||||
@ -398,7 +409,7 @@
|
|||||||
"gotoLogin":{
|
"gotoLogin":{
|
||||||
"title": "登录提醒",
|
"title": "登录提醒",
|
||||||
"content": "您还未登录,立即登录~",
|
"content": "您还未登录,立即登录~",
|
||||||
"login": "去登陆",
|
"login": "去登录",
|
||||||
"cancel": "取消"
|
"cancel": "取消"
|
||||||
}
|
}
|
||||||
}
|
}
|
2
main.js
2
main.js
@ -24,7 +24,7 @@ import VueI18n from 'vue-i18n';
|
|||||||
import en from './locales/en.json'; // 引入英文语言包
|
import en from './locales/en.json'; // 引入英文语言包
|
||||||
import zh from './locales/zh.json'; // 引入中文语言包
|
import zh from './locales/zh.json'; // 引入中文语言包
|
||||||
Vue.use(VueI18n); // 使用vue-i18n插件
|
Vue.use(VueI18n); // 使用vue-i18n插件
|
||||||
const savedLocale = localStorage.getItem('locale') || 'en';
|
const savedLocale = uni.getStorageSync('locale') || 'en';
|
||||||
const i18n = new VueI18n({
|
const i18n = new VueI18n({
|
||||||
locale: savedLocale, // 设置默认语言
|
locale: savedLocale, // 设置默认语言
|
||||||
messages: { // 设置语言环境信息
|
messages: { // 设置语言环境信息
|
||||||
|
@ -9,8 +9,8 @@
|
|||||||
"src" : "图片路径"
|
"src" : "图片路径"
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
"versionName" : "1.0.7",
|
"versionName" : "2.1.6",
|
||||||
"versionCode" : 107,
|
"versionCode" : 216,
|
||||||
"app-plus" : {
|
"app-plus" : {
|
||||||
"softinputMode" : "adjustResize",
|
"softinputMode" : "adjustResize",
|
||||||
"statusBarAppearance" : "dark",
|
"statusBarAppearance" : "dark",
|
||||||
|
34
package-lock.json
generated
34
package-lock.json
generated
@ -13,13 +13,15 @@
|
|||||||
},
|
},
|
||||||
"node_modules/@dcloudio/uni-ui": {
|
"node_modules/@dcloudio/uni-ui": {
|
||||||
"version": "1.5.7",
|
"version": "1.5.7",
|
||||||
"resolved": "https://registry.npmmirror.com/@dcloudio/uni-ui/-/uni-ui-1.5.7.tgz",
|
"resolved": "https://registry.npmjs.org/@dcloudio/uni-ui/-/uni-ui-1.5.7.tgz",
|
||||||
"integrity": "sha512-DugxSIrQrze1FLdUOj9a+JEQ0bHGjnJTcGUK1mN/MivKg7nuKJBRWk5Ipa9sUdoBznX6ndz5h2e7Uao6x1CdCw=="
|
"integrity": "sha512-DugxSIrQrze1FLdUOj9a+JEQ0bHGjnJTcGUK1mN/MivKg7nuKJBRWk5Ipa9sUdoBznX6ndz5h2e7Uao6x1CdCw==",
|
||||||
|
"license": "Apache-2.0"
|
||||||
},
|
},
|
||||||
"node_modules/clipboard": {
|
"node_modules/clipboard": {
|
||||||
"version": "2.0.11",
|
"version": "2.0.11",
|
||||||
"resolved": "https://registry.npmmirror.com/clipboard/-/clipboard-2.0.11.tgz",
|
"resolved": "https://registry.npmjs.org/clipboard/-/clipboard-2.0.11.tgz",
|
||||||
"integrity": "sha512-C+0bbOqkezLIsmWSvlsXS0Q0bmkugu7jcfMIACB+RDEntIzQIkdr148we28AfSloQLRdZlYL/QYyrq05j/3Faw==",
|
"integrity": "sha512-C+0bbOqkezLIsmWSvlsXS0Q0bmkugu7jcfMIACB+RDEntIzQIkdr148we28AfSloQLRdZlYL/QYyrq05j/3Faw==",
|
||||||
|
"license": "MIT",
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"good-listener": "^1.2.2",
|
"good-listener": "^1.2.2",
|
||||||
"select": "^1.1.2",
|
"select": "^1.1.2",
|
||||||
@ -28,26 +30,30 @@
|
|||||||
},
|
},
|
||||||
"node_modules/delegate": {
|
"node_modules/delegate": {
|
||||||
"version": "3.2.0",
|
"version": "3.2.0",
|
||||||
"resolved": "https://registry.npmmirror.com/delegate/-/delegate-3.2.0.tgz",
|
"resolved": "https://registry.npmjs.org/delegate/-/delegate-3.2.0.tgz",
|
||||||
"integrity": "sha512-IofjkYBZaZivn0V8nnsMJGBr4jVLxHDheKSW88PyxS5QC4Vo9ZbZVvhzlSxY87fVq3STR6r+4cGepyHkcWOQSw=="
|
"integrity": "sha512-IofjkYBZaZivn0V8nnsMJGBr4jVLxHDheKSW88PyxS5QC4Vo9ZbZVvhzlSxY87fVq3STR6r+4cGepyHkcWOQSw==",
|
||||||
|
"license": "MIT"
|
||||||
},
|
},
|
||||||
"node_modules/good-listener": {
|
"node_modules/good-listener": {
|
||||||
"version": "1.2.2",
|
"version": "1.2.2",
|
||||||
"resolved": "https://registry.npmmirror.com/good-listener/-/good-listener-1.2.2.tgz",
|
"resolved": "https://registry.npmjs.org/good-listener/-/good-listener-1.2.2.tgz",
|
||||||
"integrity": "sha512-goW1b+d9q/HIwbVYZzZ6SsTr4IgE+WA44A0GmPIQstuOrgsFcT7VEJ48nmr9GaRtNu0XTKacFLGnBPAM6Afouw==",
|
"integrity": "sha512-goW1b+d9q/HIwbVYZzZ6SsTr4IgE+WA44A0GmPIQstuOrgsFcT7VEJ48nmr9GaRtNu0XTKacFLGnBPAM6Afouw==",
|
||||||
|
"license": "MIT",
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"delegate": "^3.1.2"
|
"delegate": "^3.1.2"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/select": {
|
"node_modules/select": {
|
||||||
"version": "1.1.2",
|
"version": "1.1.2",
|
||||||
"resolved": "https://registry.npmmirror.com/select/-/select-1.1.2.tgz",
|
"resolved": "https://registry.npmjs.org/select/-/select-1.1.2.tgz",
|
||||||
"integrity": "sha512-OwpTSOfy6xSs1+pwcNrv0RBMOzI39Lp3qQKUTPVVPRjCdNa5JH/oPRiqsesIskK8TVgmRiHwO4KXlV2Li9dANA=="
|
"integrity": "sha512-OwpTSOfy6xSs1+pwcNrv0RBMOzI39Lp3qQKUTPVVPRjCdNa5JH/oPRiqsesIskK8TVgmRiHwO4KXlV2Li9dANA==",
|
||||||
|
"license": "MIT"
|
||||||
},
|
},
|
||||||
"node_modules/tiny-emitter": {
|
"node_modules/tiny-emitter": {
|
||||||
"version": "2.1.0",
|
"version": "2.1.0",
|
||||||
"resolved": "https://registry.npmmirror.com/tiny-emitter/-/tiny-emitter-2.1.0.tgz",
|
"resolved": "https://registry.npmjs.org/tiny-emitter/-/tiny-emitter-2.1.0.tgz",
|
||||||
"integrity": "sha512-NB6Dk1A9xgQPMoGqC5CVXn123gWyte215ONT5Pp5a0yt4nlEoO1ZWeCwpncaekPHXO60i47ihFnZPiRPjRMq4Q=="
|
"integrity": "sha512-NB6Dk1A9xgQPMoGqC5CVXn123gWyte215ONT5Pp5a0yt4nlEoO1ZWeCwpncaekPHXO60i47ihFnZPiRPjRMq4Q==",
|
||||||
|
"license": "MIT"
|
||||||
},
|
},
|
||||||
"node_modules/tki-qrcode": {
|
"node_modules/tki-qrcode": {
|
||||||
"version": "0.1.6",
|
"version": "0.1.6",
|
||||||
@ -57,17 +63,19 @@
|
|||||||
},
|
},
|
||||||
"node_modules/vue-clipboard2": {
|
"node_modules/vue-clipboard2": {
|
||||||
"version": "0.3.3",
|
"version": "0.3.3",
|
||||||
"resolved": "https://registry.npmmirror.com/vue-clipboard2/-/vue-clipboard2-0.3.3.tgz",
|
"resolved": "https://registry.npmjs.org/vue-clipboard2/-/vue-clipboard2-0.3.3.tgz",
|
||||||
"integrity": "sha512-aNWXIL2DKgJyY/1OOeITwAQz1fHaCIGvUFHf9h8UcoQBG5a74MkdhS/xqoYe7DNZdQmZRL+TAdIbtUs9OyVjbw==",
|
"integrity": "sha512-aNWXIL2DKgJyY/1OOeITwAQz1fHaCIGvUFHf9h8UcoQBG5a74MkdhS/xqoYe7DNZdQmZRL+TAdIbtUs9OyVjbw==",
|
||||||
|
"license": "MIT",
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"clipboard": "^2.0.0"
|
"clipboard": "^2.0.0"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/vue-i18n": {
|
"node_modules/vue-i18n": {
|
||||||
"version": "8.28.2",
|
"version": "8.28.2",
|
||||||
"resolved": "https://registry.npmmirror.com/vue-i18n/-/vue-i18n-8.28.2.tgz",
|
"resolved": "https://registry.npmjs.org/vue-i18n/-/vue-i18n-8.28.2.tgz",
|
||||||
"integrity": "sha512-C5GZjs1tYlAqjwymaaCPDjCyGo10ajUphiwA922jKt9n7KPpqR7oM1PCwYzhB/E7+nT3wfdG3oRre5raIT1rKA==",
|
"integrity": "sha512-C5GZjs1tYlAqjwymaaCPDjCyGo10ajUphiwA922jKt9n7KPpqR7oM1PCwYzhB/E7+nT3wfdG3oRre5raIT1rKA==",
|
||||||
"deprecated": "Vue I18n v8.x has reached EOL and is no longer actively maintained. About maintenance status, see https://vue-i18n.intlify.dev/guide/maintenance.html"
|
"deprecated": "Vue I18n v8.x has reached EOL and is no longer actively maintained. About maintenance status, see https://vue-i18n.intlify.dev/guide/maintenance.html",
|
||||||
|
"license": "MIT"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -5,4 +5,4 @@
|
|||||||
"vue-clipboard2": "^0.3.3",
|
"vue-clipboard2": "^0.3.3",
|
||||||
"vue-i18n": "^8.28.2"
|
"vue-i18n": "^8.28.2"
|
||||||
}
|
}
|
||||||
}
|
}
|
@ -558,6 +558,13 @@
|
|||||||
{
|
{
|
||||||
"navigationBarTitleText": "detail"
|
"navigationBarTitleText": "detail"
|
||||||
}
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"path" : "pages/promotion/invitesignup",
|
||||||
|
"style" :
|
||||||
|
{
|
||||||
|
"navigationBarTitleText" : ""
|
||||||
|
}
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
"globalStyle": {
|
"globalStyle": {
|
||||||
|
@ -61,7 +61,7 @@
|
|||||||
},
|
},
|
||||||
changeLang(l){
|
changeLang(l){
|
||||||
this.$i18n.locale = l;
|
this.$i18n.locale = l;
|
||||||
localStorage.setItem('locale', l);
|
uni.setStorageSync('locale', l);
|
||||||
setTimeout(() => {
|
setTimeout(() => {
|
||||||
uni.navigateBack();
|
uni.navigateBack();
|
||||||
}, 500);
|
}, 500);
|
||||||
|
@ -88,7 +88,7 @@
|
|||||||
sendCode(){
|
sendCode(){
|
||||||
this.isSend = true;
|
this.isSend = true;
|
||||||
if (!this.$base.mailRegular.test(this.model.email)) {
|
if (!this.$base.mailRegular.test(this.model.email)) {
|
||||||
uni.showToast({title: this.$t('setPasswork.text13'), icon:'error'});
|
uni.showToast({title: this.$t('setPasswork.text13'), icon:'none'});
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
let s = 120;
|
let s = 120;
|
||||||
@ -119,15 +119,15 @@
|
|||||||
submit(){
|
submit(){
|
||||||
this.$refs.model.validate().then(res=>{
|
this.$refs.model.validate().then(res=>{
|
||||||
if (!this.$base.mailRegular.test(this.model.email)) {
|
if (!this.$base.mailRegular.test(this.model.email)) {
|
||||||
uni.showToast({title: this.$t('setPasswork.text13'), icon:'error'});
|
uni.showToast({title: this.$t('setPasswork.text13'), icon:'none'});
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
if (!this.$base.passwordRegular.test(this.model.password)) {
|
if (!this.$base.passwordRegular.test(this.model.password)) {
|
||||||
uni.showToast({title: this.$t('setPasswork.text16'), icon:'error'});
|
uni.showToast({title: this.$t('setPasswork.text16'), icon:'none'});
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
if (this.model.cpassword !== this.model.password) {
|
if (this.model.cpassword !== this.model.password) {
|
||||||
uni.showToast({title: this.$t('setPasswork.text17'), icon:'error'});
|
uni.showToast({title: this.$t('setPasswork.text17'), icon:'none'});
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
this.$http.post('/api/common/resetpwd', {email: this.model.email, newpassword: this.model.password, code: this.model.code}).then(res => {
|
this.$http.post('/api/common/resetpwd', {email: this.model.email, newpassword: this.model.password, code: this.model.code}).then(res => {
|
||||||
|
@ -153,19 +153,22 @@
|
|||||||
// #endif
|
// #endif
|
||||||
},
|
},
|
||||||
copy(val = '') {
|
copy(val = '') {
|
||||||
const textArea = document.createElement('textarea');
|
// #ifdef APP-PLUS
|
||||||
textArea.value = val;
|
uni.setClipboardData({
|
||||||
document.body.appendChild(textArea);
|
data: val, // e是你要保存的内容
|
||||||
textArea.select();
|
success: function () {
|
||||||
try {
|
uni.showToast({
|
||||||
document.execCommand('copy');
|
title:this.$t('copySuccess'),
|
||||||
uni.showToast({
|
icon:'none'
|
||||||
title: this.$t('copySuccess')
|
})
|
||||||
});
|
}
|
||||||
} catch (err) {
|
})
|
||||||
console.error('Could not copy text: ', err);
|
// #endif
|
||||||
}
|
// #ifdef H5
|
||||||
document.body.removeChild(textArea);
|
this.$copyText(val).then(res => {
|
||||||
|
uni.showToast({title: this.$t('copySuccess'), icon: 'none'});
|
||||||
|
});
|
||||||
|
// #endif
|
||||||
},
|
},
|
||||||
// open1(v){
|
// open1(v){
|
||||||
// switch(this.type){
|
// switch(this.type){
|
||||||
|
@ -36,17 +36,20 @@
|
|||||||
return {
|
return {
|
||||||
list:[],
|
list:[],
|
||||||
page: 1,
|
page: 1,
|
||||||
limit: 10
|
limit: 10,
|
||||||
|
lastPage: 1,
|
||||||
};
|
};
|
||||||
},
|
},
|
||||||
computed: {
|
computed: {
|
||||||
},
|
},
|
||||||
//第一次加载
|
//第一次加载
|
||||||
onLoad(e) {
|
onLoad(e) {
|
||||||
this.getlist();
|
|
||||||
},
|
},
|
||||||
//页面显示
|
//页面显示
|
||||||
onShow() {},
|
onShow() {
|
||||||
|
this.getlist();
|
||||||
|
},
|
||||||
//方法
|
//方法
|
||||||
methods: {
|
methods: {
|
||||||
...mapMutations(['setUserInfo']),
|
...mapMutations(['setUserInfo']),
|
||||||
@ -58,7 +61,10 @@
|
|||||||
}
|
}
|
||||||
this.$http.post('/api/address/list', data).then(res => {
|
this.$http.post('/api/address/list', data).then(res => {
|
||||||
if(res.code == 0){
|
if(res.code == 0){
|
||||||
this.list = res.data.data;
|
res.data.data.forEach(item => {
|
||||||
|
this.list.push(item);
|
||||||
|
});
|
||||||
|
this.lastPage = res.data.last_page;
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
},
|
},
|
||||||
@ -90,21 +96,11 @@
|
|||||||
onPullDownRefresh() {},
|
onPullDownRefresh() {},
|
||||||
//页面上拉触底
|
//页面上拉触底
|
||||||
onReachBottom() {
|
onReachBottom() {
|
||||||
this.page = this.page + 1;
|
if(this.page<this.lastPage){
|
||||||
let data = {
|
this.page = this.page + 1;
|
||||||
page: this.page,
|
this.getlist();
|
||||||
limit: this.limit,
|
|
||||||
lang: this.$i18n.locale
|
|
||||||
}
|
}
|
||||||
this.$http.post('/api/address/list', data).then(res => {
|
|
||||||
if(res.code == 0){
|
|
||||||
res.data.data.forEach(item => {
|
|
||||||
this.list.push(item);
|
|
||||||
});
|
|
||||||
}
|
|
||||||
}).catch(err => {
|
|
||||||
this.page = this.page - 1;
|
|
||||||
});
|
|
||||||
},
|
},
|
||||||
//用户点击分享
|
//用户点击分享
|
||||||
onShareAppMessage(e) {
|
onShareAppMessage(e) {
|
||||||
|
@ -163,7 +163,7 @@ export default {
|
|||||||
data() {
|
data() {
|
||||||
return {
|
return {
|
||||||
init: {
|
init: {
|
||||||
cdnurl: 'http://api.dxmt.io'
|
cdnurl: 'https://api.dxmt.io'
|
||||||
},
|
},
|
||||||
channel:{},
|
channel:{},
|
||||||
// 滚动容器
|
// 滚动容器
|
||||||
|
@ -45,8 +45,8 @@
|
|||||||
v-if="item.id"
|
v-if="item.id"
|
||||||
:key="`${item.id}`"
|
:key="`${item.id}`"
|
||||||
:avatar-circle="true"
|
:avatar-circle="true"
|
||||||
:title="item.display_name || item.name || item.nickname || item.email"
|
:title="gettitle(item.display_name) || item.name || item.nickname || item.email"
|
||||||
:avatar="item.id==='bkgjcxzi9j8wimrumt1nfosbgr' ? '/static/im/kefu1.png' : getAvatarUrl(item)"
|
:avatar="item.id==='primq5x5u38kuch8iwpeemy87y' ? '/static/im/kefu1.png' : getAvatarUrl(item)"
|
||||||
:note="item.last_msg ? (item.last_msg_type === 'image' ? $t('im.pic_msg') : item.last_msg) : $t('im.msg_none')"
|
:note="item.last_msg ? (item.last_msg_type === 'image' ? $t('im.pic_msg') : item.last_msg) : $t('im.msg_none')"
|
||||||
:time="item.last_post_at ? date(item.last_post_at) : ''"
|
:time="item.last_post_at ? date(item.last_post_at) : ''"
|
||||||
:badge-text="item.unread_count > 0 ? (item.unread_count > 99 ? '99+' : item.unread_count) : ''"
|
:badge-text="item.unread_count > 0 ? (item.unread_count > 99 ? '99+' : item.unread_count) : ''"
|
||||||
@ -154,6 +154,17 @@
|
|||||||
},
|
},
|
||||||
methods: {
|
methods: {
|
||||||
...mapMutations(['setUserInfo']),
|
...mapMutations(['setUserInfo']),
|
||||||
|
gettitle(title){
|
||||||
|
if(this.$i18n.locale == 'zh' && title){
|
||||||
|
if(title.indexOf('official group')>0){
|
||||||
|
return "MT全球官方社群";
|
||||||
|
}
|
||||||
|
if(title.indexOf("Inviter") >= 0){
|
||||||
|
return "邀请人";
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return title;
|
||||||
|
},
|
||||||
async init(){
|
async init(){
|
||||||
try {
|
try {
|
||||||
if(!this.userInfo.token || !this.userInfo.im_token){
|
if(!this.userInfo.token || !this.userInfo.im_token){
|
||||||
@ -168,7 +179,7 @@
|
|||||||
const initRes = await this.$http.get('/api/common/init?lang=' + this.$i18n.locale);
|
const initRes = await this.$http.get('/api/common/init?lang=' + this.$i18n.locale);
|
||||||
if (initRes.code === 0) {
|
if (initRes.code === 0) {
|
||||||
this.config = initRes.data;
|
this.config = initRes.data;
|
||||||
this.config.cdnurl = initRes.data.cdnurl || "http://www.dxmt.io";
|
this.config.cdnurl = initRes.data.cdnurl || "https://www.dxmt.io";
|
||||||
}
|
}
|
||||||
|
|
||||||
// 检查 Mattermost 连接状态
|
// 检查 Mattermost 连接状态
|
||||||
@ -182,7 +193,7 @@
|
|||||||
} catch (error) {
|
} catch (error) {
|
||||||
console.error('页面加载失败:', error);
|
console.error('页面加载失败:', error);
|
||||||
uni.showToast({
|
uni.showToast({
|
||||||
title: 'im.loading_fail',
|
title: $t('im.loading_fail'),
|
||||||
icon: 'none'
|
icon: 'none'
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
@ -427,10 +438,10 @@
|
|||||||
}
|
}
|
||||||
} catch (error) {
|
} catch (error) {
|
||||||
console.error('获取客服列表失败:', error);
|
console.error('获取客服列表失败:', error);
|
||||||
uni.showToast({
|
// uni.showToast({
|
||||||
title: error.message || '获取客服列表失败',
|
// title: error.message || '获取客服列表失败',
|
||||||
icon: 'none'
|
// icon: 'none'
|
||||||
});
|
// });
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
goto(url,type){
|
goto(url,type){
|
||||||
|
@ -109,7 +109,7 @@
|
|||||||
const initRes = await this.$http.get('/api/common/init?lang=' + this.$i18n.locale);
|
const initRes = await this.$http.get('/api/common/init?lang=' + this.$i18n.locale);
|
||||||
if (initRes.code === 0) {
|
if (initRes.code === 0) {
|
||||||
this.config = initRes.data;
|
this.config = initRes.data;
|
||||||
this.config.cdnurl = initRes.data.cdnurl || "http://www.dxmt.io";
|
this.config.cdnurl = initRes.data.cdnurl || "https://www.dxmt.io";
|
||||||
}
|
}
|
||||||
|
|
||||||
// 检查 Mattermost 连接状态
|
// 检查 Mattermost 连接状态
|
||||||
|
@ -8,7 +8,7 @@
|
|||||||
<uni-icons size="30" type="notification" style="margin-left: 40rpx;"></uni-icons>
|
<uni-icons size="30" type="notification" style="margin-left: 40rpx;"></uni-icons>
|
||||||
</uni-badge> -->
|
</uni-badge> -->
|
||||||
<span style="float: right; margin-left: 10rpx; font-size: 28rpx;" v-if="$i18n.locale == 'en'">EN</span>
|
<span style="float: right; margin-left: 10rpx; font-size: 28rpx;" v-if="$i18n.locale == 'en'">EN</span>
|
||||||
<span style="float: right; margin-left: 10rpx; font-size: 28rpx;" v-if="$i18n.locale == 'zh'">ZH</span>
|
<span style="float: right; margin-left: 10rpx; font-size: 28rpx;" v-if="$i18n.locale == 'zh'">中文</span>
|
||||||
<image src="/static/images/earth.png" style="width: 40rpx; height: 40rpx; float: right;"></image>
|
<image src="/static/images/earth.png" style="width: 40rpx; height: 40rpx; float: right;"></image>
|
||||||
</view>
|
</view>
|
||||||
<view style="clear: both;"></view>
|
<view style="clear: both;"></view>
|
||||||
@ -98,7 +98,7 @@
|
|||||||
{{$t('index.text10')}}: <span style="font-size: 40rpx;">${{parseFloat(item.interest_rate).toFixed(2)}} </span>
|
{{$t('index.text10')}}: <span style="font-size: 40rpx;">${{parseFloat(item.interest_rate).toFixed(2)}} </span>
|
||||||
</view>
|
</view>
|
||||||
<view style="float: right;">
|
<view style="float: right;">
|
||||||
<button type="primary" class="b" @click="onTokenJump('/pages/questionnaire/details?id='+item.id)">To answer</button>
|
<button type="primary" class="b" @click="onTokenJump('/pages/questionnaire/details?id='+item.id)">{{$t('Questionnaire.text7')}}</button>
|
||||||
</view>
|
</view>
|
||||||
</view>
|
</view>
|
||||||
</uni-col>
|
</uni-col>
|
||||||
@ -117,9 +117,9 @@
|
|||||||
{{$t('index.text12')}}
|
{{$t('index.text12')}}
|
||||||
</view>
|
</view>
|
||||||
<view style="text-align: center; margin-top: 20rpx; color: #999; font-size: 26rpx;">
|
<view style="text-align: center; margin-top: 20rpx; color: #999; font-size: 26rpx;">
|
||||||
1. {{$t('index.text13')}}<br>
|
{{$t('index.text13')}}<br>
|
||||||
2. {{$t('index.text14')}}<br>
|
{{$t('index.text14')}}<br>
|
||||||
3. {{$t('index.text15')}}
|
{{$t('index.text15')}}
|
||||||
</view>
|
</view>
|
||||||
</view>
|
</view>
|
||||||
<view class="v2">
|
<view class="v2">
|
||||||
@ -128,9 +128,9 @@
|
|||||||
{{$t('index.text16')}}
|
{{$t('index.text16')}}
|
||||||
</view>
|
</view>
|
||||||
<view style="text-align: center; margin-top: 20rpx; color: #999; font-size: 26rpx;">
|
<view style="text-align: center; margin-top: 20rpx; color: #999; font-size: 26rpx;">
|
||||||
1. {{$t('index.text17')}}<br>
|
{{$t('index.text17')}}<br>
|
||||||
2. {{$t('index.text18')}}<br>
|
{{$t('index.text18')}}<br>
|
||||||
3. {{$t('index.text19')}}
|
{{$t('index.text19')}}
|
||||||
</view>
|
</view>
|
||||||
</view>
|
</view>
|
||||||
<view class="v2">
|
<view class="v2">
|
||||||
@ -139,9 +139,9 @@
|
|||||||
{{$t('index.text20')}}
|
{{$t('index.text20')}}
|
||||||
</view>
|
</view>
|
||||||
<view style="text-align: center; margin-top: 20rpx; color: #999; font-size: 26rpx;">
|
<view style="text-align: center; margin-top: 20rpx; color: #999; font-size: 26rpx;">
|
||||||
1. {{$t('index.text21')}}<br>
|
{{$t('index.text21')}}<br>
|
||||||
2. {{$t('index.text22')}}<br>
|
{{$t('index.text22')}}<br>
|
||||||
3. {{$t('index.text23')}}
|
{{$t('index.text23')}}
|
||||||
</view>
|
</view>
|
||||||
</view>
|
</view>
|
||||||
</uni-section>
|
</uni-section>
|
||||||
@ -208,7 +208,7 @@
|
|||||||
this.user = res;
|
this.user = res;
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
this.$http.get('/api/withdrawl/recent').then(res => {
|
this.$http.get('/api/role/recent?lang='+this.$i18n.locale).then(res => {
|
||||||
if(res.code == 0){
|
if(res.code == 0){
|
||||||
this.notices = res.data;
|
this.notices = res.data;
|
||||||
}
|
}
|
||||||
@ -240,7 +240,7 @@
|
|||||||
},
|
},
|
||||||
switchlan(l){
|
switchlan(l){
|
||||||
this.$i18n.locale = l;
|
this.$i18n.locale = l;
|
||||||
localStorage.setItem('locale', l);
|
uni.setStorageSync('locale', l)
|
||||||
this.$refs.popup.close();
|
this.$refs.popup.close();
|
||||||
},
|
},
|
||||||
onTokenJump(url) {
|
onTokenJump(url) {
|
||||||
@ -275,12 +275,12 @@
|
|||||||
});
|
});
|
||||||
},
|
},
|
||||||
getcash(o){
|
getcash(o){
|
||||||
var email = o.user.email;
|
var email = o.username;
|
||||||
let username = email.split('@')[0]; // 获取用户名部分
|
let username = email.split('@')[0]; // 获取用户名部分
|
||||||
let domain = email.split('@')[1]; // 获取域名部分
|
let domain = email.split('@')[1]; // 获取域名部分
|
||||||
let midIndex = Math.floor(username.length / 2) - 2; // 计算中间两个字符的起始索引
|
let midIndex = Math.floor(username.length / 2) - 2; // 计算中间两个字符的起始索引
|
||||||
let censoredEmail = username.slice(0, midIndex) + "****" + username.slice(midIndex + 4) + '@' + domain;
|
let censoredEmail = username.slice(0, midIndex) + "****" + username.slice(midIndex + 4) + '@' + domain;
|
||||||
return censoredEmail + this.$t('index.text5', {par: parseFloat(o.deduction_amount).toFixed(2)})
|
return this.$t('index.text26', {par: censoredEmail, par1: o.role, par2: o.created_at.slice(0,10) })
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
//页面隐藏
|
//页面隐藏
|
||||||
|
@ -72,7 +72,7 @@
|
|||||||
</view>
|
</view>
|
||||||
</uni-col>
|
</uni-col>
|
||||||
<uni-col :span="24" style="margin-top: 20rpx;">
|
<uni-col :span="24" style="margin-top: 20rpx;">
|
||||||
<view class="wallet" style="padding: 40rpx 20rpx;" @click="onPageJump('/pages/about/help')">
|
<view class="wallet" style="padding: 40rpx 20rpx;" @click="onTokenJump('/pages/about/help')">
|
||||||
<image class="i" src="/static/images/m6.png" fit="cover"></image>
|
<image class="i" src="/static/images/m6.png" fit="cover"></image>
|
||||||
<span class="s">{{$t('mine.text9')}}</span>
|
<span class="s">{{$t('mine.text9')}}</span>
|
||||||
<uni-icons size="20" type="right" style="float: right;"></uni-icons>
|
<uni-icons size="20" type="right" style="float: right;"></uni-icons>
|
||||||
@ -80,7 +80,7 @@
|
|||||||
</view>
|
</view>
|
||||||
</uni-col>
|
</uni-col>
|
||||||
<uni-col :span="24" style="margin-top: 20rpx;">
|
<uni-col :span="24" style="margin-top: 20rpx;">
|
||||||
<view class="wallet" style="padding: 40rpx 20rpx;" @click="onPageJump('/pages/about/index')">
|
<view class="wallet" style="padding: 40rpx 20rpx;" @click="onTokenJump('/pages/about/index')">
|
||||||
<image class="i" src="/static/images/m3.png" fit="cover"></image>
|
<image class="i" src="/static/images/m3.png" fit="cover"></image>
|
||||||
<span class="s">{{$t('mine.text10')}}</span>
|
<span class="s">{{$t('mine.text10')}}</span>
|
||||||
<uni-icons size="20" type="right" style="float: right;"></uni-icons>
|
<uni-icons size="20" type="right" style="float: right;"></uni-icons>
|
||||||
@ -238,19 +238,22 @@
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
copy(val = ''){
|
copy(val = ''){
|
||||||
const textArea = document.createElement('textarea');
|
// #ifdef APP-PLUS
|
||||||
textArea.value = val;
|
uni.setClipboardData({
|
||||||
document.body.appendChild(textArea);
|
data: val, // e是你要保存的内容
|
||||||
textArea.select();
|
success: function () {
|
||||||
try {
|
uni.showToast({
|
||||||
document.execCommand('copy');
|
title:this.$t('copySuccess'),
|
||||||
uni.showToast({
|
icon:'none'
|
||||||
title: this.$t('copySuccess')
|
})
|
||||||
});
|
}
|
||||||
} catch (err) {
|
})
|
||||||
console.error('Could not copy text: ', err);
|
// #endif
|
||||||
}
|
// #ifdef H5
|
||||||
document.body.removeChild(textArea);
|
this.$copyText(val).then(res => {
|
||||||
|
uni.showToast({title: this.$t('copySuccess'), icon: 'none'});
|
||||||
|
});
|
||||||
|
// #endif
|
||||||
},
|
},
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -21,7 +21,7 @@
|
|||||||
<view style="font-size: 24rpx; color:#4D81E7; font-weight: 500; text-align: right; margin-bottom: 40rpx;" @click="onPageJump('/pages/mine/forgotpassword')">{{$t('login.text6')}}</view>
|
<view style="font-size: 24rpx; color:#4D81E7; font-weight: 500; text-align: right; margin-bottom: 40rpx;" @click="onPageJump('/pages/mine/forgotpassword')">{{$t('login.text6')}}</view>
|
||||||
<button type="primary" round style="width: 100%;" @click="login()">{{$t('login.title')}}</button>
|
<button type="primary" round style="width: 100%;" @click="login()">{{$t('login.title')}}</button>
|
||||||
</view>
|
</view>
|
||||||
<view style="bottom: 0rpx; position: absolute; width:100vw; height: 100rpx;">
|
<view style="bottom: 0rpx; width:100vw; height: 100rpx;">
|
||||||
<view style="font-size: 32rpx; color: #6C7278; font-weight: 500; text-align: center;">
|
<view style="font-size: 32rpx; color: #6C7278; font-weight: 500; text-align: center;">
|
||||||
{{$t('login.text7')}}
|
{{$t('login.text7')}}
|
||||||
<span style="color: #4D81E7; margin-left: 20rpx;" @click="onPageJump('/pages/mine/signup')">{{$t('login.text8')}}</span>
|
<span style="color: #4D81E7; margin-left: 20rpx;" @click="onPageJump('/pages/mine/signup')">{{$t('login.text8')}}</span>
|
||||||
@ -77,6 +77,7 @@
|
|||||||
})
|
})
|
||||||
},
|
},
|
||||||
login(){
|
login(){
|
||||||
|
|
||||||
this.$refs.loginModel.validate().then(res=>{
|
this.$refs.loginModel.validate().then(res=>{
|
||||||
if (!this.$base.mailRegular.test(this.loginModel.username)) {
|
if (!this.$base.mailRegular.test(this.loginModel.username)) {
|
||||||
uni.showToast({title: this.$t('setPasswork.text13'), icon:'error'});
|
uni.showToast({title: this.$t('setPasswork.text13'), icon:'error'});
|
||||||
|
@ -38,6 +38,7 @@
|
|||||||
list: [],
|
list: [],
|
||||||
page: 1,
|
page: 1,
|
||||||
limit: 10,
|
limit: 10,
|
||||||
|
lastPage: 1,
|
||||||
};
|
};
|
||||||
},
|
},
|
||||||
computed: {
|
computed: {
|
||||||
@ -62,7 +63,8 @@
|
|||||||
if(res.code == 0){
|
if(res.code == 0){
|
||||||
res.data.data.forEach(item => {
|
res.data.data.forEach(item => {
|
||||||
this.list.push(item);
|
this.list.push(item);
|
||||||
})
|
});
|
||||||
|
this.lastPage = res.data.last_page;
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
},
|
},
|
||||||
@ -112,22 +114,10 @@
|
|||||||
},
|
},
|
||||||
//页面上拉触底
|
//页面上拉触底
|
||||||
onReachBottom() {
|
onReachBottom() {
|
||||||
this.page = this.page + 1;
|
if(this.page<this.lastPage){
|
||||||
let data = {
|
this.page = this.page + 1;
|
||||||
category_id: 10,
|
this.getnotice();
|
||||||
page: this.page,
|
|
||||||
limit: this.limit,
|
|
||||||
lang: this.$i18n.locale
|
|
||||||
}
|
}
|
||||||
this.$http.post('/api/article/list', data).then(res => {
|
|
||||||
if(res.code == 0){
|
|
||||||
res.data.data.forEach(item => {
|
|
||||||
this.list.push(item);
|
|
||||||
})
|
|
||||||
}
|
|
||||||
}).catch(err => {
|
|
||||||
this.page = this.page - 1;
|
|
||||||
});
|
|
||||||
},
|
},
|
||||||
//用户点击分享
|
//用户点击分享
|
||||||
onShareAppMessage(e) {
|
onShareAppMessage(e) {
|
||||||
|
@ -106,7 +106,7 @@
|
|||||||
methods: {
|
methods: {
|
||||||
...mapMutations(['setUserInfo']),
|
...mapMutations(['setUserInfo']),
|
||||||
change(id){
|
change(id){
|
||||||
if(tihs.rid > id){
|
if(this.rid > id){
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
this.role_id = id;
|
this.role_id = id;
|
||||||
|
@ -56,6 +56,7 @@
|
|||||||
<view style="font-size: 24rpx; font-weight: 400; color: #999; line-height: 40rpx;">
|
<view style="font-size: 24rpx; font-weight: 400; color: #999; line-height: 40rpx;">
|
||||||
ID:{{item.id}}<br>
|
ID:{{item.id}}<br>
|
||||||
{{$t('promotion.text9')}}: {{item.created_at}}<br>
|
{{$t('promotion.text9')}}: {{item.created_at}}<br>
|
||||||
|
{{$t('promotion.text12')}}: {{item.role_id<2 ? $t('promotion.text13') : (item.role_id==2 ? $t('promotion.text15') : $t('promotion.text14'))}}<br>
|
||||||
{{$t('promotion.text10')}}: <span style="color: #333; font-weight: 500; margin-left: 6rpx;"> {{parseFloat(item.performance_large).toFixed(4)}}</span><br>
|
{{$t('promotion.text10')}}: <span style="color: #333; font-weight: 500; margin-left: 6rpx;"> {{parseFloat(item.performance_large).toFixed(4)}}</span><br>
|
||||||
{{$t('promotion.text11')}}: <span style="color: #333; font-weight: 500; margin-left: 6rpx;"> {{item.total_count}}</span>
|
{{$t('promotion.text11')}}: <span style="color: #333; font-weight: 500; margin-left: 6rpx;"> {{item.total_count}}</span>
|
||||||
</view>
|
</view>
|
||||||
@ -195,19 +196,22 @@
|
|||||||
});
|
});
|
||||||
},
|
},
|
||||||
copy(val = ''){
|
copy(val = ''){
|
||||||
const textArea = document.createElement('textarea');
|
// #ifdef APP-PLUS
|
||||||
textArea.value = val;
|
uni.setClipboardData({
|
||||||
document.body.appendChild(textArea);
|
data: val, // e是你要保存的内容
|
||||||
textArea.select();
|
success: function () {
|
||||||
try {
|
uni.showToast({
|
||||||
document.execCommand('copy');
|
title:this.$t('copySuccess'),
|
||||||
uni.showToast({
|
icon:'none'
|
||||||
title: this.$t('copySuccess')
|
})
|
||||||
});
|
}
|
||||||
} catch (err) {
|
})
|
||||||
console.error('Could not copy text: ', err);
|
// #endif
|
||||||
}
|
// #ifdef H5
|
||||||
document.body.removeChild(textArea);
|
this.$copyText(val).then(res => {
|
||||||
|
uni.showToast({title: this.$t('copySuccess'), icon: 'none'});
|
||||||
|
});
|
||||||
|
// #endif
|
||||||
},
|
},
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
<template>
|
<template>
|
||||||
<view>
|
<view>
|
||||||
<uni-nav-bar @clickLeft="goto(1, 1)" left-icon="back" :border="false" :shadow="false" :fixed="true"
|
<uni-nav-bar @clickLeft="goto(1, 1)" left-icon="back" :border="false" :shadow="false" :fixed="true"
|
||||||
title="Invite" backgroundColor="#fff" :statusBar="true"></uni-nav-bar>
|
:title="$t('promotion.text1')" backgroundColor="#fff" :statusBar="true"></uni-nav-bar>
|
||||||
<canvas canvas-id="poster" class="poster_canvas"></canvas>
|
<canvas canvas-id="poster" class="poster_canvas"></canvas>
|
||||||
<view class="minebg">
|
<view class="minebg">
|
||||||
<view class="v1">
|
<view class="v1">
|
||||||
@ -30,7 +30,7 @@
|
|||||||
<uni-icons type="download" size="20" color="#fff"></uni-icons>
|
<uni-icons type="download" size="20" color="#fff"></uni-icons>
|
||||||
<text style="margin-left: 10rpx;">{{$t('invite.text1')}}</text>
|
<text style="margin-left: 10rpx;">{{$t('invite.text1')}}</text>
|
||||||
</button>
|
</button>
|
||||||
<button type="primary" class="b2" @click="copy()">
|
<button type="primary" class="b2" @click="copy('https://web.dxmt.io/#/pages/promotion/invitesignup')">
|
||||||
<uni-icons type="undo" size="20" color="#000"></uni-icons>
|
<uni-icons type="undo" size="20" color="#000"></uni-icons>
|
||||||
<text style="margin-left: 10rpx;">{{$t('invite.text2')}}</text>
|
<text style="margin-left: 10rpx;">{{$t('invite.text2')}}</text>
|
||||||
</button>
|
</button>
|
||||||
@ -107,10 +107,23 @@
|
|||||||
});
|
});
|
||||||
},
|
},
|
||||||
methods: {
|
methods: {
|
||||||
copy() {
|
copy(val) {
|
||||||
this.$copyText(this.qrcode).then(res => {
|
// #ifdef APP-PLUS
|
||||||
|
uni.setClipboardData({
|
||||||
|
data: val, // e是你要保存的内容
|
||||||
|
success: function () {
|
||||||
|
uni.showToast({
|
||||||
|
title:this.$t('copySuccess'),
|
||||||
|
icon:'none'
|
||||||
|
})
|
||||||
|
}
|
||||||
|
})
|
||||||
|
// #endif
|
||||||
|
// #ifdef H5
|
||||||
|
this.$copyText(val).then(res => {
|
||||||
uni.showToast({title: this.$t('copySuccess'), icon: 'none'});
|
uni.showToast({title: this.$t('copySuccess'), icon: 'none'});
|
||||||
});
|
});
|
||||||
|
// #endif
|
||||||
},
|
},
|
||||||
goto(url, type) {
|
goto(url, type) {
|
||||||
if (type == 2) {
|
if (type == 2) {
|
||||||
@ -137,8 +150,8 @@
|
|||||||
});
|
});
|
||||||
const ctx = uni.createCanvasContext('poster');
|
const ctx = uni.createCanvasContext('poster');
|
||||||
ctx.setFillStyle('#2651ef');
|
ctx.setFillStyle('#2651ef');
|
||||||
ctx.fillRect(0, 0, 375, 667);
|
ctx.fillRect(0, 0, 375, 700);
|
||||||
ctx.drawImage(this.promoteBgImgs[this.swiperIndex], 0, 0, 375, 360);
|
ctx.drawImage(this.promoteBgImgs[this.swiperIndex], 0, 0, 375, 700);
|
||||||
ctx.drawImage(this.result, 108, 440, 160, 160);
|
ctx.drawImage(this.result, 108, 440, 160, 160);
|
||||||
// 绘制圆角矩形的参数
|
// 绘制圆角矩形的参数
|
||||||
var x = 80; // 矩形左上角的x坐标
|
var x = 80; // 矩形左上角的x坐标
|
||||||
|
248
pages/promotion/invitesignup.vue
Normal file
248
pages/promotion/invitesignup.vue
Normal file
@ -0,0 +1,248 @@
|
|||||||
|
<template>
|
||||||
|
<view class="page">
|
||||||
|
<view style="padding-top: 100rpx;">
|
||||||
|
<image src="/static/images/logo.png" style="width: 140rpx; height: 60rpx; float: left; margin-left: 20rpx;"></image>
|
||||||
|
<view class="v1" style="line-height: 50rpx;" @click="download">
|
||||||
|
<span style="float: right; margin-left: 10rpx; font-size: 28rpx;">下载APP</span>
|
||||||
|
<uni-icons size="25" type="download" style="float: left;"></uni-icons>
|
||||||
|
</view>
|
||||||
|
<view class="v1" style="line-height: 50rpx; margin-right: 60rpx;" @click="selectlanguage">
|
||||||
|
<span style="float: right; margin-left: 10rpx; font-size: 28rpx;" v-if="$i18n.locale == 'en'">EN</span>
|
||||||
|
<span style="float: right; margin-left: 10rpx; font-size: 28rpx;" v-if="$i18n.locale == 'zh'">中文</span>
|
||||||
|
<image src="/static/images/earth.png" style="width: 40rpx; height: 40rpx; margin-top: 6rpx; float: right;"></image>
|
||||||
|
</view>
|
||||||
|
<view style="clear: both;"></view>
|
||||||
|
</view>
|
||||||
|
<view style="width:94%; margin: 40rpx auto; background: url('/static/images/s9.png'); background-size: 20%; background-repeat: no-repeat; background-position: right;">
|
||||||
|
<view style="font-weight: 600;font-size: 48rpx; line-height: 80rpx; color: #333333;">欢迎来到MT</view>
|
||||||
|
<view style="font-weight: 400;font-size: 28rpx; line-height: 50rpx; color: #333333;">注册并完成交易即可获得高额返佣奖励!</view>
|
||||||
|
</view>
|
||||||
|
<view style="width: 94%; margin: 40rpx auto;">
|
||||||
|
<uni-forms label-position="left" label-width="80rpx" :modelValue="signupModel" :rules="rules" ref="signupModel">
|
||||||
|
<uni-forms-item label="Email" name="email" label-width="180rpx">
|
||||||
|
<uni-easyinput type="text" v-model="signupModel.email" :placeholder="$t('signup.text2')"></uni-easyinput>
|
||||||
|
</uni-forms-item>
|
||||||
|
<uni-forms-item :label="$t('forgot.text23')" name="code" label-width="180rpx">
|
||||||
|
<uni-easyinput type="number" v-model="signupModel.code" :placeholder="$t('signup.text3')">
|
||||||
|
<template #right>
|
||||||
|
<button type="primary"
|
||||||
|
:disabled="isSend"
|
||||||
|
@click="sendCode()"
|
||||||
|
style="font-size: 28rpx; padding: auto 20rpx; width: 220rpx;">{{sendText}}</button>
|
||||||
|
</template>
|
||||||
|
</uni-easyinput>
|
||||||
|
</uni-forms-item>
|
||||||
|
<uni-forms-item :label="$t('forgot.text11')" name="password" label-width="180rpx">
|
||||||
|
<uni-easyinput type="password" :passwordIcon="true" v-model="signupModel.password" :placeholder="$t('login.text5')" />
|
||||||
|
</uni-forms-item>
|
||||||
|
<uni-forms-item :label="$t('signup.text6')" name="trade_password" label-width="180rpx">
|
||||||
|
<uni-easyinput type="password" :passwordIcon="true" v-model="signupModel.trade_password" :placeholder="$t('signup.text7')" />
|
||||||
|
</uni-forms-item>
|
||||||
|
<uni-forms-item :label="$t('signup.text16')" name="invite_code" label-width="180rpx">
|
||||||
|
<uni-easyinput type="text" v-model="signupModel.invite_code" :placeholder="$t('signup.text9')"></uni-easyinput>
|
||||||
|
</uni-forms-item>
|
||||||
|
</uni-forms>
|
||||||
|
</view>
|
||||||
|
<view style="font-weight: 400;font-size: 26rpx;color: #333333; width: 94%; margin: 10rpx auto;">
|
||||||
|
<checkbox :checked="isAgree" style="width: 40rpx; height: 40rpx; transform: scale(0.8,0.8)" />
|
||||||
|
<span style="margin-left: 20rpx;">I have read and agree<span style="color: #1D61FF">《MT User Agreement》</span></span>
|
||||||
|
</view>
|
||||||
|
<view style="bottom: 0rpx; position: absolute; width:100vw; height: 60rpx; ">
|
||||||
|
<button type="primary" style="width: 94%; margin: auto;" @click="signup">{{this.$t('signup.text17')}}</button>
|
||||||
|
</view>
|
||||||
|
<uni-popup ref="popup" background-color="#fff">
|
||||||
|
<view style="width: 80vw; padding: 20rpx 30rpx; border-radius: 40rpx; line-height: 50rpx;">
|
||||||
|
<view style="font-size: 36rpx; font-weight: bold; text-align: center; margin-bottom: 30rpx;">{{$t('index.text25')}}</view>
|
||||||
|
<view style="padding-bottom: 20rpx; width: 100%;">
|
||||||
|
<view @click="switchlan('en')" style="height: 80rpx; line-height: 80rpx;" :style = "$i18n.locale == 'en' ? 'background-color:#1D61E7; color: #fff' : 'color: #333'">
|
||||||
|
<view style="font-weight: 600;font-size: 32rpx; margin-left: 20rpx;">English</view>
|
||||||
|
</view>
|
||||||
|
<view @click="switchlan('zh')" style="height: 80rpx; line-height: 80rpx;" :style = "$i18n.locale == 'zh' ? 'background-color:#1D61E7; color: #fff' : 'color: #333'">
|
||||||
|
<view style="font-weight: 600;font-size: 32rpx;margin-left: 20rpx;">简体中文</view>
|
||||||
|
</view>
|
||||||
|
</view>
|
||||||
|
</view>
|
||||||
|
</uni-popup>
|
||||||
|
</view>
|
||||||
|
</template>
|
||||||
|
|
||||||
|
<script>
|
||||||
|
import zNavigation from '@/components/module/navigation.vue';
|
||||||
|
import { getUserInfo } from '@/config/utils';
|
||||||
|
import {
|
||||||
|
mapState,
|
||||||
|
mapMutations
|
||||||
|
} from 'vuex';
|
||||||
|
export default {
|
||||||
|
components: {
|
||||||
|
zNavigation
|
||||||
|
},
|
||||||
|
data() {
|
||||||
|
return {
|
||||||
|
sendText: this.$t('setPasswork.text8'),
|
||||||
|
isSend: false,
|
||||||
|
isAgree:true,
|
||||||
|
signupModel:{
|
||||||
|
email:"",
|
||||||
|
code:"",
|
||||||
|
password:"",
|
||||||
|
invite_code:"",
|
||||||
|
trade_password:"",
|
||||||
|
},
|
||||||
|
rules: {
|
||||||
|
email: {rules:[{required: true,errorMessage: this.$t('forgot.text2')}]},
|
||||||
|
code:{rules:[{required: true,errorMessage: this.$t('setPasswork.text12')}]},
|
||||||
|
password: {rules:[{required: true,errorMessage: this.$t('login.text10')}]},
|
||||||
|
trade_password:{
|
||||||
|
rules:[{required: true,errorMessage: this.$t('putforward.text5')},
|
||||||
|
{minLength: 6, maxLength: 6, errorMessage: this.$t('putforward.text6') }],
|
||||||
|
},
|
||||||
|
invite_code: {rules:[{required: true,errorMessage: this.$t('putforward.text9')}]}
|
||||||
|
},
|
||||||
|
};
|
||||||
|
},
|
||||||
|
computed: {
|
||||||
|
...mapState(['userInfo']),
|
||||||
|
...mapState(['init'])
|
||||||
|
},
|
||||||
|
//第一次加载
|
||||||
|
onLoad(e) {
|
||||||
|
|
||||||
|
},
|
||||||
|
created() {
|
||||||
|
uni.hideTabBar()
|
||||||
|
},
|
||||||
|
//页面显示
|
||||||
|
onShow() {
|
||||||
|
|
||||||
|
},
|
||||||
|
//方法
|
||||||
|
methods: {
|
||||||
|
selectlanguage(){
|
||||||
|
this.$refs.popup.open('center');
|
||||||
|
},
|
||||||
|
download(){
|
||||||
|
window.location.href='https://www.dxmt.io/download'
|
||||||
|
},
|
||||||
|
switchlan(l){
|
||||||
|
this.$i18n.locale = l;
|
||||||
|
uni.setStorageSync('locale', l)
|
||||||
|
this.$refs.popup.close();
|
||||||
|
},
|
||||||
|
sendCode(){
|
||||||
|
this.isSend = true;
|
||||||
|
if (this.signupModel.email == '') {
|
||||||
|
uni.showToast({title: this.$t('forgot.text19'), icon:'error'});
|
||||||
|
this.isSend = false;
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
if (!this.$base.mailRegular.test(this.signupModel.email)) {
|
||||||
|
uni.showToast({title: this.$t('forgot.text20'), icon:'error'});
|
||||||
|
this.isSend = false;
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
let s = 120;
|
||||||
|
let data = {
|
||||||
|
type: "email",
|
||||||
|
event: "register",
|
||||||
|
email: this.signupModel.email,
|
||||||
|
lang: this.$i18n.locale
|
||||||
|
}
|
||||||
|
this.$http.post('/api/common/captcha', data).then(res => {
|
||||||
|
if(res.code == 0){
|
||||||
|
uni.showToast({title: 'Successfully sent'});
|
||||||
|
this.sendText = this.$t('forgot.text4',{par: s});
|
||||||
|
let intervalId = setInterval(() => {
|
||||||
|
s = s-1;
|
||||||
|
if (s == 0) {
|
||||||
|
clearInterval(intervalId);
|
||||||
|
this.isSend = false;
|
||||||
|
this.sendText = "Get code";
|
||||||
|
}
|
||||||
|
else{
|
||||||
|
this.sendText = this.$t('forgot.text4',{par: s});
|
||||||
|
}
|
||||||
|
}, 1000);
|
||||||
|
}
|
||||||
|
});
|
||||||
|
},
|
||||||
|
signup(){
|
||||||
|
this.$refs.signupModel.validate().then(res=>{
|
||||||
|
if (!this.$base.mailRegular.test(this.signupModel.email)) {
|
||||||
|
uni.showToast({title:this.$t('signup.text12'),icon:'error'});
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
if(!this.$base.passwordRegular.test(this.signupModel.password)){
|
||||||
|
uni.showToast({title:this.$t('signup.text14'),icon:'error'});
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
let data = {
|
||||||
|
email: this.signupModel.email,
|
||||||
|
code: this.signupModel.code,
|
||||||
|
password: this.signupModel.password,
|
||||||
|
invite_code: this.signupModel.invite_code,
|
||||||
|
trade_password: this.signupModel.trade_password,
|
||||||
|
}
|
||||||
|
this.$http.post('/api/common/register', data).then(res => {
|
||||||
|
if(res.code == 0){
|
||||||
|
this.setUserInfo(res.data.userinfo);
|
||||||
|
setTimeout(() => {
|
||||||
|
uni.switchTab({
|
||||||
|
url: '/pages/mine/index'
|
||||||
|
});
|
||||||
|
}, 1000);
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}).catch(err =>{})
|
||||||
|
},
|
||||||
|
onTokenJump(url) {
|
||||||
|
if(this.userInfo.token === typeof(undefined) || this.userInfo.token === undefined){
|
||||||
|
uni.showModal({
|
||||||
|
title: this.$t('gotoLogin.title'),
|
||||||
|
content: this.$t('gotoLogin.content'),
|
||||||
|
confirmText: this.$t('gotoLogin.login'),
|
||||||
|
cancelText: this.$t('gotoLogin.cancel'),
|
||||||
|
success: (res) => {
|
||||||
|
if (res.confirm) {
|
||||||
|
uni.navigateTo({
|
||||||
|
url: "/pages/mine/login"
|
||||||
|
});
|
||||||
|
}
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}else{
|
||||||
|
uni.navigateTo({
|
||||||
|
url: url
|
||||||
|
});
|
||||||
|
}
|
||||||
|
},
|
||||||
|
onPageJump(url) {
|
||||||
|
uni.navigateTo({
|
||||||
|
url: url
|
||||||
|
});
|
||||||
|
},
|
||||||
|
onPageJump1(url) {
|
||||||
|
uni.switchTab({
|
||||||
|
url: url
|
||||||
|
});
|
||||||
|
},
|
||||||
|
},
|
||||||
|
//页面隐藏
|
||||||
|
onHide() {},
|
||||||
|
//页面卸载
|
||||||
|
onUnload() {},
|
||||||
|
//页面下来刷新
|
||||||
|
onPullDownRefresh() {},
|
||||||
|
//页面上拉触底
|
||||||
|
onReachBottom() {},
|
||||||
|
//用户点击分享
|
||||||
|
onShareAppMessage(e) {
|
||||||
|
return this.wxShare();
|
||||||
|
}
|
||||||
|
};
|
||||||
|
</script>
|
||||||
|
<style lang="scss" scoped>
|
||||||
|
@import '@/style/mixin.scss';
|
||||||
|
.page{min-height: 98vh;position: relative;}
|
||||||
|
.v1{ float: right; padding-right: 20upx;}
|
||||||
|
</style>
|
@ -6,15 +6,15 @@
|
|||||||
<uni-col :span="24">
|
<uni-col :span="24">
|
||||||
<view class="wallet1">
|
<view class="wallet1">
|
||||||
<view style="width: 400; font-size: 24rpx; color: #fff;">{{$t('promotionList.text1')}}</view>
|
<view style="width: 400; font-size: 24rpx; color: #fff;">{{$t('promotionList.text1')}}</view>
|
||||||
<view style="width: 500; font-size: 48rpx; color: #fff; line-height: 110rpx;">{{parseFloat(this.team.direct_total).toFixed(4)}}</view>
|
<view style="width: 500; font-size: 48rpx; color: #fff; line-height: 110rpx;">{{parseFloat(this.team.direct_total).toFixed(0)}}</view>
|
||||||
</view>
|
</view>
|
||||||
</uni-col>
|
</uni-col>
|
||||||
</uni-row>
|
</uni-row>
|
||||||
<view style="width: 94%; margin: 0rpx auto;">
|
<view style="width: 94%; margin: 0rpx auto;">
|
||||||
<uni-row :gutter="10" style="margin-top: 30rpx;" v-for="(item, index) in list" :key="index" :style="index==0 ? '' : 'margin-top: 60rpx;'">
|
<uni-row :gutter="10" style="margin-top: 30rpx;" v-for="(item, index) in list" :key="index" :style="index==0 ? '' : 'margin-top: 60rpx;'">
|
||||||
<uni-col :span="6" style="text-align: center;">
|
<uni-col :span="6" style="text-align: center;">
|
||||||
<uni-badge class="uni-badge-left-margin" text="V10" absolute="leftBottom" :offset="[25, 8]"
|
<uni-badge class="uni-badge-left-margin" :text="'v'+item.level" absolute="leftBottom" :offset="[25, 8]"
|
||||||
:customStyle="{background: getBg(10)}" size="small">
|
:customStyle="{background: getBg(item.level)}" size="small">
|
||||||
<image style="width: 120rpx; height: 120rpx; margin: auto;" :src="url" fit="cover"></image>
|
<image style="width: 120rpx; height: 120rpx; margin: auto;" :src="url" fit="cover"></image>
|
||||||
</uni-badge>
|
</uni-badge>
|
||||||
</uni-col>
|
</uni-col>
|
||||||
@ -23,6 +23,7 @@
|
|||||||
<view style="font-size: 24rpx; font-weight: 400; color: #999; line-height: 40rpx;">
|
<view style="font-size: 24rpx; font-weight: 400; color: #999; line-height: 40rpx;">
|
||||||
ID:{{item.id}}<br>
|
ID:{{item.id}}<br>
|
||||||
{{$t('promotion.text9')}}: {{item.created_at}}<br>
|
{{$t('promotion.text9')}}: {{item.created_at}}<br>
|
||||||
|
{{$t('promotion.text12')}}: {{item.role_id<2 ? $t('promotion.text13') : (item.role_id==2 ? $t('promotion.text15') : $t('promotion.text14'))}}<br>
|
||||||
{{$t('promotion.text10')}}: <span style="color: #333; font-weight: 500; margin-left: 6rpx;">{{parseFloat(item.performance_large).toFixed(4)}}</span><br>
|
{{$t('promotion.text10')}}: <span style="color: #333; font-weight: 500; margin-left: 6rpx;">{{parseFloat(item.performance_large).toFixed(4)}}</span><br>
|
||||||
{{$t('promotion.text11')}}: <span style="color: #333; font-weight: 500; margin-left: 6rpx;">{{item.total_count}}</span>
|
{{$t('promotion.text11')}}: <span style="color: #333; font-weight: 500; margin-left: 6rpx;">{{item.total_count}}</span>
|
||||||
</view>
|
</view>
|
||||||
@ -58,6 +59,7 @@
|
|||||||
limit: 10
|
limit: 10
|
||||||
},
|
},
|
||||||
list: [],
|
list: [],
|
||||||
|
lastPage: 1,
|
||||||
};
|
};
|
||||||
},
|
},
|
||||||
computed: {
|
computed: {
|
||||||
@ -81,16 +83,7 @@
|
|||||||
this.team.resultsCell = res.data.performance_small;
|
this.team.resultsCell = res.data.performance_small;
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
let data = {
|
this.getlist();
|
||||||
page: this.par.page,
|
|
||||||
limit: this.par.limit,
|
|
||||||
lang: this.$i18n.locale
|
|
||||||
};
|
|
||||||
this.$http.post('/api/team/list', data).then(res => {
|
|
||||||
if(res.code == 0){
|
|
||||||
this.list = res.data.data;
|
|
||||||
}
|
|
||||||
});
|
|
||||||
}
|
}
|
||||||
|
|
||||||
},
|
},
|
||||||
@ -101,6 +94,21 @@
|
|||||||
url: url
|
url: url
|
||||||
});
|
});
|
||||||
},
|
},
|
||||||
|
getlist(){
|
||||||
|
let data = {
|
||||||
|
page: this.par.page,
|
||||||
|
limit: this.par.limit,
|
||||||
|
lang: this.$i18n.locale
|
||||||
|
};
|
||||||
|
this.$http.post('/api/team/list', data).then(res => {
|
||||||
|
if(res.code == 0){
|
||||||
|
res.data.data.forEach(item => {
|
||||||
|
this.list.push(item);
|
||||||
|
});
|
||||||
|
this.lastPage = res.data.last_page;
|
||||||
|
}
|
||||||
|
});
|
||||||
|
},
|
||||||
goto(url, type) {
|
goto(url, type) {
|
||||||
if (type == 2) {
|
if (type == 2) {
|
||||||
return uni.switchTab({ url: url })
|
return uni.switchTab({ url: url })
|
||||||
@ -116,13 +124,13 @@
|
|||||||
this.dialogVisible = false;
|
this.dialogVisible = false;
|
||||||
},
|
},
|
||||||
getBg(level){
|
getBg(level){
|
||||||
if(level >= 0 && level <= 3){
|
if(parseInt(level) >= 0 && parseInt(level) <= 3){
|
||||||
return 'linear-gradient( 270deg, #CD8817 0%, #ED790D 100%)';
|
return 'linear-gradient( 270deg, #CD8817 0%, #ED790D 100%)';
|
||||||
}else if(level >= 4 && level <= 6){
|
}else if(parseInt(level) >= 4 && parseInt(level) <= 6){
|
||||||
return 'linear-gradient( 270deg, #FB5E00 0%, #FFA500 100%)';
|
return 'linear-gradient( 270deg, #FB5E00 0%, #FFA500 100%)';
|
||||||
}else if(level >= 7 && level <= 9){
|
}else if(parseInt(level) >= 7 && parseInt(level) <= 9){
|
||||||
return 'linear-gradient( 270deg, #216CFF 0%, #47E3FF 100%)';
|
return 'linear-gradient( 270deg, #216CFF 0%, #47E3FF 100%)';
|
||||||
}else if(level == 10){
|
}else if(parseInt(level) == 10){
|
||||||
return 'linear-gradient( 270deg, #CC44FF 1%, #FF5666 100%)';
|
return 'linear-gradient( 270deg, #CC44FF 1%, #FF5666 100%)';
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -134,7 +142,12 @@
|
|||||||
//页面下来刷新
|
//页面下来刷新
|
||||||
onPullDownRefresh() {},
|
onPullDownRefresh() {},
|
||||||
//页面上拉触底
|
//页面上拉触底
|
||||||
onReachBottom() {},
|
onReachBottom() {
|
||||||
|
if(this.page<this.lastPage){
|
||||||
|
this.page = this.page + 1;
|
||||||
|
this.getlist();
|
||||||
|
}
|
||||||
|
},
|
||||||
//用户点击分享
|
//用户点击分享
|
||||||
onShareAppMessage(e) {
|
onShareAppMessage(e) {
|
||||||
return this.wxShare();
|
return this.wxShare();
|
||||||
|
@ -149,7 +149,8 @@ import detailsVue from './details.vue';
|
|||||||
let data = {
|
let data = {
|
||||||
product_id: this.detail.id,
|
product_id: this.detail.id,
|
||||||
quantity: this.answerModel.num,
|
quantity: this.answerModel.num,
|
||||||
trade_password: this.pingcode
|
trade_password: this.pingcode,
|
||||||
|
lang: this.$i18n.locale
|
||||||
}
|
}
|
||||||
this.$http.post('/api/productOrder/create', data).then(res => {
|
this.$http.post('/api/productOrder/create', data).then(res => {
|
||||||
if(res.code == 0){
|
if(res.code == 0){
|
||||||
|
@ -48,7 +48,11 @@
|
|||||||
</view>
|
</view>
|
||||||
<view class="content" v-if="navIndex==1">
|
<view class="content" v-if="navIndex==1">
|
||||||
<view class="v2" style="margin-top: 20rpx" v-if="list1.length > 0" v-for="(item, index) in list1" :key="index">
|
<view class="v2" style="margin-top: 20rpx" v-if="list1.length > 0" v-for="(item, index) in list1" :key="index">
|
||||||
<view class="title">{{item.questionnaire.title}}</view>
|
<view class="title">{{item.product.title}}</view>
|
||||||
|
<view style="font-weight: 400;font-size: 28rpx;color: #999999;">
|
||||||
|
{{$t('Questionnaire.text11')}}: <span style="color: #1D61E7;">${{parseFloat(item.product.interest_rate).toFixed(2)}}</span>
|
||||||
|
<span style="margin-left: 60rpx;">{{$t('Questionnaire.text12')}}</span>: <span style="color: #1D61E7;">{{item.product.billing_cycle}} Days</span>
|
||||||
|
</view>
|
||||||
<view style="font-weight: 400;font-size: 28rpx;color: #999999;">{{$t('Questionnaire.text8')}}: {{item.created_at.slice(0, 19)}}</view>
|
<view style="font-weight: 400;font-size: 28rpx;color: #999999;">{{$t('Questionnaire.text8')}}: {{item.created_at.slice(0, 19)}}</view>
|
||||||
<view style="text-align: right;">
|
<view style="text-align: right;">
|
||||||
<button type="primary" class="b" style="float: right;" v-if="item.status == 1" @click="onTokenJump('/pages/questionnaire/answer?id='+item.id)">{{$t('Questionnaire.text9')}}</button>
|
<button type="primary" class="b" style="float: right;" v-if="item.status == 1" @click="onTokenJump('/pages/questionnaire/answer?id='+item.id)">{{$t('Questionnaire.text9')}}</button>
|
||||||
@ -63,7 +67,7 @@
|
|||||||
</view>
|
</view>
|
||||||
<view class="content" v-if="navIndex==2">
|
<view class="content" v-if="navIndex==2">
|
||||||
<view class="v2" style="margin-top: 20rpx" v-if="list2.length > 0" v-for="(item, index) in list2" :key="index">
|
<view class="v2" style="margin-top: 20rpx" v-if="list2.length > 0" v-for="(item, index) in list2" :key="index">
|
||||||
<view class="title">{{item.questionnaire.title}}</view>
|
<view class="title">{{item.product.title}}</view>
|
||||||
<view style="font-weight: 400;font-size: 28rpx;color: #999999;">{{$t('Questionnaire.text8')}}: {{item.created_at.slice(0, 19)}}</view>
|
<view style="font-weight: 400;font-size: 28rpx;color: #999999;">{{$t('Questionnaire.text8')}}: {{item.created_at.slice(0, 19)}}</view>
|
||||||
<view style="text-align: right;"><button type="primary" class="b" style="float: right; background-color: #eee; color: #333">{{$t('Questionnaire.text10')}}</button></view>
|
<view style="text-align: right;"><button type="primary" class="b" style="float: right; background-color: #eee; color: #333">{{$t('Questionnaire.text10')}}</button></view>
|
||||||
<view style="clear: both;"></view>
|
<view style="clear: both;"></view>
|
||||||
@ -98,8 +102,20 @@
|
|||||||
list2: [],
|
list2: [],
|
||||||
par:{
|
par:{
|
||||||
page: 1,
|
page: 1,
|
||||||
limit: 10
|
limit: 10,
|
||||||
|
lastPage: 1
|
||||||
},
|
},
|
||||||
|
par1:{
|
||||||
|
page: 1,
|
||||||
|
limit: 10,
|
||||||
|
lastPage: 1
|
||||||
|
},
|
||||||
|
par2:{
|
||||||
|
page: 1,
|
||||||
|
limit: 10,
|
||||||
|
lastPage: 1
|
||||||
|
},
|
||||||
|
|
||||||
};
|
};
|
||||||
},
|
},
|
||||||
computed: {
|
computed: {
|
||||||
@ -107,62 +123,95 @@
|
|||||||
},
|
},
|
||||||
//第一次加载
|
//第一次加载
|
||||||
onLoad(e) {
|
onLoad(e) {
|
||||||
|
uni.showLoading({
|
||||||
|
title: this.$t('loading')
|
||||||
|
})
|
||||||
|
if(this.userInfo.token === typeof(undefined) || this.userInfo.token === undefined){
|
||||||
|
}else{
|
||||||
|
this.getList1();
|
||||||
|
this.getList2();
|
||||||
|
}
|
||||||
},
|
},
|
||||||
created() {
|
created() {
|
||||||
uni.hideTabBar()
|
uni.hideTabBar()
|
||||||
},
|
},
|
||||||
//页面显示
|
//页面显示
|
||||||
onShow() {
|
onShow() {
|
||||||
uni.showLoading({
|
this.par.page = 1
|
||||||
title: this.$t('loading')
|
this.list = [];
|
||||||
})
|
this.getList();
|
||||||
let data = {
|
|
||||||
page: this.par.page,
|
|
||||||
limit: this.par.limit,
|
|
||||||
lang: this.$i18n.locale,
|
|
||||||
};
|
|
||||||
this.$http.post('/api/product/list', data).then(res => {
|
|
||||||
if(res.code == 0){
|
|
||||||
this.list = res.data.data;
|
|
||||||
uni.hideLoading();
|
|
||||||
}
|
|
||||||
}).catch(err => {
|
|
||||||
uni.hideLoading()
|
|
||||||
});
|
|
||||||
if(this.userInfo.token === typeof(undefined) || this.userInfo.token === undefined){
|
|
||||||
}else{
|
|
||||||
let data2 = {
|
|
||||||
page: this.par.page,
|
|
||||||
limit: this.par.limit,
|
|
||||||
lang: this.$i18n.locale,
|
|
||||||
step: 'progress'
|
|
||||||
};
|
|
||||||
this.$http.post('/api/server/list', data2).then(res => {
|
|
||||||
if(res.code == 0){
|
|
||||||
this.list1 = res.data.data;
|
|
||||||
}
|
|
||||||
}).catch(err => {
|
|
||||||
});
|
|
||||||
let data1 = {
|
|
||||||
page: this.par.page,
|
|
||||||
limit: this.par.limit,
|
|
||||||
lang: this.$i18n.locale,
|
|
||||||
step: 'done'
|
|
||||||
};
|
|
||||||
this.$http.post('/api/server/list', data1).then(res => {
|
|
||||||
if(res.code == 0){
|
|
||||||
this.list2 = res.data.data;
|
|
||||||
}
|
|
||||||
}).catch(err => {
|
|
||||||
});
|
|
||||||
}
|
|
||||||
|
|
||||||
},
|
},
|
||||||
//方法
|
//方法
|
||||||
methods: {
|
methods: {
|
||||||
checkIndex(index) {
|
checkIndex(index) {
|
||||||
this.navIndex = index;
|
this.navIndex = index;
|
||||||
|
if(this.navIndex == 0){
|
||||||
|
this.par.page = 1;
|
||||||
|
this.list = [];
|
||||||
|
this.getList();
|
||||||
|
}
|
||||||
|
if(this.navIndex == 1){
|
||||||
|
this.par1.page = 1;
|
||||||
|
this.list1 = [];
|
||||||
|
this.getList1();
|
||||||
|
}
|
||||||
|
if(this.navIndex == 2){
|
||||||
|
this.par2.page = 1;
|
||||||
|
this.list2 = [];
|
||||||
|
this.getList2();
|
||||||
|
}
|
||||||
|
},
|
||||||
|
getList(){
|
||||||
|
let data = {
|
||||||
|
page: this.par.page,
|
||||||
|
limit: this.par.limit,
|
||||||
|
lang: this.$i18n.locale,
|
||||||
|
};
|
||||||
|
this.$http.post('/api/product/list', data).then(res => {
|
||||||
|
if(res.code == 0){
|
||||||
|
res.data.data.forEach(item => {
|
||||||
|
this.list.push(item);
|
||||||
|
});
|
||||||
|
this.par.lastPage = res.data.last_page
|
||||||
|
uni.hideLoading();
|
||||||
|
}
|
||||||
|
}).catch(err => {
|
||||||
|
uni.hideLoading()
|
||||||
|
});
|
||||||
|
},
|
||||||
|
getList1(){
|
||||||
|
let data2 = {
|
||||||
|
page: this.par1.page,
|
||||||
|
limit: this.par1.limit,
|
||||||
|
lang: this.$i18n.locale,
|
||||||
|
step: 'progress'
|
||||||
|
};
|
||||||
|
this.$http.post('/api/server/list', data2).then(res => {
|
||||||
|
if(res.code == 0){
|
||||||
|
res.data.data.forEach(item => {
|
||||||
|
this.list1.push(item);
|
||||||
|
});
|
||||||
|
this.par1.lastPage = res.data.last_page
|
||||||
|
}
|
||||||
|
}).catch(err => {
|
||||||
|
});
|
||||||
|
},
|
||||||
|
getList2(){
|
||||||
|
let data1 = {
|
||||||
|
page: this.par2.page,
|
||||||
|
limit: this.par2.limit,
|
||||||
|
lang: this.$i18n.locale,
|
||||||
|
step: 'done'
|
||||||
|
};
|
||||||
|
this.$http.post('/api/server/list', data1).then(res => {
|
||||||
|
if(res.code == 0){
|
||||||
|
res.data.data.forEach(item => {
|
||||||
|
this.list2.push(item);
|
||||||
|
});
|
||||||
|
this.par2.lastPage = res.data.last_page
|
||||||
|
}
|
||||||
|
}).catch(err => {
|
||||||
|
});
|
||||||
},
|
},
|
||||||
onTokenJump(url) {
|
onTokenJump(url) {
|
||||||
if(this.userInfo.token === typeof(undefined) || this.userInfo.token === undefined){
|
if(this.userInfo.token === typeof(undefined) || this.userInfo.token === undefined){
|
||||||
@ -193,7 +242,26 @@
|
|||||||
//页面下来刷新
|
//页面下来刷新
|
||||||
onPullDownRefresh() {},
|
onPullDownRefresh() {},
|
||||||
//页面上拉触底
|
//页面上拉触底
|
||||||
onReachBottom() {},
|
onReachBottom() {
|
||||||
|
if(this.navIndex == 0){
|
||||||
|
if(this.par.page < this.par.lastPage){
|
||||||
|
this.par.page = this.par.page + 1;
|
||||||
|
this.getList();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if(this.navIndex == 1){
|
||||||
|
if(this.par1.page < this.par1.lastPage){
|
||||||
|
this.par1.page = this.par1.page + 1;
|
||||||
|
this.getList1();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if(this.navIndex == 2){
|
||||||
|
if(this.par2.page < this.par2.lastPage){
|
||||||
|
this.par2.page = this.par2.page + 1;
|
||||||
|
this.getList2();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
//用户点击分享
|
//用户点击分享
|
||||||
onShareAppMessage(e) {
|
onShareAppMessage(e) {
|
||||||
return this.wxShare();
|
return this.wxShare();
|
||||||
|
@ -65,7 +65,8 @@
|
|||||||
page: 1,
|
page: 1,
|
||||||
limit: 10
|
limit: 10
|
||||||
},
|
},
|
||||||
kw: ''
|
kw: '',
|
||||||
|
lastPage: 0
|
||||||
};
|
};
|
||||||
},
|
},
|
||||||
computed: {
|
computed: {
|
||||||
@ -95,7 +96,10 @@
|
|||||||
};
|
};
|
||||||
this.$http.post('/api/product/list', data).then(res => {
|
this.$http.post('/api/product/list', data).then(res => {
|
||||||
if(res.code == 0){
|
if(res.code == 0){
|
||||||
this.list = res.data.data;
|
res.data.data.forEach(item => {
|
||||||
|
this.list.push(item);
|
||||||
|
});
|
||||||
|
this.par.lastPage = res.data.last_page
|
||||||
uni.hideLoading();
|
uni.hideLoading();
|
||||||
}
|
}
|
||||||
}).catch(err => {
|
}).catch(err => {
|
||||||
@ -155,8 +159,10 @@
|
|||||||
onPullDownRefresh() {},
|
onPullDownRefresh() {},
|
||||||
//页面上拉触底
|
//页面上拉触底
|
||||||
onReachBottom() {
|
onReachBottom() {
|
||||||
this.par.page = this.par.page + 1;
|
if(this.par.page < fthis.par.lastPage){
|
||||||
this.getlist();
|
this.par.page = this.par.page + 1;
|
||||||
|
this.getlist();
|
||||||
|
}
|
||||||
},
|
},
|
||||||
//用户点击分享
|
//用户点击分享
|
||||||
onShareAppMessage(e) {
|
onShareAppMessage(e) {
|
||||||
|
@ -37,7 +37,7 @@
|
|||||||
</view>
|
</view>
|
||||||
<view style="clear: both;"></view>
|
<view style="clear: both;"></view>
|
||||||
</view>
|
</view>
|
||||||
<view style="width: 92%; margin: auto;">
|
<view style="width: 96%; margin: auto;">
|
||||||
<view class="cell_list" style="border-bottom: 2rpx solid #ddd;" v-if="list.length > 0" v-for="(n, index) in list" v-bind:key="index">
|
<view class="cell_list" style="border-bottom: 2rpx solid #ddd;" v-if="list.length > 0" v-for="(n, index) in list" v-bind:key="index">
|
||||||
<template v-if="n.name == $t('recharge.title')">
|
<template v-if="n.name == $t('recharge.title')">
|
||||||
<view class="d">
|
<view class="d">
|
||||||
@ -45,7 +45,7 @@
|
|||||||
</view>
|
</view>
|
||||||
<view class="u1 u">
|
<view class="u1 u">
|
||||||
<span v-if='n.status == 2'>+</span>
|
<span v-if='n.status == 2'>+</span>
|
||||||
<span :style="n.status == 2 ? 'color:#1D61E7' : ''">{{parseFloat(n.amount).toFixed(2)}} USDT</span>
|
<span :style="n.status == 2 ? 'color:#1D61E7' : ''">{{parseFloat(n.amount).toFixed(4)}} USDT</span>
|
||||||
<view class="d" style="text-align: right; color: #1D61E7;">{{ recharge_status_list[n.status]}}</view>
|
<view class="d" style="text-align: right; color: #1D61E7;">{{ recharge_status_list[n.status]}}</view>
|
||||||
</view>
|
</view>
|
||||||
</template>
|
</template>
|
||||||
@ -54,17 +54,19 @@
|
|||||||
{{n.name}}<view class="d1">{{ n.created_at}}</view>
|
{{n.name}}<view class="d1">{{ n.created_at}}</view>
|
||||||
</view>
|
</view>
|
||||||
<view class="u1 u">
|
<view class="u1 u">
|
||||||
<span>-{{parseFloat(n.deduction_amount).toFixed(2)}} USDT</span>
|
<span>-{{parseFloat(n.deduction_amount).toFixed(4)}} USDT</span>
|
||||||
<view class="d" style="text-align: right; color: #1D61E7;">{{ withdrawl_status_list[n.status] }}</view>
|
<view class="d" style="text-align: right; color: #1D61E7;">{{ withdrawl_status_list[n.status] }}</view>
|
||||||
</view>
|
</view>
|
||||||
</template>
|
</template>
|
||||||
<template v-else>
|
<template v-else>
|
||||||
<view class="d">
|
<view class="d">
|
||||||
{{n.type}}<view class="d1">{{n.created_at.slice(0, 19)}}</view>
|
{{n.type}}
|
||||||
</view>
|
<view class="d1" style="white-space: nowrap; overflow: hidden; text-overflow: ellipsis; width: 400rpx" v-if="select.type==300">Into mail: {{n.target}}</view>
|
||||||
<view class="u1 u">
|
<view class="d1">{{n.created_at.slice(0, 19)}}</view>
|
||||||
<span>{{parseFloat(n.amount).toFixed(2)}} USDT</span>
|
</view>
|
||||||
<view class="d" style="text-align: right; color: #1D61E7;">After:{{parseFloat(n.after).toFixed(2)}}</view>
|
<view class="u1 u" style="text-align: right;">
|
||||||
|
<span :style="select.type==300?' margin-top: 20rpx;':''">{{parseFloat(n.amount).toFixed(4)}} USDT</span>
|
||||||
|
<view class="d" :style="select.type==300?'margin-top: 40rpx;':''" style="text-align: right; color: #1D61E7;">{{$t('wallet.text6')}}:{{parseFloat(n.after).toFixed(4)}}</view>
|
||||||
</view>
|
</view>
|
||||||
</template>
|
</template>
|
||||||
</view>
|
</view>
|
||||||
@ -142,9 +144,26 @@
|
|||||||
uni.showLoading({
|
uni.showLoading({
|
||||||
title: this.$t('loading')
|
title: this.$t('loading')
|
||||||
});
|
});
|
||||||
if(e.id != typeof(undefined) && e.id != undefined){
|
if(e.id){
|
||||||
this.isActive = e.id;
|
this.isActive = e.id;
|
||||||
this.index = e.id;
|
this.index = e.id;
|
||||||
|
switch(this.isActive.toString()){
|
||||||
|
case '0':
|
||||||
|
this.select.type = '';
|
||||||
|
break;
|
||||||
|
case '1':
|
||||||
|
this.select.type = '99999';
|
||||||
|
break;
|
||||||
|
case '2':
|
||||||
|
this.select.type = '100';
|
||||||
|
break;
|
||||||
|
case '3':
|
||||||
|
this.select.type = '200';
|
||||||
|
break;
|
||||||
|
case '4':
|
||||||
|
this.select.type = '300';
|
||||||
|
break;
|
||||||
|
}
|
||||||
};
|
};
|
||||||
this.$http.get('/api/common/init?lang='+this.$i18n.locale).then(res => {
|
this.$http.get('/api/common/init?lang='+this.$i18n.locale).then(res => {
|
||||||
this.init = res.data;
|
this.init = res.data;
|
||||||
|
@ -44,9 +44,9 @@
|
|||||||
</view>
|
</view>
|
||||||
<view class="cell_list" style="padding: 30rpx 0rpx;border-bottom: 2rpx solid #ddd;" v-if="list.length > 0" v-for="item in list" :key="item.id">
|
<view class="cell_list" style="padding: 30rpx 0rpx;border-bottom: 2rpx solid #ddd;" v-if="list.length > 0" v-for="item in list" :key="item.id">
|
||||||
<view class="t">{{item.type}}<view class="d1">{{item.created_at.slice(0, 19)}}</view></view>
|
<view class="t">{{item.type}}<view class="d1">{{item.created_at.slice(0, 19)}}</view></view>
|
||||||
<view class="u1 u">
|
<view class="u1 u" style="text-align: right;">
|
||||||
<span>{{parseFloat(item.amount).toFixed(2)}} USDT</span>
|
<span>{{parseFloat(item.amount).toFixed(2)}} USDT</span>
|
||||||
<view class="d" style="text-align: right; color: #1D61E7;">After:{{parseFloat(item.after).toFixed(2)}}</view>
|
<view class="d" style="text-align: right; color: #1D61E7;">{{$t('wallet.text6')}}:{{parseFloat(item.after).toFixed(4)}}</view>
|
||||||
</view>
|
</view>
|
||||||
</view>
|
</view>
|
||||||
<view style="text-align: center; padding-bottom: 160rpx;" v-if="list.length == 0">
|
<view style="text-align: center; padding-bottom: 160rpx;" v-if="list.length == 0">
|
||||||
|
@ -205,26 +205,42 @@
|
|||||||
this.qrcode = res.data.order.address;
|
this.qrcode = res.data.order.address;
|
||||||
this.icon = this.rechargeModel.network == 'TRC-20' ? '/static/images/s1.png' : '/static/images/s2.png'
|
this.icon = this.rechargeModel.network == 'TRC-20' ? '/static/images/s1.png' : '/static/images/s2.png'
|
||||||
}else{
|
}else{
|
||||||
uni.showToast({
|
if(this.$i18n.locale == 'zh'){
|
||||||
title: res.msg
|
console.log(res.msg)
|
||||||
})
|
if(res.msg.indexOf('limit of uncompleted orders') > 0){
|
||||||
|
uni.showToast({
|
||||||
|
title: '订单已达上限,请完成该订单或者15分钟后再试'
|
||||||
|
})
|
||||||
|
}else{
|
||||||
|
uni.showToast({
|
||||||
|
title: res.msg
|
||||||
|
})
|
||||||
|
}
|
||||||
|
}else{
|
||||||
|
uni.showToast({
|
||||||
|
title: res.msg
|
||||||
|
})
|
||||||
|
}
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
},
|
},
|
||||||
copy(val = ''){
|
copy(val = ''){
|
||||||
const textArea = document.createElement('textarea');
|
// #ifdef APP-PLUS
|
||||||
textArea.value = val;
|
uni.setClipboardData({
|
||||||
document.body.appendChild(textArea);
|
data: val, // e是你要保存的内容
|
||||||
textArea.select();
|
success: function () {
|
||||||
try {
|
uni.showToast({
|
||||||
document.execCommand('copy');
|
title:this.$t('copySuccess'),
|
||||||
uni.showToast({
|
icon:'none'
|
||||||
title: this.$t('copySuccess')
|
})
|
||||||
});
|
}
|
||||||
} catch (err) {
|
})
|
||||||
console.error('Could not copy text: ', err);
|
// #endif
|
||||||
}
|
// #ifdef H5
|
||||||
document.body.removeChild(textArea);
|
this.$copyText(val).then(res => {
|
||||||
|
uni.showToast({title: this.$t('copySuccess'), icon: 'none'});
|
||||||
|
});
|
||||||
|
// #endif
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
//页面隐藏
|
//页面隐藏
|
||||||
|
@ -4,7 +4,7 @@
|
|||||||
// 请求配置说明:https://ext.dcloud.net.cn/plugin?id=822
|
// 请求配置说明:https://ext.dcloud.net.cn/plugin?id=822
|
||||||
import $http from '@/config/requestConfig';
|
import $http from '@/config/requestConfig';
|
||||||
/**** 结束 *****/
|
/**** 结束 *****/
|
||||||
|
const lang = uni.getStorageSync('locale') || 'en';
|
||||||
const platform = uni.getSystemInfoSync().platform;
|
const platform = uni.getSystemInfoSync().platform;
|
||||||
// 主颜色
|
// 主颜色
|
||||||
const $mainColor = "FF5B78";
|
const $mainColor = "FF5B78";
|
||||||
@ -37,9 +37,7 @@ export const getServerNo = function(version,isPrompt = false, callback) {
|
|||||||
*/
|
*/
|
||||||
/****************以下是示例*******************/
|
/****************以下是示例*******************/
|
||||||
// 可以用自己项目的请求方法
|
// 可以用自己项目的请求方法
|
||||||
$http.get("api/common/v1/app_version", httpData,{
|
$http.get("/api/common/init").then(res => {
|
||||||
isPrompt: isPrompt
|
|
||||||
}).then(res => {
|
|
||||||
/* res的数据说明
|
/* res的数据说明
|
||||||
* | 参数名称 | 一定返回 | 类型 | 描述
|
* | 参数名称 | 一定返回 | 类型 | 描述
|
||||||
* | -------------|--------- | --------- | ------------- |
|
* | -------------|--------- | --------- | ------------- |
|
||||||
@ -49,8 +47,16 @@ export const getServerNo = function(version,isPrompt = false, callback) {
|
|||||||
* | forceUpdate | y | boolean | 是否强制更新 |
|
* | forceUpdate | y | boolean | 是否强制更新 |
|
||||||
* | downloadUrl | y | String | 版本下载链接(IOS安装包更新请放跳转store应用商店链接,安卓apk和wgt文件放文件下载链接) |
|
* | downloadUrl | y | String | 版本下载链接(IOS安装包更新请放跳转store应用商店链接,安卓apk和wgt文件放文件下载链接) |
|
||||||
*/
|
*/
|
||||||
if (res && res.downloadUrl) {
|
if (res && res.data.client_download_url) {
|
||||||
callback && callback(res);
|
if(parseInt(version) < parseInt(res.data.client_version)){
|
||||||
|
callback && callback({
|
||||||
|
versionCode: parseInt(res.data.client_version),
|
||||||
|
versionName: res.data.soft_version,
|
||||||
|
versionInfo: "",
|
||||||
|
forceUpdate: true,
|
||||||
|
downloadUrl: res.data.client_download_url,
|
||||||
|
});
|
||||||
|
}
|
||||||
} else if (isPrompt) {
|
} else if (isPrompt) {
|
||||||
uni.showToast({
|
uni.showToast({
|
||||||
title: "暂无新版本",
|
title: "暂无新版本",
|
||||||
@ -78,23 +84,23 @@ export const getDownload = function(data) {
|
|||||||
if (status == 200) {
|
if (status == 200) {
|
||||||
res.change({
|
res.change({
|
||||||
progressValue: 100,
|
progressValue: 100,
|
||||||
progressTip:"正在安装文件...",
|
progressTip: lang=='en' ? 'installing...' : "正在安装文件...",
|
||||||
progress: true,
|
progress: true,
|
||||||
buttonNum: 0
|
buttonNum: 0
|
||||||
});
|
});
|
||||||
plus.runtime.install(download.filename, {}, function() {
|
plus.runtime.install(download.filename, {}, function() {
|
||||||
res.change({
|
res.change({
|
||||||
contentText: "应用资源更新完成!",
|
contentText: lang=='en' ? 'Application resource update completed' : "应用资源更新完成!",
|
||||||
buttonNum: 1,
|
buttonNum: 1,
|
||||||
progress: false
|
progress: false
|
||||||
});
|
});
|
||||||
}, function(e) {
|
}, function(e) {
|
||||||
res.cancel();
|
res.cancel();
|
||||||
plus.nativeUI.alert("安装文件失败[" + e.code + "]:" + e.message);
|
plus.nativeUI.alert(lang=='en' ? 'Installation file failed[' + e.code + ']' + e.message : "安装文件失败[" + e.code + "]:" + e.message);
|
||||||
});
|
});
|
||||||
} else {
|
} else {
|
||||||
res.change({
|
res.change({
|
||||||
contentText: "文件下载失败...",
|
contentText: lang=='en' ? 'File download failed' : "文件下载失败...",
|
||||||
buttonNum: 1,
|
buttonNum: 1,
|
||||||
progress: false
|
progress: false
|
||||||
});
|
});
|
||||||
@ -106,14 +112,14 @@ export const getDownload = function(data) {
|
|||||||
case 1: // 开始
|
case 1: // 开始
|
||||||
res.change({
|
res.change({
|
||||||
progressValue:0,
|
progressValue:0,
|
||||||
progressTip:"准备下载...",
|
progressTip: lang=='en' ? 'Ready to download...' : "准备下载...",
|
||||||
progress: true
|
progress: true
|
||||||
});
|
});
|
||||||
break;
|
break;
|
||||||
case 2: // 已连接到服务器
|
case 2: // 已连接到服务器
|
||||||
res.change({
|
res.change({
|
||||||
progressValue:0,
|
progressValue:0,
|
||||||
progressTip:"开始下载...",
|
progressTip: lang=='en' ? 'Start downloading...' : "开始下载...",
|
||||||
progress: true
|
progress: true
|
||||||
});
|
});
|
||||||
break;
|
break;
|
||||||
@ -123,7 +129,7 @@ export const getDownload = function(data) {
|
|||||||
lastProgressValue = progress;
|
lastProgressValue = progress;
|
||||||
res.change({
|
res.change({
|
||||||
progressValue:progress,
|
progressValue:progress,
|
||||||
progressTip: "已下载" + progress + "%",
|
progressTip: lang=='en' ? "Downloaded" + progress + "%" : "已下载" + progress + "%",
|
||||||
progress: true
|
progress: true
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
@ -135,7 +141,7 @@ export const getDownload = function(data) {
|
|||||||
// 取消下载
|
// 取消下载
|
||||||
dtask && dtask.abort();
|
dtask && dtask.abort();
|
||||||
uni.showToast({
|
uni.showToast({
|
||||||
title: "已取消下载",
|
title: lang=='en' ? 'Download cancelled' : "已取消下载",
|
||||||
icon:"none"
|
icon:"none"
|
||||||
});
|
});
|
||||||
},
|
},
|
||||||
@ -275,7 +281,7 @@ function updatePopup(data, callback) {
|
|||||||
{
|
{
|
||||||
tag: 'font',
|
tag: 'font',
|
||||||
id: 'title',
|
id: 'title',
|
||||||
text: "发现新版本" + data.versionName,
|
text: lang=='en' ? "Discover a new version" + data.versionName : "发现新版本" + data.versionName,
|
||||||
textStyles: {
|
textStyles: {
|
||||||
size: '18px',
|
size: '18px',
|
||||||
color: "#333",
|
color: "#333",
|
||||||
@ -358,7 +364,7 @@ function updatePopup(data, callback) {
|
|||||||
popupViewContentList.push({
|
popupViewContentList.push({
|
||||||
tag: 'font',
|
tag: 'font',
|
||||||
id: 'cancelText',
|
id: 'cancelText',
|
||||||
text: "暂不升级",
|
text: lang=='en' ? 'Not upgrading temporarily' : "暂不升级",
|
||||||
textStyles: {
|
textStyles: {
|
||||||
size: '14px',
|
size: '14px',
|
||||||
color: "#666",
|
color: "#666",
|
||||||
@ -375,7 +381,7 @@ function updatePopup(data, callback) {
|
|||||||
popupViewContentList.push({
|
popupViewContentList.push({
|
||||||
tag: 'font',
|
tag: 'font',
|
||||||
id: 'confirmText',
|
id: 'confirmText',
|
||||||
text: "立即升级",
|
text: lang=='en' ? 'upgrade now' : "立即升级",
|
||||||
textStyles: {
|
textStyles: {
|
||||||
size: '14px',
|
size: '14px',
|
||||||
color: "#FFF",
|
color: "#FFF",
|
||||||
@ -429,8 +435,8 @@ function downloadPopupDrawing(data){
|
|||||||
const viewContentWidth = popupViewWidth - (viewContentPadding * 2);
|
const viewContentWidth = popupViewWidth - (viewContentPadding * 2);
|
||||||
// 弹窗容器高度
|
// 弹窗容器高度
|
||||||
let popupViewHeight = viewContentPadding * 3 + 60;
|
let popupViewHeight = viewContentPadding * 3 + 60;
|
||||||
let progressTip = data.progressTip || "准备下载...";
|
let progressTip = data.progressTip || lang=='en' ? 'Ready to download' :"准备下载...";
|
||||||
let contentText = data.contentText || "正在为您更新,请耐心等待";
|
let contentText = data.contentText || lang=='en' ? 'We are updating for you, please be patient' :"正在为您更新,请耐心等待";
|
||||||
let elementList = [
|
let elementList = [
|
||||||
{
|
{
|
||||||
tag: 'rect', //背景色
|
tag: 'rect', //背景色
|
||||||
@ -539,7 +545,7 @@ function downloadPopupDrawing(data){
|
|||||||
{
|
{
|
||||||
tag: 'font',
|
tag: 'font',
|
||||||
id: 'cancelText',
|
id: 'cancelText',
|
||||||
text: "取消下载",
|
text: lang=='en' ? 'Cancel Download' :"取消下载",
|
||||||
textStyles: {
|
textStyles: {
|
||||||
size: '14px',
|
size: '14px',
|
||||||
color: "#666",
|
color: "#666",
|
||||||
@ -556,7 +562,7 @@ function downloadPopupDrawing(data){
|
|||||||
{
|
{
|
||||||
tag: 'font',
|
tag: 'font',
|
||||||
id: 'confirmText',
|
id: 'confirmText',
|
||||||
text: "后台下载",
|
text: lang=='en' ? 'Backend download' :"后台下载",
|
||||||
textStyles: {
|
textStyles: {
|
||||||
size: '14px',
|
size: '14px',
|
||||||
color: "#FFF",
|
color: "#FFF",
|
||||||
@ -591,7 +597,7 @@ function downloadPopupDrawing(data){
|
|||||||
{
|
{
|
||||||
tag: 'font',
|
tag: 'font',
|
||||||
id: 'confirmText',
|
id: 'confirmText',
|
||||||
text: "关闭",
|
text: lang=='en' ? 'close' :"关闭",
|
||||||
textStyles: {
|
textStyles: {
|
||||||
size: '14px',
|
size: '14px',
|
||||||
color: "#FFF",
|
color: "#FFF",
|
||||||
|
@ -22,7 +22,7 @@ class MattermostClient {
|
|||||||
this.reconnectTimer = null;
|
this.reconnectTimer = null;
|
||||||
|
|
||||||
// 心跳相关
|
// 心跳相关
|
||||||
this.heartbeatInterval = 30000; // 30秒
|
this.heartbeatInterval = 10000; // 30秒
|
||||||
this.heartbeatTimer = null;
|
this.heartbeatTimer = null;
|
||||||
this.lastHeartbeatResponse = Date.now();
|
this.lastHeartbeatResponse = Date.now();
|
||||||
|
|
||||||
|
BIN
static/images/s9.png
Normal file
BIN
static/images/s9.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 16 KiB |
Loading…
x
Reference in New Issue
Block a user