<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"> <view v-if="!check" class="iconfont icon-weixuanzhong"></view> <view v-else class="iconfont icon-xuanzhong1"></view> <view>已阅读并同意<text class="font" @click.stop="toCancel">《重要提醒》</text></view> </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> // +---------------------------------------------------------------------- // | CRMEB [ CRMEB赋能开发者,助力企业发展 ] // +---------------------------------------------------------------------- // | Copyright (c) 2016~2023 https://www.crmeb.com All rights reserved. // +---------------------------------------------------------------------- // | Licensed CRMEB并不是自由软件,未经许可不能去掉CRMEB相关版权 // +---------------------------------------------------------------------- // | Author: CRMEB Team <admin@crmeb.com> // +---------------------------------------------------------------------- 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 { display: flex; align-items: center; justify-content: 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: 28rpx; margin-right: 15rpx; } .icon-xuanzhong1 { color: var(--view-theme); } } .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>