hwq 2 vuotta sitten
vanhempi
commit
a4d2e4bd21

+ 100 - 0
lang/en.js

@@ -101,5 +101,105 @@ module.exports = {
 		wbzzjaq: 'In order to ensure the security of funds, when your account security policy is changed or your password is modified, we will manually review the withdrawal. Please patiently wait for the staff to contact us by phone or email. ',
 		tbslbnw: 'The number of withdrawals cannot be 0',
 		qsrscdz: 'Please enter the upload address',
+	},
+	kf: {
+		kf: 'Customer service',
+		zx: 'on line',
+		nh: 'Hello, may I help you?',
+		qsrxxnr: 'Please enter the information content',
+		fs: 'Send'
+	},
+	mm: {
+		mm: 'Password',
+		wlnd: '*For the security of your funds, you are not allowed to withdraw money within 24 hours after your login password is changed 。',
+		jmm: 'Old password ',
+		qsrjmm: 'Please enter the old password',
+		xmm: 'New password',
+		qsrxmm: 'Please enter the new password',
+		qrmm: 'Confirm password',
+		qsrqrmm: 'Please enter the password for confirmation',
+		tj: 'Submit',
+		lcmmbyz: 'Two passwords are different',
+		xgcg: 'Modify successfully'
+	},
+	smrz: {
+		smrz: 'Real name authentication',
+		wcsmrz: 'After the completion of real-name authentication, the corresponding rights and interests can be obtained',
+		gjsm: 'Advanced real name',
+		xm: 'Name',
+		qsrxm: 'Please enter your name',
+		sfzhm: 'ID card',
+		qsrsfzhm: 'Please enter your ID card number',
+		scsfzzm: 'Upload front ID card',
+		scsfzfm: 'Upload the back of your ID card',
+		gjtj: 'Advanced submission',
+		qsrsfz: 'Please enter your ID card',
+		qscsfzzm: 'Please upload the front of your ID card',
+		qscsfzfm: 'Please upload the reverse side of your ID card',
+		tjcg: 'Submit successfully'
+	},
+	user: {
+		zc: 'Property',
+		zhzzczh: 'Total account assets equivalent',
+		zclb: 'List of Assets',
+		cb: 'Charge money',
+		tb: 'Mention money',
+		ky: 'usable',
+		dj: 'freeze',
+		zh: 'convert',
+		yyzjtjcz: 'Due to the delay of fund statistics, the account balance may not be the latest balance. If you need the accurate balance, please check the relevant account page',
+		qd: 'Confirm',
+		cwjl: 'Financial record ',
+		sl: 'Number',
+		zt: 'Type',
+		zj: 'Increase',
+		js: 'Reduce',
+		sj: 'Time',
+		hz: 'Transfer',
+		hzlx: 'Type of swivel',
+		zjhz: 'Transfer of funds',
+		zjzhzhyzh: 'Fund  to contract ',
+		hyzhzzjzh: 'Contract to fund ',
+		zjzh: 'Account',
+		kyye: 'Balance',
+		hyzh: 'Account of contract',
+		qsrhzsl: 'Enter the number of transfers',
+		tj: 'Submit',
+		hzcg: 'Successful transfer'
+	},
+	jy: {
+		bbjysc: 'Coin exchange market',
+		usdtsc: 'USDT market'
+	},
+	login: {
+
+		dl: 'Login',
+		zc: 'Register',
+		yx: 'Mail',
+		qsryx: 'Please put it in the mailbox',
+		mm: 'Password',
+		qsrmm: 'Please enter the password',
+		wjmm: 'Forget the password ',
+		qsrzqdyx: 'Please enter the correct email address',
+		dlcg: 'Login successfully',
+		czmm: 'Reset passwords',
+		xmm: 'New password',
+		yxyzm: 'Email verification code',
+		yzm: 'Code',
+		qsryzm: 'Please enter the verification code',
+		qsrxmm: 'Please enter a new password',
+		qrmm: 'Confirm password',
+		yqm: 'Invitation code',
+		qsryqm: 'Please enter the invitation code',
+		zcjbsty: 'Registration is consent',
+		yhfwxy: 'User Service Agreement',
+		zccg: 'Registered successfully'
+	},
+	popup: {
+		qrtcdl: 'Confirm Logout',
+		qr: 'Confirm',
+		ts: 'Hint',
+		nwdl: 'You are not logged in. Do you want to log in now?',
+		qx: 'Cancel'
 	}
 }

+ 99 - 0
lang/zh_tw.js

@@ -104,5 +104,104 @@ module.exports = {
 		tbslbnw: '提幣數量不能為0',
 		qsrscdz: '請輸入上傳地址',
 		sjdz: '實際到賬',
+	},
+	kf: {
+		kf: '客服',
+		zx: '在線',
+		nh: '您好,請問有什麽可以幫您?',
+		qsrxxnr: '請輸入信息内容',
+		fs: '发送'
+	},
+	mm: {
+		mm: '密碼',
+		wlnd: '*為了您的資金安全,登錄密碼修改後24小時以內不允許提現。',
+		jmm: '舊密碼',
+		qsrjmm: '請翰入舊密碼',
+		xmm: '新密碼',
+		qsrxmm: '請翰入新密碼',
+		qrmm: '確認密碼',
+		qsrqrmm: '請翰入確認密碼',
+		tj: '提交',
+		lcmmbyz: '兩次密碼不一致',
+		xgcg: '修改成功'
+	},
+	smrz: {
+		smrz: '實名認證',
+		wcsmrz: '完成實名認證後能夠獲得相應的權益',
+		gjsm: '高級實名',
+		xm: '姓名',
+		qsrxm: '請輸入姓名',
+		sfzhm: '身份證號碼',
+		qsrsfzhm: '請輸入身份證號碼',
+		scsfzzm: '上傳身份證正面',
+		scsfzfm: '上傳身份證背面',
+		gjtj: '高級提交',
+		qsrsfz: '請輸入身份證',
+		qscsfzzm: '請上傳身份證正面',
+		qscsfzfm: '請上傳身份證反面',
+		tjcg: '提交成功'
+	},
+	user: {
+		zc: '資產',
+		zhzzczh: '賬戶總資產折合',
+		zclb: '資產列表',
+		cb: '充幣',
+		tb: '提幣',
+		ky: '可用',
+		dj: '凍結',
+		zh: '折合',
+		yyzjtjcz: '由於資金統計存在延時,賬戶餘額不一定是並非最新余額,如需準確餘額請到相關賬戶頁面進行查詢',
+		qd: '確定',
+		cwjl: '財務記錄',
+		sl: '數量',
+		zt: '狀態',
+		zj: '增加',
+		js: '減少',
+		sj: '時間',
+		hz: '劃轉',
+		hzlx: '劃轉類型',
+		zjhz: '資金劃轉',
+		zjzhzhyzh: '資金賬戶轉合約賬戶',
+		hyzhzzjzh: '合約帳戶轉資金賬戶',
+		zjzh: '資金賬戶',
+		kyye: '可用餘額',
+		hyzh: '合約賬戶',
+		qsrhzsl: '輸入劃轉數量',
+		tj: '提交',
+		hzcg: '劃轉成功'
+	},
+	jy: {
+		bbjysc: '幣幣交易市場',
+		usdtsc: 'USDT市場'
+	},
+	login: {
+		dl: '登錄',
+		zc: '注冊',
+		yx: '郵箱',
+		qsryx: '請翰入郵箱',
+		mm: '密碼',
+		qsrmm: '請翰入密碼',
+		wjmm: '忘記密碼',
+		qsrzqdyx: '請輸入正確的郵箱',
+		dlcg: '登錄成功',
+		czmm: '重置密碼',
+		xmm: '新密碼',
+		yxyzm: '郵箱驗證碼',
+		yzm: '驗證碼',
+		qsryzm: '請輸入驗證碼',
+		qsrxmm: '請輸入新密碼',
+		qrmm: '確認密碼',
+		yqm: '邀請碼',
+		qsryqm: '請翰入邀請碼',
+		zcjbsty: '注冊即表示同意',
+		yhfwxy: '用戶服務協議',
+		zccg: '註冊成功'
+	},
+	popup: {
+		qrtcdl: '確認退出登錄',
+		qr: '確認',
+		ts: '提示',
+		nwdl: '您未登錄,是否馬上登錄?',
+		qx: '取消'
 	}
 }

+ 137 - 158
pages/index/kf.vue

@@ -3,189 +3,168 @@
 		<view class="flex kf-wrap">
 			<image src="../../static/img/kfheader.png" mode=""></image>
 			<view class="kf-info">
-				<view class="kf-name">
-					Json
-				</view>
-				<view class="">
-					在綫
-				</view>
+				<view class="kf-name">Json</view>
+				<view class="">{{ $t('kf.zx') }}</view>
 			</view>
 		</view>
-		<view class="" style="height: 200rpx;">
-			
-		</view>
+		<view class="" style="height: 200rpx;"></view>
 		<view class="flex lt lt-left">
-			<view class="lt-time">
-				
-			</view>
-			<view class="lt-wrap">
-				您好,請問有什麽可以幫您?
-			</view>
-		</view>
-		<view class="flex lt" v-for="item in list" :class="{'lt-right': item.type== 2}">
-			<view class="lt-time">
-				{{item.time}}
-			</view>
-			<view class="lt-wrap">
-				{{item.content}}
-			</view>
+			<view class="lt-time"></view>
+			<view class="lt-wrap">{{ $t('kf.nh') }}</view>
 		</view>
-		<view class="" style="height:120rpx;">
-			
+		<view class="flex lt" v-for="item in list" :class="{ 'lt-right': item.type == 2 }">
+			<view class="lt-time">{{ item.time }}</view>
+			<view class="lt-wrap">{{ item.content }}</view>
 		</view>
+		<view class="" style="height:120rpx;"></view>
 		<view class="foot">
-			<input class="input-text" placeholder="請輸入信息内容" type="text" v-model="inputValue" />
-			<view class="sub" @click="sub">发送</view>
+			<input class="input-text" :placeholder="$t('kf.qsrxxnr')" type="text" v-model="inputValue" />
+			<view class="sub" @click="sub">{{ $t('kf.fs') }}</view>
 		</view>
 	</view>
 </template>
 
 <script>
-	import { uptxt,getlineinfo } from '@/api/login.js'
-	export default {
-		data() {
-			return {
-				inputValue: '',
-				list: [],
-				subing: false
+import { uptxt, getlineinfo } from '@/api/login.js';
+export default {
+	data() {
+		return {
+			inputValue: '',
+			list: [],
+			subing: false
+		};
+	},
+	onLoad() {
+		uni.setNavigationBarTitle({ title: this.$t('kf.kf') });
+		this.getlineinfo();
+	},
+	onShow() {},
+	onReachBottom() {
+		this.getlineinfo();
+	},
+	onReady() {},
+	methods: {
+		sub() {
+			let obj = this;
+			if (obj.subing) {
+				return;
 			}
-		},
-		onLoad() {
-			this.getlineinfo()
-		},
-		onShow() {
-
-		},
-		onReachBottom() {
-			this.getlineinfo()
-		},
-		onReady() {
-
-		},
-		methods: {
-			sub() {
-				let obj = this
-				if(obj.subing) {
-					return
-				}
-				if(obj.inputValue == '') {
-					return obj.$api.msg('請輸入信息内容')
-				}
-				obj.subing = true
-				uptxt({
-					txt: obj.inputValue
-				}).then(res => {
-					console.log(res)
-					obj.getlineinfo()
-					obj.inputValue = ''
-					obj.subing = false
-				}).catch(err => {
-					obj.subing = false
-				})
-			},
-			getlineinfo() {
-				getlineinfo().then(res => {
-					console.log(res)
-					this.list = res.data
-					
-				})
+			if (obj.inputValue == '') {
+				return obj.$api.msg(this.$t('qsrxxnr'));
 			}
-			
+			obj.subing = true;
+			uptxt({
+				txt: obj.inputValue
+			})
+				.then(res => {
+					console.log(res);
+					obj.getlineinfo();
+					obj.inputValue = '';
+					obj.subing = false;
+				})
+				.catch(err => {
+					obj.subing = false;
+				});
+		},
+		getlineinfo() {
+			getlineinfo().then(res => {
+				console.log(res);
+				this.list = res.data;
+			});
 		}
 	}
+};
 </script>
 
 <style lang="scss">
-	page {
-		height: 100%;
-		background-color: #fff;
-	}
+page {
+	height: 100%;
+	background-color: #fff;
+}
 
-	.foot {
-		box-shadow: 0 -1px 5px rgba(0, 0, 0, 0.1);
-		position: fixed;
-		width: 100%;
-		height: 100rpx;
-		left: 0upx;
-		bottom: 0;
-		overflow: hidden;
-		// background-color: red;
-		background-color: #fff;
-		display: flex;
-		align-items: center;
-		justify-content: center;
+.foot {
+	box-shadow: 0 -1px 5px rgba(0, 0, 0, 0.1);
+	position: fixed;
+	width: 100%;
+	height: 100rpx;
+	left: 0upx;
+	bottom: 0;
+	overflow: hidden;
+	// background-color: red;
+	background-color: #fff;
+	display: flex;
+	align-items: center;
+	justify-content: center;
 
-		.input-text {
-			line-height: 80rpx;
-			height: 80rpx;
-			width: 500rpx;
-			// width: ;
-			padding-left: 20rpx;
-			border-radius: 20rpx;
-			border: 1px solid #f5f5f5;
-			margin-right: 40rpx;
-		}
+	.input-text {
+		line-height: 80rpx;
+		height: 80rpx;
+		width: 500rpx;
+		// width: ;
+		padding-left: 20rpx;
+		border-radius: 20rpx;
+		border: 1px solid #f5f5f5;
+		margin-right: 40rpx;
+	}
 
-		.sub {
-			width: 160rpx;
-			height: 80rpx;
-			line-height: 80rpx;
-			background: linear-gradient(to left, #eeb80d, #ffe35b);
-			text-align: center;
-			border-radius: 20rpx;
-		}
+	.sub {
+		width: 160rpx;
+		height: 80rpx;
+		line-height: 80rpx;
+		background: linear-gradient(to left, #eeb80d, #ffe35b);
+		text-align: center;
+		border-radius: 20rpx;
 	}
-	.lt-wrap {
-		width: 514rpx;
+}
+.lt-wrap {
+	width: 514rpx;
+	font-size: 28rpx;
+	color: #707a8a;
+	background-color: #f5f5f5;
+	border-radius: 15rpx;
+	padding: 10rpx 20rpx;
+}
+.lt {
+	margin-bottom: 20rpx;
+	padding: 0 40rpx;
+	flex-direction: column;
+	.lt-time {
 		font-size: 28rpx;
-		color: #707A8A;
-		background-color: #f5f5f5;
-		border-radius: 15rpx;
-		padding: 10rpx 20rpx;
-		
-	}
-	.lt {
-		margin-bottom: 20rpx;
-		padding: 0 40rpx;
-		flex-direction: column;
-		.lt-time {
-			font-size: 28rpx;
-			color: #FCD535;
-			margin-bottom: 10rpx;
-		}
+		color: #fcd535;
+		margin-bottom: 10rpx;
 	}
-	.lt-right {
-		// align-content: flex-end;
-		align-items: flex-end;
+}
+.lt-right {
+	// align-content: flex-end;
+	align-items: flex-end;
+}
+.lt-left {
+	align-items: flex-start;
+}
+.kf-wrap {
+	// border-bottom: 1px solid;
+	background-color: #fff;
+	position: fixed;
+	top: 44px;
+	box-shadow: 0 -1px 5px rgba(0, 0, 0, 0.1);
+	height: 180rpx;
+	width: 100%;
+	padding: 20rpx 40rpx;
+	justify-content: flex-start;
+	align-items: center;
+	image {
+		width: 140rpx;
+		height: 140rpx;
 	}
-	.lt-left {
-		align-items: flex-start;
-	}
-	.kf-wrap {
-		// border-bottom: 1px solid;
-		background-color: #fff;
-		position: fixed;
-		top: 44px;
-		box-shadow: 0 -1px 5px rgba(0, 0, 0, 0.1);
-		height: 180rpx;
-		width: 100%;
-		padding: 20rpx 40rpx;
-		justify-content: flex-start;
-		align-items: center;
-		image {
-			width: 140rpx;
-			height: 140rpx;
-		}
-		.kf-info {
-			color: #eeb80d;
-			font-size: 28rpx;
-			padding-left: 10rpx;
-			.kf-name {
-				font-size: 40rpx;
-				color: #707A8A;
-				margin-bottom: 10rpx;
-			}
-			
+	.kf-info {
+		color: #eeb80d;
+		font-size: 28rpx;
+		padding-left: 10rpx;
+		.kf-name {
+			font-size: 40rpx;
+			color: #707a8a;
+			margin-bottom: 10rpx;
 		}
 	}
+}
 </style>

+ 171 - 175
pages/public/forget.vue

@@ -1,113 +1,109 @@
-<template>
+<template>
 	<view class="container">
-		<view class="" style="text-align: left;padding-left: 30rpx;font-size: 52rpx;padding-top: 50rpx;">
-			重置密碼
-		</view>
-		<view class="tit" >
-			郵箱
-		</view>
-		<input type="text" class="shuru" placeholder="郵箱" v-model="email">
-		<view class="tit" >
-			新密碼
-		</view>
-		<input type="text" class="shuru" placeholder="新密碼" v-model="lpwd">
-		<view class="tit">
-			郵箱驗證碼
-		</view>
+		<view class="" style="text-align: left;padding-left: 30rpx;font-size: 52rpx;padding-top: 50rpx;">{{ $t('login.czmm') }}</view>
+		<view class="tit">{{ $t('login.yx') }}</view>
+		<input type="text" class="shuru" :placeholder="$t('login.yx')" v-model="email" />
+		<view class="tit">{{ $t('login.xmm') }}</view>
+		<input type="text" class="shuru" :placeholder="$t('login.xmm')" v-model="lpwd" />
+		<view class="tit">{{ $t('login.yxyzm') }}</view>
 		<view class="flex" style="width: 673rpx;justify-content: space-between;margin: auto;">
-			<input type="text" class=" yzm" placeholder="驗證碼" v-model="ecode">
-			<view class="code yzmbtn" @click="verification">{{ countDown == 0 ? '验证码' : countDown }}</view>
+			<input type="text" class=" yzm" :placeholder="$t('login.yzm')" v-model="ecode" />
+			<view class="code yzmbtn" @click="verification">{{ countDown == 0 ? $t('login.yzm') : countDown }}</view>
 		</view>
 		<view class="flex" style="justify-content: space-between;padding: 50rpx 30rpx;align-items: flex-start;">
-			<view class="">
-			</view>
+			<view class=""></view>
 			<image src="../../static/icon/goto.png" mode="" style="width: 97rpx;height: 97rpx;" @click="resetpwd()"></image>
-		</view>
-	</view>
-</template>
-<script>
-import { mapMutations } from 'vuex';
-import { verify, loginMobile, getUserInfo,getForget ,resetpwd} from '@/api/login.js';
-export default {
-	data() {
+		</view>
+	</view>
+</template>
+<script>
+import { mapMutations } from 'vuex';
+import { verify, loginMobile, getUserInfo, getForget, resetpwd } from '@/api/login.js';
+export default {
+	data() {
 		return {
 			ecode: '',
-			email: '',
-			phone: '', //用户
-			code: '', //验证码
-			time: '', //保存倒计时对象
-			countDown: 0 //倒计时
-		};
-	},
-	onLoad() {},
-	watch: {
-		// 监听倒计时
-		countDown(i) {
-			if (i == 0) {
-				clearInterval(this.time);
-			}
-		}
-	},
-	methods: {
+			email: '',
+			lpwd: '',
+			phone: '', //用户
+			code: '', //验证码
+			time: '', //保存倒计时对象
+			countDown: 0 //倒计时
+		};
+	},
+	onLoad() {
+		uni.setNavigationBarTitle({ title: this.$t('login.czmm') });
+	},
+	watch: {
+		// 监听倒计时
+		countDown(i) {
+			if (i == 0) {
+				clearInterval(this.time);
+			}
+		}
+	},
+	methods: {
 		...mapMutations('user', ['setUserInfo', 'login']),
 		resetpwd() {
-			let obj = this
-			if(obj.email == '') {
-				return obj.$api.msg('請輸入郵箱!')
+			let obj = this;
+			if (obj.email == '') {
+				return obj.$api.msg(this.$t('login.qsryx'));
 			}
 			if (!obj.isEmailAvailable(obj.email)) {
-				return obj.$api.msg('請輸入正確的郵箱!')
+				return obj.$api.msg(this.$t('login.qsrzqdyx'));
 			}
-			if(obj.ecode == '') {
-				return obj.$api.msg('請輸入驗證碼!')
+			if (obj.ecode == '') {
+				return obj.$api.msg(this.$t('login.qsryzm'));
 			}
-			if(obj.lpwd == '') {
-				return obj.$api.msg('請輸入新密碼!')
+			if (obj.lpwd == '') {
+				return obj.$api.msg(this.$t('login.qsrxmm'));
 			}
 			resetpwd({
 				email: obj.email,
 				ecode: obj.ecode,
 				lpwd: obj.lpwd
-			}).then(res => {
-				console.log(res)
-				obj.login()
-			}).catch(err => {
-				
 			})
-		},
-		// 手机登录
-		register() {
-			let obj = this;
-			if (obj.phone == '') {
-				obj.$api.msg('请输入电话号码');
-				return;
-			}
-			if (!/(^1[3|4|5|7|8][0-9]{9}$)/.test(this.phone)) {
-				obj.$api.msg('请输入正确的手机号');
-				return;
-			}
-			if (obj.code == '') {
-				obj.$api.msg('请输入验证码');
-				return;
-			}
-
-			loginMobile({
-				phone: obj.phone, //账号
-				captcha: obj.code
-			}).then(function(e) {
-				uni.setStorageSync('token', e.data.token);
-				getUserInfo({}).then(e => {
-					obj.login();
-					// 保存返回用户数据
-					obj.setUserInfo(e.data);
-					//成功跳转首页
-					uni.switchTab({
-						url: '/pages/index/index'
-					});
-				});
-			}).catch((e) => {
-				console.log(e);
-			});
+				.then(res => {
+					console.log(res);
+					obj.login();
+				})
+				.catch(err => {});
+		},
+		// 手机登录
+		register() {
+			let obj = this;
+			if (obj.phone == '') {
+				obj.$api.msg('请输入电话号码');
+				return;
+			}
+			if (!/(^1[3|4|5|7|8][0-9]{9}$)/.test(this.phone)) {
+				obj.$api.msg('请输入正确的手机号');
+				return;
+			}
+			if (obj.code == '') {
+				obj.$api.msg('请输入验证码');
+				return;
+			}
+
+			loginMobile({
+				phone: obj.phone, //账号
+				captcha: obj.code
+			})
+				.then(function(e) {
+					uni.setStorageSync('token', e.data.token);
+					getUserInfo({}).then(e => {
+						obj.login();
+						// 保存返回用户数据
+						obj.setUserInfo(e.data);
+						//成功跳转首页
+						uni.switchTab({
+							url: '/pages/index/index'
+						});
+					});
+				})
+				.catch(e => {
+					console.log(e);
+				});
 		},
 		isEmailAvailable(obj) {
 			let email = /^([a-zA-Z0-9]+[_|\_|\.]?)*[a-zA-Z0-9]+@([a-zA-Z0-9]+[_|\_|\.]?)*[a-zA-Z0-9]+\.[a-zA-Z]{2,3}$/;
@@ -115,98 +111,98 @@ export default {
 				return false;
 			}
 			return true;
-		},
-		//发送验证码
-		verification() {
+		},
+		//发送验证码
+		verification() {
 			let obj = this;
-			if(obj.email == '') {
-				return obj.$api.msg('請輸入郵箱!')
-			}
+			if (obj.email == '') {
+				return obj.$api.msg(this.$t('login.qsryx'));
+			}
 			if (!obj.isEmailAvailable(obj.email)) {
-				return obj.$api.msg('請輸入正確的郵箱!')
-			}
-			// 判断是否在倒计时
-			if (obj.countDown > 0) {
-				return false;
-			} else {
-				obj.countDown = 60;
-				obj.time = setInterval(() => {
-					obj.countDown--;
-				}, 1000);
-				//调用验证码接口
-				getForget({
-					email: obj.email,
-					// type: 'login'
-				})
-					.then(({ data }) => {})
-					.catch(err => {
-						console.log(err);
-					});
-			}
-		},
-		login() {
-			//返回登录
-			uni.navigateTo({
-				url: '/pages/public/login'
-			});
-		}
-	}
-};
-</script>
-
-<style lang="scss">
-page {
-		height: 100%;
-		background-color: #fff;
-		font-size: 32rpx;
+				return obj.$api.msg(this.$t('login.qsrzqdyx'));
+			}
+			// 判断是否在倒计时
+			if (obj.countDown > 0) {
+				return false;
+			} else {
+				obj.countDown = 60;
+				obj.time = setInterval(() => {
+					obj.countDown--;
+				}, 1000);
+				//调用验证码接口
+				getForget({
+					email: obj.email
+					// type: 'login'
+				})
+					.then(({ data }) => {})
+					.catch(err => {
+						console.log(err);
+					});
+			}
+		},
+		login() {
+			//返回登录
+			uni.navigateTo({
+				url: '/pages/public/login'
+			});
+		}
 	}
+};
+</script>
 
-	.container {
-		width: 100%;
-		height: 100%;
-		background-size: 100%;
-	}
+<style lang="scss">
+page {
+	height: 100%;
+	background-color: #fff;
+	font-size: 32rpx;
+}
 
-	.shuru {
-		display: block;
-		background-color: #f5f5f5;
-		width: 673rpx;
-		height: 95rpx;
-		margin: auto;
-		padding-left: 30rpx;
-		text-align: 95rpx;
-	}
+.container {
+	width: 100%;
+	height: 100%;
+	background-size: 100%;
+}
 
-	.tit {
-		padding: 40rpx 48rpx 20rpx;
-	}
+.shuru {
+	display: block;
+	background-color: #f5f5f5;
+	width: 673rpx;
+	height: 95rpx;
+	margin: auto;
+	padding-left: 30rpx;
+	text-align: 95rpx;
+}
 
-	.gologin {
-		width: 204rpx;
-		height: 98rpx;
-		line-height: 98rpx;
-		background-color: #fcd535;
-		text-align: center;
-		border-radius: 20rpx;
-	}
+.tit {
+	padding: 40rpx 48rpx 20rpx;
+}
 
-	.wjmm {
-		color: #fcd535;
-	}
+.gologin {
+	width: 204rpx;
+	height: 98rpx;
+	line-height: 98rpx;
+	background-color: #fcd535;
+	text-align: center;
+	border-radius: 20rpx;
+}
 
-	.yzm {
-		width: 400rpx;
-		height: 95rpx;
-		padding-left: 30rpx;
-		background-color: #f5f5f5;
-	}
+.wjmm {
+	color: #fcd535;
+}
+
+.yzm {
+	width: 400rpx;
+	height: 95rpx;
+	padding-left: 30rpx;
+	background-color: #f5f5f5;
+}
 
-	.yzmbtn {
-		width: 234rpx;
-		height: 95rpx;
-		background-color: #f5f5f5;
-		text-align: center;
-		line-height: 95rpx;
-		color: #fcd535;
-	}
+.yzmbtn {
+	width: 234rpx;
+	height: 95rpx;
+	background-color: #f5f5f5;
+	text-align: center;
+	line-height: 95rpx;
+	color: #fcd535;
+}
 </style>

+ 99 - 116
pages/public/login.vue

@@ -1,143 +1,126 @@
 <template>
 	<view class="container">
-		<view class="wjmm" style="text-align: right;padding-right: 30rpx;font-size: 36rpx;" @click="zc()">
-			注冊
-		</view>
-		<view class="tit" style="padding-top:120rpx;">
-			郵箱
-		</view>
-		<input type="text" class="shuru" placeholder="請翰入郵箱" v-model="email">
-		<view class="tit">
-			密碼
-		</view>
-		<input type="password" class="shuru" placeholder="請翰入密碼" v-model="lpwd" >
+		<view class="wjmm" style="text-align: right;padding-right: 30rpx;font-size: 36rpx;" @click="zc()">{{ $t('login.zc') }}</view>
+		<view class="tit" style="padding-top:120rpx;">{{ $t('login.yx') }}</view>
+		<input type="text" class="shuru" :placeholder="$t('login.qsryx')" v-model="email" />
+		<view class="tit">{{ $t('login.mm') }}</view>
+		<input type="password" class="shuru" :placeholder="$t('login.qsrmm')" v-model="lpwd" />
 		<view class="" style="padding:20rpx 48rpx;">
-			<view class="wjmm" @click="wjmm()">
-				忘記密碼?
-			</view>
+			<view class="wjmm" @click="wjmm()">{{ $t('login.wjmm') }}?</view>
 		</view>
 		<view class="flex" style="justify-content: flex-end;padding: 0 48rpx;">
-			<view class="gologin" @click="gologin">
-				登錄
-			</view>
+			<view class="gologin" @click="gologin">{{ $t('login.dl') }}</view>
 		</view>
 	</view>
 </template>
 
 <script>
-	import { mapMutations,mapState } from 'vuex';
-	import {
-		loginWx,
-		gologin,
-		getUser
-	} from '@/api/login.js';
-	export default {
-		data() {
-			return {
-				email: '',
-				lpwd: ''
-			};
+import { mapMutations, mapState } from 'vuex';
+import { loginWx, gologin, getUser } from '@/api/login.js';
+export default {
+	data() {
+		return {
+			email: '',
+			lpwd: ''
+		};
+	},
+	onLoad() {
+		uni.setNavigationBarTitle({ title: this.$t('login.dl') });
+	},
+	methods: {
+		...mapMutations('user', ['login', 'setUserInfo']),
+		zc() {
+			uni.navigateTo({
+				url: '/pages/public/register'
+			});
 		},
-		onLoad() {
-			
+		wjmm() {
+			uni.navigateTo({
+				url: '/pages/public/forget'
+			});
 		},
-		methods: {
-			...mapMutations('user',['login','setUserInfo']),
-			zc() {
-				uni.navigateTo({
-					url: '/pages/public/register',
-				})
-			},
-			wjmm() {
-				uni.navigateTo({
-					url: '/pages/public/forget',
-				})
-			},
-			gologin() {
-				let obj = this
-				if(obj.loadingType == 'loading') {
-					return
-				}
-				if(!obj.isEmailAvailable(obj.email)) {
-					return obj.$api.msg('請輸入正確的郵箱!')
-				}
-				obj.loadingType = 'loading'
-				gologin({
-					email: obj.email,
-					lpwd: obj.lpwd
-				}).then(res => {
-					console.log(res)
-					obj.loadingType = 'no'
+		gologin() {
+			let obj = this;
+			if (obj.loadingType == 'loading') {
+				return;
+			}
+			if (!obj.isEmailAvailable(obj.email)) {
+				return obj.$api.msg(this.$t('login.qsrzqdyx'));
+			}
+			obj.loadingType = 'loading';
+			gologin({
+				email: obj.email,
+				lpwd: obj.lpwd
+			})
+				.then(res => {
+					console.log(res);
+					obj.loadingType = 'no';
 					uni.showToast({
-						title: '登錄成功',
+						title: this.$t('login.dlcg'),
 						duration: 2000,
 						position: 'top'
 					});
 					getUser().then(re => {
-						obj.login()
-						obj.setUserInfo(re.data)
-						setTimeout(()=> {
+						obj.login();
+						obj.setUserInfo(re.data);
+						setTimeout(() => {
 							uni.switchTab({
-								url:'/pages/index/index'
-							})
-						},1500)
-					})
-					
-					
-					
-				}).catch(err => {
-					console.log(err)
-					obj.loadingType = 'no'
+								url: '/pages/index/index'
+							});
+						}, 1500);
+					});
 				})
-			},
-			
-			isEmailAvailable(obj) {
-				let email = /^([a-zA-Z0-9]+[_|\_|\.]?)*[a-zA-Z0-9]+@([a-zA-Z0-9]+[_|\_|\.]?)*[a-zA-Z0-9]+\.[a-zA-Z]{2,3}$/;
-				if (!email.test(obj)) {
-					return false;
-				}
-			 return true;
-			},
+				.catch(err => {
+					console.log(err);
+					obj.loadingType = 'no';
+				});
+		},
 
+		isEmailAvailable(obj) {
+			let email = /^([a-zA-Z0-9]+[_|\_|\.]?)*[a-zA-Z0-9]+@([a-zA-Z0-9]+[_|\_|\.]?)*[a-zA-Z0-9]+\.[a-zA-Z]{2,3}$/;
+			if (!email.test(obj)) {
+				return false;
+			}
+			return true;
 		}
-	};
+	}
+};
 </script>
 
 <style lang="scss">
+page {
+	height: 100%;
+	background-color: #fff;
+	font-size: 32rpx;
+}
 
-	page {
-		height: 100%;
-		background-color: #fff;
-		font-size: 32rpx;
-	}
-
-	.container {
-		width: 100%;
-		height: 100%;
-		background-size: 100%;
-	}
+.container {
+	width: 100%;
+	height: 100%;
+	background-size: 100%;
+}
 
-	.shuru {
-		display: block;
-		background-color: #f5f5f5;
-		width: 673rpx;
-		height: 95rpx;
-		margin: auto;
-		padding-left: 30rpx;
-		text-align: 95rpx;
-	}
-	.tit {
-		padding:60rpx 48rpx 20rpx;
-	}
-	.gologin {
-		width: 204rpx;
-		height: 98rpx;
-		line-height: 98rpx;
-		background-color: #fcd535;
-		text-align: center;
-		border-radius: 20rpx;
-	}
-	.wjmm {
-		color: #fcd535;
-	}
+.shuru {
+	display: block;
+	background-color: #f5f5f5;
+	width: 673rpx;
+	height: 95rpx;
+	margin: auto;
+	padding-left: 30rpx;
+	text-align: 95rpx;
+}
+.tit {
+	padding: 60rpx 48rpx 20rpx;
+}
+.gologin {
+	width: 204rpx;
+	height: 98rpx;
+	line-height: 98rpx;
+	background-color: #fcd535;
+	text-align: center;
+	border-radius: 20rpx;
+}
+.wjmm {
+	color: #fcd535;
+}
 </style>

+ 184 - 200
pages/public/register.vue

@@ -1,35 +1,24 @@
 <template>
 	<view class="container">
-		<view class="wjmm" style="text-align: right;padding-right: 30rpx;font-size: 36rpx;" @click="dl()">
-			登錄
-		</view>
-		<view class="tit" style="padding-top:120rpx;">
-			郵箱
-		</view>
-		<input type="text" class="shuru" placeholder="請翰入郵箱" v-model="email">
-		<view class="tit">
-			郵箱驗證碼
-		</view>
+		<view class="wjmm" style="text-align: right;padding-right: 30rpx;font-size: 36rpx;" @click="dl()">{{ $t('login.dl') }}</view>
+		<view class="tit" style="padding-top:120rpx;">{{ $t('login.yx') }}</view>
+		<input type="text" class="shuru" :placeholder="$t('login.qsryx')" v-model="email" />
+		<view class="tit">{{ $t('login.yxyzm') }}</view>
 		<view class="flex" style="width: 673rpx;justify-content: space-between;margin: auto;">
-			<input type="text" class=" yzm" placeholder="請翰入驗證碼" v-model="code">
-			<view class="code yzmbtn" @click="verification">{{ countDown == 0 ? '验证码' : countDown }}</view>
+			<input type="text" class=" yzm" :placeholder="$t('login.qsryzm')" v-model="code" />
+			<view class="code yzmbtn" @click="verification">{{ countDown == 0 ? $t('login.yzm') : countDown }}</view>
 		</view>
 
-		<view class="tit">
-			密碼
-		</view>
-		<input type="password" class="shuru" placeholder="請翰入密碼" v-model="lpwd">
-		<view class="tit">
-			確認密碼
-		</view>
-		<input type="password" class="shuru" placeholder="請翰入密碼" v-model="relpwd">
-		<view class="tit">
-			邀請碼
-		</view>
-		<input type="text" class="shuru" placeholder="請翰入邀請碼" v-model="invit">
+		<view class="tit">{{ $t('login.mm') }}</view>
+		<input type="password" class="shuru" :placeholder="$t('login.qsrmm')" v-model="lpwd" />
+		<view class="tit">{{ $t('login.qrmm') }}</view>
+		<input type="password" class="shuru" :placeholder="$t('login.qsrmm')" v-model="relpwd" />
+		<view class="tit">{{ $t('login.yqm') }}</view>
+		<input type="text" class="shuru" :placeholder="$t('login.qsryqm')" v-model="invit" />
 		<view class="flex" style="justify-content: space-between;padding: 50rpx 30rpx;align-items: flex-start;">
 			<view class="">
-				注冊即表示同意 <text style="color: #fcd535;">用戶服務協議</text>
+				{{ $t('login.zcjbsty') }}
+				<text style="color: #fcd535;">{{ $t('login.yhfwxy') }}</text>
 			</view>
 			<image src="../../static/icon/goto.png" mode="" style="width: 97rpx;height: 97rpx;" @click="register()"></image>
 		</view>
@@ -63,89 +52,86 @@
 	</view>
 </template>
 <script>
-	import {
-		register,
-		verify,
-		getYzm,
-		zc
-	} from '@/api/login.js';
-	export default {
-		data() {
-			return {
-				loaded: false,
-				lpwd: '',
-				relpwd: '',
-				invit: '',
-				email: '',
-				phone: '', //用户
-				password: '', //密码
-				repassword: '',
-				invitation: '', //邀请码
-				code: '', //验证码
-				time: '', //保存倒计时对象
-				countDown: 0, //倒计时
-			};
-		},
-		onLoad() {
-			// 获取扫码邀请人id
-			this.invitation = uni.getStorageSync('spread') || '';
-		},
-		watch: {
-			// 监听倒计时
-			countDown(i) {
-				if (i == 0) {
-					clearInterval(this.time);
-				}
+import { register, verify, getYzm, zc } from '@/api/login.js';
+export default {
+	data() {
+		return {
+			loaded: false,
+			lpwd: '',
+			relpwd: '',
+			invit: '',
+			email: '',
+			phone: '', //用户
+			password: '', //密码
+			repassword: '',
+			invitation: '', //邀请码
+			code: '', //验证码
+			time: '', //保存倒计时对象
+			countDown: 0 //倒计时
+		};
+	},
+	onLoad() {
+		uni.setNavigationBarTitle({ title: this.$t('login.zc') });
+		// 获取扫码邀请人id
+		this.invitation = uni.getStorageSync('spread') || '';
+	},
+	watch: {
+		// 监听倒计时
+		countDown(i) {
+			if (i == 0) {
+				clearInterval(this.time);
 			}
+		}
+	},
+	methods: {
+		dl() {
+			uni.navigateTo({
+				url: '/pages/public/login'
+			});
 		},
-		methods: {
-			dl() {
-				uni.navigateTo({
-					url: '/pages/public/login'
-				})
-			},
-			// 注册
-			register() {
-				let obj = this;
-				if(obj.loaded) {
-					return
-				}
-				if (obj.email == '') {
-					obj.$api.msg('請輸入郵箱');
-					return;
-				}
-				if (obj.lpwd == '') {
-					obj.$api.msg('請輸入密碼');
-					return;
-				}
-				if (obj.relpwd == '') {
-					obj.$api.msg('請再次輸入密碼');
-					return;
-				}
-				if (obj.relpwd != obj.lpwd) {
-					obj.$api.msg('兩次密碼不一致');
-					return;
-				}
-				// if ((obj.invitation = '')) {
-				// 	obj.$api.msg('请输入邀请码');
-				// 	return;
-				// }
-				if (obj.code == '') {
-					obj.$api.msg('请输入验证码');
-					return;
-				}
-				obj.loaded = true
-				zc({
-					email: obj.email,
-					lpwd: obj.lpwd,
-					invit: obj.invit,
-					phone: obj.phone,
-					yincang: 1,
-					ecode: obj.code
-				}).then(function(e) {
-					obj.loaded = false
+		// 注册
+		register() {
+			let obj = this;
+			if (obj.loaded) {
+				return;
+			}
+			if (obj.email == '') {
+				obj.$api.msg(this.$t('login.qsryx'));
+				return;
+			}
+			if (obj.lpwd == '') {
+				obj.$api.msg(this.$t('login.qsrmm'));
+				return;
+			}
+			if (obj.relpwd == '') {
+				obj.$api.msg(this.$t('mm.qsrqrmm'));
+				return;
+			}
+			if (obj.relpwd != obj.lpwd) {
+				obj.$api.msg(this.$t('mm.lcmmbyz'));
+				return;
+			}
+			// if ((obj.invitation = '')) {
+			// 	obj.$api.msg('请输入邀请码');
+			// 	return;
+			// }
+			if (obj.code == '') {
+				obj.$api.msg(this.$t('login.qsryzm'));
+				return;
+			}
+			obj.loaded = true;
+			zc({
+				email: obj.email,
+				lpwd: obj.lpwd,
+				invit: obj.invit,
+				phone: obj.phone,
+				yincang: 1,
+				ecode: obj.code
+			})
+				.then(function(e) {
+					obj.loaded = false;
 					uni.showToast({
-						title: '注册成功',
+						title: this.$t('login.zccg'),
 						duration: 2000,
 						position: 'top'
 					});
@@ -153,113 +139,111 @@
 						uni.navigateTo({
 							url: '/pages/public/login'
 						});
-					}, 1000)
-
-				}).catch(err => {
-					obj.loaded = false
-				});
-				//调用注册接口,成功跳转登录页
-			},
-			isEmailAvailable(obj) {
-				let email = /^([a-zA-Z0-9]+[_|\_|\.]?)*[a-zA-Z0-9]+@([a-zA-Z0-9]+[_|\_|\.]?)*[a-zA-Z0-9]+\.[a-zA-Z]{2,3}$/;
-				if (!email.test(obj)) {
-					return false;
-				}
-				return true;
-			},
-			//发送验证码
-			verification() {
-				let obj = this;
-				if(obj.email == '') {
-					return obj.$api.msg('請輸入郵箱!')
-				}
-				if (!obj.isEmailAvailable(obj.email)) {
-					return obj.$api.msg('請輸入正確的郵箱!')
-				}
-				// 判断是否在倒计时
-				if (obj.countDown > 0) {
-					return false;
-				} else {
-					obj.countDown = 60;
-					obj.time = setInterval(() => {
-						obj.countDown--;
 					}, 1000);
-					//调用验证码接口
-					getYzm({
-							email: obj.email,
-							// type: 'register'
-						})
-						.then(({
-							data
-						}) => {})
-						.catch(err => {
-							console.log(err);
-						});
-				}
-			},
-			login() {
-				//返回登录
-				uni.navigateTo({
-					url: '/pages/public/login'
+				})
+				.catch(err => {
+					obj.loaded = false;
 				});
+			//调用注册接口,成功跳转登录页
+		},
+		isEmailAvailable(obj) {
+			let email = /^([a-zA-Z0-9]+[_|\_|\.]?)*[a-zA-Z0-9]+@([a-zA-Z0-9]+[_|\_|\.]?)*[a-zA-Z0-9]+\.[a-zA-Z]{2,3}$/;
+			if (!email.test(obj)) {
+				return false;
+			}
+			return true;
+		},
+		//发送验证码
+		verification() {
+			let obj = this;
+			if (obj.email == '') {
+				return obj.$api.msg(this.$t('login.qsryx'));
+			}
+			if (!obj.isEmailAvailable(obj.email)) {
+				return obj.$api.msg(this.$t('login.qsrzqdyx'));
 			}
+			// 判断是否在倒计时
+			if (obj.countDown > 0) {
+				return false;
+			} else {
+				obj.countDown = 60;
+				obj.time = setInterval(() => {
+					obj.countDown--;
+				}, 1000);
+				//调用验证码接口
+				getYzm({
+					email: obj.email
+					// type: 'register'
+				})
+					.then(({ data }) => {})
+					.catch(err => {
+						console.log(err);
+					});
+			}
+		},
+		login() {
+			//返回登录
+			uni.navigateTo({
+				url: '/pages/public/login'
+			});
 		}
-	};
+	}
+};
 </script>
 
 <style lang="scss">
-	page {
-		height: 100%;
-		background-color: #fff;
-		font-size: 32rpx;
-	}
+page {
+	height: 100%;
+	background-color: #fff;
+	font-size: 32rpx;
+}
 
-	.container {
-		width: 100%;
-		height: 100%;
-		background-size: 100%;
-	}
+.container {
+	width: 100%;
+	height: 100%;
+	background-size: 100%;
+}
 
-	.shuru {
-		display: block;
-		background-color: #f5f5f5;
-		width: 673rpx;
-		height: 95rpx;
-		margin: auto;
-		padding-left: 30rpx;
-		text-align: 95rpx;
-	}
+.shuru {
+	display: block;
+	background-color: #f5f5f5;
+	width: 673rpx;
+	height: 95rpx;
+	margin: auto;
+	padding-left: 30rpx;
+	text-align: 95rpx;
+}
 
-	.tit {
-		padding: 40rpx 48rpx 20rpx;
-	}
+.tit {
+	padding: 40rpx 48rpx 20rpx;
+}
 
-	.gologin {
-		width: 204rpx;
-		height: 98rpx;
-		line-height: 98rpx;
-		background-color: #fcd535;
-		text-align: center;
-		border-radius: 20rpx;
-	}
+.gologin {
+	width: 204rpx;
+	height: 98rpx;
+	line-height: 98rpx;
+	background-color: #fcd535;
+	text-align: center;
+	border-radius: 20rpx;
+}
 
-	.wjmm {
-		color: #fcd535;
-	}
+.wjmm {
+	color: #fcd535;
+}
 
-	.yzm {
-		width: 400rpx;
-		height: 95rpx;
-		padding-left: 30rpx;
-		background-color: #f5f5f5;
-	}
+.yzm {
+	width: 400rpx;
+	height: 95rpx;
+	padding-left: 30rpx;
+	background-color: #f5f5f5;
+}
 
-	.yzmbtn {
-		width: 234rpx;
-		height: 95rpx;
-		background-color: #f5f5f5;
-		text-align: center;
-		line-height: 95rpx;
-		color: #fcd535;
-	}
+.yzmbtn {
+	width: 234rpx;
+	height: 95rpx;
+	background-color: #f5f5f5;
+	text-align: center;
+	line-height: 95rpx;
+	color: #fcd535;
+}
 </style>

+ 12 - 10
pages/transaction/transaction.vue

@@ -1,16 +1,16 @@
 <template>
 	<view class="content">
 		<scroll-view scroll-x="true" :scroll-with-animation="true" class="navbar">
-			<view class="navbar-item" :class="{ current: tabCurrentIndex === index }" v-for="(item, index) in typelist" @click="tabClick(index)">{{ item.name }}</view>
+			<view class="navbar-item" :class="{ current: tabCurrentIndex === index }" v-for="(item, index) in typelist" @click="tabClick(index)">{{ $t('jy.' + item.name) }}</view>
 		</scroll-view>
 		<view class="list">
 			<view class="list-title flex">
-				<view class="title-left">交易對</view>
-				<view class="title-center">最新價格</view>
-				<view class="title-right">24h漲跌</view>
+				<view class="title-left">{{ $t('index.jyd') }}</view>
+				<view class="title-center">{{ $t('index.zxjg') }}</view>
+				<view class="title-right">{{ $t('index.zd') }}</view>
 			</view>
 			<scroll-view class="swiper-box" scroll-y="true" :style="{ height: maxheight }">
-				<view class="list-main flex"  @click="navTo('/pages/transaction/transactionDetail?type='+index)" v-for="(item,index) in listOBj">
+				<view class="list-main flex" @click="navTo('/pages/transaction/transactionDetail?type=' + index)" v-for="(item, index) in listOBj">
 					<view class="main-left">{{ item.name }}</view>
 					<view class="main-center" :class="{ down: item.dcf > 0, ping: item.dcf == 0 }">{{ item.last == 0 ? '--.--' : item.last }}</view>
 					<view class="main-right">
@@ -48,7 +48,7 @@ export default {
 	},
 	data() {
 		return {
-			typelist: [{ name: 'USDT市場' }],
+			typelist: [{ name: 'usdtsc' }],
 			tabCurrentIndex: 0,
 			maxheight: '',
 			scoket: '',
@@ -59,13 +59,15 @@ export default {
 	},
 	onLoad() {},
 	onShow() {
+		uni.setNavigationBarTitle({ title: this.$t('jy.bbjysc') });
 		if (this.hasLogin) {
 			this.geLevertade();
 		} else {
 			uni.showModal({
-				title: '提示',
-				content: '您未登錄,是否馬上登錄?',
-				confirmText: '確認',
+				title: this.$t('popup.ts'),
+				content: this.$t('popup.nwdl'),
+				confirmText: this.$t('popup.qr'),
+				cancelText: this.$t('popup.qx'),
 				complete(res) {
 					console.log(res);
 					if (res.confirm) {
@@ -114,7 +116,7 @@ export default {
 							that.listOBj[res.arg.instId] = res.data[0];
 							const item = that.listOBj[res.arg.instId];
 							item.dcf = (((item.last * 1 - item.sodUtc0 * 1) / (item.sodUtc0 * 1)) * 100).toFixed(2);
-							item.name = item.instId.replace('-', '/')
+							item.name = item.instId.replace('-', '/');
 							// that.listOBj[res.arg.instId] = res.data[0];
 							// that.listOBj[res.arg.instId].dcf = (((res.data[0].last * 1 - res.data[0].sodUtc0 * 1) / (res.data[0].sodUtc0 * 1)) * 100).toFixed(2);
 							that.listOBj = Object.assign({}, that.listOBj);

+ 114 - 143
pages/transaction/transfer.vue

@@ -1,183 +1,154 @@
 <template>
 	<view class="content">
-		<view class="" style="height: 50rpx;">
-
-		</view>
+		<view class="" style="height: 50rpx;"></view>
 		<view class="wrap">
-			<view class="imgbox_1">
-				劃轉類型
-			</view>
+			<view class="imgbox_1">{{ $t('user.hzlx') }}</view>
 			<view class="flex">
-				<view class="imgbox_noaction" :class="{'imgbox_action': current == 1}" @click="current = 1">
-					資金賬戶轉合約賬戶
-				</view>
-				<view class="imgbox_noaction" :class="{'imgbox_action': current == 2}" @click="current = 2">
-					合約帳戶轉資金賬戶
-				</view>
+				<view class="imgbox_noaction" :class="{ imgbox_action: current == 1 }" @click="current = 1">{{ $t('user.zjzhzhyzh') }}</view>
+				<view class="imgbox_noaction" :class="{ imgbox_action: current == 2 }" @click="current = 2">{{ $t('user.hyzhzzjzh') }}</view>
 			</view>
 			<view class="flex" style="margin-top: 20rpx;">
-				<view class="item-left">
-					資金賬戶
-				</view>
-				<view class="item-right">
-					可用餘額 {{userInfo.usdt}} USDT
-				</view>
+				<view class="item-left">{{ $t('user.zjzh') }}</view>
+				<view class="item-right">{{ $t('user.kyye') }} {{ userInfo.usdt }} USDT</view>
 			</view>
 			<view class="flex">
-				<view class="item-left">
-					合約賬戶
-				</view>
-				<view class="item-right">
-					可用餘額 {{userInfo.money}} USDT
-				</view>
+				<view class="item-left">{{ $t('user.hyzh') }}</view>
+				<view class="item-right">{{ $t('user.kyye') }} {{ userInfo.money }} USDT</view>
 			</view>
 			<view class="sr-wrap flex">
-				<input type="digit" placeholder="輸入劃轉數量" class="sr-inp" v-model="tbnum" />
-				<view class="">
-					USDT
-				</view>
-			</view>
-			<view class="sub-btn" @click="transfer">
-				提交
+				<input type="digit" :placeholder="$t('user.qsrhzsl')" class="sr-inp" v-model="tbnum" />
+				<view class="">USDT</view>
 			</view>
+			<view class="sub-btn" @click="transfer">{{ $t('user.tj') }}</view>
 		</view>
 	</view>
 </template>
 
 <script>
-	import {
-		mapState,
-		mapMutations
-	} from 'vuex';
-	import {
-		transfer,
-		getUser
-	} from '@/api/login.js'
-	export default {
-		data() {
-			return {
-				current: 1,
-				tbnum: '',
-				loaded: false
+import { mapState, mapMutations } from 'vuex';
+import { transfer, getUser } from '@/api/login.js';
+export default {
+	data() {
+		return {
+			current: 1,
+			tbnum: '',
+			loaded: false
+		};
+	},
+	onLoad() {
+		console.log(this.userInfo);
+	},
+	computed: {
+		...mapState('user', ['userInfo'])
+	},
+	onShow() {
+		uni.setNavigationBarTitle({ title: this.$t('user.zjhz') });
+		getUser().then(re => {
+			this.setUserInfo(re.data);
+		});
+	},
+	onReachBottom() {},
+	onReady() {},
+	methods: {
+		...mapMutations('user', ['setUserInfo']),
+		transfer() {
+			let obj = this;
+			if (obj.loaded) {
+				return;
 			}
-		},
-		onLoad() {
-			console.log(this.userInfo)
-		},
-		computed: {
-			...mapState('user', ['userInfo'])
-		},
-		onShow() {
-			getUser().then(re => {
-				this.setUserInfo(re.data)
+			obj.loaded = true;
+			transfer({
+				tbnum: obj.tbnum,
+				type: obj.current
 			})
-		},
-		onReachBottom() {
-
-		},
-		onReady() {
-
-		},
-		methods: {
-			...mapMutations('user', ['setUserInfo']),
-			transfer() {
-				let obj = this
-				if(obj.loaded) {
-					return
-				}
-				obj.loaded = true
-				transfer({
-					tbnum: obj.tbnum,
-					type: obj.current
-				}).then(res => {
-					
+				.then(res => {
 					uni.showToast({
-						title: '劃轉成功',
+						title: this.$t('user.hzcg'),
 						duration: 2000,
 						position: 'top'
 					});
 					getUser().then(re => {
-						obj.loaded = false
-						obj.setUserInfo(re.data)
-					})
-				}).catch(err => {
-					obj.loaded = false
+						obj.loaded = false;
+						obj.setUserInfo(re.data);
+					});
 				})
-			}
+				.catch(err => {
+					obj.loaded = false;
+				});
 		}
 	}
+};
 </script>
 
 <style lang="scss">
-	.wrap {
-		width: 640rpx;
-		height: 610rpx;
-		padding: 40rpx;
-		background-color: #fff;
-		margin: auto;
-		border-radius: 20rpx;
-
-		.imgbox_1 {
-			height: 80rpx;
-			line-height: 80rpx;
-			font-size: 32rpx;
-		}
-
-		.imgbox_noaction {
-			width: 280rpx;
-			height: 70rpx;
-			line-height: 70rpx;
-			text-align: center;
-			font-size: 24rpx;
-			border: #ccc solid 1px;
-			color: #ccc;
-			border-radius: 20rpx;
-		}
-
-		.imgbox_action {
-			color: #FCD535;
-			border: #FCD535 solid 1px;
-
-		}
-	}
+.wrap {
+	width: 640rpx;
+	height: 610rpx;
+	padding: 40rpx;
+	background-color: #fff;
+	margin: auto;
+	border-radius: 20rpx;
 
-	.item-left {
-		height: 60rpx;
-		line-height: 60rpx;
+	.imgbox_1 {
+		height: 80rpx;
+		line-height: 80rpx;
 		font-size: 32rpx;
 	}
 
-	.item-right {
-		height: 60rpx;
-		line-height: 60rpx;
+	.imgbox_noaction {
+		width: 280rpx;
+		height: 70rpx;
+		line-height: 70rpx;
+		text-align: center;
 		font-size: 24rpx;
-		color: #707A8A;
-	}
-
-	.sr-wrap {
-		width: 560rpx;
-		height: 80rpx;
-		background-color: #f5f5f5;
+		border: #ccc solid 1px;
+		color: #ccc;
 		border-radius: 20rpx;
-		padding: 0 20rpx;
+	}
 
-		.sr-inp {
-			width: 352rpx;
-			height: 60rpx;
-			line-height: 60rpx;
-			display: inline-block;
-		}
+	.imgbox_action {
+		color: #fcd535;
+		border: #fcd535 solid 1px;
 	}
+}
 
-	.sub-btn {
-		width: 560rpx;
-		height: 80rpx;
-		line-height: 80rpx;
-		color: #000;
-		text-align: center;
-		font-size: 28rpx;
-		background: linear-gradient(to left, #eeb80d, #ffe35b);
-		margin-top: 30rpx;
-		border-radius: 20rpx;
+.item-left {
+	height: 60rpx;
+	line-height: 60rpx;
+	font-size: 32rpx;
+}
+
+.item-right {
+	height: 60rpx;
+	line-height: 60rpx;
+	font-size: 24rpx;
+	color: #707a8a;
+}
+
+.sr-wrap {
+	width: 560rpx;
+	height: 80rpx;
+	background-color: #f5f5f5;
+	border-radius: 20rpx;
+	padding: 0 20rpx;
+
+	.sr-inp {
+		width: 352rpx;
+		height: 60rpx;
+		line-height: 60rpx;
+		display: inline-block;
 	}
+}
+
+.sub-btn {
+	width: 560rpx;
+	height: 80rpx;
+	line-height: 80rpx;
+	color: #000;
+	text-align: center;
+	font-size: 28rpx;
+	background: linear-gradient(to left, #eeb80d, #ffe35b);
+	margin-top: 30rpx;
+	border-radius: 20rpx;
+}
 </style>

+ 130 - 156
pages/user/authrz.vue

@@ -1,190 +1,164 @@
 <template>
 	<view class="content">
 		<view class="">
-			<view class="" style="padding: 50rpx 30rpx;font-size: 50rpx;">
-				實名認證
+			<view class="" style="padding: 50rpx 30rpx;font-size: 50rpx;">{{ $t('smrz.smrz') }}</view>
+			<view class="" style="width: 720rpx;height: 80rpx;background-color: #fff;margin: auto;line-height: 80rpx;padding:0 10rpx;border-radius: 20rpx;font-size: 26rpx;">
+				{{ $t('smrz.wcsmrz') }}
 			</view>
-			<view class=""
-				style="width: 720rpx;height: 80rpx;background-color: #fff;margin: auto;line-height: 80rpx;padding:0 10rpx;border-radius: 20rpx;font-size: 26rpx;">
-				完成實名認證後能夠獲得相應的權益
-			</view>
-			<view class=""
-				style="width: 720rpx;height: 80rpx;background-color: #fff;margin: auto;line-height: 80rpx;padding:0 10rpx;border-radius: 20rpx;font-size: 26rpx;">
-				高級實名
+			<view class="" style="width: 720rpx;height: 80rpx;background-color: #fff;margin: auto;line-height: 80rpx;padding:0 10rpx;border-radius: 20rpx;font-size: 26rpx;">
+				{{ $t('smrz.gjsm') }}
 			</view>
 		</view>
 		<view class="up-wrap">
-			<view class="up-tit">
-				姓名
-			</view>
-			<input type="text" v-model="nickname" placeholder="請輸入姓名" class="cardinp">
-			<view class="up-tit">
-				身份證號碼
-			</view>
-			<input type="text" v-model="card" placeholder="請輸入身份證號碼" class="cardinp">
-			<view class="up-tit">
-				上傳身份證正面
-			</view>
+			<view class="up-tit">{{ $t('smrz.xm') }}</view>
+			<input type="text" v-model="nickname" :placeholder="$t('smrz.qsrxm')" class="cardinp" />
+			<view class="up-tit">{{ $t('smrz.sfzhm') }}</view>
+			<input type="text" v-model="card" :placeholder="$t('smrz.sfzhm')" class="cardinp" />
+			<view class="up-tit">{{ $t('smrz.scsfzzm') }}</view>
 			<view class="up-img" @click="upcardzm()">
 				<image :src="cardzmt" mode="heightFix" v-if="cardzmt"></image>
 				<image src="../../static/img/flower.png" mode="heightFix" v-else></image>
 			</view>
-			<view class="up-tit">
-				上傳身份證背面
-			</view>
-			<view class="up-img"  @click="upcardfm()">
+			<view class="up-tit">{{ $t('smrz.scsfzfm') }}</view>
+			<view class="up-img" @click="upcardfm()">
 				<image :src="cardfmt" mode="heightFix" v-if="cardfmt"></image>
 				<image src="../../static/img/flower.png" mode="heightFix" v-else></image>
 			</view>
-			
-		</view>
-		<view class="up-btn" @click="upauthrz()">
-			高級提交
 		</view>
+		<view class="up-btn" @click="upauthrz()">{{ $t('smrz.gjtj') }}</view>
 	</view>
 </template>
 
 <script>
-	import { mapState, mapMutations } from 'vuex';
-	import {
-		upauthrz,
-		upimg,
-		getUser
-	} from '@/api/login.js'
-	import { upload } from '@/api/wallet.js'
-	export default {
-		data() {
-			return {
-				nickname: '',
-				card: '',
-				cardzm: '',
-				cardzmt: '',
-				cardfm: '',
-				cardfmt: '',
-			}
-		},
-		onLoad() {
-			this.getUser()
+import { mapState, mapMutations } from 'vuex';
+import { upauthrz, upimg, getUser } from '@/api/login.js';
+import { upload } from '@/api/wallet.js';
+export default {
+	data() {
+		return {
+			nickname: '',
+			card: '',
+			cardzm: '',
+			cardzmt: '',
+			cardfm: '',
+			cardfmt: ''
+		};
+	},
+	onLoad() {
+		this.getUser();
+	},
+	onShow() {},
+	onReachBottom() {},
+	onReady() {},
+	methods: {
+		...mapMutations('user', ['setUserInfo']),
+		getUser() {
+			let obj = this;
+			getUser().then(res => {
+				console.log(res);
+				let data = res.data;
+				this.setUserInfo(res.data);
+				if (res.data.name) {
+					obj.nickname = data.name;
+					obj.cardzm = data.cardzm;
+					obj.cardzmt = data.http + data.cardzm;
+					obj.cardfm = data.cardfm;
+					obj.cardfmt = data.http + data.cardfm;
+					obj.card = data.zhengjian;
+				}
+			});
 		},
-		onShow() {
-
+		upcardzm() {
+			upload({
+				filename: ''
+			}).then(data => {
+				console.log('data', data);
+				this.cardzm = data[0].img;
+				this.cardzmt = data[0].src;
+			});
 		},
-		onReachBottom() {
-
+		upcardfm() {
+			upload({
+				filename: ''
+			}).then(data => {
+				console.log('data', data);
+				this.cardfm = data[0].img;
+				this.cardfmt = data[0].src;
+			});
 		},
-		onReady() {
-
-		},
-		methods: {
-			...mapMutations('user',['setUserInfo']),
-			getUser() {
-				let obj = this
-				getUser().then(res => {
-					console.log(res)
-					let data = res.data
-					this.setUserInfo(res.data)
-					if(res.data.name) {
-						obj.nickname = data.name
-						obj.cardzm = data.cardzm
-						obj.cardzmt = data.http + data.cardzm
-						obj.cardfm = data.cardfm
-						obj.cardfmt = data.http + data.cardfm
-						obj.card = data.zhengjian
-					}
-				})
-			},
-			upcardzm() {
-				upload({
-					filename: ''
-				}).then(data => {
-					console.log('data', data);
-					this.cardzm = data[0].img;
-					this.cardzmt = data[0].src;
-				});
-			},
-			upcardfm() {
-				upload({
-					filename: ''
-				}).then(data => {
-					console.log('data', data);
-					this.cardfm = data[0].img;
-					this.cardfmt = data[0].src;
-				});
-			},
-			upauthrz() {
-				let obj = this
-				if(obj.nickname == '') {
-					return obj.$api.msg('請輸入姓名')
-				}
-				if(obj.card == '') {
-					return obj.$api.msg('請輸入身份證')
-				}
-				if(obj.cardzm == '') {
-					return obj.$api.msg('請上傳身份證正面')
-				}
-				if(obj.cardfm == '') {
-					return obj.$api.msg('請上傳身份證反面')
-				}
-				upauthrz({
-					cardzm: obj.cardzm,
-					cardfm: obj.cardfm,
-					nickname: obj.nickname,
-					card: obj.card
-				}).then(res => {
-					uni.showToast({
-						title: '提交成功',
-						duration: 2000,
-						position: 'top'
-					});
-				})
+		upauthrz() {
+			let obj = this;
+			if (obj.nickname == '') {
+				return obj.$api.msg(this.$t('smrz.qsrxm'));
 			}
+			if (obj.card == '') {
+				return obj.$api.msg(this.$t('smrz.qsrsfz'));
+			}
+			if (obj.cardzm == '') {
+				return obj.$api.msg(this.$t('smrz.qscsfzzm'));
+			}
+			if (obj.cardfm == '') {
+				return obj.$api.msg(this.$t('smrz.qscsfzfm'));
+			}
+			upauthrz({
+				cardzm: obj.cardzm,
+				cardfm: obj.cardfm,
+				nickname: obj.nickname,
+				card: obj.card
+			}).then(res => {
+				uni.showToast({
+					title: this.$t('smrz.tjcg'),
+					duration: 2000,
+					position: 'top'
+				});
+			});
 		}
 	}
+};
 </script>
 
 <style lang="scss">
-	.up-wrap {
-		width: 720rpx;
-		// height: 860rpx;
-		border-radius: 20rpx;
-		background-color: #fff;
-		margin: 30rpx auto;
-		padding: 20rpx;
-		font-size: 32rpx;
+.up-wrap {
+	width: 720rpx;
+	// height: 860rpx;
+	border-radius: 20rpx;
+	background-color: #fff;
+	margin: 30rpx auto;
+	padding: 20rpx;
+	font-size: 32rpx;
 
-		.up-tit {
-			height: 80rpx;
-			line-height: 80rpx;
-		}
-		.up-img {
-			height: 240rpx;
-			margin-top: 20rpx ;
-			image {
-				height: 200rpx;
-				display: block;
-				margin: auto;
-			}
-		}
-		
-	}
-	.cardinp {
-		display: inline-block;
-		width: 100%;
+	.up-tit {
 		height: 80rpx;
 		line-height: 80rpx;
-		background-color: #f5f5f5;
-		border-radius: 20rpx;
-		padding-left: 20rpx;
 	}
-	.up-btn {
-		margin: 20rpx auto 0;
-		width: 680rpx;
-		height: 80rpx;
-		line-height: 80rpx;
-		text-align: center;
-		color: #000;
-		font-size: 28rpx;
-		background:linear-gradient(to left,#eeb80d,#ffe35b);
-		border-radius: 20rpx;
+	.up-img {
+		height: 240rpx;
+		margin-top: 20rpx;
+		image {
+			height: 200rpx;
+			display: block;
+			margin: auto;
+		}
 	}
+}
+.cardinp {
+	display: inline-block;
+	width: 100%;
+	height: 80rpx;
+	line-height: 80rpx;
+	background-color: #f5f5f5;
+	border-radius: 20rpx;
+	padding-left: 20rpx;
+}
+.up-btn {
+	margin: 20rpx auto 0;
+	width: 680rpx;
+	height: 80rpx;
+	line-height: 80rpx;
+	text-align: center;
+	color: #000;
+	font-size: 28rpx;
+	background: linear-gradient(to left, #eeb80d, #ffe35b);
+	border-radius: 20rpx;
+}
 </style>

+ 11 - 11
pages/user/coininfo.vue

@@ -4,34 +4,34 @@
 			<view class="contentbox_top">{{ info.name }}</view>
 			<view class="base-info flex">
 				<view class="info-item">
-					<view class="item-name">可用</view>
+					<view class="item-name">{{ $t('user.ky') }}</view>
 					<view class="item-val">{{ info.num }}</view>
 				</view>
 				<view class="info-item">
-					<view class="item-name">凍結</view>
+					<view class="item-name">{{ $t('user.dj') }}</view>
 					<view class="item-val">{{ info.numd }}</view>
 				</view>
 				<view class="info-item">
-					<view class="item-name" style="text-align: right;">折合(USDT)</view>
+					<view class="item-name" style="text-align: right;">{{ $t('user.zh') }}(USDT)</view>
 					<view class="item-val" style="text-align: right;">{{ info.zhe }}</view>
 				</view>
 			</view>
 		</view>
 		<view class="" style="height: 20rpx;background-color: #f5f5f5;"></view>
-		<view class="tit">財務記錄</view>
+		<view class="tit">{{ $t('user.cwjl') }}</view>
 		<view class="cwjl-wrap" v-for="item in list">
 			<view class="jl-tit">{{ item.remark }}</view>
 			<view class="jl-info flex">
 				<view class="info-item">
-					<view class="item-name">數量</view>
+					<view class="item-name">{{ $t('user.sl') }}</view>
 					<view class="item-val">{{ item.num }}</view>
 				</view>
 				<view class="info-item">
-					<view class="item-name">狀態</view>
-					<view class="item-val">{{ item.st == 1 ? '增加' : item.st == 2 ? '減少' : '' }}</view>
+					<view class="item-name">{{ $t('user.zt') }}</view>
+					<view class="item-val">{{ item.st == 1 ? $t('user.zj') : item.st == 2 ? $t('user.js') : '' }}</view>
 				</view>
 				<view class="info-item">
-					<view class="item-name" style="text-align: right;">時間</view>
+					<view class="item-name" style="text-align: right;">{{ $t('user.sj') }}</view>
 					<view class="item-val" style="text-align: right;">{{ item.addtime }}</view>
 				</view>
 			</view>
@@ -39,9 +39,9 @@
 		<uni-load-more :status="loadingType"></uni-load-more>
 		<view class="tianc" style="height: 120rpx;background-color: #fff;"></view>
 		<view class="btm-btn flex">
-			<view class="btnbox_a " v-if="info.czstatus == 1" @click="navto('/pages/transaction/cbdetail?type=' + id)">充幣</view>
-			<view class="btnbox_b " v-if="info.txstatus == 1" @click="navto('/pages/transaction/tbdetail?type=' + id)">提幣</view>
-			<view class="btnbox_b " v-if="id == 4" @click="navto('/pages/transaction/transfer')">劃轉</view>
+			<view class="btnbox_a " v-if="info.czstatus == 1" @click="navto('/pages/transaction/cbdetail?type=' + id)">{{ $t('user.cb') }}</view>
+			<view class="btnbox_b " v-if="info.txstatus == 1" @click="navto('/pages/transaction/tbdetail?type=' + id)">{{ $t('user.tb') }}</view>
+			<view class="btnbox_b " v-if="id == 4" @click="navto('/pages/transaction/transfer')">{{ $t('user.hz') }}</view>
 		</view>
 	</view>
 </template>

+ 3 - 2
pages/user/menu.vue

@@ -87,8 +87,9 @@ export default {
 			// this.$refs.popup.open();
 			let obj = this;
 			uni.showModal({
-				content: '確認退出登錄?',
-				confirmText: '確認',
+				content: this.$t('popup.qrtcdl'),
+				confirmText: this.$t('popup.qr'),
+				cancelText: this.$t('popup.qx'),
 				success: e => {
 					if (e.confirm) {
 						loginout().then(res => {

+ 86 - 104
pages/user/respwd.vue

@@ -1,121 +1,103 @@
 <template>
 	<view class="content">
-		<view class="tip">
-			*為了您的資金安全,登錄密碼修改後24小時以內不允許提現。
-		</view>
-		<view class="tit">
-			舊密碼
-		</view>
-		<input type="password" class="shuru" placeholder="請翰入舊密碼" v-model="oldpwd">
-		<view class="tit">
-			新密碼
-		</view>
-		<input type="password" class="shuru" placeholder="請翰入新密碼" v-model="newpwd">
-		<view class="tit">
-			確認密碼
-		</view>
-		<input type="password" class="shuru" placeholder="請翰入確認密碼" v-model="renewpwd">
-		<view class="loginout" @click="changepass()">
-			提交
-		</view>
+		<view class="tip">{{ $t('mm.wlnd') }}</view>
+		<view class="tit">{{ $t('mm.jmm') }}</view>
+		<input type="password" class="shuru" :placeholder="$t('mm.qsrjmm')" v-model="oldpwd" />
+		<view class="tit">{{ $t('mm.xmm') }}</view>
+		<input type="password" class="shuru" :placeholder="$t('mm.qsrxmm')" v-model="newpwd" />
+		<view class="tit">{{ $t('mm.qrmm') }}</view>
+		<input type="password" class="shuru" :placeholder="$t('mm.qsrqrmm')" v-model="renewpwd" />
+		<view class="loginout" @click="changepass()">{{ $t('mm.tj') }}</view>
 	</view>
 </template>
 
 <script>
-	import {
-		changepass
-	} from '@/api/login.js'
-	export default {
-		data() {
-			return {
-				//oldpwd newpwd
-				oldpwd: '',
-				newpwd: '',
-				renewpwd: ''
+import { changepass } from '@/api/login.js';
+export default {
+	data() {
+		return {
+			//oldpwd newpwd
+			oldpwd: '',
+			newpwd: '',
+			renewpwd: ''
+		};
+	},
+	onLoad() {
+		uni.setNavigationBarTitle({ title: this.$t('mm.mm') });
+	},
+	onShow() {},
+	onReachBottom() {},
+	onReady() {},
+	methods: {
+		changepass() {
+			let obj = this;
+			if (obj.oldpwd == '') {
+				return obj.$api.msg(this.$t('mm.qsrjmm'));
 			}
-		},
-		onLoad() {
-
-		},
-		onShow() {
-
-		},
-		onReachBottom() {
-
-		},
-		onReady() {
-
-		},
-		methods: {
-			changepass() {
-				let obj = this
-				if(obj.oldpwd == '') {
-					return obj.$api.msg('請翰入舊密碼')
-				}
-				if(obj.newpwd == '') {
-					return obj.$api.msg('請翰入新密碼')
-				}
-				if(obj.renewpwd == '') {
-					return obj.$api.msg('請翰入確認密碼')
-				}
-				if(obj.newpwd != obj.renewpwd) {
-					return obj.$api.msg('兩次密碼不一致')
-				}
-				changepass({
-					oldpwd: obj.oldpwd,
-					newpwd: obj.newpwd
-				}).then(res => {
-					uni.showToast({
-						title: '修改成功',
-						duration: 2000,
-						position: 'top'
-					});
-					setTimeout(()=> {
-						uni.switchTab({
-							url: '/pages/index/index'
-						})
-					},1500)
-				})
+			if (obj.newpwd == '') {
+				return obj.$api.msg(this.$t('mm.qsrxmm'));
+			}
+			if (obj.renewpwd == '') {
+				return obj.$api.msg(this.$t('mm.qsrqrmm'));
+			}
+			if (obj.newpwd != obj.renewpwd) {
+				return obj.$api.msg(this.$t('mm.lcmmbyz'));
 			}
+			changepass({
+				oldpwd: obj.oldpwd,
+				newpwd: obj.newpwd
+			}).then(res => {
+				uni.showToast({
+					title: this.$t('xgcg'),
+					duration: 2000,
+					position: 'top'
+				});
+				setTimeout(() => {
+					uni.switchTab({
+						url: '/pages/index/index'
+					});
+				}, 1500);
+			});
 		}
 	}
+};
 </script>
 
 <style lang="scss">
-	page {
-		height: 100%;
-		background-color: #fff;
-	}
+page {
+	height: 100%;
+	background-color: #fff;
+}
 
-	.tip {
-		color: red;
-		font-size: 26rpx;
-		padding: 30rpx;
-	}
+.tip {
+	color: red;
+	font-size: 26rpx;
+	padding: 30rpx;
+}
 
-	.shuru {
-		display: block;
-		background-color: #f5f5f5;
-		width: 673rpx;
-		height: 95rpx;
-		margin: auto;
-		padding-left: 30rpx;
-		text-align: 95rpx;
-	}
+.shuru {
+	display: block;
+	background-color: #f5f5f5;
+	width: 673rpx;
+	height: 95rpx;
+	margin: auto;
+	padding-left: 30rpx;
+	text-align: 95rpx;
+}
 
-	.tit {
-		padding: 60rpx 48rpx 20rpx;
-	}
-	.loginout {
-		width: 675rpx;
-		height: 70rpx;
-		line-height: 70rpx;
-		text-align: center;
-		font-size: 26rpx;
-		color: #000;
-		background-color: #f4d03c;
-		margin: 50rpx auto;
-		border-radius: 20rpx;
-		font-weight: bold;
-	}
+.tit {
+	padding: 60rpx 48rpx 20rpx;
+}
+.loginout {
+	width: 675rpx;
+	height: 70rpx;
+	line-height: 70rpx;
+	text-align: center;
+	font-size: 26rpx;
+	color: #000;
+	background-color: #f4d03c;
+	margin: 50rpx auto;
+	border-radius: 20rpx;
+	font-weight: bold;
+}
 </style>

+ 12 - 9
pages/user/user.vue

@@ -6,21 +6,23 @@
 				<image v-if="!show" @click="look(true)" src="../../static/icon/user-eyesb.png" mode=""></image>
 			</view>
 			<view class="allmbox_2 flex">
-				<view class="allmbox_2_font">賬戶總資產折合(USDT)</view>
+				<view class="allmbox_2_font">{{ $t('user.zhzzczh') }}(USDT)</view>
 				<view class="allmbox_2_icon" @click="open()"><image src="../../static/icon/user-th.png" mode=""></image></view>
 			</view>
 			<view class="allmbox_3">{{ show ? money : '****.****' }}</view>
 
 			<view class="allmbox_btn">
 				<view class="allmbox_btn_1">
-					<view class="allmbox_cbtn btn_active" @click="navTo('/pages/transaction/cblist')">充幣</view>
-					<view class="allmbox_tbtn" @click="navTo('/pages/transaction/tblist')">提幣</view>
+					<view class="allmbox_cbtn btn_active" @click="navTo('/pages/transaction/cblist')">{{ $t('user.cb') }}</view>
+					<view class="allmbox_tbtn" @click="navTo('/pages/transaction/tblist')">{{ $t('user.tb') }}</view>
 				</view>
 			</view>
 		</view>
 		<view class="findbox">
 			<view class="findbox_1">
-				<view class="findbox_2"><view class="findbox_3">資產列表</view></view>
+				<view class="findbox_2">
+					<view class="findbox_3">{{ $t('user.zclb') }}</view>
+				</view>
 			</view>
 
 			<scroll-view :scroll-y="true" class="swiper-box" :style="{ height: maxheight }">
@@ -31,15 +33,15 @@
 					</view>
 					<view class="main flex">
 						<view class="main-item">
-							<view class="main-item-font">可用</view>
+							<view class="main-item-font">{{ $t('user.ky') }}</view>
 							<view class="main-item-num">{{ item.data.num || '0.0000' }}</view>
 						</view>
 						<view class="main-item">
-							<view class="main-item-font">冻结</view>
+							<view class="main-item-font">{{ $t('user.dj') }}</view>
 							<view class="main-item-num">{{ item.data.numd || '0.0000' }}</view>
 						</view>
 						<view class="main-item">
-							<view class="main-item-font">折合(USDT)</view>
+							<view class="main-item-font">{{ $t('user.zh') }}(USDT)</view>
 							<view class="main-item-num">{{ item.data.zhe || '0.0000' }}</view>
 						</view>
 					</view>
@@ -49,8 +51,8 @@
 		<uni-popup ref="popup" type="center">
 			<view class="popup-box">
 				<view class="img"><image src="../../static/img/user-index.png" mode=""></image></view>
-				<view class="popup-font">由於資金統計存在延時,賬戶餘額不一定是並非最新余額,如需準確餘額請到相關賬戶頁面進行查詢</view>
-				<view class="btn" @click="cancel()">確定</view>
+				<view class="popup-font">{{ $t('user.yyzjtjcz') }}</view>
+				<view class="btn" @click="cancel()">{{ $t('user.qd') }}</view>
 			</view>
 		</uni-popup>
 	</view>
@@ -85,6 +87,7 @@ export default {
 	},
 	onLoad() {},
 	onShow() {
+		uni.setNavigationBarTitle({ title: this.$t('user.zc') });
 		this.loadData();
 	},
 	methods: {

Tiedoston diff-näkymää rajattu, sillä se on liian suuri
+ 3 - 3
unpackage/dist/dev/app-plus/app-service.js


Tiedoston diff-näkymää rajattu, sillä se on liian suuri
+ 106 - 106
unpackage/dist/dev/app-plus/app-view.js


Kaikkia tiedostoja ei voida näyttää, sillä liian monta tiedostoa muuttui tässä diffissä