Эх сурвалжийг харах

Merge remote-tracking branch 'origin/master'

LuChongMei 1 жил өмнө
parent
commit
f0145b1964

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

@@ -0,0 +1,30 @@
+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
+        )
+    };
+    //人员新增
+    save(inputForm) {
+        return request.post(
+            `/user/usermanagement/userManagement/save`,
+            inputForm
+        )
+    }
+}

+ 1 - 0
src/api/placeRegister/placeRegister.js

@@ -41,4 +41,5 @@ export default class placeRegister {
             params
         )
     }
+
 }

+ 8 - 0
src/api/tabletManage/TabletServer.js

@@ -1,9 +1,17 @@
 import request from "@/utils/request";
 export default class TabletServer {
+    // 获取牌位列表
     list(params) {
         return request.get(
             `/placememorialtablets/placeMemorialTablets/list`,
             params
         )
     };
+    // 提交
+    save(inputForm) {
+        return request.post(
+            `/placememorialtablets/placeMemorialTablets/save`,
+            inputForm
+        )
+    };
 }

+ 3 - 2
src/config/index.js

@@ -1,10 +1,11 @@
 var defaultConfig = {
 
-    baseUrl : 'http://2.142.215.98:8010/hs',//政务网环境地址
+    // baseUrl : 'http://2.142.215.98:8010/hs',//政务网环境地址
 
     //baseUrl : 'http://192.168.1.102:3000',
 
-    baseUrl: 'http://localhost:3000',
+    // baseUrl: 'http://localhost:3000',
+    baseUrl: '/api',
 
     timeout: '50000',
 

+ 18 - 0
src/router/index.js

@@ -259,6 +259,15 @@ const routes = [{
             isShowTarbar: false,
         }
     },
+    {
+        path: '/placePersonAdd',
+        name: 'placePersonAdd',
+        component: () =>
+            import ('../views/placeManage/placePerson/placePersonAdd.vue'),
+        meta: {
+            isShowTarbar: false,
+        }
+    },
     {
         path: '/placePersoninfo',
         name: 'placePersoninfo',
@@ -304,6 +313,15 @@ const routes = [{
             isShowTarbar: false,
         }
     },
+    {
+        path: '/placeTabletAdd',
+        name: 'placeTabletAdd',
+        component: () =>
+            import ('../views/placeManage/placeTablet/placeTabletAdd.vue'),
+        meta: {
+            isShowTarbar: false,
+        }
+    },
     {
         path: '/placeTabletInfo',
         name: 'placeTabletInfo',

+ 167 - 147
src/views/placeManage/placePerson/placePerson.vue

@@ -4,8 +4,13 @@
     title="人员档案管理"
     left-arrow
     @click-left="onClickLeft"
+    @click-right="onClickright"
     :style="{ 'background-color': selectColor }"
-  />
+  >
+    <template #right>
+      <van-icon name="plus" size="18" />
+    </template>
+  </van-nav-bar>
   <div class="main">
     <div class="serach">
       <van-search
@@ -28,123 +33,114 @@
         </template>
       </van-search>
     </div>
+
     <div class="PersonList" v-if="value1 == 0 || value == ''">
-      <div v-if="dataList.length>0">
-        <div
-        class="PersonItem"
-        v-for="item in dataList"
-        :key="item.id"
-        @click="goPlacePersonInfo(item)"
-      >
-        <van-row>
-          <van-col span="18">
-            <p>
-              {{ item.name }}(<span style="color: #36a7f3">{{
-                item.idcard
-              }}</span
-              >)
-            </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>
-          </van-col>
-        </van-row>
-        <van-row>
-          <van-col span="18">
-            <span style="color: #a2a2a2" v-if="item.locationName">{{
-              item.locationName
-            }}</span>
-          </van-col>
-          <van-col span="6" style="text-align: right; font-size: 12px">
-            <span v-if="item.personnelType == 1">宗教从业人员</span>
-            <span v-else-if="item.personnelType == 2">民族场所从业人员</span>
-            <span v-else-if="item.personnelType == 3">教职人员</span>
-            <span v-else-if="item.personnelType == 4">固定信徒</span>
-            <span v-else-if="item.personnelType == 5">场所居住人员</span>
-            <span v-else-if="item.personnelType == 6">境外人员</span>
-            <span v-else-if="item.personnelType == 7">非本市人员</span>
-            <span v-else-if="item.personnelType == 8">非本教人员</span>
-            <span v-else-if="item.personnelType == 9">新增信徒人员</span>
-            <span v-else-if="item.personnelType == 10">临时人员</span>
-            <span v-else-if="item.personnelType == 11">异常人员</span>
-            <span v-else-if="item.personnelType == 12">邪教人员</span>
-            <span v-else-if="item.personnelType == 13">管理人员</span>
-            <span v-else-if="item.personnelType == 14">全能神离家人员</span>
-            <span v-else-if="item.personnelType == 15">全能神骨干人员</span>
-            <span v-else-if="item.personnelType == 16">网络运营人员</span>
-            <span v-else-if="item.personnelType == 17">涉政有害活动人员</span>
-            <span v-else-if="item.personnelType == 18">境内外记者</span>
-            <span v-else-if="item.personnelType == 19">境外法轮功骨干人员</span>
-            <span v-else-if="item.personnelType == 20">其他邪教骨干人员</span>
-            <span v-else-if="item.personnelType == 21">心灵法门骨干人员</span>
-            <span v-else>“精神控制”有害培训骨干人员</span>
-          </van-col>
-        </van-row>
-      </div>
-      </div>
-      <div style="position: relative;width:100%;text-align:center;height:100%" v-if="PersonList.length<=0" >
-        <span class="tishi">暂无人员信息</span>
-      </div>
+      <van-pull-refresh v-model="refreshing" @refresh="onRefresh">
+        <van-list
+          v-model:loading="loading"
+          :finished="finished"
+          finished-text="没有更多了"
+          @load="onLoad"
+        >
+          <van-swipe-cell
+            v-for="item in dataList"
+            :key="item"
+          >
+            <div class="PersonItem" @click="goPlacePersonInfo(item)">
+              <van-row>
+              <van-col span="18">
+                <p>
+                  {{ item.name }}(<span style="color: #36a7f3">{{
+                    item.idcard
+                  }}</span
+                  >)
+                </p>
+              </van-col>
+              <van-col span="6" style="text-align: right">
+                <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>
+              <van-col span="18">
+                <span style="color: #a2a2a2" v-if="item.locationName">{{
+                  item.locationName
+                }}</span>
+              </van-col>
+              <van-col
+                span="6"
+                style="
+                  text-align: right;
+                  font-size: 12px;
+                  white-space: nowrap;
+                  overflow: hidden;
+                  text-overflow: ellipsis;
+                "
+              >
+                <span>{{ item.personnelTypeName }}</span>
+              </van-col>
+            </van-row>
+            </div>
+          </van-swipe-cell>
+        </van-list>
+      </van-pull-refresh>
     </div>
     <div class="PersonList" v-if="value1 != 0 && value != ''">
-      <div v-if="PersonList.length>0">
-        <div
-        class="PersonItem"
-        v-for="item in PersonList"
-        :key="item.id"
-        @click="goPlacePersonInfo(item)"
-      >
-        <van-row>
-          <van-col span="18">
-            <p>
-              {{ item.name }}(<span style="color: #36a7f3">{{
-                item.idcard
-              }}</span
-              >)
-            </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>
-          </van-col>
-        </van-row>
-        <van-row>
-          <van-col span="18">
-            <span style="color: #a2a2a2" v-if="item.locationName">{{
-              item.locationName
-            }}</span>
-          </van-col>
-          <van-col span="6" style="text-align: right; font-size: 12px">
-            <span v-if="item.personnelType == 1">宗教从业人员</span>
-            <span v-else-if="item.personnelType == 2">民族场所从业人员</span>
-            <span v-else-if="item.personnelType == 3">教职人员</span>
-            <span v-else-if="item.personnelType == 4">固定信徒</span>
-            <span v-else-if="item.personnelType == 5">场所居住人员</span>
-            <span v-else-if="item.personnelType == 6">境外人员</span>
-            <span v-else-if="item.personnelType == 7">非本市人员</span>
-            <span v-else-if="item.personnelType == 8">非本教人员</span>
-            <span v-else-if="item.personnelType == 9">新增信徒人员</span>
-            <span v-else-if="item.personnelType == 10">临时人员</span>
-            <span v-else-if="item.personnelType == 11">异常人员</span>
-            <span v-else-if="item.personnelType == 12">邪教人员</span>
-            <span v-else-if="item.personnelType == 13">管理人员</span>
-            <span v-else-if="item.personnelType == 14">全能神离家人员</span>
-            <span v-else-if="item.personnelType == 15">全能神骨干人员</span>
-            <span v-else-if="item.personnelType == 16">网络运营人员</span>
-            <span v-else-if="item.personnelType == 17">涉政有害活动人员</span>
-            <span v-else-if="item.personnelType == 18">境内外记者</span>
-            <span v-else-if="item.personnelType == 19">境外法轮功骨干人员</span>
-            <span v-else-if="item.personnelType == 20">其他邪教骨干人员</span>
-            <span v-else-if="item.personnelType == 21">心灵法门骨干人员</span>
-            <span v-else>“精神控制”有害培训骨干人员</span>
-          </van-col>
-        </van-row>
-      </div>
-      </div>
-      <div style="position: relative;width:100%;text-align:center;height:100%" v-if="PersonList.length<=0" >
-        <span class="tishi">暂无人员信息</span>
-      </div>
+      <van-pull-refresh v-model="refreshing" @refresh="onRefresh">
+        <van-list
+          v-model:loading="loading"
+          :finished="finished"
+          finished-text="没有更多了"
+          @load="onLoad"
+        >
+          <van-swipe-cell
+            v-for="item in PersonList"
+            :key="item"
+          >
+            <div class="PersonItem" @click="goPlacePersonInfo(item)">
+              <van-row >
+              <van-col span="18">
+                <p>
+                  {{ item.name }}(<span style="color: #36a7f3">{{
+                    item.idcard
+                  }}</span
+                  >)
+                </p>
+              </van-col>
+              <van-col span="6" style="text-align: right">
+                <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>
+              <van-col span="18">
+                <span style="color: #a2a2a2" v-if="item.locationName">{{
+                  item.locationName
+                }}</span>
+              </van-col>
+              <van-col
+                span="6"
+                style="
+                  text-align: right;
+                  font-size: 12px;
+                  white-space: nowrap;
+                  overflow: hidden;
+                  text-overflow: ellipsis;
+                "
+              >
+                <span>{{ item.personnelTypeName }}</span>
+              </van-col>
+            </van-row>
+            </div>
+          </van-swipe-cell>
+        </van-list>
+      </van-pull-refresh>
     </div>
   </div>
 </template>
@@ -155,16 +151,24 @@ import { useRouter } from "vue-router";
 import UserManage from "@/api/user/UserManage";
 export default {
   setup() {
+    const searchForm = ref({
+      name: "",
+      sex: "",
+      idType: "",
+      idcard: "",
+      phone: "",
+      location: {
+        id: "",
+      },
+      typeOfEmployees: "",
+      personnelType: "",
+      religion: "",
+      sjfw: [],
+      nativePlace: "",
+      currentResidence: "",
+    });
     const value = ref("");
     const value1 = ref(0);
-    // const option1 = [
-    //   { text: "所有教别", value: 0 },
-    //   { text: "伊斯兰教", value: 1 },
-    //   { text: "基督教", value: 2 },
-    //   { text: "天主教", value: 3 },
-    //   { text: "佛教", value: 4 },
-    //   { text: "道教", value: 5 },
-    // ];
     // 导航栏颜色
     const selectColor = ref(window.localStorage.getItem("MZ_COLOR"));
     const option1 = [
@@ -178,22 +182,36 @@ export default {
     //数据获取
     const loading = ref(false);
     const finished = ref(false);
-    new UserManage()
-      .list({
-        current: 1,
-        size: 10,
-      })
-      .then((res) => {
-        let list2 = [];
-        list2.push(...res.records);
-        list2.forEach((n1) => {
-          let id = n1.id;
-          new UserManage().queryById(id).then((LP) => {
-            n1.userManagenmetDetailsDTOList = LP.userManagenmetDetailsDTOList;
-          });
+    const refreshing = ref(false);
+    let index = 0;
+    const onLoad = () => {
+      loading.value = true;
+      finished.value = false;
+      new UserManage()
+        .list({
+          current: index + 1,
+          size: 11,
+          ...searchForm.value,
+        })
+        .then(({ records, pages }) => {
+          dataList.value = dataList.value.concat(records);
+          // 加载状态结束
+          loading.value = false;
+          if (index + 1 >= pages) {
+            finished.value = true;
+          }
+          index++;
         });
-        dataList.value = list2;
-      });
+    };
+    const onRefresh = () => {
+      // 清空列表数据
+      finished.value = false;
+
+      // 重新加载数据
+      // 将 loading 设置为 true,表示处于加载状态
+      loading.value = true;
+      onLoad();
+    };
     //跳转
     let router = useRouter();
     const goPlacePersonInfo = (item) => {
@@ -201,8 +219,13 @@ export default {
       router.push({
         path: "/placePersoninfo",
         query: { data: data },
+        
       });
     };
+    //进入场所录入页面
+    const onClickright = () => {
+      router.push("/placePersonAdd");
+    };
     //宗教选择
     const changeValue = (value2) => {
       if (value.value != "") {
@@ -244,16 +267,21 @@ export default {
     };
     return {
       onClickLeft,
+      searchForm,
       value,
       value1,
       option1,
       loading,
       finished,
+      refreshing,
+      onLoad,
+      onRefresh,
       goPlacePersonInfo,
       changeValue,
       PersonList,
       dataList,
       selectColor,
+      onClickright,
     };
   },
 };
@@ -265,17 +293,10 @@ html {
   padding: 0;
   background-color: #f2f2f2;
 }
-.tishi{
-  position: absolute;
-  left: 50%;
-  color: #D3D3D3;
-  transform: translate(-50%);
-}
 .van-nav-bar {
   background-color: #36a7f3;
   .van-nav-bar__title {
     color: #fff;
-    
   }
   .van-badge__wrapper {
     color: #fff;
@@ -290,8 +311,6 @@ html {
 }
 .PersonList {
   background-color: #fff;
-  margin-top: 20px;
-  height: 100vh;
   p {
     margin: 0;
     padding: 0;
@@ -300,6 +319,7 @@ html {
     padding: 10px 10px;
     font-size: 16px;
     border-bottom: 1px solid #f2f2f2;
+    overflow: hidden;
     .van-row {
       &:nth-child(1) {
         margin-bottom: 10px;

+ 1445 - 0
src/views/placeManage/placePerson/placePersonAdd.vue

@@ -0,0 +1,1445 @@
+<template>
+  <van-nav-bar
+    fixed
+    title="人员信息录入"
+    left-arrow
+    @click-left="onClickLeft"
+    :style="{ 'background-color': selectColor }"
+  />
+  <div class="main">
+    <div class="formArea">
+      <p class="miniTitle">场所信息</p>
+      <van-cell-group>
+        <van-field
+          v-model="idTypeName"
+          readonly
+          required
+          label="证件类型:"
+          name="validator"
+          placeholder="请选择证件类型"
+          input-align="right"
+          right-icon="arrow-down"
+          @click="showPicker = true"
+          :rules="[{ validator, message: '证件类型不能为空' }]"
+        />
+        <van-popup v-model:show="showPicker" round position="bottom">
+          <van-picker
+            title="证件类型"
+            :columns="places"
+            @cancel="showPicker = false"
+            @confirm="getPlace"
+          />
+        </van-popup>
+      </van-cell-group>
+      <van-cell-group>
+        <van-field
+          v-model="inputForm.idcard"
+          center
+          required
+          label="证件号码:"
+          placeholder="请填写证件号码"
+          input-align="right"
+        />
+      </van-cell-group>
+      <van-cell-group>
+        <van-field
+          v-model="inputForm.name"
+          center
+          required
+          label="姓名:"
+          placeholder="请填写姓名"
+          input-align="right"
+        />
+      </van-cell-group>
+      <van-cell-group>
+        <van-field name="uploader" label-align="top" label="工作照片:">
+          <template #input>
+            <van-uploader
+              v-model="fileList"
+              :after-read="afterRead1"
+              :max-count="6"
+              capture="camera"
+              accept=""
+              :before-delete="fjdelete"
+            >
+            </van-uploader>
+          </template>
+        </van-field>
+      </van-cell-group>
+      <van-cell-group>
+        <van-field
+          v-model="inputForm.beforeUsedName"
+          center
+          label="曾用名:"
+          placeholder="请填写曾用名"
+          input-align="right"
+        />
+      </van-cell-group>
+      <van-cell-group>
+        <van-field
+          v-model="nationName"
+          readonly
+          label="民族:"
+          placeholder="请选择民族"
+          input-align="right"
+          right-icon="arrow-down"
+          @click="hs_nation = true"
+        />
+        <van-popup v-model:show="hs_nation" round position="bottom">
+          <van-picker
+            title="民族类型"
+            :columns="nation"
+            @cancel="hs_nation = false"
+            @confirm="getnation"
+          />
+        </van-popup>
+      </van-cell-group>
+      <van-cell-group>
+        <van-field
+          v-model="sexName"
+          readonly
+          required
+          label="性别:"
+          placeholder="请选择选择"
+          input-align="right"
+          right-icon="arrow-down"
+          @click="hs_sex = true"
+        />
+        <van-popup v-model:show="hs_sex" round position="bottom">
+          <van-picker
+            title="选择"
+            :columns="sex"
+            @cancel="hs_sex = false"
+            @confirm="getsex"
+          />
+        </van-popup>
+      </van-cell-group>
+      <van-cell-group>
+        <van-field
+          v-model="inputForm.phone"
+          center
+          label="手机号:"
+          placeholder="请填写手机号"
+          input-align="right"
+        />
+      </van-cell-group>
+      <van-cell-group>
+        <van-field
+          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="educationName"
+          readonly
+          label="教育程度"
+          placeholder="请选择教育程度"
+          input-align="right"
+          right-icon="arrow-down"
+          @click="hs_education = true"
+        />
+        <van-popup v-model:show="hs_education" round position="bottom">
+          <van-picker
+            title="教育程度"
+            :columns="education"
+            @cancel="hs_education = false"
+            @confirm="geteducation"
+          />
+        </van-popup>
+      </van-cell-group>
+      <van-cell-group>
+        <van-field
+          v-model="inputForm.graduatedFrom"
+          center
+          label="毕业院校:"
+          placeholder="请填写毕业院校"
+          input-align="right"
+        />
+      </van-cell-group>
+      <van-cell-group>
+        <van-field
+          v-model="religiousName"
+          readonly
+          label="教别:"
+          name="validator"
+          placeholder="请选择教别"
+          input-align="right"
+          right-icon="arrow-down"
+          @click="hs_religious = true"
+        />
+        <van-popup v-model:show="hs_religious" round position="bottom">
+          <van-picker
+            title="教别"
+            :columns="religious"
+            @cancel="hs_religious = false"
+            @confirm="getreligious"
+          />
+        </van-popup>
+      </van-cell-group>
+      <van-cell-group>
+        <van-field
+          v-model="inputForm.religiousAppellation"
+          center
+          label="宗教称谓:"
+          placeholder="请填写宗教称谓"
+          input-align="right"
+        />
+      </van-cell-group>
+      <van-cell-group>
+        <van-field
+          v-model="locationName"
+          readonly
+          label="所属场所:"
+          placeholder="请选择所属场所"
+          input-align="right"
+          right-icon="arrow-down"
+          @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="typeOfEmployeesName"
+          readonly
+          label-width="7.2em"
+          label="场所任职情况:"
+          placeholder="请选择场所任职情况"
+          input-align="right"
+          right-icon="arrow-down"
+          @click="hs_typeOfEmployees = true"
+        />
+        <van-popup v-model:show="hs_typeOfEmployees" round position="bottom">
+          <van-picker
+            title="任职情况"
+            :columns="typeOfEmployees"
+            @cancel="hs_typeOfEmployees = false"
+            @confirm="gettypeOfEmployees"
+          />
+        </van-popup>
+      </van-cell-group>
+      <van-cell-group>
+        <van-field
+          v-model="inputForm.currentResidence"
+          center
+          readonly
+          label="现居地:"
+          placeholder="请填写现居地"
+          input-align="right"
+          right-icon="arrow-down"
+          @click="showPlace1 = true"
+        />
+        <van-popup v-model:show="showPlace1" round position="bottom">
+          <van-picker
+            title="现居地选择"
+            :columns="options"
+            :columns-field-names="customFieldName"
+            @cancel="showPlace1 = false"
+            @confirm="getPlace1"
+          />
+        </van-popup>
+      </van-cell-group>
+      <van-cell-group>
+        <van-field
+          v-model="inputForm.place"
+          center
+          label="详细地址:"
+          placeholder="请填写详细场所"
+          input-align="right"
+        >
+          <template #right-icon>
+            <van-icon name="location" @click="getLocation()" />
+          </template>
+        </van-field>
+      </van-cell-group>
+      <van-cell-group>
+        <van-field
+          v-model="personnalType"
+          readonly
+          required
+          label="人员类型:"
+          placeholder="请选择人员类型"
+          input-align="right"
+          right-icon="arrow-down"
+          @click="hs_persontype = true"
+        />
+        <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
+          v-model="tissueName"
+          readonly
+          label="宗教组织:"
+          placeholder="请选择宗教组织"
+          input-align="right"
+          right-icon="arrow-down"
+          @click="hs_tissue = true"
+        />
+        <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="inputForm.zjzzJob"
+          center
+          label-width="6.5em"
+          label="团体任职情况:"
+          placeholder="请填写团体任职情况"
+          input-align="right"
+        />
+      </van-cell-group>
+      <van-cell-group>
+        <van-field
+          v-model="activitytext"
+          readonly
+          required
+          label-width="7em"
+          label="非法活动参加:"
+          placeholder="请选择是否参加非法活动"
+          input-align="right"
+          right-icon="arrow-down"
+          @click="hs_activity = true"
+        />
+        <van-popup v-model:show="hs_activity" round position="bottom">
+          <van-picker
+            title="选择是否参加"
+            :columns="activity"
+            @cancel="hs_activity = false"
+            @confirm="getactivity"
+          />
+        </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="job"
+          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="finishschoolName"
+          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="certificateNumber"
+          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="certificateUnit"
+          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="authorityName"
+          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="schoolName"
+          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="takeoffice"
+          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="operateName"
+          center
+          label-width="6.5em"
+          label="网络运营类型:"
+          placeholder="请填写网络运营类型"
+          input-align="right"
+          @click="hs_operate = true"
+        />
+        <van-popup v-model:show="hs_operate" round position="bottom">
+          <van-picker
+            title="网络运营类型"
+            :columns="operate"
+            @cancel="hs_operate = false"
+            @confirm="getoperate"
+          />
+        </van-popup>
+      </van-cell-group>
+      <van-cell-group v-if="showZW.includes('18')">
+        <van-field
+          v-model="journalistName"
+          center
+          label-width="6.5em"
+          label="记者类型:"
+          placeholder="请填写记者类型"
+          input-align="right"
+          @click="hs_journalist = true"
+        />
+        <van-popup v-model:show="hs_journalist" round position="bottom">
+          <van-picker
+            title="记者类型"
+            :columns="journalistn"
+            @cancel="hs_journalist = false"
+            @confirm="getjournalist"
+          />
+        </van-popup>
+      </van-cell-group>
+      <van-cell-group v-if="showZW.includes('6') && showZW.includes('19')">
+        <van-field
+          v-model="overseas"
+          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="faction"
+          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="cityOutaddress"
+          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>
+      <van-button @click="onClickLeft" type="default" hairline>取消</van-button>
+    </div>
+  </div>
+</template>
+
+<script>
+import { onBeforeUpdate, onMounted, ref } from "vue";
+import placePerson from "@/api/placePerson/placePerson";
+import PlaceRegister from "@/api/placeRegister/placeRegister";
+import { useRouter } from "vue-router";
+import tools from "@/api/sys/tools";
+export default {
+  setup() {
+    const onClickLeft = () => {
+      history.back();
+    };
+    // 导航栏颜色
+    const selectColor = ref(window.localStorage.getItem("MZ_COLOR"));
+    //人员添加
+    const inputForm = ref({
+      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: "",
+    });
+    // 职务
+    const job = ref("");
+    //教职身份
+    const teachType = ref("");
+    //宗教教育程度
+    const religiousType = ref("");
+    // 宗教毕业院校
+    const religiousScool = ref("");
+    //教职证书号
+    const certificateNumber = ref("");
+    //证书颁发单位
+    const certificateUnit = ref("");
+    //备案机关名称
+    const authorityName = ref("");
+    // 宗教毕业院校
+    const finishschoolName = ref("");
+    //宗教院校名称
+    const schoolName = ref("");
+    //院校任职情况
+    const takeoffice = ref("");
+    //境外来源地
+    const overseas = ref("");
+    //派别
+    const faction = ref("");
+    //市外来源地
+    const cityOutaddress = ref("");
+    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" },
+    ];
+    const idTypeName = ref("");
+    let showPicker = ref(false);
+    const getPlace = ({ selectedOptions }) => {
+      showPicker.value = false;
+      const json = Object.assign(inputForm.value, {
+        idType: selectedOptions[0].value,
+      });
+      inputForm.value = json;
+      idTypeName.value = selectedOptions[0].text;
+    };
+    // 民族
+    const nationName = ref("");
+    const nation = ref([]);
+    let hs_nation = ref(false);
+    const getnation = ({ selectedOptions }) => {
+      hs_nation.value = false;
+      const json = Object.assign(inputForm.value, {
+        nation: selectedOptions[0].value,
+      });
+      inputForm.value = json;
+      nationName.value = selectedOptions[0].text;
+    };
+    // 性别
+    const sexName = ref("");
+    const sex = [
+      { text: "男", value: "1" },
+      { text: "女", value: "2" },
+    ];
+    let hs_sex = ref(false);
+    const getsex = ({ selectedOptions }) => {
+      hs_sex.value = false;
+      const json = Object.assign(inputForm.value, {
+        sex: selectedOptions[0].value,
+      });
+      inputForm.value = json;
+      sexName.value = selectedOptions[0].text;
+    };
+    // 教育程度
+    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 hs_education = ref(false);
+    const geteducation = ({ selectedOptions }) => {
+      hs_education.value = false;
+      const json = Object.assign(inputForm.value, {
+        nationalEducationLevel: selectedOptions[0].value,
+      });
+      inputForm.value = json;
+      educationName.value = selectedOptions[0].text;
+    };
+    // 宗教类别
+    const religiousName = ref("");
+    const religious = [
+      { text: "伊斯兰教", value: "1" },
+      { text: "基督教", value: "2" },
+      { text: "天主教", value: "3" },
+      { text: "佛教", value: "4" },
+      { text: "道教", value: "5" },
+    ];
+    let hs_religious = ref(false);
+    const getreligious = ({ selectedOptions }) => {
+      hs_religious.value = false;
+      const json = Object.assign(inputForm.value, {
+        religion: selectedOptions[0].value,
+      });
+      inputForm.value = json;
+      religiousName.value = selectedOptions[0].text;
+    };
+    // 宗教类别2
+    const religiousName2 = ref("");
+    const religioustype2 = 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;
+      religioustype2.value = 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;
+      const json = Object.assign(inputForm.value, { location: { id: val.id } });
+      inputForm.value = json;
+      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 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 hs_typeOfEmployees = ref(false);
+    const gettypeOfEmployees = ({ selectedOptions }) => {
+      hs_typeOfEmployees.value = false;
+      // inputForm.typeOfEmployees = selectedOptions[0].value;
+      const json = Object.assign(inputForm.value, {
+        typeOfEmployees: selectedOptions[0].value,
+      });
+      inputForm.value = json;
+      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.value, { nativePlace: str });
+      inputForm.value = json;
+    };
+    //图片上传
+    let fileList = ref([]);
+    let fileImg = ref([]);
+    let workpic = ref("");
+    const afterRead1 = (file) => {
+      new tools()
+        .uploadFile(file, `sys/file/webupload/upload`)
+        .then(({ data }) => {
+          data.name = decodeURIComponent(
+            data.url.substring(data.url.lastIndexOf("/") + 1)
+          );
+          workpic.value += "" + data.url;
+          const json = Object.assign(inputForm.value, {
+            workPicture: workpic.value,
+          });
+          inputForm.value = json;
+          fileImg.value.push(data);
+        });
+    };
+    const fjdelete = (file) => {
+      //删除文件操作
+      for (let index = 0; index < fileList.value.length; index++) {
+        if (file.file == fileList.value[index].file) {
+          let delurl = fileImg.value[index].url;
+          new tools().uploadFiledelete("", delurl).then(({ data }) => {});
+          fileImg.value.splice(index, 1);
+          fileList.value.splice(index, 1);
+        }
+      }
+    };
+    //详细地址定位
+    const getLocation = () => {
+      xm.getLocation().then((data) => {
+        inputForm.currentResidenceDetail = data.POIName;
+      });
+    };
+    // 地区选择
+    let placeAddress = ref("");
+    const customFieldName = {
+      text: "name",
+      value: "id",
+    };
+    const options = ref([]);
+    let showPlace1 = ref(false);
+    const getPlace1 = ({ selectedOptions }) => {
+      showPlace1.value = false;
+      let str1 = "";
+      let str2 = "";
+      selectedOptions.forEach((item) => {
+        if (inputForm.currentResidence) {
+          str1 = inputForm.currentResidence;
+          str2 = inputForm.currentResidenceId;
+        }
+        str1 += item.name + "/";
+        str2 += item.code + "/";
+      });
+      const json = Object.assign(inputForm.value, {
+        currentResidence: str1,
+        currentResidenceId: str2,
+      });
+      inputForm.value = json;
+    };
+
+    //宗教组织
+    const tissueName = ref("");
+    const checked1 = ref("");
+    const tissuelist = ref([]);
+    let hs_tissue = ref(false);
+    const gettissue = (val) => {
+      tissueName.value = val.organizationName;
+      const json = Object.assign(inputForm.value, { zjzz: { id: val.id } });
+      inputForm.value = json;
+      checked1.value = val.id;
+    };
+    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 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.value },
+        { 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 activity = [
+      { text: "是", value: "0" },
+      { text: "否", value: "1" },
+    ];
+    let hs_activity = ref(false);
+    const getactivity = ({ selectedOptions }) => {
+      hs_activity.value = false;
+      const json = Object.assign(inputForm.value, {
+        bkcheck: selectedOptions[0].value,
+      });
+      inputForm.value = json;
+      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;
+      teachType.value = 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;
+      religiousType.value = selectedOptions[0].value;
+      Religiouseducation.value = selectedOptions[0].text;
+    };
+    // 证书颁发时间
+    const issueDate = ref("");
+    let hs_issueDate = ref(false);
+    const getissueDate = ({ selectedOptions }) => {
+      hs_issueDate.value = false;
+      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;
+      recordDate.value =
+        selectedOptions[0].text +
+        "-" +
+        selectedOptions[1].text +
+        "-" +
+        selectedOptions[2].text;
+    };
+    //记者类型
+    const journalistName = ref("");
+    const journalistName2 = ref("");
+    const journalistn = [
+      { text: "境内", value: "1" },
+      { text: "境外", value: "2" },
+    ];
+    let hs_journalistn = ref(false);
+    const getjournalistn = ({ selectedOptions }) => {
+      hs_journalistn.value = false;
+      journalistName2.value = selectedOptions[0].value;
+      journalistName.value = selectedOptions[0].text;
+    };
+    //网络运营类型
+    const operateName = ref("");
+    const operateName2 = ref("");
+    const operate = [
+      { text: "网络主播", value: "1" },
+      { text: "微博", value: "2" },
+      { text: "微信", value: "3" },
+      { text: "抖音", value: "4" },
+      { text: "快手", value: "5" },
+      { text: "淘宝", value: "6" },
+      { text: "QQ", value: "7" },
+    ];
+    let hs_operate = ref(false);
+    const getoperate = ({ selectedOptions }) => {
+      hs_operate.value = false;
+      operateName2.value = selectedOptions[0].value;
+      operateName.value = selectedOptions[0].text;
+    };
+    //跳转
+    let router = useRouter();
+    //数据提交
+    const submit = () => {
+      const list = [
+        { chineseName: "职务", value: job.value },
+        { chineseName: "教职身份", value: teachType.value },
+        { chineseName: "宗教教育程度", value: religiousType.value },
+        { chineseName: "宗教毕业院校", value: finishschoolName.value },
+        { chineseName: "教职证书号", value: certificateNumber.value },
+        { chineseName: "证书颁发时间", value: issueDate.value },
+        { chineseName: "证书颁发单位", value: certificateUnit.value },
+        { chineseName: "备案时间", value: recordDate.value },
+        { chineseName: "备案机关名称", value: authorityName.value },
+        { chineseName: "宗教院校名称", value: schoolName.value },
+        { chineseName: "院校任职情况", value: takeoffice.value },
+        { chineseName: "网络运营类型", value: operateName2.value },
+        { chineseName: "记者类型", value: journalistName2.value },
+        { chineseName: "境外来源地", value: overseas.value },
+        { chineseName: "派别", value: faction.value },
+        { chineseName: "市外来源地", value: cityOutaddress.value },
+        { chineseName: "教别", value: religioustype2.value },
+      ];
+      let newList = [];
+      newList = list.filter((item) => {
+        return item.value != "";
+      });
+      const json = Object.assign(inputForm.value, {
+        userManagenmetDetailsDTOList: newList,
+      });
+      inputForm.value = json;
+      new placePerson().save(inputForm.value).then((res) => {
+        console.log(res);
+        if (res.status == 200) {
+          xm.showToast({
+            message: "人员添加成功",
+          });
+          router.push({
+            path: "/placePerson",
+          });
+        }else{
+          xm.showToast({
+            message: "人员添加失败",
+          });
+          console.log(res);
+        }
+      });
+    };
+
+    return {
+      //人员添加
+      inputForm,
+      // 证件类型
+      idTypeName,
+      showPicker,
+      places,
+      getPlace,
+      //民族
+      nationName,
+      hs_nation,
+      nation,
+      getnation,
+      //性别
+      sexName,
+      hs_sex,
+      sex,
+      getsex,
+      // 教育程度
+      educationName,
+      hs_education,
+      education,
+      geteducation,
+      // 宗教类别
+      religiousName,
+      hs_religious,
+      religious,
+      getreligious,
+      // 宗教类别2
+      religiousName2,
+      religioustype2,
+      hs_religious2,
+      religious2,
+      getreligious2,
+      //所属场所
+      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,
+      //人员类型
+      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,
+      //记者类型
+      journalistName,
+      journalistn,
+      hs_journalistn,
+      getjournalistn,
+      //网络运营类型
+      operate,
+      operateName,
+      operateName2,
+      hs_operate,
+      getoperate,
+      //图片上传
+      fileList,
+      afterRead1,
+      //图片删除
+      fjdelete,
+      // 返回
+      onClickLeft,
+      // 详细地址定位
+      getLocation,
+      // 地区选择
+      placeAddress,
+      customFieldName,
+      showPlace1,
+      getPlace1,
+      options,
+      //userList数组
+      job,
+      religiousScool,
+      certificateNumber,
+      certificateUnit,
+      authorityName,
+      schoolName,
+      takeoffice,
+      overseas,
+      faction,
+      cityOutaddress,
+      finishschoolName,
+      //数据提交
+      submit,
+      selectColor,
+    };
+  },
+};
+</script>
+<style lang="less">
+.subbtn {
+  margin: 20px;
+  text-align: center;
+}
+.subbtn .van-button {
+  width: 40%;
+  margin: 5px;
+}
+.van-uploader .van-button {
+  border: none;
+  color: #36a7f3;
+  top: -4px;
+}
+.van-radio {
+  margin-right: 10px;
+}
+.dialog {
+  width: 100%;
+  height: 400px;
+  overflow: auto;
+}
+</style>

+ 102 - 251
src/views/placeManage/placePerson/placePersoninfo.vue

@@ -11,18 +11,14 @@
       <img src="../../../../public/loginbg/banner.jpg" alt="" />
     </div>
     <div class="info">
-      <p class="miniTitle">个人信息-{{ data.data.name }}</p>
+      <p class="miniTitle">个人信息-{{ data.name }}</p>
       <van-row justify="space-between">
         <van-col span="14">
           <van-row class="item">
             <van-col span="24">
               <van-row justify="space-between">
-                <!-- <van-col span="8"> 姓名: </van-col>
-                <van-col span="8" style="text-align: right">
-                  {{ data.data.name }}
-                </van-col> -->
                 <van-field
-                  v-model="data.data.name"
+                  v-model="data.name"
                   center
                   readonly
                   clearable
@@ -36,28 +32,26 @@
             <van-col span="24">
               <van-row justify="space-between">
                 <van-field
-                  v-model="data.data.sex"
+                  v-model="data.sex"
                   center
                   readonly
                   clearable
                   label="性别:"
                   input-align="right"
-                />
+                >
+                  <template #input>
+                    <template v-if="data.sex == 1">男</template>
+                    <template v-if="data.sex == 0">女</template>
+                  </template>
+                </van-field>
               </van-row>
             </van-col>
           </van-row>
           <van-row class="item">
             <van-col span="24">
               <van-row justify="space-between">
-                <!-- <van-col span="12"> 证件类型: </van-col>
-                <van-col span="6" style="text-align: right">
-                  <span v-if="data.data.idType == 1">身份证</span>
-                  <span v-if="data.data.idType == 2">护照</span>
-                  <span v-if="data.data.idType == 3">港澳通行证</span>
-                  <span v-if="data.data.idType == 4">其他</span>
-                </van-col> -->
                 <van-field
-                  v-model="data.data.idType"
+                  v-model="data.idType"
                   center
                   readonly
                   clearable
@@ -65,10 +59,10 @@
                   input-align="right"
                 >
                   <template #input>
-                    <template v-if="data.data.idType == 1">身份证</template>
-                    <template v-if="data.data.idType == 2">护照</template>
-                    <template v-if="data.data.idType == 3">港澳通行证</template>
-                    <template v-if="data.data.idType == 4">其他</template>
+                    <template v-if="data.idType == 1">身份证</template>
+                    <template v-if="data.idType == 2">护照</template>
+                    <template v-if="data.idType == 3">港澳通行证</template>
+                    <template v-if="data.idType == 4">其他</template>
                   </template>
                 </van-field>
               </van-row>
@@ -76,14 +70,14 @@
           </van-row>
         </van-col>
         <van-col span="8">
-          <van-image width="100" height="100" :src="data.data.workPicture" />
+          <van-image width="100" height="100" :src="data.workPicture" />
         </van-col>
       </van-row>
       <van-row class="item">
         <van-col span="24">
           <van-row justify="space-between">
             <van-field
-              v-model="data.data.idcard"
+              v-model="data.idcard"
               center
               readonly
               clearable
@@ -96,12 +90,8 @@
       <van-row class="item">
         <van-col span="24">
           <van-row justify="space-between">
-            <!-- <van-col span="10"> 手机号: </van-col>
-            <van-col span="14" style="text-align: right">
-              {{ data.data.phone }}
-            </van-col> -->
             <van-field
-              v-model="data.data.phone"
+              v-model="data.phone"
               center
               readonly
               clearable
@@ -115,7 +105,7 @@
         <van-col span="24">
           <van-row justify="space-between">
             <van-field
-              v-model="data.data.locationName"
+              v-model="data.locationName"
               center
               readonly
               clearable
@@ -129,79 +119,13 @@
         <van-col span="24">
           <van-row justify="space-between">
             <van-field
-              v-model="data.data.personnelType"
+              v-model="data.personnelTypeName"
               center
               readonly
               clearable
               label="人员类型:"
               input-align="right"
             >
-              <template #input>
-                <template v-if="data.data.personnelType == 1"
-                  >宗教从业人员</template
-                >
-                <template v-else-if="data.data.personnelType == 2"
-                  >民族场所从业人员</template
-                >
-                <template v-else-if="data.data.personnelType == 3"
-                  >教职人员</template
-                >
-                <template v-else-if="data.data.personnelType == 4"
-                  >固定信徒</template
-                >
-                <template v-else-if="data.data.personnelType == 5"
-                  >场所居住人员</template
-                >
-                <template v-else-if="data.data.personnelType == 6"
-                  >境外人员</template
-                >
-                <template v-else-if="data.data.personnelType == 7"
-                  >非本市人员</template
-                >
-                <template v-else-if="data.data.personnelType == 8"
-                  >非本教人员</template
-                >
-                <template v-else-if="data.data.personnelType == 9"
-                  >新增信徒人员</template
-                >
-                <template v-else-if="data.data.personnelType == 10"
-                  >临时人员</template
-                >
-                <template v-else-if="data.data.personnelType == 11"
-                  >异常人员</template
-                >
-                <template v-else-if="data.data.personnelType == 12"
-                  >邪教人员</template
-                >
-                <template v-else-if="data.data.personnelType == 13"
-                  >管理人员</template
-                >
-                <template v-else-if="data.data.personnelType == 14"
-                  >全能神离家人员</template
-                >
-                <template v-else-if="data.data.personnelType == 15"
-                  >全能神骨干人员</template
-                >
-                <template v-else-if="data.data.personnelType == 16"
-                  >网络运营人员</template
-                >
-                <template v-else-if="data.data.personnelType == 17"
-                  >涉政有害活动人员</template
-                >
-                <template v-else-if="data.data.personnelType == 18"
-                  >境内外记者</template
-                >
-                <template v-else-if="data.data.personnelType == 19"
-                  >境外法轮功骨干人员</template
-                >
-                <template v-else-if="data.data.personnelType == 20"
-                  >其他邪教骨干人员</template
-                >
-                <template v-else-if="data.data.personnelType == 21"
-                  >心灵法门骨干人员</template
-                >
-                <template v-else>“精神控制”有害培训骨干人员</template>
-              </template>
             </van-field>
           </van-row>
         </van-col>
@@ -210,28 +134,44 @@
         <van-col span="24">
           <van-row justify="space-between">
             <van-field
-              v-model="data.data.typeOfEmployees"
+              v-model="data.typeOfEmployees"
               center
               readonly
               clearable
-              label="从业类型:"
+              label="场所担任情况:"
               input-align="right"
             >
               <template #input>
-                <template v-if="data.data.typeOfEmployees == 1"
-                  >场所负责人</template
-                >
-                <template v-if="data.data.typeOfEmployees == 2"
-                  >堂管会成员</template
+                <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.data.typeOfEmployees == 3"
-                  >小组负责人</template
+                <template v-if="data.typeOfEmployees == 4">财会</template>
+                <template v-if="data.typeOfEmployees == 5"
+                  >传道(已退休)</template
                 >
-                <template v-if="data.data.typeOfEmployees == 4">财会</template>
-                <template v-if="data.data.typeOfEmployees == 5">义工</template>
-                <template v-if="data.data.typeOfEmployees == 6">保安</template>
-                <template v-if="data.data.typeOfEmployees == 7"
-                  >信息审核员</template
+                <template v-if="data.typeOfEmployees == 6">保安</template>
+                <template v-if="data.typeOfEmployees == 7">信息审核员</template>
+                <template v-if="data.typeOfEmployees == 8">常住</template>
+                <template v-if="data.typeOfEmployees == 9">传道</template>
+                <template v-if="data.typeOfEmployees == 10">道士</template>
+                <template v-if="data.typeOfEmployees == 11">法人</template>
+                <template v-if="data.typeOfEmployees == 12">法务</template>
+                <template v-if="data.typeOfEmployees == 13">副主任</template>
+                <template v-if="data.typeOfEmployees == 14">副组长</template>
+                <template v-if="data.typeOfEmployees == 15">监院</template>
+                <template v-if="data.typeOfEmployees == 16">清众</template>
+                <template v-if="data.typeOfEmployees == 17">僧职</template>
+                <template v-if="data.typeOfEmployees == 18">僧值</template>
+                <template v-if="data.typeOfEmployees == 19">退居</template>
+                <template v-if="data.typeOfEmployees == 20">维那</template>
+                <template v-if="data.typeOfEmployees == 21">长老</template>
+                <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>
             </van-field>
@@ -242,7 +182,7 @@
         <van-col span="24">
           <van-row justify="space-between">
             <van-field
-              v-model="data.data.nativePlace"
+              v-model="data.nativePlace"
               center
               readonly
               clearable
@@ -256,7 +196,7 @@
         <van-col span="24">
           <van-row justify="space-between">
             <van-field
-              v-model="data.data.currentResidence"
+              v-model="data.currentResidence"
               center
               readonly
               clearable
@@ -270,7 +210,7 @@
         <van-col span="24">
           <van-row justify="space-between">
             <van-field
-              v-model="data.data.currentResidenceDetail"
+              v-model="data.currentResidenceDetail"
               center
               readonly
               clearable
@@ -281,163 +221,72 @@
         </van-col>
       </van-row>
       <p class="miniTitle">拓展信息</p>
-      <van-row
-        class="item"
-        v-for="(item, index) in data.data.userManagenmetDetailsDTOList"
-        :key="index"
-      >
-        <van-col
-          span="24"
-          v-if="item.dataType === '1' && item.dataDictionary == ''"
-        >
-          <van-row justify="space-between">
-            <van-field
-              v-model="item.value"
-              center
-              readonly
-              clearable
-              :label="item.chineseName"
-              input-align="right"
-            />
-          </van-row>
-        </van-col>
-        <van-col
-          span="24"
-          v-if="
-            item.dataType === '1' && item.dataDictionary == 'hs_religion_type'
-          "
-        >
-          <van-row justify="space-between">
-            <van-field
-              v-model="data.data.idType"
-              center
-              readonly
-              clearable
-              :label="item.chineseName"
-              input-align="right"
-            >
-              <template #input>
-                <template v-if="item.value == 1">伊斯兰教</template>
-                <template v-if="item.value == 2">基督教</template>
-                <template v-if="item.value == 3">天主教</template>
-                <template v-if="item.value == 4">佛教</template>
-                <template v-if="item.value == 5">道教</template>
-              </template>
-            </van-field>
-          </van-row>
-        </van-col>
-        <van-col
-          span="24"
-          v-if="
-            item.dataType === '1' && item.dataDictionary == 'hs_faculty_type'
-          "
-        >
-          <van-row justify="space-between">
-            <van-field
-              v-model="data.data.idType"
-              center
-              readonly
-              clearable
-              :label="item.chineseName"
-              input-align="right"
-            >
-              <template #input>
-                <template v-if="item.value == 1">负责人</template>
-                <template v-if="item.value == 2">牧师</template>
-                <template v-if="item.value == 3">长老</template>
-                <template v-if="item.value == 4">传道员</template>
-                <template v-if="item.value == 5">神学生</template>
-              </template>
-            </van-field>
-          </van-row>
-        </van-col>
-        <van-col span="24" v-if="item.dataType === '5'">
-          <van-row justify="space-between">
-            <van-field
-              v-model="item.value"
-              center
-              readonly
-              clearable
-              :label="item.chineseName"
-              input-align="right"
-            />
-          </van-row>
-        </van-col>
-        <van-col span="24" v-if="item.dataType === '6'">
-          <van-row justify="space-between">
-            <van-field
-              v-model="item.value"
-              center
-              readonly
-              clearable
-              :label="item.chineseName"
-              input-align="right"
-            />
-          </van-row>
-        </van-col>
-        <van-col span="24" v-if="item.dataType === '4'">
-          <van-field
-            center
-            readonly
-            clearable
-            :label="item.chineseName"
-            label-align="top"
-          >
-            <template #input>
-              <van-image width="100" height="100" :src="item.value" />
-            </template>
-          </van-field>
-        </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, reactive, ref } from "vue";
+import { onMounted, ref } from "vue";
 import $base from "@/utils/config";
+import UserManage from "@/api/user/UserManage";
 export default {
   setup() {
-    const data = reactive({
-      //个人数据
-      data: {},
-      idType: "",
-    });
+    const data = ref({});
+    const expansion = ref([]);
     // 导航栏颜色
     const selectColor = ref(window.localStorage.getItem("MZ_COLOR"));
     //数据接收
     const router = useRouter();
     onMounted(() => {
       var item = JSON.parse(router.currentRoute.value.query.data);
-      data.data = item;
-      if (data.data.sex == 1) {
-        data.data.sex = "男";
-      } else {
-        data.data.sex = "女";
+      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];
       }
-      switch (data.data.idType) {
-        case 1:
-          data.idType = "身份证";
-          break;
-        case 2:
-          data.idType = "护照";
-          break;
-        case 3:
-          data.idType = "港澳通行证";
-          break;
-        case 4:
-          data.idType = "其他";
-          break;
+      if (item.chineseName === "宗教教育程度") {
+        const type = {
+          1: "小学",
+          2: "初中",
+          3: "中专",
+          4: "高中",
+          5: "大专",
+          6: "本科",
+          7: "硕士研究生",
+          8: "博士研究生",
+          9: "其他",
+        };
+        return type[item.value];
       }
+      return item.value;
+    };
 
-      data.data.workPicture = `${$base}` + data.data.workPicture;
-      data.data.userManagenmetDetailsDTOList.forEach((item2) => {
-        if (item2.dataType === "4") {
-          item2.value = `${$base}` + item2.value;
-        }
-      });
-    });
     //返回
     const onClickLeft = () => {
       history.back();
@@ -446,6 +295,8 @@ export default {
       onClickLeft,
       data,
       selectColor,
+      expansion,
+      getValue,
     };
   },
 };

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

@@ -10,6 +10,7 @@
     <div class="formArea">
       <p class="miniTitle">场所信息</p>
       <van-cell-group>
+        
         <van-field
           v-model="placeActivity.placeData.religiousName"
           readonly
@@ -491,5 +492,6 @@ export default {
 }
 .van-radio {
   margin-right: 10px;
+  
 }
 </style>

+ 177 - 28
src/views/placeManage/placeRegister/placeRegisterInfo.vue

@@ -18,7 +18,7 @@
             <van-col span="24">
               <van-row justify="space-between">
                 <van-field
-                  v-model="dataitem.brandName"
+                  v-model="dataitem.name"
                   center
                   readonly
                   clearable
@@ -32,13 +32,22 @@
             <van-col span="24">
               <van-row justify="space-between">
                 <van-field
-                  v-model="data.siteName.name"
+                  v-model="dataitem.religiousType"
                   center
                   readonly
                   clearable
                   label="宗教类型:"
                   input-align="right"
-                />
+                >
+                
+                  <template #input>
+                    <span v-if="dataitem.religiousType == 1">伊斯兰教</span>
+                    <span v-if="dataitem.religiousType == 2">基督教</span>
+                    <span v-if="dataitem.religiousType == 3">天主教</span>
+                    <span v-if="dataitem.religiousType == 4">佛教</span>
+                    <span v-if="dataitem.religiousType == 5">道教</span>
+                  </template>
+                </van-field>
               </van-row>
             </van-col>
           </van-row>
@@ -46,11 +55,11 @@
             <van-col span="24">
               <van-row justify="space-between">
                 <van-field
-                  v-model="dataitem.memorialTabletHolder"
+                  v-model="dataitem.tyshxydm"
                   center
                   readonly
                   clearable
-                  label="场所联系人:"
+                  label="社会信用代码:"
                   input-align="right"
                 />
               </van-row>
@@ -62,11 +71,39 @@
         <van-col span="24">
           <van-row justify="space-between">
             <van-field
-              v-model="dataitem.memorialTabletHolderPhone"
+              v-model="dataitem.filingNo"
+              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="dataitem.approvedEstablishmentTime"
+              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="dataitem.approveOffice"
               center
               readonly
               clearable
-              label="联系电话:"
+              label="登记机关:"
               input-align="right"
             />
           </van-row>
@@ -76,11 +113,11 @@
         <van-col span="24">
           <van-row justify="space-between">
             <van-field
-              v-model="dataitem.contactInformation"
+              v-model="dataitem.registrationDate"
               center
               readonly
               clearable
-              label="场所地址:"
+              label="登记日期:"
               input-align="right"
             />
           </van-row>
@@ -94,45 +131,158 @@
               center
               readonly
               clearable
-              label="信用代码:"
+              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="dataitem.registrationAuthority"
+              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="dataitem.contact"
+              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="dataitem.contactNumber"
+              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="dataitem.placeSelectName"
+              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="dataitem.place"
+              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="dataitem.siteType"
+              center
+              readonly
+              clearable
+              label="场所类型:"
+              input-align="right"
+            >
+              <template #input>
+                <span v-if="dataitem.siteType == 1">线下</span>
+                <span v-if="dataitem.siteType == 0">线上</span>
+              </template>
+            </van-field>
+          </van-row>
+        </van-col>
+      </van-row>
+      <van-row class="item">
+        <van-col span="24">
+          <van-row justify="space-between">
+            <van-field
+              v-model="dataitem.constructionStage"
+              center
+              readonly
+              clearable
+              label="场所建设阶段:"
+              input-align="right"
+            >
+            <template #input>
+                <span v-if="dataitem.siteType == 1">建设完成</span>
+                <span v-if="dataitem.siteType == 0">筹备</span>
+              </template>
+            </van-field>
+          </van-row>
+        </van-col>
+      </van-row>
+      <van-row class="item">
+        <van-col span="24">
+          <van-row justify="space-between">
+            <van-field
+              v-model="dataitem.nature"
+              center
+              readonly
+              clearable
+              label="场所性质:"
+              input-align="right"
+            >
+            <template #input>
+                <span v-if="dataitem.siteType == 1">寺观教堂</span>
+                <span v-if="dataitem.siteType == 0">固定场所</span>
+              </template>
+            </van-field>
+          </van-row>
+        </van-col>
+      </van-row>
     </div>
   </div>
 </template>
 
 <script>
 import { useRouter } from "vue-router";
-import { onMounted, reactive, ref } from "vue";
-import $base from "@/utils/config";
+import { onMounted, ref } from "vue";
 export default {
   setup() {
-    const data = reactive({
-      siteName: {},
-      pic: [],
-    });
     // 导航栏颜色
     const selectColor = ref(window.localStorage.getItem("MZ_COLOR"));
-    //牌位数据
+    //场所数据
     let dataitem = ref({});
     //数据接收
     const router = useRouter();
     onMounted(() => {
       var item = JSON.parse(router.currentRoute.value.query.data);
+      console.log(item, "============================>item");
       dataitem.value = item;
-      data.siteName = dataitem.value.siteName;
-      let pic = [];
-      pic = dataitem.value.pic.split("|");
-      dataitem.value.pic = pic;
-      data.pic = dataitem.value.pic;
-      let picList = [];
-      data.pic.forEach((item1) => {
-        picList.push(`${$base}` + item1);
-      });
-      data.pic = picList;
     });
     //返回
     const onClickLeft = () => {
@@ -140,7 +290,6 @@ export default {
     };
     return {
       onClickLeft,
-      data,
       dataitem,
       selectColor,
     };

+ 90 - 66
src/views/placeManage/placeRegister/placeRegisterList.vue

@@ -26,40 +26,43 @@
       @cancel="onCancel"
       @click-input="showPlace = true"
     />
+    <van-pull-refresh v-model="refreshing" @refresh="onRefresh">
       <van-list
-        v-model:loading="loading"
-        :finished="finished"
-        finished-text="没有更多了"
-        @load="onLoad"
-      >
-        <van-swipe-cell v-for="item in list" :key="item">
-          <div class="list-item">
-            <div class="item_top">
-              <div class="item_top_left">
-                {{ item.name }}
-              </div>
-              <div class="item_top_right">
-                <span v-if="item.religious_type == 1">伊斯兰教</span>
-                <span v-if="item.religious_type == 2">基督教</span>
-                <span v-if="item.religious_type == 3">天主教</span>
-                <span v-if="item.religious_type == 4">佛教</span>
-                <span v-if="item.religious_type == 5">道教</span>
-              </div>
+      v-model:loading="loading"
+      :finished="finished"
+      finished-text="没有更多了"
+      @load="onLoad"
+    >
+      <van-swipe-cell v-for="item in list" :key="item" >
+        <div class="list-item" @click="gotoplaceRegister(item)">
+          <div class="item_top">
+            <div class="item_top_left">
+              {{ item.name }}
             </div>
-            <div class="item_center">
-              {{ item.place }}
+            <div class="item_top_right">
+              <span v-if="item.religiousType == 1">伊斯兰教</span>
+              <span v-if="item.religiousType == 2">基督教</span>
+              <span v-if="item.religiousType == 3">天主教</span>
+              <span v-if="item.religiousType == 4">佛教</span>
+              <span v-if="item.religiousType == 5">道教</span>
             </div>
-            <div class="item_down">
-              <div class="item_down_left">
-                {{ item.contact }}
-              </div>
-              <div class="item_down_right">
-                {{ item.contact_number }}
-              </div>
+          </div>
+          <div class="item_center">
+            {{ item.place }}
+          </div>
+          <div class="item_down">
+            <div class="item_down_left">
+              {{ item.contact }}
+            </div>
+            <div class="item_down_right">
+              {{ item.contactNumber }}
             </div>
           </div>
-        </van-swipe-cell>
-      </van-list>
+        </div>
+      </van-swipe-cell>
+    </van-list>
+    </van-pull-refresh>
+    
   </div>
 </template>
 
@@ -70,30 +73,21 @@ import PlaceRegister from "@/api/placeRegister/placeRegister";
 export default {
   setup() {
     //暂时列表数据
-    const list = [
-      {
-        name: "盐城市盐都区金航财富大厦",
-        place: "金航财富大厦",
-        religious_type: 2,
-        contact: "郭**",
-        contact_number: "15730232627",
-      },
-      {
-        name: "盐城市盐都区金航财富大厦",
-        place: "金航财富大厦",
-        religious_type: 2,
-        contact: "郭**",
-        contact_number: "15730232627",
-      },
-      {
-        name: "盐城市盐都区金航财富大厦",
-        place: "金航财富大厦",
-        religious_type: 2,
-        contact: "郭**",
-        contact_number: "15730232627",
+    const list = ref([]);
+    const searchForm = ref({
+      religiousType: "",
+      name: "",
+      filingNo: "",
+      contact: "",
+      place: "",
+      siteType: "",
+      constructionStage: "",
+      nature: "",
+      state: "",
+      createBy: {
+        id: "",
       },
-    ];
-
+    });
     // 导航栏颜色
     const selectColor = ref(window.localStorage.getItem("MZ_COLOR"));
     //返回取消按钮
@@ -106,40 +100,67 @@ export default {
     const onClickright = () => {
       router.push("/placeRegister");
     };
+    //进入地点详情页面
+    const gotoplaceRegister =(item)=>{
+      var data = JSON.stringify(item);
+      router.push({
+        path: "/placeRegisterInfo",
+        query: { data: data },
+      });
+    }
     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().then((res) => {
-        list.value.push(...res.records);
-        // 加载状态结束
-      });
-      loading.value = false;
-        // 数据全部加载完成
-      finished.value = true;
+      new PlaceRegister()
+        .religiousList({
+          current: index + 1,
+          size: 11,
+          ...searchForm.value
+        })
+        .then(({ records, pages }) => {
+          list.value= list.value.concat(records);
+          // 加载状态结束
+          loading.value = false;
+          if (index + 1 >= pages) {
+            finished.value = true;
+          }
+          index++;
+        });
+    };
+    const onRefresh = () => {
+      // 清空列表数据
+      finished.value = false;
+
+      // 重新加载数据
+      // 将 loading 设置为 true,表示处于加载状态
+      loading.value = true;
+      onLoad();
     };
     // 搜索
     let searchShow = ref(false);
     let searchList = ref([]);
     const searchVal = ref("");
-    const searchValId = ref("");    
+    const searchValId = ref("");
     const onSearch = () => {
       searchShow.value = true;
       searchList.value = [];
-      
     };
     const onCancel = () => {
       searchVal.value = "";
       searchValId.value = "";
-      searchShow.value = false;
-
+      searchShow.value = false
       finished.value = false;
       list.value = [];
       loading.value = true;
       onLoad();
     };
+    
     return {
       //返回取消按钮
       onClickLeft,
@@ -147,17 +168,21 @@ export default {
       onClickright,
       //背景色
       selectColor,
+      searchForm,
       list,
       loading,
       finished,
+      refreshing,
       onLoad,
+      onRefresh,
       //搜索
       searchShow,
       searchVal,
       searchValId,
       searchList,
       onSearch,
-      onCancel, 
+      onCancel,
+      gotoplaceRegister,
     };
   },
 };
@@ -171,7 +196,6 @@ html {
   background-color: #f2f2f2;
 }
 .main {
-   
   .list-item {
     background-color: #fff;
     padding: 10px;
@@ -199,7 +223,7 @@ html {
       overflow: hidden;
     }
     .item_down {
-        overflow: hidden;
+      overflow: hidden;
       width: 100%;
       font-size: 12px;
       .item_down_left {

+ 135 - 83
src/views/placeManage/placeTablet/placeTablet.vue

@@ -1,53 +1,68 @@
 <template>
-  <van-nav-bar fixed title="牌位管理" left-arrow @click-left="onClickLeft" :style="{ 'background-color': selectColor }"/>
-  <div class="PersonList main">
-    <div
-      class="PersonItem"
-      v-for="item in TabletData.data"
-      :key="item.id"
-      @click="goTabletInfo(item)"
-    >
-      <van-row>
-        <van-col span="14">
-          <p>
-            {{ item.brandName }}(<span style="color: #36a7f3">{{
-              item.udCard
-            }}</span
-            >)
-          </p>
-        </van-col>
-        <van-col span="10">
-          <p style="color: #36a7f3;">{{ item.siteName.name }}</p>
-        </van-col>
-      </van-row>
-      <van-row>
-        <van-col span="18">
-          <p>{{ item.nativePlace }}</p>
-        </van-col>
-        <van-col span="6">
-          <p style="color: red" v-if="item.sacrificeExpenses">¥{{ item.sacrificeExpenses }}</p>
-        </van-col>
-      </van-row>
-    </div>
+  <van-nav-bar
+    fixed
+    title="牌位管理"
+    left-arrow
+    @click-left="onClickLeft"
+    @click-right="onClickright"
+    :style="{ 'background-color': selectColor }"
+  >
+   <template #right>
+      <van-icon name="plus" size="18" />
+    </template>
+  </van-nav-bar>
+  <div class="main">
+    <van-search
+      v-model="searchVal"
+      readonly="true"
+      clearable
+      show-action
+      shape="round"
+      placeholder="请输入场所名称"
+      label="场所名称"
+      input-align="center"
+      @search="onSearch"
+      @cancel="onCancel"
+      @click-input="showPlace = true"
+    />
+    <van-pull-refresh v-model="refreshing" @refresh="onRefresh">
+      <van-list
+        v-model:loading="loading"
+        :finished="finished"
+        finished-text="没有更多了"
+        @load="onLoad"
+      >
+        <van-swipe-cell v-for="item in TabletData" :key="item">
+          <div class="list-item" @click="goTabletInfo(item)">
+            <div class="item_top">
+              <div class="item_top_left">
+                {{ item.brandName }}
+              </div>
+              <div class="item_top_right">¥{{ item.sacrificeExpenses }}</div>
+            </div>
+            <div class="item_down">
+              <div class="item_down_left">
+                {{ item.siteName.name }}
+              </div>
+              <div class="item_down_right">场管:{{ item.siteContact }}</div>
+            </div>
+          </div>
+        </van-swipe-cell>
+      </van-list>
+    </van-pull-refresh>
   </div>
 </template>
 
 <script>
-import { reactive, ref } from "vue";
+import { ref } from "vue";
 import { useRouter } from "vue-router";
 import TabletServer from "@/api/tabletManage/TabletServer";
 export default {
   setup() {
-    const TabletData = reactive({
-      data: [], //牌位数据集
-    });
+    const TabletData = ref([]);
     // 导航栏颜色
     const selectColor = ref(window.localStorage.getItem("MZ_COLOR"));
-    //获取牌位数据
-    new TabletServer().list({}).then((res) => {
-      TabletData.data = res.records;
-      //   console.log(TabletData.data);
-    });
+
     //页面跳转以及数据传递
     let router = useRouter();
     const goTabletInfo = (item) => {
@@ -57,15 +72,57 @@ export default {
         query: { data: data },
       });
     };
+    const loading = ref(false);
+    const finished = ref(false);
+    const refreshing = ref(false);
+    let index = 0;
+    const onLoad = () => {
+      loading.value = true;
+      finished.value = false;
+      // 异步更新数据
+      //获取牌位数据
+      new TabletServer()
+        .list({
+          current: index + 1,
+          size: 11,
+        })
+        .then(({ records, pages }) => {
+          TabletData.value = TabletData.value.concat(records);
+          // 加载状态结束
+          loading.value = false;
+          if (index + 1 >= pages) {
+            finished.value = true;
+          }
+          index++;
+        });
+    };
+    const onRefresh = () => {
+      // 清空列表数据
+      finished.value = false;
+      // 重新加载数据
+      // 将 loading 设置为 true,表示处于加载状态
+      loading.value = true;
+      onLoad();
+    };
     //返回
     const onClickLeft = () => {
       history.back();
     };
+    //进入场所录入页面
+    const onClickright = () => {
+      router.push("/placeTabletAdd");
+    };
     return {
       onClickLeft,
+      onClickright,
       TabletData,
+      loading,
+      finished,
+      refreshing,
+      onLoad,
+      onRefresh,
       goTabletInfo,
-      selectColor
+      selectColor,
     };
   },
 };
@@ -85,7 +142,6 @@ html {
   }
   .van-badge__wrapper {
     color: #fff;
-    
   }
 }
 .search {
@@ -95,49 +151,45 @@ html {
     height: 50px;
   }
 }
-.PersonList {
-  background-color: #fff;
-  top:10px !important;
-  height: 100vh;
-  p {
-    margin: 0;
-    padding: 0;
-  }
-  .PersonItem {
-    padding: 10px 10px;
-    font-size: 16px;
-    border-bottom: 1px solid #f2f2f2;
-    .van-row {
-      &:nth-child(1) {
-        margin-bottom: 10px;
-        .van-col {
-          &:nth-child(1) {
-            p {
-              font-weight: 700;
-            }
-          }
-          &:nth-child(2) {
-            p {
-              text-align: right;
-              font-size: 14px;
-            }
-          }
-        }
+.main {
+  .list-item {
+    background-color: #fff;
+    padding: 10px;
+    margin-bottom: 5px;
+    overflow: hidden;
+    .item_top {
+      width: 100%;
+      overflow: hidden;
+      .item_top_left {
+        float: left;
+        width: 80%;
+        font-size: 16px;
       }
-      &:nth-child(2) {
-        .van-col {
-          &:nth-child(1) {
-            p {
-              color: #d0d0d0;
-              font-size: 12px;
-            }
-          }
-          &:nth-child(2) {
-            p {
-              text-align: right;             
-            }
-          }
-        }
+      .item_top_right {
+        float: right;
+        width: 20%;
+        font-size: 14px;
+      }
+    }
+    .item_center {
+      width: 100%;
+      font-size: 12px;
+      color: #808080;
+      text-align: left;
+      overflow: hidden;
+    }
+    .item_down {
+      overflow: hidden;
+      width: 100%;
+      font-size: 12px;
+      .item_down_left {
+        width: 70%;
+        float: left;
+      }
+      .item_down_right {
+        width: 30%;
+        text-align: center;
+        float: left;
       }
     }
   }

+ 445 - 0
src/views/placeManage/placeTablet/placeTabletAdd.vue

@@ -0,0 +1,445 @@
+<template>
+  <van-nav-bar
+    fixed
+    title="牌位信息录入"
+    left-arrow
+    @click-left="onClickLeft"
+    :style="{ 'background-color': selectColor }"
+  />
+  <div class="main">
+    <van-cell-group>
+      <van-field
+        v-model="inputForm.brandName"
+        center
+        required
+        label="牌位名称:"
+        placeholder="请填写证件号码"
+        input-align="right"
+      />
+    </van-cell-group>
+    <van-cell-group>
+      <van-field
+        v-model="locationName"
+        readonly
+        required
+        label="所属场所:"
+        placeholder="请选择所属场所"
+        input-align="right"
+        right-icon="arrow-down"
+        @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="inputForm.siteContact"
+        center
+        disabled
+        label="场所联系人:"
+        placeholder="请填写场所联系人"
+        input-align="right"
+      />
+    </van-cell-group>
+    <van-cell-group>
+      <van-field
+        v-model="inputForm.contactInformation"
+        center
+        disabled
+        label="联系方式:"
+        placeholder="请填写联系方式"
+        input-align="right"
+      />
+    </van-cell-group>
+    <van-cell-group>
+      <van-field
+        v-model="inputForm.memorialTabletHolder"
+        center
+        label="供奉牌位人:"
+        placeholder="请填写供奉牌位人"
+        input-align="right"
+      />
+    </van-cell-group>
+    <van-cell-group>
+      <van-field
+        v-model="inputForm.memorialTabletHolderPhone"
+        center
+        label-width="8em"
+        label="供奉牌位人电话:"
+        placeholder="请填写供奉牌位人电话"
+        input-align="right"
+      />
+    </van-cell-group>
+    <van-cell-group>
+      <van-field
+        v-model="inputForm.udCard"
+        center
+        required
+        label="身份证号:"
+        placeholder="请填写身份证号"
+        input-align="right"
+      />
+    </van-cell-group>
+    <van-cell-group>
+      <van-field
+        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="inputForm.currentResidence"
+        center
+        readonly
+        label="现居地:"
+        placeholder="请填写现居地"
+        input-align="right"
+        right-icon="arrow-down"
+        @click="showPlace1 = true"
+      />
+      <van-popup v-model:show="showPlace1" round position="bottom">
+        <van-picker
+          title="现居地选择"
+          :columns="options"
+          :columns-field-names="customFieldName"
+          @cancel="showPlace1 = false"
+          @confirm="getPlace1"
+        />
+      </van-popup>
+    </van-cell-group>
+    <van-cell-group>
+      <van-field
+        v-model="inputForm.currentResidenceDel"
+        center
+        label="现居地详情:"
+        placeholder="请填写现居地详情"
+        input-align="right"
+      />
+    </van-cell-group>
+    <van-cell-group>
+      <van-field
+        v-model="inputForm.relationship"
+        center
+        label-width="8em"
+        label="与供奉牌位关系:"
+        placeholder="请填写与供奉牌位关系"
+        input-align="right"
+      />
+    </van-cell-group>
+    <van-cell-group>
+      <van-field
+        v-model="inputForm.sacrificeExpenses"
+        center
+        label-width="10em"
+        label="供奉费用(元/年):"
+        placeholder="请填写供奉费用"
+        input-align="right"
+      />
+    </van-cell-group>
+    <van-cell-group>
+      <van-field
+        v-model="inputForm.position"
+        center
+        label="牌位位置:"
+        placeholder="请填写牌位位置"
+        input-align="right"
+      />
+    </van-cell-group>
+    <van-cell-group>
+      <van-field
+        v-model="inputForm.information"
+        rows="2"
+        autosize
+        label-width="8em"
+        label="被供奉者信息:"
+        type="textarea"
+        maxlength="50"
+        placeholder="请填写被供奉者信息"
+        show-word-limit
+        input-align="right"
+      />
+    </van-cell-group>
+    <van-cell-group>
+      <van-field name="uploader" label-align="top" label="工作照片:">
+        <template #input>
+          <van-uploader
+            v-model="fileList"
+            :after-read="afterRead1"
+            :max-count="6"
+            capture="camera"
+            accept=""
+            :before-delete="fjdelete"
+          >
+          </van-uploader>
+        </template>
+      </van-field>
+    </van-cell-group>
+    <div class="subbtn">
+      <van-button type="primary" @click="submit">提交</van-button>
+      <van-button @click="onClickLeft" type="default" hairline>取消</van-button>
+    </div>
+  </div>
+</template>
+
+<script>
+import { onMounted, ref } from "vue";
+import TabletServer from "@/api/tabletManage/TabletServer";
+import placePerson from "@/api/placePerson/placePerson";
+import PlaceRegister from "@/api/placeRegister/placeRegister";
+import tools from "@/api/sys/tools";
+export default {
+  setup() {
+    const onClickLeft = () => {
+      history.back();
+    };
+    const inputForm = ref({
+      id: "",
+      brandName: "",
+      siteName: {
+        id: "",
+      },
+      siteContact: "",
+      contactInformation: "",
+      memorialTabletHolder: "",
+      memorialTabletHolderPhone: "",
+      udCard: "",
+      nativePlace: "",
+      currentResidence: "",
+      currentResidenceDel: "",
+      relationship: "",
+      sacrificeExpenses: "",
+      position: "",
+      state: "0",
+      keepOnRecord: "0",
+      pic: "",
+      information: "",
+    });
+    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 locationName = ref("");
+    const checked = ref("");
+    const sitelist = ref([]);
+    let hs_site = ref(false);
+    const getsite = (val) => {
+      locationName.value = val.name;
+      const json = Object.assign(inputForm.value, {
+        siteName: { id: val.id },
+        siteContact: val.contact,
+        contactInformation: val.contactNumber,
+      });
+      inputForm.value = json;
+      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 customFieldName = {
+      text: "name",
+      value: "id",
+    };
+    const options = ref([]);
+    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.value, { nativePlace: str });
+      inputForm.value = json;
+    };
+    //现居地
+    let placeAddress = ref("");
+    let showPlace1 = ref(false);
+    const getPlace1 = ({ selectedOptions }) => {
+      showPlace1.value = false;
+      let str1 = "";
+      selectedOptions.forEach((item) => {
+        if (inputForm.currentResidence) {
+          str1 = inputForm.currentResidence;
+        }
+        str1 += item.name + "/";
+      });
+      const json = Object.assign(inputForm.value, {
+        currentResidence: str1,
+      });
+      inputForm.value = json;
+    };
+    //图片上传
+    let fileList = ref([]);
+    let fileImg = ref([]);
+    let workpic = ref("");
+    const afterRead1 = (file) => {
+      new tools()
+        .uploadFile(file, `sys/file/webupload/upload`)
+        .then(({ data }) => {
+          data.name = decodeURIComponent(
+            data.url.substring(data.url.lastIndexOf("/") + 1)
+          );
+          workpic.value += "" + data.url;
+          const json = Object.assign(inputForm.value, {
+            pic: workpic.value,
+          });
+          inputForm.value = json;
+          fileImg.value.push(data);
+        });
+    };
+    const fjdelete = (file) => {
+      //删除文件操作
+      for (let index = 0; index < fileList.value.length; index++) {
+        if (file.file == fileList.value[index].file) {
+          let delurl = fileImg.value[index].url;
+          new tools().uploadFiledelete("", delurl).then(({ data }) => {});
+          fileImg.value.splice(index, 1);
+          fileList.value.splice(index, 1);
+        }
+      }
+    };
+    //数据提交
+    const submit = () => {
+      new TabletServer().save(inputForm.value).then((res) => {
+        console.log(res);
+        if (res.status == 200) {
+          xm.showToast({
+            message: "人员添加成功",
+          });
+          router.push({
+            path: "/placeTablet",
+          });
+        }else{
+          xm.showToast({
+            message: "人员添加失败",
+          });
+          console.log(res);
+        }
+      });
+    };
+    return {
+      inputForm,
+      onClickLeft,
+      //所属场所
+      locationName,
+      checked,
+      hs_site,
+      getsite,
+      sitelist,
+      loading,
+      finished,
+      onLoad,
+      refreshing,
+      //籍贯
+      nativePlace,
+      hs_nativePlace,
+      getnativePlace,
+      customFieldName,
+      //现居地
+      options,
+      placeAddress,
+      showPlace1,
+      getPlace1,
+      //图片上传
+      fileList,
+      afterRead1,
+      //图片删除
+      fjdelete,
+      submit
+    };
+  },
+};
+</script>
+
+<style>
+.dialog {
+  width: 100%;
+  height: 400px;
+  overflow: auto;
+}
+.subbtn {
+  margin: 20px;
+  text-align: center;
+}
+.subbtn .van-button {
+  width: 40%;
+  margin: 5px;
+}
+</style>