412 lines
15 KiB
Vue
412 lines
15 KiB
Vue
<template>
|
||
<ciy-header title="我的" mode="scroll"></ciy-header>
|
||
<view class="topbg"></view>
|
||
<view :style="{height:header_statusbar_height+'px'}"></view>
|
||
<view style="padding-top:1rem;">
|
||
<view class="avartop">
|
||
<image :src="file_stor(me.icon?me.icon:'/img/face.png')" mode="scaleToFill" />
|
||
</view>
|
||
</view>
|
||
<view class="maincard" style="margin-top: -2.5rem;">
|
||
<view class="flex flex-center">
|
||
<view class="nick" @tap="gourl" data-url="$/pages/me/user_info">{{me.id>0?(me.name?me.name:'游客'):'登录/注册'}}</view>
|
||
<view class="icon zy" style="margin-left:1rem;" v-if="showbalance" @tap="getbalance(2)"></view>
|
||
<view class="icon by" style="margin-left:1rem;" v-else @tap="getbalance(1)"></view>
|
||
</view>
|
||
<view class="abs r0 t0" style="opacity: 0;" @tap="gourl" data-url="/pages/demo/index">Demo</view>
|
||
<view class="abs r1 b1 txt-smmm" @tap="copyboard('E' + me.eid)" v-if="me.id>0">E{{me.eid}}</view>
|
||
<view class="usrnum">
|
||
<view>
|
||
<view class="num" v-if="showbalance">
|
||
<ciy-shownum speed="80" :value="me.mymoney" unit=",100,2|万,1000000,2|亿,10000000000,2"></ciy-shownum>
|
||
</view>
|
||
<view class="num" v-else>---</view>
|
||
<view class="tit">可消费余额</view>
|
||
</view>
|
||
<view>
|
||
<view class="num" v-if="showbalance">
|
||
<ciy-shownum :value="me.mycashmoney" unit=",100,2|万,1000000,2|亿,10000000000,2"></ciy-shownum>
|
||
</view>
|
||
<view class="num" v-else>---</view>
|
||
<view class="tit">可提现余额</view>
|
||
</view>
|
||
<view>
|
||
<view class="num" v-if="showbalance">
|
||
<ciy-shownum :value="me.mypnt" unit=",1,0|万,10000,2|亿,100000000,2"></ciy-shownum>
|
||
</view>
|
||
<view class="num" v-else>---</view>
|
||
<view class="tit" @tap="gourl" data-url="$/pages/me/pnt_lst">积分</view>
|
||
</view>
|
||
</view>
|
||
</view>
|
||
<view class="maincard px4" v-if="me.id>0">
|
||
<template v-if="me.accounttimes>tostamp()">
|
||
<view class="caption">有效会员</view>
|
||
<view class="expdate">{{ccode(g.userlevel, me.userlevel)}} 有效期至 {{todatetime(me.accounttimes, 'd')}}</view>
|
||
</template>
|
||
<template v-else>
|
||
<view class="caption">会员已到期</view>
|
||
<view class="expdate" style="color:var(--dag5);">{{ccode(g.userlevel, me.userlevel)}} 到期日 {{todatetime(me.accounttimes, 'd')}}</view>
|
||
</template>
|
||
<view class="ciy-hr"></view>
|
||
<view class="caption">选择{{me.accounttimes>tostamp()?'续费':'付费'}}方案</view>
|
||
<view class="userpay" v-if="init.userbuys">
|
||
<view class="item" @tap="buyuser(item)" v-for="(item,index) in init.userbuys" :key="index">
|
||
<view class="price">{{item.usermoney/100}}元</view>
|
||
<view class="memo">{{item.name}}</view>
|
||
<view class="recommend" v-if="init.recommend == item.id">推荐</view>
|
||
</view>
|
||
</view>
|
||
|
||
xiaoxi 消息
|
||
<view class="caption">付费会员权益</view>
|
||
<view class="cgrid">
|
||
<view class="item">
|
||
<view class="icon">📇</view>
|
||
<view class="txt">权益1</view>
|
||
</view>
|
||
<view class="item">
|
||
<view class="icon">🤝</view>
|
||
<view class="txt">权益2</view>
|
||
</view>
|
||
</view>
|
||
</view>
|
||
<view class="maincard">
|
||
<view class="ciy-grid">
|
||
<view class="grid" data-url="$/pages/me/cash_charge" @tap="gourl">
|
||
<view class="icon" :style="{backgroundImage:svg2bg(svg.v1)}"></view>
|
||
<view class="name">充值</view>
|
||
</view>
|
||
<view class="grid" data-url="$/pages/me/cashie_lst" @tap="gourl">
|
||
<view class="icon" :style="{backgroundImage:svg2bg(svg.v3)}"></view>
|
||
<view class="name">收支明细</view>
|
||
</view>
|
||
<view class="grid" data-url="$/pages/me/cashout_cash" @tap="gourl">
|
||
<view class="icon" :style="{backgroundImage:svg2bg(svg.v2)}"></view>
|
||
<view class="name">提现</view>
|
||
</view>
|
||
<view class="grid" data-url="$/pages/me/cashoe_lst" @tap="gourl">
|
||
<view class="icon" :style="{backgroundImage:svg2bg(svg.v3)}"></view>
|
||
<view class="name">收益明细</view>
|
||
</view>
|
||
</view>
|
||
<view class="ciy-grid">
|
||
<view class="grid">
|
||
<view class="icon" :style="{backgroundImage:svg2bg(svg.ciy)}"></view>
|
||
<view class="name">图标名称</view>
|
||
</view>
|
||
<view class="grid">
|
||
<view class="icon" :style="{backgroundImage:svg2bg(svg.ciy)}"></view>
|
||
<view class="name">图标名称</view>
|
||
</view>
|
||
<view class="grid">
|
||
<view class="icon" :style="{backgroundImage:svg2bg(svg.ciy)}"></view>
|
||
<view class="name">图标名称</view>
|
||
</view>
|
||
<view class="grid">
|
||
<view class="icon" :style="{backgroundImage:svg2bg(svg.ciy)}"></view>
|
||
<view class="name">图标名称</view>
|
||
</view>
|
||
</view>
|
||
</view>
|
||
<view class="bg5" style="height:0.3rem;"></view>
|
||
<ciy-swipelist v-if="me.id>0" title="众识码" data-url="$/pages/me/safe_ccub" @tap="gourl" :right="tocciy(me.cciy)" more></ciy-swipelist>
|
||
<ciy-swipelist v-if="me.id>0" title="实名认证" data-url="$/pages/me/safe_real" @tap="gourl" :right="tomsk(me.truename, '#***')" more></ciy-swipelist>
|
||
<view class="bg5" style="height:0.3rem;"></view>
|
||
<ciy-swipelist v-if="me.id>0" title="个人信息" @tap="gourl" data-url="$/pages/me/user_info" more></ciy-swipelist>
|
||
<ciy-swipelist v-if="me.id>0" title="收款银行" @tap="gourl" data-url="$/pages/me/user_bank" :right="me.bankaccount?'已设置':'未设置'" more></ciy-swipelist>
|
||
<ciy-swipelist v-if="me.id>0" title="收货地址" @tap="gourl" data-url="$/pages/me/user_shipaddr" more></ciy-swipelist>
|
||
<ciy-swipelist v-if="me.id>0" title="我要开票" @tap="gourl" data-url="$/pages/me/invoicing" :right="me.myinvmoney>=1000?'可开票':'未达开票金额'" more></ciy-swipelist>
|
||
<ciy-swipelist v-if="me.id>0" title="分享二维码" @tap="gourl" data-url="$/pages/me/share_qrcode" more></ciy-swipelist>
|
||
<ciy-swipelist v-if="me.mobile" :title="me.needpass?'设置密码':'修改密码'" @tap="gourl" data-url="$/pages/me/safe_password" more></ciy-swipelist>
|
||
<ciy-swipelist v-if="me.id>0" title="意见建议" @tap="gourl" data-url="$/pages/me/suggest" right="留下您的宝贵建议" more></ciy-swipelist>
|
||
<ciy-swipelist title="帮助中心" @tap="gourl" data-url="/pages/pub/psection?id=1" right="FAQ" more></ciy-swipelist>
|
||
<ciy-swipelist v-if="me.id>0" title="工单提问" @tap="gourl" data-url="$/pages/me/problem_pub" right="提交您的问题" more></ciy-swipelist>
|
||
|
||
<ciy-swipelist title="联系客服" more>
|
||
<button open-type="contact" plain class="btn tran" style="color:var(--txt5)">在线客服</button>
|
||
</ciy-swipelist>
|
||
<ciy-swipelist title="关于我们" @tap="gourl" data-url="/pages/pub/paper?id=1" right="众产" more></ciy-swipelist>
|
||
<ciy-swipelist title="软件版本" @tap="upver" :right="version" more></ciy-swipelist>
|
||
<view class="bg5" v-if="me.id>0" style="height:0.5rem;"></view>
|
||
<ciy-swipelist v-if="me.id>0" title="重新登录" @tap="relogin" more></ciy-swipelist>
|
||
<ciy-tabbar ref="tabbar"></ciy-tabbar>
|
||
</template>
|
||
|
||
<script>
|
||
export default {
|
||
data() {
|
||
return {
|
||
svg: {},
|
||
version:'',
|
||
showbalance: false,
|
||
}
|
||
},
|
||
onLoad() {
|
||
var app = getApp();
|
||
this.version = app.globalData._version;
|
||
this.load_svgicon(this.file_stor('/svgicon/me.txt')).then(svgs => {
|
||
this.svg = svgs;
|
||
});
|
||
this.getinit();
|
||
},
|
||
onPullDownRefresh(b) {
|
||
var app = getApp();
|
||
app.globalData._restorage = true;
|
||
uni.stopPullDownRefresh();
|
||
},
|
||
methods: {
|
||
async getinit() {
|
||
await this.getauth();
|
||
var retjson = await this.callfunc({
|
||
func: 'main.me_init',
|
||
//cache: 86400,
|
||
});
|
||
if (retjson.code != 1)
|
||
return this.alert(retjson.errmsg);
|
||
this.init = retjson;
|
||
},
|
||
async getbalance(act) {
|
||
if (this._loading)
|
||
return;
|
||
await this.getauth();
|
||
if (this.me.id == 0)
|
||
return;
|
||
if (act == 2) {
|
||
this.showbalance = false;
|
||
return;
|
||
}
|
||
this._loading = true;
|
||
var retjson = await this.callfunc({
|
||
func: 'me.me_balance_get',
|
||
data: {}
|
||
});
|
||
this._loading = false;
|
||
if (retjson.code != 1)
|
||
return this.alert(retjson.errmsg);
|
||
this.showbalance = true;
|
||
this.me = this.objdeepmerge(this.me, retjson.user);
|
||
this.setstorage('me', this.me);
|
||
},
|
||
async buyuser(item) {
|
||
if (item.userlevel < this.me.userlevel) {
|
||
if (await this.askmsg('您当前会员等级高于续费等级,\n是否降级续费?', '降级') != 'ok')
|
||
return;
|
||
}
|
||
if (this._loading)
|
||
return;
|
||
this._loading = true;
|
||
var retjson = await this.callfunc({
|
||
func: 'me.me_userbuy_create',
|
||
data: {
|
||
id: item.id
|
||
}
|
||
});
|
||
this._loading = false;
|
||
if (retjson.code != 1)
|
||
return this.alert(retjson.errmsg);
|
||
|
||
retjson.provider = 'wxpay';
|
||
try {
|
||
var retpay = await uni.requestPayment(retjson);
|
||
await this.sleep(1000);
|
||
var retjson2 = await this.callfunc({
|
||
func: 'me.me_userbuy_chk',
|
||
data: {
|
||
orderid: retjson.orderid
|
||
}
|
||
});
|
||
if (retjson2.code != 1)
|
||
return this.toast(retjson2.errmsg);
|
||
this.me.accounttimes = retjson2.accounttimes;
|
||
this.me.userlevel = retjson2.userlevel;
|
||
this.setstorage('me', this.me);
|
||
this.toast('支付成功');
|
||
} catch (e) {}
|
||
},
|
||
relogin() {
|
||
this.clearstorage();
|
||
this.getauth('relogin');
|
||
},
|
||
upver() {
|
||
var app = getApp();
|
||
app.appupdate('all', async verinfo => {
|
||
return await this.askmsg(verinfo, '更新') == 'ok';
|
||
});
|
||
},
|
||
}
|
||
}
|
||
</script>
|
||
<style>
|
||
.topbg {
|
||
height: 10rem;
|
||
overflow: hidden;
|
||
position: absolute;
|
||
top: 0;
|
||
left: 0;
|
||
right: 0;
|
||
}
|
||
|
||
.topbg::before {
|
||
content: '';
|
||
left: -5rem;
|
||
right: -5rem;
|
||
border-radius: 0 0 100vw 100vw;
|
||
height: 100%;
|
||
background: linear-gradient(60deg, var(--e-userbg1), var(--e-userbg2));
|
||
position: absolute;
|
||
top: 0;
|
||
pointer-events: none;
|
||
z-index: 0;
|
||
}
|
||
|
||
.avartop {
|
||
position: relative;
|
||
display: flex;
|
||
margin: 0 0 0 1.5rem;
|
||
width: 5rem;
|
||
height: 5rem;
|
||
border-radius: 50%;
|
||
background: var(--bg2);
|
||
border: 2px solid var(--bg1);
|
||
overflow: hidden;
|
||
z-index: 3;
|
||
}
|
||
|
||
.avartop>image {
|
||
width: 100%;
|
||
height: 100%;
|
||
}
|
||
|
||
.maincard {
|
||
position: relative;
|
||
background: var(--bg1);
|
||
color: var(--txt6);
|
||
padding: 0.5rem;
|
||
margin: 0 1rem 1rem 1rem;
|
||
border-radius: 0.3rem;
|
||
box-shadow: 0 4px 8px var(--bg6);
|
||
}
|
||
|
||
.maincard .nick {
|
||
font-size: 1.2rem;
|
||
font-weight: bold;
|
||
padding-left: 4.5rem;
|
||
}
|
||
|
||
.expdate {
|
||
display: block;
|
||
padding-left: 1rem;
|
||
margin-top: -1rem;
|
||
margin-bottom: 1rem;
|
||
font-size: 0.9rem;
|
||
color: var(--succ5);
|
||
}
|
||
|
||
.caption {
|
||
font-size: 1.2rem;
|
||
font-weight: bold;
|
||
padding: 1em 0;
|
||
}
|
||
|
||
.userpay {
|
||
display: flex;
|
||
flex-wrap: wrap;
|
||
justify-content: space-between;
|
||
}
|
||
|
||
.userpay>.item {
|
||
position: relative;
|
||
width: 30%;
|
||
padding: 1em 0;
|
||
text-align: center;
|
||
border: 1px solid var(--bg4);
|
||
border-radius: 1rem;
|
||
}
|
||
|
||
.userpay>.item>.price {
|
||
display: block;
|
||
font-size: 1.2rem;
|
||
font-weight: bold;
|
||
color: var(--man5);
|
||
}
|
||
|
||
.userpay>.item>.memo {
|
||
font-size: 13px;
|
||
color: var(--txt4);
|
||
}
|
||
|
||
.userpay>.item>.recommend {
|
||
position: absolute;
|
||
top: -0.5rem;
|
||
right: 0.5rem;
|
||
padding: 0.2rem 0.8rem;
|
||
font-size: 0.8rem;
|
||
color: var(--dagt);
|
||
background: var(--dag5);
|
||
border-radius: 1rem;
|
||
}
|
||
|
||
.cgrid {
|
||
display: flex;
|
||
flex-wrap: wrap;
|
||
justify-content: space-between;
|
||
}
|
||
|
||
.cgrid .item {
|
||
width: 48%;
|
||
margin-bottom: 1rem;
|
||
padding: 1rem;
|
||
display: flex;
|
||
flex-direction: column;
|
||
align-items: center;
|
||
background: var(--bg3);
|
||
border-radius: 1rem;
|
||
}
|
||
|
||
.cgrid .icon {
|
||
width: 2rem;
|
||
height: 2rem;
|
||
margin-bottom: 0.5rem;
|
||
border-radius: 50%;
|
||
background: linear-gradient(-25deg, #1890ff, #c0e1ff);
|
||
display: flex;
|
||
justify-content: center;
|
||
align-items: center;
|
||
font-size: 1.5rem;
|
||
}
|
||
|
||
.icon {
|
||
width: 1.5rem;
|
||
height: 1.5rem;
|
||
}
|
||
|
||
.icon.by {
|
||
background-image: url("data:image/svg+xml;base64,PHN2ZyB2aWV3Qm94PSIwIDAgMTAyNCAxMDI0IiB2ZXJzaW9uPSIxLjEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PHBhdGggZD0iTTkyNi4wMzM5MiAzMzkuODcwNzJjLTkuODY2MjQgMC0xOS4xNjkyOCA0LjE0MjA4LTI2LjE3ODU2IDExLjA4NDgtMTQuMDkwMjQgMTMuOTQ2ODgtMzkuNDQ0NDggMzAuOTQwMTYtNzkuODU2NjQgNDcuMjc4MDgtNzkuODYxNzYgMzIuMjg2NzItMTkyLjEyMjg4IDUwLjgwMDY0LTMwNy45OTM2IDUwLjgwMDY0cy0yMjguMTM2OTYtMTguNTEzOTItMzA3Ljk5MzYtNTAuODAwNjRjLTQwLjQxMjE2LTE2LjMzNzkyLTY1Ljc2NjQtMzMuMzMxMi03OS44NTY2NC00Ny4yNzgwOC03LjAxNDQtNi45NDI3Mi0xNi4zMTIzMi0xMS4wNzk2OC0yNi4xNzg1Ni0xMS4wNzk2OC0zMy4wNTQ3MiAwLTQ4Ljk5ODQgNDAuMzU1ODQtMjQuOTg1NiA2My4wNzMyOCA3Mi44MzIgNjguODk0NzIgMjQxLjk3MTIgMTE3LjE3MTIgNDM5LjAxOTUyIDExNy4xNzEyczM2Ni4xODc1Mi00OC4yODE2IDQzOS4wMTk1Mi0xMTcuMTcxMmMyNC4wMDI1Ni0yMi43MjI1NiA4LjA1Mzc2LTYzLjA3ODQtMjQuOTk1ODQtNjMuMDc4NHoiIGZpbGw9IiM2NjY2NjYiPjwvcGF0aD48cGF0aCBkPSJNMzUzLjgzODA4IDY0Mi40MTE1MmwyMi45MjIyNC0xMzAuMDAxOTJhMzUuNTQ4MTYgMzUuNTQ4MTYgMCAwIDEgNzAuMDAwNjQgMTIuMzM5MmwtMjIuOTIyMjQgMTMwLjAwMTkyYTM1LjUzNzkyIDM1LjUzNzkyIDAgMSAxLTcwLjAwMDY0LTEyLjMzOTJ6TTYxMC4zMTQyNCA2NTQuNzU1ODRsLTIyLjkyMjI0LTEzMC4wMDE5MmEzNS41MzI4IDM1LjUzMjggMCAwIDEgMjguODMwNzItNDEuMTY5OTIgMzUuNTMyOCAzNS41MzI4IDAgMCAxIDQxLjE2OTkyIDI4LjgzMDcybDIyLjkyMjI0IDEzMC4wMDE5MmEzNS41NDgxNiAzNS41NDgxNiAwIDAgMS03MC4wMDA2NCAxMi4zMzkyek04NzguNzk2OCA1ODkuMzc4NTZsLTkzLjM0MjcyLTkzLjM0MjcyYTM1LjUzNzkyIDM1LjUzNzkyIDAgMSAxIDUwLjI2MzA0LTUwLjI2MzA0bDkzLjM0MjcyIDkzLjM0MjcyYTM1LjUzNzkyIDM1LjUzNzkyIDAgMSAxLTUwLjI2MzA0IDUwLjI2MzA0ek0xMDUuMDk4MjQgNTM5LjExNTUybDkzLjM0MjcyLTkzLjM0MjcyYTM1LjUzNzkyIDM1LjUzNzkyIDAgMSAxIDUwLjI2MzA0IDUwLjI2MzA0bC05My4zNDI3MiA5My4zNDI3MmEzNS41Mzc5MiAzNS41Mzc5MiAwIDEgMS01MC4yNjMwNC01MC4yNjMwNHoiIGZpbGw9IiM2NjY2NjYiPjwvcGF0aD48L3N2Zz4=");
|
||
}
|
||
|
||
.icon.zy {
|
||
background-image: url("data:image/svg+xml;base64,PHN2ZyB2aWV3Qm94PSIwIDAgMTAyNCAxMDI0IiB2ZXJzaW9uPSIxLjEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PHBhdGggZD0iTTUxMiAyODQuMTkwNzJjNzIuMzUwNzIgMCAxNjAuMTg5NDQgMzYuNTc3MjggMjQ3LjMzMTg0IDEwMi45ODg4IDY0LjY4NjA4IDQ5LjMwMDQ4IDEwOC4zMDg0OCA5OS4zNjg5NiAxMjYuMTc3MjggMTI1LjE3ODg4LTE3Ljg0MzIgMjUuNTIzMi02Mi4yOTUwNCA3NS42NDI4OC0xMjkuMzMxMiAxMjUuNjM0NTYtODguMDQ4NjQgNjUuNjY0LTE3NC43NjYwOCAxMDEuODIxNDQtMjQ0LjE3NzkyIDEwMS44MjE0NC03MC41MjggMC0xNTcuNjgwNjQtMzYuNTg3NTItMjQ1LjQwMTYtMTAzLjAyNDY0LTY1LjEzNjY0LTQ5LjMzMTItMTA5LjI2NTkyLTk5LjA5NzYtMTI3LjY3NzQ0LTEyNS4wNTA4OCAxOC4xMzUwNC0yNS45ODQgNjEuNTczMTItNzUuNjQ4IDEyNS43NTIzMi0xMjQuNTU5MzZDMzUxLjgxMDU2IDMyMC43NjI4OCA0MzkuNjQ5MjggMjg0LjE5MDcyIDUxMiAyODQuMTkwNzJtMC03MC44NzYxNmMtMjIwLjMyODk2IDAtNDUwLjU2IDI1MC41OTMyOC00NTAuNTYgMjk4LjY4NTQ0czIzNS4xODIwOCAyOTguNjg1NDQgNDUwLjU2IDI5OC42ODU0NGMyMTAuNDI2ODggMCA0NTAuNTYtMjQ1LjUyOTYgNDUwLjU2LTI5OC42ODU0NCAwLTQ4LjA5MjE2LTIzMC4yMzEwNC0yOTguNjg1NDQtNDUwLjU2LTI5OC42ODU0NHoiIGZpbGw9IiM2NjY2NjYiPjwvcGF0aD48cGF0aCBkPSJNNTEyIDQ0Ni4xODc1MmMzNi4yODU0NCAwIDY1LjgxMjQ4IDI5LjUyMTkyIDY1LjgxMjQ4IDY1LjgxMjQ4cy0yOS41MjcwNCA2NS44MTI0OC02NS44MTI0OCA2NS44MTI0OFM0NDYuMTg3NTIgNTQ4LjI5MDU2IDQ0Ni4xODc1MiA1MTIgNDc1LjcxNDU2IDQ0Ni4xODc1MiA1MTIgNDQ2LjE4NzUybTAtNzAuODc2MTZjLTc1LjQ4OTI4IDAtMTM2LjY4ODY0IDYxLjE5NDI0LTEzNi42ODg2NCAxMzYuNjg4NjRTNDM2LjUxMDcyIDY0OC42ODg2NCA1MTIgNjQ4LjY4ODY0czEzNi42ODg2NC02MS4xOTQyNCAxMzYuNjg4NjQtMTM2LjY4ODY0UzU4Ny40ODkyOCAzNzUuMzExMzYgNTEyIDM3NS4zMTEzNnoiIGZpbGw9IiM2NjY2NjYiPjwvcGF0aD48L3N2Zz4=");
|
||
}
|
||
|
||
.usrnum {
|
||
padding-top: 1rem;
|
||
padding-bottom: 0.5rem;
|
||
display: flex;
|
||
}
|
||
|
||
.usrnum>view {
|
||
flex: 1;
|
||
text-align: center;
|
||
}
|
||
|
||
.usrnum .num {
|
||
height: 2.5rem;
|
||
padding-top: 0.2rem;
|
||
font-size: 1.3rem;
|
||
}
|
||
|
||
.usrnum .tit {
|
||
font-size: 0.9rem;
|
||
}
|
||
</style> |