bitcooo
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 

498 lines
13 KiB

<template>
<view class="ac">
<navigation :showBack="false" :bgnum="true">
<image src="../../../../static/tongyonh/Vector.png" mode="aspectFit" class="back" @click="back()" ></image>
<text class="big_title">
{{addressInfo.type}} Transfer
</text>
</navigation>
<view class="main">
<view class="main_con">
<view class="yuan">
<image :src="addressInfo.coinList[0].icon" mode="aspectFit" class="img1"></image>
</view>
<view class="title">
{{addressInfo.type}}
</view>
<view class="item">
<view class="top flex">
<view class="text1">
Receiving address
</view>
<view class="text2" @click="goAddress('transfer')">
Adress Book
</view>
</view>
<view class="inputcon">
<input type="text" value="" placeholder-style="font-size: 30rpx; color: #D0D0D2;" placeholder="Please enter the recipient address" class="input1" v-model="recipientAddress" />
<image src="../../../../static/tongyonh/Frame330.png" mode="aspectFit" class="img1"></image>
</view>
</view>
<view class="item">
<view class="top flex">
<view class="text1">
Transfer amount
</view>
</view>
<view class="inputcon2 flex">
<view class="inputc flex">
<view class="textt">
{{addressInfo.type}}
</view>
<input type="text" value="" placeholder-style="font-size: 30rpx; color: #D0D0D2;" placeholder="0.0000000" class="input3" v-model="transAmount"/>
</view>
<text>≈</text>
<view class="inputc flex">
<view class="textt">
USD
</view>
<input type="text" value="" placeholder-style="font-size: 30rpx; color: #D0D0D2;" placeholder="0.0000000" class="input3"/>
</view>
</view>
<view class="top flex bottom">
<view class="text3">
Balance: {{addressInfo.balance}}
</view>
<view class="text1 bg" @click="forAll">
ALL
</view>
</view>
</view>
<view class="item">
<view class="top flex">
<view class="text1">
Remark
</view>
</view>
<view class="inputcon">
<input type="text" value="" placeholder-style="font-size: 30rpx; color: #D0D0D2;" placeholder="Please enter a note (off-chain)" class="input1"/>
</view>
</view>
<view class="item">
<view class="top flex">
<view class="text1">
Transaction fee
</view>
</view>
<view class="inputcon" >
<input type="text" v-model="fee" value="" placeholder-style="font-size: 30rpx; color: #D0D0D2;" placeholder="Please enter a note (off-chain)" class="input2"/>
<view class="rig">
<text class="text1 ac">{{addressInfo.type}}</text> | <text class="text2">USDT</text>
</view>
</view>
</view>
</view>
</view>
<view class="big_con" v-if="showBottom">
<view class="tiao" @click="show=false">
</view>
<view class="bigtitle">
Transfer confirmation
</view>
<view class="bottom_con">
<view class="yuan">
<image :src="addressInfo.coinList[0].icon" mode="aspectFit" class="img1"></image>
</view>
<view class="title">
{{addressInfo.type}}
</view>
<view class="title_con flex">
<view class="text1">
Amount
</view>
<view class="text1">
{{transAmount}} {{addressInfo.type}}
</view>
</view>
<view class="item">
<view class="text1">
Send address
</view>
<view class="text2">
{{addressInfo.address}}
</view>
</view>
<view class="item">
<view class="text1">
Receiving address
</view>
<view class="text2">
{{recipientAddress}}
</view>
</view>
<view class="item">
<view class="text1">
Remark
</view>
<view class="text2">
1.00 TRX
</view>
</view>
<view class="item">
<view class="text1">
Transaction fee
</view>
<view class="text2">
{{fee}} {{addressInfo.type}}
</view>
</view>
<view class="goto" @click="confirmTo">
Confirm
</view>
</view>
</view>
<u-mask z-index="10" :show="show"></u-mask>
<!-- <u-mask z-index="1000" :show="show2" @click="show2 = false"></u-mask> -->
<view class="zhiwen_con" v-if="showFinger">
<view class="tiao" @click="cancel">
</view>
<view class="bigtitle">
Fingerprint password
</view>
<view class="bottom_con">
<image src="../../../../static/tongyonh/zhiwen.png" mode="aspectFit" class="img1"></image>
<view class="text1">
Touch the fingerprint sensor
</view>
<view class="flex con">
<view class="textt1" @click="goPassword" v-if="!passShow">
Use Password
</view>
<view class="textt2" @click="cancel">
Cancel
</view>
</view>
</view>
</view>
<view class="zhiwen_con" v-if="fingerFail">
<view class="tiao">
</view>
<view class="bigtitle">
Fingerprint password
</view>
<view class="bottom_con">
<image src="../../../../static/tongyonh/alert-circle.png" mode="aspectFit" class="img1"></image>
<view class="text1 red">
Fingerprint not recognized. <br><text @click="">Try again</text> .
</view>
<view class="flex con">
<view class="textt1" @click="goPassword">
Use Password
</view>
<view class="textt2">
Cancel
</view>
</view>
</view>
</view>
<view class="zhiwen_con" v-if="fingerSuccess">
<view class="tiao">
</view>
<view class="bigtitle">
Fingerprint password
</view>
<view class="bottom_con">
<image src="../../../../static/tongyonh/x-circle.png" mode="aspectFit" class="img1"></image>
<view class="text1 green">
Fingerprint recognized.
</view>
<!-- <view class="flex con">
<view class="textt1">
Use Password
</view>
<view class="textt2">
Confirm
</view>
</view> -->
</view>
</view>
<view class="btn_con" @click="Confirm">
<view class="btn">
Confirm
</view>
</view>
</view>
</template>
<script>
import cont from "@/components/navigation/navigation.vue"
export default {
data() {
return {
fee:1000,
show: false,
show2: false,
showFinger:false,
showBottom:false,
addressInfo:{},
recipientAddress:'',
transAmount:'',
fingerSuccess:false,
fingerFail:false,
// 是否显示使用密码,有设置指纹就不显示
passShow:false,
// 不用指纹去密码页面存的信息
transInfoPass:{
fromAddress:'',
toAddress:"",
privateKey:'',
amount:'',
}
}
},
methods: {
cancel(){
this.show=false
this.showFinger=false
this.$walletUtil.printCancel()
},
// 不用指纹去密码页
goPassword(){
this.$walletUtil.printCancel();
console.log(111)
uni.navigateTo({
url:'/pages/menu/sendToken/enPassword/index'
})
},
// 唤起指纹
confirmTo(){
this.show=true
this.showFinger=true
this.showBottom=false;
// 指纹识别成功返回一个true
this.fingerprint();
// 存储去密码页面的信息
this.transInfoPass.fromAddress=this.addressInfo.address;
this.transInfoPass.toAddress=this.recipientAddress;
this.transInfoPass.privateKey=this.addressInfo.privateKey;
this.transInfoPass.amount=this.transAmount;
console.log(this.transInfoPass,444)
// 存储去密码页面的信息
uni.setStorageSync('transInfoPass',this.transInfoPass)
},
back(){
uni.reLaunch({
url:'../../wallet/index'
})
},
// 点击获取所有钱
forAll(){
this.transAmount=this.addressInfo.balance
},
// 确认提交
Confirm(){
// 做判断
if(this.transAmount==''){
uni.showToast({
title: 'Please enter the transfer amount',
icon: 'none',
duration: 1500
})
return
}
if(this.recipientAddress==''){
uni.showToast({
title: 'Please enter the receiving address',
icon: 'none',
duration: 1500
})
return
}
if(this.transAmount==''<0){
uni.showToast({
title: 'The entered amount cannot be less than 0',
icon: 'none',
duration: 1500
})
return
}
// if( this.transAmount>this.addressInfo.balance){
// uni.showToast({
// title: 'Sorry, your credit is running low',
// icon: 'none',
// duration: 1500
// })
// return
// }
this.showBottom=true;
this.show=true;
},
// 指纹识别
fingerprint: function(sett) {
let bltype=true;
// #ifdef APP-PLUS
if (!plus.fingerprint.isSupport()) {
uni.showToast({
title: 'This device does not support fingerprint identification',
icon: 'none',
duration: 1500
})
// this.disabled = true;
} else if (!plus.fingerprint.isKeyguardSecure()) {
uni.showToast({
title: 'This device is not equipped with a password lock screen and cannot use fingerprint identification',
icon: 'none',
duration: 1500
})
} else if (!plus.fingerprint.isEnrolledFingerprints()) {
uni.showToast({
title: 'There is no fingerprint entered in this device. Please turn it on in the setting',
icon: 'none',
duration: 1500
})
// this.disabled = true;
} else {
// this.result = '此设备支持指纹识别';
// // this.disabled = false;
// #ifdef MP-WEIXIN
// this.disabled = false;
uni.showToast({
title: 'Please use it in wechat real machine. The simulator does not support it',
icon: 'none',
duration: 1500
})
// #endif
// #ifndef APP-PLUS || MP-WEIXIN
uni.showToast({
title: 'Fingerprint identification is not supported on this platform',
icon: 'none',
duration: 1500,
})
// #endif
let that=this;
// #ifdef APP-PLUS
plus.fingerprint.authenticate(function() {
plus.nativeUI.closeWaiting(); //兼容Android平台关闭等待框
// uni.showToast({
// title: 'Fingerprint identification succeeded',
// icon: 'none',
// duration: 1500,
// })
// 存储设置里开启指纹后的状态,隐藏使用密码
// uni.setStorageSync('fingerPass',true)
that.showBottom=false;
that.fingerSuccess=true;
console.log(that.fingerSuccess,454545)
}, function(e) {
switch (e.code) {
case e.AUTHENTICATE_MISMATCH:
// plus.nativeUI.toast('Fingerprint matching failed, please re-enter');
// uni.setStorageSync('fingerPass',false)
console.log(that.showFinger,454545)
that.showBottom=false;
that.fingerFail=true;
console.log(that.fingerFail,454545)
break;
case e.AUTHENTICATE_OVERLIMIT:
plus.nativeUI.closeWaiting(); //兼容Android平台关闭等待框
// plus.nativeUI.alert('The number of fingerprint identification failures exceeds the limit. Please use other methods for authentication');
// uni.setStorageSync('fingerPass',false)
console.log(that.showFinger,454545)
that.showBottom=false;
that.fingerFail=true;
console.log(that.fingerFail,454545)
break;
case e.CANCEL:
plus.nativeUI.toast('Recognition has been cancelled');
// uni.setStorageSync('fingerPass',false)
console.log(that.showFinger,454545)
that.showBottom=false;
that.fingerFail=true;
console.log(that.fingerFail,454545)
break;
default:
plus.nativeUI.closeWaiting(); //兼容Android平台关闭等待框
uni.setStorageSync('fingerPass',false)
console.log(that.showFinger,454545)
that.showBottom=false;
that.fingerFail=true;
console.log(that.fingerFail,454545)
plus.nativeUI.alert('Fingerprint identification failed, please try again');
break;
}
});
// Android平台手动弹出等待提示框
if ('Android' == plus.os.name) {
this.show=true;
/* plus.nativeUI.showWaiting('指纹识别中...').onclose = function() {
plus.fingerprint.cancel();
} */
}
// #endif
// #ifdef MP-WEIXIN
wx.startSoterAuthentication({
requestAuthModes: ['fingerPrint'],
challenge: '123456',
authContent: '请用指纹解锁',
success(res) {
uni.showToast({
title: '识别成功',
mask: false,
duration: 1500
});
}
})
// #endif
}
// #endif
},
goAddress(text){
console.log(text)
uni.navigateTo({
url:'../address/index?item='+text
})
}
},
onLoad() {
// 判断是否从地址页有传地址过来
if(uni.getStorageSync('myTransAddress')){
this.recipientAddress=uni.getStorageSync('myTransAddress').address
}
// 每次进来拿缓存里有没有指纹
if(uni.getStorageSync('fingerPass')){
this.passShow=uni.getStorageSync('fingerPass')
}
this.addressInfo=uni.getStorageSync('infoWallet')
console.log(this.addressInfo,1111)
}
};
</script>
<style scoped>
page {
background: #FAFAFA;
height: 100%;
}
</style>
<style>
@import './index.css';
</style>