linwe
2024-08-08 3c738f4fe2762bba8087e5a22fc0dc06560eab0e
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>