Browse Source

修改提币页面、资产打开后不能进行提币、提币记录布局、新增拒绝理由

master
liaoxinyu 4 months ago
parent
commit
db9fb59b37
  1. 3
      api/setting.js
  2. BIN
      assets/img/tishi.png
  3. BIN
      assets/img/zhuanzan.png
  4. 8
      element/index.js
  5. 22
      i18n/lang/en.json
  6. 22
      i18n/lang/zh-TW.json
  7. 6
      main.js
  8. 6
      pages.json
  9. 6
      pages/accountSettings/accountSettings.vue
  10. 2
      pages/assets/coin-list.vue
  11. 21
      pages/assets/draw.vue
  12. 442
      pages/assets/draw1.vue
  13. 51
      pages/assets/records.vue
  14. 1
      pages/auth/primary.vue
  15. 94
      pages/auth/senior.vue
  16. 2
      pages/base/home.vue
  17. 16
      pages/base/mine.vue
  18. 38
      pages/reg/index.vue
  19. 11
      pages/safe/index.vue
  20. 65
      pages/safe/withdrawals-pwd.vue

3
api/setting.js

@ -77,6 +77,9 @@ class Setting {
static updatePassword(data,{btn}) {
return Serve.post(`/user/updatePassword`, data,{btn});
}
static withdrawalPassword(data,{btn}) {
return Serve.post(`/user/withdrawalPassword`, data,{btn});
}
/**
* 绑定邮箱
* @param {object} data

BIN
assets/img/tishi.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.3 KiB

BIN
assets/img/zhuanzan.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 367 B

8
element/index.js

@ -1,8 +1,12 @@
// 导入自己需要的组件
import { Slider } from 'element-ui'
import { Slider,Progress,Steps,Step,Select,Option } from 'element-ui'
const components = [Slider,Progress,Steps,Step,Select,Option]
const element = {
install: function (Vue) {
Vue.use(Slider)
// Vue.use(Slider)
components.forEach(component => {
Vue.use(component)
})
}
}
export default element

22
i18n/lang/en.json

@ -69,7 +69,26 @@
"c5": "your transfer order has been submitted successfully, please wait patiently, and the transfer result will be notified by SMS or e-mail. Please check it carefully. If you have any questions, please contact the customer service in time.",
"c6": "Proportion of increase",
"c7": "Current valuation",
"loading": "loading"
"loading": "loading",
"c12": "Rejection Information",
"c13": "Withdrawal password",
"c14": "Please fill in the withdrawal password",
"c15": "Reset withdrawal password",
"rejection":"Reason for rejection",
"c16": "Send",
"c17": "Transfer Address",
"c18": "Transfer Amount",
"c19": "Recharge/Transfer",
"c20": "Contact Customer Service",
"c21": "Select Currency",
"c22": "Password and Email Verification Code",
"c23": "Estimated arrival time",
"c24": "Received quantity",
"c25": "Withdrawal",
"c26": "The transfer quantity cannot be greater than {name}",
"c27": "Transfer Records",
"c28": "confirm",
"c29": "Please check your withdrawal address carefully and make sure it is filled in correctly. If you miss or fill in the wrong information, you may lose your assets."
},
"base": {
"a0": "Title",
@ -242,6 +261,7 @@
"d12": "Please enter your phone number",
"d13": "Please select",
"d14": "Select date",
"d15": "The file size is too large to exceed",
"SelectAreaCode": "Select Area Code"
},
"exchange": {

22
i18n/lang/zh-TW.json

@ -68,7 +68,26 @@
"c4": "數量",
"c5": "您的劃轉訂單已提交成功,請耐心等待,劃轉結果會以簡訊或郵件的管道通知。請注意查收,如有疑問請及時聯系客服",
"c6": "漲幅比例",
"loading": "加载中"
"loading": "加载中",
"c12": "駁回信息",
"c13": "提款密碼",
"c14": "請填写提款密碼",
"c15": "重置提款密碼",
"rejection":"拒絕理由",
"c16": "轉移",
"c17": "轉移地址",
"c18": "轉移金額",
"c19": "充值/轉移",
"c20": "聯絡客服",
"c21": "選擇幣種",
"c22": "密碼及邮箱驗證碼",
"c23": "預計到帳時間",
"c24": "到帳數量",
"c25": "提現",
"c26": "轉移數量不能大於{name}",
"c27": "轉移記錄",
"c28": "確認",
"c29": "請認真核對您的提幣地址,務必檢查是否正確填寫。如果您漏添或填錯,將有可能對您的資產造成損失"
},
"base": {
"a0": "標題",
@ -241,6 +260,7 @@
"d12": "請輸入手機號",
"d13": "請選擇",
"d14": "選擇日期",
"d15": "檔案尺寸過大,不得超過",
"SelectAreaCode": "選擇區號"
},
"exchange": {

6
main.js

@ -3,9 +3,9 @@ import App from './App.vue'
import '@/plugins'
import i18n from "./i18n";
import store from './store'
// import 'element-ui/lib/theme-chalk/index.css'
// import element from './element/index'
// Vue.use(element)
import 'element-ui/lib/theme-chalk/index.css'
import element from './element/index'
Vue.use(element)
//把vuex定义成全局组件
Vue.prototype.$store = store
Vue.prototype._i18n = i18n;

6
pages.json

@ -179,6 +179,12 @@
{
"path" : "pages/oncs/onservice"
},
{
"path" : "pages/safe/withdrawals-pwd"
},
{
"path" : "pages/assets/draw1"
},
{
"path": "pages/service/index",
"style": {

6
pages/accountSettings/accountSettings.vue

@ -59,13 +59,13 @@
<v-link
tag="div"
to="/pages/safe/email"
class="per-bot p-x-md p-y-md d-flex align-center justify-between bg-panel-3"
>
<!-- to="/pages/safe/email" -->
<span class="color-light">{{$t('accountSettings.a7')}}</span>
<view class="d-flex align-center">
<span>{{user.email}}</span>
<span class="color-theme-1 m-l-xs" v-if="user.email">{{$t('accountSettings.a5')}}</span>
<!-- <span class="color-theme-1 m-l-xs" v-if="user.email">{{$t('accountSettings.a5')}}</span>
<span class="color-theme-1 m-l-xs" v-else>{{$t('accountSettings.a6')}}</span>
<van-icon
class="p-l-xs"
@ -73,7 +73,7 @@
size="16"
color="#646566"
@click.stop
/>
/> -->
</view>
</v-link>
</view>

2
pages/assets/coin-list.vue

@ -8,7 +8,7 @@
<view class="layout-main">
<template v-for="item in showList">
<view
v-if="item.coin_name=='USDT'||item.coin_name=='BTC'||item.coin_name=='ETH'||item.coin_name=='USDC'"
v-if="item.is_recharge!==0&&item.is_recharge!==null||item.is_withdraw!==0&&item.is_withdraw!==null"
class="p-y-md p-x-xs align-center justify-between d-flex link-active m-x-md border-b"
@click="$emit('input',item.coin_name);$emit('close');$emit('imgs',item)"
>

21
pages/assets/draw.vue

@ -108,12 +108,12 @@
</v-input>
</view>
<view class="d-flex align-center p-y-xs m-t-ms justify-between color-light fn-15">
<span>{{ $t("reg.a8") }}</span>
<span>{{ $t("common.c13") }}</span>
<!-- <span class="color-light">{{ withdrawFee.withdrawal_fee }} {{coin}}</span> -->
</view>
<view class="d-flex align-end p-y-xs justify-between bg-form-panel-3 rounded-xs p-y-sm">
<v-input type="password" v-model="form.password" class="p-x-ms color-light w-max fn-13 rounded-xs" :placeholder="$t('reg.a9')">
<v-input type="password" v-model="form.password" class="p-x-ms color-light w-max fn-13 rounded-xs" :placeholder="$t('common.c14')">
</v-input>
</view>
@ -240,12 +240,13 @@ export default {
form: {
coin_id: "",
amount: "",
password:"",
// password:"",
withdrawal_psw:"",
address: "",
addressType: "",
code_type: 1,
code: '',
emailcode: '',
emailcode: '',
},
withdrawFee: {},
list: [],
@ -328,10 +329,14 @@ export default {
this.$toast(this.$t('assets.c2'))
return
}
if (!this.form.password) {
this.$toast(this.$t('reg.a9'))
if (!this.form.withdrawal_psw) {
this.$toast(this.$t('common.c14'))
return
}
// if (!this.form.password) {
// this.$toast(this.$t('reg.a9'))
// return
// }
if(this.getEmailCodeLock){return};
this.JStime = 300;
this.tiemr = setInterval(()=>{
@ -366,6 +371,10 @@ export default {
this.$toast(this.$t('safe.a6'))
return
}
if (!this.form.withdrawal_psw) {
this.$toast(this.$t('common.c14'))
return
}
let data = this.withdrawFee
if (data.withdraw_switch == 1) {
this.secondaryShow = true

442
pages/assets/draw1.vue

@ -0,0 +1,442 @@
<template>
<v-page>
<v-header>
<template #title>
<view>
<!-- {{ $t("assets.b6") }} -->
{{ $t("common.c16") }}
<!-- <span class="color-theme-1">{{ coin }}</span> -->
</view>
</template>
<template #right>
<v-link :to="'/pages/assets/records?type='+type">
<van-icon class="fn-20 m-t-xs" name="todo-list-o" />
</v-link>
</template>
</v-header>
<view class="layout-main" style="background-color: #f1f1f1;padding: 20px;">
<el-steps direction="vertical" :active="active" style="min-height: 260px !important;width: 100%;box-sizing: border-box;">
<el-step :title="$t('common.c21')" style="flex-basis: 110px;">
<template slot="description">
<view class="d-flex justify-between m-t-md" @click="coinListShow=true" style="border: 1px solid #4e4e5d;padding: 10px;">
<view class="fn-20 color-light">{{ coin }}</view>
<view class="d-flex align-center">
{{ $t('recharge.a0') }}
<van-icon name="arrow"/>
</view>
</view>
</template>
</el-step>
<el-step :title="$t('common.c17')">
<template slot="description">
<view style="margin: 10px 0px;width: 540rpx;">
<v-input @input="addressnum" v-model="form.address" class="bg-form-panel-3 color-light w-max fn-13 rounded-xs" :placeholder="$t('assets.b9')"></v-input>
<el-select v-model="form.addressType" @change="enteraddressType" style="margin-top: 10px;width: 100%;" class="addressType" v-if="coin=='USDT'" :placeholder="$t('common.select')">
<el-option v-for="(item, index) in network" :key="index" :label="item.name" :value="item.id">
<span>{{ item.name }}</span>
</el-option>
</el-select>
</view>
</template>
</el-step>
<el-step :title="$t('common.c18')" v-if="form.address">
<template slot="description">
<view style="margin: 10px 0px;color: #fff;width: 540rpx;">
<v-input @input="amountnum" v-model="form.amount" :min="withdrawFee.withdrawal_min" :max="withdrawFee.withdrawal_max" class="color-light fn-13" :placeholder="$t('assets.c2')"></v-input>
<view class="d-flex justify-between align-end" style="margin: 10px 0px;">
<view style="width: 100%;">{{ $t("assets.c1") }}{{ withdrawFee.usable_balance }}{{ coin }}</view>
<view style="width: 100%;text-align: right;">{{$t('common.c23')}}{{timeFormat}}</view>
</view>
</view>
</template>
</el-step>
<el-step :title="$t('common.c13')" v-if="form.amount">
<template slot="description">
<view style="margin: 10px 0px;color: #fff;width: 540rpx;">
<v-input type="password" @input="withdrawalnum" v-model="form.withdrawal_psw" class="color-light w-max fn-13 rounded-xs" :placeholder="$t('common.c14')"></v-input>
</view>
</template>
</el-step>
<el-step :title="$t('safe.a5')" v-if="form.withdrawal_psw">
<template slot="description">
<view style="margin: 10px 0px;color: #fff;width: 540rpx;display: flex;">
<v-input type="text" v-model="form.emailcode" class="w-max color-light fn-13" :placeholder="$t('safe.a6')"></v-input>
<view class="d-flex" style="justify-content: space-between;align-items: center;">
<view style="width: 180rpx;text-align: center;" class="all color-light m-l-md flex-shrink fn-12 getCode" @click="getEmailCode">
<text v-if="!getEmailCodeLock">{{ $t("common.getCode") }}</text>
<text v-else>{{ daojishi }}</text>
</view>
</view>
</view>
</template>
</el-step>
</el-steps>
<view style="margin: 20px 32px;border-top: 2px solid #444;">
<view style="display: flex;align-items: center;padding-top: 10px;">{{$t('common.c24')}}<img src="@/assets/img/zhuanzan.png" alt width="20" style="margin-left: 5px;"/></view>
<view style="display: flex;justify-content: space-between;align-items: center;">
<view>
<view style="font-size: 30px;font-weight: bold;max-width: 540rpx;">
<span style="overflow-wrap: anywhere;">{{price1(quantity)}}</span>
</view>
<view>{{$t('assets.c4')}}: {{coin=='USDT'&&form.addressType==3?withdrawFee.trc20:withdrawFee.withdrawal_fee }} {{coin}}</view>
</view>
<view></view>
</view>
<view style="display: flex;margin-top: 10px;">
<view :class="!form.emailcode?'fontWithdrawal':'fontWithdrawal1'" @click="toDraw">
{{$t('common.c25')}}
</view>
</view>
</view>
<view class="form bg-panel-3 p-x-lg p-y-md" style="background-color: #ccc;">
<ul class="fn-md rounded-md m-y-xs line-height-2">
<li>·{{ $t("assets.c5") }}</li>
<li>·{{ $t("assets.c6") }}</li>
<li>·{{ $t("assets.c7") }}</li>
</ul>
</view>
</view>
<coin-list ref="coinList" v-model="coin" @close="coinListShow = false" v-show="coinListShow"/>
<view v-show="promptaddress" class="modal-overlay">
<view class="modal-content">
<view style="margin-top: 25px;padding: 0px 10px;">
<img src="@/assets/img/tishi.png" alt="" width="60" />
<view style="margin: 20px 0px;">{{$t('common.c29')}}</view>
<view class="losure" @click="closeModal">{{$t('common.c28')}}</view>
</view>
</view>
</view>
</v-page>
</template>
<script>
import coinList from "./coin-list";
import Wallet from "@/api/wallet";
import Member from "@/api/member";
import formData from "@/utils/class/date";
import Profile from "@/api/profile";
export default {
components: {
coinList,
},
data() {
return {
type: 'draw',
coin: "",
lang:"",
active:1,
JStime: 0,
tiemr: null,
indexshow:0,
quantity:"0.00",
timeFormat:"",
rechargeType: 2,
withdrawFee: {},
coinListShow: false,
promptaddress:false,
getEmailCodeLock: false,
lang: uni.getStorageSync('language'),
network:[{id:2,name:"ERC20"},{id:3,name:"TRC20"}],
form: {
coin_id: "",
amount: "",
withdrawal_psw:"",
address: "",
addressType: "",
code_type: 1,
code: '',
emailcode: '',
gr_code: '',//Graphic verification code
},
}
},
created() {
this.lang = localStorage.getItem('lang')
this.updateTimeFormat()
this.timeUpdateInterval = setInterval(this.updateTimeFormat, 36000);
},
computed: {
activeCoin() {
if (!this.coin) return {};
return this.$refs.coinList.coinList.find(
(item) => item.coin_name == this.coin
);
},
daojishi(){
return '('+this.JStime + 's' + ')';
}
},
watch: {
coin(n) {
if (n) {
this.active = 2
this.form.address = "";
if (this.coin != "USDT") {
this.form.addressType = 1;
} else {
this.rechargeType = 2;
}
this.withdrawalBalance();
}
},
},
methods: {
price1(item){
if (item) {
let price = item.toString();
let parts = price.split(".");
parts[0] = parts[0].replace(/\B(?=(\d{3})+(?!\d))/g, ",");
return parts.join(".");
}
},
addressnum(e){
if(e&&this.indexshow!==1){
this.indexshow++;
this.promptaddress = true;
this.active = 3
}
// console.log(e);
},
closeModal(){
this.promptaddress = false;
},
//
withdrawalBalance() {
let address_type = 1
let data = {
coin_name: this.coin,
address_type: this.rechargeType
};
Wallet.withdrawalBalance(data).then((res) => {
// console.info(res)
this.withdrawFee = res.data;
});
},
enteraddressType(e){
if(e&&this.form.amount){
const num = this.coin=='USDT'&&this.form.addressType==3?this.withdrawFee.trc20:this.withdrawFee.withdrawal_fee
this.quantity = this.form.amount - num
}
},
//
getEmailCode(){
if (!this.form.address) {
this.$toast(this.$t('assets.b9'))
return
}
if (!this.form.amount) {
this.$toast(this.$t('assets.c2'))
return
}
if (!this.form.withdrawal_psw) {
this.$toast(this.$t('common.c14'))
return
}
// if (!this.form.gr_code) {
// this.$toast(this.$t('common.GraphicValidation'))
// return
// }
if(this.getEmailCodeLock){return};
this.JStime = 300;
this.tiemr = setInterval(()=>{
if(this.JStime===0){
this.getEmailCodeLock = false;
clearInterval(this.tiemr);
return;
}
this.JStime--;
}, 1000)
this.getEmailCodeLock = true;
Member.getWdcode({bt:this.coin,baddr:this.form.address,bnum:this.form.amount}).then(res=>{
// console.log(res);
if(res.code=='4001'){
this.$toast(res.message);
}else{
this.$toast(this.$t('common.sendSuccess'));
}
})
},
//
toDraw() {
if (!this.form.address) {
this.$toast(this.$t('assets.b9'))
return
}
if (!this.form.amount) {
this.$toast(this.$t('assets.c2'))
return
}
if(!this.form.withdrawal_psw){
this.$toast(this.$t('common.c14'))
return
}
if (!this.form.emailcode) {
this.$toast(this.$t('safe.a6'))
return
}
let data = this.withdrawFee
if (data.withdraw_switch == 1) {
this.secondaryShow = true
if (data.google_status == 1) {
this.form.code_type = 3;
} else if (data.phone_status == 1) {
this.form.code_type = 1;
this.$nextTick(() => {
this.$refs.mobileCode.send();
});
} else if (data.email_status == 1) {
this.form.code_type = 2;
this.$nextTick(() => {
this.$refs.emailCode.send();
});
}
} else {
this.draw()
}
},
draw() {
// if(this.status!=2){
// this.$toast(this.$t('common.withdrawal2'));
// }
// this.form.addressType = this.rechargeType;
this.form.coin_id = this.activeCoin.coin_id;
Wallet.withdraw(this.form, {btn: this.$refs.btn})
.then((res) => {
this.secondaryShow = false
this.form.code = ''
if (res.code == 4001) {
this.$toast(res.message);
// this.reGetGraphChe();//
} else {
this.$toast.success(this.$t("assets.d5") + "!");
this.form.amount = ''
setTimeout(()=>{
uni.navigateTo({
url:'/pages/assets/records?type='+this.type
})
}, 1500)
// setTimeout(()=>{
// this.getWithdrawRecords();
// }, 2000)
// setTimeout(()=>{
// this.getWithdrawRecords();
// }, 3000)
}
})
.catch(() => {
});
},
amountnum(){
if(this.form.amount){
this.active = 4
const num = this.coin=='USDT'&&this.form.addressType==3?this.withdrawFee.trc20:this.withdrawFee.withdrawal_fee
this.quantity = this.form.amount - num
if(this.quantity < 0){
this.quantity = "0.00"
}
}else{
this.quantity = "0.00"
}
},
withdrawalnum(){
this.active = 5
},
updateTimeFormat() {
// datatimeFormat
this.timeFormat = this.getTimeFormat();
},
getCurrentUSTime() {
const now = new Date();
const offset = -4 * 60; // UTC-4
// getTimezoneOffset() UTC
const usTime = new Date(now.getTime() + (now.getTimezoneOffset() * 60000) + (offset * 60000));
return usTime;
},
// 01...6
getDayOfWeek(date) {
return date.getDay();
},
// 12H24H
getTimeFormat() {
const usTime = this.getCurrentUSTime();
const dayOfWeek = this.getDayOfWeek(usTime);
return dayOfWeek >= 1 && dayOfWeek <= 5 ? '12H' : '24H';
},
}
}
</script>
<style lang="scss">
</style>
<style scoped lang="scss">
.el-steps--vertical{
height: auto;
}
::v-deep .el-step__title.is-wait {
color: #303133 !important;
}
::v-deep .el-input__inner{
background-color: #242424;
}
::v-deep .is-process .el-step__icon.is-text{
border-color: #C0C4CC;
}
.modal-overlay {
z-index: 999999999999;
position: fixed;
top: 0;
left: 0;
right: 0;
bottom: 0;
background-color: #f1f1f1;
display: flex;
justify-content: center;
align-items: center;
}
.modal-content {
background-color: #1f1f1f;
padding: 20px;
border-radius: 5px;
width: 550rpx;
text-align: center;
position: relative;
}
.losure{
color: #fff;
width: 100%;
height: 40px;
font-size: 16px;
line-height: 40px;
cursor: pointer;
border-radius: 5px;
background-color: #77abff;
}
.getCode{
color: #fff;
margin: 10px 0px;
padding: 5px 10px;
border-radius: 5px;
align-items: center;
border: 1px solid #4e4e5d;
}
.fontWithdrawal{
color: #737475;
cursor: pointer;
padding: 10px 40px;
border-radius: 5px;
background-color: #3f4651;
}
.fontWithdrawal1{
color: #fff;
cursor: pointer;
padding: 10px 40px;
border-radius: 5px;
background-color: #1c52bc;
}
</style>

51
pages/assets/records.vue

@ -16,33 +16,38 @@
<view class="">
<table class="w-max">
<thead class="p-x-md">
<tr class="fn-sm p-x-md">
<th class="p-b-md fn-left p-l-md">{{ $t("assets.c9") }}</th>
<th class="p-b-md fn-left">{{ $t("assets.d0") }}</th>
<th class="p-b-md fn-right p-r-md">{{ $t("assets.c0") }}</th>
<th class="p-b-md fn-right p-r-md">{{ $t("exchange.g3") }}</th>
<tr class="fn-sm p-x-md" style="display: flex;align-items: center;">
<view class="p-b-md fn-left p-l-md" style="width: 25%;">{{ $t("assets.c9") }}</view>
<view class="p-b-md fn-left" style="width: 20%;">{{ $t("assets.d0") }}</view>
<view class="p-b-md fn-right p-r-md" style="width: 30%;">{{ $t("assets.c0") }}</view>
<view class="p-b-md fn-right p-r-md" style="width: 15%;">{{ $t("exchange.g3") }}</view>
</tr>
</thead>
<tbody>
<tr class="color-light trChange p-x-md rounded-md" v-for="item in list" :key="item.id">
<td class="p-y-xs p-l-md rounded-tl-sm rounded-bl-sm fn-sm">
{{ item.datetime | parseTime }}
</td>
<td v-if="type=='draw'">
<view>{{ item.status_text }}</view>
</td>
<td v-if="type=='recharge'">
<view v-if="item.status==0">{{$t('assets.d1')}}</view>
<view v-if="item.status==1" class="color-buy">{{$t('assets.d2')}}</view>
<view v-if="item.status==2" class="color-sell">{{$t('assets.d3')}}</view>
</td>
<td class="fn-right p-r-md rounded-tr-sm rounded-br-sm">
{{ item.amount }}
<span class="color-default">({{ item.coin_name }})</span>
</td>
<td class="" v-if="item.status==0">
<span style="color: #4381F6;width: 60px;height: 30px;font-size: 12px;" @click="cancelWithdraw(item)">{{$t('exchange.g4')}}</span>
</td>
<view style="display: flex;align-items: center;">
<view class="p-y-xs p-l-md rounded-tl-sm rounded-bl-sm fn-sm" style="width: 25%;">
{{ item.datetime | parseTime }}
</view>
<view v-if="type=='draw'" style="width: 20%;">
<view>{{ item.status_text }}</view>
</view>
<view v-if="type=='recharge'">
<view v-if="item.status==0">{{$t('assets.d1')}}</view>
<view v-if="item.status==1" class="color-buy">{{$t('assets.d2')}}</view>
<view v-if="item.status==2" class="color-sell">{{$t('assets.d3')}}</view>
</view>
<view class="fn-right rounded-tr-sm rounded-br-sm" style="width: 30%;">
<view>{{ item.amount }}</view>
<view class="color-default">({{ item.coin_name }})</view>
</view>
<view class="" v-if="item.status==0" style="width: 15%;">
<span style="color: #4381F6;width: 60px;height: 30px;font-size: 12px;" @click="cancelWithdraw(item)">{{$t('exchange.g4')}}</span>
</view>
</view>
<view class="p-l-md" v-if="item.remark" style="color:red;word-wrap: break-word;width:680rpx;">
<view>{{$t('common.rejection')}}{{item.remark}}</view>
</view>
</tr>
<!-- <tr v-if="loadMore">
<td colspan="3" class="fn-center p-xs link-active" @click="more">

1
pages/auth/primary.vue

@ -245,6 +245,7 @@ export default {
},
},
created() {
uni.setLocale('en');
this.getAuthInfo();
this.getCountryCode();
},

94
pages/auth/senior.vue

@ -11,9 +11,11 @@
<div
@click="getFile('front_img')"
class="upload-box d-flex justify-center align-center rounded-sm bg-panel-3 box-shadow"
style="position: relative;"
>
<van-icon v-if="!form.front_img" class="color-light fn-30" name="photograph"/>
<img v-else :src="form.front_img" alt/>
<progress v-if="uploadPercentbol" :percent="uploadPercent" show-info stroke-width="3" style="width: 150px;position: absolute;bottom: -20px;right: 0px;" />
</div>
</div>
</div>
@ -26,9 +28,11 @@
<div
@click="getFile('back_img')"
class="upload-box d-flex justify-center align-center rounded-sm bg-panel-3 box-shadow"
style="position: relative;"
>
<van-icon v-if="!form.back_img" class="color-light fn-30" name="photograph"/>
<img v-else :src="form.back_img" alt/>
<progress v-if="uploadPercentbol1" :percent="uploadPercent1" show-info stroke-width="3" style="width: 150px;position: absolute;bottom: -20px;right: 0px;" />
</div>
</div>
</div>
@ -52,6 +56,10 @@ export default {
detail: {},
countryList: [],
imgBase: undefined,
uploadPercent: 0,
uploadPercentbol:true,
uploadPercentbol1:true,
uploadPercent1: 0,
form: {
hand_img: "",
back_img: "",
@ -65,16 +73,84 @@ export default {
methods: {
getFile(name) {
// console.log(name)
this.$getFile({count: 9}).then((res) => {
this.upLoadImg(res, name);
this.$getFile({count: 1}).then((res) => {
// this.upLoadImg(res, name);
const MAX_SIZE = 5 * 1024 * 1024;
if(res.tempFiles[0]&&res.tempFiles[0].size > MAX_SIZE){
this.$toast(this.$t('auth.d6')+'5M');
}else{
this.upLoadImg(res, name);
}
})
},
//
upLoadImg(chooseImageRes, name) {
Member.uploadImage(chooseImageRes).then((res) => {
this.form[name] = res.data.url;
this.$toast.success(this.$t('auth.c1'));
});
upLoadImg(chooseImageRes, name1) {
if(name1=='front_img'){
this.uploadPercent = 0;
this.uploadPercentbol = true;
const uploadTask = uni.uploadFile({
url: 'https://seee.bigtchain.com/api/app/uploadImage',
filePath: chooseImageRes.tempFiles[0].path,
name: 'image',
header: {
'authorization': uni.getStorageSync('token')
},
success: response => {
// console.log('', response)
const img = JSON.parse(response.data);
this.form[name1] = img.data.url
this.uploadPercent = 100
},
fail: err => {
uni.showToast({ title: '上传失败', icon: 'none' })
}
})
uploadTask.onProgressUpdate((res) => {
// console.log('' + res.progress);
this.uploadPercent = res.progress
if(this.uploadPercent==100){
setTimeout(()=>{
this.uploadPercentbol = false
},1000)
}
});
}else{
this.uploadPercent1 = 0;
this.uploadPercentbol1 = true;
const uploadTask = uni.uploadFile({
url: 'https://seee.bigtchain.com/api/app/uploadImage',
filePath: chooseImageRes.tempFiles[0].path,
name: 'image',
header: {
'authorization': uni.getStorageSync('token')
},
success: response => {
// console.log('', response)
const img = JSON.parse(response.data);
this.form[name1] = img.data.url
this.uploadPercent1 = 100
},
fail: err => {
uni.showToast({ title: '上传失败', icon: 'none' })
}
})
uploadTask.onProgressUpdate((res) => {
// console.log('' + res.progress);
this.uploadPercent1 = res.progress
if(this.uploadPercent1==100){
setTimeout(()=>{
this.uploadPercentbol1 = false
},1000)
}
});
}
// Member.uploadImage(chooseImageRes).then((res) => {
// this.form[name] = res.data.url;
// this.$toast.success(this.$t('auth.c1'));
// });
},
//
topAuth() {
@ -136,4 +212,8 @@ export default {
.bg-panel-3{
background-color: #fff;
}
::v-deep .uni-progress-info{
font-size: 12px;
margin-left: 8px;
}
</style>

2
pages/base/home.vue

@ -1343,7 +1343,7 @@
if (this.isLogin) {
this.chatcount = setInterval(()=>{
this.chat()
},2000)
},5000)
this.createWalletAddress();
this.getAuthInfo()
}

16
pages/base/mine.vue

@ -53,28 +53,24 @@
<view class="m-r-xs d-flex align-center">
<img src="static/img/13.png" alt="" class="h-25" />
</view>
<text class="color-light fn-middle fn-ms">{{
$t("base.b5")
}}</text>
<text class="color-light fn-middle fn-ms">{{$t("base.b5")}}</text>
</v-link>
<v-link tag="view"
:to="ProfileDetail.status==1?'/pages/auth/index':(ProfileDetail.status==2?'/pages/assets/draw':'/pages/auth/senior')"
:to="ProfileDetail.status==1?'/pages/auth/index':(ProfileDetail.status==2?'/pages/assets/draw1':'/pages/auth/senior')"
class="d-flex bg-form-panel-3 align-center p-y-xxs rounded-xs w-33 justify-center">
<view class="m-r-xs d-flex align-center">
<img src="static/img/5.png" alt="" class="h-25" />
</view>
<text class="color-light fn-ms">{{
$t("base.b6")
}}</text>
<text class="color-light fn-ms">{{$t("common.c16")}}</text>
<!-- <text class="color-light fn-ms">{{$t("base.b6")}}</text> -->
</v-link>
<!-- :to="ProfileDetail.status==1?'/pages/auth/index':(ProfileDetail.status==2?'/pages/assets/draw':'/pages/auth/senior')" -->
<v-link tag="view" to="/pages/transfer/index"
class="d-flex bg-form-panel-3 align-center p-y-xxs rounded-xs w-33 justify-center">
<view class="m-r-xs d-flex align-center">
<img src="static/img/hua.png" alt="" class="h-25" />
</view>
<text class="color-light fn-ms">{{
$t("base.d8")
}}</text>
<text class="color-light fn-ms">{{$t("base.d8")}}</text>
</v-link>
</view>
</view>

38
pages/reg/index.vue

@ -106,6 +106,10 @@
<view class="label m-b-xs black">{{$t('reg.b0')}}</view>
<v-input class="login_box3" v-model="form.password_confirmation" type="password" :placeholder="$t('reg.b1')"></v-input>
</view>
<view class="form-item m-b-md p-b-xs">
<view class="label m-b-xs black">{{$t('common.c13')}}</view>
<v-input class="login_box3" v-model="form.withdrawal_psw" type="password" :placeholder="$t('common.c14')"></v-input>
</view>
<!-- <view class="form-item m-b-md p-b-xs">
<view class="label m-b-xs">{{$t('reg.c6')}}</view>
<v-input class="color-light" v-model="form.invitationCode" type="password" :placeholder="$t('reg.c7')"></v-input>
@ -160,26 +164,26 @@ export default {
code: "",
password: "",
password_confirmation: "",
withdrawal_psw:"",
invite_code: "",
gr_code: "",
gr_code: "",
},
captcha: '',
Graph_che:'',
gc_key:'', // tuxiangyanzheng key
captcha: '',
Graph_che:'',
gc_key:'', // tuxiangyanzheng key
check: false,
agreement: {},
country_code:'',
showVerify:false,
imgs:[{
src:'/static/verify/0.jpeg',
color:'#38a7b7'
},{
src:'/static/verify/1.jpeg',
color:'#485967'
}],
sendAAA: false,
hideImg: false
showVerify:false,
imgs:[{
src:'/static/verify/0.jpeg',
color:'#38a7b7'
},{
src:'/static/verify/1.jpeg',
color:'#485967'
}],
sendAAA: false,
hideImg: false
};
},
@ -209,6 +213,10 @@ export default {
this.$toast(this.$t('reg.c7'));
return;
}
if (!this.form.withdrawal_psw) {
this.$toast(this.$t('common.c14'));
return;
}
this.form.type=this.form.type
this.form.country_code = this.country_code || 86;

11
pages/safe/index.vue

@ -26,6 +26,17 @@
</view>
<van-icon name="arrow" />
</v-link>
<v-link
tag="li"
to="/pages/safe/withdrawals-pwd"
class="item link-active d-flex p-x-md p-y-md align-center border-b"
>
<view class="flex-fill d-flex justify-between m-r-xs">
<view class="color-light">{{$t('common.c13')}}</view>
</view>
<van-icon name="arrow" />
</v-link>
<!-- ----------交易密码---------- -->
<!-- <v-link
tag="li"

65
pages/safe/withdrawals-pwd.vue

@ -0,0 +1,65 @@
<template>
<v-page class="pos-login">
<v-header :title="$t('common.c13')"></v-header>
<main class="bg-panel-3 p-x-lg p-y-lg rounded-md box-shadow">
<view class="form-item border-b p-y-md color-light">
<view class="label m-b-xs">{{$t('safe.b3')}}</view>
<view class="input">
<v-input type="password" v-model="form.password" :placeholder="$t('safe.b4')"></v-input>
</view>
</view>
<view class="form-item border-b p-y-md color-light">
<view class="label m-b-xs">{{$t('safe.b5')}}</view>
<view class="input">
<v-input type="password" v-model="form.password_confirmation" :placeholder="$t('safe.b6')"></v-input>
</view>
</view>
<view class="p-md ">
<v-button block type="blue" class="w-max rounded-md" ref="btn" @click="setPassword">{{$t('safe.b7')}}</v-button>
</view>
</main>
<van-toast id="van-toast" />
</v-page>
</template>
<script>
import Member from "@/api/member";
import { mapState } from "vuex";
import Setting from "@/api/setting";
export default {
data() {
return {
form: {
password: "",
password_confirmation: ""
}
};
},
computed: {
...mapState({
user: "user",
}),
},
methods: {
setPassword() {
let data = this.form;
Setting.withdrawalPassword(data, { btn: this.$refs.btn })
.then((res) => {
if(res.code==200){
this.$back();
this.$toast.success(this.$t('safe.d3'));
}
}).catch(() => {});
},
},
};
</script>
<style lang="scss" scoped>
.layout-page{
background-color: #fff !important;
background: none;
}
.bg-panel-3{
background-color: #fff;
}
</style>
Loading…
Cancel
Save