Browse Source

根据规范优化代码/巡更系统优化/备案信息填写

fanghuisheng 10 months ago
parent
commit
4e1256b508

+ 1 - 1
src/api/business/zhaf/xunJian/plan.js

@@ -9,7 +9,7 @@ export function recordList(param) {
   });
 }
 
-//
+//巡检记录-查看巡检项
 export function recordOption(param) {
   return request({
     url: "/service-fire/appPatrolInspection/recordOption",

+ 1 - 1
src/config.js

@@ -35,7 +35,7 @@ export default {
       {
         title: "用户服务协议",
         content: "暂无数据",
-        url: "http://file.usky.cn/statics/protocol.html",
+        url: "http://file.usky.cn/uskycloud/user_protocol.html",
       },
       {
         title: "隐私政策",

+ 71 - 57
src/pages/business/fireIot/alarmManage/alarmDetails/index.vue

@@ -1,16 +1,25 @@
 <template>
-  <scroll-view class="scroll-height" :scroll-y="true" :data-theme="'theme-' + proxy.$settingStore.themeColor.name">
-    <view class="alarmDetails-container">
+  <oa-scroll
+    customClass="alarmDetails-container scroll-height"
+    :refresherLoad="false"
+    :refresherEnabled="false"
+    :refresherEnabledTitle="false"
+    :refresherDefaultStyle="'none'"
+    :refresherThreshold="44"
+    :refresherBackground="'#f5f6f7'"
+    :data-theme="'theme-' + proxy.$settingStore.themeColor.name"
+  >
+    <template #default>
       <view class="flex bg-white p15 mb15">
-        <image style="width: 40px; height: 40px; margin: auto 15px auto 0" :src="dataArray.typeImg ? dataArray.typeImg : '/static/images/404.png'" mode="aspectFill"></image>
+        <image style="width: 40px; height: 40px; margin: auto 15px auto 0" :src="array.typeImg ? array.typeImg : '/static/images/404.png'" mode="aspectFill"></image>
 
         <view style="margin: auto auto auto 0">
-          <view style="font-size: 15px"> {{ dataArray.deviceName }} </view>
+          <view style="font-size: 15px"> {{ array.deviceName }} </view>
         </view>
 
         <view style="margin: auto 0 auto 0">
-          <view style="font-size: 15px" :style="`color:${dataArray.handleStatus == 1 ? '#16bf00' : 'red'}`">
-            {{ dataArray.handleStatus == 1 ? "已处理" : dataArray.handleStatus == 0 ? "未处理" : "" }}
+          <view style="font-size: 15px" :style="`color:${array.handleStatus == 1 ? '#16bf00' : 'red'}`">
+            {{ array.handleStatus == 1 ? "已处理" : array.handleStatus == 0 ? "未处理" : "" }}
           </view>
         </view>
       </view>
@@ -18,7 +27,7 @@
       <view class="bg-white p15 mb15">
         <uni-section class="block mb10" title="基本信息" type="line"></uni-section>
         <view class="tableType3 p0">
-          <u-row v-for="da in dataList" :key="da">
+          <u-row v-for="da in state.dataList" :key="da">
             <u-col span="4">
               <view style="text-align: right; padding: 0px 5px 0px 5px">{{ da.title }}</view>
             </u-col>
@@ -33,9 +42,9 @@
         <uni-section class="block mb10" title="处理内容" type="line"></uni-section>
 
         <view>
-          <u-radio-group v-model="handleRange" placement="row" v-if="dataArray.handleStatus != 1">
+          <u-radio-group v-model="state.handleRange" placement="row" v-if="array.handleStatus != 1">
             <u-radio
-              v-for="han in handleRangeList"
+              v-for="han in state.handleRangeList"
               :key="han"
               :activeColor="proxy.$settingStore.themeColor.color"
               :label="han.label"
@@ -46,10 +55,10 @@
             ></u-radio>
           </u-radio-group>
 
-          <u--textarea v-model="handleContent" placeholder="备注信息,最多可输入50个字" :count="true" maxlength="50" style="margin: 0 0 15px 0" :disabled="dataArray.handleStatus == 1"></u--textarea>
+          <u--textarea v-model="state.handleContent" placeholder="备注信息,最多可输入50个字" :count="true" maxlength="50" style="margin: 0 0 15px 0" :disabled="array.handleStatus == 1"></u--textarea>
         </view>
 
-        <view class="flex" v-if="dataArray.handleStatus != 1">
+        <view class="flex" v-if="array.handleStatus != 1">
           <u-button
             type="primary"
             text="误报"
@@ -74,40 +83,47 @@
           ></u-button>
         </view>
       </view>
-    </view>
-  </scroll-view>
+    </template>
+  </oa-scroll>
 </template>
 
 <script setup>
+/*----------------------------------依赖引入-----------------------------------*/
 import { onLoad, onShow, onReady, onHide, onLaunch, onNavigationBarButtonTap, onPageScroll } from "@dcloudio/uni-app";
 import { ref, reactive, computed, getCurrentInstance, toRefs, inject } from "vue";
-import { useStores, commonStores } from "@/store/modules/index";
-
+/*----------------------------------接口引入-----------------------------------*/
 import { baseAlarmList, baseAlarm } from "@/api/business/fireIot/alarmManage.js";
-
+/*----------------------------------组件引入-----------------------------------*/
+/*----------------------------------store引入-----------------------------------*/
+/*----------------------------------公共方法引入-----------------------------------*/
+/*----------------------------------公共变量-----------------------------------*/
 const { proxy } = getCurrentInstance();
+/*----------------------------------变量声明-----------------------------------*/
+const state = reactive({
+  array: {},
+  dataList: [
+    { title: "设备名称", value: "", unit: "", key: "deviceName" },
+    { title: "设备地址", value: "", unit: "", key: "alarmAddress" },
+    { title: "告警等级", value: "", unit: "级", key: "alarmGrade" },
+    { title: "告警信息", value: "", unit: "", key: "alarmContent" },
+    { title: "告警时间", value: "", unit: "", key: "alarmTime" },
+  ],
+
+  deviceId: "",
+  alarmTime: "",
+  pageSize: 20,
+  current: 1,
+  total: 0,
+
+  handleContent: "",
+  handleRange: 1,
+  handleRangeList: [
+    { label: "单个处理", value: 1 },
+    { label: "批量处理", value: 0 },
+  ],
+});
 
-const dataArray = ref({});
-const dataList = ref([
-  { title: "设备名称", value: "" },
-  { title: "设备地址", value: "" },
-  { title: "告警等级", value: "" },
-  { title: "告警信息", value: "" },
-  { title: "告警时间", value: "" },
-]);
-
-const deviceName = ref("");
-const alarmTime = ref("");
-const pageSize = ref(20);
-const current = ref(1);
-const total = ref(0);
-
-const handleContent = ref("");
-const handleRange = ref(1);
-const handleRangeList = ref([
-  { label: "单个处理", value: 1 },
-  { label: "批量处理", value: 0 },
-]);
+const { array } = toRefs(state);
 
 /**
  * @页面初始化
@@ -122,20 +138,18 @@ function init() {
  */
 function selectListApi() {
   baseAlarmList({
-    deviceName: deviceName.value,
-    startTime: alarmTime.value,
-    endTime: alarmTime.value,
-    current: current.value,
-    size: pageSize.value,
+    deviceId: state.deviceId,
+    startTime: state.alarmTime,
+    endTime: state.alarmTime,
+    current: state.current,
+    size: state.pageSize,
   }).then((requset) => {
     if (requset.status === "SUCCESS") {
-      dataArray.value = requset.data.records[0];
-      dataList.value[0].value = requset.data.records[0].deviceName;
-      dataList.value[1].value = requset.data.records[0].alarmAddress;
-      dataList.value[2].value = requset.data.records[0].alarmGrade + "级";
-      dataList.value[3].value = requset.data.records[0].alarmContent;
-      dataList.value[4].value = requset.data.records[0].alarmTime;
-      total.value = requset.data.total;
+      state.array = requset.data.records[0];
+      state.dataList.forEach((e) => {
+        e.value = requset.data.records[0][e.key] + e.unit;
+      });
+      state.total = requset.data.total;
     }
   });
 }
@@ -145,12 +159,12 @@ function selectListApi() {
  */
 function handleSubmit(alarmFalse) {
   baseAlarm({
-    id: dataArray.value.id,
-    deviceId: dataArray.value.deviceId,
-    alarmType: dataArray.value.alarmType,
-    handleContent: handleContent.value,
+    id: state.array.id,
+    deviceId: state.array.deviceId,
+    alarmType: state.array.alarmType,
+    handleContent: state.handleContent,
     alarmFalse: alarmFalse,
-    handleRange: handleRange.value,
+    handleRange: state.handleRange,
   }).then((requset) => {
     if (requset.status === "SUCCESS") {
       proxy.$tab.navigateTo(`/pages/common/success/index?codeName=提交成功`);
@@ -166,12 +180,12 @@ onShow(() => {
 });
 
 onLoad((options) => {
-  if ("deviceName" in options) {
-    deviceName.value = options.deviceName;
+  if ("deviceId" in options) {
+    state.deviceId = options.deviceId;
   }
 
   if ("alarmTime" in options) {
-    alarmTime.value = options.alarmTime;
+    state.alarmTime = options.alarmTime;
   }
 
   init();

+ 131 - 145
src/pages/business/mhxf/informationSelect/index.vue

@@ -1,55 +1,77 @@
 <template>
   <u-sticky class="shadow-default" bgColor="#fff" style="top: 0">
-    <u-tabs :list="list" :current="current" @click="tabsClick" lineColor="#333" :activeStyle="{ color: '#333' }" :inactiveStyle="{ color: '#909399' }"></u-tabs>
+    <u-tabs :list="list" :current="state.current" @click="tabsClick" lineColor="#333" :activeStyle="{ color: '#333' }" :inactiveStyle="{ color: '#909399' }"></u-tabs>
   </u-sticky>
 
-  <scroll-view class="bg-white scroll-height" :scroll-y="true" :data-theme="'theme-' + proxy.$settingStore.themeColor.name" style="padding-bottom: 44px">
-    <oa-touch class="informationSelect" @change="touchChange">
-      <template #content>
-        <uni-swipe-action>
-          <uni-swipe-action-item>
-            <!-- 各类查询 start -->
-            <view class="tableType3">
-              <u-input class="block mb10" v-model="dataInput" :placeholder="placeholderText" @blur="blur" shape="circle" prefixIcon="search" prefixIconStyle="color: #0c7bf9"> </u-input>
-              <u-empty v-if="!dataRes" text="暂无数据" mode="data" icon="http://cdn.uviewui.com/uview/empty/data.png"> </u-empty>
-              <view class="con" v-if="current == 8">
-                <view class="time">{{ newTime }}</view>
-                <video src="http://file.usky.cn/statics/video/20230203.mp4" autoplay :controls="false" :show-center-play-btn="false" :loop="true" style="width: 100%"></video>
+  <oa-scroll
+    customClass="bg-white scroll-height"
+    :isSticky="true"
+    :refresherLoad="false"
+    :refresherLoadTitle="false"
+    :refresherEnabled="false"
+    :refresherEnabledTitle="false"
+    :refresherDefaultStyle="'none'"
+    :refresherThreshold="44"
+    :refresherBackground="'#f5f6f7'"
+    :data-theme="'theme-' + proxy.$settingStore.themeColor.name"
+  >
+    <template #default>
+      <oa-touch class="informationSelect" @change="touchChange">
+        <template #content>
+          <uni-swipe-action>
+            <uni-swipe-action-item>
+              <!-- 各类查询 start -->
+              <view class="tableType3">
+                <u-input class="block mb10" v-model="state.dataInput" :placeholder="state.placeholderText" @blur="blur" shape="circle" prefixIcon="search" prefixIconStyle="color: #0c7bf9"> </u-input>
+                <u-empty v-if="state.classifyData == undefined" text="暂无数据" mode="data" icon="http://cdn.uviewui.com/uview/empty/data.png"> </u-empty>
+                <view class="con" v-if="state.current == 8">
+                  <view class="time">{{ state.operateDate }}</view>
+                  <video src="http://file.usky.cn/statics/video/20230203.mp4" autoplay :controls="false" :show-center-play-btn="false" :loop="true" style="width: 100%"></video>
+                </view>
+                <u-row v-for="po in state.classifyData" :key="po" v-else>
+                  <u-col span="4">
+                    <view style="text-align: right; padding: 0px 5px 0px 5px">{{ po.title }}</view>
+                  </u-col>
+                  <u-col span="8">
+                    <view style="text-align: left; padding: 0px 5px 0px 5px">{{ po.value }}</view>
+                  </u-col>
+                </u-row>
               </view>
-              <u-row v-for="po in classifyData" :key="po" v-else>
-                <u-col span="4">
-                  <view style="text-align: right; padding: 0px 5px 0px 5px">{{ po.title }}</view>
-                </u-col>
-                <u-col span="8">
-                  <view style="text-align: left; padding: 0px 5px 0px 5px">{{ po.value }}</view>
-                </u-col>
-              </u-row>
-            </view>
-            <!-- 各类查询 end -->
-          </uni-swipe-action-item>
-        </uni-swipe-action>
-      </template>
-    </oa-touch>
-  </scroll-view>
+              <!-- 各类查询 end -->
+            </uni-swipe-action-item>
+          </uni-swipe-action>
+        </template>
+      </oa-touch>
+    </template>
+  </oa-scroll>
 </template>
 
 <script setup>
-import { onReady, onLoad, onShow, onNavigationBarButtonTap } from "@dcloudio/uni-app";
+/*----------------------------------依赖引入-----------------------------------*/
+import { onReady, onLoad, onUnload, onShow, onNavigationBarButtonTap } from "@dcloudio/uni-app";
 import { ref, onMounted, inject, shallowRef, reactive, watchEffect, getCurrentInstance } from "vue";
-import { useStores, commonStores } from "@/store/modules/index";
-
+/*----------------------------------接口引入-----------------------------------*/
 import { dataList } from "@/api/business/mhxf/informationSelect";
-
+/*----------------------------------组件引入-----------------------------------*/
+/*----------------------------------store引入-----------------------------------*/
+import { useStores, commonStores } from "@/store/modules/index";
+/*----------------------------------公共方法引入-----------------------------------*/
+/*----------------------------------公共变量-----------------------------------*/
 const { proxy } = getCurrentInstance();
-
 const commonStore = commonStores(); //全局公共Store
+/*----------------------------------变量声明-----------------------------------*/
+const state = reactive({
+  dataInput: "",
+  current: 0,
+  classifyUrl: "",
+  placeholderText: "",
+  classifyData: undefined, //警情查询数据存储
+  operateDate: proxy.$common.formatterDateTime(new Date()), //操作时间
+});
 
-const dataInput = ref("");
-const current = ref(0);
-const classifyUrl = ref("");
-const placeholderText = ref("");
-const dataRes = ref(1);
-const classifyData = ref([]); //警情查询数据存储
+const inter = reactive({
+  interOperateDate: null,
+});
 
 const list = ref([
   { id: 1, name: "警情查询" },
@@ -68,22 +90,22 @@ const list = ref([
  */
 function touchChange(e) {
   if (e == "右滑") {
-    if (current.value >= 1) {
-      current.value--;
+    if (state.current >= 1) {
+      state.current--;
     } else {
-      current.value = list.value.length - 1;
+      state.current = list.value.length - 1;
     }
   } else if (e == "左滑") {
-    if (current.value < list.value.length - 1) {
-      current.value++;
+    if (state.current < list.value.length - 1) {
+      state.current++;
     } else {
-      current.value = 0;
+      state.current = 0;
     }
   }
 }
 
 function blur(e) {
-  if (dataInput.value) {
+  if (state.dataInput) {
     goSearch();
   }
 }
@@ -92,75 +114,73 @@ function blur(e) {
  * @tabs点击事件
  */
 function tabsClick(e) {
-  current.value = e.index;
-  console.log(current.value);
-  dataInput.value = "";
-  dataRes.value = 1;
+  state.current = e.index;
+  state.dataInput = "";
 }
 
 function goSearch() {
-  if (current.value == 0) {
+  if (state.current == 0) {
     //警情查询
-    classifyUrl.value = "/service-fire/demPoliceInfo/page";
-    placeholderText.value = "请输入案件编号";
-    classifySearch(classifyUrl.value, {
-      caseCode: dataInput.value,
+    state.classifyUrl = "/service-fire/demPoliceInfo/page";
+    state.placeholderText = "请输入案件编号";
+    classifySearch(state.classifyUrl, {
+      caseCode: state.dataInput,
     });
-  } else if (current.value == 1) {
+  } else if (state.current == 1) {
     //火灾查询
-    placeholderText.value = "请输入火灾地址";
-    classifyUrl.value = "/service-fire/demFireStatisticsAttach/page";
-    classifySearch(classifyUrl.value, {
-      address: dataInput.value,
+    state.placeholderText = "请输入火灾地址";
+    state.classifyUrl = "/service-fire/demFireStatisticsAttach/page";
+    classifySearch(state.classifyUrl, {
+      address: state.dataInput,
     });
-  } else if (current.value == 2) {
+  } else if (state.current == 2) {
     //人员查询
-    placeholderText.value = "请输入值班人员名称";
-    classifyUrl.value = "/service-fire/unitBeOnDuty/list";
-    classifySearch(classifyUrl.value, {
-      name: dataInput.value,
+    state.placeholderText = "请输入值班人员名称";
+    state.classifyUrl = "/service-fire/unitBeOnDuty/list";
+    classifySearch(state.classifyUrl, {
+      name: state.dataInput,
     });
-  } else if (current.value == 3) {
+  } else if (state.current == 3) {
     //车辆信息
-    placeholderText.value = "请输入车牌号";
-    classifyUrl.value = "/service-fire/unitBeOnDuty/vehiclelist";
-    classifySearch(classifyUrl.value, {
-      licensePlate: dataInput.value,
+    state.placeholderText = "请输入车牌号";
+    state.classifyUrl = "/service-fire/unitBeOnDuty/vehiclelist";
+    classifySearch(state.classifyUrl, {
+      licensePlate: state.dataInput,
     });
-  } else if (current.value == 4) {
+  } else if (state.current == 4) {
     //站点查询
-    placeholderText.value = "请输入站点名称";
-    classifyUrl.value = "/service-fire/unitBeOnDuty/page";
-    classifySearch(classifyUrl.value, {
-      stationName: dataInput.value,
+    state.placeholderText = "请输入站点名称";
+    state.classifyUrl = "/service-fire/unitBeOnDuty/page";
+    classifySearch(state.classifyUrl, {
+      stationName: state.dataInput,
     });
-  } else if (current.value == 5) {
+  } else if (state.current == 5) {
     //消火栓
-    placeholderText.value = "请输入水源名称";
-    classifyUrl.value = "/service-fire/demWaterSource/waterSourceList";
-    classifySearch(classifyUrl.value, {
-      waterName: dataInput.value,
+    state.placeholderText = "请输入水源名称";
+    state.classifyUrl = "/service-fire/demWaterSource/waterSourceList";
+    classifySearch(state.classifyUrl, {
+      waterName: state.dataInput,
     });
-  } else if (current.value == 6) {
+  } else if (state.current == 6) {
     //重点单位
-    placeholderText.value = "请输入单位名称";
-    classifyUrl.value = "/service-fire/baseCompany/companyList";
-    classifySearch(classifyUrl.value, {
-      companyName: dataInput.value,
+    state.placeholderText = "请输入单位名称";
+    state.classifyUrl = "/service-fire/baseCompany/companyList";
+    classifySearch(state.classifyUrl, {
+      companyName: state.dataInput,
     });
-  } else if (current.value == 7) {
+  } else if (state.current == 7) {
     //消防检查信息
-    placeholderText.value = "请输入单位ID";
-    classifyUrl.value = "/service-fire/demFireInspect/fireInspectList";
-    classifySearch(classifyUrl.value, {
-      companyId: dataInput.value,
+    state.placeholderText = "请输入单位ID";
+    state.classifyUrl = "/service-fire/demFireInspect/fireInspectList";
+    classifySearch(state.classifyUrl, {
+      companyId: state.dataInput,
     });
-  } else if (current.value == 8) {
+  } else if (state.current == 8) {
     //消防检查信息
-    placeholderText.value = "";
-    // classifyUrl.value = "/service-fire/demFireInspect/fireInspectList";
-    // classifySearch(classifyUrl.value, {
-    //   companyId: dataInput.value,
+    state.placeholderText = "";
+    // state.classifyUrl = "/service-fire/demFireInspect/fireInspectList";
+    // classifySearch(state.classifyUrl, {
+    //   companyId: state.dataInput,
     // });
   }
 }
@@ -168,35 +188,23 @@ function goSearch() {
 //分类信息查询 start
 async function classifySearch(URL, params) {
   proxy.$modal.loading("加载中");
-  classifyData.value = [];
+  state.classifyData = [];
   dataList(URL, params).then((res) => {
     proxy.$modal.closeLoading();
     if (res.status == "SUCCESS") {
-      if (current.value == 2) {
-        if (res.data.length) {
-          dataRes.value = 1;
-        } else {
-          dataRes.value = 0;
-        }
+      if (state.current == 2) {
         var records = res.data[0][0];
-      } else if (current.value == 3) {
-        if (res.data.length) {
-          dataRes.value = 1;
-        } else {
-          dataRes.value = 0;
-        }
-
+      } else if (state.current == 3) {
         var records = res.data[0];
       } else {
-        if (res.data.total) {
-          dataRes.value = 1;
-        } else {
-          dataRes.value = 0;
-        }
         var records = res.data.records[0];
       }
 
-      switch (current.value) {
+      if (JSON.stringify(records) === "{}") {
+        state.classifyData = undefined;
+      }
+
+      switch (state.current) {
         case 0: //警情查询
           var classifyTitle = [
             "案件编号",
@@ -481,7 +489,7 @@ async function classifySearch(URL, params) {
         var obj = {};
         obj.title = classifyTitle[i];
         obj.value = classifyValue[i];
-        classifyData.value.push(obj);
+        state.classifyData.push(obj);
       }
     } else {
     }
@@ -493,36 +501,14 @@ watchEffect(() => {
   goSearch();
 });
 
-// start
-
-const newTime = ref("");
-function getNowTime() {
-  var date = new Date();
-  var time =
-    addZero(date.getFullYear()) +
-    "-" +
-    addZero(date.getMonth() + 1) +
-    "-" +
-    addZero(date.getDate()) +
-    " " +
-    addZero(date.getHours()) +
-    ":" +
-    addZero(date.getMinutes()) +
-    ":" +
-    addZero(date.getSeconds());
-  newTime.value = time;
-}
-//根据自己的需求,看要不要在时间不大于10的时候在前面补0,如果需要直接addZero(date.getMinutes()),其它与之相同,如果不需要删掉addZero()方法即可。
-//小于10的拼接上0字符串
-function addZero(s) {
-  return s < 10 ? "0" + s : s;
-}
-
-// end
-
 onLoad((options) => {
-  clearInterval(myTimeDisplay); //销毁之前定时器
-  var myTimeDisplay = setInterval(getNowTime(), 1000); //每秒更新一次时间
+  inter.interOperateDate = setInterval(() => {
+    state.operateDate = proxy.$common.formatterDateTime(new Date());
+  }, 1000);
+});
+
+onUnload(() => {
+  clearInterval(inter.interOperateDate); //销毁之前定时器
 });
 
 onShow(() => {

+ 164 - 151
src/pages/business/mhxf/needMatter/index.vue

@@ -3,183 +3,196 @@
     <u-tabs :list="state.tabsList" :current="state.current" @click="tabsClick" lineColor="#333" :activeStyle="{ color: '#333' }" :inactiveStyle="{ color: '#909399' }"></u-tabs>
   </u-sticky>
 
-  <scroll-view class="scroll-height" :scroll-y="true" :data-theme="'theme-' + proxy.$settingStore.themeColor.name" style="padding-bottom: 44px">
-    <oa-touch class="needMatter" @change="touchChange">
-      <template #content>
-        <u-empty v-if="classifyData.length <= 0" text="暂无数据" mode="data" icon="http://cdn.uviewui.com/uview/empty/data.png"> </u-empty>
-
-        <u-collapse v-else>
-          <u-collapse-item v-for="(cl, index) in classifyData" :key="index">
-            <template #title>
-              <view class="collapse-header-area">
-                <u--image class="collapse-header-area-image" src="/static/images/needMatter/icon1.png" width="13px" height="14px"></u--image>
-
-                <view class="collapse-header-area-lable">
-                  <view>待办通知</view>
-                  <view>建议完成限期:</view>
-                  <view style="color: #666666">{{ cl.reformId }}</view>
-                </view>
-                <view class="collapse-header-area-value">
-                  <view
-                    :style="{
-                      color:
+  <oa-scroll
+    customClass="scroll-height"
+    :isSticky="true"
+    :refresherLoad="false"
+    :refresherLoadTitle="false"
+    :refresherEnabled="false"
+    :refresherEnabledTitle="false"
+    :refresherDefaultStyle="'none'"
+    :refresherThreshold="44"
+    :refresherBackground="'#f5f6f7'"
+    :data-theme="'theme-' + proxy.$settingStore.themeColor.name"
+  >
+    <template #default>
+      <oa-touch class="needMatter" @change="touchChange">
+        <template #content>
+          <u-empty v-if="classifyData.length <= 0" text="暂无数据" mode="data" icon="http://cdn.uviewui.com/uview/empty/data.png"> </u-empty>
+
+          <u-collapse v-else>
+            <u-collapse-item v-for="(cl, index) in classifyData" :key="index">
+              <template #title>
+                <view class="collapse-header-area">
+                  <u--image class="collapse-header-area-image" src="/static/images/needMatter/icon1.png" width="13px" height="14px"></u--image>
+
+                  <view class="collapse-header-area-lable">
+                    <view>待办通知</view>
+                    <view>建议完成限期:</view>
+                    <view style="color: #666666">{{ cl.reformId }}</view>
+                  </view>
+                  <view class="collapse-header-area-value">
+                    <view
+                      :style="{
+                        color:
+                          cl.reformStatus == 1
+                            ? '#0887F8'
+                            : cl.reformStatus == 2
+                            ? '#23DEDC'
+                            : cl.reformStatus == 3
+                            ? '#16BF00'
+                            : cl.reformStatus == 4
+                            ? '#F94343'
+                            : cl.reformStatus == 5
+                            ? '#9D40F3'
+                            : '',
+                      }"
+                    >
+                      {{
                         cl.reformStatus == 1
-                          ? '#0887F8'
+                          ? "已接收"
                           : cl.reformStatus == 2
-                          ? '#23DEDC'
+                          ? "进行中"
                           : cl.reformStatus == 3
-                          ? '#16BF00'
+                          ? "待办完成"
                           : cl.reformStatus == 4
-                          ? '#F94343'
+                          ? "审核不通过"
                           : cl.reformStatus == 5
-                          ? '#9D40F3'
-                          : '',
-                    }"
-                  >
-                    {{
-                      cl.reformStatus == 1
-                        ? "已接收"
-                        : cl.reformStatus == 2
-                        ? "进行中"
-                        : cl.reformStatus == 3
-                        ? "待办完成"
-                        : cl.reformStatus == 4
-                        ? "审核不通过"
-                        : cl.reformStatus == 5
-                        ? "审核通过"
-                        : ""
-                    }}
+                          ? "审核通过"
+                          : ""
+                      }}
+                    </view>
+                    <view style="text-align: left">{{ cl.limitTime }}</view>
+                    <view style="color: #666666">{{ cl.sendTime }}</view>
                   </view>
-                  <view style="text-align: left">{{ cl.limitTime }}</view>
-                  <view style="color: #666666">{{ cl.sendTime }}</view>
                 </view>
-              </view>
-            </template>
-            <view class="collapse-center-area">
-              <view class="tableType1 mb10">
-                <u-row>
-                  <u-col span="2">
-                    <view>序号</view>
-                  </u-col>
-                  <u-col span="5.5">
-                    <view>待办项</view>
-                  </u-col>
-                  <u-col span="4.5">
-                    <view>原因</view>
-                  </u-col>
-                </u-row>
-                <u-row v-for="(co, index) in cl.reformPart.data" :key="index">
-                  <u-col span="2">
-                    <view>{{ index + 1 }}</view>
-                  </u-col>
-                  <u-col span="5.5">
-                    <view>{{ co.item }}</view>
-                  </u-col>
-                  <u-col span="4.5">
-                    <view>{{ co.reason }}</view>
-                  </u-col>
-                </u-row>
-              </view>
+              </template>
+              <view class="collapse-center-area">
+                <view class="tableType1 mb10">
+                  <u-row>
+                    <u-col span="2">
+                      <view>序号</view>
+                    </u-col>
+                    <u-col span="5.5">
+                      <view>待办项</view>
+                    </u-col>
+                    <u-col span="4.5">
+                      <view>原因</view>
+                    </u-col>
+                  </u-row>
+                  <u-row v-for="(co, index) in cl.reformPart.data" :key="index">
+                    <u-col span="2">
+                      <view>{{ index + 1 }}</view>
+                    </u-col>
+                    <u-col span="5.5">
+                      <view>{{ co.item }}</view>
+                    </u-col>
+                    <u-col span="4.5">
+                      <view>{{ co.reason }}</view>
+                    </u-col>
+                  </u-row>
+                </view>
 
-              <view class="collapse-center-area-item" v-if="cl.reformStatus == 1">
-                <u-steps current="0" dot>
-                  <u-steps-item style="text-align: center" title="已接收" :desc="cl.sendTime ? cl.sendTime.replace(' ', '\n') : ''"> </u-steps-item>
-                  <u-steps-item style="text-align: center" title="进行中" :desc="cl.reformTime ? cl.reformTime.replace(' ', '\n') : ''"></u-steps-item>
-                  <u-steps-item style="text-align: center" title="待审核" :desc="cl.reviewTime ? cl.reviewTime.replace(' ', '\n') : ''"></u-steps-item>
-                </u-steps>
+                <view class="collapse-center-area-item" v-if="cl.reformStatus == 1">
+                  <u-steps current="0" dot>
+                    <u-steps-item style="text-align: center" title="已接收" :desc="cl.sendTime ? cl.sendTime.replace(' ', '\n') : ''"> </u-steps-item>
+                    <u-steps-item style="text-align: center" title="进行中" :desc="cl.reformTime ? cl.reformTime.replace(' ', '\n') : ''"></u-steps-item>
+                    <u-steps-item style="text-align: center" title="待审核" :desc="cl.reviewTime ? cl.reviewTime.replace(' ', '\n') : ''"></u-steps-item>
+                  </u-steps>
 
-                <view class="collapse-center-area-item-child">
-                  <u-button type="primary" text="去整改" shape="circle" @click="handleSubmit(cl, '去整改')" customStyle="width: 60px; height: 23px"></u-button>
+                  <view class="collapse-center-area-item-child">
+                    <u-button type="primary" text="去整改" shape="circle" @click="handleSubmit(cl, '去整改')" customStyle="width: 60px; height: 23px"></u-button>
+                  </view>
                 </view>
-              </view>
 
-              <view class="collapse-center-area-item" v-if="cl.reformStatus == 2">
-                <u-steps current="1" dot>
-                  <u-steps-item style="text-align: center" title="已接收" :desc="cl.sendTime ? cl.sendTime.replace(' ', '\n') : ''"> </u-steps-item>
-                  <u-steps-item style="text-align: center" title="进行中" :desc="cl.reformTime ? cl.reformTime.replace(' ', '\n') : ''"></u-steps-item>
-                  <u-steps-item style="text-align: center" title="待审核" :desc="cl.reviewTime ? cl.reviewTime.replace(' ', '\n') : ''"></u-steps-item>
-                </u-steps>
+                <view class="collapse-center-area-item" v-if="cl.reformStatus == 2">
+                  <u-steps current="1" dot>
+                    <u-steps-item style="text-align: center" title="已接收" :desc="cl.sendTime ? cl.sendTime.replace(' ', '\n') : ''"> </u-steps-item>
+                    <u-steps-item style="text-align: center" title="进行中" :desc="cl.reformTime ? cl.reformTime.replace(' ', '\n') : ''"></u-steps-item>
+                    <u-steps-item style="text-align: center" title="待审核" :desc="cl.reviewTime ? cl.reviewTime.replace(' ', '\n') : ''"></u-steps-item>
+                  </u-steps>
 
-                <view class="collapse-center-area-item-child">
-                  <u-button type="primary" text="填报" shape="circle" @click="handleSubmit(cl, '填报')" customStyle="width: 60px; height: 23px"></u-button>
+                  <view class="collapse-center-area-item-child">
+                    <u-button type="primary" text="填报" shape="circle" @click="handleSubmit(cl, '填报')" customStyle="width: 60px; height: 23px"></u-button>
+                  </view>
                 </view>
-              </view>
 
-              <view class="collapse-center-area-item" v-if="cl.reformStatus == 3">
-                <u-steps current="1" dot>
-                  <u-steps-item style="text-align: center" title="已接收" :desc="cl.sendTime ? cl.sendTime.replace(' ', '\n') : ''"> </u-steps-item>
-                  <u-steps-item style="text-align: center" title="待办完成" :desc="cl.reformTime ? cl.reformTime.replace(' ', '\n') : ''"></u-steps-item>
-                  <u-steps-item style="text-align: center" title="待审核" :desc="cl.reviewTime ? cl.reviewTime.replace(' ', '\n') : ''"></u-steps-item>
-                </u-steps>
-              </view>
+                <view class="collapse-center-area-item" v-if="cl.reformStatus == 3">
+                  <u-steps current="1" dot>
+                    <u-steps-item style="text-align: center" title="已接收" :desc="cl.sendTime ? cl.sendTime.replace(' ', '\n') : ''"> </u-steps-item>
+                    <u-steps-item style="text-align: center" title="待办完成" :desc="cl.reformTime ? cl.reformTime.replace(' ', '\n') : ''"></u-steps-item>
+                    <u-steps-item style="text-align: center" title="待审核" :desc="cl.reviewTime ? cl.reviewTime.replace(' ', '\n') : ''"></u-steps-item>
+                  </u-steps>
+                </view>
 
-              <view class="collapse-center-area-item" v-if="cl.reformStatus == 4">
-                <u-steps current="2" dot>
-                  <u-steps-item style="text-align: center" title="已接收" :desc="cl.sendTime ? cl.sendTime.replace(' ', '\n') : ''"> </u-steps-item>
-                  <u-steps-item style="text-align: center" title="待办完成" :desc="cl.reformTime ? cl.reformTime.replace(' ', '\n') : ''"></u-steps-item>
-                  <u-steps-item style="text-align: center" title="审核不通过" :desc="cl.reviewTime ? cl.reviewTime.replace(' ', '\n') : ''" error></u-steps-item>
-                </u-steps>
+                <view class="collapse-center-area-item" v-if="cl.reformStatus == 4">
+                  <u-steps current="2" dot>
+                    <u-steps-item style="text-align: center" title="已接收" :desc="cl.sendTime ? cl.sendTime.replace(' ', '\n') : ''"> </u-steps-item>
+                    <u-steps-item style="text-align: center" title="待办完成" :desc="cl.reformTime ? cl.reformTime.replace(' ', '\n') : ''"></u-steps-item>
+                    <u-steps-item style="text-align: center" title="审核不通过" :desc="cl.reviewTime ? cl.reviewTime.replace(' ', '\n') : ''" error></u-steps-item>
+                  </u-steps>
 
-                <view class="collapse-center-area-item-child">
-                  <view>备注:{{ cl.reviewRemark ? cl.reviewRemark : "无" }}</view>
-                </view>
+                  <view class="collapse-center-area-item-child">
+                    <view>备注:{{ cl.reviewRemark ? cl.reviewRemark : "无" }}</view>
+                  </view>
 
-                <view class="collapse-center-area-item-child">
-                  <u-button type="primary" text="去整改" shape="circle" @click="handleSubmit(cl, '去整改')" customStyle="width: 60px; height: 23px"></u-button>
+                  <view class="collapse-center-area-item-child">
+                    <u-button type="primary" text="去整改" shape="circle" @click="handleSubmit(cl, '去整改')" customStyle="width: 60px; height: 23px"></u-button>
+                  </view>
                 </view>
-              </view>
 
-              <view class="collapse-center-area-item" v-if="cl.reformStatus == 5">
-                <u-steps current="2" dot>
-                  <u-steps-item style="text-align: center" title="已接收" :desc="cl.sendTime ? cl.sendTime.replace(' ', '\n') : ''"> </u-steps-item>
-                  <u-steps-item style="text-align: center" title="待办完成" :desc="cl.reformTime ? cl.reformTime.replace(' ', '\n') : ''"></u-steps-item>
-                  <u-steps-item style="text-align: center" title="审核通过" :desc="cl.reviewTime ? cl.reviewTime.replace(' ', '\n') : ''"></u-steps-item>
-                </u-steps>
-
-                <view class="collapse-center-area-item-child">
-                  <view style="display: flex">
-                    <view style="white-space: nowrap">整改资料:</view>
-                    <view style="width: 100%">
-                      <view style="display: flex" v-for="(i, index) in 5" :key="index">
-                        <view>{{ cl["reformPathName" + (index + 1)] }}</view>
-                        <!-- <view style="margin: auto 0 auto auto">
+                <view class="collapse-center-area-item" v-if="cl.reformStatus == 5">
+                  <u-steps current="2" dot>
+                    <u-steps-item style="text-align: center" title="已接收" :desc="cl.sendTime ? cl.sendTime.replace(' ', '\n') : ''"> </u-steps-item>
+                    <u-steps-item style="text-align: center" title="待办完成" :desc="cl.reformTime ? cl.reformTime.replace(' ', '\n') : ''"></u-steps-item>
+                    <u-steps-item style="text-align: center" title="审核通过" :desc="cl.reviewTime ? cl.reviewTime.replace(' ', '\n') : ''"></u-steps-item>
+                  </u-steps>
+
+                  <view class="collapse-center-area-item-child">
+                    <view style="display: flex">
+                      <view style="white-space: nowrap">整改资料:</view>
+                      <view style="width: 100%">
+                        <view style="display: flex" v-for="(i, index) in 5" :key="index">
+                          <view>{{ cl["reformPathName" + (index + 1)] }}</view>
+                          <!-- <view style="margin: auto 0 auto auto">
                             <u--image src="/static/images/needMatter/icon2.png" width="15px" height="15px"></u--image>
                           </view> -->
+                        </view>
                       </view>
                     </view>
+                    <u-line style="margin: 5px 0" color="#E5E5E5"></u-line>
+                    <view>备注:{{ cl.reviewRemark ? cl.reviewRemark : "无" }}</view>
                   </view>
-                  <u-line style="margin: 5px 0" color="#E5E5E5"></u-line>
-                  <view>备注:{{ cl.reviewRemark ? cl.reviewRemark : "无" }}</view>
                 </view>
               </view>
-            </view>
-          </u-collapse-item>
-        </u-collapse>
-
-        <view>
-          <u-modal
-            :show="state.modalShow"
-            title="填报(火灾报警系统)"
-            :showCancelButton="true"
-            :showConfirmButton="true"
-            :closeOnClickOverlay="true"
-            @close="state.modalShow = false"
-            @cancel="state.modalShow = false"
-            @confirm="handleConfirm"
-          >
-            <view style="width: 100%">
-              <uni-section class="block mb20" title="图片上传:" type="line">
-                <u-upload :fileList="state.fileList" name="6" @afterRead="afterRead" multiple :maxCount="5" width="80" height="80"> </u-upload>
-              </uni-section>
-              <uni-section class="block mb20" title="备注:" type="line">
-                <u-textarea v-model="state.textValue" placeholder="请输入内容"></u-textarea>
-              </uni-section>
-            </view>
-          </u-modal>
-        </view>
-      </template>
-    </oa-touch>
-  </scroll-view>
+            </u-collapse-item>
+          </u-collapse>
+
+          <view>
+            <u-modal
+              :show="state.modalShow"
+              title="填报(火灾报警系统)"
+              :showCancelButton="true"
+              :showConfirmButton="true"
+              :closeOnClickOverlay="true"
+              @close="state.modalShow = false"
+              @cancel="state.modalShow = false"
+              @confirm="handleConfirm"
+            >
+              <view style="width: 100%">
+                <uni-section class="block mb20" title="图片上传:" type="line">
+                  <u-upload :fileList="state.fileList" name="6" @afterRead="afterRead" multiple :maxCount="5" width="80" height="80"> </u-upload>
+                </uni-section>
+                <uni-section class="block mb20" title="备注:" type="line">
+                  <u-textarea v-model="state.textValue" placeholder="请输入内容"></u-textarea>
+                </uni-section>
+              </view>
+            </u-modal>
+          </view>
+        </template>
+      </oa-touch>
+    </template>
+  </oa-scroll>
 </template>
 
 <script setup>

+ 35 - 21
src/pages/business/zhaf/xunJian/collect/components/collectDetail.vue

@@ -1,31 +1,47 @@
 <template>
-  <scroll-view class="scroll-height" :scroll-y="true" :data-theme="'theme-' + proxy.$settingStore.themeColor.name">
-    <view class="bg-white p15">
-      <u-form ref="form" labelPosition="left" :model="model" :rules="rules" labelWidth="82">
-        <u-form-item label="地点号码:" prop="siteNubmber">
-          <u-input v-model="model.siteNubmber" disabled></u-input>
-        </u-form-item>
-        <u-form-item label="地点名称:" prop="siteName">
-          <u-input v-model="model.siteName"></u-input>
-        </u-form-item>
-        <u-form-item label="备注:" prop="siteDescribe">
-          <u-input v-model="model.siteDescribe"></u-input>
-        </u-form-item>
-      </u-form>
+  <oa-scroll
+    customClass="scroll-height"
+    :refresherLoad="false"
+    :refresherEnabled="false"
+    :refresherEnabledTitle="false"
+    :refresherDefaultStyle="'none'"
+    :refresherThreshold="44"
+    :refresherBackground="'#f5f6f7'"
+    :data-theme="'theme-' + proxy.$settingStore.themeColor.name"
+  >
+    <template #default>
+      <view class="bg-white p15">
+        <u-form ref="form" labelPosition="left" :model="model" :rules="rules" labelWidth="82">
+          <u-form-item label="地点号码:" prop="siteNubmber">
+            <u-input v-model="model.siteNubmber" disabled></u-input>
+          </u-form-item>
+          <u-form-item label="地点名称:" prop="siteName">
+            <u-input v-model="model.siteName"></u-input>
+          </u-form-item>
+          <u-form-item label="备注:" prop="siteDescribe">
+            <u-input v-model="model.siteDescribe"></u-input>
+          </u-form-item>
+        </u-form>
 
-      <u-button type="primary" class="mt15" style="width: 100%; height: 40px; font-size: 14px" @click="handleInsert()" shape="circle"> 保存 </u-button>
-    </view>
-  </scroll-view>
+        <u-button type="primary" class="mt15" style="width: 100%; height: 40px; font-size: 14px" @click="handleInsert()" shape="circle"> 保存 </u-button>
+      </view>
+    </template>
+  </oa-scroll>
 </template>
 
 <script setup>
+/*----------------------------------依赖引入-----------------------------------*/
 import { onReady, onLoad, onShow } from "@dcloudio/uni-app";
 import { ref, onMounted, inject, shallowRef, reactive, getCurrentInstance, toRefs } from "vue";
+/*----------------------------------接口引入-----------------------------------*/
+/*----------------------------------组件引入-----------------------------------*/
+/*----------------------------------store引入-----------------------------------*/
 import { useStores, commonStores, xunJianStores } from "@/store/modules/index";
-
-const xunJianStore = xunJianStores(); //全局变量值Store
+/*----------------------------------公共方法引入-----------------------------------*/
+/*----------------------------------公共变量-----------------------------------*/
 const { proxy } = getCurrentInstance();
-
+const xunJianStore = xunJianStores(); //全局变量值Store
+/*----------------------------------变量声明-----------------------------------*/
 const form = ref(null); //表单refs获取
 const model = reactive({
   siteType: 1,
@@ -75,8 +91,6 @@ onShow(() => {
   //调用系统主题颜色
   proxy.$settingStore.systemThemeColor([1]);
 });
-
-onMounted(() => {});
 </script>
 
 <style lang="scss">

+ 8 - 6
src/pages/business/zhaf/xunJian/collect/components/collectRecord.vue

@@ -79,6 +79,10 @@ function confirm(e) {
  * @api请求
  */
 async function handleSelectApi() {
+  if (!proxy.$common.isNetwork()) {
+    return false;
+  }
+
   siteList({
     startTime: state.startTime, //开始时间
     endTime: state.endTime, //结束时间
@@ -91,7 +95,7 @@ async function handleSelectApi() {
       }
     })
     .catch((err) => {
-      proxy.$modal.msg("网络异常,请稍后重试!");
+      proxy.$modal.msg(err);
     });
 }
 
@@ -118,7 +122,9 @@ function handleToBack() {
   });
 }
 
-onLoad((options) => {});
+onLoad((options) => {
+  handleSelectApi();
+});
 
 onShow(() => {
   //调用系统主题颜色
@@ -126,10 +132,6 @@ onShow(() => {
 });
 
 onReady(() => {});
-
-onMounted(() => {
-  handleSelectApi();
-});
 </script>
 
 <style lang="scss" scoped>

+ 5 - 5
src/pages/business/zhaf/xunJian/collect/index.vue

@@ -136,13 +136,15 @@ const messageList = reactive({
   color: "",
 });
 function handleInsert(e) {
+  if (!proxy.$common.isNetwork()) {
+    return false;
+  }
+
   uni.getLocation({
     type: "gcj02",
     geocode: true,
     highAccuracyExpireTime: 5000,
     success: function (res) {
-      console.log("当前位置的经度:" + res.longitude);
-      console.log("当前位置的纬度:" + res.latitude);
       api(res.longitude, res.latitude);
     },
     fail: function (res) {
@@ -179,7 +181,7 @@ function handleInsert(e) {
         }
       })
       .catch((err) => {
-        proxy.$modal.msg("网络异常,请稍后重试!");
+        proxy.$modal.msg(err);
       });
   }
 }
@@ -248,8 +250,6 @@ onUnload(() => {
 });
 
 onReady(() => {});
-
-onMounted(() => {});
 </script>
 
 <style lang="scss" scoped>

+ 40 - 31
src/pages/business/zhaf/xunJian/error/errorDisposition.vue

@@ -1,32 +1,43 @@
 <template>
-  <scroll-view id="exception" class="scroll-height" :scroll-y="true" :data-theme="'theme-' + proxy.$settingStore.themeColor.name">
-    <u--form ref="uForm" :model="form" :rules="rules" labelWidth="90">
-      <view style="padding: 10px 10px 20px 20px; background: #ffffff">
-        <u-form-item label="事件名称" prop="eventName" required :borderBottom="true">
-          <view style="color: #666666">{{ form.eventName }}</view>
-        </u-form-item>
-        <u-form-item label="处置图片"  :borderBottom="true">
-          <oa-upload :uploadCount="5" :uploadList="form.imageList" :uploadListSrc="'url'" @uploadSuccessChange="uploadSuccessChange" @uploadDeleteChange="uploadDeleteChange"></oa-upload>
-        </u-form-item>
-        <u-form-item label="备注" prop="remark" :borderBottom="true">
-          <u--textarea v-model="form.handleContent" placeholder="备注信息,最多可输入50个字" :count="true" border="none" maxlength="50"></u--textarea>
-        </u-form-item>
-      </view>
-    </u--form>
+  <oa-scroll
+    customClass="errorDisposition-container scroll-height"
+    :refresherLoad="false"
+    :refresherEnabled="false"
+    :refresherEnabledTitle="false"
+    :refresherDefaultStyle="'none'"
+    :refresherThreshold="44"
+    :refresherBackground="'#f5f6f7'"
+    :data-theme="'theme-' + proxy.$settingStore.themeColor.name"
+  >
+    <template #default>
+      <u--form ref="uForm" :model="form" :rules="rules" labelWidth="90">
+        <view style="padding: 10px 10px 20px 20px; background: #ffffff">
+          <u-form-item label="事件名称" prop="eventName" required :borderBottom="true">
+            <view style="color: #666666">{{ form.eventName }}</view>
+          </u-form-item>
+          <u-form-item label="处置图片" :borderBottom="true">
+            <oa-upload :uploadCount="5" :uploadList="form.imageList" :uploadListSrc="'url'" @uploadSuccessChange="uploadSuccessChange" @uploadDeleteChange="uploadDeleteChange"></oa-upload>
+          </u-form-item>
+          <u-form-item label="备注" prop="remark" :borderBottom="true">
+            <u--textarea v-model="form.handleContent" placeholder="备注信息,最多可输入50个字" :count="true" border="none" maxlength="50"></u--textarea>
+          </u-form-item>
+        </view>
+      </u--form>
 
-    <view class="app-button">
-      <view class="app-button-padding"></view>
-      <view class="app-button-fixed">
-        <u-button class="app-buttom" type="primary" @click="handleSubmit()" shape="circle"> 提交 </u-button>
+      <view class="app-button">
+        <view class="app-button-padding"></view>
+        <view class="app-button-fixed">
+          <u-button class="app-buttom" type="primary" @click="handleSubmit()" shape="circle"> 提交 </u-button>
+        </view>
       </view>
-    </view>
-  </scroll-view>
+    </template>
+  </oa-scroll>
 </template>
 
 <script setup>
 /*----------------------------------依赖引入-----------------------------------*/
 import { onLoad, onShow } from "@dcloudio/uni-app";
-import {  reactive, toRefs, getCurrentInstance } from "vue";
+import { reactive, toRefs, getCurrentInstance } from "vue";
 /*----------------------------------接口引入-----------------------------------*/
 import { errorApi } from "@/api/business/zhaf/xunJian/index.js";
 /*----------------------------------组件引入-----------------------------------*/
@@ -38,9 +49,9 @@ const state = reactive({
   form: {
     eventName: "", //事件名称
     imageList: [],
-    handleImage:"",
+    handleImage: "",
     handleContent: "",
-    id:undefined
+    id: undefined,
   },
 });
 
@@ -50,11 +61,15 @@ const { form } = toRefs(state);
  * @按钮点击事件
  */
 function handleSubmit() {
+  if (!proxy.$common.isNetwork()) {
+    return false;
+  }
+
   var param = {
     eventName: state.form.id, //事件名称
     handleImage: JSON.stringify(state.form.imageList),
     handleContent: state.form.handleContent,
-    id:state.form.id
+    id: state.form.id,
   };
   errorApi()
     .Update(param)
@@ -99,10 +114,4 @@ onShow(() => {
 });
 </script>
 
-<style lang="scss">
-#exception {
-  :deep(.u-picker__view__column__item) {
-    font-size: 13px;
-  }
-}
-</style>
+<style lang="scss"></style>

+ 49 - 42
src/pages/business/zhaf/xunJian/error/errorList.vue

@@ -1,12 +1,13 @@
 <template>
   <u-sticky class="shadow-default" bgColor="#fff" style="top: 0">
-    <u-tabs :list="tabsList" :current="tabsCurrent" @click="tabsClick" lineColor="#333" :activeStyle="{ color: '#333' }" :inactiveStyle="{ color: '#909399' }" :scrollable="false"></u-tabs>
+    <u-tabs :list="state.tabsList" :current="state.tabsCurrent" @click="tabsClick" lineColor="#333" :activeStyle="{ color: '#333' }" :inactiveStyle="{ color: '#909399' }" :scrollable="false"></u-tabs>
   </u-sticky>
 
   <oa-scroll
     customClass="fastMail-container scroll-height"
-    :pageSize="pageSize"
-    :total="total"
+    :pageSize="state.pageSize"
+    :total="state.total"
+    :isSticky="true"
     :refresherLoad="true"
     :refresherEnabled="true"
     :refresherDefaultStyle="'none'"
@@ -16,15 +17,15 @@
     @refresh="refresh"
     :data-theme="'theme-' + proxy.$settingStore.themeColor.name"
   >
-    <view v-show="tabsCurrent == 1 || tabsCurrent == 0">
-      <view class="content-area menu-list mlr0" v-for="data in dataList" :key="data">
+    <view v-show="state.tabsCurrent == 1 || state.tabsCurrent == 0">
+      <view class="content-area menu-list mlr0" v-for="data in state.dataList" :key="data">
         <view class="list-cell" style="color: #666666; line-height: 30px" @click="toDetail(data)">
           <view class="content-area-row_wrap menu-item">
-            <view class="content-area-row_wrap-view " style="margin-right: auto">
+            <view class="content-area-row_wrap-view" style="margin-right: auto">
               {{ data.eventName }}
             </view>
             <view class="content-area-row_wrap-view flexend">{{ data.createTime ? data.createTime.replace("T", " ") : "" }}</view>
-            <view class="content-area-row_wrap-view ">{{ proxy.$common.mapping("label", "value", data.eventType, patrol_event_type) }} </view>
+            <view class="content-area-row_wrap-view">{{ proxy.$common.mapping("label", "value", data.eventType, patrol_event_type) }} </view>
           </view>
         </view>
       </view>
@@ -32,44 +33,51 @@
   </oa-scroll>
 </template>
 <script setup>
+/*----------------------------------依赖引入-----------------------------------*/
 import { onLoad, onShow, onReady, onHide, onLaunch, onNavigationBarButtonTap, onPageScroll } from "@dcloudio/uni-app";
-import { ref, reactive,  getCurrentInstance, toRefs } from "vue";
+import { ref, reactive, getCurrentInstance, toRefs } from "vue";
+/*----------------------------------接口引入-----------------------------------*/
 import { errorApi } from "@/api/business/zhaf/xunJian";
+/*----------------------------------组件引入-----------------------------------*/
+/*----------------------------------store引入-----------------------------------*/
+/*----------------------------------公共方法引入-----------------------------------*/
+/*----------------------------------公共变量-----------------------------------*/
 const { proxy } = getCurrentInstance();
 const { patrol_event_classify, patrol_event_grade, patrol_event_type } = proxy.useDict("patrol_event_classify", "patrol_event_grade", "patrol_event_type");
-const dataList = ref([]);
-const pageSize = ref(20);
-const current = ref(1);
-const total = ref(0);
-
-const data = reactive({
+/*----------------------------------变量声明-----------------------------------*/
+const state = reactive({
   tabsList: [{ name: "未完成事件" }, { name: "已完成事件" }],
   tabsCurrent: 0,
-});
 
-const { tabsList, tabsCurrent } = toRefs(data);
+  dataList: [],
+  pageSize: 20,
+  current: 1,
+  total: 0,
+});
 
 /**
-  * @页面初始化
-  */
+ * @页面初始化
+ */
 function init() {
   pageQueryApi();
 }
 
 function pageQueryApi() {
-  errorApi().Select({
-    pageNum: current.value,
-    pageSize: pageSize.value,
-    handleStatus:tabsCurrent.value,
-  }).then((res) => {
-      dataList.value = res.data.records;
-      total.value = res.data.total;
-  });
+  errorApi()
+    .Select({
+      pageNum: state.current,
+      pageSize: state.pageSize,
+      handleStatus: state.tabsCurrent,
+    })
+    .then((res) => {
+      state.dataList = res.data.records;
+      state.total = res.data.total;
+    });
 }
 
 /**
-  * @复制粘贴板
-  */
+ * @复制粘贴板
+ */
 function toDetail(row) {
   uni.navigateTo({
     url: "/pages/business/zhaf/xunJian/error/errorListDetail?id=" + row.id,
@@ -77,26 +85,26 @@ function toDetail(row) {
 }
 
 /**
-  * @tabs点击事件
-  */
+ * @tabs点击事件
+ */
 function tabsClick(e) {
-  tabsCurrent.value = e.index;
+  state.tabsCurrent = e.index;
   pageQueryApi();
 }
 
 /**
-  * @scrollView加载数据
-  */
+ * @scrollView加载数据
+ */
 function load() {
-  pageSize.value += 10;
+  state.pageSize += 10;
   init();
 }
 
 /**
-  * @scrollView刷新数据
-  */
+ * @scrollView刷新数据
+ */
 function refresh() {
-  pageSize.value = 20;
+  state.pageSize = 20;
   init();
 }
 
@@ -149,10 +157,9 @@ onNavigationBarButtonTap((e) => {
     }
   }
 }
-.flexend{
-flex: 1;
-display: block;
-text-align: right;
+.flexend {
+  flex: 1;
+  display: block;
+  text-align: right;
 }
 </style>
-  

+ 62 - 47
src/pages/business/zhaf/xunJian/error/index.vue

@@ -1,51 +1,62 @@
 <template>
-  <scroll-view id="exception" class="scroll-height" :scroll-y="true" :data-theme="'theme-' + proxy.$settingStore.themeColor.name">
-    <u--form ref="uForm" :model="form" :rules="rules" labelWidth="90">
-      <view style="padding: 10px 10px 20px 20px; background: #ffffff">
-        <u-form-item label="姓名" prop="nickName" required :borderBottom="true">
-          <u-input v-model="form.nickName" placeholder="姓名(必填)" border="none" maxlength="50" disabledColor="transparent" disabled />
-        </u-form-item>
-        <u-form-item label="事件名称" prop="eventName" required :borderBottom="true">
-          <u-input v-model="form.eventName" placeholder="事件名称(必填)" border="none" maxlength="50" />
-        </u-form-item>
-        <u-form-item label="事件分类" prop="eventCategory" required :borderBottom="true" @click="handleAction('事件分类')">
-          <u-input v-model="form.eventCategoryName" placeholder="事件分类(必选)" suffixIcon="arrow-right" suffixIconStyle="color: #909399" border="none" disabledColor="transparent" disabled />
-        </u-form-item>
-        <u-form-item label="事件类型" prop="eventType" required :borderBottom="true" @click="handleAction('事件类型')">
-          <u-input v-model="form.eventTypeName" placeholder="事件类型(必选)" suffixIcon="arrow-right" suffixIconStyle="color: #909399" border="none" disabledColor="transparent" disabled />
-        </u-form-item>
-        <u-form-item label="事件等级" prop="eventLevel" required :borderBottom="true" @click="handleAction('事件等级')">
-          <u-input v-model="form.eventLevelName" placeholder="事件类型(必选)" suffixIcon="arrow-right" suffixIconStyle="color: #909399" border="none" disabledColor="transparent" disabled />
-        </u-form-item>
-        <u-form-item label="现场图片" prop="pictureUrl" :borderBottom="true">
-          <oa-upload :uploadCount="5" :uploadList="form.imageList" :uploadListSrc="'url'" @uploadSuccessChange="uploadSuccessChange" @uploadDeleteChange="uploadDeleteChange"></oa-upload>
-        </u-form-item>
-        <u-form-item label="备注" prop="remark" :borderBottom="true">
-          <u--textarea v-model="form.remark" placeholder="备注信息,最多可输入50个字" :count="true" border="none" maxlength="50"></u--textarea>
-        </u-form-item>
+  <oa-scroll
+    customClass="error-container scroll-height"
+    :refresherLoad="false"
+    :refresherEnabled="false"
+    :refresherEnabledTitle="false"
+    :refresherDefaultStyle="'none'"
+    :refresherThreshold="44"
+    :refresherBackground="'#f5f6f7'"
+    :data-theme="'theme-' + proxy.$settingStore.themeColor.name"
+  >
+    <template #default>
+      <u--form ref="uForm" :model="form" :rules="rules" labelWidth="90">
+        <view style="padding: 10px 10px 20px 20px; background: #ffffff">
+          <u-form-item label="姓名" prop="nickName" required :borderBottom="true">
+            <u-input v-model="form.nickName" placeholder="姓名(必填)" border="none" maxlength="50" disabledColor="transparent" disabled />
+          </u-form-item>
+          <u-form-item label="事件名称" prop="eventName" required :borderBottom="true">
+            <u-input v-model="form.eventName" placeholder="事件名称(必填)" border="none" maxlength="50" />
+          </u-form-item>
+          <u-form-item label="事件分类" prop="eventCategory" required :borderBottom="true" @click="handleAction('事件分类')">
+            <u-input v-model="form.eventCategoryName" placeholder="事件分类(必选)" suffixIcon="arrow-right" suffixIconStyle="color: #909399" border="none" disabledColor="transparent" disabled />
+          </u-form-item>
+          <u-form-item label="事件类型" prop="eventType" required :borderBottom="true" @click="handleAction('事件类型')">
+            <u-input v-model="form.eventTypeName" placeholder="事件类型(必选)" suffixIcon="arrow-right" suffixIconStyle="color: #909399" border="none" disabledColor="transparent" disabled />
+          </u-form-item>
+          <u-form-item label="事件等级" prop="eventLevel" required :borderBottom="true" @click="handleAction('事件等级')">
+            <u-input v-model="form.eventLevelName" placeholder="事件类型(必选)" suffixIcon="arrow-right" suffixIconStyle="color: #909399" border="none" disabledColor="transparent" disabled />
+          </u-form-item>
+          <u-form-item label="现场图片" prop="pictureUrl" :borderBottom="true">
+            <oa-upload :uploadCount="5" :uploadList="form.imageList" :uploadListSrc="'url'" @uploadSuccessChange="uploadSuccessChange" @uploadDeleteChange="uploadDeleteChange"></oa-upload>
+          </u-form-item>
+          <u-form-item label="备注" prop="remark" :borderBottom="true">
+            <u--textarea v-model="form.remark" placeholder="备注信息,最多可输入50个字" :count="true" border="none" maxlength="50"></u--textarea>
+          </u-form-item>
+        </view>
+      </u--form>
+
+      <view class="app-button">
+        <view class="app-button-padding"></view>
+        <view class="app-button-fixed">
+          <u-button class="app-buttom" type="primary" @click="handleSubmit()" shape="circle"> 上报异常 </u-button>
+        </view>
       </view>
-    </u--form>
 
-    <view class="app-button">
-      <view class="app-button-padding"></view>
-      <view class="app-button-fixed">
-        <u-button class="app-buttom" type="primary" @click="handleSubmit()" shape="circle"> 上报异常 </u-button>
-      </view>
-    </view>
-
-    <u-picker
-      :show="actionShow"
-      :columns="actionsList"
-      :title="'请选择' + actionTitle"
-      keyName="label"
-      visibleItemCount="6"
-      :defaultIndex="[actionDefaultIndex]"
-      :closeOnClickOverlay="true"
-      @close="actionShow = false"
-      @cancel="actionShow = false"
-      @confirm="selectAction"
-    ></u-picker>
-  </scroll-view>
+      <u-picker
+        :show="actionShow"
+        :columns="actionsList"
+        :title="'请选择' + actionTitle"
+        keyName="label"
+        visibleItemCount="6"
+        :defaultIndex="[actionDefaultIndex]"
+        :closeOnClickOverlay="true"
+        @close="actionShow = false"
+        @cancel="actionShow = false"
+        @confirm="selectAction"
+      ></u-picker>
+    </template>
+  </oa-scroll>
 </template>
 
 <script setup>
@@ -103,6 +114,10 @@ const { form, rules, actionTitle, actionIndex, actionsList, actionShow, actionDe
  * @按钮点击事件
  */
 function handleSubmit(value) {
+  if (!proxy.$common.isNetwork()) {
+    return false;
+  }
+
   proxy.$refs["uForm"]
     .validate()
     .then((res) => {
@@ -130,7 +145,7 @@ function handleSubmit(value) {
           });
         })
         .catch((err) => {
-          proxy.$modal.msg("网络异常,请稍后重试!");
+          proxy.$modal.msg(err);
         });
     })
     .catch((errors) => {
@@ -217,7 +232,7 @@ onShow(() => {
 </script>
 
 <style lang="scss">
-#exception {
+.error-container {
   :deep(.u-picker__view__column__item) {
     font-size: 13px;
   }

+ 38 - 24
src/pages/business/zhaf/xunJian/plan/components/content.vue

@@ -1,6 +1,15 @@
 <template>
-  <scroll-view class="scroll-height" :scroll-y="true" :data-theme="'theme-' + proxy.$settingStore.themeColor.name">
-    <view class="xunjian-plan-content">
+  <oa-scroll
+    customClass="xunjian-plan-content scroll-height"
+    :refresherLoad="false"
+    :refresherEnabled="false"
+    :refresherEnabledTitle="false"
+    :refresherDefaultStyle="'none'"
+    :refresherThreshold="44"
+    :refresherBackground="'#f5f6f7'"
+    :data-theme="'theme-' + proxy.$settingStore.themeColor.name"
+  >
+    <template #default>
       <view class="bg-white p15 mb15" v-for="(con, index) in contentList" :key="index">
         <view class="flex mb10">
           <uni-section class="block mb10" :title="con.contentTitle" type="line"></uni-section>
@@ -60,34 +69,38 @@
           </view>
         </view>
       </view>
-    </view>
 
-    <view style="margin-bottom: 125px" v-if="xunJianStore.inspectionStatus == 1"></view>
+      <view style="margin-bottom: 125px" v-if="xunJianStore.inspectionStatus == 1"></view>
 
-    <view class="app-button-fixed" v-if="xunJianStore.inspectionStatus == 1">
-      <view class="app-flex">
-        <u-button class="app-buttom" shape="circle" @click="buttonClick(1)"> 上一步 </u-button>
-        <u-button class="app-buttom" type="primary" shape="circle" @click="buttonClick(2)"> 提交 </u-button>
+      <view class="app-button-fixed" v-if="xunJianStore.inspectionStatus == 1">
+        <view class="app-flex">
+          <u-button class="app-buttom" shape="circle" @click="buttonClick(1)"> 上一步 </u-button>
+          <u-button class="app-buttom" type="primary" shape="circle" @click="buttonClick(2)"> 提交 </u-button>
+        </view>
       </view>
-    </view>
 
-    <u-modal ref="uModal" :show="show" :title="title" :content="content" @confirm="confirm"></u-modal>
+      <u-modal ref="uModal" :show="show" :title="title" :content="content" @confirm="confirm"></u-modal>
 
-    <!-- 巡检完成提示 -->
-    <oa-ttsAudio v-if="audioUrl" :audioUrl="audioUrl" :audioBool="true"></oa-ttsAudio>
-  </scroll-view>
+      <!-- 巡检完成提示 -->
+      <oa-ttsAudio v-if="audioUrl" :audioUrl="audioUrl" :audioBool="true"></oa-ttsAudio>
+    </template>
+  </oa-scroll>
 </template>
 
 <script setup>
+/*----------------------------------依赖引入-----------------------------------*/
 import { onLoad, onShow } from "@dcloudio/uni-app";
 import { ref, onMounted, reactive, computed, getCurrentInstance, toRefs, inject, shallowRef } from "vue";
-import { useStores, commonStores, xunJianStores } from "@/store/modules/index";
+/*----------------------------------接口引入-----------------------------------*/
 import { updatePlan } from "@/api/business/zhaf/xunJian/plan.js";
-
-const BASE_URL = inject("$BASE_URL");
-const xunJianStore = xunJianStores(); //全局变量值Store
+/*----------------------------------组件引入-----------------------------------*/
+/*----------------------------------store引入-----------------------------------*/
+import { useStores, commonStores, xunJianStores } from "@/store/modules/index";
+/*----------------------------------公共方法引入-----------------------------------*/
+/*----------------------------------公共变量-----------------------------------*/
 const { proxy } = getCurrentInstance();
-
+const xunJianStore = xunJianStores(); //全局变量值Store
+/*----------------------------------变量声明-----------------------------------*/
 const contentList = ref([]);
 function checkboxChange(value, index) {
   contentList.value[index].contentOptionListValue1 = value;
@@ -164,6 +177,7 @@ async function buttonClick(type) {
     }
 
     const array = {
+      deviceId: uni.getSystemInfoSync().deviceId,
       siteType: xunJianStore.contentArray.siteList.siteType,
       siteNubmber: xunJianStore.contentArray.siteList.siteNubmber,
       siteName: xunJianStore.contentArray.siteList.siteName,
@@ -177,21 +191,21 @@ async function buttonClick(type) {
       recordOptionList: recordOptionList,
     };
 
+    if (!proxy.$common.isNetwork()) {
+      xunJianStore.planDataList.push(array);
+      return false;
+    }
+
     updatePlan(array)
       .then((res) => {
         if (res.status == "SUCCESS") {
           title.value = "消息";
           content.value = "提交成功,确定后返回!";
           show.value = true;
-        } else {
-          xunJianStore.planDataList.push(array);
-          title.value = "消息";
-          content.value = "提交成功,确定后返回!";
-          show.value = true;
         }
       })
       .catch((err) => {
-        proxy.$modal.msg("网络异常,请稍后重试!");
+        proxy.$modal.msg(err);
       });
   }
 }

+ 83 - 67
src/pages/business/zhaf/xunJian/plan/components/report.vue

@@ -1,74 +1,91 @@
 <template>
-  <scroll-view class="scroll-height" :scroll-y="true" :data-theme="'theme-' + proxy.$settingStore.themeColor.name">
-    <view class="flex bg-white mb15 ptb15 pl15" v-for="cu in currentDateList" :key="cu">
-      <view class="flex mr15" @click="pulicClick(cu)">
-        <u-image style="margin: auto" width="40" height="40" src="@/static/images/xunjian/scan.png" v-if="cu.siteType == 1" shape="circle"></u-image>
-
-        <u-image style="margin: auto" width="40" height="40" src="@/static/images/xunjian/NFC.png" v-if="cu.siteType == 2" shape="circle"></u-image>
-      </view>
-      <view class="reportCenter" @click="pulicClick(cu)">
-        <view class="centerSiteName">
-          {{ cu.siteName }}
+  <oa-scroll
+    customClass="scroll-height"
+    :refresherLoad="false"
+    :refresherEnabled="false"
+    :refresherEnabledTitle="false"
+    :refresherDefaultStyle="'none'"
+    :refresherThreshold="44"
+    :refresherBackground="'#f5f6f7'"
+    :data-theme="'theme-' + proxy.$settingStore.themeColor.name"
+  >
+    <template #default>
+      <view class="flex bg-white mb15 ptb15 pl15" v-for="cu in currentDateList" :key="cu">
+        <view class="flex mr15" @click="pulicClick(cu)">
+          <u-image style="margin: auto" width="40" height="40" src="@/static/images/xunjian/scan.png" v-if="cu.siteType == 1" shape="circle"></u-image>
+
+          <u-image style="margin: auto" width="40" height="40" src="@/static/images/xunjian/NFC.png" v-if="cu.siteType == 2" shape="circle"></u-image>
+        </view>
+        <view class="reportCenter" @click="pulicClick(cu)">
+          <view class="centerSiteName">
+            {{ cu.siteName }}
+            <view
+              :style="{
+                margin: 'auto auto auto 15px',
+                fontSize: '5px',
+                backgroundColor: cu.inspectionStatus == 1 ? '#ffbebb' : '#ABE399',
+                color: cu.inspectionStatus == 1 ? '#FF3128' : '#189400',
+                borderRadius: '10px',
+                padding: '0px 5px',
+              }"
+            >
+              {{ cu.inspectionStatus == 1 ? "未巡检" : "已巡检" }}
+            </view>
+          </view>
+          <view style="font-size: 13px; color: #a1a1a1; margin-bottom: 5px"> 描述:{{ cu.siteDescribe == "" || cu.siteDescribe == null ? "无" : cu.siteDescribe }} </view>
+          <view style="font-size: 13px; color: #a1a1a1">
+            完成时间:
+            {{ cu.inspectionTime ? cu.inspectionTime.replace("T", " ") : "无" }}
+          </view>
+        </view>
+        <view class="reportRight">
           <view
+            class="rightChild"
             :style="{
-              margin: 'auto auto auto 15px',
-              fontSize: '5px',
-              backgroundColor: cu.inspectionStatus == 1 ? '#ffbebb' : '#ABE399',
-              color: cu.inspectionStatus == 1 ? '#FF3128' : '#189400',
-              borderRadius: '10px',
-              padding: '0px 5px',
+              color: cu.siteStatus == null || cu.siteStatus == 0 ? '#a0a0a0' : '#1989fa',
             }"
           >
-            {{ cu.inspectionStatus == 1 ? "未巡检" : "已巡检" }}
+            <text class="iconfont oaIcon-map" style="font-size: 18px"></text>
+            <view>定位</view>
+          </view>
+          <view
+            class="rightChild"
+            :style="{
+              color: cu.siteStatus == null || cu.siteStatus == 0 ? '#a0a0a0' : '#1989fa',
+            }"
+          >
+            <text class="iconfont oaIcon-appstore" style="font-size: 18px"></text>
+
+            <view>状态</view>
           </view>
-        </view>
-        <view style="font-size: 13px; color: #a1a1a1; margin-bottom: 5px"> 描述:{{ cu.siteDescribe == "" || cu.siteDescribe == null ? "无" : cu.siteDescribe }} </view>
-        <view style="font-size: 13px; color: #a1a1a1">
-          完成时间:
-          {{ cu.inspectionTime ? cu.inspectionTime.replace("T", " ") : "无" }}
-        </view>
-      </view>
-      <view class="reportRight">
-        <view
-          class="rightChild"
-          :style="{
-            color: cu.siteStatus == null || cu.siteStatus == 0 ? '#a0a0a0' : '#1989fa',
-          }"
-        >
-          <text class="iconfont oaIcon-map" style="font-size: 18px"></text>
-          <view>定位</view>
-        </view>
-        <view
-          class="rightChild"
-          :style="{
-            color: cu.siteStatus == null || cu.siteStatus == 0 ? '#a0a0a0' : '#1989fa',
-          }"
-        >
-          <text class="iconfont oaIcon-appstore" style="font-size: 18px"></text>
-
-          <view>状态</view>
         </view>
       </view>
-    </view>
-
-    <oaMovable :themesColor="proxy.$settingStore.themeColor.color">
-      <template #content>
-        <view class="iconfont oaIcon-nfc menu-item-icon" @click="nfcClick()"></view>
-        <view class="iconfont oaIcon-saoyisao menu-item-icon" @click="scanClick()"></view>
-      </template>
-    </oaMovable>
-  </scroll-view>
+
+      <oaMovable :themesColor="proxy.$settingStore.themeColor.color">
+        <template #content>
+          <view class="iconfont oaIcon-nfc menu-item-icon" @click="nfcClick()"></view>
+          <view class="iconfont oaIcon-saoyisao menu-item-icon" @click="scanClick()"></view>
+        </template>
+      </oaMovable>
+    </template>
+  </oa-scroll>
 </template>
 
 <script setup>
+/*----------------------------------依赖引入-----------------------------------*/
 import { onLoad, onShow, onUnload } from "@dcloudio/uni-app";
 import { ref, onMounted, reactive, computed, getCurrentInstance, toRefs, inject, shallowRef } from "vue";
-import { useStores, commonStores, xunJianStores } from "@/store/modules/index";
+/*----------------------------------接口引入-----------------------------------*/
 import { recordList, recordOption, siteDetails, planSonSiteDetails } from "@/api/business/zhaf/xunJian/plan.js";
+/*----------------------------------组件引入-----------------------------------*/
 import oaMovable from "@/components/oa-movable/index.vue"; // 引入组件
-
+/*----------------------------------store引入-----------------------------------*/
+import { useStores, commonStores, xunJianStores } from "@/store/modules/index";
+/*----------------------------------公共方法引入-----------------------------------*/
+/*----------------------------------公共变量-----------------------------------*/
 const { proxy } = getCurrentInstance();
 const xunJianStore = xunJianStores(); //全局变量值Store
+/*----------------------------------变量声明-----------------------------------*/
 
 function pulicClick(obj) {
   if (obj.inspectionStatus == 2) {
@@ -108,18 +125,11 @@ async function scanClick() {
   uni.scanCode({
     autoZoom: false,
     success: async (e) => {
-      uni.showToast({
-        title: "扫码成功",
-        icon: "none",
-      });
-
+      proxy.$modal.msg("扫码成功");
       siteDetailsApi(e.result);
     },
     fail: (err) => {
-      uni.showToast({
-        title: "扫码失败",
-        icon: "none",
-      });
+      proxy.$modal.msg("扫码失败");
       console.log("扫码失败", err);
     },
     complete: () => {
@@ -137,6 +147,10 @@ function siteDetailsApi(value) {
   xunJianStore.siteId = "";
   xunJianStore.siteNubmber = value;
 
+  if (!proxy.$common.isNetwork()) {
+    return false;
+  }
+
   siteDetails({
     siteId: xunJianStore.siteId,
     siteNubmber: xunJianStore.siteNubmber,
@@ -151,11 +165,10 @@ function siteDetailsApi(value) {
             });
           }
         });
-      } else {
       }
     })
     .catch((err) => {
-      proxy.$modal.msg("网络异常,请稍后重试!");
+      proxy.$modal.msg(err);
     });
 }
 
@@ -165,17 +178,20 @@ function siteDetailsApi(value) {
  */
 const currentDateList = ref([]); //地点列表list数据存储
 function currentApi() {
+  if (!proxy.$common.isNetwork()) {
+    return false;
+  }
+
   planSonSiteDetails({
     planSonId: xunJianStore.planSonId,
   })
     .then((res) => {
       if (res.status == "SUCCESS") {
         currentDateList.value = res.data;
-      } else {
       }
     })
     .catch((err) => {
-      proxy.$modal.msg("网络异常,请稍后重试!");
+      proxy.$modal.msg(err);
     });
 }
 

+ 106 - 75
src/pages/business/zhaf/xunJian/plan/components/siteDetails.vue

@@ -1,74 +1,89 @@
 <template>
-  <scroll-view class="scroll-height" :scroll-y="true" :data-theme="'theme-' + proxy.$settingStore.themeColor.name">
-    <view class="xunjian-plan-siteDetails">
-      <view class="flex bg-white p15 mb15">
-        <u-image style="margin: auto 15px auto 0" width="40" height="40" src="@/static/images/xunjian/scan.png" v-if="siteList.siteType == 1" shape="circle"></u-image>
-        <u-image style="margin: auto 15px auto 0" width="40" height="40" src="@/static/images/xunjian/NFC.png" v-if="siteList.siteType == 2" shape="circle"></u-image>
-
-        <view style="margin: auto auto auto 0">
-          <view style="font-size: 15px; margin-bottom: 2px"> {{ siteList.siteName }} </view>
-          <view style="font-size: 13px; color: #a1a1a1"> {{ siteList.contentCount }}项内容 </view>
+  <oa-scroll
+    customClass="scroll-height"
+    :refresherLoad="false"
+    :refresherEnabled="false"
+    :refresherEnabledTitle="false"
+    :refresherDefaultStyle="'none'"
+    :refresherThreshold="44"
+    :refresherBackground="'#f5f6f7'"
+    :data-theme="'theme-' + proxy.$settingStore.themeColor.name"
+  >
+    <template #default>
+      <view class="xunjian-plan-siteDetails">
+        <view class="flex bg-white p15 mb15">
+          <u-image style="margin: auto 15px auto 0" width="40" height="40" src="@/static/images/xunjian/scan.png" v-if="siteList.siteType == 1" shape="circle"></u-image>
+          <u-image style="margin: auto 15px auto 0" width="40" height="40" src="@/static/images/xunjian/NFC.png" v-if="siteList.siteType == 2" shape="circle"></u-image>
+
+          <view style="margin: auto auto auto 0">
+            <view style="font-size: 15px; margin-bottom: 2px"> {{ siteList.siteName }} </view>
+            <view style="font-size: 13px; color: #a1a1a1"> {{ siteList.contentCount }}项内容 </view>
+          </view>
+
+          <view style="margin: auto 0 auto 0">
+            <!-- {{ siteList.siteStatus == null }} -->
+            <view style="font-size: 15px; color: #30bb00">已定位</view>
+            <!-- #f07d28 -->
+          </view>
         </view>
 
-        <view style="margin: auto 0 auto 0">
-          <!-- {{ siteList.siteStatus == null }} -->
-          <view style="font-size: 15px; color: #30bb00">已定位</view>
-          <!-- #f07d28 -->
+        <view class="bg-white p15 mb15">
+          <uni-section class="block mb10" title="上报现场" type="line"></uni-section>
+
+          <oa-upload
+            :uploadCount="5"
+            :uploadList="siteList.recordPictureList"
+            :uploadListSrc="'pictureUrl'"
+            :uploadStyle="{
+              width: 'calc(33% - 10px)',
+              height: '110px',
+            }"
+            :uploadCloseStatus="xunJianStore.inspectionStatus == 2"
+            @uploadSuccessChange="uploadSuccessChange"
+            @uploadDeleteChange="uploadDeleteChange"
+          ></oa-upload>
         </view>
-      </view>
-
-      <view class="bg-white p15 mb15">
-        <uni-section class="block mb10" title="上报现场" type="line"></uni-section>
-
-        <oa-upload
-          :uploadCount="5"
-          :uploadList="siteList.recordPictureList"
-          :uploadListSrc="'pictureUrl'"
-          :uploadStyle="{
-            width: 'calc(33% - 10px)',
-            height: '110px',
-          }"
-          :uploadCloseStatus="xunJianStore.inspectionStatus == 2"
-          @uploadSuccessChange="uploadSuccessChange"
-          @uploadDeleteChange="uploadDeleteChange"
-        ></oa-upload>
-      </view>
 
-      <view class="bg-white p15 mb15" style="height: 170px; max-height: 170px">
-        <uni-section class="block mb10" title="备注" type="line"></uni-section>
+        <view class="bg-white p15 mb15" style="height: 170px; max-height: 170px">
+          <uni-section class="block mb10" title="备注" type="line"></uni-section>
 
-        <view style="height: calc(100% - 25px)">
-          <span v-if="xunJianStore.inspectionStatus == 2">
-            {{ siteList.remarks }}
-          </span>
+          <view style="height: calc(100% - 25px)">
+            <span v-if="xunJianStore.inspectionStatus == 2">
+              {{ siteList.remarks }}
+            </span>
 
-          <u-textarea v-if="xunJianStore.inspectionStatus == 1" style="height: 100%" v-model="siteList.remarks" placeholder="请输入备注" maxlength="50"></u-textarea>
+            <u-textarea v-if="xunJianStore.inspectionStatus == 1" style="height: 100%" v-model="siteList.remarks" placeholder="请输入备注" maxlength="50"></u-textarea>
+          </view>
         </view>
-      </view>
 
-      <view class="bg-white p15 mb15">
-        <uni-section class="block mb10" title="点位分布" type="line"></uni-section>
+        <view class="bg-white p15 mb15">
+          <uni-section class="block mb10" title="点位分布" type="line"></uni-section>
 
-        <u-image width="100%" :src="siteList.pictureUrl"></u-image>
+          <u-image width="100%" :src="siteList.pictureUrl"></u-image>
+        </view>
       </view>
-    </view>
-    <view class="app-button-fixed">
-      <u-button v-if="xunJianStore.inspectionStatus == 1" class="app-buttom" type="primary" @click="buttonClick()" shape="circle"> 下一步 </u-button>
-      <u-button v-if="xunJianStore.inspectionStatus == 2" class="app-buttom" type="primary" @click="buttonClick()" shape="circle"> 查看巡检项 </u-button>
-    </view>
-  </scroll-view>
+      <view class="app-button-fixed">
+        <u-button v-if="xunJianStore.inspectionStatus == 1" class="app-buttom" type="primary" @click="buttonClick()" shape="circle"> 下一步 </u-button>
+        <u-button v-if="xunJianStore.inspectionStatus == 2" class="app-buttom" type="primary" @click="buttonClick()" shape="circle"> 查看巡检项 </u-button>
+      </view>
+    </template>
+  </oa-scroll>
 </template>
 
 <script setup>
+/*----------------------------------依赖引入-----------------------------------*/
 import { onLoad, onShow } from "@dcloudio/uni-app";
 import { ref, onMounted, reactive, computed, getCurrentInstance, toRefs, inject, shallowRef } from "vue";
-import { useStores, commonStores, xunJianStores } from "@/store/modules/index";
-
+/*----------------------------------接口引入-----------------------------------*/
 import { recordList, recordOption, siteDetails } from "@/api/business/zhaf/xunJian/plan.js";
-
-const xunJianStore = xunJianStores(); //全局变量值Store
-
+/*----------------------------------组件引入-----------------------------------*/
+/*----------------------------------store引入-----------------------------------*/
+import { useStores, commonStores, xunJianStores } from "@/store/modules/index";
+/*----------------------------------公共方法引入-----------------------------------*/
+/*----------------------------------公共变量-----------------------------------*/
 const { proxy } = getCurrentInstance();
+const xunJianStore = xunJianStores(); //全局变量值Store
+/*----------------------------------变量声明-----------------------------------*/
 
 /**
  * @站点详情
@@ -79,6 +94,10 @@ const { proxy } = getCurrentInstance();
 const siteList = ref([]);
 const contentList = ref([]);
 function selectAPI() {
+  if (!proxy.$common.isNetwork()) {
+    return false;
+  }
+
   siteDetails({
     siteId: xunJianStore.siteId,
     siteNubmber: xunJianStore.siteNubmber,
@@ -95,11 +114,43 @@ function selectAPI() {
           el.contentOptionListValue = "";
           el.contentOptionListValue1 = [];
         });
+      }
+    })
+    .catch((err) => {
+      proxy.$modal.msg(err);
+    });
+}
+
+/**
+ * @巡检记录 recordList
+ * @查看巡检项 recordOption
+ * @api接口查询
+ */
+function recordAPI() {
+  if (!proxy.$common.isNetwork()) {
+    return false;
+  }
+
+  recordList({
+    siteId: xunJianStore.siteId,
+    planSonId: xunJianStore.planSonId,
+  })
+    .then((res) => {
+      if (res.status == "SUCCESS") {
+        if (res.data.length > 0) {
+          recordOption({
+            siteId: res.data[0].siteId,
+            recordId: res.data[0].id,
+          }).then((res1) => {
+            contentList.value = res1.data.contentList;
+            siteList.value = res.data[0];
+          });
+        }
       } else {
       }
     })
     .catch((err) => {
-      proxy.$modal.msg("网络异常,请稍后重试!");
+      proxy.$modal.msg(err);
     });
 }
 
@@ -140,27 +191,7 @@ onLoad((options) => {
   if (xunJianStore.inspectionStatus == 1) {
     selectAPI();
   } else if (xunJianStore.inspectionStatus == 2) {
-    recordList({
-      siteId: xunJianStore.siteId,
-      planSonId: xunJianStore.planSonId,
-    })
-      .then((res) => {
-        if (res.status == "SUCCESS") {
-          if (res.data.length > 0) {
-            recordOption({
-              siteId: res.data[0].siteId,
-              recordId: res.data[0].id,
-            }).then((res1) => {
-              contentList.value = res1.data.contentList;
-              siteList.value = res.data[0];
-            });
-          }
-        } else {
-        }
-      })
-      .catch((err) => {
-        proxy.$modal.msg("网络异常,请稍后重试!");
-      });
+    recordAPI();
   }
 });
 

+ 46 - 20
src/pages/business/zhaf/xunJian/plan/index.vue

@@ -1,6 +1,15 @@
 <template>
-  <scroll-view class="scroll-height" :scroll-y="true" :data-theme="'theme-' + proxy.$settingStore.themeColor.name">
-    <view class="xunjian-plan-container">
+  <oa-scroll
+    customClass="xunjian-plan-container scroll-height"
+    :refresherLoad="false"
+    :refresherEnabled="false"
+    :refresherEnabledTitle="false"
+    :refresherDefaultStyle="'none'"
+    :refresherThreshold="44"
+    :refresherBackground="'#f5f6f7'"
+    :data-theme="'theme-' + proxy.$settingStore.themeColor.name"
+  >
+    <template #default>
       <!-- 日历组件 -->
       <oa-calendar class="uni-calendar--hook" :selected="info.selected" :showMonth="false" @change="change" @monthSwitch="monthSwitch" :currentDate="currentDateList" />
 
@@ -91,30 +100,35 @@
       </oa-timeLine>
 
       <view id="planTimeline" style="text-align: center; color: #bdbdbd; font-size: 14px" v-else> 暂无数据 </view>
-    </view>
 
-    <oaMovable v-if="scanArray.length <= 0" :themesColor="proxy.$settingStore.themeColor.color">
-      <template #content>
-        <view class="iconfont oaIcon-nfc menu-item-icon" @click="nfcClick()"></view>
-        <view class="iconfont oaIcon-saoyisao menu-item-icon" @click="scanClick()"></view>
-      </template>
-    </oaMovable>
+      <oaMovable v-if="scanArray.length <= 0" :themesColor="proxy.$settingStore.themeColor.color">
+        <template #content>
+          <view class="iconfont oaIcon-nfc menu-item-icon" @click="nfcClick()"></view>
+          <view class="iconfont oaIcon-saoyisao menu-item-icon" @click="scanClick()"></view>
+        </template>
+      </oaMovable>
 
-    <drawer v-if="scanArray.length > 0" :scanArray="scanArray" :scanBool="scanBool" @scanClose="scanClose"></drawer>
-  </scroll-view>
+      <drawer v-if="scanArray.length > 0" :scanArray="scanArray" :scanBool="scanBool" @scanClose="scanClose"></drawer>
+    </template>
+  </oa-scroll>
 </template>
 
 <script setup>
+/*----------------------------------依赖引入-----------------------------------*/
 import { onLoad, onShow, onLaunch, onUnload } from "@dcloudio/uni-app";
 import { ref, onMounted, reactive, computed, getCurrentInstance, toRefs, inject, shallowRef, defineAsyncComponent } from "vue";
-import { useStores, commonStores, xunJianStores } from "@/store/modules/index";
+/*----------------------------------接口引入-----------------------------------*/
 import { recordList, recordOption, planList, patrolInspectionPlan, appPlanStatistics } from "@/api/business/zhaf/xunJian/plan.js";
+/*----------------------------------组件引入-----------------------------------*/
 import drawer from "./components/drawer.vue"; // 引入组件
 import oaMovable from "@/components/oa-movable/index.vue"; // 引入组件
-
-const xunJianStore = xunJianStores(); //全局变量值Store
+/*----------------------------------store引入-----------------------------------*/
+import { useStores, commonStores, xunJianStores } from "@/store/modules/index";
+/*----------------------------------公共方法引入-----------------------------------*/
+/*----------------------------------公共变量-----------------------------------*/
 const { proxy } = getCurrentInstance();
-
+const xunJianStore = xunJianStores(); //全局变量值Store
+/*----------------------------------变量声明-----------------------------------*/
 const info = ref({
   lunar: true,
   range: true,
@@ -205,6 +219,10 @@ function scanClick() {
 function planListApi(value) {
   xunJianStore.inspectionStatus = 1;
 
+  if (!proxy.$common.isNetwork()) {
+    return false;
+  }
+
   planList({
     siteNubmber: value,
   })
@@ -219,11 +237,10 @@ function planListApi(value) {
             icon: "none",
           });
         }
-      } else {
       }
     })
     .catch((err) => {
-      proxy.$modal.msg("网络异常,请稍后重试!");
+      proxy.$modal.msg(err);
     });
 }
 
@@ -244,6 +261,11 @@ function scanClose(flag) {
 const activities = ref([]);
 function activitiesApi() {
   activities.value = [];
+
+  if (!proxy.$common.isNetwork()) {
+    return false;
+  }
+
   if (tabPosition.value == 0) {
     patrolInspectionPlan({
       currentDate: currentDate.value,
@@ -266,7 +288,7 @@ function activitiesApi() {
         }
       })
       .catch((err) => {
-        proxy.$modal.msg("网络异常,请稍后重试!");
+        proxy.$modal.msg(err);
       });
   } else if (tabPosition.value == 1) {
     recordList({
@@ -290,7 +312,7 @@ function activitiesApi() {
         }
       })
       .catch((err) => {
-        proxy.$modal.msg("网络异常,请稍后重试!");
+        proxy.$modal.msg(err);
       });
   }
 }
@@ -303,6 +325,10 @@ const currentDate = ref(proxy.$common.getDate().year + "-" + proxy.$common.getDa
 const currentDatevalue = ref(new Date());
 const currentDateList = ref({}); //统计list数据存储
 function currentApi() {
+  if (!proxy.$common.isNetwork()) {
+    return false;
+  }
+
   appPlanStatistics({
     currentDate: currentDate.value,
   })
@@ -313,7 +339,7 @@ function currentApi() {
       }
     })
     .catch((err) => {
-      proxy.$modal.msg("网络异常,请稍后重试!");
+      proxy.$modal.msg(err);
     });
 }
 

+ 40 - 27
src/pages/business/zhaf/xunJian/xunJian.vue

@@ -1,44 +1,57 @@
 <template>
-  <scroll-view class="scroll-height" :scroll-y="true" :data-theme="'theme-' + proxy.$settingStore.themeColor.name">
-    <view class="p10">
-      <!-- 图表 -->
-      <view class="bg-white p5">
-        <chart :currentDateList="currentDateList"></chart>
-      </view>
-      <!-- 图表 end-->
+  <oa-scroll
+    customClass="scroll-height"
+    :refresherLoad="false"
+    :refresherEnabled="false"
+    :refresherEnabledTitle="false"
+    :refresherDefaultStyle="'none'"
+    :refresherThreshold="44"
+    :refresherBackground="'#f5f6f7'"
+    :data-theme="'theme-' + proxy.$settingStore.themeColor.name"
+  >
+    <template #default>
+      <view class="p10">
+        <!-- 图表 -->
+        <view class="bg-white p5">
+          <chart :currentDateList="currentDateList"></chart>
+        </view>
+        <!-- 图表 end-->
 
-      <!-- 宫格列表 -->
-      <view class="bg-white mt10">
-        <view class="cu-list grid col-4 no-border" style="padding-top: 0.3125rem">
-          <view class="cu-item justify-center align-center" v-for="(item, index) in inspectList" :key="index" @tap="navItemClick(item.redirectUrl, item.id)">
-            <image :src="item.imgUrl" style="width: 40px; height: 40px"></image>
-            <view class="cu-tag badge" v-if="item.num != 0">
-              <block v-if="item.num != 0">{{ item.num > 99 ? "99+" : item.num }}</block>
+        <!-- 宫格列表 -->
+        <view class="bg-white mt10">
+          <view class="cu-list grid col-4 no-border" style="padding-top: 0.3125rem">
+            <view class="cu-item justify-center align-center" v-for="(item, index) in inspectList" :key="index" @tap="navItemClick(item.redirectUrl, item.id)">
+              <image :src="item.imgUrl" style="width: 40px; height: 40px"></image>
+              <view class="cu-tag badge" v-if="item.num != 0">
+                <block v-if="item.num != 0">{{ item.num > 99 ? "99+" : item.num }}</block>
+              </view>
+              <text style="font-size: 14px">{{ item.title }}</text>
             </view>
-            <text style="font-size: 14px">{{ item.title }}</text>
           </view>
         </view>
+        <!-- 宫格列表 end -->
       </view>
-      <!-- 宫格列表 end -->
-    </view>
-  </scroll-view>
+    </template>
+  </oa-scroll>
 </template>
 
 <script setup>
+/*----------------------------------依赖引入-----------------------------------*/
 import { onLoad, onShow, onHide, onLaunch } from "@dcloudio/uni-app";
 import { ref, reactive, computed, onMounted, getCurrentInstance, toRefs, inject } from "vue";
-import { xunJianStores, commonStores } from "@/store/modules/index";
-
-import chart from "./components/chart.vue";
-
+/*----------------------------------接口引入-----------------------------------*/
 import { appPlanStatistics } from "@/api/business/zhaf/xunJian/index.js";
-
+/*----------------------------------组件引入-----------------------------------*/
+import chart from "./components/chart.vue";
+/*----------------------------------store引入-----------------------------------*/
+import { xunJianStores, commonStores } from "@/store/modules/index";
+/*----------------------------------公共方法引入-----------------------------------*/
+/*----------------------------------公共变量-----------------------------------*/
+const { proxy } = getCurrentInstance();
 const commonStore = commonStores(); //全局公共Store
 const xunJianStore = xunJianStores(); //全局变量值Store
-
-const { proxy } = getCurrentInstance();
-
-const inspectList = proxy.$grid.xunJianList; //九宫格json数据
+/*----------------------------------变量声明-----------------------------------*/
+const inspectList = proxy.$constData.xunJianList; //九宫格json数据
 
 const currentDate = proxy.$common.getDate().year + "-" + proxy.$common.getDate().month + "-" + proxy.$common.getDate().dates;
 const currentDateList = ref([]);

+ 62 - 85
src/pages/business/zhxf/fireInspect/inspectDetails/index.vue

@@ -1,6 +1,15 @@
 <template>
-  <scroll-view class="scroll-height" :scroll-y="true" :data-theme="'theme-' + proxy.$settingStore.themeColor.name">
-    <view class="alarmDetails-container">
+  <oa-scroll
+    customClass="inspectDetails-container scroll-height"
+    :refresherLoad="false"
+    :refresherEnabled="false"
+    :refresherEnabledTitle="false"
+    :refresherDefaultStyle="'none'"
+    :refresherThreshold="44"
+    :refresherBackground="'#f5f6f7'"
+    :data-theme="'theme-' + proxy.$settingStore.themeColor.name"
+  >
+    <template #default>
       <view class="flex bg-white p15 mb15">
         <image style="width: 40px; height: 40px; margin: auto 15px auto 0" :src="dataArray.typeImg ? dataArray.typeImg : '/static/images/404.png'" mode="aspectFill"></image>
 
@@ -84,43 +93,46 @@
           ></u-button>
         </view>
       </view>
-    </view>
-  </scroll-view>
+    </template>
+  </oa-scroll>
 </template>
 
 <script setup>
+/*----------------------------------依赖引入-----------------------------------*/
 import { onLoad, onShow, onReady, onHide, onLaunch, onNavigationBarButtonTap, onPageScroll } from "@dcloudio/uni-app";
 import { ref, reactive, computed, getCurrentInstance, toRefs, inject } from "vue";
+/*----------------------------------接口引入-----------------------------------*/
 import { eleInspectList, dealPutEle, persInspectList, dealPutPer } from "@/api/business/zhxf/fireInspect/index.js";
+/*----------------------------------组件引入-----------------------------------*/
+/*----------------------------------store引入-----------------------------------*/
+/*----------------------------------公共方法引入-----------------------------------*/
 
+/*----------------------------------公共变量-----------------------------------*/
 const { proxy } = getCurrentInstance();
-
-const dataArray = ref({});
-const dataList = ref([
-  { title: "督察单编号", value: "" },
-  { title: "督察单内容", value: "" },
-]);
-const dataList2 = ref([
-  { title: "处理账号/电话", value: "" },
-  { title: "处理时间", value: "" },
-  // {
-  //   title: "处理内容",
-  //   value: "",
-  // },
-]);
-
-const deviceName = ref("");
-const alarmTime = ref("");
-const id = ref("");
-const productName = ref("");
-const pageSize = ref(20);
-const current = ref(1);
-const total = ref(0);
-const handleRange = ref(1);
-const handleRangeList = ref([
-  { label: "单个处理", value: 1 },
-  { label: "批量处理", value: 0 },
-]);
+/*----------------------------------变量声明-----------------------------------*/
+const state = reactive({
+  id: "",
+  productName: "",
+  pageSize: 20,
+  current: 1,
+  total: 0,
+
+  dataArray: {},
+  dataList: [
+    { title: "督察单编号", value: "" },
+    { title: "督察单内容", value: "" },
+  ],
+  dataList2: [
+    { title: "处理账号/电话", value: "" },
+    { title: "处理时间", value: "" },
+  ],
+  handleRange: 1,
+  handleRangeList: [
+    { label: "单个处理", value: 1 },
+    { label: "批量处理", value: 0 },
+  ],
+});
+const { dataArray, dataList, dataList2, handleRange, handleRangeList } = toRefs(state);
 
 /**
  * @页面初始化
@@ -134,53 +146,25 @@ function init() {
  * @api接口查询
  */
 function selectListApi() {
-  if (productName.value == "电子督察单") {
+  if (state.productName == "电子督察单") {
     getDetail(eleInspectList, "电子");
-    // eleInspectList({
-    //   id: id.value,
-    //   pageNum: current.value,
-    //   pageSize: pageSize.value,
-    // }).then((requset) => {
-    //   if (requset.status === "SUCCESS") {
-    //     dataArray.value = requset.data.records[0];
-    //     dataList.value[0].value = requset.data.records[0].superviseCode;
-    //     dataList.value[1].value = requset.data.records[0].content;
-    //     dataList2.value[0].value = requset.data.records[0].handlePhone;
-    //     dataList2.value[1].value = requset.data.records[0].handleTime;
-    //     total.value = requset.data.total;
-    //   }
-    // });
   } else {
     getDetail(persInspectList, "人工");
-    // persInspectList({
-    //   id: id.value,
-    //   pageNum: current.value,
-    //   pageSize: pageSize.value,
-    // }).then((requset) => {
-    //   if (requset.status === "SUCCESS") {
-    //     dataArray.value = requset.data.records[0];
-    //     dataList.value[0].value = requset.data.records[0].artificialCode;
-    //     dataList.value[1].value = requset.data.records[0].content;
-    //     dataList2.value[0].value = requset.data.records[0].handlePhone;
-    //     dataList2.value[1].value = requset.data.records[0].handleTime;
-    //     total.value = requset.data.total;
-    //   }
-    // });
   }
 
   function getDetail(param, param2) {
     param({
-      id: id.value,
-      pageNum: current.value,
-      pageSize: pageSize.value,
+      id: state.id,
+      pageNum: state.current,
+      pageSize: state.pageSize,
     }).then((requset) => {
       if (requset.status === "SUCCESS") {
-        dataArray.value = requset.data.records[0];
-        dataList.value[0].value = param2 == "电子" ? requset.data.records[0].superviseCode : requset.data.records[0].artificialCode;
-        dataList.value[1].value = requset.data.records[0].content;
-        dataList2.value[0].value = requset.data.records[0].handlePhone;
-        dataList2.value[1].value = requset.data.records[0].handleTime;
-        total.value = requset.data.total;
+        state.dataArray = requset.data.records[0];
+        state.dataList.value[0] = param2 == "电子" ? requset.data.records[0].superviseCode : requset.data.records[0].artificialCode;
+        state.dataList.value[1] = requset.data.records[0].content;
+        state.dataList2.value[0] = requset.data.records[0].handlePhone;
+        state.dataList2.value[1] = requset.data.records[0].handleTime;
+        state.total = requset.data.total;
       }
     });
   }
@@ -190,11 +174,11 @@ function selectListApi() {
  * @提交
  */
 function handleSubmit() {
-  if (productName.value == "电子督察单") {
+  if (state.productName == "电子督察单") {
     dealPutEle({
-      id: dataArray.value.id,
-      handleContent: dataArray.value.handleContent,
-      handleRange: handleRange.value,
+      id: state.dataArray.id,
+      handleContent: state.dataArray.handleContent,
+      handleRange: state.handleRange,
     }).then((requset) => {
       if (requset.status === "SUCCESS") {
         proxy.$tab.navigateTo(`/pages/common/success/index?codeName=提交成功`);
@@ -202,9 +186,9 @@ function handleSubmit() {
     });
   } else {
     dealPutPer({
-      id: dataArray.value.id,
-      handleContent: dataArray.value.handleContent,
-      handleRange: handleRange.value,
+      id: state.dataArray.id,
+      handleContent: state.dataArray.handleContent,
+      handleRange: state.handleRange,
     }).then((requset) => {
       if (requset.status === "SUCCESS") {
         proxy.$tab.navigateTo(`/pages/common/success/index?codeName=提交成功`);
@@ -221,18 +205,11 @@ onShow(() => {
 });
 
 onLoad((options) => {
-  if ("deviceName" in options) {
-    deviceName.value = options.deviceName;
-  }
-
-  if ("alarmTime" in options) {
-    alarmTime.value = options.alarmTime;
-  }
   if ("id" in options) {
-    id.value = options.id;
+    state.id = options.id;
   }
   if ("productName" in options) {
-    productName.value = options.productName;
+    state.productName = options.productName;
   }
   init();
 });

+ 12 - 6
src/pages/common/invoicing/index.vue

@@ -6,6 +6,7 @@
   <oa-scroll
     customClass="invoicing-container scroll-height"
     :customStyle="{}"
+    :isSticky="true"
     :refresherLoad="false"
     :refresherEnabled="false"
     :refresherDefaultStyle="'none'"
@@ -36,11 +37,11 @@
             <view class="iconfont oaIcon-copy menu-item-icon" @click="copy('18621761642')"> </view>
           </view>
           <view class="menu-item">
-            <view style="margin-right: 10px"> 邮箱:seven.li@chinausky.com </view>
+            <view class="mr10"> 邮箱:seven.li@chinausky.com </view>
             <view class="iconfont oaIcon-copy menu-item-icon" @click="copy('seven.li@chinausky.com')"> </view>
           </view>
           <view class="menu-item">
-            <view style="margin-right: 10px"> 客服电话:021-65376655</view>
+            <view class="mr10"> 客服电话:021-65376655</view>
             <view class="iconfont oaIcon-dial menu-item-icon" @click="proxy.$common.makePhoneCall('02165376655')"> </view>
           </view>
           <view class="menu-item">
@@ -167,14 +168,19 @@
 </template>
 
 <script setup>
+/*----------------------------------依赖引入-----------------------------------*/
 import { onLoad, onShow, onReady, onHide, onLaunch, onNavigationBarButtonTap, onPageScroll } from "@dcloudio/uni-app";
 import { ref, reactive, computed, getCurrentInstance, toRefs, inject } from "vue";
+/*----------------------------------接口引入-----------------------------------*/
 import { crmInvoiceInfo, page } from "@/api/common/invoicing.js";
-
+/*----------------------------------组件引入-----------------------------------*/
+/*----------------------------------store引入-----------------------------------*/
+/*----------------------------------公共方法引入-----------------------------------*/
+/*----------------------------------公共变量-----------------------------------*/
 const { proxy } = getCurrentInstance();
-
+/*----------------------------------变量声明-----------------------------------*/
 const uForm = ref(null);
-const data = reactive({
+const state = reactive({
   tabsList: [{ name: "开票申请" }, { name: "汇款信息" }],
   tabsCurrent: 0,
 
@@ -217,7 +223,7 @@ const data = reactive({
   promptStatus: false,
 });
 
-const { tabsList, tabsCurrent, form, rules, scrollIntoView, promptStatus } = toRefs(data);
+const { tabsList, tabsCurrent, form, rules, scrollIntoView, promptStatus } = toRefs(state);
 
 /**
  * @提交

+ 11 - 8
src/pages/common/repairReport/index.vue

@@ -11,7 +11,7 @@
   >
     <view class="menu-list m0">
       <view class="list-cell">
-        <view class="menu-item" style="font-size: 15px">
+        <view class="menu-item font14">
           <view style="margin-right: auto; color: #666666"></view>
           <view style="color: #149eff" @click="proxy.$tab.navigateTo(`/pages/common/repairReport/record`)">报修历史</view>
         </view>
@@ -71,18 +71,21 @@
 </template>
 
 <script setup>
-import config from "@/config";
+/*----------------------------------依赖引入-----------------------------------*/
 import { onLoad, onShow, onReady, onHide, onLaunch, onNavigationBarButtonTap, onPageScroll } from "@dcloudio/uni-app";
 import { ref, reactive, computed, getCurrentInstance, toRefs, inject } from "vue";
-import { useStores, commonStores } from "@/store/modules/index";
-
+/*----------------------------------接口引入-----------------------------------*/
 import { add, getAddHistoryInfo } from "@/api/common/repairReport.js";
-
+/*----------------------------------组件引入-----------------------------------*/
+/*----------------------------------store引入-----------------------------------*/
+import { useStores, commonStores } from "@/store/modules/index";
+/*----------------------------------公共方法引入-----------------------------------*/
+/*----------------------------------公共变量-----------------------------------*/
 const { proxy } = getCurrentInstance();
 const commonStore = commonStores();
-
+/*----------------------------------变量声明-----------------------------------*/
 const uForm = ref(null);
-const data = reactive({
+const state = reactive({
   form: {
     projectName: "", //项目名称
     projectAddress: "", //项目地址
@@ -109,7 +112,7 @@ const data = reactive({
   actionDefaultIndex: 0,
 });
 
-const { form, rules, actionShow, actionTitle, actionsList, actionDefaultIndex } = toRefs(data);
+const { form, rules, actionShow, actionTitle, actionsList, actionDefaultIndex } = toRefs(state);
 
 /**
  * @项目名称

+ 12 - 57
src/pages/info/pushList/pushList.vue

@@ -56,68 +56,24 @@
 </template>
 
 <script setup>
+/*----------------------------------依赖引入-----------------------------------*/
 import { onLoad, onShow, onHide, onLaunch } from "@dcloudio/uni-app";
 import { ref, onMounted, inject, shallowRef, reactive, toRefs, getCurrentInstance } from "vue";
-
+/*----------------------------------接口引入-----------------------------------*/
 import {} from "@/api/mine/info.js";
-
+/*----------------------------------组件引入-----------------------------------*/
+/*----------------------------------store引入-----------------------------------*/
+/*----------------------------------公共方法引入-----------------------------------*/
+/*----------------------------------公共变量-----------------------------------*/
 const { proxy } = getCurrentInstance();
-
-const data = reactive({
+/*----------------------------------变量声明-----------------------------------*/
+const state = reactive({
   unporcessList: [
-    {
-      title: "火灾逃生九大要诀",
-      time: "2020-02-12",
-      subtit: "admin",
-    },
-    {
-      title: "火灾逃生九大要诀",
-      time: "2020-02-12",
-      subtit: "admin",
-    },
-    {
-      title: "火灾逃生九大要诀",
-      time: "2020-02-12",
-      subtit: "admin",
-    },
-    {
-      title: "火灾逃生九大要诀",
-      time: "2020-02-12",
-      subtit: "admin",
-    },
-    {
-      title: "火灾逃生九大要诀",
-      time: "2020-02-12",
-      subtit: "admin",
-    },
-    {
-      title: "火灾逃生九大要诀",
-      time: "2020-02-12",
-      subtit: "admin",
-    },
-    {
-      title: "火灾逃生九大要诀",
-      time: "2020-02-12",
-      subtit: "admin",
-    },
-    {
-      title: "火灾逃生九大要诀",
-      time: "2020-02-12",
-      subtit: "admin",
-    },
-    {
-      title: "火灾逃生九大要诀",
-      time: "2020-02-12",
-      subtit: "admin",
-    },
-    {
-      title: "火灾逃生九大要诀",
-      time: "2020-02-12",
-      subtit: "admin",
-    },
+    { title: "火灾逃生九大要诀", time: "2020-02-12", subtit: "admin" },
+    { title: "火灾逃生九大要诀", time: "2020-02-12", subtit: "admin" },
   ],
 
-  processedList: proxy.$grid.processedList,
+  processedList: proxy.$constData.processedList,
 
   type: "0",
   modalName: null,
@@ -128,7 +84,7 @@ const data = reactive({
   tabNav: ["未读", "已读"],
 });
 
-const { unporcessList, processedList, type, modalName, listTouchStart, listTouchDirection, CustomBar, TabCur, tabNav } = toRefs(data);
+const { unporcessList, processedList, type, modalName, listTouchStart, listTouchDirection, CustomBar, TabCur, tabNav } = toRefs(state);
 
 function tabSelect(e) {
   TabCur.value = e.currentTarget.dataset.id;
@@ -172,7 +128,6 @@ function goVideoProcessedDetail() {
 
 <style lang="scss">
 //已处理未处理消息个数样式
-
 .nav .cu-item.cur {
   position: relative;
   border-bottom: 8rpx solid;

+ 43 - 7
src/plugins/common.plugins.js

@@ -1,3 +1,5 @@
+import modal from "./modal.plugins";
+
 export default {
   /**
    * 参数处理
@@ -290,6 +292,40 @@ export default {
       return peon;
     }
   },
+  /**
+   * @判断当前是否有网络
+   */
+  isNetwork() {
+    let status = true
+    // 获取网络状态
+    uni.getNetworkType({
+      success: function (res) {
+        if (res.networkType === "none") {
+          modal.msg("网络异常,请稍后重试!");
+          status = false
+        } else {
+          status = true
+        }
+      },
+    });
+
+    return status
+  },
+  /**
+   * @判断用户拒绝权限是否超过48小时
+   */
+  isExpirationTime() {
+    let sotrTime = uni.getStorageSync("expirationTime");
+    if (sotrTime) {
+      if (sotrTime + 3600 * 24 * 2 <= Date.parse(new Date()) / 1000) {
+        return true
+      } else {
+        return false
+      }
+    } else {
+      return true
+    }
+  },
   /**
    * @判断是否为微信公众号
    */
@@ -322,25 +358,25 @@ export default {
    * @param {*类型} type (1:string:图片地址  2:array(数组对象))
    * @param {*数据} data
    */
-  imgEnlarge(type,data){
+  imgEnlarge(type, data) {
     let param = {}
-    if(type == 1){
+    if (type == 1) {
       param = {
-        urls:[data],
+        urls: [data],
         current: data
       }
     }
-    if(type == 2){
+    if (type == 2) {
       let arr = []
-      for(let i=0;i<data.length;i++){
+      for (let i = 0; i < data.length; i++) {
         arr.push(data[i].url)
       }
       param = {
-        urls:arr,
+        urls: arr,
         current: arr[0]
       }
     }
-    if(data && data.length > 0){
+    if (data && data.length > 0) {
       uni.previewImage(param)
     }
   }

+ 104 - 0
src/plugins/constData.plugins.js

@@ -1,3 +1,104 @@
+// 首页九宫格
+let cuIconList = [
+	{
+		imgUrl: "/static/icons/index/APP-xunjian.svg",
+		badge: 0,
+		name: "巡检",
+		redirectUrl: "/pages/business/zhaf/xunJian/xunJian",
+	},
+	{
+		imgUrl: "/static/icons/index/APP-xxcx.svg",
+		badge: 0,
+		name: "信息查询",
+		redirectUrl: "/pages/business/mhxf/informationSelect/index",
+	},
+	{
+		imgUrl: "/static/icons/index/APP-sbgl.svg",
+		badge: 0,
+		name: "设备管理",
+		redirectUrl: "/pages/business/mhxf/deviceManage/index",
+	},
+	{
+		imgUrl: "/static/icons/index/APP-zzdt.svg",
+		badge: 0,
+		name: "协同作战",
+		redirectUrl: "/pages/business/mhxf/coordination/index",
+	},
+	{
+		imgUrl: "/static/icons/index/APP-dwxxcj.svg",
+		badge: 0,
+		name: "单位采集",
+		redirectUrl: "/pages/business/mhxf/unitInfoCollection/index",
+	},
+	{
+		imgUrl: "/static/icons/index/APP-xfbg.svg",
+		badge: 0,
+		name: "消防报告",
+		redirectUrl: "/pages/business/mhxf/fireReport/index",
+	},
+	{
+		imgUrl: "/static/icons/index/APP-dbsx.svg",
+		badge: 0,
+		name: "待办事项",
+		redirectUrl: "/pages/business/mhxf/needMatter/index",
+	},
+	// {
+	//   imgUrl: "/static/images/square/square-xf.png",
+	//   badge: 0,
+	//   name: "未开发",
+	//   redirectUrl: "",
+	// },
+];
+
+// 首页报警数据
+let staticData = {
+	msg: "\u64cd\u4f5c\u6210\u529f",
+	flag: true,
+	companyCode: "1,2,3,4,5,6,7,8,12,13,14,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39",
+	data: [
+		{
+			statisticalPeriod: "2021-03-16~2021-04-16",
+			smartElectricityCount: "178",
+			videoMonitoringCount: "12456",
+			alarmCount: 12627,
+			eventCount: 2,
+			hiddenDangerCount: 4,
+			offlineCount: 20,
+			faultCount: 30,
+			earlyWarningCount: 100,
+			otherCount: 99,
+			normalCount: 66,
+			integratedAlarmCount: 12627,
+			unprocessedCount: 0,
+		},
+	],
+};
+
+// 巡检模块
+let xunJianList = [
+	{
+		id: 1,
+		title: "巡检任务",
+		num: "0",
+		imgUrl: "/static/images/xunjian/xunJian-icon1.png",
+		redirectUrl: "/pages/business/zhaf/xunJian/plan/index",
+	},
+	{
+		id: 2,
+		title: "巡检记录",
+		num: "0",
+		imgUrl: "/static/images/xunjian/xunJian-icon2.png",
+		redirectUrl: "/pages/business/zhaf/xunJian/plan/index",
+	},
+	{
+		id: 3,
+		title: "巡检采集",
+		num: "0",
+		imgUrl: "/static/images/xunjian/xunJian-icon3.png",
+		redirectUrl: "/pages/business/zhaf/xunJian/collect/index",
+	},
+];
+
 export default {
 	// 主题列表
 	themeList: [
@@ -142,5 +243,8 @@ export default {
 			]
 		}
 	],
+	staticData: staticData,
+	cuIconList: cuIconList,
 
+	xunJianList: xunJianList,
 };

+ 0 - 112
src/plugins/grid.plugins.js

@@ -1,112 +0,0 @@
-// 本地模拟json数据
-// 首页九宫格
-let cuIconList = [
-    {
-        imgUrl: "/static/icons/index/APP-xunjian.svg",
-        badge: 0,
-        name: "巡检",
-        redirectUrl: "/pages/business/zhaf/xunJian/xunJian",
-    },
-    {
-        imgUrl: "/static/icons/index/APP-xxcx.svg",
-        badge: 0,
-        name: "信息查询",
-        redirectUrl: "/pages/business/mhxf/informationSelect/index",
-    },
-    {
-        imgUrl: "/static/icons/index/APP-sbgl.svg",
-        badge: 0,
-        name: "设备管理",
-        redirectUrl: "/pages/business/mhxf/deviceManage/index",
-    },
-    {
-        imgUrl: "/static/icons/index/APP-zzdt.svg",
-        badge: 0,
-        name: "协同作战",
-        redirectUrl: "/pages/business/mhxf/coordination/index",
-    },
-    {
-        imgUrl: "/static/icons/index/APP-dwxxcj.svg",
-        badge: 0,
-        name: "单位采集",
-        redirectUrl: "/pages/business/mhxf/unitInfoCollection/index",
-    },
-    {
-        imgUrl: "/static/icons/index/APP-xfbg.svg",
-        badge: 0,
-        name: "消防报告",
-        redirectUrl: "/pages/business/mhxf/fireReport/index",
-    },
-    {
-        imgUrl: "/static/icons/index/APP-dbsx.svg",
-        badge: 0,
-        name: "待办事项",
-        redirectUrl: "/pages/business/mhxf/needMatter/index",
-    },
-    // {
-    //   imgUrl: "/static/images/square/square-xf.png",
-    //   badge: 0,
-    //   name: "未开发",
-    //   redirectUrl: "",
-    // },
-];
-
-// 首页报警数据
-let staticData = {
-    msg: "\u64cd\u4f5c\u6210\u529f",
-    flag: true,
-    companyCode: "1,2,3,4,5,6,7,8,12,13,14,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39",
-    data: [
-        {
-            statisticalPeriod: "2021-03-16~2021-04-16",
-            smartElectricityCount: "178",
-            videoMonitoringCount: "12456",
-            alarmCount: 12627,
-            eventCount: 2,
-            hiddenDangerCount: 4,
-            offlineCount: 20,
-            faultCount: 30,
-            earlyWarningCount: 100,
-            otherCount: 99,
-            normalCount: 66,
-            integratedAlarmCount: 12627,
-            unprocessedCount: 0,
-        },
-    ],
-};
-
-// 巡检模块 开始
-let xunJianList = [
-    {
-        id: 1,
-        title: "巡检任务",
-        num: "0",
-        imgUrl: "/static/images/xunjian/xunJian-icon1.png",
-        redirectUrl: "/pages/business/zhaf/xunJian/plan/index",
-    },
-    {
-        id: 2,
-        title: "巡检记录",
-        num: "0",
-        imgUrl: "/static/images/xunjian/xunJian-icon2.png",
-        redirectUrl: "/pages/business/zhaf/xunJian/plan/index",
-    },
-    {
-        id: 3,
-        title: "巡检采集",
-        num: "0",
-        imgUrl: "/static/images/xunjian/xunJian-icon3.png",
-        redirectUrl: "/pages/business/zhaf/xunJian/collect/index",
-    },
-];
-
-
-// 巡检模块 结束
-
-// 定义数据出口
-export default {
-    staticData: staticData,
-    cuIconList: cuIconList,
-
-    xunJianList: xunJianList,
-};

+ 0 - 4
src/plugins/index.js

@@ -4,7 +4,6 @@ import modal from "./modal.plugins";
 import common from "./common.plugins";
 import setting from "./setting.plugins";
 import constData from "./constData.plugins.js";
-import grid from "./grid.plugins.js";
 import nfc from "./nfc.plugins.js";
 
 import config from "@/config"; // config
@@ -37,9 +36,6 @@ export default {
     // 公共默认数据存储
     app.provide("$constData", constData);
     app.config.globalProperties.$constData = constData;
-    // 公共宫格列表数据存储
-    app.provide("$grid", grid);
-    app.config.globalProperties.$grid = grid;
     // 公共NFC
     app.provide("$nfc", nfc);
     app.config.globalProperties.$nfc = nfc;

+ 8 - 7
src/store/modules/setting.js

@@ -91,13 +91,13 @@ const settingStores = defineStore("storage-setting", {
         baseAppInfo() {
             var _this = this
 
-            let sotrTime = uni.getStorageSync("expirationTime");
-            if (sotrTime) {
-                if (sotrTime + 3600 * 24 * 2 < Date.parse(new Date()) / 1000) {
-                    return true
-                } else {
-                    return false
-                }
+            //判断用户是否登录
+            if (!getToken()) {
+                return false
+            }
+            //判断用户拒绝权限是否超过48小时
+            if (!common.isExpirationTime()) {
+                return false
             }
 
             // 获取系统信息
@@ -123,6 +123,7 @@ const settingStores = defineStore("storage-setting", {
                     _this.deviceList.longitude = res.longitude.toString();
                     _this.deviceList.latitude = res.latitude.toString();
                     baseAppInfoApi(_this.deviceList).then((res) => { })
+                    uni.setStorageSync("expirationTime", undefined);
                 },
                 fail: (res) => {
                     uni.setStorageSync("expirationTime", Date.parse(new Date()) / 1000);

+ 19 - 16
src/store/modules/xunJian.js

@@ -3,6 +3,8 @@ import { defineStore } from "pinia";
 // 接口引用
 import { updatePlan } from "@/api/business/zhaf/xunJian/plan.js";
 // 公共方法引用
+import modal from "@/plugins/modal.plugins.js";
+import common from "@/plugins/common.plugins.js";
 import { storage, storageSystem } from "@/utils/storage";
 
 const xunJianStores = defineStore(`storage-xunJian`, {
@@ -24,23 +26,24 @@ const xunJianStores = defineStore(`storage-xunJian`, {
     //巡检计划循环提交
     planForSubmit() {
       var _this = this
-      uni.getNetworkType({
-        success: function (res) {
-          if (_this.planDataList.length > 0 && res.networkType != 'none') {
-            _this.planDataList.forEach((e) => {
-              setTimeout(() => {
-                updatePlan(e).then((res) => {
-                  if (res.status == "SUCCESS") {
-                    _this.planDataList.splice(_this.planDataList.indexOf(e), 1);
-                  } else {
-                    throw new Error('提交终止!')
-                  }
-                });
-              }, 1000);
+
+      if (!common.isNetwork()) {
+        return false;
+      }
+
+      if (_this.planDataList.length > 0) {
+        _this.planDataList.forEach((e) => {
+          setTimeout(() => {
+            updatePlan(e).then((res) => {
+              if (res.status == "SUCCESS") {
+                _this.planDataList.splice(_this.planDataList.indexOf(e), 1);
+              } else {
+                throw new Error('提交终止!')
+              }
             });
-          }
-        },
-      });
+          }, 1000);
+        });
+      }
     }
   },
 });