Selaa lähdekoodia

根据规范优化页面/组件封装/BUG修复

fanghuisheng 1 vuosi sitten
vanhempi
commit
4abc6a5a59
68 muutettua tiedostoa jossa 1096 lisäystä ja 1514 poistoa
  1. 0 10
      src/App.vue
  2. 24 8
      src/components/oa-calendar/uni-calendar.vue
  3. 18 9
      src/components/oa-scroll/index.vue
  4. 111 0
      src/components/oa-weather/index.vue
  5. 1 1
      src/components/zzlb-mutiselect/zzlb-mutiselect.vue
  6. 2 0
      src/main.js
  7. 18 24
      src/pages.json
  8. 4 4
      src/pages/business/analyse/index.vue
  9. 5 13
      src/pages/business/common/fastMail/index.vue
  10. 1 2
      src/pages/business/common/videoMonitor/index.vue
  11. 10 36
      src/pages/business/common/videoMonitor/videoDetail.vue
  12. 16 33
      src/pages/business/common/videoMonitor/videoList.vue
  13. 8 30
      src/pages/business/fireIot/alarmManage/alarmDetails/index.vue
  14. 9 19
      src/pages/business/fireIot/alarmManage/alarmDetailsList/index.vue
  15. 1 2
      src/pages/business/fireIot/alarmManage/index.vue
  16. 1 2
      src/pages/business/fireIot/deviceManage/components/deviceDetails.vue
  17. 1 2
      src/pages/business/fireIot/deviceManage/components/deviceDetailsList.vue
  18. 1 2
      src/pages/business/fireIot/deviceManage/index.vue
  19. 7 20
      src/pages/business/fireIot/facilitiesManage/facilitiesDetails.vue
  20. 1 2
      src/pages/business/fireIot/facilitiesManage/facilitiesDetailsList.vue
  21. 8 7
      src/pages/business/fireIot/facilitiesManage/index.vue
  22. 2 2
      src/pages/business/fireIot/repairManage/index.vue
  23. 7 25
      src/pages/business/fireIot/repairManage/repairDetails.vue
  24. 3 13
      src/pages/business/fireIot/repairManage/repairDetailsList.vue
  25. 2 8
      src/pages/business/mhxf/deviceManage/index.vue
  26. 14 81
      src/pages/business/mhxf/fireReport/components/detailed.vue
  27. 31 49
      src/pages/business/mhxf/fireReport/index.vue
  28. 8 30
      src/pages/business/mhxf/needMatter/index.vue
  29. 1 1
      src/pages/business/zhaf/signIn/index.vue
  30. 1 10
      src/pages/business/zhaf/xunJian/collect/components/collectDetail.vue
  31. 107 55
      src/pages/business/zhaf/xunJian/collect/components/collectRecord.vue
  32. 131 85
      src/pages/business/zhaf/xunJian/collect/index.vue
  33. 1 1
      src/pages/business/zhaf/xunJian/plan/components/report.vue
  34. 1 1
      src/pages/business/zhaf/xunJian/plan/index.vue
  35. 1 1
      src/pages/business/zhaf/xunJian/record/index.vue
  36. 8 8
      src/pages/business/zhaf/xunJian/record/recordDetail/index.vue
  37. 3 20
      src/pages/business/zhaf/xunJian/xunJian.vue
  38. 6 6
      src/pages/business/zhxf/building/index.vue
  39. 1 0
      src/pages/business/zhxf/fireInspect/index.vue
  40. 12 33
      src/pages/business/zhxf/fireInspect/inspectDetails/index.vue
  41. 6 17
      src/pages/business/zhxf/fireInspect/inspectDetailsList/index.vue
  42. 1 1
      src/pages/business/zhxf/funReport/funcAdd/index.vue
  43. 1 1
      src/pages/business/zhxf/funReport/index.vue
  44. 14 54
      src/pages/business/zhxf/messagePush/index.vue
  45. 2 3
      src/pages/common/alarmMessage/index.vue
  46. 4 4
      src/pages/common/appMessage/index.vue
  47. 4 17
      src/pages/common/customManage/index.vue
  48. 13 88
      src/pages/common/invoicing/index.vue
  49. 7 42
      src/pages/common/repairReport/index.vue
  50. 0 1
      src/pages/common/repairReport/record.vue
  51. 42 0
      src/pages/common/searchSelect/index.vue
  52. 1 1
      src/pages/common/square/index.vue
  53. 53 69
      src/pages/index.vue
  54. 35 30
      src/pages/info.vue
  55. 7 7
      src/pages/info/fireBashDetail/fireBashDetail.vue
  56. 7 12
      src/pages/login.vue
  57. 14 114
      src/pages/mine.vue
  58. 1 1
      src/pages/mine/about/index.vue
  59. 1 1
      src/pages/mine/help/index.vue
  60. 0 1
      src/pages/mine/secure/loginLog/index.vue
  61. 54 30
      src/static/iconfont/iconfont.css
  62. BIN
      src/static/iconfont/iconfont.ttf
  63. BIN
      src/static/images/data.png
  64. 121 265
      src/static/scss/colorui.css
  65. 1 1
      src/static/scss/index.scss
  66. 0 66
      src/static/scss/public.scss
  67. 41 0
      src/static/scss/sidebar.scss
  68. 79 33
      src/store/modules/setting.js

+ 0 - 10
src/App.vue

@@ -139,14 +139,4 @@ uni-page-refresh {
   font-size: $uni-font-size-lg;
   font-weight: bold;
 }
-
-//uview-plus导航栏title样式
-:deep(.u-navbar__content__title) {
-  font-size: $uni-font-size-lg;
-  font-weight: bold;
-}
-
-:deep(.u-nav-slot .u-navbar__content__title) {
-  font-size: 18px;
-}
 </style>

+ 24 - 8
src/components/oa-calendar/uni-calendar.vue

@@ -24,14 +24,14 @@
 
         <view style="margin: auto"></view>
 
-        <view style="display: flex">
-          <view style="margin: 0px 10px">
-            <span style="margin-right: 5px">巡检</span>
-            <span style="color: #00cdac">{{ JSON.stringify(currentDateList) === "{}" ? 0 : currentDateList.patrolledCount }}</span>
+        <view class="uni-calendar__header-right">
+          <view class="item">
+            <span class="item_title">巡检</span>
+            <span class="item_cont" style="color: #00cdac">{{ JSON.stringify(currentDateList) === "{}" ? 0 : currentDateList.patrolledCount }}</span>
           </view>
-          <view class="margin-left-xs">
-            <span style="margin-right: 5px">漏检</span>
-            <span style="color: #f07d28">{{ JSON.stringify(currentDateList) === "{}" ? 0 : currentDateList.undetectedCount }}</span>
+          <view class="item">
+            <span class="item_title">漏检</span>
+            <span class="item_cont" style="color: #f07d28">{{ JSON.stringify(currentDateList) === "{}" ? 0 : currentDateList.undetectedCount }}</span>
           </view>
         </view>
       </view>
@@ -475,7 +475,8 @@ $uni-text-color-grey: #999;
   flex-direction: row;
   // justify-content: center;
   align-items: center;
-  height: 50px;
+  // height: 50px;
+  line-height: 40px;
   padding: 0 15px;
   border-bottom-color: $uni-border-color;
   border-bottom-style: solid;
@@ -520,6 +521,21 @@ $uni-text-color-grey: #999;
   color: $uni-text-color;
 }
 
+.uni-calendar__header-right {
+  display: flex;
+
+  .item {
+    font-size: $uni-font-size-base;
+    .item_title {
+      margin-right: 5px;
+    }
+  }
+
+  .item + .item {
+    margin-left: 10px;
+  }
+}
+
 .uni-calendar__header-btn-box {
   /* #ifndef APP-NVUE */
   display: flex;

+ 18 - 9
src/components/oa-scroll/index.vue

@@ -32,11 +32,14 @@
     </slot>
     <slot name="default"> </slot>
     <slot name="bottomLoading">
-      <div class="bottoBox" :style="`margin-top:20px;padding-bottom:${lowerThreshold + 'px'}`" v-if="refresherLoad">
-        <span v-show="total != 0 && refresherLoadTitle">
+      <div class="bottoBox" :style="`margin-top:20px;padding-bottom:${lowerThreshold + 'px'}`">
+        <span v-show="total != 0 && refresherLoad && refresherLoadTitle">
           {{ pageSize >= total ? "没有更多啦~" : isScrolltolower }}
         </span>
-        <span v-show="total == 0"> 暂无数据 </span>
+        <span v-show="total == 0 && refresherEnabled && refresherEnabledTitle && !triggered">
+          <image style="width: 160px; height: 160px" src="@/static/images/data.png"></image>
+          <view>暂无数据</view>
+        </span>
       </div>
     </slot>
   </scroll-view>
@@ -57,7 +60,6 @@ const props = defineProps({
     type: Number,
     default: 0,
   },
-
   //设置滚动条位置
   scrollTop: {
     type: String,
@@ -93,6 +95,11 @@ const props = defineProps({
     type: Boolean,
     default: false,
   },
+  //是否显示下拉刷新文字
+  refresherEnabledTitle: {
+    type: Boolean,
+    default: true,
+  },
   //距离顶部下拉刷新距离
   refresherThreshold: {
     type: Number,
@@ -115,7 +122,8 @@ const props = defineProps({
   },
 });
 
-const { pageSize, total, scrollTop, customClass, customStyle, refresherLoad, lowerThreshold, refresherEnabled, refresherThreshold, refresherDefaultStyle, refresherBackground } = toRefs(props);
+const { pageSize, total, scrollTop, customClass, customStyle, refresherLoad, lowerThreshold, refresherEnabled, refresherEnabledTitle, refresherThreshold, refresherDefaultStyle, refresherBackground } =
+  toRefs(props);
 
 const defaultArray = reactive({
   triggered: false,
@@ -190,8 +198,8 @@ onLoad((option) => {});
 .topBox .title {
   position: relative;
   margin-left: 35rpx;
-  color: #909399;
-  font-size: 0.75rem;
+  color: #c0c4cc;
+  font-size: 14px;
 }
 
 @keyframes color-change {
@@ -207,8 +215,9 @@ onLoad((option) => {});
 .bottoBox {
   display: flex;
   align-items: center;
+  text-align: center;
   justify-content: center;
-  color: #909399;
-  font-size: 0.75rem;
+  color: #c0c4cc;
+  font-size: 14px;
 }
 </style>

+ 111 - 0
src/components/oa-weather/index.vue

@@ -0,0 +1,111 @@
+<template>
+  <!-- 天气 -->
+  <view class="app-common-window bg-white radius shadow-default" v-if="state.weatherData.length != 0">
+    <view class="weather radius">
+      <view class="weather-header">
+        <view class="iconfont oaIcon-address"></view>
+        <view class="weather-header-location">{{ state.weatherData[0].location || "上海" }}</view>
+        <view class="weather-header-day">今天</view>
+        <view class="weather-header-text">{{ state.weatherData[0].text || "未知" }}</view>
+      </view>
+      <view class="weather-center">
+        <view class="weather-center-temperature">{{ state.weatherData[0].today.low + "/" + state.weatherData[0].today.high || "0℃" }}</view>
+        <image class="weather-center-image" :src="`${'/static/icons/white/' + state.weatherData[0].code.now + '.png'}`" mode="heightFix"></image>
+      </view>
+    </view>
+  </view>
+</template>
+<script setup>
+import { onReady, onLoad, onShow, onNavigationBarButtonTap, onPullDownRefresh, onReachBottom } from "@dcloudio/uni-app";
+import { ref, onMounted, inject, shallowRef, reactive, getCurrentInstance, watchEffect, toRefs, toRef, watch } from "vue";
+
+const emit = defineEmits(["load", "refresh"]);
+const props = defineProps({});
+
+const state = reactive({
+  weatherData: [],
+});
+
+/**
+ * @获取天气信息
+ */
+function getWeather(string) {
+  uni.request({
+    url: `https://widget-v3.seniverse.com/api/weather/7b8a7d89-f01d-4b14-bdec-5ae0b82c857f?unit=c&language=zh-Hans&location=${string}`,
+    success: (res) => {
+      if (res.statusCode == 200) {
+        state.weatherData = res.data.results[0].data;
+      } else {
+        console.log("获取天气信息失败");
+      }
+    },
+    fail: (err) => {
+      console.log("获取天气信息失败", err);
+    },
+  });
+}
+
+onLoad((option) => {});
+
+onShow(() => {});
+
+// 暴露变量
+defineExpose({
+  getWeather,
+});
+</script>
+
+<style lang="scss" scoped>
+.app-common-window {
+  position: relative;
+  margin-top: -20px;
+  margin: -20px 20upx 20upx 20upx;
+  z-index: 50;
+
+  .weather {
+    padding: 10px;
+    background-image: url("@/static/images/index/weather.png");
+    background-size: 100% 100%;
+    background-position: center center;
+    background-repeat: no-repeat;
+
+    .weather-header {
+      display: flex;
+      margin-bottom: 10px;
+      font-size: 14px;
+
+      &-location {
+        margin-right: 15px;
+      }
+
+      &-day {
+        margin: 0 auto 0 0;
+      }
+
+      &-text {
+        margin: 0;
+      }
+
+      .iconfont {
+        margin: auto 5px auto 0;
+        color: #0c83fa;
+      }
+    }
+
+    .weather-center {
+      display: flex;
+
+      &-temperature {
+        margin: auto auto auto 0;
+        font-size: 18px;
+        font-weight: 600;
+      }
+
+      &-image {
+        margin: 0 0 0 0;
+        height: 30px !important;
+      }
+    }
+  }
+}
+</style>

+ 1 - 1
src/components/zzlb-mutiselect/zzlb-mutiselect.vue

@@ -3,7 +3,7 @@
     <view class="flex flex-wrap">
       <view v-for="(item, index) in items" :key="index" class="cu-tag bg-cyan radius">
         <slot name="default" v-bind:item="item">{{ item }}</slot>
-        <text class="margin-left line-blue cuIcon-close round bg-red" @click="onremove(index)"></text>
+        <text class="ml15 line-blue cuIcon-close round bg-red" @click="onremove(index)"></text>
       </view>
       <view class="flex">
         <uni-easyinput type="text" v-model="query" placeholder="输入..." prefixIcon="search" @input="onshuru" @click="onquery" @keyup="onquery" style="width: 60px;" />

+ 2 - 0
src/main.js

@@ -24,6 +24,7 @@ import oaDropdown from "@/components/oa-dropdown/index"
 import oaUpgrade from "@/components/oa-upgrade/index"
 import oaTransForm from "@/components/oa-transForm/index"
 import oaTtsAudio from "@/components/oa-ttsAudio/index"
+import oaWeather from "@/components/oa-weather/index"
 
 export function createApp() {
   const app = createSSRApp(App);
@@ -40,6 +41,7 @@ export function createApp() {
   app.component('oa-upgrade', oaUpgrade)
   app.component('oa-transForm', oaTransForm)
   app.component('oa-ttsAudio', oaTtsAudio)
+  app.component('oa-weather', oaWeather)
 
   // 挂载全局json导出
   app.component("downloadExcel", JsonExcel);

+ 18 - 24
src/pages.json

@@ -177,6 +177,18 @@
             "navigationBarTitleText": "NFC读取",
             "enablePullDownRefresh": false
           }
+        },
+        {
+          "path": "searchSelect/index",
+          "style": {
+            "navigationBarTitleText": "搜索",
+            "navigationStyle": "custom",
+            "enablePullDownRefresh": false,
+            "app-plus": {
+              "bounce": "none",
+              "titleNView": false
+            }
+          }
         }
       ]
     },
@@ -349,20 +361,11 @@
           "path": "xunJian/collect/index",
           "style": {
             "navigationBarTitleText": "点位采集",
+            "navigationStyle": "custom",
             "enablePullDownRefresh": false,
             "app-plus": {
-              "titleNView": {
-                "buttons": [
-                  {
-                    "text": "采集记录",
-                    "fontSize": "12px",
-                    // "redDot": true,
-                    "float": "right",
-                    "fontSrc": "/static/iconfont/iconfont.ttf",
-                    "width": "auto"
-                  }
-                ]
-              }
+              "bounce": "none",
+              "titleNView": false
             }
           }
         },
@@ -377,20 +380,11 @@
           "path": "xunJian/collect/components/collectRecord",
           "style": {
             "navigationBarTitleText": "采集记录",
+            "navigationStyle": "custom",
             "enablePullDownRefresh": false,
             "app-plus": {
-              "titleNView": {
-                "buttons": [
-                  {
-                    "text": "\ue7c7",
-                    "fontSize": "18px",
-                    // "redDot": true,
-                    "float": "right",
-                    "fontSrc": "/static/iconfont/iconfont.ttf",
-                    "width": "auto"
-                  }
-                ]
-              }
+              "bounce": "none",
+              "titleNView": false
             }
           }
         },

+ 4 - 4
src/pages/business/analyse/index.vue

@@ -4,7 +4,7 @@
       <u-image src="@/static/images/analyse/analyse-bg.png" width="100%" height="273rpx" :showLoading="false" :fade="false"></u-image>
     </view>
     <view class="cu-list menu-avatar padding-lr-sm padding-top-sm" style="height: calc(100% - 8.53125rem)">
-      <view class="cu-item margin-bottom-sm" @tap="goMonthReport()">
+      <view class="cu-item mb10" @tap="goMonthReport()">
         <view class="cu-avatar">
           <image class="image-bg" src="@/static/images/analyse/yb-icon.png" />
         </view>
@@ -13,11 +13,11 @@
         </view>
         <view class="nav-right">
           <view class="text-grey">
-            <text class="icon iconfont margin-right-xs margin-left-lg">&#xe629;</text>
+            <text class="icon iconfont mr5 ml20">&#xe629;</text>
           </view>
         </view>
       </view>
-      <view class="cu-item margin-bottom-sm" @tap="goBuildingCheck()">
+      <view class="cu-item mb10" @tap="goBuildingCheck()">
         <view class="cu-avatar">
           <image class="image-bg" src="@/static/images/analyse/build-icon.png" />
         </view>
@@ -26,7 +26,7 @@
         </view>
         <view class="nav-right">
           <view class="text-grey">
-            <text class="icon iconfont margin-right-xs margin-left-lg">&#xe629;</text>
+            <text class="icon iconfont mr5 ml20">&#xe629;</text>
           </view>
         </view>
       </view>

+ 5 - 13
src/pages/business/common/fastMail/index.vue

@@ -22,14 +22,14 @@
           <view class="content-area-top menu-item"> </view>
           <view class="content-area-row_wrap menu-item">
             <view class="content-area-row_wrap-view" style="margin-right: auto">
-              <view class="mr5" style="font-weight: 600">{{ data.pickupCode }}</view>
+              <view style="font-weight: 600; margin-right: 5px">{{ data.pickupCode }}</view>
               <view class="iconfont oaIcon-copy menu-item-icon" @click="copy(data.pickupCode)"> </view>
             </view>
             <view class="content-area-row_wrap-view" style="min-width: auto; max-width: 50%">
               {{ data.pickupAddress }}
             </view>
             <view class="content-area-row_wrap-view" style="margin-right: auto">
-              <image class="mr5" style="width: 15px; height: 15px; margin: auto 0" mode="widthFix" src="@/static/images/common/ydkd.png" />
+              <image style="width: 15px; height: 15px; margin: auto 5px auto 0" mode="widthFix" src="@/static/images/common/ydkd.png" />
               韵达快递:{{ data.packNo }}
             </view>
             <view class="content-area-row_wrap-view" style="min-width: auto">
@@ -47,14 +47,14 @@
           <view class="content-area-top menu-item"> </view>
           <view class="content-area-row_wrap menu-item">
             <view class="content-area-row_wrap-view" style="margin-right: auto">
-              <view class="mr5" style="font-weight: 600">{{ data.pickupCode }}</view>
+              <view style="font-weight: 600; margin-right: 5px">{{ data.pickupCode }}</view>
               <view class="iconfont oaIcon-copy menu-item-icon" @click="copy(data.pickupCode)"> </view>
             </view>
             <view class="content-area-row_wrap-view" style="min-width: auto; max-width: 50%">
               {{ data.pickupAddress }}
             </view>
             <view class="content-area-row_wrap-view" style="margin-right: auto">
-              <image class="mr5" style="width: 15px; height: 15px; margin: auto 0" mode="widthFix" src="@/static/images/common/ydkd.png" />
+              <image style="width: 15px; height: 15px; margin: auto 5px auto 0" mode="widthFix" src="@/static/images/common/ydkd.png" />
               韵达快递:{{ data.packNo }}
             </view>
             <view class="content-area-row_wrap-view" style="min-width: auto">
@@ -86,14 +86,7 @@ const current = ref(1);
 const total = ref(0);
 
 const data = reactive({
-  tabsList: [
-    {
-      name: "待取件",
-    },
-    {
-      name: "已取件",
-    },
-  ],
+  tabsList: [{ name: "待取件" }, { name: "已取件" }],
   tabsCurrent: 0,
 });
 
@@ -163,7 +156,6 @@ function load() {
  */
 function refresh() {
   pageSize.value = 20;
-  total.value = 0;
   init();
 }
 

+ 1 - 2
src/pages/business/common/videoMonitor/index.vue

@@ -18,7 +18,7 @@
         <u-grid :border="true">
           <u-grid-item v-for="(base, index) in dataList" :key="index" @click="handleToDetails(base.productCode, base.productName)">
             <u-badge type="primary" max="9999" :value="base.total" :showZero="true" :absolute="true" :offset="[10, 10, 0, 0]"></u-badge>
-            <image class="mb15" style="width: 40px; height: 40px; margin-top: 35px" :src="base.typeImg" mode="aspectFill"></image>
+            <image class="mb15 mt35" style="width: 40px; height: 40px" :src="base.typeImg" mode="aspectFill"></image>
             <text class="mb15 grid-text text-ellipsis">{{ base.productName }}</text>
           </u-grid-item>
         </u-grid>
@@ -82,7 +82,6 @@ function load() {
  */
 function refresh() {
   pageSize.value = 20;
-  total.value = 0;
   init();
 }
 

+ 10 - 36
src/pages/business/common/videoMonitor/videoDetail.vue

@@ -1,20 +1,13 @@
 <template>
   <scroll-view class="scroll-height" :scroll-y="true" :data-theme="'theme-' + proxy.$settingStore.themeColor.name">
     <view class="alarmDetails-container">
- 
-
       <view class="bg-white p15 mb15">
-        <uni-section class="block mb10" :title="'设备名称:'+deviceName" type="line"></uni-section>
+        <uni-section class="block mb10" :title="'设备名称:' + deviceName" type="line"></uni-section>
         <!-- <view class="mb15">{{ deviceName}}</view> -->
-        <view class="tableType3 padding-0">
-          
-
-          <video id="myVideo" :src="videoUrl" style="width:100%" loop="loop" autoplay="autoplay"></video>
-
+        <view class="tableType3 p0">
+          <video id="myVideo" :src="videoUrl" style="width: 100%" loop="loop" autoplay="autoplay"></video>
         </view>
       </view>
-
-     
     </view>
   </scroll-view>
 </template>
@@ -30,40 +23,21 @@ const { proxy } = getCurrentInstance();
 const useStore = useStores();
 const commonStore = commonStores();
 
-
 const dataArray = ref({});
 const dataList = ref([
-  {
-    title: "报修日期",
-    value: "",
-  },
-  {
-    title: "项目名称",
-    value: "",
-  },
-  {
-    title: "报修人",
-    value: "",
-  },
-  {
-    title: "报修电话",
-    value: "",
-  },
-  {
-    title: "问题描述",
-    value: "",
-  },
-  {
-    title: "报修地址",
-    value: "",
-  },
+  { title: "报修日期", value: "" },
+  { title: "项目名称", value: "" },
+  { title: "报修人", value: "" },
+  { title: "报修电话", value: "" },
+  { title: "问题描述", value: "" },
+  { title: "报修地址", value: "" },
 ]);
 
 const deviceName = ref("");
 const pageSize = ref(20);
 const current = ref(1);
 const total = ref(0);
-const videoUrl=ref('http://devimages.apple.com/iphone/samples/bipbop/bipbopall.m3u8');
+const videoUrl = ref("http://devimages.apple.com/iphone/samples/bipbop/bipbopall.m3u8");
 
 /**
  * @页面初始化

+ 16 - 33
src/pages/business/common/videoMonitor/videoList.vue

@@ -19,26 +19,21 @@
   >
     <template #default>
       <view class="menu-list m0">
-        <view class="list-cell list-cell-arrow" style=" line-height: 25px" v-for="(base, index) in dataList" :key="index" @click="handleToDetails(base)">
+        <view class="list-cell list-cell-arrow" style="line-height: 25px" v-for="(base, index) in dataList" :key="index" @click="handleToDetails(base)">
           <view class="menu-item">
-              <image  v-if="base.deviceStatus == 1" class="image-bg" style="width: 80rpx; height: 80rpx; margin: auto 10px auto 0" src="@/static/images/videoMonitor/video-icon-on.png"></image>
-              <image  v-if="base.deviceStatus == 2" class="image-bg" style="width: 80rpx; height: 80rpx; margin: auto 10px auto 0" src="@/static/images/videoMonitor/video-icon-off.png"></image>
-              <view style="width: calc(100% - 51px); display: flex; justify-content: space-between; padding-right: 10px">
-                <view class="deviceHeader">
-                  <view class="deviceName text-ellipsis">{{ base.deviceName }}</view>
-
-                </view>
-                <view class="" v-if="base.deviceStatus == 1" style="color: #16bf00;margin-right:10px"> 在线 </view>
-                  <view class="" v-if="base.deviceStatus == 2" style="color: #333;margin-right:10px"> 离线 </view>
-               
-              </view>
-
-              <view>
-               
+            <image v-if="base.deviceStatus == 1" class="image-bg" style="width: 80rpx; height: 80rpx; margin: auto 10px auto 0" src="@/static/images/videoMonitor/video-icon-on.png"></image>
+            <image v-if="base.deviceStatus == 2" class="image-bg" style="width: 80rpx; height: 80rpx; margin: auto 10px auto 0" src="@/static/images/videoMonitor/video-icon-off.png"></image>
+            <view style="width: calc(100% - 51px); display: flex; justify-content: space-between; padding-right: 10px">
+              <view class="deviceHeader">
+                <view class="deviceName text-ellipsis">{{ base.deviceName }}</view>
               </view>
+              <view class="" v-if="base.deviceStatus == 1" style="color: #16bf00; margin-right: 10px"> 在线 </view>
+              <view class="" v-if="base.deviceStatus == 2" style="color: #333; margin-right: 10px"> 离线 </view>
             </view>
-          
-          
+
+            <view> </view>
+          </view>
+
           <!-- <view class="content-area-top menu-item">
        
             <view class="content-area-top-status" v-if="base.deviceStatus == 1" style="background-color: #23dedc"> 在线 </view>
@@ -65,18 +60,9 @@ const { proxy } = getCurrentInstance();
 const commonStore = commonStores();
 
 const tabsList = ref([
-  {
-    name: "全部",
-    value: "",
-  },
-  {
-    name: "受理中",
-    value: 1,
-  },
-  {
-    name: "处理完成",
-    value: 2,
-  },
+  { name: "全部", value: "" },
+  { name: "受理中", value: 1 },
+  { name: "处理完成", value: 2 },
 ]);
 const tabsCurrent = ref(1);
 
@@ -114,10 +100,8 @@ function selectListApi() {
  */
 function handleToDetails(e) {
   proxy.$tab.navigateTo(`/pages/business/videoMonitor/videoDetail?deviceName=${e.deviceName}`);
-  if(e.deviceStatus==1){
-   
+  if (e.deviceStatus == 1) {
   }
-  
 }
 
 /**
@@ -133,7 +117,6 @@ function load() {
  */
 function refresh() {
   pageSize.value = 20;
-  total.value = 0;
   init();
 }
 

+ 8 - 30
src/pages/business/fireIot/alarmManage/alarmDetails/index.vue

@@ -17,8 +17,7 @@
 
       <view class="bg-white p15 mb15">
         <uni-section class="block mb10" title="基本信息" type="line"></uni-section>
-
-        <view class="tableType3 padding-0">
+        <view class="tableType3 p0">
           <u-row v-for="da in dataList" :key="da">
             <u-col span="4">
               <view style="text-align: right; padding: 0px 5px 0px 5px">{{ da.title }}</view>
@@ -90,26 +89,11 @@ const { proxy } = getCurrentInstance();
 
 const dataArray = ref({});
 const dataList = ref([
-  {
-    title: "设备名称",
-    value: "",
-  },
-  {
-    title: "设备地址",
-    value: "",
-  },
-  {
-    title: "告警等级",
-    value: "",
-  },
-  {
-    title: "告警信息",
-    value: "",
-  },
-  {
-    title: "告警时间",
-    value: "",
-  },
+  { title: "设备名称", value: "" },
+  { title: "设备地址", value: "" },
+  { title: "告警等级", value: "" },
+  { title: "告警信息", value: "" },
+  { title: "告警时间", value: "" },
 ]);
 
 const deviceName = ref("");
@@ -121,14 +105,8 @@ const total = ref(0);
 const handleContent = ref("");
 const handleRange = ref(1);
 const handleRangeList = ref([
-  {
-    label: "单个处理",
-    value: 1,
-  },
-  {
-    label: "批量处理",
-    value: 0,
-  },
+  { label: "单个处理", value: 1 },
+  { label: "批量处理", value: 0 },
 ]);
 
 /**

+ 9 - 19
src/pages/business/fireIot/alarmManage/alarmDetailsList/index.vue

@@ -19,16 +19,16 @@
   >
     <template #default>
       <view class="alarmDetailsList-container">
-        <view class="menu-list margin-0">
+        <view class="menu-list m0">
           <view class="list-cell list-cell-arrow" v-for="(base, index) in dataList" :key="index" @click="handleToDetails(base)">
             <view class="menu-item" style="font-size: 13px; flex-flow: row wrap">
-              <view style="min-width: 80%; margin-bottom: 5px; color: #909399"> {{ base.alarmTime }}</view>
-              <view style="min-width: 20%; margin-bottom: 5px; color: #909399; text-align: right; padding-right: 15px"> {{ base.alarmGrade }}级</view>
-              <view style="min-width: 80%; margin-bottom: 5px; color: #909399">{{ base.deviceName }}</view>
-              <view style="min-width: 20%; margin-bottom: 5px; text-align: right; padding-right: 15px" :style="`color:${base.handleStatus == 1 ? '#16bf00' : 'red'}`">
+              <view class="mb5" style="min-width: 80%; color: #909399"> {{ base.alarmTime }}</view>
+              <view class="mb5 pr15" style="min-width: 20%; color: #909399; text-align: right"> {{ base.alarmGrade }}级</view>
+              <view class="mb5" style="min-width: 80%; color: #909399">{{ base.deviceName }}</view>
+              <view class="mb5 pr15" style="min-width: 20%; text-align: right" :style="`color:${base.handleStatus == 1 ? '#16bf00' : 'red'}`">
                 {{ base.handleStatus == 1 ? "已处理" : "未处理" }}
               </view>
-              <view style="min-width: 50%; padding-right: 15px">{{ base.alarmContent }}</view>
+              <view class="pr15" style="min-width: 50%">{{ base.alarmContent }}</view>
             </view>
           </view>
         </view>
@@ -48,18 +48,9 @@ const { proxy } = getCurrentInstance();
 const commonStore = commonStores();
 
 const tabsList = ref([
-  {
-    name: "全部",
-    value: "",
-  },
-  {
-    name: "未处理",
-    value: 0,
-  },
-  {
-    name: "已处理",
-    value: 1,
-  },
+  { name: "全部", value: "" },
+  { name: "未处理", value: 0 },
+  { name: "已处理", value: 1 },
 ]);
 const tabsCurrent = ref(0);
 
@@ -119,7 +110,6 @@ function load() {
  */
 function refresh() {
   pageSize.value = 20;
-  total.value = 0;
   init();
 }
 

+ 1 - 2
src/pages/business/fireIot/alarmManage/index.vue

@@ -18,7 +18,7 @@
         <u-grid :border="true">
           <u-grid-item v-for="(base, index) in dataList" :key="index" @click="handleToDetails(base.productCode, base.productName)">
             <u-badge type="primary" max="9999" :value="base.total" :showZero="true" :absolute="true" :offset="[10, 10, 0, 0]"></u-badge>
-            <image class="mb15" style="width: 40px; height: 40px; margin-top: 35px" :src="base.typeImg" mode="aspectFill"></image>
+            <image class="mb15 mt35" style="width: 40px; height: 40px" :src="base.typeImg" mode="aspectFill"></image>
             <text class="mb15 grid-text text-ellipsis">{{ base.productName }}</text>
           </u-grid-item>
         </u-grid>
@@ -82,7 +82,6 @@ function load() {
  */
 function refresh() {
   pageSize.value = 20;
-  total.value = 0;
   init();
 }
 

+ 1 - 2
src/pages/business/fireIot/deviceManage/components/deviceDetails.vue

@@ -17,8 +17,7 @@
 
       <view class="bg-white p15 mb15">
         <uni-section class="block mb10" title="基本信息" type="line"></uni-section>
-
-        <view class="tableType3 padding-0">
+        <view class="tableType3 p0">
           <u-empty v-if="dataList.length <= 0" text="暂无数据" mode="data" icon="http://cdn.uviewui.com/uview/empty/data.png"> </u-empty>
 
           <u-row v-for="po in dataList" :key="po">

+ 1 - 2
src/pages/business/fireIot/deviceManage/components/deviceDetailsList.vue

@@ -36,7 +36,7 @@
           </template>
         </oa-dropdown>
 
-        <view class="menu-list margin-0">
+        <view class="menu-list m0">
           <view class="list-cell list-cell-arrow" v-for="(base, index) in dataList" :key="index" @click="handleToDevice(base)">
             <view class="menu-item">
               <image class="image-bg" style="width: 80rpx; height: 80rpx; margin: auto 10px auto 0" src="@/static/images/deviceManage/1.png"></image>
@@ -146,7 +146,6 @@ function load() {
 function refresh() {
   deviceName.value = "";
   pageSize.value = 20;
-  total.value = 0;
   init();
 }
 

+ 1 - 2
src/pages/business/fireIot/deviceManage/index.vue

@@ -18,7 +18,7 @@
         <u-grid :border="true">
           <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="mb15" style="width: 40px; height: 40px; margin-top: 35px" :src="base.typeImg" mode="aspectFill"></image>
+            <image class="mb15 mt35" style="width: 40px; height: 40px" :src="base.typeImg" mode="aspectFill"></image>
             <view class="mb15 text-ellipsis" style="width: 100%; text-align: center">{{ base.productName }}</view>
           </u-grid-item>
         </u-grid>
@@ -80,7 +80,6 @@ function load() {
  */
 function refresh() {
   pageSize.value = 20;
-  total.value = 0;
   init();
 }
 

+ 7 - 20
src/pages/business/fireIot/facilitiesManage/facilitiesDetails.vue

@@ -19,8 +19,7 @@
 
       <view class="bg-white p15 mb15">
         <uni-section class="block mb10" title="基本信息" type="line"></uni-section>
-
-        <view class="tableType3 padding-0">
+        <view class="tableType3 p0">
           <u-empty v-if="dataList.length <= 0" text="暂无数据" mode="data" icon="http://cdn.uviewui.com/uview/empty/data.png"> </u-empty>
 
           <u-row v-for="po in dataList" :key="po">
@@ -37,7 +36,7 @@
       <view class="bg-white p15 mb15">
         <uni-section class="block mb10" title="关联设备" type="line"></uni-section>
 
-        <view class="flex margin-bottom-sm" style="height: 35px; line-height: 35px">
+        <view class="flex mb10" style="height: 35px; line-height: 35px">
           <u-input v-model="deviceId" placeholder="设备编号" @change="deviceInfoApi()" disabledColor="transparent" prefixIcon="search" prefixIconStyle="font-size: 22px;color: #909399" clearable />
         </view>
 
@@ -76,7 +75,7 @@
       <view class="bg-white p15 mb15">
         <uni-section class="block mb10" title="关联建筑" type="line"></uni-section>
 
-        <view class="flex margin-bottom-sm" style="height: 35px; line-height: 35px">
+        <view class="flex mb10" style="height: 35px; line-height: 35px">
           <u-input v-model="buildNum" placeholder="建筑编号" @change="buildInfoApi()" disabledColor="transparent" prefixIcon="search" prefixIconStyle="font-size: 22px;color: #909399" clearable />
         </view>
 
@@ -129,22 +128,10 @@ const deviceId = ref(undefined);
 const buildNum = ref(undefined);
 const dataArray = ref({});
 const dataList = ref([
-  {
-    title: "设施类型",
-    value: "",
-  },
-  {
-    title: "设施编号",
-    value: "",
-  },
-  {
-    title: "设施位置",
-    value: "",
-  },
-  {
-    title: "创建时间",
-    value: "",
-  },
+  { title: "设施类型", value: "" },
+  { title: "设施编号", value: "" },
+  { title: "设施位置", value: "" },
+  { title: "创建时间", value: "" },
 ]);
 
 const dataList1 = ref([]);

+ 1 - 2
src/pages/business/fireIot/facilitiesManage/facilitiesDetailsList.vue

@@ -28,7 +28,7 @@
           <view class="ml10" style="margin-top: auto; margin-bottom: auto; white-space: nowrap" @click="init()">筛选</view>
         </view>
 
-        <view class="menu-list margin-0">
+        <view class="menu-list m0">
           <view class="list-cell list-cell-arrow" v-for="(base, index) in dataList" :key="index" @click="handleToDevice(base.id)">
             <view class="menu-item">
               <view class="title">{{ base.facilityName }}</view>
@@ -104,7 +104,6 @@ function load() {
 function refresh() {
   facilityName.value = "";
   pageSize.value = 20;
-  total.value = 0;
   init();
 }
 

+ 8 - 7
src/pages/business/fireIot/facilitiesManage/index.vue

@@ -4,6 +4,7 @@
     :refresherLoad="false"
     :refresherLoadTitle="false"
     :refresherEnabled="true"
+    :refresherEnabledTitle="false"
     :refresherDefaultStyle="'none'"
     :refresherThreshold="44"
     :refresherBackground="'#f5f6f7'"
@@ -11,20 +12,20 @@
     :data-theme="'theme-' + proxy.$settingStore.themeColor.name"
   >
     <template #default>
-      <view class="flex padding-tb-sm bg-white">
-        <view class="padding-lr-sm text-center" style="width: 50%">设施类型:{{ typeNum || 0 }}</view>
+      <view class="flex ptb10 bg-white">
+        <view class="plr10 text-center" style="width: 50%">设施类型:{{ typeNum || 0 }}</view>
         <view class="divider-default"></view>
-        <view class="padding-lr-sm text-center" style="width: 50%">设施总数:{{ facilityNum || 0 }}</view>
+        <view class="plr10 text-center" style="width: 50%">设施总数:{{ facilityNum || 0 }}</view>
       </view>
 
-      <view class="flex bg-white margin-lr-sm margin-top-sm padding-sm shadow-default radius" v-for="(data, index) in dataList" :key="index">
-        <view class="margin-right-sm" style="margin-top: auto; margin-bottom: auto" @click="handleToDevice(data.id, data.typeName)">
+      <view class="flex bg-white mlr10 mt10 p10 shadow-default radius" v-for="(data, index) in dataList" :key="index">
+        <view class="mr10" style="margin-top: auto; margin-bottom: auto" @click="handleToDevice(data.id, data.typeName)">
           <image style="width: 40px" :src="data.typeImg ? data.typeImg : '/static/images/404.png'" mode="widthFix"></image>
         </view>
 
         <view style="width: 100%" @click="handleToDevice(data.typeCode, data.typeName)">
-          <view class="flex margin-bottom-xl">
-            <view class="font30 text-bold">{{ data.typeName }}</view>
+          <view class="flex mb25">
+            <view class="font15 text-bold">{{ data.typeName }}</view>
             <view style="font-size: 14px; margin-top: auto; margin-right: auto">({{ data.typeFacilityNum || 0 }})</view>
           </view>
           <view>

+ 2 - 2
src/pages/business/fireIot/repairManage/index.vue

@@ -6,6 +6,7 @@
     :refresherLoad="true"
     :refresherLoadTitle="false"
     :refresherEnabled="true"
+    :refresherEnabledTitle="false"
     :refresherDefaultStyle="'none'"
     :refresherThreshold="44"
     :refresherBackground="'#f5f6f7'"
@@ -18,7 +19,7 @@
         <u-grid :border="true">
           <u-grid-item v-for="(base, index) in dataList" :key="index" @click="handleToDetails(base.productCode, base.productName)">
             <u-badge type="primary" max="9999" :value="base.total" :showZero="true" :absolute="true" :offset="[10, 10, 0, 0]"></u-badge>
-            <image class="mb15" style="width: 40px; height: 40px; margin-top: 35px" :src="base.typeImg" mode="aspectFill"></image>
+            <image class="mb15 pt35" style="width: 40px; height: 40px" :src="base.typeImg" mode="aspectFill"></image>
             <text class="mb15 grid-text text-ellipsis">{{ base.productName }}</text>
           </u-grid-item>
         </u-grid>
@@ -82,7 +83,6 @@ function load() {
  */
 function refresh() {
   pageSize.value = 20;
-  total.value = 0;
   init();
 }
 

+ 7 - 25
src/pages/business/fireIot/repairManage/repairDetails.vue

@@ -18,7 +18,7 @@
       <view class="bg-white p15 mb15">
         <uni-section class="block mb10" title="基本信息" type="line"></uni-section>
 
-        <view class="tableType3 padding-0">
+        <view class="tableType3 p0">
           <u-row v-for="da in dataList" :key="da">
             <u-col span="4">
               <view style="text-align: right; padding: 0px 5px 0px 5px">{{ da.title }}</view>
@@ -89,30 +89,12 @@ const useStore = useStores();
 
 const dataArray = ref({});
 const dataList = ref([
-  {
-    title: "报修日期",
-    value: "",
-  },
-  {
-    title: "项目名称",
-    value: "",
-  },
-  {
-    title: "报修人",
-    value: "",
-  },
-  {
-    title: "报修电话",
-    value: "",
-  },
-  {
-    title: "问题描述",
-    value: "",
-  },
-  {
-    title: "报修地址",
-    value: "",
-  },
+  { title: "报修日期", value: "" },
+  { title: "项目名称", value: "" },
+  { title: "报修人", value: "" },
+  { title: "报修电话", value: "" },
+  { title: "问题描述", value: "" },
+  { title: "报修地址", value: "" },
 ]);
 
 const repairCode = ref("");

+ 3 - 13
src/pages/business/fireIot/repairManage/repairDetailsList.vue

@@ -51,18 +51,9 @@ const { proxy } = getCurrentInstance();
 const commonStore = commonStores();
 
 const tabsList = ref([
-  {
-    name: "全部",
-    value: "",
-  },
-  {
-    name: "受理中",
-    value: 1,
-  },
-  {
-    name: "处理完成",
-    value: 2,
-  },
+  { name: "全部", value: "" },
+  { name: "受理中", value: 1 },
+  { name: "处理完成", value: 2 },
 ]);
 const tabsCurrent = ref(1);
 
@@ -115,7 +106,6 @@ function load() {
  */
 function refresh() {
   pageSize.value = 20;
-  total.value = 0;
   init();
 }
 

+ 2 - 8
src/pages/business/mhxf/deviceManage/index.vue

@@ -93,14 +93,8 @@ const dataList = ref([]); //设备管理数据存储
 
 const current = ref(0);
 const list = ref([
-  {
-    id: 5,
-    name: "电气火灾",
-  },
-  {
-    id: 4,
-    name: "烟感",
-  },
+  { id: 5, name: "电气火灾" },
+  { id: 4, name: "烟感" },
   {
     id: 3,
     name: "水系统",

+ 14 - 81
src/pages/business/mhxf/fireReport/components/detailed.vue

@@ -392,93 +392,26 @@ const dataList = reactive({
   content1: [],
   content2: [],
   content3: [
-    {
-      value: 1,
-      name1: "火灾报警系统",
-      name2: "存在报警未处置",
-    },
-    {
-      value: 2,
-      name1: "消防水系统",
-      name2: "存在报警未处置",
-    },
-    {
-      value: 3,
-      name1: "燃气、电气系统监测",
-      name2: "存在报警未处置",
-    },
-    {
-      value: 4,
-      name1: "组织制度情况",
-      name2: "制度不完善",
-    },
-    {
-      value: 5,
-      name1: "日常值班情况",
-      name2: "值班落实不到位",
-    },
-    {
-      value: 6,
-      name1: "预案、培训落地情况",
-      name2: "培训不到位",
-    },
-    {
-      value: 7,
-      name1: "微站实体化运行",
-      name2: "制度人员不到位",
-    },
+    { value: 1, name1: "火灾报警系统", name2: "存在报警未处置" },
+    { value: 2, name1: "消防水系统", name2: "存在报警未处置" },
+    { value: 3, name1: "燃气、电气系统监测", name2: "存在报警未处置" },
+    { value: 4, name1: "组织制度情况", name2: "制度不完善" },
+    { value: 5, name1: "日常值班情况", name2: "值班落实不到位" },
+    { value: 6, name1: "预案、培训落地情况", name2: "培训不到位" },
+    { value: 7, name1: "微站实体化运行", name2: "制度人员不到位" },
   ],
 
   content4: [
-    {
-      name1: "建筑整体指数",
-      name2: 10,
-      name3: 6,
-      name4: "-1",
-    },
-    {
-      name1: "火灾风险指数",
-      name2: 14,
-      name3: 5,
-      name4: "+5",
-    },
-    {
-      name1: "监督执法指数",
-      name2: 25,
-      name3: 1,
-      name4: "+2",
-    },
-    {
-      name1: "自主管理指数",
-      name2: 20,
-      name3: 3,
-      name4: "-1",
-    },
-    {
-      name1: "设施状况指数",
-      name2: 25,
-      name3: 8,
-      name4: "+3",
-    },
+    { name1: "建筑整体指数", name2: 10, name3: 6, name4: "-1" },
+    { name1: "火灾风险指数", name2: 14, name3: 5, name4: "+5" },
+    { name1: "监督执法指数", name2: 25, name3: 1, name4: "+2" },
+    { name1: "自主管理指数", name2: 20, name3: 3, name4: "-1" },
+    { name1: "设施状况指数", name2: 25, name3: 8, name4: "+3" },
   ],
 
   content5: [
-    {
-      name1: "火灾监测",
-      name2: "报警",
-      name3: 5,
-      name4: 2,
-      name5: 3,
-      name6: "40%",
-    },
-    {
-      name1: "消防水系统",
-      name2: "设备离线",
-      name3: 7,
-      name4: 3,
-      name5: 4,
-      name6: "42%",
-    },
+    { name1: "火灾监测", name2: "报警", name3: 5, name4: 2, name5: 3, name6: "40%" },
+    { name1: "消防水系统", name2: "设备离线", name3: 7, name4: 3, name5: 4, name6: "42%" },
   ],
 });
 

+ 31 - 49
src/pages/business/mhxf/fireReport/index.vue

@@ -13,19 +13,16 @@
     :data-theme="'theme-' + proxy.$settingStore.themeColor.name"
   >
     <template #default>
-      <view class="fireReport">
-        <view class="reportContent">
-          <view class="contentDom" v-for="(li, index) in dataList" :key="index">
-            <view style="margin: auto 10px auto 0" @click="handleSelect()">
-              <u-image src="@/static/images/fireReport/icon1.png" width="13px" height="13px"></u-image>
-            </view>
-            <view style="margin: 0 auto 0 0" @click="handleSelect(li.reportPath)">
-              <view>{{ li.reportName }}</view>
-            </view>
-            <view>
-              <view style="color: #3c9cff; cursor: pointer" @click="handleDownload(li.reportPath)">下载报告</view>
-            </view>
+      <view class="fireReport-area">
+        <view class="fireReport-area_center" v-for="(li, index) in dataList" :key="index">
+          <view class="fireReport-area_center_img" @click="handleSelect()">
+            <u-image src="@/static/images/fireReport/icon1.png" width="13px" height="13px"></u-image>
           </view>
+          <view class="fireReport-area_center_title" @click="handleSelect(li.reportPath)">
+            <view>{{ li.reportName }}</view>
+          </view>
+
+          <view class="fireReport-area_center_button" @click="handleDownload(li.reportPath)">下载报告</view>
         </view>
       </view>
     </template>
@@ -35,12 +32,8 @@
 <script setup>
 import { onReady, onLoad, onShow, onReachBottom, onNavigationBarButtonTap } from "@dcloudio/uni-app";
 import { ref, onMounted, inject, shallowRef, reactive, watchEffect, getCurrentInstance } from "vue";
-import { useStores, commonStores } from "@/store/modules/index";
-
 import { reportInfoList } from "@/api/business/mhxf/fireReport";
 
-const commonStore = commonStores(); //全局公共Store
-
 const { proxy } = getCurrentInstance();
 
 const dataRes = ref(true);
@@ -54,7 +47,6 @@ const total = ref(0);
  */
 function handleSelect(reportPath) {
   proxy.$tab.navigateTo("/pages/business/mhxf/fireReport/components/detailedPath?reportPath=" + reportPath);
-  // proxy.$tab.navigateTo("/pages/business/mhxf/fireReport/components/detailed");
 }
 
 /**
@@ -159,7 +151,6 @@ function load() {
  */
 function refresh() {
   pageSize.value = 20;
-  total.value = 0;
   reportInfoListApi();
 }
 
@@ -188,45 +179,36 @@ onMounted(() => {});
 </script>
 
 <style lang="scss">
-.fireReport {
+.fireReport-area {
   background-color: #f7f7f7;
-  .reportContent {
-    .contentDom {
-      display: flex;
-      height: 45px;
-      line-height: 45px;
-      background: #fff;
-      padding: 0 10px;
+
+  &_center {
+    display: flex;
+    height: 45px;
+    background: #fff;
+    padding: 0 10px;
+
+    &_img {
+      margin: auto 10px auto 0;
     }
 
-    > uni-view {
-      margin-bottom: 10px;
+    &_title {
+      margin: auto auto auto 0px;
     }
 
-    > uni-view:last-child {
-      margin-bottom: 0px;
+    &_button {
+      margin: auto 0px auto 0px;
+      color: #3c9cff;
+      cursor: pointer;
     }
   }
 
-  .progress-container {
-    position: fixed;
-    top: 0;
-    left: 0;
-    z-index: 99;
-    background: rgba(0, 0, 0, 0.2);
-    width: 750rpx;
-    height: 100vh;
-    display: flex;
-    align-items: center;
-    justify-content: center;
-    .progress-box {
-      background: #ffffff;
-      border-radius: 20rpx;
-      padding: 30rpx;
-      .text {
-        margin-bottom: 20rpx;
-      }
-    }
+  > uni-view {
+    margin-bottom: 10px;
+  }
+
+  > uni-view:last-child {
+    margin-bottom: 0px;
   }
 }
 </style>

+ 8 - 30
src/pages/business/mhxf/needMatter/index.vue

@@ -170,10 +170,10 @@
               @confirm="handleConfirm"
             >
               <view style="width: 100%">
-                <uni-section class="block mb10" title="图片上传:" type="line">
+                <uni-section class="block mb20" 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 mb10" title="备注:" type="line">
+                <uni-section class="block mb20" title="备注:" type="line">
                   <u--textarea v-model="textValue" placeholder="请输入内容"></u--textarea>
                 </uni-section>
               </view>
@@ -206,34 +206,12 @@ const fileList = ref([]);
 const textValue = ref("");
 
 const list = ref([
-  {
-    id: 0,
-    name: "全部",
-  },
-  {
-    id: 1,
-    name: "已接收",
-  },
-  {
-    id: 2,
-    name: "进行中",
-    badge: {
-      // isDot: true,
-      // value: 5,
-    },
-  },
-  {
-    id: 3,
-    name: "待办完成",
-  },
-  {
-    id: 4,
-    name: "审核不通过",
-  },
-  {
-    id: 5,
-    name: "审核通过",
-  },
+  { id: 0, name: "全部" },
+  { id: 1, name: "已接收" },
+  { id: 2, name: "进行中" },
+  { id: 3, name: "待办完成" },
+  { id: 4, name: "审核不通过" },
+  { id: 5, name: "审核通过" },
 ]);
 
 /**

+ 1 - 1
src/pages/business/zhaf/signIn/index.vue

@@ -18,7 +18,7 @@
           }"
           @click="handleInsert()"
         >
-          <view class="pt40 font40">{{ state.signInType === 1 ? "签到" : "签退" }}</view>
+          <view class="pt40 font20">{{ state.signInType === 1 ? "签到" : "签退" }}</view>
           <view class="mt5">{{ state.operateDate.split(" ")[1] }}</view>
         </view>
         <view class="signIn-address" v-if="state.address">

+ 1 - 10
src/pages/business/zhaf/xunJian/collect/components/collectDetail.vue

@@ -19,14 +19,7 @@
 </template>
 
 <script setup>
-import {
-  onReady,
-  onLoad,
-  onShow,
-  onPullDownRefresh, //下拉刷新
-  onReachBottom, // 上拉加载
-  onNavigationBarButtonTap,
-} from "@dcloudio/uni-app";
+import { onReady, onLoad, onShow } from "@dcloudio/uni-app";
 import { ref, onMounted, inject, shallowRef, reactive, getCurrentInstance, toRefs } from "vue";
 import { useStores, commonStores, xunJianStores } from "@/store/modules/index";
 
@@ -51,9 +44,7 @@ const rules = ref({
     message: "地点名称不能为空",
     trigger: ["blur", "change"],
   },
-
   siteNubmber: [{ required: true, message: "地点编号不能为空", trigger: "blur" }],
-
   siteDescribe: [{ min: 1, max: 30, message: "长度在 1 到 30 个字符", trigger: "blur" }],
 }); //form表单校验
 

+ 107 - 55
src/pages/business/zhaf/xunJian/collect/components/collectRecord.vue

@@ -1,50 +1,66 @@
 <template>
-  <scroll-view class="scroll-height" :scroll-y="true" :data-theme="'theme-' + proxy.$settingStore.themeColor.name">
-    <view class="example-body" v-if="show">
-      <uni-datetime-picker v-model="datetimerange" type="daterange" rangeSeparator="~" @change="confirm" />
-    </view>
-    <view v-for="(cu, index) in dataList.siteList" :key="index" class="flex bg-white p15 pt0 mb15">
-      <view class="flex mr15">
-        <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>
+  <u-navbar leftIconColor="#fff" :autoBack="false" :placeholder="true" :safeAreaInsetTop="true" :bgColor="proxy.$settingStore.themeColor.color" @leftClick="handleToBack()">
+    <template #center>
+      <view class="u-navbar__content__center__item"> 采集记录 </view>
+    </template>
+    <template #right>
+      <view class="u-navbar__content__right__item">
+        <text class="iconfont oaIcon-shaixuan" @click="handleIconClick('筛选')"></text>
       </view>
-      <view class="reportCenter">
-        <view class="centerSiteName">
-          {{ cu.siteName }}
-        </view>
+    </template>
+  </u-navbar>
+
+  <oa-scroll
+    customClass="scroll-height"
+    :total="state.total"
+    :refresherEnabled="true"
+    :refresherEnabledTitle="true"
+    :refresherDefaultStyle="'none'"
+    :refresherThreshold="44"
+    :refresherBackground="'#f5f6f7'"
+    @refresh="refresh"
+    :data-theme="'theme-' + proxy.$settingStore.themeColor.name"
+  >
+    <template #default>
+      <view v-if="show">
+        <uni-datetime-picker v-model="dateTimeRange" type="daterange" rangeSeparator="~" @change="confirm" />
+      </view>
+      <view class="collect-area bg-white" v-for="(cu, index) in state.siteList" :key="index">
+        <view class="collect-area_left">
+          <u-image style="margin: auto" width="40" height="40" src="@/static/images/xunjian/scan.png" v-if="cu.siteType == 1" shape="circle"></u-image>
 
-        <view style="font-size: 13px; color: #a1a1a1">
-          {{ cu.createTime == "" || cu.createTime == null ? "无" : cu.createTime }}
+          <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>
-      <view style="margin: auto"></view>
-      <view class="reportRight">
-        <view style="margin: auto">
-          <view class="padding-0" style="font-size: 14px; color: #a1a1a1"> 已提交 </view>
+        <view class="collect-area_center">
+          <view class="collect-area_center_title">
+            {{ cu.siteName }}
+          </view>
+
+          <view class="collect-area_center_time">
+            {{ cu.createTime == "" || cu.createTime == null ? "无" : cu.createTime }}
+          </view>
+        </view>
+        <view style="margin: auto"></view>
+        <view class="collect-area_right">
+          <view class="collect-area_right_item"> 已提交 </view>
         </view>
       </view>
-    </view>
-
-    <u-empty marginTop="20%" mode="data" icon="http://cdn.uviewui.com/uview/empty/data.png" v-if="dataList.siteList.length <= 0"> </u-empty>
-  </scroll-view>
+    </template>
+  </oa-scroll>
 </template>
 
 <script setup>
 import { onReady, onLoad, onShow, onNavigationBarButtonTap } from "@dcloudio/uni-app";
 import { ref, onMounted, inject, shallowRef, reactive, getCurrentInstance, toRefs } from "vue";
-import { xunJianStores } from "@/store/modules/index";
-
 import { siteList } from "@/api/business/mhxf/xunJian/collect.js";
 
-const xunJianStore = xunJianStores(); //全局变量值Store
-
 const { proxy } = getCurrentInstance();
 
 const show = ref(false);
-const datetimerange = ref("");
-const dataList = reactive({
+const dateTimeRange = ref("");
+const state = reactive({
   siteList: [],
+  total: 0,
   startTime: "",
   endTime: "",
 });
@@ -53,8 +69,8 @@ const dataList = reactive({
  * @日期选中事件回调
  */
 function confirm(e) {
-  dataList.startTime = e[0];
-  dataList.endTime = e[1];
+  state.startTime = e[0];
+  state.endTime = e[1];
   handleSelectApi();
 }
 
@@ -64,23 +80,39 @@ function confirm(e) {
  */
 async function handleSelectApi() {
   siteList({
-    startTime: dataList.startTime, //开始时间
-    endTime: dataList.endTime, //结束时间
+    startTime: state.startTime, //开始时间
+    endTime: state.endTime, //结束时间
   }).then((res) => {
     if (res.status == "SUCCESS") {
-      dataList.siteList = res.data;
+      state.siteList = res.data;
+      state.total = res.data.length;
     } else {
     }
   });
 }
 
-// 自定义导航事件
-onNavigationBarButtonTap((e) => {
-  if (e.float == "right") {
+/**
+ * @scrollView刷新数据
+ */
+function refresh() {
+  state.startTime = "";
+  state.endTime = "";
+  handleSelectApi();
+}
+
+//右侧按钮点击事件
+function handleIconClick(type) {
+  if (type === "筛选") {
     show.value = !show.value;
-  } else {
   }
-});
+}
+
+//返回
+function handleToBack() {
+  uni.navigateBack({
+    delta: 1, //返回到需要执行方法的页面
+  });
+}
 
 onLoad((options) => {});
 
@@ -96,26 +128,46 @@ onMounted(() => {
 });
 </script>
 
-<style lang="scss">
+<style lang="scss" scoped>
 .is-selected {
   color: #1989fa;
 }
-</style>
-
-<style scoped>
-.reportCenter {
-}
 
-.reportCenter .centerSiteName {
-  font-size: 15px;
-  margin-bottom: 5px;
-  height: 20px;
-  line-height: 20px;
+.collect-area {
   display: flex;
-}
+  padding: 15px;
+  margin-bottom: 15px;
 
-.reportRight {
-  display: flex;
-  padding: 0 15px;
+  &_left {
+    display: flex;
+    margin-right: 15px;
+  }
+
+  &_center {
+    &_title {
+      display: flex;
+      font-size: 15px;
+      margin-bottom: 5px;
+      height: 20px;
+      line-height: 20px;
+    }
+
+    &_time {
+      font-size: 13px;
+      color: #a1a1a1;
+    }
+  }
+
+  &_right {
+    display: flex;
+    padding: 0 15px;
+
+    &_item {
+      padding: 0;
+      margin: auto;
+      font-size: 14px;
+      color: #a1a1a1;
+    }
+  }
 }
 </style>

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

@@ -1,61 +1,79 @@
 <template>
-  <scroll-view class="scroll-height" :scroll-y="true" :data-theme="'theme-' + proxy.$settingStore.themeColor.name">
-    <!-- 按组使用 -->
-    <uni-swipe-action>
-      <uni-swipe-action-item
-        class="mb15"
-        v-for="(cu, index) in xunJianStore.collectDataList"
-        :key="index"
-        :right-options="options"
-        @click="bindClick($event, index)"
-        @change="swipeChange($event, index)"
-      >
-        <view class="flex bg-white p15 pt0">
-          <view class="flex mr15">
-            <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">
-            <view class="centerSiteName">
-              {{ cu.siteName }}
+  <u-navbar leftIconColor="#fff" :autoBack="false" :placeholder="true" :safeAreaInsetTop="true" :bgColor="proxy.$settingStore.themeColor.color" @leftClick="handleToBack()">
+    <template #center>
+      <view class="u-navbar__content__center__item"> 点位采集 </view>
+    </template>
+    <template #right>
+      <view class="u-navbar__content__right__item">
+        <span @click="handleIconClick('采集记录')">采集记录</span>
+      </view>
+    </template>
+  </u-navbar>
+
+  <oa-scroll
+    customClass="scroll-height"
+    :total="xunJianStore.collectDataList.length"
+    :refresherEnabled="true"
+    :refresherEnabledTitle="true"
+    :refresherDefaultStyle="'none'"
+    :refresherThreshold="44"
+    :refresherBackground="'#f5f6f7'"
+    :data-theme="'theme-' + proxy.$settingStore.themeColor.name"
+  >
+    <template #default>
+      <!-- 按组使用 -->
+      <uni-swipe-action>
+        <uni-swipe-action-item
+          v-for="(cu, index) in xunJianStore.collectDataList"
+          :key="index"
+          :right-options="options"
+          @click="bindClick($event, index)"
+          @change="swipeChange($event, index)"
+          style="margin-bottom: 15px"
+        >
+          <view class="collect-area bg-white">
+            <view class="collect-area_left">
+              <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="collect-area_center">
+              <view class="collect-area_center_title">
+                {{ cu.siteName }}
+              </view>
 
-            <view style="font-size: 13px; color: #a1a1a1">
-              {{ cu.siteTime == "" || cu.siteTime == null ? "无" : cu.siteTime }}
+              <view class="collect-area_center_time">
+                {{ cu.siteTime == "" || cu.siteTime == null ? "无" : cu.siteTime }}
+              </view>
             </view>
-          </view>
-          <view style="margin: auto"></view>
-          <view class="reportRight">
-            <view style="margin: auto" v-if="cu.swipeBool == false">
-              <view style="padding: 0; font-size: 14px; color: #409eff" @click="handleInsert(cu)"> 提交 </view>
+            <view style="margin: auto"></view>
+            <view class="collect-area_right">
+              <view v-if="cu.swipeBool == false" class="collect-area_right_item" @click="handleInsert(cu)"> 提交 </view>
             </view>
           </view>
-        </view>
-      </uni-swipe-action-item>
-    </uni-swipe-action>
-
-    <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>
-
-    <!-- 提示信息弹窗 -->
-    <uni-popup ref="message" type="message">
-      <uni-popup-message
-        :style="{
-          color: messageList.color,
-        }"
-        :type="messageList.type"
-        :message="messageList.message"
-        :duration="messageList.duration"
-      ></uni-popup-message>
-    </uni-popup>
-
-    <u-empty marginTop="20%" mode="data" icon="http://cdn.uviewui.com/uview/empty/data.png" v-if="xunJianStore.collectDataList.length <= 0"> </u-empty>
-  </scroll-view>
+        </uni-swipe-action-item>
+      </uni-swipe-action>
+
+      <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>
+
+      <!-- 提示信息弹窗 -->
+      <uni-popup ref="message" type="message">
+        <uni-popup-message
+          :style="{
+            color: messageList.color,
+          }"
+          :type="messageList.type"
+          :message="messageList.message"
+          :duration="messageList.duration"
+        ></uni-popup-message>
+      </uni-popup>
+    </template>
+  </oa-scroll>
 </template>
 
 <script setup>
@@ -147,18 +165,22 @@ function handleInsert(e) {
       distanceRange: 10, //误差范围
       // areaId: 0, //区域id
       // companyId: 0, //单位ID
-    }).then((res) => {
-      if (res.status == "SUCCESS") {
-        messageList.type = "SUCCESS";
-        messageList.message = "提交成功";
-        messageList.duration = 2000;
-        messageList.color = "#09bb07";
-        message.value.open();
-
-        xunJianStore.collectDataList.splice(xunJianStore.collectDataList.indexOf(e), 1);
-      } else {
-      }
-    });
+    })
+      .then((res) => {
+        if (res.status == "SUCCESS") {
+          messageList.type = "SUCCESS";
+          messageList.message = "提交成功";
+          messageList.duration = 2000;
+          messageList.color = "#09bb07";
+          message.value.open();
+
+          xunJianStore.collectDataList.splice(xunJianStore.collectDataList.indexOf(e), 1);
+        } else {
+        }
+      })
+      .catch((err) => {
+        proxy.$modal.msgError("当前网络环境异常,请检查网络状态!");
+      });
   }
 }
 
@@ -189,15 +211,21 @@ function swipeChange(e, index) {
   }
 }
 
-// 自定义导航事件
-onNavigationBarButtonTap((e) => {
-  if (e.float == "right") {
+//右侧按钮点击事件
+function handleIconClick(type) {
+  if (type === "采集记录") {
     uni.navigateTo({
       url: "/pages/business/zhaf/xunJian/collect/components/collectRecord",
     });
-  } else {
   }
-});
+}
+
+//返回
+function handleToBack() {
+  uni.navigateBack({
+    delta: 1, //返回到需要执行方法的页面
+  });
+}
 
 onLoad((options) => {});
 
@@ -224,23 +252,41 @@ onReady(() => {});
 onMounted(() => {});
 </script>
 
-<style lang="scss">
-.is-selected {
-  color: #1989fa;
-}
-</style>
-
-<style scoped>
-.reportCenter .centerSiteName {
-  font-size: 15px;
-  margin-bottom: 5px;
-  height: 20px;
-  line-height: 20px;
+<style lang="scss" scoped>
+.collect-area {
   display: flex;
-}
+  padding: 15px;
 
-.reportRight {
-  display: flex;
-  padding: 0 15px;
+  &_left {
+    display: flex;
+    margin-right: 15px;
+  }
+
+  &_center {
+    &_title {
+      display: flex;
+      font-size: 15px;
+      margin-bottom: 5px;
+      height: 20px;
+      line-height: 20px;
+    }
+
+    &_time {
+      font-size: 13px;
+      color: #a1a1a1;
+    }
+  }
+
+  &_right {
+    display: flex;
+    padding: 0 15px;
+
+    &_item {
+      margin: auto;
+      padding: 0;
+      font-size: 14px;
+      color: #409eff;
+    }
+  }
 }
 </style>

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

@@ -1,6 +1,6 @@
 <template>
   <scroll-view class="scroll-height" :scroll-y="true" :data-theme="'theme-' + proxy.$settingStore.themeColor.name">
-    <view class="flex mb15 bg-white" style="padding: 15px 0px 15px 15px" v-for="cu in currentDateList" :key="cu">
+    <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>
 

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

@@ -69,7 +69,7 @@
         <oa-timeLine-item
           v-for="(ac, index) in activities"
           :key="index"
-          :titleValue="ac.areaName"
+          :titleValue="ac.planName"
           :timeValue="ac.createTime"
           :iconColor="proxy.$settingStore.themeColor.color"
           v-show="tabPosition == 1"

+ 1 - 1
src/pages/business/zhaf/xunJian/record/index.vue

@@ -11,7 +11,7 @@
           </view>
           <view class="pro-date">{{ item.wc_time }}</view>
         </view>
-        <view class="nav-right num margin-right-sm">
+        <view class="nav-right num mr10">
           <view class="text-grey">
             <button class="cu-btn radius bg-green sm" v-if="item.spot_abnormal == 0">正常</button>
             <button class="cu-btn radius bg-orange sm" v-if="item.spot_abnormal == 1">异常</button>

+ 8 - 8
src/pages/business/zhaf/xunJian/record/recordDetail/index.vue

@@ -1,6 +1,6 @@
 <template>
   <view>
-    <view class="timeBox flex justify-between align-center padding-lr-sm">
+    <view class="timeBox flex justify-between align-center plr10">
       <view class="time">{{ getData.plan_name }}</view>
       <button class="cu-btn radius bg-green sm" v-if="getData.spot_abnormal == 0">正常</button>
       <button class="cu-btn radius bg-orange sm" v-if="getData.spot_abnormal == 1">异常</button>
@@ -10,8 +10,8 @@
 
     <view>
       <view class="basic-info">
-        <view class="info-tit margin-left-xs">
-          <text class="cuIcon-titles margin-right-xs"></text>
+        <view class="info-tit ml5">
+          <text class="cuIcon-titles mr5"></text>
           基本信息
         </view>
         <view class="info-content">
@@ -45,8 +45,8 @@
 
       <!-- 巡检信息 -->
       <view class="basic-info">
-        <view class="info-tit margin-left-xs">
-          <text class="cuIcon-titles margin-right-xs"></text>
+        <view class="info-tit ml5">
+          <text class="cuIcon-titles mr5"></text>
           巡检信息
         </view>
         <view class="info-content">
@@ -67,11 +67,11 @@
       </view>
       <!-- 处理状态start -->
       <view class="processStatus">
-        <view class="info-tit margin-left-xs">
-          <text class="cuIcon-titles margin-right-xs"></text>
+        <view class="info-tit ml5">
+          <text class="cuIcon-titles mr5"></text>
           巡检图片
         </view>
-        <view class="padding-lr padding-bottom-lg imgPic">
+        <view class="plr15 pb20 imgPic">
           <image v-if="!getData.report_photos && dataRes == 1" mode="widthFix" src="@/static/images/defaultImg.jpg" width="100%" />
           <image v-else mode="widthFix" :src="`${websiteUrl}${getData.report_photos}`" width="100%" />
         </view>

+ 3 - 20
src/pages/business/zhaf/xunJian/xunJian.vue

@@ -1,31 +1,14 @@
 <template>
   <scroll-view class="scroll-height" :scroll-y="true" :data-theme="'theme-' + proxy.$settingStore.themeColor.name">
-    <view class="padding-sm">
+    <view class="p10">
       <!-- 图表 -->
-      <view class="section1 section bg-white padding-xs">
+      <view class="bg-white p5">
         <chart :currentDateList="currentDateList"></chart>
       </view>
       <!-- 图表 end-->
 
-      <!-- <view class="cu-list menu-avatar">
-				<view class="cu-item deviceTypeItem" v-for="(item,index) in inspectList" :key="index"
-					@tap="goRecordPage(index)">
-					<view class="cu-avatar round">
-						<image class="image-bg" :src=item.imgUrl />
-					</view>
-					<view class="content">
-						<view class="title">{{item.title}}</view>
-					</view>
-					<view class="nav-right num">
-						<view>
-							<text class="icon iconfont margin-right-xs margin-left-lg">&#xe629;</text>
-						</view>
-					</view>
-				</view>
-			</view> -->
-
       <!-- 宫格列表 -->
-      <view class="section bg-white margin-top-sm">
+      <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>

+ 6 - 6
src/pages/business/zhxf/building/index.vue

@@ -1,7 +1,7 @@
 <template>
   <view class="setting-building">
-    <uni-section class="block mb-10" title="基本信息" type="line" titleFontSize="16px" titleColor="#4074E7"></uni-section>
-    <view class="basic-info padding-lr">
+    <uni-section class="block mb10" title="基本信息" type="line" titleFontSize="16px" titleColor="#4074E7"></uni-section>
+    <view class="basic-info p10">
       <u-row>
         <u-col span="5"> 建筑物名称 </u-col>
         <u-col span="7"> {{ getDetailData.build_name }} </u-col>
@@ -76,18 +76,18 @@
       </u-row>
     </view>
 
-    <uni-section class="block mb-10" title="消防设施平面布置图" type="line" titleFontSize="16px" titleColor="#4074E7"></uni-section>
+    <uni-section class="block mb10" title="消防设施平面布置图" type="line" titleFontSize="16px" titleColor="#4074E7"></uni-section>
     <view class="processStatus">
-      <view class="padding-lr imgPic">
+      <view class="plr10 imgPic">
         <image v-if="!getDetailData.build_plan && dataRes == 1" mode="widthFix" src="@/static/images/defaultImg.jpg" />
         <image v-else mode="widthFix" :src="getDetailData.layout_plan" />
       </view>
     </view>
 
-    <uni-section class="block mb-10" title="建筑平面图" type="line" titleFontSize="16px" titleColor="#4074E7"></uni-section>
+    <uni-section class="block mb10" title="建筑平面图" type="line" titleFontSize="16px" titleColor="#4074E7"></uni-section>
 
     <view class="processStatus">
-      <view class="padding-lr padding-bottom-lg imgPic">
+      <view class="plr10 pb20 imgPic">
         <image v-if="!getDetailData.build_plan && dataRes == 1" mode="widthFix" src="@/static/images/defaultImg.jpg" />
         <image v-else :src="getDetailData.build_plan" mode="widthFix" />
       </view>

+ 1 - 0
src/pages/business/zhxf/fireInspect/index.vue

@@ -6,6 +6,7 @@
     :refresherLoad="true"
     :refresherLoadTitle="false"
     :refresherEnabled="true"
+    :refresherEnabledTitle="false"
     :refresherDefaultStyle="'none'"
     :refresherThreshold="44"
     :refresherBackground="'#f5f6f7'"

+ 12 - 33
src/pages/business/zhxf/fireInspect/inspectDetails/index.vue

@@ -17,7 +17,7 @@
 
       <view class="bg-white p15 mb15">
         <uni-section class="block mb10" title="基本信息" type="line"></uni-section>
-        <view class="tableType3 padding-0">
+        <view class="tableType3 p0">
           <u-row v-for="da in dataList" :key="da">
             <u-col span="4">
               <view style="text-align: right; padding: 0px 5px 0px 5px">{{ da.title }}</view>
@@ -31,7 +31,7 @@
 
       <view class="bg-white p15 mb15" v-if="dataArray.handleStatus == 1">
         <uni-section class="block mb10" title="处理信息" type="line"></uni-section>
-        <view class="tableType3 padding-0">
+        <view class="tableType3 p0">
           <u-row v-for="da in dataList2" :key="da">
             <u-col span="4">
               <view style="text-align: right; padding: 0px 5px 0px 5px">{{ da.title }}</view>
@@ -97,24 +97,12 @@ const { proxy } = getCurrentInstance();
 
 const dataArray = ref({});
 const dataList = ref([
-  {
-    title: "督察单编号",
-    value: "",
-  },
-  {
-    title: "督察单内容",
-    value: "",
-  },
+  { title: "督察单编号", value: "" },
+  { title: "督察单内容", value: "" },
 ]);
 const dataList2 = ref([
-  {
-    title: "处理账号/电话",
-    value: "",
-  },
-  {
-    title: "处理时间",
-    value: "",
-  },
+  { title: "处理账号/电话", value: "" },
+  { title: "处理时间", value: "" },
   // {
   //   title: "处理内容",
   //   value: "",
@@ -130,14 +118,8 @@ const current = ref(1);
 const total = ref(0);
 const handleRange = ref(1);
 const handleRangeList = ref([
-  {
-    label: "单个处理",
-    value: 1,
-  },
-  {
-    label: "批量处理",
-    value: 0,
-  },
+  { label: "单个处理", value: 1 },
+  { label: "批量处理", value: 0 },
 ]);
 
 /**
@@ -152,10 +134,8 @@ function init() {
  * @api接口查询
  */
 function selectListApi() {
-
   if (productName.value == "电子督察单") {
-
-    getDetail(eleInspectList,'电子')
+    getDetail(eleInspectList, "电子");
     // eleInspectList({
     //   id: id.value,
     //   pageNum: current.value,
@@ -171,7 +151,7 @@ function selectListApi() {
     //   }
     // });
   } else {
-    getDetail(persInspectList,'人工')
+    getDetail(persInspectList, "人工");
     // persInspectList({
     //   id: id.value,
     //   pageNum: current.value,
@@ -188,7 +168,7 @@ function selectListApi() {
     // });
   }
 
-  function getDetail(param,param2){
+  function getDetail(param, param2) {
     param({
       id: id.value,
       pageNum: current.value,
@@ -196,7 +176,7 @@ function selectListApi() {
     }).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[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;
@@ -210,7 +190,6 @@ function selectListApi() {
  * @提交
  */
 function handleSubmit() {
- 
   if (productName.value == "电子督察单") {
     dealPutEle({
       id: dataArray.value.id,

+ 6 - 17
src/pages/business/zhxf/fireInspect/inspectDetailsList/index.vue

@@ -51,18 +51,9 @@ import { eleInspectList, persInspectList } from "@/api/business/zhxf/fireInspect
 const { proxy } = getCurrentInstance();
 
 const tabsList = ref([
-  {
-    name: "全部",
-    value: "",
-  },
-  {
-    name: "未处理",
-    value: 0,
-  },
-  {
-    name: "已处理",
-    value: 1,
-  },
+  { name: "全部", value: "" },
+  { name: "未处理", value: 0 },
+  { name: "已处理", value: 1 },
 ]);
 const tabsCurrent = ref(0);
 const dataList = ref([]);
@@ -85,13 +76,12 @@ function init() {
  */
 function selectListApi() {
   if (productName.value == "电子督察单") {
-    getList(eleInspectList)
+    getList(eleInspectList);
   } else {
-    getList(persInspectList)
+    getList(persInspectList);
   }
 
-
-  function getList(param){
+  function getList(param) {
     param({
       handleStatus: tabsList.value[tabsCurrent.value].value,
       pageNum: current.value,
@@ -129,7 +119,6 @@ function load() {
  */
 function refresh() {
   pageSize.value = 20;
-  total.value = 0;
   init();
 }
 

+ 1 - 1
src/pages/business/zhxf/funReport/funcAdd/index.vue

@@ -42,7 +42,7 @@
     </uni-forms>
 
     <view class="buttom">
-      <button class="bg-blue round margin-top" @tap="submit()">提 交</button>
+      <button class="bg-blue round mt15" @tap="submit()">提 交</button>
     </view>
   </view>
 </template>

+ 1 - 1
src/pages/business/zhxf/funReport/index.vue

@@ -41,7 +41,7 @@
           </view>
           <view class="nav-right num">
             <view class="text-grey">
-              <text class="icon iconfont margin-right-sm margin-left-lg">&#xe629;</text>
+              <text class="icon iconfont mr10 ml20">&#xe629;</text>
             </view>
           </view>
           <view class="move">

+ 14 - 54
src/pages/business/zhxf/messagePush/index.vue

@@ -1,8 +1,8 @@
 <template>
-  <view class="padding-sm setting-messagePush">
+  <view class="p10 setting-messagePush">
     <form action="">
       <checkbox-group class="block" @change="CheckboxChange">
-        <view class="margin-top">
+        <view class="mt15">
           <view class="flex align-center checkItems" v-for="(item, index) in checkbox" :key="index">
             <checkbox class="blue" :class="item.checked == 1 ? 'checked' : ''" :checked="item.checked == 1 ? true : false" :value="item.value"></checkbox>
             <view class="title">{{ item.title }}</view>
@@ -11,7 +11,7 @@
       </checkbox-group>
 
       <view class="btn-area submitBottomBtn">
-        <button class="bg-blue round margin-top" @click="$noMultipleClicks(btnSubmit)">提 交</button>
+        <button class="bg-blue round mt15" @click="$noMultipleClicks(btnSubmit)">提 交</button>
       </view>
     </form>
   </view>
@@ -34,56 +34,16 @@ const data = reactive({
   getData: {},
   checkedValue: [],
   checkbox: [
-    {
-      value: "m1",
-      checked: false,
-      title: "火警报警",
-    },
-    {
-      value: "m2",
-      checked: false,
-      title: "火警故障",
-    },
-    {
-      value: "m3",
-      checked: false,
-      title: "水压越线",
-    },
-    {
-      value: "m4",
-      checked: false,
-      title: "开关变化",
-    },
-    {
-      value: "m5",
-      checked: false,
-      title: "设备离线",
-    },
-    {
-      value: "m6",
-      checked: false,
-      title: "烟感报警",
-    },
-    {
-      value: "m7",
-      checked: false,
-      title: "电气火灾",
-    },
-    {
-      value: "m8",
-      checked: false,
-      title: "视频报警",
-    },
-    {
-      value: "m9",
-      checked: false,
-      title: "电梯监测",
-    },
-    {
-      value: "m10",
-      checked: false,
-      title: "井盖监测",
-    },
+    { value: "m1", checked: false, title: "火警报警" },
+    { value: "m2", checked: false, title: "火警故障" },
+    { value: "m3", checked: false, title: "水压越线" },
+    { value: "m4", checked: false, title: "开关变化" },
+    { value: "m5", checked: false, title: "设备离线" },
+    { value: "m6", checked: false, title: "烟感报警" },
+    { value: "m7", checked: false, title: "电气火灾" },
+    { value: "m8", checked: false, title: "视频报警" },
+    { value: "m9", checked: false, title: "电梯监测" },
+    { value: "m10", checked: false, title: "井盖监测" },
   ],
 });
 
@@ -128,7 +88,7 @@ function getCheckList(params = {}) {
 //提交
 async function btnSubmit() {
   // 提交验证
-  
+
   let mingParams = {};
   if (!flag.value) {
     //不点击默认传参

+ 2 - 3
src/pages/common/alarmMessage/index.vue

@@ -15,7 +15,7 @@
     <template #default>
       <view class="content-area">
         <view :id="ind == allInfoList.length - 1 ? 'bottomInfo' : ''" v-for="(el, ind) in allInfoList" :key="ind" v-show="allInfoList.length > 0" @click="goContentDetails(el)">
-          <view class="content-area-time font24">{{ el.time }}</view>
+          <view class="content-area-time font12">{{ el.time }}</view>
           <view class="content-area-center radius bg-white">
             <image class="content-area-center-img radius mb10" v-if="el.sitePhoto" :src="el.sitePhoto" />
             <view class="content-area-center-title mb10">{{ el.deviceName }}</view>
@@ -31,7 +31,7 @@
               <span class="label">告警时间:</span>
               {{ el.alarmTime }}
             </view>
-            <view class="content-area-center-buttom font24">查看详情 </view>
+            <view class="content-area-center-buttom font12">查看详情 </view>
           </view>
         </view>
       </view>
@@ -126,7 +126,6 @@ function load() {
  */
 function refresh() {
   pageSize.value = 20;
-  total.value = 0;
   init();
 }
 

+ 4 - 4
src/pages/common/appMessage/index.vue

@@ -8,22 +8,22 @@
       <view class="content-area" v-show="tabsCurrent == 0">
         <u-empty v-show="allInfoList.length <= 0" text="暂无数据" mode="data" icon="http://cdn.uviewui.com/uview/empty/data.png"> </u-empty>
         <view :id="index == allInfoList.length - 1 ? 'bottomInfo' : ''" v-for="(all, index) in allInfoList" :key="index" v-show="allInfoList.length > 0" @click="goContentDetails(all)">
-          <view class="content-area-time font24">{{ all.listTime }}</view>
+          <view class="content-area-time font12">{{ all.listTime }}</view>
           <view class="content-area-center radius bg-white">
             <view class="content-area-center-title">{{ all.typeTitle }}</view>
             <view class="content-area-center-cont">{{ all.listTitle }}</view>
-            <view class="content-area-center-buttom font24">查看详情 </view>
+            <view class="content-area-center-buttom font12">查看详情 </view>
           </view>
         </view>
       </view>
       <view class="content-area" v-show="tabsCurrent == 1">
         <u-empty v-show="noticeList.length <= 0" text="暂无数据" mode="data" icon="http://cdn.uviewui.com/uview/empty/data.png"> </u-empty>
         <view :id="index == noticeList.length - 1 ? 'bottomInfo' : ''" v-for="(all, index) in noticeList" :key="index" v-show="noticeList.length > 0" @click="goContentDetails(all)">
-          <view class="content-area-time font24">{{ all.listTime }}</view>
+          <view class="content-area-time font12">{{ all.listTime }}</view>
           <view class="content-area-center radius bg-white">
             <view class="content-area-center-title">{{ all.typeTitle }}</view>
             <view class="content-area-center-cont">{{ all.listTitle }}</view>
-            <view class="content-area-center-buttom font24">查看详情 </view>
+            <view class="content-area-center-buttom font12">查看详情 </view>
           </view>
         </view>
       </view>

+ 4 - 17
src/pages/common/customManage/index.vue

@@ -81,22 +81,10 @@ const total = ref(0);
 
 const data = reactive({
   radioList: [
-    {
-      label: "全部",
-      value: "",
-    },
-    {
-      label: "30天内到期",
-      value: 30,
-    },
-    {
-      label: "60天内到期",
-      value: 60,
-    },
-    {
-      label: "90天内到期",
-      value: 90,
-    },
+    { label: "全部", value: "" },
+    { label: "30天内到期", value: 30 },
+    { label: "60天内到期", value: 60 },
+    { label: "90天内到期", value: 90 },
   ],
   radioValue: "",
   projectName: "",
@@ -176,7 +164,6 @@ function load() {
 function refresh() {
   radioValue.value = "";
   pageSize.value = 20;
-  total.value = 0;
   selectListApi();
 }
 

+ 13 - 88
src/pages/common/invoicing/index.vue

@@ -180,14 +180,7 @@ const commonStore = commonStores();
 
 const uForm = ref(null);
 const data = reactive({
-  tabsList: [
-    {
-      name: "开票申请",
-    },
-    {
-      name: "汇款信息",
-    },
-  ],
+  tabsList: [{ name: "开票申请" }, { name: "汇款信息" }],
   tabsCurrent: 0,
 
   form: {
@@ -205,92 +198,24 @@ const data = reactive({
   },
 
   rules: {
-    invoiceTitle: [
-      {
-        required: true,
-        message: "请填写发票抬头",
-        trigger: ["blur", "change"],
-      },
-    ],
+    invoiceTitle: [{ required: true, message: "请填写发票抬头", trigger: ["blur", "change"] }],
     dutyId: [
-      {
-        required: true,
-        message: "请填写税号",
-        trigger: ["blur", "change"],
-      },
-      {
-        type: "string",
-        min: 18,
-        required: true,
-        message: "请填写18位税号",
-        trigger: ["change"],
-      },
+      { required: true, message: "请填写税号", trigger: ["blur", "change"] },
+      { type: "string", min: 18, required: true, message: "请填写18位税号", trigger: ["change"] },
     ],
     email: [
-      {
-        required: true,
-        message: "请填写电子邮箱",
-        trigger: ["blur", "change"],
-      },
-      {
-        type: "string",
-        min: 11,
-        required: true,
-        message: "请填写正确的邮箱格式",
-        pattern: /^\w+((-\w+)|(\.\w+))*\@[A-Za-z0-9]+((\.|-)[A-Za-z0-9]+)*\.[A-Za-z0-9]+$/,
-        trigger: ["blur", "change"],
-      },
-    ],
-    applicant: [
-      {
-        required: true,
-        message: "请填写申请人",
-        trigger: ["blur", "change"],
-      },
+      { required: true, message: "请填写电子邮箱", trigger: ["blur", "change"] },
+      { type: "string", min: 11, required: true, message: "请填写正确的邮箱格式", pattern: /^\w+((-\w+)|(\.\w+))*\@[A-Za-z0-9]+((\.|-)[A-Za-z0-9]+)*\.[A-Za-z0-9]+$/, trigger: ["blur", "change"] },
     ],
+    applicant: [{ required: true, message: "请填写申请人", trigger: ["blur", "change"] }],
     phone: [
-      {
-        required: true,
-        message: "请填写手机号",
-        trigger: ["blur", "change"],
-      },
-      {
-        type: "string",
-        min: 11,
-        required: true,
-        message: "请填写正确11位手机号",
-        pattern: /^1[3|4|5|6|7|8|9][0-9]\d{8}$/,
-        trigger: ["blur", "change"],
-      },
-    ],
-    amount: [
-      {
-        required: true,
-        message: "请填写金额",
-        trigger: ["blur", "change"],
-      },
-    ],
-    invoiceType: [
-      {
-        required: true,
-        message: "请选择发票类型",
-        trigger: ["blur", "change"],
-      },
-    ],
-    invoiceAttribute: [
-      {
-        required: true,
-        message: "请选择发票性质",
-        trigger: ["blur", "change"],
-      },
-    ],
-    sendAddress: [
-      {
-        required: true,
-        message: "请填写邮寄地址",
-        trigger: ["blur", "change"],
-      },
+      { required: true, message: "请填写手机号", trigger: ["blur", "change"] },
+      { type: "string", min: 11, required: true, message: "请填写正确11位手机号", pattern: /^1[3|4|5|6|7|8|9][0-9]\d{8}$/, trigger: ["blur", "change"] },
     ],
+    amount: [{ required: true, message: "请填写金额", trigger: ["blur", "change"] }],
+    invoiceType: [{ required: true, message: "请选择发票类型", trigger: ["blur", "change"] }],
+    invoiceAttribute: [{ required: true, message: "请选择发票性质", trigger: ["blur", "change"] }],
+    sendAddress: [{ required: true, message: "请填写邮寄地址", trigger: ["blur", "change"] }],
   },
 
   scrollIntoView: "",

+ 7 - 42
src/pages/common/repairReport/index.vue

@@ -9,7 +9,7 @@
     :refresherBackground="'#f5f6f7'"
     :data-theme="'theme-' + proxy.$settingStore.themeColor.name"
   >
-    <view class="menu-list margin-0">
+    <view class="menu-list m0">
       <view class="list-cell">
         <view class="menu-item" style="font-size: 15px">
           <view style="margin-right: auto; color: #666666"></view>
@@ -94,49 +94,14 @@ const data = reactive({
   },
 
   rules: {
-    projectName: [
-      {
-        required: true,
-        message: "请填写项目名称",
-        trigger: ["blur", "change"],
-      },
-    ],
-    projectName: [
-      {
-        required: true,
-        message: "请填写项目地址",
-        trigger: ["blur", "change"],
-      },
-    ],
-    reflectName: [
-      {
-        required: true,
-        message: "请填写报修人",
-        trigger: ["blur", "change"],
-      },
-    ],
+    projectName: [{ required: true, message: "请填写项目名称", trigger: ["blur", "change"] }],
+    projectName: [{ required: true, message: "请填写项目地址", trigger: ["blur", "change"] }],
+    reflectName: [{ required: true, message: "请填写报修人", trigger: ["blur", "change"] }],
     reflectPhone: [
-      {
-        required: true,
-        message: "请填写手机号",
-        trigger: ["blur", "change"],
-      },
-      {
-        type: "string",
-        min: 11,
-        required: true,
-        message: "请填写正确11位手机号",
-        pattern: /^1[3|4|5|6|7|8|9][0-9]\d{8}$/,
-        trigger: ["blur", "change"],
-      },
-    ],
-    repairContent: [
-      {
-        required: true,
-        message: "请填写问题描述",
-        trigger: ["blur", "change"],
-      },
+      { required: true, message: "请填写手机号", trigger: ["blur", "change"] },
+      { type: "string", min: 11, required: true, message: "请填写正确11位手机号", pattern: /^1[3|4|5|6|7|8|9][0-9]\d{8}$/, trigger: ["blur", "change"] },
     ],
+    repairContent: [{ required: true, message: "请填写问题描述", trigger: ["blur", "change"] }],
   },
 
   actionShow: false,

+ 0 - 1
src/pages/common/repairReport/record.vue

@@ -99,7 +99,6 @@ function load() {
  */
 function refresh() {
   pageSize.value = 20;
-  total.value = 0;
   init();
 }
 

+ 42 - 0
src/pages/common/searchSelect/index.vue

@@ -0,0 +1,42 @@
+<template>
+  <u-navbar :autoBack="false" :placeholder="true" :safeAreaInsetTop="true">
+    <template #left>
+      <view class="u-navbar__content__left__item" style="width: 100%">
+        <u-search v-model="state.search" placeholder="搜索" :show-action="true" actionText="取消" :animation="false" @custom="handleToCancel" @search="handleToSearch"></u-search>
+      </view>
+    </template>
+  </u-navbar>
+
+  <scroll-view class="info-container bg-white" scroll-y :style="`height: calc(100vh - (${proxy.$settingStore.barHightTop} + ${proxy.$settingStore.tabBarHeight}))`"> </scroll-view>
+</template>
+
+<script setup>
+import { onLoad, onShow, onHide, onLaunch } from "@dcloudio/uni-app";
+import { ref, onMounted, inject, shallowRef, reactive, getCurrentInstance, toRefs } from "vue";
+
+const { proxy } = getCurrentInstance();
+const state = reactive({
+  search: "",
+});
+
+//搜索
+function handleToSearch() {
+  console.log(2);
+}
+
+//取消
+function handleToCancel() {
+  console.log(1);
+  uni.navigateBack({
+    delta: 1, //返回到需要执行方法的页面
+  });
+}
+
+onShow(() => {});
+</script>
+
+<style lang="scss" scoped>
+:deep(.u-navbar__content__left) {
+  width: 100%;
+}
+</style>

+ 1 - 1
src/pages/common/square/index.vue

@@ -1,6 +1,6 @@
 <template>
   <view>
-    <view class="section bg-white margin-top-sm">
+    <view class="section bg-white mt10">
       <view class="cu-list grid col-3 no-border">
         <view class="cu-item justify-center align-center" @tap="goSiteList(item.redirectUrl)" v-for="(item, index) in cuIconList" :key="index">
           <image :src="`${item.imgUrl}`" style="width: 100rpx; height: 100rpx"></image>

+ 53 - 69
src/pages/index.vue

@@ -1,17 +1,17 @@
 <template>
-  <u-navbar :autoBack="false" :placeholder="true" :safeAreaInsetTop="true" :bgColor="proxy.$settingStore.themeColor.color" @rightClick="rightButtonClick()">
+  <u-navbar :autoBack="false" :placeholder="true" :safeAreaInsetTop="true" :bgColor="proxy.$settingStore.themeColor.color">
     <template #left>
-      <view class="u-nav-slot">
+      <view class="u-navbar__content__left__item">
         <!-- <u-icon name="arrow-left" size="19" color="#fff" style="display: none"></u-icon> -->
-        <view class="u-navbar__content__title" style="color: #fff">应用中心</view>
+        <view class="u-navbar__content__left__item__title">应用中心</view>
       </view>
     </template>
     <template #center>
-      <view class="u-nav-slot"> </view>
+      <view class="u-navbar__content__left__item"> </view>
     </template>
     <template #right>
-      <view class="u-nav-slot">
-        <u-icon name="plus" size="19" color="#fff"></u-icon>
+      <view class="u-navbar__content__left__item">
+        <text class="iconfont oaIcon-jiahao" @click="rightButtonClick()"></text>
       </view>
     </template>
   </u-navbar>
@@ -21,6 +21,7 @@
     :customStyle="{ height: `calc(100vh - (50px + ${proxy.$settingStore.barHightTop} + ${proxy.$settingStore.tabBarHeight}))` }"
     :refresherLoad="false"
     :refresherEnabled="true"
+    :refresherEnabledTitle="false"
     :refresherDefaultStyle="'none'"
     :refresherThreshold="44"
     :refresherBackground="'#f5f6f7'"
@@ -51,53 +52,32 @@
         <image v-if="!swiperBool" style="width: 100%; height: 160px" src="@/static/images/index/banner1.png"></image>
 
         <!-- 天气 -->
-        <view class="app-common-notice bg-white radius shadow-default margin-lr-sm margin-bottom-sm" v-if="weatherData.length != 0">
-          <!-- <view class="info">
-            <view class="info-header">
-              <view class="info-title font28">综合智慧云</view>
-              <view class="info-time font24">07-25 19:23</view>
-            </view>
-            <view class="info-center font24">综合智慧云app,助力企业数字化转型升级,超多业务功能,全新部署上线,操作简单流畅...</view>
-          </view> -->
-
-          <view class="weather radius">
-            <view class="weather-header">
-              <view class="iconfont oaIcon-address"></view>
-              <view class="mr15">{{ weatherData[0].location || "上海" }}</view>
-              <view style="margin: 0 auto 0 0">今天</view>
-              <view class="m0">{{ weatherData[0].text || "未知" }}</view>
-            </view>
-            <view class="weather-center">
-              <view class="temperature">{{ weatherData[0].today.low + "/" + weatherData[0].today.high || "0℃" }}</view>
-              <image class="image" :src="`${'/static/icons/white/' + weatherData[0].code.now + '.png'}`" mode="heightFix" style="height: 30px"></image>
-            </view>
-          </view>
-        </view>
+        <oa-weather ref="oaWeatherRef"></oa-weather>
 
         <!-- 最近使用宫格 -->
-        <view class="bg-white margin-bottom-sm" v-if="recentlyUsed.length > 0">
-          <view class="plr10 pt10 pb5" style="color: #000000; font-size: 14px">最近使用</view>
-          <view class="cu-list grid col-5 no-border">
-            <view class="cu-item justify-center align-center" @tap="navItemClick(item)" v-for="(item, index) in recentlyUsed.slice(0, 5)" :key="index">
-              <image :src="item.meta.icon" style="width: 40px; height: 40px"></image>
+        <view class="grid-area bg-white" v-if="recentlyUsed.length > 0">
+          <view class="grid-area_title">最近使用</view>
+          <view class="grid-area_center cu-list grid col-5 no-border">
+            <view class="grid-area_center_item cu-item justify-center align-center" @tap="navItemClick(item)" v-for="(item, index) in recentlyUsed.slice(0, 5)" :key="index">
+              <image class="grid-area_center_item_image" :src="item.meta.icon"></image>
               <!-- <view class="cu-tag badge" v-if="item.badge != 0">
                 <block v-if="item.badge != 0">{{ item.badge > 99 ? "99+" : item.badge }}</block>
               </view> -->
-              <text style="font-size: 12px">{{ item.meta.aliasTitle ? item.meta.aliasTitle : item.meta.title }}</text>
+              <text class="grid-area_center_item_title">{{ item.meta.aliasTitle ? item.meta.aliasTitle : item.meta.title }}</text>
             </view>
           </view>
         </view>
 
         <!-- 常用功能宫格 -->
-        <view class="bg-white">
-          <view class="plr10 pt10 pb5" style="color: #000000; font-size: 14px">常用功能</view>
-          <view class="cu-list grid col-5 no-border">
-            <view class="cu-item justify-center align-center" @tap="navItemClick(item)" v-for="(item, index) in cuIconList" :key="index">
-              <image :src="item.meta.icon" style="width: 40px; height: 40px"></image>
+        <view class="grid-area bg-white">
+          <view class="grid-area_title">常用功能</view>
+          <view class="grid-area_center cu-list grid col-5 no-border">
+            <view class="grid-area_center_item cu-item justify-center align-center" @tap="navItemClick(item)" v-for="(item, index) in cuIconList" :key="index">
+              <image class="grid-area_center_item_image" :src="item.meta.icon"></image>
               <!-- <view class="cu-tag badge" v-if="item.badge != 0">
                 <block v-if="item.badge != 0">{{ item.badge > 99 ? "99+" : item.badge }}</block>
               </view> -->
-              <text style="font-size: 12px">{{ item.meta.aliasTitle ? item.meta.aliasTitle : item.meta.title }}</text>
+              <text class="grid-area_center_item_title">{{ item.meta.aliasTitle ? item.meta.aliasTitle : item.meta.title }}</text>
             </view>
           </view>
         </view>
@@ -110,7 +90,7 @@
 
 <script setup>
 import { onReady, onLoad, onShow, onNavigationBarButtonTap, onPullDownRefresh, onReachBottom } from "@dcloudio/uni-app";
-import { ref, onMounted, inject, shallowRef, reactive, getCurrentInstance, toRefs } from "vue";
+import { ref, onMounted, inject, shallowRef, reactive, getCurrentInstance, toRefs, nextTick } from "vue";
 import { useStores, commonStores } from "@/store/modules/index";
 
 import { scan_push, getHomePageData, getFunctionalModuleStatistics, getAppRouters, qrCodeSend, getMobileBanner } from "@/api/index";
@@ -130,11 +110,9 @@ const arrayList = reactive({
 
   cuIconList: [],
   recentlyUsed: [],
-
-  weatherData: [], //天气信息值存储
 });
 
-const { dialogFlag, swiperBool, swiperIndex, swiperTime, swiperList, cuIconList, recentlyUsed, weatherData } = toRefs(arrayList);
+const { dialogFlag, swiperBool, swiperIndex, swiperTime, swiperList, cuIconList, recentlyUsed } = toRefs(arrayList);
 
 /**
  * @获取轮播图下标
@@ -166,25 +144,6 @@ function swiperClick(list) {
   }
 }
 
-/**
- * @获取天气信息
- */
-function getWeather(string) {
-  uni.request({
-    url: `https://widget-v3.seniverse.com/api/weather/7b8a7d89-f01d-4b14-bdec-5ae0b82c857f?unit=c&language=zh-Hans&location=${string}`,
-    success: (res) => {
-      if (res.statusCode == 200) {
-        weatherData.value = res.data.results[0].data;
-      } else {
-        console.log("获取天气信息失败");
-      }
-    },
-    fail: (err) => {
-      console.log("获取天气信息失败", err);
-    },
-  });
-}
-
 /**
  * @scrollView刷新数据
  */
@@ -260,7 +219,7 @@ function getLocation() {
   //     },
   //   });
   // });
-  getWeather("上海");
+  proxy.$refs["oaWeatherRef"].getWeather("上海");
   //#endif
 
   //#ifdef APP-PLUS
@@ -269,10 +228,10 @@ function getLocation() {
     geocode: true,
     highAccuracyExpireTime: 5000,
     success: function (res) {
-      getWeather(res.latitude + ":" + res.longitude);
+      proxy.$refs["oaWeatherRef"].getWeather(res.latitude + ":" + res.longitude);
     },
     fail: function (res) {
-      getWeather("上海");
+      proxy.$refs["oaWeatherRef"].getWeather("上海");
     },
   });
   //#endif
@@ -367,9 +326,11 @@ function getAppRoutersData() {
 onLoad((option) => {
   uni.hideTabBar(); //隐藏自带tabbar
 
-  getAppRoutersData(); //调用路由信息接口
-  getMobileBannerApi(); //调用banner图接口
-  getLocation(); //调用获取地理位置方法
+  nextTick(() => {
+    getAppRoutersData(); //调用路由信息接口
+    getMobileBannerApi(); //调用banner图接口
+    getLocation(); //调用获取地理位置方法
+  });
 });
 
 onShow(() => {
@@ -436,5 +397,28 @@ onShow(() => {
       }
     }
   }
+
+  .grid-area {
+    margin-bottom: 10px;
+
+    &_title {
+      padding: 10px 10px 5px 10px;
+      color: #000000;
+      font-size: $uni-font-size-base;
+    }
+
+    &_center {
+      &_item {
+        &_image {
+          width: 40px;
+          height: 40px;
+        }
+
+        &_title {
+          font-size: $uni-font-size-sm;
+        }
+      }
+    }
+  }
 }
 </style>

+ 35 - 30
src/pages/info.vue

@@ -1,31 +1,36 @@
 <template>
-  <u-navbar :autoBack="false" :placeholder="true" :safeAreaInsetTop="true" :bgColor="proxy.$settingStore.themeColor.color" @rightClick="rightButtonClick()">
+  <u-navbar :autoBack="false" :placeholder="true" :safeAreaInsetTop="true" :bgColor="proxy.$settingStore.themeColor.color">
     <template #left>
-      <view class="u-nav-slot">
-        <view class="u-navbar__content__title" style="color: #fff">消息</view>
+      <view class="u-navbar__content__left__item">
+        <view class="u-navbar__content__left__item__title" style="color: #fff">消息</view>
+      </view>
+    </template>
+    <template #right>
+      <view class="u-navbar__content__right__item">
+        <text class="iconfont oaIcon-qingchu" @click="handleIconClick('清除')"></text>
+      </view>
+      <view class="u-navbar__content__right__item">
+        <text class="iconfont oaIcon-sousuo" @click="handleIconClick('搜索')"></text>
+      </view>
+      <view class="u-navbar__content__right__item">
+        <text class="iconfont oaIcon-jiahao" @click="handleIconClick('加号')"></text>
       </view>
     </template>
   </u-navbar>
 
-  <u-sticky style="top: 0px">
-    <view class="plr13 ptb10" :class="'bg-' + proxy.$settingStore.themeColor.name">
-      <u--input placeholder="搜索" prefixIcon="search" prefixIconStyle="font-size: 22px;color: #909399" customStyle="height:35px;background-color:#f5f6fa;"></u--input>
-    </view>
-  </u-sticky>
-
-  <scroll-view class="info-container bg-white" scroll-y :style="`height: calc(100vh - (105px + ${proxy.$settingStore.barHightTop} + ${proxy.$settingStore.tabBarHeight}))`">
-    <view class="content-area plr13 pt13" v-for="item in infoList" :key="item" @tap="goAppMessage(item.id)">
+  <scroll-view class="info-container bg-white" scroll-y :style="`height: calc(100vh - (50px + ${proxy.$settingStore.barHightTop} + ${proxy.$settingStore.tabBarHeight}))`">
+    <view class="content-area" v-for="item in infoList" :key="item" @tap="goAppMessage(item.path)">
       <view class="content-area-avatar">
         <image class="image-bg" :src="item.img" />
       </view>
       <view class="content-area-child">
-        <view class="uni-item">
-          <view class="uni-item-text font30" style="color: #000000">{{ item.label }}</view>
-          <!-- <view class="uni-item-right font24" style="color: #909399">{{ item.time }}</view> -->
+        <view class="uni-item mb5">
+          <view class="uni-item-text font14" style="color: #000000">{{ item.label }}</view>
+          <view class="uni-item-right font12" style="color: #909399">{{ item.time }}</view>
         </view>
         <view class="uni-item">
-          <view class="uni-item-text font28" style="color: #909399">{{ item.cont }}</view>
-          <view class="uni-item-right font28" style="margin: auto 0">
+          <view class="uni-item-text font12" style="color: #909399">{{ item.cont }}</view>
+          <view class="uni-item-right font12" style="margin: auto 0">
             <u-badge numberType="overflow" max="99" :value="item.badge"></u-badge>
           </view>
         </view>
@@ -53,7 +58,8 @@ const data = reactive({
       img: "/static/images/common/appMessage.png",
       time: "5月15日",
       cont: "您收到一条最新消息,请及时查看",
-      badge: 0,
+      badge: 1,
+      path: "/pages/common/appMessage/index",
     },
     // {
     //   id: 2,
@@ -69,26 +75,23 @@ const data = reactive({
       time: "5月15日",
       cont: "您收到一条最新消息,请及时查看",
       badge: 0,
+      path: "/pages/common/alarmMessage/index",
     },
   ],
 });
 
 const { infoList } = toRefs(data);
 
-function goAppMessage(id) {
-  if (id == 1) {
-    proxy.$tab.navigateTo("/pages/common/appMessage/index");
-  } else if (id == 3) {
-    proxy.$tab.navigateTo("/pages/common/alarmMessage/index");
-  }
-}
-
-function goFireBase() {
-  proxy.$tab.navigateTo("/pages/info/fireBase/fireBase");
+function goAppMessage(path) {
+  proxy.$tab.navigateTo(path);
 }
 
-function goPushList() {
-  proxy.$tab.navigateTo("/pages/info/pushList/pushList");
+function handleIconClick(type) {
+  if (type === "清除") {
+  } else if (type === "搜索") {
+    proxy.$tab.navigateTo("/pages/common/searchSelect/index");
+  } else if (type === "加号") {
+  }
 }
 
 onShow(() => {});
@@ -102,6 +105,7 @@ onLoad((options) => {
 .info-container {
   .content-area {
     display: flex;
+    padding: 13px 13px 0 13px;
 
     &-avatar {
       display: flex;
@@ -114,9 +118,10 @@ onLoad((options) => {
 
     &-child {
       width: calc(100% - (32px + 0.625rem));
+      justify-content: center;
+      margin: auto;
       .uni-item {
         display: flex;
-        line-height: 25px;
         white-space: nowrap;
 
         .uni-item-text {

+ 7 - 7
src/pages/info/fireBashDetail/fireBashDetail.vue

@@ -1,19 +1,19 @@
 <template>
-  <view class="padding fireBashDetailWrapper">
-    <view class="margin-bottom fireD-tit">{{ getData.title }}</view>
+  <view class="p15 fireBashDetailWrapper">
+    <view class="mb15 fireD-tit">{{ getData.title }}</view>
     <view class="flex justify-between align-center">
       <view>
         <!-- <view class="cu-avatar round" style="background-image:url(@/static/images/info/fireBase.png)"></view> -->
 
         <image class="cu-avatar round" src="@/static/images/info/fireBase.png" />
 
-        <text class="margin-left-sm margin-right-sm font24">{{ getData.author }}</text>
+        <text class="ml10 mr10 font14">{{ getData.author }}</text>
         <text>{{ getData.release_time }}</text>
       </view>
       <view style="color: #999">阅读:{{ getData.frequency }}</view>
     </view>
 
-    <view class="fireD-content margin-top padding-top-xs">
+    <view class="fireD-content mt15 pt5">
       <view class="">
         <view v-html="getData.content"></view>
       </view>
@@ -32,11 +32,11 @@
 
     <!-- <view class="share grid col-3">
 			<view class="share-item align">
-				<text class="icon iconfont margin-right-xs margin-left-lg">&#xe60c;</text>
+				<text class="icon iconfont mr10 ml40">&#xe60c;</text>
 				分享
 			</view>
-			<view class="share-item" @click="clickPraise()" :class="[praise?'active':'']"><text class="icon iconfont margin-right-xs margin-left-lg"  >&#xe62a;</text>收藏</view>
-			<view class="share-item"  @click="clickZan()" :class="[zan?'active':'']"><text class="icon iconfont margin-right-xs margin-left-lg">&#xe600;</text>点赞</view>
+			<view class="share-item" @click="clickPraise()" :class="[praise?'active':'']"><text class="icon iconfont mr10 ml40"  >&#xe62a;</text>收藏</view>
+			<view class="share-item"  @click="clickZan()" :class="[zan?'active':'']"><text class="icon iconfont mr10 ml40">&#xe600;</text>点赞</view>
 		</view> -->
   </view>
 </template>

+ 7 - 12
src/pages/login.vue

@@ -32,7 +32,7 @@
 
         <u-input v-model="password" prefixIcon="lock" placeholder="请输入密码" :password="inputIconBool">
           <template #suffix>
-            <text :class="!inputIconBool ? 'iconfont ucicon-eye' : 'iconfont ucicon-eye-close'" @click="inputIconBool = !inputIconBool"></text>
+            <text :class="!inputIconBool ? 'iconfont oaIcon-eye' : 'iconfont oaIcon-eye-close'" @click="inputIconBool = !inputIconBool"></text>
           </template>
         </u-input>
       </view>
@@ -41,7 +41,7 @@
 
       <view class="middle-switch">
         <text class="switch-loginMethod" @click="switchMode(1)">{{ switchText }}</text>
-        <div style="margin: auto"></div>
+        <view style="margin: auto"></view>
         <text class="switch-register" @click="switchMode(2)">注册账号</text>
       </view>
 
@@ -68,7 +68,7 @@
 <script setup>
 import config from "@/config";
 import { onLoad, onShow, onHide, onLaunch, onReady } from "@dcloudio/uni-app";
-import { reactive, getCurrentInstance, toRefs, inject } from "vue";
+import { reactive, getCurrentInstance, toRefs, inject, nextTick } from "vue";
 import { useStores, commonStores } from "@/store/modules/index";
 
 const useStore = useStores();
@@ -135,13 +135,6 @@ function getVerifyCode() {
  */
 function init() {
   useStore.SetInterval("codeTime"); //调用倒计时定时器
-  useStore.SET_LOGINMOBILELIST({
-    loginTitle: "",
-    loginBottomTitle: "",
-    loginBg: "",
-    loginLogo: "",
-    tenantId: "",
-  });
 
   //#ifdef H5
   if (window.location.host) {
@@ -156,11 +149,13 @@ function init() {
   //#ifdef APP-PLUS || MP-WEIXIN
   if (uni.getStorageSync("serveUrl")) {
     linkUrl.value = uni.getStorageSync("serveUrl");
+    // linkUrl.value = "localhost:81";
     useStore.GetMobileTenantConfig({ url: linkUrl.value });
   } else {
     uni.setStorageSync("serveUrl", "manager.usky.cn");
     commonStore.setServeList("manager.usky.cn", "");
     linkUrl.value = uni.getStorageSync("serveUrl");
+    // linkUrl.value = "localhost:81";
     useStore.GetMobileTenantConfig({ url: linkUrl.value });
   }
   //#endif
@@ -242,9 +237,9 @@ function handlePrivacy() {
 }
 
 onShow(() => {
-  setTimeout(() => {
+  nextTick(() => {
     init();
-  }, 50);
+  });
 });
 
 onLoad((options) => {});

+ 14 - 114
src/pages/mine.vue

@@ -2,13 +2,13 @@
   <view class="mine-container" :data-theme="'theme-' + proxy.$settingStore.themeColor.name">
     <!--顶部个人信息栏-->
     <view class="top-area" :class="'bg-' + themeColor.name" :style="{ paddingTop: proxy.$settingStore.StatusBar ? proxy.$settingStore.StatusBar + 20 + 'px' : '55px' }">
-      <view class="flex padding justify-between">
+      <view class="flex justify-between p15">
         <view class="flex align-center">
-          <view class="cu-avatar xl round bg-white" v-if="!avatar" @click="!data.nickName ? handleToLogin() : handleToAvatar(1)">
-            <view class="iconfont oaIcon-people text-gray icon"></view>
+          <view class="cu-avatar xl round border bg-white" v-if="!avatar" @click="!data.nickName ? proxy.$settingStore.handleToLogin() : proxy.$settingStore.handleToAvatar(1)">
+            <view class="iconfont oaIcon-people text-gray"></view>
           </view>
-          <image class="cu-avatar xl round" v-if="avatar" :src="avatar" @click="handleToAvatar(2)"> </image>
-          <view class="login-tip" v-if="!data.nickName" @click="handleToLogin()"> 点击登录 </view>
+          <image class="cu-avatar xl round border bg-white" v-if="avatar" :src="avatar" @click="proxy.$settingStore.handleToAvatar(2)"> </image>
+          <view class="login-tip" v-if="!data.nickName" @click="proxy.$settingStore.handleToLogin()"> 点击登录 </view>
           <view class="user-info" v-if="data.nickName">
             <view class="u_title"> {{ data.nickName }} </view>
             <view class="u_title"> {{ data.phone }} </view>
@@ -171,10 +171,6 @@ import { onLoad, onShow, onReady, onHide, onLaunch, onNavigationBarButtonTap, on
 import { ref, reactive, computed, getCurrentInstance, toRefs, inject } from "vue";
 import { useStores, commonStores } from "@/store/modules/index";
 
-import { checkUpdates } from "@/api/system/setting";
-import { uploadAvatar, updateUserProfile } from "@/api/system/user";
-import { getAuthorization } from "@/api/business/zhxf/messagePush/index.js";
-
 const useStore = useStores();
 const { proxy } = getCurrentInstance();
 
@@ -203,38 +199,12 @@ const { colorModal, themeList, modalShow, modalArray } = toRefs(data);
  * @检查更新
  */
 function handleToUpgrade() {
-  proxy.$modal.loading("加载中");
-
-  let data = {
-    _api_key: "fba7440cd37400b6ff46e303896af4df",
-    appKey: "cbd3508235d03365f4253f6aae6b68ab",
-    buildVersion: config.appInfo.version,
-  };
-  checkUpdates(data).then((res) => {
-    if (res.code == 0) {
-      let platform = uni.getSystemInfoSync().platform; //手机平台
-
-      if (res.data.buildHaveNewVersion == true) {
-        //安卓手机弹窗升级
-        if (platform === "android") {
-          proxy.$refs["oaUpgradeRef"].openUpgrade({
-            modalArray: res.data,
-          });
-        }
-        //IOS无法在线升级提示到商店下载
-        else {
-          uni.showModal({
-            title: "发现新版本 " + res.data.buildVersion,
-            content: "请到App store进行升级",
-            showCancel: false,
-          });
-        }
-      } else {
-        proxy.$modal.msg("您的软件版本已是最新");
-      }
-
-      proxy.$modal.closeLoading();
-    }
+  proxy.$settingStore.handleToUpgrade({
+    success: (res) => {
+      proxy.$refs["oaUpgradeRef"].openUpgrade({
+        modalArray: res.data,
+      });
+    },
   });
 }
 
@@ -268,45 +238,6 @@ function SetColor(item) {
   proxy.$settingStore.systemThemeColor([1, 2]);
 }
 
-/**
- * @点击登录
- */
-function handleToLogin() {
-  proxy.$tab.reLaunch("/pages/login");
-}
-
-/**
- * @点击头像
- */
-function handleToAvatar(type) {
-  if (type == 1) {
-    uni.chooseImage({
-      count: 1, //默认9
-      sizeType: ["original", "compressed"], //可以指定是原图还是压缩图,默认二者都有
-      sourceType: ["album", "camera"], //从相册选择、摄像头
-      success: function (res) {
-        uploadApi(res);
-      },
-    });
-  } else if (type == 2) {
-    proxy.$tab.navigateTo("/pages/mine/avatar/index");
-  }
-}
-
-/**
- * @upload上传头像
- * @api接口请求
- */
-function uploadApi(res) {
-  let data = { name: "file", filePath: res.tempFilePaths[0] };
-  uploadAvatar(data).then((response) => {
-    useStore.$state.avatar = response.data.url;
-    updateUserProfile({
-      avatar: response.data.url,
-    }).then(() => {});
-  });
-}
-
 onShow(() => {});
 
 onReady(() => {});
@@ -337,14 +268,6 @@ onNavigationBarButtonTap((e) => {
       margin-left: 10px;
     }
 
-    .cu-avatar {
-      border: 2px solid #eaeaea;
-
-      .icon {
-        font-size: 40px;
-      }
-    }
-
     .user-info {
       margin-left: 15px;
 
@@ -368,32 +291,9 @@ onNavigationBarButtonTap((e) => {
     }
   }
 
-  .cu-list.menu-avatar .cu-item {
-    border-radius: 5px;
-    padding: 30rpx 0;
-    box-shadow: 1px 1px 4px rgb(26 26 26 / 10%);
-    .cu-avatar {
-      background-color: rgba(0, 0, 0, 0);
-      background-size: 100% 100%;
-      left: 26rpx;
-    }
-    .content {
-      left: 130rpx;
-      font-size: 32rpx;
-    }
+  .scrollView {
+    height: calc(100vh - (50px + constant(safe-area-inset-bottom) + 55px + 0.9375rem + 0.9375rem + 4rem + 47px));
+    height: calc(100vh - (50px + env(safe-area-inset-bottom) + 55px + 0.9375rem + 0.9375rem + 4rem + 47px));
   }
 }
-
-.item-box {
-  background-color: #ffffff;
-  margin: 30rpx;
-  display: flex;
-  flex-direction: row;
-  justify-content: center;
-  align-items: center;
-  padding: 10rpx;
-  border-radius: 8rpx;
-  color: #303133;
-  font-size: 32rpx;
-}
 </style>

+ 1 - 1
src/pages/mine/about/index.vue

@@ -2,7 +2,7 @@
   <view class="about-container">
     <u-navbar :titleStyle="{ color: '#fff' }" :autoBack="true" title="关于我们" :placeholder="true" :safeAreaInsetTop="true" :bgColor="proxy.$settingStore.themeColor.color">
       <template #left>
-        <view class="u-nav-slot">
+        <view class="u-navbar__content__left__item">
           <u-icon name="arrow-left" size="19" color="#fff"></u-icon>
         </view>
       </template>

+ 1 - 1
src/pages/mine/help/index.vue

@@ -2,7 +2,7 @@
   <view class="help-container">
     <u-navbar :titleStyle="{ color: '#fff' }" :autoBack="true" title="常见问题" :placeholder="true" :safeAreaInsetTop="true" :bgColor="proxy.$settingStore.themeColor.color">
       <template #left>
-        <view class="u-nav-slot">
+        <view class="u-navbar__content__left__item">
           <u-icon name="arrow-left" size="19" color="#fff"></u-icon>
         </view>
       </template>

+ 0 - 1
src/pages/mine/secure/loginLog/index.vue

@@ -75,7 +75,6 @@ function load() {
  */
 function refresh() {
   pageSize.value = 20;
-  total.value = 0;
   selectListApi();
 }
 

+ 54 - 30
src/static/iconfont/iconfont.css

@@ -1,8 +1,8 @@
 @font-face {
   font-family: "iconfont"; /* Project id 4510027 */
-  src: url('https://at.alicdn.com/t/c/font_4510027_28caqyvnm8n.woff2?t=1713348331486') format('woff2'),
-       url('https://at.alicdn.com/t/c/font_4510027_28caqyvnm8n.woff?t=1713348331486') format('woff'),
-       url('https://at.alicdn.com/t/c/font_4510027_28caqyvnm8n.ttf?t=1713348331486') format('truetype');
+  src: url('https://at.alicdn.com/t/c/font_4510027_fufaukfu73k.woff2?t=1713430193630') format('woff2'),
+       url('https://at.alicdn.com/t/c/font_4510027_fufaukfu73k.woff?t=1713430193630') format('woff'),
+       url('https://at.alicdn.com/t/c/font_4510027_fufaukfu73k.ttf?t=1713430193630') format('truetype');
 }
 
 .iconfont {
@@ -13,6 +13,54 @@
   -moz-osx-font-smoothing: grayscale;
 }
 
+.oaIcon-qinglihuancun:before {
+  content: "\e623";
+}
+
+.oaIcon-shaixuan:before {
+  content: "\e625";
+}
+
+.oaIcon-shezhi:before {
+  content: "\e626";
+}
+
+.oaIcon-shouji:before {
+  content: "\e627";
+}
+
+.oaIcon-jianchagengxin:before {
+  content: "\e628";
+}
+
+.oaIcon-sousuo:before {
+  content: "\e629";
+}
+
+.oaIcon-ditu:before {
+  content: "\e61d";
+}
+
+.oaIcon-dial:before {
+  content: "\e621";
+}
+
+.oaIcon-aixin:before {
+  content: "\e609";
+}
+
+.oaIcon-tongzhi:before {
+  content: "\e601";
+}
+
+.oaIcon-yanzheng:before {
+  content: "\e608";
+}
+
+.oaIcon-user:before {
+  content: "\e603";
+}
+
 .oaIcon-phone:before {
   content: "\e614";
 }
@@ -37,31 +85,15 @@
   content: "\e619";
 }
 
-.oaIcon-qinglihuancun:before {
-  content: "\e60e";
-}
-
-.oaIcon-jianchagengxin:before {
-  content: "\e610";
-}
-
 .oaIcon-fenxiang:before {
   content: "\e611";
 }
 
-.oaIcon-aixin:before {
+.oaIcon-aixin2:before {
   content: "\e612";
 }
 
-.oaIcon-user:before {
-  content: "\e613";
-}
-
-.oaIcon-yanzheng:before {
-  content: "\e601";
-}
-
-.oaIcon-tongzhi:before {
+.oaIcon-tongzhi2:before {
   content: "\e606";
 }
 
@@ -81,7 +113,7 @@
   content: "\e632";
 }
 
-.oaIcon-shezhi:before {
+.oaIcon-shezhi2:before {
   content: "\e70f";
 }
 
@@ -109,10 +141,6 @@
   content: "\e60a";
 }
 
-.oaIcon-dial:before {
-  content: "\e60b";
-}
-
 .oaIcon-address:before {
   content: "\e60f";
 }
@@ -133,7 +161,3 @@
   content: "\e61f";
 }
 
-.oaIcon-sousuo:before {
-  content: "\e61e";
-}
-

BIN
src/static/iconfont/iconfont.ttf


BIN
src/static/images/data.png


+ 121 - 265
src/static/scss/colorui.css

@@ -12,7 +12,7 @@
  ==================== */
 page {
   background-color: #f5f6f7;
-  font-size: 28upx;
+  font-size: 14px;
   color: #333333;
   font-family: Helvetica Neue, Helvetica, sans-serif;
   overflow: hidden;
@@ -782,7 +782,7 @@ button.cuIcon.lg {
   border-radius: 0;
 }
 
-.cu-tag + .cu-tag {
+.cu-tag+.cu-tag {
   margin-left: 10upx;
 }
 
@@ -797,7 +797,7 @@ button.cuIcon.lg {
   vertical-align: middle;
 }
 
-.cu-capsule + .cu-capsule {
+.cu-capsule+.cu-capsule {
   margin-left: 10upx;
 }
 
@@ -909,10 +909,18 @@ button.cuIcon.lg {
   font-size: 2.5em;
 }
 
+.cu-avatar.border {
+  border: 2px solid #eaeaea;
+}
+
 .cu-avatar .avatar-text {
   font-size: 0.4em;
 }
 
+.cu-avatar>.iconfont {
+  font-size: 70upx;
+}
+
 .cu-avatar-group {
   direction: rtl;
   unicode-bidi: bidi-override;
@@ -944,8 +952,8 @@ button.cuIcon.lg {
   width: 100%;
 }
 
-.cu-progress + view,
-.cu-progress + text {
+.cu-progress+view,
+.cu-progress+text {
   line-height: 1;
 }
 
@@ -1174,20 +1182,20 @@ button.cuIcon.lg {
   filter: grayscale(1);
 }
 
-.cu-list + .cu-list {
+.cu-list+.cu-list {
   margin-top: 30upx;
 }
 
-.cu-list > .cu-item {
+.cu-list>.cu-item {
   transition: all 0.6s ease-in-out 0s;
   transform: translateX(0upx);
 }
 
-.cu-list > .cu-item.move-cur {
+.cu-list>.cu-item.move-cur {
   transform: translateX(-260upx);
 }
 
-.cu-list > .cu-item .move {
+.cu-list>.cu-item .move {
   position: absolute;
   right: 0;
   display: flex;
@@ -1196,7 +1204,7 @@ button.cuIcon.lg {
   transform: translateX(100%);
 }
 
-.cu-list > .cu-item .move view {
+.cu-list>.cu-item .move view {
   display: flex;
   flex: 1;
   justify-content: center;
@@ -1207,7 +1215,7 @@ button.cuIcon.lg {
   overflow: hidden;
 }
 
-.cu-list.menu-avatar > .cu-item {
+.cu-list.menu-avatar>.cu-item {
   position: relative;
   display: flex;
   padding-right: 10upx;
@@ -1217,33 +1225,33 @@ button.cuIcon.lg {
   align-items: center;
 }
 
-.cu-list.menu-avatar > .cu-item > .cu-avatar {
+.cu-list.menu-avatar>.cu-item>.cu-avatar {
   position: absolute;
   left: 30upx;
 }
 
-.cu-list.menu-avatar > .cu-item .flex .text-cut {
+.cu-list.menu-avatar>.cu-item .flex .text-cut {
   max-width: 510upx;
 }
 
-.cu-list.menu-avatar > .cu-item .content {
+.cu-list.menu-avatar>.cu-item .content {
   position: absolute;
   left: 146upx;
   width: calc(100% - 96upx - 60upx - 120upx - 20upx);
   line-height: 1.6em;
 }
 
-.cu-list.menu-avatar > .cu-item .content.flex-sub {
+.cu-list.menu-avatar>.cu-item .content.flex-sub {
   width: calc(100% - 96upx - 60upx - 20upx);
 }
 
-.cu-list.menu-avatar > .cu-item .content > view:first-child {
+.cu-list.menu-avatar>.cu-item .content>view:first-child {
   font-size: 30upx;
   display: flex;
   align-items: center;
 }
 
-.cu-list.menu-avatar > .cu-item .content .cu-tag.sm {
+.cu-list.menu-avatar>.cu-item .content .cu-tag.sm {
   display: inline-block;
   margin-left: 10upx;
   height: 28upx;
@@ -1251,23 +1259,23 @@ button.cuIcon.lg {
   line-height: 32upx;
 }
 
-.cu-list.menu-avatar > .cu-item .action {
+.cu-list.menu-avatar>.cu-item .action {
   width: 100upx;
   text-align: center;
 }
 
-.cu-list.menu-avatar > .cu-item .action view + view {
+.cu-list.menu-avatar>.cu-item .action view+view {
   margin-top: 10upx;
 }
 
-.cu-list.menu-avatar.comment > .cu-item .content {
+.cu-list.menu-avatar.comment>.cu-item .content {
   position: relative;
   left: 0;
   width: auto;
   flex: 1;
 }
 
-.cu-list.menu-avatar.comment > .cu-item {
+.cu-list.menu-avatar.comment>.cu-item {
   padding: 30upx 30upx 30upx 120upx;
   height: auto;
 }
@@ -1276,7 +1284,7 @@ button.cuIcon.lg {
   align-self: flex-start;
 }
 
-.cu-list.menu > .cu-item {
+.cu-list.menu>.cu-item {
   position: relative;
   display: flex;
   padding: 0 30upx;
@@ -1287,12 +1295,12 @@ button.cuIcon.lg {
   margin: 0.625rem;
 }
 
-.cu-list.menu > .cu-item:last-child:after {
+.cu-list.menu>.cu-item:last-child:after {
   border: none;
 }
 
-.cu-list.menu-avatar > .cu-item:after,
-.cu-list.menu > .cu-item:after {
+.cu-list.menu-avatar>.cu-item:after,
+.cu-list.menu>.cu-item:after {
   position: absolute;
   top: 0;
   left: 0;
@@ -1307,19 +1315,19 @@ button.cuIcon.lg {
   pointer-events: none;
 }
 
-.cu-list.menu > .cu-item.grayscale {
+.cu-list.menu>.cu-item.grayscale {
   background-color: #f5f5f5;
 }
 
-.cu-list.menu > .cu-item.cur {
+.cu-list.menu>.cu-item.cur {
   background-color: #fcf7e9;
 }
 
-.cu-list.menu > .cu-item.arrow {
+.cu-list.menu>.cu-item.arrow {
   padding-right: 90upx;
 }
 
-.cu-list.menu > .cu-item.arrow:before {
+.cu-list.menu>.cu-item.arrow:before {
   position: absolute;
   top: 0;
   right: 30upx;
@@ -1336,33 +1344,33 @@ button.cuIcon.lg {
   line-height: 30upx;
 }
 
-.cu-list.menu > .cu-item button.content {
+.cu-list.menu>.cu-item button.content {
   padding: 0;
   background-color: transparent;
   justify-content: flex-start;
 }
 
-.cu-list.menu > .cu-item button.content:after {
+.cu-list.menu>.cu-item button.content:after {
   display: none;
 }
 
-.cu-list.menu > .cu-item .cu-avatar-group .cu-avatar {
+.cu-list.menu>.cu-item .cu-avatar-group .cu-avatar {
   border-color: #ffffff;
 }
 
-.cu-list.menu > .cu-item .content > view:first-child {
+.cu-list.menu>.cu-item .content>view:first-child {
   display: flex;
   align-items: center;
 }
 
-.cu-list.menu > .cu-item .content > text[class*="cuIcon"] {
+.cu-list.menu>.cu-item .content>text[class*="cuIcon"] {
   display: inline-block;
   margin-right: 10upx;
   width: 1.6em;
   text-align: center;
 }
 
-.cu-list.menu > .cu-item .content > image {
+.cu-list.menu>.cu-item .content>image {
   display: inline-block;
   margin-right: 10upx;
   width: 1.6em;
@@ -1370,13 +1378,13 @@ button.cuIcon.lg {
   vertical-align: middle;
 }
 
-.cu-list.menu > .cu-item .content {
+.cu-list.menu>.cu-item .content {
   font-size: 30upx;
   line-height: 1.6em;
   flex: 1;
 }
 
-.cu-list.menu > .cu-item .content .cu-tag.sm {
+.cu-list.menu>.cu-item .content .cu-tag.sm {
   display: inline-block;
   margin-left: 10upx;
   height: 28upx;
@@ -1384,7 +1392,7 @@ button.cuIcon.lg {
   line-height: 32upx;
 }
 
-.cu-list.menu > .cu-item .action .cu-tag:empty {
+.cu-list.menu>.cu-item .action .cu-tag:empty {
   right: 10upx;
 }
 
@@ -1393,12 +1401,12 @@ button.cuIcon.lg {
   overflow: hidden;
 }
 
-.cu-list.menu.sm-border > .cu-item:after {
+.cu-list.menu.sm-border>.cu-item:after {
   left: 30upx;
   width: calc(200% - 120upx);
 }
 
-.cu-list.grid > .cu-item {
+.cu-list.grid>.cu-item {
   position: relative;
   display: flex;
   padding: 20upx 0 30upx;
@@ -1406,7 +1414,7 @@ button.cuIcon.lg {
   flex-direction: column;
 }
 
-.cu-list.grid > .cu-item:after {
+.cu-list.grid>.cu-item:after {
   position: absolute;
   top: 0;
   left: 0;
@@ -1422,15 +1430,13 @@ button.cuIcon.lg {
   pointer-events: none;
 }
 
-.cu-list.grid > .cu-item text {
+.cu-list.grid>.cu-item text {
   display: block;
   margin-top: 10upx;
-  color: #333333;
-  font-size: 26upx;
   line-height: 40upx;
 }
 
-.cu-list.grid > .cu-item [class*="cuIcon"] {
+.cu-list.grid>.cu-item [class*="cuIcon"] {
   position: relative;
   display: block;
   margin-top: 20upx;
@@ -1438,7 +1444,7 @@ button.cuIcon.lg {
   font-size: 48upx;
 }
 
-.cu-list.grid > .cu-item .cu-tag {
+.cu-list.grid>.cu-item .cu-tag {
   right: auto;
   left: 50%;
   margin-left: 20upx;
@@ -1449,12 +1455,12 @@ button.cuIcon.lg {
   text-align: center;
 }
 
-.cu-list.grid.no-border > .cu-item {
+.cu-list.grid.no-border>.cu-item {
   padding-top: 10upx;
   padding-bottom: 20upx;
 }
 
-.cu-list.grid.no-border > .cu-item:after {
+.cu-list.grid.no-border>.cu-item:after {
   border: none;
 }
 
@@ -1463,9 +1469,9 @@ button.cuIcon.lg {
   padding: 0upx 0upx;
 }
 
-.cu-list.grid.col-3 > .cu-item:nth-child(3n):after,
-.cu-list.grid.col-4 > .cu-item:nth-child(4n):after,
-.cu-list.grid.col-5 > .cu-item:nth-child(5n):after {
+.cu-list.grid.col-3>.cu-item:nth-child(3n):after,
+.cu-list.grid.col-4>.cu-item:nth-child(4n):after,
+.cu-list.grid.col-5>.cu-item:nth-child(5n):after {
   border-right-width: 0;
 }
 
@@ -1565,7 +1571,7 @@ button.cuIcon.lg {
   margin-left: 20upx;
 }
 
-.cu-bar .action:first-child > text[class*="cuIcon-"] {
+.cu-bar .action:first-child>text[class*="cuIcon-"] {
   margin-left: -0.3em;
   margin-right: 0.3em;
 }
@@ -1574,12 +1580,12 @@ button.cuIcon.lg {
   margin-right: 30upx;
 }
 
-.cu-bar .action > text[class*="cuIcon-"],
-.cu-bar .action > view[class*="cuIcon-"] {
+.cu-bar .action>text[class*="cuIcon-"],
+.cu-bar .action>view[class*="cuIcon-"] {
   font-size: 36upx;
 }
 
-.cu-bar .action > text[class*="cuIcon-"] + text[class*="cuIcon-"] {
+.cu-bar .action>text[class*="cuIcon-"]+text[class*="cuIcon-"] {
   margin-left: 0.5em;
 }
 
@@ -1635,7 +1641,7 @@ button.cuIcon.lg {
   margin: 0 30upx;
 }
 
-.cu-bar .search-form + .action {
+.cu-bar .search-form+.action {
   margin-right: 30upx;
 }
 
@@ -1802,7 +1808,7 @@ button.cuIcon.lg {
   flex: 2.6;
 }
 
-.cu-bar.tabbar .submit + .submit {
+.cu-bar.tabbar .submit+.submit {
   flex: 2;
 }
 
@@ -1846,7 +1852,7 @@ button.cuIcon.lg {
   font-size: 48upx;
 }
 
-.cu-bar.input input + .action {
+.cu-bar.input input+.action {
   margin-right: 20upx;
   margin-left: 0upx;
 }
@@ -1978,18 +1984,18 @@ button.cuIcon.lg {
   display: block;
 }
 
-.cu-timeline > .cu-item {
+.cu-timeline>.cu-item {
   padding: 30upx 30upx 30upx 120upx;
   position: relative;
   display: block;
   z-index: 0;
 }
 
-.cu-timeline > .cu-item:not([class*="text-"]) {
+.cu-timeline>.cu-item:not([class*="text-"]) {
   color: #ccc;
 }
 
-.cu-timeline > .cu-item::after {
+.cu-timeline>.cu-item::after {
   content: "";
   display: block;
   position: absolute;
@@ -2001,7 +2007,7 @@ button.cuIcon.lg {
   z-index: 8;
 }
 
-.cu-timeline > .cu-item::before {
+.cu-timeline>.cu-item::before {
   font-family: "cuIcon";
   display: block;
   position: absolute;
@@ -2016,11 +2022,11 @@ button.cuIcon.lg {
   left: 36upx;
 }
 
-.cu-timeline > .cu-item:not([class*="cuIcon-"])::before {
+.cu-timeline>.cu-item:not([class*="cuIcon-"])::before {
   content: "\e763";
 }
 
-.cu-timeline > .cu-item[class*="cuIcon-"]::before {
+.cu-timeline>.cu-item[class*="cuIcon-"]::before {
   background-color: #ffffff;
   width: 50upx;
   height: 50upx;
@@ -2030,19 +2036,19 @@ button.cuIcon.lg {
   left: 36upx;
 }
 
-.cu-timeline > .cu-item > .content {
+.cu-timeline>.cu-item>.content {
   padding: 30upx;
   border-radius: 6upx;
   display: block;
   line-height: 1.6;
 }
 
-.cu-timeline > .cu-item > .content:not([class*="bg-"]) {
+.cu-timeline>.cu-item>.content:not([class*="bg-"]) {
   background-color: #f1f1f1;
   color: #333333;
 }
 
-.cu-timeline > .cu-item > .content + .content {
+.cu-timeline>.cu-item>.content+.content {
   margin-top: 20upx;
 }
 
@@ -2061,23 +2067,23 @@ button.cuIcon.lg {
   position: relative;
 }
 
-.cu-chat .cu-item > .cu-avatar {
+.cu-chat .cu-item>.cu-avatar {
   width: 80upx;
   height: 80upx;
 }
 
-.cu-chat .cu-item > .main {
+.cu-chat .cu-item>.main {
   max-width: calc(100% - 260upx);
   margin: 0 40upx;
   display: flex;
   align-items: center;
 }
 
-.cu-chat .cu-item > image {
+.cu-chat .cu-item>image {
   height: 320upx;
 }
 
-.cu-chat .cu-item > .main .content {
+.cu-chat .cu-item>.main .content {
   padding: 20upx;
   border-radius: 6upx;
   display: inline-flex;
@@ -2090,7 +2096,7 @@ button.cuIcon.lg {
   text-align: left;
 }
 
-.cu-chat .cu-item > .main .content:not([class*="bg-"]) {
+.cu-chat .cu-item>.main .content:not([class*="bg-"]) {
   background-color: #ffffff;
   color: #333333;
 }
@@ -2110,7 +2116,7 @@ button.cuIcon.lg {
   align-items: center;
 }
 
-.cu-chat .cu-item > .main .content::after {
+.cu-chat .cu-item>.main .content::after {
   content: "";
   top: 27upx;
   transform: rotate(45deg);
@@ -2125,12 +2131,12 @@ button.cuIcon.lg {
   background-color: inherit;
 }
 
-.cu-chat .cu-item.self > .main .content::after {
+.cu-chat .cu-item.self>.main .content::after {
   left: auto;
   right: -12upx;
 }
 
-.cu-chat .cu-item > .main .content::before {
+.cu-chat .cu-item>.main .content::before {
   content: "";
   top: 30upx;
   transform: rotate(45deg);
@@ -2147,12 +2153,12 @@ button.cuIcon.lg {
   opacity: 0.3;
 }
 
-.cu-chat .cu-item > .main .content:not([class*="bg-"])::before {
+.cu-chat .cu-item>.main .content:not([class*="bg-"])::before {
   background-color: #333333;
   opacity: 0.1;
 }
 
-.cu-chat .cu-item.self > .main .content::before {
+.cu-chat .cu-item.self>.main .content::before {
   left: auto;
   right: -12upx;
 }
@@ -2183,7 +2189,7 @@ button.cuIcon.lg {
   overflow: hidden;
 }
 
-.cu-card > .cu-item {
+.cu-card>.cu-item {
   display: block;
   background-color: #ffffff;
   overflow: hidden;
@@ -2191,11 +2197,11 @@ button.cuIcon.lg {
   margin: 30upx;
 }
 
-.cu-card > .cu-item.shadow-blur {
+.cu-card>.cu-item.shadow-blur {
   overflow: initial;
 }
 
-.cu-card.no-card > .cu-item {
+.cu-card.no-card>.cu-item {
   margin: 0upx;
   border-radius: 0upx;
 }
@@ -2236,13 +2242,13 @@ button.cuIcon.lg {
   display: block;
 }
 
-.cu-card.dynamic > .cu-item {
+.cu-card.dynamic>.cu-item {
   display: block;
   background-color: #ffffff;
   overflow: hidden;
 }
 
-.cu-card.dynamic > .cu-item > .text-content {
+.cu-card.dynamic>.cu-item>.text-content {
   padding: 0 30upx 0;
   max-height: 6.4em;
   overflow: hidden;
@@ -2250,13 +2256,13 @@ button.cuIcon.lg {
   margin-bottom: 20upx;
 }
 
-.cu-card.dynamic > .cu-item .square-img {
+.cu-card.dynamic>.cu-item .square-img {
   width: 100%;
   height: 200upx;
   border-radius: 6upx;
 }
 
-.cu-card.dynamic > .cu-item .only-img {
+.cu-card.dynamic>.cu-item .only-img {
   width: 100%;
   height: 320upx;
   border-radius: 6upx;
@@ -2273,11 +2279,11 @@ button.cuIcon.lg {
   display: block;
 }
 
-.cu-card.article > .cu-item {
+.cu-card.article>.cu-item {
   padding-bottom: 30upx;
 }
 
-.cu-card.article > .cu-item .title {
+.cu-card.article>.cu-item .title {
   font-size: 30upx;
   font-weight: 900;
   color: #333333;
@@ -2285,26 +2291,26 @@ button.cuIcon.lg {
   padding: 0 30upx;
 }
 
-.cu-card.article > .cu-item .content {
+.cu-card.article>.cu-item .content {
   display: flex;
   padding: 0 30upx;
 }
 
-.cu-card.article > .cu-item .content > image {
+.cu-card.article>.cu-item .content>image {
   width: 240upx;
   height: 6.4em;
   margin-right: 20upx;
   border-radius: 6upx;
 }
 
-.cu-card.article > .cu-item .content .desc {
+.cu-card.article>.cu-item .content .desc {
   flex: 1;
   display: flex;
   flex-direction: column;
   justify-content: space-between;
 }
 
-.cu-card.article > .cu-item .content .text-content {
+.cu-card.article>.cu-item .content .text-content {
   font-size: 28upx;
   color: #888;
   height: 4.8em;
@@ -2324,7 +2330,7 @@ button.cuIcon.lg {
   justify-content: space-between;
 }
 
-.cu-form-group + .cu-form-group {
+.cu-form-group+.cu-form-group {
   border-top: 1upx solid #eee;
 }
 
@@ -2344,7 +2350,7 @@ button.cuIcon.lg {
   padding-right: 20upx;
 }
 
-.cu-form-group > text[class*="cuIcon-"] {
+.cu-form-group>text[class*="cuIcon-"] {
   font-size: 36upx;
   padding: 0;
   box-sizing: border-box;
@@ -2498,11 +2504,13 @@ button.cuIcon.lg {
 .cu-modal.drawer-modal.show .cu-dialog {
   transform: translateX(0%);
 }
-.cu-modal .cu-dialog > .cu-bar:first-child .action {
+
+.cu-modal .cu-dialog>.cu-bar:first-child .action {
   min-width: 100rpx;
   margin-right: 0;
   min-height: 100rpx;
 }
+
 /* ==================
          轮播
  ==================== */
@@ -2909,7 +2917,7 @@ scroll-view.cu-steps .cu-item {
   background-color: rgba(0, 0, 0, 0.5);
 }
 
-.grid.grid-square > view > text[class*="cuIcon-"] {
+.grid.grid-square>view>text[class*="cuIcon-"] {
   font-size: 52upx;
   position: absolute;
   color: #8799a3;
@@ -2924,231 +2932,79 @@ scroll-view.cu-steps .cu-item {
   flex-direction: column;
 }
 
-.grid.grid-square > view {
+.grid.grid-square>view {
   margin-right: 20upx;
   margin-bottom: 20upx;
   border-radius: 6upx;
   position: relative;
   overflow: hidden;
 }
-.grid.grid-square > view.bg-img image {
+
+.grid.grid-square>view.bg-img image {
   width: 100%;
   height: 100%;
   position: absolute;
 }
-.grid.col-1.grid-square > view {
+
+.grid.col-1.grid-square>view {
   padding-bottom: 100%;
   height: 0;
   margin-right: 0;
 }
 
-.grid.col-2.grid-square > view {
+.grid.col-2.grid-square>view {
   padding-bottom: calc((100% - 20upx) / 2);
   height: 0;
   width: calc((100% - 20upx) / 2);
 }
 
-.grid.col-3.grid-square > view {
+.grid.col-3.grid-square>view {
   padding-bottom: calc((100% - 40upx) / 3);
   height: 0;
   width: calc((100% - 40upx) / 3);
 }
 
-.grid.col-4.grid-square > view {
+.grid.col-4.grid-square>view {
   padding-bottom: calc((100% - 60upx) / 4);
   height: 0;
   width: calc((100% - 60upx) / 4);
 }
 
-.grid.col-5.grid-square > view {
+.grid.col-5.grid-square>view {
   padding-bottom: calc((100% - 80upx) / 5);
   height: 0;
   width: calc((100% - 80upx) / 5);
 }
 
-.grid.col-2.grid-square > view:nth-child(2n),
-.grid.col-3.grid-square > view:nth-child(3n),
-.grid.col-4.grid-square > view:nth-child(4n),
-.grid.col-5.grid-square > view:nth-child(5n) {
+.grid.col-2.grid-square>view:nth-child(2n),
+.grid.col-3.grid-square>view:nth-child(3n),
+.grid.col-4.grid-square>view:nth-child(4n),
+.grid.col-5.grid-square>view:nth-child(5n) {
   margin-right: 0;
 }
 
-.grid.col-1 > view {
+.grid.col-1>view {
   width: 100%;
 }
 
-.grid.col-2 > view {
+.grid.col-2>view {
   width: 50%;
 }
 
-.grid.col-3 > view {
+.grid.col-3>view {
   width: 33.33%;
 }
 
-.grid.col-4 > view {
+.grid.col-4>view {
   width: 25%;
 }
 
-.grid.col-5 > view {
+.grid.col-5>view {
   width: 20%;
 }
 
 /*  -- 内外边距 -- */
 
-.margin-0 {
-  margin: 0 !important;
-}
-
-.margin-xs {
-  margin: 10upx;
-}
-
-.margin-sm {
-  margin: 20upx;
-}
-
-.margin {
-  margin: 30upx;
-}
-
-.margin-lg {
-  margin: 40upx;
-}
-
-.margin-xl {
-  margin: 50upx;
-}
-
-.margin-top-xs {
-  margin-top: 10upx;
-}
-
-.margin-top-sm {
-  margin-top: 20upx;
-}
-
-.margin-top {
-  margin-top: 30upx;
-}
-
-.margin-top-lg {
-  margin-top: 40upx;
-}
-
-.margin-top-xl {
-  margin-top: 50upx;
-}
-
-.margin-right-xs {
-  margin-right: 10upx;
-}
-
-.margin-right-sm {
-  margin-right: 20upx;
-}
-
-.margin-right {
-  margin-right: 30upx;
-}
-
-.margin-right-lg {
-  margin-right: 40upx;
-}
-
-.margin-right-xl {
-  margin-right: 50upx;
-}
-
-.margin-bottom-xs {
-  margin-bottom: 10upx;
-}
-
-.margin-bottom-sm {
-  margin-bottom: 20upx;
-}
-
-.margin-bottom {
-  margin-bottom: 30upx;
-}
-
-.margin-bottom-lg {
-  margin-bottom: 40upx;
-}
-
-.margin-bottom-xl {
-  margin-bottom: 50upx;
-}
-
-.margin-left-xs {
-  margin-left: 10upx;
-}
-
-.margin-left-sm {
-  margin-left: 20upx;
-}
-
-.margin-left {
-  margin-left: 30upx;
-}
-
-.margin-left-lg {
-  margin-left: 40upx;
-}
-
-.margin-left-xl {
-  margin-left: 50upx;
-}
-
-.margin-lr-xs {
-  margin-left: 10upx;
-  margin-right: 10upx;
-}
-
-.margin-lr-sm {
-  margin-left: 20upx;
-  margin-right: 20upx;
-}
-
-.margin-lr {
-  margin-left: 30upx;
-  margin-right: 30upx;
-}
-
-.margin-lr-lg {
-  margin-left: 40upx;
-  margin-right: 40upx;
-}
-
-.margin-lr-xl {
-  margin-left: 50upx;
-  margin-right: 50upx;
-}
-
-.margin-tb-xs {
-  margin-top: 10upx;
-  margin-bottom: 10upx;
-}
-
-.margin-tb-sm {
-  margin-top: 20upx;
-  margin-bottom: 20upx;
-}
-
-.margin-tb {
-  margin-top: 30upx;
-  margin-bottom: 30upx;
-}
-
-.margin-tb-lg {
-  margin-top: 40upx;
-  margin-bottom: 40upx;
-}
-
-.margin-tb-xl {
-  margin-top: 50upx;
-  margin-bottom: 50upx;
-}
-
 .padding-0 {
   padding: 0 !important;
 }
@@ -3906,4 +3762,4 @@ scroll-view.cu-steps .cu-item {
 .line-white,
 .lines-white {
   color: #ffffff;
-}
+}

+ 1 - 1
src/static/scss/index.scss

@@ -91,7 +91,7 @@
 ------------------------------- */
 @for $i from 10 through 500 {
     .font#{$i} {
-        font-size: #{$i}upx;
+        font-size: #{$i}px;
     }
 }
 

+ 0 - 66
src/static/scss/public.scss

@@ -278,70 +278,4 @@ uni-input {
   height: calc(100vh - constant(safe-area-inset-top));
   height: calc(100vh - env(safe-area-inset-top));
   //#endif
-}
-
-//公共悬浮窗
-.app-common-notice {
-  position: relative;
-  margin-top: -20px;
-  z-index: 50;
-
-  .info {
-    padding: 10px;
-
-    .info-header {
-      display: flex;
-
-      .info-title {
-        margin: auto auto auto 0;
-        color: #000000;
-      }
-
-      .info-time {
-        margin: auto 0 auto 0;
-        color: #909399
-      }
-    }
-
-    .info-center {
-      white-space: nowrap;
-      overflow: hidden;
-      text-overflow: ellipsis; //溢出用省略号显示
-      color: #909399
-    }
-  }
-
-  .weather {
-    padding: 10px;
-    background-image: url("@/static/images/index/weather.png");
-    background-size: 100% 100%;
-    background-position: center center;
-    background-repeat: no-repeat;
-
-
-    .weather-header {
-      display: flex;
-      margin-bottom: 10px;
-      font-size: 14px;
-
-      .iconfont {
-        margin: auto 5px auto 0;
-        color: #0c83fa;
-      }
-    }
-
-    .weather-center {
-      display: flex;
-
-      .temperature {
-        margin: auto auto auto 0;
-        font-size: 18px;
-        font-weight: 600;
-      }
-
-      .image {
-        margin: 0 0 0 0;
-      }
-    }
-  }
 }

+ 41 - 0
src/static/scss/sidebar.scss

@@ -122,6 +122,47 @@ uni-button[type='primary'] {
     .u-navbar--fixed {
         .u-navbar__content {
             @include background_color('themeColor');
+
+            &__title {
+                font-weight: bold;
+            }
+
+            &__left {
+                &__item {
+                    &__title {
+                        font-size: $uni-font-size-lg;
+                        font-weight: bold;
+                        color: $uni-text-color-inverse;
+                        font-size: 18px;
+                    }
+                }
+            }
+
+            &__center {
+                &__item {
+                    font-weight: bold;
+                    font-size: $uni-font-size-lg;
+                    color: $uni-text-color-inverse;
+                }
+            }
+
+            &__right {
+                &__item {
+                    font-size: $uni-font-size-lg;
+                    color: $uni-text-color-inverse;
+                    margin-left: 13px;
+
+                    span {
+                        font-size: $uni-font-size-sm;
+                    }
+                }
+            }
+
+            .iconfont {
+                color: $uni-text-color-inverse;
+                font-size: 20px;
+                line-height: 44px;
+            }
         }
     }
 }

+ 79 - 33
src/store/modules/setting.js

@@ -1,5 +1,6 @@
 
 import { defineStore } from "pinia";
+import config from "@/config";
 import storage from "@/utils/storage";
 import modal from "@/plugins/modal.plugins.js";
 import tab from "@/plugins/tab.plugins.js";
@@ -8,6 +9,7 @@ import { useStores } from "@/store/modules/index";
 
 import { uploadAvatar, updateUserProfile } from "@/api/system/user";
 import { baseAppInfoApi } from "@/api/common/index";
+import { checkUpdates } from "@/api/system/setting";
 
 const settingStore = defineStore("storage-setting", {
     state: () => ({
@@ -113,6 +115,46 @@ const settingStore = defineStore("storage-setting", {
             });
         },
 
+        /**
+         * @点击登录
+         */
+        handleToLogin() {
+            tab.reLaunch("/pages/login");
+        },
+
+        /**
+         * @点击头像
+         */
+        handleToAvatar(type) {
+            if (type == 1) {
+                uni.chooseImage({
+                    count: 1, //默认9
+                    sizeType: ["original", "compressed"], //可以指定是原图还是压缩图,默认二者都有
+                    sourceType: ["album", "camera"], //从相册选择、摄像头
+                    success: function (res) {
+                        this.uploadApi(res);
+                    },
+                });
+            } else if (type == 2) {
+                tab.navigateTo("/pages/mine/avatar/index");
+            }
+        },
+
+        /**
+         * @upload上传头像
+         * @api接口请求
+         */
+        uploadApi(res) {
+            const useStore = useStores();
+            let data = { name: "file", filePath: res.tempFilePaths[0] };
+            uploadAvatar(data).then((response) => {
+                useStore.$state.avatar = response.data.url;
+                updateUserProfile({
+                    avatar: response.data.url,
+                }).then(() => { });
+            });
+        },
+
         /**
          * @常见问题
          */
@@ -151,6 +193,43 @@ const settingStore = defineStore("storage-setting", {
             // #endif
         },
 
+        /**
+         * @检查更新
+         */
+        handleToUpgrade({ success, error }) {
+            let data = {
+                _api_key: "fba7440cd37400b6ff46e303896af4df",
+                appKey: "cbd3508235d03365f4253f6aae6b68ab",
+                buildVersion: config.appInfo.version,
+            };
+
+            modal.loading("加载中");
+            checkUpdates(data).then((res) => {
+                if (res.code == 0) {
+                    let platform = uni.getSystemInfoSync().platform; //手机平台
+
+                    if (res.data.buildHaveNewVersion == true) {
+                        //安卓手机弹窗升级
+                        if (platform === "android") {
+                            success(res)
+                        }
+                        //IOS无法在线升级提示到商店下载
+                        else {
+                            uni.showModal({
+                                title: "发现新版本 " + res.data.buildVersion,
+                                content: "请到App store进行升级",
+                                showCancel: false,
+                            });
+                        }
+                    } else {
+                        modal.msg("您的软件版本已是最新");
+                    }
+
+                    modal.closeLoading();
+                }
+            });
+        },
+
         /**
          * @新消息通知
          */
@@ -184,39 +263,6 @@ const settingStore = defineStore("storage-setting", {
             });
         },
 
-        /**
-         * @点击头像
-         */
-        handleToAvatar(type) {
-            if (type == 1) {
-                uni.chooseImage({
-                    count: 1, //默认9
-                    sizeType: ["original", "compressed"], //可以指定是原图还是压缩图,默认二者都有
-                    sourceType: ["album", "camera"], //从相册选择、摄像头
-                    success: function (res) {
-                        this.uploadApi(res);
-                    },
-                });
-            } else if (type == 2) {
-                tab.navigateTo("/pages/mine/avatar/index");
-            }
-        },
-
-        /**
-         * @upload上传头像
-         * @api接口请求
-         */
-        uploadApi(res) {
-            const useStore = useStores();
-            let data = { name: "file", filePath: res.tempFilePaths[0] };
-            uploadAvatar(data).then((response) => {
-                useStore.$state.avatar = response.data.url;
-                updateUserProfile({
-                    avatar: response.data.url,
-                }).then(() => { });
-            });
-        },
-
         SET_THEMECOLOR(themeColor) {
             this.themeColor = themeColor;
             storage.set("themeColor", themeColor);