修改师傅多区域选择
This commit is contained in:
parent
f351fe4f4a
commit
e9e703e73c
|
@ -104,9 +104,7 @@ export default {
|
||||||
id: response.data.worker.id,
|
id: response.data.worker.id,
|
||||||
uid: response.data.worker.uid,
|
uid: response.data.worker.uid,
|
||||||
avatar: response.data.worker.avatar,
|
avatar: response.data.worker.avatar,
|
||||||
province: response.data.worker.province,
|
area: response.data.worker.area,
|
||||||
city: response.data.worker.city,
|
|
||||||
area: response.data.worker.region,
|
|
||||||
cateIds: response.data.worker.service,
|
cateIds: response.data.worker.service,
|
||||||
carTypeId: response.data.worker.car,
|
carTypeId: response.data.worker.car,
|
||||||
name: response.data.worker.name,
|
name: response.data.worker.name,
|
||||||
|
|
|
@ -19,24 +19,12 @@
|
||||||
<!-- #endif -->
|
<!-- #endif -->
|
||||||
<text class="iconfont icon-jinru"></text>
|
<text class="iconfont icon-jinru"></text>
|
||||||
</view>
|
</view>
|
||||||
<view class="input-item">
|
<view class="input-item" @click="selectAreaModal = true">
|
||||||
<text class="title">*服务区域</text>
|
<text class="title">*服务区域</text>
|
||||||
<view class="select-widget">
|
<view class="select-widget" :class="{ active: currentAreaText.length > 0 }">
|
||||||
<uni-data-picker
|
<view class="picker-view limit-line clamp-1">
|
||||||
:localdata="cityList"
|
{{ currentAreaText ? currentAreaText : "请选择服务区域" }}
|
||||||
placeholder="请选择服务区域"
|
</view>
|
||||||
popup-title="请选择服务区域"
|
|
||||||
@change="changeArea"
|
|
||||||
>
|
|
||||||
<block v-if="province && city && area">
|
|
||||||
<text class="preview">{{ province }}-{{ city }}-{{ area }}</text>
|
|
||||||
</block>
|
|
||||||
<!-- #ifdef MP-WEIXIN -->
|
|
||||||
<block v-else>
|
|
||||||
<text>请选择服务区域</text>
|
|
||||||
</block>
|
|
||||||
<!-- #endif -->
|
|
||||||
</uni-data-picker>
|
|
||||||
</view>
|
</view>
|
||||||
<text class="iconfont icon-jinru"></text>
|
<text class="iconfont icon-jinru"></text>
|
||||||
</view>
|
</view>
|
||||||
|
@ -132,15 +120,35 @@
|
||||||
<view class="btn" @click="submit">提交审核</view>
|
<view class="btn" @click="submit">提交审核</view>
|
||||||
</view>
|
</view>
|
||||||
</view>
|
</view>
|
||||||
|
<widget-modal title="选择服务区域" v-show="selectAreaModal" @close="selectAreaModal = false">
|
||||||
|
<view class="current-modal">
|
||||||
|
<view class="picker-box">
|
||||||
|
<uni-data-picker
|
||||||
|
:localdata="areaList"
|
||||||
|
placeholder="选择服务区域"
|
||||||
|
popup-title="选择服务区域"
|
||||||
|
@change="changeArea"
|
||||||
|
>
|
||||||
|
<view class="picker-view">点击添加服务区域</view>
|
||||||
|
</uni-data-picker>
|
||||||
|
</view>
|
||||||
|
<view class="current-list">
|
||||||
|
<view class="current-item" v-for="(item, index) in currentAreaList" :key="index" @click="delArea(index)">
|
||||||
|
{{ item }}
|
||||||
|
</view>
|
||||||
|
</view>
|
||||||
|
<view class="btn" @click="selectAreaModal = false">确定</view>
|
||||||
|
</view>
|
||||||
|
</widget-modal>
|
||||||
<widget-modal title="选择服务类型" v-show="selectCateModal" @close="selectCateModal = false">
|
<widget-modal title="选择服务类型" v-show="selectCateModal" @close="selectCateModal = false">
|
||||||
<view class="current-cate-modal">
|
<view class="current-modal">
|
||||||
<view class="cate-picker">
|
<view class="picker-box">
|
||||||
<picker mode="selector" :range="cateList" range-key="name" @change="selectCate">
|
<picker mode="selector" :range="cateList" range-key="name" @change="selectCate">
|
||||||
<view class="picker-view limit-line clamp-1">点击添加服务类型</view>
|
<view class="picker-view limit-line clamp-1">点击添加服务类型</view>
|
||||||
</picker>
|
</picker>
|
||||||
</view>
|
</view>
|
||||||
<view class="current-cate-list">
|
<view class="current-list">
|
||||||
<view class="current-cate-item" v-for="(item, index) in currentCateList" :key="index" @click="delCate(index)">
|
<view class="current-item" v-for="(item, index) in currentCateList" :key="index" @click="delCate(index)">
|
||||||
{{ item.name }}
|
{{ item.name }}
|
||||||
</view>
|
</view>
|
||||||
</view>
|
</view>
|
||||||
|
@ -160,12 +168,12 @@ export default {
|
||||||
data() {
|
data() {
|
||||||
return {
|
return {
|
||||||
maxContentLength: 300,
|
maxContentLength: 300,
|
||||||
|
selectAreaModal: false,
|
||||||
selectCateModal: false,
|
selectCateModal: false,
|
||||||
avatar: "",
|
avatar: "",
|
||||||
province: "",
|
areaList: [],
|
||||||
city: "",
|
currentAreaText: "",
|
||||||
area: "",
|
currentAreaList: [],
|
||||||
cityList: [],
|
|
||||||
serviceType: 0,
|
serviceType: 0,
|
||||||
serviceTypeText: "",
|
serviceTypeText: "",
|
||||||
serviceTypeList: [
|
serviceTypeList: [
|
||||||
|
@ -203,9 +211,6 @@ export default {
|
||||||
await this.$store.dispatch("user/info", true);
|
await this.$store.dispatch("user/info", true);
|
||||||
if (this.finishInfo) {
|
if (this.finishInfo) {
|
||||||
this.avatar = this.userInfo.worker.avatar;
|
this.avatar = this.userInfo.worker.avatar;
|
||||||
this.province = this.userInfo.worker.province;
|
|
||||||
this.city = this.userInfo.worker.city;
|
|
||||||
this.area = this.userInfo.worker.area;
|
|
||||||
this.carTypeId = this.userInfo.worker.carTypeId;
|
this.carTypeId = this.userInfo.worker.carTypeId;
|
||||||
this.name = this.userInfo.worker.name;
|
this.name = this.userInfo.worker.name;
|
||||||
this.idcardA = this.userInfo.worker.idcardA;
|
this.idcardA = this.userInfo.worker.idcardA;
|
||||||
|
@ -219,8 +224,15 @@ export default {
|
||||||
this.serviceTypeText = item.name;
|
this.serviceTypeText = item.name;
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
let currentAreaList = this.userInfo.worker.area.split(",");
|
||||||
|
currentAreaList.forEach((item) => {
|
||||||
|
if (item) {
|
||||||
|
this.currentAreaList.push(item);
|
||||||
}
|
}
|
||||||
this.cityList = this.$models.system.getCity();
|
});
|
||||||
|
this.updatecurrentAreaText();
|
||||||
|
}
|
||||||
|
this.areaList = this.$models.system.getCity();
|
||||||
this.$models.service.getInstallCate().then((list) => {
|
this.$models.service.getInstallCate().then((list) => {
|
||||||
this.cateList = list;
|
this.cateList = list;
|
||||||
if (this.finishInfo) {
|
if (this.finishInfo) {
|
||||||
|
@ -251,6 +263,9 @@ export default {
|
||||||
onShareTimeline() {},
|
onShareTimeline() {},
|
||||||
onShareAppMessage() {},
|
onShareAppMessage() {},
|
||||||
methods: {
|
methods: {
|
||||||
|
/**
|
||||||
|
* 上传头像
|
||||||
|
*/
|
||||||
uploadHeadImg() {
|
uploadHeadImg() {
|
||||||
this.$utils.chooseImage(1).then((tempFiles) => {
|
this.$utils.chooseImage(1).then((tempFiles) => {
|
||||||
tempFiles.forEach((item) => {
|
tempFiles.forEach((item) => {
|
||||||
|
@ -260,11 +275,17 @@ export default {
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
},
|
},
|
||||||
|
/**
|
||||||
|
* 上传头像
|
||||||
|
*/
|
||||||
uploadAvatar(e) {
|
uploadAvatar(e) {
|
||||||
this.$models.system.upload(e.detail.avatarUrl).then((response) => {
|
this.$models.system.upload(e.detail.avatarUrl).then((response) => {
|
||||||
this.avatar = response.img;
|
this.avatar = response.img;
|
||||||
});
|
});
|
||||||
},
|
},
|
||||||
|
/**
|
||||||
|
* 上传身份证
|
||||||
|
*/
|
||||||
uploadIdCardA() {
|
uploadIdCardA() {
|
||||||
this.$utils.chooseImage(1).then((tempFiles) => {
|
this.$utils.chooseImage(1).then((tempFiles) => {
|
||||||
tempFiles.forEach((item) => {
|
tempFiles.forEach((item) => {
|
||||||
|
@ -274,6 +295,9 @@ export default {
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
},
|
},
|
||||||
|
/**
|
||||||
|
* 上传身份证
|
||||||
|
*/
|
||||||
uploadIdCardB() {
|
uploadIdCardB() {
|
||||||
this.$utils.chooseImage(1).then((tempFiles) => {
|
this.$utils.chooseImage(1).then((tempFiles) => {
|
||||||
tempFiles.forEach((item) => {
|
tempFiles.forEach((item) => {
|
||||||
|
@ -283,6 +307,9 @@ export default {
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
},
|
},
|
||||||
|
/**
|
||||||
|
* 上传资质
|
||||||
|
*/
|
||||||
uploadLicense() {
|
uploadLicense() {
|
||||||
this.$utils.chooseImage(1).then((tempFiles) => {
|
this.$utils.chooseImage(1).then((tempFiles) => {
|
||||||
tempFiles.forEach((item) => {
|
tempFiles.forEach((item) => {
|
||||||
|
@ -292,11 +319,34 @@ export default {
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
},
|
},
|
||||||
|
/**
|
||||||
|
* 选择服务区域
|
||||||
|
*/
|
||||||
changeArea(e) {
|
changeArea(e) {
|
||||||
this.province = e.detail.value[0].text;
|
let data = e.detail.value;
|
||||||
this.city = e.detail.value[1].text;
|
let value = data[data.length - 1].text;
|
||||||
this.area = e.detail.value[2].text;
|
if (!this.currentAreaList.includes(value)) {
|
||||||
|
this.currentAreaList.push(value);
|
||||||
|
}
|
||||||
|
this.updatecurrentAreaText();
|
||||||
},
|
},
|
||||||
|
/**
|
||||||
|
* 删除服务区域
|
||||||
|
*/
|
||||||
|
delArea(index) {
|
||||||
|
this.currentAreaList.splice(index, 1);
|
||||||
|
this.updatecurrentAreaText();
|
||||||
|
},
|
||||||
|
updatecurrentAreaText() {
|
||||||
|
let areaArr = [];
|
||||||
|
this.currentAreaList.forEach((item) => {
|
||||||
|
areaArr.push(item);
|
||||||
|
});
|
||||||
|
this.currentAreaText = areaArr.join();
|
||||||
|
},
|
||||||
|
/**
|
||||||
|
* 选择服务分类
|
||||||
|
*/
|
||||||
changeServiceType(e) {
|
changeServiceType(e) {
|
||||||
this.serviceTypeList.forEach((item, index) => {
|
this.serviceTypeList.forEach((item, index) => {
|
||||||
if (index == e.detail.value) {
|
if (index == e.detail.value) {
|
||||||
|
@ -309,6 +359,9 @@ export default {
|
||||||
this.carTypeText = "";
|
this.carTypeText = "";
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
/**
|
||||||
|
* 选择服务
|
||||||
|
*/
|
||||||
selectCate(e) {
|
selectCate(e) {
|
||||||
let id = this.cateList[e.detail.value].id,
|
let id = this.cateList[e.detail.value].id,
|
||||||
flag = false;
|
flag = false;
|
||||||
|
@ -325,6 +378,9 @@ export default {
|
||||||
this.updateCurrentCateText();
|
this.updateCurrentCateText();
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
/**
|
||||||
|
* 删除服务
|
||||||
|
*/
|
||||||
delCate(index) {
|
delCate(index) {
|
||||||
this.currentCateList.splice(index, 1);
|
this.currentCateList.splice(index, 1);
|
||||||
this.updateCurrentCateText();
|
this.updateCurrentCateText();
|
||||||
|
@ -336,10 +392,16 @@ export default {
|
||||||
});
|
});
|
||||||
this.currentCateText = cateArr.join();
|
this.currentCateText = cateArr.join();
|
||||||
},
|
},
|
||||||
|
/**
|
||||||
|
* 修改车型
|
||||||
|
*/
|
||||||
changeCarType(e) {
|
changeCarType(e) {
|
||||||
this.carTypeId = this.carTypeList[e.detail.value].id;
|
this.carTypeId = this.carTypeList[e.detail.value].id;
|
||||||
this.carTypeText = this.carTypeList[e.detail.value].name;
|
this.carTypeText = this.carTypeList[e.detail.value].name;
|
||||||
},
|
},
|
||||||
|
/**
|
||||||
|
* 提交
|
||||||
|
*/
|
||||||
submit() {
|
submit() {
|
||||||
let cateIds = [];
|
let cateIds = [];
|
||||||
this.currentCateList.forEach((item) => {
|
this.currentCateList.forEach((item) => {
|
||||||
|
@ -347,10 +409,8 @@ export default {
|
||||||
});
|
});
|
||||||
let saveData = {
|
let saveData = {
|
||||||
avatar: this.avatar,
|
avatar: this.avatar,
|
||||||
province: this.province,
|
|
||||||
city: this.city,
|
|
||||||
region: this.area,
|
|
||||||
service: cateIds.join(","),
|
service: cateIds.join(","),
|
||||||
|
area: this.currentAreaList.join(","),
|
||||||
name: this.name,
|
name: this.name,
|
||||||
mobile: this.mobile,
|
mobile: this.mobile,
|
||||||
imga: this.idcardA,
|
imga: this.idcardA,
|
||||||
|
@ -379,8 +439,8 @@ export default {
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
<style lang="less" scoped>
|
<style lang="less" scoped>
|
||||||
.current-cate-modal {
|
.current-modal {
|
||||||
.cate-picker {
|
.picker-box {
|
||||||
width: 100%;
|
width: 100%;
|
||||||
border-bottom: 2rpx solid #d6d6d6;
|
border-bottom: 2rpx solid #d6d6d6;
|
||||||
.picker-view {
|
.picker-view {
|
||||||
|
@ -390,9 +450,9 @@ export default {
|
||||||
text-align: center;
|
text-align: center;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
.current-cate-list {
|
.current-list {
|
||||||
margin: 30rpx 0 20rpx 0;
|
margin: 30rpx 0 20rpx 0;
|
||||||
.current-cate-item {
|
.current-item {
|
||||||
position: relative;
|
position: relative;
|
||||||
display: inline-block;
|
display: inline-block;
|
||||||
background-color: #ffa800;
|
background-color: #ffa800;
|
||||||
|
@ -404,7 +464,7 @@ export default {
|
||||||
font-size: 28rpx;
|
font-size: 28rpx;
|
||||||
line-height: 28rpx;
|
line-height: 28rpx;
|
||||||
}
|
}
|
||||||
.current-cate-item::after {
|
.current-item::after {
|
||||||
position: relative;
|
position: relative;
|
||||||
top: -3rpx;
|
top: -3rpx;
|
||||||
display: inline-block;
|
display: inline-block;
|
||||||
|
@ -416,7 +476,7 @@ export default {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
.btn {
|
.btn {
|
||||||
width: 535rpx;
|
width: 100%;
|
||||||
height: 68rpx;
|
height: 68rpx;
|
||||||
background: #7286f1;
|
background: #7286f1;
|
||||||
font-size: 32rpx;
|
font-size: 32rpx;
|
||||||
|
@ -455,15 +515,16 @@ export default {
|
||||||
position: absolute;
|
position: absolute;
|
||||||
top: 0;
|
top: 0;
|
||||||
left: 0;
|
left: 0;
|
||||||
|
width: 100%;
|
||||||
display: flex;
|
display: flex;
|
||||||
align-items: center;
|
align-items: center;
|
||||||
font-size: 28rpx;
|
font-size: 28rpx;
|
||||||
color: #c9c9c9;
|
color: #c9c9c9;
|
||||||
|
box-sizing: border-box;
|
||||||
|
padding: 44rpx 44rpx 44rpx 190rpx;
|
||||||
.picker-view,
|
.picker-view,
|
||||||
/deep/.uni-data-tree-input {
|
/deep/.uni-data-tree-input {
|
||||||
width: 670rpx;
|
width: 100%;
|
||||||
box-sizing: border-box;
|
|
||||||
padding: 44rpx 0 44rpx 190rpx;
|
|
||||||
}
|
}
|
||||||
/deep/.uni-data-tree-input {
|
/deep/.uni-data-tree-input {
|
||||||
.preview {
|
.preview {
|
||||||
|
|
|
@ -25,7 +25,6 @@
|
||||||
@click="handleNodeClick(item, i, j)"
|
@click="handleNodeClick(item, i, j)"
|
||||||
>
|
>
|
||||||
<text class="item-text">{{ item[map.text] }}</text>
|
<text class="item-text">{{ item[map.text] }}</text>
|
||||||
<view class="check" v-if="selected.length > i && item[map.value] == selected[i].value"></view>
|
|
||||||
</view>
|
</view>
|
||||||
</scroll-view>
|
</scroll-view>
|
||||||
</template>
|
</template>
|
||||||
|
|
Loading…
Reference in New Issue