Jelajahi Sumber

人员档案新增页面

guoqing 1 tahun lalu
induk
melakukan
9dbe9c9630

+ 23 - 0
src/api/placePerson/placePerson.js

@@ -0,0 +1,23 @@
+import request from "@/utils/request";
+
+export default class placePerson {
+    //民族列表
+    nation() {
+        return request.get(
+            `/sys/dict/getDictValue`, { dictTypeId: '1574569879287033857' }
+        )
+    };
+    //籍贯接口
+    nativePlace(params) {
+        return request.get(
+            `/sys/area/treeData`,
+            params
+        )
+    };
+    zjzz(params) {
+        return request.get(
+            `/zjzz/religion/list`,
+            params
+        )
+    }
+}

+ 10 - 4
src/views/placeManage/placePerson/placePerson.vue

@@ -57,8 +57,11 @@
                 </p>
               </van-col>
               <van-col span="6" style="text-align: right">
-                <span v-if="item.sex == 1" style="color: #36a7f3">男</span>
-                <span v-if="item.sex == 2" style="color: #d3c701">女</span>
+                <span v-if="item.religion == 1" style="color: #25bc5c">伊斯兰教</span>
+                <span v-if="item.religion == 2" style="color: #53b4f4">基督教</span>
+                <span v-if="item.religion == 3" style="color: #36a7f3">天主教</span>
+                <span v-if="item.religion == 4" style="color: #d7cc18">佛教</span>
+                <span v-if="item.religion == 5" style="color: #36a7f3">道教</span>
               </van-col>
             </van-row>
             <van-row>
@@ -108,8 +111,11 @@
                 </p>
               </van-col>
               <van-col span="6" style="text-align: right">
-                <span v-if="item.sex == 1" style="color: #36a7f3">男</span>
-                <span v-if="item.sex == 2" style="color: #d3c701">女</span>
+                <span v-if="item.religion == 1" style="color: #25bc5c">伊斯兰教</span>
+                <span v-if="item.religion == 2" style="color: #53b4f4">基督教</span>
+                <span v-if="item.religion == 3" style="color: #36a7f3">天主教</span>
+                <span v-if="item.religion == 4" style="color: #d7cc18">佛教</span>
+                <span v-if="item.religion == 5" style="color: #36a7f3">道教</span>
               </van-col>
             </van-row>
             <van-row>

+ 449 - 259
src/views/placeManage/placePerson/placePersonAdd.vue

@@ -11,7 +11,7 @@
       <p class="miniTitle">场所信息</p>
       <van-cell-group>
         <van-field
-          v-model="placeActivity.placeData.religiousName"
+          v-model="idType"
           readonly
           label="证件类型:"
           name="validator"
@@ -32,7 +32,7 @@
       </van-cell-group>
       <van-cell-group>
         <van-field
-          v-model="placeActivity.placeData.name"
+          v-model="inputForm.idcard"
           center
           label="证件号码:"
           placeholder="请填写证件号码"
@@ -41,7 +41,7 @@
       </van-cell-group>
       <van-cell-group>
         <van-field
-          v-model="placeActivity.placeData.contact"
+          v-model="inputForm.name"
           center
           label="姓名:"
           placeholder="请填写姓名"
@@ -65,7 +65,7 @@
       </van-cell-group>
       <van-cell-group>
         <van-field
-          v-model="placeActivity.placeData.contactNumber"
+          v-model="inputForm.beforeUsedName"
           center
           label="曾用名:"
           placeholder="请填写曾用名"
@@ -74,45 +74,45 @@
       </van-cell-group>
       <van-cell-group>
         <van-field
-          v-model="placeActivity.siteType"
+          v-model="nationName"
           readonly
           label="民族:"
           placeholder="请选择民族"
           input-align="right"
           right-icon="arrow-down"
-          @click="showPicker1 = true"
+          @click="hs_nation = true"
         />
-        <van-popup v-model:show="showPicker1" round position="bottom">
+        <van-popup v-model:show="hs_nation" round position="bottom">
           <van-picker
             title="民族类型"
-            :columns="placeType"
-            @cancel="showPicker1 = false"
-            @confirm="getplaceType"
+            :columns="nation"
+            @cancel="hs_nation = false"
+            @confirm="getnation"
           />
         </van-popup>
       </van-cell-group>
       <van-cell-group>
         <van-field
-          v-model="placeActivity.siteType"
+          v-model="sexName"
           readonly
           label="性别:"
           placeholder="请选择选择"
           input-align="right"
           right-icon="arrow-down"
-          @click="showPicker1 = true"
+          @click="hs_sex = true"
         />
-        <van-popup v-model:show="showPicker1" round position="bottom">
+        <van-popup v-model:show="hs_sex" round position="bottom">
           <van-picker
             title="选择"
-            :columns="placeType"
-            @cancel="showPicker1 = false"
-            @confirm="getplaceType"
+            :columns="sex"
+            @cancel="hs_sex = false"
+            @confirm="getsex"
           />
         </van-popup>
       </van-cell-group>
       <van-cell-group>
         <van-field
-          v-model="placeActivity.placeData.contactNumber"
+          v-model="inputForm.phone"
           center
           label="手机号:"
           placeholder="请填写手机号"
@@ -121,35 +121,46 @@
       </van-cell-group>
       <van-cell-group>
         <van-field
-          v-model="placeActivity.placeData.contactNumber"
-          center
-          label="籍贯"
-          placeholder="请填写籍贯"
+          v-model="inputForm.nativePlace"
+          readonly
+          label="籍贯"
+          placeholder="请选择籍贯地区"
           input-align="right"
+          right-icon="arrow-down"
+          @click="hs_nativePlace = true"
         />
+        <van-popup v-model:show="hs_nativePlace" round position="bottom">
+          <van-picker
+            title="籍贯"
+            :columns="nativePlace"
+            :columns-field-names="customFieldName"
+            @cancel="hs_nativePlace = false"
+            @confirm="getnativePlace"
+          />
+        </van-popup>
       </van-cell-group>
       <van-cell-group>
         <van-field
-          v-model="placeActivity.siteType"
+          v-model="educationName"
           readonly
           label="教育程度"
           placeholder="请选择教育程度"
           input-align="right"
           right-icon="arrow-down"
-          @click="showPicker1 = true"
+          @click="hs_education = true"
         />
-        <van-popup v-model:show="showPicker1" round position="bottom">
+        <van-popup v-model:show="hs_education" round position="bottom">
           <van-picker
             title="教育程度"
-            :columns="placeType"
-            @cancel="showPicker1 = false"
-            @confirm="getplaceType"
+            :columns="education"
+            @cancel="hs_education = false"
+            @confirm="geteducation"
           />
         </van-popup>
       </van-cell-group>
       <van-cell-group>
         <van-field
-          v-model="placeActivity.placeData.contactNumber"
+          v-model="inputForm.graduatedFrom"
           center
           label="毕业院校:"
           placeholder="请填写毕业院校"
@@ -158,27 +169,27 @@
       </van-cell-group>
       <van-cell-group>
         <van-field
-          v-model="placeActivity.placeData.religiousName"
+          v-model="religiousName"
           readonly
           label="教别:"
           name="validator"
           placeholder="请选择教别"
           input-align="right"
           right-icon="arrow-down"
-          @click="showPicker = true"
+          @click="hs_religious = true"
         />
-        <van-popup v-model:show="showPicker" round position="bottom">
+        <van-popup v-model:show="hs_religious" round position="bottom">
           <van-picker
             title="教别"
-            :columns="places"
-            @cancel="showPicker = false"
-            @confirm="getPlace"
+            :columns="religious"
+            @cancel="hs_religious = false"
+            @confirm="getreligious"
           />
         </van-popup>
       </van-cell-group>
       <van-cell-group>
         <van-field
-          v-model="placeActivity.placeData.contactNumber"
+          v-model="inputForm.religiousAppellation"
           center
           label="宗教称谓:"
           placeholder="请填写宗教称谓"
@@ -187,45 +198,64 @@
       </van-cell-group>
       <van-cell-group>
         <van-field
-          v-model="placeActivity.siteType"
+          v-model="locationName"
           readonly
           label="所属场所:"
           placeholder="请选择所属场所"
           input-align="right"
           right-icon="arrow-down"
-          @click="showPicker1 = true"
-        />
-        <van-popup v-model:show="showPicker1" round position="bottom">
-          <van-picker
-            title="所属场所"
-            :columns="placeType"
-            @cancel="showPicker1 = false"
-            @confirm="getplaceType"
-          />
-        </van-popup>
+          @click="hs_site = true"
+        >
+        </van-field>
+        <van-dialog v-model:show="hs_site" title="所属场所" show-cancel-button>
+          <div class="dialog">
+            <van-list
+              v-model:loading="loading"
+              :finished="finished"
+              finished-text="没有更多了"
+              @load="onLoad"
+            >
+              <van-radio-group v-model="checked">
+                <van-cell-group inset>
+                  <van-cell
+                    v-for="item in sitelist"
+                    :key="item"
+                    :title="item.name"
+                    clickable
+                    @click="getsite(item)"
+                  >
+                    <template #right-icon>
+                      <van-radio :name="item.id" />
+                    </template>
+                  </van-cell>
+                </van-cell-group>
+              </van-radio-group>
+            </van-list>
+          </div>
+        </van-dialog>
       </van-cell-group>
       <van-cell-group>
         <van-field
-          v-model="placeActivity.siteType"
+          v-model="typeOfEmployeesName"
           readonly
           label="任职情况:"
           placeholder="请选择场所任职情况"
           input-align="right"
           right-icon="arrow-down"
-          @click="showPicker1 = true"
+          @click="hs_typeOfEmployees = true"
         />
-        <van-popup v-model:show="showPicker1" round position="bottom">
+        <van-popup v-model:show="hs_typeOfEmployees" round position="bottom">
           <van-picker
             title="任职情况"
-            :columns="placeType"
-            @cancel="showPicker1 = false"
-            @confirm="getplaceType"
+            :columns="typeOfEmployees"
+            @cancel="hs_typeOfEmployees = false"
+            @confirm="gettypeOfEmployees"
           />
         </van-popup>
       </van-cell-group>
       <van-cell-group>
         <van-field
-          v-model="placeActivity.placeData.placeSelectName"
+          v-model="inputForm.currentResidence"
           center
           readonly
           label="现居地:"
@@ -246,21 +276,20 @@
       </van-cell-group>
       <van-cell-group>
         <van-field
-          v-model="placeActivity.placeData.place"
+          v-model="inputForm.place"
           center
           label="详细地址:"
           placeholder="请填写详细场所"
           input-align="right"
         >
           <template #right-icon>
-            <van-icon name="location" @click="getLocation" />
+            <van-icon name="location" @click="getLocation()" />
           </template>
         </van-field>
       </van-cell-group>
-      
       <van-cell-group>
         <van-field
-          v-model="placeActivity.constructionStage"
+          v-model="inputForm.idType"
           readonly
           label="人员类型:"
           placeholder="请选择人员类型"
@@ -279,49 +308,66 @@
       </van-cell-group>
       <van-cell-group>
         <van-field
-        
-          v-model="placeActivity.nature"
+          v-model="tissueName"
           readonly
           label="宗教组织:"
           placeholder="请选择宗教组织"
           input-align="right"
           right-icon="arrow-down"
-          @click="showPicker3 = true"
+          @click="hs_tissue = true"
         />
-        <van-popup v-model:show="showPicker3" round position="bottom">
-          <van-picker
-            title="宗教组织"
-            :columns="property"
-            @cancel="showPicker3 = false"
-            @confirm="getproperty"
-          />
-        </van-popup>
+        <van-dialog v-model:show="hs_tissue" title="所属场所" show-cancel-button>
+          <div class="dialog">
+            <van-list
+              v-model:loading="loading1"
+              :finished="finished1"
+              finished-text="没有更多了"
+              @load="onLoad1"
+            >
+              <van-radio-group v-model="checked1">
+                <van-cell-group inset>
+                  <van-cell
+                    v-for="item in tissuelist"
+                    :key="item"
+                    :title="item.organizationName"
+                    clickable
+                    @click="gettissue(item)"
+                  >
+                    <template #right-icon>
+                      <van-radio :name="item.id" />
+                    </template>
+                  </van-cell>
+                </van-cell-group>
+              </van-radio-group>
+            </van-list>
+          </div>
+        </van-dialog>
       </van-cell-group>
       <van-cell-group>
         <van-field
-          v-model="placeActivity.placeData.peopleThreshold"
+          v-model="inputForm.zjzzJob"
           center
-          label="任职情况:"
+          label="团体任职:"
           placeholder="请填写团体任职情况"
           input-align="right"
         />
       </van-cell-group>
-            <van-cell-group>
+      <van-cell-group>
         <van-field
-          v-model="placeActivity.nature"
+          v-model="activitytext"
           readonly
           label="非法活动参加:"
           placeholder="请选择是否参加非法活动"
           input-align="right"
           right-icon="arrow-down"
-          @click="showPicker3 = true"
+          @click="hs_activity = true"
         />
-        <van-popup v-model:show="showPicker3" round position="bottom">
+        <van-popup v-model:show="hs_activity" round position="bottom">
           <van-picker
-            title="宗教组织"
-            :columns="property"
-            @cancel="showPicker3 = false"
-            @confirm="getproperty"
+            title="选择是否参加"
+            :columns="activity"
+            @cancel="hs_activity = false"
+            @confirm="getactivity"
           />
         </van-popup>
       </van-cell-group>
@@ -334,147 +380,224 @@
 </template>
 
 <script>
-import { reactive, ref } from "vue";
-import ManageList from "../ManageList.vue";
-import ManageList2 from "../ManageList2.vue";
+import { onMounted, reactive, ref } from "vue";
+import placePerson from "@/api/placePerson/placePerson";
 import PlaceRegister from "@/api/placeRegister/placeRegister";
 import tools from "@/api/sys/tools";
 export default {
-  components: { ManageList, ManageList2 },
   setup() {
     const onClickLeft = () => {
       history.back();
     };
     // 导航栏颜色
     const selectColor = ref(window.localStorage.getItem("MZ_COLOR"));
-    //场所录入
-    const placeActivity = reactive({
-      placeData: {
-        religiousType: "", //所属宗教
-        name: "", //场所名称
-        contact: "", //场所联系人
-        contactNumber: "", //联系电话
-        placeSelectId: "", //场所地点id
-        placeSelectName: "", //场所地点
-        place: "", //详细场所地点
-        siteType: "", //场所类型
-        constructionStage: "", //场所建设阶段
-        nature: "", //场所性质
-        religiousDeptManaUser: "", //宗教部门管理人员id
-
-        securityDeptManaUser: "", //公安部门管理人员id
-
-        peopleThreshold: "", //场所活动人数
-        approvalProcedures: "", //场所建设审批手续
-        etiquetteSpace: "", //宗教礼仪空间(附件)
-        filingNo: "", //场所备案号
-        latitude: "", //经度
-        longitude: "", //维度
-        mainRoads: "", //出入口主要道路
-        placeSelectType3: "",
-        placeSelectType4: "",
-        placeSelectType5: "",
-        placeSelectType6: "",
-        plan: "", //场所规划
-        publicArea: "", //外围公共区域
-        religiousName: "", //教别名称
-        remake: "", //备注
-        scenesImage: "", //内外景图片地址
-        tyshxydm: "", //统一社会代码
-        website: "", //网址
-        state: "1", //状态
+    //人员添加
+    const inputForm = ref({
+      id: "",
+      userManagenmetDetailsDTOList: [],
+      name: "",
+      sex: "",
+      idType: "",
+      idcard: "",
+      phone: "",
+      location: {
+        id: "",
       },
-      inputForm:{
-        id: '',
-          userManagenmetDetailsDTOList: [],
-          name: '',
-          sex: '',
-          idType: '',
-          idcard: '',
-          phone: '',
-          location: {
-            id: ''
-          },
-          typeOfEmployees: '',
-          workPicture: '',
-          nativePlace: '',
-          currentResidence: '',
-          currentResidenceDetail: '',
-          personnelType: '',
-          currentResidenceId: '100000/320000/320900',
-          currentResidenceLevel1: '100000',
-          currentResidenceLevel2: '320000',
-          currentResidenceLevel3: '320900',
-          currentResidenceLevel4: '',
-          currentResidenceLevel5: '',
-          currentResidenceLevel6: '',
-          beforeUsedName: '',
-          nation: '',
-          religion: '',
-          religiousAppellation: '',
-          nationalEducationLevel: '',
-          graduatedFrom: '',
-          zjzzJob:'',
-          zjzz: {
-            id: ''
-          },
-          bkcheck:''
+      typeOfEmployees: "",
+      workPicture: "",
+      nativePlace: "",
+      currentResidence: "",
+      currentResidenceDetail: "",
+      personnelType: "",
+      currentResidenceId: "100000/320000/320900",
+      currentResidenceLevel1: "100000",
+      currentResidenceLevel2: "320000",
+      currentResidenceLevel3: "320900",
+      currentResidenceLevel4: "",
+      currentResidenceLevel5: "",
+      currentResidenceLevel6: "",
+      beforeUsedName: "",
+      nation: "",
+      religion: "",
+      religiousAppellation: "",
+      nationalEducationLevel: "",
+      graduatedFrom: "",
+      zjzzJob: "",
+      zjzz: {
+        id: "",
       },
-      religiousDeptManaUserName: "", //宗教部门管理人员
-      securityDeptManaUserName: "", //公安部门管理人员
-      placeSelectName: "", //场所地点
-      siteType: "", //场所类型
-      constructionStage: "", //场所建设阶段
-      nature: "", //场所性质
+      bkcheck: "",
     });
-    // 宗教名称
+    const locationName = ref('')
+    onMounted(() => {
+      //民族字段接口
+      new placePerson().nation().then((res) => {
+        res.forEach((item) => {
+          nation.value.push({
+            text: item.label,
+            value: item.value,
+          });
+        });
+      });
+      //籍贯接口
+      new placePerson().nativePlace().then((res)=>{
+        nativePlace.value.push(...res);
+        options.value.push(...res)
+      })
+    });
+    // 证件类型
     const places = [
-      { text: "伊斯兰教", value: " 1" },
-      { text: "基督教", value: "2" },
-      { text: "天主教", value: "3" },
-      { text: "佛教", value: "4" },
-      { text: "道教", value: "5" },
+      { text: "身份证", value: " 1" },
+      { text: "护照", value: "2" },
+      { text: "港澳通行证", value: "3" },
+      { text: "其他", value: "4" },
     ];
+    const idType = ref('');
     let showPicker = ref(false);
     const getPlace = ({ selectedOptions }) => {
       showPicker.value = false;
-      placeActivity.placeData.religiousType = selectedOptions[0].value;
-      placeActivity.placeData.religiousName = selectedOptions[0].text;
+      inputForm.idType = selectedOptions[0].value;
+      idType.value = selectedOptions[0].text;
+    };
+    // 民族
+    const nationName = ref('');
+    const nation = ref([]);
+    let hs_nation = ref(false);
+    const getnation = ({ selectedOptions }) => {
+      hs_nation.value = false;
+      inputForm.nation = selectedOptions[0].value;
+      nationName.value = selectedOptions[0].text;
+    };
+    // 性别
+    const sexName = ref('')
+    const sex = [
+      { text: "男", value: "0" },
+      { text: "女", value: "1" },
+    ];
+    let hs_sex = ref(false);
+    const getsex = ({ selectedOptions }) => {
+      hs_sex.value = false;
+      inputForm.sex = selectedOptions[0].value;
+      sexName.value = selectedOptions[0].text;
     };
-    // 场所类型
-    const placeType = [
-      { text: "线上", value: "0" },
-      { text: "线下", value: "1" },
+    // 教育程度
+    const educationName = ref('');
+    const education = [
+      { 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 showPicker1 = ref(false);
-    const getplaceType = ({ selectedOptions }) => {
-      showPicker1.value = false;
-      placeActivity.placeData.siteType = selectedOptions[0].value;
-      placeActivity.siteType = selectedOptions[0].text;
+    let hs_education = ref(false);
+    const geteducation = ({ selectedOptions }) => {
+      hs_education.value = false;
+      inputForm.nationalEducationLevel = selectedOptions[0].value;
+      educationName.value = selectedOptions[0].text;
     };
-    // 场所建设
-    const construction = [
-      { text: "筹备", value: "0" },
-      { text: "建设完成", value: "1" },
+    // 宗教类别
+    const religiousName = ref('')
+    const religious = [
+      { text: "伊斯兰教", value: "1" },
+      { text: "基督教", value: "2" },
+      { text: "天主教", value: "3" },
+      { text: "佛教", value: "4" },
+      { text: "道教", value: "5" },
     ];
-    let showPicker2 = ref(false);
-    const getConstruction = ({ selectedOptions }) => {
-      showPicker2.value = false;
-      placeActivity.placeData.constructionStage = selectedOptions[0].value;
-      placeActivity.constructionStage = selectedOptions[0].text;
+    let hs_religious = ref(false);
+    const getreligious = ({ selectedOptions }) => {
+      hs_religious.value = false;
+      inputForm.religion = selectedOptions[0].value;
+      religiousName.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
+      checked.value = val.id;
+    };
+    const loading = ref(false);
+    const finished = ref(false);
+    const refreshing = ref(false);
+    let index = 0;
+    const onLoad = () => {
+      loading.value = true;
+      finished.value = false;
+      // 异步更新数据
+      new PlaceRegister()
+        .religiousList({
+          current: index + 1,
+          size: 10,
+        })
+        .then(({ records, pages }) => {
+          sitelist.value = sitelist.value.concat(records);
+          // 加载状态结束
+          loading.value = false;
+          if (index + 1 >= pages) {
+            finished.value = true;
+          }
+          index++;
+        });
     };
-    // 场所性质
-    const property = [
-      { text: "固定场所", value: "0" },
-      { text: "寺观教堂", value: "1" },
+    // 场所任职情况
+    const typeOfEmployeesName = ref('');
+    const typeOfEmployees = [
+      { 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: "11" },
+      { 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" },
+      { text: "组长", value: "24" },
+      { text: "组长及讲道", value: "25" },
     ];
-    let showPicker3 = ref(false);
-    const getproperty = ({ selectedOptions }) => {
-      showPicker3.value = false;
-      placeActivity.placeData.nature = selectedOptions[0].value;
-      placeActivity.nature = selectedOptions[0].text;
+    let hs_typeOfEmployees = ref(false);
+    const gettypeOfEmployees = ({ selectedOptions }) => {
+      hs_typeOfEmployees.value = false;
+      inputForm.typeOfEmployees = selectedOptions[0].value;
+      typeOfEmployeesName.value = selectedOptions[0].text;
     };
 
+    //籍贯
+    const nativePlace = ref([]);
+    let hs_nativePlace = ref(false);
+    const getnativePlace = ({ selectedOptions }) => {
+      hs_nativePlace.value = false;
+        let str = ''
+      selectedOptions.forEach((item)=>{
+        if (inputForm.nativePlace) {
+          str  = inputForm.nativePlace
+        }
+        str += item.name + '/'
+      })
+      inputForm.nativePlace = str;
+      const json = Object.assign(inputForm, {nativePlace: str});
+      inputForm.value = json;
+    };
     //图片上传
     let fileList = ref([]);
     let fileImg = ref([]);
@@ -503,7 +626,7 @@ export default {
     //详细地址定位
     const getLocation = () => {
       xm.getLocation().then((data) => {
-        placeActivity.placeData.place = data.POIName;
+        inputForm.currentResidenceDetail = data.POIName;
       });
     };
     // 地区选择
@@ -512,57 +635,77 @@ export default {
       text: "name",
       value: "id",
     };
-    // 选项列表,children 代表子选项,支持多级嵌套
     const options = ref([]);
-    // 获取地区数据树
-    new PlaceRegister().treeDate().then((res) => {
-      options.value.push(...res);
-    });
     let showPlace1 = ref(false);
     const getPlace1 = ({ selectedOptions }) => {
+      console.log(selectedOptions);
       showPlace1.value = false;
-      placeActivity.placeData.placeSelectName =
-        selectedOptions[0].name +
-        "/" +
-        selectedOptions[1].name +
-        "/" +
-        selectedOptions[2].name;
-      placeAddress.value =
-        selectedOptions[0].id +
-        "/" +
-        selectedOptions[1].id +
-        "/" +
-        selectedOptions[2].id;
-      placeActivity.placeData.placeSelectType3 = selectedOptions[0].id;
-      placeActivity.placeData.placeSelectType4 = selectedOptions[1].id;
-      placeActivity.placeData.placeSelectType5 = selectedOptions[2].id;
-      placeActivity.placeData.placeSelectId = placeAddress.value;
-    };
-    //人员选择
-    let showPerson = ref(false);
-    let showReport = ref(false);
-    let list = {
-      value: [],
-      type: "",
-    };
-    let list2 = {
-      value: [],
-      type: "",
-    };
-    const selected = (val) => {
-      list.value = val;
+      let str1 = ''
+      let str2 = ''
+      selectedOptions.forEach((item)=>{
+        if (inputForm.currentResidence) {
+          str1  = inputForm.currentResidence
+          str2  = inputForm.currentResidenceId
+        }
+        str1 += item.name + '/'
+        str2 += item.code + '/'
+      })
+      inputForm.currentResidence = str1;
+      inputForm.currentResidenceId = str2;
+      const json = Object.assign(inputForm, {currentResidence: str1,currentResidenceId:str2});
+      inputForm.value = json;
     };
-    const selected2 = (val) => {
-      list2.value = val;
+
+    //宗教组织
+    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
+      checked1.value = val.id;
     };
-    const reselected = () => {
-      placeActivity.placeData.religiousDeptManaUser = list.value.id;
-      placeActivity.religiousDeptManaUserName = list.value.name;
+    const loading1 = ref(false);
+    const finished1 = ref(false);
+    const refreshing1 = ref(false);
+    let index1 = 0;
+    const onLoad1 = () => {
+      loading1.value = true;
+      finished1.value = false;
+      // 异步更新数据
+      new placePerson()
+        .zjzz({
+          current: index1 + 1,
+          size: 10,
+        })
+        .then(({ records, pages }) => {
+          tissuelist.value = tissuelist.value.concat(records);
+          // 加载状态结束
+          loading1.value = false;
+          if (index1 + 1 >= pages) {
+            finished1.value = true;
+          }
+          index1++;
+        });
     };
-    const reselected2 = () => {
-      placeActivity.placeData.securityDeptManaUser = list2.value.id;
-      placeActivity.securityDeptManaUserName = list2.value.name;
+    //人员类型
+    const personnalType = ref([]);
+    // 是否参加非法活动
+    const activitytext = ref('')
+    const activity = [
+      { text: "是", value: "0" },
+      { text: "否", value: "1" },
+    ];
+    let hs_activity = ref(false);
+    const getactivity = ({ selectedOptions }) => {
+      hs_activity.value = false;
+      inputForm.bkcheck = selectedOptions[0].value;
+      activitytext.value = selectedOptions[0].text;
     };
+
+
+
     //数据提交
     const submit = () => {
       new PlaceRegister().sava(placeActivity.placeData).then((res) => {
@@ -573,23 +716,72 @@ export default {
     };
 
     return {
-      placeActivity,
-      // 活动场所
+      //人员添加
+      inputForm,
+      // 证件类型
+      idType,
       showPicker,
       places,
       getPlace,
-      //场所类型
-      showPicker1,
-      placeType,
-      getplaceType,
-      //场所建设阶段
-      showPicker2,
-      construction,
-      getConstruction,
-      //场所性质
-      showPicker3,
-      property,
-      getproperty,
+      //民族
+      nationName,
+      hs_nation,
+      nation,
+      getnation,
+      //性别
+      sexName,
+      hs_sex,
+      sex,
+      getsex,
+      // 教育程度
+      educationName,
+      hs_education,
+      education,
+      geteducation,
+      // 宗教类别
+      religiousName,
+      hs_religious,
+      religious,
+      getreligious,
+      //所属场所
+      locationName,
+      checked,
+      hs_site,
+      getsite,
+      sitelist,
+      loading,
+      finished,
+      onLoad,
+      refreshing,
+      //场所任职情况
+      typeOfEmployeesName,
+      hs_typeOfEmployees,
+      typeOfEmployees,
+      gettypeOfEmployees,
+      //籍贯
+      nativePlace,
+      hs_nativePlace,
+      getnativePlace,
+
+      //宗教组织
+      tissueName,
+      checked1,
+      hs_tissue,
+      gettissue,
+      tissuelist,
+      loading1,
+      finished1,
+      onLoad1,
+      refreshing1,
+
+
+
+      // 是否参加非法活动
+      activity,
+      hs_activity,
+      getactivity,
+      activitytext,
+
       //图片上传
       fileList,
       afterRead1,
@@ -605,13 +797,6 @@ export default {
       showPlace1,
       getPlace1,
       options,
-      //人员选择
-      showPerson,
-      showReport,
-      selected,
-      selected2,
-      reselected,
-      reselected2,
       //数据提交
       submit,
       selectColor,
@@ -636,4 +821,9 @@ export default {
 .van-radio {
   margin-right: 10px;
 }
+.dialog{
+  width: 100%;
+  height: 400px;
+  overflow: auto;
+}
 </style>

+ 61 - 49
src/views/placeManage/placePerson/placePersoninfo.vue

@@ -40,8 +40,8 @@
                   input-align="right"
                 >
                   <template #input>
-                    <template v-if="data.sex == 1"></template>
-                    <template v-if="data.sex == 0"></template>
+                    <template v-if="data.sex == 1"></template>
+                    <template v-if="data.sex == 0"></template>
                   </template>
                 </van-field>
               </van-row>
@@ -144,9 +144,13 @@
               <template #input>
                 <template v-if="data.typeOfEmployees == 1">场所负责人</template>
                 <template v-if="data.typeOfEmployees == 2">堂委</template>
-                <template v-if="data.typeOfEmployees == 3">主要教职人员</template>
+                <template v-if="data.typeOfEmployees == 3"
+                  >主要教职人员</template
+                >
                 <template v-if="data.typeOfEmployees == 4">财会</template>
-                <template v-if="data.typeOfEmployees == 5">传道(已退休)</template>
+                <template v-if="data.typeOfEmployees == 5"
+                  >传道(已退休)</template
+                >
                 <template v-if="data.typeOfEmployees == 6">保安</template>
                 <template v-if="data.typeOfEmployees == 7">信息审核员</template>
                 <template v-if="data.typeOfEmployees == 8">常住</template>
@@ -166,7 +170,9 @@
                 <template v-if="data.typeOfEmployees == 22">知客</template>
                 <template v-if="data.typeOfEmployees == 23">住持</template>
                 <template v-if="data.typeOfEmployees == 24">组长</template>
-                <template v-if="data.typeOfEmployees == 25">组长及讲道</template>
+                <template v-if="data.typeOfEmployees == 25"
+                  >组长及讲道</template
+                >
               </template>
             </van-field>
           </van-row>
@@ -215,60 +221,27 @@
         </van-col>
       </van-row>
       <p class="miniTitle">拓展信息</p>
-      <van-row class="item">
-        <van-col span="24">
-          <van-row justify="space-between">
-            <van-field
-              v-model="data.currentResidence"
-              center
-              readonly
-              clearable
-              label="教职身份:"
-              input-align="right"
-            />
-          </van-row>
-        </van-col>
-      </van-row>
-      <van-row class="item">
-        <van-col span="24">
-          <van-row justify="space-between">
-            <van-field
-              v-model="data.currentResidence"
-              center
-              readonly
-              clearable
-              label="教职身份:"
-              input-align="right"
-              
-            />
-          </van-row>
-        </van-col>
-      </van-row>
-      <van-row class="item">
-        <van-col span="24">
-          <van-row justify="space-between">
-            <van-field
-              v-model="data.currentResidence"
-              center
-              readonly
-              clearable
-              label="教职身份:"
-              input-align="right"
-            />
-          </van-row>
-        </van-col>
-      </van-row>
+        <van-row class="item" v-for="(item, index) in expansion" :key="index">
+          <van-col span="24">
+            <van-row justify="space-between" style="padding: 10px;font-size: 12px;">
+              <span style="font-weight: 700;">{{ item.chineseName }}</span>
+              <span>{{ getValue(item) }}</span>
+            </van-row>
+          </van-col>
+        </van-row>
     </div>
   </div>
 </template>
 
 <script>
 import { useRouter } from "vue-router";
-import { onMounted,ref } from "vue";
+import { onMounted, ref } from "vue";
 import $base from "@/utils/config";
+import UserManage from "@/api/user/UserManage";
 export default {
   setup() {
     const data = ref({});
+    const expansion = ref([]);
     // 导航栏颜色
     const selectColor = ref(window.localStorage.getItem("MZ_COLOR"));
     //数据接收
@@ -276,7 +249,44 @@ export default {
     onMounted(() => {
       var item = JSON.parse(router.currentRoute.value.query.data);
       data.value = item;
+      let id = item.id;
+      new UserManage().queryById(id).then((res) => {
+        expansion.value = res.userManagenmetDetailsDTOList;
+      });
     });
+
+    const getValue = (item) => {
+      if (item.chineseName === "教职身份") {
+        const type = {
+          1: "阿訇",
+          2: "牧师",
+          3: "长老",
+          4: "传道员",
+          5: "神学生",
+          6: "道士(正一)",
+          7: "比丘",
+          8: "教师(副牧师)",
+          9: "比丘尼",
+        };
+        return type[item.value];
+      }
+      if (item.chineseName === "宗教教育程度") {
+        const type = {
+          1: "小学",
+          2: "初中",
+          3: "中专",
+          4: "高中",
+          5: "大专",
+          6: "本科",
+          7: "硕士研究生",
+          8: "博士研究生",
+          9: "其他",
+        };
+        return type[item.value];
+      }
+      return item.value;
+    };
+
     //返回
     const onClickLeft = () => {
       history.back();
@@ -285,6 +295,8 @@ export default {
       onClickLeft,
       data,
       selectColor,
+      expansion,
+      getValue,
     };
   },
 };

+ 1 - 0
src/views/placeManage/placeRegister/placeRegister.vue

@@ -492,5 +492,6 @@ export default {
 }
 .van-radio {
   margin-right: 10px;
+  
 }
 </style>

+ 2 - 1
src/views/placeManage/placeRegister/placeRegisterList.vue

@@ -111,7 +111,7 @@ export default {
     const loading = ref(false);
     const finished = ref(false);
     const refreshing = ref(false);
-    
+
     let index = 0;
     const onLoad = () => {
       loading.value = true;
@@ -121,6 +121,7 @@ export default {
         .religiousList({
           current: index + 1,
           size: 11,
+          ...searchForm.value
         })
         .then(({ records, pages }) => {
           list.value= list.value.concat(records);