From 3c738f4fe2762bba8087e5a22fc0dc06560eab0e Mon Sep 17 00:00:00 2001
From: linwe <872216996@qq.com>
Date: Thu, 08 Aug 2024 10:01:17 +0800
Subject: [PATCH] 三色任务与自查任务

---
 subPackage/workbench/views/editExamine.vue |  252 ++++++++++++++++++++++++++++++++++++++++---------
 1 files changed, 203 insertions(+), 49 deletions(-)

diff --git a/subPackage/workbench/views/editExamine.vue b/subPackage/workbench/views/editExamine.vue
index 7261900..ba74d70 100644
--- a/subPackage/workbench/views/editExamine.vue
+++ b/subPackage/workbench/views/editExamine.vue
@@ -89,10 +89,19 @@
 				</view>
 
 
-				<view class="item bgc-ff mt-20">
-
-					<view class="box-title">
-						<box-title title="房东信息"></box-title>
+				<view class="item bgc-ff mt-20" v-if="roleAlias !='xyzt'">
+					<view class="flex j-c-s-b a-i-c" style="padding-top:12rpx;">
+						<view class="box-title" style="width:50%;">
+							<box-title title="房东信息"></box-title>
+						</view>
+						<!-- #ifdef MP-WEIXIN -->
+						<ocr-navigator @onSuccess="recognizeSuccess($event)" certificateType="idCard" :opposite="false">
+							<view class="recognize-btn flex a-i-c">
+								<u-icon name="scan" color="#fff" size="24"></u-icon>
+								<text class="f-26 c-ff" style="margin-left: 10rpx;">身份证信息识别</text>
+							</view>
+						</ocr-navigator>
+						<!-- #endif -->
 					</view>
 					<u-form-item class="form-item" labelWidth="100" :required="isRequired" :disabled="isDisabled"
 						label="姓名:" prop="landlordName">
@@ -114,9 +123,58 @@
 						<u--input border="none" v-model="form.landlordWxAccount" placeholder="请输入">
 						</u--input>
 					</u-form-item>
-
 				</view>
 			</u-form>
+
+			<view class="item bgc-ff mt-20" v-if="cateId == 160102  ||  cateId == 160103">
+				<view class="flex j-c-s-b a-i-c">
+					<view class="box-title" style="width:50%;">
+						<box-title title="学校信息"></box-title>
+					</view>
+				</view>
+				<u-form-item class="form-item" labelWidth="100" :required="isRequired" :disabled="isDisabled"
+					label="学生人数:" prop="studentNumber">
+					<u--input border="none" type="number" v-model="form.studentNumber" placeholder="请输入">
+					</u--input>
+				</u-form-item>
+				<u-form-item class="form-item" labelWidth="100" :required="isRequired" :disabled="isDisabled"
+					label="教职工人数:" prop="workersNumber">
+					<u--input border="none" type="number" v-model="form.workersNumber" placeholder="请输入">
+					</u--input>
+				</u-form-item>
+				<u-form-item class="form-item" labelWidth="100" :required="isRequired" :disabled="isDisabled"
+					label="专职保安:" prop="securityNumber">
+					<u--input border="none" type="number" v-model="form.securityNumber" placeholder="请输入">
+					</u--input>
+				</u-form-item>
+				<u-form-item class="form-item" labelWidth="100" :required="isRequired" :disabled="isDisabled"
+					label="专职门卫:" prop="guardNumber">
+					<u--input border="none" type="number" v-model="form.guardNumber" placeholder="请输入">
+					</u--input>
+				</u-form-item>
+				<u-form-item class="form-item" labelWidth="100" :required="isRequired" :disabled="isDisabled"
+					label="专兼职保卫人员:" prop="temporarySecurityNumber">
+					<u--input border="none" type="number" v-model="form.temporarySecurityNumber" placeholder="请输入">
+					</u--input>
+				</u-form-item>
+				<u-form-item class="form-item" labelWidth="100" :required="isRequired" :disabled="isDisabled"
+					label="走读/寄宿:" prop="dayStudentsNumber">
+					<u--input border="none" type="number" v-model="form.dayStudentsNumber" placeholder="请输入">
+					</u--input>
+				</u-form-item>
+				<u-form-item class="form-item" labelWidth="100" :required="isRequired" :disabled="isDisabled"
+					label="住校生人数:" prop="residentialStudentsNumber">
+					<u--input border="none" type="number" v-model="form.residentialStudentsNumber" placeholder="请输入">
+					</u--input>
+				</u-form-item>
+				<u-form-item class="form-item" labelWidth="100" :required="isRequired" :disabled="isDisabled"
+					label="宿舍管理人员:" prop="housemasterNumber">
+					<u--input border="none" type="number" v-model="form.housemasterNumber" placeholder="请输入">
+					</u--input>
+				</u-form-item>
+			</view>
+
+
 			<view class="license">
 				<box-title title="营业执照"></box-title>
 				<view class="upload-img">
@@ -140,13 +198,36 @@
 				</view>
 			</view>
 			<view class="practitioner">
-				<box-title title="从业人员信息"></box-title>
-				<view class="info" v-for="(item, index) in personNum" :key="index">
-					<view class="title">人员信息-#{{ index*1 + 1 }}</view>
+				<view v-if="roleAlias ==='xyzt'">
+					<box-title title="教职工信息"></box-title>
+				</view>
+				<view v-else>
+					<box-title title="从业人员信息"></box-title>
+				</view>
+				<view class="info" v-for="(item, index) in personNumArr" :key="index">
+					<view class="flex a-i-c j-c-s-b" style="padding:20rpx;">
+
+						<view class="flex j-c-s-b a-i-c">
+							<view class="title fw" style="text-align:center; mr-20">人员信息-#{{ index*1 + 1 }}</view>
+							<!-- #ifdef MP-WEIXIN -->
+							<ocr-navigator @onSuccess="recognizePersonSuccess($event,index)" certificateType="idCard"
+								:opposite="false">
+								<view class="recognize-btn flex a-i-c">
+									<u-icon name="scan" color="#fff" size="24"></u-icon>
+									<text class="f-26 c-ff" style="margin-left: 10rpx;">身份证信息识别</text>
+								</view>
+							</ocr-navigator>
+							<!-- #endif -->
+						</view>
+
+						<view>
+							<u-icon name="trash-fill" color="#ff0000" size="20" @click="deletePerson(index)" />
+						</view>
+					</view>
 					<formItem ref="formItemRef"></formItem>
 				</view>
 
-				<view class="add-person">
+				<view class="add-person" style="padding:20rpx 30rpx;" v-if="!currentId">
 					<u-button type="success" plain @click="addPerson">再加一人</u-button>
 				</view>
 			</view>
@@ -238,7 +319,16 @@
 					landlordName: "",
 					landlordPhone: "",
 					landlordIdCard: "",
-					landlordWxAccount: ""
+					landlordWxAccount: "",
+
+					studentNumber: "",
+					workersNumber: "",
+					securityNumber: "",
+					guardNumber: "",
+					temporarySecurityNumber: "",
+					dayStudentsNumber: "",
+					residentialStudentsNumber: "",
+					housemasterNumber: ""
 				},
 				rules: {
 					"location": {
@@ -270,7 +360,7 @@
 						}
 					]
 				},
-				personNum: 1,
+				personNum: 0,
 				curSelectSite: {},
 				jwd: "",
 				placeList: [],
@@ -292,7 +382,10 @@
 				genderIndex: [0],
 				genderValue: "",
 				showNationPicker: false,
-				showGenderPicker: false
+				showGenderPicker: false,
+				personNumArr: [],
+				cateId: "",
+				roleAlias: uni.getStorageSync("activeRole").roleAlias,
 			}
 		},
 		onShow() {
@@ -304,9 +397,11 @@
 			this.$refs.form.setRules(this.rules)
 
 		},
-
-		async mounted() {
+		async onLoad() {
 			await this.getBizDict();
+		},
+
+		mounted() {
 			this.getCsDetails();
 		},
 
@@ -315,19 +410,21 @@
 
 			// 获取民族
 			getBizDict() {
-				const param = {
-					code: "nationType"
-				}
-				bizDictionary(param).then(res => {
-					if (res.code == 200) {
-						res.data.forEach(e => {
-							this.nationTypeList.push({
-								name: e.dictValue,
-								value: Number(e.dictKey)
-							})
-						})
+				return new Promise(resolve => {
+					const param = {
+						code: "nationType"
 					}
-				})
+					bizDictionary(param).then(res => {
+						if (res.code == 200) {
+							res.data.forEach(e => {
+								this.nationTypeList.push({
+									name: e.dictValue,
+									value: Number(e.dictKey)
+								})
+							})
+						}
+					})
+				});
 			},
 
 			checkboxChange(n) {
@@ -373,7 +470,6 @@
 				getPlaceDetail({
 					placeId: this.curSelectSite.id
 				}).then(detailRes => {
-
 					const {
 						code,
 						data
@@ -389,8 +485,7 @@
 					if (data.lat) {
 						this.jwd = `${Number(data.lng).toFixed(6)},${Number(data.lat).toFixed(6)}`
 					}
-
-
+					this.cateId = data.poiCode;
 					const placePractitioner = data?.placePractitioner || []
 					// Object.keys(this.form).forEach(key => {
 					// 	this.form[key] = data[key]
@@ -424,33 +519,31 @@
 					}
 
 					this.personNum = placePractitioner.length
+					this.personNumArr = placePractitioner;
 					// const componetns = this.$refs.formItemRef || []
 					placePractitioner.forEach((item, index) => {
 						this.$nextTick(() => {
 							if (item.ethnicity) {
 								let obj = this.$getIndex(this.nationTypeList, item.ethnicity,
 									"value", "name")
-								this.$refs.formItemRef[index].nationValue = obj.name;
-								this.$refs.formItemRef[index].nationTypeIndex = obj.index;
+								console.log("ethnicity==>", obj)
+								if (obj) {
+									this.$refs.formItemRef[index].nationValue = obj.name;
+									this.$refs.formItemRef[index].nationTypeIndex = obj.index;
+								}
 							}
 
-							if (item.gender) {
+							if (typeof(item.gender) == 'number') {
 								let obj = this.$getIndex(this.$refs.formItemRef[index].gender, item
 									.gender, "value", "name")
 								this.$refs.formItemRef[index].genderValue = obj.name;
 								this.$refs.formItemRef[index].genderIndex = obj.index;
 							}
 							if (item.employerImg == "" || item.employerImg == null) {
-								console.log(222222)
-								this.$refs.formItemRef[index].employerImg = []
+								item.employerImg = [];
 							} else {
-								this.$refs.formItemRef[index].employerImg = this.$setImageUrl(item
-									.employerImg, 2)
+								item.employerImg = this.$setImageUrl(item.employerImg, 2)
 							}
-
-
-							console.log(this.$refs.formItemRef[index].form);
-
 							this.$refs.formItemRef[index].form = item
 						})
 					})
@@ -528,21 +621,19 @@
 					})
 				})
 			},
-			addPerson() {
-				this.personNum++
-			},
+
 			submit() {
 				if (this.personNum > 0) {
 					const placePractitioner = []
 					this.$refs.formItemRef.forEach(item => {
 						console.log("item====>", item);
 						item.form.placeId = this.form.placeId
-						// if (item.form.employerImg == null) {
-						// 	item.form.employerImg = "";
-						// } else {
-						// 	item.form.employerImg = this.$formattingUrls(item.form.employerImg);
-						// }
-						item.form.employerImg = "";
+						if (item.form.employerImg == null) {
+							item.form.employerImg = "";
+						} else {
+							item.form.employerImg = this.$formattingUrls(item.form.employerImg);
+						}
+						// item.form.employerImg = "";
 						placePractitioner.push(item.form)
 					})
 					this.form.placePractitioner = placePractitioner
@@ -561,7 +652,63 @@
 
 			addPerson() {
 				this.personNum++
+				this.personNumArr.push(1)
 			},
+
+			deletePerson(index) {
+				this.personNum--;
+				this.personNumArr.splice(index, 1)
+			},
+
+			//识别成功
+			recognizeSuccess(e, key) {
+				let {
+					detail: {
+						name,
+						id
+					}
+				} = e;
+
+				this.form.landlordName = name.text;
+				this.form.landlordIdCard = id.text;
+			},
+
+			//识别从业人员身份证信息
+			recognizePersonSuccess(e, index) {
+				let {
+					detail: {
+						name,
+						id,
+						address,
+						gender,
+						nationality
+					}
+				} = e;
+
+				this.$refs.formItemRef[index].form.name = name.text; //姓名
+				this.$refs.formItemRef[index].form.idCard = id.text; //身份证号
+				this.$refs.formItemRef[index].genderValue = gender.text; //性别
+				this.$refs.formItemRef[index].nationValue = `${nationality.text}族`; //民族
+				this.$refs.formItemRef[index].form.gender = this.getValue(this.gender, gender.text).value;
+				this.$refs.formItemRef[index].form.ethnicity = this.getValue(this.nationTypeList, `${nationality.text}族`)
+					.value;
+				this.$refs.formItemRef[index].genderIndex = [this.getValue(this.gender, gender.text).index];
+				this.$refs.formItemRef[index].nationTypeIndex = [this.getValue(this.nationTypeList, `${nationality.text}族`)
+					.index
+				];
+			},
+
+			getValue(arr, name) {
+				for (let i = 0, ii = arr.length; i < ii; i++) {
+					if (arr[i].name == name) {
+						return {
+							index: i,
+							value: arr[i].value
+						}
+					}
+				}
+			}
+
 		}
 	}
 </script>
@@ -682,4 +829,11 @@
 		padding: 0 30rpx;
 		border-radius: 8rpx;
 	}
+
+	.recognize-btn {
+		padding: 12rpx;
+		border-radius: 6rpx;
+		background-color: #3c9cff;
+		margin-left: 30rpx;
+	}
 </style>
\ No newline at end of file

--
Gitblit v1.9.3