272 lines
5.5 KiB
Vue
272 lines
5.5 KiB
Vue
|
<template>
|
||
|
<view class="user_about" :style="viewColor">
|
||
|
<view>
|
||
|
<view class="text cancelTxt" :class="{cancelTxt: type == 'the_cancellation_msg'}">
|
||
|
<jyf-parser :html="data.replace(/<br\/>/ig, '')" ref="article" :tag-style="tagStyle"></jyf-parser>
|
||
|
</view>
|
||
|
</view>
|
||
|
<view class="cancel" v-if="type == 'the_cancellation_msg' && loaded">
|
||
|
<view class="checkbox" @click="setCheck">
|
||
|
<text v-if="!check" class="iconfont icon-weixuanzhong"></text>
|
||
|
<text v-else class="iconfont icon-xuanzhong1"></text>
|
||
|
<span>已阅读并同意<i class="font" @click.stop="toCancel">《重要提醒》</i></span>
|
||
|
</view>
|
||
|
<view class="btn" @click="cancelBtn">
|
||
|
申请注销
|
||
|
</view>
|
||
|
|
||
|
</view>
|
||
|
<view class="outMoal" v-if="moal">
|
||
|
<view class="box">
|
||
|
<view class="title">该账号将永久注销</view>
|
||
|
<view class="moalBtn">
|
||
|
<view class="ok" @click="ok">确定</view>
|
||
|
<view class="no" @click="cancelMoal">取消</view>
|
||
|
</view>
|
||
|
</view>
|
||
|
</view>
|
||
|
</view>
|
||
|
</template>
|
||
|
|
||
|
<script>
|
||
|
import {
|
||
|
cacheInfo,
|
||
|
userOut,
|
||
|
getLogout
|
||
|
} from '@/api/user.js'
|
||
|
import { mapGetters } from "vuex";
|
||
|
export default {
|
||
|
name: 'user_about',
|
||
|
data() {
|
||
|
return {
|
||
|
type: '',
|
||
|
data: '',
|
||
|
check: false,
|
||
|
moal: false,
|
||
|
loaded: false,
|
||
|
tagStyle: {
|
||
|
img: 'width:100%;display:block;'
|
||
|
},
|
||
|
}
|
||
|
},
|
||
|
computed: mapGetters(['viewColor']),
|
||
|
onLoad: function(options) {
|
||
|
this.type = options.from;
|
||
|
this.setTitle(this.type)
|
||
|
},
|
||
|
methods: {
|
||
|
toCancel(){
|
||
|
uni.redirectTo({
|
||
|
url: '/pages/users/user_about/index?from=the_cancellation_prompt'
|
||
|
})
|
||
|
},
|
||
|
setCheck() {
|
||
|
this.check = !this.check
|
||
|
},
|
||
|
ok() {
|
||
|
uni.showLoading({
|
||
|
title: '注销中',
|
||
|
mask: true
|
||
|
});
|
||
|
this.moal = false;
|
||
|
(new Promise(call=>{
|
||
|
userOut().then(res => {
|
||
|
if(res.data.status === 200){
|
||
|
uni.hideLoading()
|
||
|
call()
|
||
|
}else{
|
||
|
uni.showModal({
|
||
|
title: '提示',
|
||
|
content: res.message,
|
||
|
success: ({confirm}) => {
|
||
|
if (confirm) {
|
||
|
userOut({key: res.data.result.key}).then(res => {
|
||
|
uni.hideLoading()
|
||
|
if(res.data.status === 200){
|
||
|
call()
|
||
|
}else{
|
||
|
this.$util.Tips({
|
||
|
title: res.message
|
||
|
});
|
||
|
}
|
||
|
})
|
||
|
}else{
|
||
|
uni.hideLoading()
|
||
|
}
|
||
|
}
|
||
|
});
|
||
|
}
|
||
|
})
|
||
|
})).then(v=>{
|
||
|
this.$store.commit("LOGOUT");
|
||
|
setTimeout(()=>{
|
||
|
uni.reLaunch({
|
||
|
url: '/pages/index/index'
|
||
|
});
|
||
|
}, 500);
|
||
|
})
|
||
|
},
|
||
|
cancelBtn() {
|
||
|
if (!this.check) {
|
||
|
return uni.showToast({
|
||
|
title: "请勾选已阅读",
|
||
|
icon: 'none',
|
||
|
duration: 2000,
|
||
|
})
|
||
|
} else {
|
||
|
this.moal = true
|
||
|
}
|
||
|
},
|
||
|
cancelMoal() {
|
||
|
this.moal = false
|
||
|
this.check = false
|
||
|
},
|
||
|
getCacheinfo() {
|
||
|
this.loaded = false;
|
||
|
cacheInfo(this.type).then(res => {
|
||
|
this.data = res.data[this.type]
|
||
|
if(res.data.title) {
|
||
|
uni.setNavigationBarTitle({
|
||
|
title: res.data.title
|
||
|
})
|
||
|
}
|
||
|
this.loaded = true;
|
||
|
})
|
||
|
},
|
||
|
setTitle(e) {
|
||
|
switch (e) {
|
||
|
case 'the_cancellation_msg':
|
||
|
uni.setNavigationBarTitle({
|
||
|
title: '注销账号'
|
||
|
})
|
||
|
this.getCacheinfo()
|
||
|
break;
|
||
|
case 'sys_about_us':
|
||
|
uni.setNavigationBarTitle({
|
||
|
title: '关于我们'
|
||
|
})
|
||
|
this.getCacheinfo()
|
||
|
break;
|
||
|
case 'sys_certificate':
|
||
|
uni.setNavigationBarTitle({
|
||
|
title: '资质证明'
|
||
|
})
|
||
|
this.getCacheinfo()
|
||
|
break;
|
||
|
default:
|
||
|
uni.setNavigationBarTitle({
|
||
|
title: '加载中...'
|
||
|
})
|
||
|
this.getCacheinfo()
|
||
|
break;
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
</script>
|
||
|
|
||
|
<style lang="scss">
|
||
|
.user_about {
|
||
|
.text {
|
||
|
font-size: 30rpx;
|
||
|
font-weight: 400;
|
||
|
padding: 30rpx;
|
||
|
color: #282828;
|
||
|
}
|
||
|
.cancelTxt {
|
||
|
overflow: hidden;
|
||
|
overflow-y: auto;
|
||
|
image{
|
||
|
max-width: 100%;
|
||
|
}
|
||
|
}
|
||
|
.cancel {
|
||
|
position: fixed;
|
||
|
bottom: 60rpx;
|
||
|
left: 0;
|
||
|
z-index: 1;
|
||
|
width: 100%;
|
||
|
.checkbox {
|
||
|
width: 50%;
|
||
|
text-align: center;
|
||
|
margin: 0 auto;
|
||
|
font-size: 24rpx;
|
||
|
font-weight: 400;
|
||
|
span {
|
||
|
margin-left: 5rpx;
|
||
|
}
|
||
|
.font {
|
||
|
color: var(--view-theme);
|
||
|
font-style: normal;
|
||
|
}
|
||
|
.iconfont {
|
||
|
font-size: 24rpx;
|
||
|
}
|
||
|
}
|
||
|
.btn {
|
||
|
width: 690rpx;
|
||
|
height: 90rpx;
|
||
|
background: var(--view-theme);
|
||
|
border-radius: 45rpx;
|
||
|
margin: 0 auto;
|
||
|
margin-top: 30rpx;
|
||
|
text-align: center;
|
||
|
line-height: 90rpx;
|
||
|
font-size: 32rpx;
|
||
|
font-weight: 400;
|
||
|
color: #FFFFFF;
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
.outMoal {
|
||
|
width: 100%;
|
||
|
height: 100%;
|
||
|
background: rgba(0, 0, 0, 0.5);
|
||
|
position: fixed;
|
||
|
top: 0;
|
||
|
left: 0;
|
||
|
z-index: 2;
|
||
|
display: flex;
|
||
|
align-items: center;
|
||
|
justify-content: center;
|
||
|
.box {
|
||
|
position: fixed;
|
||
|
width: 590rpx;
|
||
|
height: 258rpx;
|
||
|
background: #FFFFFF;
|
||
|
opacity: 1;
|
||
|
border-radius: 20rpx;
|
||
|
text-align: center;
|
||
|
padding: 50rpx;
|
||
|
.title {
|
||
|
font-size: 30rpx;
|
||
|
font-weight: 600;
|
||
|
color: #282828;
|
||
|
}
|
||
|
.moalBtn {
|
||
|
margin-top: 43rpx;
|
||
|
display: flex;
|
||
|
justify-content: space-between;
|
||
|
.ok {
|
||
|
width: 234rpx;
|
||
|
height: 66rpx;
|
||
|
border: 1px solid var(--view-theme);
|
||
|
border-radius: 33rpx;
|
||
|
font-size: 26rpx;
|
||
|
line-height: 66rpx;
|
||
|
color: var(--view-theme);
|
||
|
}
|
||
|
.no {
|
||
|
width: 234rpx;
|
||
|
height: 66rpx;
|
||
|
background: linear-gradient(90deg, var(--view-bntColor21) 0%, var(--view-bntColor21) 100%);
|
||
|
border-radius: 33rpx;
|
||
|
font-size: 26rpx;
|
||
|
color: #FFFFFF;
|
||
|
line-height: 66rpx;
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
</style>
|