Quellcode durchsuchen

公共组件封装/部分代码优化

fanghuisheng vor 1 Jahr
Ursprung
Commit
f356c5fb38
36 geänderte Dateien mit 497 neuen und 625 gelöschten Zeilen
  1. 10 2
      src/components/oa-scroll/index.vue
  2. 90 0
      src/components/oa-touch/index.vue
  3. 3 0
      src/main.js
  4. 3 2
      src/pages/business/fireIot/deviceSelect/index.vue
  5. 4 8
      src/pages/business/fireIot/facilitiesView/facilitiesDetails.vue
  6. 1 0
      src/pages/business/fireIot/facilitiesView/index.vue
  7. 60 119
      src/pages/business/mhxf/deviceManage/index.vue
  8. 39 100
      src/pages/business/mhxf/informationSelect-test/index.vue
  9. 40 101
      src/pages/business/mhxf/informationSelect/index.vue
  10. 164 234
      src/pages/business/mhxf/needMatter/index.vue
  11. 2 1
      src/pages/common/customManage/index.vue
  12. 48 53
      src/pages/index.vue
  13. 4 1
      src/pages/login.vue
  14. 15 1
      src/plugins/common.plugins.js
  15. 7 3
      src/static/iconfont/iconfont.css
  16. BIN
      src/static/iconfont/iconfont.ttf
  17. BIN
      src/static/icons/index/APP-gjgl.png
  18. 6 0
      src/static/scss/index.scss
  19. 1 0
      src/uni_modules/uview-plus/components/u-tabbar/u-tabbar.vue
  20. BIN
      unpackage/res/icons/1024x1024.png
  21. BIN
      unpackage/res/icons/120x120.png
  22. BIN
      unpackage/res/icons/144x144.png
  23. BIN
      unpackage/res/icons/152x152.png
  24. BIN
      unpackage/res/icons/167x167.png
  25. BIN
      unpackage/res/icons/180x180.png
  26. BIN
      unpackage/res/icons/192x192.png
  27. BIN
      unpackage/res/icons/20x20.png
  28. BIN
      unpackage/res/icons/29x29.png
  29. BIN
      unpackage/res/icons/40x40.png
  30. BIN
      unpackage/res/icons/58x58.png
  31. BIN
      unpackage/res/icons/60x60.png
  32. BIN
      unpackage/res/icons/72x72.png
  33. BIN
      unpackage/res/icons/76x76.png
  34. BIN
      unpackage/res/icons/80x80.png
  35. BIN
      unpackage/res/icons/87x87.png
  36. BIN
      unpackage/res/icons/96x96.png

+ 10 - 2
src/components/oa-scroll/index.vue

@@ -30,7 +30,10 @@
     <slot name="default"> </slot>
     <slot name="bottomLoading">
       <div class="bottoBox" :style="`margin-top: ${lowerThreshold + 'px'}`" v-if="refresherLoad">
-        {{ total != 0 ? (pageSize >= total ? "没有更多啦~" : isScrolltolower) : "暂无数据" }}
+        <span v-show="total != 0 && refresherLoadTitle">
+          {{ pageSize >= total ? "没有更多啦~" : isScrolltolower }}
+        </span>
+        <span v-show="total == 0"> 暂无数据 </span>
       </div>
     </slot>
   </scroll-view>
@@ -62,7 +65,12 @@ const props = defineProps({
     type: Boolean,
     default: false,
   },
-  // 距离底部上拉加载距离
+  //是否显示上拉加载文字
+  refresherLoadTitle: {
+    type: Boolean,
+    default: true,
+  },
+  //距离底部上拉加载距离
   lowerThreshold: {
     type: Number,
     default: 20,

+ 90 - 0
src/components/oa-touch/index.vue

@@ -0,0 +1,90 @@
+<template>
+  <view @touchstart="fingerstart" @touchend="fingerend">
+    <slot name="content"> </slot>
+  </view>
+</template>
+
+<script setup>
+import { onReady, onLoad, onShow, onNavigationBarButtonTap } from "@dcloudio/uni-app";
+import { ref, onMounted, inject, shallowRef, reactive, watchEffect, getCurrentInstance, toRefs } from "vue";
+
+const emit = defineEmits(["touchChange"]);
+const props = defineProps({});
+const {} = toRefs(props);
+
+const startData = ref({
+  clientX: "",
+  clientY: "",
+});
+const updDistance = ref(100);
+const lrDistance = ref(50);
+const topMed = ref("");
+const bottomMed = ref("");
+const leftMed = ref("");
+const rightMed = ref("");
+
+/**
+ * @当按下去的时候
+ */
+function fingerstart(e) {
+  // 记录 距离可视区域左上角 左边距 和 上边距
+  startData.value.clientX = e.changedTouches[0].clientX;
+  startData.value.clientY = e.changedTouches[0].clientY;
+}
+
+/**
+ * @当抬起来的时候
+ */
+function fingerend(e) {
+  // 当前位置 减去 按下位置 计算 距离
+  const subX = e.changedTouches[0].clientX - startData.value.clientX;
+  const subY = e.changedTouches[0].clientY - startData.value.clientY;
+  if (subY > updDistance.value || subY < -updDistance.value) {
+    if (subY > updDistance.value) {
+      bottomscroll(subY);
+    } else if (subY < -updDistance.value) {
+      topscroll(subY);
+    }
+  } else {
+    if (subX > lrDistance.value) {
+      rightscroll(subX);
+    } else if (subX < -lrDistance.value) {
+      leftscroll(subX);
+    } else {
+      console.log("无效操作");
+    }
+  }
+}
+/**
+ * @上滑触发
+ */
+function topscroll(dista) {
+  topMed.value ? (topMed.value = dista) : (topMed.value = null);
+  // console.log("触发了上滑方法!");
+  emit("change", "上滑");
+}
+/**
+ * @下滑触发
+ */
+function bottomscroll(dista) {
+  bottomMed.value ? (bottomMed.value = dista) : (bottomMed.value = null);
+  // console.log("触发了下滑方法!");
+  emit("change", "下滑");
+}
+/**
+ * @右滑触发
+ */
+function rightscroll(dista) {
+  rightMed.value ? (rightMed.value = dista) : (rightMed.value = null);
+  // console.log("触发了右滑方法!");
+  emit("change", "右滑");
+}
+/**
+ * @左滑触发
+ */
+function leftscroll(dista) {
+  leftMed.value ? (leftMed.value = dista) : (leftMed.value = null);
+  // console.log("触发了左滑方法!");
+  emit("change", "左滑");
+}
+</script>

+ 3 - 0
src/main.js

@@ -19,6 +19,7 @@ import oaTimeLine from "@/components/oa-timeLine/index"
 import oaTimeLineItem from "@/components/oa-timeLine-item/index"
 import oaUpload from "@/components/oa-upload/index"
 import oaScroll from "@/components/oa-scroll/index"
+import oaTouch from "@/components/oa-touch/index"
 
 export function createApp() {
   const app = createSSRApp(App);
@@ -30,6 +31,8 @@ export function createApp() {
   app.component('oa-timeLine-item', oaTimeLineItem)
   app.component('oa-upload', oaUpload)
   app.component('oa-scroll', oaScroll)
+  app.component('oa-touch', oaTouch)
+
 
   // 挂载全局json导出
   app.component("downloadExcel", JsonExcel);

+ 3 - 2
src/pages/business/fireIot/deviceSelect/index.vue

@@ -4,6 +4,7 @@
     :pageSize="pageSize"
     :total="total"
     :refresherLoad="true"
+    :refresherLoadTitle="false"
     :refresherEnabled="true"
     :refresherDefaultStyle="'none'"
     :refresherThreshold="44"
@@ -18,7 +19,7 @@
           <u-grid-item v-for="(base, index) in dataList" :key="index" @click="handleToDevice(base.id, base.productName)">
             <u-badge type="primary" max="9999" :value="base.deviceCount" :showZero="true" :absolute="true" :offset="[10, 10, 0, 0]"></u-badge>
             <image class="margin-b-15" style="width: 40px; height: 40px; margin-top: 35px" :src="base.typeImg" mode="aspectFill"></image>
-            <text class="margin-b-15 grid-text">{{ base.productName }}</text>
+            <text class="margin-b-15 grid-text text-ellipsis">{{ base.productName }}</text>
           </u-grid-item>
         </u-grid>
       </view>
@@ -47,7 +48,7 @@ function init() {
   dmpProductInfo({ productName: "", current: current.value, size: pageSize.value }).then((requset) => {
     if (requset.status === "SUCCESS") {
       requset.data.records.forEach((el) => {
-        if ("typeImg" in el == false) {
+        if (!el.typeImg) {
           el.typeImg = "/static/images/404.png";
         }
 

+ 4 - 8
src/pages/business/fireIot/facilitiesView/facilitiesDetails.vue

@@ -129,10 +129,6 @@ const deviceId = ref(undefined);
 const buildNum = ref(undefined);
 const dataArray = ref({});
 const dataList = ref([
-  {
-    title: "所属部门",
-    value: "",
-  },
   {
     title: "设施类型",
     value: "",
@@ -161,9 +157,9 @@ function init() {
   facilityInfo({ id: id.value }).then((requset) => {
     if (requset.status === "SUCCESS") {
       dataArray.value = requset.data[0];
-      dataList.value[2].value = requset.data[0].facilityNum ? requset.data[0].facilityNum : "无";
-      dataList.value[3].value = requset.data[0].address ? requset.data[0].address : "无";
-      dataList.value[4].value = requset.data[0].createTime ? requset.data[0].createTime.replace("T", " ") : requset.data[0].createTime;
+      dataList.value[1].value = requset.data[0].facilityNum ? requset.data[0].facilityNum : "无";
+      dataList.value[2].value = requset.data[0].address ? requset.data[0].address : "无";
+      dataList.value[3].value = requset.data[0].createTime ? requset.data[0].createTime.replace("T", " ") : requset.data[0].createTime;
     }
   });
 
@@ -204,7 +200,7 @@ onShow(() => {
 
 onLoad((options) => {
   if ("typeName" in options) {
-    dataList.value[1].value = options.typeName;
+    dataList.value[0].value = options.typeName;
   }
   if ("id" in options) {
     id.value = parseInt(options.id);

+ 1 - 0
src/pages/business/fireIot/facilitiesView/index.vue

@@ -2,6 +2,7 @@
   <oa-scroll
     class="scroll-height"
     :refresherLoad="false"
+    :refresherLoadTitle="false"
     :refresherEnabled="true"
     :refresherDefaultStyle="'none'"
     :refresherThreshold="44"

+ 60 - 119
src/pages/business/mhxf/deviceManage/index.vue

@@ -12,63 +12,65 @@
   </u-sticky>
 
   <scroll-view class="scroll-height" :scroll-y="true" :data-theme="'theme-' + proxy.$settingStore.themeColor.name" style="padding-bottom: 44px">
-    <view class="deviceManage" @touchstart="fingerstart" @touchend="fingerend">
-      <uni-swipe-action>
-        <uni-swipe-action-item class="bg-white">
-          <view class="content">
-            <view class="block padding-10">
-              <u-input v-model="dataInput" placeholder="请输入设备编号" @blur="blur" shape="circle" prefixIcon="search" prefixIconStyle="color: #0c7bf9"> </u-input>
-            </view>
-
-            <u-empty v-if="dataList.length <= 0" text="暂无数据" mode="data" icon="http://cdn.uviewui.com/uview/empty/data.png"> </u-empty>
-
-            <u-collapse @change="change" @close="close" @open="open" accordion v-else>
-              <u-collapse-item class="uCollapseItem" v-for="da in dataList" :key="da">
-                <template #title>
-                  <view class="flex">
-                    <view class="cu-avatar lg" style="margin: 0 10px auto 0; background-color: rgba(0, 0, 0, 0)">
-                      <image class="image-bg" style="width: 80rpx; height: 80rpx" src="@/static/images/deviceManage/1.png"></image>
-                    </view>
-                    <view style="width: 100%">
-                      <view class="flex" style="color: #000000">
-                        <view>设备编号:{{ da.deviceCode }}</view>
-                        <view class="deviceStatus" v-if="da.deviceStatus == 0" style="background-color: #aeaeae"> 离线 </view>
-                        <view class="deviceStatus" v-else-if="da.deviceStatus == 1" style="background-color: #12c100"> 正常 </view>
-                        <view class="deviceStatus" v-else-if="da.deviceStatus == 2" style="background-color: #ff1313"> 故障 </view>
-                        <view class="deviceStatus" v-else style="background-color: #0d88f0"> 告警 </view>
-                      </view>
-                      <view style="display: flex; font-size: 14px; color: #666666; margin: 10px 0">
-                        <view style="width: 50%; word-break: break-all">监测对象:{{ da.installAddress }}</view>
-                        <view style="width: 50%; word-break: break-all; padding-left: 10px">所属单位:{{ da.companyName }}</view>
+    <oa-touch class="deviceManage" @change="touchChange">
+      <template #content>
+        <uni-swipe-action>
+          <uni-swipe-action-item class="bg-white">
+            <view class="content">
+              <view class="block padding-10">
+                <u-input v-model="dataInput" placeholder="请输入设备编号" @blur="blur" shape="circle" prefixIcon="search" prefixIconStyle="color: #0c7bf9"> </u-input>
+              </view>
+
+              <u-empty v-if="dataList.length <= 0" text="暂无数据" mode="data" icon="http://cdn.uviewui.com/uview/empty/data.png"> </u-empty>
+
+              <u-collapse @change="change" @close="close" @open="open" accordion v-else>
+                <u-collapse-item class="uCollapseItem" v-for="da in dataList" :key="da">
+                  <template #title>
+                    <view class="flex">
+                      <view class="cu-avatar lg" style="margin: 0 10px auto 0; background-color: rgba(0, 0, 0, 0)">
+                        <image class="image-bg" style="width: 80rpx; height: 80rpx" src="@/static/images/deviceManage/1.png"></image>
                       </view>
-                      <view style="display: flex; font-size: 14px; color: #666666">
-                        <view style="width: 50%; word-break: break-all">负责人:{{ da.linkPerson }}</view>
-                        <view style="width: 50%; word-break: break-all; padding-left: 10px">联系电话:{{ da.linkPhone }}</view>
+                      <view style="width: 100%">
+                        <view class="flex" style="color: #000000">
+                          <view>设备编号:{{ da.deviceCode }}</view>
+                          <view class="deviceStatus" v-if="da.deviceStatus == 0" style="background-color: #aeaeae"> 离线 </view>
+                          <view class="deviceStatus" v-else-if="da.deviceStatus == 1" style="background-color: #12c100"> 正常 </view>
+                          <view class="deviceStatus" v-else-if="da.deviceStatus == 2" style="background-color: #ff1313"> 故障 </view>
+                          <view class="deviceStatus" v-else style="background-color: #0d88f0"> 告警 </view>
+                        </view>
+                        <view style="display: flex; font-size: 14px; color: #666666; margin: 10px 0">
+                          <view style="width: 50%; word-break: break-all">监测对象:{{ da.installAddress }}</view>
+                          <view style="width: 50%; word-break: break-all; padding-left: 10px">所属单位:{{ da.companyName }}</view>
+                        </view>
+                        <view style="display: flex; font-size: 14px; color: #666666">
+                          <view style="width: 50%; word-break: break-all">负责人:{{ da.linkPerson }}</view>
+                          <view style="width: 50%; word-break: break-all; padding-left: 10px">联系电话:{{ da.linkPhone }}</view>
+                        </view>
                       </view>
                     </view>
-                  </view>
-                </template>
+                  </template>
 
-                <view class="u-collapse-content">
-                  <!-- <view style="display: flex; flex-wrap: wrap; margin-left: 5%">
+                  <view class="u-collapse-content">
+                    <!-- <view style="display: flex; flex-wrap: wrap; margin-left: 5%">
                     <view style="width: 50%; height: 30px; line-height: 30px" v-for="ch in da.dataList" :key="ch">
                       <span>{{ ch.label }}:</span>
                       <span :style="ch.value === '正常' ? 'color:#12C100' : 'color:#FF0101'">{{ ch.value }}</span>
                     </view>
                   </view> -->
-                  <view style="display: flex; flex-wrap: wrap; margin-left: 5%">
-                    <view style="width: 50%; height: 30px; line-height: 30px" v-for="ch in da.dataList" :key="ch">
-                      <span>{{ ch.portName }}:</span>
-                      <span>{{ ch.portData }}</span>
+                    <view style="display: flex; flex-wrap: wrap; margin-left: 5%">
+                      <view style="width: 50%; height: 30px; line-height: 30px" v-for="ch in da.dataList" :key="ch">
+                        <span>{{ ch.portName }}:</span>
+                        <span>{{ ch.portData }}</span>
+                      </view>
                     </view>
                   </view>
-                </view>
-              </u-collapse-item>
-            </u-collapse>
-          </view>
-        </uni-swipe-action-item>
-      </uni-swipe-action>
-    </view>
+                </u-collapse-item>
+              </u-collapse>
+            </view>
+          </uni-swipe-action-item>
+        </uni-swipe-action>
+      </template>
+    </oa-touch>
   </scroll-view>
 </template>
 
@@ -109,17 +111,6 @@ const list = ref([
   },
 ]);
 
-const startData = ref({
-  clientX: "",
-  clientY: "",
-});
-const updDistance = ref(100);
-const lrDistance = ref(50);
-const topMed = ref("");
-const bottomMed = ref("");
-const leftMed = ref("");
-const rightMed = ref("");
-
 /**
  * @tabs点击事件
  */
@@ -130,74 +121,24 @@ function tabsClick(e) {
 }
 
 /**
- * @当按下去的时候
- */
-function fingerstart(e) {
-  // 记录 距离可视区域左上角 左边距 和 上边距
-  startData.value.clientX = e.changedTouches[0].clientX;
-  startData.value.clientY = e.changedTouches[0].clientY;
-}
-/**
- * @当抬起来的时候
+ * @滑动change事件
  */
-function fingerend(e) {
-  // 当前位置 减去 按下位置 计算 距离
-  const subX = e.changedTouches[0].clientX - startData.value.clientX;
-  const subY = e.changedTouches[0].clientY - startData.value.clientY;
-  if (subY > updDistance.value || subY < -updDistance.value) {
-    if (subY > updDistance.value) {
-      bottomscroll(subY);
-    } else if (subY < -updDistance.value) {
-      topscroll(subY);
+function touchChange(e) {
+  if (e == "右滑") {
+    if (current.value >= 1) {
+      current.value--;
+    } else {
+      current.value = list.value.length - 1;
     }
-  } else {
-    if (subX > lrDistance.value) {
-      rightscroll(subX);
-    } else if (subX < -lrDistance.value) {
-      leftscroll(subX);
+  } else if (e == "左滑") {
+    if (current.value < list.value.length - 1) {
+      current.value++;
     } else {
-      console.log("无效操作");
+      current.value = 0;
     }
   }
 }
-/**
- * @上滑触发
- */
-function topscroll(dista) {
-  topMed.value ? (topMed.value = dista) : (topMed.value = null);
-  console.log("触发了上滑方法!");
-}
-/**
- * @下滑触发
- */
-function bottomscroll(dista) {
-  bottomMed.value ? (bottomMed.value = dista) : (bottomMed.value = null);
-  console.log("触发了下滑方法!");
-}
-/**
- * @右滑触发
- */
-function rightscroll(dista) {
-  rightMed.value ? (rightMed.value = dista) : (rightMed.value = null);
-  console.log("触发了右滑方法!");
-  if (current.value >= 1) {
-    current.value--;
-  } else {
-    current.value = list.value.length - 1;
-  }
-}
-/**
- * @左滑触发
- */
-function leftscroll(dista) {
-  leftMed.value ? (leftMed.value = dista) : (leftMed.value = null);
-  console.log("触发了左滑方法!");
-  if (current.value < list.value.length - 1) {
-    current.value++;
-  } else {
-    current.value = 0;
-  }
-}
+
 function blur(e) {
   if (dataInput.value) {
     classifySearch({ systemType: 5, deviceCode: dataInput.value });

+ 39 - 100
src/pages/business/mhxf/informationSelect-test/index.vue

@@ -3,34 +3,36 @@
     <u-tabs :list="list" :current="current" @click="tabsClick" lineColor="#333" :activeStyle="{ color: '#333' }" :inactiveStyle="{ color: '#909399' }"></u-tabs>
   </u-sticky>
 
-  <view class="bg-white informationSelect" @touchstart="fingerstart" @touchend="fingerend">
-    <uni-swipe-action>
-      <uni-swipe-action-item>
-        <!-- 各类查询 start -->
-        <view class="tableType3">
-          <u-input style="margin-bottom: 10px" 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 v-if="current == 8">
-            <view class="con">
-              <view class="time">{{ newTime }}</view>
-              <video src="https://mbsvod.oss-cn-beijing.aliyuncs.com/cy-video.mp4" autoplay :controls="false" :show-center-play-btn="false" :loop="true" style="width: 100%"></video>
+  <oa-touch class="bg-white informationSelect" @change="touchChange">
+    <template #content>
+      <uni-swipe-action>
+        <uni-swipe-action-item>
+          <!-- 各类查询 start -->
+          <view class="tableType3">
+            <u-input style="margin-bottom: 10px" 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 v-if="current == 8">
+              <view class="con">
+                <view class="time">{{ newTime }}</view>
+                <video src="https://mbsvod.oss-cn-beijing.aliyuncs.com/cy-video.mp4" autoplay :controls="false" :show-center-play-btn="false" :loop="true" style="width: 100%"></video>
+              </view>
+            </view>
+            <view v-else>
+              <u-row v-for="po in classifyData" :key="po">
+                <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>
           </view>
-          <view v-else>
-            <u-row v-for="po in classifyData" :key="po">
-              <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>
-        </view>
-        <!-- 各类查询 end -->
-      </uni-swipe-action-item>
-    </uni-swipe-action>
-  </view>
+          <!-- 各类查询 end -->
+        </uni-swipe-action-item>
+      </uni-swipe-action>
+    </template>
+  </oa-touch>
 </template>
 
 <script setup>
@@ -113,87 +115,24 @@ const list = ref([
   },
 ]);
 
-const startData = ref({
-  clientX: "",
-  clientY: "",
-});
-const updDistance = ref(100);
-const lrDistance = ref(50);
-const topMed = ref("");
-const bottomMed = ref("");
-const leftMed = ref("");
-const rightMed = ref("");
-const classifyData = ref([]); //警情查询数据存储
-
-/**
- * @当按下去的时候
- */
-function fingerstart(e) {
-  // 记录 距离可视区域左上角 左边距 和 上边距
-  startData.value.clientX = e.changedTouches[0].clientX;
-  startData.value.clientY = e.changedTouches[0].clientY;
-}
 /**
- * @当抬起来的时候
+ * @滑动change事件
  */
-function fingerend(e) {
-  // 当前位置 减去 按下位置 计算 距离
-  const subX = e.changedTouches[0].clientX - startData.value.clientX;
-  const subY = e.changedTouches[0].clientY - startData.value.clientY;
-  if (subY > updDistance.value || subY < -updDistance.value) {
-    if (subY > updDistance.value) {
-      bottomscroll(subY);
-    } else if (subY < -updDistance.value) {
-      topscroll(subY);
+function touchChange(e) {
+  if (e == "右滑") {
+    if (current.value >= 1) {
+      current.value--;
+    } else {
+      current.value = list.value.length - 1;
     }
-  } else {
-    if (subX > lrDistance.value) {
-      rightscroll(subX);
-    } else if (subX < -lrDistance.value) {
-      leftscroll(subX);
+  } else if (e == "左滑") {
+    if (current.value < list.value.length - 1) {
+      current.value++;
     } else {
-      console.log("无效操作");
+      current.value = 0;
     }
   }
 }
-/**
- * @上滑触发
- */
-function topscroll(dista) {
-  topMed.value ? (topMed.value = dista) : (topMed.value = null);
-  console.log("触发了上滑方法!");
-}
-/**
- * @下滑触发
- */
-function bottomscroll(dista) {
-  bottomMed.value ? (bottomMed.value = dista) : (bottomMed.value = null);
-  console.log("触发了下滑方法!");
-}
-/**
- * @右滑触发
- */
-function rightscroll(dista) {
-  rightMed.value ? (rightMed.value = dista) : (rightMed.value = null);
-  console.log("触发了右滑方法!");
-  if (current.value >= 1) {
-    current.value--;
-  } else {
-    current.value = list.value.length - 1;
-  }
-}
-/**
- * @左滑触发
- */
-function leftscroll(dista) {
-  leftMed.value ? (leftMed.value = dista) : (leftMed.value = null);
-  console.log("触发了左滑方法!");
-  if (current.value < list.value.length - 1) {
-    current.value++;
-  } else {
-    current.value = 0;
-  }
-}
 
 function blur(e) {
   if (dataInput.value) {

+ 40 - 101
src/pages/business/mhxf/informationSelect/index.vue

@@ -4,34 +4,36 @@
   </u-sticky>
 
   <scroll-view class="bg-white scroll-height" :scroll-y="true" :data-theme="'theme-' + proxy.$settingStore.themeColor.name" style="padding-bottom: 44px">
-    <view class="informationSelect" @touchstart="fingerstart" @touchend="fingerend">
-      <uni-swipe-action>
-        <uni-swipe-action-item>
-          <!-- 各类查询 start -->
-          <view class="tableType3">
-            <u-input class="block margin-b-10" 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 v-if="current == 8">
-              <view class="con">
-                <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-touch class="informationSelect" @change="touchChange">
+      <template #content>
+        <uni-swipe-action>
+          <uni-swipe-action-item>
+            <!-- 各类查询 start -->
+            <view class="tableType3">
+              <u-input class="block margin-b-10" 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 v-if="current == 8">
+                <view class="con">
+                  <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>
+                </view>
+              </view>
+              <view v-else>
+                <u-row v-for="po in classifyData" :key="po">
+                  <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>
             </view>
-            <view v-else>
-              <u-row v-for="po in classifyData" :key="po">
-                <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>
-          </view>
-          <!-- 各类查询 end -->
-        </uni-swipe-action-item>
-      </uni-swipe-action>
-    </view>
+            <!-- 各类查询 end -->
+          </uni-swipe-action-item>
+        </uni-swipe-action>
+      </template>
+    </oa-touch>
   </scroll-view>
 </template>
 
@@ -49,9 +51,9 @@ const publicStore = publicStores(); //全局公共Store
 const dataInput = ref("");
 const current = ref(0);
 const classifyUrl = ref("");
-const classifyCode = ref("");
 const placeholderText = ref("");
 const dataRes = ref(1);
+const classifyData = ref([]); //警情查询数据存储
 
 const list = ref([
   {
@@ -115,87 +117,24 @@ const list = ref([
   },
 ]);
 
-const startData = ref({
-  clientX: "",
-  clientY: "",
-});
-const updDistance = ref(100);
-const lrDistance = ref(50);
-const topMed = ref("");
-const bottomMed = ref("");
-const leftMed = ref("");
-const rightMed = ref("");
-const classifyData = ref([]); //警情查询数据存储
-
-/**
- * @当按下去的时候
- */
-function fingerstart(e) {
-  // 记录 距离可视区域左上角 左边距 和 上边距
-  startData.value.clientX = e.changedTouches[0].clientX;
-  startData.value.clientY = e.changedTouches[0].clientY;
-}
 /**
- * @当抬起来的时候
+ * @滑动change事件
  */
-function fingerend(e) {
-  // 当前位置 减去 按下位置 计算 距离
-  const subX = e.changedTouches[0].clientX - startData.value.clientX;
-  const subY = e.changedTouches[0].clientY - startData.value.clientY;
-  if (subY > updDistance.value || subY < -updDistance.value) {
-    if (subY > updDistance.value) {
-      bottomscroll(subY);
-    } else if (subY < -updDistance.value) {
-      topscroll(subY);
+function touchChange(e) {
+  if (e == "右滑") {
+    if (current.value >= 1) {
+      current.value--;
+    } else {
+      current.value = list.value.length - 1;
     }
-  } else {
-    if (subX > lrDistance.value) {
-      rightscroll(subX);
-    } else if (subX < -lrDistance.value) {
-      leftscroll(subX);
+  } else if (e == "左滑") {
+    if (current.value < list.value.length - 1) {
+      current.value++;
     } else {
-      console.log("无效操作");
+      current.value = 0;
     }
   }
 }
-/**
- * @上滑触发
- */
-function topscroll(dista) {
-  topMed.value ? (topMed.value = dista) : (topMed.value = null);
-  console.log("触发了上滑方法!");
-}
-/**
- * @下滑触发
- */
-function bottomscroll(dista) {
-  bottomMed.value ? (bottomMed.value = dista) : (bottomMed.value = null);
-  console.log("触发了下滑方法!");
-}
-/**
- * @右滑触发
- */
-function rightscroll(dista) {
-  rightMed.value ? (rightMed.value = dista) : (rightMed.value = null);
-  console.log("触发了右滑方法!");
-  if (current.value >= 1) {
-    current.value--;
-  } else {
-    current.value = list.value.length - 1;
-  }
-}
-/**
- * @左滑触发
- */
-function leftscroll(dista) {
-  leftMed.value ? (leftMed.value = dista) : (leftMed.value = null);
-  console.log("触发了左滑方法!");
-  if (current.value < list.value.length - 1) {
-    current.value++;
-  } else {
-    current.value = 0;
-  }
-}
 
 function blur(e) {
   if (dataInput.value) {

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

@@ -4,182 +4,184 @@
   </u-sticky>
 
   <scroll-view class="scroll-height" :scroll-y="true" :data-theme="'theme-' + proxy.$settingStore.themeColor.name" style="padding-bottom: 44px">
-    <view class="needMatter" @touchstart="fingerstart" @touchend="fingerend">
-      <u-empty v-if="classifyData.length <= 0" text="暂无数据" mode="data" icon="http://cdn.uviewui.com/uview/empty/data.png"> </u-empty>
-
-      <view class="content" v-else>
-        <u-collapse>
-          <u-collapse-item v-for="(cl, index) in classifyData" :key="index">
-            <template #title>
-              <view style="display: flex; line-height: 25px">
-                <view style="padding-top: 4px">
-                  <u--image src="/static/images/needMatter/icon1.png" width="14px" height="15px"></u--image>
-                </view>
-                <view style="padding: 0 10px; white-space: nowrap; font-size: 16px">
-                  <view>待办通知</view>
-                  <view>建议完成限期:</view>
-                  <view style="font-size: 14px; color: #666666">{{ cl.reformId }}</view>
-                </view>
-                <view style="width: 100%; text-align: center; font-size: 16px">
-                  <view
-                    :style="{
-                      color:
+    <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>
+
+        <view class="content" v-else>
+          <u-collapse>
+            <u-collapse-item v-for="(cl, index) in classifyData" :key="index">
+              <template #title>
+                <view style="display: flex; line-height: 25px">
+                  <view style="padding-top: 4px">
+                    <u--image src="/static/images/needMatter/icon1.png" width="14px" height="15px"></u--image>
+                  </view>
+                  <view style="padding: 0 10px; white-space: nowrap; font-size: 16px">
+                    <view>待办通知</view>
+                    <view>建议完成限期:</view>
+                    <view style="font-size: 14px; color: #666666">{{ cl.reformId }}</view>
+                  </view>
+                  <view style="width: 100%; text-align: center; font-size: 16px">
+                    <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="font-size: 14px; color: #666666">{{ cl.sendTime }}</view>
                   </view>
-                  <view style="text-align: left">{{ cl.limitTime }}</view>
-                  <view style="font-size: 14px; color: #666666">{{ cl.sendTime }}</view>
                 </view>
-              </view>
-            </template>
-            <view class="u-collapse-content">
-              <view class="tableType1" style="margin-bottom: 10px">
-                <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="u-collapse-content">
+                <view class="tableType1" style="margin-bottom: 10px">
+                  <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 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 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 style="font-size: 14px; line-height: 20px; margin-top: 10px">
-                  <u-button type="primary" text="去整改" shape="circle" @click="handleSubmit(cl, '去整改')" customStyle="width: 60px; height: 23px"></u-button>
+                  <view style="font-size: 14px; line-height: 20px; margin-top: 10px">
+                    <u-button type="primary" text="去整改" shape="circle" @click="handleSubmit(cl, '去整改')" customStyle="width: 60px; height: 23px"></u-button>
+                  </view>
                 </view>
-              </view>
 
-              <view 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 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 style="font-size: 14px; line-height: 20px; margin-top: 10px">
-                  <u-button type="primary" text="填报" shape="circle" @click="handleSubmit(cl, '填报')" customStyle="width: 60px; height: 23px"></u-button>
+                  <view style="font-size: 14px; line-height: 20px; margin-top: 10px">
+                    <u-button type="primary" text="填报" shape="circle" @click="handleSubmit(cl, '填报')" customStyle="width: 60px; height: 23px"></u-button>
+                  </view>
                 </view>
-              </view>
 
-              <view 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 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 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 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 style="font-size: 14px; line-height: 20px; margin-top: 10px">
-                  <view>备注:{{ cl.reviewRemark ? cl.reviewRemark : "无" }}</view>
-                </view>
+                  <view style="font-size: 14px; line-height: 20px; margin-top: 10px">
+                    <view>备注:{{ cl.reviewRemark ? cl.reviewRemark : "无" }}</view>
+                  </view>
 
-                <view style="font-size: 14px; line-height: 20px; margin-top: 10px">
-                  <u-button type="primary" text="去整改" shape="circle" @click="handleSubmit(cl, '去整改')" customStyle="width: 60px; height: 23px"></u-button>
+                  <view style="font-size: 14px; line-height: 20px; margin-top: 10px">
+                    <u-button type="primary" text="去整改" shape="circle" @click="handleSubmit(cl, '去整改')" customStyle="width: 60px; height: 23px"></u-button>
+                  </view>
                 </view>
-              </view>
 
-              <view 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 style="font-size: 14px; line-height: 20px; margin-top: 10px">
-                  <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 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 style="font-size: 14px; line-height: 20px; margin-top: 10px">
+                    <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="modalShow"
-            title="填报(火灾报警系统)"
-            :showCancelButton="true"
-            :showConfirmButton="true"
-            :closeOnClickOverlay="true"
-            @close="modalShow = false"
-            @cancel="modalShow = false"
-            @confirm="handleConfirm"
-          >
-            <view style="width: 100%">
-              <uni-section class="block margin-b-10" title="图片上传:" type="line">
-                <u-upload :fileList="fileList" name="6" @afterRead="afterRead" multiple :maxCount="5" width="80" height="80"> </u-upload>
-              </uni-section>
-              <uni-section class="block margin-b-10" title="备注:" type="line">
-                <u--textarea v-model="textValue" placeholder="请输入内容"></u--textarea>
-              </uni-section>
-            </view>
-          </u-modal>
+            </u-collapse-item>
+          </u-collapse>
+
+          <view>
+            <u-modal
+              :show="modalShow"
+              title="填报(火灾报警系统)"
+              :showCancelButton="true"
+              :showConfirmButton="true"
+              :closeOnClickOverlay="true"
+              @close="modalShow = false"
+              @cancel="modalShow = false"
+              @confirm="handleConfirm"
+            >
+              <view style="width: 100%">
+                <uni-section class="block margin-b-10" title="图片上传:" type="line">
+                  <u-upload :fileList="fileList" name="6" @afterRead="afterRead" multiple :maxCount="5" width="80" height="80"> </u-upload>
+                </uni-section>
+                <uni-section class="block margin-b-10" title="备注:" type="line">
+                  <u--textarea v-model="textValue" placeholder="请输入内容"></u--textarea>
+                </uni-section>
+              </view>
+            </u-modal>
+          </view>
         </view>
-      </view>
-    </view>
+      </template>
+    </oa-touch>
   </scroll-view>
 </template>
 
@@ -223,37 +225,17 @@ const list = ref([
   {
     id: 3,
     name: "待办完成",
-    badge: {
-      // value: 5,
-    },
   },
   {
     id: 4,
     name: "审核不通过",
-    badge: {
-      // value: 5,
-    },
   },
   {
     id: 5,
     name: "审核通过",
-    badge: {
-      // value: 5,
-    },
   },
 ]);
 
-const startData = ref({
-  clientX: "",
-  clientY: "",
-});
-const updDistance = ref(100);
-const lrDistance = ref(50);
-const topMed = ref("");
-const bottomMed = ref("");
-const leftMed = ref("");
-const rightMed = ref("");
-
 /**
  * @填报
  * @去整改
@@ -351,73 +333,23 @@ function uploadFilePromise(el) {
 }
 
 /**
- * @当按下去的时候
- */
-function fingerstart(e) {
-  // 记录 距离可视区域左上角 左边距 和 上边距
-  startData.value.clientX = e.changedTouches[0].clientX;
-  startData.value.clientY = e.changedTouches[0].clientY;
-}
-
-/**
- * @当抬起来的时候
+ * @滑动change事件
  */
-function fingerend(e) {
-  // 当前位置 减去 按下位置 计算 距离
-  const subX = e.changedTouches[0].clientX - startData.value.clientX;
-  const subY = e.changedTouches[0].clientY - startData.value.clientY;
-  if (subY > updDistance.value || subY < -updDistance.value) {
-    if (subY > updDistance.value) {
-      bottomscroll(subY);
-    } else if (subY < -updDistance.value) {
-      topscroll(subY);
+function touchChange(e) {
+  if (e == "右滑") {
+    if (current.value >= 1) {
+      current.value--;
+    } else {
+      current.value = list.value.length - 1;
     }
-  } else {
-    if (subX > lrDistance.value) {
-      rightscroll(subX);
-    } else if (subX < -lrDistance.value) {
-      leftscroll(subX);
+    goSearch();
+  } else if (e == "左滑") {
+    if (current.value < list.value.length - 1) {
+      current.value++;
     } else {
-      console.log("无效操作");
+      current.value = 0;
     }
-  }
-}
-/**
- * @上滑触发
- */
-function topscroll(dista) {
-  topMed.value ? (topMed.value = dista) : (topMed.value = null);
-  console.log("触发了上滑方法!");
-}
-/**
- * @下滑触发
- */
-function bottomscroll(dista) {
-  bottomMed.value ? (bottomMed.value = dista) : (bottomMed.value = null);
-  console.log("触发了下滑方法!");
-}
-/**
- * @右滑触发
- */
-function rightscroll(dista) {
-  rightMed.value ? (rightMed.value = dista) : (rightMed.value = null);
-  console.log("触发了右滑方法!");
-  if (current.value >= 1) {
-    current.value--;
-  } else {
-    current.value = list.value.length - 1;
-  }
-}
-/**
- * @左滑触发
- */
-function leftscroll(dista) {
-  leftMed.value ? (leftMed.value = dista) : (leftMed.value = null);
-  console.log("触发了左滑方法!");
-  if (current.value < list.value.length - 1) {
-    current.value++;
-  } else {
-    current.value = 0;
+    goSearch();
   }
 }
 
@@ -470,8 +402,6 @@ async function classifySearch(params) {
   });
 }
 
-watchEffect(() => {});
-
 // 自定义导航事件
 onNavigationBarButtonTap((e) => {
   if (e.float == "right") {

+ 2 - 1
src/pages/common/customManage/index.vue

@@ -46,8 +46,9 @@
               <view style="min-width: 50%"> 客户负责人:{{ data.customPerson }} </view>
               <view style="min-width: 50%"> 维保费:¥{{ data.maintainAmount }} </view>
               <view style="min-width: 50%; display: flex; white-space: nowrap">
-                客户电话:{{ data.phone }}
+                <view style="margin-right: 5px">客户电话:{{ data.phone }}</view>
                 <view class="iconfont ucicon-a-copy menu-icon" style="font-size: 14px; color: #909399; margin-left: 5px" @click="copy(data.phone)"> </view>
+                <view class="iconfont ucicon-dial menu-icon" style="font-size: 14px; color: #909399; margin-left: 5px" @click="proxy.$common.makePhoneCall(data.phone)"> </view>
               </view>
               <view style="min-width: 50%">
                 状态:

+ 48 - 53
src/pages/index.vue

@@ -1,6 +1,4 @@
 <template>
-  <!-- <u-sticky bgColor="#fff"> </u-sticky> -->
-
   <u-navbar :autoBack="false" :placeholder="true" :safeAreaInsetTop="true" :bgColor="proxy.$settingStore.themeColor.color" @rightClick="rightButtonClick()">
     <template #left>
       <view class="u-nav-slot">
@@ -31,8 +29,7 @@
     @refresh="refresh"
   >
     <template #default>
-      <!-- <u-loadmore :status="arrayList.loadStatus" loadingText="" loadmoreText="" :icon="true" /> -->
-      <view class="home-container uni-content-body">
+      <view class="home-container">
         <!-- 下拉列表 开始 -->
         <u-transition :show="dialogFlag" :duration="200" mode="fade">
           <view class="transition" @click="rightButtonClick()">
@@ -365,62 +362,60 @@ onNavigationBarButtonTap((e) => {
 
 <style lang="scss" scoped>
 .home-container {
-  .uni-content-body {
-    // #ifdef H5
-    padding-bottom: 50px;
-    // #endif
-
-    .transition {
-      position: fixed;
-      top: 0;
-      left: 0;
-      right: 0;
-      bottom: 0;
-      z-index: 1100;
-
-      .transition-section {
-        position: absolute;
-        top: 10px;
-        right: 15px;
-        background-color: #fff;
-        border-radius: 10px;
-        box-shadow: 0px 0px 15px 0 rgba(0, 0, 0, 0.2);
-
-        .transition-section-divider {
-          border-bottom: 0.5px rgba(0, 0, 0, 0.1) solid;
-          margin: 0 20px;
-        }
-
-        .transition-section-content {
-          display: flex;
-          padding: 15px 20px;
+  // #ifdef H5
+  // padding-bottom: 50px;
+  // #endif
+
+  .transition {
+    position: fixed;
+    top: 0;
+    left: 0;
+    right: 0;
+    bottom: 0;
+    z-index: 1100;
+
+    .transition-section {
+      position: absolute;
+      top: 10px;
+      right: 15px;
+      background-color: #fff;
+      border-radius: 10px;
+      box-shadow: 0px 0px 15px 0 rgba(0, 0, 0, 0.2);
+
+      .transition-section-divider {
+        border-bottom: 0.5px rgba(0, 0, 0, 0.1) solid;
+        margin: 0 20px;
+      }
 
-          .transition-section-content-icon {
-            font-size: 18px;
-            color: #000;
-          }
+      .transition-section-content {
+        display: flex;
+        padding: 15px 20px;
 
-          .transition-section-content-text {
-            margin: 0 20px;
-          }
+        .transition-section-content-icon {
+          font-size: 18px;
+          color: #000;
         }
 
-        .transition-section-content:first-child {
-          padding-top: 15px;
-          border-radius: 10px 10px 0 0;
+        .transition-section-content-text {
+          margin: 0 20px;
         }
+      }
 
-        .transition-section-content:last-child {
-          padding-bottom: 15px;
-          border-radius: 0 0 10px 10px;
-        }
+      .transition-section-content:first-child {
+        padding-top: 15px;
+        border-radius: 10px 10px 0 0;
+      }
 
-        .transition-section-content:hover {
-          // transform: 3s;
-          // transition: all 600ms cubic-bezier(0.3, 1, 0.2, 1);
-          transition: all 3s cubic-bezier(0.7, -0.5, 0.2, 2);
-          background-color: rgba(0, 0, 0, 0.1);
-        }
+      .transition-section-content:last-child {
+        padding-bottom: 15px;
+        border-radius: 0 0 10px 10px;
+      }
+
+      .transition-section-content:hover {
+        // transform: 3s;
+        // transition: all 600ms cubic-bezier(0.3, 1, 0.2, 1);
+        transition: all 3s cubic-bezier(0.7, -0.5, 0.2, 2);
+        background-color: rgba(0, 0, 0, 0.1);
       }
     }
   }

+ 4 - 1
src/pages/login.vue

@@ -176,7 +176,6 @@ function env() {
   //#ifdef H5
   if (window.location.host) {
     linkUrl.value = window.location.host;
-    // linkUrl.value = window.location.host;
     // linkUrl.value='ces.cn';
     // linkUrl.value = "172.16.120.165:13207";
     // linkUrl.value = "172.16.120.165:13200";
@@ -190,6 +189,10 @@ function env() {
   if (uni.getStorageSync("serveUrl")) {
     linkUrl.value = uni.getStorageSync("serveUrl");
     useStore.GetMobileTenantConfig({ url: linkUrl.value });
+  } else {
+    uni.setStorageSync("serveUrl", "manager.usky.cn");
+    linkUrl.value = uni.getStorageSync("serveUrl");
+    useStore.GetMobileTenantConfig({ url: linkUrl.value });
   }
   //#endif
 }

+ 15 - 1
src/plugins/common.plugins.js

@@ -25,9 +25,23 @@ export default {
     return result;
   },
 
+  /**
+   * @一键拨号
+   */
+  makePhoneCall(phone) {
+    uni.makePhoneCall({
+      phoneNumber: phone,
+      success: function () {
+        console.log('success');
+      },
+      fail: function () {
+      }
+    });
+  },
+
   /**
    * @复制粘贴板
-   * @param {*} param0 
+   * @param {传入值} content 
    * @returns 
    */
   uniCopy({ content, success, error }) {

+ 7 - 3
src/static/iconfont/iconfont.css

@@ -1,8 +1,8 @@
 @font-face {
   font-family: "iconfont"; /* Project id 3620854 */
-  src: url('https://at.alicdn.com/t/c/font_3620854_kj985d7f2u.woff2?t=1689669584145') format('woff2'),
-       url('https://at.alicdn.com/t/c/font_3620854_kj985d7f2u.woff?t=1689669584145') format('woff'),
-       url('https://at.alicdn.com/t/c/font_3620854_kj985d7f2u.ttf?t=1689669584145') format('truetype');
+  src: url('https://at.alicdn.com/t/c/font_3620854_or3dk845a9m.woff2?t=1690786456967') format('woff2'),
+       url('https://at.alicdn.com/t/c/font_3620854_or3dk845a9m.woff?t=1690786456967') format('woff'),
+       url('https://at.alicdn.com/t/c/font_3620854_or3dk845a9m.ttf?t=1690786456967') format('truetype');
 }
 
 .iconfont {
@@ -13,6 +13,10 @@
   -moz-osx-font-smoothing: grayscale;
 }
 
+.ucicon-dial:before {
+  content: "\e60b";
+}
+
 .ucicon-app-map:before {
   content: "\e60a";
 }

BIN
src/static/iconfont/iconfont.ttf


BIN
src/static/icons/index/APP-gjgl.png


+ 6 - 0
src/static/scss/index.scss

@@ -125,4 +125,10 @@
 
 .margin-b-15 {
     margin-bottom: 15px
+}
+
+.text-ellipsis {
+    overflow: hidden; //超出的文本隐藏
+    text-overflow: ellipsis; //溢出用省略号显示
+    white-space: nowrap; // 默认不换行;
 }

+ 1 - 0
src/uni_modules/uview-plus/components/u-tabbar/u-tabbar.vue

@@ -139,6 +139,7 @@
 			bottom: 0;
 			left: 0;
 			right: 0;
+			box-shadow: 0px 0px 15px 0 rgba(0, 0, 0, 0.1); 
 		}
 	}
 </style>

BIN
unpackage/res/icons/1024x1024.png


BIN
unpackage/res/icons/120x120.png


BIN
unpackage/res/icons/144x144.png


BIN
unpackage/res/icons/152x152.png


BIN
unpackage/res/icons/167x167.png


BIN
unpackage/res/icons/180x180.png


BIN
unpackage/res/icons/192x192.png


BIN
unpackage/res/icons/20x20.png


BIN
unpackage/res/icons/29x29.png


BIN
unpackage/res/icons/40x40.png


BIN
unpackage/res/icons/58x58.png


BIN
unpackage/res/icons/60x60.png


BIN
unpackage/res/icons/72x72.png


BIN
unpackage/res/icons/76x76.png


BIN
unpackage/res/icons/80x80.png


BIN
unpackage/res/icons/87x87.png


BIN
unpackage/res/icons/96x96.png