1466 lines
37 KiB
Vue
1466 lines
37 KiB
Vue
<template>
|
||
<view data-component-name="diy-member-info" class="container" :style="warpCss">
|
||
<!-- 会员信息 -->
|
||
<view class="common-wrap info-wrap" :class="[`data-style-${value.style}`]">
|
||
<view class="member-info" :style="memberInfoStyle">
|
||
<view class="info-wrap" :style="infoStyle" v-if="memberInfo">
|
||
<view class="headimg" @click="getWxAuth">
|
||
<image :src="memberInfo.headimg ? $util.img(memberInfo.headimg) : $util.getDefaultImage().head" mode="widthFix" @error="memberInfo.headimg = $util.getDefaultImage().head"/>
|
||
</view>
|
||
<view class="info">
|
||
<!-- #ifdef MP -->
|
||
<block v-if="(memberInfo.nickname.indexOf('u_') != -1 && memberInfo.nickname == memberInfo.username) || memberInfo.nickname == memberInfo.mobile">
|
||
<view class="nickname"><text class="name" @click="getWxAuth">点击授权头像昵称</text></view>
|
||
</block>
|
||
<view class="nickname" v-else>
|
||
<text class="name" @click="getWxAuth">{{ memberInfo.nickname }}</text>
|
||
<view class="member-level" v-if="(value.style == 1 || value.style == 2) && memberInfo.member_level" >
|
||
<!-- <text class="icondiy icon-system-huangguan"></text> -->
|
||
<text class="level-name">{{ memberInfo.member_level_name }}</text>
|
||
</view>
|
||
</view>
|
||
<view class="member-level" v-if="value.style == 3 && memberInfo.member_level" >
|
||
<!-- <image :src="$util.img('public/uniapp/member/supervip_icon.png')" mode="widthFix" class="level-icon"/> -->
|
||
<view class="level-name">{{ memberInfo.member_level_name }}</view>
|
||
</view>
|
||
<view class="member-level" v-if="value.style == 4 && memberInfo.member_level" >
|
||
<image :src="$util.img('app/component/view/member_info/img/style_4_vip_tag.png')" mode="widthFix" class="level-icon"/>
|
||
<text class="level-name">{{ memberInfo.member_level_name }}</text>
|
||
</view>
|
||
<!-- #endif -->
|
||
|
||
<!-- #ifdef H5 -->
|
||
<block v-if="$util.isWeiXin() && ((memberInfo.nickname.indexOf('u_') != -1 && memberInfo.nickname == memberInfo.username) || memberInfo.nickname == memberInfo.mobile) ">
|
||
<view class="nickname"><text class="name" @click="getWxAuth">点击获取微信头像</text></view>
|
||
</block>
|
||
<view class="nickname" v-else>
|
||
<text class="name" @click="redirect('/pages_tool/member/info')">{{ memberInfo.nickname }}</text>
|
||
<view class="member-level" v-if="(value.style == 1 || value.style == 2) && memberInfo.member_level">
|
||
<!-- <text class="icondiy icon-system-huangguan"></text> -->
|
||
<text class="level-name">{{ memberInfo.member_level_name }}VIP1</text>
|
||
</view>
|
||
</view>
|
||
<view class="member-level" v-if="value.style == 3 && memberInfo.member_level" >
|
||
<!-- <image :src="$util.img('public/uniapp/member/supervip_icon.png')" mode="widthFix" class="level-icon"/> -->
|
||
<view class="level-name">{{ memberInfo.member_level_name }}</view>
|
||
</view>
|
||
|
||
<view class="member-level" v-if="value.style == 4 && memberInfo.member_level" ><image :src="$util.img('app/component/view/member_info/img/style_4_vip_tag.png')" mode="widthFix" class="level-icon"/>
|
||
<text class="level-name">{{ memberInfo.member_level_name }}</text>
|
||
</view>
|
||
<!-- #endif -->
|
||
</view>
|
||
<view v-if="ischina == 1" style="background: #fff;height: 60rpx;width: 60rpx;border-radius: 50rpx;line-height:65rpx;text-align: center;color:#000" @click.stop="modifyInfo()">{{langIndex == 0?'CN':'EN'}}</view>
|
||
</view>
|
||
|
||
<view class="info-wrap" v-else :style="infoStyle" @click="redirect('/pages/member/index')">
|
||
<view class="headimg">
|
||
<image :src="$util.getDefaultImage().head" mode="widthFix"></image>
|
||
</view>
|
||
<view class="info">
|
||
<view class="nickname"><text class="name">{{$lang('login')}}</text></view>
|
||
<view class="desc">{{$lang('loginTpis')}}</view>
|
||
</view>
|
||
|
||
<view v-if="ischina == 1" style="background: #fff;height: 60rpx;width: 60rpx;border-radius: 50rpx;line-height:65rpx;text-align: center;color:#000" @click.stop="modifyInfo()">{{langIndex == 0?'CN':'EN'}}</view>
|
||
</view>
|
||
|
||
<view class="account-info" v-show="value.style == 1" :style="{ 'margin-left': parseInt(value.infoMargin) * 2 + 'rpx', 'margin-right': parseInt(value.infoMargin) * 2 + 'rpx' }">
|
||
<view class="account-item" @click="redirect('/pages_tool/member/balance')">
|
||
<view class="value price-font">
|
||
{{ memberInfo ? (parseFloat(memberInfo.balance) + parseFloat(memberInfo.balance_money)).toFixed(2) : '--' }}
|
||
</view>
|
||
<view class="title">{{ $lang('balance') }}</view>
|
||
</view>
|
||
<view class="solid"></view>
|
||
<view class="account-item" @click="redirect('/pages_tool/member/point_detail')">
|
||
<view class="value price-font">{{ memberInfo ? parseFloat(memberInfo.point) : '--' }}</view>
|
||
<view class="title">{{ $lang('point') }}</view>
|
||
</view>
|
||
<view class="solid"></view>
|
||
<view class="account-item" @click="redirect('/pages_tool/member/coupon')">
|
||
<view class="value price-font">
|
||
{{ memberInfo && memberInfo.coupon_num != undefined ? memberInfo.coupon_num : '--' }}
|
||
</view>
|
||
<view class="title">{{ $lang('coupon') }}</view>
|
||
</view>
|
||
</view>
|
||
<!--
|
||
<view class="super-member"
|
||
v-if="superMember && (value.style == 1 || value.style == 2 || value.style == 3)"
|
||
:style="superMemberStyle">
|
||
<block v-if="value.style == 1 || value.style == 2">
|
||
<view class="super-info">
|
||
<text class="icondiy icon-system-huangguan"></text>
|
||
<text>超级会员</text>
|
||
</view>
|
||
<view class="super-text">
|
||
<text class="see" v-if="memberInfo && memberInfo.member_level_type" @click="redirectBeforeAuth('/pages_tool/member/card')">查看特权</text>
|
||
<text class="see" v-else @click="redirectBeforeAuth('/pages_tool/member/card_buy')">会员可享更多权益</text>
|
||
<text class="iconfont icon-right"></text>
|
||
</view>
|
||
</block>
|
||
<block v-if="value.style == 3">
|
||
<view class="super-info">
|
||
<image :src="$util.img('public/uniapp/member/open_member.png')" class="title" mode="heightFix" />
|
||
<view class="desc">开通可享更多权益</view>
|
||
</view>
|
||
<view class="super-text">
|
||
<text class="see" v-if="memberInfo && memberInfo.member_level_type" @click="redirectBeforeAuth('/pages_tool/member/card')">查看特权</text>
|
||
<text class="see" v-else @click="redirectBeforeAuth('/pages_tool/member/card_buy')">立即开通</text>
|
||
</view>
|
||
</block>
|
||
</view>
|
||
|
||
<view class="member-info-style4" v-show="value.style == 4">
|
||
<view class="super-member" v-if="superMember" :style="superMemberStyle">
|
||
<view class="super-info">
|
||
<image :src="$util.img('app/component/view/member_info/img/style_4_vip_huangguan.png')" class="title" mode="widthFix" />
|
||
<view class="desc">开通可享更多权益</view>
|
||
</view>
|
||
<view class="super-text" :class="{ 'more' : memberInfo && memberInfo.member_level_type }">
|
||
<text class="see" v-if="memberInfo && memberInfo.member_level_type" @click="redirectBeforeAuth('/pages_tool/member/card')">查看更多权益</text>
|
||
<text class="see" v-else @click="redirectBeforeAuth('/pages_tool/member/card_buy')">立即开通</text>
|
||
</view>
|
||
</view>
|
||
<view class="account-info" :style="{ 'margin-left': parseInt(value.infoMargin) * 2 + 'rpx', 'margin-right': parseInt(value.infoMargin) * 2 + 'rpx' }">
|
||
<view class="account-item" @click="redirect('/pages_tool/member/balance_detail')">
|
||
<view class="value price-font">
|
||
{{ memberInfo ? (parseFloat(memberInfo.balance) + parseFloat(memberInfo.balance_money)).toFixed(2) : '--' }}
|
||
</view>
|
||
<view class="title">余额</view>
|
||
</view>
|
||
<view class="solid"></view>
|
||
<view class="account-item" @click="redirect('/pages_tool/member/point_detail')">
|
||
<view class="value price-font">{{ memberInfo ? parseFloat(memberInfo.point) : '--' }}
|
||
</view>
|
||
<view class="title">积分</view>
|
||
</view>
|
||
<view class="solid"></view>
|
||
<view class="account-item" @click="redirect('/pages_tool/member/coupon')">
|
||
<view class="value price-font">
|
||
{{ memberInfo && memberInfo.coupon_num != undefined ? memberInfo.coupon_num : '--' }}
|
||
</view>
|
||
<view class="title">优惠券</view>
|
||
</view>
|
||
</view>
|
||
<view class="style4-other">
|
||
<view class="style4-btn-wrap">
|
||
<view @click="redirect('/pages_tool/recharge/list')" class="recharge-btn">余额充值</view>
|
||
</view>
|
||
</view>
|
||
</view> -->
|
||
</view>
|
||
|
||
<view class="account-info" v-show="value.style == 2" :style="{ 'margin-left': parseInt(value.infoMargin) * 2 + 'rpx', 'margin-right': parseInt(value.infoMargin) * 2 + 'rpx' }">
|
||
<view class="account-item" @click="redirect('/pages_tool/member/balance')">
|
||
<view class="value price-font">{{ memberInfo ? (parseFloat(memberInfo.balance) + parseFloat(memberInfo.balance_money)).toFixed(2) : '--' }}</view>
|
||
<view class="title">{{ $lang('balance') }}</view>
|
||
</view>
|
||
<view class="solid"></view>
|
||
<view class="account-item" @click="redirect('/pages_tool/member/point_detail')">
|
||
<view class="value price-font">{{ memberInfo ? parseFloat(memberInfo.point) : '--' }}</view>
|
||
<view class="title">{{ $lang('point') }}</view>
|
||
</view>
|
||
<view class="solid"></view>
|
||
<view class="account-item" @click="redirect('/pages_tool/member/coupon')">
|
||
<view class="value price-font">
|
||
{{ memberInfo && memberInfo.coupon_num != undefined ? memberInfo.coupon_num : '--' }}
|
||
</view>
|
||
<view class="title">{{ $lang('coupon') }}</view>
|
||
</view>
|
||
</view>
|
||
</view>
|
||
|
||
<!-- 完善会员资料 -->
|
||
<view @touchmove.prevent.stop class="member-complete-info-popup">
|
||
<uni-popup ref="completeInfoPopup" type="bottom" :maskClick="false">
|
||
<view class="complete-info-wrap">
|
||
<view class="head">
|
||
<text class="title">获取您的昵称、头像</text>
|
||
<text class="color-tip tips">获取用户头像、昵称完善个人资料,主要用于向用户提供具有辨识度的用户中心界面</text>
|
||
<text class="iconfont icon-close color-tip" @click="cancelCompleteInfo"></text>
|
||
</view>
|
||
<!-- #ifdef MP-WEIXIN -->
|
||
<view class="item-wrap">
|
||
<text class="label">头像</text>
|
||
<button open-type="chooseAvatar" @chooseavatar="onChooseAvatar">
|
||
<image :src="avatarUrl ? avatarUrl : $util.getDefaultImage().head" @error="avatarUrl = $util.getDefaultImage().head" mode="aspectFill"/>
|
||
<text class="iconfont icon-right color-tip"></text>
|
||
</button>
|
||
</view>
|
||
<view class="item-wrap">
|
||
<text class="label">昵称</text>
|
||
<input type="nickname" placeholder="请输入昵称" v-model="nickName" @blur="blurNickName" />
|
||
</view>
|
||
<!-- #endif -->
|
||
<!-- #ifdef MP-ALIPAY -->
|
||
<view class="item-wrap">
|
||
<text class="label">头像</text>
|
||
<button open-type="getAuthorize" scope="userInfo" @getAuthorize="aliappGetUserinfo" :plain="true" class="border-0">
|
||
<image :src="avatarUrl ? avatarUrl : $util.getDefaultImage().head" @error="avatarUrl = $util.getDefaultImage().head" mode="aspectFill"/>
|
||
<text class="iconfont icon-right color-tip"></text>
|
||
</button>
|
||
</view>
|
||
<view class="item-wrap">
|
||
<text class="label">昵称</text>
|
||
<input type="nickname" placeholder="请输入昵称" v-model="nickName" @blur="blurNickName" />
|
||
</view>
|
||
<!-- #endif -->
|
||
<button type="default" class="save-btn" @click="saveCompleteInfo" :disabled="isDisabled">保存</button>
|
||
</view>
|
||
</uni-popup>
|
||
</view>
|
||
|
||
<ns-login ref="login"></ns-login>
|
||
</view>
|
||
</template>
|
||
|
||
<script>
|
||
let menuButtonInfo = {};
|
||
// 如果是小程序,获取右上角胶囊的尺寸信息,避免导航栏右侧内容与胶囊重叠(支付宝小程序非本API,尚未兼容)
|
||
// #ifdef MP-WEIXIN || MP-BAIDU || MP-TOUTIAO || MP-QQ
|
||
menuButtonInfo = uni.getMenuButtonBoundingClientRect();
|
||
// #endif
|
||
// 自定义会员中心——会员信息
|
||
import nsContact from '@/components/ns-contact/ns-contact.vue';
|
||
export default {
|
||
name: 'diy-member-info',
|
||
props: {
|
||
value: {
|
||
type: Object
|
||
},
|
||
global: {
|
||
type: Object,
|
||
default: () => {
|
||
return {};
|
||
}
|
||
}
|
||
},
|
||
components: {
|
||
nsContact
|
||
},
|
||
data() {
|
||
return {
|
||
info: null,
|
||
superMember: null,
|
||
memberCode: null,
|
||
avatarUrl: '', // 头像预览
|
||
headImg: '', // 头像保存
|
||
nickName: '',
|
||
completeInfoCallback: null,
|
||
menuButtonInfo: menuButtonInfo,
|
||
|
||
langList: [],
|
||
langIndex: 0,
|
||
ischina:0
|
||
};
|
||
},
|
||
options: {
|
||
styleIsolation: 'shared'
|
||
},
|
||
created() {
|
||
this.ischina = uni.getStorageSync('shopInfo').ischina
|
||
this.initLang()
|
||
this.init(false);
|
||
},
|
||
watch: {
|
||
storeToken(nVal, oVal) {
|
||
this.init();
|
||
},
|
||
// 组件刷新监听
|
||
componentRefresh: function(nval) {
|
||
this.init();
|
||
}
|
||
},
|
||
computed: {
|
||
memberInfoStyle() {
|
||
let style = {},
|
||
img = '',
|
||
backSize = 'contain';
|
||
if (this.global.navBarSwitch == false) {
|
||
// #ifdef MP
|
||
// this.menuButtonInfo.height + this.menuButtonInfo.top ==>是胶囊按钮到顶部的距离,因为后台有可能设置margin.top,所以要减去
|
||
style['padding-top'] = this.menuButtonInfo.height + this.menuButtonInfo.top - this.value.margin
|
||
.top + 'px';
|
||
// #endif
|
||
}
|
||
if (this.value.style == 4) {
|
||
img = this.$util.img('app/component/view/member_info/img/style_4_bg.png');
|
||
backSize = 'cover';
|
||
} else if (this.value.style != 3) {
|
||
img = this.$util.img('public/static/img/diy_view/member_info_bg.png');
|
||
}
|
||
|
||
if (this.value.theme == 'default') {
|
||
style.background = `url('${img}') no-repeat bottom / ${backSize}, var(--base-color)`;
|
||
} else {
|
||
style.background =
|
||
`url('${img}') no-repeat bottom / ${backSize},linear-gradient(${this.value.gradientAngle}deg, ${this.value.bgColorStart} 0%, ${this.value.bgColorEnd} 100%)`;
|
||
}
|
||
|
||
return this.$util.objToStyle(style);
|
||
},
|
||
infoStyle() {
|
||
let style = {};
|
||
|
||
if (this.value.style == 4) {
|
||
|
||
if (this.superMember) {
|
||
style['padding-bottom'] = '276rpx';
|
||
} else {
|
||
style['padding-bottom'] = '166rpx';
|
||
}
|
||
}
|
||
|
||
return this.$util.objToStyle(style);
|
||
},
|
||
superMemberStyle() {
|
||
let style = {
|
||
'margin-left': parseInt(this.value.infoMargin) * 2 + 'rpx ',
|
||
'margin-right': parseInt(this.value.infoMargin) * 2 + 'rpx '
|
||
};
|
||
if (this.value.style == 3) {
|
||
style.background = `#292f45 url(` + this.$util.img('public/uniapp/member/supervip_bg.png') + `) no-repeat bottom / 100% 100%`;
|
||
} else if (this.value.style == 4) {
|
||
style = {};
|
||
style.background = `url(` + this.$util.img('app/component/view/member_info/img/super_vip_bg_4.png') + `) no-repeat bottom / contain`;
|
||
} else {
|
||
style.background = `url('` + this.$util.img('public/static/img/diy_view/super_member_bg.png') + `') no-repeat bottom / 100% 100%, linear-gradient(107deg, ` + this.themeStyle.super_member.super_member_start_bg + ` 0%, ` + this.themeStyle.super_member.super_member_end_bg + ` 100%)`;
|
||
}
|
||
return this.$util.objToStyle(style);
|
||
},
|
||
warpCss() {
|
||
var obj = '';
|
||
obj += 'background-color:' + this.value.componentBgColor + ';';
|
||
if (this.value.componentAngle == 'round') {
|
||
obj += 'border-top-left-radius:' + this.value.topAroundRadius * 2 + 'rpx;';
|
||
obj += 'border-top-right-radius:' + this.value.topAroundRadius * 2 + 'rpx;';
|
||
obj += 'border-bottom-left-radius:' + this.value.bottomAroundRadius * 2 + 'rpx;';
|
||
obj += 'border-bottom-right-radius:' + this.value.bottomAroundRadius * 2 + 'rpx;';
|
||
}
|
||
return obj;
|
||
},
|
||
isDisabled() {
|
||
if (this.nickName.length > 0) return false;
|
||
return true;
|
||
}
|
||
},
|
||
methods: {
|
||
initLang() {
|
||
//获取语言列表
|
||
this.langList = this.$langConfig.list();
|
||
if (!uni.getStorageSync("lang")) {
|
||
this.langIndex = 0;
|
||
} else {
|
||
for (let i = 0; i < this.langList.length; i++) {
|
||
if (this.langList[i].value == uni.getStorageSync("lang")) {
|
||
this.langIndex = i;
|
||
break;
|
||
}
|
||
}
|
||
}
|
||
},
|
||
modifyInfo(){
|
||
this.$langConfig.change(this.langIndex==1?'zh-cn':'en-us')
|
||
},
|
||
// isRefresh 是否刷新会员数据,true:刷新,false:不刷新
|
||
init(isRefresh = true) {
|
||
if (isRefresh) {
|
||
if (this.storeToken) this.getMemberInfo();
|
||
else this.$store.commit('setMemberInfo', '');
|
||
} else {
|
||
if (this.memberInfo) {
|
||
this.headImg = this.memberInfo.headimg;
|
||
this.nickName = this.memberInfo.nickname;
|
||
this.avatarUrl = this.headImg ? this.$util.img(this.headImg) : this.$util
|
||
.getDefaultImage().head;
|
||
|
||
/*
|
||
小程序用户头像昵称获取规则调整公告
|
||
https://developers.weixin.qq.com/community/develop/doc/00022c683e8a80b29bed2142b56c01
|
||
用于处理昵称将统一返回 “微信用户”
|
||
*/
|
||
if (this.nickName == '微信用户') {
|
||
this.openCompleteInfoPop();
|
||
}
|
||
this.getCouponNum();
|
||
}
|
||
}
|
||
this.getMemberCardInfo();
|
||
},
|
||
/**
|
||
* 查询会员信息
|
||
*/
|
||
getMemberInfo() {
|
||
this.$api.sendRequest({
|
||
url: '/api/member/info',
|
||
data: {},
|
||
success: res => {
|
||
if (res.code == 0) {
|
||
this.info = res.data;
|
||
|
||
this.headImg = this.info.headimg;
|
||
this.nickName = this.info.nickname;
|
||
this.avatarUrl = this.headImg ? this.$util.img(this.headImg) : this.$util
|
||
.getDefaultImage().head;
|
||
|
||
/*
|
||
小程序用户头像昵称获取规则调整公告
|
||
https://developers.weixin.qq.com/community/develop/doc/00022c683e8a80b29bed2142b56c01
|
||
用于处理昵称将统一返回 “微信用户”
|
||
*/
|
||
if (this.nickName == '微信用户') {
|
||
this.openCompleteInfoPop();
|
||
}
|
||
this.getCouponNum();
|
||
}
|
||
}
|
||
});
|
||
},
|
||
/**
|
||
* 查询优惠券数量
|
||
*/
|
||
getCouponNum() {
|
||
this.$api.sendRequest({
|
||
url: '/coupon/api/coupon/num',
|
||
success: res => {
|
||
if (res.code == 0) {
|
||
if (this.info) {
|
||
// 二次刷新数据
|
||
this.info.coupon_num = res.data;
|
||
this.$store.commit('setMemberInfo', this.info);
|
||
} else {
|
||
// 第一次赋值
|
||
this.memberInfo.coupon_num = res.data;
|
||
this.$forceUpdate();
|
||
this.$store.commit('setMemberInfo', this.memberInfo);
|
||
}
|
||
}
|
||
}
|
||
});
|
||
},
|
||
/**
|
||
* 查询超级会员信息
|
||
*/
|
||
getMemberCardInfo() {
|
||
this.$api.sendRequest({
|
||
url: '/supermember/api/membercard/firstcard',
|
||
success: res => {
|
||
if (res.code == 0 && res.data) {
|
||
this.superMember = res.data;
|
||
}
|
||
}
|
||
});
|
||
},
|
||
/**
|
||
* 跳转
|
||
* @param {Object} url
|
||
*/
|
||
redirect(url) {
|
||
if (!this.storeToken) {
|
||
this.$refs.login.open(url);
|
||
} else {
|
||
this.$util.redirectTo(url);
|
||
}
|
||
},
|
||
/**
|
||
* 显示会员码
|
||
*/
|
||
showMemberQrcode() {
|
||
if (!this.memberInfo.mobile && !this.memberInfo.member_code) {
|
||
uni.showModal({
|
||
title: '提示',
|
||
content: '使用会员码需先绑定手机号,是否绑定手机号?',
|
||
success: res => {
|
||
if (res.confirm) {
|
||
// #ifdef MP-WEIXIN
|
||
this.$util.redirectTo('/pages_tool/member/info_edit', {
|
||
action: 'bind_mobile'
|
||
});
|
||
// #endif
|
||
// #ifndef MP-WEIXIN
|
||
this.$util.redirectTo('/pages_tool/member/info_edit', {
|
||
action: 'mobile'
|
||
});
|
||
// #endif
|
||
}
|
||
}
|
||
});
|
||
return;
|
||
}
|
||
if (this.memberCode) {
|
||
this.$refs.erWeiPopup.open();
|
||
}
|
||
this.$api.sendRequest({
|
||
url: '/api/member/membereqrcode',
|
||
data: {
|
||
page: ''
|
||
},
|
||
success: res => {
|
||
if (res.code == 0) {
|
||
let time = new Date().getTime();
|
||
this.memberCode = {
|
||
barcode: res.bar_code + '?rand=' + time,
|
||
qrcode: res.data.path + '?rand=' + time,
|
||
member_code: res.member_code
|
||
};
|
||
this.$refs.erWeiPopup.open();
|
||
}
|
||
}
|
||
});
|
||
},
|
||
/**
|
||
* 关闭会员码
|
||
*/
|
||
closeMemberQrcode() {
|
||
this.$refs.erWeiPopup.close();
|
||
},
|
||
/**
|
||
* 跳转之前需先进行授权
|
||
* @param {Object} url
|
||
*/
|
||
redirectBeforeAuth(url) {
|
||
if (!this.storeToken) {
|
||
this.$refs.login.open('/pages/member/index');
|
||
return;
|
||
}
|
||
|
||
// #ifdef MP
|
||
if ((this.memberInfo.nickname.indexOf('u_') != -1 && this.memberInfo.nickname == this.memberInfo.username) || this.memberInfo.nickname == this.memberInfo.mobile) {
|
||
this.getWxAuth(() => {
|
||
this.$util.redirectTo(url);
|
||
});
|
||
} else {
|
||
this.$util.redirectTo(url);
|
||
}
|
||
// #endif
|
||
|
||
// #ifdef H5
|
||
if (this.$util.isWeiXin() && ((this.memberInfo.nickname.indexOf('u_') != -1 && this.memberInfo.nickname == this.memberInfo.username) || this.memberInfo.nickname == this.memberInfo.mobile)) {
|
||
this.getWxAuth();
|
||
} else {
|
||
this.$util.redirectTo(url);
|
||
}
|
||
// #endif
|
||
},
|
||
/**
|
||
* 获取微信授权
|
||
*/
|
||
getWxAuth(callback) {
|
||
// #ifdef MP
|
||
this.openCompleteInfoPop(() => {
|
||
typeof callback == 'function' && callback();
|
||
});
|
||
// #endif
|
||
|
||
// #ifdef H5
|
||
if (this.$util.isWeiXin()) {
|
||
this.$api.sendRequest({
|
||
url: '/wechat/api/wechat/authcode',
|
||
data: {
|
||
scopes: 'snsapi_userinfo',
|
||
redirect_url: this.$config.h5Domain + '/pages/member/index'
|
||
},
|
||
success: res => {
|
||
if (res.code >= 0) {
|
||
location.href = res.data;
|
||
}
|
||
}
|
||
});
|
||
}
|
||
// #endif
|
||
},
|
||
/**
|
||
* 修改昵称
|
||
* @param {Object} nickName
|
||
*/
|
||
modifyNickname(nickName) {
|
||
this.$api.sendRequest({
|
||
url: '/api/member/modifynickname',
|
||
data: {
|
||
nickname: nickName
|
||
},
|
||
success: res => {
|
||
if (res.code == 0) {
|
||
this.memberInfo.nickname = nickName;
|
||
this.$store.commit('setMemberInfo', this.memberInfo);
|
||
}
|
||
}
|
||
});
|
||
},
|
||
/**
|
||
* 修改头像
|
||
*/
|
||
modifyHeadimg(headimg) {
|
||
this.$api.sendRequest({
|
||
url: '/api/member/modifyheadimg',
|
||
data: {
|
||
headimg: headimg
|
||
},
|
||
success: res => {
|
||
if (res.code == 0) {
|
||
this.memberInfo.headimg = headimg;
|
||
this.$store.commit('setMemberInfo', this.memberInfo);
|
||
}
|
||
}
|
||
});
|
||
},
|
||
openCompleteInfoPop(callback) {
|
||
this.$refs.completeInfoPopup.open(() => {
|
||
this.$store.commit('setBottomNavHidden', false); //显示底部导航
|
||
});
|
||
this.$store.commit('setBottomNavHidden', true); // 隐藏底部导航
|
||
this.completeInfoCallback = callback;
|
||
},
|
||
saveCompleteInfo() {
|
||
if (this.nickName.length == 0) {
|
||
this.$util.showToast({
|
||
title: '请输入昵称'
|
||
});
|
||
return;
|
||
}
|
||
|
||
this.modifyNickname(this.nickName);
|
||
this.modifyHeadimg(this.headImg);
|
||
this.$refs.completeInfoPopup.close();
|
||
this.$store.commit('setBottomNavHidden', false); // 显示底部导航
|
||
typeof this.completeInfoCallback == 'function' && this.completeInfoCallback();
|
||
},
|
||
cancelCompleteInfo() {
|
||
this.$refs.completeInfoPopup.close();
|
||
this.$store.commit('setBottomNavHidden', false); // 显示底部导航
|
||
},
|
||
blurNickName(e) {
|
||
if (e.detail.value) this.nickName = e.detail.value;
|
||
},
|
||
onChooseAvatar(e) {
|
||
this.avatarUrl = e.detail.avatarUrl;
|
||
uni.getFileSystemManager().readFile({
|
||
filePath: this.avatarUrl, //选择图片返回的相对路径
|
||
encoding: 'base64', //编码格式
|
||
success: res => {
|
||
let base64 = 'data:image/jpeg;base64,' + res.data; //不加上这串字符,在页面无法显示的哦
|
||
|
||
this.$api.uploadBase64({
|
||
base64,
|
||
success: res => {
|
||
if (res.code == 0) {
|
||
this.headImg = res.data.pic_path;
|
||
} else {
|
||
this.$util.showToast({
|
||
title: res.message
|
||
});
|
||
}
|
||
},
|
||
fail: () => {
|
||
this.$util.showToast({
|
||
title: '上传失败'
|
||
});
|
||
}
|
||
})
|
||
}
|
||
});
|
||
},
|
||
splitFn(str) {
|
||
return str.replace(/(?=(\d{4})+$)/g, ' ');
|
||
},
|
||
// #ifdef MP-ALIPAY
|
||
aliappGetUserinfo() {
|
||
my.getOpenUserInfo({
|
||
success: (res) => {
|
||
let userInfo = JSON.parse(res.response).response
|
||
if (userInfo.code && userInfo.code == '10000') {
|
||
if (userInfo.avatar) {
|
||
this.avatarUrl = userInfo.avatar;
|
||
this.$api.pullImage({
|
||
path: this.avatarUrl,
|
||
success: res => {
|
||
if (res.code == 0) {
|
||
this.headImg = res.data.pic_path;
|
||
} else {
|
||
this.$util.showToast({
|
||
title: res.message
|
||
});
|
||
}
|
||
},
|
||
fail: () => {
|
||
this.$util.showToast({
|
||
title: '头像拉取失败'
|
||
});
|
||
}
|
||
})
|
||
}
|
||
this.nickName = userInfo.nickName
|
||
} else {
|
||
this.$util.showToast({
|
||
title: userInfo.subMsg
|
||
})
|
||
}
|
||
},
|
||
fail: (err) => {
|
||
this.$util.showToast({
|
||
title: err.subMsg
|
||
})
|
||
}
|
||
});
|
||
}
|
||
// #endif
|
||
}
|
||
};
|
||
</script>
|
||
<style lang="scss">
|
||
// 增加超出隐藏,是为样式四进行占位【样式四是有定位部分】,定位部分也可以设置颜色
|
||
.container {
|
||
overflow: hidden;
|
||
}
|
||
|
||
.common-wrap {
|
||
width: 100%;
|
||
box-sizing: border-box;
|
||
}
|
||
|
||
// 会员信息
|
||
.member-info {
|
||
.info-wrap {
|
||
padding: 44rpx 30rpx;
|
||
display: flex;
|
||
align-items: center;
|
||
|
||
view {
|
||
color: var(--btn-text-color);
|
||
}
|
||
|
||
.info {
|
||
flex: 1;
|
||
width: 0;
|
||
padding-right: 20rpx;
|
||
overflow: hidden;
|
||
}
|
||
}
|
||
|
||
.headimg {
|
||
width: 120rpx;
|
||
height: 120rpx;
|
||
overflow: hidden;
|
||
border-radius: 50%;
|
||
margin-right: 20rpx;
|
||
|
||
image {
|
||
width: 100%;
|
||
}
|
||
}
|
||
|
||
.nickname {
|
||
font-weight: bold;
|
||
white-space: nowrap;
|
||
margin-bottom: 0;
|
||
// display: flex;
|
||
align-items: center;
|
||
flex-wrap: wrap;
|
||
}
|
||
|
||
.name {
|
||
overflow: hidden;
|
||
text-overflow: ellipsis;
|
||
white-space: nowrap;
|
||
font-size: 38rpx;
|
||
font-weight: 600;
|
||
}
|
||
|
||
.mobile {
|
||
font-size: 26rpx;
|
||
line-height: 1.5;
|
||
}
|
||
|
||
.desc {
|
||
font-size: 24rpx;
|
||
}
|
||
|
||
.member-code,
|
||
.user-info {
|
||
font-size: 40rpx;
|
||
margin-left: 20rpx;
|
||
line-height: 1;
|
||
color: var(--btn-text-color);
|
||
}
|
||
.member-level {
|
||
font-size: 24rpx;
|
||
background: none;
|
||
color: #f7c774 !important;
|
||
line-height: 40rpx;
|
||
height: 40rpx;
|
||
border-radius: 4rpx;
|
||
// padding: 0 16rpx;
|
||
// margin-left: 20rpx;
|
||
// display: flex;
|
||
align-items: center;
|
||
|
||
.icondiy {
|
||
line-height: 1;
|
||
font-size: 24rpx;
|
||
margin-right: 10rpx;
|
||
}
|
||
|
||
&.auth {
|
||
margin-left: 0;
|
||
}
|
||
.level-name{
|
||
background: #31312d;
|
||
color: rgb(242, 220, 172) !important;
|
||
padding: 6rpx 24rpx;
|
||
border-radius: 50rpx;
|
||
font-size: 24rpx;
|
||
font-weight: 500;
|
||
}
|
||
|
||
// .level-name {
|
||
// max-width: 240rpx;
|
||
// xword-break: break-all;
|
||
// text-overflow: ellipsis;
|
||
// overflow: hidden;
|
||
// display: -webkit-box;
|
||
// -webkit-line-clamp: 1;
|
||
// -webkit-box-orient: vertical;
|
||
// white-space: break-spaces;
|
||
// }
|
||
}
|
||
|
||
.super-member {
|
||
display: flex;
|
||
align-items: center;
|
||
justify-content: space-between;
|
||
height: 120rpx;
|
||
border-top-left-radius: 10rpx;
|
||
border-top-right-radius: 10rpx;
|
||
background: linear-gradient(107deg, #7c7878 0%, #201a18 100%);
|
||
padding: 30rpx 40rpx;
|
||
box-sizing: border-box;
|
||
|
||
.icon-huangguan {
|
||
margin-right: 10rpx;
|
||
font-size: 40rpx;
|
||
}
|
||
|
||
.super-info {
|
||
flex: 1;
|
||
width: 0;
|
||
font-size: 36rpx;
|
||
color: var(--super-member-start-text-color);
|
||
// background-image: linear-gradient(90deg, var(--super-member-start-text-color) 0%, var(--super-member-end-text-color) 100%);
|
||
// -webkit-background-clip: text;
|
||
// -webkit-text-fill-color: transparent;
|
||
display: flex;
|
||
align-items: center;
|
||
|
||
.icondiy {
|
||
margin-right: 10rpx;
|
||
}
|
||
}
|
||
|
||
.see {
|
||
line-height: 1;
|
||
font-size: 30rpx;
|
||
}
|
||
|
||
.icon-right {
|
||
font-size: 28rpx;
|
||
margin-left: 10rpx;
|
||
}
|
||
}
|
||
}
|
||
|
||
.account-info {
|
||
display: flex;
|
||
padding: 40rpx 0;
|
||
align-items: center;
|
||
justify-content: center;
|
||
|
||
view {
|
||
color: #fff;
|
||
}
|
||
|
||
.solid {
|
||
height: 70rpx;
|
||
width: 2rpx;
|
||
background: #fff;
|
||
border-radius: 2rpx;
|
||
}
|
||
|
||
.account-item {
|
||
flex: 1;
|
||
text-align: center;
|
||
|
||
.value {
|
||
font-size: 34rpx;
|
||
font-weight: bold !important;
|
||
margin-bottom: 4rpx;
|
||
line-height: 1.3;
|
||
}
|
||
|
||
.title {
|
||
font-size: 26rpx;
|
||
}
|
||
}
|
||
}
|
||
|
||
.data-style-1 {
|
||
.account-info {
|
||
padding: 20rpx 0;
|
||
}
|
||
|
||
.super-member {
|
||
height: 100rpx;
|
||
}
|
||
|
||
.super-text {
|
||
background-image: linear-gradient(90deg, #ffdba6 0%, #ffebca 49%, #f7c774 100%);
|
||
-webkit-background-clip: text;
|
||
-webkit-text-fill-color: transparent;
|
||
display: flex;
|
||
align-items: center;
|
||
}
|
||
}
|
||
|
||
.data-style-2 {
|
||
.member-info {
|
||
// border-radius: 0 0 100% 100%/0 0 70rpx 70rpx;
|
||
overflow: hidden;
|
||
|
||
.member-level {
|
||
background: none;
|
||
.level-name{
|
||
background: #31312d;
|
||
color: rgb(242, 220, 172) !important;
|
||
padding: 6rpx 24rpx;
|
||
border-radius: 50rpx;
|
||
font-size: 24rpx;
|
||
font-weight: 500;
|
||
}
|
||
}
|
||
}
|
||
|
||
.account-info {
|
||
background: #fff;
|
||
margin: 20rpx 0 0 0;
|
||
color: #333;
|
||
border-radius: 18rpx;
|
||
|
||
.solid {
|
||
background: #f2f2f2;
|
||
}
|
||
|
||
.account-item {
|
||
.value {
|
||
color: #000000;
|
||
}
|
||
|
||
.title {
|
||
color: #666666;
|
||
}
|
||
}
|
||
}
|
||
|
||
.super-member {
|
||
color: #8d4b16;
|
||
background: linear-gradient(107deg, #fadcb5 0%, #f6bd74 100%);
|
||
border-top-left-radius: 18rpx;
|
||
border-top-right-radius: 18rpx;
|
||
|
||
.super-info {
|
||
color: var(--super-member-start-text-color);
|
||
// background-image: linear-gradient(90deg, var(--super-member-start-text-color) 0%, var(--super-member-end-text-color) 100%);
|
||
}
|
||
|
||
.see {
|
||
color: var(--super-member-start-text-color);
|
||
}
|
||
|
||
.icon-right {
|
||
color: var(--super-member-start-text-color);
|
||
}
|
||
}
|
||
}
|
||
|
||
.data-style-3 {
|
||
.info-wrap view {
|
||
color: #282c38;
|
||
}
|
||
|
||
.member-code,
|
||
.user-info {
|
||
color: #282c38;
|
||
font-weight: bold;
|
||
}
|
||
|
||
.member-code {
|
||
font-size: 36rpx;
|
||
}
|
||
|
||
.super-member {
|
||
border-radius: 22rpx;
|
||
|
||
.super-text {
|
||
.see {
|
||
width: 160rpx;
|
||
height: 56rpx;
|
||
line-height: 56rpx;
|
||
background: #e3c377;
|
||
border-radius: 56rpx;
|
||
color: #77413e;
|
||
text-align: center;
|
||
font-weight: bold;
|
||
font-size: 24rpx;
|
||
display: block;
|
||
}
|
||
}
|
||
|
||
.super-info {
|
||
flex-direction: column;
|
||
align-items: normal;
|
||
|
||
.title {
|
||
height: 36rpx;
|
||
width: auto;
|
||
margin-bottom: 14rpx;
|
||
}
|
||
|
||
.desc {
|
||
color: #e3c377;
|
||
line-height: 1;
|
||
}
|
||
}
|
||
}
|
||
|
||
.account-info {
|
||
.solid {
|
||
background: none;
|
||
}
|
||
}
|
||
|
||
.account-item {
|
||
.value {
|
||
color: #282c38;
|
||
font-size: 44rpx;
|
||
}
|
||
|
||
.title {
|
||
color: #aab0ba;
|
||
}
|
||
}
|
||
|
||
.member-level {
|
||
background: none;
|
||
padding: 0;
|
||
margin: 0;
|
||
height: auto;
|
||
display: flex;
|
||
align-items: center;
|
||
|
||
.level-icon {
|
||
width: 40rpx;
|
||
height: auto;
|
||
will-change: transform;
|
||
}
|
||
|
||
.level-name {
|
||
height: 36rpx;
|
||
line-height: 36rpx;
|
||
padding: 2rpx 20rpx;
|
||
color: #f2dcac;
|
||
background: #31312d;
|
||
font-size: 24rpx;
|
||
margin-left: 10rpx;
|
||
border-radius: 36rpx;
|
||
// border-bottom-left-radius: 0;
|
||
// border-top-left-radius: 40rpx;
|
||
// font-weight: bold;
|
||
}
|
||
}
|
||
}
|
||
|
||
.data-style-4 {
|
||
position: relative;
|
||
|
||
.info-wrap {
|
||
padding-bottom: 276rpx;
|
||
margin-bottom: 226rpx;
|
||
|
||
view {
|
||
color: #282c38;
|
||
}
|
||
|
||
.info {
|
||
display: flex;
|
||
flex-direction: column;
|
||
align-items: baseline;
|
||
|
||
.name,
|
||
.desc {
|
||
color: #fff;
|
||
}
|
||
}
|
||
}
|
||
|
||
.member-code,
|
||
.user-info {
|
||
color: #fff;
|
||
font-weight: bold;
|
||
font-size: 36rpx;
|
||
}
|
||
|
||
.member-level {
|
||
background: #474758;
|
||
padding: 0;
|
||
margin: 10rpx 0 0;
|
||
height: auto;
|
||
border-radius: 10px;
|
||
|
||
.level-icon {
|
||
width: 40rpx;
|
||
height: auto;
|
||
vertical-align: middle;
|
||
will-change: transform;
|
||
}
|
||
|
||
.level-name {
|
||
padding: 0 20rpx 0 6rpx;
|
||
color: #ddc095;
|
||
font-size: 24rpx;
|
||
}
|
||
}
|
||
|
||
.member-info-style4 {
|
||
position: absolute;
|
||
bottom: -226rpx;
|
||
left: 24rpx;
|
||
right: 24rpx;
|
||
padding: 30rpx;
|
||
background-color: #fff;
|
||
border-radius: 16rpx;
|
||
|
||
.account-info {
|
||
padding: 50rpx 0;
|
||
|
||
.account-item {
|
||
.value {
|
||
color: #282c38;
|
||
font-size: 38rpx;
|
||
}
|
||
|
||
.title {
|
||
color: #666666;
|
||
font-size: $font-size-tag;
|
||
}
|
||
}
|
||
}
|
||
|
||
.super-member {
|
||
border-radius: 22rpx;
|
||
height: 120rpx;
|
||
line-height: 100rpx;
|
||
padding: 20rpx;
|
||
|
||
.super-info {
|
||
display: flex;
|
||
align-items: center;
|
||
|
||
.title {
|
||
width: 80rpx;
|
||
height: auto;
|
||
will-change: transform;
|
||
margin-right: 20rpx;
|
||
}
|
||
|
||
.desc {
|
||
font-size: 30rpx;
|
||
color: #333;
|
||
font-weight: bold;
|
||
}
|
||
}
|
||
|
||
.super-text {
|
||
display: flex;
|
||
align-items: center;
|
||
justify-content: center;
|
||
background-color: #333;
|
||
border-radius: 26rpx;
|
||
width: 138rpx;
|
||
height: 52rpx;
|
||
|
||
&.more {
|
||
width: 180rpx;
|
||
}
|
||
|
||
.see {
|
||
color: #f6dcad;
|
||
font-size: $font-size-goods-tag;
|
||
}
|
||
}
|
||
}
|
||
|
||
.style4-other {
|
||
display: flex;
|
||
justify-content: space-between;
|
||
padding: 0 10rpx;
|
||
|
||
.style4-btn-wrap {
|
||
flex: 1;
|
||
display: flex;
|
||
|
||
.recharge-btn,
|
||
.kefu-btn {
|
||
margin: 0;
|
||
width: 200rpx;
|
||
height: 80rpx;
|
||
line-height: 84rpx;
|
||
border-radius: 44rpx;
|
||
text-align: center;
|
||
border: 2rpx solid transparent;
|
||
}
|
||
|
||
.recharge-btn {
|
||
margin-right: 30rpx;
|
||
background-color: $base-color;
|
||
color: #fff;
|
||
}
|
||
|
||
.kefu-btn {
|
||
color: $base-color;
|
||
border-color: $base-color;
|
||
}
|
||
|
||
.contact-wrap {
|
||
flex: 1;
|
||
}
|
||
}
|
||
|
||
.code {
|
||
width: 80rpx;
|
||
height: 80rpx;
|
||
padding: 20rpx;
|
||
background-color: $base-color;
|
||
border-radius: 50%;
|
||
box-sizing: border-box;
|
||
|
||
image {
|
||
width: 40rpx;
|
||
height: 40rpx;
|
||
}
|
||
}
|
||
}
|
||
}
|
||
}
|
||
|
||
.member-code-popup {
|
||
width: 100%;
|
||
min-height: 900rpx;
|
||
background: none;
|
||
|
||
.popup-top {
|
||
padding: 40rpx;
|
||
box-sizing: border-box;
|
||
width: 100%;
|
||
height: 800rpx;
|
||
background: #ffffff;
|
||
border-radius: 12rpx;
|
||
|
||
.popup-top-title {
|
||
display: flex;
|
||
align-items: center;
|
||
margin-bottom: 60rpx;
|
||
|
||
.popup-top-title-txt {
|
||
font-size: 30rpx;
|
||
margin-left: 16rpx;
|
||
}
|
||
}
|
||
|
||
.popup-top-tiao {
|
||
width: 480rpx;
|
||
height: 130rpx;
|
||
overflow: hidden;
|
||
margin: 0 auto 20rpx;
|
||
|
||
image {
|
||
width: 480rpx;
|
||
height: 160rpx;
|
||
max-height: unset !important;
|
||
}
|
||
}
|
||
|
||
.popup-top-code {
|
||
text-align: center;
|
||
color: #000;
|
||
font-size: 28rpx;
|
||
margin: 0 auto 20rpx;
|
||
line-height: 1;
|
||
}
|
||
|
||
.popup-top-tiaoJie {
|
||
text-align: center;
|
||
font-size: 28rpx;
|
||
color: rgb(153, 153, 153);
|
||
margin-bottom: 40rpx;
|
||
}
|
||
|
||
.popup-top-erwei {
|
||
width: 254rpx;
|
||
height: 254rpx;
|
||
margin: 0 auto 20rpx;
|
||
|
||
image {
|
||
width: 100%;
|
||
height: 100%;
|
||
}
|
||
}
|
||
|
||
.popup-top-shauxin {
|
||
width: 350rpx;
|
||
height: 80rpx;
|
||
border-radius: $border-radius;
|
||
background: rgb(245, 249, 247);
|
||
margin: 0 auto;
|
||
font-size: 30rpx;
|
||
text-align: center;
|
||
display: flex;
|
||
align-items: center;
|
||
justify-content: center;
|
||
|
||
.iconfont {
|
||
margin-left: 20rpx;
|
||
}
|
||
}
|
||
|
||
.popup-top-text {
|
||
text-align: center;
|
||
font-size: 18rpx;
|
||
color: rgb(153, 153, 153);
|
||
margin-top: 30rpx;
|
||
}
|
||
}
|
||
|
||
.popup-bottom {
|
||
display: flex;
|
||
align-items: center;
|
||
justify-content: center;
|
||
background: none !important;
|
||
|
||
.iconfont-delete {
|
||
font-size: 60rpx;
|
||
margin-top: 20rpx;
|
||
color: white;
|
||
}
|
||
}
|
||
}
|
||
|
||
/deep/ .uni-popup__wrapper.uni-custom .uni-popup__wrapper-box {
|
||
background: none !important;
|
||
}
|
||
|
||
/deep/ .member-info-style4 .uni-popup__wrapper.uni-custom .uni-popup__wrapper-box {
|
||
background: #fff !important;
|
||
}
|
||
|
||
.member-code-popup .popup-top {
|
||
height: auto;
|
||
}
|
||
|
||
.member-complete-info-popup {
|
||
.complete-info-wrap {
|
||
background: #fff;
|
||
padding: 50rpx 40rpx 40rpx;
|
||
padding-bottom: calc(40rpx + constant(safe-area-inset-bottom));
|
||
padding-bottom: calc(40rpx + env(safe-area-inset-bottom));
|
||
|
||
.head {
|
||
position: relative;
|
||
border-bottom: 2rpx solid $color-line;
|
||
padding-bottom: 20rpx;
|
||
|
||
.title {
|
||
font-size: $font-size-toolbar;
|
||
display: block;
|
||
}
|
||
|
||
.tips {
|
||
font-size: $font-size-base;
|
||
display: block;
|
||
}
|
||
|
||
.iconfont {
|
||
position: absolute;
|
||
right: 0;
|
||
top: -30rpx;
|
||
display: inline-block;
|
||
width: 56rpx;
|
||
height: 56rpx;
|
||
line-height: 56rpx;
|
||
text-align: right;
|
||
font-size: $font-size-toolbar;
|
||
font-weight: bold;
|
||
}
|
||
}
|
||
|
||
.item-wrap {
|
||
border-bottom: 2rpx solid $color-line;
|
||
display: flex;
|
||
align-items: center;
|
||
padding: 20rpx 0;
|
||
|
||
.label {
|
||
font-size: $font-size-toolbar;
|
||
margin-right: 40rpx;
|
||
}
|
||
|
||
button {
|
||
background: transparent;
|
||
margin: 0;
|
||
padding: 0;
|
||
border-radius: 0;
|
||
flex: 1;
|
||
text-align: left;
|
||
display: flex;
|
||
align-items: center;
|
||
font-size: $font-size-toolbar;
|
||
border: none;
|
||
|
||
image {
|
||
width: 100rpx;
|
||
height: 100rpx;
|
||
border-radius: 10rpx;
|
||
overflow: hidden;
|
||
}
|
||
}
|
||
|
||
.iconfont {
|
||
flex: 1;
|
||
text-align: right;
|
||
}
|
||
|
||
input {
|
||
flex: 1;
|
||
height: 80rpx;
|
||
box-sizing: border-box;
|
||
font-size: $font-size-toolbar;
|
||
}
|
||
}
|
||
|
||
.save-btn {
|
||
width: 280rpx;
|
||
height: 90rpx;
|
||
line-height: 90rpx;
|
||
background-color: #07c160;
|
||
color: #fff;
|
||
margin: 40rpx auto 20rpx;
|
||
}
|
||
}
|
||
}
|
||
</style>
|
||
<style scoped>
|
||
.member-complete-info-popup /deep/ .uni-popup__wrapper.bottom,
|
||
.member-complete-info-popup /deep/ .uni-popup__wrapper.bottom .uni-popup__wrapper-box {
|
||
border-top-left-radius: 30rpx !important;
|
||
border-top-right-radius: 30rpx !important;
|
||
}
|
||
</style> |