更新打包配置
This commit is contained in:
+182
-182
@@ -1,182 +1,182 @@
|
||||
<template>
|
||||
<view class="content">
|
||||
<TopSafe bgColor="rgba(0,0,0,0)"></TopSafe>
|
||||
<Header :title="topText" bgColor="rgba(0,0,0,0)" />
|
||||
<view class="setting-view">
|
||||
<view class="mid-view">
|
||||
<text class="text-zu1 text-32" v-if="type == 1">注:请与当前登录微信信息一致</text>
|
||||
<text class="text-zu1 text-32 mt-24">{{type == 0 ? '支付宝账号' : '微信账号'}}</text>
|
||||
<view class="input-view">
|
||||
<up-input :placeholder="`请输入${type == 0 ? '支付宝' : '微信'}账号`" border="surround" v-model="account" :customStyle="inputCss"></up-input>
|
||||
</view>
|
||||
<text class="text-zu1 text-32 mt-48">{{type == 0 ? '支付宝姓名' : '微信姓名'}}</text>
|
||||
<view class="input-view">
|
||||
<up-input :placeholder="`请输入${type == 0 ? '支付宝' : '微信真实'}姓名`" border="surround" v-model="name" :customStyle="inputCss"></up-input>
|
||||
</view>
|
||||
</view>
|
||||
</view>
|
||||
<view class="bottom-btn">
|
||||
<MyBtn text="添加" @ok="onAdd"></MyBtn>
|
||||
</view>
|
||||
<up-toast ref="uToastRef"></up-toast>
|
||||
</view>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
import { bindWithdraw } from '@/api/common.js';
|
||||
import Header from '@/components/common/header.vue';
|
||||
import { clear } from '@/utils/auth.js';
|
||||
import TopSafe from '@/components/common/top-safe.nvue'
|
||||
import MyBtn from '@/components/common/my-btn.vue'
|
||||
import func from '@/utils/func.js';
|
||||
import AccountItem from './components/account-item.vue'
|
||||
|
||||
export default {
|
||||
components: { Header, TopSafe,MyBtn,AccountItem },
|
||||
data() {
|
||||
return {
|
||||
topText:'',
|
||||
type:0,
|
||||
account:'',
|
||||
name:'',
|
||||
wxCode:'',
|
||||
inputCss: {
|
||||
"height": '80rpx',
|
||||
"background": "#F3F3F3FF",
|
||||
"border-radius": "30rpx",
|
||||
"border": "0rpx",
|
||||
"padding-left": "12rpx",
|
||||
},
|
||||
};
|
||||
},
|
||||
onLoad(option) {
|
||||
if(option && option.type){
|
||||
this.type = Number(option.type);
|
||||
this.init();
|
||||
}
|
||||
},
|
||||
methods: {
|
||||
init() {
|
||||
if(this.type == 0 ){
|
||||
this.topText = '绑定支付宝账户';
|
||||
}else if(this.type == 1){
|
||||
this.topText = '绑定微信账户';
|
||||
}
|
||||
},
|
||||
setBindWithdraw(){
|
||||
if(!this.account){
|
||||
this.$refs.uToastRef.show({
|
||||
type: 'error',
|
||||
message: '账户不可为空',
|
||||
});
|
||||
return;
|
||||
}
|
||||
if(!this.name){
|
||||
this.$refs.uToastRef.show({
|
||||
type: 'error',
|
||||
message: '名字不可为空',
|
||||
});
|
||||
return;
|
||||
}
|
||||
let params = {
|
||||
platform:this.type + 1,
|
||||
accountNumber:this.account,
|
||||
accountName:this.name
|
||||
}
|
||||
if(this.type == 1){
|
||||
params['code'] = this.wxCode;
|
||||
}
|
||||
console.log('wxCode',params)
|
||||
bindWithdraw(params).then(res=>{
|
||||
if (res.bizcode === 100) {
|
||||
this.$refs.uToastRef.show({
|
||||
type: 'success',
|
||||
message: '绑定成功',
|
||||
});
|
||||
this.account = '';
|
||||
this.name = '';
|
||||
setTimeout(()=>{
|
||||
uni.navigateBack();
|
||||
},1000)
|
||||
} else {
|
||||
this.$refs.uToastRef.show({
|
||||
type: 'error',
|
||||
message: res.msg,
|
||||
});
|
||||
return null;
|
||||
}
|
||||
})
|
||||
},
|
||||
onAdd(){
|
||||
if(this.type == 1){
|
||||
let _this = this;
|
||||
uni.login({
|
||||
provider: 'weixin',
|
||||
onlyAuthorize:true,
|
||||
success: function (loginRes) {
|
||||
_this.wxCode = loginRes.code;
|
||||
console.log('aaaaa',loginRes.code)
|
||||
console.log('bbbb',loginRes)
|
||||
_this.setBindWithdraw();
|
||||
},
|
||||
fail:(err)=>{
|
||||
console.log('login',err);
|
||||
}
|
||||
});
|
||||
}else{
|
||||
this.setBindWithdraw();
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
}
|
||||
</script>
|
||||
|
||||
<style lang="scss" scoped>
|
||||
.bottom-btn{
|
||||
width: 100%;
|
||||
margin-bottom:92rpx;
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
align-items: center;
|
||||
padding: 0 32rpx;
|
||||
box-sizing: border-box;
|
||||
position: relative;
|
||||
|
||||
}
|
||||
.setting-view {
|
||||
width: 100%;
|
||||
height: calc(100% - 88rpx - 92rpx - 88rpx - var(--status-bar-height));
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
align-items: center;
|
||||
overflow-y: auto;
|
||||
padding: 0 32rpx;
|
||||
box-sizing: border-box;
|
||||
position: relative;
|
||||
.mid-view{
|
||||
width:100%;
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
overflow-y: auto;
|
||||
box-sizing: border-box;
|
||||
background-color: #fff;
|
||||
border-radius: 16rpx;
|
||||
padding: 48rpx 32rpx;
|
||||
margin-top:24rpx;
|
||||
.input-view{
|
||||
width:100%;
|
||||
height:100rpx;
|
||||
background-color: #f5f5f5;
|
||||
border-radius: 20rpx;
|
||||
margin-top:32rpx;
|
||||
display: flex;
|
||||
flex-direction: row;
|
||||
align-items: center;
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
</style>
|
||||
<template>
|
||||
<view class="content">
|
||||
<TopSafe bgColor="rgba(0,0,0,0)"></TopSafe>
|
||||
<Header :title="topText" bgColor="rgba(0,0,0,0)" />
|
||||
<view class="setting-view">
|
||||
<view class="mid-view">
|
||||
<text class="text-zu1 text-32" v-if="type == 1">注:请与当前登录微信信息一致</text>
|
||||
<text class="text-zu1 text-32 mt-24">{{type == 0 ? '支付宝账号' : '微信账号'}}</text>
|
||||
<view class="input-view">
|
||||
<up-input :placeholder="`请输入${type == 0 ? '支付宝' : '微信'}账号`" border="surround" v-model="account" :customStyle="inputCss"></up-input>
|
||||
</view>
|
||||
<text class="text-zu1 text-32 mt-48">{{type == 0 ? '支付宝姓名' : '微信姓名'}}</text>
|
||||
<view class="input-view">
|
||||
<up-input :placeholder="`请输入${type == 0 ? '支付宝' : '微信真实'}姓名`" border="surround" v-model="name" :customStyle="inputCss"></up-input>
|
||||
</view>
|
||||
</view>
|
||||
</view>
|
||||
<view class="bottom-btn">
|
||||
<MyBtn text="添加" @ok="onAdd"></MyBtn>
|
||||
</view>
|
||||
<up-toast ref="uToastRef"></up-toast>
|
||||
</view>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
import { bindWithdraw } from '@/api/common.js';
|
||||
import Header from '@/components/common/header.vue';
|
||||
import { clear } from '@/utils/auth.js';
|
||||
import TopSafe from '@/components/common/top-safe.nvue'
|
||||
import MyBtn from '@/components/common/my-btn.vue'
|
||||
import func from '@/utils/func.js';
|
||||
import AccountItem from './components/account-item.vue'
|
||||
|
||||
export default {
|
||||
components: { Header, TopSafe,MyBtn,AccountItem },
|
||||
data() {
|
||||
return {
|
||||
topText:'',
|
||||
type:0,
|
||||
account:'',
|
||||
name:'',
|
||||
wxCode:'',
|
||||
inputCss: {
|
||||
"height": '80rpx',
|
||||
"background": "#F3F3F3FF",
|
||||
"border-radius": "30rpx",
|
||||
"border": "0rpx",
|
||||
"padding-left": "12rpx",
|
||||
},
|
||||
};
|
||||
},
|
||||
onLoad(option) {
|
||||
if(option && option.type){
|
||||
this.type = Number(option.type);
|
||||
this.init();
|
||||
}
|
||||
},
|
||||
methods: {
|
||||
init() {
|
||||
if(this.type == 0 ){
|
||||
this.topText = '绑定支付宝账户';
|
||||
}else if(this.type == 1){
|
||||
this.topText = '绑定微信账户';
|
||||
}
|
||||
},
|
||||
setBindWithdraw(){
|
||||
if(!this.account){
|
||||
this.$refs.uToastRef.show({
|
||||
type: 'error',
|
||||
message: '账户不可为空',
|
||||
});
|
||||
return;
|
||||
}
|
||||
if(!this.name){
|
||||
this.$refs.uToastRef.show({
|
||||
type: 'error',
|
||||
message: '名字不可为空',
|
||||
});
|
||||
return;
|
||||
}
|
||||
let params = {
|
||||
platform:this.type + 1,
|
||||
accountNumber:this.account,
|
||||
accountName:this.name
|
||||
}
|
||||
if(this.type == 1){
|
||||
params['code'] = this.wxCode;
|
||||
}
|
||||
console.log('wxCode',params)
|
||||
bindWithdraw(params).then(res=>{
|
||||
if (res.bizcode === 100) {
|
||||
this.$refs.uToastRef.show({
|
||||
type: 'success',
|
||||
message: '绑定成功',
|
||||
});
|
||||
this.account = '';
|
||||
this.name = '';
|
||||
setTimeout(()=>{
|
||||
uni.navigateBack();
|
||||
},1000)
|
||||
} else {
|
||||
this.$refs.uToastRef.show({
|
||||
type: 'error',
|
||||
message: res.msg,
|
||||
});
|
||||
return null;
|
||||
}
|
||||
})
|
||||
},
|
||||
onAdd(){
|
||||
if(this.type == 1){
|
||||
let _this = this;
|
||||
uni.login({
|
||||
provider: 'weixin',
|
||||
onlyAuthorize:true,
|
||||
success: function (loginRes) {
|
||||
_this.wxCode = loginRes.code;
|
||||
console.log('aaaaa',loginRes.code)
|
||||
console.log('bbbb',loginRes)
|
||||
_this.setBindWithdraw();
|
||||
},
|
||||
fail:(err)=>{
|
||||
console.log('login',err);
|
||||
}
|
||||
});
|
||||
}else{
|
||||
this.setBindWithdraw();
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
}
|
||||
</script>
|
||||
|
||||
<style lang="scss" scoped>
|
||||
.bottom-btn{
|
||||
width: 100%;
|
||||
margin-bottom:92rpx;
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
align-items: center;
|
||||
padding: 0 32rpx;
|
||||
box-sizing: border-box;
|
||||
position: relative;
|
||||
|
||||
}
|
||||
.setting-view {
|
||||
width: 100%;
|
||||
height: calc(100% - 88rpx - 92rpx - 88rpx - var(--status-bar-height));
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
align-items: center;
|
||||
overflow-y: auto;
|
||||
padding: 0 32rpx;
|
||||
box-sizing: border-box;
|
||||
position: relative;
|
||||
.mid-view{
|
||||
width:100%;
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
overflow-y: auto;
|
||||
box-sizing: border-box;
|
||||
background-color: #fff;
|
||||
border-radius: 16rpx;
|
||||
padding: 48rpx 32rpx;
|
||||
margin-top:24rpx;
|
||||
.input-view{
|
||||
width:100%;
|
||||
height:100rpx;
|
||||
background-color: #f5f5f5;
|
||||
border-radius: 20rpx;
|
||||
margin-top:32rpx;
|
||||
display: flex;
|
||||
flex-direction: row;
|
||||
align-items: center;
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
</style>
|
||||
|
||||
@@ -1,121 +1,121 @@
|
||||
<template>
|
||||
<view class="shop-item-view" v-if="dataItem">
|
||||
<image src="https://cex-pub.s3.ap-southeast-1.amazonaws.com/static/new/alpha.png" v-if="dataItem.name != 'WALLET'"></image>
|
||||
<image src="https://cex-pub.s3.ap-southeast-1.amazonaws.com/static/new/no_black_data.png" v-else></image>
|
||||
<view class="shop-mid-view-one" v-if="dataItem.name != 'WALLET'">
|
||||
<text class="text-32 text-zu1 text-overflow">{{dataItem.account}}</text>
|
||||
</view>
|
||||
<view class="shop-mid-view" v-else>
|
||||
<text class="text-32 text-zu1 text-overflow">BNB Smart Chain(BEP20)</text>
|
||||
<text class="text-32 text-fu1 text-overflow">{{address}}</text>
|
||||
</view>
|
||||
<view class="biao-view">
|
||||
<text class="text-20 text-zi" style="line-height: 1.2;">{{dataItem.name != 'WALLET' ? 'Alpha账户' : '区块链账户'}}</text>
|
||||
</view>
|
||||
<view class="jie-bind" @click="onJie">
|
||||
<text class="text-zu1 text-24">解绑</text>
|
||||
</view>
|
||||
</view>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
|
||||
import func from '@/utils/func.js';
|
||||
export default {
|
||||
props:{
|
||||
dataItem:{
|
||||
type:Object,
|
||||
default:null
|
||||
},
|
||||
|
||||
},
|
||||
computed:{
|
||||
address(){
|
||||
let tmp = '';
|
||||
console.log('this.data',this.dataItem)
|
||||
if(this.dataItem && this.dataItem.name == 'WALLET'){
|
||||
this.dataItem.address = func.addressTurn(this.dataItem.account,6);
|
||||
tmp = this.dataItem.address;
|
||||
}
|
||||
return tmp;
|
||||
}
|
||||
},
|
||||
mounted(){
|
||||
},
|
||||
methods: {
|
||||
onJie(){
|
||||
this.$emit('jie',this.dataItem);
|
||||
}
|
||||
}
|
||||
}
|
||||
</script>
|
||||
|
||||
<style lang="scss" scoped>
|
||||
.shop-item-view{
|
||||
width:100%;
|
||||
min-height:152rpx;
|
||||
display: flex;
|
||||
flex-direction: row;
|
||||
align-items: center;
|
||||
padding: 32rpx 28rpx;
|
||||
box-sizing: border-box;
|
||||
position: relative;
|
||||
border-radius: 12rpx;
|
||||
overflow: hidden;
|
||||
background-color: #fff;
|
||||
margin-top:24rpx;
|
||||
border:2rpx solid #e3e3e3;
|
||||
.jie-bind{
|
||||
height:48rpx;
|
||||
width:112rpx;
|
||||
display: flex;
|
||||
align-items: center;
|
||||
justify-content: center;
|
||||
border-radius:24rpx;
|
||||
position: absolute;
|
||||
right:32rpx;
|
||||
bottom:24rpx;
|
||||
background-color: #F3F3F3;
|
||||
}
|
||||
.biao-view{
|
||||
padding: 0 12rpx;
|
||||
display: flex;
|
||||
align-items: center;
|
||||
justify-content: center;
|
||||
height:36rpx;
|
||||
min-height:36rpx;
|
||||
position: absolute;
|
||||
border-radius: 0px 12rpx 0px 12rpx;
|
||||
top:0;
|
||||
right:0;
|
||||
background-color: #F2EBFE;
|
||||
|
||||
}
|
||||
|
||||
.shop-mid-view{
|
||||
margin:0 24rpx;
|
||||
display: flex;
|
||||
flex:1;
|
||||
height:88rpx;
|
||||
min-height:88rpx;
|
||||
flex-direction: column;
|
||||
justify-content: space-between;
|
||||
}
|
||||
.shop-mid-view-one{
|
||||
margin:0 24rpx;
|
||||
display: flex;
|
||||
flex:1;
|
||||
height:88rpx;
|
||||
min-height:88rpx;
|
||||
flex-direction: column;
|
||||
justify-content: center;
|
||||
}
|
||||
image{
|
||||
width:88rpx;
|
||||
min-width:88rpx;
|
||||
height:88rpx;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
</style>
|
||||
<template>
|
||||
<view class="shop-item-view" v-if="dataItem">
|
||||
<image src="https://cex-pub.s3.ap-southeast-1.amazonaws.com/static/new/alpha.png" v-if="dataItem.name != 'WALLET'"></image>
|
||||
<image src="https://cex-pub.s3.ap-southeast-1.amazonaws.com/static/new/no_black_data.png" v-else></image>
|
||||
<view class="shop-mid-view-one" v-if="dataItem.name != 'WALLET'">
|
||||
<text class="text-32 text-zu1 text-overflow">{{dataItem.account}}</text>
|
||||
</view>
|
||||
<view class="shop-mid-view" v-else>
|
||||
<text class="text-32 text-zu1 text-overflow">BNB Smart Chain(BEP20)</text>
|
||||
<text class="text-32 text-fu1 text-overflow">{{address}}</text>
|
||||
</view>
|
||||
<view class="biao-view">
|
||||
<text class="text-20 text-zi" style="line-height: 1.2;">{{dataItem.name != 'WALLET' ? 'Alpha账户' : '区块链账户'}}</text>
|
||||
</view>
|
||||
<view class="jie-bind" @click="onJie">
|
||||
<text class="text-zu1 text-24">解绑</text>
|
||||
</view>
|
||||
</view>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
|
||||
import func from '@/utils/func.js';
|
||||
export default {
|
||||
props:{
|
||||
dataItem:{
|
||||
type:Object,
|
||||
default:null
|
||||
},
|
||||
|
||||
},
|
||||
computed:{
|
||||
address(){
|
||||
let tmp = '';
|
||||
console.log('this.data',this.dataItem)
|
||||
if(this.dataItem && this.dataItem.name == 'WALLET'){
|
||||
this.dataItem.address = func.addressTurn(this.dataItem.account,6);
|
||||
tmp = this.dataItem.address;
|
||||
}
|
||||
return tmp;
|
||||
}
|
||||
},
|
||||
mounted(){
|
||||
},
|
||||
methods: {
|
||||
onJie(){
|
||||
this.$emit('jie',this.dataItem);
|
||||
}
|
||||
}
|
||||
}
|
||||
</script>
|
||||
|
||||
<style lang="scss" scoped>
|
||||
.shop-item-view{
|
||||
width:100%;
|
||||
min-height:152rpx;
|
||||
display: flex;
|
||||
flex-direction: row;
|
||||
align-items: center;
|
||||
padding: 32rpx 28rpx;
|
||||
box-sizing: border-box;
|
||||
position: relative;
|
||||
border-radius: 12rpx;
|
||||
overflow: hidden;
|
||||
background-color: #fff;
|
||||
margin-top:24rpx;
|
||||
border:2rpx solid #e3e3e3;
|
||||
.jie-bind{
|
||||
height:48rpx;
|
||||
width:112rpx;
|
||||
display: flex;
|
||||
align-items: center;
|
||||
justify-content: center;
|
||||
border-radius:24rpx;
|
||||
position: absolute;
|
||||
right:32rpx;
|
||||
bottom:24rpx;
|
||||
background-color: #F3F3F3;
|
||||
}
|
||||
.biao-view{
|
||||
padding: 0 12rpx;
|
||||
display: flex;
|
||||
align-items: center;
|
||||
justify-content: center;
|
||||
height:36rpx;
|
||||
min-height:36rpx;
|
||||
position: absolute;
|
||||
border-radius: 0px 12rpx 0px 12rpx;
|
||||
top:0;
|
||||
right:0;
|
||||
background-color: #F2EBFE;
|
||||
|
||||
}
|
||||
|
||||
.shop-mid-view{
|
||||
margin:0 24rpx;
|
||||
display: flex;
|
||||
flex:1;
|
||||
height:88rpx;
|
||||
min-height:88rpx;
|
||||
flex-direction: column;
|
||||
justify-content: space-between;
|
||||
}
|
||||
.shop-mid-view-one{
|
||||
margin:0 24rpx;
|
||||
display: flex;
|
||||
flex:1;
|
||||
height:88rpx;
|
||||
min-height:88rpx;
|
||||
flex-direction: column;
|
||||
justify-content: center;
|
||||
}
|
||||
image{
|
||||
width:88rpx;
|
||||
min-width:88rpx;
|
||||
height:88rpx;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
</style>
|
||||
|
||||
@@ -1,84 +1,84 @@
|
||||
<template>
|
||||
<view class="shop-item-view" >
|
||||
<image :src="type == 2 ? 'https://cex-pub.s3.ap-southeast-1.amazonaws.com/static/new/zfb.png' : 'https://cex-pub.s3.ap-southeast-1.amazonaws.com/static/new/wx.png'" ></image>
|
||||
<view class="show-item-left">
|
||||
<text class="text-32 text-zu1">{{itemData.name}}</text>
|
||||
<text class="text-26 text-fu1">账号:{{itemData.account}}</text>
|
||||
</view>
|
||||
<view class="item-right-btn" @click="onBtn">
|
||||
<text class="text-zu1 text-24">解绑</text>
|
||||
</view>
|
||||
</view>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
|
||||
export default {
|
||||
props:{
|
||||
obj:{
|
||||
type:Object,
|
||||
default:null
|
||||
},
|
||||
type:{
|
||||
type:Number,
|
||||
default:0
|
||||
},
|
||||
itemData:{
|
||||
type:[Array,Object],
|
||||
default:()=>{}
|
||||
},
|
||||
|
||||
},
|
||||
mounted(){
|
||||
},
|
||||
methods: {
|
||||
onBtn(){
|
||||
this.$emit('ok',this.itemData);
|
||||
}
|
||||
}
|
||||
}
|
||||
</script>
|
||||
|
||||
<style lang="scss" scoped>
|
||||
.shop-item-view{
|
||||
width:100%;
|
||||
min-height:152rpx;
|
||||
display: flex;
|
||||
flex-direction: row;
|
||||
align-items: center;
|
||||
padding: 32rpx 28rpx;
|
||||
box-sizing: border-box;
|
||||
position: relative;
|
||||
border-radius: 24rpx;
|
||||
overflow: hidden;
|
||||
background-color: #fff;
|
||||
margin-top:24rpx;
|
||||
.show-item-left{
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
height:88rpx;
|
||||
min-height:88rpx;
|
||||
margin-left:24rpx;
|
||||
|
||||
}
|
||||
.item-right-btn{
|
||||
width:112rpx;
|
||||
height:48rpx;
|
||||
min-height:48rpx;
|
||||
display: flex;
|
||||
align-items: center;
|
||||
justify-content: center;
|
||||
background-color: #f3f3f3;
|
||||
border-radius: 24rpx;
|
||||
position: absolute;
|
||||
right:28rpx;
|
||||
}
|
||||
image{
|
||||
width:88rpx;
|
||||
height:88rpx;
|
||||
border-radius: 44rpx;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
</style>
|
||||
<template>
|
||||
<view class="shop-item-view" >
|
||||
<image :src="type == 2 ? 'https://cex-pub.s3.ap-southeast-1.amazonaws.com/static/new/zfb.png' : 'https://cex-pub.s3.ap-southeast-1.amazonaws.com/static/new/wx.png'" ></image>
|
||||
<view class="show-item-left">
|
||||
<text class="text-32 text-zu1">{{itemData.name}}</text>
|
||||
<text class="text-26 text-fu1">账号:{{itemData.account}}</text>
|
||||
</view>
|
||||
<view class="item-right-btn" @click="onBtn">
|
||||
<text class="text-zu1 text-24">解绑</text>
|
||||
</view>
|
||||
</view>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
|
||||
export default {
|
||||
props:{
|
||||
obj:{
|
||||
type:Object,
|
||||
default:null
|
||||
},
|
||||
type:{
|
||||
type:Number,
|
||||
default:0
|
||||
},
|
||||
itemData:{
|
||||
type:[Array,Object],
|
||||
default:()=>{}
|
||||
},
|
||||
|
||||
},
|
||||
mounted(){
|
||||
},
|
||||
methods: {
|
||||
onBtn(){
|
||||
this.$emit('ok',this.itemData);
|
||||
}
|
||||
}
|
||||
}
|
||||
</script>
|
||||
|
||||
<style lang="scss" scoped>
|
||||
.shop-item-view{
|
||||
width:100%;
|
||||
min-height:152rpx;
|
||||
display: flex;
|
||||
flex-direction: row;
|
||||
align-items: center;
|
||||
padding: 32rpx 28rpx;
|
||||
box-sizing: border-box;
|
||||
position: relative;
|
||||
border-radius: 24rpx;
|
||||
overflow: hidden;
|
||||
background-color: #fff;
|
||||
margin-top:24rpx;
|
||||
.show-item-left{
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
height:88rpx;
|
||||
min-height:88rpx;
|
||||
margin-left:24rpx;
|
||||
|
||||
}
|
||||
.item-right-btn{
|
||||
width:112rpx;
|
||||
height:48rpx;
|
||||
min-height:48rpx;
|
||||
display: flex;
|
||||
align-items: center;
|
||||
justify-content: center;
|
||||
background-color: #f3f3f3;
|
||||
border-radius: 24rpx;
|
||||
position: absolute;
|
||||
right:28rpx;
|
||||
}
|
||||
image{
|
||||
width:88rpx;
|
||||
height:88rpx;
|
||||
border-radius: 44rpx;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
</style>
|
||||
|
||||
@@ -1,148 +1,148 @@
|
||||
<template>
|
||||
<u-popup :show="codeShow" mode="bottom" bgColor="transparent">
|
||||
<view class="select-item">
|
||||
<view class="select-head">
|
||||
<view></view>
|
||||
<text class="text-28 text-fu1">验证码</text>
|
||||
<u-icon name="close" color="#333" size="16" @click="onClose"></u-icon>
|
||||
</view>
|
||||
<view class="item-mid-view">
|
||||
<view class="input-view">
|
||||
<up-input placeholder="请输入验证码" border="surround" v-model="code"
|
||||
:customStyle="inputCss">
|
||||
<template #suffix style="margin-right: 10rpx;">
|
||||
<view v-if="countdown" class="code-warp">
|
||||
<up-count-down :time="60 * 1000" format="ss" @finish="countdown = false"></up-count-down>
|
||||
<text style="margin-left: 10rpx;">s</text>
|
||||
</view>
|
||||
<view v-else @click="getMobileCode" class="code_msg">
|
||||
获取验证码
|
||||
</view>
|
||||
</template>
|
||||
</up-input>
|
||||
</view>
|
||||
|
||||
</view>
|
||||
<view class="item-bottom-btn">
|
||||
<MyBtn @ok="onOk" text="确定"></MyBtn>
|
||||
</view>
|
||||
</view>
|
||||
<up-toast ref="uToastRef"></up-toast>
|
||||
</u-popup>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
import { getUserList } from '@/api/common.js';
|
||||
|
||||
import MyBtn from '@/components/common/my-btn.vue'
|
||||
export default {
|
||||
data() {
|
||||
return {
|
||||
code:'',
|
||||
countdown:'',
|
||||
inputCss: {
|
||||
"background": "#fff",
|
||||
},
|
||||
}
|
||||
},
|
||||
components: { MyBtn },
|
||||
props:{
|
||||
codeShow:{
|
||||
type:Boolean,
|
||||
default:false
|
||||
},
|
||||
phone:{
|
||||
type:String,
|
||||
default:''
|
||||
},
|
||||
},
|
||||
mounted(){
|
||||
},
|
||||
methods: {
|
||||
onOk(){
|
||||
if(!this.code){
|
||||
this.$refs.uToastRef.show({
|
||||
type: 'error',
|
||||
message: "验证码不可为空",
|
||||
});
|
||||
return;
|
||||
}
|
||||
this.$emit('ti',this.code);
|
||||
this.code = '';
|
||||
},
|
||||
onClose(){
|
||||
this.$emit('close');
|
||||
this.countdown = false;
|
||||
},
|
||||
async getMobileCode() {
|
||||
if (!this.phone) {
|
||||
this.$refs.uToastRef.show({
|
||||
type: 'error',
|
||||
message: "请输入手机号码",
|
||||
});
|
||||
return;
|
||||
}
|
||||
this.countdown = true;
|
||||
|
||||
const params = {
|
||||
mobile: this.phone,
|
||||
type: 'withdraw'
|
||||
}
|
||||
const response = await getUserList(params);
|
||||
if (response && response.bizcode === 100) {
|
||||
this.$refs.uToastRef.show({
|
||||
type: 'success',
|
||||
message: response.msg,
|
||||
});
|
||||
} else {
|
||||
this.countdown = false;
|
||||
}
|
||||
},
|
||||
}
|
||||
}
|
||||
</script>
|
||||
|
||||
<style scoped lang="scss">
|
||||
.select-item{
|
||||
width:100%;
|
||||
min-height:418rpx;
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
align-items: center;
|
||||
padding: 0 32rpx 24rpx;
|
||||
box-sizing: border-box;
|
||||
background-color: #fff;
|
||||
border-radius: 24rpx 24rpx 0 0;
|
||||
.item-bottom-btn{
|
||||
width:100%;
|
||||
margin-top:24rpx;
|
||||
min-height:88rpx;
|
||||
display: flex;
|
||||
}
|
||||
.item-mid-view{
|
||||
width:100%;
|
||||
height:218rpx;
|
||||
min-height:218rpx;
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
align-items: center;
|
||||
justify-content: center;
|
||||
overflow-y: auto;
|
||||
.input-view{
|
||||
width:100%;
|
||||
height:88rpx;
|
||||
min-height:88rpx;
|
||||
}
|
||||
|
||||
}
|
||||
.select-head{
|
||||
width:100%;
|
||||
height:88rpx;
|
||||
min-height:88rpx;
|
||||
display: flex;
|
||||
flex-direction: row;
|
||||
justify-content: space-between;
|
||||
align-items: center;
|
||||
}
|
||||
}
|
||||
<template>
|
||||
<u-popup :show="codeShow" mode="bottom" bgColor="transparent">
|
||||
<view class="select-item">
|
||||
<view class="select-head">
|
||||
<view></view>
|
||||
<text class="text-28 text-fu1">验证码</text>
|
||||
<u-icon name="close" color="#333" size="16" @click="onClose"></u-icon>
|
||||
</view>
|
||||
<view class="item-mid-view">
|
||||
<view class="input-view">
|
||||
<up-input placeholder="请输入验证码" border="surround" v-model="code"
|
||||
:customStyle="inputCss">
|
||||
<template #suffix style="margin-right: 10rpx;">
|
||||
<view v-if="countdown" class="code-warp">
|
||||
<up-count-down :time="60 * 1000" format="ss" @finish="countdown = false"></up-count-down>
|
||||
<text style="margin-left: 10rpx;">s</text>
|
||||
</view>
|
||||
<view v-else @click="getMobileCode" class="code_msg">
|
||||
获取验证码
|
||||
</view>
|
||||
</template>
|
||||
</up-input>
|
||||
</view>
|
||||
|
||||
</view>
|
||||
<view class="item-bottom-btn">
|
||||
<MyBtn @ok="onOk" text="确定"></MyBtn>
|
||||
</view>
|
||||
</view>
|
||||
<up-toast ref="uToastRef"></up-toast>
|
||||
</u-popup>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
import { getUserList } from '@/api/common.js';
|
||||
|
||||
import MyBtn from '@/components/common/my-btn.vue'
|
||||
export default {
|
||||
data() {
|
||||
return {
|
||||
code:'',
|
||||
countdown:'',
|
||||
inputCss: {
|
||||
"background": "#fff",
|
||||
},
|
||||
}
|
||||
},
|
||||
components: { MyBtn },
|
||||
props:{
|
||||
codeShow:{
|
||||
type:Boolean,
|
||||
default:false
|
||||
},
|
||||
phone:{
|
||||
type:String,
|
||||
default:''
|
||||
},
|
||||
},
|
||||
mounted(){
|
||||
},
|
||||
methods: {
|
||||
onOk(){
|
||||
if(!this.code){
|
||||
this.$refs.uToastRef.show({
|
||||
type: 'error',
|
||||
message: "验证码不可为空",
|
||||
});
|
||||
return;
|
||||
}
|
||||
this.$emit('ti',this.code);
|
||||
this.code = '';
|
||||
},
|
||||
onClose(){
|
||||
this.$emit('close');
|
||||
this.countdown = false;
|
||||
},
|
||||
async getMobileCode() {
|
||||
if (!this.phone) {
|
||||
this.$refs.uToastRef.show({
|
||||
type: 'error',
|
||||
message: "请输入手机号码",
|
||||
});
|
||||
return;
|
||||
}
|
||||
this.countdown = true;
|
||||
|
||||
const params = {
|
||||
mobile: this.phone,
|
||||
type: 'withdraw'
|
||||
}
|
||||
const response = await getUserList(params);
|
||||
if (response && response.bizcode === 100) {
|
||||
this.$refs.uToastRef.show({
|
||||
type: 'success',
|
||||
message: response.msg,
|
||||
});
|
||||
} else {
|
||||
this.countdown = false;
|
||||
}
|
||||
},
|
||||
}
|
||||
}
|
||||
</script>
|
||||
|
||||
<style scoped lang="scss">
|
||||
.select-item{
|
||||
width:100%;
|
||||
min-height:418rpx;
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
align-items: center;
|
||||
padding: 0 32rpx 24rpx;
|
||||
box-sizing: border-box;
|
||||
background-color: #fff;
|
||||
border-radius: 24rpx 24rpx 0 0;
|
||||
.item-bottom-btn{
|
||||
width:100%;
|
||||
margin-top:24rpx;
|
||||
min-height:88rpx;
|
||||
display: flex;
|
||||
}
|
||||
.item-mid-view{
|
||||
width:100%;
|
||||
height:218rpx;
|
||||
min-height:218rpx;
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
align-items: center;
|
||||
justify-content: center;
|
||||
overflow-y: auto;
|
||||
.input-view{
|
||||
width:100%;
|
||||
height:88rpx;
|
||||
min-height:88rpx;
|
||||
}
|
||||
|
||||
}
|
||||
.select-head{
|
||||
width:100%;
|
||||
height:88rpx;
|
||||
min-height:88rpx;
|
||||
display: flex;
|
||||
flex-direction: row;
|
||||
justify-content: space-between;
|
||||
align-items: center;
|
||||
}
|
||||
}
|
||||
</style>
|
||||
@@ -1,193 +1,193 @@
|
||||
<template>
|
||||
<u-popup :show="itemShow" mode="bottom" bgColor="transparent">
|
||||
<view class="select-item">
|
||||
<view class="select-head">
|
||||
<view></view>
|
||||
<text class="text-28 text-fu1">选择{{type == 0 ? '微信' : '支付宝'}}账户</text>
|
||||
<u-icon name="close" color="#333" size="16" @click="onClose"></u-icon>
|
||||
</view>
|
||||
<view class="item-mid-view" v-if="data.length">
|
||||
<view class="item-mid-list" v-for="(item,index) in data" :key="item.id">
|
||||
<image :src="type == 1 ? 'https://cex-pub.s3.ap-southeast-1.amazonaws.com/static/new/zfb.png' : 'https://cex-pub.s3.ap-southeast-1.amazonaws.com/static/new/wx.png'" ></image>
|
||||
<view class="show-item-left">
|
||||
<text class="text-32 text-zu1">{{item.name}}</text>
|
||||
<text class="text-26 text-fu1">账号:{{item.account}}</text>
|
||||
</view>
|
||||
<u-radio-group v-model="itemSelect" style="position: absolute;right:28rpx">
|
||||
<u-radio :name="item.id" activeColor="#7934F6"></u-radio>
|
||||
</u-radio-group>
|
||||
</view>
|
||||
</view>
|
||||
<view class="item-mid-view-two" @click="onAdd" v-if="!data.length">
|
||||
<image src="https://cex-pub.s3.ap-southeast-1.amazonaws.com/static/new/no_black_data.png" class="no-data-black"></image>
|
||||
<text class="text-28 text-fu mt-48">{{`请先绑定一个${type == 0 ? '微信' : '支付宝'}账户,用于收款`}}</text>
|
||||
<view class="add-btn mt-48">
|
||||
<image src="https://cex-pub.s3.ap-southeast-1.amazonaws.com/static/new/add.png" style="margin-right:5rpx;"></image>
|
||||
<text class="text-32 text-zi text-bold" style="margin-left:5rpx;">添加</text>
|
||||
</view>
|
||||
</view>
|
||||
<view class="item-bottom-btn" v-if="data.length">
|
||||
<MyBtn @ok="onOk" text="确定"></MyBtn>
|
||||
</view>
|
||||
</view>
|
||||
</u-popup>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
|
||||
import MyBtn from '@/components/common/my-btn.vue'
|
||||
export default {
|
||||
data() {
|
||||
return {
|
||||
itemSelect:''
|
||||
}
|
||||
},
|
||||
components: { MyBtn },
|
||||
computed:{
|
||||
data(){
|
||||
let tmp = [];
|
||||
if(this.itemData.length){
|
||||
this.itemSelect = this.itemData[0].id;
|
||||
tmp = this.itemData;
|
||||
console.log('tmp',tmp)
|
||||
}
|
||||
return tmp;
|
||||
}
|
||||
},
|
||||
props:{
|
||||
itemShow:{
|
||||
type:Boolean,
|
||||
default:false
|
||||
},
|
||||
itemData:{
|
||||
type:[Array,Object],
|
||||
default:()=>{}
|
||||
},
|
||||
type:{
|
||||
type:[Number,String],
|
||||
default:'0'
|
||||
}
|
||||
},
|
||||
mounted(){
|
||||
},
|
||||
methods: {
|
||||
onOk(){
|
||||
console.log('this',this.itemSelect);
|
||||
this.$emit('ok',this.itemSelect);
|
||||
},
|
||||
onAdd(){
|
||||
this.$emit('add');
|
||||
},
|
||||
onClose(){
|
||||
this.$emit('close');
|
||||
}
|
||||
}
|
||||
}
|
||||
</script>
|
||||
|
||||
<style scoped lang="scss">
|
||||
.select-item{
|
||||
width:100%;
|
||||
min-height:942rpx;
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
align-items: center;
|
||||
padding: 0 32rpx 24rpx;
|
||||
box-sizing: border-box;
|
||||
background-color: #fff;
|
||||
border-radius: 24rpx 24rpx 0 0;
|
||||
.item-bottom-btn{
|
||||
width:100%;
|
||||
margin-top:24rpx;
|
||||
min-height:88rpx;
|
||||
display: flex;
|
||||
}
|
||||
.item-mid-view-two{
|
||||
width:100%;
|
||||
height:742rpx;
|
||||
min-height:742rpx;
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
align-items: center;
|
||||
.no-data-black{
|
||||
width:120rpx;
|
||||
height:120rpx;
|
||||
margin-top:120rpx;
|
||||
}
|
||||
.add-btn{
|
||||
width:248rpx;
|
||||
height:72rpx;
|
||||
display: flex;
|
||||
flex-direction: row;
|
||||
align-items: center;
|
||||
justify-content: center;
|
||||
border:2rpx solid #7934f6;
|
||||
border-radius: 12rpx;
|
||||
image{
|
||||
width:32rpx;
|
||||
height:32rpx;
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
.item-mid-view{
|
||||
width:100%;
|
||||
height:742rpx;
|
||||
min-height:742rpx;
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
align-items: center;
|
||||
overflow-y: auto;
|
||||
.item-mid-list{
|
||||
display: flex;
|
||||
flex-direction: row;
|
||||
align-items: center;
|
||||
width:98%;
|
||||
height:152rpx;
|
||||
min-height:152rpx;
|
||||
border-radius: 16rpx;
|
||||
margin-top:24rpx;
|
||||
background: #FFFFFF;
|
||||
box-shadow: 0px 0px 16rpx 0px #F4F4F4;
|
||||
border-radius: 16px;
|
||||
border: 1px solid #E3E3E3;
|
||||
padding: 0 24rpx;
|
||||
box-sizing: border-box;
|
||||
position: relative;
|
||||
.show-item-left{
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
height:88rpx;
|
||||
min-height:88rpx;
|
||||
margin-left:24rpx;
|
||||
|
||||
}
|
||||
.item-right-btn{
|
||||
display: flex;
|
||||
align-items: center;
|
||||
justify-content: center;
|
||||
background-color: #f3f3f3;
|
||||
border-radius: 24rpx;
|
||||
position: absolute;
|
||||
right:28rpx;
|
||||
}
|
||||
image{
|
||||
width:88rpx;
|
||||
height:88rpx;
|
||||
border-radius: 44rpx;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
.select-head{
|
||||
width:100%;
|
||||
height:88rpx;
|
||||
min-height:88rpx;
|
||||
display: flex;
|
||||
flex-direction: row;
|
||||
justify-content: space-between;
|
||||
align-items: center;
|
||||
}
|
||||
}
|
||||
<template>
|
||||
<u-popup :show="itemShow" mode="bottom" bgColor="transparent">
|
||||
<view class="select-item">
|
||||
<view class="select-head">
|
||||
<view></view>
|
||||
<text class="text-28 text-fu1">选择{{type == 0 ? '微信' : '支付宝'}}账户</text>
|
||||
<u-icon name="close" color="#333" size="16" @click="onClose"></u-icon>
|
||||
</view>
|
||||
<view class="item-mid-view" v-if="data.length">
|
||||
<view class="item-mid-list" v-for="(item,index) in data" :key="item.id">
|
||||
<image :src="type == 1 ? 'https://cex-pub.s3.ap-southeast-1.amazonaws.com/static/new/zfb.png' : 'https://cex-pub.s3.ap-southeast-1.amazonaws.com/static/new/wx.png'" ></image>
|
||||
<view class="show-item-left">
|
||||
<text class="text-32 text-zu1">{{item.name}}</text>
|
||||
<text class="text-26 text-fu1">账号:{{item.account}}</text>
|
||||
</view>
|
||||
<u-radio-group v-model="itemSelect" style="position: absolute;right:28rpx">
|
||||
<u-radio :name="item.id" activeColor="#7934F6"></u-radio>
|
||||
</u-radio-group>
|
||||
</view>
|
||||
</view>
|
||||
<view class="item-mid-view-two" @click="onAdd" v-if="!data.length">
|
||||
<image src="https://cex-pub.s3.ap-southeast-1.amazonaws.com/static/new/no_black_data.png" class="no-data-black"></image>
|
||||
<text class="text-28 text-fu mt-48">{{`请先绑定一个${type == 0 ? '微信' : '支付宝'}账户,用于收款`}}</text>
|
||||
<view class="add-btn mt-48">
|
||||
<image src="https://cex-pub.s3.ap-southeast-1.amazonaws.com/static/new/add.png" style="margin-right:5rpx;"></image>
|
||||
<text class="text-32 text-zi text-bold" style="margin-left:5rpx;">添加</text>
|
||||
</view>
|
||||
</view>
|
||||
<view class="item-bottom-btn" v-if="data.length">
|
||||
<MyBtn @ok="onOk" text="确定"></MyBtn>
|
||||
</view>
|
||||
</view>
|
||||
</u-popup>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
|
||||
import MyBtn from '@/components/common/my-btn.vue'
|
||||
export default {
|
||||
data() {
|
||||
return {
|
||||
itemSelect:''
|
||||
}
|
||||
},
|
||||
components: { MyBtn },
|
||||
computed:{
|
||||
data(){
|
||||
let tmp = [];
|
||||
if(this.itemData.length){
|
||||
this.itemSelect = this.itemData[0].id;
|
||||
tmp = this.itemData;
|
||||
console.log('tmp',tmp)
|
||||
}
|
||||
return tmp;
|
||||
}
|
||||
},
|
||||
props:{
|
||||
itemShow:{
|
||||
type:Boolean,
|
||||
default:false
|
||||
},
|
||||
itemData:{
|
||||
type:[Array,Object],
|
||||
default:()=>{}
|
||||
},
|
||||
type:{
|
||||
type:[Number,String],
|
||||
default:'0'
|
||||
}
|
||||
},
|
||||
mounted(){
|
||||
},
|
||||
methods: {
|
||||
onOk(){
|
||||
console.log('this',this.itemSelect);
|
||||
this.$emit('ok',this.itemSelect);
|
||||
},
|
||||
onAdd(){
|
||||
this.$emit('add');
|
||||
},
|
||||
onClose(){
|
||||
this.$emit('close');
|
||||
}
|
||||
}
|
||||
}
|
||||
</script>
|
||||
|
||||
<style scoped lang="scss">
|
||||
.select-item{
|
||||
width:100%;
|
||||
min-height:942rpx;
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
align-items: center;
|
||||
padding: 0 32rpx 24rpx;
|
||||
box-sizing: border-box;
|
||||
background-color: #fff;
|
||||
border-radius: 24rpx 24rpx 0 0;
|
||||
.item-bottom-btn{
|
||||
width:100%;
|
||||
margin-top:24rpx;
|
||||
min-height:88rpx;
|
||||
display: flex;
|
||||
}
|
||||
.item-mid-view-two{
|
||||
width:100%;
|
||||
height:742rpx;
|
||||
min-height:742rpx;
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
align-items: center;
|
||||
.no-data-black{
|
||||
width:120rpx;
|
||||
height:120rpx;
|
||||
margin-top:120rpx;
|
||||
}
|
||||
.add-btn{
|
||||
width:248rpx;
|
||||
height:72rpx;
|
||||
display: flex;
|
||||
flex-direction: row;
|
||||
align-items: center;
|
||||
justify-content: center;
|
||||
border:2rpx solid #7934f6;
|
||||
border-radius: 12rpx;
|
||||
image{
|
||||
width:32rpx;
|
||||
height:32rpx;
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
.item-mid-view{
|
||||
width:100%;
|
||||
height:742rpx;
|
||||
min-height:742rpx;
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
align-items: center;
|
||||
overflow-y: auto;
|
||||
.item-mid-list{
|
||||
display: flex;
|
||||
flex-direction: row;
|
||||
align-items: center;
|
||||
width:98%;
|
||||
height:152rpx;
|
||||
min-height:152rpx;
|
||||
border-radius: 16rpx;
|
||||
margin-top:24rpx;
|
||||
background: #FFFFFF;
|
||||
box-shadow: 0px 0px 16rpx 0px #F4F4F4;
|
||||
border-radius: 16px;
|
||||
border: 1px solid #E3E3E3;
|
||||
padding: 0 24rpx;
|
||||
box-sizing: border-box;
|
||||
position: relative;
|
||||
.show-item-left{
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
height:88rpx;
|
||||
min-height:88rpx;
|
||||
margin-left:24rpx;
|
||||
|
||||
}
|
||||
.item-right-btn{
|
||||
display: flex;
|
||||
align-items: center;
|
||||
justify-content: center;
|
||||
background-color: #f3f3f3;
|
||||
border-radius: 24rpx;
|
||||
position: absolute;
|
||||
right:28rpx;
|
||||
}
|
||||
image{
|
||||
width:88rpx;
|
||||
height:88rpx;
|
||||
border-radius: 44rpx;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
.select-head{
|
||||
width:100%;
|
||||
height:88rpx;
|
||||
min-height:88rpx;
|
||||
display: flex;
|
||||
flex-direction: row;
|
||||
justify-content: space-between;
|
||||
align-items: center;
|
||||
}
|
||||
}
|
||||
</style>
|
||||
@@ -1,212 +1,212 @@
|
||||
<template>
|
||||
<u-popup :show="itemShow" mode="bottom" bgColor="transparent">
|
||||
<view class="select-item">
|
||||
<view class="select-head">
|
||||
<view></view>
|
||||
<text class="text-28 text-fu1">选择行权账户</text>
|
||||
<u-icon name="close" color="#333" size="16" @click="onClose"></u-icon>
|
||||
</view>
|
||||
<view class="item-mid-view" v-if="data.length">
|
||||
<view class="item-mid-list" @click="onOk(item)" v-for="(item,index) in data" :key="item.id">
|
||||
<image src="https://cex-pub.s3.ap-southeast-1.amazonaws.com/static/new/alpha.png" style="min-width:88rpx;heihgt:88rpx;"></image>
|
||||
<view class="item-mid-li">
|
||||
<text class="text-28 text-fu">{{item.account}}</text>
|
||||
</view>
|
||||
</view>
|
||||
</view>
|
||||
<view class="item-mid-view-two" @click="onAdd" v-if="!data.length">
|
||||
<image src="https://cex-pub.s3.ap-southeast-1.amazonaws.com/static/new/no_black_data.png" class="no-data-black"></image>
|
||||
<text class="text-28 text-fu mt-48">{{`请先绑定一个ALPHACEX账户,用于收款`}}</text>
|
||||
<view class="add-btn mt-48">
|
||||
<image src="https://cex-pub.s3.ap-southeast-1.amazonaws.com/static/new/add.png" style="margin-right:5rpx;"></image>
|
||||
<text class="text-32 text-zi text-bold" style="margin-left:5rpx;">添加</text>
|
||||
</view>
|
||||
</view>
|
||||
<!-- <view class="item-bottom-btn" v-if="data.length">
|
||||
<MyBtn @ok="onOk" text="确定"></MyBtn>
|
||||
</view> -->
|
||||
</view>
|
||||
</u-popup>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
|
||||
import MyBtn from '@/components/common/my-btn.vue'
|
||||
import func from '@/utils/func.js';
|
||||
export default {
|
||||
data() {
|
||||
return {
|
||||
itemSelect:''
|
||||
}
|
||||
},
|
||||
components: { MyBtn },
|
||||
props:{
|
||||
itemShow:{
|
||||
type:Boolean,
|
||||
default:false
|
||||
},
|
||||
itemData:{
|
||||
type:Array,
|
||||
default:[]
|
||||
},
|
||||
type:{
|
||||
type:[Number,String],
|
||||
default:'0'
|
||||
}
|
||||
},
|
||||
computed:{
|
||||
data(){
|
||||
let tmp = [];
|
||||
if(this.itemData && this.itemData.length){
|
||||
this.itemData.forEach(item=>{
|
||||
console.log('item',item)
|
||||
item.addressOne = func.addressTurn(item.account,6);
|
||||
})
|
||||
tmp = this.itemData;
|
||||
}
|
||||
return tmp || [];
|
||||
}
|
||||
},
|
||||
|
||||
mounted(){
|
||||
},
|
||||
methods: {
|
||||
onOk(item){
|
||||
this.$emit('ok',item);
|
||||
},
|
||||
onAdd(){
|
||||
this.$emit('add');
|
||||
},
|
||||
onClose(){
|
||||
this.$emit('close');
|
||||
}
|
||||
}
|
||||
}
|
||||
</script>
|
||||
|
||||
<style scoped lang="scss">
|
||||
.add-btn{
|
||||
width:100%;
|
||||
height:72rpx;
|
||||
display: flex;
|
||||
flex-direction: row;
|
||||
align-items: center;
|
||||
justify-content: center;
|
||||
border:2rpx solid #7934f6;
|
||||
border-radius: 8rpx;
|
||||
image{
|
||||
width:32rpx;
|
||||
height:32rpx;
|
||||
}
|
||||
}
|
||||
.select-item{
|
||||
width:100%;
|
||||
min-height:724rpx;
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
align-items: center;
|
||||
padding: 0 32rpx 24rpx;
|
||||
box-sizing: border-box;
|
||||
background-color: #fff;
|
||||
border-radius: 24rpx 24rpx 0 0;
|
||||
.item-bottom-btn{
|
||||
width:100%;
|
||||
margin-top:24rpx;
|
||||
min-height:88rpx;
|
||||
display: flex;
|
||||
}
|
||||
.item-mid-view-two{
|
||||
width:100%;
|
||||
height:564rpx;
|
||||
min-height:564rpx;
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
align-items: center;
|
||||
.no-data-black{
|
||||
width:120rpx;
|
||||
height:120rpx;
|
||||
margin-top:120rpx;
|
||||
}
|
||||
.add-btn{
|
||||
width:248rpx;
|
||||
height:72rpx;
|
||||
display: flex;
|
||||
flex-direction: row;
|
||||
align-items: center;
|
||||
justify-content: center;
|
||||
border:2rpx solid #7934f6;
|
||||
border-radius: 12rpx;
|
||||
image{
|
||||
width:32rpx;
|
||||
height:32rpx;
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
.item-mid-view{
|
||||
width:100%;
|
||||
height:564rpx;
|
||||
min-height:564rpx;
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
align-items: center;
|
||||
overflow-y: auto;
|
||||
.item-mid-list{
|
||||
display: flex;
|
||||
flex-direction: row;
|
||||
justify-content: center;
|
||||
width:98%;
|
||||
height:152rpx;
|
||||
min-height:152rpx;
|
||||
border-radius: 8rpx;
|
||||
margin-top:24rpx;
|
||||
background: #FFFFFF;
|
||||
border: 1px solid #E3E3E3;
|
||||
padding: 32rpx;
|
||||
box-sizing: border-box;
|
||||
position: relative;
|
||||
.item-mid-li{
|
||||
flex:1;
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
justify-content: center;
|
||||
height:88rpx;
|
||||
margin-left:24rpx;
|
||||
}
|
||||
.show-item-left{
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
height:88rpx;
|
||||
min-height:88rpx;
|
||||
margin-left:24rpx;
|
||||
|
||||
}
|
||||
.item-right-btn{
|
||||
display: flex;
|
||||
align-items: center;
|
||||
justify-content: center;
|
||||
background-color: #f3f3f3;
|
||||
border-radius: 24rpx;
|
||||
position: absolute;
|
||||
right:28rpx;
|
||||
}
|
||||
image{
|
||||
width:88rpx;
|
||||
height:88rpx;
|
||||
border-radius: 44rpx;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
.select-head{
|
||||
width:100%;
|
||||
height:88rpx;
|
||||
min-height:88rpx;
|
||||
display: flex;
|
||||
flex-direction: row;
|
||||
justify-content: space-between;
|
||||
align-items: center;
|
||||
}
|
||||
}
|
||||
<template>
|
||||
<u-popup :show="itemShow" mode="bottom" bgColor="transparent">
|
||||
<view class="select-item">
|
||||
<view class="select-head">
|
||||
<view></view>
|
||||
<text class="text-28 text-fu1">选择行权账户</text>
|
||||
<u-icon name="close" color="#333" size="16" @click="onClose"></u-icon>
|
||||
</view>
|
||||
<view class="item-mid-view" v-if="data.length">
|
||||
<view class="item-mid-list" @click="onOk(item)" v-for="(item,index) in data" :key="item.id">
|
||||
<image src="https://cex-pub.s3.ap-southeast-1.amazonaws.com/static/new/alpha.png" style="min-width:88rpx;heihgt:88rpx;"></image>
|
||||
<view class="item-mid-li">
|
||||
<text class="text-28 text-fu">{{item.account}}</text>
|
||||
</view>
|
||||
</view>
|
||||
</view>
|
||||
<view class="item-mid-view-two" @click="onAdd" v-if="!data.length">
|
||||
<image src="https://cex-pub.s3.ap-southeast-1.amazonaws.com/static/new/no_black_data.png" class="no-data-black"></image>
|
||||
<text class="text-28 text-fu mt-48">{{`请先绑定一个ALPHACEX账户,用于收款`}}</text>
|
||||
<view class="add-btn mt-48">
|
||||
<image src="https://cex-pub.s3.ap-southeast-1.amazonaws.com/static/new/add.png" style="margin-right:5rpx;"></image>
|
||||
<text class="text-32 text-zi text-bold" style="margin-left:5rpx;">添加</text>
|
||||
</view>
|
||||
</view>
|
||||
<!-- <view class="item-bottom-btn" v-if="data.length">
|
||||
<MyBtn @ok="onOk" text="确定"></MyBtn>
|
||||
</view> -->
|
||||
</view>
|
||||
</u-popup>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
|
||||
import MyBtn from '@/components/common/my-btn.vue'
|
||||
import func from '@/utils/func.js';
|
||||
export default {
|
||||
data() {
|
||||
return {
|
||||
itemSelect:''
|
||||
}
|
||||
},
|
||||
components: { MyBtn },
|
||||
props:{
|
||||
itemShow:{
|
||||
type:Boolean,
|
||||
default:false
|
||||
},
|
||||
itemData:{
|
||||
type:Array,
|
||||
default:[]
|
||||
},
|
||||
type:{
|
||||
type:[Number,String],
|
||||
default:'0'
|
||||
}
|
||||
},
|
||||
computed:{
|
||||
data(){
|
||||
let tmp = [];
|
||||
if(this.itemData && this.itemData.length){
|
||||
this.itemData.forEach(item=>{
|
||||
console.log('item',item)
|
||||
item.addressOne = func.addressTurn(item.account,6);
|
||||
})
|
||||
tmp = this.itemData;
|
||||
}
|
||||
return tmp || [];
|
||||
}
|
||||
},
|
||||
|
||||
mounted(){
|
||||
},
|
||||
methods: {
|
||||
onOk(item){
|
||||
this.$emit('ok',item);
|
||||
},
|
||||
onAdd(){
|
||||
this.$emit('add');
|
||||
},
|
||||
onClose(){
|
||||
this.$emit('close');
|
||||
}
|
||||
}
|
||||
}
|
||||
</script>
|
||||
|
||||
<style scoped lang="scss">
|
||||
.add-btn{
|
||||
width:100%;
|
||||
height:72rpx;
|
||||
display: flex;
|
||||
flex-direction: row;
|
||||
align-items: center;
|
||||
justify-content: center;
|
||||
border:2rpx solid #7934f6;
|
||||
border-radius: 8rpx;
|
||||
image{
|
||||
width:32rpx;
|
||||
height:32rpx;
|
||||
}
|
||||
}
|
||||
.select-item{
|
||||
width:100%;
|
||||
min-height:724rpx;
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
align-items: center;
|
||||
padding: 0 32rpx 24rpx;
|
||||
box-sizing: border-box;
|
||||
background-color: #fff;
|
||||
border-radius: 24rpx 24rpx 0 0;
|
||||
.item-bottom-btn{
|
||||
width:100%;
|
||||
margin-top:24rpx;
|
||||
min-height:88rpx;
|
||||
display: flex;
|
||||
}
|
||||
.item-mid-view-two{
|
||||
width:100%;
|
||||
height:564rpx;
|
||||
min-height:564rpx;
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
align-items: center;
|
||||
.no-data-black{
|
||||
width:120rpx;
|
||||
height:120rpx;
|
||||
margin-top:120rpx;
|
||||
}
|
||||
.add-btn{
|
||||
width:248rpx;
|
||||
height:72rpx;
|
||||
display: flex;
|
||||
flex-direction: row;
|
||||
align-items: center;
|
||||
justify-content: center;
|
||||
border:2rpx solid #7934f6;
|
||||
border-radius: 12rpx;
|
||||
image{
|
||||
width:32rpx;
|
||||
height:32rpx;
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
.item-mid-view{
|
||||
width:100%;
|
||||
height:564rpx;
|
||||
min-height:564rpx;
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
align-items: center;
|
||||
overflow-y: auto;
|
||||
.item-mid-list{
|
||||
display: flex;
|
||||
flex-direction: row;
|
||||
justify-content: center;
|
||||
width:98%;
|
||||
height:152rpx;
|
||||
min-height:152rpx;
|
||||
border-radius: 8rpx;
|
||||
margin-top:24rpx;
|
||||
background: #FFFFFF;
|
||||
border: 1px solid #E3E3E3;
|
||||
padding: 32rpx;
|
||||
box-sizing: border-box;
|
||||
position: relative;
|
||||
.item-mid-li{
|
||||
flex:1;
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
justify-content: center;
|
||||
height:88rpx;
|
||||
margin-left:24rpx;
|
||||
}
|
||||
.show-item-left{
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
height:88rpx;
|
||||
min-height:88rpx;
|
||||
margin-left:24rpx;
|
||||
|
||||
}
|
||||
.item-right-btn{
|
||||
display: flex;
|
||||
align-items: center;
|
||||
justify-content: center;
|
||||
background-color: #f3f3f3;
|
||||
border-radius: 24rpx;
|
||||
position: absolute;
|
||||
right:28rpx;
|
||||
}
|
||||
image{
|
||||
width:88rpx;
|
||||
height:88rpx;
|
||||
border-radius: 44rpx;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
.select-head{
|
||||
width:100%;
|
||||
height:88rpx;
|
||||
min-height:88rpx;
|
||||
display: flex;
|
||||
flex-direction: row;
|
||||
justify-content: space-between;
|
||||
align-items: center;
|
||||
}
|
||||
}
|
||||
</style>
|
||||
@@ -1,212 +1,212 @@
|
||||
<template>
|
||||
<u-popup :show="itemShow" mode="bottom" bgColor="transparent">
|
||||
<view class="select-item">
|
||||
<view class="select-head">
|
||||
<view></view>
|
||||
<text class="text-28 text-fu1">选择地址</text>
|
||||
<u-icon name="close" color="#333" size="16" @click="onClose"></u-icon>
|
||||
</view>
|
||||
<view class="item-mid-view" v-if="data.length">
|
||||
<view class="item-mid-list" @click="onOk(item)" v-for="(item,index) in data" :key="item.id">
|
||||
<image src="https://cex-pub.s3.ap-southeast-1.amazonaws.com/static/new/no_black_data.png" style="min-width:88rpx;heihgt:88rpx;"></image>
|
||||
<view class="item-mid-li">
|
||||
<text class="text-32 text-zu1">BNB Smart Chain(BEP20)</text>
|
||||
<text class="text-28 text-fu">{{item.addressOne}}</text>
|
||||
</view>
|
||||
</view>
|
||||
</view>
|
||||
<view class="item-mid-view-two" @click="onAdd" v-if="!data.length">
|
||||
<image src="https://cex-pub.s3.ap-southeast-1.amazonaws.com/static/new/no_black_data.png" class="no-data-black"></image>
|
||||
<text class="text-28 text-fu mt-48">{{`请先绑定一个区块链账户,用于收款`}}</text>
|
||||
<view class="add-btn mt-48">
|
||||
<image src="https://cex-pub.s3.ap-southeast-1.amazonaws.com/static/new/add.png" style="margin-right:5rpx;"></image>
|
||||
<text class="text-32 text-zi text-bold" style="margin-left:5rpx;">添加</text>
|
||||
</view>
|
||||
</view>
|
||||
<!-- <view class="item-bottom-btn" v-if="data.length">
|
||||
<MyBtn @ok="onOk" text="确定"></MyBtn>
|
||||
</view> -->
|
||||
</view>
|
||||
</u-popup>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
|
||||
import MyBtn from '@/components/common/my-btn.vue'
|
||||
import func from '@/utils/func.js';
|
||||
export default {
|
||||
data() {
|
||||
return {
|
||||
itemSelect:''
|
||||
}
|
||||
},
|
||||
components: { MyBtn },
|
||||
props:{
|
||||
itemShow:{
|
||||
type:Boolean,
|
||||
default:false
|
||||
},
|
||||
itemData:{
|
||||
type:Array,
|
||||
default:[]
|
||||
},
|
||||
type:{
|
||||
type:[Number,String],
|
||||
default:'0'
|
||||
}
|
||||
},
|
||||
computed:{
|
||||
data(){
|
||||
let tmp = [];
|
||||
if(this.itemData && this.itemData.length){
|
||||
this.itemData.forEach(item=>{
|
||||
console.log('item',item)
|
||||
item.addressOne = func.addressTurn(item.account,6);
|
||||
})
|
||||
tmp = this.itemData;
|
||||
}
|
||||
return tmp || [];
|
||||
}
|
||||
},
|
||||
|
||||
mounted(){
|
||||
},
|
||||
methods: {
|
||||
onOk(item){
|
||||
this.$emit('ok',item);
|
||||
},
|
||||
onAdd(){
|
||||
this.$emit('add');
|
||||
},
|
||||
onClose(){
|
||||
this.$emit('close');
|
||||
}
|
||||
}
|
||||
}
|
||||
</script>
|
||||
|
||||
<style scoped lang="scss">
|
||||
.add-btn{
|
||||
width:100%;
|
||||
height:72rpx;
|
||||
display: flex;
|
||||
flex-direction: row;
|
||||
align-items: center;
|
||||
justify-content: center;
|
||||
border:2rpx solid #7934f6;
|
||||
border-radius: 8rpx;
|
||||
image{
|
||||
width:32rpx;
|
||||
height:32rpx;
|
||||
}
|
||||
}
|
||||
.select-item{
|
||||
width:100%;
|
||||
min-height:724rpx;
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
align-items: center;
|
||||
padding: 0 32rpx 24rpx;
|
||||
box-sizing: border-box;
|
||||
background-color: #fff;
|
||||
border-radius: 24rpx 24rpx 0 0;
|
||||
.item-bottom-btn{
|
||||
width:100%;
|
||||
margin-top:24rpx;
|
||||
min-height:88rpx;
|
||||
display: flex;
|
||||
}
|
||||
.item-mid-view-two{
|
||||
width:100%;
|
||||
height:564rpx;
|
||||
min-height:564rpx;
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
align-items: center;
|
||||
.no-data-black{
|
||||
width:120rpx;
|
||||
height:120rpx;
|
||||
margin-top:120rpx;
|
||||
}
|
||||
.add-btn{
|
||||
width:248rpx;
|
||||
height:72rpx;
|
||||
display: flex;
|
||||
flex-direction: row;
|
||||
align-items: center;
|
||||
justify-content: center;
|
||||
border:2rpx solid #7934f6;
|
||||
border-radius: 12rpx;
|
||||
image{
|
||||
width:32rpx;
|
||||
height:32rpx;
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
.item-mid-view{
|
||||
width:100%;
|
||||
height:564rpx;
|
||||
min-height:564rpx;
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
align-items: center;
|
||||
overflow-y: auto;
|
||||
.item-mid-list{
|
||||
display: flex;
|
||||
flex-direction: row;
|
||||
width:98%;
|
||||
height:152rpx;
|
||||
min-height:152rpx;
|
||||
border-radius: 8rpx;
|
||||
margin-top:24rpx;
|
||||
background: #FFFFFF;
|
||||
border: 1px solid #E3E3E3;
|
||||
padding: 32rpx;
|
||||
box-sizing: border-box;
|
||||
position: relative;
|
||||
.item-mid-li{
|
||||
margin-left:24rpx;
|
||||
flex:1;
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
justify-content: space-between;
|
||||
height:88rpx;
|
||||
}
|
||||
.show-item-left{
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
height:88rpx;
|
||||
min-height:88rpx;
|
||||
margin-left:24rpx;
|
||||
|
||||
}
|
||||
.item-right-btn{
|
||||
display: flex;
|
||||
align-items: center;
|
||||
justify-content: center;
|
||||
background-color: #f3f3f3;
|
||||
border-radius: 24rpx;
|
||||
position: absolute;
|
||||
right:28rpx;
|
||||
}
|
||||
image{
|
||||
width:88rpx;
|
||||
height:88rpx;
|
||||
border-radius: 44rpx;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
.select-head{
|
||||
width:100%;
|
||||
height:88rpx;
|
||||
min-height:88rpx;
|
||||
display: flex;
|
||||
flex-direction: row;
|
||||
justify-content: space-between;
|
||||
align-items: center;
|
||||
}
|
||||
}
|
||||
<template>
|
||||
<u-popup :show="itemShow" mode="bottom" bgColor="transparent">
|
||||
<view class="select-item">
|
||||
<view class="select-head">
|
||||
<view></view>
|
||||
<text class="text-28 text-fu1">选择地址</text>
|
||||
<u-icon name="close" color="#333" size="16" @click="onClose"></u-icon>
|
||||
</view>
|
||||
<view class="item-mid-view" v-if="data.length">
|
||||
<view class="item-mid-list" @click="onOk(item)" v-for="(item,index) in data" :key="item.id">
|
||||
<image src="https://cex-pub.s3.ap-southeast-1.amazonaws.com/static/new/no_black_data.png" style="min-width:88rpx;heihgt:88rpx;"></image>
|
||||
<view class="item-mid-li">
|
||||
<text class="text-32 text-zu1">BNB Smart Chain(BEP20)</text>
|
||||
<text class="text-28 text-fu">{{item.addressOne}}</text>
|
||||
</view>
|
||||
</view>
|
||||
</view>
|
||||
<view class="item-mid-view-two" @click="onAdd" v-if="!data.length">
|
||||
<image src="https://cex-pub.s3.ap-southeast-1.amazonaws.com/static/new/no_black_data.png" class="no-data-black"></image>
|
||||
<text class="text-28 text-fu mt-48">{{`请先绑定一个区块链账户,用于收款`}}</text>
|
||||
<view class="add-btn mt-48">
|
||||
<image src="https://cex-pub.s3.ap-southeast-1.amazonaws.com/static/new/add.png" style="margin-right:5rpx;"></image>
|
||||
<text class="text-32 text-zi text-bold" style="margin-left:5rpx;">添加</text>
|
||||
</view>
|
||||
</view>
|
||||
<!-- <view class="item-bottom-btn" v-if="data.length">
|
||||
<MyBtn @ok="onOk" text="确定"></MyBtn>
|
||||
</view> -->
|
||||
</view>
|
||||
</u-popup>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
|
||||
import MyBtn from '@/components/common/my-btn.vue'
|
||||
import func from '@/utils/func.js';
|
||||
export default {
|
||||
data() {
|
||||
return {
|
||||
itemSelect:''
|
||||
}
|
||||
},
|
||||
components: { MyBtn },
|
||||
props:{
|
||||
itemShow:{
|
||||
type:Boolean,
|
||||
default:false
|
||||
},
|
||||
itemData:{
|
||||
type:Array,
|
||||
default:[]
|
||||
},
|
||||
type:{
|
||||
type:[Number,String],
|
||||
default:'0'
|
||||
}
|
||||
},
|
||||
computed:{
|
||||
data(){
|
||||
let tmp = [];
|
||||
if(this.itemData && this.itemData.length){
|
||||
this.itemData.forEach(item=>{
|
||||
console.log('item',item)
|
||||
item.addressOne = func.addressTurn(item.account,6);
|
||||
})
|
||||
tmp = this.itemData;
|
||||
}
|
||||
return tmp || [];
|
||||
}
|
||||
},
|
||||
|
||||
mounted(){
|
||||
},
|
||||
methods: {
|
||||
onOk(item){
|
||||
this.$emit('ok',item);
|
||||
},
|
||||
onAdd(){
|
||||
this.$emit('add');
|
||||
},
|
||||
onClose(){
|
||||
this.$emit('close');
|
||||
}
|
||||
}
|
||||
}
|
||||
</script>
|
||||
|
||||
<style scoped lang="scss">
|
||||
.add-btn{
|
||||
width:100%;
|
||||
height:72rpx;
|
||||
display: flex;
|
||||
flex-direction: row;
|
||||
align-items: center;
|
||||
justify-content: center;
|
||||
border:2rpx solid #7934f6;
|
||||
border-radius: 8rpx;
|
||||
image{
|
||||
width:32rpx;
|
||||
height:32rpx;
|
||||
}
|
||||
}
|
||||
.select-item{
|
||||
width:100%;
|
||||
min-height:724rpx;
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
align-items: center;
|
||||
padding: 0 32rpx 24rpx;
|
||||
box-sizing: border-box;
|
||||
background-color: #fff;
|
||||
border-radius: 24rpx 24rpx 0 0;
|
||||
.item-bottom-btn{
|
||||
width:100%;
|
||||
margin-top:24rpx;
|
||||
min-height:88rpx;
|
||||
display: flex;
|
||||
}
|
||||
.item-mid-view-two{
|
||||
width:100%;
|
||||
height:564rpx;
|
||||
min-height:564rpx;
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
align-items: center;
|
||||
.no-data-black{
|
||||
width:120rpx;
|
||||
height:120rpx;
|
||||
margin-top:120rpx;
|
||||
}
|
||||
.add-btn{
|
||||
width:248rpx;
|
||||
height:72rpx;
|
||||
display: flex;
|
||||
flex-direction: row;
|
||||
align-items: center;
|
||||
justify-content: center;
|
||||
border:2rpx solid #7934f6;
|
||||
border-radius: 12rpx;
|
||||
image{
|
||||
width:32rpx;
|
||||
height:32rpx;
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
.item-mid-view{
|
||||
width:100%;
|
||||
height:564rpx;
|
||||
min-height:564rpx;
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
align-items: center;
|
||||
overflow-y: auto;
|
||||
.item-mid-list{
|
||||
display: flex;
|
||||
flex-direction: row;
|
||||
width:98%;
|
||||
height:152rpx;
|
||||
min-height:152rpx;
|
||||
border-radius: 8rpx;
|
||||
margin-top:24rpx;
|
||||
background: #FFFFFF;
|
||||
border: 1px solid #E3E3E3;
|
||||
padding: 32rpx;
|
||||
box-sizing: border-box;
|
||||
position: relative;
|
||||
.item-mid-li{
|
||||
margin-left:24rpx;
|
||||
flex:1;
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
justify-content: space-between;
|
||||
height:88rpx;
|
||||
}
|
||||
.show-item-left{
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
height:88rpx;
|
||||
min-height:88rpx;
|
||||
margin-left:24rpx;
|
||||
|
||||
}
|
||||
.item-right-btn{
|
||||
display: flex;
|
||||
align-items: center;
|
||||
justify-content: center;
|
||||
background-color: #f3f3f3;
|
||||
border-radius: 24rpx;
|
||||
position: absolute;
|
||||
right:28rpx;
|
||||
}
|
||||
image{
|
||||
width:88rpx;
|
||||
height:88rpx;
|
||||
border-radius: 44rpx;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
.select-head{
|
||||
width:100%;
|
||||
height:88rpx;
|
||||
min-height:88rpx;
|
||||
display: flex;
|
||||
flex-direction: row;
|
||||
justify-content: space-between;
|
||||
align-items: center;
|
||||
}
|
||||
}
|
||||
</style>
|
||||
@@ -1,110 +1,110 @@
|
||||
<template>
|
||||
<u-popup :show="itemShow" mode="bottom" bgColor="transparent">
|
||||
<view class="select-item">
|
||||
<view class="select-head">
|
||||
<view></view>
|
||||
<text class="text-28 text-fu1">兑换方式</text>
|
||||
<u-icon name="close" color="#333" size="16" @click="onClose"></u-icon>
|
||||
</view>
|
||||
<view class="select-box" @click="onOk(0)">
|
||||
<image src="https://cex-pub.s3.ap-southeast-1.amazonaws.com/static/new/shu_0.png"></image>
|
||||
<view class="select-box-one">
|
||||
<text class="text-32 text-zu1">区块链数字积分</text>
|
||||
<text class="text-26 text-fu1">通过区块链兑换</text>
|
||||
</view>
|
||||
<u-icon name="arrow-right" color="#999" size="14" class="select-icon"></u-icon>
|
||||
</view>
|
||||
<!-- <view class="select-box" @click="onOk(1)">
|
||||
<image src="https://cex-pub.s3.ap-southeast-1.amazonaws.com/static/new/shu_1.png"></image>
|
||||
<view class="select-box-one">
|
||||
<text class="text-32 text-zu1">alpha数字积分</text>
|
||||
<text class="text-26 text-fu1">通过邮箱兑换</text>
|
||||
</view>
|
||||
<u-icon name="arrow-right" color="#999" size="14" class="select-icon"></u-icon>
|
||||
</view> -->
|
||||
</view>
|
||||
</u-popup>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
|
||||
import MyBtn from '@/components/common/my-btn.vue'
|
||||
export default {
|
||||
data() {
|
||||
return {
|
||||
}
|
||||
},
|
||||
props:{
|
||||
itemShow:{
|
||||
type:Boolean,
|
||||
default:false
|
||||
},
|
||||
|
||||
},
|
||||
mounted(){
|
||||
},
|
||||
methods: {
|
||||
onOk(index){
|
||||
this.$emit('ok',index);
|
||||
},
|
||||
onClose(){
|
||||
this.$emit('close');
|
||||
}
|
||||
}
|
||||
}
|
||||
</script>
|
||||
|
||||
<style scoped lang="scss">
|
||||
.select-item{
|
||||
width:100%;
|
||||
min-height:588rpx;
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
align-items: center;
|
||||
padding: 0 32rpx 24rpx;
|
||||
box-sizing: border-box;
|
||||
background-color: #fff;
|
||||
border-radius: 24rpx 24rpx 0 0;
|
||||
.select-box{
|
||||
width:100%;
|
||||
height:152rpx;
|
||||
min-height:152rpx;
|
||||
display: flex;
|
||||
flex-direction: row;
|
||||
align-items: center;
|
||||
justify-content: space-between;
|
||||
background: #FFFFFF;
|
||||
box-shadow: 0px 0px 16rpx 0px #F4F4F4;
|
||||
border-radius: 16rpx;
|
||||
border: 1rpx solid #E3E3E3;
|
||||
padding: 0 28rpx;
|
||||
box-sizing: border-box;
|
||||
margin-top:32rpx;
|
||||
position: relative;
|
||||
.select-icon{
|
||||
position: absolute;
|
||||
right:28rpx;
|
||||
}
|
||||
.select-box-one{
|
||||
flex:1;
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
justify-content: space-between;
|
||||
height:88rpx;
|
||||
}
|
||||
image{
|
||||
width:88rpx;
|
||||
height:88rpx;
|
||||
}
|
||||
}
|
||||
.select-head{
|
||||
width:100%;
|
||||
height:88rpx;
|
||||
min-height:88rpx;
|
||||
display: flex;
|
||||
flex-direction: row;
|
||||
justify-content: space-between;
|
||||
align-items: center;
|
||||
}
|
||||
}
|
||||
<template>
|
||||
<u-popup :show="itemShow" mode="bottom" bgColor="transparent">
|
||||
<view class="select-item">
|
||||
<view class="select-head">
|
||||
<view></view>
|
||||
<text class="text-28 text-fu1">兑换方式</text>
|
||||
<u-icon name="close" color="#333" size="16" @click="onClose"></u-icon>
|
||||
</view>
|
||||
<view class="select-box" @click="onOk(0)">
|
||||
<image src="https://cex-pub.s3.ap-southeast-1.amazonaws.com/static/new/shu_0.png"></image>
|
||||
<view class="select-box-one">
|
||||
<text class="text-32 text-zu1">区块链数字积分</text>
|
||||
<text class="text-26 text-fu1">通过区块链兑换</text>
|
||||
</view>
|
||||
<u-icon name="arrow-right" color="#999" size="14" class="select-icon"></u-icon>
|
||||
</view>
|
||||
<!-- <view class="select-box" @click="onOk(1)">
|
||||
<image src="https://cex-pub.s3.ap-southeast-1.amazonaws.com/static/new/shu_1.png"></image>
|
||||
<view class="select-box-one">
|
||||
<text class="text-32 text-zu1">alpha数字积分</text>
|
||||
<text class="text-26 text-fu1">通过邮箱兑换</text>
|
||||
</view>
|
||||
<u-icon name="arrow-right" color="#999" size="14" class="select-icon"></u-icon>
|
||||
</view> -->
|
||||
</view>
|
||||
</u-popup>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
|
||||
import MyBtn from '@/components/common/my-btn.vue'
|
||||
export default {
|
||||
data() {
|
||||
return {
|
||||
}
|
||||
},
|
||||
props:{
|
||||
itemShow:{
|
||||
type:Boolean,
|
||||
default:false
|
||||
},
|
||||
|
||||
},
|
||||
mounted(){
|
||||
},
|
||||
methods: {
|
||||
onOk(index){
|
||||
this.$emit('ok',index);
|
||||
},
|
||||
onClose(){
|
||||
this.$emit('close');
|
||||
}
|
||||
}
|
||||
}
|
||||
</script>
|
||||
|
||||
<style scoped lang="scss">
|
||||
.select-item{
|
||||
width:100%;
|
||||
min-height:588rpx;
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
align-items: center;
|
||||
padding: 0 32rpx 24rpx;
|
||||
box-sizing: border-box;
|
||||
background-color: #fff;
|
||||
border-radius: 24rpx 24rpx 0 0;
|
||||
.select-box{
|
||||
width:100%;
|
||||
height:152rpx;
|
||||
min-height:152rpx;
|
||||
display: flex;
|
||||
flex-direction: row;
|
||||
align-items: center;
|
||||
justify-content: space-between;
|
||||
background: #FFFFFF;
|
||||
box-shadow: 0px 0px 16rpx 0px #F4F4F4;
|
||||
border-radius: 16rpx;
|
||||
border: 1rpx solid #E3E3E3;
|
||||
padding: 0 28rpx;
|
||||
box-sizing: border-box;
|
||||
margin-top:32rpx;
|
||||
position: relative;
|
||||
.select-icon{
|
||||
position: absolute;
|
||||
right:28rpx;
|
||||
}
|
||||
.select-box-one{
|
||||
flex:1;
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
justify-content: space-between;
|
||||
height:88rpx;
|
||||
}
|
||||
image{
|
||||
width:88rpx;
|
||||
height:88rpx;
|
||||
}
|
||||
}
|
||||
.select-head{
|
||||
width:100%;
|
||||
height:88rpx;
|
||||
min-height:88rpx;
|
||||
display: flex;
|
||||
flex-direction: row;
|
||||
justify-content: space-between;
|
||||
align-items: center;
|
||||
}
|
||||
}
|
||||
</style>
|
||||
+237
-237
@@ -1,237 +1,237 @@
|
||||
<template>
|
||||
<view class="content">
|
||||
<TopSafe bgColor="rgba(0,0,0,0)"></TopSafe>
|
||||
<Header title="账户管理" bgColor="rgba(0,0,0,0)" />
|
||||
<view class="setting-view">
|
||||
<view class="tab-view">
|
||||
<view class="tab-list" v-for="(item,index) in tabList" :key="index" @click="onTab(index)" >
|
||||
<text class="text-fu text-28" v-if="index != 1" :style="{color:type == index ? '#7934F6' :'#666' }">{{item}}</text>
|
||||
<view class="tab-line" v-if="type == index"></view>
|
||||
</view>
|
||||
</view>
|
||||
<view class="mid-view">
|
||||
<AccountItem :type="type" v-if="type == 2 || type == 3" :itemData="item" @ok="onItemOk" v-for="(item,index) in dataList" :key="index"></AccountItem>
|
||||
<AccountItemTwo v-if="type == 0 || type == 1" :dataItem="item" @jie="onJie"
|
||||
v-for="(item,index) in dataList" :key="index"></AccountItemTwo>
|
||||
</view>
|
||||
</view>
|
||||
<view class="bottom-btn">
|
||||
<MyBtn :text="bottomText" @ok="onJump"></MyBtn>
|
||||
</view>
|
||||
<up-toast ref="uToastRef"></up-toast>
|
||||
</view>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
import { getExchUsers,unbindExchUsers } from '@/api/finance.js';
|
||||
import { getWithdraw,unbindWithdraw } from '@/api/common.js';
|
||||
import Header from '@/components/common/header.vue';
|
||||
import { clear } from '@/utils/auth.js';
|
||||
import TopSafe from '@/components/common/top-safe.nvue'
|
||||
import MyBtn from '@/components/common/my-btn.vue'
|
||||
import func from '@/utils/func.js';
|
||||
import AccountItem from './components/account-item.vue'
|
||||
import AccountItemTwo from './components/account-item-two.vue'
|
||||
|
||||
|
||||
export default {
|
||||
components: { Header, TopSafe,MyBtn,AccountItem,AccountItemTwo },
|
||||
data() {
|
||||
return {
|
||||
type:0,
|
||||
tabList:['区块链账户','Alpha账户','支付宝账户','微信账户'],
|
||||
bottomText:'',
|
||||
dataList:[]
|
||||
};
|
||||
},
|
||||
onLoad(option){
|
||||
if(option.id){
|
||||
if(option.id == '3'){
|
||||
this.type = 0;
|
||||
this.bottomText = '添加区块链账户';
|
||||
}else if(option.id == '4'){
|
||||
this.type = 1;
|
||||
this.bottomText = '添加Alpha账户';
|
||||
}else if(option.id == '1'){
|
||||
this.type = 2;
|
||||
this.bottomText = '添加支付宝账户';
|
||||
}else{
|
||||
this.type = 3;
|
||||
this.bottomText = '添加微信账户';
|
||||
}
|
||||
}
|
||||
},
|
||||
onShow() {
|
||||
this.init();
|
||||
// this.userinfo();
|
||||
},
|
||||
methods: {
|
||||
init() {
|
||||
if(this.type == 0){
|
||||
this.bottomText = '添加区块链账户';
|
||||
}else if(this.type == 1){
|
||||
this.bottomText = '添加Alpha账户';
|
||||
}else if(this.type == 2){
|
||||
this.bottomText = '添加支付宝账户';
|
||||
}else{
|
||||
this.bottomText = '添加微信账户';
|
||||
}
|
||||
// this.userinfo()
|
||||
// #ifdef WEB
|
||||
this.tabList = ['区块链账户','Alpha账户','支付宝账户'];
|
||||
// #endif
|
||||
this.getList();
|
||||
},
|
||||
onJie(item){
|
||||
let params = {
|
||||
accountId:item.id
|
||||
}
|
||||
unbindExchUsers(params).then(resp=>{
|
||||
if (resp && resp.bizcode === 100) {
|
||||
this.$refs.uToastRef.show({
|
||||
type: 'success',
|
||||
message: '解绑成功',
|
||||
});
|
||||
|
||||
this.init();
|
||||
}
|
||||
})
|
||||
},
|
||||
onItemOk(item){
|
||||
let params = {
|
||||
bindId:item.id
|
||||
}
|
||||
unbindWithdraw(params).then(res=>{
|
||||
if (res.bizcode === 100) {
|
||||
this.$refs.uToastRef.show({
|
||||
type: 'success',
|
||||
message:'解绑成功',
|
||||
});
|
||||
this.init();
|
||||
} else {
|
||||
this.$refs.uToastRef.show({
|
||||
type: 'error',
|
||||
message: res.msg,
|
||||
});
|
||||
return null;
|
||||
}
|
||||
})
|
||||
},
|
||||
getList(){
|
||||
if(this.type == 0 || this.type == 1){
|
||||
let params = {
|
||||
name:this.type == 0 ? 'WALLET' : 'ALPHACEX'
|
||||
}
|
||||
getExchUsers(params).then(res=>{
|
||||
if (res.bizcode === 100) {
|
||||
this.dataList = res.data.entitys ? res.data.entitys : [];
|
||||
} else {
|
||||
this.$refs.uToastRef.show({
|
||||
type: 'error',
|
||||
message: res.msg,
|
||||
});
|
||||
return null;
|
||||
}
|
||||
})
|
||||
}else{
|
||||
getWithdraw({platform:this.type == 2?1:2}).then(res=>{
|
||||
if (res.bizcode === 100) {
|
||||
this.dataList = res.data;
|
||||
this.dataList.forEach(item=>{
|
||||
item.name = item.accountName;
|
||||
item.account = item.accountNumber;
|
||||
})
|
||||
} else {
|
||||
this.$refs.uToastRef.show({
|
||||
type: 'error',
|
||||
message: res.msg,
|
||||
});
|
||||
return null;
|
||||
}
|
||||
})
|
||||
}
|
||||
|
||||
},
|
||||
onTab(index){
|
||||
if(index != this.type){
|
||||
this.dataList = [];
|
||||
this.type = index;
|
||||
this.init();
|
||||
}
|
||||
},
|
||||
onJump(){
|
||||
console.log('his.typ',this.type)
|
||||
if(this.type == 0){
|
||||
uni.navigateTo({
|
||||
url:`/pages/rwa_package/account/shuAdd`
|
||||
})
|
||||
}else if(this.type == 1){
|
||||
uni.navigateTo({
|
||||
url: '/pages/rwa_package/rwa_binding/rwa_binding',
|
||||
})
|
||||
}else{
|
||||
uni.navigateTo({
|
||||
url:`/pages/rwa_package/account/bind?type=${this.type == 2?0:1}`
|
||||
})
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
}
|
||||
</script>
|
||||
|
||||
<style lang="scss" scoped>
|
||||
.bottom-btn{
|
||||
width: 100%;
|
||||
margin-bottom:92rpx;
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
align-items: center;
|
||||
padding: 0 32rpx;
|
||||
box-sizing: border-box;
|
||||
position: relative;
|
||||
|
||||
}
|
||||
.setting-view {
|
||||
width: 100%;
|
||||
height: calc(100% - 88rpx - 92rpx - 88rpx - var(--status-bar-height));
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
align-items: center;
|
||||
overflow-y: auto;
|
||||
padding: 0 32rpx;
|
||||
box-sizing: border-box;
|
||||
position: relative;
|
||||
.mid-view{
|
||||
width:100%;
|
||||
height:calc(100% - 88rpx);
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
overflow-y: auto;
|
||||
padding-bottom: 24rpx;
|
||||
box-sizing: border-box;
|
||||
}
|
||||
.tab-view{
|
||||
width:100%;
|
||||
height:88rpx;
|
||||
display: flex;
|
||||
flex-direction: row;
|
||||
// align-items: center;
|
||||
.tab-list{
|
||||
margin-right:32rpx;
|
||||
height:55rpx;
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
align-items: center;
|
||||
justify-content: space-between;
|
||||
.tab-line{
|
||||
width:50rpx;
|
||||
height:4rpx;
|
||||
min-height:4rpx;
|
||||
background-color: #7934F6;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
</style>
|
||||
<template>
|
||||
<view class="content">
|
||||
<TopSafe bgColor="rgba(0,0,0,0)"></TopSafe>
|
||||
<Header title="账户管理" bgColor="rgba(0,0,0,0)" />
|
||||
<view class="setting-view">
|
||||
<view class="tab-view">
|
||||
<view class="tab-list" v-for="(item,index) in tabList" :key="index" @click="onTab(index)" >
|
||||
<text class="text-fu text-28" v-if="index != 1" :style="{color:type == index ? '#7934F6' :'#666' }">{{item}}</text>
|
||||
<view class="tab-line" v-if="type == index"></view>
|
||||
</view>
|
||||
</view>
|
||||
<view class="mid-view">
|
||||
<AccountItem :type="type" v-if="type == 2 || type == 3" :itemData="item" @ok="onItemOk" v-for="(item,index) in dataList" :key="index"></AccountItem>
|
||||
<AccountItemTwo v-if="type == 0 || type == 1" :dataItem="item" @jie="onJie"
|
||||
v-for="(item,index) in dataList" :key="index"></AccountItemTwo>
|
||||
</view>
|
||||
</view>
|
||||
<view class="bottom-btn">
|
||||
<MyBtn :text="bottomText" @ok="onJump"></MyBtn>
|
||||
</view>
|
||||
<up-toast ref="uToastRef"></up-toast>
|
||||
</view>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
import { getExchUsers,unbindExchUsers } from '@/api/finance.js';
|
||||
import { getWithdraw,unbindWithdraw } from '@/api/common.js';
|
||||
import Header from '@/components/common/header.vue';
|
||||
import { clear } from '@/utils/auth.js';
|
||||
import TopSafe from '@/components/common/top-safe.nvue'
|
||||
import MyBtn from '@/components/common/my-btn.vue'
|
||||
import func from '@/utils/func.js';
|
||||
import AccountItem from './components/account-item.vue'
|
||||
import AccountItemTwo from './components/account-item-two.vue'
|
||||
|
||||
|
||||
export default {
|
||||
components: { Header, TopSafe,MyBtn,AccountItem,AccountItemTwo },
|
||||
data() {
|
||||
return {
|
||||
type:0,
|
||||
tabList:['区块链账户','Alpha账户','支付宝账户','微信账户'],
|
||||
bottomText:'',
|
||||
dataList:[]
|
||||
};
|
||||
},
|
||||
onLoad(option){
|
||||
if(option.id){
|
||||
if(option.id == '3'){
|
||||
this.type = 0;
|
||||
this.bottomText = '添加区块链账户';
|
||||
}else if(option.id == '4'){
|
||||
this.type = 1;
|
||||
this.bottomText = '添加Alpha账户';
|
||||
}else if(option.id == '1'){
|
||||
this.type = 2;
|
||||
this.bottomText = '添加支付宝账户';
|
||||
}else{
|
||||
this.type = 3;
|
||||
this.bottomText = '添加微信账户';
|
||||
}
|
||||
}
|
||||
},
|
||||
onShow() {
|
||||
this.init();
|
||||
// this.userinfo();
|
||||
},
|
||||
methods: {
|
||||
init() {
|
||||
if(this.type == 0){
|
||||
this.bottomText = '添加区块链账户';
|
||||
}else if(this.type == 1){
|
||||
this.bottomText = '添加Alpha账户';
|
||||
}else if(this.type == 2){
|
||||
this.bottomText = '添加支付宝账户';
|
||||
}else{
|
||||
this.bottomText = '添加微信账户';
|
||||
}
|
||||
// this.userinfo()
|
||||
// #ifdef WEB
|
||||
this.tabList = ['区块链账户','Alpha账户','支付宝账户'];
|
||||
// #endif
|
||||
this.getList();
|
||||
},
|
||||
onJie(item){
|
||||
let params = {
|
||||
accountId:item.id
|
||||
}
|
||||
unbindExchUsers(params).then(resp=>{
|
||||
if (resp && resp.bizcode === 100) {
|
||||
this.$refs.uToastRef.show({
|
||||
type: 'success',
|
||||
message: '解绑成功',
|
||||
});
|
||||
|
||||
this.init();
|
||||
}
|
||||
})
|
||||
},
|
||||
onItemOk(item){
|
||||
let params = {
|
||||
bindId:item.id
|
||||
}
|
||||
unbindWithdraw(params).then(res=>{
|
||||
if (res.bizcode === 100) {
|
||||
this.$refs.uToastRef.show({
|
||||
type: 'success',
|
||||
message:'解绑成功',
|
||||
});
|
||||
this.init();
|
||||
} else {
|
||||
this.$refs.uToastRef.show({
|
||||
type: 'error',
|
||||
message: res.msg,
|
||||
});
|
||||
return null;
|
||||
}
|
||||
})
|
||||
},
|
||||
getList(){
|
||||
if(this.type == 0 || this.type == 1){
|
||||
let params = {
|
||||
name:this.type == 0 ? 'WALLET' : 'ALPHACEX'
|
||||
}
|
||||
getExchUsers(params).then(res=>{
|
||||
if (res.bizcode === 100) {
|
||||
this.dataList = res.data.entitys ? res.data.entitys : [];
|
||||
} else {
|
||||
this.$refs.uToastRef.show({
|
||||
type: 'error',
|
||||
message: res.msg,
|
||||
});
|
||||
return null;
|
||||
}
|
||||
})
|
||||
}else{
|
||||
getWithdraw({platform:this.type == 2?1:2}).then(res=>{
|
||||
if (res.bizcode === 100) {
|
||||
this.dataList = res.data;
|
||||
this.dataList.forEach(item=>{
|
||||
item.name = item.accountName;
|
||||
item.account = item.accountNumber;
|
||||
})
|
||||
} else {
|
||||
this.$refs.uToastRef.show({
|
||||
type: 'error',
|
||||
message: res.msg,
|
||||
});
|
||||
return null;
|
||||
}
|
||||
})
|
||||
}
|
||||
|
||||
},
|
||||
onTab(index){
|
||||
if(index != this.type){
|
||||
this.dataList = [];
|
||||
this.type = index;
|
||||
this.init();
|
||||
}
|
||||
},
|
||||
onJump(){
|
||||
console.log('his.typ',this.type)
|
||||
if(this.type == 0){
|
||||
uni.navigateTo({
|
||||
url:`/pages/rwa_package/account/shuAdd`
|
||||
})
|
||||
}else if(this.type == 1){
|
||||
uni.navigateTo({
|
||||
url: '/pages/rwa_package/rwa_binding/rwa_binding',
|
||||
})
|
||||
}else{
|
||||
uni.navigateTo({
|
||||
url:`/pages/rwa_package/account/bind?type=${this.type == 2?0:1}`
|
||||
})
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
}
|
||||
</script>
|
||||
|
||||
<style lang="scss" scoped>
|
||||
.bottom-btn{
|
||||
width: 100%;
|
||||
margin-bottom:92rpx;
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
align-items: center;
|
||||
padding: 0 32rpx;
|
||||
box-sizing: border-box;
|
||||
position: relative;
|
||||
|
||||
}
|
||||
.setting-view {
|
||||
width: 100%;
|
||||
height: calc(100% - 88rpx - 92rpx - 88rpx - var(--status-bar-height));
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
align-items: center;
|
||||
overflow-y: auto;
|
||||
padding: 0 32rpx;
|
||||
box-sizing: border-box;
|
||||
position: relative;
|
||||
.mid-view{
|
||||
width:100%;
|
||||
height:calc(100% - 88rpx);
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
overflow-y: auto;
|
||||
padding-bottom: 24rpx;
|
||||
box-sizing: border-box;
|
||||
}
|
||||
.tab-view{
|
||||
width:100%;
|
||||
height:88rpx;
|
||||
display: flex;
|
||||
flex-direction: row;
|
||||
// align-items: center;
|
||||
.tab-list{
|
||||
margin-right:32rpx;
|
||||
height:55rpx;
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
align-items: center;
|
||||
justify-content: space-between;
|
||||
.tab-line{
|
||||
width:50rpx;
|
||||
height:4rpx;
|
||||
min-height:4rpx;
|
||||
background-color: #7934F6;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
</style>
|
||||
|
||||
+368
-368
@@ -1,368 +1,368 @@
|
||||
<template>
|
||||
<view class="content">
|
||||
<TopSafe bgColor="#fff"></TopSafe>
|
||||
<Header bgColor="#fff" title="兑换区块链数字积分" >
|
||||
<template v-slot:right>
|
||||
<text class="text-32 text-zi" @click="onRight">记录</text>
|
||||
</template>
|
||||
</Header>
|
||||
<view class="setting-view">
|
||||
<text class="text-32 text-fu" style="margin:54rpx 0 32rpx">兑换地址</text>
|
||||
<view class="input-box">
|
||||
<input style="flex:1"
|
||||
placeholder="请输入或选择地址"
|
||||
placeholder-style="color:#999;font-weight:400;"
|
||||
border="0" v-model="inputOne" :customStyle="inputCss"></input>
|
||||
<image src="https://cex-pub.s3.ap-southeast-1.amazonaws.com/static/new/right_icon.png" class="right-img" @click="onSelectAddress"></image>
|
||||
</view>
|
||||
|
||||
<text class="text-32 text-fu" style="margin:54rpx 0 32rpx">主网络</text>
|
||||
<view class="input-box" style="marign-top:32rpx">
|
||||
<text class="text-32" :style="{color:inputTwo ? '#333' : '#C1C5C9'}">{{inputTwo ? inputTwo : '请选择网络'}}</text>
|
||||
<u-icon name="arrow-right" color="#999" size="14" class="select-icon"></u-icon>
|
||||
</view>
|
||||
|
||||
<text class="text-32 text-fu" style="margin:54rpx 0 32rpx">兑换金额
|
||||
<text class="text-zi" @click="jumpSettingPwd">《共享计划终止协议》</text>
|
||||
</text>
|
||||
<view class="input-box" style="marign-top:32rpx">
|
||||
<input style="flex:1"
|
||||
placeholder="请输入兑换金额(最低1TBC)"
|
||||
placeholder-style="color:#999;font-weight:400;"
|
||||
@input="onInput"
|
||||
border="0" v-model="inputThree" :customStyle="inputCss"></input>
|
||||
<text class="text-zi text-32" @click="onAll">全部</text>
|
||||
</view>
|
||||
<text class="text-28 text-fu" style="margin-top:28rpx">余额 {{money}} TBC</text>
|
||||
|
||||
<text class="text-32 text-fu" style="margin:54rpx 0 32rpx">支付密码</text>
|
||||
<view class="input-box" style="marign-top:32rpx;margin-bottom:32rpx" >
|
||||
<input style="flex:1"
|
||||
:type="isEve ? 'text' : 'password'"
|
||||
placeholder="请输入支付密码"
|
||||
placeholder-style="color:#999;font-weight:400;"
|
||||
@input="onInputTwo"
|
||||
border="0" v-model="inputFour" :customStyle="inputCss"></input>
|
||||
|
||||
<image @click="onIsSys" :src="`https://cex-pub.s3.ap-southeast-1.amazonaws.com/static/new/eye_${isEve}.png`" class="right-img"></image>
|
||||
</view>
|
||||
</view>
|
||||
<view class="bottom-btn">
|
||||
<view class="bottom-top">
|
||||
<image src="https://cex-pub.s3.ap-southeast-1.amazonaws.com/static/new/icon.png"></image>
|
||||
<text class="text-24 text-zi">为了保障用户体验感,额外赠送0.0001主网gas</text>
|
||||
</view>
|
||||
<view class="bottom-view">
|
||||
<view class="bottom-left">
|
||||
<text class="text-24 text-fu1">到账数量</text>
|
||||
<text class="text-32 text-zu text-bold">{{inputThree || 0}}
|
||||
<text class="text-26">TBC</text>
|
||||
</text>
|
||||
<text class="text-24 text-fu1">网络手续费 0 TBC</text>
|
||||
</view>
|
||||
<MyBtn text="兑换" @ok="onC" wd="346rpx" br="8rpx"></MyBtn>
|
||||
</view>
|
||||
</view>
|
||||
<DownPopup :show="tipsShow"
|
||||
title="股权交割协议"
|
||||
:contentText="text"
|
||||
articleTitle="股权交割协议"
|
||||
ok="我已知晓"
|
||||
@cancel="tipsShow = false"
|
||||
@ok="tipsShow = false"
|
||||
></DownPopup>
|
||||
<SelectLian :itemShow="addressShow" :itemData="addressList" @ok="onOk" @add="onAdd"
|
||||
@close="onClose"></SelectLian>
|
||||
<up-toast ref="uToastRef"></up-toast>
|
||||
</view>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
|
||||
import { getExchUsers,exchTransfer,getAcctBalance } from '@/api/finance.js';
|
||||
import Header from '@/components/common/header.vue';
|
||||
import { clear } from '@/utils/auth.js';
|
||||
import TopSafe from '@/components/common/top-safe.nvue'
|
||||
import MyBtn from '@/components/common/my-btn.vue'
|
||||
import func from '@/utils/func.js';
|
||||
import SelectLian from './components/select-lian.vue'
|
||||
import DownPopup from '@/components/common/down-popup.vue'
|
||||
import CryptoJS from "crypto-js";
|
||||
|
||||
export default {
|
||||
components: { DownPopup,Header, TopSafe,MyBtn,SelectLian },
|
||||
data() {
|
||||
return {
|
||||
money:'',
|
||||
isEve:0,
|
||||
tipsShow:false,
|
||||
inputOne:'',
|
||||
inputTwo:'BNB Smart Chain(BEP20)',
|
||||
addressList:[],
|
||||
addressShow:false,
|
||||
inputThree:'',
|
||||
inputFour:'',
|
||||
inputCss: {
|
||||
"height": '80rpx',
|
||||
"background": "#F3F3F3FF",
|
||||
"border-radius": "30rpx",
|
||||
"border": "0rpx",
|
||||
"padding-left": "12rpx",
|
||||
},
|
||||
text:`甲方(委托人):信任桥用户
|
||||
乙方(受托人): 信任桥(深圳)网络科技有限公司
|
||||
统一社会信用代码:91440300MAD3XHDP7C
|
||||
鉴于条款
|
||||
1. 甲乙双方已签署《消费型合伙人合作协议》《分红权代持协议》及《承诺书》(以下统称“原协议”),甲方通过购买TB信任桥商城产品取得分红权代持资格。
|
||||
2. 为规范甲方对“TBC”(TrustBridge Coin,信任桥数字权益凭证)的行权行为,明确双方权利义务,现就甲方将TBC转移至交易所变现事宜达成补充约定。
|
||||
第一条 定义与行权规则
|
||||
1. TBC行权变现:指甲方向乙方申请将其持有的TBC通过非关联交易所进行行权的行为。
|
||||
2. 自动失效条款:
|
||||
若甲方将TBC转移至非关联交易所进行行权变现,视为甲方单方终止原协议项下所有权利义务。
|
||||
甲方行权变现后,立即丧失以下权益:
|
||||
(1)TB信任桥商城产品分红权;
|
||||
(2)所有未兑现的分红收益;
|
||||
第二条 协议终止与责任划分
|
||||
1. 协议终止:
|
||||
甲方触发行权变现条件后,原协议、《分红权代持协议》及《承诺书》自动终止,双方权利义务关系终结。
|
||||
乙方有权立即冻结甲方账户,停止后续分红发放。
|
||||
2. 责任承担:
|
||||
甲方承诺行权变现行为合法合规,若因行权行为导致乙方或关联方遭受行政处罚、声誉损失或第三方索赔,甲方应承担全部赔偿责任。
|
||||
乙方对甲方行权后的资金流向不承担监管责任。
|
||||
第三条 特别提示与风险告知
|
||||
1. 风险警示:
|
||||
TBC行权变现可能涉及市场波动、汇率风险及合规风险,甲方应自行承担全部后果。
|
||||
乙方不对TBC的流通性、价值稳定性作出任何承诺。
|
||||
2. 合规要求:
|
||||
甲方承诺行权变现资金用途合法,不得用于非法活动或洗钱行为。
|
||||
若监管部门要求追溯资金来源或用途,甲方应全力配合并提供证明材料。
|
||||
第四条 生效条件
|
||||
1. 本补充协议自甲方点击确认后生效,与原协议具有同等法律效力。
|
||||
2. 本协议未尽事宜,以原协议约定为准;与原协议冲突的,以本协议为准。`
|
||||
};
|
||||
},
|
||||
onShow(){
|
||||
this.acctBalance();
|
||||
this.getExchUsersList();
|
||||
},
|
||||
methods: {
|
||||
onRight(){
|
||||
uni.navigateTo({
|
||||
url:'/pages/rwa_package/rwa_withdrawal_log/rwa_withdrawal_log?back=withdrawal'
|
||||
})
|
||||
},
|
||||
acctBalance() {
|
||||
getAcctBalance().then(resp=>{
|
||||
if (resp && resp.bizcode === 100) {
|
||||
resp.data.forEach(item=>{
|
||||
if(item.categoty == 'vcoin'){
|
||||
this.money = item.curAmount;
|
||||
}
|
||||
})
|
||||
}
|
||||
});
|
||||
},
|
||||
jumpSettingPwd() {
|
||||
this.tipsShow = true;
|
||||
},
|
||||
getExchUsersList(){
|
||||
getExchUsers({name:'WALLET'}).then(res=>{
|
||||
if (res.bizcode === 100) {
|
||||
this.addressList = [];
|
||||
this.addressList = res.data.entitys ? res.data.entitys : [];
|
||||
} else {
|
||||
this.$refs.uToastRef.show({
|
||||
type: 'error',
|
||||
message: res.msg,
|
||||
});
|
||||
return null;
|
||||
}
|
||||
})
|
||||
},
|
||||
onC(){
|
||||
if(!this.inputOne){
|
||||
this.$refs.uToastRef.show({
|
||||
type: 'error',
|
||||
message: '地址不可为空',
|
||||
});
|
||||
return;
|
||||
}
|
||||
if(this.inputOne[0] != 0 || (this.inputOne[1] != 'x' && this.inputOne[1] != 'X') || this.inputOne.length != 42){
|
||||
this.$refs.uToastRef.show({
|
||||
type: 'error',
|
||||
message: '请输入/选择正确的地址',
|
||||
});
|
||||
return;
|
||||
}
|
||||
if(!this.inputThree){
|
||||
this.$refs.uToastRef.show({
|
||||
type: 'error',
|
||||
message: '请输入金额',
|
||||
});
|
||||
return;
|
||||
}
|
||||
if(Number(this.inputThree) < 1){
|
||||
this.$refs.uToastRef.show({
|
||||
type: 'error',
|
||||
message: '最低1TBC',
|
||||
});
|
||||
return;
|
||||
}
|
||||
if(this.inputFour.length < 6){
|
||||
this.$refs.uToastRef.show({
|
||||
type: 'error',
|
||||
message: '请输入6位密码',
|
||||
});
|
||||
return;
|
||||
}
|
||||
let params = {
|
||||
category:'vcoin',
|
||||
name:'WALLET',
|
||||
password:CryptoJS.MD5(this.inputFour).toString(),
|
||||
amount:this.inputThree,
|
||||
network:this.inputTwo,
|
||||
address:this.inputOne
|
||||
|
||||
}
|
||||
// CryptoJS.MD5(form.password).toString();
|
||||
exchTransfer(params).then(res=>{
|
||||
if (res.bizcode === 100) {
|
||||
|
||||
|
||||
uni.navigateTo({
|
||||
url:`/pages/rwa_package/account/shuSuccess?money=${this.inputThree}`
|
||||
})
|
||||
this.inputOne = '';
|
||||
this.inputTwo = 'BNB Smart Chain(BEP20)';
|
||||
this.inputThree = '';
|
||||
this.inputFour = '';
|
||||
} else {
|
||||
this.$refs.uToastRef.show({
|
||||
type: 'error',
|
||||
message: res.msg,
|
||||
});
|
||||
return null;
|
||||
}
|
||||
})
|
||||
},
|
||||
onSelectAddress(){
|
||||
this.addressShow = true;
|
||||
},
|
||||
onClose(){
|
||||
this.addressShow = false;
|
||||
},
|
||||
onOk(item){
|
||||
this.inputOne = item.account;
|
||||
this.onClose();
|
||||
},
|
||||
onAdd(){
|
||||
this.onClose();
|
||||
uni.navigateTo({
|
||||
url:'/pages/rwa_package/account/index?id=3'
|
||||
})
|
||||
},
|
||||
onAll(){
|
||||
this.inputThree = this.money;
|
||||
},
|
||||
onInputTwo(e){
|
||||
this.$nextTick(() => {
|
||||
this.inputFour = func.checkInputNum(e.detail.value,null,6);
|
||||
})
|
||||
},
|
||||
onInput(e){
|
||||
this.$nextTick(() => {
|
||||
this.inputThree = func.checkInputPrice(e.detail.value,this.money);
|
||||
})
|
||||
},
|
||||
onIsSys(){
|
||||
this.isEve = this.isEve == 1?0:1;
|
||||
}
|
||||
}
|
||||
}
|
||||
</script>
|
||||
|
||||
<style lang="scss" scoped>
|
||||
.bottom-btn{
|
||||
width: 100%;
|
||||
// margin-bottom:230rpx;
|
||||
height:230rpx;
|
||||
min-height:230rpx;
|
||||
background-color: #fff;
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
align-items: center;
|
||||
justify-content: space-between;
|
||||
box-sizing: border-box;
|
||||
position: relative;
|
||||
.bottom-view{
|
||||
width:100%;
|
||||
height:136rpx;
|
||||
min-height:136rpx;
|
||||
display: flex;
|
||||
flex-direction: row;
|
||||
align-items: center;
|
||||
justify-content: space-between;
|
||||
padding: 0 32rpx;
|
||||
background-color: #fff;
|
||||
box-sizing: border-box;
|
||||
border-top:1rpx solid #ECECEC;
|
||||
.bottom-left{
|
||||
height:110rpx;
|
||||
min-height:110rpx;
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
justify-content: space-between;
|
||||
}
|
||||
}
|
||||
.bottom-top{
|
||||
width:100%;
|
||||
display: flex;
|
||||
height:68rpx;
|
||||
min-height:68rpx;
|
||||
flex-direction: row;
|
||||
align-items: center;
|
||||
background: rgba(121,52,246,0.05);
|
||||
padding: 0 32rpx;
|
||||
box-sizing: border-box;
|
||||
image{
|
||||
width:24rpx;
|
||||
height:24rpx;
|
||||
margin-right:10rpx;
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
.setting-view {
|
||||
width: 100%;
|
||||
height: calc(100% - 88rpx - 230rpx - var(--status-bar-height));
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
overflow-y: auto;
|
||||
box-sizing: border-box;
|
||||
position: relative;
|
||||
background-color: #fff;
|
||||
padding: 0 32rpx;
|
||||
box-sizing: border-box;
|
||||
.input-box{
|
||||
width:100%;
|
||||
height:100rpx;
|
||||
min-height:100rpx;
|
||||
display: flex;
|
||||
flex-direction: row;
|
||||
justify-content: space-between;
|
||||
align-items: center;
|
||||
background: #F5F5F5;
|
||||
border-radius: 16rpx;
|
||||
padding: 0 32rpx;
|
||||
box-sizing: border-box;
|
||||
position: relative;
|
||||
|
||||
.right-img{
|
||||
width:44rpx;
|
||||
height:44rpx;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
</style>
|
||||
<template>
|
||||
<view class="content">
|
||||
<TopSafe bgColor="#fff"></TopSafe>
|
||||
<Header bgColor="#fff" title="兑换区块链数字积分" >
|
||||
<template v-slot:right>
|
||||
<text class="text-32 text-zi" @click="onRight">记录</text>
|
||||
</template>
|
||||
</Header>
|
||||
<view class="setting-view">
|
||||
<text class="text-32 text-fu" style="margin:54rpx 0 32rpx">兑换地址</text>
|
||||
<view class="input-box">
|
||||
<input style="flex:1"
|
||||
placeholder="请输入或选择地址"
|
||||
placeholder-style="color:#999;font-weight:400;"
|
||||
border="0" v-model="inputOne" :customStyle="inputCss"></input>
|
||||
<image src="https://cex-pub.s3.ap-southeast-1.amazonaws.com/static/new/right_icon.png" class="right-img" @click="onSelectAddress"></image>
|
||||
</view>
|
||||
|
||||
<text class="text-32 text-fu" style="margin:54rpx 0 32rpx">主网络</text>
|
||||
<view class="input-box" style="marign-top:32rpx">
|
||||
<text class="text-32" :style="{color:inputTwo ? '#333' : '#C1C5C9'}">{{inputTwo ? inputTwo : '请选择网络'}}</text>
|
||||
<u-icon name="arrow-right" color="#999" size="14" class="select-icon"></u-icon>
|
||||
</view>
|
||||
|
||||
<text class="text-32 text-fu" style="margin:54rpx 0 32rpx">兑换金额
|
||||
<text class="text-zi" @click="jumpSettingPwd">《共享计划终止协议》</text>
|
||||
</text>
|
||||
<view class="input-box" style="marign-top:32rpx">
|
||||
<input style="flex:1"
|
||||
placeholder="请输入兑换金额(最低1TBC)"
|
||||
placeholder-style="color:#999;font-weight:400;"
|
||||
@input="onInput"
|
||||
border="0" v-model="inputThree" :customStyle="inputCss"></input>
|
||||
<text class="text-zi text-32" @click="onAll">全部</text>
|
||||
</view>
|
||||
<text class="text-28 text-fu" style="margin-top:28rpx">余额 {{money}} TBC</text>
|
||||
|
||||
<text class="text-32 text-fu" style="margin:54rpx 0 32rpx">支付密码</text>
|
||||
<view class="input-box" style="marign-top:32rpx;margin-bottom:32rpx" >
|
||||
<input style="flex:1"
|
||||
:type="isEve ? 'text' : 'password'"
|
||||
placeholder="请输入支付密码"
|
||||
placeholder-style="color:#999;font-weight:400;"
|
||||
@input="onInputTwo"
|
||||
border="0" v-model="inputFour" :customStyle="inputCss"></input>
|
||||
|
||||
<image @click="onIsSys" :src="`https://cex-pub.s3.ap-southeast-1.amazonaws.com/static/new/eye_${isEve}.png`" class="right-img"></image>
|
||||
</view>
|
||||
</view>
|
||||
<view class="bottom-btn">
|
||||
<view class="bottom-top">
|
||||
<image src="https://cex-pub.s3.ap-southeast-1.amazonaws.com/static/new/icon.png"></image>
|
||||
<text class="text-24 text-zi">为了保障用户体验感,额外赠送0.0001主网gas</text>
|
||||
</view>
|
||||
<view class="bottom-view">
|
||||
<view class="bottom-left">
|
||||
<text class="text-24 text-fu1">到账数量</text>
|
||||
<text class="text-32 text-zu text-bold">{{inputThree || 0}}
|
||||
<text class="text-26">TBC</text>
|
||||
</text>
|
||||
<text class="text-24 text-fu1">网络手续费 0 TBC</text>
|
||||
</view>
|
||||
<MyBtn text="兑换" @ok="onC" wd="346rpx" br="8rpx"></MyBtn>
|
||||
</view>
|
||||
</view>
|
||||
<DownPopup :show="tipsShow"
|
||||
title="股权交割协议"
|
||||
:contentText="text"
|
||||
articleTitle="股权交割协议"
|
||||
ok="我已知晓"
|
||||
@cancel="tipsShow = false"
|
||||
@ok="tipsShow = false"
|
||||
></DownPopup>
|
||||
<SelectLian :itemShow="addressShow" :itemData="addressList" @ok="onOk" @add="onAdd"
|
||||
@close="onClose"></SelectLian>
|
||||
<up-toast ref="uToastRef"></up-toast>
|
||||
</view>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
|
||||
import { getExchUsers,exchTransfer,getAcctBalance } from '@/api/finance.js';
|
||||
import Header from '@/components/common/header.vue';
|
||||
import { clear } from '@/utils/auth.js';
|
||||
import TopSafe from '@/components/common/top-safe.nvue'
|
||||
import MyBtn from '@/components/common/my-btn.vue'
|
||||
import func from '@/utils/func.js';
|
||||
import SelectLian from './components/select-lian.vue'
|
||||
import DownPopup from '@/components/common/down-popup.vue'
|
||||
import CryptoJS from "crypto-js";
|
||||
|
||||
export default {
|
||||
components: { DownPopup,Header, TopSafe,MyBtn,SelectLian },
|
||||
data() {
|
||||
return {
|
||||
money:'',
|
||||
isEve:0,
|
||||
tipsShow:false,
|
||||
inputOne:'',
|
||||
inputTwo:'BNB Smart Chain(BEP20)',
|
||||
addressList:[],
|
||||
addressShow:false,
|
||||
inputThree:'',
|
||||
inputFour:'',
|
||||
inputCss: {
|
||||
"height": '80rpx',
|
||||
"background": "#F3F3F3FF",
|
||||
"border-radius": "30rpx",
|
||||
"border": "0rpx",
|
||||
"padding-left": "12rpx",
|
||||
},
|
||||
text:`甲方(委托人):信任桥用户
|
||||
乙方(受托人): 信任桥(深圳)网络科技有限公司
|
||||
统一社会信用代码:91440300MAD3XHDP7C
|
||||
鉴于条款
|
||||
1. 甲乙双方已签署《消费型合伙人合作协议》《分红权代持协议》及《承诺书》(以下统称“原协议”),甲方通过购买TB信任桥商城产品取得分红权代持资格。
|
||||
2. 为规范甲方对“TBC”(TrustBridge Coin,信任桥数字权益凭证)的行权行为,明确双方权利义务,现就甲方将TBC转移至交易所变现事宜达成补充约定。
|
||||
第一条 定义与行权规则
|
||||
1. TBC行权变现:指甲方向乙方申请将其持有的TBC通过非关联交易所进行行权的行为。
|
||||
2. 自动失效条款:
|
||||
若甲方将TBC转移至非关联交易所进行行权变现,视为甲方单方终止原协议项下所有权利义务。
|
||||
甲方行权变现后,立即丧失以下权益:
|
||||
(1)TB信任桥商城产品分红权;
|
||||
(2)所有未兑现的分红收益;
|
||||
第二条 协议终止与责任划分
|
||||
1. 协议终止:
|
||||
甲方触发行权变现条件后,原协议、《分红权代持协议》及《承诺书》自动终止,双方权利义务关系终结。
|
||||
乙方有权立即冻结甲方账户,停止后续分红发放。
|
||||
2. 责任承担:
|
||||
甲方承诺行权变现行为合法合规,若因行权行为导致乙方或关联方遭受行政处罚、声誉损失或第三方索赔,甲方应承担全部赔偿责任。
|
||||
乙方对甲方行权后的资金流向不承担监管责任。
|
||||
第三条 特别提示与风险告知
|
||||
1. 风险警示:
|
||||
TBC行权变现可能涉及市场波动、汇率风险及合规风险,甲方应自行承担全部后果。
|
||||
乙方不对TBC的流通性、价值稳定性作出任何承诺。
|
||||
2. 合规要求:
|
||||
甲方承诺行权变现资金用途合法,不得用于非法活动或洗钱行为。
|
||||
若监管部门要求追溯资金来源或用途,甲方应全力配合并提供证明材料。
|
||||
第四条 生效条件
|
||||
1. 本补充协议自甲方点击确认后生效,与原协议具有同等法律效力。
|
||||
2. 本协议未尽事宜,以原协议约定为准;与原协议冲突的,以本协议为准。`
|
||||
};
|
||||
},
|
||||
onShow(){
|
||||
this.acctBalance();
|
||||
this.getExchUsersList();
|
||||
},
|
||||
methods: {
|
||||
onRight(){
|
||||
uni.navigateTo({
|
||||
url:'/pages/rwa_package/rwa_withdrawal_log/rwa_withdrawal_log?back=withdrawal'
|
||||
})
|
||||
},
|
||||
acctBalance() {
|
||||
getAcctBalance().then(resp=>{
|
||||
if (resp && resp.bizcode === 100) {
|
||||
resp.data.forEach(item=>{
|
||||
if(item.categoty == 'vcoin'){
|
||||
this.money = item.curAmount;
|
||||
}
|
||||
})
|
||||
}
|
||||
});
|
||||
},
|
||||
jumpSettingPwd() {
|
||||
this.tipsShow = true;
|
||||
},
|
||||
getExchUsersList(){
|
||||
getExchUsers({name:'WALLET'}).then(res=>{
|
||||
if (res.bizcode === 100) {
|
||||
this.addressList = [];
|
||||
this.addressList = res.data.entitys ? res.data.entitys : [];
|
||||
} else {
|
||||
this.$refs.uToastRef.show({
|
||||
type: 'error',
|
||||
message: res.msg,
|
||||
});
|
||||
return null;
|
||||
}
|
||||
})
|
||||
},
|
||||
onC(){
|
||||
if(!this.inputOne){
|
||||
this.$refs.uToastRef.show({
|
||||
type: 'error',
|
||||
message: '地址不可为空',
|
||||
});
|
||||
return;
|
||||
}
|
||||
if(this.inputOne[0] != 0 || (this.inputOne[1] != 'x' && this.inputOne[1] != 'X') || this.inputOne.length != 42){
|
||||
this.$refs.uToastRef.show({
|
||||
type: 'error',
|
||||
message: '请输入/选择正确的地址',
|
||||
});
|
||||
return;
|
||||
}
|
||||
if(!this.inputThree){
|
||||
this.$refs.uToastRef.show({
|
||||
type: 'error',
|
||||
message: '请输入金额',
|
||||
});
|
||||
return;
|
||||
}
|
||||
if(Number(this.inputThree) < 1){
|
||||
this.$refs.uToastRef.show({
|
||||
type: 'error',
|
||||
message: '最低1TBC',
|
||||
});
|
||||
return;
|
||||
}
|
||||
if(this.inputFour.length < 6){
|
||||
this.$refs.uToastRef.show({
|
||||
type: 'error',
|
||||
message: '请输入6位密码',
|
||||
});
|
||||
return;
|
||||
}
|
||||
let params = {
|
||||
category:'vcoin',
|
||||
name:'WALLET',
|
||||
password:CryptoJS.MD5(this.inputFour).toString(),
|
||||
amount:this.inputThree,
|
||||
network:this.inputTwo,
|
||||
address:this.inputOne
|
||||
|
||||
}
|
||||
// CryptoJS.MD5(form.password).toString();
|
||||
exchTransfer(params).then(res=>{
|
||||
if (res.bizcode === 100) {
|
||||
|
||||
|
||||
uni.navigateTo({
|
||||
url:`/pages/rwa_package/account/shuSuccess?money=${this.inputThree}`
|
||||
})
|
||||
this.inputOne = '';
|
||||
this.inputTwo = 'BNB Smart Chain(BEP20)';
|
||||
this.inputThree = '';
|
||||
this.inputFour = '';
|
||||
} else {
|
||||
this.$refs.uToastRef.show({
|
||||
type: 'error',
|
||||
message: res.msg,
|
||||
});
|
||||
return null;
|
||||
}
|
||||
})
|
||||
},
|
||||
onSelectAddress(){
|
||||
this.addressShow = true;
|
||||
},
|
||||
onClose(){
|
||||
this.addressShow = false;
|
||||
},
|
||||
onOk(item){
|
||||
this.inputOne = item.account;
|
||||
this.onClose();
|
||||
},
|
||||
onAdd(){
|
||||
this.onClose();
|
||||
uni.navigateTo({
|
||||
url:'/pages/rwa_package/account/index?id=3'
|
||||
})
|
||||
},
|
||||
onAll(){
|
||||
this.inputThree = this.money;
|
||||
},
|
||||
onInputTwo(e){
|
||||
this.$nextTick(() => {
|
||||
this.inputFour = func.checkInputNum(e.detail.value,null,6);
|
||||
})
|
||||
},
|
||||
onInput(e){
|
||||
this.$nextTick(() => {
|
||||
this.inputThree = func.checkInputPrice(e.detail.value,this.money);
|
||||
})
|
||||
},
|
||||
onIsSys(){
|
||||
this.isEve = this.isEve == 1?0:1;
|
||||
}
|
||||
}
|
||||
}
|
||||
</script>
|
||||
|
||||
<style lang="scss" scoped>
|
||||
.bottom-btn{
|
||||
width: 100%;
|
||||
// margin-bottom:230rpx;
|
||||
height:230rpx;
|
||||
min-height:230rpx;
|
||||
background-color: #fff;
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
align-items: center;
|
||||
justify-content: space-between;
|
||||
box-sizing: border-box;
|
||||
position: relative;
|
||||
.bottom-view{
|
||||
width:100%;
|
||||
height:136rpx;
|
||||
min-height:136rpx;
|
||||
display: flex;
|
||||
flex-direction: row;
|
||||
align-items: center;
|
||||
justify-content: space-between;
|
||||
padding: 0 32rpx;
|
||||
background-color: #fff;
|
||||
box-sizing: border-box;
|
||||
border-top:1rpx solid #ECECEC;
|
||||
.bottom-left{
|
||||
height:110rpx;
|
||||
min-height:110rpx;
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
justify-content: space-between;
|
||||
}
|
||||
}
|
||||
.bottom-top{
|
||||
width:100%;
|
||||
display: flex;
|
||||
height:68rpx;
|
||||
min-height:68rpx;
|
||||
flex-direction: row;
|
||||
align-items: center;
|
||||
background: rgba(121,52,246,0.05);
|
||||
padding: 0 32rpx;
|
||||
box-sizing: border-box;
|
||||
image{
|
||||
width:24rpx;
|
||||
height:24rpx;
|
||||
margin-right:10rpx;
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
.setting-view {
|
||||
width: 100%;
|
||||
height: calc(100% - 88rpx - 230rpx - var(--status-bar-height));
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
overflow-y: auto;
|
||||
box-sizing: border-box;
|
||||
position: relative;
|
||||
background-color: #fff;
|
||||
padding: 0 32rpx;
|
||||
box-sizing: border-box;
|
||||
.input-box{
|
||||
width:100%;
|
||||
height:100rpx;
|
||||
min-height:100rpx;
|
||||
display: flex;
|
||||
flex-direction: row;
|
||||
justify-content: space-between;
|
||||
align-items: center;
|
||||
background: #F5F5F5;
|
||||
border-radius: 16rpx;
|
||||
padding: 0 32rpx;
|
||||
box-sizing: border-box;
|
||||
position: relative;
|
||||
|
||||
.right-img{
|
||||
width:44rpx;
|
||||
height:44rpx;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
</style>
|
||||
|
||||
@@ -1,154 +1,154 @@
|
||||
<template>
|
||||
<view class="content">
|
||||
<TopSafe bgColor="rgba(0,0,0,0)"></TopSafe>
|
||||
<Header title="绑定区块链地址" bgColor="rgba(0,0,0,0)" />
|
||||
<view class="setting-view">
|
||||
<view class="mid-view">
|
||||
<text class="text-zu1 text-32 mt-24">地址</text>
|
||||
<view class="input-view">
|
||||
<up-input placeholder="请输入地址" border="surround" v-model="account" :customStyle="inputCss"></up-input>
|
||||
</view>
|
||||
<text class="text-zu1 text-32 mt-48">主网络</text>
|
||||
<view class="input-view">
|
||||
<up-input placeholder="请选择主网络" border="surround" v-model="name" :customStyle="inputCss"></up-input>
|
||||
</view>
|
||||
</view>
|
||||
</view>
|
||||
<view class="bottom-btn">
|
||||
<MyBtn text="添加" @ok="onAdd"></MyBtn>
|
||||
</view>
|
||||
<up-toast ref="uToastRef"></up-toast>
|
||||
</view>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
import { bindExchUsers } from '@/api/finance.js';
|
||||
import Header from '@/components/common/header.vue';
|
||||
import { clear } from '@/utils/auth.js';
|
||||
import TopSafe from '@/components/common/top-safe.nvue'
|
||||
import MyBtn from '@/components/common/my-btn.vue'
|
||||
import func from '@/utils/func.js';
|
||||
import AccountItem from './components/account-item.vue'
|
||||
|
||||
export default {
|
||||
components: { Header, TopSafe,MyBtn,AccountItem },
|
||||
data() {
|
||||
return {
|
||||
topText:'',
|
||||
type:0,
|
||||
account:'',
|
||||
name:'BNB Smart Chain(BEP20)',
|
||||
wxCode:'',
|
||||
inputCss: {
|
||||
"height": '80rpx',
|
||||
"background": "#F3F3F3FF",
|
||||
"border-radius": "30rpx",
|
||||
"border": "0rpx",
|
||||
"padding-left": "12rpx",
|
||||
},
|
||||
};
|
||||
},
|
||||
onLoad(option) {
|
||||
|
||||
},
|
||||
methods: {
|
||||
onAdd(){
|
||||
if(!this.account){
|
||||
this.$refs.uToastRef.show({
|
||||
type: 'error',
|
||||
message: '地址不可为空',
|
||||
});
|
||||
return;
|
||||
}
|
||||
if(this.account[0] != 0 || (this.account[1] != 'x' && this.account[1] != 'X') || this.account.length != 42){
|
||||
this.$refs.uToastRef.show({
|
||||
type: 'error',
|
||||
message: '请输入正确的地址',
|
||||
});
|
||||
return;
|
||||
}
|
||||
if(!this.name){
|
||||
this.$refs.uToastRef.show({
|
||||
type: 'error',
|
||||
message: '请选择网络',
|
||||
});
|
||||
return;
|
||||
}
|
||||
let params = {
|
||||
name:'WALLET',
|
||||
address:this.account,
|
||||
netword:this.name
|
||||
}
|
||||
bindExchUsers(params).then(res=>{
|
||||
if (res.bizcode === 100) {
|
||||
this.$refs.uToastRef.show({
|
||||
type: 'success',
|
||||
message: '绑定成功',
|
||||
});
|
||||
this.account = '';
|
||||
this.name = '';
|
||||
setTimeout(()=>{
|
||||
uni.navigateBack();
|
||||
},1000)
|
||||
} else {
|
||||
this.$refs.uToastRef.show({
|
||||
type: 'error',
|
||||
message: res.msg,
|
||||
});
|
||||
return null;
|
||||
}
|
||||
})
|
||||
|
||||
}
|
||||
}
|
||||
}
|
||||
</script>
|
||||
|
||||
<style lang="scss" scoped>
|
||||
.bottom-btn{
|
||||
width: 100%;
|
||||
margin-bottom:92rpx;
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
align-items: center;
|
||||
padding: 0 32rpx;
|
||||
box-sizing: border-box;
|
||||
position: relative;
|
||||
|
||||
}
|
||||
.setting-view {
|
||||
width: 100%;
|
||||
height: calc(100% - 88rpx - 92rpx - 88rpx - var(--status-bar-height));
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
align-items: center;
|
||||
overflow-y: auto;
|
||||
padding: 0 32rpx;
|
||||
box-sizing: border-box;
|
||||
position: relative;
|
||||
.mid-view{
|
||||
width:100%;
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
overflow-y: auto;
|
||||
box-sizing: border-box;
|
||||
background-color: #fff;
|
||||
border-radius: 16rpx;
|
||||
padding: 48rpx 32rpx;
|
||||
margin-top:24rpx;
|
||||
.input-view{
|
||||
width:100%;
|
||||
height:100rpx;
|
||||
background-color: #f5f5f5;
|
||||
border-radius: 20rpx;
|
||||
margin-top:32rpx;
|
||||
display: flex;
|
||||
flex-direction: row;
|
||||
align-items: center;
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
</style>
|
||||
<template>
|
||||
<view class="content">
|
||||
<TopSafe bgColor="rgba(0,0,0,0)"></TopSafe>
|
||||
<Header title="绑定区块链地址" bgColor="rgba(0,0,0,0)" />
|
||||
<view class="setting-view">
|
||||
<view class="mid-view">
|
||||
<text class="text-zu1 text-32 mt-24">地址</text>
|
||||
<view class="input-view">
|
||||
<up-input placeholder="请输入地址" border="surround" v-model="account" :customStyle="inputCss"></up-input>
|
||||
</view>
|
||||
<text class="text-zu1 text-32 mt-48">主网络</text>
|
||||
<view class="input-view">
|
||||
<up-input placeholder="请选择主网络" border="surround" v-model="name" :customStyle="inputCss"></up-input>
|
||||
</view>
|
||||
</view>
|
||||
</view>
|
||||
<view class="bottom-btn">
|
||||
<MyBtn text="添加" @ok="onAdd"></MyBtn>
|
||||
</view>
|
||||
<up-toast ref="uToastRef"></up-toast>
|
||||
</view>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
import { bindExchUsers } from '@/api/finance.js';
|
||||
import Header from '@/components/common/header.vue';
|
||||
import { clear } from '@/utils/auth.js';
|
||||
import TopSafe from '@/components/common/top-safe.nvue'
|
||||
import MyBtn from '@/components/common/my-btn.vue'
|
||||
import func from '@/utils/func.js';
|
||||
import AccountItem from './components/account-item.vue'
|
||||
|
||||
export default {
|
||||
components: { Header, TopSafe,MyBtn,AccountItem },
|
||||
data() {
|
||||
return {
|
||||
topText:'',
|
||||
type:0,
|
||||
account:'',
|
||||
name:'BNB Smart Chain(BEP20)',
|
||||
wxCode:'',
|
||||
inputCss: {
|
||||
"height": '80rpx',
|
||||
"background": "#F3F3F3FF",
|
||||
"border-radius": "30rpx",
|
||||
"border": "0rpx",
|
||||
"padding-left": "12rpx",
|
||||
},
|
||||
};
|
||||
},
|
||||
onLoad(option) {
|
||||
|
||||
},
|
||||
methods: {
|
||||
onAdd(){
|
||||
if(!this.account){
|
||||
this.$refs.uToastRef.show({
|
||||
type: 'error',
|
||||
message: '地址不可为空',
|
||||
});
|
||||
return;
|
||||
}
|
||||
if(this.account[0] != 0 || (this.account[1] != 'x' && this.account[1] != 'X') || this.account.length != 42){
|
||||
this.$refs.uToastRef.show({
|
||||
type: 'error',
|
||||
message: '请输入正确的地址',
|
||||
});
|
||||
return;
|
||||
}
|
||||
if(!this.name){
|
||||
this.$refs.uToastRef.show({
|
||||
type: 'error',
|
||||
message: '请选择网络',
|
||||
});
|
||||
return;
|
||||
}
|
||||
let params = {
|
||||
name:'WALLET',
|
||||
address:this.account,
|
||||
netword:this.name
|
||||
}
|
||||
bindExchUsers(params).then(res=>{
|
||||
if (res.bizcode === 100) {
|
||||
this.$refs.uToastRef.show({
|
||||
type: 'success',
|
||||
message: '绑定成功',
|
||||
});
|
||||
this.account = '';
|
||||
this.name = '';
|
||||
setTimeout(()=>{
|
||||
uni.navigateBack();
|
||||
},1000)
|
||||
} else {
|
||||
this.$refs.uToastRef.show({
|
||||
type: 'error',
|
||||
message: res.msg,
|
||||
});
|
||||
return null;
|
||||
}
|
||||
})
|
||||
|
||||
}
|
||||
}
|
||||
}
|
||||
</script>
|
||||
|
||||
<style lang="scss" scoped>
|
||||
.bottom-btn{
|
||||
width: 100%;
|
||||
margin-bottom:92rpx;
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
align-items: center;
|
||||
padding: 0 32rpx;
|
||||
box-sizing: border-box;
|
||||
position: relative;
|
||||
|
||||
}
|
||||
.setting-view {
|
||||
width: 100%;
|
||||
height: calc(100% - 88rpx - 92rpx - 88rpx - var(--status-bar-height));
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
align-items: center;
|
||||
overflow-y: auto;
|
||||
padding: 0 32rpx;
|
||||
box-sizing: border-box;
|
||||
position: relative;
|
||||
.mid-view{
|
||||
width:100%;
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
overflow-y: auto;
|
||||
box-sizing: border-box;
|
||||
background-color: #fff;
|
||||
border-radius: 16rpx;
|
||||
padding: 48rpx 32rpx;
|
||||
margin-top:24rpx;
|
||||
.input-view{
|
||||
width:100%;
|
||||
height:100rpx;
|
||||
background-color: #f5f5f5;
|
||||
border-radius: 20rpx;
|
||||
margin-top:32rpx;
|
||||
display: flex;
|
||||
flex-direction: row;
|
||||
align-items: center;
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
</style>
|
||||
|
||||
@@ -1,94 +1,94 @@
|
||||
<template>
|
||||
<view class="content">
|
||||
<TopSafe bgColor="rgba(0,0,0,0)"></TopSafe>
|
||||
<Header bgColor="rgba(0,0,0,0)" />
|
||||
<view class="setting-view">
|
||||
<u-icon size="54" name="checkmark-circle-fill" style="margin-top:84rpx" color="#7934F6" ></u-icon>
|
||||
<text class="text-zu text-32 mt-24">兑换成功 {{money || 0}}TBC</text>
|
||||
<text class="text-fu1 text-28 mt-24" style="text-align: center;">由于第三方结算原因,兑换成功后可能存在一定延迟请关注兑换账户变动情况~</text>
|
||||
</view>
|
||||
<view class="bottom-btn">
|
||||
<MyBtn text="好的我知道了" @ok="onAdd"></MyBtn>
|
||||
</view>
|
||||
<up-toast ref="uToastRef"></up-toast>
|
||||
</view>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
import { bindWithdraw } from '@/api/common.js';
|
||||
import Header from '@/components/common/header.vue';
|
||||
import { clear } from '@/utils/auth.js';
|
||||
import TopSafe from '@/components/common/top-safe.nvue'
|
||||
import MyBtn from '@/components/common/my-btn.vue'
|
||||
import func from '@/utils/func.js';
|
||||
import AccountItem from './components/account-item.vue'
|
||||
|
||||
export default {
|
||||
components: { Header, TopSafe,MyBtn,AccountItem },
|
||||
data() {
|
||||
return {
|
||||
money:''
|
||||
};
|
||||
},
|
||||
onLoad(option) {
|
||||
if(option && option.money){
|
||||
this.money = Number(option.money);
|
||||
}
|
||||
},
|
||||
methods: {
|
||||
onAdd(){
|
||||
uni.navigateBack()
|
||||
|
||||
}
|
||||
}
|
||||
}
|
||||
</script>
|
||||
|
||||
<style lang="scss" scoped>
|
||||
.bottom-btn{
|
||||
width: 100%;
|
||||
margin-bottom:92rpx;
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
align-items: center;
|
||||
padding: 0 32rpx;
|
||||
box-sizing: border-box;
|
||||
position: relative;
|
||||
|
||||
}
|
||||
.setting-view {
|
||||
width: 100%;
|
||||
height: calc(100% - 88rpx - 92rpx - 88rpx - var(--status-bar-height));
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
align-items: center;
|
||||
overflow-y: auto;
|
||||
padding: 0 32rpx;
|
||||
box-sizing: border-box;
|
||||
position: relative;
|
||||
.mid-view{
|
||||
width:100%;
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
overflow-y: auto;
|
||||
box-sizing: border-box;
|
||||
background-color: #fff;
|
||||
border-radius: 16rpx;
|
||||
padding: 48rpx 32rpx;
|
||||
margin-top:24rpx;
|
||||
.input-view{
|
||||
width:100%;
|
||||
height:100rpx;
|
||||
background-color: #f5f5f5;
|
||||
border-radius: 20rpx;
|
||||
margin-top:32rpx;
|
||||
display: flex;
|
||||
flex-direction: row;
|
||||
align-items: center;
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
</style>
|
||||
<template>
|
||||
<view class="content">
|
||||
<TopSafe bgColor="rgba(0,0,0,0)"></TopSafe>
|
||||
<Header bgColor="rgba(0,0,0,0)" />
|
||||
<view class="setting-view">
|
||||
<u-icon size="54" name="checkmark-circle-fill" style="margin-top:84rpx" color="#7934F6" ></u-icon>
|
||||
<text class="text-zu text-32 mt-24">兑换成功 {{money || 0}}TBC</text>
|
||||
<text class="text-fu1 text-28 mt-24" style="text-align: center;">由于第三方结算原因,兑换成功后可能存在一定延迟请关注兑换账户变动情况~</text>
|
||||
</view>
|
||||
<view class="bottom-btn">
|
||||
<MyBtn text="好的我知道了" @ok="onAdd"></MyBtn>
|
||||
</view>
|
||||
<up-toast ref="uToastRef"></up-toast>
|
||||
</view>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
import { bindWithdraw } from '@/api/common.js';
|
||||
import Header from '@/components/common/header.vue';
|
||||
import { clear } from '@/utils/auth.js';
|
||||
import TopSafe from '@/components/common/top-safe.nvue'
|
||||
import MyBtn from '@/components/common/my-btn.vue'
|
||||
import func from '@/utils/func.js';
|
||||
import AccountItem from './components/account-item.vue'
|
||||
|
||||
export default {
|
||||
components: { Header, TopSafe,MyBtn,AccountItem },
|
||||
data() {
|
||||
return {
|
||||
money:''
|
||||
};
|
||||
},
|
||||
onLoad(option) {
|
||||
if(option && option.money){
|
||||
this.money = Number(option.money);
|
||||
}
|
||||
},
|
||||
methods: {
|
||||
onAdd(){
|
||||
uni.navigateBack()
|
||||
|
||||
}
|
||||
}
|
||||
}
|
||||
</script>
|
||||
|
||||
<style lang="scss" scoped>
|
||||
.bottom-btn{
|
||||
width: 100%;
|
||||
margin-bottom:92rpx;
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
align-items: center;
|
||||
padding: 0 32rpx;
|
||||
box-sizing: border-box;
|
||||
position: relative;
|
||||
|
||||
}
|
||||
.setting-view {
|
||||
width: 100%;
|
||||
height: calc(100% - 88rpx - 92rpx - 88rpx - var(--status-bar-height));
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
align-items: center;
|
||||
overflow-y: auto;
|
||||
padding: 0 32rpx;
|
||||
box-sizing: border-box;
|
||||
position: relative;
|
||||
.mid-view{
|
||||
width:100%;
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
overflow-y: auto;
|
||||
box-sizing: border-box;
|
||||
background-color: #fff;
|
||||
border-radius: 16rpx;
|
||||
padding: 48rpx 32rpx;
|
||||
margin-top:24rpx;
|
||||
.input-view{
|
||||
width:100%;
|
||||
height:100rpx;
|
||||
background-color: #f5f5f5;
|
||||
border-radius: 20rpx;
|
||||
margin-top:32rpx;
|
||||
display: flex;
|
||||
flex-direction: row;
|
||||
align-items: center;
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
</style>
|
||||
|
||||
@@ -1,94 +1,94 @@
|
||||
<template>
|
||||
<view class="content">
|
||||
<TopSafe bgColor="rgba(0,0,0,0)"></TopSafe>
|
||||
<Header bgColor="rgba(0,0,0,0)" />
|
||||
<view class="setting-view">
|
||||
<u-icon size="54" name="checkmark-circle-fill" style="margin-top:84rpx" color="#7934F6" ></u-icon>
|
||||
<text class="text-zu text-32 mt-24">提现成功 ¥{{money || 0}}</text>
|
||||
<text class="text-fu1 text-28 mt-24" style="text-align: center;">由于第三方结算原因,提现成功后可能存在一定延迟请关注提现账户变动情况~</text>
|
||||
</view>
|
||||
<view class="bottom-btn">
|
||||
<MyBtn text="好的我知道了" @ok="onAdd"></MyBtn>
|
||||
</view>
|
||||
<up-toast ref="uToastRef"></up-toast>
|
||||
</view>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
import { bindWithdraw } from '@/api/common.js';
|
||||
import Header from '@/components/common/header.vue';
|
||||
import { clear } from '@/utils/auth.js';
|
||||
import TopSafe from '@/components/common/top-safe.nvue'
|
||||
import MyBtn from '@/components/common/my-btn.vue'
|
||||
import func from '@/utils/func.js';
|
||||
import AccountItem from './components/account-item.vue'
|
||||
|
||||
export default {
|
||||
components: { Header, TopSafe,MyBtn,AccountItem },
|
||||
data() {
|
||||
return {
|
||||
money:''
|
||||
};
|
||||
},
|
||||
onLoad(option) {
|
||||
if(option && option.money){
|
||||
this.money = Number(option.money);
|
||||
}
|
||||
},
|
||||
methods: {
|
||||
onAdd(){
|
||||
uni.navigateBack()
|
||||
|
||||
}
|
||||
}
|
||||
}
|
||||
</script>
|
||||
|
||||
<style lang="scss" scoped>
|
||||
.bottom-btn{
|
||||
width: 100%;
|
||||
margin-bottom:92rpx;
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
align-items: center;
|
||||
padding: 0 32rpx;
|
||||
box-sizing: border-box;
|
||||
position: relative;
|
||||
|
||||
}
|
||||
.setting-view {
|
||||
width: 100%;
|
||||
height: calc(100% - 88rpx - 92rpx - 88rpx - var(--status-bar-height));
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
align-items: center;
|
||||
overflow-y: auto;
|
||||
padding: 0 32rpx;
|
||||
box-sizing: border-box;
|
||||
position: relative;
|
||||
.mid-view{
|
||||
width:100%;
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
overflow-y: auto;
|
||||
box-sizing: border-box;
|
||||
background-color: #fff;
|
||||
border-radius: 16rpx;
|
||||
padding: 48rpx 32rpx;
|
||||
margin-top:24rpx;
|
||||
.input-view{
|
||||
width:100%;
|
||||
height:100rpx;
|
||||
background-color: #f5f5f5;
|
||||
border-radius: 20rpx;
|
||||
margin-top:32rpx;
|
||||
display: flex;
|
||||
flex-direction: row;
|
||||
align-items: center;
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
</style>
|
||||
<template>
|
||||
<view class="content">
|
||||
<TopSafe bgColor="rgba(0,0,0,0)"></TopSafe>
|
||||
<Header bgColor="rgba(0,0,0,0)" />
|
||||
<view class="setting-view">
|
||||
<u-icon size="54" name="checkmark-circle-fill" style="margin-top:84rpx" color="#7934F6" ></u-icon>
|
||||
<text class="text-zu text-32 mt-24">提现成功 ¥{{money || 0}}</text>
|
||||
<text class="text-fu1 text-28 mt-24" style="text-align: center;">由于第三方结算原因,提现成功后可能存在一定延迟请关注提现账户变动情况~</text>
|
||||
</view>
|
||||
<view class="bottom-btn">
|
||||
<MyBtn text="好的我知道了" @ok="onAdd"></MyBtn>
|
||||
</view>
|
||||
<up-toast ref="uToastRef"></up-toast>
|
||||
</view>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
import { bindWithdraw } from '@/api/common.js';
|
||||
import Header from '@/components/common/header.vue';
|
||||
import { clear } from '@/utils/auth.js';
|
||||
import TopSafe from '@/components/common/top-safe.nvue'
|
||||
import MyBtn from '@/components/common/my-btn.vue'
|
||||
import func from '@/utils/func.js';
|
||||
import AccountItem from './components/account-item.vue'
|
||||
|
||||
export default {
|
||||
components: { Header, TopSafe,MyBtn,AccountItem },
|
||||
data() {
|
||||
return {
|
||||
money:''
|
||||
};
|
||||
},
|
||||
onLoad(option) {
|
||||
if(option && option.money){
|
||||
this.money = Number(option.money);
|
||||
}
|
||||
},
|
||||
methods: {
|
||||
onAdd(){
|
||||
uni.navigateBack()
|
||||
|
||||
}
|
||||
}
|
||||
}
|
||||
</script>
|
||||
|
||||
<style lang="scss" scoped>
|
||||
.bottom-btn{
|
||||
width: 100%;
|
||||
margin-bottom:92rpx;
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
align-items: center;
|
||||
padding: 0 32rpx;
|
||||
box-sizing: border-box;
|
||||
position: relative;
|
||||
|
||||
}
|
||||
.setting-view {
|
||||
width: 100%;
|
||||
height: calc(100% - 88rpx - 92rpx - 88rpx - var(--status-bar-height));
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
align-items: center;
|
||||
overflow-y: auto;
|
||||
padding: 0 32rpx;
|
||||
box-sizing: border-box;
|
||||
position: relative;
|
||||
.mid-view{
|
||||
width:100%;
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
overflow-y: auto;
|
||||
box-sizing: border-box;
|
||||
background-color: #fff;
|
||||
border-radius: 16rpx;
|
||||
padding: 48rpx 32rpx;
|
||||
margin-top:24rpx;
|
||||
.input-view{
|
||||
width:100%;
|
||||
height:100rpx;
|
||||
background-color: #f5f5f5;
|
||||
border-radius: 20rpx;
|
||||
margin-top:32rpx;
|
||||
display: flex;
|
||||
flex-direction: row;
|
||||
align-items: center;
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
</style>
|
||||
|
||||
@@ -1,492 +1,492 @@
|
||||
<template>
|
||||
<view class="content">
|
||||
<TopSafe bgColor="rgba(0,0,0,0)"></TopSafe>
|
||||
<Header :title="topText" bgColor="rgba(0,0,0,0)" />
|
||||
<view class="setting-view">
|
||||
<view class="top-view">
|
||||
<view class="top-left">
|
||||
<text class="text-bold text-52 text-white">
|
||||
{{amount}}
|
||||
</text>
|
||||
<text class="text-20 text-white" style="font-weight: 100;">可用余额</text>
|
||||
</view>
|
||||
<view class="top-right">
|
||||
<text class="text-bold text-36 text-white">
|
||||
{{noAmount}}
|
||||
</text>
|
||||
<text class="text-20 text-white" style="font-weight: 100;">不可用余额</text>
|
||||
</view>
|
||||
</view>
|
||||
<view class="mid-view">
|
||||
<text class="text-zu1 text-32">{{type == 0 ? '提现' : '充值'}}方式</text>
|
||||
|
||||
<view class="item-view" @click="onSelect('0')" v-if="!isWeb || type != 0">
|
||||
<image src="https://cex-pub.s3.ap-southeast-1.amazonaws.com/static/new/wx.png"></image>
|
||||
<text class="text-zu1 text-32 " style="margin-left:20rpx;">微信</text>
|
||||
<view class="right-icon-view" v-if="type == 1">
|
||||
<u-radio-group v-model="curSelect">
|
||||
<u-radio name="0" activeColor="#7934F6"></u-radio>
|
||||
</u-radio-group>
|
||||
</view>
|
||||
<view class="right-icon-view" v-else>
|
||||
<text class="text-32 text-zu1" style="margin-right:12rpx" v-if="selectVal && curSelect == '0'">{{selectVal.name + '/' + selectVal.account}}</text>
|
||||
<u-icon size="14" name="arrow-right" color="#333" ></u-icon>
|
||||
</view>
|
||||
</view>
|
||||
<view class="item-view" @click="onSelect('1')" style="border-width: 0;" >
|
||||
<image src="https://cex-pub.s3.ap-southeast-1.amazonaws.com/static/new/zfb.png"></image>
|
||||
<text class="text-zu1 text-32 " style="margin-left:20rpx;">支付宝</text>
|
||||
<view class="right-icon-view" v-if="type == 1">
|
||||
<u-radio-group v-model="curSelect">
|
||||
<u-radio name="1" activeColor="#7934F6"></u-radio>
|
||||
</u-radio-group>
|
||||
</view>
|
||||
<view class="right-icon-view" v-else>
|
||||
<text class="text-32 text-zu1" style="margin-right:12rpx" v-if="selectVal && curSelect == '1'">{{selectVal.name + '/' + selectVal.account}}</text>
|
||||
<u-icon size="14" name="arrow-right" color="#333" ></u-icon>
|
||||
</view>
|
||||
</view>
|
||||
</view>
|
||||
<view class="mid-view">
|
||||
<view class="flex-r-lr">
|
||||
<text class="text-zu1 text-32">{{type == 0 ? '提现' : '充值'}}金额</text>
|
||||
<text class="text-fu1 text-28" v-if="type == 0" style="font-weight:400">每日仅限提现1次</text>
|
||||
</view>
|
||||
|
||||
<view class="input-view">
|
||||
<text class="text-52 text-zu text-bold">¥</text>
|
||||
<input style="background: #fff;margin-top:10rpx;"
|
||||
:placeholder="type == 0 ? '请输入提现金额(0.3-2000)' : '输入充值金额'"
|
||||
placeholder-style="color:#999;font-weight:400"
|
||||
@input="onInput"
|
||||
border="0" v-model="money" :customStyle="inputCss"></input>
|
||||
</view>
|
||||
</view>
|
||||
<view class="zhu-view" v-if="selectVal">
|
||||
<u-icon size="12" style="margin-top:5rpx;margin-right:12rpx" name="error-circle" color="#7934F6"></u-icon>
|
||||
<text class="text-24 text-zi" style="font-weight: 400;">通过支付宝或微信提现时,将由支付宝/微信官方收取0.6%的费用,本平台不收取任何费用。</text>
|
||||
</view>
|
||||
|
||||
|
||||
</view>
|
||||
<view class="bottom-btn">
|
||||
<MyBtn :text="bottomText" @ok="onAdd"></MyBtn>
|
||||
</view>
|
||||
<SelectItem :itemData="dataList" @close="onClose" @ok="onOk" @add="onAddBack"
|
||||
:type="curSelect" :itemShow="selectShow"></SelectItem>
|
||||
<CodeItem @ti="onTi" @close="onClose" :codeShow="codeShow" :phone="userInfo ? userInfo.mobile :''"></CodeItem>
|
||||
<up-toast ref="uToastRef"></up-toast>
|
||||
</view>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
import { getWithdraw,sendWithdraw } from '@/api/common.js';
|
||||
import { getUserInfo,updateName,deleteAccount } from '@/api/auth.js';
|
||||
import Header from '@/components/common/header.vue';
|
||||
import { clear } from '@/utils/auth.js';
|
||||
import TopSafe from '@/components/common/top-safe.nvue'
|
||||
import MyBtn from '@/components/common/my-btn.vue'
|
||||
import func from '@/utils/func.js';
|
||||
import SelectItem from './components/select-item.vue'
|
||||
import CodeItem from './components/code-item.vue'
|
||||
import {uniPlatform} from '@/components/common/global.js'
|
||||
import { getRechargeSupportPay, recharge,getAcctBalance } from '@/api/finance.js';
|
||||
import { feedback } from '@/api/payment.js';
|
||||
import { appWxpayFun, zfbPayFun } from '@/utils/payUtils.js'
|
||||
|
||||
export default {
|
||||
components: { Header, TopSafe,MyBtn,SelectItem,CodeItem },
|
||||
data() {
|
||||
return {
|
||||
isWeb:false,
|
||||
topText:'',
|
||||
type:0,
|
||||
amount:'',
|
||||
money:'',
|
||||
noAmount:'',
|
||||
account:'',
|
||||
bottomText:'',
|
||||
curSelect:'0',
|
||||
selectShow:false,
|
||||
codeShow:false,
|
||||
name:'',
|
||||
inputCss: {
|
||||
"height": '80rpx',
|
||||
"background": "#F3F3F3FF",
|
||||
"border-radius": "30rpx",
|
||||
"border": "0rpx",
|
||||
"padding-left": "12rpx",
|
||||
},
|
||||
dataList:[
|
||||
|
||||
],
|
||||
selectVal:null,
|
||||
userInfo:null,
|
||||
};
|
||||
},
|
||||
onShow(){
|
||||
if(uniPlatform == 'web'){
|
||||
this.isWeb = true;
|
||||
}else{
|
||||
this.isWeb = false;
|
||||
}
|
||||
},
|
||||
onLoad(option) {
|
||||
if(option && option.type){
|
||||
this.type = Number(option.type);
|
||||
this.init();
|
||||
}
|
||||
},
|
||||
methods: {
|
||||
userinfo() {
|
||||
getUserInfo().then(res => {
|
||||
if (res.bizcode == 100) {
|
||||
this.userInfo = res.data;
|
||||
}
|
||||
})
|
||||
},
|
||||
onInput(e){
|
||||
this.$nextTick(() => {
|
||||
this.money = func.checkInputPrice(e.detail.value);
|
||||
})
|
||||
},
|
||||
onOk(val){
|
||||
this.selectVal = this.dataList.filter(i=>i.id == val)[0];
|
||||
this.onClose();
|
||||
},
|
||||
onAddBack(){
|
||||
this.onClose();
|
||||
uni.navigateTo({
|
||||
url:'/pages/rwa_package/account/index?id=' + this.curSelect
|
||||
})
|
||||
},
|
||||
onClose(){
|
||||
this.selectShow = false;
|
||||
this.codeShow = false;
|
||||
},
|
||||
getList(val){
|
||||
let params = {
|
||||
platform:this.curSelect == '0' ? 2 : 1
|
||||
}
|
||||
getWithdraw(params).then(res=>{
|
||||
if (res.bizcode === 100) {
|
||||
this.dataList = res.data;
|
||||
this.dataList.forEach(item=>{
|
||||
item.name = item.accountName;
|
||||
item.account = item.accountNumber;
|
||||
})
|
||||
this.selectShow = true;
|
||||
} else {
|
||||
this.$refs.uToastRef.show({
|
||||
type: 'error',
|
||||
message: res.msg,
|
||||
});
|
||||
return null;
|
||||
}
|
||||
})
|
||||
},
|
||||
onSelect(val){
|
||||
this.curSelect = val;
|
||||
if(this.type == 0){
|
||||
this.selectVal = null;
|
||||
this.getList();
|
||||
}
|
||||
},
|
||||
async getAcctBalance() {
|
||||
this.balanceLoading = true;
|
||||
const resp = await getAcctBalance();
|
||||
let data = [];
|
||||
if (resp && resp.bizcode === 100) {
|
||||
data = resp.data || [];
|
||||
data.forEach(item=>{
|
||||
if("balance" == item.categoty){
|
||||
this.noAmount = item.lockAmount;
|
||||
this.amount = item.curAmount;
|
||||
}
|
||||
})
|
||||
}
|
||||
this.balanceList = data;
|
||||
this.balanceLoading = false;
|
||||
},
|
||||
init() {
|
||||
if(this.type == 0 ){
|
||||
this.topText = '现金余额提现';
|
||||
this.bottomText = '提现';
|
||||
}else if(this.type == 1){
|
||||
this.topText = '现金余额充值';
|
||||
this.bottomText = '充值';
|
||||
}
|
||||
this.userinfo();
|
||||
this.getAcctBalance();
|
||||
},
|
||||
onAdd(){
|
||||
if(this.type == 0){
|
||||
if(!this.money){
|
||||
this.$refs.uToastRef.show({
|
||||
type: "error",
|
||||
message: "请输入金额",
|
||||
});
|
||||
return;
|
||||
}
|
||||
if(Number(this.money) < 0.3){
|
||||
this.$refs.uToastRef.show({
|
||||
type: "error",
|
||||
message: "提现金额不能低于0.3元",
|
||||
});
|
||||
return;
|
||||
}
|
||||
if(Number(this.money) > 2000){
|
||||
this.$refs.uToastRef.show({
|
||||
type: "error",
|
||||
message: "提现金额不能大于2000元",
|
||||
});
|
||||
return;
|
||||
}
|
||||
if(Number(this.money)> Number(this.amount)){
|
||||
this.$refs.uToastRef.show({
|
||||
type: "error",
|
||||
message: "输入金额大于可用余额",
|
||||
});
|
||||
return;
|
||||
}
|
||||
if(this.type == 0 && !this.selectVal){
|
||||
this.$refs.uToastRef.show({
|
||||
type: "error",
|
||||
message: "请选择提现方式",
|
||||
});
|
||||
return;
|
||||
}
|
||||
console.log('onAdd',this.curSelect)
|
||||
this.codeShow = true;
|
||||
}else{
|
||||
if(!this.money){
|
||||
this.$refs.uToastRef.show({
|
||||
type: "error",
|
||||
message: "请输入金额",
|
||||
});
|
||||
return;
|
||||
}
|
||||
let params = {
|
||||
amount:this.money,
|
||||
category:'balance',
|
||||
payway:this.curSelect == '0' ? 'wechat' : 'alipay'
|
||||
}
|
||||
recharge(params).then(result=>{
|
||||
if (result && result.bizcode === 100) {
|
||||
const item = result.data;
|
||||
if (item.wechat && Object.keys(item.wechat).length !== 0) {
|
||||
this.appWxpay(item.wechat, item.orderId, item.orderNum);
|
||||
} else if (item.alipay && Object.keys(item.alipay).length !== 0 && item.alipay) {
|
||||
this.zfbPay(item.alipay, item.orderId, item.orderNum);
|
||||
} else {
|
||||
this.$refs.uToastRef.show({
|
||||
type: 'error',
|
||||
message: "充值失败",
|
||||
});
|
||||
|
||||
}
|
||||
}
|
||||
})
|
||||
}
|
||||
|
||||
},
|
||||
async appWxpay(alipay, orderId, orderNum) {
|
||||
try {
|
||||
const result = await appWxpayFun(alipay, orderId, orderNum);
|
||||
console.log('支付成功', result);
|
||||
// 处理支付成功后的逻辑,如更新订单状态等
|
||||
} catch (error) {
|
||||
console.error('支付失败', error);
|
||||
// 处理支付失败后的逻辑,如提示用户等
|
||||
}
|
||||
},
|
||||
// 支付宝支付
|
||||
async zfbPay(alipay, orderId, orderNum) {
|
||||
try {
|
||||
const result = await zfbPayFun(alipay, orderId, orderNum);
|
||||
console.log('支付成功', result);
|
||||
// 处理支付成功后的逻辑,如更新订单状态等
|
||||
} catch (error) {
|
||||
console.error('支付失败', error);
|
||||
// 处理支付失败后的逻辑,如提示用户等
|
||||
}
|
||||
|
||||
},
|
||||
onTi(code){
|
||||
let params = {
|
||||
verificationCode:code,
|
||||
bindId:this.selectVal.id,
|
||||
amount:Number(this.money),
|
||||
accountType:this.curSelect == '0' ? 1 : 2
|
||||
}
|
||||
let _this = this;
|
||||
sendWithdraw(params).then(res=>{
|
||||
console.log('absc',res)
|
||||
if (res && res.bizcode == 100) {
|
||||
console.log('absc1111111111',res,this.curSelect)
|
||||
// data = resp.data || [];
|
||||
if(this.curSelect == '1'){
|
||||
|
||||
this.qing();
|
||||
if(res.data.alResponse.msg == 'Success'){
|
||||
uni.navigateTo({
|
||||
url:'/pages/rwa_package/account/success?money=' + params.amount
|
||||
})
|
||||
}else{
|
||||
setTimeout(()=>{
|
||||
_this.$refs.uToastRef.show({
|
||||
type: 'error',
|
||||
message: res.data.alResponse.subMsg,
|
||||
});
|
||||
},400)
|
||||
|
||||
}
|
||||
|
||||
}else{
|
||||
uni.requestMerchantTransfer({
|
||||
"mchId": "1725999656",
|
||||
"appId": "wx7a5902cd556d9396",
|
||||
"package": res.data.wxResponse.packageInfo,
|
||||
success: (res) => {
|
||||
this.qing();
|
||||
uni.navigateTo({
|
||||
url:'/pages/rwa_package/account/success?money=' + params.amount
|
||||
})
|
||||
|
||||
},
|
||||
fail: (res) => {
|
||||
_this.$refs.uToastRef.show({
|
||||
type: 'error',
|
||||
message: '提现失败',
|
||||
});
|
||||
},
|
||||
|
||||
})
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
})
|
||||
|
||||
},
|
||||
qing(){
|
||||
this.money = '';
|
||||
this.curSelect = '0';
|
||||
this.selectVal = null;
|
||||
this.onClose();
|
||||
}
|
||||
}
|
||||
}
|
||||
</script>
|
||||
|
||||
<style lang="scss" scoped>
|
||||
.bottom-btn{
|
||||
width: 100%;
|
||||
margin-bottom:92rpx;
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
align-items: center;
|
||||
padding: 0 32rpx;
|
||||
box-sizing: border-box;
|
||||
position: relative;
|
||||
|
||||
}
|
||||
.setting-view {
|
||||
width: 100%;
|
||||
height: calc(100% - 88rpx - 92rpx - 88rpx - var(--status-bar-height));
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
align-items: center;
|
||||
overflow-y: auto;
|
||||
padding: 0 32rpx;
|
||||
box-sizing: border-box;
|
||||
position: relative;
|
||||
.top-view{
|
||||
width:100%;
|
||||
margin-top:40rpx;
|
||||
height:188rpx;
|
||||
min-height:188rpx;
|
||||
display: flex;
|
||||
background:linear-gradient( 270deg, #B164FB 0%, #7934F6 100%);
|
||||
padding: 36rpx 32rpx;
|
||||
box-sizing: border-box;
|
||||
flex-direction: row;
|
||||
justify-content: space-between;
|
||||
align-items: center;
|
||||
border-radius: 16rpx;
|
||||
.top-left{
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
justify-content: space-between;
|
||||
height:108rpx;
|
||||
|
||||
|
||||
}
|
||||
.top-right{
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
justify-content: space-between;
|
||||
align-items: flex-end;
|
||||
height:108rpx;
|
||||
}
|
||||
}
|
||||
.zhu-view{
|
||||
width:100%;
|
||||
display: flex;
|
||||
margin-top:32rpx;
|
||||
flex-direction: row;
|
||||
justify-content: flex-start;
|
||||
align-items: flex-start;
|
||||
padding: 16rpx;
|
||||
box-sizing: border-box;
|
||||
background: rgba(121, 52, 246, 0.05);
|
||||
border-radius:8rpx ;
|
||||
}
|
||||
.mid-view{
|
||||
width:100%;
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
overflow-y: auto;
|
||||
box-sizing: border-box;
|
||||
background-color: #fff;
|
||||
border-radius: 16rpx;
|
||||
padding: 32rpx;
|
||||
padding-bottom:0 ;
|
||||
margin-top:24rpx;
|
||||
.item-view{
|
||||
width:100%;
|
||||
height:110rpx;
|
||||
min-height:110rpx;
|
||||
display: flex;
|
||||
flex-direction: row;
|
||||
position: relative;
|
||||
align-items: center;
|
||||
border-bottom: 2rpx solid #ececec;
|
||||
.right-icon-view{
|
||||
position: absolute;
|
||||
right:0;
|
||||
display: flex;
|
||||
|
||||
|
||||
}
|
||||
|
||||
image{
|
||||
width:48rpx;
|
||||
height:48rpx;
|
||||
}
|
||||
}
|
||||
.input-view{
|
||||
width:100%;
|
||||
height:100rpx;
|
||||
border-radius: 20rpx;
|
||||
margin:32rpx 0 ;
|
||||
display: flex;
|
||||
flex-direction: row;
|
||||
align-items: center;
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
</style>
|
||||
<template>
|
||||
<view class="content">
|
||||
<TopSafe bgColor="rgba(0,0,0,0)"></TopSafe>
|
||||
<Header :title="topText" bgColor="rgba(0,0,0,0)" />
|
||||
<view class="setting-view">
|
||||
<view class="top-view">
|
||||
<view class="top-left">
|
||||
<text class="text-bold text-52 text-white">
|
||||
{{amount}}
|
||||
</text>
|
||||
<text class="text-20 text-white" style="font-weight: 100;">可用余额</text>
|
||||
</view>
|
||||
<view class="top-right">
|
||||
<text class="text-bold text-36 text-white">
|
||||
{{noAmount}}
|
||||
</text>
|
||||
<text class="text-20 text-white" style="font-weight: 100;">不可用余额</text>
|
||||
</view>
|
||||
</view>
|
||||
<view class="mid-view">
|
||||
<text class="text-zu1 text-32">{{type == 0 ? '提现' : '充值'}}方式</text>
|
||||
|
||||
<view class="item-view" @click="onSelect('0')" v-if="!isWeb || type != 0">
|
||||
<image src="https://cex-pub.s3.ap-southeast-1.amazonaws.com/static/new/wx.png"></image>
|
||||
<text class="text-zu1 text-32 " style="margin-left:20rpx;">微信</text>
|
||||
<view class="right-icon-view" v-if="type == 1">
|
||||
<u-radio-group v-model="curSelect">
|
||||
<u-radio name="0" activeColor="#7934F6"></u-radio>
|
||||
</u-radio-group>
|
||||
</view>
|
||||
<view class="right-icon-view" v-else>
|
||||
<text class="text-32 text-zu1" style="margin-right:12rpx" v-if="selectVal && curSelect == '0'">{{selectVal.name + '/' + selectVal.account}}</text>
|
||||
<u-icon size="14" name="arrow-right" color="#333" ></u-icon>
|
||||
</view>
|
||||
</view>
|
||||
<view class="item-view" @click="onSelect('1')" style="border-width: 0;" >
|
||||
<image src="https://cex-pub.s3.ap-southeast-1.amazonaws.com/static/new/zfb.png"></image>
|
||||
<text class="text-zu1 text-32 " style="margin-left:20rpx;">支付宝</text>
|
||||
<view class="right-icon-view" v-if="type == 1">
|
||||
<u-radio-group v-model="curSelect">
|
||||
<u-radio name="1" activeColor="#7934F6"></u-radio>
|
||||
</u-radio-group>
|
||||
</view>
|
||||
<view class="right-icon-view" v-else>
|
||||
<text class="text-32 text-zu1" style="margin-right:12rpx" v-if="selectVal && curSelect == '1'">{{selectVal.name + '/' + selectVal.account}}</text>
|
||||
<u-icon size="14" name="arrow-right" color="#333" ></u-icon>
|
||||
</view>
|
||||
</view>
|
||||
</view>
|
||||
<view class="mid-view">
|
||||
<view class="flex-r-lr">
|
||||
<text class="text-zu1 text-32">{{type == 0 ? '提现' : '充值'}}金额</text>
|
||||
<text class="text-fu1 text-28" v-if="type == 0" style="font-weight:400">每日仅限提现1次</text>
|
||||
</view>
|
||||
|
||||
<view class="input-view">
|
||||
<text class="text-52 text-zu text-bold">¥</text>
|
||||
<input style="background: #fff;margin-top:10rpx;"
|
||||
:placeholder="type == 0 ? '请输入提现金额(0.3-2000)' : '输入充值金额'"
|
||||
placeholder-style="color:#999;font-weight:400"
|
||||
@input="onInput"
|
||||
border="0" v-model="money" :customStyle="inputCss"></input>
|
||||
</view>
|
||||
</view>
|
||||
<view class="zhu-view" v-if="selectVal">
|
||||
<u-icon size="12" style="margin-top:5rpx;margin-right:12rpx" name="error-circle" color="#7934F6"></u-icon>
|
||||
<text class="text-24 text-zi" style="font-weight: 400;">通过支付宝或微信提现时,将由支付宝/微信官方收取0.6%的费用,本平台不收取任何费用。</text>
|
||||
</view>
|
||||
|
||||
|
||||
</view>
|
||||
<view class="bottom-btn">
|
||||
<MyBtn :text="bottomText" @ok="onAdd"></MyBtn>
|
||||
</view>
|
||||
<SelectItem :itemData="dataList" @close="onClose" @ok="onOk" @add="onAddBack"
|
||||
:type="curSelect" :itemShow="selectShow"></SelectItem>
|
||||
<CodeItem @ti="onTi" @close="onClose" :codeShow="codeShow" :phone="userInfo ? userInfo.mobile :''"></CodeItem>
|
||||
<up-toast ref="uToastRef"></up-toast>
|
||||
</view>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
import { getWithdraw,sendWithdraw } from '@/api/common.js';
|
||||
import { getUserInfo,updateName,deleteAccount } from '@/api/auth.js';
|
||||
import Header from '@/components/common/header.vue';
|
||||
import { clear } from '@/utils/auth.js';
|
||||
import TopSafe from '@/components/common/top-safe.nvue'
|
||||
import MyBtn from '@/components/common/my-btn.vue'
|
||||
import func from '@/utils/func.js';
|
||||
import SelectItem from './components/select-item.vue'
|
||||
import CodeItem from './components/code-item.vue'
|
||||
import {uniPlatform} from '@/components/common/global.js'
|
||||
import { getRechargeSupportPay, recharge,getAcctBalance } from '@/api/finance.js';
|
||||
import { feedback } from '@/api/payment.js';
|
||||
import { appWxpayFun, zfbPayFun } from '@/utils/payUtils.js'
|
||||
|
||||
export default {
|
||||
components: { Header, TopSafe,MyBtn,SelectItem,CodeItem },
|
||||
data() {
|
||||
return {
|
||||
isWeb:false,
|
||||
topText:'',
|
||||
type:0,
|
||||
amount:'',
|
||||
money:'',
|
||||
noAmount:'',
|
||||
account:'',
|
||||
bottomText:'',
|
||||
curSelect:'0',
|
||||
selectShow:false,
|
||||
codeShow:false,
|
||||
name:'',
|
||||
inputCss: {
|
||||
"height": '80rpx',
|
||||
"background": "#F3F3F3FF",
|
||||
"border-radius": "30rpx",
|
||||
"border": "0rpx",
|
||||
"padding-left": "12rpx",
|
||||
},
|
||||
dataList:[
|
||||
|
||||
],
|
||||
selectVal:null,
|
||||
userInfo:null,
|
||||
};
|
||||
},
|
||||
onShow(){
|
||||
if(uniPlatform == 'web'){
|
||||
this.isWeb = true;
|
||||
}else{
|
||||
this.isWeb = false;
|
||||
}
|
||||
},
|
||||
onLoad(option) {
|
||||
if(option && option.type){
|
||||
this.type = Number(option.type);
|
||||
this.init();
|
||||
}
|
||||
},
|
||||
methods: {
|
||||
userinfo() {
|
||||
getUserInfo().then(res => {
|
||||
if (res.bizcode == 100) {
|
||||
this.userInfo = res.data;
|
||||
}
|
||||
})
|
||||
},
|
||||
onInput(e){
|
||||
this.$nextTick(() => {
|
||||
this.money = func.checkInputPrice(e.detail.value);
|
||||
})
|
||||
},
|
||||
onOk(val){
|
||||
this.selectVal = this.dataList.filter(i=>i.id == val)[0];
|
||||
this.onClose();
|
||||
},
|
||||
onAddBack(){
|
||||
this.onClose();
|
||||
uni.navigateTo({
|
||||
url:'/pages/rwa_package/account/index?id=' + this.curSelect
|
||||
})
|
||||
},
|
||||
onClose(){
|
||||
this.selectShow = false;
|
||||
this.codeShow = false;
|
||||
},
|
||||
getList(val){
|
||||
let params = {
|
||||
platform:this.curSelect == '0' ? 2 : 1
|
||||
}
|
||||
getWithdraw(params).then(res=>{
|
||||
if (res.bizcode === 100) {
|
||||
this.dataList = res.data;
|
||||
this.dataList.forEach(item=>{
|
||||
item.name = item.accountName;
|
||||
item.account = item.accountNumber;
|
||||
})
|
||||
this.selectShow = true;
|
||||
} else {
|
||||
this.$refs.uToastRef.show({
|
||||
type: 'error',
|
||||
message: res.msg,
|
||||
});
|
||||
return null;
|
||||
}
|
||||
})
|
||||
},
|
||||
onSelect(val){
|
||||
this.curSelect = val;
|
||||
if(this.type == 0){
|
||||
this.selectVal = null;
|
||||
this.getList();
|
||||
}
|
||||
},
|
||||
async getAcctBalance() {
|
||||
this.balanceLoading = true;
|
||||
const resp = await getAcctBalance();
|
||||
let data = [];
|
||||
if (resp && resp.bizcode === 100) {
|
||||
data = resp.data || [];
|
||||
data.forEach(item=>{
|
||||
if("balance" == item.categoty){
|
||||
this.noAmount = item.lockAmount;
|
||||
this.amount = item.curAmount;
|
||||
}
|
||||
})
|
||||
}
|
||||
this.balanceList = data;
|
||||
this.balanceLoading = false;
|
||||
},
|
||||
init() {
|
||||
if(this.type == 0 ){
|
||||
this.topText = '现金余额提现';
|
||||
this.bottomText = '提现';
|
||||
}else if(this.type == 1){
|
||||
this.topText = '现金余额充值';
|
||||
this.bottomText = '充值';
|
||||
}
|
||||
this.userinfo();
|
||||
this.getAcctBalance();
|
||||
},
|
||||
onAdd(){
|
||||
if(this.type == 0){
|
||||
if(!this.money){
|
||||
this.$refs.uToastRef.show({
|
||||
type: "error",
|
||||
message: "请输入金额",
|
||||
});
|
||||
return;
|
||||
}
|
||||
if(Number(this.money) < 0.3){
|
||||
this.$refs.uToastRef.show({
|
||||
type: "error",
|
||||
message: "提现金额不能低于0.3元",
|
||||
});
|
||||
return;
|
||||
}
|
||||
if(Number(this.money) > 2000){
|
||||
this.$refs.uToastRef.show({
|
||||
type: "error",
|
||||
message: "提现金额不能大于2000元",
|
||||
});
|
||||
return;
|
||||
}
|
||||
if(Number(this.money)> Number(this.amount)){
|
||||
this.$refs.uToastRef.show({
|
||||
type: "error",
|
||||
message: "输入金额大于可用余额",
|
||||
});
|
||||
return;
|
||||
}
|
||||
if(this.type == 0 && !this.selectVal){
|
||||
this.$refs.uToastRef.show({
|
||||
type: "error",
|
||||
message: "请选择提现方式",
|
||||
});
|
||||
return;
|
||||
}
|
||||
console.log('onAdd',this.curSelect)
|
||||
this.codeShow = true;
|
||||
}else{
|
||||
if(!this.money){
|
||||
this.$refs.uToastRef.show({
|
||||
type: "error",
|
||||
message: "请输入金额",
|
||||
});
|
||||
return;
|
||||
}
|
||||
let params = {
|
||||
amount:this.money,
|
||||
category:'balance',
|
||||
payway:this.curSelect == '0' ? 'wechat' : 'alipay'
|
||||
}
|
||||
recharge(params).then(result=>{
|
||||
if (result && result.bizcode === 100) {
|
||||
const item = result.data;
|
||||
if (item.wechat && Object.keys(item.wechat).length !== 0) {
|
||||
this.appWxpay(item.wechat, item.orderId, item.orderNum);
|
||||
} else if (item.alipay && Object.keys(item.alipay).length !== 0 && item.alipay) {
|
||||
this.zfbPay(item.alipay, item.orderId, item.orderNum);
|
||||
} else {
|
||||
this.$refs.uToastRef.show({
|
||||
type: 'error',
|
||||
message: "充值失败",
|
||||
});
|
||||
|
||||
}
|
||||
}
|
||||
})
|
||||
}
|
||||
|
||||
},
|
||||
async appWxpay(alipay, orderId, orderNum) {
|
||||
try {
|
||||
const result = await appWxpayFun(alipay, orderId, orderNum);
|
||||
console.log('支付成功', result);
|
||||
// 处理支付成功后的逻辑,如更新订单状态等
|
||||
} catch (error) {
|
||||
console.error('支付失败', error);
|
||||
// 处理支付失败后的逻辑,如提示用户等
|
||||
}
|
||||
},
|
||||
// 支付宝支付
|
||||
async zfbPay(alipay, orderId, orderNum) {
|
||||
try {
|
||||
const result = await zfbPayFun(alipay, orderId, orderNum);
|
||||
console.log('支付成功', result);
|
||||
// 处理支付成功后的逻辑,如更新订单状态等
|
||||
} catch (error) {
|
||||
console.error('支付失败', error);
|
||||
// 处理支付失败后的逻辑,如提示用户等
|
||||
}
|
||||
|
||||
},
|
||||
onTi(code){
|
||||
let params = {
|
||||
verificationCode:code,
|
||||
bindId:this.selectVal.id,
|
||||
amount:Number(this.money),
|
||||
accountType:this.curSelect == '0' ? 1 : 2
|
||||
}
|
||||
let _this = this;
|
||||
sendWithdraw(params).then(res=>{
|
||||
console.log('absc',res)
|
||||
if (res && res.bizcode == 100) {
|
||||
console.log('absc1111111111',res,this.curSelect)
|
||||
// data = resp.data || [];
|
||||
if(this.curSelect == '1'){
|
||||
|
||||
this.qing();
|
||||
if(res.data.alResponse.msg == 'Success'){
|
||||
uni.navigateTo({
|
||||
url:'/pages/rwa_package/account/success?money=' + params.amount
|
||||
})
|
||||
}else{
|
||||
setTimeout(()=>{
|
||||
_this.$refs.uToastRef.show({
|
||||
type: 'error',
|
||||
message: res.data.alResponse.subMsg,
|
||||
});
|
||||
},400)
|
||||
|
||||
}
|
||||
|
||||
}else{
|
||||
uni.requestMerchantTransfer({
|
||||
"mchId": "1725999656",
|
||||
"appId": "wx7a5902cd556d9396",
|
||||
"package": res.data.wxResponse.packageInfo,
|
||||
success: (res) => {
|
||||
this.qing();
|
||||
uni.navigateTo({
|
||||
url:'/pages/rwa_package/account/success?money=' + params.amount
|
||||
})
|
||||
|
||||
},
|
||||
fail: (res) => {
|
||||
_this.$refs.uToastRef.show({
|
||||
type: 'error',
|
||||
message: '提现失败',
|
||||
});
|
||||
},
|
||||
|
||||
})
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
})
|
||||
|
||||
},
|
||||
qing(){
|
||||
this.money = '';
|
||||
this.curSelect = '0';
|
||||
this.selectVal = null;
|
||||
this.onClose();
|
||||
}
|
||||
}
|
||||
}
|
||||
</script>
|
||||
|
||||
<style lang="scss" scoped>
|
||||
.bottom-btn{
|
||||
width: 100%;
|
||||
margin-bottom:92rpx;
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
align-items: center;
|
||||
padding: 0 32rpx;
|
||||
box-sizing: border-box;
|
||||
position: relative;
|
||||
|
||||
}
|
||||
.setting-view {
|
||||
width: 100%;
|
||||
height: calc(100% - 88rpx - 92rpx - 88rpx - var(--status-bar-height));
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
align-items: center;
|
||||
overflow-y: auto;
|
||||
padding: 0 32rpx;
|
||||
box-sizing: border-box;
|
||||
position: relative;
|
||||
.top-view{
|
||||
width:100%;
|
||||
margin-top:40rpx;
|
||||
height:188rpx;
|
||||
min-height:188rpx;
|
||||
display: flex;
|
||||
background:linear-gradient( 270deg, #B164FB 0%, #7934F6 100%);
|
||||
padding: 36rpx 32rpx;
|
||||
box-sizing: border-box;
|
||||
flex-direction: row;
|
||||
justify-content: space-between;
|
||||
align-items: center;
|
||||
border-radius: 16rpx;
|
||||
.top-left{
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
justify-content: space-between;
|
||||
height:108rpx;
|
||||
|
||||
|
||||
}
|
||||
.top-right{
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
justify-content: space-between;
|
||||
align-items: flex-end;
|
||||
height:108rpx;
|
||||
}
|
||||
}
|
||||
.zhu-view{
|
||||
width:100%;
|
||||
display: flex;
|
||||
margin-top:32rpx;
|
||||
flex-direction: row;
|
||||
justify-content: flex-start;
|
||||
align-items: flex-start;
|
||||
padding: 16rpx;
|
||||
box-sizing: border-box;
|
||||
background: rgba(121, 52, 246, 0.05);
|
||||
border-radius:8rpx ;
|
||||
}
|
||||
.mid-view{
|
||||
width:100%;
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
overflow-y: auto;
|
||||
box-sizing: border-box;
|
||||
background-color: #fff;
|
||||
border-radius: 16rpx;
|
||||
padding: 32rpx;
|
||||
padding-bottom:0 ;
|
||||
margin-top:24rpx;
|
||||
.item-view{
|
||||
width:100%;
|
||||
height:110rpx;
|
||||
min-height:110rpx;
|
||||
display: flex;
|
||||
flex-direction: row;
|
||||
position: relative;
|
||||
align-items: center;
|
||||
border-bottom: 2rpx solid #ececec;
|
||||
.right-icon-view{
|
||||
position: absolute;
|
||||
right:0;
|
||||
display: flex;
|
||||
|
||||
|
||||
}
|
||||
|
||||
image{
|
||||
width:48rpx;
|
||||
height:48rpx;
|
||||
}
|
||||
}
|
||||
.input-view{
|
||||
width:100%;
|
||||
height:100rpx;
|
||||
border-radius: 20rpx;
|
||||
margin:32rpx 0 ;
|
||||
display: flex;
|
||||
flex-direction: row;
|
||||
align-items: center;
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
</style>
|
||||
|
||||
@@ -1,226 +1,226 @@
|
||||
<template>
|
||||
<view class="content">
|
||||
<TopSafe></TopSafe>
|
||||
<Header title="查看合同" />
|
||||
<view class="contract-view">
|
||||
<view class="top-info flex-r-lr">
|
||||
<image src="https://cex-pub.s3.ap-southeast-1.amazonaws.com/static/new/he.png"></image>
|
||||
<view class="right-view">
|
||||
<text class="text-36 text-zu">{{ obj.contractName }}</text>
|
||||
<view class="bottom-panel">
|
||||
<view class="flex-r-lr mt-24" v-for="(item, index) in dataList" :key="dataList.value">
|
||||
<text class="text-fu text-24">{{ item.text }}</text>
|
||||
<view class="list-right">
|
||||
<text class="text-24" :class="{ 'text-lu': index == 0, 'text-zu': index != 0 }">{{ item.value }}</text>
|
||||
</view>
|
||||
</view>
|
||||
</view>
|
||||
</view>
|
||||
</view>
|
||||
<text class="text-zu text-32 mt-32" style="margin-left:38rpx">合同签约人信息</text>
|
||||
<view class="bottom">
|
||||
<view class="bottom-lsit" v-for="(item, index) in bottomList" :key="item.value">
|
||||
<text class="text-24 text-fu" style="min-width:184rpx;display: inline-block;">{{ item.text }}</text>
|
||||
<text class="text-24 text-zu">{{ item.value }}</text>
|
||||
</view>
|
||||
</view>
|
||||
<view class="bottom-btn">
|
||||
|
||||
<view class="right-btn flex-c" @click="onOpen">
|
||||
<text class="text-white text-32">下载合同</text>
|
||||
</view>
|
||||
</view>
|
||||
</view>
|
||||
<up-toast ref="uToastRef"></up-toast>
|
||||
</view>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
import { getUserInfo } from '@/api/auth.js';
|
||||
import Header from '@/components/common/header.vue';
|
||||
import TopSafe from '@/components/common/top-safe.nvue'
|
||||
import ContractItem from './components/contract-item.vue'
|
||||
import { getContractList, fileUrls } from '@/api/contract.js'
|
||||
import func from '@/utils/func.js';
|
||||
|
||||
export default {
|
||||
components: { Header, TopSafe, ContractItem },
|
||||
data() {
|
||||
return {
|
||||
dataList: [
|
||||
{ text: '合同状态', value: '签约完成' },
|
||||
{ text: '合同编号', value: '' },
|
||||
{ text: '发起方', value: '信任桥(深圳)网络科技有限公司' },
|
||||
{ text: '发起时间', value: '' },
|
||||
{ text: '完成时间', value: '' },
|
||||
],
|
||||
bottomList: [
|
||||
{ text: '签约人', value: '信任桥会员 章三' },
|
||||
{ text: '状态', value: '已签署' },
|
||||
{ text: '时间', value: '2025-08-11 12:00:00' },
|
||||
],
|
||||
obj: null,
|
||||
url: ''
|
||||
};
|
||||
},
|
||||
onLoad(option) {
|
||||
this.init();
|
||||
},
|
||||
methods: {
|
||||
init() {
|
||||
this.isSignContract()
|
||||
},
|
||||
getfileUrls() {
|
||||
let params = {
|
||||
businessType: 'FLOW',
|
||||
businessIds: [this.obj.flowId]
|
||||
}
|
||||
fileUrls(params).then(res => {
|
||||
if (res.bizcode == 100) {
|
||||
this.url = res.data.fileUrls[0].url;
|
||||
} else {
|
||||
this.$refs.uToastRef.show({
|
||||
type: 'error',
|
||||
message: res.msg,
|
||||
});
|
||||
}
|
||||
})
|
||||
},
|
||||
isSignContract() {
|
||||
|
||||
getContractList().then(res => {
|
||||
if (res.bizcode == 100) {
|
||||
this.obj = JSON.parse(JSON.stringify(res.data[0]));
|
||||
this.obj.time = func.formatDate(new Date(res.data[0].signatureTime), 2);
|
||||
this.obj.details.startTime = func.formatDate(new Date(res.data[0].details.startTime), 2);
|
||||
this.obj.details.endTime = func.formatDate(new Date(res.data[0].details.endTime), 2);
|
||||
// this.dataList[2].value = this.obj.flowId;
|
||||
|
||||
this.dataList[0].value = this.obj.state ? '已签署' : '未签署';
|
||||
this.dataList[1].value = this.obj.flowId;
|
||||
this.dataList[3].value = this.obj.details.startTime;
|
||||
this.dataList[4].value = this.obj.details.endTime;
|
||||
this.bottomList[0].value = this.obj.signatureName;
|
||||
this.bottomList[1].value = this.obj.state ? '已签署' : '未签署';
|
||||
this.bottomList[2].value = this.obj.time;
|
||||
this.getfileUrls();
|
||||
} else {
|
||||
this.$refs.uToastRef.show({
|
||||
type: 'error',
|
||||
message: res.msg,
|
||||
});
|
||||
}
|
||||
})
|
||||
},
|
||||
onOpen() {
|
||||
// #ifdef APP-PLUS
|
||||
uni.downloadFile({
|
||||
url: this.url,
|
||||
success: (res) => {
|
||||
if (res.statusCode === 200) {
|
||||
uni.saveFile({
|
||||
tempFilePath: res.tempFilePath,
|
||||
success: (res) => {
|
||||
uni.openDocument({
|
||||
filePath: res.savedFilePath,
|
||||
success: (res) => {
|
||||
console.log('打开文档成功')
|
||||
}
|
||||
})
|
||||
}
|
||||
})
|
||||
}
|
||||
}
|
||||
})
|
||||
// #endif
|
||||
// #ifdef H5
|
||||
window.open(this.url, '_blank')
|
||||
// #endif
|
||||
},
|
||||
|
||||
}
|
||||
}
|
||||
</script>
|
||||
|
||||
<style lang="scss" scoped>
|
||||
.contract-view {
|
||||
width: 100%;
|
||||
height: calc(100% - 88rpx - var(--status-bar-height));
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
overflow-y: auto;
|
||||
// padding: 0 32rpx;
|
||||
box-sizing: border-box;
|
||||
position: relative;
|
||||
|
||||
.bottom-btn {
|
||||
width: 100%;
|
||||
display: flex;
|
||||
position: absolute;
|
||||
bottom: 80rpx;
|
||||
flex-direction: row;
|
||||
justify-content: center;
|
||||
|
||||
.left-btn {
|
||||
width: 48%;
|
||||
background: #E4D6FD;
|
||||
border-radius: 8rpx;
|
||||
}
|
||||
|
||||
.right-btn {
|
||||
width: calc(100% - 60rpx);
|
||||
height: 88rpx;
|
||||
background: linear-gradient(270deg, #B164FB 0%, #7934F6 100%);
|
||||
border-radius: 8rpx;
|
||||
}
|
||||
}
|
||||
|
||||
.bottom {
|
||||
display: flex;
|
||||
padding: 40rpx 46rpx;
|
||||
box-sizing: border-box;
|
||||
flex-direction: column;
|
||||
justify-content: space-between;
|
||||
margin-top: 24rpx;
|
||||
background-color: #fff;
|
||||
width: 100%;
|
||||
min-height: 216rpx;
|
||||
}
|
||||
|
||||
.top-info {
|
||||
width: 100%;
|
||||
min-height: 440rpx;
|
||||
padding: 68rpx 32rpx 64rpx;
|
||||
box-sizing: border-box;
|
||||
background-color: #fff;
|
||||
|
||||
.right-view {
|
||||
height: 100%;
|
||||
flex: 1;
|
||||
flex-direction: column;
|
||||
display: flex;
|
||||
margin-left: 46rpx;
|
||||
|
||||
.bottom-panel {
|
||||
width: 100%;
|
||||
flex: 1;
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
|
||||
.list-right {
|
||||
width: 255rpx;
|
||||
margin-left: 25rpx;
|
||||
word-break: break-all;
|
||||
display: flex;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
image {
|
||||
width: 200rpx;
|
||||
height: 260rpx;
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
</style>
|
||||
<template>
|
||||
<view class="content">
|
||||
<TopSafe></TopSafe>
|
||||
<Header title="查看合同" />
|
||||
<view class="contract-view">
|
||||
<view class="top-info flex-r-lr">
|
||||
<image src="https://cex-pub.s3.ap-southeast-1.amazonaws.com/static/new/he.png"></image>
|
||||
<view class="right-view">
|
||||
<text class="text-36 text-zu">{{ obj.contractName }}</text>
|
||||
<view class="bottom-panel">
|
||||
<view class="flex-r-lr mt-24" v-for="(item, index) in dataList" :key="dataList.value">
|
||||
<text class="text-fu text-24">{{ item.text }}</text>
|
||||
<view class="list-right">
|
||||
<text class="text-24" :class="{ 'text-lu': index == 0, 'text-zu': index != 0 }">{{ item.value }}</text>
|
||||
</view>
|
||||
</view>
|
||||
</view>
|
||||
</view>
|
||||
</view>
|
||||
<text class="text-zu text-32 mt-32" style="margin-left:38rpx">合同签约人信息</text>
|
||||
<view class="bottom">
|
||||
<view class="bottom-lsit" v-for="(item, index) in bottomList" :key="item.value">
|
||||
<text class="text-24 text-fu" style="min-width:184rpx;display: inline-block;">{{ item.text }}</text>
|
||||
<text class="text-24 text-zu">{{ item.value }}</text>
|
||||
</view>
|
||||
</view>
|
||||
<view class="bottom-btn">
|
||||
|
||||
<view class="right-btn flex-c" @click="onOpen">
|
||||
<text class="text-white text-32">下载合同</text>
|
||||
</view>
|
||||
</view>
|
||||
</view>
|
||||
<up-toast ref="uToastRef"></up-toast>
|
||||
</view>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
import { getUserInfo } from '@/api/auth.js';
|
||||
import Header from '@/components/common/header.vue';
|
||||
import TopSafe from '@/components/common/top-safe.nvue'
|
||||
import ContractItem from './components/contract-item.vue'
|
||||
import { getContractList, fileUrls } from '@/api/contract.js'
|
||||
import func from '@/utils/func.js';
|
||||
|
||||
export default {
|
||||
components: { Header, TopSafe, ContractItem },
|
||||
data() {
|
||||
return {
|
||||
dataList: [
|
||||
{ text: '合同状态', value: '签约完成' },
|
||||
{ text: '合同编号', value: '' },
|
||||
{ text: '发起方', value: '信任桥(深圳)网络科技有限公司' },
|
||||
{ text: '发起时间', value: '' },
|
||||
{ text: '完成时间', value: '' },
|
||||
],
|
||||
bottomList: [
|
||||
{ text: '签约人', value: '信任桥会员 章三' },
|
||||
{ text: '状态', value: '已签署' },
|
||||
{ text: '时间', value: '2025-08-11 12:00:00' },
|
||||
],
|
||||
obj: null,
|
||||
url: ''
|
||||
};
|
||||
},
|
||||
onLoad(option) {
|
||||
this.init();
|
||||
},
|
||||
methods: {
|
||||
init() {
|
||||
this.isSignContract()
|
||||
},
|
||||
getfileUrls() {
|
||||
let params = {
|
||||
businessType: 'FLOW',
|
||||
businessIds: [this.obj.flowId]
|
||||
}
|
||||
fileUrls(params).then(res => {
|
||||
if (res.bizcode == 100) {
|
||||
this.url = res.data.fileUrls[0].url;
|
||||
} else {
|
||||
this.$refs.uToastRef.show({
|
||||
type: 'error',
|
||||
message: res.msg,
|
||||
});
|
||||
}
|
||||
})
|
||||
},
|
||||
isSignContract() {
|
||||
|
||||
getContractList().then(res => {
|
||||
if (res.bizcode == 100) {
|
||||
this.obj = JSON.parse(JSON.stringify(res.data[0]));
|
||||
this.obj.time = func.formatDate(new Date(res.data[0].signatureTime), 2);
|
||||
this.obj.details.startTime = func.formatDate(new Date(res.data[0].details.startTime), 2);
|
||||
this.obj.details.endTime = func.formatDate(new Date(res.data[0].details.endTime), 2);
|
||||
// this.dataList[2].value = this.obj.flowId;
|
||||
|
||||
this.dataList[0].value = this.obj.state ? '已签署' : '未签署';
|
||||
this.dataList[1].value = this.obj.flowId;
|
||||
this.dataList[3].value = this.obj.details.startTime;
|
||||
this.dataList[4].value = this.obj.details.endTime;
|
||||
this.bottomList[0].value = this.obj.signatureName;
|
||||
this.bottomList[1].value = this.obj.state ? '已签署' : '未签署';
|
||||
this.bottomList[2].value = this.obj.time;
|
||||
this.getfileUrls();
|
||||
} else {
|
||||
this.$refs.uToastRef.show({
|
||||
type: 'error',
|
||||
message: res.msg,
|
||||
});
|
||||
}
|
||||
})
|
||||
},
|
||||
onOpen() {
|
||||
// #ifdef APP-PLUS
|
||||
uni.downloadFile({
|
||||
url: this.url,
|
||||
success: (res) => {
|
||||
if (res.statusCode === 200) {
|
||||
uni.saveFile({
|
||||
tempFilePath: res.tempFilePath,
|
||||
success: (res) => {
|
||||
uni.openDocument({
|
||||
filePath: res.savedFilePath,
|
||||
success: (res) => {
|
||||
console.log('打开文档成功')
|
||||
}
|
||||
})
|
||||
}
|
||||
})
|
||||
}
|
||||
}
|
||||
})
|
||||
// #endif
|
||||
// #ifdef H5
|
||||
window.open(this.url, '_blank')
|
||||
// #endif
|
||||
},
|
||||
|
||||
}
|
||||
}
|
||||
</script>
|
||||
|
||||
<style lang="scss" scoped>
|
||||
.contract-view {
|
||||
width: 100%;
|
||||
height: calc(100% - 88rpx - var(--status-bar-height));
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
overflow-y: auto;
|
||||
// padding: 0 32rpx;
|
||||
box-sizing: border-box;
|
||||
position: relative;
|
||||
|
||||
.bottom-btn {
|
||||
width: 100%;
|
||||
display: flex;
|
||||
position: absolute;
|
||||
bottom: 80rpx;
|
||||
flex-direction: row;
|
||||
justify-content: center;
|
||||
|
||||
.left-btn {
|
||||
width: 48%;
|
||||
background: #E4D6FD;
|
||||
border-radius: 8rpx;
|
||||
}
|
||||
|
||||
.right-btn {
|
||||
width: calc(100% - 60rpx);
|
||||
height: 88rpx;
|
||||
background: linear-gradient(270deg, #B164FB 0%, #7934F6 100%);
|
||||
border-radius: 8rpx;
|
||||
}
|
||||
}
|
||||
|
||||
.bottom {
|
||||
display: flex;
|
||||
padding: 40rpx 46rpx;
|
||||
box-sizing: border-box;
|
||||
flex-direction: column;
|
||||
justify-content: space-between;
|
||||
margin-top: 24rpx;
|
||||
background-color: #fff;
|
||||
width: 100%;
|
||||
min-height: 216rpx;
|
||||
}
|
||||
|
||||
.top-info {
|
||||
width: 100%;
|
||||
min-height: 440rpx;
|
||||
padding: 68rpx 32rpx 64rpx;
|
||||
box-sizing: border-box;
|
||||
background-color: #fff;
|
||||
|
||||
.right-view {
|
||||
height: 100%;
|
||||
flex: 1;
|
||||
flex-direction: column;
|
||||
display: flex;
|
||||
margin-left: 46rpx;
|
||||
|
||||
.bottom-panel {
|
||||
width: 100%;
|
||||
flex: 1;
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
|
||||
.list-right {
|
||||
width: 255rpx;
|
||||
margin-left: 25rpx;
|
||||
word-break: break-all;
|
||||
display: flex;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
image {
|
||||
width: 200rpx;
|
||||
height: 260rpx;
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
</style>
|
||||
|
||||
@@ -1,89 +1,89 @@
|
||||
<template>
|
||||
<view class="contract-item-view" >
|
||||
<view class="item-top-view flex-r-lr">
|
||||
<text class="text-fu text-24">发起方:信任桥(深圳)网络科技有限公司</text>
|
||||
<view class="right-box flex-c" :style="{
|
||||
background:type?'rgba(0,167,118,0.1)':'rgba(102,102,102,0.1)'
|
||||
}">
|
||||
<text class="text-20 text-fu"
|
||||
:class="{'text-lu':type}">{{type ? '已签署' : '未签署'}}</text>
|
||||
</view>
|
||||
</view>
|
||||
<text class="text-36 text-zu mt-32">消费型合伙人协议</text>
|
||||
<view class="flex-r-lr mt-48">
|
||||
<text class="text-fu text-24" >{{text}}</text>
|
||||
<text class="text-20 text-fu" >{{time}}</text>
|
||||
</view>
|
||||
<view class="flex-r-e mt-32">
|
||||
<view class="item-btn-view flex-c" @click="onBtn" :class="{'b-w':type,'b-g':!type}">
|
||||
<text class="text-28" :class="{'text-white':!type,'text-zi':type}">{{type ? '查看' : '去签署'}}</text>
|
||||
</view>
|
||||
</view>
|
||||
</view>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
|
||||
export default {
|
||||
props:{
|
||||
type:{
|
||||
type:Boolean,
|
||||
default:false
|
||||
},
|
||||
text:{
|
||||
type:String,
|
||||
default:''
|
||||
},
|
||||
time:{
|
||||
type:String,
|
||||
default:''
|
||||
}
|
||||
|
||||
|
||||
},
|
||||
mounted(){
|
||||
},
|
||||
methods: {
|
||||
onBtn(){
|
||||
this.$emit('click');
|
||||
}
|
||||
}
|
||||
}
|
||||
</script>
|
||||
|
||||
<style lang="scss" scoped>
|
||||
.b-w{
|
||||
border-width: 1rpx !important;
|
||||
}
|
||||
.b-g{
|
||||
background:linear-gradient( 270deg, #B164FB 0%, #7934F6 100%);
|
||||
}
|
||||
.contract-item-view{
|
||||
width:100%;
|
||||
min-height:304rpx;
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
padding: 24rpx;
|
||||
box-sizing: border-box;
|
||||
background-color: #fff;
|
||||
border-radius: 24rpx;
|
||||
.item-btn-view{
|
||||
padding: 0 38rpx;
|
||||
min-height:52rpx;
|
||||
box-sizing: border-box;
|
||||
border-radius: 26rpx;
|
||||
border:0 solid #7934F6;
|
||||
}
|
||||
.item-top-view{
|
||||
height:40rpx;
|
||||
min-height:40rpx;
|
||||
.right-box{
|
||||
padding: 0 16rpx;
|
||||
box-sizing: border-box;
|
||||
border-radius: 8rpx;
|
||||
background: rgba(102,102,102,0.1);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
</style>
|
||||
<template>
|
||||
<view class="contract-item-view" >
|
||||
<view class="item-top-view flex-r-lr">
|
||||
<text class="text-fu text-24">发起方:信任桥(深圳)网络科技有限公司</text>
|
||||
<view class="right-box flex-c" :style="{
|
||||
background:type?'rgba(0,167,118,0.1)':'rgba(102,102,102,0.1)'
|
||||
}">
|
||||
<text class="text-20 text-fu"
|
||||
:class="{'text-lu':type}">{{type ? '已签署' : '未签署'}}</text>
|
||||
</view>
|
||||
</view>
|
||||
<text class="text-36 text-zu mt-32">消费型合伙人协议</text>
|
||||
<view class="flex-r-lr mt-48">
|
||||
<text class="text-fu text-24" >{{text}}</text>
|
||||
<text class="text-20 text-fu" >{{time}}</text>
|
||||
</view>
|
||||
<view class="flex-r-e mt-32">
|
||||
<view class="item-btn-view flex-c" @click="onBtn" :class="{'b-w':type,'b-g':!type}">
|
||||
<text class="text-28" :class="{'text-white':!type,'text-zi':type}">{{type ? '查看' : '去签署'}}</text>
|
||||
</view>
|
||||
</view>
|
||||
</view>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
|
||||
export default {
|
||||
props:{
|
||||
type:{
|
||||
type:Boolean,
|
||||
default:false
|
||||
},
|
||||
text:{
|
||||
type:String,
|
||||
default:''
|
||||
},
|
||||
time:{
|
||||
type:String,
|
||||
default:''
|
||||
}
|
||||
|
||||
|
||||
},
|
||||
mounted(){
|
||||
},
|
||||
methods: {
|
||||
onBtn(){
|
||||
this.$emit('click');
|
||||
}
|
||||
}
|
||||
}
|
||||
</script>
|
||||
|
||||
<style lang="scss" scoped>
|
||||
.b-w{
|
||||
border-width: 1rpx !important;
|
||||
}
|
||||
.b-g{
|
||||
background:linear-gradient( 270deg, #B164FB 0%, #7934F6 100%);
|
||||
}
|
||||
.contract-item-view{
|
||||
width:100%;
|
||||
min-height:304rpx;
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
padding: 24rpx;
|
||||
box-sizing: border-box;
|
||||
background-color: #fff;
|
||||
border-radius: 24rpx;
|
||||
.item-btn-view{
|
||||
padding: 0 38rpx;
|
||||
min-height:52rpx;
|
||||
box-sizing: border-box;
|
||||
border-radius: 26rpx;
|
||||
border:0 solid #7934F6;
|
||||
}
|
||||
.item-top-view{
|
||||
height:40rpx;
|
||||
min-height:40rpx;
|
||||
.right-box{
|
||||
padding: 0 16rpx;
|
||||
box-sizing: border-box;
|
||||
border-radius: 8rpx;
|
||||
background: rgba(102,102,102,0.1);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
</style>
|
||||
|
||||
@@ -1,66 +1,66 @@
|
||||
<template>
|
||||
<view class="shop-item-view" @click="onJump">
|
||||
<view class="top-img-view flex-r-lr">
|
||||
<image :src="obj.url"></image>
|
||||
</view>
|
||||
<view class="bottom-shop-view">
|
||||
<text class="text-28 text-zu text-overflow1">{{obj.title}}</text>
|
||||
<text class="text-28" style="color:#FF4242">
|
||||
¥{{obj.price}}
|
||||
<text class="text-24 text-fu text-d" style="margin-left:12rpx">
|
||||
¥{{obj.adPrice}}
|
||||
</text>
|
||||
</text>
|
||||
</view>
|
||||
</view>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
|
||||
export default {
|
||||
props:{
|
||||
obj:{
|
||||
type:Object,
|
||||
default:null
|
||||
},
|
||||
},
|
||||
mounted(){
|
||||
},
|
||||
methods: {
|
||||
onJump(){
|
||||
this.$emit('click');
|
||||
}
|
||||
}
|
||||
}
|
||||
</script>
|
||||
|
||||
<style lang="scss" scoped>
|
||||
.shop-item-view{
|
||||
width:332rpx;
|
||||
height:498rpx;
|
||||
min-height:498rpx;
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
border-radius: 24rpx;
|
||||
overflow: hidden;
|
||||
background-color: #fff;
|
||||
.bottom-shop-view{
|
||||
width:100%;
|
||||
padding: 16rpx 24rpx 0;
|
||||
box-sizing: border-box;
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
}
|
||||
.top-img-view{
|
||||
width:332rpx;
|
||||
height:332rpx;
|
||||
min-height:332rpx;
|
||||
image{
|
||||
width:100%;
|
||||
height:100%;
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
</style>
|
||||
<template>
|
||||
<view class="shop-item-view" @click="onJump">
|
||||
<view class="top-img-view flex-r-lr">
|
||||
<image :src="obj.url"></image>
|
||||
</view>
|
||||
<view class="bottom-shop-view">
|
||||
<text class="text-28 text-zu text-overflow1">{{obj.title}}</text>
|
||||
<text class="text-28" style="color:#FF4242">
|
||||
¥{{obj.price}}
|
||||
<text class="text-24 text-fu text-d" style="margin-left:12rpx">
|
||||
¥{{obj.adPrice}}
|
||||
</text>
|
||||
</text>
|
||||
</view>
|
||||
</view>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
|
||||
export default {
|
||||
props:{
|
||||
obj:{
|
||||
type:Object,
|
||||
default:null
|
||||
},
|
||||
},
|
||||
mounted(){
|
||||
},
|
||||
methods: {
|
||||
onJump(){
|
||||
this.$emit('click');
|
||||
}
|
||||
}
|
||||
}
|
||||
</script>
|
||||
|
||||
<style lang="scss" scoped>
|
||||
.shop-item-view{
|
||||
width:332rpx;
|
||||
height:498rpx;
|
||||
min-height:498rpx;
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
border-radius: 24rpx;
|
||||
overflow: hidden;
|
||||
background-color: #fff;
|
||||
.bottom-shop-view{
|
||||
width:100%;
|
||||
padding: 16rpx 24rpx 0;
|
||||
box-sizing: border-box;
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
}
|
||||
.top-img-view{
|
||||
width:332rpx;
|
||||
height:332rpx;
|
||||
min-height:332rpx;
|
||||
image{
|
||||
width:100%;
|
||||
height:100%;
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
</style>
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
@@ -1,215 +1,215 @@
|
||||
<template>
|
||||
<view class="content">
|
||||
<TopSafe></TopSafe>
|
||||
<Header title="我的合同" />
|
||||
<view class="contract-view">
|
||||
<ContractItem :type="type" :text="obj && obj.signatureName" :time="obj && obj.time" class="mt-24" @click="onBtn">
|
||||
</ContractItem>
|
||||
</view>
|
||||
<u-modal :show="tipsShow" :showCancelButton="true" confirmText="去认证" @cancel="onTipsCancel" @confirm="onConfirm"
|
||||
confirmColor="#7934F6" title="提示" content='签署合同需要进行实名认证,请先完成实名认证'></u-modal>
|
||||
<DownPopup :show="downShow" @ok="onSignContract" @cancel="onCancel" />
|
||||
<up-toast ref="uToastRef"></up-toast>
|
||||
<!-- 腾讯电子签H5 → 集成到UniApp -->
|
||||
<web-view v-if="signUrl" :src="signUrl" @message="handleMessage"></web-view>
|
||||
</view>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
import { getUserInfo } from '@/api/auth.js';
|
||||
import Header from '@/components/common/header.vue';
|
||||
import TopSafe from '@/components/common/top-safe.nvue'
|
||||
import ContractItem from './components/contract-item.vue'
|
||||
import DownPopup from '@/components/common/down-popup.vue';
|
||||
import { getContractList, isSignContract, } from '@/api/contract.js'
|
||||
import { getSignUrl, getMiniProgramSignUrl, signContract } from '@/api/order.js';
|
||||
import func from '@/utils/func.js';
|
||||
|
||||
export default {
|
||||
components: { Header, TopSafe, ContractItem, DownPopup },
|
||||
data() {
|
||||
return {
|
||||
type: false,
|
||||
obj: null,
|
||||
flowId: null,
|
||||
signUrl: null,
|
||||
downShow: false,
|
||||
tipsShow: false,
|
||||
userInfo: null
|
||||
};
|
||||
},
|
||||
onShow() {
|
||||
},
|
||||
onLoad() {
|
||||
this.init();
|
||||
this.userinfo();
|
||||
},
|
||||
methods: {
|
||||
init() {
|
||||
this.isSignContract()
|
||||
|
||||
},
|
||||
userinfo() {
|
||||
getUserInfo().then(res => {
|
||||
if (res.bizcode == 100) {
|
||||
this.userInfo = res.data;
|
||||
}
|
||||
console.log('res', res)
|
||||
})
|
||||
},
|
||||
onConfirm() {
|
||||
this.onTipsCancel();
|
||||
uni.navigateTo({
|
||||
url: '/pages/mine_package/mine_authentication/mine_authentication'
|
||||
})
|
||||
},
|
||||
onTipsCancel() {
|
||||
this.tipsShow = false;
|
||||
},
|
||||
onCancel() {
|
||||
this.downShow = false;
|
||||
},
|
||||
isSignContract() {
|
||||
isSignContract().then(res => {
|
||||
if (res.bizcode == 100) {
|
||||
this.type = res.data;
|
||||
if (this.type) {
|
||||
this.getSignContract()
|
||||
}
|
||||
} else {
|
||||
this.$refs.uToastRef.show({
|
||||
type: 'error',
|
||||
message: res.msg,
|
||||
});
|
||||
}
|
||||
})
|
||||
},
|
||||
getSignContract() {
|
||||
getContractList().then(res => {
|
||||
if (res.bizcode == 100 && res.data.length) {
|
||||
this.obj = res.data[0];
|
||||
this.obj.time = func.formatDate(new Date(res.data[0].signatureTime), 3)
|
||||
} else {
|
||||
this.$refs.uToastRef.show({
|
||||
type: 'error',
|
||||
message: res.msg,
|
||||
});
|
||||
}
|
||||
})
|
||||
},
|
||||
onBtn() {
|
||||
if (this.type) {
|
||||
//查看
|
||||
uni.navigateTo({
|
||||
url: `/pages/rwa_package/dongjian/check`
|
||||
})
|
||||
} else {
|
||||
//去签署
|
||||
this.downShow = true;
|
||||
}
|
||||
},
|
||||
// 发起合同签章
|
||||
async onSignContract() {
|
||||
if (this.userInfo.certStatus == 0) {
|
||||
this.downShow = false;
|
||||
this.tipsShow = true;
|
||||
return;
|
||||
} else if (this.userInfo.certStatus == 1) {
|
||||
this.downShow = false;
|
||||
this.$refs.uToastRef.show({
|
||||
type: 'success',
|
||||
message: '请耐心等待审核通过',
|
||||
});
|
||||
return;
|
||||
}
|
||||
|
||||
const { bizcode, data } = await signContract();
|
||||
if (bizcode === 100) {
|
||||
this.flowId = data.flowId;
|
||||
|
||||
if (this.flowId)
|
||||
// #ifdef APP-PLUS || WEB
|
||||
this.onGetSignUrl(this.flowId);
|
||||
// #endif
|
||||
|
||||
// #ifdef MP-WEIXIN
|
||||
// 小程序
|
||||
this.onGetMiniProgramSignUrl(this.flowId)
|
||||
// #endif
|
||||
}
|
||||
},
|
||||
|
||||
// 获取H5签署链接
|
||||
async onGetSignUrl(flowId) {
|
||||
const params = {
|
||||
// 需要的参数
|
||||
flowId: flowId,
|
||||
}
|
||||
const { bizcode, data } = await getSignUrl(params);
|
||||
if (bizcode === 100) {
|
||||
this.downShow = false;
|
||||
this.signUrl = data.flowApproverUrlInfos[0].longUrl;
|
||||
} else {
|
||||
this.$refs.uToastRef.show({
|
||||
type: 'error',
|
||||
message: "获取签署链接失败,请稍后再试",
|
||||
});
|
||||
return null;
|
||||
}
|
||||
},
|
||||
// 获取跳转至腾讯电子签小程序的签署链接
|
||||
async onGetMiniProgramSignUrl(flowId) {
|
||||
const params = {
|
||||
flowId: flowId,
|
||||
endPoint: 'HTTP_SHORT_URL'
|
||||
}
|
||||
const { bizcode, data } = await getMiniProgramSignUrl(params);
|
||||
if (bizcode === 100) {
|
||||
console.log("跳转至腾讯电子签小程序的签署链接", data);
|
||||
this.openTencentESign(data.schemeUrl);
|
||||
} else {
|
||||
this.$refs.uToastRef.show({
|
||||
type: 'error',
|
||||
message: "获取签署链接失败,请稍后再试",
|
||||
});
|
||||
return null;
|
||||
}
|
||||
},
|
||||
|
||||
// 电子签的回调地址
|
||||
handleMessage(e) {
|
||||
const data = e.detail;
|
||||
console.log('电子签的回调地址', e);
|
||||
},
|
||||
// 小程序签名
|
||||
openTencentESign(signPath) {
|
||||
// 这个链接需要后端调用腾讯电子签 API 获取
|
||||
uni.navigateToMiniProgram({
|
||||
appId: 'wxa023b292fd19d41d', // 腾讯电子签官方小程序的 appId
|
||||
path: signPath, // 跳转到的页面路径 + 参数
|
||||
extraData: {}, // 如果需要传额外参数
|
||||
envVersion: 'release', // 小程序版本 release / trial / develop
|
||||
success(res) {
|
||||
console.log('跳转成功', res)
|
||||
},
|
||||
fail(err) {
|
||||
console.error('跳转失败', err)
|
||||
}
|
||||
})
|
||||
}
|
||||
}
|
||||
}
|
||||
</script>
|
||||
|
||||
<style lang="scss" scoped>
|
||||
.contract-view {
|
||||
width: 100%;
|
||||
height: calc(100% - 88rpx - var(--status-bar-height));
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
align-items: center;
|
||||
overflow-y: auto;
|
||||
padding: 0 32rpx;
|
||||
box-sizing: border-box;
|
||||
}
|
||||
</style>
|
||||
<template>
|
||||
<view class="content">
|
||||
<TopSafe></TopSafe>
|
||||
<Header title="我的合同" />
|
||||
<view class="contract-view">
|
||||
<ContractItem :type="type" :text="obj && obj.signatureName" :time="obj && obj.time" class="mt-24" @click="onBtn">
|
||||
</ContractItem>
|
||||
</view>
|
||||
<u-modal :show="tipsShow" :showCancelButton="true" confirmText="去认证" @cancel="onTipsCancel" @confirm="onConfirm"
|
||||
confirmColor="#7934F6" title="提示" content='签署合同需要进行实名认证,请先完成实名认证'></u-modal>
|
||||
<DownPopup :show="downShow" @ok="onSignContract" @cancel="onCancel" />
|
||||
<up-toast ref="uToastRef"></up-toast>
|
||||
<!-- 腾讯电子签H5 → 集成到UniApp -->
|
||||
<web-view v-if="signUrl" :src="signUrl" @message="handleMessage"></web-view>
|
||||
</view>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
import { getUserInfo } from '@/api/auth.js';
|
||||
import Header from '@/components/common/header.vue';
|
||||
import TopSafe from '@/components/common/top-safe.nvue'
|
||||
import ContractItem from './components/contract-item.vue'
|
||||
import DownPopup from '@/components/common/down-popup.vue';
|
||||
import { getContractList, isSignContract, } from '@/api/contract.js'
|
||||
import { getSignUrl, getMiniProgramSignUrl, signContract } from '@/api/order.js';
|
||||
import func from '@/utils/func.js';
|
||||
|
||||
export default {
|
||||
components: { Header, TopSafe, ContractItem, DownPopup },
|
||||
data() {
|
||||
return {
|
||||
type: false,
|
||||
obj: null,
|
||||
flowId: null,
|
||||
signUrl: null,
|
||||
downShow: false,
|
||||
tipsShow: false,
|
||||
userInfo: null
|
||||
};
|
||||
},
|
||||
onShow() {
|
||||
},
|
||||
onLoad() {
|
||||
this.init();
|
||||
this.userinfo();
|
||||
},
|
||||
methods: {
|
||||
init() {
|
||||
this.isSignContract()
|
||||
|
||||
},
|
||||
userinfo() {
|
||||
getUserInfo().then(res => {
|
||||
if (res.bizcode == 100) {
|
||||
this.userInfo = res.data;
|
||||
}
|
||||
console.log('res', res)
|
||||
})
|
||||
},
|
||||
onConfirm() {
|
||||
this.onTipsCancel();
|
||||
uni.navigateTo({
|
||||
url: '/pages/mine_package/mine_authentication/mine_authentication'
|
||||
})
|
||||
},
|
||||
onTipsCancel() {
|
||||
this.tipsShow = false;
|
||||
},
|
||||
onCancel() {
|
||||
this.downShow = false;
|
||||
},
|
||||
isSignContract() {
|
||||
isSignContract().then(res => {
|
||||
if (res.bizcode == 100) {
|
||||
this.type = res.data;
|
||||
if (this.type) {
|
||||
this.getSignContract()
|
||||
}
|
||||
} else {
|
||||
this.$refs.uToastRef.show({
|
||||
type: 'error',
|
||||
message: res.msg,
|
||||
});
|
||||
}
|
||||
})
|
||||
},
|
||||
getSignContract() {
|
||||
getContractList().then(res => {
|
||||
if (res.bizcode == 100 && res.data.length) {
|
||||
this.obj = res.data[0];
|
||||
this.obj.time = func.formatDate(new Date(res.data[0].signatureTime), 3)
|
||||
} else {
|
||||
this.$refs.uToastRef.show({
|
||||
type: 'error',
|
||||
message: res.msg,
|
||||
});
|
||||
}
|
||||
})
|
||||
},
|
||||
onBtn() {
|
||||
if (this.type) {
|
||||
//查看
|
||||
uni.navigateTo({
|
||||
url: `/pages/rwa_package/dongjian/check`
|
||||
})
|
||||
} else {
|
||||
//去签署
|
||||
this.downShow = true;
|
||||
}
|
||||
},
|
||||
// 发起合同签章
|
||||
async onSignContract() {
|
||||
if (this.userInfo.certStatus == 0) {
|
||||
this.downShow = false;
|
||||
this.tipsShow = true;
|
||||
return;
|
||||
} else if (this.userInfo.certStatus == 1) {
|
||||
this.downShow = false;
|
||||
this.$refs.uToastRef.show({
|
||||
type: 'success',
|
||||
message: '请耐心等待审核通过',
|
||||
});
|
||||
return;
|
||||
}
|
||||
|
||||
const { bizcode, data } = await signContract();
|
||||
if (bizcode === 100) {
|
||||
this.flowId = data.flowId;
|
||||
|
||||
if (this.flowId)
|
||||
// #ifdef APP-PLUS || WEB
|
||||
this.onGetSignUrl(this.flowId);
|
||||
// #endif
|
||||
|
||||
// #ifdef MP-WEIXIN
|
||||
// 小程序
|
||||
this.onGetMiniProgramSignUrl(this.flowId)
|
||||
// #endif
|
||||
}
|
||||
},
|
||||
|
||||
// 获取H5签署链接
|
||||
async onGetSignUrl(flowId) {
|
||||
const params = {
|
||||
// 需要的参数
|
||||
flowId: flowId,
|
||||
}
|
||||
const { bizcode, data } = await getSignUrl(params);
|
||||
if (bizcode === 100) {
|
||||
this.downShow = false;
|
||||
this.signUrl = data.flowApproverUrlInfos[0].longUrl;
|
||||
} else {
|
||||
this.$refs.uToastRef.show({
|
||||
type: 'error',
|
||||
message: "获取签署链接失败,请稍后再试",
|
||||
});
|
||||
return null;
|
||||
}
|
||||
},
|
||||
// 获取跳转至腾讯电子签小程序的签署链接
|
||||
async onGetMiniProgramSignUrl(flowId) {
|
||||
const params = {
|
||||
flowId: flowId,
|
||||
endPoint: 'HTTP_SHORT_URL'
|
||||
}
|
||||
const { bizcode, data } = await getMiniProgramSignUrl(params);
|
||||
if (bizcode === 100) {
|
||||
console.log("跳转至腾讯电子签小程序的签署链接", data);
|
||||
this.openTencentESign(data.schemeUrl);
|
||||
} else {
|
||||
this.$refs.uToastRef.show({
|
||||
type: 'error',
|
||||
message: "获取签署链接失败,请稍后再试",
|
||||
});
|
||||
return null;
|
||||
}
|
||||
},
|
||||
|
||||
// 电子签的回调地址
|
||||
handleMessage(e) {
|
||||
const data = e.detail;
|
||||
console.log('电子签的回调地址', e);
|
||||
},
|
||||
// 小程序签名
|
||||
openTencentESign(signPath) {
|
||||
// 这个链接需要后端调用腾讯电子签 API 获取
|
||||
uni.navigateToMiniProgram({
|
||||
appId: 'wxa023b292fd19d41d', // 腾讯电子签官方小程序的 appId
|
||||
path: signPath, // 跳转到的页面路径 + 参数
|
||||
extraData: {}, // 如果需要传额外参数
|
||||
envVersion: 'release', // 小程序版本 release / trial / develop
|
||||
success(res) {
|
||||
console.log('跳转成功', res)
|
||||
},
|
||||
fail(err) {
|
||||
console.error('跳转失败', err)
|
||||
}
|
||||
})
|
||||
}
|
||||
}
|
||||
}
|
||||
</script>
|
||||
|
||||
<style lang="scss" scoped>
|
||||
.contract-view {
|
||||
width: 100%;
|
||||
height: calc(100% - 88rpx - var(--status-bar-height));
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
align-items: center;
|
||||
overflow-y: auto;
|
||||
padding: 0 32rpx;
|
||||
box-sizing: border-box;
|
||||
}
|
||||
</style>
|
||||
|
||||
+404
-404
@@ -1,404 +1,404 @@
|
||||
<template>
|
||||
<view class="content">
|
||||
<TopSafe bgColor="#fff"></TopSafe>
|
||||
<Header title="数字积分" bgColor="#fff" />
|
||||
<view class="contract-view">
|
||||
<image src="/static/new/jia_bg.png" class="jia-img">
|
||||
</image>
|
||||
<view class="box-panel">
|
||||
<view class="box-top">
|
||||
<view class="flex-c-lr" style="align-items: center;">
|
||||
<text class="text-40 text-bold text-zu1">{{lockedData ? lockedData.selfBuyLocked : 0}}</text>
|
||||
<text class="text-fu1 text-24 text-w-400">自购锁定量(数字积分)</text>
|
||||
</view>
|
||||
<view class="flex-c-lr" style="align-items: center;">
|
||||
<text class="text-40 text-bold text-zu1">{{lockedData ? lockedData.spreadLocked : 0}}</text>
|
||||
<text class="text-fu1 text-24 text-w-400">推广锁定量(数字积分)</text>
|
||||
</view>
|
||||
</view>
|
||||
<view class="box-list" style="margin-top:40rpx;">
|
||||
<view class="head-box">
|
||||
<text class="text-zu1 text-28 text-bold">推广解锁</text>
|
||||
<text class="text-fu1 text-24 text-w-400">获得2贡献值解锁1贡献值对应的数字积分直推奖励。</text>
|
||||
<image src="/static/new/jia_icon.png" class="icon-img" mode=""></image>
|
||||
</view>
|
||||
<view class="box-li">
|
||||
<view class="box-biao">
|
||||
<view class="box-head">
|
||||
<view class="box-head-view" v-for="(item,index) in topHead" :key="item" :style="{
|
||||
borderRightWidth:index == 2 ? 0 : '1rpx'
|
||||
}">
|
||||
<text class="text-fu text-24">{{item}}</text>
|
||||
</view>
|
||||
</view>
|
||||
<view class="list-all-view">
|
||||
<view class="list-view" v-for="(item,index) in topList" :key="index">
|
||||
<view class="list-view-box">
|
||||
<text class="text-fu text-24 text-bold">{{item.amount}}</text>
|
||||
</view>
|
||||
<view class="list-view-box">
|
||||
<text class="text-fu text-24 text-bold">{{item.time}}</text>
|
||||
</view>
|
||||
<view class="list-view-box" style="borderRightWidth:0">
|
||||
<text class="text-fu text-24 text-bold">{{item.source}}</text>
|
||||
</view>
|
||||
</view>
|
||||
</view>
|
||||
</view>
|
||||
</view>
|
||||
|
||||
</view>
|
||||
<view class="box-list" style="margin-top:24rpx;">
|
||||
<view class="head-box">
|
||||
<text class="text-zu1 text-28 text-bold">自购解锁</text>
|
||||
<text class="text-fu1 text-24 text-w-400">您的数字积分奖励将随着推广业绩的提升逐步解锁。</text>
|
||||
<image src="/static/new/jia_icon.png" class="icon-img" mode=""></image>
|
||||
</view>
|
||||
<view class="box-li">
|
||||
<view class="box-biao">
|
||||
<view class="box-head">
|
||||
<view class="box-head-view" v-for="(item,index) in bottomHead" :key="item" :style="{
|
||||
borderRightWidth:index == 1 ? 0 : '1rpx'
|
||||
}">
|
||||
<text class="text-fu text-24">{{item}}</text>
|
||||
</view>
|
||||
</view>
|
||||
<view class="list-all-view">
|
||||
<view class="list-view" v-for="(item,index) in bottomList" :key="index">
|
||||
<view class="list-view-box">
|
||||
<text class="text-fu text-24 text-bold">{{item.amount}}</text>
|
||||
</view>
|
||||
<view class="list-view-box" style="borderRightWidth:0">
|
||||
<text class="text-fu text-24 text-bold">{{item.time}}</text>
|
||||
</view>
|
||||
</view>
|
||||
</view>
|
||||
|
||||
</view>
|
||||
|
||||
</view>
|
||||
|
||||
</view>
|
||||
</view>
|
||||
<view class="box-panel mt-32 mb-32">
|
||||
<text class="text-zu1 text-28 text-bold" style="font-weight: bold;">数字积分获取说明</text>
|
||||
<text class="text-fu text-24" style="margin-top:24rpx">1.商城优选区消费1:1获得贡献值,每消费1元获得1贡献值,次日根据当日商城营收占比获得数字积分。</text>
|
||||
<text class="text-fu text-24 " style="margin-top:24rpx">2.直推用户消费10:1获得贡献值,直推用户优选区每消费10元您将获得1积分。</text>
|
||||
<text class="text-fu text-24 " style="margin-top:24rpx">3.积分获得后均为锁定状态。</text>
|
||||
<text class="text-zu1 text-28 text-bold" style="margin-top:48rpx">数字积分解锁说明</text>
|
||||
<text class="text-fu text-24 " style="margin-top:24rpx">1.您本人在商城消费获得的积分,每日按1‰自然解锁。</text>
|
||||
<text class="text-fu text-24 " style="margin-top:24rpx">2.直推用户消费获得的贡献值5:1解锁您本人消费获得的数字积分。</text>
|
||||
<text class="text-fu text-24 " style="margin-top:24rpx">3.直推获得的奖励,根据您在商城的消费获得的贡献值2:1进行解锁,每获得2贡献值解锁1积分。</text>
|
||||
<text class="text-fu text-24 " style="margin-top:24rpx">4.若发生退货退款等因素,信任桥将回收各部分奖励,若数字积分已兑换,则不符合7天无理由退货。</text>
|
||||
<text class="text-fu text-24 " style="margin-top:24rpx">5.最终解释权归信任桥所有。</text>
|
||||
</view>
|
||||
<!-- (2)转盘抽奖获得 -->
|
||||
|
||||
</view>
|
||||
<!-- <DownPopup :show="true"></DownPopup> -->
|
||||
<up-toast ref="uToastRef"></up-toast>
|
||||
</view>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
import { getUserInfo } from '@/api/auth.js';
|
||||
import { getVcoinLocked,getVcoinReleaseLog } from '@/api/finance.js';
|
||||
import Header from '@/components/common/header.vue';
|
||||
import TopSafe from '@/components/common/top-safe.nvue'
|
||||
import DownPopup from '@/components/common/down-popup.vue';
|
||||
import { quickens } from '@/api/contract.js'
|
||||
import Decimal from 'decimal.js';
|
||||
import func from '@/utils/func.js'
|
||||
|
||||
|
||||
export default {
|
||||
components: { Header, TopSafe, DownPopup },
|
||||
data() {
|
||||
return {
|
||||
lockedData:null,
|
||||
topHead:['解锁数量','解锁时间','触发解锁订单'],
|
||||
bottomHead:['解锁数量','解锁时间'],
|
||||
topList:[],
|
||||
bottomList:[]
|
||||
};
|
||||
},
|
||||
onLoad() {
|
||||
this.init();
|
||||
},
|
||||
methods: {
|
||||
onJump(item){
|
||||
uni.navigateTo({
|
||||
url:`/pages/other_package/productInfo/productInfo?id=${item.refId}`
|
||||
})
|
||||
},
|
||||
init() {
|
||||
// this.isSignContract()
|
||||
this.vcoinLocked();
|
||||
this.vcoinReleaseLog(1);
|
||||
this.vcoinReleaseLog(2);
|
||||
// this.getQuichens()
|
||||
},
|
||||
vcoinLocked(){
|
||||
getVcoinLocked().then(res=>{
|
||||
if (res.bizcode == 100) {
|
||||
this.lockedData = res.data;
|
||||
}
|
||||
|
||||
})
|
||||
},
|
||||
vcoinReleaseLog(val){
|
||||
let params = {
|
||||
page:1,
|
||||
pageSize:10000,
|
||||
type:val
|
||||
}
|
||||
getVcoinReleaseLog(params).then(res=>{
|
||||
if (res.bizcode == 100) {
|
||||
if(val == 1){
|
||||
this.topList = res.data.entitys || [];
|
||||
}else{
|
||||
this.bottomList = res.data.entitys || [];
|
||||
}
|
||||
this.topList.forEach(item=>{
|
||||
item.time = func.formatDate(new Date(item.ctdate), 4);
|
||||
})
|
||||
this.bottomList.forEach(item=>{
|
||||
item.time = func.formatDate(new Date(item.ctdate), 4);
|
||||
})
|
||||
}
|
||||
})
|
||||
},
|
||||
getQuichens() {
|
||||
let params ={
|
||||
page:1,
|
||||
pageSize:1000
|
||||
}
|
||||
quickens(params).then(res => {
|
||||
if (res.bizcode == 100) {
|
||||
// this.type = res.data;
|
||||
this.tList[0].text = res.data.vcoinsLock;
|
||||
this.tList[1].text = res.data.quickenBalance;
|
||||
this.topList[0].value = res.data.quickenTotal;
|
||||
this.topList[1].value = res.data.quickenValue;
|
||||
this.topList[2].value = res.data.quickenBalance;
|
||||
this.tableList = res.data.quickenDetail;
|
||||
this.tableList.forEach(item => {
|
||||
const ratio = new Decimal(item.quickenRate);
|
||||
item.one = ratio.times(100).toNumber() + '%';
|
||||
item.two = new Decimal(item.quickenValue);
|
||||
item.three = func.formatDate(new Date(item.ctdate), 3)
|
||||
})
|
||||
} else {
|
||||
this.$refs.uToastRef.show({
|
||||
type: 'error',
|
||||
message: res.msg,
|
||||
});
|
||||
}
|
||||
})
|
||||
},
|
||||
|
||||
onBtn() {
|
||||
if (this.type) {
|
||||
//查看
|
||||
uni.navigateTo({
|
||||
url: `/pages/rwa_package/dongjian/check`
|
||||
})
|
||||
} else {
|
||||
//去签署
|
||||
|
||||
}
|
||||
},
|
||||
|
||||
}
|
||||
}
|
||||
</script>
|
||||
|
||||
<style lang="scss" scoped>
|
||||
.contract-view {
|
||||
width: 100%;
|
||||
height: calc(100% - 88rpx - var(--status-bar-height));
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
align-items: center;
|
||||
overflow-y: auto;
|
||||
padding: 0 32rpx;
|
||||
box-sizing: border-box;
|
||||
position: relative;
|
||||
background-color: #fff;
|
||||
|
||||
.jia-img {
|
||||
width: 100%;
|
||||
height: 240rpx;
|
||||
display: flex;
|
||||
min-height:240rpx;
|
||||
margin-bottom:40rpx;
|
||||
|
||||
}
|
||||
|
||||
.box-panel {
|
||||
position: relative;
|
||||
z-index: 1;
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
width: 100%;
|
||||
background-color: #fff;
|
||||
box-sizing: border-box;
|
||||
|
||||
.box-top {
|
||||
width: 100%;
|
||||
height: 90rpx;
|
||||
min-height: 90rpx;
|
||||
display: flex;
|
||||
flex-direction: row;
|
||||
justify-content: space-between;
|
||||
}
|
||||
|
||||
.box-list {
|
||||
width:100%;
|
||||
display: flex;
|
||||
padding:24rpx 0 4rpx;
|
||||
box-sizing: border-box;
|
||||
background: rgba(121,52,246,0.08);
|
||||
border-radius: 12rpx;
|
||||
flex-direction: column;
|
||||
align-items: center;
|
||||
.box-li{
|
||||
width:calc(100% - 8rpx);
|
||||
height:386rpx;
|
||||
min-height:396rpx;
|
||||
border-radius: 12rpx;
|
||||
background-color: #fff;
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
align-items: center;
|
||||
padding: 16rpx 24rpx;
|
||||
box-sizing: border-box;
|
||||
.box-biao{
|
||||
width:100%;
|
||||
height:100%;
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
align-items: center;
|
||||
border:1rpx solid #eaeaea;
|
||||
border-radius: 16rpx;
|
||||
.list-all-view{
|
||||
flex:1;
|
||||
display: flex;
|
||||
overflow-y: auto;
|
||||
width:100%;
|
||||
flex-direction: column;
|
||||
.list-view{
|
||||
width:100%;
|
||||
height:64rpx;
|
||||
display: flex;
|
||||
flex-direction: row;
|
||||
min-height:64rpx;
|
||||
.list-view-box{
|
||||
flex:1;
|
||||
height:100%;
|
||||
display: flex;
|
||||
align-items: center;
|
||||
justify-content: center;
|
||||
border-right:1rpx solid #EAEAEA;
|
||||
box-sizing: border-box;
|
||||
border-bottom:1rpx solid #EAEAEA;
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
.box-head{
|
||||
width:100%;
|
||||
height:80rpx;
|
||||
min-height:80rpx;
|
||||
display: flex;
|
||||
flex-direction: row;
|
||||
.box-head-view{
|
||||
flex:1;
|
||||
height:100%;
|
||||
display: flex;
|
||||
align-items: center;
|
||||
justify-content: center;
|
||||
border-right:1rpx solid #EAEAEA;
|
||||
box-sizing: border-box;
|
||||
border-bottom:1rpx solid #EAEAEA;
|
||||
background-color: #F8F8F8;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
.head-box{
|
||||
width:100%;
|
||||
height:88rpx;
|
||||
min-height:88rpx;
|
||||
position: relative;
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
padding: 0 24rpx;
|
||||
box-sizing: border-box;
|
||||
.icon-img{
|
||||
width:104rpx;
|
||||
height:88rpx;
|
||||
position: absolute;
|
||||
right:24rpx;
|
||||
bottom:0;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
.table-view {
|
||||
width: 100%;
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
border-radius: 16rpx;
|
||||
overflow: hidden;
|
||||
|
||||
.table-list {
|
||||
width: 100%;
|
||||
height: 64rpx;
|
||||
min-height: 64rpx;
|
||||
display: flex;
|
||||
flex-direction: row;
|
||||
justify-content: space-between;
|
||||
border-bottom: 1rpx solid #EAEAEA;
|
||||
|
||||
.list-box {
|
||||
flex: 1;
|
||||
height: 100%;
|
||||
box-sizing: border-box;
|
||||
}
|
||||
}
|
||||
|
||||
.table-head {
|
||||
width: 100%;
|
||||
height: 80rpx;
|
||||
min-height: 80rpx;
|
||||
display: flex;
|
||||
flex-direction: row;
|
||||
justify-content: space-between;
|
||||
|
||||
.head-box {
|
||||
flex: 1;
|
||||
height: 100%;
|
||||
background-color: #FAF8FE;
|
||||
box-sizing: border-box;
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
.border-lr {
|
||||
border-left: 1rpx solid #EAEAEA;
|
||||
border-right: 1rpx solid #EAEAEA;
|
||||
}
|
||||
|
||||
.border-left-1 {
|
||||
border-bottom-left-radius: 16rpx;
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
}
|
||||
</style>
|
||||
<template>
|
||||
<view class="content">
|
||||
<TopSafe bgColor="#fff"></TopSafe>
|
||||
<Header title="数字积分" bgColor="#fff" />
|
||||
<view class="contract-view">
|
||||
<image src="/static/new/jia_bg.png" class="jia-img">
|
||||
</image>
|
||||
<view class="box-panel">
|
||||
<view class="box-top">
|
||||
<view class="flex-c-lr" style="align-items: center;">
|
||||
<text class="text-40 text-bold text-zu1">{{lockedData ? lockedData.selfBuyLocked : 0}}</text>
|
||||
<text class="text-fu1 text-24 text-w-400">自购锁定量(数字积分)</text>
|
||||
</view>
|
||||
<view class="flex-c-lr" style="align-items: center;">
|
||||
<text class="text-40 text-bold text-zu1">{{lockedData ? lockedData.spreadLocked : 0}}</text>
|
||||
<text class="text-fu1 text-24 text-w-400">推广锁定量(数字积分)</text>
|
||||
</view>
|
||||
</view>
|
||||
<view class="box-list" style="margin-top:40rpx;">
|
||||
<view class="head-box">
|
||||
<text class="text-zu1 text-28 text-bold">推广解锁</text>
|
||||
<text class="text-fu1 text-24 text-w-400">获得2贡献值解锁1贡献值对应的数字积分直推奖励。</text>
|
||||
<image src="/static/new/jia_icon.png" class="icon-img" mode=""></image>
|
||||
</view>
|
||||
<view class="box-li">
|
||||
<view class="box-biao">
|
||||
<view class="box-head">
|
||||
<view class="box-head-view" v-for="(item,index) in topHead" :key="item" :style="{
|
||||
borderRightWidth:index == 2 ? 0 : '1rpx'
|
||||
}">
|
||||
<text class="text-fu text-24">{{item}}</text>
|
||||
</view>
|
||||
</view>
|
||||
<view class="list-all-view">
|
||||
<view class="list-view" v-for="(item,index) in topList" :key="index">
|
||||
<view class="list-view-box">
|
||||
<text class="text-fu text-24 text-bold">{{item.amount}}</text>
|
||||
</view>
|
||||
<view class="list-view-box">
|
||||
<text class="text-fu text-24 text-bold">{{item.time}}</text>
|
||||
</view>
|
||||
<view class="list-view-box" style="borderRightWidth:0">
|
||||
<text class="text-fu text-24 text-bold">{{item.source}}</text>
|
||||
</view>
|
||||
</view>
|
||||
</view>
|
||||
</view>
|
||||
</view>
|
||||
|
||||
</view>
|
||||
<view class="box-list" style="margin-top:24rpx;">
|
||||
<view class="head-box">
|
||||
<text class="text-zu1 text-28 text-bold">自购解锁</text>
|
||||
<text class="text-fu1 text-24 text-w-400">您的数字积分奖励将随着推广业绩的提升逐步解锁。</text>
|
||||
<image src="/static/new/jia_icon.png" class="icon-img" mode=""></image>
|
||||
</view>
|
||||
<view class="box-li">
|
||||
<view class="box-biao">
|
||||
<view class="box-head">
|
||||
<view class="box-head-view" v-for="(item,index) in bottomHead" :key="item" :style="{
|
||||
borderRightWidth:index == 1 ? 0 : '1rpx'
|
||||
}">
|
||||
<text class="text-fu text-24">{{item}}</text>
|
||||
</view>
|
||||
</view>
|
||||
<view class="list-all-view">
|
||||
<view class="list-view" v-for="(item,index) in bottomList" :key="index">
|
||||
<view class="list-view-box">
|
||||
<text class="text-fu text-24 text-bold">{{item.amount}}</text>
|
||||
</view>
|
||||
<view class="list-view-box" style="borderRightWidth:0">
|
||||
<text class="text-fu text-24 text-bold">{{item.time}}</text>
|
||||
</view>
|
||||
</view>
|
||||
</view>
|
||||
|
||||
</view>
|
||||
|
||||
</view>
|
||||
|
||||
</view>
|
||||
</view>
|
||||
<view class="box-panel mt-32 mb-32">
|
||||
<text class="text-zu1 text-28 text-bold" style="font-weight: bold;">数字积分获取说明</text>
|
||||
<text class="text-fu text-24" style="margin-top:24rpx">1.商城优选区消费1:1获得贡献值,每消费1元获得1贡献值,次日根据当日商城营收占比获得数字积分。</text>
|
||||
<text class="text-fu text-24 " style="margin-top:24rpx">2.直推用户消费10:1获得贡献值,直推用户优选区每消费10元您将获得1积分。</text>
|
||||
<text class="text-fu text-24 " style="margin-top:24rpx">3.积分获得后均为锁定状态。</text>
|
||||
<text class="text-zu1 text-28 text-bold" style="margin-top:48rpx">数字积分解锁说明</text>
|
||||
<text class="text-fu text-24 " style="margin-top:24rpx">1.您本人在商城消费获得的积分,每日按1‰自然解锁。</text>
|
||||
<text class="text-fu text-24 " style="margin-top:24rpx">2.直推用户消费获得的贡献值5:1解锁您本人消费获得的数字积分。</text>
|
||||
<text class="text-fu text-24 " style="margin-top:24rpx">3.直推获得的奖励,根据您在商城的消费获得的贡献值2:1进行解锁,每获得2贡献值解锁1积分。</text>
|
||||
<text class="text-fu text-24 " style="margin-top:24rpx">4.若发生退货退款等因素,信任桥将回收各部分奖励,若数字积分已兑换,则不符合7天无理由退货。</text>
|
||||
<text class="text-fu text-24 " style="margin-top:24rpx">5.最终解释权归信任桥所有。</text>
|
||||
</view>
|
||||
<!-- (2)转盘抽奖获得 -->
|
||||
|
||||
</view>
|
||||
<!-- <DownPopup :show="true"></DownPopup> -->
|
||||
<up-toast ref="uToastRef"></up-toast>
|
||||
</view>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
import { getUserInfo } from '@/api/auth.js';
|
||||
import { getVcoinLocked,getVcoinReleaseLog } from '@/api/finance.js';
|
||||
import Header from '@/components/common/header.vue';
|
||||
import TopSafe from '@/components/common/top-safe.nvue'
|
||||
import DownPopup from '@/components/common/down-popup.vue';
|
||||
import { quickens } from '@/api/contract.js'
|
||||
import Decimal from 'decimal.js';
|
||||
import func from '@/utils/func.js'
|
||||
|
||||
|
||||
export default {
|
||||
components: { Header, TopSafe, DownPopup },
|
||||
data() {
|
||||
return {
|
||||
lockedData:null,
|
||||
topHead:['解锁数量','解锁时间','触发解锁订单'],
|
||||
bottomHead:['解锁数量','解锁时间'],
|
||||
topList:[],
|
||||
bottomList:[]
|
||||
};
|
||||
},
|
||||
onLoad() {
|
||||
this.init();
|
||||
},
|
||||
methods: {
|
||||
onJump(item){
|
||||
uni.navigateTo({
|
||||
url:`/pages/other_package/productInfo/productInfo?id=${item.refId}`
|
||||
})
|
||||
},
|
||||
init() {
|
||||
// this.isSignContract()
|
||||
this.vcoinLocked();
|
||||
this.vcoinReleaseLog(1);
|
||||
this.vcoinReleaseLog(2);
|
||||
// this.getQuichens()
|
||||
},
|
||||
vcoinLocked(){
|
||||
getVcoinLocked().then(res=>{
|
||||
if (res.bizcode == 100) {
|
||||
this.lockedData = res.data;
|
||||
}
|
||||
|
||||
})
|
||||
},
|
||||
vcoinReleaseLog(val){
|
||||
let params = {
|
||||
page:1,
|
||||
pageSize:10000,
|
||||
type:val
|
||||
}
|
||||
getVcoinReleaseLog(params).then(res=>{
|
||||
if (res.bizcode == 100) {
|
||||
if(val == 1){
|
||||
this.topList = res.data.entitys || [];
|
||||
}else{
|
||||
this.bottomList = res.data.entitys || [];
|
||||
}
|
||||
this.topList.forEach(item=>{
|
||||
item.time = func.formatDate(new Date(item.ctdate), 4);
|
||||
})
|
||||
this.bottomList.forEach(item=>{
|
||||
item.time = func.formatDate(new Date(item.ctdate), 4);
|
||||
})
|
||||
}
|
||||
})
|
||||
},
|
||||
getQuichens() {
|
||||
let params ={
|
||||
page:1,
|
||||
pageSize:1000
|
||||
}
|
||||
quickens(params).then(res => {
|
||||
if (res.bizcode == 100) {
|
||||
// this.type = res.data;
|
||||
this.tList[0].text = res.data.vcoinsLock;
|
||||
this.tList[1].text = res.data.quickenBalance;
|
||||
this.topList[0].value = res.data.quickenTotal;
|
||||
this.topList[1].value = res.data.quickenValue;
|
||||
this.topList[2].value = res.data.quickenBalance;
|
||||
this.tableList = res.data.quickenDetail;
|
||||
this.tableList.forEach(item => {
|
||||
const ratio = new Decimal(item.quickenRate);
|
||||
item.one = ratio.times(100).toNumber() + '%';
|
||||
item.two = new Decimal(item.quickenValue);
|
||||
item.three = func.formatDate(new Date(item.ctdate), 3)
|
||||
})
|
||||
} else {
|
||||
this.$refs.uToastRef.show({
|
||||
type: 'error',
|
||||
message: res.msg,
|
||||
});
|
||||
}
|
||||
})
|
||||
},
|
||||
|
||||
onBtn() {
|
||||
if (this.type) {
|
||||
//查看
|
||||
uni.navigateTo({
|
||||
url: `/pages/rwa_package/dongjian/check`
|
||||
})
|
||||
} else {
|
||||
//去签署
|
||||
|
||||
}
|
||||
},
|
||||
|
||||
}
|
||||
}
|
||||
</script>
|
||||
|
||||
<style lang="scss" scoped>
|
||||
.contract-view {
|
||||
width: 100%;
|
||||
height: calc(100% - 88rpx - var(--status-bar-height));
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
align-items: center;
|
||||
overflow-y: auto;
|
||||
padding: 0 32rpx;
|
||||
box-sizing: border-box;
|
||||
position: relative;
|
||||
background-color: #fff;
|
||||
|
||||
.jia-img {
|
||||
width: 100%;
|
||||
height: 240rpx;
|
||||
display: flex;
|
||||
min-height:240rpx;
|
||||
margin-bottom:40rpx;
|
||||
|
||||
}
|
||||
|
||||
.box-panel {
|
||||
position: relative;
|
||||
z-index: 1;
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
width: 100%;
|
||||
background-color: #fff;
|
||||
box-sizing: border-box;
|
||||
|
||||
.box-top {
|
||||
width: 100%;
|
||||
height: 90rpx;
|
||||
min-height: 90rpx;
|
||||
display: flex;
|
||||
flex-direction: row;
|
||||
justify-content: space-between;
|
||||
}
|
||||
|
||||
.box-list {
|
||||
width:100%;
|
||||
display: flex;
|
||||
padding:24rpx 0 4rpx;
|
||||
box-sizing: border-box;
|
||||
background: rgba(121,52,246,0.08);
|
||||
border-radius: 12rpx;
|
||||
flex-direction: column;
|
||||
align-items: center;
|
||||
.box-li{
|
||||
width:calc(100% - 8rpx);
|
||||
height:386rpx;
|
||||
min-height:396rpx;
|
||||
border-radius: 12rpx;
|
||||
background-color: #fff;
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
align-items: center;
|
||||
padding: 16rpx 24rpx;
|
||||
box-sizing: border-box;
|
||||
.box-biao{
|
||||
width:100%;
|
||||
height:100%;
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
align-items: center;
|
||||
border:1rpx solid #eaeaea;
|
||||
border-radius: 16rpx;
|
||||
.list-all-view{
|
||||
flex:1;
|
||||
display: flex;
|
||||
overflow-y: auto;
|
||||
width:100%;
|
||||
flex-direction: column;
|
||||
.list-view{
|
||||
width:100%;
|
||||
height:64rpx;
|
||||
display: flex;
|
||||
flex-direction: row;
|
||||
min-height:64rpx;
|
||||
.list-view-box{
|
||||
flex:1;
|
||||
height:100%;
|
||||
display: flex;
|
||||
align-items: center;
|
||||
justify-content: center;
|
||||
border-right:1rpx solid #EAEAEA;
|
||||
box-sizing: border-box;
|
||||
border-bottom:1rpx solid #EAEAEA;
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
.box-head{
|
||||
width:100%;
|
||||
height:80rpx;
|
||||
min-height:80rpx;
|
||||
display: flex;
|
||||
flex-direction: row;
|
||||
.box-head-view{
|
||||
flex:1;
|
||||
height:100%;
|
||||
display: flex;
|
||||
align-items: center;
|
||||
justify-content: center;
|
||||
border-right:1rpx solid #EAEAEA;
|
||||
box-sizing: border-box;
|
||||
border-bottom:1rpx solid #EAEAEA;
|
||||
background-color: #F8F8F8;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
.head-box{
|
||||
width:100%;
|
||||
height:88rpx;
|
||||
min-height:88rpx;
|
||||
position: relative;
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
padding: 0 24rpx;
|
||||
box-sizing: border-box;
|
||||
.icon-img{
|
||||
width:104rpx;
|
||||
height:88rpx;
|
||||
position: absolute;
|
||||
right:24rpx;
|
||||
bottom:0;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
.table-view {
|
||||
width: 100%;
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
border-radius: 16rpx;
|
||||
overflow: hidden;
|
||||
|
||||
.table-list {
|
||||
width: 100%;
|
||||
height: 64rpx;
|
||||
min-height: 64rpx;
|
||||
display: flex;
|
||||
flex-direction: row;
|
||||
justify-content: space-between;
|
||||
border-bottom: 1rpx solid #EAEAEA;
|
||||
|
||||
.list-box {
|
||||
flex: 1;
|
||||
height: 100%;
|
||||
box-sizing: border-box;
|
||||
}
|
||||
}
|
||||
|
||||
.table-head {
|
||||
width: 100%;
|
||||
height: 80rpx;
|
||||
min-height: 80rpx;
|
||||
display: flex;
|
||||
flex-direction: row;
|
||||
justify-content: space-between;
|
||||
|
||||
.head-box {
|
||||
flex: 1;
|
||||
height: 100%;
|
||||
background-color: #FAF8FE;
|
||||
box-sizing: border-box;
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
.border-lr {
|
||||
border-left: 1rpx solid #EAEAEA;
|
||||
border-right: 1rpx solid #EAEAEA;
|
||||
}
|
||||
|
||||
.border-left-1 {
|
||||
border-bottom-left-radius: 16rpx;
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
}
|
||||
</style>
|
||||
|
||||
@@ -1,257 +1,257 @@
|
||||
<template>
|
||||
<view class="content">
|
||||
<TopSafe bgColor="#fff"></TopSafe>
|
||||
<view class="search-view">
|
||||
<view class="head-view">
|
||||
<u-icon size="30rpx" name="arrow-left" @click="onBack" color="#333"></u-icon>
|
||||
<view class="search-box">
|
||||
<input class="input-view wx-width" v-model="searchInput"></input>
|
||||
<!-- <u-input class="input-view wx-width"
|
||||
v-model="searchInput"></u-input> -->
|
||||
<view class="search-btn flex-c" @click="onSearch">
|
||||
<text class="text-32 text-white">搜索</text>
|
||||
</view>
|
||||
</view>
|
||||
|
||||
</view>
|
||||
<view class="top-view mt-24">
|
||||
<view class="flex-r-lr">
|
||||
<text class="text-32 text-bold text-zu">搜索历史</text>
|
||||
<u-icon size="40rpx" name="trash" @click="isDel = !isDel" color="#333"></u-icon>
|
||||
</view>
|
||||
<view class="history-view" v-if="historyList.length">
|
||||
<view class="history-box flex-c mt-24 mr-32" v-for="(item,index) in historyList" :key="item">
|
||||
<text class="text-24 text-fu line-h" @click="onText(item)" >{{item}}</text>
|
||||
<u-icon size="32rpx" class="close-pos" v-if="isDel" @click="onDel(index)"
|
||||
name="close-circle" color="#333"></u-icon>
|
||||
</view>
|
||||
</view>
|
||||
<view class="history-on-data flex-c" v-else>
|
||||
<text class="text-40 text-bold">暂无历史记录</text>
|
||||
</view>
|
||||
</view>
|
||||
<view class="bottom-view">
|
||||
<view class="bottom-head">
|
||||
<text class="text-32 text-bold text-zu">商品展示</text>
|
||||
</view>
|
||||
<view class="bottom-scroll" v-if="dataList.length">
|
||||
<ShopItem :obj="item" class="mt-24" @click="onJump(item)"
|
||||
v-for="(item,index) in dataList" :key="item.id"></ShopItem>
|
||||
</view>
|
||||
<view class="bottom-scroll-no " v-else>
|
||||
<text class="text-48 text-bold" style="margin-top:200rpx">暂无数据</text>
|
||||
</view>
|
||||
</view>
|
||||
</view>
|
||||
|
||||
<DownPopup></DownPopup>
|
||||
</view>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
import { getUserInfo } from '@/api/auth.js';
|
||||
import Header from '@/components/common/header.vue';
|
||||
import TopSafe from '@/components/common/top-safe.nvue'
|
||||
import DownPopup from '@/components/common/down-popup.vue';
|
||||
import { searchList } from '@/api/product.js'
|
||||
import ShopItem from './components/shop-item.vue'
|
||||
import func from '@/utils/func.js';
|
||||
|
||||
export default {
|
||||
components: { Header,TopSafe,DownPopup,ShopItem },
|
||||
data() {
|
||||
return {
|
||||
searchInput:'',
|
||||
historyList:[],
|
||||
isDel:false,
|
||||
dataList:[],
|
||||
};
|
||||
},
|
||||
onShow() {
|
||||
this.init();
|
||||
},
|
||||
methods: {
|
||||
init(){
|
||||
// this.isSignContract()
|
||||
// this.getSignContract()
|
||||
|
||||
let arr = uni.getStorageSync('history') || '';
|
||||
if(arr){
|
||||
this.historyList = arr.split(',');
|
||||
}else{
|
||||
this.historyList = [];
|
||||
}
|
||||
},
|
||||
onJump(item){
|
||||
uni.navigateTo({
|
||||
url: '/pages/other_package/productInfo/productInfo?id='+item.id,
|
||||
})
|
||||
},
|
||||
onBack(){
|
||||
uni.navigateBack();
|
||||
},
|
||||
onSearch(){
|
||||
if(!this.searchInput){
|
||||
return;
|
||||
}
|
||||
this.onAdd();
|
||||
let params = {
|
||||
keyword:this.searchInput
|
||||
}
|
||||
searchList(params).then((res)=>{
|
||||
this.dataList = res.data;
|
||||
console.log('res',res)
|
||||
})
|
||||
},
|
||||
onDel(index){
|
||||
this.historyList.splice(index,1);
|
||||
this.onSave()
|
||||
},
|
||||
onAdd(){
|
||||
|
||||
if(this.searchInput){
|
||||
let bool = false;
|
||||
this.historyList.forEach(item=>{
|
||||
if(item == this.searchInput){
|
||||
bool = true;
|
||||
}
|
||||
})
|
||||
if(!bool){
|
||||
this.historyList.unshift(this.searchInput);
|
||||
if(this.historyList.length > 15){
|
||||
this.historyList.pop();
|
||||
}
|
||||
this.onSave();
|
||||
}
|
||||
|
||||
}
|
||||
},
|
||||
onText(item){
|
||||
this.searchInput = item;
|
||||
},
|
||||
onSave(){
|
||||
if(this.historyList.length){
|
||||
uni.setStorageSync('history',this.historyList.join(','));
|
||||
}else{
|
||||
uni.setStorageSync('history','');
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
</script>
|
||||
|
||||
<style lang="scss" scoped>
|
||||
.search-view{
|
||||
width:100%;
|
||||
height:calc(100% - var(--status-bar-height));
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
align-items: center;
|
||||
box-sizing: border-box;
|
||||
.top-view{
|
||||
width:100%;
|
||||
min-height:150rpx;
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
padding: 0 32rpx;
|
||||
box-sizing: border-box;
|
||||
overflow-y: auto;
|
||||
.history-on-data{
|
||||
width:100%;
|
||||
height:100%;
|
||||
|
||||
}
|
||||
.history-view{
|
||||
width:100%;
|
||||
display: flex;
|
||||
flex-wrap: wrap;
|
||||
.history-box{
|
||||
position: relative;
|
||||
padding: 8rpx 22rpx;
|
||||
box-sizing: border-box;
|
||||
border-radius: 8rpx;
|
||||
border:2rpx solid #7932FE;
|
||||
.close-pos{
|
||||
right:-20rpx;
|
||||
position: absolute;
|
||||
top:-40%;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
.bottom-view{
|
||||
width:100%;
|
||||
flex:1;
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
padding: 0 32rpx;
|
||||
box-sizing: border-box;
|
||||
.bottom-head{
|
||||
height:50rpx;
|
||||
display: flex;
|
||||
}
|
||||
.bottom-scroll{
|
||||
width:100%;
|
||||
height:calc(100vh - 50rpx - 324rpx - 4rpx - 88rpx - var(--status-bar-height));
|
||||
overflow-y: auto;
|
||||
display: flex;
|
||||
flex-wrap: wrap;
|
||||
justify-content: space-between;
|
||||
|
||||
}
|
||||
.bottom-scroll-no{
|
||||
width:100%;
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
align-items: center;
|
||||
|
||||
}
|
||||
}
|
||||
.head-view{
|
||||
width:100%;
|
||||
height:118rpx;
|
||||
min-height:118rpx;
|
||||
display: flex;
|
||||
flex-direction: row;
|
||||
align-items: center;
|
||||
padding: 0 32rpx;
|
||||
box-sizing: border-box;
|
||||
background-color: #fff;
|
||||
.search-box{
|
||||
width:100%;
|
||||
height:84rpx;
|
||||
min-height:16rpx;
|
||||
display: flex;
|
||||
flex-direction: row;
|
||||
justify-content: space-between;
|
||||
align-items: center;
|
||||
border-radius: 16rpx;
|
||||
border:2rpx solid #7932FE;
|
||||
margin-left:24rpx;
|
||||
}
|
||||
.search-btn{
|
||||
width:156rpx;
|
||||
height:100%;
|
||||
border-radius: 16rpx;
|
||||
background: linear-gradient( 270deg, #B164FB 0%, #7934F6 100%);
|
||||
}
|
||||
.input-view{
|
||||
height:72rpx;
|
||||
box-sizing: border-box;
|
||||
padding: 0 30rpx !important;
|
||||
border-radius: 36rpx;
|
||||
margin-left:12rpx;
|
||||
flex:1;
|
||||
}
|
||||
/* #ifdef MP-WEIXIN */
|
||||
.wx-width{
|
||||
width:350rpx !important;
|
||||
flex:none;
|
||||
}
|
||||
/* #endif */
|
||||
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
</style>
|
||||
<template>
|
||||
<view class="content">
|
||||
<TopSafe bgColor="#fff"></TopSafe>
|
||||
<view class="search-view">
|
||||
<view class="head-view">
|
||||
<u-icon size="30rpx" name="arrow-left" @click="onBack" color="#333"></u-icon>
|
||||
<view class="search-box">
|
||||
<input class="input-view wx-width" v-model="searchInput"></input>
|
||||
<!-- <u-input class="input-view wx-width"
|
||||
v-model="searchInput"></u-input> -->
|
||||
<view class="search-btn flex-c" @click="onSearch">
|
||||
<text class="text-32 text-white">搜索</text>
|
||||
</view>
|
||||
</view>
|
||||
|
||||
</view>
|
||||
<view class="top-view mt-24">
|
||||
<view class="flex-r-lr">
|
||||
<text class="text-32 text-bold text-zu">搜索历史</text>
|
||||
<u-icon size="40rpx" name="trash" @click="isDel = !isDel" color="#333"></u-icon>
|
||||
</view>
|
||||
<view class="history-view" v-if="historyList.length">
|
||||
<view class="history-box flex-c mt-24 mr-32" v-for="(item,index) in historyList" :key="item">
|
||||
<text class="text-24 text-fu line-h" @click="onText(item)" >{{item}}</text>
|
||||
<u-icon size="32rpx" class="close-pos" v-if="isDel" @click="onDel(index)"
|
||||
name="close-circle" color="#333"></u-icon>
|
||||
</view>
|
||||
</view>
|
||||
<view class="history-on-data flex-c" v-else>
|
||||
<text class="text-40 text-bold">暂无历史记录</text>
|
||||
</view>
|
||||
</view>
|
||||
<view class="bottom-view">
|
||||
<view class="bottom-head">
|
||||
<text class="text-32 text-bold text-zu">商品展示</text>
|
||||
</view>
|
||||
<view class="bottom-scroll" v-if="dataList.length">
|
||||
<ShopItem :obj="item" class="mt-24" @click="onJump(item)"
|
||||
v-for="(item,index) in dataList" :key="item.id"></ShopItem>
|
||||
</view>
|
||||
<view class="bottom-scroll-no " v-else>
|
||||
<text class="text-48 text-bold" style="margin-top:200rpx">暂无数据</text>
|
||||
</view>
|
||||
</view>
|
||||
</view>
|
||||
|
||||
<DownPopup></DownPopup>
|
||||
</view>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
import { getUserInfo } from '@/api/auth.js';
|
||||
import Header from '@/components/common/header.vue';
|
||||
import TopSafe from '@/components/common/top-safe.nvue'
|
||||
import DownPopup from '@/components/common/down-popup.vue';
|
||||
import { searchList } from '@/api/product.js'
|
||||
import ShopItem from './components/shop-item.vue'
|
||||
import func from '@/utils/func.js';
|
||||
|
||||
export default {
|
||||
components: { Header,TopSafe,DownPopup,ShopItem },
|
||||
data() {
|
||||
return {
|
||||
searchInput:'',
|
||||
historyList:[],
|
||||
isDel:false,
|
||||
dataList:[],
|
||||
};
|
||||
},
|
||||
onShow() {
|
||||
this.init();
|
||||
},
|
||||
methods: {
|
||||
init(){
|
||||
// this.isSignContract()
|
||||
// this.getSignContract()
|
||||
|
||||
let arr = uni.getStorageSync('history') || '';
|
||||
if(arr){
|
||||
this.historyList = arr.split(',');
|
||||
}else{
|
||||
this.historyList = [];
|
||||
}
|
||||
},
|
||||
onJump(item){
|
||||
uni.navigateTo({
|
||||
url: '/pages/other_package/productInfo/productInfo?id='+item.id,
|
||||
})
|
||||
},
|
||||
onBack(){
|
||||
uni.navigateBack();
|
||||
},
|
||||
onSearch(){
|
||||
if(!this.searchInput){
|
||||
return;
|
||||
}
|
||||
this.onAdd();
|
||||
let params = {
|
||||
keyword:this.searchInput
|
||||
}
|
||||
searchList(params).then((res)=>{
|
||||
this.dataList = res.data;
|
||||
console.log('res',res)
|
||||
})
|
||||
},
|
||||
onDel(index){
|
||||
this.historyList.splice(index,1);
|
||||
this.onSave()
|
||||
},
|
||||
onAdd(){
|
||||
|
||||
if(this.searchInput){
|
||||
let bool = false;
|
||||
this.historyList.forEach(item=>{
|
||||
if(item == this.searchInput){
|
||||
bool = true;
|
||||
}
|
||||
})
|
||||
if(!bool){
|
||||
this.historyList.unshift(this.searchInput);
|
||||
if(this.historyList.length > 15){
|
||||
this.historyList.pop();
|
||||
}
|
||||
this.onSave();
|
||||
}
|
||||
|
||||
}
|
||||
},
|
||||
onText(item){
|
||||
this.searchInput = item;
|
||||
},
|
||||
onSave(){
|
||||
if(this.historyList.length){
|
||||
uni.setStorageSync('history',this.historyList.join(','));
|
||||
}else{
|
||||
uni.setStorageSync('history','');
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
</script>
|
||||
|
||||
<style lang="scss" scoped>
|
||||
.search-view{
|
||||
width:100%;
|
||||
height:calc(100% - var(--status-bar-height));
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
align-items: center;
|
||||
box-sizing: border-box;
|
||||
.top-view{
|
||||
width:100%;
|
||||
min-height:150rpx;
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
padding: 0 32rpx;
|
||||
box-sizing: border-box;
|
||||
overflow-y: auto;
|
||||
.history-on-data{
|
||||
width:100%;
|
||||
height:100%;
|
||||
|
||||
}
|
||||
.history-view{
|
||||
width:100%;
|
||||
display: flex;
|
||||
flex-wrap: wrap;
|
||||
.history-box{
|
||||
position: relative;
|
||||
padding: 8rpx 22rpx;
|
||||
box-sizing: border-box;
|
||||
border-radius: 8rpx;
|
||||
border:2rpx solid #7932FE;
|
||||
.close-pos{
|
||||
right:-20rpx;
|
||||
position: absolute;
|
||||
top:-40%;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
.bottom-view{
|
||||
width:100%;
|
||||
flex:1;
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
padding: 0 32rpx;
|
||||
box-sizing: border-box;
|
||||
.bottom-head{
|
||||
height:50rpx;
|
||||
display: flex;
|
||||
}
|
||||
.bottom-scroll{
|
||||
width:100%;
|
||||
height:calc(100vh - 50rpx - 324rpx - 4rpx - 88rpx - var(--status-bar-height));
|
||||
overflow-y: auto;
|
||||
display: flex;
|
||||
flex-wrap: wrap;
|
||||
justify-content: space-between;
|
||||
|
||||
}
|
||||
.bottom-scroll-no{
|
||||
width:100%;
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
align-items: center;
|
||||
|
||||
}
|
||||
}
|
||||
.head-view{
|
||||
width:100%;
|
||||
height:118rpx;
|
||||
min-height:118rpx;
|
||||
display: flex;
|
||||
flex-direction: row;
|
||||
align-items: center;
|
||||
padding: 0 32rpx;
|
||||
box-sizing: border-box;
|
||||
background-color: #fff;
|
||||
.search-box{
|
||||
width:100%;
|
||||
height:84rpx;
|
||||
min-height:16rpx;
|
||||
display: flex;
|
||||
flex-direction: row;
|
||||
justify-content: space-between;
|
||||
align-items: center;
|
||||
border-radius: 16rpx;
|
||||
border:2rpx solid #7932FE;
|
||||
margin-left:24rpx;
|
||||
}
|
||||
.search-btn{
|
||||
width:156rpx;
|
||||
height:100%;
|
||||
border-radius: 16rpx;
|
||||
background: linear-gradient( 270deg, #B164FB 0%, #7934F6 100%);
|
||||
}
|
||||
.input-view{
|
||||
height:72rpx;
|
||||
box-sizing: border-box;
|
||||
padding: 0 30rpx !important;
|
||||
border-radius: 36rpx;
|
||||
margin-left:12rpx;
|
||||
flex:1;
|
||||
}
|
||||
/* #ifdef MP-WEIXIN */
|
||||
.wx-width{
|
||||
width:350rpx !important;
|
||||
flex:none;
|
||||
}
|
||||
/* #endif */
|
||||
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
</style>
|
||||
|
||||
+311
-311
File diff suppressed because one or more lines are too long
@@ -1,85 +1,85 @@
|
||||
<template>
|
||||
<view class="rwa_withdrawal">
|
||||
<Header leftTitle="共享计划终止" left-path-type="navigateTo" left-path="/pages/rwa_package/rwa/rwa" rightTitle="记录"
|
||||
rightPath="/pages/rwa_package/rwa_withdrawal_log/rwa_withdrawal_log?back=withdrawal" rightPathType="navigateTo" />
|
||||
<view class="rwa_withdrawal_content">
|
||||
<view class="_content">
|
||||
<view class="_content_usdt">
|
||||
<view>{{ categotyObj.name || 'USDT' }}</view>
|
||||
<view>{{ categotyObj.curAmount || 0 }}</view>
|
||||
</view>
|
||||
<view class="_content_item">
|
||||
<view class="_content_item_title">行权金额</view>
|
||||
<up-input placeholder="请输入行权金额" border="surround" v-model="form.amount" :customStyle="inputCss"></up-input>
|
||||
<view class="_content_item_msg">当前可行权余额 {{ categotyObj.curAmount || 0 }} {{ categotyObj.name || 'USDT' }}
|
||||
</view>
|
||||
</view>
|
||||
<view class="_content_item" @click="accountShowCheck(true)">
|
||||
<view class="_content_item_title">行权账户</view>
|
||||
<view class="_content_item_account">
|
||||
<view v-if="accountName">{{ accountName }}</view>
|
||||
<view v-else style="color: #30313363;">请选择行权账户</view>
|
||||
<up-image src="/static/common/right.png" width="20" height="20" bgColor="#f1f6ff00" />
|
||||
</view>
|
||||
</view>
|
||||
<view class="_content_item">
|
||||
<view class="_content_item_title">交易密码<text class="_content_item_setting_pwd"
|
||||
@click="jumpSettingPwd">《共享计划终止协议》</text></view>
|
||||
<up-input placeholder="请输入交易密码" border="surround" v-model="form.password" :customStyle="inputCss"></up-input>
|
||||
</view>
|
||||
<view class="_content_item">
|
||||
<view class="_content_item_title">备注</view>
|
||||
<up-input placeholder="请输入备注(可选)" border="surround" v-model="form.remark" :customStyle="inputCss"></up-input>
|
||||
</view>
|
||||
</view>
|
||||
<view class="add_but_css" @click="addWithdrawal">
|
||||
提交
|
||||
</view>
|
||||
</view>
|
||||
<DownPopup :show="tipsShow"
|
||||
title="股权交割协议"
|
||||
:contentText="text"
|
||||
articleTitle="股权交割协议"
|
||||
ok="我已知晓"
|
||||
@cancel="tipsShow = false"
|
||||
@ok="tipsShow = false"
|
||||
></DownPopup>
|
||||
<up-picker :show="accountShow" :columns="accountOption" keyName="account" itemHeight="34" @confirm="accountConfirm"
|
||||
:loading="accountLoading" @close="accountShowCheck(false)" @cancel="accountShowCheck(false)"></up-picker>
|
||||
<up-toast ref="uToastRef"></up-toast>
|
||||
</view>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
import Header from '@/components/header.vue';
|
||||
import { getSupportBank } from '@/api/common.js';
|
||||
import { getAcctBalance, exchTransfer, getExchUsers } from '@/api/finance.js';
|
||||
import DownPopup from '@/components/common/down-popup.vue'
|
||||
import CryptoJS from 'crypto-js';
|
||||
export default {
|
||||
components: { Header,DownPopup },
|
||||
data() {
|
||||
return {
|
||||
categotyObj: {},// 可提现金额
|
||||
inputCss: {
|
||||
"height": '80rpx',
|
||||
"background": "#F5F5F5",
|
||||
"border-radius": "20rpx",
|
||||
"border": "0rpx",
|
||||
"padding-left": "16px",
|
||||
},
|
||||
form: {
|
||||
category: "vcoin",
|
||||
amount: '',
|
||||
password: '',
|
||||
acctIdtipsShow: '',
|
||||
remark: '',
|
||||
},
|
||||
accountName: null,
|
||||
accountShow: false,
|
||||
accountOption: [],
|
||||
accountLoading: false,
|
||||
tipsShow:false,
|
||||
<template>
|
||||
<view class="rwa_withdrawal">
|
||||
<Header leftTitle="共享计划终止" left-path-type="navigateTo" left-path="/pages/rwa_package/rwa/rwa" rightTitle="记录"
|
||||
rightPath="/pages/rwa_package/rwa_withdrawal_log/rwa_withdrawal_log?back=withdrawal" rightPathType="navigateTo" />
|
||||
<view class="rwa_withdrawal_content">
|
||||
<view class="_content">
|
||||
<view class="_content_usdt">
|
||||
<view>{{ categotyObj.name || 'USDT' }}</view>
|
||||
<view>{{ categotyObj.curAmount || 0 }}</view>
|
||||
</view>
|
||||
<view class="_content_item">
|
||||
<view class="_content_item_title">行权金额</view>
|
||||
<up-input placeholder="请输入行权金额" border="surround" v-model="form.amount" :customStyle="inputCss"></up-input>
|
||||
<view class="_content_item_msg">当前可行权余额 {{ categotyObj.curAmount || 0 }} {{ categotyObj.name || 'USDT' }}
|
||||
</view>
|
||||
</view>
|
||||
<view class="_content_item" @click="accountShowCheck(true)">
|
||||
<view class="_content_item_title">行权账户</view>
|
||||
<view class="_content_item_account">
|
||||
<view v-if="accountName">{{ accountName }}</view>
|
||||
<view v-else style="color: #30313363;">请选择行权账户</view>
|
||||
<up-image src="/static/common/right.png" width="20" height="20" bgColor="#f1f6ff00" />
|
||||
</view>
|
||||
</view>
|
||||
<view class="_content_item">
|
||||
<view class="_content_item_title">交易密码<text class="_content_item_setting_pwd"
|
||||
@click="jumpSettingPwd">《共享计划终止协议》</text></view>
|
||||
<up-input placeholder="请输入交易密码" border="surround" v-model="form.password" :customStyle="inputCss"></up-input>
|
||||
</view>
|
||||
<view class="_content_item">
|
||||
<view class="_content_item_title">备注</view>
|
||||
<up-input placeholder="请输入备注(可选)" border="surround" v-model="form.remark" :customStyle="inputCss"></up-input>
|
||||
</view>
|
||||
</view>
|
||||
<view class="add_but_css" @click="addWithdrawal">
|
||||
提交
|
||||
</view>
|
||||
</view>
|
||||
<DownPopup :show="tipsShow"
|
||||
title="股权交割协议"
|
||||
:contentText="text"
|
||||
articleTitle="股权交割协议"
|
||||
ok="我已知晓"
|
||||
@cancel="tipsShow = false"
|
||||
@ok="tipsShow = false"
|
||||
></DownPopup>
|
||||
<up-picker :show="accountShow" :columns="accountOption" keyName="account" itemHeight="34" @confirm="accountConfirm"
|
||||
:loading="accountLoading" @close="accountShowCheck(false)" @cancel="accountShowCheck(false)"></up-picker>
|
||||
<up-toast ref="uToastRef"></up-toast>
|
||||
</view>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
import Header from '@/components/header.vue';
|
||||
import { getSupportBank } from '@/api/common.js';
|
||||
import { getAcctBalance, exchTransfer, getExchUsers } from '@/api/finance.js';
|
||||
import DownPopup from '@/components/common/down-popup.vue'
|
||||
import CryptoJS from 'crypto-js';
|
||||
export default {
|
||||
components: { Header,DownPopup },
|
||||
data() {
|
||||
return {
|
||||
categotyObj: {},// 可提现金额
|
||||
inputCss: {
|
||||
"height": '80rpx',
|
||||
"background": "#F5F5F5",
|
||||
"border-radius": "20rpx",
|
||||
"border": "0rpx",
|
||||
"padding-left": "16px",
|
||||
},
|
||||
form: {
|
||||
category: "vcoin",
|
||||
amount: '',
|
||||
password: '',
|
||||
acctIdtipsShow: '',
|
||||
remark: '',
|
||||
},
|
||||
accountName: null,
|
||||
accountShow: false,
|
||||
accountOption: [],
|
||||
accountLoading: false,
|
||||
tipsShow:false,
|
||||
text:`甲方(委托人):信任桥用户
|
||||
乙方(受托人): 信任桥(深圳)网络科技有限公司
|
||||
统一社会信用代码:91440300MAD3XHDP7C
|
||||
@@ -109,179 +109,179 @@ export default {
|
||||
若监管部门要求追溯资金来源或用途,甲方应全力配合并提供证明材料。
|
||||
第四条 生效条件
|
||||
1. 本补充协议自甲方点击确认后生效,与原协议具有同等法律效力。
|
||||
2. 本协议未尽事宜,以原协议约定为准;与原协议冲突的,以本协议为准。`
|
||||
};
|
||||
},
|
||||
onShow() {
|
||||
this.getAcctBalance();
|
||||
},
|
||||
methods: {
|
||||
// 查询余额
|
||||
async getAcctBalance() {
|
||||
const resp = await getAcctBalance();
|
||||
let data = {};
|
||||
if (resp && resp.bizcode === 100) {
|
||||
if (resp.data) {
|
||||
resp.data.map(item => {
|
||||
// 交易币
|
||||
if (item.categoty === "vcoin") {
|
||||
data = item;
|
||||
}
|
||||
})
|
||||
}
|
||||
}
|
||||
this.categotyObj = data;
|
||||
},
|
||||
async addWithdrawal() {
|
||||
this.form.password = CryptoJS.MD5(this.form.password).toString()
|
||||
const params = this.form;
|
||||
|
||||
if (!params.amount) {
|
||||
this.$refs.uToastRef.show({
|
||||
type: 'error',
|
||||
message: "请输入行权金额",
|
||||
});
|
||||
return;
|
||||
}
|
||||
if (!params.acctId) {
|
||||
this.$refs.uToastRef.show({
|
||||
type: 'error',
|
||||
message: "请选择行权账户",
|
||||
});
|
||||
return;
|
||||
}
|
||||
if (!params.password) {
|
||||
this.$refs.uToastRef.show({
|
||||
type: 'error',
|
||||
message: "请输入交易密码",
|
||||
});
|
||||
return;
|
||||
}
|
||||
console.log("params", params);
|
||||
const resp = await exchTransfer(params);
|
||||
if (resp && resp.bizcode === 100) {
|
||||
this.$refs.uToastRef.show({
|
||||
type: 'success',
|
||||
message: "提交成功",
|
||||
});
|
||||
setTimeout(() => {
|
||||
uni.navigateTo({
|
||||
url: '/pages/rwa_package/rwa/rwa',
|
||||
})
|
||||
}, 2000)
|
||||
}
|
||||
},
|
||||
// 选择账户的弹框
|
||||
async accountShowCheck(status) {
|
||||
if (status) {
|
||||
this.accountLoading = true;
|
||||
const params = {
|
||||
page: 1,
|
||||
pageSize: 99,
|
||||
}
|
||||
const resp = await getExchUsers(params);
|
||||
if (resp && resp.bizcode === 100) {
|
||||
this.accountOption = [resp.data.entitys] || [];
|
||||
}
|
||||
this.accountLoading = false;
|
||||
} else {
|
||||
this.accountOption = [[]];
|
||||
}
|
||||
this.accountShow = status;
|
||||
},
|
||||
// 提交
|
||||
accountConfirm(e) {
|
||||
const {
|
||||
columnIndex,
|
||||
value,
|
||||
values,
|
||||
index,
|
||||
} = e;
|
||||
if (!value || value.length === 0) {
|
||||
this.$refs.uToastRef.show({
|
||||
type: 'error',
|
||||
message: "请先选择账户",
|
||||
});
|
||||
return;
|
||||
}
|
||||
const data = value[0];
|
||||
this.form.acctId = data.id;
|
||||
this.accountName = data.account;
|
||||
this.accountShowCheck(false);
|
||||
},
|
||||
// 设置交易密码
|
||||
jumpSettingPwd() {
|
||||
this.tipsShow = true;
|
||||
// uni.navigateTo({
|
||||
// url: '/pages/mine_package/mine_transaction_password/mine_transaction_password',
|
||||
// })
|
||||
}
|
||||
}
|
||||
}
|
||||
</script>
|
||||
|
||||
<style lang="scss">
|
||||
.rwa_withdrawal {
|
||||
background: #F5F5F5;
|
||||
|
||||
.rwa_withdrawal_content {
|
||||
padding: 20rpx;
|
||||
height: calc(100vh - 198rpx);
|
||||
|
||||
._content {
|
||||
padding: 30rpx;
|
||||
background: #FFFFFF;
|
||||
border-radius: 24rpx;
|
||||
margin-bottom: 60rpx;
|
||||
|
||||
._content_usdt {
|
||||
display: flex;
|
||||
justify-content: space-between;
|
||||
font-weight: bold;
|
||||
font-size: 30rpx;
|
||||
color: #333333;
|
||||
border-bottom: 2rpx solid #EEEEEE;
|
||||
padding: 0 0 20rpx;
|
||||
}
|
||||
|
||||
._content_item {
|
||||
margin-top: 30rpx;
|
||||
|
||||
._content_item_title {
|
||||
margin-bottom: 20rpx;
|
||||
font-weight: bold;
|
||||
font-size: 30rpx;
|
||||
color: #333333;
|
||||
}
|
||||
|
||||
._content_item_setting_pwd {
|
||||
color: $app-zt-color;
|
||||
cursor: pointer;
|
||||
text-decoration: underline;
|
||||
font-size: 26rpx;
|
||||
margin-left: 10rpx;
|
||||
}
|
||||
|
||||
._content_item_msg {
|
||||
font-weight: 500;
|
||||
font-size: 24rpx;
|
||||
color: #808080;
|
||||
margin-top: 16rpx;
|
||||
}
|
||||
|
||||
._content_item_account {
|
||||
display: flex;
|
||||
justify-content: space-between;
|
||||
align-items: center;
|
||||
background: #F8F8F8;
|
||||
border-radius: 20rpx;
|
||||
padding: 30rpx 20rpx;
|
||||
font-weight: 500;
|
||||
font-size: 28rpx;
|
||||
color: #333333;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
</style>
|
||||
2. 本协议未尽事宜,以原协议约定为准;与原协议冲突的,以本协议为准。`
|
||||
};
|
||||
},
|
||||
onShow() {
|
||||
this.getAcctBalance();
|
||||
},
|
||||
methods: {
|
||||
// 查询余额
|
||||
async getAcctBalance() {
|
||||
const resp = await getAcctBalance();
|
||||
let data = {};
|
||||
if (resp && resp.bizcode === 100) {
|
||||
if (resp.data) {
|
||||
resp.data.map(item => {
|
||||
// 交易币
|
||||
if (item.categoty === "vcoin") {
|
||||
data = item;
|
||||
}
|
||||
})
|
||||
}
|
||||
}
|
||||
this.categotyObj = data;
|
||||
},
|
||||
async addWithdrawal() {
|
||||
this.form.password = CryptoJS.MD5(this.form.password).toString()
|
||||
const params = this.form;
|
||||
|
||||
if (!params.amount) {
|
||||
this.$refs.uToastRef.show({
|
||||
type: 'error',
|
||||
message: "请输入行权金额",
|
||||
});
|
||||
return;
|
||||
}
|
||||
if (!params.acctId) {
|
||||
this.$refs.uToastRef.show({
|
||||
type: 'error',
|
||||
message: "请选择行权账户",
|
||||
});
|
||||
return;
|
||||
}
|
||||
if (!params.password) {
|
||||
this.$refs.uToastRef.show({
|
||||
type: 'error',
|
||||
message: "请输入交易密码",
|
||||
});
|
||||
return;
|
||||
}
|
||||
console.log("params", params);
|
||||
const resp = await exchTransfer(params);
|
||||
if (resp && resp.bizcode === 100) {
|
||||
this.$refs.uToastRef.show({
|
||||
type: 'success',
|
||||
message: "提交成功",
|
||||
});
|
||||
setTimeout(() => {
|
||||
uni.navigateTo({
|
||||
url: '/pages/rwa_package/rwa/rwa',
|
||||
})
|
||||
}, 2000)
|
||||
}
|
||||
},
|
||||
// 选择账户的弹框
|
||||
async accountShowCheck(status) {
|
||||
if (status) {
|
||||
this.accountLoading = true;
|
||||
const params = {
|
||||
page: 1,
|
||||
pageSize: 99,
|
||||
}
|
||||
const resp = await getExchUsers(params);
|
||||
if (resp && resp.bizcode === 100) {
|
||||
this.accountOption = [resp.data.entitys] || [];
|
||||
}
|
||||
this.accountLoading = false;
|
||||
} else {
|
||||
this.accountOption = [[]];
|
||||
}
|
||||
this.accountShow = status;
|
||||
},
|
||||
// 提交
|
||||
accountConfirm(e) {
|
||||
const {
|
||||
columnIndex,
|
||||
value,
|
||||
values,
|
||||
index,
|
||||
} = e;
|
||||
if (!value || value.length === 0) {
|
||||
this.$refs.uToastRef.show({
|
||||
type: 'error',
|
||||
message: "请先选择账户",
|
||||
});
|
||||
return;
|
||||
}
|
||||
const data = value[0];
|
||||
this.form.acctId = data.id;
|
||||
this.accountName = data.account;
|
||||
this.accountShowCheck(false);
|
||||
},
|
||||
// 设置交易密码
|
||||
jumpSettingPwd() {
|
||||
this.tipsShow = true;
|
||||
// uni.navigateTo({
|
||||
// url: '/pages/mine_package/mine_transaction_password/mine_transaction_password',
|
||||
// })
|
||||
}
|
||||
}
|
||||
}
|
||||
</script>
|
||||
|
||||
<style lang="scss">
|
||||
.rwa_withdrawal {
|
||||
background: #F5F5F5;
|
||||
|
||||
.rwa_withdrawal_content {
|
||||
padding: 20rpx;
|
||||
height: calc(100vh - 198rpx);
|
||||
|
||||
._content {
|
||||
padding: 30rpx;
|
||||
background: #FFFFFF;
|
||||
border-radius: 24rpx;
|
||||
margin-bottom: 60rpx;
|
||||
|
||||
._content_usdt {
|
||||
display: flex;
|
||||
justify-content: space-between;
|
||||
font-weight: bold;
|
||||
font-size: 30rpx;
|
||||
color: #333333;
|
||||
border-bottom: 2rpx solid #EEEEEE;
|
||||
padding: 0 0 20rpx;
|
||||
}
|
||||
|
||||
._content_item {
|
||||
margin-top: 30rpx;
|
||||
|
||||
._content_item_title {
|
||||
margin-bottom: 20rpx;
|
||||
font-weight: bold;
|
||||
font-size: 30rpx;
|
||||
color: #333333;
|
||||
}
|
||||
|
||||
._content_item_setting_pwd {
|
||||
color: $app-zt-color;
|
||||
cursor: pointer;
|
||||
text-decoration: underline;
|
||||
font-size: 26rpx;
|
||||
margin-left: 10rpx;
|
||||
}
|
||||
|
||||
._content_item_msg {
|
||||
font-weight: 500;
|
||||
font-size: 24rpx;
|
||||
color: #808080;
|
||||
margin-top: 16rpx;
|
||||
}
|
||||
|
||||
._content_item_account {
|
||||
display: flex;
|
||||
justify-content: space-between;
|
||||
align-items: center;
|
||||
background: #F8F8F8;
|
||||
border-radius: 20rpx;
|
||||
padding: 30rpx 20rpx;
|
||||
font-weight: 500;
|
||||
font-size: 28rpx;
|
||||
color: #333333;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
</style>
|
||||
|
||||
@@ -1,166 +1,166 @@
|
||||
<template>
|
||||
<view class="content">
|
||||
<TopSafe></TopSafe>
|
||||
<Header title="注销账号" />
|
||||
<view class="setting-view">
|
||||
<view class="name-box">
|
||||
<view class="top-view">
|
||||
<u-icon name="error-circle-fill" color="#e88900" size="54"></u-icon>
|
||||
<text class="text-36 text-zu text-bold mt-12">注销信任桥账号</text>
|
||||
</view>
|
||||
<view class="mid-view">
|
||||
<text class="text-fu text-28">账号注销后不可恢复,请您谨慎操作。注销成功后,您将无法登录或使用原账号,账号内的信息和权益将均无法找回:</text>
|
||||
<text class="text-fu text-28 mt-48">1.账号将无法登录 </text>
|
||||
<text class="text-fu text-28">2.历史订单将无法查询 </text>
|
||||
<text class="text-fu text-28">3.放弃会员等级权益和会员积分 </text>
|
||||
<text class="text-fu text-28">4.放弃钱包余额、优惠券等资产 </text>
|
||||
</view>
|
||||
<text class="text-fu text-28 mt-32">*详细注销信息可阅读
|
||||
<text class="text-zi" @click="onJump">《信任桥账号注销协议》</text>
|
||||
</text>
|
||||
</view>
|
||||
|
||||
</view>
|
||||
<view class="bottom-btn">
|
||||
<MyBtn text="已清楚风险,确定注销" @ok="onZhu"></MyBtn>
|
||||
</view>
|
||||
<u-modal :show="tipsShow" title="提示" showCancelButton @cancel="onCancel" @confirm="onConfirm" :content='content'></u-modal>
|
||||
<up-toast ref="uToastRef"></up-toast>
|
||||
</view>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
import { getUserInfo,updateName,deleteAccount } from '@/api/auth.js';
|
||||
import Header from '@/components/common/header.vue';
|
||||
import { clear } from '@/utils/auth.js';
|
||||
import TopSafe from '@/components/common/top-safe.nvue'
|
||||
import MyBtn from '@/components/common/my-btn.vue'
|
||||
import func from '@/utils/func.js';
|
||||
|
||||
export default {
|
||||
components: { Header, TopSafe,MyBtn },
|
||||
data() {
|
||||
return {
|
||||
userInfo: null,
|
||||
inputText:'',
|
||||
tipsShow:false,
|
||||
content:'是否确定注销账号?'
|
||||
};
|
||||
},
|
||||
onShow() {
|
||||
},
|
||||
onLoad() {
|
||||
this.init();
|
||||
// this.userinfo();
|
||||
},
|
||||
methods: {
|
||||
init() {
|
||||
this.userinfo()
|
||||
},
|
||||
onJump(){
|
||||
uni.navigateTo({
|
||||
url:'/pages/rwa_package/setting/out-agreement'
|
||||
})
|
||||
},
|
||||
onZhu(){
|
||||
this.tipsShow = true;
|
||||
},
|
||||
onConfirm(){
|
||||
// uni.navigateTo({
|
||||
// url:'/pages/rwa_package/setting/out-code'
|
||||
// })
|
||||
this.onCancel();
|
||||
deleteAccount().then(res=>{
|
||||
if (res.bizcode == 100) {
|
||||
clear()
|
||||
this.$refs.uToastRef.show({
|
||||
type: 'success',
|
||||
message: "注销成功",
|
||||
});
|
||||
setTimeout(()=>{
|
||||
uni.redirectTo({
|
||||
url:'/pages/login_package/login/login'
|
||||
})
|
||||
},2000)
|
||||
}
|
||||
})
|
||||
},
|
||||
onCancel(){
|
||||
this.tipsShow = false;
|
||||
},
|
||||
userinfo() {
|
||||
getUserInfo().then(res => {
|
||||
if (res.bizcode == 100) {
|
||||
this.userInfo = res.data;
|
||||
this.inputText = this.userInfo.nickname;
|
||||
}
|
||||
})
|
||||
}
|
||||
}
|
||||
}
|
||||
</script>
|
||||
|
||||
<style lang="scss" scoped>
|
||||
.bottom-btn{
|
||||
width: 100%;
|
||||
margin-bottom:92rpx;
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
align-items: center;
|
||||
padding: 0 32rpx;
|
||||
box-sizing: border-box;
|
||||
position: relative;
|
||||
|
||||
}
|
||||
.setting-view {
|
||||
width: 100%;
|
||||
height: calc(100% - 88rpx - 92rpx - 88rpx - var(--status-bar-height));
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
align-items: center;
|
||||
overflow-y: auto;
|
||||
padding: 0 32rpx;
|
||||
box-sizing: border-box;
|
||||
position: relative;
|
||||
.name-box{
|
||||
width:100%;
|
||||
border-radius: 16rpx;
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
background-color: #fff;
|
||||
padding: 64rpx 32rpx;
|
||||
box-sizing: border-box;
|
||||
margin-top:24rpx;
|
||||
.mid-view{
|
||||
width:100%;
|
||||
padding: 40rpx 32rpx;
|
||||
box-sizing: border-box;
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
border:2rpx solid #eaeaea;
|
||||
border-radius: 16rpx;
|
||||
margin-top:48rpx;
|
||||
}
|
||||
.top-view{
|
||||
width:100%;
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
align-items: center;
|
||||
}
|
||||
.input-view{
|
||||
border-radius: 20rpx;
|
||||
margin-top:52rpx;
|
||||
width:100%;
|
||||
padding: 0 32rpx;
|
||||
min-height:104rpx;
|
||||
display: flex;
|
||||
flex-direction: row;
|
||||
align-items: center;
|
||||
background-color: #f5f5f5;
|
||||
box-sizing: border-box;
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
</style>
|
||||
<template>
|
||||
<view class="content">
|
||||
<TopSafe></TopSafe>
|
||||
<Header title="注销账号" />
|
||||
<view class="setting-view">
|
||||
<view class="name-box">
|
||||
<view class="top-view">
|
||||
<u-icon name="error-circle-fill" color="#e88900" size="54"></u-icon>
|
||||
<text class="text-36 text-zu text-bold mt-12">注销信任桥账号</text>
|
||||
</view>
|
||||
<view class="mid-view">
|
||||
<text class="text-fu text-28">账号注销后不可恢复,请您谨慎操作。注销成功后,您将无法登录或使用原账号,账号内的信息和权益将均无法找回:</text>
|
||||
<text class="text-fu text-28 mt-48">1.账号将无法登录 </text>
|
||||
<text class="text-fu text-28">2.历史订单将无法查询 </text>
|
||||
<text class="text-fu text-28">3.放弃会员等级权益和会员积分 </text>
|
||||
<text class="text-fu text-28">4.放弃钱包余额、优惠券等资产 </text>
|
||||
</view>
|
||||
<text class="text-fu text-28 mt-32">*详细注销信息可阅读
|
||||
<text class="text-zi" @click="onJump">《信任桥账号注销协议》</text>
|
||||
</text>
|
||||
</view>
|
||||
|
||||
</view>
|
||||
<view class="bottom-btn">
|
||||
<MyBtn text="已清楚风险,确定注销" @ok="onZhu"></MyBtn>
|
||||
</view>
|
||||
<u-modal :show="tipsShow" title="提示" showCancelButton @cancel="onCancel" @confirm="onConfirm" :content='content'></u-modal>
|
||||
<up-toast ref="uToastRef"></up-toast>
|
||||
</view>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
import { getUserInfo,updateName,deleteAccount } from '@/api/auth.js';
|
||||
import Header from '@/components/common/header.vue';
|
||||
import { clear } from '@/utils/auth.js';
|
||||
import TopSafe from '@/components/common/top-safe.nvue'
|
||||
import MyBtn from '@/components/common/my-btn.vue'
|
||||
import func from '@/utils/func.js';
|
||||
|
||||
export default {
|
||||
components: { Header, TopSafe,MyBtn },
|
||||
data() {
|
||||
return {
|
||||
userInfo: null,
|
||||
inputText:'',
|
||||
tipsShow:false,
|
||||
content:'是否确定注销账号?'
|
||||
};
|
||||
},
|
||||
onShow() {
|
||||
},
|
||||
onLoad() {
|
||||
this.init();
|
||||
// this.userinfo();
|
||||
},
|
||||
methods: {
|
||||
init() {
|
||||
this.userinfo()
|
||||
},
|
||||
onJump(){
|
||||
uni.navigateTo({
|
||||
url:'/pages/rwa_package/setting/out-agreement'
|
||||
})
|
||||
},
|
||||
onZhu(){
|
||||
this.tipsShow = true;
|
||||
},
|
||||
onConfirm(){
|
||||
// uni.navigateTo({
|
||||
// url:'/pages/rwa_package/setting/out-code'
|
||||
// })
|
||||
this.onCancel();
|
||||
deleteAccount().then(res=>{
|
||||
if (res.bizcode == 100) {
|
||||
clear()
|
||||
this.$refs.uToastRef.show({
|
||||
type: 'success',
|
||||
message: "注销成功",
|
||||
});
|
||||
setTimeout(()=>{
|
||||
uni.redirectTo({
|
||||
url:'/pages/login_package/login/login'
|
||||
})
|
||||
},2000)
|
||||
}
|
||||
})
|
||||
},
|
||||
onCancel(){
|
||||
this.tipsShow = false;
|
||||
},
|
||||
userinfo() {
|
||||
getUserInfo().then(res => {
|
||||
if (res.bizcode == 100) {
|
||||
this.userInfo = res.data;
|
||||
this.inputText = this.userInfo.nickname;
|
||||
}
|
||||
})
|
||||
}
|
||||
}
|
||||
}
|
||||
</script>
|
||||
|
||||
<style lang="scss" scoped>
|
||||
.bottom-btn{
|
||||
width: 100%;
|
||||
margin-bottom:92rpx;
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
align-items: center;
|
||||
padding: 0 32rpx;
|
||||
box-sizing: border-box;
|
||||
position: relative;
|
||||
|
||||
}
|
||||
.setting-view {
|
||||
width: 100%;
|
||||
height: calc(100% - 88rpx - 92rpx - 88rpx - var(--status-bar-height));
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
align-items: center;
|
||||
overflow-y: auto;
|
||||
padding: 0 32rpx;
|
||||
box-sizing: border-box;
|
||||
position: relative;
|
||||
.name-box{
|
||||
width:100%;
|
||||
border-radius: 16rpx;
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
background-color: #fff;
|
||||
padding: 64rpx 32rpx;
|
||||
box-sizing: border-box;
|
||||
margin-top:24rpx;
|
||||
.mid-view{
|
||||
width:100%;
|
||||
padding: 40rpx 32rpx;
|
||||
box-sizing: border-box;
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
border:2rpx solid #eaeaea;
|
||||
border-radius: 16rpx;
|
||||
margin-top:48rpx;
|
||||
}
|
||||
.top-view{
|
||||
width:100%;
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
align-items: center;
|
||||
}
|
||||
.input-view{
|
||||
border-radius: 20rpx;
|
||||
margin-top:52rpx;
|
||||
width:100%;
|
||||
padding: 0 32rpx;
|
||||
min-height:104rpx;
|
||||
display: flex;
|
||||
flex-direction: row;
|
||||
align-items: center;
|
||||
background-color: #f5f5f5;
|
||||
box-sizing: border-box;
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
</style>
|
||||
|
||||
@@ -1,149 +1,149 @@
|
||||
<template>
|
||||
<view class="content">
|
||||
<TopSafe></TopSafe>
|
||||
<Header title="设置" />
|
||||
<view class="setting-view">
|
||||
<view class="item-list mt-24">
|
||||
<view class="flex-r-lr item-box" @click="onHead(index)"
|
||||
v-for="(item,index) in headList" :key="index"
|
||||
:style="{borderWidth:index == headList.length - 1 ? '0' : '2rpx'}"
|
||||
>
|
||||
<view class="flex-r" >
|
||||
<text class="text-zu1 text-32">{{item.text}}</text>
|
||||
<view class="yi-view" v-if="item.type == 'text1' && item.she">
|
||||
<text class="text-zi text-24">{{item.she}}</text>
|
||||
</view>
|
||||
</view>
|
||||
<view class="flex-r-e" style="align-items: center;">
|
||||
<text class="text-zu text-32" v-if="item.type == 'text'">{{item.value}}</text>
|
||||
|
||||
<text class="text-fu text-32" v-if="item.type == 'text1'">{{item.value}}</text>
|
||||
<u-icon size="16" name="arrow-right" color="#666" style="margin-left:12rpx"></u-icon>
|
||||
</view>
|
||||
</view>
|
||||
</view>
|
||||
</view>
|
||||
<up-toast ref="uToastRef"></up-toast>
|
||||
</view>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
import { getUserInfo } from '@/api/auth.js';
|
||||
import Header from '@/components/common/header.vue';
|
||||
import TopSafe from '@/components/common/top-safe.nvue'
|
||||
import MyBtn from '@/components/common/my-btn.vue'
|
||||
import func from '@/utils/func.js';
|
||||
|
||||
export default {
|
||||
components: { Header, TopSafe,MyBtn },
|
||||
data() {
|
||||
return {
|
||||
type: false,
|
||||
userInfo: null,
|
||||
headList:[
|
||||
{text:'注册手机号',type:'text',value:''},
|
||||
{text:'交易密码设置',type:'text1',she:'',value:'设置密码'},
|
||||
{text:'登录密码设置',type:'text1',she:'',value:'设置密码'},
|
||||
{text:'注销账号',type:'text',value:''},
|
||||
],
|
||||
bottomList:[
|
||||
{text:'账号与安全'},
|
||||
{text:'我的合同'},
|
||||
{text:'用户协议'},
|
||||
{text:'隐私协议'},
|
||||
{text:'售后保障协议'},
|
||||
{text:'关于我们'},
|
||||
]
|
||||
};
|
||||
},
|
||||
onShow() {
|
||||
},
|
||||
onLoad() {
|
||||
this.init();
|
||||
// this.userinfo();
|
||||
},
|
||||
methods: {
|
||||
init() {
|
||||
this.userinfo()
|
||||
},
|
||||
onHead(index){
|
||||
if(index == 1){
|
||||
uni.navigateTo({
|
||||
url:`/pages/rwa_package/setting/forgot-pass?type=1`
|
||||
})
|
||||
}else if(index == 2){
|
||||
uni.navigateTo({
|
||||
url:`/pages/rwa_package/setting/forgot-pass?type=2`
|
||||
})
|
||||
}else if(index == 3){
|
||||
uni.navigateTo({
|
||||
url:`/pages/rwa_package/setting/account-out`
|
||||
})
|
||||
}
|
||||
},
|
||||
userinfo() {
|
||||
getUserInfo().then(res => {
|
||||
if (res.bizcode == 100) {
|
||||
this.userInfo = res.data;
|
||||
this.headList[0].value = this.userInfo.mobile;
|
||||
this.headList[0].value = this.headList[0].value.replace(this.headList[0].value.substring(3,7),'****')
|
||||
if(res.data.tradePassword){
|
||||
this.headList[1].she = '已设置';
|
||||
this.headList[1].value = '修改密码';
|
||||
}else{
|
||||
this.headList[1].value = '设置密码';
|
||||
}
|
||||
if(res.data.password){
|
||||
this.headList[2].she = '已设置';
|
||||
this.headList[2].value = '修改密码';
|
||||
}else{
|
||||
this.headList[2].value = '设置密码';
|
||||
}
|
||||
}
|
||||
})
|
||||
}
|
||||
}
|
||||
}
|
||||
</script>
|
||||
|
||||
<style lang="scss" scoped>
|
||||
.yi-view{
|
||||
width:104rpx;
|
||||
height:44rpx;
|
||||
display: flex;
|
||||
background: rgba(122,53,246,0.1);
|
||||
align-items: center;
|
||||
justify-content: center;
|
||||
border-radius: 8rpx;
|
||||
margin-left:12rpx;
|
||||
}
|
||||
.setting-view {
|
||||
width: 100%;
|
||||
height: calc(100% - 88rpx - var(--status-bar-height));
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
align-items: center;
|
||||
overflow-y: auto;
|
||||
padding: 0 32rpx;
|
||||
box-sizing: border-box;
|
||||
.item-list{
|
||||
width:100%;
|
||||
border-radius: 16rpx;
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
background-color: #fff;
|
||||
.item-box{
|
||||
min-height:108rpx;
|
||||
padding: 0 32rpx;
|
||||
box-sizing: border-box;
|
||||
align-items: center;
|
||||
border-bottom:solid #EAEAEA;
|
||||
.ava-img{
|
||||
width:60rpx;
|
||||
height:60rpx;
|
||||
border-radius: 30rpx;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
</style>
|
||||
<template>
|
||||
<view class="content">
|
||||
<TopSafe></TopSafe>
|
||||
<Header title="设置" />
|
||||
<view class="setting-view">
|
||||
<view class="item-list mt-24">
|
||||
<view class="flex-r-lr item-box" @click="onHead(index)"
|
||||
v-for="(item,index) in headList" :key="index"
|
||||
:style="{borderWidth:index == headList.length - 1 ? '0' : '2rpx'}"
|
||||
>
|
||||
<view class="flex-r" >
|
||||
<text class="text-zu1 text-32">{{item.text}}</text>
|
||||
<view class="yi-view" v-if="item.type == 'text1' && item.she">
|
||||
<text class="text-zi text-24">{{item.she}}</text>
|
||||
</view>
|
||||
</view>
|
||||
<view class="flex-r-e" style="align-items: center;">
|
||||
<text class="text-zu text-32" v-if="item.type == 'text'">{{item.value}}</text>
|
||||
|
||||
<text class="text-fu text-32" v-if="item.type == 'text1'">{{item.value}}</text>
|
||||
<u-icon size="16" name="arrow-right" color="#666" style="margin-left:12rpx"></u-icon>
|
||||
</view>
|
||||
</view>
|
||||
</view>
|
||||
</view>
|
||||
<up-toast ref="uToastRef"></up-toast>
|
||||
</view>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
import { getUserInfo } from '@/api/auth.js';
|
||||
import Header from '@/components/common/header.vue';
|
||||
import TopSafe from '@/components/common/top-safe.nvue'
|
||||
import MyBtn from '@/components/common/my-btn.vue'
|
||||
import func from '@/utils/func.js';
|
||||
|
||||
export default {
|
||||
components: { Header, TopSafe,MyBtn },
|
||||
data() {
|
||||
return {
|
||||
type: false,
|
||||
userInfo: null,
|
||||
headList:[
|
||||
{text:'注册手机号',type:'text',value:''},
|
||||
{text:'交易密码设置',type:'text1',she:'',value:'设置密码'},
|
||||
{text:'登录密码设置',type:'text1',she:'',value:'设置密码'},
|
||||
{text:'注销账号',type:'text',value:''},
|
||||
],
|
||||
bottomList:[
|
||||
{text:'账号与安全'},
|
||||
{text:'我的合同'},
|
||||
{text:'用户协议'},
|
||||
{text:'隐私协议'},
|
||||
{text:'售后保障协议'},
|
||||
{text:'关于我们'},
|
||||
]
|
||||
};
|
||||
},
|
||||
onShow() {
|
||||
},
|
||||
onLoad() {
|
||||
this.init();
|
||||
// this.userinfo();
|
||||
},
|
||||
methods: {
|
||||
init() {
|
||||
this.userinfo()
|
||||
},
|
||||
onHead(index){
|
||||
if(index == 1){
|
||||
uni.navigateTo({
|
||||
url:`/pages/rwa_package/setting/forgot-pass?type=1`
|
||||
})
|
||||
}else if(index == 2){
|
||||
uni.navigateTo({
|
||||
url:`/pages/rwa_package/setting/forgot-pass?type=2`
|
||||
})
|
||||
}else if(index == 3){
|
||||
uni.navigateTo({
|
||||
url:`/pages/rwa_package/setting/account-out`
|
||||
})
|
||||
}
|
||||
},
|
||||
userinfo() {
|
||||
getUserInfo().then(res => {
|
||||
if (res.bizcode == 100) {
|
||||
this.userInfo = res.data;
|
||||
this.headList[0].value = this.userInfo.mobile;
|
||||
this.headList[0].value = this.headList[0].value.replace(this.headList[0].value.substring(3,7),'****')
|
||||
if(res.data.tradePassword){
|
||||
this.headList[1].she = '已设置';
|
||||
this.headList[1].value = '修改密码';
|
||||
}else{
|
||||
this.headList[1].value = '设置密码';
|
||||
}
|
||||
if(res.data.password){
|
||||
this.headList[2].she = '已设置';
|
||||
this.headList[2].value = '修改密码';
|
||||
}else{
|
||||
this.headList[2].value = '设置密码';
|
||||
}
|
||||
}
|
||||
})
|
||||
}
|
||||
}
|
||||
}
|
||||
</script>
|
||||
|
||||
<style lang="scss" scoped>
|
||||
.yi-view{
|
||||
width:104rpx;
|
||||
height:44rpx;
|
||||
display: flex;
|
||||
background: rgba(122,53,246,0.1);
|
||||
align-items: center;
|
||||
justify-content: center;
|
||||
border-radius: 8rpx;
|
||||
margin-left:12rpx;
|
||||
}
|
||||
.setting-view {
|
||||
width: 100%;
|
||||
height: calc(100% - 88rpx - var(--status-bar-height));
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
align-items: center;
|
||||
overflow-y: auto;
|
||||
padding: 0 32rpx;
|
||||
box-sizing: border-box;
|
||||
.item-list{
|
||||
width:100%;
|
||||
border-radius: 16rpx;
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
background-color: #fff;
|
||||
.item-box{
|
||||
min-height:108rpx;
|
||||
padding: 0 32rpx;
|
||||
box-sizing: border-box;
|
||||
align-items: center;
|
||||
border-bottom:solid #EAEAEA;
|
||||
.ava-img{
|
||||
width:60rpx;
|
||||
height:60rpx;
|
||||
border-radius: 30rpx;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
</style>
|
||||
|
||||
@@ -1,131 +1,131 @@
|
||||
<template>
|
||||
<view class="content">
|
||||
<TopSafe></TopSafe>
|
||||
<Header title="物流信息" />
|
||||
<view class="setting-view">
|
||||
<view class="express-panel">
|
||||
<view class="top-one" style="margin-top:12rpx">
|
||||
<u-icon name="email" color="#333" size="20"></u-icon>
|
||||
<text class="text-24 text-fu text-space" style="margin-left:10rpx;line-height: 1.4;margin-right:12rpx">{{curData && `${curData.items[0].expressName}:`}}</text>
|
||||
<text class="text-24 text-zu1 text-space" style="margin-left:10rpx;line-height: 1.4;margin-right:12rpx">{{curData && `${curData.items[0].expressNo}`}}</text>
|
||||
<up-image src="/static/common/copy.png" width="14" height="14" bgColor="#f1f6ff00"
|
||||
@click="copyData(curData ? curData.items[0].expressNo :'')"></up-image>
|
||||
</view>
|
||||
<view class="top-one" style="border-bottom:2rpx solid #eee">
|
||||
<u-icon name="map" color="#333" size="20"></u-icon>
|
||||
<text class="text-24 text-fu text-space" style="margin-left:10rpx;line-height: 1.4;margin-right:12rpx">收货地址</text>
|
||||
<text class="text-24 text-zu text-space" style="margin-left:10rpx;line-height: 1.4;margin-right:12rpx">{{curData && `${curData.countryName} ${curData.cityName} ${curData.areaName} ${curData.address}`}}</text>
|
||||
</view>
|
||||
<u-steps current="0" direction="column" dot activeColor="#7934F6" style="margin-top:20rpx">
|
||||
<u-steps-item :style="`width:calc(100vw - 48rpx)`"
|
||||
:title="item.areaName + ' ' + item.curTime" :desc="item.desc" v-for="(item,index) in express.logisticsTraceDetailList" :key="index"></u-steps-item>
|
||||
</u-steps>
|
||||
</view>
|
||||
|
||||
|
||||
</view>
|
||||
<up-toast ref="uToastRef"></up-toast>
|
||||
<!-- 腾讯电子签H5 → 集成到UniApp -->
|
||||
</view>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
import { getUserInfo,uploadAvatar } from '@/api/auth.js';
|
||||
import { uploadImage, uploadImg } from '@/api/common.js';
|
||||
import { IMG_TYPE } from '@/utils/enumUtils.js';
|
||||
import { BASE_URL, Authorization } from '@/utils/config.js';
|
||||
import { getStorageFun, TOKEN_NAME,clear } from '@/utils/auth.js';
|
||||
import Header from '@/components/common/header.vue';
|
||||
import TopSafe from '@/components/common/top-safe.nvue'
|
||||
import MyBtn from '@/components/common/my-btn.vue'
|
||||
import func from '@/utils/func.js';
|
||||
import { copyData } from '@/utils/index.js';
|
||||
|
||||
import {
|
||||
getDetail,
|
||||
orderLogistics
|
||||
} from "@/api/order.js";
|
||||
|
||||
export default {
|
||||
components: { Header, TopSafe,MyBtn },
|
||||
data() {
|
||||
return {
|
||||
express:null,
|
||||
curData:null,
|
||||
id:0
|
||||
};
|
||||
},
|
||||
|
||||
onLoad(option) {
|
||||
// this.userinfo();
|
||||
if(option && option.id){
|
||||
this.id = Number(option.id);
|
||||
this.init();
|
||||
}
|
||||
},
|
||||
methods: {
|
||||
copyData,
|
||||
init() {
|
||||
this.detail();
|
||||
},
|
||||
detail(){
|
||||
let params = {
|
||||
id:this.id
|
||||
}
|
||||
getDetail(params).then(res=>{
|
||||
if(res.bizcode == 100){
|
||||
this.curData = res.data;
|
||||
if(this.curData.items[0].expressNo){
|
||||
this.getOrderLogistics();
|
||||
}
|
||||
}
|
||||
console.log('id',res)
|
||||
})
|
||||
},
|
||||
getOrderLogistics(){
|
||||
let params = {
|
||||
mailNo:this.curData.items[0].expressNo
|
||||
}
|
||||
orderLogistics(params).then(res=>{
|
||||
if(res.bizcode == 100){
|
||||
this.express = res.data;
|
||||
this.express.logisticsTraceDetailList.forEach(item=>{
|
||||
item.curTime = func.formatDate(new Date(item.time), 2);
|
||||
})
|
||||
|
||||
}
|
||||
})
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
}
|
||||
</script>
|
||||
|
||||
<style lang="scss" scoped>
|
||||
.setting-view {
|
||||
width: 100%;
|
||||
height: calc(100% - 88rpx - var(--status-bar-height));
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
align-items: center;
|
||||
.express-panel{
|
||||
width:100%;
|
||||
margin-top:24rpx;
|
||||
height: calc(100% - 24rpx);
|
||||
padding: 0 32rpx;
|
||||
box-sizing: border-box;
|
||||
overflow-y: auto;
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
background-color: #fff;
|
||||
.top-one{
|
||||
width:100%;
|
||||
display: flex;
|
||||
flex-direction: row;
|
||||
align-items: center;
|
||||
min-height:70rpx;
|
||||
}
|
||||
}
|
||||
}
|
||||
</style>
|
||||
<template>
|
||||
<view class="content">
|
||||
<TopSafe></TopSafe>
|
||||
<Header title="物流信息" />
|
||||
<view class="setting-view">
|
||||
<view class="express-panel">
|
||||
<view class="top-one" style="margin-top:12rpx">
|
||||
<u-icon name="email" color="#333" size="20"></u-icon>
|
||||
<text class="text-24 text-fu text-space" style="margin-left:10rpx;line-height: 1.4;margin-right:12rpx">{{curData && `${curData.items[0].expressName}:`}}</text>
|
||||
<text class="text-24 text-zu1 text-space" style="margin-left:10rpx;line-height: 1.4;margin-right:12rpx">{{curData && `${curData.items[0].expressNo}`}}</text>
|
||||
<up-image src="/static/common/copy.png" width="14" height="14" bgColor="#f1f6ff00"
|
||||
@click="copyData(curData ? curData.items[0].expressNo :'')"></up-image>
|
||||
</view>
|
||||
<view class="top-one" style="border-bottom:2rpx solid #eee">
|
||||
<u-icon name="map" color="#333" size="20"></u-icon>
|
||||
<text class="text-24 text-fu text-space" style="margin-left:10rpx;line-height: 1.4;margin-right:12rpx">收货地址</text>
|
||||
<text class="text-24 text-zu text-space" style="margin-left:10rpx;line-height: 1.4;margin-right:12rpx">{{curData && `${curData.countryName} ${curData.cityName} ${curData.areaName} ${curData.address}`}}</text>
|
||||
</view>
|
||||
<u-steps current="0" direction="column" dot activeColor="#7934F6" style="margin-top:20rpx">
|
||||
<u-steps-item :style="`width:calc(100vw - 48rpx)`"
|
||||
:title="item.areaName + ' ' + item.curTime" :desc="item.desc" v-for="(item,index) in express.logisticsTraceDetailList" :key="index"></u-steps-item>
|
||||
</u-steps>
|
||||
</view>
|
||||
|
||||
|
||||
</view>
|
||||
<up-toast ref="uToastRef"></up-toast>
|
||||
<!-- 腾讯电子签H5 → 集成到UniApp -->
|
||||
</view>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
import { getUserInfo,uploadAvatar } from '@/api/auth.js';
|
||||
import { uploadImage, uploadImg } from '@/api/common.js';
|
||||
import { IMG_TYPE } from '@/utils/enumUtils.js';
|
||||
import { BASE_URL, Authorization } from '@/utils/config.js';
|
||||
import { getStorageFun, TOKEN_NAME,clear } from '@/utils/auth.js';
|
||||
import Header from '@/components/common/header.vue';
|
||||
import TopSafe from '@/components/common/top-safe.nvue'
|
||||
import MyBtn from '@/components/common/my-btn.vue'
|
||||
import func from '@/utils/func.js';
|
||||
import { copyData } from '@/utils/index.js';
|
||||
|
||||
import {
|
||||
getDetail,
|
||||
orderLogistics
|
||||
} from "@/api/order.js";
|
||||
|
||||
export default {
|
||||
components: { Header, TopSafe,MyBtn },
|
||||
data() {
|
||||
return {
|
||||
express:null,
|
||||
curData:null,
|
||||
id:0
|
||||
};
|
||||
},
|
||||
|
||||
onLoad(option) {
|
||||
// this.userinfo();
|
||||
if(option && option.id){
|
||||
this.id = Number(option.id);
|
||||
this.init();
|
||||
}
|
||||
},
|
||||
methods: {
|
||||
copyData,
|
||||
init() {
|
||||
this.detail();
|
||||
},
|
||||
detail(){
|
||||
let params = {
|
||||
id:this.id
|
||||
}
|
||||
getDetail(params).then(res=>{
|
||||
if(res.bizcode == 100){
|
||||
this.curData = res.data;
|
||||
if(this.curData.items[0].expressNo){
|
||||
this.getOrderLogistics();
|
||||
}
|
||||
}
|
||||
console.log('id',res)
|
||||
})
|
||||
},
|
||||
getOrderLogistics(){
|
||||
let params = {
|
||||
mailNo:this.curData.items[0].expressNo
|
||||
}
|
||||
orderLogistics(params).then(res=>{
|
||||
if(res.bizcode == 100){
|
||||
this.express = res.data;
|
||||
this.express.logisticsTraceDetailList.forEach(item=>{
|
||||
item.curTime = func.formatDate(new Date(item.time), 2);
|
||||
})
|
||||
|
||||
}
|
||||
})
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
}
|
||||
</script>
|
||||
|
||||
<style lang="scss" scoped>
|
||||
.setting-view {
|
||||
width: 100%;
|
||||
height: calc(100% - 88rpx - var(--status-bar-height));
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
align-items: center;
|
||||
.express-panel{
|
||||
width:100%;
|
||||
margin-top:24rpx;
|
||||
height: calc(100% - 24rpx);
|
||||
padding: 0 32rpx;
|
||||
box-sizing: border-box;
|
||||
overflow-y: auto;
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
background-color: #fff;
|
||||
.top-one{
|
||||
width:100%;
|
||||
display: flex;
|
||||
flex-direction: row;
|
||||
align-items: center;
|
||||
min-height:70rpx;
|
||||
}
|
||||
}
|
||||
}
|
||||
</style>
|
||||
|
||||
@@ -1,257 +1,257 @@
|
||||
<template>
|
||||
<view class="content">
|
||||
<TopSafe></TopSafe>
|
||||
<Header :title="topText" />
|
||||
<view class="contract-view">
|
||||
<view class="mid-box">
|
||||
<view class="input-view">
|
||||
<u-icon name="phone" style="margin-left:32rpx" size="24"></u-icon>
|
||||
<up-input placeholder="请输入手机号" border="surround" v-model="form.mobile" :customStyle="inputCss"></up-input>
|
||||
</view>
|
||||
<view class="input-view">
|
||||
<u-icon name="clock" style="margin-left:32rpx" size="24"></u-icon>
|
||||
<up-input placeholder="请输入验证码" border="surround" v-model="form.smsCode" :customStyle="inputCss">
|
||||
<template #suffix style="margin-right: 10rpx;">
|
||||
<view v-if="countdown" class="code-warp">
|
||||
<up-count-down :time="60 * 1000" format="ss" @finish="countdown = false"></up-count-down>
|
||||
<text style="margin-left: 10rpx;">s</text>
|
||||
</view>
|
||||
<view v-else @click="getMobileCode" class="code_msg">
|
||||
获取验证码
|
||||
</view>
|
||||
</template>
|
||||
</up-input>
|
||||
</view>
|
||||
<view class="input-view">
|
||||
<u-icon name="lock" style="margin-left:32rpx" size="24"></u-icon>
|
||||
<up-input placeholder="请输入密码" border="surround" v-model="form.pass" :customStyle="inputCss"
|
||||
:type="loginPasswordIsShow ? 'text' : 'password'">
|
||||
<template #suffix style="margin-right: 10rpx;">
|
||||
<up-image v-if="loginPasswordIsShow" src="/static/login/show.png" width="20" height="20" bgColor="#f1f6ff00"
|
||||
@click="loginPasswordIsShow = false;"></up-image>
|
||||
<up-image v-else src="/static/login/hidden.png" width="20" height="20" bgColor="#f1f6ff00"
|
||||
@click="loginPasswordIsShow = true;"></up-image>
|
||||
</template>
|
||||
</up-input>
|
||||
</view>
|
||||
<view class="input-view">
|
||||
<u-icon name="lock" style="margin-left:32rpx" size="24"></u-icon>
|
||||
<up-input placeholder="请输入密码" border="surround" v-model="form.passOne" :customStyle="inputCss"
|
||||
:type="loginPassword2IsShow ? 'text' : 'password'">
|
||||
<template #suffix style="margin-right: 10rpx;">
|
||||
<up-image v-if="loginPassword2IsShow" src="/static/login/show.png" width="20" height="20" bgColor="#f1f6ff00"
|
||||
@click="loginPassword2IsShow = false;"></up-image>
|
||||
<up-image v-else src="/static/login/hidden.png" width="20" height="20" bgColor="#f1f6ff00"
|
||||
@click="loginPassword2IsShow = true;"></up-image>
|
||||
</template>
|
||||
</up-input>
|
||||
</view>
|
||||
</view>
|
||||
</view>
|
||||
<view class="bottom-btn">
|
||||
<MyBtn @ok="registerFun"></MyBtn>
|
||||
</view>
|
||||
<up-toast ref="uToastRef"></up-toast>
|
||||
</view>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
import { getUserList } from '@/api/common.js';
|
||||
import MyBtn from '@/components/common/my-btn.vue'
|
||||
import { forgotPassword,forgotPayPassword } from '@/api/auth.js';
|
||||
import Header from '@/components/common/header.vue';
|
||||
import { clear } from '@/utils/auth.js';
|
||||
import TopSafe from '@/components/common/top-safe.nvue'
|
||||
import CryptoJS from 'crypto-js';
|
||||
|
||||
export default {
|
||||
components: { Header, TopSafe,MyBtn },
|
||||
data() {
|
||||
return {
|
||||
form:{
|
||||
mobile:'',
|
||||
smsCode:'',
|
||||
pass:'',
|
||||
passOne:''
|
||||
},
|
||||
loginPasswordIsShow:false,
|
||||
loginPassword2IsShow:false,
|
||||
countdown: false,// 清空倒计时
|
||||
inputCss: {
|
||||
"height": '80rpx',
|
||||
"background": "#F3F3F3FF",
|
||||
"border-radius": "30rpx",
|
||||
"border": "0rpx",
|
||||
"padding-left": "12rpx",
|
||||
},
|
||||
topText:'',
|
||||
type:'1'
|
||||
};
|
||||
},
|
||||
onShow() {
|
||||
},
|
||||
onLoad(options) {
|
||||
if(options.type){
|
||||
this.type = options.type;
|
||||
this.init();
|
||||
}
|
||||
},
|
||||
methods: {
|
||||
init(){
|
||||
if(this.type == '1'){
|
||||
this.topText = '设置交易密码';
|
||||
}else if(this.type == '2'){
|
||||
this.topText = '设置登录密码';
|
||||
}else if(this.type == '3'){
|
||||
this.topText = '找回登录密码';
|
||||
}
|
||||
},
|
||||
async getMobileCode() {
|
||||
const form = this.form;
|
||||
if (!form.mobile) {
|
||||
this.$refs.uToastRef.show({
|
||||
type: 'error',
|
||||
message: "请输入手机号码",
|
||||
});
|
||||
return;
|
||||
}
|
||||
this.countdown = true;
|
||||
|
||||
const params = {
|
||||
mobile: form.mobile,
|
||||
type: this.type == '1' ? 'tradepw' : 'passwd'
|
||||
}
|
||||
const response = await getUserList(params);
|
||||
if (response && response.bizcode === 100) {
|
||||
this.$refs.uToastRef.show({
|
||||
type: 'success',
|
||||
message: response.msg,
|
||||
});
|
||||
} else {
|
||||
this.countdown = false;
|
||||
}
|
||||
},
|
||||
registerFun(){
|
||||
if (!this.form.mobile) {
|
||||
this.$refs.uToastRef.show({
|
||||
type: 'error',
|
||||
message: "请输入手机号码",
|
||||
});
|
||||
return;
|
||||
}
|
||||
if (!this.form.smsCode) {
|
||||
this.$refs.uToastRef.show({
|
||||
type: 'error',
|
||||
message: "请输入验证码",
|
||||
});
|
||||
return;
|
||||
}
|
||||
if (!this.form.pass || !this.form.passOne) {
|
||||
this.$refs.uToastRef.show({
|
||||
type: 'error',
|
||||
message: "请输入密码",
|
||||
});
|
||||
return;
|
||||
}
|
||||
if (this.form.pass !== this.form.passOne) {
|
||||
this.$refs.uToastRef.show({
|
||||
type: 'error',
|
||||
message: "两次输入的登录密码不一致",
|
||||
});
|
||||
return;
|
||||
}
|
||||
let params = {
|
||||
verificationCode:this.form.smsCode,
|
||||
newPassword:CryptoJS.MD5(this.form.pass).toString(),
|
||||
phone:this.form.mobile
|
||||
}
|
||||
if(this.type == '1'){
|
||||
if (this.form.pass.length != 6 || this.form.passOne.length != 6) {
|
||||
this.$refs.uToastRef.show({
|
||||
type: 'error',
|
||||
message: "请输入6位密码",
|
||||
});
|
||||
return;
|
||||
}
|
||||
forgotPayPassword(params).then(res=>{
|
||||
if(res.bizcode == 100){
|
||||
this.$refs.uToastRef.show({
|
||||
type: 'success',
|
||||
message: "密码设置成功",
|
||||
});
|
||||
setTimeout(()=>{
|
||||
uni.navigateBack();
|
||||
},2000)
|
||||
//
|
||||
}
|
||||
})
|
||||
}else{
|
||||
|
||||
forgotPassword(params).then(res=>{
|
||||
if(res.bizcode == 100){
|
||||
this.$refs.uToastRef.show({
|
||||
type: 'success',
|
||||
message: "密码设置成功",
|
||||
});
|
||||
clear();
|
||||
setTimeout(()=>{
|
||||
uni.redirectTo({
|
||||
url: '/pages/login_package/login/login'
|
||||
})
|
||||
},2000)
|
||||
}
|
||||
})
|
||||
}
|
||||
|
||||
|
||||
},
|
||||
}
|
||||
}
|
||||
</script>
|
||||
|
||||
<style lang="scss" scoped>
|
||||
.bottom-btn{
|
||||
width: 100%;
|
||||
margin-bottom:92rpx;
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
align-items: center;
|
||||
padding: 0 32rpx;
|
||||
box-sizing: border-box;
|
||||
position: relative;
|
||||
|
||||
}
|
||||
.contract-view {
|
||||
width: 100%;
|
||||
height: calc(100% - 88rpx - 92rpx - 88rpx - var(--status-bar-height));
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
align-items: center;
|
||||
overflow-y: auto;
|
||||
padding: 0 32rpx;
|
||||
box-sizing: border-box;
|
||||
// background-color: #fff;
|
||||
.mid-box{
|
||||
width:100%;
|
||||
border-radius: 16rpx;
|
||||
padding: 16rpx 32rpx 48rpx;
|
||||
margin-top:32rpx;
|
||||
box-sizing: border-box;
|
||||
background-color: #fff;
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
.input-view{
|
||||
width:100%;
|
||||
height:100rpx;
|
||||
background-color: #f5f5f5;
|
||||
border-radius: 20rpx;
|
||||
margin-top:32rpx;
|
||||
display: flex;
|
||||
flex-direction: row;
|
||||
align-items: center;
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
</style>
|
||||
<template>
|
||||
<view class="content">
|
||||
<TopSafe></TopSafe>
|
||||
<Header :title="topText" />
|
||||
<view class="contract-view">
|
||||
<view class="mid-box">
|
||||
<view class="input-view">
|
||||
<u-icon name="phone" style="margin-left:32rpx" size="24"></u-icon>
|
||||
<up-input placeholder="请输入手机号" border="surround" v-model="form.mobile" :customStyle="inputCss"></up-input>
|
||||
</view>
|
||||
<view class="input-view">
|
||||
<u-icon name="clock" style="margin-left:32rpx" size="24"></u-icon>
|
||||
<up-input placeholder="请输入验证码" border="surround" v-model="form.smsCode" :customStyle="inputCss">
|
||||
<template #suffix style="margin-right: 10rpx;">
|
||||
<view v-if="countdown" class="code-warp">
|
||||
<up-count-down :time="60 * 1000" format="ss" @finish="countdown = false"></up-count-down>
|
||||
<text style="margin-left: 10rpx;">s</text>
|
||||
</view>
|
||||
<view v-else @click="getMobileCode" class="code_msg">
|
||||
获取验证码
|
||||
</view>
|
||||
</template>
|
||||
</up-input>
|
||||
</view>
|
||||
<view class="input-view">
|
||||
<u-icon name="lock" style="margin-left:32rpx" size="24"></u-icon>
|
||||
<up-input placeholder="请输入密码" border="surround" v-model="form.pass" :customStyle="inputCss"
|
||||
:type="loginPasswordIsShow ? 'text' : 'password'">
|
||||
<template #suffix style="margin-right: 10rpx;">
|
||||
<up-image v-if="loginPasswordIsShow" src="/static/login/show.png" width="20" height="20" bgColor="#f1f6ff00"
|
||||
@click="loginPasswordIsShow = false;"></up-image>
|
||||
<up-image v-else src="/static/login/hidden.png" width="20" height="20" bgColor="#f1f6ff00"
|
||||
@click="loginPasswordIsShow = true;"></up-image>
|
||||
</template>
|
||||
</up-input>
|
||||
</view>
|
||||
<view class="input-view">
|
||||
<u-icon name="lock" style="margin-left:32rpx" size="24"></u-icon>
|
||||
<up-input placeholder="请输入密码" border="surround" v-model="form.passOne" :customStyle="inputCss"
|
||||
:type="loginPassword2IsShow ? 'text' : 'password'">
|
||||
<template #suffix style="margin-right: 10rpx;">
|
||||
<up-image v-if="loginPassword2IsShow" src="/static/login/show.png" width="20" height="20" bgColor="#f1f6ff00"
|
||||
@click="loginPassword2IsShow = false;"></up-image>
|
||||
<up-image v-else src="/static/login/hidden.png" width="20" height="20" bgColor="#f1f6ff00"
|
||||
@click="loginPassword2IsShow = true;"></up-image>
|
||||
</template>
|
||||
</up-input>
|
||||
</view>
|
||||
</view>
|
||||
</view>
|
||||
<view class="bottom-btn">
|
||||
<MyBtn @ok="registerFun"></MyBtn>
|
||||
</view>
|
||||
<up-toast ref="uToastRef"></up-toast>
|
||||
</view>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
import { getUserList } from '@/api/common.js';
|
||||
import MyBtn from '@/components/common/my-btn.vue'
|
||||
import { forgotPassword,forgotPayPassword } from '@/api/auth.js';
|
||||
import Header from '@/components/common/header.vue';
|
||||
import { clear } from '@/utils/auth.js';
|
||||
import TopSafe from '@/components/common/top-safe.nvue'
|
||||
import CryptoJS from 'crypto-js';
|
||||
|
||||
export default {
|
||||
components: { Header, TopSafe,MyBtn },
|
||||
data() {
|
||||
return {
|
||||
form:{
|
||||
mobile:'',
|
||||
smsCode:'',
|
||||
pass:'',
|
||||
passOne:''
|
||||
},
|
||||
loginPasswordIsShow:false,
|
||||
loginPassword2IsShow:false,
|
||||
countdown: false,// 清空倒计时
|
||||
inputCss: {
|
||||
"height": '80rpx',
|
||||
"background": "#F3F3F3FF",
|
||||
"border-radius": "30rpx",
|
||||
"border": "0rpx",
|
||||
"padding-left": "12rpx",
|
||||
},
|
||||
topText:'',
|
||||
type:'1'
|
||||
};
|
||||
},
|
||||
onShow() {
|
||||
},
|
||||
onLoad(options) {
|
||||
if(options.type){
|
||||
this.type = options.type;
|
||||
this.init();
|
||||
}
|
||||
},
|
||||
methods: {
|
||||
init(){
|
||||
if(this.type == '1'){
|
||||
this.topText = '设置交易密码';
|
||||
}else if(this.type == '2'){
|
||||
this.topText = '设置登录密码';
|
||||
}else if(this.type == '3'){
|
||||
this.topText = '找回登录密码';
|
||||
}
|
||||
},
|
||||
async getMobileCode() {
|
||||
const form = this.form;
|
||||
if (!form.mobile) {
|
||||
this.$refs.uToastRef.show({
|
||||
type: 'error',
|
||||
message: "请输入手机号码",
|
||||
});
|
||||
return;
|
||||
}
|
||||
this.countdown = true;
|
||||
|
||||
const params = {
|
||||
mobile: form.mobile,
|
||||
type: this.type == '1' ? 'tradepw' : 'passwd'
|
||||
}
|
||||
const response = await getUserList(params);
|
||||
if (response && response.bizcode === 100) {
|
||||
this.$refs.uToastRef.show({
|
||||
type: 'success',
|
||||
message: response.msg,
|
||||
});
|
||||
} else {
|
||||
this.countdown = false;
|
||||
}
|
||||
},
|
||||
registerFun(){
|
||||
if (!this.form.mobile) {
|
||||
this.$refs.uToastRef.show({
|
||||
type: 'error',
|
||||
message: "请输入手机号码",
|
||||
});
|
||||
return;
|
||||
}
|
||||
if (!this.form.smsCode) {
|
||||
this.$refs.uToastRef.show({
|
||||
type: 'error',
|
||||
message: "请输入验证码",
|
||||
});
|
||||
return;
|
||||
}
|
||||
if (!this.form.pass || !this.form.passOne) {
|
||||
this.$refs.uToastRef.show({
|
||||
type: 'error',
|
||||
message: "请输入密码",
|
||||
});
|
||||
return;
|
||||
}
|
||||
if (this.form.pass !== this.form.passOne) {
|
||||
this.$refs.uToastRef.show({
|
||||
type: 'error',
|
||||
message: "两次输入的登录密码不一致",
|
||||
});
|
||||
return;
|
||||
}
|
||||
let params = {
|
||||
verificationCode:this.form.smsCode,
|
||||
newPassword:CryptoJS.MD5(this.form.pass).toString(),
|
||||
phone:this.form.mobile
|
||||
}
|
||||
if(this.type == '1'){
|
||||
if (this.form.pass.length != 6 || this.form.passOne.length != 6) {
|
||||
this.$refs.uToastRef.show({
|
||||
type: 'error',
|
||||
message: "请输入6位密码",
|
||||
});
|
||||
return;
|
||||
}
|
||||
forgotPayPassword(params).then(res=>{
|
||||
if(res.bizcode == 100){
|
||||
this.$refs.uToastRef.show({
|
||||
type: 'success',
|
||||
message: "密码设置成功",
|
||||
});
|
||||
setTimeout(()=>{
|
||||
uni.navigateBack();
|
||||
},2000)
|
||||
//
|
||||
}
|
||||
})
|
||||
}else{
|
||||
|
||||
forgotPassword(params).then(res=>{
|
||||
if(res.bizcode == 100){
|
||||
this.$refs.uToastRef.show({
|
||||
type: 'success',
|
||||
message: "密码设置成功",
|
||||
});
|
||||
clear();
|
||||
setTimeout(()=>{
|
||||
uni.redirectTo({
|
||||
url: '/pages/login_package/login/login'
|
||||
})
|
||||
},2000)
|
||||
}
|
||||
})
|
||||
}
|
||||
|
||||
|
||||
},
|
||||
}
|
||||
}
|
||||
</script>
|
||||
|
||||
<style lang="scss" scoped>
|
||||
.bottom-btn{
|
||||
width: 100%;
|
||||
margin-bottom:92rpx;
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
align-items: center;
|
||||
padding: 0 32rpx;
|
||||
box-sizing: border-box;
|
||||
position: relative;
|
||||
|
||||
}
|
||||
.contract-view {
|
||||
width: 100%;
|
||||
height: calc(100% - 88rpx - 92rpx - 88rpx - var(--status-bar-height));
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
align-items: center;
|
||||
overflow-y: auto;
|
||||
padding: 0 32rpx;
|
||||
box-sizing: border-box;
|
||||
// background-color: #fff;
|
||||
.mid-box{
|
||||
width:100%;
|
||||
border-radius: 16rpx;
|
||||
padding: 16rpx 32rpx 48rpx;
|
||||
margin-top:32rpx;
|
||||
box-sizing: border-box;
|
||||
background-color: #fff;
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
.input-view{
|
||||
width:100%;
|
||||
height:100rpx;
|
||||
background-color: #f5f5f5;
|
||||
border-radius: 20rpx;
|
||||
margin-top:32rpx;
|
||||
display: flex;
|
||||
flex-direction: row;
|
||||
align-items: center;
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
</style>
|
||||
|
||||
@@ -1,87 +1,87 @@
|
||||
<template>
|
||||
<view class="content">
|
||||
<TopSafe></TopSafe>
|
||||
<view class="setting-view" v-if="h5Url">
|
||||
<iframe :src="h5Url" frameborder="no" border="0" class="web-view">
|
||||
|
||||
</iframe>
|
||||
</view>
|
||||
<!-- 腾讯电子签H5 → 集成到UniApp -->
|
||||
</view>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
import { getUserInfo,uploadAvatar } from '@/api/auth.js';
|
||||
import { uploadImage, uploadImg } from '@/api/common.js';
|
||||
import { IMG_TYPE } from '@/utils/enumUtils.js';
|
||||
import { BASE_URL, Authorization } from '@/utils/config.js';
|
||||
import { getStorageFun, TOKEN_NAME,clear } from '@/utils/auth.js';
|
||||
import Header from '@/components/common/header.vue';
|
||||
import TopSafe from '@/components/common/top-safe.nvue'
|
||||
import MyBtn from '@/components/common/my-btn.vue'
|
||||
import func from '@/utils/func.js';
|
||||
|
||||
export default {
|
||||
components: { Header, TopSafe,MyBtn },
|
||||
data() {
|
||||
return {
|
||||
h5Url:'',
|
||||
|
||||
};
|
||||
},
|
||||
onShow() {
|
||||
},
|
||||
onLoad(option) {
|
||||
if(option.type ){
|
||||
this.init(option.type);
|
||||
}
|
||||
},
|
||||
methods: {
|
||||
init(type) {
|
||||
this.getUserInfo(type)
|
||||
},
|
||||
async getUserInfo(type) {
|
||||
const result = await getUserInfo();
|
||||
if (result && result.bizcode === 100) {
|
||||
const data = result.data;
|
||||
this.currentUserData = result.data || {};
|
||||
|
||||
let url = `https://www.aigcyun.cn/uniChat/#/?skillGroupId=${type}&enterpriseId=1435&extraData=`;
|
||||
let addHyExtraData = {
|
||||
customerId:data.id,
|
||||
customerName:data.nickname,
|
||||
};
|
||||
this.h5Url = url + encodeURIComponent(JSON.stringify(addHyExtraData))
|
||||
}
|
||||
},
|
||||
|
||||
}
|
||||
}
|
||||
</script>
|
||||
|
||||
<style lang="scss" scoped>
|
||||
.web-view{
|
||||
|
||||
height:100%;
|
||||
width:100%;
|
||||
position: relative;
|
||||
}
|
||||
.setting-view {
|
||||
width: 100%;
|
||||
height: calc(100% - var(--status-bar-height));
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
align-items: center;
|
||||
overflow-y: auto;
|
||||
box-sizing: border-box;
|
||||
position: relative;
|
||||
|
||||
}
|
||||
|
||||
</style>
|
||||
<style>
|
||||
.chatModel{
|
||||
height:calc(100% - var(--status-bar-height));
|
||||
margin-top:var(--status-bar-height);
|
||||
}
|
||||
</style>
|
||||
<template>
|
||||
<view class="content">
|
||||
<TopSafe></TopSafe>
|
||||
<view class="setting-view" v-if="h5Url">
|
||||
<iframe :src="h5Url" frameborder="no" border="0" class="web-view">
|
||||
|
||||
</iframe>
|
||||
</view>
|
||||
<!-- 腾讯电子签H5 → 集成到UniApp -->
|
||||
</view>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
import { getUserInfo,uploadAvatar } from '@/api/auth.js';
|
||||
import { uploadImage, uploadImg } from '@/api/common.js';
|
||||
import { IMG_TYPE } from '@/utils/enumUtils.js';
|
||||
import { BASE_URL, Authorization } from '@/utils/config.js';
|
||||
import { getStorageFun, TOKEN_NAME,clear } from '@/utils/auth.js';
|
||||
import Header from '@/components/common/header.vue';
|
||||
import TopSafe from '@/components/common/top-safe.nvue'
|
||||
import MyBtn from '@/components/common/my-btn.vue'
|
||||
import func from '@/utils/func.js';
|
||||
|
||||
export default {
|
||||
components: { Header, TopSafe,MyBtn },
|
||||
data() {
|
||||
return {
|
||||
h5Url:'',
|
||||
|
||||
};
|
||||
},
|
||||
onShow() {
|
||||
},
|
||||
onLoad(option) {
|
||||
if(option.type ){
|
||||
this.init(option.type);
|
||||
}
|
||||
},
|
||||
methods: {
|
||||
init(type) {
|
||||
this.getUserInfo(type)
|
||||
},
|
||||
async getUserInfo(type) {
|
||||
const result = await getUserInfo();
|
||||
if (result && result.bizcode === 100) {
|
||||
const data = result.data;
|
||||
this.currentUserData = result.data || {};
|
||||
|
||||
let url = `https://www.aigcyun.cn/uniChat/#/?skillGroupId=${type}&enterpriseId=1435&extraData=`;
|
||||
let addHyExtraData = {
|
||||
customerId:data.id,
|
||||
customerName:data.nickname,
|
||||
};
|
||||
this.h5Url = url + encodeURIComponent(JSON.stringify(addHyExtraData))
|
||||
}
|
||||
},
|
||||
|
||||
}
|
||||
}
|
||||
</script>
|
||||
|
||||
<style lang="scss" scoped>
|
||||
.web-view{
|
||||
|
||||
height:100%;
|
||||
width:100%;
|
||||
position: relative;
|
||||
}
|
||||
.setting-view {
|
||||
width: 100%;
|
||||
height: calc(100% - var(--status-bar-height));
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
align-items: center;
|
||||
overflow-y: auto;
|
||||
box-sizing: border-box;
|
||||
position: relative;
|
||||
|
||||
}
|
||||
|
||||
</style>
|
||||
<style>
|
||||
.chatModel{
|
||||
height:calc(100% - var(--status-bar-height));
|
||||
margin-top:var(--status-bar-height);
|
||||
}
|
||||
</style>
|
||||
|
||||
@@ -1,136 +1,136 @@
|
||||
<template>
|
||||
<view class="content">
|
||||
<TopSafe></TopSafe>
|
||||
<Header title="信任桥APP账号注销协议" />
|
||||
<view class="setting-view">
|
||||
<text class="text-28 text-zu1 mt-24">尊敬的用户:</text>
|
||||
<text class="text-28 text-zu1 mt-24">感谢您使用信任桥APP。为了保护您的合法权益,请您在申请注销前,仔细阅读并充分理解本协议。</text>
|
||||
<text class="text-28 text-zu1 mt-24">一旦您提交注销申请并完成相关流程,即表示您已知悉并同意本协议的全部内容。</text>
|
||||
<text class="text-36 text-zu mt-24 text-bold">一、账号注销的结果</text>
|
||||
<text class="text-28 text-zu1 mt-24">账号一旦注销成功,将无法恢复。届时:</text>
|
||||
<text class="text-28 text-zu1 mt-24">1、您的账号将无法再登录或使用原有服务。</text>
|
||||
<text class="text-28 text-zu1 mt-24">2、您的历史订单记录将无法查询。</text>
|
||||
<text class="text-28 text-zu1 mt-24">3、您将放弃所有会员等级权益与会员积分。</text>
|
||||
<text class="text-28 text-zu1 mt-24">4、您的账户钱包余额、优惠券及其他虚拟资产将全部清零且无法找回。</text>
|
||||
|
||||
<text class="text-36 text-zu mt-24 text-bold">二、您在申请注销前需确认</text>
|
||||
<text class="text-28 text-zu1 mt-24">1、您的账号当前无未完成的订单、未结清的款项或其他争议。</text>
|
||||
<text class="text-28 text-zu1 mt-24">2、您已妥善处理与账号相关的资金、权益及信息。</text>
|
||||
<text class="text-28 text-zu1 mt-24">3、您已明确知晓注销操作不可逆转。</text>
|
||||
|
||||
<text class="text-36 text-zu mt-24 text-bold">三、免责条款</text>
|
||||
<text class="text-28 text-zu1 mt-24">因您主动注销账号而导致的任何信息丢失、权益消耗、资产作废,本平台不承担任何形式的补偿或责任。</text>
|
||||
|
||||
<text class="text-36 text-zu mt-24 text-bold">四、特别提示</text>
|
||||
<text class="text-28 text-zu1 mt-24">1、请您在注销前,确认账号内的余额、积分、优惠券等已合理使用。</text>
|
||||
<text class="text-28 text-zu1 mt-24">2、如您仅因短期不使用,可选择退出登录,而非注销账号。</text>
|
||||
<text class="text-28 text-zu1 mt-24">3、若因违规、欺诈等原因导致平台强制注销账号,将不适用本协议中的补偿或说明。</text>
|
||||
|
||||
<text class="text-36 text-zu mt-24 text-bold">五、协议生效</text>
|
||||
<text class="text-28 text-zu1 mt-24" style="margin-bottom:48rpx">本协议自您点击确认并完成注销申请之时立即生效。</text>
|
||||
</view>
|
||||
|
||||
<up-toast ref="uToastRef"></up-toast>
|
||||
</view>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
import { getUserInfo,updateName } from '@/api/auth.js';
|
||||
import Header from '@/components/common/header.vue';
|
||||
import TopSafe from '@/components/common/top-safe.nvue'
|
||||
import MyBtn from '@/components/common/my-btn.vue'
|
||||
import func from '@/utils/func.js';
|
||||
|
||||
export default {
|
||||
components: { Header, TopSafe,MyBtn },
|
||||
data() {
|
||||
return {
|
||||
userInfo: null,
|
||||
inputText:'',
|
||||
tipsShow:false,
|
||||
content:'是否确定注销账号?'
|
||||
};
|
||||
},
|
||||
onShow() {
|
||||
},
|
||||
onLoad() {
|
||||
this.init();
|
||||
// this.userinfo();
|
||||
},
|
||||
methods: {
|
||||
init() {
|
||||
// this.userinfo()
|
||||
},
|
||||
onJump(){
|
||||
uni.navigateTo({
|
||||
url:'/pages/rwa_package/setting/out-agreement'
|
||||
})
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
</script>
|
||||
|
||||
<style lang="scss" scoped>
|
||||
.bottom-btn{
|
||||
width: 100%;
|
||||
margin-bottom:92rpx;
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
align-items: center;
|
||||
padding: 0 32rpx;
|
||||
box-sizing: border-box;
|
||||
position: relative;
|
||||
|
||||
}
|
||||
.setting-view {
|
||||
width: 100%;
|
||||
height: calc(100% - 88rpx - var(--status-bar-height));
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
overflow-y: auto;
|
||||
padding: 0 32rpx;
|
||||
box-sizing: border-box;
|
||||
position: relative;
|
||||
.name-box{
|
||||
width:100%;
|
||||
border-radius: 16rpx;
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
background-color: #fff;
|
||||
padding: 64rpx 32rpx;
|
||||
box-sizing: border-box;
|
||||
margin-top:24rpx;
|
||||
.mid-view{
|
||||
width:100%;
|
||||
padding: 40rpx 32rpx;
|
||||
box-sizing: border-box;
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
border:2rpx solid #eaeaea;
|
||||
border-radius: 16rpx;
|
||||
margin-top:48rpx;
|
||||
}
|
||||
.top-view{
|
||||
width:100%;
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
align-items: center;
|
||||
}
|
||||
.input-view{
|
||||
border-radius: 20rpx;
|
||||
margin-top:52rpx;
|
||||
width:100%;
|
||||
padding: 0 32rpx;
|
||||
min-height:104rpx;
|
||||
display: flex;
|
||||
flex-direction: row;
|
||||
align-items: center;
|
||||
background-color: #f5f5f5;
|
||||
box-sizing: border-box;
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
</style>
|
||||
<template>
|
||||
<view class="content">
|
||||
<TopSafe></TopSafe>
|
||||
<Header title="信任桥APP账号注销协议" />
|
||||
<view class="setting-view">
|
||||
<text class="text-28 text-zu1 mt-24">尊敬的用户:</text>
|
||||
<text class="text-28 text-zu1 mt-24">感谢您使用信任桥APP。为了保护您的合法权益,请您在申请注销前,仔细阅读并充分理解本协议。</text>
|
||||
<text class="text-28 text-zu1 mt-24">一旦您提交注销申请并完成相关流程,即表示您已知悉并同意本协议的全部内容。</text>
|
||||
<text class="text-36 text-zu mt-24 text-bold">一、账号注销的结果</text>
|
||||
<text class="text-28 text-zu1 mt-24">账号一旦注销成功,将无法恢复。届时:</text>
|
||||
<text class="text-28 text-zu1 mt-24">1、您的账号将无法再登录或使用原有服务。</text>
|
||||
<text class="text-28 text-zu1 mt-24">2、您的历史订单记录将无法查询。</text>
|
||||
<text class="text-28 text-zu1 mt-24">3、您将放弃所有会员等级权益与会员积分。</text>
|
||||
<text class="text-28 text-zu1 mt-24">4、您的账户钱包余额、优惠券及其他虚拟资产将全部清零且无法找回。</text>
|
||||
|
||||
<text class="text-36 text-zu mt-24 text-bold">二、您在申请注销前需确认</text>
|
||||
<text class="text-28 text-zu1 mt-24">1、您的账号当前无未完成的订单、未结清的款项或其他争议。</text>
|
||||
<text class="text-28 text-zu1 mt-24">2、您已妥善处理与账号相关的资金、权益及信息。</text>
|
||||
<text class="text-28 text-zu1 mt-24">3、您已明确知晓注销操作不可逆转。</text>
|
||||
|
||||
<text class="text-36 text-zu mt-24 text-bold">三、免责条款</text>
|
||||
<text class="text-28 text-zu1 mt-24">因您主动注销账号而导致的任何信息丢失、权益消耗、资产作废,本平台不承担任何形式的补偿或责任。</text>
|
||||
|
||||
<text class="text-36 text-zu mt-24 text-bold">四、特别提示</text>
|
||||
<text class="text-28 text-zu1 mt-24">1、请您在注销前,确认账号内的余额、积分、优惠券等已合理使用。</text>
|
||||
<text class="text-28 text-zu1 mt-24">2、如您仅因短期不使用,可选择退出登录,而非注销账号。</text>
|
||||
<text class="text-28 text-zu1 mt-24">3、若因违规、欺诈等原因导致平台强制注销账号,将不适用本协议中的补偿或说明。</text>
|
||||
|
||||
<text class="text-36 text-zu mt-24 text-bold">五、协议生效</text>
|
||||
<text class="text-28 text-zu1 mt-24" style="margin-bottom:48rpx">本协议自您点击确认并完成注销申请之时立即生效。</text>
|
||||
</view>
|
||||
|
||||
<up-toast ref="uToastRef"></up-toast>
|
||||
</view>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
import { getUserInfo,updateName } from '@/api/auth.js';
|
||||
import Header from '@/components/common/header.vue';
|
||||
import TopSafe from '@/components/common/top-safe.nvue'
|
||||
import MyBtn from '@/components/common/my-btn.vue'
|
||||
import func from '@/utils/func.js';
|
||||
|
||||
export default {
|
||||
components: { Header, TopSafe,MyBtn },
|
||||
data() {
|
||||
return {
|
||||
userInfo: null,
|
||||
inputText:'',
|
||||
tipsShow:false,
|
||||
content:'是否确定注销账号?'
|
||||
};
|
||||
},
|
||||
onShow() {
|
||||
},
|
||||
onLoad() {
|
||||
this.init();
|
||||
// this.userinfo();
|
||||
},
|
||||
methods: {
|
||||
init() {
|
||||
// this.userinfo()
|
||||
},
|
||||
onJump(){
|
||||
uni.navigateTo({
|
||||
url:'/pages/rwa_package/setting/out-agreement'
|
||||
})
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
</script>
|
||||
|
||||
<style lang="scss" scoped>
|
||||
.bottom-btn{
|
||||
width: 100%;
|
||||
margin-bottom:92rpx;
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
align-items: center;
|
||||
padding: 0 32rpx;
|
||||
box-sizing: border-box;
|
||||
position: relative;
|
||||
|
||||
}
|
||||
.setting-view {
|
||||
width: 100%;
|
||||
height: calc(100% - 88rpx - var(--status-bar-height));
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
overflow-y: auto;
|
||||
padding: 0 32rpx;
|
||||
box-sizing: border-box;
|
||||
position: relative;
|
||||
.name-box{
|
||||
width:100%;
|
||||
border-radius: 16rpx;
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
background-color: #fff;
|
||||
padding: 64rpx 32rpx;
|
||||
box-sizing: border-box;
|
||||
margin-top:24rpx;
|
||||
.mid-view{
|
||||
width:100%;
|
||||
padding: 40rpx 32rpx;
|
||||
box-sizing: border-box;
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
border:2rpx solid #eaeaea;
|
||||
border-radius: 16rpx;
|
||||
margin-top:48rpx;
|
||||
}
|
||||
.top-view{
|
||||
width:100%;
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
align-items: center;
|
||||
}
|
||||
.input-view{
|
||||
border-radius: 20rpx;
|
||||
margin-top:52rpx;
|
||||
width:100%;
|
||||
padding: 0 32rpx;
|
||||
min-height:104rpx;
|
||||
display: flex;
|
||||
flex-direction: row;
|
||||
align-items: center;
|
||||
background-color: #f5f5f5;
|
||||
box-sizing: border-box;
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
</style>
|
||||
|
||||
@@ -1,154 +1,154 @@
|
||||
<template>
|
||||
<view class="content">
|
||||
<TopSafe></TopSafe>
|
||||
<Header title="注销账号" />
|
||||
<view class="setting-view">
|
||||
<view class="name-box">
|
||||
<text class="text-zu text-38">请输入验证码</text>
|
||||
<text class="text-fu text-28 mt-24" >验证码已发送至 {{userInfo && userInfo.mobile1}}</text>
|
||||
<u-code-input size="40" focus disabledDot @finish="onCode" :maxlength="6" v-model="code" style="margin-top:32rpx"></u-code-input>
|
||||
<view class="flex-c mt-32">
|
||||
<view v-if="countdown" class="code-warp">
|
||||
<up-count-down :time="60 * 1000" format="ss" @finish="countdown = false"></up-count-down>
|
||||
<text style="margin-left: 10rpx;">s</text>
|
||||
</view>
|
||||
<view v-else @click="getMobileCode" class="code_msg">
|
||||
获取验证码
|
||||
</view>
|
||||
</view>
|
||||
</view>
|
||||
</view>
|
||||
<view class="bottom-btn">
|
||||
<MyBtn text="确定注销" @ok="onOut"></MyBtn>
|
||||
</view>
|
||||
<up-toast ref="uToastRef"></up-toast>
|
||||
</view>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
import { getUserList } from '@/api/common.js';
|
||||
import { getUserInfo,deleteAccount } from '@/api/auth.js';
|
||||
import Header from '@/components/common/header.vue';
|
||||
import TopSafe from '@/components/common/top-safe.nvue'
|
||||
import { clear } from '@/utils/auth.js';
|
||||
import CryptoJS from 'crypto-js';
|
||||
import MyBtn from '@/components/common/my-btn.vue'
|
||||
import func from '@/utils/func.js';
|
||||
|
||||
export default {
|
||||
components: { Header, TopSafe,MyBtn },
|
||||
data() {
|
||||
return {
|
||||
userInfo: null,
|
||||
code:'',
|
||||
countdown:false
|
||||
};
|
||||
},
|
||||
onShow() {
|
||||
},
|
||||
onLoad() {
|
||||
this.init();
|
||||
// this.userinfo();
|
||||
},
|
||||
methods: {
|
||||
init() {
|
||||
this.userinfo()
|
||||
},
|
||||
onCode(){
|
||||
|
||||
},
|
||||
async getMobileCode() {
|
||||
|
||||
this.countdown = true;
|
||||
|
||||
const params = {
|
||||
mobile: this.userInfo.mobile,
|
||||
type: this.type == '1' ? 'tradepw' : 'passwd'
|
||||
}
|
||||
const response = await getUserList(params);
|
||||
if (response && response.bizcode === 100) {
|
||||
this.$refs.uToastRef.show({
|
||||
type: 'success',
|
||||
message: response.msg,
|
||||
});
|
||||
} else {
|
||||
this.countdown = false;
|
||||
}
|
||||
},
|
||||
userinfo() {
|
||||
getUserInfo().then(res => {
|
||||
if (res.bizcode == 100) {
|
||||
this.userInfo = res.data;
|
||||
this.userInfo.mobile1 = this.userInfo.mobile.replace(this.userInfo.mobile.substring(3,7),'****')
|
||||
|
||||
}
|
||||
})
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
</script>
|
||||
|
||||
<style lang="scss" scoped>
|
||||
.bottom-btn{
|
||||
width: 100%;
|
||||
margin-bottom:92rpx;
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
align-items: center;
|
||||
padding: 0 32rpx;
|
||||
box-sizing: border-box;
|
||||
position: relative;
|
||||
|
||||
}
|
||||
.setting-view {
|
||||
width: 100%;
|
||||
height: calc(100% - 88rpx - 92rpx - 88rpx - var(--status-bar-height));
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
overflow-y: auto;
|
||||
padding: 0 32rpx;
|
||||
box-sizing: border-box;
|
||||
position: relative;
|
||||
.name-box{
|
||||
width:100%;
|
||||
border-radius: 16rpx;
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
background-color: #fff;
|
||||
padding: 64rpx 32rpx;
|
||||
box-sizing: border-box;
|
||||
margin-top:24rpx;
|
||||
.mid-view{
|
||||
width:100%;
|
||||
padding: 40rpx 32rpx;
|
||||
box-sizing: border-box;
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
border:2rpx solid #eaeaea;
|
||||
border-radius: 16rpx;
|
||||
margin-top:48rpx;
|
||||
}
|
||||
.top-view{
|
||||
width:100%;
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
align-items: center;
|
||||
}
|
||||
.input-view{
|
||||
border-radius: 20rpx;
|
||||
margin-top:52rpx;
|
||||
width:100%;
|
||||
padding: 0 32rpx;
|
||||
min-height:104rpx;
|
||||
display: flex;
|
||||
flex-direction: row;
|
||||
align-items: center;
|
||||
background-color: #f5f5f5;
|
||||
box-sizing: border-box;
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
</style>
|
||||
<template>
|
||||
<view class="content">
|
||||
<TopSafe></TopSafe>
|
||||
<Header title="注销账号" />
|
||||
<view class="setting-view">
|
||||
<view class="name-box">
|
||||
<text class="text-zu text-38">请输入验证码</text>
|
||||
<text class="text-fu text-28 mt-24" >验证码已发送至 {{userInfo && userInfo.mobile1}}</text>
|
||||
<u-code-input size="40" focus disabledDot @finish="onCode" :maxlength="6" v-model="code" style="margin-top:32rpx"></u-code-input>
|
||||
<view class="flex-c mt-32">
|
||||
<view v-if="countdown" class="code-warp">
|
||||
<up-count-down :time="60 * 1000" format="ss" @finish="countdown = false"></up-count-down>
|
||||
<text style="margin-left: 10rpx;">s</text>
|
||||
</view>
|
||||
<view v-else @click="getMobileCode" class="code_msg">
|
||||
获取验证码
|
||||
</view>
|
||||
</view>
|
||||
</view>
|
||||
</view>
|
||||
<view class="bottom-btn">
|
||||
<MyBtn text="确定注销" @ok="onOut"></MyBtn>
|
||||
</view>
|
||||
<up-toast ref="uToastRef"></up-toast>
|
||||
</view>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
import { getUserList } from '@/api/common.js';
|
||||
import { getUserInfo,deleteAccount } from '@/api/auth.js';
|
||||
import Header from '@/components/common/header.vue';
|
||||
import TopSafe from '@/components/common/top-safe.nvue'
|
||||
import { clear } from '@/utils/auth.js';
|
||||
import CryptoJS from 'crypto-js';
|
||||
import MyBtn from '@/components/common/my-btn.vue'
|
||||
import func from '@/utils/func.js';
|
||||
|
||||
export default {
|
||||
components: { Header, TopSafe,MyBtn },
|
||||
data() {
|
||||
return {
|
||||
userInfo: null,
|
||||
code:'',
|
||||
countdown:false
|
||||
};
|
||||
},
|
||||
onShow() {
|
||||
},
|
||||
onLoad() {
|
||||
this.init();
|
||||
// this.userinfo();
|
||||
},
|
||||
methods: {
|
||||
init() {
|
||||
this.userinfo()
|
||||
},
|
||||
onCode(){
|
||||
|
||||
},
|
||||
async getMobileCode() {
|
||||
|
||||
this.countdown = true;
|
||||
|
||||
const params = {
|
||||
mobile: this.userInfo.mobile,
|
||||
type: this.type == '1' ? 'tradepw' : 'passwd'
|
||||
}
|
||||
const response = await getUserList(params);
|
||||
if (response && response.bizcode === 100) {
|
||||
this.$refs.uToastRef.show({
|
||||
type: 'success',
|
||||
message: response.msg,
|
||||
});
|
||||
} else {
|
||||
this.countdown = false;
|
||||
}
|
||||
},
|
||||
userinfo() {
|
||||
getUserInfo().then(res => {
|
||||
if (res.bizcode == 100) {
|
||||
this.userInfo = res.data;
|
||||
this.userInfo.mobile1 = this.userInfo.mobile.replace(this.userInfo.mobile.substring(3,7),'****')
|
||||
|
||||
}
|
||||
})
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
</script>
|
||||
|
||||
<style lang="scss" scoped>
|
||||
.bottom-btn{
|
||||
width: 100%;
|
||||
margin-bottom:92rpx;
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
align-items: center;
|
||||
padding: 0 32rpx;
|
||||
box-sizing: border-box;
|
||||
position: relative;
|
||||
|
||||
}
|
||||
.setting-view {
|
||||
width: 100%;
|
||||
height: calc(100% - 88rpx - 92rpx - 88rpx - var(--status-bar-height));
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
overflow-y: auto;
|
||||
padding: 0 32rpx;
|
||||
box-sizing: border-box;
|
||||
position: relative;
|
||||
.name-box{
|
||||
width:100%;
|
||||
border-radius: 16rpx;
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
background-color: #fff;
|
||||
padding: 64rpx 32rpx;
|
||||
box-sizing: border-box;
|
||||
margin-top:24rpx;
|
||||
.mid-view{
|
||||
width:100%;
|
||||
padding: 40rpx 32rpx;
|
||||
box-sizing: border-box;
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
border:2rpx solid #eaeaea;
|
||||
border-radius: 16rpx;
|
||||
margin-top:48rpx;
|
||||
}
|
||||
.top-view{
|
||||
width:100%;
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
align-items: center;
|
||||
}
|
||||
.input-view{
|
||||
border-radius: 20rpx;
|
||||
margin-top:52rpx;
|
||||
width:100%;
|
||||
padding: 0 32rpx;
|
||||
min-height:104rpx;
|
||||
display: flex;
|
||||
flex-direction: row;
|
||||
align-items: center;
|
||||
background-color: #f5f5f5;
|
||||
box-sizing: border-box;
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
</style>
|
||||
|
||||
@@ -1,135 +1,135 @@
|
||||
<template>
|
||||
<view class="content">
|
||||
<TopSafe></TopSafe>
|
||||
<Header title="用户名称" />
|
||||
<view class="setting-view">
|
||||
<view class="name-box">
|
||||
<text class="text-zu text-38">修改用户名称</text>
|
||||
<text class="text-fu text-28 mt-24" >昵称为2~32位字符,支持中文、英文、数</text>
|
||||
<view class="input-view">
|
||||
<input v-model="inputText" maxlength="32" placeholder="请输入名称" />
|
||||
</view>
|
||||
</view>
|
||||
|
||||
</view>
|
||||
<view class="bottom-btn">
|
||||
<MyBtn text="保存" @ok="onSetName"></MyBtn>
|
||||
</view>
|
||||
<up-toast ref="uToastRef"></up-toast>
|
||||
</view>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
import { getUserInfo,updateName } from '@/api/auth.js';
|
||||
import Header from '@/components/common/header.vue';
|
||||
import TopSafe from '@/components/common/top-safe.nvue'
|
||||
import MyBtn from '@/components/common/my-btn.vue'
|
||||
import func from '@/utils/func.js';
|
||||
|
||||
export default {
|
||||
components: { Header, TopSafe,MyBtn },
|
||||
data() {
|
||||
return {
|
||||
userInfo: null,
|
||||
inputText:''
|
||||
};
|
||||
},
|
||||
onShow() {
|
||||
},
|
||||
onLoad() {
|
||||
this.init();
|
||||
// this.userinfo();
|
||||
},
|
||||
methods: {
|
||||
init() {
|
||||
this.userinfo()
|
||||
},
|
||||
onSetName(){
|
||||
if(!this.inputText){
|
||||
return this.$refs.uToastRef.show({
|
||||
type: 'error',
|
||||
message: "请输入名称",
|
||||
});
|
||||
}
|
||||
if(this.inputText.length < 2){
|
||||
return this.$refs.uToastRef.show({
|
||||
type: 'error',
|
||||
message: "名称长度2-32",
|
||||
});
|
||||
}
|
||||
|
||||
updateName({name:this.inputText}).then(res=>{
|
||||
if (res.bizcode === 100) {
|
||||
this.$refs.uToastRef.show({
|
||||
type: 'success',
|
||||
message: "名称设置成功",
|
||||
});
|
||||
this.init();
|
||||
} else {
|
||||
this.$refs.uToastRef.show({
|
||||
type: 'error',
|
||||
message: "名称设置失败",
|
||||
});
|
||||
}
|
||||
})
|
||||
},
|
||||
userinfo() {
|
||||
getUserInfo().then(res => {
|
||||
if (res.bizcode == 100) {
|
||||
this.userInfo = res.data;
|
||||
this.inputText = this.userInfo.nickname;
|
||||
}
|
||||
})
|
||||
}
|
||||
}
|
||||
}
|
||||
</script>
|
||||
|
||||
<style lang="scss" scoped>
|
||||
.bottom-btn{
|
||||
width: 100%;
|
||||
margin-bottom:92rpx;
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
align-items: center;
|
||||
padding: 0 32rpx;
|
||||
box-sizing: border-box;
|
||||
position: relative;
|
||||
|
||||
}
|
||||
.setting-view {
|
||||
width: 100%;
|
||||
height: calc(100% - 88rpx - 92rpx - 88rpx - var(--status-bar-height));
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
align-items: center;
|
||||
overflow-y: auto;
|
||||
padding: 0 32rpx;
|
||||
box-sizing: border-box;
|
||||
position: relative;
|
||||
.name-box{
|
||||
width:100%;
|
||||
border-radius: 16rpx;
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
background-color: #fff;
|
||||
padding: 64rpx 32rpx;
|
||||
box-sizing: border-box;
|
||||
margin-top:24rpx;
|
||||
.input-view{
|
||||
border-radius: 20rpx;
|
||||
margin-top:52rpx;
|
||||
width:100%;
|
||||
padding: 0 32rpx;
|
||||
min-height:104rpx;
|
||||
display: flex;
|
||||
flex-direction: row;
|
||||
align-items: center;
|
||||
background-color: #f5f5f5;
|
||||
box-sizing: border-box;
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
</style>
|
||||
<template>
|
||||
<view class="content">
|
||||
<TopSafe></TopSafe>
|
||||
<Header title="用户名称" />
|
||||
<view class="setting-view">
|
||||
<view class="name-box">
|
||||
<text class="text-zu text-38">修改用户名称</text>
|
||||
<text class="text-fu text-28 mt-24" >昵称为2~32位字符,支持中文、英文、数</text>
|
||||
<view class="input-view">
|
||||
<input v-model="inputText" maxlength="32" placeholder="请输入名称" />
|
||||
</view>
|
||||
</view>
|
||||
|
||||
</view>
|
||||
<view class="bottom-btn">
|
||||
<MyBtn text="保存" @ok="onSetName"></MyBtn>
|
||||
</view>
|
||||
<up-toast ref="uToastRef"></up-toast>
|
||||
</view>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
import { getUserInfo,updateName } from '@/api/auth.js';
|
||||
import Header from '@/components/common/header.vue';
|
||||
import TopSafe from '@/components/common/top-safe.nvue'
|
||||
import MyBtn from '@/components/common/my-btn.vue'
|
||||
import func from '@/utils/func.js';
|
||||
|
||||
export default {
|
||||
components: { Header, TopSafe,MyBtn },
|
||||
data() {
|
||||
return {
|
||||
userInfo: null,
|
||||
inputText:''
|
||||
};
|
||||
},
|
||||
onShow() {
|
||||
},
|
||||
onLoad() {
|
||||
this.init();
|
||||
// this.userinfo();
|
||||
},
|
||||
methods: {
|
||||
init() {
|
||||
this.userinfo()
|
||||
},
|
||||
onSetName(){
|
||||
if(!this.inputText){
|
||||
return this.$refs.uToastRef.show({
|
||||
type: 'error',
|
||||
message: "请输入名称",
|
||||
});
|
||||
}
|
||||
if(this.inputText.length < 2){
|
||||
return this.$refs.uToastRef.show({
|
||||
type: 'error',
|
||||
message: "名称长度2-32",
|
||||
});
|
||||
}
|
||||
|
||||
updateName({name:this.inputText}).then(res=>{
|
||||
if (res.bizcode === 100) {
|
||||
this.$refs.uToastRef.show({
|
||||
type: 'success',
|
||||
message: "名称设置成功",
|
||||
});
|
||||
this.init();
|
||||
} else {
|
||||
this.$refs.uToastRef.show({
|
||||
type: 'error',
|
||||
message: "名称设置失败",
|
||||
});
|
||||
}
|
||||
})
|
||||
},
|
||||
userinfo() {
|
||||
getUserInfo().then(res => {
|
||||
if (res.bizcode == 100) {
|
||||
this.userInfo = res.data;
|
||||
this.inputText = this.userInfo.nickname;
|
||||
}
|
||||
})
|
||||
}
|
||||
}
|
||||
}
|
||||
</script>
|
||||
|
||||
<style lang="scss" scoped>
|
||||
.bottom-btn{
|
||||
width: 100%;
|
||||
margin-bottom:92rpx;
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
align-items: center;
|
||||
padding: 0 32rpx;
|
||||
box-sizing: border-box;
|
||||
position: relative;
|
||||
|
||||
}
|
||||
.setting-view {
|
||||
width: 100%;
|
||||
height: calc(100% - 88rpx - 92rpx - 88rpx - var(--status-bar-height));
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
align-items: center;
|
||||
overflow-y: auto;
|
||||
padding: 0 32rpx;
|
||||
box-sizing: border-box;
|
||||
position: relative;
|
||||
.name-box{
|
||||
width:100%;
|
||||
border-radius: 16rpx;
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
background-color: #fff;
|
||||
padding: 64rpx 32rpx;
|
||||
box-sizing: border-box;
|
||||
margin-top:24rpx;
|
||||
.input-view{
|
||||
border-radius: 20rpx;
|
||||
margin-top:52rpx;
|
||||
width:100%;
|
||||
padding: 0 32rpx;
|
||||
min-height:104rpx;
|
||||
display: flex;
|
||||
flex-direction: row;
|
||||
align-items: center;
|
||||
background-color: #f5f5f5;
|
||||
box-sizing: border-box;
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
</style>
|
||||
|
||||
@@ -1,246 +1,246 @@
|
||||
<template>
|
||||
<view class="content">
|
||||
<TopSafe></TopSafe>
|
||||
<Header title="设置" />
|
||||
<view class="setting-view">
|
||||
<view class="item-list mt-24">
|
||||
<view class="flex-r-lr item-box" @click="onHead(index)"
|
||||
v-for="(item,index) in headList" :key="index"
|
||||
:style="{borderWidth:index == headList.length - 1 ? '0' : '2rpx'}"
|
||||
>
|
||||
<text class="text-zu1 text-32">{{item.text}}</text>
|
||||
<view class="flex-r-e" style="align-items: center;">
|
||||
<image v-if="item.type == 'img'" :src="item.value" class="ava-img"></image>
|
||||
<text class="text-zu text-32" v-if="item.type == 'text'">{{item.value}}</text>
|
||||
<u-icon size="16" name="arrow-right" color="#666" style="margin-left:12rpx"></u-icon>
|
||||
</view>
|
||||
</view>
|
||||
</view>
|
||||
|
||||
<view class="item-list mt-24">
|
||||
<view class="flex-r-lr item-box" @click="onBottom(index)"
|
||||
v-for="(item,index) in bottomList" :key="index"
|
||||
:style="{borderWidth:index == bottomList.length - 1 ? '0' : '2rpx'}"
|
||||
>
|
||||
<text class="text-zu1 text-32">{{item.text}}</text>
|
||||
<view class="flex-r-e" style="align-items: center;">
|
||||
<u-icon size="16" name="arrow-right" color="#666" style="margin-left:12rpx"></u-icon>
|
||||
</view>
|
||||
</view>
|
||||
</view>
|
||||
<MyBtn class="mt-48" @ok="onOutLogin" text="退出登录"></MyBtn>
|
||||
</view>
|
||||
<up-toast ref="uToastRef"></up-toast>
|
||||
<!-- 腾讯电子签H5 → 集成到UniApp -->
|
||||
</view>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
import { getUserInfo,uploadAvatar } from '@/api/auth.js';
|
||||
import { uploadImage, uploadImg } from '@/api/common.js';
|
||||
import { IMG_TYPE } from '@/utils/enumUtils.js';
|
||||
import { BASE_URL, Authorization } from '@/utils/config.js';
|
||||
import { getStorageFun, TOKEN_NAME,clear } from '@/utils/auth.js';
|
||||
import Header from '@/components/common/header.vue';
|
||||
import TopSafe from '@/components/common/top-safe.nvue'
|
||||
import MyBtn from '@/components/common/my-btn.vue'
|
||||
import func from '@/utils/func.js';
|
||||
|
||||
export default {
|
||||
components: { Header, TopSafe,MyBtn },
|
||||
data() {
|
||||
return {
|
||||
type: false,
|
||||
userInfo: null,
|
||||
headList:[
|
||||
{text:'头像',type:'img',value:''},
|
||||
{text:'用户名称',type:'text',value:''},
|
||||
],
|
||||
bottomList:[
|
||||
{text:'账号与安全'},
|
||||
{text:'我的合同'},
|
||||
{text:'资质照片'},
|
||||
{text:'用户协议'},
|
||||
{text:'隐私协议'},
|
||||
{text:'售后保障协议'},
|
||||
{text:'关于我们'},
|
||||
]
|
||||
};
|
||||
},
|
||||
onShow() {
|
||||
this.init();
|
||||
},
|
||||
onLoad() {
|
||||
// this.userinfo();
|
||||
},
|
||||
methods: {
|
||||
init() {
|
||||
this.userinfo()
|
||||
},
|
||||
onHead(index){
|
||||
console.log('index',index)
|
||||
let that = this;
|
||||
if(index == 0){
|
||||
uni.chooseImage({
|
||||
count: 1, // 默认9,设置图片的数量
|
||||
sizeType: ['original', 'compressed'], // 可以指定是原图还是压缩图,默认二者都有
|
||||
sourceType: ['album', 'camera'], // 可以指定来源是相册还是相机,默认二者都有
|
||||
success: function (res) {
|
||||
// 成功选择图片后
|
||||
const filePath = res.tempFilePaths[0]; // 获取文件路径
|
||||
that.uploadFile(filePath);
|
||||
}
|
||||
});
|
||||
}else if(index == 1){
|
||||
uni.navigateTo({
|
||||
url:'/pages/rwa_package/setting/set-name'
|
||||
})
|
||||
}
|
||||
},
|
||||
uploadFile(url) {
|
||||
uni.showLoading({
|
||||
title: '图片上传中...',
|
||||
})
|
||||
const that = this;
|
||||
const token = getStorageFun(TOKEN_NAME); // 获取token, 根据实际情况调整获取方式
|
||||
// 成功则返回文件的本地临时文件路径
|
||||
uni.uploadFile({
|
||||
url: BASE_URL + uploadImg, // 替换为你的上传接口URL
|
||||
filePath: url,
|
||||
name: 'file',
|
||||
formData: {
|
||||
'type': IMG_TYPE.COMMON,
|
||||
},
|
||||
header: {
|
||||
"Authorization": Authorization,
|
||||
'HSM-AUTH': token ? token : '',
|
||||
},
|
||||
success: (uploadFileRes) => {
|
||||
const data = JSON.parse(uploadFileRes.data);
|
||||
if (data.bizcode === 100) {
|
||||
that.setUploadAvatar(data.data.accessUrl);
|
||||
} else {
|
||||
uni.showToast({
|
||||
title: '图片上传失败',
|
||||
icon: 'none',
|
||||
mask: true,
|
||||
duration: 3000,
|
||||
})
|
||||
}
|
||||
},
|
||||
fail: (uploadFileErr) => {
|
||||
uni.showToast({
|
||||
title: '图片上传失败',
|
||||
icon: 'none',
|
||||
mask: true,
|
||||
duration: 3000,
|
||||
})
|
||||
},
|
||||
complete: (res) => {
|
||||
// 请求完成以后做一些事情
|
||||
uni.hideLoading();
|
||||
}
|
||||
});
|
||||
},
|
||||
setUploadAvatar(img){
|
||||
let params = {
|
||||
imgUrl:img
|
||||
}
|
||||
uploadAvatar(params).then(res=>{
|
||||
if (res.bizcode === 100) {
|
||||
this.$refs.uToastRef.show({
|
||||
type: 'success',
|
||||
message: "头像设置成功",
|
||||
});
|
||||
this.init();
|
||||
} else {
|
||||
this.$refs.uToastRef.show({
|
||||
type: 'error',
|
||||
message: "头像设置失败",
|
||||
});
|
||||
}
|
||||
})
|
||||
},
|
||||
onOutLogin(){
|
||||
clear();
|
||||
uni.navigateTo({
|
||||
url: '/pages/login_package/login/login'
|
||||
})
|
||||
},
|
||||
onBottom(index){
|
||||
let url = '';
|
||||
switch(index){
|
||||
case 0:
|
||||
url = '/pages/rwa_package/setting/account-safe'
|
||||
break;
|
||||
case 1:
|
||||
url = '/pages/rwa_package/dongjian/index'
|
||||
break;
|
||||
case 2:
|
||||
url = '/pages/rwa_package/setting/zhaopian'
|
||||
break;
|
||||
case 3:
|
||||
url = '/pages/mine_package/mine_user_agreement/mine_user_agreement'
|
||||
break;
|
||||
case 4:
|
||||
url = '/pages/mine_package/mine_privacy_agreement/mine_privacy_agreement'
|
||||
break;
|
||||
case 5:
|
||||
url = '/pages/mine_package/mine_product_agreement/mine_product_agreement'
|
||||
break;
|
||||
case 6:
|
||||
url = '/pages/mine_package/mine_about_us/mine_about_us'
|
||||
break;
|
||||
}
|
||||
if(url){
|
||||
uni.navigateTo({
|
||||
url:url
|
||||
})
|
||||
}
|
||||
},
|
||||
userinfo() {
|
||||
getUserInfo().then(res => {
|
||||
if (res.bizcode == 100) {
|
||||
this.userInfo = res.data;
|
||||
this.userInfo.avatarUrl = this.userInfo.avatarUrl ? this.userInfo.avatarUrl : 'https://cex-pub.s3.ap-southeast-1.amazonaws.com/static/default-avatar.png';
|
||||
this.headList[0].value = this.userInfo.avatarUrl;
|
||||
this.userInfo.nickname = this.userInfo.nickname ? this.userInfo.nickname : '暂未设置';
|
||||
this.headList[1].value = this.userInfo.nickname;
|
||||
}
|
||||
})
|
||||
}
|
||||
}
|
||||
}
|
||||
</script>
|
||||
|
||||
<style lang="scss" scoped>
|
||||
.setting-view {
|
||||
width: 100%;
|
||||
height: calc(100% - 88rpx - var(--status-bar-height));
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
align-items: center;
|
||||
overflow-y: auto;
|
||||
padding: 0 32rpx;
|
||||
box-sizing: border-box;
|
||||
.item-list{
|
||||
width:100%;
|
||||
border-radius: 16rpx;
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
background-color: #fff;
|
||||
.item-box{
|
||||
min-height:108rpx;
|
||||
padding: 0 32rpx;
|
||||
box-sizing: border-box;
|
||||
align-items: center;
|
||||
border-bottom:solid #EAEAEA;
|
||||
.ava-img{
|
||||
width:60rpx;
|
||||
height:60rpx;
|
||||
border-radius: 30rpx;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
</style>
|
||||
<template>
|
||||
<view class="content">
|
||||
<TopSafe></TopSafe>
|
||||
<Header title="设置" />
|
||||
<view class="setting-view">
|
||||
<view class="item-list mt-24">
|
||||
<view class="flex-r-lr item-box" @click="onHead(index)"
|
||||
v-for="(item,index) in headList" :key="index"
|
||||
:style="{borderWidth:index == headList.length - 1 ? '0' : '2rpx'}"
|
||||
>
|
||||
<text class="text-zu1 text-32">{{item.text}}</text>
|
||||
<view class="flex-r-e" style="align-items: center;">
|
||||
<image v-if="item.type == 'img'" :src="item.value" class="ava-img"></image>
|
||||
<text class="text-zu text-32" v-if="item.type == 'text'">{{item.value}}</text>
|
||||
<u-icon size="16" name="arrow-right" color="#666" style="margin-left:12rpx"></u-icon>
|
||||
</view>
|
||||
</view>
|
||||
</view>
|
||||
|
||||
<view class="item-list mt-24">
|
||||
<view class="flex-r-lr item-box" @click="onBottom(index)"
|
||||
v-for="(item,index) in bottomList" :key="index"
|
||||
:style="{borderWidth:index == bottomList.length - 1 ? '0' : '2rpx'}"
|
||||
>
|
||||
<text class="text-zu1 text-32">{{item.text}}</text>
|
||||
<view class="flex-r-e" style="align-items: center;">
|
||||
<u-icon size="16" name="arrow-right" color="#666" style="margin-left:12rpx"></u-icon>
|
||||
</view>
|
||||
</view>
|
||||
</view>
|
||||
<MyBtn class="mt-48" @ok="onOutLogin" text="退出登录"></MyBtn>
|
||||
</view>
|
||||
<up-toast ref="uToastRef"></up-toast>
|
||||
<!-- 腾讯电子签H5 → 集成到UniApp -->
|
||||
</view>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
import { getUserInfo,uploadAvatar } from '@/api/auth.js';
|
||||
import { uploadImage, uploadImg } from '@/api/common.js';
|
||||
import { IMG_TYPE } from '@/utils/enumUtils.js';
|
||||
import { BASE_URL, Authorization } from '@/utils/config.js';
|
||||
import { getStorageFun, TOKEN_NAME,clear } from '@/utils/auth.js';
|
||||
import Header from '@/components/common/header.vue';
|
||||
import TopSafe from '@/components/common/top-safe.nvue'
|
||||
import MyBtn from '@/components/common/my-btn.vue'
|
||||
import func from '@/utils/func.js';
|
||||
|
||||
export default {
|
||||
components: { Header, TopSafe,MyBtn },
|
||||
data() {
|
||||
return {
|
||||
type: false,
|
||||
userInfo: null,
|
||||
headList:[
|
||||
{text:'头像',type:'img',value:''},
|
||||
{text:'用户名称',type:'text',value:''},
|
||||
],
|
||||
bottomList:[
|
||||
{text:'账号与安全'},
|
||||
{text:'我的合同'},
|
||||
{text:'资质照片'},
|
||||
{text:'用户协议'},
|
||||
{text:'隐私协议'},
|
||||
{text:'售后保障协议'},
|
||||
{text:'关于我们'},
|
||||
]
|
||||
};
|
||||
},
|
||||
onShow() {
|
||||
this.init();
|
||||
},
|
||||
onLoad() {
|
||||
// this.userinfo();
|
||||
},
|
||||
methods: {
|
||||
init() {
|
||||
this.userinfo()
|
||||
},
|
||||
onHead(index){
|
||||
console.log('index',index)
|
||||
let that = this;
|
||||
if(index == 0){
|
||||
uni.chooseImage({
|
||||
count: 1, // 默认9,设置图片的数量
|
||||
sizeType: ['original', 'compressed'], // 可以指定是原图还是压缩图,默认二者都有
|
||||
sourceType: ['album', 'camera'], // 可以指定来源是相册还是相机,默认二者都有
|
||||
success: function (res) {
|
||||
// 成功选择图片后
|
||||
const filePath = res.tempFilePaths[0]; // 获取文件路径
|
||||
that.uploadFile(filePath);
|
||||
}
|
||||
});
|
||||
}else if(index == 1){
|
||||
uni.navigateTo({
|
||||
url:'/pages/rwa_package/setting/set-name'
|
||||
})
|
||||
}
|
||||
},
|
||||
uploadFile(url) {
|
||||
uni.showLoading({
|
||||
title: '图片上传中...',
|
||||
})
|
||||
const that = this;
|
||||
const token = getStorageFun(TOKEN_NAME); // 获取token, 根据实际情况调整获取方式
|
||||
// 成功则返回文件的本地临时文件路径
|
||||
uni.uploadFile({
|
||||
url: BASE_URL + uploadImg, // 替换为你的上传接口URL
|
||||
filePath: url,
|
||||
name: 'file',
|
||||
formData: {
|
||||
'type': IMG_TYPE.COMMON,
|
||||
},
|
||||
header: {
|
||||
"Authorization": Authorization,
|
||||
'HSM-AUTH': token ? token : '',
|
||||
},
|
||||
success: (uploadFileRes) => {
|
||||
const data = JSON.parse(uploadFileRes.data);
|
||||
if (data.bizcode === 100) {
|
||||
that.setUploadAvatar(data.data.accessUrl);
|
||||
} else {
|
||||
uni.showToast({
|
||||
title: '图片上传失败',
|
||||
icon: 'none',
|
||||
mask: true,
|
||||
duration: 3000,
|
||||
})
|
||||
}
|
||||
},
|
||||
fail: (uploadFileErr) => {
|
||||
uni.showToast({
|
||||
title: '图片上传失败',
|
||||
icon: 'none',
|
||||
mask: true,
|
||||
duration: 3000,
|
||||
})
|
||||
},
|
||||
complete: (res) => {
|
||||
// 请求完成以后做一些事情
|
||||
uni.hideLoading();
|
||||
}
|
||||
});
|
||||
},
|
||||
setUploadAvatar(img){
|
||||
let params = {
|
||||
imgUrl:img
|
||||
}
|
||||
uploadAvatar(params).then(res=>{
|
||||
if (res.bizcode === 100) {
|
||||
this.$refs.uToastRef.show({
|
||||
type: 'success',
|
||||
message: "头像设置成功",
|
||||
});
|
||||
this.init();
|
||||
} else {
|
||||
this.$refs.uToastRef.show({
|
||||
type: 'error',
|
||||
message: "头像设置失败",
|
||||
});
|
||||
}
|
||||
})
|
||||
},
|
||||
onOutLogin(){
|
||||
clear();
|
||||
uni.navigateTo({
|
||||
url: '/pages/login_package/login/login'
|
||||
})
|
||||
},
|
||||
onBottom(index){
|
||||
let url = '';
|
||||
switch(index){
|
||||
case 0:
|
||||
url = '/pages/rwa_package/setting/account-safe'
|
||||
break;
|
||||
case 1:
|
||||
url = '/pages/rwa_package/dongjian/index'
|
||||
break;
|
||||
case 2:
|
||||
url = '/pages/rwa_package/setting/zhaopian'
|
||||
break;
|
||||
case 3:
|
||||
url = '/pages/mine_package/mine_user_agreement/mine_user_agreement'
|
||||
break;
|
||||
case 4:
|
||||
url = '/pages/mine_package/mine_privacy_agreement/mine_privacy_agreement'
|
||||
break;
|
||||
case 5:
|
||||
url = '/pages/mine_package/mine_product_agreement/mine_product_agreement'
|
||||
break;
|
||||
case 6:
|
||||
url = '/pages/mine_package/mine_about_us/mine_about_us'
|
||||
break;
|
||||
}
|
||||
if(url){
|
||||
uni.navigateTo({
|
||||
url:url
|
||||
})
|
||||
}
|
||||
},
|
||||
userinfo() {
|
||||
getUserInfo().then(res => {
|
||||
if (res.bizcode == 100) {
|
||||
this.userInfo = res.data;
|
||||
this.userInfo.avatarUrl = this.userInfo.avatarUrl ? this.userInfo.avatarUrl : 'https://cex-pub.s3.ap-southeast-1.amazonaws.com/static/default-avatar.png';
|
||||
this.headList[0].value = this.userInfo.avatarUrl;
|
||||
this.userInfo.nickname = this.userInfo.nickname ? this.userInfo.nickname : '暂未设置';
|
||||
this.headList[1].value = this.userInfo.nickname;
|
||||
}
|
||||
})
|
||||
}
|
||||
}
|
||||
}
|
||||
</script>
|
||||
|
||||
<style lang="scss" scoped>
|
||||
.setting-view {
|
||||
width: 100%;
|
||||
height: calc(100% - 88rpx - var(--status-bar-height));
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
align-items: center;
|
||||
overflow-y: auto;
|
||||
padding: 0 32rpx;
|
||||
box-sizing: border-box;
|
||||
.item-list{
|
||||
width:100%;
|
||||
border-radius: 16rpx;
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
background-color: #fff;
|
||||
.item-box{
|
||||
min-height:108rpx;
|
||||
padding: 0 32rpx;
|
||||
box-sizing: border-box;
|
||||
align-items: center;
|
||||
border-bottom:solid #EAEAEA;
|
||||
.ava-img{
|
||||
width:60rpx;
|
||||
height:60rpx;
|
||||
border-radius: 30rpx;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
</style>
|
||||
|
||||
@@ -1,73 +1,73 @@
|
||||
<template>
|
||||
<view class="content">
|
||||
<TopSafe></TopSafe>
|
||||
<Header :title="zhaoList[type]" />
|
||||
<view class="setting-view">
|
||||
<image :src="`https://cex-pub.s3.ap-southeast-1.amazonaws.com/static/new/zi_${type + 1}.png`" mode="widthFix" ></image>
|
||||
</view>
|
||||
<up-toast ref="uToastRef"></up-toast>
|
||||
</view>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
import { getUserInfo,updateName } from '@/api/auth.js';
|
||||
import Header from '@/components/common/header.vue';
|
||||
import TopSafe from '@/components/common/top-safe.nvue'
|
||||
import MyBtn from '@/components/common/my-btn.vue'
|
||||
import func from '@/utils/func.js';
|
||||
|
||||
export default {
|
||||
components: { Header, TopSafe,MyBtn },
|
||||
data() {
|
||||
return {
|
||||
userInfo: null,
|
||||
inputText:'',
|
||||
zhaoList:['营业执照','电信增值许可证书'],
|
||||
type:0
|
||||
};
|
||||
},
|
||||
onShow() {
|
||||
},
|
||||
onLoad(option) {
|
||||
if(option && option.type){
|
||||
this.type = Number(option.type);
|
||||
}
|
||||
this.init();
|
||||
// this.userinfo();
|
||||
},
|
||||
methods: {
|
||||
init() {
|
||||
},
|
||||
}
|
||||
}
|
||||
</script>
|
||||
|
||||
<style lang="scss" scoped>
|
||||
.bottom-btn{
|
||||
width: 100%;
|
||||
margin-bottom:92rpx;
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
align-items: center;
|
||||
padding: 0 32rpx;
|
||||
box-sizing: border-box;
|
||||
position: relative;
|
||||
|
||||
}
|
||||
.setting-view {
|
||||
width: 100%;
|
||||
height: calc(100% - 88rpx - 92rpx - 88rpx - var(--status-bar-height));
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
align-items: center;
|
||||
overflow-y: auto;
|
||||
padding: 32rpx 24rpx 0 ;
|
||||
box-sizing: border-box;
|
||||
position: relative;
|
||||
image{
|
||||
width:100%;
|
||||
border-radius: 12rpx;
|
||||
}
|
||||
|
||||
}
|
||||
</style>
|
||||
<template>
|
||||
<view class="content">
|
||||
<TopSafe></TopSafe>
|
||||
<Header :title="zhaoList[type]" />
|
||||
<view class="setting-view">
|
||||
<image :src="`https://cex-pub.s3.ap-southeast-1.amazonaws.com/static/new/zi_${type + 1}.png`" mode="widthFix" ></image>
|
||||
</view>
|
||||
<up-toast ref="uToastRef"></up-toast>
|
||||
</view>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
import { getUserInfo,updateName } from '@/api/auth.js';
|
||||
import Header from '@/components/common/header.vue';
|
||||
import TopSafe from '@/components/common/top-safe.nvue'
|
||||
import MyBtn from '@/components/common/my-btn.vue'
|
||||
import func from '@/utils/func.js';
|
||||
|
||||
export default {
|
||||
components: { Header, TopSafe,MyBtn },
|
||||
data() {
|
||||
return {
|
||||
userInfo: null,
|
||||
inputText:'',
|
||||
zhaoList:['营业执照','电信增值许可证书'],
|
||||
type:0
|
||||
};
|
||||
},
|
||||
onShow() {
|
||||
},
|
||||
onLoad(option) {
|
||||
if(option && option.type){
|
||||
this.type = Number(option.type);
|
||||
}
|
||||
this.init();
|
||||
// this.userinfo();
|
||||
},
|
||||
methods: {
|
||||
init() {
|
||||
},
|
||||
}
|
||||
}
|
||||
</script>
|
||||
|
||||
<style lang="scss" scoped>
|
||||
.bottom-btn{
|
||||
width: 100%;
|
||||
margin-bottom:92rpx;
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
align-items: center;
|
||||
padding: 0 32rpx;
|
||||
box-sizing: border-box;
|
||||
position: relative;
|
||||
|
||||
}
|
||||
.setting-view {
|
||||
width: 100%;
|
||||
height: calc(100% - 88rpx - 92rpx - 88rpx - var(--status-bar-height));
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
align-items: center;
|
||||
overflow-y: auto;
|
||||
padding: 32rpx 24rpx 0 ;
|
||||
box-sizing: border-box;
|
||||
position: relative;
|
||||
image{
|
||||
width:100%;
|
||||
border-radius: 12rpx;
|
||||
}
|
||||
|
||||
}
|
||||
</style>
|
||||
|
||||
@@ -1,107 +1,107 @@
|
||||
<template>
|
||||
<view class="content">
|
||||
<TopSafe></TopSafe>
|
||||
<Header title="资质证明" />
|
||||
<view class="setting-view">
|
||||
<view class="name-box">
|
||||
<view class="zhao-list" @click="onJump(index)" :style="{borderWidth:index == zhaoList.length - 1 ? '0' : '2rpx'}"
|
||||
v-for="(item,index) in zhaoList" :key="index">
|
||||
<text class="text-zu1 text-32">{{item}}</text>
|
||||
<view class="zhao-right">
|
||||
<text class="text-fu1 text-28" style="margin-right:20rpx;">查看</text>
|
||||
<u-icon name="arrow-right" color="#999" size='14'></u-icon>
|
||||
</view>
|
||||
</view>
|
||||
</view>
|
||||
|
||||
</view>
|
||||
<!-- <view class="bottom-btn">
|
||||
<MyBtn text="保存" @ok="onSetName"></MyBtn>
|
||||
</view> -->
|
||||
<up-toast ref="uToastRef"></up-toast>
|
||||
</view>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
import { getUserInfo,updateName } from '@/api/auth.js';
|
||||
import Header from '@/components/common/header.vue';
|
||||
import TopSafe from '@/components/common/top-safe.nvue'
|
||||
import MyBtn from '@/components/common/my-btn.vue'
|
||||
import func from '@/utils/func.js';
|
||||
|
||||
export default {
|
||||
components: { Header, TopSafe,MyBtn },
|
||||
data() {
|
||||
return {
|
||||
userInfo: null,
|
||||
inputText:'',
|
||||
zhaoList:['营业执照','电信增值许可证书']
|
||||
};
|
||||
},
|
||||
onShow() {
|
||||
},
|
||||
onLoad() {
|
||||
this.init();
|
||||
// this.userinfo();
|
||||
},
|
||||
methods: {
|
||||
init() {
|
||||
},
|
||||
onJump(index){
|
||||
uni.navigateTo({
|
||||
url:`/pages/rwa_package/setting/zhao?type=${index}`
|
||||
})
|
||||
}
|
||||
}
|
||||
}
|
||||
</script>
|
||||
|
||||
<style lang="scss" scoped>
|
||||
.bottom-btn{
|
||||
width: 100%;
|
||||
margin-bottom:92rpx;
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
align-items: center;
|
||||
padding: 0 32rpx;
|
||||
box-sizing: border-box;
|
||||
position: relative;
|
||||
|
||||
}
|
||||
.setting-view {
|
||||
width: 100%;
|
||||
height: calc(100% - 88rpx - 92rpx - 88rpx - var(--status-bar-height));
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
align-items: center;
|
||||
overflow-y: auto;
|
||||
padding: 0 32rpx;
|
||||
box-sizing: border-box;
|
||||
position: relative;
|
||||
.name-box{
|
||||
width:100%;
|
||||
border-radius: 16rpx;
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
background-color: #fff;
|
||||
margin-top:30rpx;
|
||||
.zhao-list{
|
||||
width:100%;
|
||||
height:100rpx;
|
||||
display: flex;
|
||||
flex-direction: row;
|
||||
padding: 0 24rpx;
|
||||
justify-content: space-between;
|
||||
align-items: center;
|
||||
border-bottom: 2rpx solid #EAEAEA;
|
||||
box-sizing: border-box;
|
||||
.zhao-right{
|
||||
display: flex;
|
||||
flex-direction: row;
|
||||
justify-content: flex-end;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
</style>
|
||||
<template>
|
||||
<view class="content">
|
||||
<TopSafe></TopSafe>
|
||||
<Header title="资质证明" />
|
||||
<view class="setting-view">
|
||||
<view class="name-box">
|
||||
<view class="zhao-list" @click="onJump(index)" :style="{borderWidth:index == zhaoList.length - 1 ? '0' : '2rpx'}"
|
||||
v-for="(item,index) in zhaoList" :key="index">
|
||||
<text class="text-zu1 text-32">{{item}}</text>
|
||||
<view class="zhao-right">
|
||||
<text class="text-fu1 text-28" style="margin-right:20rpx;">查看</text>
|
||||
<u-icon name="arrow-right" color="#999" size='14'></u-icon>
|
||||
</view>
|
||||
</view>
|
||||
</view>
|
||||
|
||||
</view>
|
||||
<!-- <view class="bottom-btn">
|
||||
<MyBtn text="保存" @ok="onSetName"></MyBtn>
|
||||
</view> -->
|
||||
<up-toast ref="uToastRef"></up-toast>
|
||||
</view>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
import { getUserInfo,updateName } from '@/api/auth.js';
|
||||
import Header from '@/components/common/header.vue';
|
||||
import TopSafe from '@/components/common/top-safe.nvue'
|
||||
import MyBtn from '@/components/common/my-btn.vue'
|
||||
import func from '@/utils/func.js';
|
||||
|
||||
export default {
|
||||
components: { Header, TopSafe,MyBtn },
|
||||
data() {
|
||||
return {
|
||||
userInfo: null,
|
||||
inputText:'',
|
||||
zhaoList:['营业执照','电信增值许可证书']
|
||||
};
|
||||
},
|
||||
onShow() {
|
||||
},
|
||||
onLoad() {
|
||||
this.init();
|
||||
// this.userinfo();
|
||||
},
|
||||
methods: {
|
||||
init() {
|
||||
},
|
||||
onJump(index){
|
||||
uni.navigateTo({
|
||||
url:`/pages/rwa_package/setting/zhao?type=${index}`
|
||||
})
|
||||
}
|
||||
}
|
||||
}
|
||||
</script>
|
||||
|
||||
<style lang="scss" scoped>
|
||||
.bottom-btn{
|
||||
width: 100%;
|
||||
margin-bottom:92rpx;
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
align-items: center;
|
||||
padding: 0 32rpx;
|
||||
box-sizing: border-box;
|
||||
position: relative;
|
||||
|
||||
}
|
||||
.setting-view {
|
||||
width: 100%;
|
||||
height: calc(100% - 88rpx - 92rpx - 88rpx - var(--status-bar-height));
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
align-items: center;
|
||||
overflow-y: auto;
|
||||
padding: 0 32rpx;
|
||||
box-sizing: border-box;
|
||||
position: relative;
|
||||
.name-box{
|
||||
width:100%;
|
||||
border-radius: 16rpx;
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
background-color: #fff;
|
||||
margin-top:30rpx;
|
||||
.zhao-list{
|
||||
width:100%;
|
||||
height:100rpx;
|
||||
display: flex;
|
||||
flex-direction: row;
|
||||
padding: 0 24rpx;
|
||||
justify-content: space-between;
|
||||
align-items: center;
|
||||
border-bottom: 2rpx solid #EAEAEA;
|
||||
box-sizing: border-box;
|
||||
.zhao-right{
|
||||
display: flex;
|
||||
flex-direction: row;
|
||||
justify-content: flex-end;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
</style>
|
||||
|
||||
@@ -1,170 +1,170 @@
|
||||
<template>
|
||||
<view class="content">
|
||||
<TopSafe></TopSafe>
|
||||
<Header title="兑换券专区" >
|
||||
<!-- #ifndef MP-WEIXIN -->
|
||||
<template v-slot:right>
|
||||
<u-icon name="share-fill" @click="onShare" color="#333" size="24"></u-icon>
|
||||
</template>
|
||||
<!-- #endif -->
|
||||
</Header>
|
||||
<view class="swiper-view">
|
||||
<up-swiper
|
||||
:list="swiperList"
|
||||
style="width:100%"
|
||||
circular
|
||||
></up-swiper>
|
||||
</view>
|
||||
|
||||
<view class="mid-panel">
|
||||
<up-image src="/static/common/jingxuan_left.png" width="24" height="8" bgColor="#f1f6ff00"></up-image>
|
||||
<view style="margin:0 12rpx">信任桥兑换</view>
|
||||
<up-image src="/static/common/jingxuan_right.png" width="24" height="8" bgColor="#f1f6ff00"></up-image>
|
||||
</view>
|
||||
<view class="setting-view">
|
||||
<FenItem @ok="onJumpShop" style="margin-top:24rpx" :obj="item" v-for="(item,index) in dataList" :key="index"></FenItem>
|
||||
</view>
|
||||
<up-toast ref="uToastRef"></up-toast>
|
||||
</view>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
import Header from '@/components/common/header.vue';
|
||||
import TopSafe from '@/components/common/top-safe.nvue'
|
||||
import MyBtn from '@/components/common/my-btn.vue'
|
||||
import FenItem from '@/components/shop/fen-item.vue'
|
||||
import { searchList } from '@/api/product.js';
|
||||
import { getCarouselImage } from '@/api/common.js';
|
||||
|
||||
export default {
|
||||
components: { Header, TopSafe,MyBtn,FenItem },
|
||||
data() {
|
||||
return {
|
||||
dataList:[],
|
||||
swiperList: ['https://cdn.uviewui.com/uview/swiper/swiper1.png'],
|
||||
};
|
||||
},
|
||||
onShow() {
|
||||
},
|
||||
onLoad() {
|
||||
this.init();
|
||||
},
|
||||
methods: {
|
||||
init() {
|
||||
this.getSearchList();
|
||||
this.getCarouselImage();
|
||||
},
|
||||
async getCarouselImage(){
|
||||
const params={
|
||||
pageUi:6,
|
||||
}
|
||||
const resp = await getCarouselImage(params);
|
||||
if(resp && resp.bizcode === 100){
|
||||
const data = resp.data || [];
|
||||
this.swiperList = data.length !== 0 ? data.map(obj=>obj.carouselImage) : [];
|
||||
}
|
||||
},
|
||||
async getSearchList(){
|
||||
const params = {
|
||||
type:3,
|
||||
page:1,
|
||||
pageSize:99,
|
||||
}
|
||||
const resp = await searchList(params);
|
||||
if(resp && resp.bizcode === 100){
|
||||
this.dataList = resp.data || [];
|
||||
}
|
||||
},
|
||||
onJumpShop(id){
|
||||
uni.navigateTo({
|
||||
url: '/pages/other_package/productInfo/productInfo?id='+id,
|
||||
})
|
||||
},
|
||||
onShare(){
|
||||
uni.navigateTo({
|
||||
url: '/pages/other_package/invite_friends/invite_friends',
|
||||
})
|
||||
}
|
||||
}
|
||||
}
|
||||
</script>
|
||||
|
||||
<style lang="scss" scoped>
|
||||
.bottom-btn{
|
||||
width: 100%;
|
||||
margin-bottom:92rpx;
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
align-items: center;
|
||||
padding: 0 32rpx;
|
||||
box-sizing: border-box;
|
||||
position: relative;
|
||||
|
||||
}
|
||||
.mid-panel{
|
||||
width:100%;
|
||||
display: flex;
|
||||
flex-direction: row;
|
||||
align-items: center;
|
||||
justify-content: center;
|
||||
height:120rpx;
|
||||
min-height:120rpx;
|
||||
}
|
||||
.swiper-view{
|
||||
width:100%;
|
||||
height:268rpx;
|
||||
min-height:268rpx;
|
||||
display: flex;
|
||||
}
|
||||
.setting-view {
|
||||
width: 100%;
|
||||
height: calc(100% - 88rpx - 268rpx - 156rpx - var(--status-bar-height));
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
align-items: center;
|
||||
overflow-y: auto;
|
||||
padding: 0 32rpx;
|
||||
box-sizing: border-box;
|
||||
position: relative;
|
||||
.name-box{
|
||||
width:100%;
|
||||
border-radius: 16rpx;
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
background-color: #fff;
|
||||
padding: 64rpx 32rpx;
|
||||
box-sizing: border-box;
|
||||
margin-top:24rpx;
|
||||
.mid-view{
|
||||
width:100%;
|
||||
padding: 40rpx 32rpx;
|
||||
box-sizing: border-box;
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
border:2rpx solid #eaeaea;
|
||||
border-radius: 16rpx;
|
||||
margin-top:48rpx;
|
||||
}
|
||||
.top-view{
|
||||
width:100%;
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
align-items: center;
|
||||
}
|
||||
.input-view{
|
||||
border-radius: 20rpx;
|
||||
margin-top:52rpx;
|
||||
width:100%;
|
||||
padding: 0 32rpx;
|
||||
min-height:104rpx;
|
||||
display: flex;
|
||||
flex-direction: row;
|
||||
align-items: center;
|
||||
background-color: #f5f5f5;
|
||||
box-sizing: border-box;
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
</style>
|
||||
<template>
|
||||
<view class="content">
|
||||
<TopSafe></TopSafe>
|
||||
<Header title="兑换券专区" >
|
||||
<!-- #ifndef MP-WEIXIN -->
|
||||
<template v-slot:right>
|
||||
<u-icon name="share-fill" @click="onShare" color="#333" size="24"></u-icon>
|
||||
</template>
|
||||
<!-- #endif -->
|
||||
</Header>
|
||||
<view class="swiper-view">
|
||||
<up-swiper
|
||||
:list="swiperList"
|
||||
style="width:100%"
|
||||
circular
|
||||
></up-swiper>
|
||||
</view>
|
||||
|
||||
<view class="mid-panel">
|
||||
<up-image src="/static/common/jingxuan_left.png" width="24" height="8" bgColor="#f1f6ff00"></up-image>
|
||||
<view style="margin:0 12rpx">信任桥兑换</view>
|
||||
<up-image src="/static/common/jingxuan_right.png" width="24" height="8" bgColor="#f1f6ff00"></up-image>
|
||||
</view>
|
||||
<view class="setting-view">
|
||||
<FenItem @ok="onJumpShop" style="margin-top:24rpx" :obj="item" v-for="(item,index) in dataList" :key="index"></FenItem>
|
||||
</view>
|
||||
<up-toast ref="uToastRef"></up-toast>
|
||||
</view>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
import Header from '@/components/common/header.vue';
|
||||
import TopSafe from '@/components/common/top-safe.nvue'
|
||||
import MyBtn from '@/components/common/my-btn.vue'
|
||||
import FenItem from '@/components/shop/fen-item.vue'
|
||||
import { searchList } from '@/api/product.js';
|
||||
import { getCarouselImage } from '@/api/common.js';
|
||||
|
||||
export default {
|
||||
components: { Header, TopSafe,MyBtn,FenItem },
|
||||
data() {
|
||||
return {
|
||||
dataList:[],
|
||||
swiperList: ['https://cdn.uviewui.com/uview/swiper/swiper1.png'],
|
||||
};
|
||||
},
|
||||
onShow() {
|
||||
},
|
||||
onLoad() {
|
||||
this.init();
|
||||
},
|
||||
methods: {
|
||||
init() {
|
||||
this.getSearchList();
|
||||
this.getCarouselImage();
|
||||
},
|
||||
async getCarouselImage(){
|
||||
const params={
|
||||
pageUi:6,
|
||||
}
|
||||
const resp = await getCarouselImage(params);
|
||||
if(resp && resp.bizcode === 100){
|
||||
const data = resp.data || [];
|
||||
this.swiperList = data.length !== 0 ? data.map(obj=>obj.carouselImage) : [];
|
||||
}
|
||||
},
|
||||
async getSearchList(){
|
||||
const params = {
|
||||
type:3,
|
||||
page:1,
|
||||
pageSize:99,
|
||||
}
|
||||
const resp = await searchList(params);
|
||||
if(resp && resp.bizcode === 100){
|
||||
this.dataList = resp.data || [];
|
||||
}
|
||||
},
|
||||
onJumpShop(id){
|
||||
uni.navigateTo({
|
||||
url: '/pages/other_package/productInfo/productInfo?id='+id,
|
||||
})
|
||||
},
|
||||
onShare(){
|
||||
uni.navigateTo({
|
||||
url: '/pages/other_package/invite_friends/invite_friends',
|
||||
})
|
||||
}
|
||||
}
|
||||
}
|
||||
</script>
|
||||
|
||||
<style lang="scss" scoped>
|
||||
.bottom-btn{
|
||||
width: 100%;
|
||||
margin-bottom:92rpx;
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
align-items: center;
|
||||
padding: 0 32rpx;
|
||||
box-sizing: border-box;
|
||||
position: relative;
|
||||
|
||||
}
|
||||
.mid-panel{
|
||||
width:100%;
|
||||
display: flex;
|
||||
flex-direction: row;
|
||||
align-items: center;
|
||||
justify-content: center;
|
||||
height:120rpx;
|
||||
min-height:120rpx;
|
||||
}
|
||||
.swiper-view{
|
||||
width:100%;
|
||||
height:268rpx;
|
||||
min-height:268rpx;
|
||||
display: flex;
|
||||
}
|
||||
.setting-view {
|
||||
width: 100%;
|
||||
height: calc(100% - 88rpx - 268rpx - 156rpx - var(--status-bar-height));
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
align-items: center;
|
||||
overflow-y: auto;
|
||||
padding: 0 32rpx;
|
||||
box-sizing: border-box;
|
||||
position: relative;
|
||||
.name-box{
|
||||
width:100%;
|
||||
border-radius: 16rpx;
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
background-color: #fff;
|
||||
padding: 64rpx 32rpx;
|
||||
box-sizing: border-box;
|
||||
margin-top:24rpx;
|
||||
.mid-view{
|
||||
width:100%;
|
||||
padding: 40rpx 32rpx;
|
||||
box-sizing: border-box;
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
border:2rpx solid #eaeaea;
|
||||
border-radius: 16rpx;
|
||||
margin-top:48rpx;
|
||||
}
|
||||
.top-view{
|
||||
width:100%;
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
align-items: center;
|
||||
}
|
||||
.input-view{
|
||||
border-radius: 20rpx;
|
||||
margin-top:52rpx;
|
||||
width:100%;
|
||||
padding: 0 32rpx;
|
||||
min-height:104rpx;
|
||||
display: flex;
|
||||
flex-direction: row;
|
||||
align-items: center;
|
||||
background-color: #f5f5f5;
|
||||
box-sizing: border-box;
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
</style>
|
||||
|
||||
@@ -1,116 +1,116 @@
|
||||
<template>
|
||||
<view class="content">
|
||||
<TopSafe></TopSafe>
|
||||
<Header :title="name" >
|
||||
<!-- #ifndef MP-WEIXIN -->
|
||||
<template v-slot:right>
|
||||
<u-icon name="share-fill" @click="onShare" color="#333" size="24"></u-icon>
|
||||
</template>
|
||||
<!-- #endif -->
|
||||
</Header>
|
||||
<view class="setting-view">
|
||||
<view class="name-box">
|
||||
<PingItem @ok="onJumpShop" style="margin-top:24rpx" :obj="item" v-for="(item,index) in dataList" :key="index"></PingItem>
|
||||
</view>
|
||||
</view>
|
||||
<up-toast ref="uToastRef"></up-toast>
|
||||
</view>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
import Header from '@/components/common/header.vue';
|
||||
import TopSafe from '@/components/common/top-safe.nvue'
|
||||
import MyBtn from '@/components/common/my-btn.vue'
|
||||
import { searchList } from '@/api/product.js';
|
||||
import { getCascadeCategory } from '@/api/common.js';
|
||||
|
||||
import PingItem from "@/components/shop/ping-item.vue";
|
||||
import func from '@/utils/func.js';
|
||||
|
||||
export default {
|
||||
components: { Header, TopSafe,MyBtn,PingItem },
|
||||
data() {
|
||||
return {
|
||||
dataList:[
|
||||
],
|
||||
name:null,
|
||||
id:0
|
||||
};
|
||||
},
|
||||
onShow() {
|
||||
},
|
||||
onLoad(option) {
|
||||
if(option && option.id){
|
||||
this.id = Number(option.id);
|
||||
this.name = option.name;
|
||||
this.init();
|
||||
}
|
||||
|
||||
},
|
||||
methods: {
|
||||
init() {
|
||||
this.getSearchList();
|
||||
},
|
||||
async getSearchList(){
|
||||
const params = {
|
||||
page: 1,
|
||||
pageSize: 99,
|
||||
categoryId:this.id
|
||||
}
|
||||
const resp = await searchList(params);
|
||||
if(resp && resp.bizcode === 100){
|
||||
this.dataList = resp.data || [];
|
||||
}
|
||||
},
|
||||
onJumpShop(id){
|
||||
uni.navigateTo({
|
||||
url: '/pages/other_package/productInfo/productInfo?id='+id,
|
||||
})
|
||||
},
|
||||
onShare(){
|
||||
uni.navigateTo({
|
||||
url: '/pages/other_package/invite_friends/invite_friends',
|
||||
})
|
||||
}
|
||||
}
|
||||
}
|
||||
</script>
|
||||
|
||||
<style lang="scss" scoped>
|
||||
.bottom-btn{
|
||||
width: 100%;
|
||||
margin-bottom:92rpx;
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
align-items: center;
|
||||
padding: 0 32rpx;
|
||||
box-sizing: border-box;
|
||||
position: relative;
|
||||
|
||||
}
|
||||
.setting-view {
|
||||
width: 100%;
|
||||
height: calc(100% - 88rpx - var(--status-bar-height));
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
align-items: center;
|
||||
overflow-y: auto;
|
||||
padding: 0 32rpx;
|
||||
box-sizing: border-box;
|
||||
position: relative;
|
||||
.name-box {
|
||||
width: 100%;
|
||||
border-radius: 16rpx;
|
||||
height: 100%;
|
||||
overflow-y: auto;
|
||||
display: flex;
|
||||
flex-wrap: wrap;
|
||||
justify-content: space-between;
|
||||
align-content: flex-start;
|
||||
|
||||
box-sizing: border-box;
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
</style>
|
||||
<template>
|
||||
<view class="content">
|
||||
<TopSafe></TopSafe>
|
||||
<Header :title="name" >
|
||||
<!-- #ifndef MP-WEIXIN -->
|
||||
<template v-slot:right>
|
||||
<u-icon name="share-fill" @click="onShare" color="#333" size="24"></u-icon>
|
||||
</template>
|
||||
<!-- #endif -->
|
||||
</Header>
|
||||
<view class="setting-view">
|
||||
<view class="name-box">
|
||||
<PingItem @ok="onJumpShop" style="margin-top:24rpx" :obj="item" v-for="(item,index) in dataList" :key="index"></PingItem>
|
||||
</view>
|
||||
</view>
|
||||
<up-toast ref="uToastRef"></up-toast>
|
||||
</view>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
import Header from '@/components/common/header.vue';
|
||||
import TopSafe from '@/components/common/top-safe.nvue'
|
||||
import MyBtn from '@/components/common/my-btn.vue'
|
||||
import { searchList } from '@/api/product.js';
|
||||
import { getCascadeCategory } from '@/api/common.js';
|
||||
|
||||
import PingItem from "@/components/shop/ping-item.vue";
|
||||
import func from '@/utils/func.js';
|
||||
|
||||
export default {
|
||||
components: { Header, TopSafe,MyBtn,PingItem },
|
||||
data() {
|
||||
return {
|
||||
dataList:[
|
||||
],
|
||||
name:null,
|
||||
id:0
|
||||
};
|
||||
},
|
||||
onShow() {
|
||||
},
|
||||
onLoad(option) {
|
||||
if(option && option.id){
|
||||
this.id = Number(option.id);
|
||||
this.name = option.name;
|
||||
this.init();
|
||||
}
|
||||
|
||||
},
|
||||
methods: {
|
||||
init() {
|
||||
this.getSearchList();
|
||||
},
|
||||
async getSearchList(){
|
||||
const params = {
|
||||
page: 1,
|
||||
pageSize: 99,
|
||||
categoryId:this.id
|
||||
}
|
||||
const resp = await searchList(params);
|
||||
if(resp && resp.bizcode === 100){
|
||||
this.dataList = resp.data || [];
|
||||
}
|
||||
},
|
||||
onJumpShop(id){
|
||||
uni.navigateTo({
|
||||
url: '/pages/other_package/productInfo/productInfo?id='+id,
|
||||
})
|
||||
},
|
||||
onShare(){
|
||||
uni.navigateTo({
|
||||
url: '/pages/other_package/invite_friends/invite_friends',
|
||||
})
|
||||
}
|
||||
}
|
||||
}
|
||||
</script>
|
||||
|
||||
<style lang="scss" scoped>
|
||||
.bottom-btn{
|
||||
width: 100%;
|
||||
margin-bottom:92rpx;
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
align-items: center;
|
||||
padding: 0 32rpx;
|
||||
box-sizing: border-box;
|
||||
position: relative;
|
||||
|
||||
}
|
||||
.setting-view {
|
||||
width: 100%;
|
||||
height: calc(100% - 88rpx - var(--status-bar-height));
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
align-items: center;
|
||||
overflow-y: auto;
|
||||
padding: 0 32rpx;
|
||||
box-sizing: border-box;
|
||||
position: relative;
|
||||
.name-box {
|
||||
width: 100%;
|
||||
border-radius: 16rpx;
|
||||
height: 100%;
|
||||
overflow-y: auto;
|
||||
display: flex;
|
||||
flex-wrap: wrap;
|
||||
justify-content: space-between;
|
||||
align-content: flex-start;
|
||||
|
||||
box-sizing: border-box;
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
</style>
|
||||
|
||||
@@ -1,173 +1,173 @@
|
||||
<template>
|
||||
<view class="content">
|
||||
<TopSafe></TopSafe>
|
||||
<Header title="信任桥优选专区" >
|
||||
<!-- #ifndef MP-WEIXIN -->
|
||||
<template v-slot:right>
|
||||
<u-icon name="share-fill" @click="onShare" color="#333" size="24"></u-icon>
|
||||
</template>
|
||||
<!-- #endif -->
|
||||
</Header>
|
||||
|
||||
<view class="swiper-view">
|
||||
<up-swiper
|
||||
:list="swiperList"
|
||||
style="width:100%"
|
||||
circular
|
||||
></up-swiper>
|
||||
</view>
|
||||
|
||||
<view class="mid-panel">
|
||||
<up-image src="/static/common/jingxuan_left.png" width="24" height="8" bgColor="#f1f6ff00"></up-image>
|
||||
<view style="margin:0 12rpx">信任桥优选</view>
|
||||
<up-image src="/static/common/jingxuan_right.png" width="24" height="8" bgColor="#f1f6ff00"></up-image>
|
||||
</view>
|
||||
|
||||
<view class="setting-view">
|
||||
<YouItem @ok="onJumpShop" style="margin-bottom:24rpx" :obj="item" v-for="(item,index) in dataList" :key="index"></YouItem>
|
||||
</view>
|
||||
<up-toast ref="uToastRef"></up-toast>
|
||||
</view>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
import Header from '@/components/common/header.vue';
|
||||
import TopSafe from '@/components/common/top-safe.nvue'
|
||||
import MyBtn from '@/components/common/my-btn.vue'
|
||||
import YouItem from '@/components/shop/you-item.vue'
|
||||
import { searchList } from '@/api/product.js';
|
||||
import { getCarouselImage } from '@/api/common.js';
|
||||
|
||||
export default {
|
||||
components: { Header, TopSafe,MyBtn,YouItem },
|
||||
data() {
|
||||
return {
|
||||
dataList:[
|
||||
],
|
||||
swiperList: ['https://cdn.uviewui.com/uview/swiper/swiper1.png'],
|
||||
};
|
||||
},
|
||||
onShow() {
|
||||
},
|
||||
onLoad() {
|
||||
this.init();
|
||||
this.getCarouselImage();
|
||||
},
|
||||
methods: {
|
||||
init() {
|
||||
this.getSearchList();
|
||||
},
|
||||
async getSearchList(){
|
||||
const params = {
|
||||
type:1,
|
||||
page:1,
|
||||
pageSize:99,
|
||||
}
|
||||
const resp = await searchList(params);
|
||||
if(resp && resp.bizcode === 100){
|
||||
this.dataList = resp.data || [];
|
||||
}
|
||||
},
|
||||
async getCarouselImage(){
|
||||
const params={
|
||||
pageUi:4,
|
||||
}
|
||||
const resp = await getCarouselImage(params);
|
||||
if(resp && resp.bizcode === 100){
|
||||
const data = resp.data || [];
|
||||
this.swiperList = data.length !== 0 ? data.map(obj=>obj.carouselImage) : [];
|
||||
}
|
||||
},
|
||||
onJumpShop(id){
|
||||
uni.navigateTo({
|
||||
url: '/pages/other_package/productInfo/productInfo?id='+id,
|
||||
})
|
||||
},
|
||||
onShare(){
|
||||
uni.navigateTo({
|
||||
url: '/pages/other_package/invite_friends/invite_friends',
|
||||
})
|
||||
}
|
||||
}
|
||||
}
|
||||
</script>
|
||||
|
||||
<style lang="scss" scoped>
|
||||
.bottom-btn{
|
||||
width: 100%;
|
||||
margin-bottom:92rpx;
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
align-items: center;
|
||||
padding: 0 32rpx;
|
||||
box-sizing: border-box;
|
||||
position: relative;
|
||||
|
||||
}
|
||||
.mid-panel{
|
||||
width:100%;
|
||||
display: flex;
|
||||
flex-direction: row;
|
||||
align-items: center;
|
||||
justify-content: center;
|
||||
height:120rpx;
|
||||
min-height:120rpx;
|
||||
}
|
||||
.swiper-view{
|
||||
width:100%;
|
||||
height:268rpx;
|
||||
min-height:268rpx;
|
||||
display: flex;
|
||||
}
|
||||
.setting-view {
|
||||
width: 100%;
|
||||
height: calc(100% - 88rpx - var(--status-bar-height));
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
align-items: center;
|
||||
overflow-y: auto;
|
||||
padding: 0 32rpx;
|
||||
box-sizing: border-box;
|
||||
position: relative;
|
||||
.name-box{
|
||||
width:100%;
|
||||
border-radius: 16rpx;
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
background-color: #fff;
|
||||
padding: 64rpx 32rpx;
|
||||
box-sizing: border-box;
|
||||
margin-top:24rpx;
|
||||
.mid-view{
|
||||
width:100%;
|
||||
padding: 40rpx 32rpx;
|
||||
box-sizing: border-box;
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
border:2rpx solid #eaeaea;
|
||||
border-radius: 16rpx;
|
||||
margin-top:48rpx;
|
||||
}
|
||||
.top-view{
|
||||
width:100%;
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
align-items: center;
|
||||
}
|
||||
.input-view{
|
||||
border-radius: 20rpx;
|
||||
margin-top:52rpx;
|
||||
width:100%;
|
||||
padding: 0 32rpx;
|
||||
min-height:104rpx;
|
||||
display: flex;
|
||||
flex-direction: row;
|
||||
align-items: center;
|
||||
background-color: #f5f5f5;
|
||||
box-sizing: border-box;
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
</style>
|
||||
<template>
|
||||
<view class="content">
|
||||
<TopSafe></TopSafe>
|
||||
<Header title="信任桥优选专区" >
|
||||
<!-- #ifndef MP-WEIXIN -->
|
||||
<template v-slot:right>
|
||||
<u-icon name="share-fill" @click="onShare" color="#333" size="24"></u-icon>
|
||||
</template>
|
||||
<!-- #endif -->
|
||||
</Header>
|
||||
|
||||
<view class="swiper-view">
|
||||
<up-swiper
|
||||
:list="swiperList"
|
||||
style="width:100%"
|
||||
circular
|
||||
></up-swiper>
|
||||
</view>
|
||||
|
||||
<view class="mid-panel">
|
||||
<up-image src="/static/common/jingxuan_left.png" width="24" height="8" bgColor="#f1f6ff00"></up-image>
|
||||
<view style="margin:0 12rpx">信任桥优选</view>
|
||||
<up-image src="/static/common/jingxuan_right.png" width="24" height="8" bgColor="#f1f6ff00"></up-image>
|
||||
</view>
|
||||
|
||||
<view class="setting-view">
|
||||
<YouItem @ok="onJumpShop" style="margin-bottom:24rpx" :obj="item" v-for="(item,index) in dataList" :key="index"></YouItem>
|
||||
</view>
|
||||
<up-toast ref="uToastRef"></up-toast>
|
||||
</view>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
import Header from '@/components/common/header.vue';
|
||||
import TopSafe from '@/components/common/top-safe.nvue'
|
||||
import MyBtn from '@/components/common/my-btn.vue'
|
||||
import YouItem from '@/components/shop/you-item.vue'
|
||||
import { searchList } from '@/api/product.js';
|
||||
import { getCarouselImage } from '@/api/common.js';
|
||||
|
||||
export default {
|
||||
components: { Header, TopSafe,MyBtn,YouItem },
|
||||
data() {
|
||||
return {
|
||||
dataList:[
|
||||
],
|
||||
swiperList: ['https://cdn.uviewui.com/uview/swiper/swiper1.png'],
|
||||
};
|
||||
},
|
||||
onShow() {
|
||||
},
|
||||
onLoad() {
|
||||
this.init();
|
||||
this.getCarouselImage();
|
||||
},
|
||||
methods: {
|
||||
init() {
|
||||
this.getSearchList();
|
||||
},
|
||||
async getSearchList(){
|
||||
const params = {
|
||||
type:1,
|
||||
page:1,
|
||||
pageSize:99,
|
||||
}
|
||||
const resp = await searchList(params);
|
||||
if(resp && resp.bizcode === 100){
|
||||
this.dataList = resp.data || [];
|
||||
}
|
||||
},
|
||||
async getCarouselImage(){
|
||||
const params={
|
||||
pageUi:4,
|
||||
}
|
||||
const resp = await getCarouselImage(params);
|
||||
if(resp && resp.bizcode === 100){
|
||||
const data = resp.data || [];
|
||||
this.swiperList = data.length !== 0 ? data.map(obj=>obj.carouselImage) : [];
|
||||
}
|
||||
},
|
||||
onJumpShop(id){
|
||||
uni.navigateTo({
|
||||
url: '/pages/other_package/productInfo/productInfo?id='+id,
|
||||
})
|
||||
},
|
||||
onShare(){
|
||||
uni.navigateTo({
|
||||
url: '/pages/other_package/invite_friends/invite_friends',
|
||||
})
|
||||
}
|
||||
}
|
||||
}
|
||||
</script>
|
||||
|
||||
<style lang="scss" scoped>
|
||||
.bottom-btn{
|
||||
width: 100%;
|
||||
margin-bottom:92rpx;
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
align-items: center;
|
||||
padding: 0 32rpx;
|
||||
box-sizing: border-box;
|
||||
position: relative;
|
||||
|
||||
}
|
||||
.mid-panel{
|
||||
width:100%;
|
||||
display: flex;
|
||||
flex-direction: row;
|
||||
align-items: center;
|
||||
justify-content: center;
|
||||
height:120rpx;
|
||||
min-height:120rpx;
|
||||
}
|
||||
.swiper-view{
|
||||
width:100%;
|
||||
height:268rpx;
|
||||
min-height:268rpx;
|
||||
display: flex;
|
||||
}
|
||||
.setting-view {
|
||||
width: 100%;
|
||||
height: calc(100% - 88rpx - var(--status-bar-height));
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
align-items: center;
|
||||
overflow-y: auto;
|
||||
padding: 0 32rpx;
|
||||
box-sizing: border-box;
|
||||
position: relative;
|
||||
.name-box{
|
||||
width:100%;
|
||||
border-radius: 16rpx;
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
background-color: #fff;
|
||||
padding: 64rpx 32rpx;
|
||||
box-sizing: border-box;
|
||||
margin-top:24rpx;
|
||||
.mid-view{
|
||||
width:100%;
|
||||
padding: 40rpx 32rpx;
|
||||
box-sizing: border-box;
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
border:2rpx solid #eaeaea;
|
||||
border-radius: 16rpx;
|
||||
margin-top:48rpx;
|
||||
}
|
||||
.top-view{
|
||||
width:100%;
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
align-items: center;
|
||||
}
|
||||
.input-view{
|
||||
border-radius: 20rpx;
|
||||
margin-top:52rpx;
|
||||
width:100%;
|
||||
padding: 0 32rpx;
|
||||
min-height:104rpx;
|
||||
display: flex;
|
||||
flex-direction: row;
|
||||
align-items: center;
|
||||
background-color: #f5f5f5;
|
||||
box-sizing: border-box;
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
</style>
|
||||
|
||||
+170
-170
@@ -1,170 +1,170 @@
|
||||
<template>
|
||||
<view class="content">
|
||||
<TopSafe></TopSafe>
|
||||
<Header title="兑换券专区" >
|
||||
<!-- #ifndef MP-WEIXIN -->
|
||||
<template v-slot:right>
|
||||
<u-icon name="share-fill" @click="onShare" color="#333" size="24"></u-icon>
|
||||
</template>
|
||||
<!-- #endif -->
|
||||
</Header>
|
||||
<view class="swiper-view">
|
||||
<up-swiper
|
||||
:list="swiperList"
|
||||
style="width:100%"
|
||||
circular
|
||||
></up-swiper>
|
||||
</view>
|
||||
|
||||
<view class="mid-panel">
|
||||
<up-image src="/static/common/jingxuan_left.png" width="24" height="8" bgColor="#f1f6ff00"></up-image>
|
||||
<view style="margin:0 12rpx">信任桥兑换</view>
|
||||
<up-image src="/static/common/jingxuan_right.png" width="24" height="8" bgColor="#f1f6ff00"></up-image>
|
||||
</view>
|
||||
<view class="setting-view">
|
||||
<FenItem @ok="onJumpShop" style="margin-top:24rpx" :obj="item" v-for="(item,index) in dataList" :key="index"></FenItem>
|
||||
</view>
|
||||
<up-toast ref="uToastRef"></up-toast>
|
||||
</view>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
import Header from '@/components/common/header.vue';
|
||||
import TopSafe from '@/components/common/top-safe.nvue'
|
||||
import MyBtn from '@/components/common/my-btn.vue'
|
||||
import FenItem from '@/components/shop/fen-item.vue'
|
||||
import { searchList } from '@/api/product.js';
|
||||
import { getCarouselImage } from '@/api/common.js';
|
||||
|
||||
export default {
|
||||
components: { Header, TopSafe,MyBtn,FenItem },
|
||||
data() {
|
||||
return {
|
||||
dataList:[],
|
||||
swiperList: ['https://cdn.uviewui.com/uview/swiper/swiper1.png'],
|
||||
};
|
||||
},
|
||||
onShow() {
|
||||
},
|
||||
onLoad() {
|
||||
this.init();
|
||||
},
|
||||
methods: {
|
||||
init() {
|
||||
this.getSearchList();
|
||||
this.getCarouselImage();
|
||||
},
|
||||
async getCarouselImage(){
|
||||
const params={
|
||||
pageUi:6,
|
||||
}
|
||||
const resp = await getCarouselImage(params);
|
||||
if(resp && resp.bizcode === 100){
|
||||
const data = resp.data || [];
|
||||
this.swiperList = data.length !== 0 ? data.map(obj=>obj.carouselImage) : [];
|
||||
}
|
||||
},
|
||||
async getSearchList(){
|
||||
const params = {
|
||||
type:3,
|
||||
page:1,
|
||||
pageSize:99,
|
||||
}
|
||||
const resp = await searchList(params);
|
||||
if(resp && resp.bizcode === 100){
|
||||
this.dataList = resp.data || [];
|
||||
}
|
||||
},
|
||||
onJumpShop(id){
|
||||
uni.navigateTo({
|
||||
url: '/pages/other_package/productInfo/productInfo?id='+id,
|
||||
})
|
||||
},
|
||||
onShare(){
|
||||
uni.navigateTo({
|
||||
url: '/pages/other_package/invite_friends/invite_friends',
|
||||
})
|
||||
}
|
||||
}
|
||||
}
|
||||
</script>
|
||||
|
||||
<style lang="scss" scoped>
|
||||
.bottom-btn{
|
||||
width: 100%;
|
||||
margin-bottom:92rpx;
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
align-items: center;
|
||||
padding: 0 32rpx;
|
||||
box-sizing: border-box;
|
||||
position: relative;
|
||||
|
||||
}
|
||||
.mid-panel{
|
||||
width:100%;
|
||||
display: flex;
|
||||
flex-direction: row;
|
||||
align-items: center;
|
||||
justify-content: center;
|
||||
height:120rpx;
|
||||
min-height:120rpx;
|
||||
}
|
||||
.swiper-view{
|
||||
width:100%;
|
||||
height:268rpx;
|
||||
min-height:268rpx;
|
||||
display: flex;
|
||||
}
|
||||
.setting-view {
|
||||
width: 100%;
|
||||
height: calc(100% - 88rpx - 268rpx - 156rpx - var(--status-bar-height));
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
align-items: center;
|
||||
overflow-y: auto;
|
||||
padding: 0 32rpx;
|
||||
box-sizing: border-box;
|
||||
position: relative;
|
||||
.name-box{
|
||||
width:100%;
|
||||
border-radius: 16rpx;
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
background-color: #fff;
|
||||
padding: 64rpx 32rpx;
|
||||
box-sizing: border-box;
|
||||
margin-top:24rpx;
|
||||
.mid-view{
|
||||
width:100%;
|
||||
padding: 40rpx 32rpx;
|
||||
box-sizing: border-box;
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
border:2rpx solid #eaeaea;
|
||||
border-radius: 16rpx;
|
||||
margin-top:48rpx;
|
||||
}
|
||||
.top-view{
|
||||
width:100%;
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
align-items: center;
|
||||
}
|
||||
.input-view{
|
||||
border-radius: 20rpx;
|
||||
margin-top:52rpx;
|
||||
width:100%;
|
||||
padding: 0 32rpx;
|
||||
min-height:104rpx;
|
||||
display: flex;
|
||||
flex-direction: row;
|
||||
align-items: center;
|
||||
background-color: #f5f5f5;
|
||||
box-sizing: border-box;
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
</style>
|
||||
<template>
|
||||
<view class="content">
|
||||
<TopSafe></TopSafe>
|
||||
<Header title="兑换券专区" >
|
||||
<!-- #ifndef MP-WEIXIN -->
|
||||
<template v-slot:right>
|
||||
<u-icon name="share-fill" @click="onShare" color="#333" size="24"></u-icon>
|
||||
</template>
|
||||
<!-- #endif -->
|
||||
</Header>
|
||||
<view class="swiper-view">
|
||||
<up-swiper
|
||||
:list="swiperList"
|
||||
style="width:100%"
|
||||
circular
|
||||
></up-swiper>
|
||||
</view>
|
||||
|
||||
<view class="mid-panel">
|
||||
<up-image src="/static/common/jingxuan_left.png" width="24" height="8" bgColor="#f1f6ff00"></up-image>
|
||||
<view style="margin:0 12rpx">信任桥兑换</view>
|
||||
<up-image src="/static/common/jingxuan_right.png" width="24" height="8" bgColor="#f1f6ff00"></up-image>
|
||||
</view>
|
||||
<view class="setting-view">
|
||||
<FenItem @ok="onJumpShop" style="margin-top:24rpx" :obj="item" v-for="(item,index) in dataList" :key="index"></FenItem>
|
||||
</view>
|
||||
<up-toast ref="uToastRef"></up-toast>
|
||||
</view>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
import Header from '@/components/common/header.vue';
|
||||
import TopSafe from '@/components/common/top-safe.nvue'
|
||||
import MyBtn from '@/components/common/my-btn.vue'
|
||||
import FenItem from '@/components/shop/fen-item.vue'
|
||||
import { searchList } from '@/api/product.js';
|
||||
import { getCarouselImage } from '@/api/common.js';
|
||||
|
||||
export default {
|
||||
components: { Header, TopSafe,MyBtn,FenItem },
|
||||
data() {
|
||||
return {
|
||||
dataList:[],
|
||||
swiperList: ['https://cdn.uviewui.com/uview/swiper/swiper1.png'],
|
||||
};
|
||||
},
|
||||
onShow() {
|
||||
},
|
||||
onLoad() {
|
||||
this.init();
|
||||
},
|
||||
methods: {
|
||||
init() {
|
||||
this.getSearchList();
|
||||
this.getCarouselImage();
|
||||
},
|
||||
async getCarouselImage(){
|
||||
const params={
|
||||
pageUi:6,
|
||||
}
|
||||
const resp = await getCarouselImage(params);
|
||||
if(resp && resp.bizcode === 100){
|
||||
const data = resp.data || [];
|
||||
this.swiperList = data.length !== 0 ? data.map(obj=>obj.carouselImage) : [];
|
||||
}
|
||||
},
|
||||
async getSearchList(){
|
||||
const params = {
|
||||
type:3,
|
||||
page:1,
|
||||
pageSize:99,
|
||||
}
|
||||
const resp = await searchList(params);
|
||||
if(resp && resp.bizcode === 100){
|
||||
this.dataList = resp.data || [];
|
||||
}
|
||||
},
|
||||
onJumpShop(id){
|
||||
uni.navigateTo({
|
||||
url: '/pages/other_package/productInfo/productInfo?id='+id,
|
||||
})
|
||||
},
|
||||
onShare(){
|
||||
uni.navigateTo({
|
||||
url: '/pages/other_package/invite_friends/invite_friends',
|
||||
})
|
||||
}
|
||||
}
|
||||
}
|
||||
</script>
|
||||
|
||||
<style lang="scss" scoped>
|
||||
.bottom-btn{
|
||||
width: 100%;
|
||||
margin-bottom:92rpx;
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
align-items: center;
|
||||
padding: 0 32rpx;
|
||||
box-sizing: border-box;
|
||||
position: relative;
|
||||
|
||||
}
|
||||
.mid-panel{
|
||||
width:100%;
|
||||
display: flex;
|
||||
flex-direction: row;
|
||||
align-items: center;
|
||||
justify-content: center;
|
||||
height:120rpx;
|
||||
min-height:120rpx;
|
||||
}
|
||||
.swiper-view{
|
||||
width:100%;
|
||||
height:268rpx;
|
||||
min-height:268rpx;
|
||||
display: flex;
|
||||
}
|
||||
.setting-view {
|
||||
width: 100%;
|
||||
height: calc(100% - 88rpx - 268rpx - 156rpx - var(--status-bar-height));
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
align-items: center;
|
||||
overflow-y: auto;
|
||||
padding: 0 32rpx;
|
||||
box-sizing: border-box;
|
||||
position: relative;
|
||||
.name-box{
|
||||
width:100%;
|
||||
border-radius: 16rpx;
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
background-color: #fff;
|
||||
padding: 64rpx 32rpx;
|
||||
box-sizing: border-box;
|
||||
margin-top:24rpx;
|
||||
.mid-view{
|
||||
width:100%;
|
||||
padding: 40rpx 32rpx;
|
||||
box-sizing: border-box;
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
border:2rpx solid #eaeaea;
|
||||
border-radius: 16rpx;
|
||||
margin-top:48rpx;
|
||||
}
|
||||
.top-view{
|
||||
width:100%;
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
align-items: center;
|
||||
}
|
||||
.input-view{
|
||||
border-radius: 20rpx;
|
||||
margin-top:52rpx;
|
||||
width:100%;
|
||||
padding: 0 32rpx;
|
||||
min-height:104rpx;
|
||||
display: flex;
|
||||
flex-direction: row;
|
||||
align-items: center;
|
||||
background-color: #f5f5f5;
|
||||
box-sizing: border-box;
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
</style>
|
||||
|
||||
@@ -1,116 +1,116 @@
|
||||
<template>
|
||||
<view class="content">
|
||||
<TopSafe></TopSafe>
|
||||
<Header :title="name" >
|
||||
<!-- #ifndef MP-WEIXIN -->
|
||||
<template v-slot:right>
|
||||
<u-icon name="share-fill" @click="onShare" color="#333" size="24"></u-icon>
|
||||
</template>
|
||||
<!-- #endif -->
|
||||
</Header>
|
||||
<view class="setting-view">
|
||||
<view class="name-box">
|
||||
<PingItem @ok="onJumpShop" style="margin-top:24rpx" :obj="item" v-for="(item,index) in dataList" :key="index"></PingItem>
|
||||
</view>
|
||||
</view>
|
||||
<up-toast ref="uToastRef"></up-toast>
|
||||
</view>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
import Header from '@/components/common/header.vue';
|
||||
import TopSafe from '@/components/common/top-safe.nvue'
|
||||
import MyBtn from '@/components/common/my-btn.vue'
|
||||
import { searchList } from '@/api/product.js';
|
||||
import { getCascadeCategory } from '@/api/common.js';
|
||||
|
||||
import PingItem from "@/components/shop/ping-item.vue";
|
||||
import func from '@/utils/func.js';
|
||||
|
||||
export default {
|
||||
components: { Header, TopSafe,MyBtn,PingItem },
|
||||
data() {
|
||||
return {
|
||||
dataList:[
|
||||
],
|
||||
name:null,
|
||||
id:0
|
||||
};
|
||||
},
|
||||
onShow() {
|
||||
},
|
||||
onLoad(option) {
|
||||
if(option && option.id){
|
||||
this.id = Number(option.id);
|
||||
this.name = option.name;
|
||||
this.init();
|
||||
}
|
||||
|
||||
},
|
||||
methods: {
|
||||
init() {
|
||||
this.getSearchList();
|
||||
},
|
||||
async getSearchList(){
|
||||
const params = {
|
||||
page: 1,
|
||||
pageSize: 99,
|
||||
categoryId:this.id
|
||||
}
|
||||
const resp = await searchList(params);
|
||||
if(resp && resp.bizcode === 100){
|
||||
this.dataList = resp.data || [];
|
||||
}
|
||||
},
|
||||
onJumpShop(id){
|
||||
uni.navigateTo({
|
||||
url: '/pages/other_package/productInfo/productInfo?id='+id,
|
||||
})
|
||||
},
|
||||
onShare(){
|
||||
uni.navigateTo({
|
||||
url: '/pages/other_package/invite_friends/invite_friends',
|
||||
})
|
||||
}
|
||||
}
|
||||
}
|
||||
</script>
|
||||
|
||||
<style lang="scss" scoped>
|
||||
.bottom-btn{
|
||||
width: 100%;
|
||||
margin-bottom:92rpx;
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
align-items: center;
|
||||
padding: 0 32rpx;
|
||||
box-sizing: border-box;
|
||||
position: relative;
|
||||
|
||||
}
|
||||
.setting-view {
|
||||
width: 100%;
|
||||
height: calc(100% - 88rpx - var(--status-bar-height));
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
align-items: center;
|
||||
overflow-y: auto;
|
||||
padding: 0 32rpx;
|
||||
box-sizing: border-box;
|
||||
position: relative;
|
||||
.name-box {
|
||||
width: 100%;
|
||||
border-radius: 16rpx;
|
||||
height: 100%;
|
||||
overflow-y: auto;
|
||||
display: flex;
|
||||
flex-wrap: wrap;
|
||||
justify-content: space-between;
|
||||
align-content: flex-start;
|
||||
|
||||
box-sizing: border-box;
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
</style>
|
||||
<template>
|
||||
<view class="content">
|
||||
<TopSafe></TopSafe>
|
||||
<Header :title="name" >
|
||||
<!-- #ifndef MP-WEIXIN -->
|
||||
<template v-slot:right>
|
||||
<u-icon name="share-fill" @click="onShare" color="#333" size="24"></u-icon>
|
||||
</template>
|
||||
<!-- #endif -->
|
||||
</Header>
|
||||
<view class="setting-view">
|
||||
<view class="name-box">
|
||||
<PingItem @ok="onJumpShop" style="margin-top:24rpx" :obj="item" v-for="(item,index) in dataList" :key="index"></PingItem>
|
||||
</view>
|
||||
</view>
|
||||
<up-toast ref="uToastRef"></up-toast>
|
||||
</view>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
import Header from '@/components/common/header.vue';
|
||||
import TopSafe from '@/components/common/top-safe.nvue'
|
||||
import MyBtn from '@/components/common/my-btn.vue'
|
||||
import { searchList } from '@/api/product.js';
|
||||
import { getCascadeCategory } from '@/api/common.js';
|
||||
|
||||
import PingItem from "@/components/shop/ping-item.vue";
|
||||
import func from '@/utils/func.js';
|
||||
|
||||
export default {
|
||||
components: { Header, TopSafe,MyBtn,PingItem },
|
||||
data() {
|
||||
return {
|
||||
dataList:[
|
||||
],
|
||||
name:null,
|
||||
id:0
|
||||
};
|
||||
},
|
||||
onShow() {
|
||||
},
|
||||
onLoad(option) {
|
||||
if(option && option.id){
|
||||
this.id = Number(option.id);
|
||||
this.name = option.name;
|
||||
this.init();
|
||||
}
|
||||
|
||||
},
|
||||
methods: {
|
||||
init() {
|
||||
this.getSearchList();
|
||||
},
|
||||
async getSearchList(){
|
||||
const params = {
|
||||
page: 1,
|
||||
pageSize: 99,
|
||||
categoryId:this.id
|
||||
}
|
||||
const resp = await searchList(params);
|
||||
if(resp && resp.bizcode === 100){
|
||||
this.dataList = resp.data || [];
|
||||
}
|
||||
},
|
||||
onJumpShop(id){
|
||||
uni.navigateTo({
|
||||
url: '/pages/other_package/productInfo/productInfo?id='+id,
|
||||
})
|
||||
},
|
||||
onShare(){
|
||||
uni.navigateTo({
|
||||
url: '/pages/other_package/invite_friends/invite_friends',
|
||||
})
|
||||
}
|
||||
}
|
||||
}
|
||||
</script>
|
||||
|
||||
<style lang="scss" scoped>
|
||||
.bottom-btn{
|
||||
width: 100%;
|
||||
margin-bottom:92rpx;
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
align-items: center;
|
||||
padding: 0 32rpx;
|
||||
box-sizing: border-box;
|
||||
position: relative;
|
||||
|
||||
}
|
||||
.setting-view {
|
||||
width: 100%;
|
||||
height: calc(100% - 88rpx - var(--status-bar-height));
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
align-items: center;
|
||||
overflow-y: auto;
|
||||
padding: 0 32rpx;
|
||||
box-sizing: border-box;
|
||||
position: relative;
|
||||
.name-box {
|
||||
width: 100%;
|
||||
border-radius: 16rpx;
|
||||
height: 100%;
|
||||
overflow-y: auto;
|
||||
display: flex;
|
||||
flex-wrap: wrap;
|
||||
justify-content: space-between;
|
||||
align-content: flex-start;
|
||||
|
||||
box-sizing: border-box;
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
</style>
|
||||
|
||||
+379
-379
@@ -1,379 +1,379 @@
|
||||
<template>
|
||||
<view class="content">
|
||||
<TopSafe></TopSafe>
|
||||
<view class="top-box">
|
||||
<shopHeader color="#fff" bgColor="transparent" isMid>
|
||||
<!-- #ifndef MP-WEIXIN -->
|
||||
<template v-slot:mid>
|
||||
<view
|
||||
class="header-left"
|
||||
style="height: 80rpx; display: flex; align-items: center"
|
||||
>
|
||||
<image
|
||||
src="https://cex-pub.s3.ap-southeast-1.amazonaws.com/static/home/shop-title.png"
|
||||
style="width: 240rpx; height: 38rpx"
|
||||
></image>
|
||||
</view>
|
||||
</template>
|
||||
<template v-slot:right>
|
||||
<view
|
||||
class="language_warp"
|
||||
style="width: 240rpx; height: 56rpx; justify-content: flex-start"
|
||||
@click="jumpSearch"
|
||||
>
|
||||
<view style="margin-top: 10rpx">
|
||||
<up-image
|
||||
src="https://cex-pub.s3.ap-southeast-1.amazonaws.com/static/home/shop-search.png"
|
||||
width="20"
|
||||
height="20"
|
||||
bgColor="#f1f6ff00"
|
||||
></up-image>
|
||||
</view>
|
||||
<text class="search_msg_warp">搜索</text>
|
||||
</view>
|
||||
</template>
|
||||
<!-- #endif -->
|
||||
</shopHeader>
|
||||
<view class="swiper-box">
|
||||
<view class="swiper-card">
|
||||
<u-swiper
|
||||
:list="swiperList"
|
||||
style="width: 100%; border-radius: 20rpx; height: 218rpx"
|
||||
circular
|
||||
@click="onSwiperClick"
|
||||
@change="(e) => (currentNum = e.current)"
|
||||
imgMode="scaleToFill"
|
||||
></u-swiper>
|
||||
</view>
|
||||
<view class="swiper-title">
|
||||
<image
|
||||
src="https://cex-pub.s3.ap-southeast-1.amazonaws.com/static/home/shop-intro.png"
|
||||
style="width: 308rpx; height: 30rpx"
|
||||
></image>
|
||||
<view class="swiper-center text-zi">信任桥-畅享全球好物</view>
|
||||
<image
|
||||
@click="goShare"
|
||||
src="https://cex-pub.s3.ap-southeast-1.amazonaws.com/static/home/shop-go.png"
|
||||
style="width: 75rpx; height: 30rpx"
|
||||
></image>
|
||||
</view>
|
||||
</view>
|
||||
|
||||
<!-- 爆款专区 -->
|
||||
<view class="shop-view">
|
||||
<view
|
||||
class="shop-item"
|
||||
v-for="(item, index) in faddishProduct"
|
||||
:style="{ background: 'url(' + item.url + ')' }"
|
||||
style="text-align: center; background-size: 202rpx 228rpx"
|
||||
:key="index"
|
||||
@click="jumpInfo(item)"
|
||||
>
|
||||
<view class="shop-content">
|
||||
<view class="shop-name">{{ item.title }}</view>
|
||||
<view class="shop-price">优选价{{ item.price }}元</view>
|
||||
</view>
|
||||
</view>
|
||||
</view>
|
||||
</view>
|
||||
|
||||
<view class="setting-view">
|
||||
<YouItem
|
||||
@ok="onJumpShop"
|
||||
style="margin-bottom: 24rpx"
|
||||
:obj="item"
|
||||
v-for="(item, index) in dataList"
|
||||
:key="index"
|
||||
></YouItem>
|
||||
</view>
|
||||
<up-toast ref="uToastRef"></up-toast>
|
||||
</view>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
import shopHeader from "@/components/common/shopHeader.vue";
|
||||
import TopSafe from "@/components/common/top-safe.nvue";
|
||||
import MyBtn from "@/components/common/my-btn.vue";
|
||||
import YouItem from "@/components/shop/you-item.vue";
|
||||
import { searchList } from "@/api/product.js";
|
||||
import { getCarouselImage } from "@/api/common.js";
|
||||
|
||||
export default {
|
||||
components: { shopHeader, TopSafe, MyBtn, YouItem },
|
||||
data() {
|
||||
return {
|
||||
dataList: [],
|
||||
faddishProduct: [], // 爆款专区
|
||||
swiperList: ["https://cdn.uviewui.com/uview/swiper/swiper1.png"],
|
||||
swiperListData: [],
|
||||
};
|
||||
},
|
||||
onShow() {},
|
||||
onLoad() {
|
||||
this.init();
|
||||
this.getCarouselImage();
|
||||
},
|
||||
methods: {
|
||||
init() {
|
||||
this.getSearchList();
|
||||
this.querySearchList();
|
||||
},
|
||||
async querySearchList() {
|
||||
const params = {
|
||||
type: 1,
|
||||
page: 1,
|
||||
isRecomm: true,
|
||||
pageSize: 3,
|
||||
};
|
||||
const resp = await searchList(params);
|
||||
if (resp && resp.bizcode === 100) {
|
||||
this.faddishProduct = resp.data;
|
||||
}
|
||||
},
|
||||
jumpSearch() {
|
||||
uni.navigateTo({
|
||||
url: "/pages/rwa_package/dongjian/search",
|
||||
});
|
||||
},
|
||||
// 跳转到商品详情
|
||||
jumpInfo(item) {
|
||||
uni.navigateTo({
|
||||
url: "/pages/other_package/productInfo/productInfo?id=" + item.id,
|
||||
});
|
||||
},
|
||||
|
||||
goShare() {
|
||||
console.log("go 的地址");
|
||||
if (this.swiperListData[0]?.goodsUrl) {
|
||||
uni.navigateTo({
|
||||
url:
|
||||
"/pages/other_package/productInfo/productInfo?id=" +
|
||||
this.swiperListData[0].goodsUrl,
|
||||
});
|
||||
}
|
||||
},
|
||||
onSwiperClick(index) {
|
||||
console.log("banner1111", this.swiperList, index);
|
||||
this.swiperListData[index].goodsUrl;
|
||||
if (this.swiperListData[index]?.goodsUrl) {
|
||||
uni.navigateTo({
|
||||
url:
|
||||
"/pages/other_package/productInfo/productInfo?id=" +
|
||||
this.swiperListData[index].goodsUrl,
|
||||
});
|
||||
}
|
||||
},
|
||||
async getSearchList() {
|
||||
const params = {
|
||||
type: 1,
|
||||
page: 1,
|
||||
pageSize: 99,
|
||||
};
|
||||
const resp = await searchList(params);
|
||||
if (resp && resp.bizcode === 100) {
|
||||
this.dataList = resp.data || [];
|
||||
}
|
||||
},
|
||||
async getCarouselImage() {
|
||||
const params = {
|
||||
pageUi: 4,
|
||||
};
|
||||
const resp = await getCarouselImage(params);
|
||||
if (resp && resp.bizcode === 100) {
|
||||
const data = resp.data || [];
|
||||
this.swiperListData = data;
|
||||
this.swiperList =
|
||||
data.length !== 0 ? data.map((obj) => obj.carouselImage) : [];
|
||||
}
|
||||
},
|
||||
onJumpShop(id) {
|
||||
uni.navigateTo({
|
||||
url: "/pages/other_package/productInfo/productInfo?id=" + id,
|
||||
});
|
||||
},
|
||||
onShare() {
|
||||
uni.navigateTo({
|
||||
url: "/pages/other_package/invite_friends/invite_friends",
|
||||
});
|
||||
},
|
||||
},
|
||||
};
|
||||
</script>
|
||||
|
||||
<style lang="scss" scoped>
|
||||
.content {
|
||||
height: auto;
|
||||
overflow: auto;
|
||||
}
|
||||
.top-box {
|
||||
width: 100%;
|
||||
padding-bottom: 24rpx;
|
||||
background: linear-gradient(270deg, #af39c4 0%, #7732ff 100%);
|
||||
.swiper-box {
|
||||
position: relative;
|
||||
margin-bottom: 20rpx;
|
||||
.swiper-card {
|
||||
padding: 12rpx 32rpx 0;
|
||||
height:200rpx;
|
||||
}
|
||||
.swiper-title {
|
||||
padding: 3rpx 16rpx;
|
||||
box-sizing: border-box;
|
||||
|
||||
position: relative;
|
||||
z-index: 10;
|
||||
// left: -14rpx;
|
||||
// top: 164rpx;
|
||||
height: 56rpx;
|
||||
width: 702rpx;
|
||||
display: flex;
|
||||
justify-content: space-between;
|
||||
align-items: center;
|
||||
margin: 0 auto;
|
||||
background-color: #f0e7fe;
|
||||
border-radius: 8rpx;
|
||||
}
|
||||
.swiper-center {
|
||||
background: #ffffff;
|
||||
border-radius: 6rpx;
|
||||
font-size: 20rpx;
|
||||
padding: 0 20rpx;
|
||||
border: 2rpx solid;
|
||||
border-image: linear-gradient(
|
||||
270deg,
|
||||
rgba(174, 57, 196, 1),
|
||||
rgba(119, 50, 255, 1)
|
||||
)
|
||||
1 1;
|
||||
}
|
||||
}
|
||||
|
||||
.shop-view {
|
||||
background-color: #fff;
|
||||
border-radius: 24rpx;
|
||||
margin: 0 24rpx;
|
||||
display: flex;
|
||||
justify-content: space-between;
|
||||
padding: 24rpx;
|
||||
.shop-item {
|
||||
width: 202rpx;
|
||||
border-radius: 24rpx;
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
align-items: center;
|
||||
justify-content: center;
|
||||
.shop-content {
|
||||
width: 100%;
|
||||
margin-top: 130rpx;
|
||||
background: #f0e7fe;
|
||||
border-radius: 0 0 23rpx 24rpx;
|
||||
.shop-name {
|
||||
font-size: 24rpx;
|
||||
color: #000000;
|
||||
font-weight: bold;
|
||||
box-sizing: border-box;
|
||||
width: 202rpx;
|
||||
text-align: center;
|
||||
padding: 12rpx 10rpx;
|
||||
white-space: nowrap; /* 不换行 */
|
||||
overflow: hidden; /* 隐藏超出部分 */
|
||||
text-overflow: ellipsis; /* 显示省略号 */
|
||||
}
|
||||
.shop-price {
|
||||
width: 160rpx;
|
||||
font-size: 16rpx;
|
||||
padding: 3rpx 6rpx;
|
||||
box-sizing: border-box;
|
||||
color: #fff;
|
||||
background: linear-gradient(270deg, #af39c4 0%, #7732ff 100%);
|
||||
border-radius: 4px;
|
||||
margin: 0 auto 12rpx;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
.language_warp {
|
||||
display: flex;
|
||||
justify-content: space-between;
|
||||
align-items: center;
|
||||
width: 100rpx;
|
||||
height: 56rpx;
|
||||
padding: 0 24rpx;
|
||||
background: #ffffff;
|
||||
border-radius: 12rpx;
|
||||
}
|
||||
|
||||
.search_msg_warp {
|
||||
margin-left: 12rpx;
|
||||
font-weight: 400;
|
||||
font-size: 28rpx;
|
||||
color: #333;
|
||||
}
|
||||
.bottom-btn {
|
||||
width: 100%;
|
||||
margin-bottom: 92rpx;
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
align-items: center;
|
||||
padding: 0 32rpx;
|
||||
box-sizing: border-box;
|
||||
position: relative;
|
||||
}
|
||||
|
||||
.swiper-view {
|
||||
width: 100%;
|
||||
height: 268rpx;
|
||||
min-height: 268rpx;
|
||||
display: flex;
|
||||
}
|
||||
.setting-view {
|
||||
width: 100%;
|
||||
// height: calc(100% - var(--status-bar-height));
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
align-items: center;
|
||||
overflow-y: auto;
|
||||
padding: 24rpx;
|
||||
box-sizing: border-box;
|
||||
position: relative;
|
||||
.name-box {
|
||||
width: 100%;
|
||||
border-radius: 16rpx;
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
background-color: #fff;
|
||||
padding: 64rpx 32rpx;
|
||||
box-sizing: border-box;
|
||||
margin-top: 24rpx;
|
||||
.mid-view {
|
||||
width: 100%;
|
||||
padding: 40rpx 32rpx;
|
||||
box-sizing: border-box;
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
border: 2rpx solid #eaeaea;
|
||||
border-radius: 16rpx;
|
||||
margin-top: 48rpx;
|
||||
}
|
||||
.top-view {
|
||||
width: 100%;
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
align-items: center;
|
||||
}
|
||||
.input-view {
|
||||
border-radius: 20rpx;
|
||||
margin-top: 52rpx;
|
||||
width: 100%;
|
||||
padding: 0 32rpx;
|
||||
min-height: 104rpx;
|
||||
display: flex;
|
||||
flex-direction: row;
|
||||
align-items: center;
|
||||
background-color: #f5f5f5;
|
||||
box-sizing: border-box;
|
||||
}
|
||||
}
|
||||
}
|
||||
</style>
|
||||
<template>
|
||||
<view class="content">
|
||||
<TopSafe></TopSafe>
|
||||
<view class="top-box">
|
||||
<shopHeader color="#fff" bgColor="transparent" isMid>
|
||||
<!-- #ifndef MP-WEIXIN -->
|
||||
<template v-slot:mid>
|
||||
<view
|
||||
class="header-left"
|
||||
style="height: 80rpx; display: flex; align-items: center"
|
||||
>
|
||||
<image
|
||||
src="https://cex-pub.s3.ap-southeast-1.amazonaws.com/static/home/shop-title.png"
|
||||
style="width: 240rpx; height: 38rpx"
|
||||
></image>
|
||||
</view>
|
||||
</template>
|
||||
<template v-slot:right>
|
||||
<view
|
||||
class="language_warp"
|
||||
style="width: 240rpx; height: 56rpx; justify-content: flex-start"
|
||||
@click="jumpSearch"
|
||||
>
|
||||
<view style="margin-top: 10rpx">
|
||||
<up-image
|
||||
src="https://cex-pub.s3.ap-southeast-1.amazonaws.com/static/home/shop-search.png"
|
||||
width="20"
|
||||
height="20"
|
||||
bgColor="#f1f6ff00"
|
||||
></up-image>
|
||||
</view>
|
||||
<text class="search_msg_warp">搜索</text>
|
||||
</view>
|
||||
</template>
|
||||
<!-- #endif -->
|
||||
</shopHeader>
|
||||
<view class="swiper-box">
|
||||
<view class="swiper-card">
|
||||
<u-swiper
|
||||
:list="swiperList"
|
||||
style="width: 100%; border-radius: 20rpx; height: 218rpx"
|
||||
circular
|
||||
@click="onSwiperClick"
|
||||
@change="(e) => (currentNum = e.current)"
|
||||
imgMode="scaleToFill"
|
||||
></u-swiper>
|
||||
</view>
|
||||
<view class="swiper-title">
|
||||
<image
|
||||
src="https://cex-pub.s3.ap-southeast-1.amazonaws.com/static/home/shop-intro.png"
|
||||
style="width: 308rpx; height: 30rpx"
|
||||
></image>
|
||||
<view class="swiper-center text-zi">信任桥-畅享全球好物</view>
|
||||
<image
|
||||
@click="goShare"
|
||||
src="https://cex-pub.s3.ap-southeast-1.amazonaws.com/static/home/shop-go.png"
|
||||
style="width: 75rpx; height: 30rpx"
|
||||
></image>
|
||||
</view>
|
||||
</view>
|
||||
|
||||
<!-- 爆款专区 -->
|
||||
<view class="shop-view">
|
||||
<view
|
||||
class="shop-item"
|
||||
v-for="(item, index) in faddishProduct"
|
||||
:style="{ background: 'url(' + item.url + ')' }"
|
||||
style="text-align: center; background-size: 202rpx 228rpx"
|
||||
:key="index"
|
||||
@click="jumpInfo(item)"
|
||||
>
|
||||
<view class="shop-content">
|
||||
<view class="shop-name">{{ item.title }}</view>
|
||||
<view class="shop-price">优选价{{ item.price }}元</view>
|
||||
</view>
|
||||
</view>
|
||||
</view>
|
||||
</view>
|
||||
|
||||
<view class="setting-view">
|
||||
<YouItem
|
||||
@ok="onJumpShop"
|
||||
style="margin-bottom: 24rpx"
|
||||
:obj="item"
|
||||
v-for="(item, index) in dataList"
|
||||
:key="index"
|
||||
></YouItem>
|
||||
</view>
|
||||
<up-toast ref="uToastRef"></up-toast>
|
||||
</view>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
import shopHeader from "@/components/common/shopHeader.vue";
|
||||
import TopSafe from "@/components/common/top-safe.nvue";
|
||||
import MyBtn from "@/components/common/my-btn.vue";
|
||||
import YouItem from "@/components/shop/you-item.vue";
|
||||
import { searchList } from "@/api/product.js";
|
||||
import { getCarouselImage } from "@/api/common.js";
|
||||
|
||||
export default {
|
||||
components: { shopHeader, TopSafe, MyBtn, YouItem },
|
||||
data() {
|
||||
return {
|
||||
dataList: [],
|
||||
faddishProduct: [], // 爆款专区
|
||||
swiperList: ["https://cdn.uviewui.com/uview/swiper/swiper1.png"],
|
||||
swiperListData: [],
|
||||
};
|
||||
},
|
||||
onShow() {},
|
||||
onLoad() {
|
||||
this.init();
|
||||
this.getCarouselImage();
|
||||
},
|
||||
methods: {
|
||||
init() {
|
||||
this.getSearchList();
|
||||
this.querySearchList();
|
||||
},
|
||||
async querySearchList() {
|
||||
const params = {
|
||||
type: 1,
|
||||
page: 1,
|
||||
isRecomm: true,
|
||||
pageSize: 3,
|
||||
};
|
||||
const resp = await searchList(params);
|
||||
if (resp && resp.bizcode === 100) {
|
||||
this.faddishProduct = resp.data;
|
||||
}
|
||||
},
|
||||
jumpSearch() {
|
||||
uni.navigateTo({
|
||||
url: "/pages/rwa_package/dongjian/search",
|
||||
});
|
||||
},
|
||||
// 跳转到商品详情
|
||||
jumpInfo(item) {
|
||||
uni.navigateTo({
|
||||
url: "/pages/other_package/productInfo/productInfo?id=" + item.id,
|
||||
});
|
||||
},
|
||||
|
||||
goShare() {
|
||||
console.log("go 的地址");
|
||||
if (this.swiperListData[0]?.goodsUrl) {
|
||||
uni.navigateTo({
|
||||
url:
|
||||
"/pages/other_package/productInfo/productInfo?id=" +
|
||||
this.swiperListData[0].goodsUrl,
|
||||
});
|
||||
}
|
||||
},
|
||||
onSwiperClick(index) {
|
||||
console.log("banner1111", this.swiperList, index);
|
||||
this.swiperListData[index].goodsUrl;
|
||||
if (this.swiperListData[index]?.goodsUrl) {
|
||||
uni.navigateTo({
|
||||
url:
|
||||
"/pages/other_package/productInfo/productInfo?id=" +
|
||||
this.swiperListData[index].goodsUrl,
|
||||
});
|
||||
}
|
||||
},
|
||||
async getSearchList() {
|
||||
const params = {
|
||||
type: 1,
|
||||
page: 1,
|
||||
pageSize: 99,
|
||||
};
|
||||
const resp = await searchList(params);
|
||||
if (resp && resp.bizcode === 100) {
|
||||
this.dataList = resp.data || [];
|
||||
}
|
||||
},
|
||||
async getCarouselImage() {
|
||||
const params = {
|
||||
pageUi: 4,
|
||||
};
|
||||
const resp = await getCarouselImage(params);
|
||||
if (resp && resp.bizcode === 100) {
|
||||
const data = resp.data || [];
|
||||
this.swiperListData = data;
|
||||
this.swiperList =
|
||||
data.length !== 0 ? data.map((obj) => obj.carouselImage) : [];
|
||||
}
|
||||
},
|
||||
onJumpShop(id) {
|
||||
uni.navigateTo({
|
||||
url: "/pages/other_package/productInfo/productInfo?id=" + id,
|
||||
});
|
||||
},
|
||||
onShare() {
|
||||
uni.navigateTo({
|
||||
url: "/pages/other_package/invite_friends/invite_friends",
|
||||
});
|
||||
},
|
||||
},
|
||||
};
|
||||
</script>
|
||||
|
||||
<style lang="scss" scoped>
|
||||
.content {
|
||||
height: auto;
|
||||
overflow: auto;
|
||||
}
|
||||
.top-box {
|
||||
width: 100%;
|
||||
padding-bottom: 24rpx;
|
||||
background: linear-gradient(270deg, #af39c4 0%, #7732ff 100%);
|
||||
.swiper-box {
|
||||
position: relative;
|
||||
margin-bottom: 20rpx;
|
||||
.swiper-card {
|
||||
padding: 12rpx 32rpx 0;
|
||||
height:200rpx;
|
||||
}
|
||||
.swiper-title {
|
||||
padding: 3rpx 16rpx;
|
||||
box-sizing: border-box;
|
||||
|
||||
position: relative;
|
||||
z-index: 10;
|
||||
// left: -14rpx;
|
||||
// top: 164rpx;
|
||||
height: 56rpx;
|
||||
width: 702rpx;
|
||||
display: flex;
|
||||
justify-content: space-between;
|
||||
align-items: center;
|
||||
margin: 0 auto;
|
||||
background-color: #f0e7fe;
|
||||
border-radius: 8rpx;
|
||||
}
|
||||
.swiper-center {
|
||||
background: #ffffff;
|
||||
border-radius: 6rpx;
|
||||
font-size: 20rpx;
|
||||
padding: 0 20rpx;
|
||||
border: 2rpx solid;
|
||||
border-image: linear-gradient(
|
||||
270deg,
|
||||
rgba(174, 57, 196, 1),
|
||||
rgba(119, 50, 255, 1)
|
||||
)
|
||||
1 1;
|
||||
}
|
||||
}
|
||||
|
||||
.shop-view {
|
||||
background-color: #fff;
|
||||
border-radius: 24rpx;
|
||||
margin: 0 24rpx;
|
||||
display: flex;
|
||||
justify-content: space-between;
|
||||
padding: 24rpx;
|
||||
.shop-item {
|
||||
width: 202rpx;
|
||||
border-radius: 24rpx;
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
align-items: center;
|
||||
justify-content: center;
|
||||
.shop-content {
|
||||
width: 100%;
|
||||
margin-top: 130rpx;
|
||||
background: #f0e7fe;
|
||||
border-radius: 0 0 23rpx 24rpx;
|
||||
.shop-name {
|
||||
font-size: 24rpx;
|
||||
color: #000000;
|
||||
font-weight: bold;
|
||||
box-sizing: border-box;
|
||||
width: 202rpx;
|
||||
text-align: center;
|
||||
padding: 12rpx 10rpx;
|
||||
white-space: nowrap; /* 不换行 */
|
||||
overflow: hidden; /* 隐藏超出部分 */
|
||||
text-overflow: ellipsis; /* 显示省略号 */
|
||||
}
|
||||
.shop-price {
|
||||
width: 160rpx;
|
||||
font-size: 16rpx;
|
||||
padding: 3rpx 6rpx;
|
||||
box-sizing: border-box;
|
||||
color: #fff;
|
||||
background: linear-gradient(270deg, #af39c4 0%, #7732ff 100%);
|
||||
border-radius: 4px;
|
||||
margin: 0 auto 12rpx;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
.language_warp {
|
||||
display: flex;
|
||||
justify-content: space-between;
|
||||
align-items: center;
|
||||
width: 100rpx;
|
||||
height: 56rpx;
|
||||
padding: 0 24rpx;
|
||||
background: #ffffff;
|
||||
border-radius: 12rpx;
|
||||
}
|
||||
|
||||
.search_msg_warp {
|
||||
margin-left: 12rpx;
|
||||
font-weight: 400;
|
||||
font-size: 28rpx;
|
||||
color: #333;
|
||||
}
|
||||
.bottom-btn {
|
||||
width: 100%;
|
||||
margin-bottom: 92rpx;
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
align-items: center;
|
||||
padding: 0 32rpx;
|
||||
box-sizing: border-box;
|
||||
position: relative;
|
||||
}
|
||||
|
||||
.swiper-view {
|
||||
width: 100%;
|
||||
height: 268rpx;
|
||||
min-height: 268rpx;
|
||||
display: flex;
|
||||
}
|
||||
.setting-view {
|
||||
width: 100%;
|
||||
// height: calc(100% - var(--status-bar-height));
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
align-items: center;
|
||||
overflow-y: auto;
|
||||
padding: 24rpx;
|
||||
box-sizing: border-box;
|
||||
position: relative;
|
||||
.name-box {
|
||||
width: 100%;
|
||||
border-radius: 16rpx;
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
background-color: #fff;
|
||||
padding: 64rpx 32rpx;
|
||||
box-sizing: border-box;
|
||||
margin-top: 24rpx;
|
||||
.mid-view {
|
||||
width: 100%;
|
||||
padding: 40rpx 32rpx;
|
||||
box-sizing: border-box;
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
border: 2rpx solid #eaeaea;
|
||||
border-radius: 16rpx;
|
||||
margin-top: 48rpx;
|
||||
}
|
||||
.top-view {
|
||||
width: 100%;
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
align-items: center;
|
||||
}
|
||||
.input-view {
|
||||
border-radius: 20rpx;
|
||||
margin-top: 52rpx;
|
||||
width: 100%;
|
||||
padding: 0 32rpx;
|
||||
min-height: 104rpx;
|
||||
display: flex;
|
||||
flex-direction: row;
|
||||
align-items: center;
|
||||
background-color: #f5f5f5;
|
||||
box-sizing: border-box;
|
||||
}
|
||||
}
|
||||
}
|
||||
</style>
|
||||
|
||||
Reference in New Issue
Block a user