recycapp/pages/mine/apply.vue

384 lines
9.6 KiB
Vue
Raw Normal View History

2025-10-25 10:29:50 +08:00
<template>
<view class="content">
2025-11-01 07:56:04 +08:00
<view v-if="!userinfo.id_card_number">
<view class="moduleWrap">
<view class="moduleBox" style="padding-bottom: 40rpx;">
<view class="monthBox">
<view class="text1">身份证信息</view>
<text class="text2">上传本人身份证照片保持图片清晰完整</text>
2025-10-25 10:29:50 +08:00
</view>
2025-11-01 07:56:04 +08:00
<view class="flex-between" style="margin-top: 20rpx;">
<view>
<img-upload @imgList="imgListz" style="width: 300rpx;height: 190rpx;">
<template v-slot:upLoadImg>
<image :src="path+'/assets/img/icon/IDbgz.png'" mode="widthFix" style="width: 300rpx;height: 190rpx;">
</image>
</template>
</img-upload>
</view>
<view>
<img-upload @imgList="imgListf" style="width: 300rpx;height: 190rpx;">
<template v-slot:upLoadImg>
<image :src="path+'/assets/img/icon/IDbgf.png'" mode="widthFix" style="width: 300rpx;height: 190rpx;">
</image>
</template>
</img-upload>
</view>
2025-10-25 10:29:50 +08:00
</view>
</view>
</view>
2025-11-01 07:56:04 +08:00
<view class="moduleWrap">
<view class="moduleBox">
<view class="text4">真实姓名</view>
<view class="inputBox">
<input v-model="realname" class="input1" type="text" placeholder="输入和身份证姓名一致" />
</view>
2025-10-25 10:29:50 +08:00
</view>
2025-11-01 07:56:04 +08:00
<view class="moduleBox">
<view class="text4">身份证号</view>
<view class="inputBox">
<input v-model="id_card_number" class="input1" type="text" placeholder="输入18位身份证号" />
</view>
2025-10-25 10:29:50 +08:00
</view>
2025-11-01 07:56:04 +08:00
<view class="moduleBox">
<view class="text4">有效日期</view>
<view class="inputBox inputTwoBox">
<text class="input1" @click="showStartDate=true">{{id_card_start_date||'开始时间'}}</text>
<!-- <input class="input1" type="text" placeholder="开始日期" /> -->
<text class="centerIcon"></text>
<text class="input2" @click="showEndDate=true">{{id_card_end_date||'结束时间'}}</text>
<!-- <input class="input2" type="text" placeholder="开始日期" /> -->
</view>
<u-datetime-picker
:show="showStartDate"
v-model="dateStart"
mode="date"
@confirm="confirmStartDate"
></u-datetime-picker>
<u-datetime-picker
:show="showEndDate"
v-model="dateEnd"
mode="date"
@confirm="confirmEndDate"
></u-datetime-picker>
2025-10-25 19:46:23 +08:00
</view>
2025-11-01 07:56:04 +08:00
<view class="moduleBox">
<view class="text4">证件地址</view>
<view class="inputBox">
<input v-model="id_card_address" class="input1" type="text" placeholder="与身份证住址保持一致" />
</view>
2025-10-25 19:46:23 +08:00
</view>
2025-11-01 07:56:04 +08:00
<view class="moduleBox">
<view class="text4">联系电话</view>
<view class="inputBox">
<input v-model="mobile" class="input1" type="text" placeholder="输入您的联系方式" />
</view>
2025-10-25 19:46:23 +08:00
</view>
2025-11-01 07:56:04 +08:00
<view class="moduleBox" style="padding-bottom: 60rpx;">
<view class="text4">代理区域</view>
<view class="inputBox inputTwoBox2">
<!-- <input class="input1" type="text" placeholder="请选择省份" /> -->
<view class="input1" @click="showProvince = true">{{provinceName||'请选择省份'}}</view>
<text class="centerIcon">-</text>
<view @click="showCity = true" class="input2">{{cityName||'请选择城市'}}</view>
<!-- <input class="input2" type="text" placeholder="请选择城市" /> -->
</view>
</view>
</view>
<u-picker :show="showProvince" :columns="[provinceList]" keyName="label" @confirm="confirmProvince"></u-picker>
<u-picker :show="showCity" :columns="[cityList]" keyName="label" @confirm="confirmCity"></u-picker>
<view class="tipBox">
Tips我们会在3个工作日内审核并与您联系请注意接听电话
2025-10-25 19:46:23 +08:00
</view>
2025-11-01 07:56:04 +08:00
<view style="height: 130rpx;"></view>
<view class="btnBox">
<view class="btnEle flex-center" @click="apply">
提交申请
2025-10-25 19:46:23 +08:00
</view>
</view>
</view>
2025-11-01 07:56:04 +08:00
<view v-else class="userBox">
<view class="userTitle">已经申请加盟</view>
<view class="userContent">
<view class="userName flex-between">
<view>姓名</view>
<view>{{userinfo.realname}}</view>
</view>
<view class="userID flex-between">
<view>身份证号</view>
<view>{{userinfo.id_card_number}}</view>
</view>
2025-10-25 19:46:23 +08:00
</view>
2025-10-25 10:29:50 +08:00
</view>
</view>
</template>
<script>
2025-10-26 16:36:59 +08:00
import imgUpload from '@/components/imgUpload.vue'
import util from '../../common/util.js'
2025-10-25 10:29:50 +08:00
export default {
data() {
return {
2025-11-01 07:56:04 +08:00
userinfo: {},
2025-10-26 16:36:59 +08:00
showStartDate: false,
showEndDate: false,
dateStart: Number(new Date()),
dateEnd: Number(new Date()),
realname: '',
id_card_number: '',
id_card_front: '',
id_card_back: '',
id_card_start_date: '',
id_card_end_date: '',
id_card_address: '',
2025-10-29 15:50:14 +08:00
mobile: '',
showProvince: false,
showCity: false,
provinceList: [],
cityList: [],
provinceName: '',
cityName: ''
2025-10-25 10:29:50 +08:00
}
},
components:{
2025-10-26 16:36:59 +08:00
imgUpload
2025-10-25 10:29:50 +08:00
},
onLoad() {
2025-11-01 07:56:04 +08:00
this.getauth()
2025-10-29 15:50:14 +08:00
this.allarealist()
2025-10-25 10:29:50 +08:00
},
onShow() {
},
methods: {
2025-11-01 07:56:04 +08:00
getauth(){
var _this = this;
let obj = uni.getStorageSync('personInfo');
obj.realname = this.maskName(obj.realname)
obj.id_card_number = this.maskName(obj.id_card_number);
_this.userinfo = obj;
// _this.$api.userInfo({},res=>{
// if(res.code == '1'){
// _this.userinfo = res.data.person
// }else{
// }
// })
},
maskName(name) {
if (name.length > 1) {
return name.slice(0, 1) + '*'.repeat(name.length - 1);
} else {
return name; // 如果名字只有一个字,则不替换
}
},
maskIdCard(idCard) {
if (idCard.length <= 2) return idCard; // 如果身份证号长度小于等于2直接返回
return idCard.slice(0, 1) + '*'.repeat(idCard.length - 2) + idCard.slice(-1);
},
2025-10-29 15:50:14 +08:00
confirmProvince(val){
2025-10-30 21:04:29 +08:00
console.log(val,val.value[0],val.value[0].children)
this.cityList = val.value[0].children
2025-10-29 15:50:14 +08:00
this.provinceName = val.value[0].label
this.showProvince = false
},
confirmCity(val){
this.showCity = false
this.cityName = val.value[0].label
},
allarealist(){
this.$api.allarealist({},res=>{
if(res.code == '1'){
console.log(res.data,'ggggggg')
this.provinceList = res.data;
}
})
},
2025-10-26 16:36:59 +08:00
apply(){
let data = {
realname: this.realname,
id_card_number: this.id_card_number,
id_card_front: this.id_card_front,
id_card_back: this.id_card_back,
id_card_start_date: this.id_card_start_date,
id_card_end_date: this.id_card_end_date,
id_card_address: this.id_card_address,
mobile: this.mobile
}
this.$api.applyCertification(data,res=>{
if(res.code == '1'){
uni.showToast({ title: res.msg , icon: 'success' })
setTimeout(()=>{
uni.navigateBack({
delta: 1
})
}, 2000)
}else{
uni.showToast({ title: res.msg , icon: 'none' })
}
})
},
imgListz(val){
this.id_card_front = val
},
imgListf(val){
this.id_card_back = val
},
confirmStartDate(val){
this.showStartDate = false
this.id_card_start_date = util.formatDate(val.value,'YYYY-MM-DD')
},
confirmEndDate(val){
this.showEndDate = false
this.id_card_end_date = util.formatDate(val.value,'YYYY-MM-DD')
}
2025-10-25 10:29:50 +08:00
}
}
</script>
<style lang="scss">
page{
height: 100%;
}
.content{
padding: 20rpx 35rpx;
background: #F5F5FA;
height: 100%;
2025-10-25 19:46:23 +08:00
overflow: auto;
2025-10-25 10:29:50 +08:00
}
.monthBox{
display: flex;
2025-10-25 10:55:02 +08:00
flex-direction: column;
2025-10-25 10:29:50 +08:00
.text1{
2025-10-25 10:55:02 +08:00
font-weight: bold;
font-size: 32rpx;
2025-10-25 10:29:50 +08:00
color: #333333;
}
.text2{
2025-10-25 10:55:02 +08:00
font-weight: 400;
font-size: 24rpx;
color: #999999;
margin-top: 10rpx;
2025-10-25 10:29:50 +08:00
}
}
.moduleBox{
background: #fff;
2025-10-25 19:46:23 +08:00
padding: 34rpx 30rpx 28rpx;
// border-bottom: 1rpx solid #DEDEDE;
2025-10-25 10:29:50 +08:00
.text4{
2025-10-25 19:46:23 +08:00
font-weight: bold;
font-size: 28rpx;
color: #333333;
2025-10-25 10:29:50 +08:00
}
2025-10-25 19:46:23 +08:00
.input1{
margin-top: 40rpx;
font-size: 28rpx;
2025-10-25 10:29:50 +08:00
}
2025-10-25 19:46:23 +08:00
.input2{
margin-top: 40rpx;
font-size: 28rpx;
text-align: right;
}
.centerIcon{
font-weight: 400;
font-size: 28rpx;
color: #333333;
}
.inputBox{
border-bottom: 1rpx solid #DEDEDE;
padding-bottom: 22rpx;
2025-10-25 10:29:50 +08:00
}
}
.moduleBox:last-child{
border-bottom: none;
}
.moduleWrap{
margin-bottom: 20rpx;
border-radius: 30rpx;
2025-10-25 10:55:02 +08:00
overflow: hidden;
2025-10-25 10:29:50 +08:00
}
2025-10-25 19:46:23 +08:00
.inputTwoBox{
display: flex;
flex-direction: row;
justify-content: space-between;
align-items: flex-end;
2025-10-25 10:29:50 +08:00
}
2025-10-25 19:46:23 +08:00
.inputTwoBox2{
display: flex;
flex-direction: row;
justify-content: flex-start;
align-items: flex-end;
.input1{
margin-top: 40rpx;
font-size: 28rpx;
width: 200rpx;
2025-10-25 10:29:50 +08:00
}
2025-10-25 19:46:23 +08:00
.input2{
margin-top: 40rpx;
font-size: 28rpx;
width: 200rpx;
2025-10-25 10:29:50 +08:00
}
}
2025-10-25 19:46:23 +08:00
.tipBox{
width: 680rpx;
height: 110rpx;
background: #FFF4ED;
border-radius: 20rpx;
2025-10-25 10:29:50 +08:00
font-weight: 400;
2025-10-25 19:46:23 +08:00
font-size: 28rpx;
color: #FF9348;
line-height: 36rpx;
padding: 0 30rpx;
display: flex;
flex-direction: row;
justify-content: flex-start;
align-items: center;
2025-10-25 10:29:50 +08:00
}
2025-10-25 19:46:23 +08:00
.btnBox{
padding: 10rpx 35rpx;
position: fixed;
left: 0;
bottom: 0;
width: 100%;
background: #fff;
.btnEle{
width: 100%;
height: 90rpx;
background: linear-gradient(90deg, #FFAD38 0%, #FF884E 100%);
border-radius: 10rpx;
font-weight: 500;
font-size: 30rpx;
color: #FFFFFF;
line-height: 36rpx;
}
2025-10-25 10:29:50 +08:00
}
2025-11-01 07:56:04 +08:00
.userBox{
padding-top: 100rpx;
display: flex;
flex-direction: column;
justify-content: center;
align-items: center;
.userTitle{
font-size: 36rpx;
font-weight: bold;
}
.userContent{
background: #fff;
width: 700rpx;
margin-top: 100rpx;
padding: 30rpx;
border-radius: 20rpx;
.userName{
border-bottom: 1rpx solid #F5F5FA;
padding-bottom: 30rpx;
}
.userID{
margin-top: 30rpx;
}
}
}
2025-10-25 10:29:50 +08:00
</style>