فهرست منبع

Merge branch 'master' of http://123.57.226.179:8080/yin_yu820/HS_MZAP

guoqing 2 سال پیش
والد
کامیت
92ac292632
28فایلهای تغییر یافته به همراه1396 افزوده شده و 194 حذف شده
  1. 7 12
      public/index.html
  2. 5 0
      src/api/nonReligiousInformation/nonReligiousInformationService.js
  3. 8 1
      src/api/placeActivity/placeActivityServer.js
  4. 5 7
      src/api/privateparty/PrivatePartyPointService.js
  5. 5 0
      src/api/religiousConference/religiousConferenceService.js
  6. 5 0
      src/api/securityFacilitiesErr/securityFacilitiesErrService.js
  7. 6 1
      src/api/siteInspection/siteInspectionService.js
  8. 14 0
      src/api/sys/tools.js
  9. 56 0
      src/router/index.js
  10. 0 3
      src/store/index.js
  11. 23 4
      src/utils/request.js
  12. 12 2
      src/views/activityMan/differentbelievers/ReligiousPeopleReportInfo.vue
  13. 120 46
      src/views/activityMan/differentbelievers/ReligiousPeopleReportList.vue
  14. 147 0
      src/views/activityMan/nonReligiousInformation/nonReligiousInformationInfo.vue
  15. 9 1
      src/views/activityMan/nonReligiousInformation/nonReligiousInformationList.vue
  16. 31 6
      src/views/activityMan/personList.vue
  17. 7 1
      src/views/activityMan/placeactivity/placeActivityInfo.vue
  18. 124 49
      src/views/activityMan/placeactivity/placeActivityList.vue
  19. 98 0
      src/views/activityMan/religiousConference/religiousConferenceInfo.vue
  20. 8 0
      src/views/activityMan/religiousConference/religiousConferenceList.vue
  21. 99 0
      src/views/activityMan/securityFacilitiesErr/securityFacilitiesErrInfo.vue
  22. 8 0
      src/views/activityMan/securityFacilitiesErr/securityFacilitiesErrList.vue
  23. 360 4
      src/views/activityMan/securityFacilitiesErr/securityFacilitiesErrView.vue
  24. 7 1
      src/views/activityMan/selfMeetingReport/selfMeetingInfo.vue
  25. 120 50
      src/views/activityMan/selfMeetingReport/selfMeetingList.vue
  26. 98 0
      src/views/activityMan/siteInspection/siteInspectionInfo.vue
  27. 12 4
      src/views/activityMan/siteInspection/siteInspectionList.vue
  28. 2 2
      src/views/activityMan/siteInspection/siteInspectionView.vue

+ 7 - 12
public/index.html

@@ -1,25 +1,20 @@
 <!DOCTYPE html>
 <html lang="">
-
-<head>
+  <head>
     <meta charset="utf-8">
     <meta http-equiv="X-UA-Compatible" content="IE=edge">
     <meta name="viewport" content="width=device-width,initial-scale=1.0">
     <link rel="icon" href="<%= BASE_URL %>favicon.ico">
-    <title>
-        <%= htmlWebpackPlugin.options.title %>
-    </title>
+    <title><%= htmlWebpackPlugin.options.title %></title>
 
     <!--小程序SDK 只有在小程序容器中才能加载到 -->
-    <script src="shinemosdk://20000/index.js"></script>
-</head>
-
-<body>
+	  <script src="shinemosdk://20000/index.js"></script>
+  </head>
+  <body>
     <noscript>
       <strong>We're sorry but <%= htmlWebpackPlugin.options.title %> doesn't work properly without JavaScript enabled. Please enable it to continue.</strong>
     </noscript>
     <div id="app"></div>
     <!-- built files will be auto injected -->
-</body>
-
-</html>
+  </body>
+</html>

+ 5 - 0
src/api/nonReligiousInformation/nonReligiousInformationService.js

@@ -7,6 +7,11 @@ export default class nonReligiousInformationService {
             inputForm
         )
     }
+    queryById(id) {
+        return request.get(
+            '/nonreligiousinformation/nonReligiousInformation/queryById', { id: id }
+        )
+    };
     list(params) {
         return request.get(
             `/nonreligiousinformation/nonReligiousInformation/list`,

+ 8 - 1
src/api/placeActivity/placeActivityServer.js

@@ -20,6 +20,13 @@ export default class placeActivityServer {
         )
     };
     queryListLonginId() {
-        return request.get('/reporting/reportingActivities/queryListLonginId')
+        return request.get(
+            '/reporting/reportingActivities/queryListLonginId'
+        )
+    };
+    delete(ids) {
+        return request.delete(
+            '/reporting/reportingActivities/delete', { ids: ids }
+        )
     }
 }

+ 5 - 7
src/api/privateparty/PrivatePartyPointService.js

@@ -8,13 +8,11 @@ export default class PrivatePartyPointService {
         )
     }
 
-    // delete(ids) {
-    //     return request({
-    //         url: '/privateparty/privatePartyPoint/delete',
-    //         method: 'delete',
-    //         params: { ids: ids }
-    //     })
-    // }
+    delete(ids) {
+        return request.delete(
+            '/privateparty/privatePartyPoint/delete', { ids: ids }
+        )
+    }
 
     queryById(id) {
         return request.get(

+ 5 - 0
src/api/religiousConference/religiousConferenceService.js

@@ -7,6 +7,11 @@ export default class religiousConferenceService {
             inputForm
         )
     }
+    queryById(id) {
+        return request.get(
+            '/zzcssb/religiousConference/queryById', { id: id }
+        )
+    };
     list(params) {
         return request.get(
             `/zzcssb/religiousConference/list`,

+ 5 - 0
src/api/securityFacilitiesErr/securityFacilitiesErrService.js

@@ -7,6 +7,11 @@ export default class securityFacilitiesErrService {
             inputForm
         )
     }
+    queryById(id) {
+        return request.get(
+            '/afssyc/securityFacilitiesErr/queryById', { id: id }
+        )
+    };
     list(params) {
         return request.get(
             `/afssyc/securityFacilitiesErr/list`,

+ 6 - 1
src/api/siteInspection/siteInspectionServer.js → src/api/siteInspection/siteInspectionService.js

@@ -1,5 +1,5 @@
 import request from '@/utils/request'
-export default class siteInspectionServer {
+export default class siteInspectionService {
     // 保存
     save(inputForm) {
         return request.post(
@@ -7,6 +7,11 @@ export default class siteInspectionServer {
             inputForm
         )
     }
+    queryById(id) {
+        return request.get(
+            '/csjcqk/siteInspection/queryById', { id: id }
+        )
+    };
     list(params) {
         return request.get(
             `/csjcqk/siteInspection/list`,

+ 14 - 0
src/api/sys/tools.js

@@ -9,6 +9,20 @@ export default class Tools {
             params
         )
     };
+    //视频音频点位列表
+    videoPointList(params) {
+        return request.get(
+            `/religioussites/videopoint/videoPoint/list`,
+            params
+        )
+    }; 
+    //消防点位列表
+    fireStationList(params) {
+        return request.get(
+            `/religioussites/fire/fireEquipment/list`,
+            params
+        )
+    };    
     // 文件上传
     uploadFile(formData, uploadPath) {
         return request.uploadFile(

+ 56 - 0
src/router/index.js

@@ -56,7 +56,23 @@ const routes = [{
         meta: {
             isShowTarbar: true,
         }
+    },{
+        path: '/siteInspectionInfo',
+        name: 'siteInspectionInfo',
+        component: () =>
+            import ('../views/activityMan/siteInspection/siteInspectionInfo.vue'),
+        meta: {
+            isShowTarbar: true,
+        }
     }, {
+        path: '/securityFacilitiesErrView',
+        name: 'securityFacilitiesErrView',
+        component: () =>
+            import ('../views/activityMan/securityFacilitiesErr/securityFacilitiesErrView.vue'),
+        meta: {
+            isShowTarbar: true,
+        }
+    },{
         path: '/securityFacilitiesErrList',
         name: 'securityFacilitiesErrList',
         component: () =>
@@ -65,6 +81,22 @@ const routes = [{
             isShowTarbar: true,
         }
     }, {
+        path: '/securityFacilitiesErrInfo',
+        name: 'securityFacilitiesErrInfo',
+        component: () =>
+            import ('../views/activityMan/securityFacilitiesErr/securityFacilitiesErrInfo.vue'),
+        meta: {
+            isShowTarbar: true,
+        }
+    },{
+        path: '/religiousConferenceView',
+        name: 'religiousConferenceView',
+        component: () =>
+            import ('../views/activityMan/religiousConference/religiousConferenceView.vue'),
+        meta: {
+            isShowTarbar: true,
+        }
+    },{
         path: '/religiousConferenceList',
         name: 'religiousConferenceList',
         component: () =>
@@ -73,6 +105,22 @@ const routes = [{
             isShowTarbar: true,
         }
     }, {
+        path: '/religiousConferenceInfo',
+        name: 'religiousConferenceInfo',
+        component: () =>
+            import ('../views/activityMan/religiousConference/religiousConferenceInfo.vue'),
+        meta: {
+            isShowTarbar: true,
+        }
+    }, {
+        path: '/nonReligiousInformationView',
+        name: 'nonReligiousInformationView',
+        component: () =>
+            import ('../views/activityMan/nonReligiousInformation/nonReligiousInformationView.vue'),
+        meta: {
+            isShowTarbar: true,
+        }
+    },{
         path: '/nonReligiousInformationList',
         name: 'nonReligiousInformationList',
         component: () =>
@@ -80,6 +128,14 @@ const routes = [{
         meta: {
             isShowTarbar: true,
         }
+    },{
+        path: '/nonReligiousInformationInfo',
+        name: 'nonReligiousInformationInfo',
+        component: () =>
+            import ('../views/activityMan/nonReligiousInformation/nonReligiousInformationInfo.vue'),
+        meta: {
+            isShowTarbar: true,
+        }
     }, {
         path: '/toBeDone',
         name: 'toBeDone',

+ 0 - 3
src/store/index.js

@@ -14,11 +14,8 @@ const store =createStore({
             window.localStorage.setItem(TOKEN_Key,state.user);
         },
         setPcToken(state,data){
-            console.log("设置token1");
             state.pctoken=data;
-            console.log("设置token2");
             window.localStorage.setItem(PCTOKEN_Key,state.pctoken);
-            console.log("设置token3"+state.pctoken);
         },
         setSelectColor(state,data){
             state.selectcolor=data;

+ 23 - 4
src/utils/request.js

@@ -90,8 +90,10 @@ var http = {
                 url: url,
                 method: 'get',
                 params: params,
-                // params: params,
-                config: config
+                config: config,
+                cancelToken: new axios.CancelToken(function executor(c) {
+                    cancel = c;
+                })
             }).then((response) => {
                 resolve(response.data)
             }).catch((error) => {
@@ -135,8 +137,6 @@ var http = {
      * 文件上传
      * @param {*} url      请求地址
      * @param {*} data     请求参数
-     * @param {*} params   请求参数,拼接再url地址栏后面,无需求时忽略该参数
-     * @param {*} config   请求的config相关配置
      * @returns
      */
     uploadFile: function(url, data = {}) {
@@ -152,6 +152,25 @@ var http = {
                 reject(error)
             })
         })
+    },
+    /**
+     * 删除
+     * @param {*} url      请求地址
+     * @param {*} data     请求参数
+     * @returns
+     */
+    delete: function(url, data = {}) {
+        return new Promise((resolve, reject) => {
+            axios({
+                url: url,
+                method: 'delete',
+                params: data,
+            }).then((response) => {
+                resolve(response);
+            }).catch((error) => {
+                reject(error)
+            })
+        })
     }
 }
 

+ 12 - 2
src/views/activityMan/differentbelievers/ReligiousPeopleReportInfo.vue

@@ -16,14 +16,24 @@
     <div class="info">
       <p>异常人员姓名:{{ inputForm.abnormalName }}</p>
       <p>人员身份证号:{{ inputForm.abnormalIdcar }}</p>
-      <p>性别:{{ inputForm.sex }}</p>
+      <p>
+        性别:
+        <span v-if="inputForm.sex == 1">男</span>
+        <span v-if="inputForm.sex == 2">女</span>
+      </p>
       <p>手机号:{{ inputForm.abnormalPhone }}</p>
       <p>籍贯:{{ inputForm.nativePlace }}</p>
       <p>现居地:{{ inputForm.currentResidence }}</p>
       <p>现居地详情:{{ inputForm.currentResidenceDetail }}</p>
       <p>异常行为:{{ inputForm.abnormalBehavior }}</p>
     </div>
-    <van-button type="primary" class="btn-sub" @click="update">审核</van-button>
+    <van-button
+      v-if="inputForm.assessment == 0"
+      type="primary"
+      class="btn-sub"
+      @click="update"
+      >审核</van-button
+    >
   </div>
 </template>
       

+ 120 - 46
src/views/activityMan/differentbelievers/ReligiousPeopleReportList.vue

@@ -8,12 +8,22 @@
     @click-right="onClickRight"
   />
   <div class="main">
-    <van-search v-model="value" shape="round" placeholder="请输入搜索关键词" />
+    <van-search
+      v-model="searchVal"
+      clearable
+      show-action
+      shape="round"
+      placeholder="请输入搜索关键词"
+      label="姓名"
+      input-align="center"
+      @search="onSearch"
+      @cancel="onCancel"
+    />
     <van-tabs
+      v-show="!searchShow"
       v-model:active="active"
       title-inactive-color="#bdbdbd"
       title-active-color="#36a7f3"
-      @click-tab="onClickTab"
     >
       <van-tab title="未审核" name="0">
         <van-list
@@ -41,7 +51,13 @@
               </van-cell>
             </div>
             <template #right>
-              <van-button square type="danger" text="删除" class="button" />
+              <van-button
+                square
+                type="danger"
+                text="删除"
+                class="button"
+                @click="beforeClose(item.id)"
+              />
               <van-button
                 square
                 type="primary"
@@ -60,11 +76,7 @@
           finished-text="没有更多了"
           @load="onLoad"
         >
-          <van-swipe-cell
-            v-for="item in list"
-            :key="item"
-            :before-close="beforeClose"
-          >
+          <van-swipe-cell v-for="item in readList" :key="item">
             <div class="list_item" @click="goInfo(item.id)">
               <div class="item-left">
                 <p style="color: #c4c4c4">{{ item.partyTime }}</p>
@@ -82,10 +94,42 @@
         </van-list>
       </van-tab>
     </van-tabs>
+    <!-- 搜索结果 -->
+    <van-list
+      v-show="searchShow"
+      v-model:loading="loading"
+      :finished="finished"
+      finished-text="没有更多了"
+      @load="onLoad"
+    >
+      <van-swipe-cell v-for="item in searchList" :key="item">
+        <div class="list_item" @click="goInfo(item.id)">
+          <div class="item-left">
+            <p style="color: #c4c4c4">{{ item.partyTime }}</p>
+            <p style="color: red">已审核</p>
+          </div>
+          <van-cell is-link>
+            <template #title>
+              <p>异常人员:{{ item.abnormalName }}</p>
+              <p>身份证号:{{ item.abnormalIdcar }}</p>
+              <p>异常行为:{{ item.abnormalBehavior }}</p>
+            </template>
+          </van-cell>
+        </div>
+      </van-swipe-cell>
+    </van-list>
+    <van-dialog
+      v-model:show="showDel"
+      show-cancel-button
+      confirmButtonText="删除"
+      message="请确认删除该记录"
+      @confirm="Itemdel"
+    >
+    </van-dialog>
   </div>
 </template>
     
-    <script>
+<script>
 import { ref } from "vue";
 import ReligiousPeopleReportService from "@/api/differentbelievers/ReligiousPeopleReportService";
 import { useRouter } from "vue-router";
@@ -99,60 +143,84 @@ export default {
     const onClickRight = () => {
       router.push("/differentbelievers");
     };
-    const value = ref("");
     // 切换
     let active = ref(0);
-    const onClickTab = (val) => {
-      // 清空列表数据
-      finished.value = false;
-      list.value = [];
-      // 重新加载数据
-      // 将 loading 设置为 true,表示处于加载状态
-      loading.value = true;
-      if (val.name == 0) {
-        onLoad(0);
-      } else {
-        onLoad(1);
-      }
-    };
-    // 列表
+    // 未审核列表
     let list = ref([]);
+    // 已审核列表
+    let readList = ref([]);
     const loading = ref(false);
     const finished = ref(false);
     let index = 0;
-    const onLoad = (val) => {
+    const onLoad = () => {
+      loading.value = true;
+      finished.value = false;
       // 异步更新数据
       new ReligiousPeopleReportService()
         .list({
           current: index + 1,
           size: 10,
-          assessment: val ? val : 0,
         })
-        .then((res) => {
-          list.value.push(...res.records);
+        .then(({ records, total }) => {
+          records.forEach((item) => {
+            if (item.assessment == 0) {
+              list.value.push(item);
+            } else {
+              readList.value.push(item);
+            }
+          });
           // 加载状态结束
           loading.value = false;
+          let page = parseInt(total / 10);
+
           // 数据全部加载完成
-          if (res.records.length < 10) {
+          if (index >= page || total < 10) {
             finished.value = true;
+          } else {
+            index++;
           }
-          index++;
         });
     };
+    // 搜索
+    let searchShow = ref(false);
+    let searchList = ref([]);
+    const searchVal = ref("");
+    const onSearch = () => {
+      searchShow.value = true;
+      searchList.value = [];
+      new ReligiousPeopleReportService()
+        .list({
+          current: 1,
+          size: 10000,
+          abnormalName: searchVal.value,
+        })
+        .then(({ records }) => {
+          searchList.value.push(...records);
+          // 加载状态结束
+          loading.value = false;
+        });
+    };
+    const onCancel = () => {
+      searchVal.value = "";
+      searchShow.value = false;
+    };
     // 删除确认
-    const beforeClose = ({ position }) => {
-      switch (position) {
-        case "left":
-        case "cell":
-        case "outside":
-          return true;
-        case "right":
-          return new Promise((resolve) => {
-            showConfirmDialog({
-              title: "确定删除吗?",
-            }).then(resolve);
-          });
-      }
+    let showDel = ref(false);
+    let ids = ref("");
+    const beforeClose = (val) => {
+      showDel.value = true;
+      ids.value = val;
+    };
+    // 删除
+    const Itemdel = () => {
+      new ReligiousPeopleReportService().delete(ids.value).then((res) => {
+        console.log("删除", res);
+        index = 0;
+        loading.value = true;
+        list.value = [];
+        readList.value = [];
+        onLoad();
+      });
     };
     let router = useRouter();
     // 修改跳转
@@ -171,17 +239,23 @@ export default {
     };
     return {
       active,
-      onClickTab,
       onClickLeft,
       list,
+      readList,
       onLoad,
       loading,
       finished,
-      value,
+      searchShow,
+      searchVal,
+      searchList,
+      onSearch,
+      onCancel,
       onClickRight,
-      beforeClose,
       updateItem,
       goInfo,
+      showDel,
+      beforeClose,
+      Itemdel,
     };
   },
 };

+ 147 - 0
src/views/activityMan/nonReligiousInformation/nonReligiousInformationInfo.vue

@@ -0,0 +1,147 @@
+<template>
+
+    <van-loading size="16px" v-if="isLoading">加载中...</van-loading>
+    <div class="main" v-if="!isLoading">
+      <div class="banner">
+        <h2>扎实提升“三力”</h2>
+        <h2>深入推进“三化”</h2>
+        <h2>坚持“三个思维”</h2>
+      </div>
+      <div class="info">
+        <p>非宗教类别:{{ getCategories(info.nonReligiousCategories) }}</p>
+        <p>组织名称:{{ info.siteName.name }}</p>
+        <p>时&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;间:{{ info.reportingTime }}</p>
+        <p>地&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;点:{{ info.placeSelectName }}</p>
+        <p>详细地址:{{ info.placeDetailed }}</p>
+        <p>事件概述:{{ info.eventOverview }}</p>
+        <p>事件内容:{{ info.eventContent }}</p>
+      </div>
+      <van-button v-if="canAudit" type="primary" class="btn-sub">审核</van-button>
+    </div>
+  </template>
+    
+    <script>
+  import { ref } from "vue";
+  import nonReligiousInformationService from "@/api/nonReligiousInformation/nonReligiousInformationService";
+  import UserManage from "@/api/user/UserManage";
+  import { useRoute } from "vue-router";
+  export default {
+    setup() {
+      window.xm.setNavigationBarTitle({ title: '其他有害信息详情'})
+      let isLoading = ref(true);
+      let canAudit = ref(false);
+      // 活动信息
+      const info = ref({        
+      });
+      let route = useRoute();
+      new nonReligiousInformationService().queryById(route.query.id).then((data) => {
+        info.value = data;
+        if(data.assessment=="0"){
+          canAudit.value = true;
+        }else{
+          canAudit.value = false;
+        }      
+
+        isLoading.value = false;
+      });
+
+        //字典配置
+        const getCategories= (key ) => {
+            let re="";
+            switch(key){
+            case "1":
+                re="宗教组织";
+                break;
+            case "10":
+                re="邪教组织";
+                break;
+            case "11":
+                re="地下神学院";
+                break;
+            case "2":
+                re="地下教会";
+                break;
+            case "3":
+                re="韩美境外渗透组织";
+                break;
+            case "4":
+                re="本地精神控制类有害培训机构";
+                break;      
+            case "5":
+                re="“呼喊派”骨干组织";
+                break;
+            case "6":
+                re="“改革宗”地下教会组织";
+                break;
+            case "7":
+                re="藏传佛教本地组织";
+                break;
+            case "8":
+                re="学生传教组织";
+                break;
+            case "9":
+                re="“义诊医疗”地下教会组织";
+                break;
+            case "91":
+                re="“亚文化”传教组织";
+                break;
+            case "92":
+                re="重点公司组织";
+                break;          
+            }
+            return re;
+        };
+
+      return {
+        info,
+        isLoading,
+        canAudit,
+        getCategories,
+      };
+    },
+  };
+  </script>
+    
+  <style lang="less">
+  .main {
+    background: #fff;
+    position: relative;
+    top: 40px;
+  }
+  .banner {
+    background-color: #36a7f3;
+    padding: 20px 50px 40px 50px;
+    color: #fff;
+    h2 {
+      &:nth-child(1) {
+        margin-top: 0px;
+        text-align: left;
+      }
+      &:nth-child(2) {
+        text-align: center;
+      }
+      &:nth-child(3) {
+        text-align: right;
+      }
+    }
+  }
+  .info {
+    position: relative;
+    width: 86vw;
+    margin: 10px auto;
+    padding: 10px;
+    background: #fff;
+    border-radius: 20px;
+    top: -50px;
+    font-size: 14px;
+  }
+  .btn-sub {
+    width: 90%;
+    border-radius: 20px;
+    margin-left: 5%;
+  }
+  .van-loading {
+    text-align: center;
+    margin-top: 80px;
+  }
+  </style>

+ 9 - 1
src/views/activityMan/nonReligiousInformation/nonReligiousInformationList.vue

@@ -207,6 +207,13 @@ setup() {
         });
     }
   };
+  // 详情跳转
+  const goInfo = (val) => {
+      router.push({
+        path: "/nonReligiousInformationInfo",
+        query: { id: val },
+      });
+    };
   return {
     onClickLeft,
     onClickTab,
@@ -215,9 +222,10 @@ setup() {
     getCategories,
     loading,
     finished,
-    value,
+    value,    
     onClickRight,
     tabIndex,
+    goInfo,
     beforeClose,
   };
 },

+ 31 - 6
src/views/activityMan/personList.vue

@@ -1,9 +1,12 @@
 <template>
   <div class="personList">
     <van-search
-      v-model="value"
+      v-model="searchVal"
+      clearable
       show-action
+      shape="round"
       placeholder="请输入搜索关键词"
+      input-align="center"
       @search="onSearch"
       @cancel="onCancel"
     />
@@ -81,17 +84,39 @@ export default {
           list.value.push(...records);
           // 加载状态结束
           loading.value = false;
-          index++;
           // 数据全部加载完成
           if (records.length < 10) {
             finished.value = true;
+          } else {
+            index++;
           }
         });
     };
     // 搜索
-    const value = ref("");
-    const onSearch = (val) => showToast(val);
-    const onCancel = () => showToast("取消");
+    const searchVal = ref("");
+    const onSearch = () => {
+      new UserManage()
+        .list({
+          current: 1,
+          size: 10000,
+          name: searchVal.value,
+        })
+        .then(({ records }) => {
+          list.value = [];
+          list.value.push(...records);
+          // 加载状态结束
+          loading.value = false;
+          // 数据全部加载完成
+          finished.value = true;
+        });
+    };
+    const onCancel = () => {
+      searchVal.value = "";
+      list.value = [];
+      index = 0;
+      finished.value = false;
+      onLoad();
+    };
     // 选择人员
     const checked = ref([]);
     const checkboxRefs = ref([]);
@@ -117,7 +142,7 @@ export default {
       loading,
       finished,
       // 搜索
-      value,
+      searchVal,
       onSearch,
       onCancel,
       // 全选

+ 7 - 1
src/views/activityMan/placeactivity/placeActivityInfo.vue

@@ -35,7 +35,13 @@
         v-model="placeActivity.subjectContent"
       />
     </div>
-    <van-button type="primary" class="btn-sub" @click="update">审核</van-button>
+    <van-button
+      v-if="placeActivity.assessment == 0"
+      type="primary"
+      class="btn-sub"
+      @click="update"
+      >审核</van-button
+    >
   </div>
 </template>
   

+ 124 - 49
src/views/activityMan/placeactivity/placeActivityList.vue

@@ -9,12 +9,22 @@
     @click-right="onClickRight"
   />
   <div class="main">
-    <van-search v-model="value" shape="round" placeholder="请输入搜索关键词" />
+    <van-search
+      v-model="searchVal"
+      clearable
+      show-action
+      shape="round"
+      placeholder="请输入搜索关键词"
+      label="活动名称"
+      input-align="center"
+      @search="onSearch"
+      @cancel="onCancel"
+    />
     <van-tabs
+      v-show="!searchShow"
       v-model:active="active"
       title-inactive-color="#bdbdbd"
       title-active-color="#36a7f3"
-      @click-tab="onClickTab"
     >
       <van-tab title="未审核" name="0">
         <van-list
@@ -23,11 +33,7 @@
           finished-text="没有更多了"
           @load="onLoad"
         >
-          <van-swipe-cell
-            v-for="item in list"
-            :key="item"
-            :before-close="beforeClose"
-          >
+          <van-swipe-cell v-for="item in list" :key="item">
             <div class="list_item" @click="goInfo(item.id)">
               <div class="item-left">
                 <p style="color: #c4c4c4">{{ item.activityTime }}</p>
@@ -45,7 +51,13 @@
               </van-cell>
             </div>
             <template #right>
-              <van-button square type="danger" text="删除" class="button" />
+              <van-button
+                square
+                type="danger"
+                text="删除"
+                class="button"
+                @click="beforeClose(item.id)"
+              />
               <van-button
                 square
                 type="primary"
@@ -64,11 +76,7 @@
           finished-text="没有更多了"
           @load="onLoad"
         >
-          <van-swipe-cell
-            v-for="item in list"
-            :key="item"
-            :before-close="beforeClose"
-          >
+          <van-swipe-cell v-for="item in readList" :key="item">
             <div class="list_item" @click="goInfo(item.id)">
               <div class="item-left">
                 <p style="color: #c4c4c4">{{ item.activityTime }}</p>
@@ -89,6 +97,44 @@
         </van-list>
       </van-tab>
     </van-tabs>
+    <!-- 搜索结果 -->
+    <van-list
+      v-show="searchShow"
+      v-model:loading="loading"
+      :finished="finished"
+      finished-text="没有更多了"
+      @load="onLoad"
+    >
+      <van-swipe-cell v-for="item in searchList" :key="item">
+        <div class="list_item" @click="goInfo(item.id)">
+          <div class="item-left">
+            <p style="color: #c4c4c4">{{ item.activityTime }}</p>
+            <p style="color: red">
+              <span v-if="item.assessment == 1">已审核</span>
+              <span v-else>待审核</span>
+            </p>
+          </div>
+          <van-cell is-link>
+            <template #title>
+              {{ item.reporter.name }}申请于{{ item.placeDel }}举办{{
+                item.activityName
+              }}活动
+            </template>
+            <template #label>
+              {{ item.place }}
+            </template>
+          </van-cell>
+        </div>
+      </van-swipe-cell>
+    </van-list>
+    <van-dialog
+      v-model:show="showDel"
+      show-cancel-button
+      confirmButtonText="删除"
+      message="请确认删除该记录"
+      @confirm="Itemdel"
+    >
+    </van-dialog>
   </div>
 </template>
 
@@ -110,59 +156,82 @@ export default {
     };
     // 切换
     let active = ref(0);
-    const onClickTab = (val) => {
-      // 清空列表数据
-      finished.value = false;
-      list.value = [];
-      // 重新加载数据
-      // 将 loading 设置为 true,表示处于加载状态
-      loading.value = true;
-      if (val.name == 0) {
-        onLoad(0);
-      } else {
-        onLoad(1);
-      }
-    };
-    // 列表
+    // 未审核列表
     let list = ref([]);
+    // 已审核列表
+    let readList = ref([]);
     const loading = ref(false);
     const finished = ref(false);
     let index = 0;
-    const onLoad = (val) => {
+    const onLoad = () => {
+      loading.value = true;
+      finished.value = false;
       // 异步更新数据
       new placeActivityServer()
         .list({
           current: index + 1,
           size: 10,
-          assessment: val ? val : 0,
         })
-        .then((res) => {
-          list.value.push(...res.records);
+        .then(({ records, total }) => {
+          records.forEach((item) => {
+            if (item.assessment == 0) {
+              list.value.push(item);
+            } else {
+              readList.value.push(item);
+            }
+          });
           // 加载状态结束
           loading.value = false;
+          let page = parseInt(total / 10);
+
           // 数据全部加载完成
-          if (res.records.length < 10) {
+          if (index >= page || total < 10) {
             finished.value = true;
+          } else {
+            index++;
           }
-          index++;
         });
     };
     // 搜索
-    let value = ref("");
+    let searchShow = ref(false);
+    let searchList = ref([]);
+    const searchVal = ref("");
+    const onSearch = () => {
+      searchShow.value = true;
+      searchList.value = [];
+      new placeActivityServer()
+        .list({
+          current: 1,
+          size: 10000,
+          activityName: searchVal.value,
+        })
+        .then(({ records }) => {
+          searchList.value.push(...records);
+          // 加载状态结束
+          loading.value = false;
+        });
+    };
+    const onCancel = () => {
+      searchVal.value = "";
+      searchShow.value = false;
+    };
     // 删除确认
-    const beforeClose = ({ position }) => {
-      switch (position) {
-        case "left":
-        case "cell":
-        case "outside":
-          return true;
-        case "right":
-          return new Promise((resolve) => {
-            showConfirmDialog({
-              title: "确定删除吗?",
-            }).then(resolve);
-          });
-      }
+    let showDel = ref(false);
+    let ids = ref("");
+    const beforeClose = (val) => {
+      showDel.value = true;
+      ids.value = val;
+    };
+    // 删除
+    const Itemdel = () => {
+      new placeActivityServer().delete(ids.value).then((res) => {
+        console.log("删除", res);
+        index = 0;
+        loading.value = true;
+        list.value = [];
+        readList.value = [];
+        onLoad();
+      });
     };
     // 修改跳转
     const updateItem = (val) => {
@@ -180,17 +249,23 @@ export default {
     };
     return {
       active,
-      onClickTab,
       onClickLeft,
       list,
+      readList,
       onLoad,
       loading,
       finished,
-      value,
+      searchShow,
+      searchVal,
+      searchList,
+      onSearch,
+      onCancel,
       onClickRight,
       beforeClose,
       updateItem,
       goInfo,
+      showDel,
+      Itemdel,
     };
   },
 };

+ 98 - 0
src/views/activityMan/religiousConference/religiousConferenceInfo.vue

@@ -0,0 +1,98 @@
+<template>
+
+    <van-loading size="16px" v-if="isLoading">加载中...</van-loading>
+    <div class="main" v-if="!isLoading">
+      <div class="banner">
+        <h2>扎实提升“三力”</h2>
+        <h2>深入推进“三化”</h2>
+        <h2>坚持“三个思维”</h2>
+      </div>
+      <div class="info">
+        <p>会议地点:{{ info.placeSelectName }}</p>
+        <p>详细地址:{{ info.venueDetailed }}</p>
+        <p>会议时间:{{ info.meetingTime }}</p>
+        <p>会议场所:{{ info.siteName.name }}</p>
+        <p>参会人员:{{ info.participants.name }}</p>
+        <p>附&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;件:<span style="color: #6892ff">活动申请书</span></p>
+        <p>会议议题:{{ info.meetingTopics }}</p>
+      </div>
+      <van-button v-if="canAudit" type="primary" class="btn-sub">审核</van-button>
+    </div>
+  </template>
+    
+    <script>
+  import { ref } from "vue";
+  import religiousConferenceService from "@/api/religiousConference/religiousConferenceService";
+  import UserManage from "@/api/user/UserManage";
+  import { useRoute } from "vue-router";
+  export default {
+    setup() {
+      window.xm.setNavigationBarTitle({ title: '负责人会议详情'})
+      let isLoading = ref(true);
+      let canAudit = ref(false);
+      // 活动信息
+      const info = ref({        
+      });
+      let route = useRoute();
+      new religiousConferenceService().queryById(route.query.id).then((data) => {
+        info.value = data;
+        if(data.assessment=="0"){
+          canAudit.value = true;
+        }else{
+          canAudit.value = false;
+        }      
+
+        isLoading.value = false;
+      });
+      return {
+        info,
+        isLoading,
+        canAudit,
+      };
+    },
+  };
+  </script>
+    
+  <style lang="less">
+  .main {
+    background: #fff;
+    position: relative;
+    top: 40px;
+  }
+  .banner {
+    background-color: #36a7f3;
+    padding: 20px 50px 40px 50px;
+    color: #fff;
+    h2 {
+      &:nth-child(1) {
+        margin-top: 0px;
+        text-align: left;
+      }
+      &:nth-child(2) {
+        text-align: center;
+      }
+      &:nth-child(3) {
+        text-align: right;
+      }
+    }
+  }
+  .info {
+    position: relative;
+    width: 86vw;
+    margin: 10px auto;
+    padding: 10px;
+    background: #fff;
+    border-radius: 20px;
+    top: -50px;
+    font-size: 14px;
+  }
+  .btn-sub {
+    width: 90%;
+    border-radius: 20px;
+    margin-left: 5%;
+  }
+  .van-loading {
+    text-align: center;
+    margin-top: 80px;
+  }
+  </style>

+ 8 - 0
src/views/activityMan/religiousConference/religiousConferenceList.vue

@@ -159,6 +159,13 @@ setup() {
         });
     }
   };
+  // 详情跳转
+  const goInfo = (val) => {
+      router.push({
+        path: "/religiousConferenceInfo",
+        query: { id: val },
+      });
+    };
   return {
     onClickLeft,
     onClickTab,
@@ -169,6 +176,7 @@ setup() {
     value,
     onClickRight,
     tabIndex,
+    goInfo,
     beforeClose,
   };
 },

+ 99 - 0
src/views/activityMan/securityFacilitiesErr/securityFacilitiesErrInfo.vue

@@ -0,0 +1,99 @@
+<template>
+
+    <van-loading size="16px" v-if="isLoading">加载中...</van-loading>
+    <div class="main" v-if="!isLoading">
+      <div class="banner">
+        <h2>扎实提升“三力”</h2>
+        <h2>深入推进“三化”</h2>
+        <h2>坚持“三个思维”</h2>
+      </div>
+      <div class="info">
+        <p>场所名称:{{ info.siteName.name }}</p>
+        <p v-if="info.facilityType=='1'">设施类型:消防设备</p>
+        <p v-if="info.facilityType=='0'">设施类型:监控、音频</p>
+        <p v-if="info.facilityType=='1'">场所消防点位:{{ info.siteFireProtection.name }}</p>
+        <p v-if="info.facilityType=='0'">视频音频点位:{{ info.videoAudioPoint.name }}</p>
+        <p>位&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;置:{{ info.position }}</p>
+        <p>附&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;件:<span style="color: #6892ff">活动申请书</span></p>
+        <p>异常内容:{{ info.abnormalContent }}</p>
+      </div>
+      <van-button v-if="canAudit" type="primary" class="btn-sub">审核</van-button>
+    </div>
+  </template>
+    
+    <script>
+  import { ref } from "vue";
+  import securityFacilitiesErrService from "@/api/securityFacilitiesErr/securityFacilitiesErrService";
+  import UserManage from "@/api/user/UserManage";
+  import { useRoute } from "vue-router";
+  export default {
+    setup() {
+      window.xm.setNavigationBarTitle({ title: '安防设施异常详情'})
+      let isLoading = ref(true);
+      let canAudit = ref(false);
+      // 活动信息
+      const info = ref({        
+      });
+      let route = useRoute();
+      new securityFacilitiesErrService().queryById(route.query.id).then((data) => {
+        info.value = data;
+        if(data.assessment=="0"){
+          canAudit.value = true;
+        }else{
+          canAudit.value = false;
+        }      
+
+        isLoading.value = false;
+      });
+      return {
+        info,
+        isLoading,
+        canAudit,
+      };
+    },
+  };
+  </script>
+    
+  <style lang="less">
+  .main {
+    background: #fff;
+    position: relative;
+    top: 40px;
+  }
+  .banner {
+    background-color: #36a7f3;
+    padding: 20px 50px 40px 50px;
+    color: #fff;
+    h2 {
+      &:nth-child(1) {
+        margin-top: 0px;
+        text-align: left;
+      }
+      &:nth-child(2) {
+        text-align: center;
+      }
+      &:nth-child(3) {
+        text-align: right;
+      }
+    }
+  }
+  .info {
+    position: relative;
+    width: 86vw;
+    margin: 10px auto;
+    padding: 10px;
+    background: #fff;
+    border-radius: 20px;
+    top: -50px;
+    font-size: 14px;
+  }
+  .btn-sub {
+    width: 90%;
+    border-radius: 20px;
+    margin-left: 5%;
+  }
+  .van-loading {
+    text-align: center;
+    margin-top: 80px;
+  }
+  </style>

+ 8 - 0
src/views/activityMan/securityFacilitiesErr/securityFacilitiesErrList.vue

@@ -174,6 +174,13 @@ setup() {
         });
     }
   };
+  // 详情跳转
+  const goInfo = (val) => {
+      router.push({
+        path: "/securityFacilitiesErrInfo",
+        query: { id: val },
+      });
+    };
   return {
     onClickLeft,
     onClickTab,
@@ -184,6 +191,7 @@ setup() {
     value,
     onClickRight,
     tabIndex,
+    goInfo,
     beforeClose,
   };
 },

+ 360 - 4
src/views/activityMan/securityFacilitiesErr/securityFacilitiesErrView.vue

@@ -1,6 +1,362 @@
 <template>
-    <div class="about">
-      <h1>This is an about page</h1>
+  <van-nav-bar
+    title="信息上报中心"
+    left-text=""
+    left-arrow
+    @click-left="onClickLeft"
+  />
+  <div class="main">
+    <p class="title">安防设施异常上报</p>
+    <div class="formArea">
+      <p class="miniTitle">基础信息</p>
+      <van-cell-group>
+        <van-field
+          v-model="securityFacilitiesErr.siteName.name"
+          readonly
+          required
+          label="场所名称:"
+          placeholder="请选择"
+          input-align="right"
+          right-icon="arrow-down"
+          @click="showPlace = true"
+        />
+        <van-popup v-model:show="showPlace" round position="bottom">
+          <van-picker
+            title="场所选择"
+            :columns="places"
+            :columns-field-names="customFieldName"
+            @cancel="showPlace = false"
+            @confirm="getPlace"
+          />
+        </van-popup>
+      </van-cell-group>
+
+      <van-cell-group>
+        
+        <van-field
+          v-model="securityFacilitiesErr.facilityTypename"
+          center
+          readonly
+          required
+          label="设施类型:"
+          placeholder="请选择"
+          input-align="right"
+          right-icon="arrow-down"
+          @click="showLx = true"
+        />
+        <van-popup v-model:show="showLx" round position="bottom">
+          <van-picker
+            title="设施类型选择"
+            :columns="facilityTypes"
+            @cancel="showLx = false"
+            @confirm="getfacilityType"
+          />
+        </van-popup>
+      </van-cell-group>
+
+      <van-cell-group v-if="securityFacilitiesErr.facilityType==''">        
+        <van-field
+          v-model="securityFacilitiesErr.facilityTypename"
+          center
+          readonly
+          required
+          label="位置:"
+          placeholder="请选择"
+          input-align="right"
+          right-icon="arrow-down"
+        />
+      </van-cell-group>
+
+      <van-cell-group v-if="securityFacilitiesErr.facilityType=='0'">
+        <van-field
+          v-model="securityFacilitiesErr.videoAudioPoint.name"
+          readonly
+          required
+          label="音视频点位:"
+          placeholder="请选择"
+          input-align="right"
+          right-icon="arrow-down"
+          @click="showVideoAudio = true"
+        />
+        <van-popup v-model:show="showVideoAudio" round position="bottom">
+          <van-picker
+            title="音视频点位选择"
+            :columns="VideoAudios"
+            :columns-field-names="customFieldName"
+            @cancel="showVideoAudio = false"
+            @confirm="setVideoAudios"
+          />
+        </van-popup>
+      </van-cell-group>
+
+      <van-cell-group  v-if="securityFacilitiesErr.facilityType=='1'">
+        <van-field
+          v-model="securityFacilitiesErr.siteFireProtection.name"
+          readonly
+          required
+          label="消防点位:"
+          placeholder="请选择"
+          input-align="right"
+          right-icon="arrow-down"
+          @click="showFireStation = true"
+        />
+        <van-popup v-model:show="showFireStation" round position="bottom">
+          <van-picker
+            title="消防点位选择"
+            :columns="FireStations"
+            :columns-field-names="customFieldName"
+            @cancel="showFireStation = false"
+            @confirm="setFireStations"
+          />
+        </van-popup>
+      </van-cell-group>
+
+      
+
+      <van-cell-group>
+        <van-field name="uploader" label="附件:">
+          <template #input>
+            <van-uploader>
+              <van-button icon="plus">上传文件</van-button>
+            </van-uploader>
+          </template>
+        </van-field>
+      </van-cell-group>
+      <van-cell-group>
+        <div class="rowTextArea">
+          <van-field
+            v-model="securityFacilitiesErr.abnormalContent"
+            center
+            rows="2"
+            type="textarea"
+            label="异常内容:"
+            label-align="top"
+          />
+        </div>
+      </van-cell-group>
     </div>
-  </template>
-  
+    <div class="subbtn">
+      <van-button type="primary" @click="submit">提交</van-button>
+      <van-button type="default" hairline>取消</van-button>
+    </div>
+  </div>
+</template>
+
+<script>
+import { reactive, ref } from "vue";
+import personList from "../personList.vue";
+import securityFacilitiesErrService from "@/api/securityFacilitiesErr/securityFacilitiesErrService";
+import tools from "@/api/sys/tools";
+export default {
+  components: { personList },
+  setup() {
+    const onClickLeft = () => {
+      history.back();
+    };
+    const securityFacilitiesErr = reactive({
+      id: "",
+      siteName: {
+        id: "",
+      },
+      facilityType: "",
+      videoAudioPoint:{
+        id: "",
+      },
+      siteFireProtection:{
+        id: "",
+      },
+      position: "",
+      abnormalContent: "",
+      //附件
+      enclosure: "",
+      state: "0",
+      assessment: "0",
+    });
+    // 场所名称
+    let places = ref([]);
+    const customFieldName = {
+      text: "name",
+      value: "id",
+    };
+    new tools()
+      .placeList({
+        current: 1,
+        size: 10000,
+      })
+      .then(({ records }) => {
+        places.value.push(...records);
+      });
+    let showPlace = ref(false);
+    const getPlace = ({ selectedOptions }) => {
+      showPlace.value = false;
+      securityFacilitiesErr.siteName = selectedOptions[0];
+      //场所选择完成后刷新
+      getVideoAudioList();
+      getFireStationList();
+    };
+    //选择设施类型
+    let showLx = ref(false);
+    const facilityTypes = [{text:"监控、音频",value:"0"},{text:"消防设备",value:"1"}];
+    const getfacilityType= ({ selectedOptions }) => {      
+      securityFacilitiesErr.facilityType = selectedOptions[0].value;
+      securityFacilitiesErr.facilityTypename = selectedOptions[0].text;
+      getVideoAudioList();
+      getFireStationList();
+      showLx.value = false;
+    };
+
+    //选择视频音频点位
+    let showVideoAudio = ref(false);
+    let VideoAudios = ref([]);
+    //同时选择好场所、设施类型后才获取视频列表
+    const getVideoAudioList= () => {    
+      if(securityFacilitiesErr.siteName.id!=""&&securityFacilitiesErr.facilityType=="0"){
+        new tools()
+        .videoPointList({
+          current: 1,
+          size: 10000,
+          siteId: securityFacilitiesErr.siteName.id,
+        })
+        .then(({ records }) => {
+          VideoAudios.value=records;
+        });
+      }
+      
+    };
+    const setVideoAudios= ({ selectedOptions }) => {      
+      securityFacilitiesErr.videoAudioPoint = selectedOptions[0];
+      securityFacilitiesErr.position=selectedOptions[0].position;
+      showVideoAudio.value = false;
+    };
+    
+    
+    //选择消防点位
+    let showFireStation = ref(false);
+    let FireStations = ref([]);
+    //同时选择好场所、设施类型后才获取消防点位列表
+    const getFireStationList= () => {    
+      if(securityFacilitiesErr.siteName.id!=""&&securityFacilitiesErr.facilityType=="1"){
+        new tools()
+        .fireStationList({
+          current: 1,
+          size: 10000,
+          siteId: securityFacilitiesErr.siteName.id,
+        })
+        .then(({ records }) => {
+          FireStations.value=records;
+        });
+      }
+      
+    };
+    const setFireStations= ({ selectedOptions }) => {      
+      securityFacilitiesErr.siteFireProtection = selectedOptions[0];
+      securityFacilitiesErr.position=selectedOptions[0].position;
+      showFireStation.value = false;
+    };
+
+    // 提交数据
+    const submit = () => {
+      //添加保存前判断
+
+      new securityFacilitiesErrService().save(securityFacilitiesErr).then((res) => {
+        if(res.data=="保存安防设施异常成功"){
+          window.xm.showToast({
+             message:"保存成功!"
+          })
+          history.back();
+        }
+
+      });
+    };
+    return {
+      securityFacilitiesErr,
+      // 场所
+      customFieldName,
+      showPlace,
+      places,
+      getPlace,
+      //设施类型选择
+      showLx,
+      facilityTypes,
+      getfacilityType,
+      //选择视频音频点位
+      showVideoAudio,
+      getVideoAudioList,
+      VideoAudios,
+      setVideoAudios,
+
+      //选择消防点位
+      showFireStation,
+      getFireStationList,
+      FireStations,
+      setFireStations,
+      
+      // 返回
+      onClickLeft,
+      submit,
+    };
+  },
+};
+</script>
+
+<style scoped>
+* {
+  margin: 0;
+  padding: 0;
+}
+.main {
+  background: #fff;
+}
+.main p {
+  height: 40px;
+  line-height: 40px;
+  color: #36a7f3;
+  border-bottom: 1px solid #eee;
+}
+.title {
+  font-size: 20px;
+  font-weight: 700;
+  padding-left: 20px;
+}
+.miniTitle {
+  font-size: 16px;
+}
+.formArea {
+  padding: 0px 20px;
+}
+.formArea .van-cell-group .van-field__label {
+  height: 40px;
+}
+.formArea .van-cell-group .van-cell {
+  line-height: 40px;
+}
+.van-cell__value .van-field__right-icon .van-icon-location {
+  color: #36a7f3 !important;
+}
+.rowTextArea::v-deep .van-field__value {
+  width: 94%;
+  border: 2px solid #ccc;
+  border-radius: 10px;
+  padding: 10px;
+}
+.rowTextArea::v-deep .van-cell {
+  display: flow-root;
+}
+.subbtn {
+  margin: 20px;
+  text-align: center;
+}
+.subbtn .van-button {
+  width: 40%;
+  margin: 5px;
+}
+.van-uploader .van-button {
+  border: none;
+  color: #36a7f3;
+  top: -4px;
+}
+.van-dialog {
+  width: 80%;
+  top: 50%;
+}
+</style>

+ 7 - 1
src/views/activityMan/selfMeetingReport/selfMeetingInfo.vue

@@ -22,7 +22,13 @@
       <p>内容:</p>
       <wang-editor ref="contentEditor" v-model="inputForm.content" />
     </div>
-    <van-button type="primary" class="btn-sub" @click="update">审核</van-button>
+    <van-button
+      v-if="inputForm.assessment == 0"
+      type="primary"
+      class="btn-sub"
+      @click="update"
+      >审核</van-button
+    >
   </div>
 </template>
     

+ 120 - 50
src/views/activityMan/selfMeetingReport/selfMeetingList.vue

@@ -9,12 +9,22 @@
     @click-right="onClickRight"
   />
   <div class="main">
-    <van-search v-model="value" shape="round" placeholder="请输入搜索关键词" />
+    <van-search
+      v-model="searchVal"
+      clearable
+      show-action
+      shape="round"
+      placeholder="请输入搜索关键词"
+      label="地点"
+      input-align="center"
+      @search="onSearch"
+      @cancel="onCancel"
+    />
     <van-tabs
+      v-show="!searchShow"
       v-model:active="active"
       title-inactive-color="#bdbdbd"
       title-active-color="#36a7f3"
-      @click-tab="onClickTab"
     >
       <van-tab title="未审核" name="0">
         <van-list
@@ -23,11 +33,7 @@
           finished-text="没有更多了"
           @load="onLoad"
         >
-          <van-swipe-cell
-            v-for="item in list"
-            :key="item"
-            :before-close="beforeClose"
-          >
+          <van-swipe-cell v-for="item in list" :key="item">
             <div class="list_item" @click="goInfo(item.id)">
               <div class="item-left">
                 <p style="color: #c4c4c4">{{ item.partyTime }}</p>
@@ -42,7 +48,13 @@
               </van-cell>
             </div>
             <template #right>
-              <van-button square type="danger" text="删除" class="button" />
+              <van-button
+                square
+                type="danger"
+                text="删除"
+                class="button"
+                @click="beforeClose(item.id)"
+              />
               <van-button
                 square
                 type="primary"
@@ -61,11 +73,7 @@
           finished-text="没有更多了"
           @load="onLoad"
         >
-          <van-swipe-cell
-            v-for="item in list"
-            :key="item"
-            :before-close="beforeClose"
-          >
+          <van-swipe-cell v-for="item in readList" :key="item">
             <div class="list_item" @click="goInfo(item.id)">
               <div class="item-left">
                 <p style="color: #c4c4c4">{{ item.partyTime }}</p>
@@ -83,6 +91,38 @@
         </van-list>
       </van-tab>
     </van-tabs>
+    <!-- 搜索结果 -->
+    <van-list
+      v-show="searchShow"
+      v-model:loading="loading"
+      :finished="finished"
+      finished-text="没有更多了"
+      @load="onLoad"
+    >
+      <van-swipe-cell v-for="item in searchList" :key="item">
+        <div class="list_item" @click="goInfo(item.id)">
+          <div class="item-left">
+            <p style="color: #c4c4c4">{{ item.partyTime }}</p>
+            <p style="color: red">已审核</p>
+          </div>
+          <van-cell is-link>
+            <template #title>
+              <p>地点:{{ item.placeSelectName }}</p>
+              <p>相关人员:{{ item.relatedPersons.name }}</p>
+              <p>频次:{{ item.frequency }}</p>
+            </template>
+          </van-cell>
+        </div>
+      </van-swipe-cell>
+    </van-list>
+    <van-dialog
+      v-model:show="showDel"
+      show-cancel-button
+      confirmButtonText="删除"
+      message="请确认删除该记录"
+      @confirm="Itemdel"
+    >
+    </van-dialog>
   </div>
 </template>
 
@@ -100,60 +140,84 @@ export default {
     const onClickRight = () => {
       router.push("/selfMeeting");
     };
-    const value = ref("");
     // 切换
     let active = ref(0);
-    const onClickTab = (val) => {
-      // 清空列表数据
-      finished.value = false;
-      list.value = [];
-      // 重新加载数据
-      // 将 loading 设置为 true,表示处于加载状态
-      loading.value = true;
-      if (val.name == 0) {
-        onLoad(0);
-      } else {
-        onLoad(1);
-      }
-    };
-    // 列表
+    // 未审核列表
     let list = ref([]);
+    // 已审核列表
+    let readList = ref([]);
     const loading = ref(false);
     const finished = ref(false);
     let index = 0;
-    const onLoad = (val) => {
+    const onLoad = () => {
+      loading.value = true;
+      finished.value = false;
       // 异步更新数据
       new PrivatePartyPointService()
         .list({
           current: index + 1,
           size: 10,
-          assessment: val ? val : 0,
         })
-        .then((res) => {
-          list.value.push(...res.records);
+        .then(({ records, total }) => {
+          records.forEach((item) => {
+            if (item.assessment == 0) {
+              list.value.push(item);
+            } else {
+              readList.value.push(item);
+            }
+          });
           // 加载状态结束
           loading.value = false;
+          let page = parseInt(total / 10);
+
           // 数据全部加载完成
-          if (res.records.length < 10) {
+          if (index >= page || total < 10) {
             finished.value = true;
+          } else {
+            index++;
           }
-          index++;
         });
     };
+    // 搜索
+    let searchShow = ref(false);
+    let searchList = ref([]);
+    const searchVal = ref("");
+    const onSearch = () => {
+      searchShow.value = true;
+      searchList.value = [];
+      new PrivatePartyPointService()
+        .list({
+          current: 1,
+          size: 10000,
+          placeSelectName: searchVal.value,
+        })
+        .then(({ records }) => {
+          searchList.value.push(...records);
+          // 加载状态结束
+          loading.value = false;
+        });
+    };
+    const onCancel = () => {
+      searchVal.value = "";
+      searchShow.value = false;
+    };
     // 删除确认
-    const beforeClose = ({ position }) => {
-      switch (position) {
-        case "left":
-        case "cell":
-        case "outside":
-          return true;
-        case "right":
-          return new Promise((resolve) => {
-            showConfirmDialog({
-              title: "确定删除吗?",
-            }).then(resolve);
-          });
-      }
+    let showDel = ref(false);
+    let ids = ref("");
+    const beforeClose = (val) => {
+      showDel.value = true;
+      ids.value = val;
+    };
+    // 删除
+    const Itemdel = () => {
+      new PrivatePartyPointService().delete(ids.value).then((res) => {
+        console.log("删除", res);
+        index = 0;
+        loading.value = true;
+        list.value = [];
+        readList.value = [];
+        onLoad();
+      });
     };
     let router = useRouter();
     // 修改跳转
@@ -172,17 +236,23 @@ export default {
     };
     return {
       active,
-      onClickTab,
       onClickLeft,
       list,
+      readList,
       onLoad,
       loading,
       finished,
-      value,
+      searchShow,
+      searchVal,
+      searchList,
+      onSearch,
+      onCancel,
       onClickRight,
-      beforeClose,
       updateItem,
       goInfo,
+      showDel,
+      beforeClose,
+      Itemdel,
     };
   },
 };

+ 98 - 0
src/views/activityMan/siteInspection/siteInspectionInfo.vue

@@ -0,0 +1,98 @@
+<template>
+
+    <van-loading size="16px" v-if="isLoading">加载中...</van-loading>
+    <div class="main" v-if="!isLoading">
+      <div class="banner">
+        <h2>扎实提升“三力”</h2>
+        <h2>深入推进“三化”</h2>
+        <h2>坚持“三个思维”</h2>
+      </div>
+      <div class="info">
+        <p>场所名称:{{ info.siteName.name }}</p>
+        <p>地&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;点:{{ info.place }}</p>
+        <p>详细地址:{{ info.placeDel }}</p>
+        <p>督查时间:{{ info.supervisionTime }}</p>
+        <p>附&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;件:<span style="color: #6892ff">活动申请书</span></p>
+        <p>督查内容:{{ info.supervisionContent }}</p>
+      </div>
+      <van-button v-if="canAudit" type="primary" class="btn-sub">审核</van-button>
+    </div>
+  </template>
+    
+    <script>
+  import { ref } from "vue";
+  import siteInspectionService from "@/api/siteInspection/siteInspectionService";
+  import UserManage from "@/api/user/UserManage";
+  import { useRoute } from "vue-router";
+  export default {
+    setup() {
+      window.xm.setNavigationBarTitle({ title: '场所检查详情'})
+      let isLoading = ref(true);
+      let canAudit = ref(false);
+      // 活动信息
+      const info = ref({        
+      });
+      let route = useRoute();
+      new siteInspectionService().queryById(route.query.id).then((data) => {
+        info.value = data;
+        if(data.assessment=="0"){
+          canAudit.value = true;
+        }else{
+          canAudit.value = false;
+        }
+        
+
+        isLoading.value = false;
+      });
+      return {
+        info,
+        isLoading,
+        canAudit,
+      };
+    },
+  };
+  </script>
+    
+  <style lang="less">
+  .main {
+    background: #fff;
+    position: relative;
+    top: 40px;
+  }
+  .banner {
+    background-color: #36a7f3;
+    padding: 20px 50px 40px 50px;
+    color: #fff;
+    h2 {
+      &:nth-child(1) {
+        margin-top: 0px;
+        text-align: left;
+      }
+      &:nth-child(2) {
+        text-align: center;
+      }
+      &:nth-child(3) {
+        text-align: right;
+      }
+    }
+  }
+  .info {
+    position: relative;
+    width: 86vw;
+    margin: 10px auto;
+    padding: 10px;
+    background: #fff;
+    border-radius: 20px;
+    top: -50px;
+    font-size: 14px;
+  }
+  .btn-sub {
+    width: 90%;
+    border-radius: 20px;
+    margin-left: 5%;
+  }
+  .van-loading {
+    text-align: center;
+    margin-top: 80px;
+  }
+  </style>

+ 12 - 4
src/views/activityMan/siteInspection/siteInspectionList.vue

@@ -27,13 +27,13 @@
       :key="item.id"
       :before-close="beforeClose"
     >
-      <div class="list_item">
+      <div class="list_item" @click="goInfo(item.id)">
         <div class="item-left">
           <p style="color: #c4c4c4">{{ item.supervisionTime }}</p>
           <p v-if="item.assessment==0" style="color: red">待审核</p>
           <p v-if="item.assessment==1" style="color: gray">已审核</p>
         </div>
-        <van-cell is-link to="siteInspectionView">
+        <van-cell is-link >
           <template #title>
             {{ item.siteName.name }}({{ item.placeDel}})
           </template>
@@ -53,7 +53,7 @@
   <script>
  import { ref } from "vue";
 import router from "@/router";
-import siteInspectionServer from "@/api/siteInspection/siteInspectionServer";
+import siteInspectionService from "@/api/siteInspection/siteInspectionService";
 export default {
   name: "siteInspectionList",
   setup() {
@@ -83,7 +83,7 @@ export default {
     };
     const onLoad = () => {
       // 异步更新数据
-      new siteInspectionServer()
+      new siteInspectionService()
         .list({
           current: index + 1,
           size: 10,
@@ -117,6 +117,13 @@ export default {
           });
       }
     };
+    // 详情跳转
+    const goInfo = (val) => {
+      router.push({
+        path: "/siteInspectionInfo",
+        query: { id: val },
+      });
+    };
     return {
       onClickLeft,
       onClickTab,
@@ -127,6 +134,7 @@ export default {
       value,
       onClickRight,
       tabIndex,
+      goInfo,
       beforeClose,
     };
   },

+ 2 - 2
src/views/activityMan/siteInspection/siteInspectionView.vue

@@ -130,7 +130,7 @@
 <script>
 import { reactive, ref } from "vue";
 import personList from "../personList.vue";
-import siteInspectionServer from "@/api/siteInspection/siteInspectionServer";
+import siteInspectionService from "@/api/siteInspection/siteInspectionService";
 import tools from "@/api/sys/tools";
 export default {
   components: { personList },
@@ -213,7 +213,7 @@ export default {
     const submit = () => {
       //添加保存前判断
 
-      new siteInspectionServer().save(siteInspection).then((res) => {
+      new siteInspectionService().save(siteInspection).then((res) => {
         if(res.data=="保存场所检查情况成功"){
           window.xm.showToast({
              message:"保存成功!"