Bladeren bron

人员录入页面修改

guoqing 1 jaar geleden
bovenliggende
commit
1bfc0095e4
1 gewijzigde bestanden met toevoegingen van 505 en 55 verwijderingen
  1. 505 55
      src/views/placeManage/placePerson/placePersonAdd.vue

+ 505 - 55
src/views/placeManage/placePerson/placePersonAdd.vue

@@ -13,6 +13,7 @@
         <van-field
           v-model="idType"
           readonly
+          required
           label="证件类型:"
           name="validator"
           placeholder="请选择证件类型"
@@ -34,6 +35,7 @@
         <van-field
           v-model="inputForm.idcard"
           center
+          required
           label="证件号码:"
           placeholder="请填写证件号码"
           input-align="right"
@@ -43,6 +45,7 @@
         <van-field
           v-model="inputForm.name"
           center
+          required
           label="姓名:"
           placeholder="请填写姓名"
           input-align="right"
@@ -95,6 +98,7 @@
         <van-field
           v-model="sexName"
           readonly
+          required
           label="性别:"
           placeholder="请选择选择"
           input-align="right"
@@ -123,7 +127,7 @@
         <van-field
           v-model="inputForm.nativePlace"
           readonly
-          label="籍贯"
+          label="籍贯"
           placeholder="请选择籍贯地区"
           input-align="right"
           right-icon="arrow-down"
@@ -238,7 +242,8 @@
         <van-field
           v-model="typeOfEmployeesName"
           readonly
-          label="任职情况:"
+          label-width="7.2em"
+          label="场所任职情况:"
           placeholder="请选择场所任职情况"
           input-align="right"
           right-icon="arrow-down"
@@ -289,22 +294,44 @@
       </van-cell-group>
       <van-cell-group>
         <van-field
-          v-model="inputForm.idType"
+          v-model="personnalType"
           readonly
+          required
           label="人员类型:"
           placeholder="请选择人员类型"
           input-align="right"
           right-icon="arrow-down"
-          @click="showPicker2 = true"
+          @click="hs_persontype = true"
         />
-        <van-popup v-model:show="showPicker2" round position="bottom">
-          <van-picker
-            title="人员类型"
-            :columns="construction"
-            @cancel="showPicker2 = false"
-            @confirm="getConstruction"
-          />
-        </van-popup>
+        <van-dialog
+          v-model:show="hs_persontype"
+          title="人员类型"
+          show-cancel-button
+        >
+          <div class="dialog">
+            <van-list>
+              <van-checkbox-group v-model="checked2">
+                <van-cell-group inset>
+                  <van-cell
+                    v-for="(item, index) in persontype"
+                    clickable
+                    :key="item"
+                    :title="`${item.text}`"
+                    @click="toggle(index)"
+                  >
+                    <template #right-icon>
+                      <van-checkbox
+                        :name="item.value"
+                        :ref="(el) => (checkboxRefs[index] = el)"
+                        @click.stop
+                      />
+                    </template>
+                  </van-cell>
+                </van-cell-group>
+              </van-checkbox-group>
+            </van-list>
+          </div>
+        </van-dialog>
       </van-cell-group>
       <van-cell-group>
         <van-field
@@ -316,7 +343,11 @@
           right-icon="arrow-down"
           @click="hs_tissue = true"
         />
-        <van-dialog v-model:show="hs_tissue" title="所属场所" show-cancel-button>
+        <van-dialog
+          v-model:show="hs_tissue"
+          title="所属场所"
+          show-cancel-button
+        >
           <div class="dialog">
             <van-list
               v-model:loading="loading1"
@@ -347,7 +378,8 @@
         <van-field
           v-model="inputForm.zjzzJob"
           center
-          label="团体任职:"
+          label-width="6.5em"
+          label="团体任职情况:"
           placeholder="请填写团体任职情况"
           input-align="right"
         />
@@ -356,6 +388,8 @@
         <van-field
           v-model="activitytext"
           readonly
+          required
+          label-width="7em"
           label="非法活动参加:"
           placeholder="请选择是否参加非法活动"
           input-align="right"
@@ -371,6 +405,244 @@
           />
         </van-popup>
       </van-cell-group>
+      <p class="miniTitle">扩展信息</p>
+      <van-cell-group
+        v-if="
+          showZW.includes('15') &&
+          showZW.includes('17') &&
+          showZW.includes('18') &&
+          showZW.includes('19') &&
+          showZW.includes('21') &&
+          showZW.includes('22')
+        "
+      >
+        <van-field
+          v-model="inputForm.idcard"
+          center
+          label="职务:"
+          placeholder="请填写职务"
+          input-align="right"
+        />
+      </van-cell-group>
+      <van-cell-group v-if="showZW.includes('3')">
+        <van-field
+          v-model="teachPosition"
+          readonly
+          label="教职身份:"
+          name="validator"
+          placeholder="请选择教职身份"
+          input-align="right"
+          right-icon="arrow-down"
+          @click="hs_teach = true"
+        />
+        <van-popup v-model:show="hs_teach" round position="bottom">
+          <van-picker
+            title="教职身份"
+            :columns="teach"
+            @cancel="hs_teach = false"
+            @confirm="getteach"
+          />
+        </van-popup>
+      </van-cell-group>
+      <van-cell-group v-if="showZW.includes('3')">
+        <van-field
+          v-model="Religiouseducation"
+          readonly
+          label-width="6.5em"
+          label="宗教教育程度:"
+          name="validator"
+          placeholder="请选择宗教教育程度"
+          input-align="right"
+          right-icon="arrow-down"
+          @click="hs_Reducation = true"
+        />
+        <van-popup v-model:show="hs_Reducation" round position="bottom">
+          <van-picker
+            title="宗教教育程度"
+            :columns="Reducation"
+            @cancel="hs_Reducation = false"
+            @confirm="getReducation"
+          />
+        </van-popup>
+      </van-cell-group>
+      <van-cell-group v-if="showZW.includes('3')">
+        <van-field
+          v-model="inputForm.idcard"
+          center
+          label-width="6.5em"
+          label="宗教毕业院校:"
+          placeholder="请填写宗教毕业院校"
+          input-align="right"
+        />
+      </van-cell-group>
+      <van-cell-group v-if="showZW.includes('3')">
+        <van-field
+          v-model="inputForm.idcard"
+          center
+          label-width="6.5em"
+          label="教职证书号:"
+          placeholder="请填写教职证书号"
+          input-align="right"
+        />
+      </van-cell-group>
+      <van-cell-group v-if="showZW.includes('3')">
+        <van-field
+          v-model="issueDate"
+          center
+          label-width="6.5em"
+          label="证书颁发时间:"
+          placeholder="请填写证书颁发时间"
+          input-align="right"
+          @click="hs_issueDate = true"
+        />
+        <van-popup v-model:show="hs_issueDate" round position="bottom">
+          <van-date-picker
+            v-model="currentDate"
+            title="选择日期"
+            :min-date="minDate"
+            :max-date="maxDate"
+            @cancel="hs_issueDate = false"
+            @confirm="getissueDate"
+          />
+        </van-popup>
+      </van-cell-group>
+      <van-cell-group v-if="showZW.includes('3')">
+        <van-field
+          v-model="inputForm.idcard"
+          center
+          label-width="6.5em"
+          label="证书颁发单位:"
+          placeholder="请填写证书颁发单位"
+          input-align="right"
+        />
+      </van-cell-group>
+      <van-cell-group v-if="showZW.includes('3')">
+        <van-field
+          v-model="recordDate"
+          center
+          label="备案时间:"
+          placeholder="请填写备案时间"
+          input-align="right"
+          @click="hs_recordDate = true"
+        />
+        <van-popup v-model:show="hs_recordDate" round position="bottom">
+          <van-date-picker
+            v-model="currentDate"
+            title="选择日期"
+            :min-date="minDate"
+            :max-date="maxDate"
+            @cancel="hs_recordDate = false"
+            @confirm="getrecordDate"
+          />
+        </van-popup>
+      </van-cell-group>
+      <van-cell-group v-if="showZW.includes('3')">
+        <van-field
+          v-model="inputForm.idcard"
+          center
+          label-width="6.5em"
+          label="备案机关名称:"
+          placeholder="请填写备案机关名称"
+          input-align="right"
+        />
+      </van-cell-group>
+      <van-cell-group v-if="showZW.includes('3')">
+        <van-field
+          v-model="inputForm.idcard"
+          center
+          label-width="6.5em"
+          label="宗教院校名称:"
+          placeholder="请填写宗教院校名称"
+          input-align="right"
+        />
+      </van-cell-group>
+      <van-cell-group v-if="showZW.includes('3')">
+        <van-field
+          v-model="inputForm.idcard"
+          center
+          label-width="6.5em"
+          label="院校任职情况:"
+          placeholder="请填写院校任职情况"
+          input-align="right"
+        />
+      </van-cell-group>
+      <van-cell-group v-if="showZW.includes('16')">
+        <van-field
+          v-model="inputForm.idcard"
+          center
+          label-width="6.5em"
+          label="网络运营类型:"
+          placeholder="请填写网络运营类型"
+          input-align="right"
+        />
+      </van-cell-group>
+      <van-cell-group v-if="showZW.includes('18')">
+        <van-field
+          v-model="inputForm.idcard"
+          center
+          label-width="6.5em"
+          label="记者类型:"
+          placeholder="请填写记者类型"
+          input-align="right"
+        />
+      </van-cell-group>
+      <van-cell-group v-if="showZW.includes('6') && showZW.includes('19')">
+        <van-field
+          v-model="inputForm.idcard"
+          center
+          label-width="6.5em"
+          label="境外来源地:"
+          placeholder="请填写境外来源地"
+          input-align="right"
+        />
+      </van-cell-group>
+      <van-cell-group
+        v-if="
+          showZW.includes('20') &&
+          showZW.includes('21') &&
+          showZW.includes('22')
+        "
+      >
+        <van-field
+          v-model="inputForm.idcard"
+          center
+          label-width="6.5em"
+          label="派别:"
+          placeholder="请填写派别"
+          input-align="right"
+        />
+      </van-cell-group>
+      <van-cell-group v-if="showZW.includes('7')">
+        <van-field
+          v-model="inputForm.idcard"
+          center
+          label-width="6.5em"
+          label="市外来源地:"
+          placeholder="请填写市外来源地"
+          input-align="right"
+        />
+      </van-cell-group>
+      <!-- 教别2 -->
+      <van-cell-group v-if="showZW.includes('8')">
+        <van-field
+          v-model="religiousName2"
+          readonly
+          label="教别:"
+          name="validator"
+          placeholder="请选择教别"
+          input-align="right"
+          right-icon="arrow-down"
+          @click="hs_religious2 = true"
+        />
+        <van-popup v-model:show="hs_religious2" round position="bottom">
+          <van-picker
+            title="教别"
+            :columns="religious2"
+            @cancel="hs_religious2 = false"
+            @confirm="getreligious2"
+          />
+        </van-popup>
+      </van-cell-group>
     </div>
     <div class="subbtn">
       <van-button type="primary" @click="submit">提交</van-button>
@@ -380,7 +652,7 @@
 </template>
 
 <script>
-import { onMounted, reactive, ref } from "vue";
+import { onBeforeUpdate, onMounted, ref } from "vue";
 import placePerson from "@/api/placePerson/placePerson";
 import PlaceRegister from "@/api/placeRegister/placeRegister";
 import tools from "@/api/sys/tools";
@@ -428,7 +700,8 @@ export default {
       },
       bkcheck: "",
     });
-    const locationName = ref('')
+
+    const locationName = ref("");
     onMounted(() => {
       //民族字段接口
       new placePerson().nation().then((res) => {
@@ -440,10 +713,10 @@ export default {
         });
       });
       //籍贯接口
-      new placePerson().nativePlace().then((res)=>{
+      new placePerson().nativePlace().then((res) => {
         nativePlace.value.push(...res);
-        options.value.push(...res)
-      })
+        options.value.push(...res);
+      });
     });
     // 证件类型
     const places = [
@@ -452,7 +725,7 @@ export default {
       { text: "港澳通行证", value: "3" },
       { text: "其他", value: "4" },
     ];
-    const idType = ref('');
+    const idType = ref("");
     let showPicker = ref(false);
     const getPlace = ({ selectedOptions }) => {
       showPicker.value = false;
@@ -460,7 +733,7 @@ export default {
       idType.value = selectedOptions[0].text;
     };
     // 民族
-    const nationName = ref('');
+    const nationName = ref("");
     const nation = ref([]);
     let hs_nation = ref(false);
     const getnation = ({ selectedOptions }) => {
@@ -469,7 +742,7 @@ export default {
       nationName.value = selectedOptions[0].text;
     };
     // 性别
-    const sexName = ref('')
+    const sexName = ref("");
     const sex = [
       { text: "男", value: "0" },
       { text: "女", value: "1" },
@@ -481,7 +754,7 @@ export default {
       sexName.value = selectedOptions[0].text;
     };
     // 教育程度
-    const educationName = ref('');
+    const educationName = ref("");
     const education = [
       { text: "小学", value: "1" },
       { text: "初中", value: "2" },
@@ -500,7 +773,7 @@ export default {
       educationName.value = selectedOptions[0].text;
     };
     // 宗教类别
-    const religiousName = ref('')
+    const religiousName = ref("");
     const religious = [
       { text: "伊斯兰教", value: "1" },
       { text: "基督教", value: "2" },
@@ -514,13 +787,28 @@ export default {
       inputForm.religion = selectedOptions[0].value;
       religiousName.value = selectedOptions[0].text;
     };
+    // 宗教类别2
+    const religiousName2 = ref("");
+    const religious2 = [
+      { text: "伊斯兰教", value: "1" },
+      { text: "基督教", value: "2" },
+      { text: "天主教", value: "3" },
+      { text: "佛教", value: "4" },
+      { text: "道教", value: "5" },
+    ];
+    let hs_religious2 = ref(false);
+    const getreligious2 = ({ selectedOptions }) => {
+      hs_religious2.value = false;
+      // inputForm.religion = selectedOptions[0].value;
+      religiousName2.value = selectedOptions[0].text;
+    };
     // 所属场所
     const checked = ref("");
     const sitelist = ref([]);
     let hs_site = ref(false);
     const getsite = (val) => {
-      locationName.value = val.name
-      inputForm.location.id = val.id
+      locationName.value = val.name;
+      inputForm.location.id = val.id;
       checked.value = val.id;
     };
     const loading = ref(false);
@@ -547,7 +835,7 @@ export default {
         });
     };
     // 场所任职情况
-    const typeOfEmployeesName = ref('');
+    const typeOfEmployeesName = ref("");
     const typeOfEmployees = [
       { text: "场所负责人", value: "1" },
       { text: "堂委", value: "2" },
@@ -587,15 +875,15 @@ export default {
     let hs_nativePlace = ref(false);
     const getnativePlace = ({ selectedOptions }) => {
       hs_nativePlace.value = false;
-        let str = ''
-      selectedOptions.forEach((item)=>{
+      let str = "";
+      selectedOptions.forEach((item) => {
         if (inputForm.nativePlace) {
-          str  = inputForm.nativePlace
+          str = inputForm.nativePlace;
         }
-        str += item.name + '/'
-      })
+        str += item.name + "/";
+      });
       inputForm.nativePlace = str;
-      const json = Object.assign(inputForm, {nativePlace: str});
+      const json = Object.assign(inputForm, { nativePlace: str });
       inputForm.value = json;
     };
     //图片上传
@@ -640,30 +928,33 @@ export default {
     const getPlace1 = ({ selectedOptions }) => {
       console.log(selectedOptions);
       showPlace1.value = false;
-      let str1 = ''
-      let str2 = ''
-      selectedOptions.forEach((item)=>{
+      let str1 = "";
+      let str2 = "";
+      selectedOptions.forEach((item) => {
         if (inputForm.currentResidence) {
-          str1  = inputForm.currentResidence
-          str2  = inputForm.currentResidenceId
+          str1 = inputForm.currentResidence;
+          str2 = inputForm.currentResidenceId;
         }
-        str1 += item.name + '/'
-        str2 += item.code + '/'
-      })
+        str1 += item.name + "/";
+        str2 += item.code + "/";
+      });
       inputForm.currentResidence = str1;
       inputForm.currentResidenceId = str2;
-      const json = Object.assign(inputForm, {currentResidence: str1,currentResidenceId:str2});
+      const json = Object.assign(inputForm, {
+        currentResidence: str1,
+        currentResidenceId: str2,
+      });
       inputForm.value = json;
     };
 
     //宗教组织
-    const tissueName = ref('');
+    const tissueName = ref("");
     const checked1 = ref("");
     const tissuelist = ref([]);
     let hs_tissue = ref(false);
     const gettissue = (val) => {
-      tissueName.value = val.organizationName
-      inputForm.zjzz.id = val.id
+      tissueName.value = val.organizationName;
+      inputForm.zjzz.id = val.id;
       checked1.value = val.id;
     };
     const loading1 = ref(false);
@@ -690,9 +981,80 @@ export default {
         });
     };
     //人员类型
-    const personnalType = ref([]);
+    const personnalType = ref("");
+    const checked2 = ref([]);
+    const persontype = [
+      { text: "宗教从业人员", value: "1" },
+      { text: "民族场所从业人员", value: "2" },
+      { text: "教职人员", value: "3" },
+      { text: "固定信徒", value: "4" },
+      { text: "场所居住人员", value: "5" },
+      { text: "境外人员", value: "6" },
+      { text: "非本市人员", value: "7" },
+      { text: "非本教人员", value: "8" },
+      { text: "临时人员", value: "9" },
+      { text: "异常人员", value: "10" },
+      { text: "邪教人员", value: "12" },
+      { text: "管理人员", value: "13" },
+      { text: "全能神离家人员", value: "14" },
+      { text: "全能神骨干人员", value: "15" },
+      { text: "网络运营人员", value: "16" },
+      { text: "涉政有害活动人员", value: "17" },
+      { text: "境内外记者", value: "18" },
+      { text: "境外法轮功骨干人员", value: "19" },
+      { text: "其他邪教骨干人员", value: "20" },
+      { text: "心灵法门骨干人员", value: "21" },
+      { text: "“精神控制”有害培训骨干人员", value: "22" },
+      { text: "重点人员", value: "23" },
+    ];
+    const showZW = ref("");
+    const checkboxRefs = ref([]);
+    let hs_persontype = ref(false);
+    const toggle = (index) => {
+      checkboxRefs.value[index].toggle();
+      let str = "";
+      str = checked2.value.join();
+      const json = Object.assign(inputForm, { personnelType: str });
+      inputForm.value = json;
+      personnalType.value = getValue(checked2.value).join();
+      showZW.value = str;
+    };
+    onBeforeUpdate(() => {
+      checkboxRefs.value = [];
+    });
+    const getValue = (item) => {
+      const type = {
+        1: "宗教从业人员",
+        2: "民族场所从业人员",
+        3: "教职人员",
+        4: "固定信徒",
+        5: "场所居住人员",
+        6: "境外人员",
+        7: "非本市人员",
+        8: "非本教人员",
+        9: "临时人员",
+        10: "异常人员",
+        12: "邪教人员",
+        13: "管理人员",
+        14: "全能神离家人员",
+        15: "全能神骨干人员",
+        16: "网络运营人员",
+        17: "涉政有害活动人员",
+        18: "境内外记者",
+        19: "境外法轮功骨干人员",
+        20: "其他邪教骨干人员",
+        21: "心灵法门骨干人员",
+        22: "“精神控制”有害培训骨干人员",
+        23: "重点人员",
+      };
+      let Array = [];
+      item.forEach((chilr) => {
+        Array.push(type[chilr]);
+      });
+      return Array;
+    };
     // 是否参加非法活动
-    const activitytext = ref('')
+    const activitytext = ref("");
     const activity = [
       { text: "是", value: "0" },
       { text: "否", value: "1" },
@@ -703,9 +1065,71 @@ export default {
       inputForm.bkcheck = selectedOptions[0].value;
       activitytext.value = selectedOptions[0].text;
     };
+    // 教职身份
+    const teachPosition = ref("");
+    const teach = [
+      { text: "阿訇", value: "1" },
+      { text: "牧师", value: "2" },
+      { text: "长老", value: "3" },
+      { text: "传道员", value: "4" },
+      { text: "神学生", value: "5" },
+      { text: "道士(正一)", value: "6" },
+      { text: "比丘", value: "7" },
+      { text: "教师(副牧师)", value: "8" },
+      { text: "比丘尼", value: "9" },
+    ];
+    let hs_teach = ref(false);
+    const getteach = ({ selectedOptions }) => {
+      hs_teach.value = false;
+      // inputForm.bkcheck = selectedOptions[0].value;
+      teachPosition.value = selectedOptions[0].text;
+    };
+    // 宗教教育程度
+    const Religiouseducation = ref("");
+    const Reducation = [
+      { text: "小学", value: "1" },
+      { text: "初中", value: "2" },
+      { text: "中专", value: "3" },
+      { text: "高中", value: "4" },
+      { text: "大专", value: "5" },
+      { text: "本科", value: "6" },
+      { text: "硕士研究生", value: "7" },
+      { text: "博士研究生", value: "8" },
+      { text: "其他", value: "9" },
+    ];
+    let hs_Reducation = ref(false);
+    const getReducation = ({ selectedOptions }) => {
+      hs_Reducation.value = false;
+      // inputForm.bkcheck = selectedOptions[0].value;
+      Religiouseducation.value = selectedOptions[0].text;
+    };
+    // 证书颁发时间
+    const issueDate = ref("");
+    let hs_issueDate = ref(false);
+    const getissueDate = ({ selectedOptions }) => {
+      hs_issueDate.value = false;
 
-
-
+      // inputForm.bkcheck = selectedOptions[0].value;
+      issueDate.value =
+        selectedOptions[0].text +
+        "-" +
+        selectedOptions[1].text +
+        "-" +
+        selectedOptions[2].text;
+    };
+    // 证书颁发时间
+    const recordDate = ref("");
+    let hs_recordDate = ref(false);
+    const getrecordDate = ({ selectedOptions }) => {
+      hs_recordDate.value = false;
+      // inputForm.bkcheck = selectedOptions[0].value;
+      recordDate.value =
+        selectedOptions[0].text +
+        "-" +
+        selectedOptions[1].text +
+        "-" +
+        selectedOptions[2].text;
+    };
     //数据提交
     const submit = () => {
       new PlaceRegister().sava(placeActivity.placeData).then((res) => {
@@ -743,6 +1167,11 @@ export default {
       hs_religious,
       religious,
       getreligious,
+      // 宗教类别2
+      religiousName2,
+      hs_religious2,
+      religious2,
+      getreligious2,
       //所属场所
       locationName,
       checked,
@@ -762,7 +1191,6 @@ export default {
       nativePlace,
       hs_nativePlace,
       getnativePlace,
-
       //宗教组织
       tissueName,
       checked1,
@@ -773,15 +1201,37 @@ export default {
       finished1,
       onLoad1,
       refreshing1,
-
-
-
+      //人员类型
+      checked2,
+      personnalType,
+      persontype,
+      hs_persontype,
+      toggle,
+      checkboxRefs,
+      showZW,
       // 是否参加非法活动
       activity,
       hs_activity,
       getactivity,
       activitytext,
-
+      //教职身份
+      teachPosition,
+      teach,
+      hs_teach,
+      getteach,
+      //宗教教育程度
+      Religiouseducation,
+      Reducation,
+      hs_Reducation,
+      getReducation,
+      //证书颁发时间
+      hs_issueDate,
+      issueDate,
+      getissueDate,
+      //备案时间
+      hs_recordDate,
+      recordDate,
+      getrecordDate,
       //图片上传
       fileList,
       afterRead1,
@@ -821,7 +1271,7 @@ export default {
 .van-radio {
   margin-right: 10px;
 }
-.dialog{
+.dialog {
   width: 100%;
   height: 400px;
   overflow: auto;