入驻及实名认证功能修改(未完成)

This commit is contained in:
donqi 2022-07-05 23:58:22 +08:00
parent 819180031f
commit d1f5645d6c
7 changed files with 463 additions and 73 deletions

View File

@ -13,8 +13,8 @@ export default {
})
let userInfo = _this.getCurUserInfo();
// request 触发前拼接 url
args.url = 'https://www.opsoul.com' + args.url;
// args.url = 'http://127.0.0.1:80' + args.url;
// args.url = 'https://www.opsoul.com' + args.url;
args.url = 'http://127.0.0.1:80' + args.url;
// args.url = 'http://192.168.2.42:80' + args.url;
if (!args.data) {

View File

@ -51,6 +51,8 @@
"path": "account-security"
}, {
"path": "master-settled-info"
}, {
"path": "certification"
}]
}],
"globalStyle": {

View File

@ -31,8 +31,9 @@
</view>
<view class="cu-item solid-left">
<view class="cuIcon-profile margin-bottom-xs middle-icon"
:class="myInfo.certification ? 'text-main-color' : 'text-gray'"></view>
<view :class="myInfo.certification ? '' : 'text-gray'">实名认证</view>
:class="curUserInfo.status === 0 ? 'text-main-color' : 'text-gray'"
@click="goToPage('/pages/my/certification')"></view>
<view :class="curUserInfo.status === 0 ? '' : 'text-gray'">实名认证</view>
</view>
<view class="cu-item solid-left">
<view class="cuIcon-moneybag margin-bottom-xs middle-icon"
@ -121,6 +122,11 @@
url: menu.pageUrl
})
}
},
goToPage(pageUrl) {
uni.navigateTo({
url: pageUrl
})
}
},
}

389
pages/my/certification.vue Normal file
View File

@ -0,0 +1,389 @@
<template>
<view>
<!-- 顶部操作条 -->
<cu-custom :bgColor="'bg-main-color'" :isBack="true">
<block slot="backText">返回</block>
<block slot="content">实名认证</block>
</cu-custom>
<view v-if="curUserInfo && curUserInfo.status === 1">
<view class="margin-lr-sm margin-tb-lg">
<view @click="bindAccount">
<view v-if="bindBankCard && bindBankCard.bankNum"
class="bg-gray flex justify-between align-center text-xl padding">
<view>
<text class="cu-tag bg-main-color light margin-right-sm">已绑定</text>
<text>{{bindBankCard.encodeBankNum}}</text>
</view>
<view>到帐帐号另绑<text class="cuIcon-right"></text></view>
</view>
<view v-else class="bg-gray flex justify-between align-center text-xl padding">
<view>到帐帐号绑定</view>
<view><text class="cuIcon-right"></text></view>
</view>
</view>
<view class="margin-bottom">
<view class="bg-white margin-top-sm" v-for="(item, index) in specialSkill">
<view class="cu-bar padding-lr solid-bottom">
<view class="text-lg">
<text class="cuIcon-titles"></text>
<text>特殊技能{{index + 1}}(特殊工种如空调安装等请上传)</text>
</view>
<view @click="delSpecialSkill(index)">
<text class="text-main-color">删除</text>
</view>
</view>
<view class="padding">
<view>
<text>特殊技能</text>
<view>
<view class="flex align-center margin-bottom-xs">
<my-uni-combox class="flex-sub margin-right-xs" :candidates="specialTypeList"
:showField="'goodsCategoryName'" placeholder="请选择"
v-model="specialSkill[index].specialTypeObj" @input="chooseSpecialSkill($event, 0, index)">
</my-uni-combox>
<my-uni-combox class="flex-sub margin-right-xs"
:candidates="specialSkill[index].specialSubTypeList" :showField="'goodsCategoryName'"
placeholder="请选择" v-model="specialSkill[index].specialSubTypeObj"
@input="chooseSpecialSkill($event, 1, index)"></my-uni-combox>
<my-uni-combox class="flex-sub" :candidates="specialSkill[index].specialSubSubTypeList"
:showField="'goodsCategoryName'" placeholder="请选择"
v-model="specialSkill[index].specialSubSubTypeObj"
@input="chooseSpecialSkill($event, 2, index)"></my-uni-combox>
</view>
<my-uni-combox :candidates="specialSkill[index].specialSkillList"
:showField="'specialSkillName'" placeholder="请选择"
v-model="specialSkill[index].specialSkillObj"
@input="chooseSpecialSkill($event, 3, index)"></my-uni-combox>
</view>
</view>
<view class="flex justify-start align-center margin-top-sm">
<view>技能证书</view>
<view class="grid col-1 upload-pic-grid grid-square flex-sub">
<view class="bg-img" v-for="(url, index0) in specialSkill[index].skillCert" :key="index0"
@tap="viewImage($event, specialSkill[index].skillCert)" :data-url="url">
<image :src="url" mode="aspectFill"></image>
<view class="cu-tag bg-red" @tap.stop="delImg($event, specialSkill[index].skillCert)" :data-index="index0">
<text class='cuIcon-close'></text>
</view>
</view>
<view class="solids" @tap="chooseImage($event, specialSkill[index].skillCert)" v-if="specialSkill[index].skillCert.length < 1">
<text class='cuIcon-cameraadd'></text>
</view>
</view>
</view>
<view class="flex justify-start align-center margin-top-sm">
<view>保险证明</view>
<view class="grid col-1 upload-pic-grid grid-square flex-sub">
<view class="bg-img" v-for="(url, index0) in specialSkill[index].insurCert" :key="index0"
@tap="viewImage($event, specialSkill[index].insurCert)" :data-url="url">
<image :src="url" mode="aspectFill"></image>
<view class="cu-tag bg-red" @tap.stop="delImg($event, specialSkill[index].insurCert)" :data-index="index0">
<text class='cuIcon-close'></text>
</view>
</view>
<view class="solids" @tap="chooseImage($event, specialSkill[index].insurCert)" v-if="specialSkill[index].insurCert.length < 1">
<text class='cuIcon-cameraadd'></text>
</view>
</view>
</view>
<view class="flex justify-start align-center">
<view>保险日期</view>
<uni-datetime-picker style="width: 75%;"
:value="[specialSkill[index].insurStartDate, specialSkill[index].insurEndDate]"
type="datetimerange" rangeSeparator="~" @change="changeInsurDate($event, index)" />
</view>
</view>
</view>
<view class="text-center margin-top">
<button class="cu-btn bg-main-color light" @click="addSpecialSkill">
<text class="margin-right-xs"><text class="cuIcon-add"></text></text>
<text>继续添加特殊技能</text>
</button>
</view>
</view>
</view>
<!-- 操作按钮 -->
<view class="margin-lr margin-bottom-lg">
<button class="cu-btn lg bg-main-color long-btn shadow-blur" @click="submit">提交审核</button>
</view>
</view>
<view v-else>
<view class="margin-lr-sm margin-top shadow-warp">
<view @click="bindAccount">
<view v-if="bindBankCard && bindBankCard.bankNum"
class="bg-gray flex justify-between align-center text-xl padding">
<view>
<text class="cu-tag bg-main-color light margin-right-sm">已绑定</text>
<text>{{bindBankCard.encodeBankNum}}</text>
</view>
<view>到帐帐号另绑<text class="cuIcon-right"></text></view>
</view>
<view v-else class="bg-gray flex justify-between align-center text-xl padding">
<view>到帐帐号绑定</view>
<view><text class="cuIcon-right"></text></view>
</view>
</view>
<view class="padding bg-white">
<view class="padding-bottom-sm">
<text class="text-black text-bold">姓名</text>
<text>{{bindBankCard.name}}</text>
</view>
<view class="padding-bottom-sm">
<text class="text-black text-bold">身份证号</text>
<text>{{bindBankCard.certId}}</text>
</view>
</view>
<view class="padding bg-white" v-if="servSpecialSkills && servSpecialSkills.length">
<view class="text-black text-bold">特殊技能</view>
<view class="solid margin-top-sm padding-sm" v-for="(item,index) in servSpecialSkills">
<view class="margin-bottom-xs">类目{{item.specialSkillName}}</view>
<view class="margin-bottom-xs">是否危险技能{{item.dangerous === 0 ? '否' : '是'}}</view>
<view class="margin-bottom-xs">
<view class="margin-bottom-xs">技能证书</view>
<image style="width: 200px; height: 200px; background-color: #eeeeee;" mode="aspectFit"
:src="item.credential" :data-url="item.credential"
@click="viewImage($event, [item.credential])"></image>
</view>
<view v-if="item.dangerous == 1" class="margin-bottom-xs">
<view class="margin-bottom-xs">保险证明</view>
<image style="width: 200px; height: 200px; background-color: #eeeeee;" mode="aspectFit"
:src="item.insurance" :data-url="item.insurance"
@click="viewImage($event, [item.insurance])"></image>
</view>
<view>保险生效时期{{item.insuranceStart}} ~ {{item.insuranceEnd}}</view>
</view>
</view>
<view class="padding">
<text class="text-black text-bold">审核状态</text>
<text v-if="curUserInfo.status === 0" class="text-green">审核通过</text>
<text v-else-if="curUserInfo.status === 3" class="text-yellow">审核中</text>
<text v-else-if="curUserInfo.status === 4" class="text-red">审核未通过</text>
<button class="cu-btn bg-main-color margin-left-sm shadow-blur" v-if="curUserInfo.status === 4"
@click="navigate2ApplySettled">重新填写入驻信息</button>
</view>
</view>
</view>
</view>
</template>
<script>
export default {
components: {
},
data() {
return {
curUserInfo: null,
bindBankCard: null,
specialSkill: [{
specialSubTypeList: [],
specialSubSubTypeList: [],
specialTypeObj: {},
specialSubTypeObj: {},
specialSubSubTypeObj: {},
specialSkillList: [],
specialSkillObj: {},
skillCert: [],
insurCert: [],
insurStartDate: '',
insurEndDate: ''
}],
specialTypeList: []
}
},
onLoad() {
this.loadData();
},
onShow() {
this.loadBindBankCard();
},
methods: {
async loadData() {
this.curUserInfo = this.$request.getCurUserInfo();
this.loadBindBankCard();
if (this.curUserInfo.status === 1) {
this.loadSpecialSkillType();
} else {
this.loadSpecialSkills();
}
},
async reloadData() {
this.curUserInfo = this.$request.getCurUserInfo();
this.loadBindBankCard();
if (this.curUserInfo.status === 1) {
this.loadSpecialSkillType();
} else {
this.loadSpecialSkills();
}
},
async loadBindBankCard() {
let res = await this.$request.getBindBankCardByWorkerId({
workerId: this.curUserInfo.workerId
});
this.bindBankCard = res.data;
this.bindBankCard.encodeBankNum = '****' + this.bindBankCard.bankNum.substring(this.bindBankCard
.bankNum.length - 4);
},
bindAccount() {
uni.navigateTo({
url: '/pages/my/bank-account-bind'
})
},
/* 特殊技能 start */
async loadSpecialSkills() {
let res = await this.$request.getWorkerSpecialSkill({
workerId: this.curUserInfo.workerId
});
this.servSpecialSkills = res.data;
},
async loadSpecialSkillType() {
let res = await this.$request.listByStep();
this.specialTypeList = res.data;
},
async chooseSpecialSkill(e, type, index) {
let funName = "listByStep";
if (type === 2) {
funName = "qrySpecialSkillList";
}
let res = await this.$request[funName]({
goodsCategoryId: e.goodsCategoryId
});
if (res.code == 0) {
switch (type) {
case 0: {
this.specialSkill[index].specialSubTypeList = res.data;
this.specialSkill[index].specialSubSubTypeList = [];
this.specialSkill[index].specialSubTypeObj = {};
this.specialSkill[index].specialSubSubTypeObj = {};
}
break;
case 1: {
this.specialSkill[index].specialSubSubTypeList = res.data;
this.specialSkill[index].specialSubSubTypeObj = {};
}
case 2: {
this.specialSkill[index].specialSkillList = res.data;
this.specialSkill[index].specialSkillObj = {};
}
break;
default:
break;
}
}
},
addSpecialSkill() {
this.specialSkill.push({
specialSubTypeList: [],
specialSubSubTypeList: [],
specialTypeObj: {},
specialSubTypeObj: {},
specialSubSubTypeObj: {},
skillCert: [],
insurCert: [],
insurStartDate: '',
insurEndDate: ''
});
},
delSpecialSkill(index) {
this.specialSkill.splice(index, 1);
},
changeInsurDate(e, index) {
this.specialSkill[index].insurStartDate = e[0];
this.specialSkill[index].insurEndDate = e[1];
},
async chooseImage(e, imgList) {
uni.chooseImage({
count: 1, //9
sizeType: ['original', 'compressed'], //
sourceType: ['album'], //
success: (res) => {
//
res.tempFilePaths.forEach((tmpPath) => {
this.$request.uploadFile(tmpPath).then((url) => {
//
imgList.push(url);
});
})
}
});
},
viewImage(e, imgList) {
uni.previewImage({
urls: imgList,
current: e.currentTarget.dataset.url
});
},
delImg(e, imgList) {
uni.showModal({
title: '',
content: '确定要删除这张图片吗?',
cancelText: '取消',
confirmText: '确定',
success: res => {
if (res.confirm) {
imgList.splice(e.currentTarget.dataset.index, 1)
}
}
})
},
/* 特殊技能 end */
submit() {
if (!this.bindBankCard || !this.bindBankCard.certId) {
uni.showToast({
icon: 'none',
title: '请先完成银行账户绑定,否则接单收益将无法正常到帐'
})
return;
}
let workerId = this.curUserInfo.workerId;
let specialSkills = [];
//
this.specialSkill.forEach((item) => {
specialSkills.push({
workerId: workerId,
specialSkillId: item.specialSkillObj.specialSkillId,
credential: item.skillCert[0],
insurance: item.insurCert[0],
insuranceStart: item.insurStartDate,
insuranceEnd: item.insurEndDate
});
});
let params = {
workerId: workerId,
specialSkills: specialSkills
}
console.log(params)
// let res = await this.$request.workerSettled(params);
// if (res.code === 0) {
// this.reloadData();
// uni.showToast({
// icon: 'success',
// title: ''
// })
// }
}
},
}
</script>
<style scoped>
/deep/ .uni-combox__selector {
z-index: 99 !important;
}
.grid.col-1.grid-square.upload-pic-grid>view {
padding-bottom: 35%;
height: 0;
margin-right: 20rpx;
}
.grid.col-1.upload-pic-grid>view {
width: 35%;
}
/deep/ .uni-date__x-input {
height: 36px;
}
</style>

View File

@ -108,10 +108,11 @@
<!-- 下一步 -->
<view class="cu-bar tabbar border shop fixed-bottom-bar bg-back">
<button class="bg-white long-btn margin-lr" @click="preStep">上一步</button>
<button class="bg-main-color long-btn margin-lr" @click="nextStep">下一步</button>
<!-- <button class="bg-main-color long-btn margin-lr" @click="nextStep">下一步</button> -->
<button class="bg-main-color long-btn margin-lr" @click="submit">提交</button>
</view>
</view>
<view v-if="curStep === 2" class="margin-top-sm">
<view v-if="false" class="margin-top-sm">
<view class="margin-bottom-with-bar">
<view class="bg-white margin-top-sm" v-for="(item, index) in specialSkill">
<view class="cu-bar padding-lr solid-bottom">
@ -215,7 +216,8 @@
return {
curUserInfo: {},
curStep: 0,
stepList: ['服务范围', '服务技能', '特殊技能'],
// stepList: ['', '', ''],
stepList: ['服务范围', '服务技能'],
provinceList: [],
servArea: [{
cityList: [],
@ -256,7 +258,7 @@
this.curUserInfo = this.$request.getCurUserInfo();
this.loadProvinceList();
this.loadTypeList();
this.loadSpecialSkill();
// this.loadSpecialSkill();
},
/* 服务区域 start */
async loadProvinceList() {
@ -459,32 +461,32 @@
this.curStep = this.curStep === 0 ? 0 : --this.curStep;
},
async submit() {
// let workerId = this.curUserInfo.workerId;
// let workerAreas = [];
// let goodsCategories = [];
let workerId = this.curUserInfo.workerId;
let workerAreas = [];
let goodsCategories = [];
// let specialSkills = [];
// //
// this.servArea.forEach((item) => {
// item.streetIds.forEach((streetId) => {
// workerAreas.push({
// workerId: workerId,
// provinceId: item.provinceObj.areaId,
// cityId: item.cityObj.areaId,
// districtId: item.districtObj.areaId,
// streetId: streetId
// })
// });
// });
// //
// this.servSkill.forEach((item) => {
// item.subSubTypeIds.forEach((goodsCategoryId) => {
// goodsCategories.push({
// workerId: workerId,
// goodsCategoryId: goodsCategoryId
// });
// });
// });
// //
//
this.servArea.forEach((item) => {
item.streetIds.forEach((streetId) => {
workerAreas.push({
workerId: workerId,
provinceId: item.provinceObj.areaId,
cityId: item.cityObj.areaId,
districtId: item.districtObj.areaId,
streetId: streetId
})
});
});
//
this.servSkill.forEach((item) => {
item.subSubTypeIds.forEach((goodsCategoryId) => {
goodsCategories.push({
workerId: workerId,
goodsCategoryId: goodsCategoryId
});
});
});
//
// this.specialSkill.forEach((item) => {
// specialSkills.push({
// workerId: workerId,
@ -496,33 +498,25 @@
// });
// });
// let params = {
// workerId: workerId,
// workerAreas: workerAreas,
// goodsCategories: goodsCategories,
// specialSkills: specialSkills
// }
// let res = await this.$request.workerSettled(params);
// if (res.code === 0) {
// uni.showToast({
// icon: 'success',
// title: ''
// })
// //
// let updateCurUserCacheRes = await this.$request.updateCurUserCache();
// if (updateCurUserCacheRes) {
// uni.navigateBack({
// delta: -1
// })
// }
// }
uni.showToast({
icon: 'success',
title: '提交成功'
})
//
let updateCurUserCacheRes = await this.$request.updateCurUserCache();
if (updateCurUserCacheRes) {
let params = {
workerId: workerId,
workerAreas: workerAreas,
goodsCategories: goodsCategories,
// specialSkills: specialSkills
}
let res = await this.$request.workerSettled(params);
if (res.code === 0) {
uni.showToast({
icon: 'success',
title: '提交成功'
})
//
// let updateCurUserCacheRes = await this.$request.updateCurUserCache();
// if (updateCurUserCacheRes) {
// uni.navigateBack({
// delta: -1
// })
// }
uni.navigateBack({
delta: -1
})

View File

@ -5,11 +5,7 @@
<block slot="backText">返回</block>
<block slot="content">师傅入驻信息</block>
</cu-custom>
<view v-if="curUserInfo.status === 1" class="margin bg-white padding">
<view class="margin-bottom-sm">账户未审核请填写入驻信息</view>
<button class="cu-btn bg-main-color shadow-blur" @click="navigate2ApplySettled">填写入驻信息</button>
</view>
<view v-else class="margin bg-white">
<view v-if="(servSkills && servSkills.length) || (servAreas && servAreas.length) " class="margin bg-white">
<view class="padding">
<view class="text-black text-bold">服务区域</view>
<view v-for="(item,index) in servAreas">
@ -24,7 +20,7 @@
<!-- <text v-if="index !== servSkills.length - 1"></text> -->
</view>
</view>
<view class="padding">
<!-- <view class="padding">
<view class="text-black text-bold">特殊技能</view>
<view class="solid margin-top-sm padding-sm" v-for="(item,index) in servSpecialSkills">
<view class="margin-bottom-xs">类目{{item.specialSkillName}}</view>
@ -41,14 +37,17 @@
</view>
<view>保险生效时期{{item.insuranceStart}} ~ {{item.insuranceEnd}}</view>
</view>
</view>
</view> -->
<view class="padding">
<text class="text-black text-bold">审核状态</text>
<text v-if="curUserInfo.status === 0" class="text-green">审核通过</text>
<text v-else-if="curUserInfo.status === 3" class="text-yellow">审核中</text>
<text v-else-if="curUserInfo.status === 4" class="text-red">审核未通过</text>
<button class="cu-btn bg-main-color margin-left-sm shadow-blur" v-if="curUserInfo.status === 4" @click="navigate2ApplySettled">重新填写入驻信息</button>
<!-- <text class="text-black text-bold">审核状态</text> -->
<!-- <text v-if="curUserInfo.status === 0" class="text-green">审核通过</text> -->
<!-- <text v-else-if="curUserInfo.status === 3" class="text-yellow">审核中</text> -->
<!-- <text v-else-if="curUserInfo.status === 4" class="text-red">审核未通过</text> -->
<button class="cu-btn bg-main-color shadow-blur" @click="navigate2ApplySettled">重新填写入驻信息</button>
</view>
</view>
<view v-else class="margin bg-white padding">
<button class="cu-btn bg-main-color shadow-blur" @click="navigate2ApplySettled">填写入驻信息</button>
</view>
</view>
</template>

View File

@ -147,7 +147,7 @@
<button class="cu-btn bg-main-color margin-right-xs shadow-blur margin-top-sm" @tap="makePhoneCall(order.customerPhone)">联系客户</button>
<button class="cu-btn bg-main-color margin-right-xs shadow-blur margin-top-sm" data-modal="showEditTimeArrangeModal" @tap="showModal($event, order)">重新排期</button>
<button class="cu-btn bg-main-color margin-right-xs shadow-blur margin-top-sm" @tap="finishOrder(order)" v-if="order.payStatus === 1">发起完单</button>
<button class="cu-btn bg-main-color margin-right-xs shadow-blur margin-top-sm" data-modal="showPayQrcodeModal" v-if="order.payStatus === 0" @tap="makePayQrcode($event, order)">生成款码</button>
<button class="cu-btn bg-main-color margin-right-xs shadow-blur margin-top-sm" data-modal="showPayQrcodeModal" v-if="order.payStatus === 0" @tap="makePayQrcode($event, order)">生成款码</button>
</view>
<!-- <view v-if="order.orderStatus === 4">
<button class="cu-btn bg-main-color margin-right-xs shadow-blur margin-top-sm" data-modal="sendUrgentMsgModal" @tap="showModal($event, order)">师傅急报</button>