You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
457 lines
19 KiB
457 lines
19 KiB
<template>
|
|
<view class="container">
|
|
<block v-if="errmsg=='' && isload">
|
|
<image :src="pre_url + '/static/img/lv-upbanner.png'" class="banner" mode="widthFix"></image>
|
|
|
|
<view class="contentbox">
|
|
<view class="title">欢迎加入{{sysset.name}}</view>
|
|
<view class="title">您的当前等级:<text style="font-weight:bold">{{userlevel.name}}</text></view>
|
|
</view>
|
|
<form @submit="formSubmit">
|
|
<view class="contentbox">
|
|
<view class="form-item1" v-if="aglevelCount>0">
|
|
<view class="panel">请选择升级等级:</view>
|
|
<radio-group @change="changelevel" name="levelid">
|
|
<block v-for="(item, idx) in aglevelList" :key="idx">
|
|
<label class="radio-item">
|
|
<view class="flex1"><text style="font-weight:bold">{{item.name}}</text></view>
|
|
<!-- <text>{{item.apply_paymoney>0 ? '加盟费'+item.apply_paymoney+'元':''}}</text> -->
|
|
<radio :value="item.id+''"></radio>
|
|
</label>
|
|
</block>
|
|
</radio-group>
|
|
</view>
|
|
<view v-else class="noup"><text class="fa fa-check"></text> 您已达到最高可升级级别</view>
|
|
</view>
|
|
<view class="contentbox" v-if="selectedLevel.can_apply==1 && selectedLevel.id!=userinfo.levelid">
|
|
<view class="applytj">
|
|
<view class="f1">
|
|
<text>{{selectedLevel.name}}</text>
|
|
<text class="t2">申请条件:</text>
|
|
</view>
|
|
<view class="f2">
|
|
<view class="t1" v-if="selectedLevel.applytj!=''">{{selectedLevel.applytj}}</view>
|
|
<view class="t2" v-if="selectedLevel.apply_paymoney>0">{{selectedLevel.apply_paytxt}}:¥{{selectedLevel.apply_paymoney}}</view>
|
|
<view class="t3" v-if="selectedLevel.applytj_reach==0">您暂未达到申请条件,请继续努力!</view>
|
|
<view class="t4" v-if="selectedLevel.applytj_reach==1"><text v-if="selectedLevel.applytj!=''">您已达到申请条件,</text>请填写申请资料</view>
|
|
</view>
|
|
</view>
|
|
<view class="applydata" v-if="selectedLevel.applytj_reach==1">
|
|
<view style="display:none">{{test}}</view>
|
|
<view class="form-item" v-for="(item,idx) in selectedLevel.apply_formdata" :key="item.id">
|
|
<view class="label">{{item.val1}}<text v-if="item.val3==1" style="color:red"> *</text></view>
|
|
<block v-if="item.key=='input'">
|
|
<input type="text" :name="'form'+idx" class="input" :placeholder="item.val2" placeholder-style="font-size:28rpx"/>
|
|
</block>
|
|
<block v-if="item.key=='textarea'">
|
|
<textarea :name="'form'+idx" class='textarea' :placeholder="item.val2" placeholder-style="font-size:28rpx"/>
|
|
</block>
|
|
<block v-if="item.key=='radio'">
|
|
<radio-group class="flex" :name="'form'+idx" style="flex-wrap:wrap">
|
|
<label v-for="(item1,idx1) in item.val2" :key="item1.id" class="flex-y-center">
|
|
<radio class="radio" :value="item1"/>{{item1}}
|
|
</label>
|
|
</radio-group>
|
|
</block>
|
|
<block v-if="item.key=='checkbox'">
|
|
<checkbox-group :name="'form'+idx" class="flex" style="flex-wrap:wrap">
|
|
<label v-for="(item1,idx1) in item.val2" :key="item1.id" class="flex-y-center">
|
|
<checkbox class="checkbox" :value="item1"/>{{item1}}
|
|
</label>
|
|
</checkbox-group>
|
|
</block>
|
|
<block v-if="item.key=='selector'">
|
|
<picker class="picker" mode="selector" :name="'form'+idx" value="" :range="item.val2" @change="editorBindPickerChange" :data-idx="idx">
|
|
<view v-if="editorFormdata[idx] || editorFormdata[idx]===0"> {{item.val2[editorFormdata[idx]]}}</view>
|
|
<view v-else>请选择</view>
|
|
</picker>
|
|
</block>
|
|
<block v-if="item.key=='time'">
|
|
<picker class="picker" mode="time" :name="'form'+idx" value="" :start="item.val2[0]" :end="item.val2[1]" :range="item.val2" @change="editorBindPickerChange" :data-idx="idx">
|
|
<view v-if="editorFormdata[idx]">{{editorFormdata[idx]}}</view>
|
|
<view v-else>请选择</view>
|
|
</picker>
|
|
</block>
|
|
<block v-if="item.key=='date'">
|
|
<picker class="picker" mode="date" :name="'form'+idx" value="" :start="item.val2[0]" :end="item.val2[1]" :range="item.val2" @change="editorBindPickerChange" :data-idx="idx">
|
|
<view v-if="editorFormdata[idx]">{{editorFormdata[idx]}}</view>
|
|
<view v-else>请选择</view>
|
|
</picker>
|
|
</block>
|
|
|
|
<block v-if="item.key=='region'">
|
|
<uni-data-picker :localdata="items" popup-title="请选择省市区" @change="onchange" styleData="width:100%"></uni-data-picker>
|
|
<!-- <picker class="picker" mode="region" :name="'form'+idx" value="" @change="editorBindPickerChange" :data-idx="idx">
|
|
<view v-if="editorFormdata[idx]">{{editorFormdata[idx]}}</view>
|
|
<view v-else>请选择省市区</view>
|
|
</picker> -->
|
|
<input type="text" style="display:none" :name="'form'+idx" :value="regiondata"/>
|
|
</block>
|
|
<block v-if="item.key=='upload'">
|
|
<input type="text" style="display:none" :name="'form'+idx" :value="editorFormdata[idx]"/>
|
|
<view class="flex" style="flex-wrap:wrap;padding-top:20rpx">
|
|
<view class="form-imgbox" v-if="editorFormdata[idx]">
|
|
<view class="form-imgbox-img"><image class="image" :src="editorFormdata[idx]" @click="previewImage" :data-url="editorFormdata[idx]" mode="widthFix" :data-idx="idx"/></view>
|
|
</view>
|
|
<view class="form-uploadbtn" :style="{background:'url('+pre_url+'/static/img/shaitu_icon.png) no-repeat 50rpx',backgroundSize:'80rpx 80rpx',backgroundColor:'#F3F3F3'}" @click="editorChooseImage" :data-idx="idx"></view>
|
|
</view>
|
|
</block>
|
|
</view>
|
|
<view class="form-item" v-if="selectedLevel.areafenhong == 1">
|
|
<view class="label">代理区域<text style="color:red"> *</text></view>
|
|
<uni-data-picker :localdata="provincedata" popup-title="请选择代理区域" :placeholder="areafenhong_province || '请选择代理区域'" @change="onchange1" styleData="width:100%"></uni-data-picker>
|
|
</view>
|
|
<view class="form-item" v-if="selectedLevel.areafenhong == 2">
|
|
<view class="label">代理区域<text style="color:red"> *</text></view>
|
|
<uni-data-picker :localdata="citydata" popup-title="请选择代理区域" :placeholder="areafenhong_city ? areafenhong_province + '/' + areafenhong_city : '请选择代理区域'" @change="onchange2" styleData="width:100%"></uni-data-picker>
|
|
</view>
|
|
<view class="form-item" v-if="selectedLevel.areafenhong == 3">
|
|
<view class="label">代理区域<text style="color:red"> *</text></view>
|
|
<uni-data-picker :localdata="items" popup-title="请选择代理区域" :placeholder="areafenhong_area ? areafenhong_province + '/' + areafenhong_city + '/' + areafenhong_area : '请选择代理区域'" @change="onchange3" styleData="width:100%"></uni-data-picker>
|
|
</view>
|
|
</view>
|
|
<button class="form-btn" form-type="submit" v-if="selectedLevel.applytj_reach==1">申请成为{{selectedLevel.name}}</button>
|
|
</view>
|
|
</form>
|
|
|
|
<view class="contentbox" v-if="selectedLevel.can_up==1 && selectedLevel.up_condition_show == 1 && selectedLevel.id!=userinfo.levelid">
|
|
<view class="uplvtj">
|
|
<view class="f1">
|
|
|
|
<text>{{selectedLevel.name}}</text>
|
|
<text class="t2">升级条件:</text>
|
|
</view>
|
|
<view class="f2">
|
|
<rich-text :nodes="selectedLevel.autouptj"></rich-text>
|
|
<view class="t3">您达到升级条件后将自动升级为{{selectedLevel.name}},请继续努力!</view>
|
|
</view>
|
|
</view>
|
|
</view>
|
|
<view class="contentbox">
|
|
<view class="explain">
|
|
<view class="f1">
|
|
<text>{{selectedLevel.name}}</text>
|
|
<text class="t2">等级特权:</text>
|
|
</view>
|
|
<view class="f2">
|
|
<parse :content="userlevel.explain" v-if="userlevel.id==selectedLevel.id"/>
|
|
<block v-for="(item,index) in aglevelList">
|
|
<parse :content="item.explain" v-if="item.id==selectedLevel.id"/>
|
|
</block>
|
|
</view>
|
|
</view>
|
|
</view>
|
|
</block>
|
|
|
|
<block v-if="errmsg!='' && isload">
|
|
<view class="zan-box">
|
|
<image :src="event_rul + '/static/img/static/img/zan.png'" class="zan-img"></image>
|
|
<view class="zan-text">{{errmsg}}</view>
|
|
</view>
|
|
</block>
|
|
<loading v-if="loading"></loading>
|
|
<dp-tabbar :opt="opt"></dp-tabbar>
|
|
<!-- 悬浮按钮 -->
|
|
<drag-button></drag-button>
|
|
</view>
|
|
</template>
|
|
|
|
<script>
|
|
var app = getApp();
|
|
export default {
|
|
data() {
|
|
return {
|
|
opt:{},
|
|
loading:false,
|
|
isload: false,
|
|
menuindex:-1,
|
|
|
|
pre_url:app.globalData.pre_url,
|
|
editorFormdata:[],
|
|
regiondata:'',
|
|
items: [],
|
|
provincedata:[],
|
|
citydata:[],
|
|
test:'test',
|
|
|
|
sysset: [],
|
|
userinfo: [],
|
|
aglevelList: [],
|
|
aglevelCount: 0,
|
|
applytj_reach: 0,
|
|
errmsg: '',
|
|
userlevel: "",
|
|
selectedLevel: "",
|
|
explain: "",
|
|
applytj_info: "",
|
|
autouptj_info: "",
|
|
areafenhong_province:'',
|
|
areafenhong_city:'',
|
|
areafenhong_area:'',
|
|
|
|
event_rul: app.globalData.event_url,
|
|
};
|
|
},
|
|
|
|
onLoad: function (opt) {
|
|
this.opt = app.getopts(opt);
|
|
var that = this;
|
|
app.get('ApiIndex/getCustom',{}, function (customs) {
|
|
var url = app.globalData.pre_url+'/static/area.json';
|
|
if(customs.data.includes('plug_zhiming')) {
|
|
url = app.globalData.pre_url+'/static/area_gaoxin.json';
|
|
}
|
|
uni.request({
|
|
url: url,
|
|
data: {},
|
|
method: 'GET',
|
|
header: { 'content-type': 'application/json' },
|
|
success: function(res2) {
|
|
that.items = res2.data
|
|
var provincedata = [];
|
|
for(var i in res2.data){
|
|
provincedata.push({text:res2.data[i].text,value:res2.data[i].value})
|
|
}
|
|
that.provincedata = provincedata;
|
|
var citydata = [];
|
|
for(var i in res2.data){
|
|
var citys = [];
|
|
for(var j in res2.data[i].children){
|
|
citys.push({text:res2.data[i].children[j].text,value:res2.data[i].children[j].value});
|
|
}
|
|
citydata.push({text:res2.data[i].text,value:res2.data[i].value,children:citys});
|
|
}
|
|
that.citydata = citydata;
|
|
}
|
|
});
|
|
});
|
|
|
|
this.getdata();
|
|
},
|
|
onPullDownRefresh: function () {
|
|
this.getdata(true);
|
|
},
|
|
onPullDownRefresh: function () {
|
|
this.getdata(true);
|
|
},
|
|
methods: {
|
|
getdata: function () {
|
|
var that = this;
|
|
that.loading = true;
|
|
app.get('ApiMy/levelup', {id:that.opt.id,cid:that.opt.cid}, function (res) {
|
|
that.loading = false;
|
|
uni.setNavigationBarTitle({
|
|
title: that.t('会员') + '升级'
|
|
});
|
|
if (res.status == 0) {
|
|
that.errmsg = res.msg;
|
|
} else if (res.status == 2) {
|
|
that.errmsg = res.msg;
|
|
setTimeout(function () {
|
|
app.goto('index');
|
|
}, 1000);
|
|
} else {
|
|
that.userinfo = res.userinfo;
|
|
that.bankname = res.userinfo.bankname;
|
|
that.userlevel = res.userlevel;
|
|
that.selectedLevel = res.userlevel;
|
|
that.sysset = res.sysset;
|
|
that.aglevelList = res.aglevelList;
|
|
that.aglevelCount = res.aglevelList.length;
|
|
that.explain = res.userlevel.explain;
|
|
}
|
|
that.loaded();
|
|
});
|
|
},
|
|
cannotapply: function () {
|
|
app.alert('不满足申请条件');
|
|
},
|
|
bindBanknameChange: function (e) {
|
|
this.bankname = this.banklist[e.detail.value];
|
|
},
|
|
formSubmit: function (e) {
|
|
var that = this;
|
|
var apply_formdata = this.selectedLevel.apply_formdata;
|
|
var formdata = e.detail.value;
|
|
for (var i = 0; i < apply_formdata.length;i++){
|
|
//console.log(formdata['form' + i]);
|
|
if (apply_formdata[i].val3 == 1 && (formdata['form' + i] === '' || formdata['form' + i] === undefined || formdata['form' + i].length==0)){
|
|
app.alert(apply_formdata[i].val1+' 必填');return;
|
|
}
|
|
if (apply_formdata[i].key == 'selector') {
|
|
formdata['form' + i] = apply_formdata[i].val2[formdata['form' + i]]
|
|
}
|
|
}
|
|
if(this.selectedLevel.areafenhong==1 && this.areafenhong_province==''){
|
|
app.alert('请选择代理区域');return;
|
|
}
|
|
if(this.selectedLevel.areafenhong==2 && this.areafenhong_city==''){
|
|
app.alert('请选择代理区域');return;
|
|
}
|
|
if(this.selectedLevel.areafenhong==3 && this.areafenhong_area==''){
|
|
app.alert('请选择代理区域');return;
|
|
}
|
|
if (formdata.levelid == '') {
|
|
app.alert('请选择等级');
|
|
return;
|
|
}
|
|
formdata.areafenhong_province = this.areafenhong_province;
|
|
formdata.areafenhong_city = this.areafenhong_city;
|
|
formdata.areafenhong_area = this.areafenhong_area;
|
|
app.showLoading('提交中');
|
|
app.post('ApiMy/levelup', formdata, function (res) {
|
|
app.showLoading(false);
|
|
if (res.status == 0) {
|
|
app.alert(res.msg);
|
|
return;
|
|
}
|
|
app.success(res.msg);
|
|
setTimeout(function () {
|
|
app.goto(res.url);
|
|
}, 1000);
|
|
});
|
|
},
|
|
changelevel: function (e) {
|
|
var levelid = e.detail.value;
|
|
var aglevelList = this.aglevelList;
|
|
var agleveldata;
|
|
|
|
for (var i in aglevelList) {
|
|
if (aglevelList[i].id == levelid) {
|
|
agleveldata = aglevelList[i];
|
|
break;
|
|
}
|
|
}
|
|
var applytj = [];
|
|
var applytj_reach = 0;
|
|
var member = this.userinfo;
|
|
|
|
// var applytj_info = applytj.join(' 或 ');
|
|
var autouptj = [];
|
|
|
|
// var autouptj_info = autouptj.join(' 或 ');
|
|
// this.applytj_info = applytj_info;
|
|
// this.applytj_reach = applytj_reach;
|
|
// this.autouptj_info = autouptj_info;
|
|
this.selectedLevel = agleveldata;
|
|
this.explain = agleveldata.explain;
|
|
this.editorFormdata = [];
|
|
},
|
|
editorChooseImage: function (e) {
|
|
var that = this;
|
|
var idx = e.currentTarget.dataset.idx;
|
|
var tplindex = e.currentTarget.dataset.tplindex;
|
|
var editorFormdata = this.editorFormdata;
|
|
if(!editorFormdata) editorFormdata = [];
|
|
app.chooseImage(function(data){
|
|
editorFormdata[idx] = data[0];
|
|
console.log(editorFormdata)
|
|
that.editorFormdata = editorFormdata
|
|
that.test = Math.random();
|
|
})
|
|
},
|
|
editorBindPickerChange:function(e){
|
|
var idx = e.currentTarget.dataset.idx;
|
|
var tplindex = e.currentTarget.dataset.tplindex;
|
|
var val = e.detail.value;
|
|
var editorFormdata = this.editorFormdata;
|
|
if(!editorFormdata) editorFormdata = [];
|
|
editorFormdata[idx] = val;
|
|
console.log(editorFormdata)
|
|
this.editorFormdata = editorFormdata
|
|
this.test = Math.random();
|
|
},
|
|
onchange(e) {
|
|
const value = e.detail.value
|
|
console.log(value[0].text + ',' + value[1].text + ',' + value[2].text)
|
|
this.regiondata = value[0].text + ',' + value[1].text + ',' + value[2].text
|
|
},
|
|
onchange1(e) {
|
|
const value = e.detail.value
|
|
console.log(value[0].text)
|
|
this.areafenhong_province = value[0].text;
|
|
},
|
|
onchange2(e) {
|
|
const value = e.detail.value
|
|
console.log(value[0].text + ',' + value[1].text)
|
|
this.areafenhong_province = value[0].text;
|
|
this.areafenhong_city = value[1].text
|
|
},
|
|
onchange3(e) {
|
|
const value = e.detail.value
|
|
this.areafenhong_province = value[0].text;
|
|
this.areafenhong_city = value[1].text;
|
|
this.areafenhong_area = value[2].text;
|
|
},
|
|
}
|
|
};
|
|
</script>
|
|
<style>
|
|
page{background:#F2D8B2;padding-bottom:10rpx}
|
|
.banner{ width:100%;background:#fff;height:400rpx;display:table}
|
|
|
|
.contentbox{width:94%;margin: 0 3%;padding:20rpx 40rpx;border-radius:20rpx;background:#fff;color:#B17D2D;margin-bottom:30rpx;display:flex;flex-direction:column;margin-bottom:10px}
|
|
.title{height:50rpx;line-height:50rpx}
|
|
|
|
.user-level {margin-left:10rpx;display:flex;}
|
|
.user-level image {width: 44rpx;height: 44rpx;margin-right: 10rpx;margin-left: -4rpx;}
|
|
.level-name {height: 36rpx;border-radius: 18rpx;font-size: 24rpx;color: #fff;background-color: #5c5652;padding: 0 16rpx 0 0;display:flex;align-items: flex-end;}
|
|
.level-name .name{display:flex;align-items:center;height:100%}
|
|
|
|
.noup{ width:100%;text-align:center;font-size:32rpx;color:green}
|
|
|
|
.form-item1{width: 100%;display:flex;flex-direction:column;color:#333}
|
|
.form-item1 .panel{width: 100%;font-size:32rpx;color:#B17D2D;}
|
|
.form-item1 radio-group{width: 100%;background:#fff;padding-left:10rpx;}
|
|
.form-item1 .radio-item{display:flex;width:100%;color:#000;align-items: center;background:#fff;padding:12rpx 0;}
|
|
.form-item1 .radio-item:last-child{border:0}
|
|
.radio-item .user-level{flex:1}
|
|
.form-item1 radio{ transform: scale(0.8);}
|
|
|
|
.applytj{width:100%;}
|
|
.applytj .f1{color:#000;font-size:30rpx;height:60rpx;line-height:60rpx;font-size:30rpx;padding-left:20rpx;display:flex;align-items:center}
|
|
.applytj .f1 .t2{padding-left:10rpx}
|
|
.applytj .f2{padding:20rpx;background-color:#fff;color:#f56060}
|
|
.applytj .f2 .t2{padding-top:10rpx;color:#88e}
|
|
.applytj .f2 .t3{padding-top:10rpx}
|
|
.applytj .f2 .t4{padding-top:10rpx;color:green;font-size:30rpx}
|
|
.uplvtj{width:100%;margin-top:20rpx;}
|
|
.uplvtj .f1{color:#000;font-size:30rpx;height:60rpx;line-height:60rpx;font-size:30rpx;padding-left:20rpx;display:flex;align-items:center}
|
|
.uplvtj .f1 .t2{padding-left:10rpx}
|
|
.uplvtj .f2{padding:20rpx;background-color:#fff;color:#f56060}
|
|
.uplvtj .f2 .t3{padding-top:10rpx;color:green}
|
|
|
|
.explain{ width:100%;margin:20rpx 0;}
|
|
.explain .f1{color:#000;font-size:30rpx;height:60rpx;line-height:60rpx;font-size:30rpx;padding-left:20rpx;display:flex;align-items:center}
|
|
.explain .f1 .t2{padding-left:10rpx}
|
|
.explain .f2{padding:20rpx;background-color:#fff;color:#999999}
|
|
|
|
|
|
.applydata{width: 100%;background: #fff;padding: 0 20rpx;color:#333}
|
|
|
|
.form-btn{width:100%;height: 88rpx;line-height: 88rpx;border-radius:8rpx;background: #FC4343;color: #fff;margin-top: 40rpx;margin-bottom: 20rpx;}
|
|
|
|
.applydata .radio{transform:scale(.7);}
|
|
.applydata .checkbox{transform:scale(.7);}
|
|
.form-item{width: 100%;border-bottom: 1px #ededed solid;padding:10rpx 0px;display:flex;align-items: center;}
|
|
.form-item:last-child{border:0}
|
|
.form-item .label{height:70rpx;line-height: 70rpx;width:160rpx;margin-right: 10px;flex-shrink:0}
|
|
.form-item .input{height: 70rpx;line-height: 70rpx;overflow: hidden;flex:1;border:1px solid #eee;padding:0 8rpx;border-radius:2px;}
|
|
.form-item .textarea{height:180rpx;line-height:40rpx;overflow: hidden;flex:1;border:1px solid #eee;border-radius:2px;padding:8rpx}
|
|
.form-item .radio{height: 70rpx;line-height: 70rpx;display:flex;align-items:center}
|
|
.form-item .radio2{display:flex;align-items:center;}
|
|
.form-item .radio .myradio{margin-right:10rpx;display:inline-block;border:1px solid #aaa;background:#fff;height:32rpx;width:32rpx;border-radius:50%}
|
|
.form-item .checkbox{height: 70rpx;line-height: 70rpx;display:flex;align-items:center}
|
|
.form-item .checkbox2{display:flex;align-items:center;height: 40rpx;line-height: 40rpx;}
|
|
.form-item .checkbox .mycheckbox{margin-right:10rpx;display:inline-block;border:1px solid #aaa;background:#fff;height:32rpx;width:32rpx;border-radius:2px}
|
|
.form-item .layui-form-switch{}
|
|
.form-item .picker{height: 70rpx;line-height:70rpx;flex:1;}
|
|
|
|
.form-imgbox{margin-right:16rpx;margin-bottom:10rpx;font-size:24rpx;position: relative;}
|
|
.form-imgbox-close{position: absolute;display: block;width:32rpx;height:32rpx;right:-16rpx;top:-16rpx;color:#999;font-size:32rpx;background:#fff}
|
|
.form-imgbox-close .image{width:100%;height:100%}
|
|
.form-imgbox-img{display: block;width:180rpx;height:180rpx;padding:2px;border: #d3d3d3 1px solid;background-color: #f6f6f6;overflow:hidden}
|
|
.form-imgbox-img>.image{max-width:100%;}
|
|
.form-imgbox-repeat{position: absolute;display: block;width:32rpx;height:32rpx;line-height:28rpx;right: 2px;bottom:2px;color:#999;font-size:30rpx;background:#fff}
|
|
.form-uploadbtn{position:relative;height:180rpx;width:180rpx}
|
|
</style>
|