Browse Source

部分页面功能优化

fanghuisheng 1 year ago
parent
commit
857734b09f
56 changed files with 1562 additions and 839 deletions
  1. 0 13
      index.html
  2. 6 32
      src/App.vue
  3. 9 0
      src/api/business/fireIot/facilitiesGather/index.js
  4. 3 3
      src/components/oa-tabbar/index.vue
  5. 1 1
      src/config.js
  6. 1 1
      src/manifest.json
  7. 70 97
      src/pages.json
  8. 1 78
      src/pages/business/fireIot/deviceSelect/components/chart.vue
  9. 2 2
      src/pages/business/fireIot/deviceSelect/components/deviceDetails.vue
  10. 2 4
      src/pages/business/fireIot/deviceSelect/components/deviceDetailsList.vue
  11. 223 42
      src/pages/business/fireIot/facilitiesGather/index.vue
  12. 87 0
      src/pages/business/fireIot/facilitiesGather/mapGather.vue
  13. 0 2
      src/pages/business/fireIot/facilitiesManage/index.vue
  14. 6 6
      src/pages/business/fireIot/facilitiesView/facilitiesDetails.vue
  15. 4 6
      src/pages/business/fireIot/facilitiesView/facilitiesDetailsList.vue
  16. 0 2
      src/pages/business/fireIot/facilitiesView/index.vue
  17. 8 1
      src/pages/business/mhxf/coordination/index.vue
  18. 2 2
      src/pages/business/mhxf/deviceManage/index.vue
  19. 8 8
      src/pages/business/mhxf/fireReport/components/detailed.vue
  20. 1 1
      src/pages/business/mhxf/fireReport/components/detailedPath.vue
  21. 2 2
      src/pages/business/mhxf/informationSelect/index.vue
  22. 7 7
      src/pages/business/mhxf/needMatter/index.vue
  23. 176 0
      src/pages/business/mhxf/xunJian/components/chart.vue
  24. 0 158
      src/pages/business/mhxf/xunJian/components/echarts/chart.vue
  25. 17 27
      src/pages/business/mhxf/xunJian/plan/components/content.vue
  26. 4 4
      src/pages/business/mhxf/xunJian/plan/components/report.vue
  27. 4 10
      src/pages/business/mhxf/xunJian/plan/components/siteDetails.vue
  28. 10 11
      src/pages/business/mhxf/xunJian/plan/index.vue
  29. 0 1
      src/pages/business/mhxf/xunJian/record/record.vue
  30. 4 8
      src/pages/business/mhxf/xunJian/xunJian.vue
  31. 3 3
      src/pages/business/zhxf/building/index.vue
  32. 0 1
      src/pages/business/zhxf/funReport/index.vue
  33. 0 6
      src/pages/common/textview/index.vue
  34. 0 6
      src/pages/common/textview/index1.vue
  35. 15 27
      src/pages/index.vue
  36. 1 1
      src/pages/info.vue
  37. 4 3
      src/pages/info/pushList/pushList.vue
  38. 15 42
      src/pages/login.vue
  39. 467 0
      src/pages/mine.vue
  40. 5 4
      src/pages/mine/about/index.vue
  41. 1 1
      src/pages/mine/index.vue
  42. 1 1
      src/pages/mine/info/index.vue
  43. 1 1
      src/pages/mine/secure/index.vue
  44. 24 9
      src/pages/serveConfig.vue
  45. 4 2
      src/pages/serveConfigSelect.vue
  46. 154 0
      src/plugins/grid.plugins.js
  47. 4 0
      src/plugins/index.js
  48. 18 28
      src/static/amap/coordination.html
  49. 159 0
      src/static/amap/mapGather.html
  50. 0 154
      src/static/js/json.js
  51. 1 1
      src/static/scss/colorui.css
  52. 5 3
      src/static/scss/public.scss
  53. 3 1
      src/static/scss/sidebar.scss
  54. 1 7
      src/store/modules/public.js
  55. 4 2
      src/store/modules/setting.js
  56. 14 7
      src/utils/jssdk.js

+ 0 - 13
index.html

@@ -14,19 +14,6 @@
 			(coverSupport ? ', viewport-fit=cover' : '') + '" />')
 	</script>
 
-	<!-- 高德地图 -->
-	<script type="text/javascript">
-		window._AMapSecurityConfig = {
-			securityJsCode: 'be916fcd16d0b33d228c49f0ff096b17',
-		}
-	</script>
-	<script type="text/javascript" src="https://webapi.amap.com/maps?v=2.0&key=d4d73a7d572b6ff6028d5f67de62029a">
-	</script>
-
-	<!-- <script type="text/javascript" src="https://webapi.amap.com/maps?v=2.0&key=ffc71dfd4e576596027f8f45a1b8fb2f">
-	</script> -->
-	<!-- <script src="https://webapi.amap.com/loader.js"></script> -->
-	<!-- <script type="text/javascript" src="//webapi.amap.com/ui/1.1/main.js"></script> -->
 	<title></title>
 	<!--preload-links-->
 	<!--app-context-->

+ 6 - 32
src/App.vue

@@ -1,6 +1,5 @@
 <script setup>
 import config from "./config";
-import store from "@/store";
 import { getToken, setToken, removeToken } from "@/utils/auth";
 
 import { defineComponent, getCurrentInstance, inject, nextTick, onMounted, watchEffect } from "vue";
@@ -10,29 +9,12 @@ let tab = inject("$tab");
 const { proxy } = getCurrentInstance();
 
 function initApp() {
-  // 初始化应用配置
-  initConfig();
-  // 检查用户登录状态
-  //#ifdef H5
-  // checkLogin();
-  //#endif
-
   //初始化获取安全区高度
   proxy.$settingStore.systemHeightTop();
 }
 
-function initConfig() {
-  getApp().globalData.config = config;
-}
-
-function checkLogin() {
-  if (!getToken()) {
-    proxy.$tab.reLaunch("/pages/login");
-  }
-}
-
 watchEffect(() => {
-  //#ifdef APP-PLUS
+  //#ifdef APP-PLUS || MP-WEIXIN
   if (uni.getStorageSync("serveUrl")) {
     config.baseUrl = "http://" + uni.getStorageSync("serveUrl") + "/prod-api";
   }
@@ -42,13 +24,13 @@ watchEffect(() => {
 onLaunch(() => {
   console.log("App Launch");
 
-  // #ifdef APP-PLUS || H5
+  //#ifdef APP-PLUS || MP-WEIXIN || H5
   uni.hideTabBar(); //隐藏自带tabbar
-  // #endif
+  //#endif
 
-  // #ifdef APP-PLUS
+  //#ifdef APP-PLUS
   plus.screen.lockOrientation("portrait-primary"); //设置不可横屏
-  // #endif
+  //#endif
 
   //初始化默认主题
   if (!proxy.$settingStore.$state.themeColor) {
@@ -57,14 +39,6 @@ onLaunch(() => {
     proxy.$settingStore.SET_THEMECOLOR(proxy.$settingStore.$state.themeColor);
   }
 
-  // setToken(
-  //   "eyJhbGciOiJIUzUxMiJ9.eyIiOjEwMzIsInVzZXJfaWQiOjYzLCJ1c2VyX2tleSI6IjYwMjNkZjg1OTIyODRlYTM5MmEwMWEzMzgyOTViZmRhIiwidXNlcm5hbWUiOiJmaHMxIn0.6GsrVyPh7T3vWmX6iB1fPv3wi-noOtgGcrDwBPctB3LLGcWqw89He6DK7waMCWZFBsOy0HLRD2PJdQs489hAxw"
-  // );
-  // proxy.$tab.reLaunch("/pages/mine/index");
-  // proxy.$tab.reLaunch("/pages/index");
-  // proxy.$tab.reLaunch("/pages/info/info");
-  // proxy.$tab.reLaunch("/pages/business/mhxf/xunJian/collect/index");
-
   initApp();
 });
 
@@ -101,7 +75,7 @@ uni-page-refresh {
 //默认头部导航title样式
 :deep(.uni-page-head__title) {
   font-size: 16px;
-  font-weight: 600;
+  font-weight: bold;
 }
 
 //uview-plus导航栏title样式

+ 9 - 0
src/api/business/fireIot/facilitiesGather/index.js

@@ -26,3 +26,12 @@ export function uploadAvatar(data) {
         filePath: data.filePath,
     });
 }
+
+// 部门下拉数据请求
+export function treeselect(param) {
+    return request({
+        url: "/system/dept/treeselect",
+        method: "GET",
+        data: param,
+    });
+}

+ 3 - 3
src/components/oa-tabbar/index.vue

@@ -1,5 +1,5 @@
 <template>
-  <u-tabbar :value="tabbarValue" @change="tabbarChange" :fixed="true" :placeholder="true" :safeAreaInsetBottom="true" :activeColor="proxy.$settingStore.themeColor.color">
+  <u-tabbar :value="tabbarValue" @change="tabbarChange" :fixed="true" :placeholder="true" :safeAreaInsetBottom="true" :border="false" :activeColor="proxy.$settingStore.themeColor.color">
     <u-tabbar-item :text="tab.text" v-for="(tab, index) in tabbarList" :key="index" :dot="tab.dot">
       <template #active-icon>
         <image style="width: 24px; height: 24px" :src="proxy.$settingStore.themeColor.tabList[index]"></image>
@@ -40,14 +40,14 @@ const tabbarList = ref([
   //   "text": "分析"
   // },
   {
-    pagePath: "/pages/info/info",
+    pagePath: "/pages/info",
     iconPath: "/static/images/tabBar/tab-info.png",
     selectedIconPath: "/static/images/tabBar/tab-info-blue.png",
     text: "消息",
     dot: true,
   },
   {
-    pagePath: "/pages/mine/index",
+    pagePath: "/pages/mine",
     iconPath: "/static/images/tabBar/tab-my.png",
     selectedIconPath: "/static/images/tabBar/tab-my-blue.png",
     text: "我的",

+ 1 - 1
src/config.js

@@ -1,6 +1,6 @@
 // 应用全局配置
 export default {
-  //#ifdef APP-PLUS
+  //#ifdef APP-PLUS || MP-WEIXIN
   baseUrl: "http://mobile.usky.cn:8099/prod-api",
   //#endif
 

+ 1 - 1
src/manifest.json

@@ -151,7 +151,7 @@
                 }
             }
         },
-        "safearea" : {
+        "safearea" : { //可选,JSON对象,安全区域配置
             "offset" : "none"
         }
     },

+ 70 - 97
src/pages.json

@@ -36,7 +36,19 @@
       }
     },
     {
-      "path": "pages/mine/index",
+      "path": "pages/info",
+      "style": {
+        "navigationBarTitleText": "消息",
+        "navigationStyle": "custom",
+        "enablePullDownRefresh": false,
+        "app-plus": {
+          "bounce": "none",
+          "titleNView": false
+        }
+      }
+    },
+    {
+      "path": "pages/mine",
       "style": {
         // "disableScroll": true,
         "navigationBarTitleText": "我的",
@@ -62,46 +74,46 @@
       "root": "pages/common",
       "pages": [
         {
-          "path": "/webview/index",
+          "path": "webview/index",
           "style": {
             "navigationBarTitleText": "浏览网页"
           }
         },
         {
-          "path": "/textview/index",
+          "path": "textview/index",
           "style": {
             "navigationBarTitleText": "浏览文本"
           }
         },
         {
-          "path": "/textview/index1",
+          "path": "textview/index1",
           "style": {
             "navigationBarTitleText": "浏览文本"
           }
         },
         {
-          "path": "/export/index",
+          "path": "export/index",
           "style": {
             "navigationBarTitleText": "导出",
             "enablePullDownRefresh": false
           }
         },
         {
-          "path": "/square/index",
+          "path": "square/index",
           "style": {
             "navigationBarTitleText": "",
             "enablePullDownRefresh": false
           }
         },
         {
-          "path": "/authority/index",
+          "path": "authority/index",
           "style": {
             "navigationBarTitleText": "授权",
             "enablePullDownRefresh": false
           }
         },
         {
-          "path": "/test/index",
+          "path": "test/index",
           "style": {
             "navigationBarTitleText": "",
             "enablePullDownRefresh": false
@@ -114,13 +126,7 @@
       "root": "pages/mine",
       "pages": [
         {
-          "path": "/setting/index",
-          "style": {
-            "navigationBarTitleText": "设置"
-          }
-        },
-        {
-          "path": "/info/index",
+          "path": "info/index",
           "style": {
             "navigationBarTitleText": "我的信息"
             // "app-plus": {
@@ -136,13 +142,13 @@
           }
         },
         {
-          "path": "/secure/index",
+          "path": "secure/index",
           "style": {
             "navigationBarTitleText": "账号与安全"
           }
         },
         {
-          "path": "/avatar/index",
+          "path": "avatar/index",
           "style": {
             "navigationBarTitleText": "修改头像"
             // "app-plus": {
@@ -152,7 +158,7 @@
           }
         },
         {
-          "path": "/help/index",
+          "path": "help/index",
           "style": {
             "navigationBarTitleText": "常见问题",
             "navigationStyle": "custom",
@@ -163,7 +169,7 @@
           }
         },
         {
-          "path": "/about/index",
+          "path": "about/index",
           "style": {
             "navigationBarTitleText": "关于我们",
             "navigationStyle": "custom",
@@ -180,33 +186,21 @@
       "root": "pages/info",
       "pages": [
         {
-          "path": "/info",
-          "style": {
-            "navigationBarTitleText": "消息",
-            "navigationStyle": "custom",
-            "enablePullDownRefresh": false,
-            "app-plus": {
-              "bounce": "none",
-              "titleNView": false
-            }
-          }
-        },
-        {
-          "path": "/fireBase/fireBase",
+          "path": "fireBase/fireBase",
           "style": {
             "navigationBarTitleText": "消防知识库",
             "enablePullDownRefresh": false
           }
         },
         {
-          "path": "/pushList/pushList",
+          "path": "pushList/pushList",
           "style": {
             "navigationBarTitleText": "消息推送",
             "enablePullDownRefresh": false
           }
         },
         {
-          "path": "/fireBashDetail/fireBashDetail",
+          "path": "fireBashDetail/fireBashDetail",
           "style": {
             "navigationBarTitleText": "火灾逃生十大要诀",
             "enablePullDownRefresh": false
@@ -222,56 +216,56 @@
         //消防督察单模块 结束
         //巡检模块 开始
         {
-          "path": "/xunJian/xunJian",
+          "path": "xunJian/xunJian",
           "style": {
             "navigationBarTitleText": "巡检",
             "enablePullDownRefresh": false
           }
         },
         {
-          "path": "/xunJian/plan/index",
+          "path": "xunJian/plan/index",
           "style": {
             "navigationBarTitleText": "巡检计划",
             "enablePullDownRefresh": false
           }
         },
         {
-          "path": "/xunJian/plan/components/siteDetails",
+          "path": "xunJian/plan/components/siteDetails",
           "style": {
             "navigationBarTitleText": "站点详情",
             "enablePullDownRefresh": false
           }
         },
         {
-          "path": "/xunJian/plan/components/content",
+          "path": "xunJian/plan/components/content",
           "style": {
             "navigationBarTitleText": "巡检内容",
             "enablePullDownRefresh": false
           }
         },
         {
-          "path": "/xunJian/plan/components/report",
+          "path": "xunJian/plan/components/report",
           "style": {
             "navigationBarTitleText": "巡检上报",
             "enablePullDownRefresh": false
           }
         },
         {
-          "path": "/xunJian/record/record",
+          "path": "xunJian/record/record",
           "style": {
             "navigationBarTitleText": "巡检记录",
             "enablePullDownRefresh": false
           }
         },
         {
-          "path": "/xunJian/record/recordDetail/index",
+          "path": "xunJian/record/recordDetail/index",
           "style": {
             "navigationBarTitleText": "巡检记录详情",
             "enablePullDownRefresh": false
           }
         },
         {
-          "path": "/xunJian/collect/index",
+          "path": "xunJian/collect/index",
           "style": {
             "navigationBarTitleText": "点位采集",
             "enablePullDownRefresh": false,
@@ -292,14 +286,14 @@
           }
         },
         {
-          "path": "/xunJian/collect/components/collectDetail",
+          "path": "xunJian/collect/components/collectDetail",
           "style": {
             "navigationBarTitleText": "采集上报",
             "enablePullDownRefresh": false
           }
         },
         {
-          "path": "/xunJian/collect/components/collectRecord",
+          "path": "xunJian/collect/components/collectRecord",
           "style": {
             "navigationBarTitleText": "采集记录",
             "enablePullDownRefresh": false,
@@ -322,14 +316,14 @@
         //巡检模块 结束
         //信息查询 开始
         {
-          "path": "/informationSelect/index",
+          "path": "informationSelect/index",
           "style": {
             "navigationBarTitleText": "信息查询",
             "enablePullDownRefresh": false
           }
         },
         {
-          "path": "/informationSelect-test/index",
+          "path": "informationSelect-test/index",
           "style": {
             "navigationBarTitleText": "信息查询",
             "enablePullDownRefresh": false
@@ -338,7 +332,7 @@
         //信息查询 结束
         //设备管理 开始
         {
-          "path": "/deviceManage/index",
+          "path": "deviceManage/index",
           "style": {
             "navigationBarTitleText": "设备管理",
             "enablePullDownRefresh": false
@@ -347,7 +341,7 @@
         //设备管理 结束
         //协同作战地图 开始
         {
-          "path": "/coordination/index",
+          "path": "coordination/index",
           "style": {
             "navigationBarTitleText": "协同作战地图",
             "enablePullDownRefresh": false
@@ -356,7 +350,7 @@
         //协同作战地图 结束
         //单位信息采集 开始
         {
-          "path": "/unitInfoCollection/index",
+          "path": "unitInfoCollection/index",
           "style": {
             "navigationBarTitleText": "单位信息采集",
             "enablePullDownRefresh": false
@@ -365,21 +359,21 @@
         //单位信息采集 结束
         //消防报告 开始
         {
-          "path": "/fireReport/index",
+          "path": "fireReport/index",
           "style": {
             "navigationBarTitleText": "消防报告",
             "enablePullDownRefresh": false
           }
         },
         {
-          "path": "/fireReport/components/detailed",
+          "path": "fireReport/components/detailed",
           "style": {
             "navigationBarTitleText": "消防报告",
             "enablePullDownRefresh": false
           }
         },
         {
-          "path": "/fireReport/components/detailedPath",
+          "path": "fireReport/components/detailedPath",
           "style": {
             "navigationBarTitleText": "消防报告",
             "enablePullDownRefresh": false
@@ -388,7 +382,7 @@
         //消防报告 结束
         //待办事项 开始
         {
-          "path": "/needMatter/index",
+          "path": "needMatter/index",
           "style": {
             "navigationBarTitleText": "待办事项",
             "enablePullDownRefresh": false
@@ -402,21 +396,21 @@
       "root": "pages/business/zhxf",
       "pages": [
         {
-          "path": "/messagePush/index",
+          "path": "messagePush/index",
           "style": {
             "navigationBarTitleText": "消息推送设置",
             "enablePullDownRefresh": false
           }
         },
         {
-          "path": "/building/index",
+          "path": "building/index",
           "style": {
             "navigationBarTitleText": "建筑管理",
             "enablePullDownRefresh": false
           }
         },
         {
-          "path": "/funReport/index",
+          "path": "funReport/index",
           "style": {
             "navigationBarTitleText": "功能报备",
             "enablePullDownRefresh": false,
@@ -424,7 +418,7 @@
           }
         },
         {
-          "path": "/funReport/funcAdd/index",
+          "path": "funReport/funcAdd/index",
           "style": {
             "navigationBarTitleText": "功能报备新增",
             "enablePullDownRefresh": false
@@ -437,84 +431,63 @@
       "root": "pages/business/fireIot",
       "pages": [
         {
-          "path": "/deviceSelect/index",
+          "path": "deviceSelect/index",
           "style": {
             "navigationBarTitleText": "设备查询",
             "enablePullDownRefresh": false
           }
         },
         {
-          "path": "/deviceSelect/components/deviceDetailsList",
+          "path": "deviceSelect/components/deviceDetailsList",
           "style": {
             "navigationBarTitleText": "",
-            "enablePullDownRefresh": false,
-            "app-plus": {
-              "titleNView": {
-                "buttons": [
-                  {
-                    "text": "\ue7c7",
-                    "fontSize": "18px",
-                    // "redDot": true,
-                    "float": "right",
-                    "fontSrc": "/static/iconfont/iconfont.ttf",
-                    "width": "auto"
-                  }
-                ]
-              }
-            }
+            "enablePullDownRefresh": false
           }
         },
         {
-          "path": "/deviceSelect/components/deviceDetails",
+          "path": "deviceSelect/components/deviceDetails",
           "style": {
             "navigationBarTitleText": "设备详情",
             "enablePullDownRefresh": false
           }
         },
         {
-          "path": "/facilitiesManage/index",
+          "path": "facilitiesManage/index",
           "style": {
             "navigationBarTitleText": "设施管理",
             "enablePullDownRefresh": false
           }
         },
         {
-          "path": "/facilitiesGather/index",
+          "path": "facilitiesGather/index",
           "style": {
             "navigationBarTitleText": "设施采集",
             "enablePullDownRefresh": false
           }
         },
         {
-          "path": "/facilitiesView/index",
+          "path": "facilitiesGather/mapGather",
+          "style": {
+            "navigationBarTitleText": "地图采集",
+            "enablePullDownRefresh": false
+          }
+        },
+        {
+          "path": "facilitiesView/index",
           "style": {
             "navigationBarTitleText": "设施查看",
             "enablePullDownRefresh": false
           }
         },
         {
-          "path": "/facilitiesView/facilitiesDetailsList",
+          "path": "facilitiesView/facilitiesDetailsList",
           "style": {
             "navigationBarTitleText": "",
-            "enablePullDownRefresh": false,
-            "app-plus": {
-              "titleNView": {
-                "buttons": [
-                  {
-                    "text": "\ue7c7",
-                    "fontSize": "18px",
-                    // "redDot": true,
-                    "float": "right",
-                    "fontSrc": "/static/iconfont/iconfont.ttf",
-                    "width": "auto"
-                  }
-                ]
-              }
-            }
+            "enablePullDownRefresh": false
           }
         },
         {
-          "path": "/facilitiesView/facilitiesDetails",
+          "path": "facilitiesView/facilitiesDetails",
           "style": {
             "navigationBarTitleText": "设施详情",
             "enablePullDownRefresh": false
@@ -548,13 +521,13 @@
       //   "text": "分析"
       // },
       {
-        "pagePath": "pages/info/info",
+        "pagePath": "pages/info",
         "iconPath": "/static/images/tabBar/tab-info.png",
         "selectedIconPath": "/static/images/tabBar/tab-info-blue.png",
         "text": "消息"
       },
       {
-        "pagePath": "pages/mine/index",
+        "pagePath": "pages/mine",
         "iconPath": "/static/images/tabBar/tab-my.png",
         "selectedIconPath": "/static/images/tabBar/tab-my-blue.png",
         "text": "我的"

+ 1 - 78
src/pages/business/fireIot/deviceSelect/components/chart.vue

@@ -21,84 +21,7 @@ let myChart;
 let option;
 
 var legendData = [];
-var seriesData = [
-  {
-    name: "告警次数",
-    type: "line",
-    data: [
-      ["2023-06-07", 9],
-      ["2023-06-08", 12],
-      ["2023-06-09", 13],
-      ["2023-06-10", 12],
-      ["2023-06-11", 25],
-      ["2023-06-12", 4],
-      ["2023-06-13", 59],
-      ["2023-06-14", 3],
-    ],
-    emphasis: {
-      focus: "series",
-      blurScope: "coordinateSystem",
-    },
-    symbolSize: 5,
-  },
-  {
-    name: "处理次数",
-    type: "line",
-    data: [
-      ["2023-06-07", 0],
-      ["2023-06-08", 0],
-      ["2023-06-09", 0],
-      ["2023-06-10", 0],
-      ["2023-06-11", 0],
-      ["2023-06-12", 0],
-      ["2023-06-13", 0],
-      ["2023-06-14", 0],
-    ],
-    emphasis: {
-      focus: "series",
-      blurScope: "coordinateSystem",
-    },
-    symbolSize: 5,
-  },
-  {
-    name: "告警次数1",
-    type: "line",
-    data: [
-      ["2023-06-07", 9],
-      ["2023-06-08", 12],
-      ["2023-06-09", 13],
-      ["2023-06-10", 12],
-      ["2023-06-11", 25],
-      ["2023-06-12", 4],
-      ["2023-06-13", 59],
-      ["2023-06-14", 3],
-    ],
-    emphasis: {
-      focus: "series",
-      blurScope: "coordinateSystem",
-    },
-    symbolSize: 5,
-  },
-  {
-    name: "处理次数1",
-    type: "line",
-    data: [
-      ["2023-06-07", 0],
-      ["2023-06-08", 0],
-      ["2023-06-09", 0],
-      ["2023-06-10", 0],
-      ["2023-06-11", 0],
-      ["2023-06-12", 0],
-      ["2023-06-13", 0],
-      ["2023-06-14", 0],
-    ],
-    emphasis: {
-      focus: "series",
-      blurScope: "coordinateSystem",
-    },
-    symbolSize: 5,
-  },
-];
+var seriesData = [];
 
 function initData() {
   legendData = [];

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

@@ -16,7 +16,7 @@
       </view>
 
       <view class="bg-white padding-15 margin-b-15">
-        <uni-section class="margin-b-10" title="基本信息" type="line"></uni-section>
+        <uni-section class="block margin-b-10" title="基本信息" type="line"></uni-section>
 
         <view class="tableType3 padding-0">
           <u-empty v-if="dataList.length <= 0" text="暂无数据" mode="data" icon="http://cdn.uviewui.com/uview/empty/data.png"> </u-empty>
@@ -35,7 +35,7 @@
       <view class="bg-white padding-15 margin-b-15">
         <!-- 分段器组件 -->
         <view class="app-subsection">
-          <u-subsection :list="list" :current="tabPosition" inactiveColor="#303133" :activeColor="proxy.$settingStore.themeColor.color" @change="tabPositionChange"></u-subsection>
+          <u-subsection :list="list" :current="tabPosition" inactiveColor="#303133" :activeColor="proxy.$settingStore.themeColor.color" @change="tabPositionChange" style="width: 100%"></u-subsection>
         </view>
 
         <view v-if="tabPosition == 1">

+ 2 - 4
src/pages/business/fireIot/deviceSelect/components/deviceDetailsList.vue

@@ -1,6 +1,6 @@
 <template>
   <scroll-view class="scroll-height" :scroll-y="true" :data-theme="'theme-' + proxy.$settingStore.themeColor.name">
-    <u-sticky class="example-body" style="top: 0px" v-if="show">
+    <u-sticky class="example-body" style="top: 0px">
       <view class="padding-sm padding-tb-10" :class="'bg-' + proxy.$settingStore.themeColor.name">
         <u--input
           v-model="deviceName"
@@ -23,7 +23,7 @@
         </view>
       </view>
 
-      <uni-pagination class="app-pagination bg-white" :current="current" :total="total" :pageSize="pageSize" prev-text="上一页" next-text="下一页" @change="paginationChange" />
+      <uni-pagination class="block app-pagination bg-white" :current="current" :total="total" :pageSize="pageSize" prev-text="上一页" next-text="下一页" @change="paginationChange" />
     </view>
   </scroll-view>
 </template>
@@ -40,7 +40,6 @@ const publicStore = publicStores();
 
 const dataList = ref([]);
 
-const show = ref(false);
 const deviceName = ref("");
 const productId = ref("");
 const productName = ref("");
@@ -102,7 +101,6 @@ onLoad((options) => {
 // 自定义导航事件
 onNavigationBarButtonTap((e) => {
   if (e.float == "right") {
-    show.value = !show.value;
   } else {
   }
 });

+ 223 - 42
src/pages/business/fireIot/facilitiesGather/index.vue

@@ -1,11 +1,11 @@
 <template>
   <scroll-view class="scroll-height" :scroll-y="true" :data-theme="'theme-' + proxy.$settingStore.themeColor.name">
-    <view id="unitInfoCollection" v-if="!successBool">
+    <view id="facilitiesGather" v-if="!successBool">
       <view class="centerOne">
-        <view class="title"> </view>
+        <!-- <view class="title"> </view> -->
 
         <u--form :model="form" ref="uForm" :rules="rules" labelWidth="90">
-          <view style="padding: 10px 0">
+          <view>
             <view style="padding: 10px 10px 20px 10px; background: #ffffff">
               <view style="padding-left: 9px">
                 <u-form-item label="所属部门" prop="department" :borderBottom="true" @click="handleAction('所属部门')" required>
@@ -35,7 +35,12 @@
                     <u-input v-model="form.facilityAddress" placeholder="请输入详细地址" border="none" />
                   </view>
                 </u-form-item>
-                <u-form-item label="表现形式" prop="gpsAreas" :borderBottom="true" @click="handleAction('表现形式')" required> </u-form-item>
+                <u-form-item v-if="!form.typeGuise == 1" label="类型" prop="gpsAreas" :borderBottom="true" @click="handleAction('类型')" required>
+                  <view>{{ form.typeGuise == 1 ? "点" : form.typeGuise == 2 ? "线" : form.typeGuise == 3 ? "面" : "" }}</view>
+                  <view v-if="!form.gpsAreas" style="margin: auto; color: #ff0000">未编辑</view>
+                  <view v-if="form.gpsAreas" style="margin: auto; color: #30bb00">已编辑</view>
+                  <view class="iconfont ucicon-bianji1 menu-icon" style="font-size: 14px; color: #909399"> </view>
+                </u-form-item>
                 <u-form-item label="联系人" prop="contact" :borderBottom="true" required>
                   <u-input v-model="form.contact" placeholder="请输入联系人" border="none" />
                 </u-form-item>
@@ -61,12 +66,29 @@
                 <u-form-item label="备注" prop="facilityDesc" required :borderBottom="true">
                   <u-textarea v-model="form.facilityDesc" placeholder="请输入" border="none" maxlength="30" style="padding: 0px"></u-textarea>
                 </u-form-item>
+
+                <u-form-item v-for="(fo, index) in form.extendData" :key="index" :label="fo.name" :prop="fo.key" :borderBottom="true">
+                  <u-input v-if="fo.type === 'SRK'" v-model="fo.value" :placeholder="'请输入' + fo.name" border="none" disabledColor="transparent" />
+
+                  <u-radio-group v-if="fo.type === 'DXK'" v-model="fo.value" placement="row">
+                    <u-radio
+                      v-for="se in fo.list"
+                      :key="se"
+                      :activeColor="proxy.$settingStore.themeColor.color"
+                      :label="se.attributeValue"
+                      :name="se.attributeCode"
+                      style="margin-right: 15px"
+                    ></u-radio>
+                  </u-radio-group>
+
+                  <uni-data-select v-if="fo.type === 'XLK'" v-model="fo.value" :placeholder="'请选择' + fo.name" :localdata="fo.list"></uni-data-select>
+                </u-form-item>
               </view>
             </view>
           </view>
         </u--form>
 
-        <view style="padding-bottom: 70px"> </view>
+        <view style="padding-bottom: 140px"> </view>
 
         <view class="app-button-fixed">
           <view class="app-flex">
@@ -88,6 +110,7 @@
         @close="actionShow = false"
         @cancel="actionShow = false"
         @confirm="selectAction"
+        @change="changeHandler"
       ></u-picker>
     </view>
 
@@ -104,9 +127,8 @@
 import { onLoad, onShow, onHide, onLaunch, onReady } from "@dcloudio/uni-app";
 import { ref, onMounted, inject, shallowRef, reactive, toRefs, getCurrentInstance } from "vue";
 import { publicStores, useStores } from "@/store/modules/index";
-import { getToken } from "@/utils/auth";
 
-import { typeSelect, add, uploadAvatar } from "@/api/business/fireIot/facilitiesGather/index";
+import { typeSelect, add, uploadAvatar, treeselect } from "@/api/business/fireIot/facilitiesGather/index";
 
 const { proxy } = getCurrentInstance();
 
@@ -114,6 +136,9 @@ const publicStore = publicStores();
 
 //设施类型下拉数据存储
 const typeSelectList = ref([[]]);
+//部门下拉数据存储
+const treeselectList = ref([[]]);
+const childrenList1 = ref([[]]);
 
 const dataList = reactive({
   sexList: [
@@ -136,7 +161,7 @@ const dataList = reactive({
     facilityType: "", //设施类型
     facilityTypeName: "", //设施类型名称
     facilityName: "", //设施名称
-    status: "", //设施状态
+    status: "0", //设施状态
     address: "", //设施地址
     longitude: "", //经度
     latitude: "", //纬度
@@ -150,8 +175,9 @@ const dataList = reactive({
     contactPhone: "", //联系方式
     imagesUrl: "", //图⽚地址URL
     facilityDesc: "", //备注
-    extendData: '{"detachment":"闵行支队","squadron":"马桥站"}', //扩展属性
+    extendData: [], //扩展属性
     recordPictureList: [],
+    typeGuise: undefined, //点线面类型
   },
 
   rules: {
@@ -254,45 +280,79 @@ const successBool = ref(false);
 function handleSubmit(type) {
   let param = {};
 
-  uForm.value
-    .validate()
-    .then((res) => {
-      uni.$u.toast("校验通过");
-
-      param = {
-        facilityType: form.value.facilityType,
-        facilityName: form.value.facilityName,
-        status: form.value.status, //设施状态
-        address: "徐乐路208号", //设施地址
-        longitude: "121.3632126", //经度
-        latitude: "30.98168041", //纬度
-        province: "", //省
-        city: "", //市
-        area: "", //区(县)
-        facilityAddress: form.value.facilityAddress, //详细地址
-        gpsAreas: "", //经纬度集合
-        contact: form.value.contact, //联系人
-        contactPhone: form.value.contactPhone, //联系方式
-        imagesUrl: form.value.imagesUrl, //图⽚地址URL
-        facilityDesc: form.value.facilityDesc, //备注
-      };
-
-      add(param).then((requset) => {});
-    })
-    .catch((errors) => {
-      uni.$u.toast("校验失败");
-    });
+  if (type == "提交") {
+    uForm.value
+      .validate()
+      .then((res) => {
+        uni.$u.toast("校验通过");
+
+        param = {
+          facilityType: form.value.facilityType,
+          facilityName: form.value.facilityName,
+          status: form.value.status, //设施状态
+          address: "徐乐路208号", //设施地址
+          longitude: "121.3632126", //经度
+          latitude: "30.98168041", //纬度
+          province: "", //省
+          city: "", //市
+          area: "", //区(县)
+          facilityAddress: form.value.facilityAddress, //详细地址
+          gpsAreas: "", //经纬度集合
+          contact: form.value.contact, //联系人
+          contactPhone: form.value.contactPhone, //联系方式
+          imagesUrl: form.value.imagesUrl, //图⽚地址URL
+          facilityDesc: form.value.facilityDesc, //备注
+        };
+
+        form.value.extendData.forEach((el) => {
+          param.extendData.push({ key: el.key, value: el.value });
+        });
+
+        add(param).then((requset) => {});
+      })
+      .catch((errors) => {
+        uni.$u.toast("校验失败");
+      });
+  } else {
+    proxy.$tab.navigateBack();
+  }
 }
 
 /**
  * @action弹出框点击事件
  */
-function handleAction(value, index, ind) {
+function handleAction(value, index, index1) {
   actionsList.value = [[]];
 
+  if (value == "所属部门") {
+    actionTitle.value = "所属部门";
+    actionsList.value = treeselectList.value;
+
+    treeselectList.value[0].forEach((el, ind) => {
+      if (el.name === form.value.department) {
+        actionDefaultIndex.value = ind;
+      }
+    });
+  }
+
   if (value == "设施类型") {
     actionTitle.value = "设施类型";
     actionsList.value = typeSelectList.value;
+
+    typeSelectList.value[0].forEach((el, ind) => {
+      if (el.name === form.value.facilityTypeName) {
+        actionDefaultIndex.value = ind;
+      }
+    });
+  }
+
+  if (value == "设施地址") {
+    proxy.$tab.navigateTo("/pages/business/fireIot/facilitiesGather/mapGather");
+    return;
+  }
+
+  if (value == "类型") {
+    return;
   }
 
   actionShow.value = true;
@@ -302,9 +362,29 @@ function handleAction(value, index, ind) {
  * @action弹出框选择事件
  */
 function selectAction(e) {
+  console.log(e);
+
   if (actionTitle.value == "设施类型") {
     form.value.facilityType = e.value[0].value;
     form.value.facilityTypeName = e.value[0].name;
+    form.value.typeGuise = e.value[0].typeGuise;
+
+    if (e.value[0].dataField) {
+      form.value.extendData = e.value[0].dataField;
+
+      form.value.extendData.forEach((el) => {
+        if (el.type === "XLK") {
+          if (el.list) {
+            el.list.forEach((e) => {
+              e.value = e.attributeCode;
+              e.text = e.attributeValue;
+            });
+          }
+        }
+      });
+    } else {
+      form.value.extendData = [];
+    }
   }
 
   // if (actionTitle.value == "灭火器") {
@@ -315,6 +395,29 @@ function selectAction(e) {
   actionShow.value = false;
 }
 
+/**
+ * @action弹出框change事件
+ */
+function changeHandler(e) {
+  const uPicker = ref(null);
+  const {
+    columnIndex,
+    value,
+    values, // values为当前变化列的数组内容
+    index,
+    // 微信小程序无法将picker实例传出来,只能通过ref操作
+    picker = uPicker.value,
+  } = e;
+  // 当第一列值发生变化时,变化第二列(后一列)对应的选项
+
+  console.log(columnIndex, index);
+
+  if (columnIndex === 0) {
+    // picker为选择器this实例,变化第二列对应的选项
+    picker.setColumnValues(1, columnData[index]);
+  }
+}
+
 /**
  * @upload图片上传
  * @点击事件
@@ -355,10 +458,74 @@ onLoad((options) => {
   form.value.baseBuildList = [];
   rules.value.baseBuildList = [];
 
-  typeSelect({ id: undefined }).then((requset) => {
+  typeSelect({ id: "" }).then((requset) => {
+    if (requset.status === "SUCCESS") {
+      requset.data.forEach((el) => {
+        typeSelectList.value[0].push({ name: el.typeName, value: el.id, typeGuise: el.typeGuise, dataField: el.dataField ? JSON.parse(el.dataField) : [] });
+      });
+    }
+  });
+
+  treeselect({}).then((requset) => {
     if (requset.status === "SUCCESS") {
+      console.log(requset.data);
       requset.data.forEach((el) => {
-        typeSelectList.value[0].push({ name: el.typeName, value: el.id });
+        treeselectList.value[0].push({ name: el.label, value: el.id, children: el.children });
+      });
+
+      var data = [
+        {
+          id: 124,
+          label: "公司",
+          children: [
+            {
+              id: 125,
+              label: "it",
+              children: [
+                {
+                  id: 126,
+                  label: "二组",
+                },
+              ],
+            },
+          ],
+        },
+        {
+          id: 124,
+          label: "公司",
+          children: [
+            {
+              id: 125,
+              label: "it1",
+              children: [
+                {
+                  id: 126,
+                  label: "1组",
+                },
+              ],
+            },
+          ],
+        },
+        {
+          id: 124,
+          label: "公司",
+          children: [
+            {
+              id: 125,
+              label: "it2",
+              children: [
+                {
+                  id: 126,
+                  label: "3组",
+                },
+              ],
+            },
+          ],
+        },
+      ];
+
+      data.forEach((el) => {
+        treeselectList.value[0].push({ name: el.label, value: el.id, children: el.children });
       });
     }
   });
@@ -371,18 +538,32 @@ onShow(() => {
 </script>
 
 <style lang="scss">
-#unitInfoCollection {
+#facilitiesGather {
   .centerOne,
   .centerTwo {
     .title {
       color: #333333;
       text-align: center;
-      margin-top: 10px;
     }
   }
 
   :deep(.u-picker__view__column__item) {
     font-size: 13px;
   }
+
+  :deep(.uni-select) {
+    padding-left: 0;
+    border: 0;
+    font-size: 15px;
+  }
+
+  :deep(.uni-select__input-placeholder) {
+    font-size: 15px;
+    color: rgb(192, 196, 204);
+  }
+
+  :deep(.uni-select--mask) {
+    position: relative;
+  }
 }
 </style>

+ 87 - 0
src/pages/business/fireIot/facilitiesGather/mapGather.vue

@@ -0,0 +1,87 @@
+<template>
+  <view id="mapF">
+    <web-view
+      ref="amapView"
+      src="/static/amap/mapGather.html"
+      bindmessage="receiveMessage"
+      :webview-styles="{
+        height: proxy.$settingStore.webViewHeight,
+      }"
+      @message="onMessage"
+    ></web-view>
+  </view>
+</template>
+
+<script setup>
+import { onReady, onLoad, onShow, onNavigationBarButtonTap } from "@dcloudio/uni-app";
+import { ref, onMounted, inject, shallowRef, reactive, getCurrentInstance, toRefs, nextTick } from "vue";
+import { publicStores, useStores } from "@/store/modules/index";
+
+const publicStore = publicStores(); //全局公共Store
+
+const { proxy } = getCurrentInstance();
+
+const webviewStyle = ref({});
+
+function onMessage(e) {
+  console.log("Received message from web page:", e.detail.data);
+  uni.showToast({
+    title: e.detail.data,
+    icon: "none",
+  });
+}
+
+// #ifdef APP-PLUS
+let wv = plus.webview.create(
+  "/static/amap/mapGather.html?t=" + new Date().getTime(), //date保证不走缓存
+  "batch_view",
+  {
+    top: "0",
+    left: "0",
+    height: "100%",
+    width: "100%",
+  },
+  {
+    data: {
+      token: 1,
+      userInfo: 1,
+      implantType: "uniapp",
+    },
+  }
+); //不用data键值对的方式传的话,h5接收后会是多个字段,而非一个对象
+let pages = getCurrentPages();
+let page = pages[pages.length - 1];
+let ws = page.$getAppWebview();
+// #endif
+
+// #ifdef H5
+window.addEventListener(
+  "message",
+  (event) => {
+    console.log("父页面:", event);
+  },
+  false
+);
+// #endif
+
+// 自定义导航事件
+onNavigationBarButtonTap((e) => {
+  if (e.float == "right") {
+    uni.navigateTo({
+      url: "pages/business/fireIot/facilitiesGather/index",
+    });
+  } else {
+  }
+});
+
+onLoad((options) => {});
+
+onShow(() => {
+  //调用系统主题颜色
+  proxy.$settingStore.systemThemeColor([1]);
+});
+
+onReady(() => {});
+
+onMounted(() => {});
+</script>

+ 0 - 2
src/pages/business/fireIot/facilitiesManage/index.vue

@@ -23,8 +23,6 @@ import { onLoad, onShow, onHide, onLaunch } from "@dcloudio/uni-app";
 import { ref, reactive, computed, onMounted, getCurrentInstance, toRefs, inject } from "vue";
 import { xunJianStores, publicStores } from "@/store/modules/index";
 
-import json from "@/static/js/json.js";
-
 const publicStore = publicStores(); //全局公共Store
 const xunJianStore = xunJianStores(); //全局变量值Store
 

+ 6 - 6
src/pages/business/fireIot/facilitiesView/facilitiesDetails.vue

@@ -1,6 +1,6 @@
 <template>
   <scroll-view class="scroll-height" :scroll-y="true" :data-theme="'theme-' + proxy.$settingStore.themeColor.name">
-    <view class="deviceDetails-container">
+    <view class="facilitiesDetails-container">
       <view class="flex bg-white padding-15 margin-b-15">
         <image style="width: 40px; height: 40px; margin: auto 15px auto 0" :src="dataArray.imagesUrl ? dataArray.imagesUrl : '/static/images/404.png'" mode="aspectFill"></image>
 
@@ -18,7 +18,7 @@
       </view>
 
       <view class="bg-white padding-15 margin-b-15">
-        <uni-section class="margin-bottom-10" title="基本信息" type="line"></uni-section>
+        <uni-section class="block margin-b-10" title="基本信息" type="line"></uni-section>
 
         <view class="tableType3 padding-0">
           <u-empty v-if="dataList.length <= 0" text="暂无数据" mode="data" icon="http://cdn.uviewui.com/uview/empty/data.png"> </u-empty>
@@ -35,13 +35,13 @@
       </view>
 
       <view class="bg-white padding-15 margin-b-15">
-        <uni-section class="margin-bottom-10" title="关联设备" type="line"></uni-section>
+        <uni-section class="block margin-b-10" title="关联设备" type="line"></uni-section>
 
         <view class="flex margin-bottom-sm" 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>
 
-        <view class="tableType1 price2">
+        <view class="tableType1">
           <u-row>
             <u-col span="1.5">
               <view>序号</view>
@@ -74,13 +74,13 @@
       </view>
 
       <view class="bg-white padding-15 margin-b-15">
-        <uni-section class="margin-bottom-10" title="关联建筑" type="line"></uni-section>
+        <uni-section class="block margin-b-10" title="关联建筑" type="line"></uni-section>
 
         <view class="flex margin-bottom-sm" 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>
 
-        <view class="tableType1 price2">
+        <view class="tableType1">
           <u-row>
             <u-col span="1.5">
               <view>序号</view>

+ 4 - 6
src/pages/business/fireIot/facilitiesView/facilitiesDetailsList.vue

@@ -1,6 +1,6 @@
 <template>
   <scroll-view class="scroll-height" :scroll-y="true" :data-theme="'theme-' + proxy.$settingStore.themeColor.name">
-    <u-sticky class="example-body" style="top: 0px" v-if="show">
+    <u-sticky class="example-body" style="top: 0px">
       <view class="padding-sm padding-tb-10" :class="'bg-' + proxy.$settingStore.themeColor.name">
         <u--input
           v-model="facilityName"
@@ -14,7 +14,7 @@
       </view>
     </u-sticky>
 
-    <view class="deviceDetailsList-container">
+    <view class="facilitiesDetailsList-container">
       <view class="menu-list margin-0">
         <view class="list-cell list-cell-arrow" v-for="(base, index) in dataList" :key="index" @click="handleToDevice(base.id)">
           <view class="menu-item-box">
@@ -23,7 +23,7 @@
         </view>
       </view>
 
-      <uni-pagination class="app-pagination bg-white" :current="current" :total="total" :pageSize="pageSize" prev-text="上一页" next-text="下一页" @change="paginationChange" />
+      <uni-pagination class="block app-pagination bg-white" :current="current" :total="total" :pageSize="pageSize" prev-text="上一页" next-text="下一页" @change="paginationChange" />
     </view>
   </scroll-view>
 </template>
@@ -39,7 +39,6 @@ const { proxy } = getCurrentInstance();
 
 const dataList = ref([]);
 
-const show = ref(false);
 const facilityType = ref(undefined);
 const facilityName = ref("");
 const facilityTypeName = ref("");
@@ -100,13 +99,12 @@ onLoad((options) => {
 // 自定义导航事件
 onNavigationBarButtonTap((e) => {
   if (e.float == "right") {
-    show.value = !show.value;
   } else {
   }
 });
 </script>
 
 <style lang="scss" scoped>
-.deviceDetailsList-container {
+.facilitiesDetailsList-container {
 }
 </style>

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

@@ -34,8 +34,6 @@ import { onLoad, onShow, onHide, onLaunch } from "@dcloudio/uni-app";
 import { ref, reactive, computed, onMounted, getCurrentInstance, toRefs, inject } from "vue";
 import { xunJianStores, publicStores } from "@/store/modules/index";
 
-import json from "@/static/js/json.js";
-
 import { baseFacilityType } from "@/api/business/fireIot/facilitiesView/index";
 
 const publicStore = publicStores(); //全局公共Store

+ 8 - 1
src/pages/business/mhxf/coordination/index.vue

@@ -1,5 +1,12 @@
 <template>
-  <web-view ref="amapView" src="/static/amap/1.html" bindmessage="receiveMessage"></web-view>
+  <web-view
+    ref="amapView"
+    src="/static/amap/coordination.html"
+    bindmessage="receiveMessage"
+    :webview-styles="{
+      height: proxy.$settingStore.webViewHeight,
+    }"
+  ></web-view>
 </template>
 
 <script setup>

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

@@ -1,5 +1,5 @@
 <template>
-  <u-sticky class="shadow-default" bgColor="#fff">
+  <u-sticky class="shadow-default" bgColor="#fff" style="top: 0">
     <u-tabs
       :list="list"
       :current="current"
@@ -16,7 +16,7 @@
       <uni-swipe-action>
         <uni-swipe-action-item class="bg-white">
           <view class="content">
-            <view class="padding-10">
+            <view class="block padding-10">
               <u-input v-model="dataInput" placeholder="请输入设备编号" @blur="blur" shape="circle" prefixIcon="search" prefixIconStyle="color: #0c7bf9"> </u-input>
             </view>
 

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

@@ -7,7 +7,7 @@
       </view>
 
       <view class="content1">
-        <uni-section title="消防安全风险提示" type="line" titleFontSize="15px"> </uni-section>
+        <uni-section class="block margin-b-10" title="消防安全风险提示" type="line" titleFontSize="15px"> </uni-section>
         <view class="price1">
           <view>
             上海XX公司:
@@ -54,7 +54,7 @@
       </view>
 
       <view class="content2">
-        <uni-section title="基本情况" type="line" titleFontSize="15px"></uni-section>
+        <uni-section class="block margin-b-10" title="基本情况" type="line" titleFontSize="15px"></uni-section>
         <view class="tableType2 price2">
           <u-row>
             <u-col span="3">
@@ -77,7 +77,7 @@
       </view>
 
       <view class="content2">
-        <uni-section title="存在问题" type="line" titleFontSize="15px">
+        <uni-section class="block margin-b-10" title="存在问题" type="line" titleFontSize="15px">
           <template v-slot:right>
             <view style="color: #666666; font-size: 14px">整改期限:2023-02-02</view>
           </template>
@@ -109,7 +109,7 @@
       </view>
 
       <view class="content2">
-        <uni-section title="整体指数分析" type="line" titleFontSize="15px"> </uni-section>
+        <uni-section class="block margin-b-10" title="整体指数分析" type="line" titleFontSize="15px"> </uni-section>
         <view class="tableType1 price2">
           <u-row>
             <u-col span="4">
@@ -153,14 +153,14 @@
       </view>
 
       <view class="content2">
-        <uni-section title="整体指数分析" type="line" titleFontSize="15px"> </uni-section>
+        <uni-section class="block margin-b-10" title="整体指数分析" type="line" titleFontSize="15px"> </uni-section>
         <view>
           <line-echarts :xAxisDataList="['1月', '2月', '3月', '4月', '5月', '6月']" :seriesDataList="[50, 20, 30, 10, 80, 80]"></line-echarts>
         </view>
       </view>
 
       <view class="content2">
-        <uni-section title="设备设施状况" type="line" titleFontSize="15px"> </uni-section>
+        <uni-section class="block margin-b-10" title="设备设施状况" type="line" titleFontSize="15px"> </uni-section>
         <view>
           <view style="color: #666666; text-align: center; font-size: 14px">近一周设备在线率</view>
           <line-echarts :xAxisDataList="['周一', '周二', '周三', '周四', '周五', '周六', '周日']" :seriesDataList="[50, 20, 30, 10, 80, 80, 20]"></line-echarts>
@@ -224,7 +224,7 @@
       </view>
 
       <view class="content2">
-        <uni-section title="监督执法情况" type="line" titleFontSize="15px"> </uni-section>
+        <uni-section class="block margin-b-10" title="监督执法情况" type="line" titleFontSize="15px"> </uni-section>
 
         <view class="tableType2 price2">
           <u-row>
@@ -322,7 +322,7 @@
       </view>
 
       <view class="content2">
-        <uni-section title="火灾情况分析" type="line" titleFontSize="15px"> </uni-section>
+        <uni-section class="block margin-b-10" title="火灾情况分析" type="line" titleFontSize="15px"> </uni-section>
 
         <view class="tableType2 price2">
           <u-row>

+ 1 - 1
src/pages/business/mhxf/fireReport/components/detailedPath.vue

@@ -27,7 +27,7 @@ const dataList = reactive({
 const { pathUrl, viewerUrl } = toRefs(dataList);
 
 let host;
-//#ifdef APP-PLUS
+//#ifdef APP-PLUS || MP-WEIXIN
 host = uni.getStorageSync("serveUrl");
 //#endif
 

+ 2 - 2
src/pages/business/mhxf/informationSelect/index.vue

@@ -1,5 +1,5 @@
 <template>
-  <u-sticky class="shadow-default" bgColor="#fff">
+  <u-sticky class="shadow-default" bgColor="#fff" style="top: 0">
     <u-tabs :list="list" :current="current" @click="tabsClick" lineColor="#333" :activeStyle="{ color: '#333' }" :inactiveStyle="{ color: '#909399' }"></u-tabs>
   </u-sticky>
 
@@ -9,7 +9,7 @@
         <uni-swipe-action-item>
           <!-- 各类查询 start -->
           <view class="tableType3">
-            <u-input style="margin-bottom: 10px" v-model="dataInput" :placeholder="placeholderText" @blur="blur" shape="circle" prefixIcon="search" prefixIconStyle="color: #0c7bf9"> </u-input>
+            <u-input class="block margin-b-10" v-model="dataInput" :placeholder="placeholderText" @blur="blur" shape="circle" prefixIcon="search" prefixIconStyle="color: #0c7bf9"> </u-input>
             <u-empty v-if="!dataRes" text="暂无数据" mode="data" icon="http://cdn.uviewui.com/uview/empty/data.png"> </u-empty>
             <view v-if="current == 8">
               <view class="con">

+ 7 - 7
src/pages/business/mhxf/needMatter/index.vue

@@ -1,5 +1,5 @@
 <template>
-  <u-sticky class="shadow-default" bgColor="#fff">
+  <u-sticky class="shadow-default" bgColor="#fff" style="top: 0">
     <u-tabs :list="list" :current="current" @click="tabsClick" lineColor="#333" :activeStyle="{ color: '#333' }" :inactiveStyle="{ color: '#909399' }"></u-tabs>
   </u-sticky>
 
@@ -90,7 +90,7 @@
                 </u-steps>
 
                 <view style="font-size: 14px; line-height: 20px; margin-top: 10px">
-                  <u-button style="width: 60px; height: 23px" type="primary" text="去整改" shape="circle" @click="handleSubmit(cl, '去整改')"></u-button>
+                  <u-button type="primary" text="去整改" shape="circle" @click="handleSubmit(cl, '去整改')" customStyle="width: 60px; height: 23px"></u-button>
                 </view>
               </view>
 
@@ -102,7 +102,7 @@
                 </u-steps>
 
                 <view style="font-size: 14px; line-height: 20px; margin-top: 10px">
-                  <u-button style="width: 60px; height: 23px" type="primary" text="填报" shape="circle" @click="handleSubmit(cl, '填报')"></u-button>
+                  <u-button type="primary" text="填报" shape="circle" @click="handleSubmit(cl, '填报')" customStyle="width: 60px; height: 23px"></u-button>
                 </view>
               </view>
 
@@ -126,7 +126,7 @@
                 </view>
 
                 <view style="font-size: 14px; line-height: 20px; margin-top: 10px">
-                  <u-button style="width: 60px; height: 23px" type="primary" text="去整改" shape="circle" @click="handleSubmit(cl, '去整改')"></u-button>
+                  <u-button type="primary" text="去整改" shape="circle" @click="handleSubmit(cl, '去整改')" customStyle="width: 60px; height: 23px"></u-button>
                 </view>
               </view>
 
@@ -169,10 +169,10 @@
             @confirm="handleConfirm"
           >
             <view style="width: 100%">
-              <uni-section title="图片上传:" type="line">
+              <uni-section class="block margin-b-10" title="图片上传:" type="line">
                 <u-upload :fileList="fileList" name="6" @afterRead="afterRead" multiple :maxCount="5" width="80" height="80"> </u-upload>
               </uni-section>
-              <uni-section title="备注:" type="line">
+              <uni-section class="block margin-b-10" title="备注:" type="line">
                 <u--textarea v-model="textValue" placeholder="请输入内容"></u--textarea>
               </uni-section>
             </view>
@@ -436,7 +436,7 @@ function goSearch() {
     classifySearch({
       companyId: "", //	单位Id
       reformId: "", //整改单编号
-      reformStatus: undefined, //整改状态(1 已接收、2 整改中、3 整改完成、4 审核不通过、5 审核通过)
+      reformStatus: "", //整改状态(1 已接收、2 整改中、3 整改完成、4 审核不通过、5 审核通过)
       pageNum: 1, //当前页
       pageSize: 20, //每页条数
     });

+ 176 - 0
src/pages/business/mhxf/xunJian/components/chart.vue

@@ -0,0 +1,176 @@
+<template>
+  <view class="content">
+    <l-echart ref="domMyChart" class="echarts"></l-echart>
+  </view>
+</template>
+
+<script setup>
+import * as echarts from "echarts";
+import { onLoad, onShow, onHide, onLaunch, onResize } from "@dcloudio/uni-app";
+import { defineComponent, ref, onMounted, nextTick, watch } from "vue";
+
+const props = defineProps({
+  currentDateList: {
+    type: Object,
+    default: null,
+  },
+});
+
+const domMyChart = ref(null);
+let myChart;
+let option;
+
+var datas = [];
+var planSonCount = 0;
+
+function initData() {
+  datas = [
+    {
+      name: "漏检任务",
+      value: 0,
+    },
+    {
+      name: "已巡检任务",
+      value: 0,
+    },
+  ];
+
+  if (props.currentDateList.length > 0) {
+    datas[0].value = props.currentDateList[0].undetectedCount;
+    datas[1].value = props.currentDateList[0].patrolledCount;
+    planSonCount = props.currentDateList[0].planSonCount;
+  }
+
+  option = {
+    color: ["#F07D28", "#00CDAC"],
+    title: [
+      {
+        text: "今日巡检情况",
+        left: "center",
+        top: 15,
+        textStyle: {
+          color: "black",
+          fontWeight: "normal",
+          fontSize: 14,
+        },
+      },
+      {
+        text: [`{value|${planSonCount}}`, "{name|巡检总数}"].join("\n "),
+        top: "40%",
+        left: "center",
+        textStyle: {
+          color: "black",
+          fontWeight: "normal",
+          fontSize: 14,
+          lineHeight: 22,
+          rich: {
+            name: {
+              fontFamily: "PingFangSC-Regular",
+              fontSize: 13,
+              color: "rgba(0,0,0,0.45)",
+              lineHeight: 22,
+              marginBottom: "5px",
+            },
+            value: {
+              fontFamily: "HelveticaNeue",
+              fontSize: 24,
+              color: "rgba(0,0,0,0.85)",
+              lineHeight: 30,
+            },
+          },
+        },
+      },
+    ],
+
+    series: {
+      type: "pie",
+      radius: [40, 80],
+      height: "100%",
+      left: "center",
+      width: "100%",
+      itemStyle: {
+        borderColor: "#fff",
+        borderWidth: 1,
+      },
+      label: {
+        alignTo: "edge",
+        formatter: function (el) {
+          return `${el.name}\n${el.value}`;
+        },
+        minMargin: 5,
+        edgeDistance: 10,
+        lineHeight: 20,
+        rich: {
+          time: {
+            fontSize: 10,
+            color: "#999",
+          },
+        },
+      },
+      labelLine: {
+        length: 25,
+        length2: 0,
+        maxSurfaceAngle: 80,
+      },
+      labelLayout: function (params) {
+        // var isLeft = params.labelRect.x < myChart.getWidth() / 2;
+        var isLeft = params.labelRect.x < myChart.nodeWidth / 2;
+        var points = params.labelLinePoints;
+        points[2][0] = isLeft ? params.labelRect.x : params.labelRect.x + params.labelRect.width;
+        return {
+          labelLinePoints: points,
+        };
+      },
+
+      data: datas,
+    },
+  };
+}
+
+function initEcharts() {
+  // let dom = uni.createSelectorQuery().select("#linEcharts");
+  // myChart = echarts.init(document.getElementById("linEcharts"));
+  // 观测更新的数据在 view 层可以直接访问到
+  // myChart.setOption(option);
+
+  myChart = domMyChart.value;
+  myChart.init(echarts, (myChart) => {
+    myChart.setOption(option);
+  });
+}
+
+onLoad(() => {
+  nextTick(() => {
+    initData();
+    initEcharts();
+  });
+});
+
+onResize(() => {
+  myChart.resize();
+});
+
+watch(
+  () => props.currentDateList,
+  (val) => {
+    initData();
+    initEcharts();
+  }
+);
+</script>
+
+<style>
+.content {
+  display: flex;
+  flex-direction: column;
+  align-items: center;
+  justify-content: center;
+}
+
+.echarts {
+  width: 100%;
+  height: 600rpx;
+  /* margin-top: 70rpx; */
+  /* background:pink */
+}
+</style>

+ 0 - 158
src/pages/business/mhxf/xunJian/components/echarts/chart.vue

@@ -1,158 +0,0 @@
-<template>
-  <view class="content">
-    <l-echart ref="domMyChart" class="echarts"></l-echart>
-  </view>
-</template>
-
-<script setup>
-import * as echarts from "echarts";
-import { onLoad, onShow, onHide, onLaunch, onResize } from "@dcloudio/uni-app";
-import { defineComponent, ref, onMounted, nextTick } from "vue";
-
-const props = defineProps({
-  currentDateList: {
-    type: Object,
-    default: null,
-  },
-});
-
-let myChart;
-const domMyChart = ref(null);
-
-var datas = [
-  {
-    name: "漏检任务",
-    value: 0,
-  },
-  {
-    name: "已巡检任务",
-    value: 0,
-  },
-];
-
-datas[0].value = props.currentDateList[0].undetectedCount;
-datas[1].value = props.currentDateList[0].patrolledCount;
-
-let option = {
-  color: ["#F07D28", "#00CDAC"],
-  title: [
-    {
-      text: "今日巡检情况",
-      left: "center",
-      top: 15,
-      textStyle: {
-        color: "black",
-        fontWeight: "normal",
-        fontSize: 14,
-      },
-    },
-    {
-      text: [`{value|${props.currentDateList[0].planSonCount}}`, "{name|巡检总数}"].join("\n "),
-      top: "40%",
-      left: "center",
-      textStyle: {
-        color: "black",
-        fontWeight: "normal",
-        fontSize: 14,
-        lineHeight: 22,
-        rich: {
-          name: {
-            fontFamily: "PingFangSC-Regular",
-            fontSize: 13,
-            color: "rgba(0,0,0,0.45)",
-            lineHeight: 22,
-            marginBottom: "5px",
-          },
-          value: {
-            fontFamily: "HelveticaNeue",
-            fontSize: 24,
-            color: "rgba(0,0,0,0.85)",
-            lineHeight: 30,
-          },
-        },
-      },
-    },
-  ],
-
-  series: {
-    type: "pie",
-    radius: [40, 80],
-    height: "100%",
-    left: "center",
-    width: "100%",
-    itemStyle: {
-      borderColor: "#fff",
-      borderWidth: 1,
-    },
-    label: {
-      alignTo: "edge",
-      formatter: function (el) {
-        return `${el.name}\n${el.value}`;
-      },
-      minMargin: 5,
-      edgeDistance: 10,
-      lineHeight: 20,
-      rich: {
-        time: {
-          fontSize: 10,
-          color: "#999",
-        },
-      },
-    },
-    labelLine: {
-      length: 25,
-      length2: 0,
-      maxSurfaceAngle: 80,
-    },
-    labelLayout: function (params) {
-      // var isLeft = params.labelRect.x < myChart.getWidth() / 2;
-      var isLeft = params.labelRect.x < myChart.nodeWidth / 2;
-      var points = params.labelLinePoints;
-      points[2][0] = isLeft ? params.labelRect.x : params.labelRect.x + params.labelRect.width;
-      return {
-        labelLinePoints: points,
-      };
-    },
-
-    data: datas,
-  },
-};
-
-function initEcharts() {
-  // let dom = uni.createSelectorQuery().select("#linEcharts");
-  // myChart = echarts.init(document.getElementById("linEcharts"));
-  // 观测更新的数据在 view 层可以直接访问到
-  // myChart.setOption(option);
-
-  myChart = domMyChart.value;
-  myChart.init(echarts, (myChart) => {
-    myChart.setOption(option);
-  });
-}
-
-onLoad(() => {
-  nextTick(() => {
-    initEcharts();
-  });
-});
-
-onResize(() => {
-  myChart.resize();
-});
-</script>
-
-<style>
-.content {
-  display: flex;
-  flex-direction: column;
-  align-items: center;
-  justify-content: center;
-}
-
-.echarts {
-  width: 100%;
-  height: 600rpx;
-  /* margin-top: 70rpx; */
-  /* background:pink */
-}
-</style>

+ 17 - 27
src/pages/business/mhxf/xunJian/plan/components/content.vue

@@ -2,12 +2,12 @@
   <scroll-view class="scroll-height" :scroll-y="true" :data-theme="'theme-' + proxy.$settingStore.themeColor.name">
     <view class="xunjian-plan-content">
       <view class="bg-white padding-15 margin-b-15" v-for="(con, index) in contentList" :key="index">
-        <view class="flex margin-bottom-10">
-          <uni-section :title="con.contentTitle" type="line"></uni-section>
+        <view class="flex margin-b-10">
+          <uni-section class="block margin-b-10" :title="con.contentTitle" type="line"></uni-section>
 
           <view style="margin: auto"> </view>
 
-          <u-button v-if="con.remarksBool == false" type="primary" icon="list-dot" style="width: 18px; height: 18px; padding: 0; margin: 0" shape="circle" @click="remarksClick(index)"> </u-button>
+          <u-button v-if="con.remarksBool == false" type="primary" icon="list-dot" shape="circle" @click="remarksClick(index)" customStyle="width: 18px;height: 18px;padding: 0;margin: 0;"> </u-button>
         </view>
         <view>
           <view class="margin-t-15" v-if="con.submissionMethod == 1">
@@ -21,45 +21,41 @@
               :disabled="xunJianStore.contentArray.siteList.inspectionStatus == 2"
               :activeColor="proxy.$settingStore.themeColor.color"
             >
-              <u-row style="width: 100%; flex-wrap: wrap">
-                <u-col class="margin-b-15" v-for="option in con.contentOptionList" :key="option" :span="6">
+              <view class="flex" style="width: 100%; flex-wrap: wrap">
+                <view class="margin-b-15" style="width: 50%" v-for="option in con.contentOptionList" :key="option">
                   <u-checkbox :label="option.optionName" :name="option.id" :checked="con.contentOptionListValue1.length > 0 ? con.contentOptionListValue1.indexOf(option.id) >= 0 : false">
                   </u-checkbox>
-                </u-col>
-              </u-row>
+                </view>
+              </view>
             </u-checkbox-group>
 
             <view v-if="con.remarksBool == true" style="display: flex; height: 32px; line-height: 32px; white-space: nowrap">
               <span>备注:</span>
-              <u-input v-model="con.remarks" placeholder="请输入备注" :disabled="xunJianStore.contentArray.siteList.inspectionStatus == 2"></u-input>
+              <u-input v-model="con.remarks" placeholder="请输入备注" :disabled="xunJianStore.contentArray.siteList.inspectionStatus == 2" customStyle="height:32px;"></u-input>
             </view>
           </view>
           <view class="margin-t-15" v-if="con.submissionMethod == 2">
             <u-radio-group placement="row" v-model="con.contentOptionListValue" :activeColor="proxy.$settingStore.themeColor.color">
-              <u-row style="width: 100%; flex-wrap: wrap">
-                <u-col class="margin-b-15" v-for="option in con.contentOptionList" :key="option" :span="6">
+              <view class="flex" style="width: 100%; flex-wrap: wrap">
+                <view class="margin-b-15" style="width: 50%" v-for="option in con.contentOptionList" :key="option">
                   <u-radio :disabled="xunJianStore.contentArray.siteList.inspectionStatus == 2" :label="option.optionName" :name="option.id"> </u-radio>
-                </u-col>
-              </u-row>
+                </view>
+              </view>
             </u-radio-group>
 
             <view v-if="con.remarksBool == true" style="display: flex; height: 32px; line-height: 32px; white-space: nowrap">
               <span>备注:</span>
-              <u-input v-model="con.remarks" placeholder="请输入备注" :disabled="xunJianStore.contentArray.siteList.inspectionStatus == 2"></u-input>
+              <u-input v-model="con.remarks" placeholder="请输入备注" :disabled="xunJianStore.contentArray.siteList.inspectionStatus == 2" customStyle="height:32px;"></u-input>
             </view>
           </view>
           <view class="margin-t-15" v-if="con.submissionMethod == 3">
-            <u-textarea
-              class="margin-b-15"
-              v-model="con.contentOptionListValue"
-              placeholder="请输入"
-              maxlength="30"
-              :disabled="xunJianStore.contentArray.siteList.inspectionStatus == 2"
-            ></u-textarea>
+            <view class="margin-b-15">
+              <u-textarea v-model="con.contentOptionListValue" placeholder="请输入" maxlength="30" :disabled="xunJianStore.contentArray.siteList.inspectionStatus == 2"></u-textarea>
+            </view>
 
             <view v-if="con.remarksBool == true" style="display: flex; height: 32px; line-height: 32px; white-space: nowrap">
               <span>备注:</span>
-              <u-input v-model="con.remarks" placeholder="请输入备注" :disabled="xunJianStore.contentArray.siteList.inspectionStatus == 2"></u-input>
+              <u-input v-model="con.remarks" placeholder="请输入备注" :disabled="xunJianStore.contentArray.siteList.inspectionStatus == 2" customStyle="height:32px;"></u-input>
             </view>
           </view>
         </view>
@@ -229,12 +225,6 @@ onMounted(() => {});
 
 <style lang="scss">
 .xunjian-plan-content {
-  //#ifdef H5
   padding-bottom: 125px;
-  //#endif
-
-  //#ifdef APP-PLUS
-  padding-bottom: 130px;
-  //#endif
 }
 </style>

+ 4 - 4
src/pages/business/mhxf/xunJian/plan/components/report.vue

@@ -90,8 +90,8 @@ function pulicClick(obj) {
               contentList: [res1.data.contentList],
               siteList: res.data[0],
             };
-            xunJianStore.siteId = undefined;
-            xunJianStore.siteNubmber = undefined;
+            xunJianStore.siteId = "";
+            xunJianStore.siteNubmber = "";
 
             uni.navigateTo({
               url: "/pages/business/mhxf/xunJian/plan/components/siteDetails",
@@ -104,7 +104,7 @@ function pulicClick(obj) {
   } else {
     xunJianStore.contentArray = {};
     xunJianStore.siteId = obj.id;
-    xunJianStore.siteNubmber = undefined;
+    xunJianStore.siteNubmber = "";
 
     uni.navigateTo({
       url: "/pages/business/mhxf/xunJian/plan/components/siteDetails",
@@ -127,7 +127,7 @@ async function scanClick() {
       });
 
       xunJianStore.contentArray = {};
-      xunJianStore.siteId = undefined;
+      xunJianStore.siteId = "";
       xunJianStore.siteNubmber = e.result;
 
       siteDetails({

+ 4 - 10
src/pages/business/mhxf/xunJian/plan/components/siteDetails.vue

@@ -18,7 +18,7 @@
       </view>
 
       <view class="bg-white padding-15 margin-b-15">
-        <uni-section class="margin-bottom-10" title="上报现场" type="line"></uni-section>
+        <uni-section class="block margin-b-10" title="上报现场" type="line"></uni-section>
 
         <view class="flex flex-wrap">
           <view class="uploadView" v-for="record in siteList.recordPictureList" :key="record">
@@ -37,7 +37,7 @@
       </view>
 
       <view class="bg-white padding-15 margin-b-15" style="height: 170px; max-height: 170px">
-        <uni-section class="margin-bottom-10" title="备注" type="line"></uni-section>
+        <uni-section class="block margin-b-10" title="备注" type="line"></uni-section>
 
         <view style="height: calc(100% - 25px)">
           <span v-if="siteList.inspectionStatus == 2">
@@ -49,7 +49,7 @@
       </view>
 
       <view class="bg-white padding-15 margin-b-15">
-        <uni-section class="margin-bottom-10" title="消防设施分布图" type="line"></uni-section>
+        <uni-section class="block margin-b-10" title="消防设施分布图" type="line"></uni-section>
 
         <u-image width="100%" :src="siteList.pictureUrl"></u-image>
       </view>
@@ -175,12 +175,6 @@ onMounted(() => {});
 
 <style lang="scss" scoped>
 .xunjian-plan-siteDetails {
-  //#ifdef H5
-  padding-bottom: 70px;
-  //#endif
-
-  //#ifdef APP-PLUS
-  padding-bottom: 75px;
-  //#endif
+  padding-bottom: 65px;
 }
 </style>

+ 10 - 11
src/pages/business/mhxf/xunJian/plan/index.vue

@@ -6,7 +6,7 @@
 
       <!-- 分段器组件 -->
       <view class="app-subsection">
-        <u-subsection :list="list" :current="tabPosition" inactiveColor="#303133" :activeColor="proxy.$settingStore.themeColor.color" @change="tabPositionChange"></u-subsection>
+        <u-subsection :list="list" :current="tabPosition" inactiveColor="#303133" :activeColor="proxy.$settingStore.themeColor.color" @change="tabPositionChange" style="width: 100%"></u-subsection>
       </view>
 
       <!-- 内容 -->
@@ -19,32 +19,31 @@
           :iconColor="proxy.$settingStore.themeColor.color"
           v-show="tabPosition == 0"
         >
-          <view style="display: flex" v-if="ac.planStatus == 2">
+          <view style="display: flex" v-if="ac.planStatus == 1">
             <view>
-              <view>巡检任务结束</view>
-              <br />
-              <view style="padding: 0; font-size: 14px" :style="{ color: proxy.$settingStore.themeColor.color }" @click="reportClick(ac)"> 点击查看 </view>
+              <view style="margin-bottom: 15px">巡检任务执行中,还需完成 {{ ac.undetectedSiteCount }}个 </view>
+              <view style="padding: 0; font-size: 14px" :style="{ color: proxy.$settingStore.themeColor.color }" @click="reportClick(ac)"> 点击巡检 </view>
             </view>
             <view style="margin: auto"></view>
             <view style="display: flex">
               <c-progress-circle style="margin: auto" :progress="ac.completion / 100" :color="proxy.$settingStore.themeColor.color" size="100rpx" boderWidth="100rpx"></c-progress-circle>
             </view>
           </view>
-          <view style="display: flex" v-if="ac.planStatus == 1">
+
+          <view style="display: flex" v-if="ac.planStatus == 2">
             <view>
-              <view>巡检任务执行中,还需完成 {{ ac.undetectedSiteCount }}个 </view>
-              <br />
-              <view style="padding: 0; font-size: 14px" :style="{ color: proxy.$settingStore.themeColor.color }" @click="reportClick(ac)"> 点击巡检 </view>
+              <view style="margin-bottom: 15px">巡检任务结束</view>
+              <view style="padding: 0; font-size: 14px" :style="{ color: proxy.$settingStore.themeColor.color }" @click="reportClick(ac)"> 点击查看 </view>
             </view>
             <view style="margin: auto"></view>
             <view style="display: flex">
               <c-progress-circle style="margin: auto" :progress="ac.completion / 100" :color="proxy.$settingStore.themeColor.color" size="100rpx" boderWidth="100rpx"></c-progress-circle>
             </view>
           </view>
+
           <view style="display: flex" v-if="ac.planStatus == 3">
             <view>
-              <view>巡检任务结束</view>
-              <br />
+              <view style="margin-bottom: 15px">巡检任务结束</view>
               <view>
                 <span style="margin-right: 20px">
                   合格:

+ 0 - 1
src/pages/business/mhxf/xunJian/record/record.vue

@@ -25,7 +25,6 @@
 </template>
 
 <script setup>
-import json from "@/static/js/json.js";
 import { ref, onMounted, reactive, computed, getCurrentInstance, toRefs, inject, shallowRef } from "vue";
 import { onReady, onLoad, onShow, onNavigationBarButtonTap } from "@dcloudio/uni-app";
 

+ 4 - 8
src/pages/business/mhxf/xunJian/xunJian.vue

@@ -3,7 +3,7 @@
     <view class="padding-sm">
       <!-- 图表 -->
       <view class="section1 section bg-white padding-xs">
-        <chart v-if="currentDateList.length > 0" :currentDateList="currentDateList"></chart>
+        <chart :currentDateList="currentDateList"></chart>
       </view>
       <!-- 图表 end-->
 
@@ -46,8 +46,7 @@ import { onLoad, onShow, onHide, onLaunch } from "@dcloudio/uni-app";
 import { ref, reactive, computed, onMounted, getCurrentInstance, toRefs, inject } from "vue";
 import { xunJianStores, publicStores } from "@/store/modules/index";
 
-import chart from "./components/echarts/chart.vue";
-import json from "@/static/js/json.js";
+import chart from "./components/chart.vue";
 
 import { appPlanStatistics } from "@/api/business/mhxf/xunJian/index.js";
 
@@ -56,7 +55,7 @@ const xunJianStore = xunJianStores(); //全局变量值Store
 
 const { proxy } = getCurrentInstance();
 
-const inspectList = json.xunJianList; //九宫格json数据
+const inspectList = proxy.$grid.xunJianList; //九宫格json数据
 
 const currentDate = publicStore.getDate().year + "-" + publicStore.getDate().month + "-" + publicStore.getDate().dates;
 const currentDateList = ref([]);
@@ -68,10 +67,7 @@ function navItemClick(url, id) {
     } else if (id == 2) {
       xunJianStore.planTabs = 1;
     }
-
-    uni.navigateTo({
-      url: url,
-    });
+    proxy.$tab.redirectTo(url);
   } else {
     uni.showModal({
       title: "Tips",

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

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

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

@@ -66,7 +66,6 @@
 </template>
 
 <script setup>
-import json from "@/static/js/json.js";
 import { onLoad, onShow, onReady, onHide, onLaunch, onReachBottom, onNavigationBarButtonTap } from "@dcloudio/uni-app";
 import { ref, onMounted, inject, shallowRef, reactive, toRefs, watchEffect, getCurrentInstance } from "vue";
 import { publicStores, useStores } from "@/store/modules/index";

+ 0 - 6
src/pages/common/textview/index.vue

@@ -36,12 +36,6 @@ onShow(() => {
 });
 </script>
 
-<style>
-page {
-  background-color: #ffffff;
-}
-</style>
-
 <style scoped>
 .view-title {
   font-weight: bold;

+ 0 - 6
src/pages/common/textview/index1.vue

@@ -34,12 +34,6 @@ onShow(() => {
 });
 </script>
 
-<style>
-page {
-  background-color: #ffffff;
-}
-</style>
-
 <style lang="scss" scoped>
 .view-text {
   padding: 5px;

+ 15 - 27
src/pages/index.vue

@@ -19,7 +19,7 @@
   </u-navbar>
 
   <!-- <pagesHarder></pagesHarder> -->
-  <view class="home-container" :style="{ height: `calc(100vh - (50.67px + ${proxy.$settingStore.barHightTop}))` }">
+  <scroll-view class="home-container" scroll-y :style="{ height: `calc(100vh - (50px + ${proxy.$settingStore.barHightTop} + ${proxy.$settingStore.tabBarHeight}))` }">
     <!-- <u-loadmore :status="arrayList.loadStatus" loadingText="" loadmoreText="" :icon="true" /> -->
     <view class="uni-content-body">
       <!-- 下拉列表 开始 -->
@@ -52,6 +52,7 @@
         circular
         @click="swiperClick"
         @change="swiperChange"
+        :displayMultipleItems="6"
       >
       </u-swiper>
 
@@ -97,7 +98,7 @@
       </view>
       <!-- 宫格列表 end -->
     </view>
-  </view>
+  </scroll-view>
 
   <oa-tabbar :tabbarValue="0"></oa-tabbar>
 </template>
@@ -106,7 +107,6 @@
 import searchSelect from "@/components/searchSelect/searchSelect.vue";
 import pagesHarder from "@/components/pages-harder/index.vue";
 
-import json from "@/static/js/json.js"; //引入api请求封装方法
 import * as jwx from "@/utils/jssdk.js"; //引入js sdk的封装
 
 import { onReady, onLoad, onShow, onNavigationBarButtonTap, onPullDownRefresh, onReachBottom } from "@dcloudio/uni-app";
@@ -124,18 +124,12 @@ const { proxy } = getCurrentInstance();
 const arrayList = reactive({
   dialogFlag: false,
 
-  swiperBool: true,
+  swiperBool: false,
   swiperIndex: 0,
   swiperTime: 5000,
-  swiperList: [
-    {
-      url: "../static/images/index/banner1.png",
-      link: "",
-      linkType: 1,
-    },
-  ],
+  swiperList: [],
 
-  // cuIconList: json.cuIconList,
+  // cuIconList: proxy.$grid.cuIconList,
   recentlyUsed: [],
 });
 
@@ -211,15 +205,21 @@ onLoad((option) => {
  * @扫码功能
  */
 function scanCode() {
-  //#ifdef H5
+  //#ifdef H5 || MP-WEIXIN
   jwx.configWeiXin((jweixin) => {
+    console.log(2);
     jweixin.scanQRCode({
       needResult: 1, // 默认为0,扫描结果由微信处理,1则直接返回扫描结果,
       scanType: ["qrCode", "barCode"], // 可以指定扫二维码还是一维码,默认二者都有
       success: function (res) {
         setTimeout(function () {
-          getCodeResult({
-            ercode: res.resultStr,
+          scan_push({ ercode: res.resultStr }).then((res) => {
+            if (res.data.flag) {
+              uni.showToast({
+                title: "扫码成功",
+                icon: "none",
+              });
+            }
           });
         }, 1000);
       },
@@ -252,18 +252,6 @@ function scanCode() {
   //#endif
 }
 
-//微信扫码成功后请求
-async function getCodeResult(param = {}) {
-  scan_push(param).then((res) => {
-    if (res.data.flag) {
-      uni.showToast({
-        title: "扫码成功",
-        icon: "none",
-      });
-    }
-  });
-}
-
 //获取地理位置
 function getLocation() {
   jwx.configWeiXin((jweixin) => {

+ 1 - 1
src/pages/info/info.vue → src/pages/info.vue

@@ -22,7 +22,7 @@
     </view>
   </u-sticky>
 
-  <scroll-view class="bg-white info-wrapper" scroll-y :style="`height: calc(100vh - (105.67px + ${proxy.$settingStore.barHightTop}))`">
+  <scroll-view class="bg-white info-wrapper" scroll-y :style="`height: calc(100vh - (105px + ${proxy.$settingStore.barHightTop} + ${proxy.$settingStore.tabBarHeight}))`">
     <!-- <view class="uni-content-header">
       <view class="padding-lr-sm padding-top-sm" style="width: 100%; height: 290rpx">
         <image class="radius" style="width: 100%; height: 100%" src="@/static/images/info/info-bg.png" mode="scaleToFill"></image>

+ 4 - 3
src/pages/info/pushList/pushList.vue

@@ -56,12 +56,13 @@
 </template>
 
 <script setup>
-import json from "@/static/js/json.js";
 import { onLoad, onShow, onHide, onLaunch } from "@dcloudio/uni-app";
-import { ref, onMounted, inject, shallowRef, reactive, toRefs } from "vue";
+import { ref, onMounted, inject, shallowRef, reactive, toRefs, getCurrentInstance } from "vue";
 
 import {} from "@/api/mine/info.js";
 
+const { proxy } = getCurrentInstance();
+
 const data = reactive({
   unporcessList: [
     {
@@ -116,7 +117,7 @@ const data = reactive({
     },
   ],
 
-  processedList: json.processedList,
+  processedList: proxy.$grid.processedList,
 
   type: "0",
   modalName: null,

+ 15 - 42
src/pages/login.vue

@@ -18,9 +18,8 @@
       <view class="content">
         <text class="title" :style="{ color: useStore.$state.loginBg ? '#FFFFFF' : '#000000' }">请登录</text>
 
-        <!-- #ifdef APP-PLUS -->
+        <!-- #ifdef APP-PLUS || MP-WEIXIN  -->
         <view id="okay" v-if="!linkUrl">首次账号登录请先配置服务器</view>
-        <!-- <u-icon class="icons" name="scan" color="gray" size="22"></u-icon> -->
         <view class="setting" @tap="goSeverConfig"> 配置服务器 </view>
         <!--#endif-->
       </view>
@@ -53,7 +52,7 @@
         <text @click="switchMode">{{ switchText }}</text>
       </view>
 
-      <!-- #ifdef APP-PLUS-->
+      <!-- #ifdef APP-PLUS || MP-WEIXIN -->
       <view class="xieyi text-center">
         <u-checkbox-group v-model="userChecked">
           <u-checkbox :name="true" shape="circle" inactiveColor="#0081ff" size="13"></u-checkbox>
@@ -72,6 +71,7 @@
 </template>
 
 <script setup>
+import config from "@/config";
 import { onLoad, onShow, onHide, onLaunch, onReady } from "@dcloudio/uni-app";
 import { reactive, getCurrentInstance, toRefs, inject } from "vue";
 import { publicStores, useStores } from "@/store/modules/index";
@@ -117,7 +117,7 @@ function switchMode() {
 
 /** 点击发送验证码 */
 function getVerifyCode() {
-  //#ifdef APP-PLUS
+  //#ifdef APP-PLUS || MP-WEIXIN
   if (!uni.getStorageSync("serveUrl")) {
     proxy.$modal.msg("首次账号登录请先配置服务器");
     return;
@@ -133,7 +133,7 @@ function getVerifyCode() {
     return;
   }
 
-  //#ifdef APP-PLUS
+  //#ifdef APP-PLUS || MP-WEIXIN
   if (!userChecked.value[0]) {
     proxy.$modal.msg("请在阅读并同意 用户协议和隐私协议后登录");
     return;
@@ -173,33 +173,17 @@ function env() {
     tenantId: "",
   });
 
-  // const u = navigator.userAgent
-  // //https://blog.csdn.net/weixin_42659644/article/details/126294231
-  // if(u.indexOf('saas')>-1){ //指定app内 获取app识别号
-  // }else{
-  // }
-
-  //  let port = uni.getSystemInfoSync().platform;
-  // switch (port) {
-  //   case "windows":
-  //     useStore.GetMobileTenantConfig({ url: window.location.host });
-  //     break;
-  //   default: //devtools
-  //     console.log("小程序");
-  //     break;
-  // }
-
   //#ifdef H5
   if (window.location.host) {
     linkUrl.value = window.location.host;
     // linkUrl.value = window.location.host;
     // linkUrl.value='ces.cn';
-    // linkUrl.value='172.16.120.165:13203'
+    // linkUrl.value = "172.16.120.165:13207";
     useStore.GetMobileTenantConfig({ url: linkUrl.value });
   }
   //#endif
 
-  //#ifdef APP-PLUS
+  //#ifdef APP-PLUS || MP-WEIXIN
   if (uni.getStorageSync("serveUrl")) {
     linkUrl.value = uni.getStorageSync("serveUrl");
     useStore.GetMobileTenantConfig({ url: linkUrl.value });
@@ -209,14 +193,14 @@ function env() {
 
 /** 点击提交按钮 */
 function submitRes() {
-  //#ifdef APP-PLUS
+  //#ifdef APP-PLUS || MP-WEIXIN
   if (!uni.getStorageSync("serveUrl")) {
     proxy.$modal.msg("首次登录请先进行服务器配置");
     return;
   }
   //#endif
 
-  //#ifdef APP-PLUS
+  //#ifdef APP-PLUS || MP-WEIXIN
   if (!userChecked.value[0]) {
     proxy.$modal.msg("请在阅读并同意 用户协议和隐私协议后登录");
     return;
@@ -274,13 +258,14 @@ function login(data) {
 
 // 用户协议
 function handleUserAgrement() {
-  let site = getApp().globalData.config.appInfo.agreements[0];
+  let site = config.appInfo.agreements[0];
   proxy.$tab.navigateTo(`/pages/common/webview/index?title=${site.title}&url=${site.url}`);
   // proxy.$tab.navigateTo(`/pages/common/textview/index1?title=${site.title}&content=${site.content}`);
 }
+
 // 隐私协议
 function handlePrivacy() {
-  let site = getApp().globalData.config.appInfo.agreements[1];
+  let site = config.appInfo.agreements[1];
   proxy.$tab.navigateTo(`/pages/common/webview/index?title=${site.title}&url=${site.url}`);
   // proxy.$tab.navigateTo(`/pages/common/textview/index1?title=${site.title}&content=${site.content}`);
 }
@@ -327,8 +312,9 @@ onLoad(() => {
     margin: auto;
     margin-top: 30%;
 
+    // 登录页-服务器配置样式 开始
     #login-input {
-      .u-input {
+      :deep(.u-input) {
         height: 45px;
         border-radius: 8px;
         padding: 5px 12px !important;
@@ -341,7 +327,7 @@ onLoad(() => {
       }
 
       :deep(.input-placeholder) {
-        color: #96a6b5 !important;
+        color: #c0c4cc !important;
       }
 
       :deep(.uni-input-wrapper) {
@@ -366,19 +352,6 @@ onLoad(() => {
         background-image: none;
         transition: background-color 50000s ease-in-out 0s; //背景色透明  生效时长  过渡效果  启用时延迟的时间
       }
-
-      :deep(.u-button) {
-        color: #2a98ff;
-        font-size: 16px !important;
-        white-space: nowrap;
-        border: 0;
-        border-color: #2a98ff !important;
-        background-color: rgba(255, 255, 255, 0) !important;
-
-        &:before {
-          opacity: 0;
-        }
-      }
     }
 
     .top {

+ 467 - 0
src/pages/mine.vue

@@ -0,0 +1,467 @@
+<template>
+  <view :data-theme="'theme-' + proxy.$settingStore.themeColor.name" class="mine-container">
+    <!--顶部个人信息栏-->
+    <view class="header-section" :class="'bg-' + themeColor.name" :style="{ paddingTop: proxy.$settingStore.StatusBar ? proxy.$settingStore.StatusBar + 20 + 'px' : '55px' }">
+      <view class="flex padding justify-between">
+        <view class="flex align-center">
+          <view v-if="!avatar" class="cu-avatar xl round bg-white" @click="handleToAvatar(1)">
+            <view class="iconfont ucicon-people text-gray icon"></view>
+          </view>
+          <image v-if="avatar" @click="handleToAvatar(2)" :src="avatar" class="cu-avatar xl round"> </image>
+          <view v-if="!data.name" @click="handleToLogin" class="login-tip"> 点击登录 </view>
+          <view v-if="data.name" class="user-info">
+            <view class="u_title"> {{ data.name }} </view>
+            <view class="u_title"> {{ data.phone }} </view>
+          </view>
+        </view>
+        <view class="flex align-center"> </view>
+      </view>
+
+      <view class="vip-card-box"> </view>
+    </view>
+
+    <view
+      class="content-section"
+      :style="[
+        {
+          transform: coverTransform,
+          transition: coverTransition,
+        },
+      ]"
+      @touchstart="coverTouchstart"
+      @touchmove="coverTouchmove"
+      @touchend="coverTouchend"
+    >
+      <image class="mine-image" src="@/static/images/mine/arc.png"></image>
+
+      <view class="menu-list">
+        <view class="list-cell list-cell-arrow" @click="proxy.$settingStore.handleToEditInfo()">
+          <view class="menu-item-box">
+            <view class="iconfont ucicon-user menu-icon"></view>
+            <view>我的信息</view>
+          </view>
+        </view>
+        <view class="list-cell list-cell-arrow" @click="proxy.$settingStore.handleToSecure()">
+          <view class="menu-item-box">
+            <view class="iconfont ucicon-yanzheng menu-icon"></view>
+            <view>账号与安全</view>
+          </view>
+        </view>
+        <view class="list-cell list-cell-arrow" @click="proxy.$settingStore.handleAbout()">
+          <view class="menu-item-box">
+            <view class="iconfont ucicon-aixin menu-icon"></view>
+            <view>关于我们</view>
+          </view>
+        </view>
+        <view class="list-cell list-cell-arrow" @click="proxy.$settingStore.handleHelp()">
+          <view class="menu-item-box">
+            <view class="iconfont ucicon-Help menu-icon"></view>
+            <view>常见问题</view>
+          </view>
+        </view>
+        <view class="list-cell list-cell-arrow" @click="proxy.$settingStore.handleCleanTmp()">
+          <view class="menu-item-box">
+            <view class="iconfont ucicon-qinglihuancun menu-icon"></view>
+            <view>清理缓存</view>
+            <view style="margin: 0 15px 0 auto; font-size: 14px; color: #909399">{{ proxy.$settingStore.currentSize }}</view>
+          </view>
+        </view>
+        <view class="list-cell list-cell-arrow" @click="proxy.$settingStore.handleToUpgrade()">
+          <view class="menu-item-box">
+            <view class="iconfont ucicon-jianchagengxin menu-icon"></view>
+            <view>检查更新</view>
+          </view>
+        </view>
+        <!-- <view class="list-cell list-cell-arrow" @click="proxy.$settingStore.handleSetting()">
+          <view class="menu-item-box">
+            <view class="iconfont ucicon-shezhi menu-icon"></view>
+            <view>设置</view>
+          </view>
+        </view> -->
+      </view>
+
+      <!-- <view class="menu-list">
+        <view class="list-cell list-cell-arrow" @click="goMessagePush()">
+          <view class="menu-item-box">
+            <view class="iconfont ucicon-aixin menu-icon"></view>
+            <view>推送设置</view>
+          </view>
+        </view>
+        <view class="list-cell list-cell-arrow" @click="goBuilding()">
+          <view class="menu-item-box">
+            <view class="iconfont ucicon-aixin menu-icon"></view>
+            <view>建筑管理</view>
+          </view>
+        </view>
+        <view class="list-cell list-cell-arrow" @click="goFunReport()">
+          <view class="menu-item-box">
+            <view class="iconfont ucicon-aixin menu-icon"></view>
+            <view>功能报备</view>
+          </view>
+        </view>
+      </view> -->
+
+      <view class="cu-list menu">
+        <view class="cu-item" style="margin-top: 0; margin-bottom: 0">
+          <view class="content flex align-center">
+            <text class="iconfont ucicon-colorlens" :class="'text-' + themeColor.name"></text>
+            <view class="padding solid radius shadow-blur" :class="'bg-' + themeColor.name" style="margin-left: 10px"></view>
+            <view class="title" style="margin-left: 10px">
+              主题色:<text :class="'text-' + themeColor.name">{{ themeColor.title }}</text>
+            </view>
+          </view>
+          <view class="action">
+            <button class="cu-btn round shadow" @click="colorModal = true" :class="'bg-' + themeColor.name">
+              <text class="iconfont ucicon-colorlens"></text>
+              选择主题
+            </button>
+          </view>
+        </view>
+      </view>
+
+      <view class="cu-list menu">
+        <view class="cu-item">
+          <view class="content text-center" @click="proxy.$settingStore.handleLogout">
+            <text class="text-black">退出登录</text>
+          </view>
+        </view>
+      </view>
+    </view>
+
+    <!-- <view class="cu-list menu-avatar padding-lr-sm padding-top-sm">
+      <view class="cu-item" @tap="goSiteManage" v-if="permissionLabel == 1">
+        <view class="cu-avatar" style="background-image: url(@/static/images/setting/setting-icon2.png)"></view>
+        <view class="content">
+          <view class="">站点管理</view>
+        </view>
+        <view class="nav-right">
+          <view class="text-grey">
+            <text class="icon iconfont margin-right-xs margin-left-lg">&#xe629;</text>
+          </view>
+        </view>
+      </view>
+      <view class="cu-item" @tap="goAuthManage" v-if="permissionLabel == 1">
+        <view class="cu-avatar" style="background-image: url(@/static/images/setting/setting-icon4.png)"></view>
+        <view class="content">
+          <view class="">权限管理</view>
+        </view>
+        <view class="nav-right">
+          <view class="text-grey">
+            <text class="icon iconfont margin-right-xs margin-left-lg">&#xe629;</text>
+          </view>
+        </view>
+      </view>
+    </view> -->
+
+    <!-- 选择颜色模态框 -->
+    <view class="cu-modal" :class="{ show: colorModal }">
+      <view class="cu-dialog">
+        <view class="cu-bar justify-end solid-bottom">
+          <view class="content">选择颜色</view>
+          <view class="action" @tap="colorModal = false">
+            <u-icon name="close" size="14"></u-icon>
+            <text class="cuIcon-close text-red"></text>
+          </view>
+        </view>
+        <view class="grid col-5 padding">
+          <view class="padding-xs" v-for="(item, index) in themeList" :key="index" @tap="SetColor(item)" :data-color="item.name">
+            <view class="padding-tb radius" :class="'bg-' + item.name">
+              {{ item.title }}
+            </view>
+          </view>
+        </view>
+      </view>
+    </view>
+  </view>
+
+  <oa-tabbar :tabbarValue="2"></oa-tabbar>
+</template>
+
+<script setup>
+import config from "@/config";
+import storage from "@/utils/storage";
+import { onLoad, onShow, onReady, onHide, onLaunch, onNavigationBarButtonTap, onPageScroll } from "@dcloudio/uni-app";
+import { ref, reactive, computed, getCurrentInstance, toRefs, inject } from "vue";
+import { publicStores, useStores } from "@/store/modules/index";
+
+import { uploadAvatar, updateUserProfile } from "@/api/system/user";
+import { getAuthorization } from "@/api/setting/index.js";
+
+const useStore = useStores();
+
+const { proxy } = getCurrentInstance();
+
+const avatar = computed(() => {
+  return useStore.$state.avatar;
+});
+
+const themeColor = computed(() => {
+  return proxy.$settingStore.themeColor;
+});
+
+const windowHeight = computed(() => {
+  return uni.getSystemInfoSync().windowHeight - 50;
+});
+
+const data = reactive({
+  name: useStore.$state.name,
+  phone: useStore.$state.phonenumber,
+  version: config.appInfo.version,
+
+  coverTransform: "translateY(0px)",
+  coverTransition: "0s",
+  moving: false,
+
+  colorModal: false,
+  themeList: proxy.$constData.themeList,
+});
+
+const { coverTransform, coverTransition, moving, colorModal, themeList } = toRefs(data);
+
+const permissionLabel = ref(0);
+
+function getAuthorizationApi(params) {
+  getAuthorization(params).then((res) => {
+    permissionLabel.value = res.data.permissionLabel;
+  });
+}
+
+/**
+ * @推送设置
+ */
+function goMessagePush() {
+  proxy.$tab.navigateTo("/pages/business/zhxf/messagePush/index");
+}
+
+/**
+ * @建筑管理
+ */
+function goBuilding() {
+  proxy.$tab.navigateTo("/pages/business/zhxf/building/index");
+}
+
+/**
+ * @功能报备
+ */
+function goFunReport() {
+  proxy.$tab.navigateTo("/pages/business/zhxf/funReport/index");
+}
+
+/**
+ * @主题颜色选择
+ */
+function SetColor(item) {
+  colorModal.value = false;
+  proxy.$settingStore.SET_THEMECOLOR(item);
+  proxy.$settingStore.systemThemeColor([1, 2]);
+}
+
+/**
+ * @点击登录
+ */
+function handleToLogin() {
+  proxy.$tab.reLaunch("/pages/login");
+}
+
+/**
+ * @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(() => {});
+  });
+}
+
+/**
+ * @点击头像
+ */
+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");
+  }
+}
+
+let startY = 0,
+  moveY = 0,
+  pageAtTop = true;
+
+/**
+ * @触摸开始
+ */
+function coverTouchstart(e) {
+  if (pageAtTop === false) {
+    return;
+  }
+  coverTransition.value = "transform .1s linear";
+  startY = e.touches[0].clientY;
+}
+
+/**
+ * @触摸移动
+ */
+function coverTouchmove(e) {
+  moveY = e.touches[0].clientY;
+  let moveDistance = moveY - startY;
+  if (moveDistance < 0) {
+    moving.value = false;
+    return;
+  }
+  moving.value = true;
+  if (moveDistance >= 80 && moveDistance < 100) {
+    moveDistance = 80;
+  }
+  if (moveDistance > 0 && moveDistance <= 80) {
+    coverTransform.value = `translateY(${moveDistance}px)`;
+  }
+}
+
+/**
+ * @触摸结束
+ */
+function coverTouchend() {
+  if (moving.value === false) {
+    return;
+  }
+  moving.value = false;
+  coverTransition.value = "transform 0.3s cubic-bezier(.21,1.93,.53,.64)";
+  coverTransform.value = "translateY(0px)";
+}
+
+onShow(() => {});
+
+onReady(() => {});
+
+onLoad((options) => {
+  uni.hideTabBar(); //隐藏自带tabbar
+});
+
+// 自定义导航事件
+onNavigationBarButtonTap((e) => {
+  if (e.float == "right") {
+    proxy.$tab.navigateTo("/pages/mine/setting/index");
+  }
+});
+</script>
+
+<style lang="scss" scoped>
+.mine-container {
+  width: 100%;
+  height: calc(100vh - (50px + constant(safe-area-inset-bottom)));
+  height: calc(100vh - (50px + env(safe-area-inset-bottom)));
+
+  .header-section {
+    padding: 55px 15px 0 15px;
+
+    .login-tip {
+      font-size: 18px;
+      margin-left: 10px;
+    }
+
+    .cu-avatar {
+      border: 2px solid #eaeaea;
+
+      .icon {
+        font-size: 40px;
+      }
+    }
+
+    .user-info {
+      margin-left: 15px;
+
+      .u_title {
+        font-size: 18px;
+        line-height: 30px;
+      }
+    }
+
+    .vip-card-box {
+      display: flex;
+      flex-direction: column;
+      color: #f7d680;
+      height: 132px;
+      background: url("@/static/images/mine/vip-card.png");
+      background-size: 100% 100%;
+      border-radius: 8px 8px 0 0;
+      overflow: hidden;
+      position: relative;
+      padding: 11px 13px;
+    }
+  }
+
+  .content-section {
+    position: relative;
+    margin-top: -85px;
+    padding-bottom: 50.67px;
+    background-color: #f5f6f7;
+
+    .mine-image {
+      position: absolute;
+      left: 0;
+      top: -16px;
+      width: 100%;
+      height: 36upx;
+    }
+
+    .mine-actions {
+      margin: 0.625rem 0.625rem;
+      padding: 20px 0px;
+      border-radius: 8px;
+      background-color: white;
+
+      .action-item {
+        .icon {
+          font-size: 28px;
+        }
+
+        .text {
+          display: block;
+          font-size: 13px;
+          margin: 8px 0px;
+        }
+      }
+    }
+  }
+
+  .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;
+    }
+  }
+}
+
+.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>

+ 5 - 4
src/pages/mine/about/index.vue

@@ -53,6 +53,7 @@
 </template>
 
 <script setup>
+import config from "@/config";
 import { onReady, onLoad, onShow, onNavigationBarButtonTap } from "@dcloudio/uni-app";
 import { ref, reactive, computed, getCurrentInstance, toRefs, inject } from "vue";
 import { publicStores, useStores } from "@/store/modules/index";
@@ -61,10 +62,10 @@ const useStore = useStores();
 
 const { proxy } = getCurrentInstance();
 
-const url = ref(getApp().globalData.config.appInfo.site_url);
-const version = ref(getApp().globalData.config.appInfo.version);
-const email = ref(getApp().globalData.config.appInfo.email);
-const hotline = ref(getApp().globalData.config.appInfo.hotline);
+const url = ref(config.appInfo.site_url);
+const version = ref(config.appInfo.version);
+const email = ref(config.appInfo.email);
+const hotline = ref(config.appInfo.hotline);
 
 onShow(() => {
   //调用系统主题颜色

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

@@ -206,7 +206,7 @@ const windowHeight = computed(() => {
 const data = reactive({
   name: useStore.$state.name,
   phone: useStore.$state.phonenumber,
-  version: getApp().globalData.config.appInfo.version,
+  version: config.appInfo.version,
 
   coverTransform: "translateY(0px)",
   coverTransition: "0s",

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

@@ -229,7 +229,7 @@ function handleConfirm() {
   }
 
   updateUserProfile(userArr.value).then((response) => {
-    proxy.$tab.reLaunch("/pages/mine/index");
+    proxy.$tab.reLaunch("/pages/mine");
     useStore.getUser();
   });
 }

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

@@ -166,7 +166,7 @@ function handleConfirm() {
 
   if (modalTitle.value == "修改手机号") {
     updateUserProfile(userArr.value).then((response) => {
-      proxy.$tab.reLaunch("/pages/mine/index");
+      proxy.$tab.reLaunch("/pages/mine");
       useStore.getUser();
     });
   } else if (modalTitle.value == "修改密码") {

+ 24 - 9
src/pages/serveConfig.vue

@@ -10,16 +10,30 @@
       <text class="setting" @tap="scanClick"> 扫码添加 </text>
     </view>
 
-    <view class="bottom">
-      <u-input style="margin-bottom: 15px" v-model="linkUrl" placeholder="服务器地址(必填)" border="none" clearable> </u-input>
+    <view id="login-input" class="bottom">
+      <u-input v-model="linkUrl" placeholder="服务器地址(必填)" border="none" clearable> </u-input>
 
       <!-- <u-input v-model="port" type="number" placeholder="端口号(必填)" border="none" maxlength="5" clearable> </u-input> -->
 
-      <u-input style="margin-bottom: 15px" v-model="port" type="number" placeholder="端口号(非必填)" border="none" maxlength="5" clearable> </u-input>
+      <u-input v-model="port" type="number" placeholder="端口号(非必填)" border="none" maxlength="5" clearable> </u-input>
 
       <u-input v-model="content" placeholder="备注(非必填)" border="none" maxlength="20" clearable> </u-input>
 
-      <u-button type="primary" style="width: 100%; height: 45px; font-size: 17px; margin-top: 20px" @click="handleSubmit()" shape="circle"> 保 存</u-button>
+      <u-button
+        type="primary"
+        shape="circle"
+        :customStyle="{
+          display: 'block',
+          width: '100%',
+          height: '45px',
+          lineHeight: '45px',
+          fontSize: '17px',
+          marginTop: '20px',
+        }"
+        @click="handleSubmit()"
+      >
+        保 存
+      </u-button>
     </view>
   </view>
 </template>
@@ -165,20 +179,21 @@ onLoad((options) => {});
       //   border-color: gray !important;
       //   background-color: rgba(255, 255, 255, 0.1) !important;
       background-color: #f5f6fa !important;
+      margin-bottom: 15px;
     }
 
     :deep(.input-placeholder) {
-      color: #a0a4af;
+      color: #c0c4cc !important;
     }
 
     :deep(.uni-input-wrapper) {
       font-size: 16px;
     }
 
-    :deep(.u-input__content__field-wrapper__field) {
-      height: 30px;
-      line-height: 30px;
-    }
+    // :deep(.u-input__content__field-wrapper__field) {
+    //   height: 30px;
+    //   line-height: 30px;
+    // }
 
     :deep(.uni-input-input) {
       // padding:8px

+ 4 - 2
src/pages/serveConfigSelect.vue

@@ -77,6 +77,8 @@ function deleteRadio(index) {
   uni.setStorageSync("serveList", serveList);
 
   init();
+
+  proxy.$tab.redirectTo("/pages/serveConfigSelect"); //重载当前页
 }
 
 /**
@@ -95,6 +97,8 @@ function serveClick(type) {
         publicStore.getServeList(e.result, "");
 
         init();
+
+        proxy.$tab.redirectTo("/pages/serveConfigSelect"); //重载当前页
       },
       fail: (err) => {
         uni.showToast({
@@ -149,8 +153,6 @@ function init() {
     radiovalue.value = serveList[0].radiovalue;
     radiolist.value = serveList[0].radiolist;
   }
-
-  proxy.$tab.redirectTo("/pages/serveConfigSelect"); //重载当前页
 }
 
 onLoad((options) => {

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

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

+ 4 - 0
src/plugins/index.js

@@ -4,6 +4,7 @@ import modal from "./modal.plugins";
 import common from "./common.plugins";
 import setting from "./setting.plugins";
 import constData from "./constData.plugins.js";
+import grid from "./grid.plugins.js";
 import { settingStores } from "@/store/modules/index";
 
 export default {
@@ -26,6 +27,9 @@ export default {
     // 公共默认数据存储
     app.provide("$constData", constData);
     app.config.globalProperties.$constData = constData;
+    // 公共宫格列表数据存储
+    app.provide("$grid", grid);
+    app.config.globalProperties.$grid = grid;
     // 公共设置stroe
     app.provide("$settingStore", settingStores());
     app.config.globalProperties.$settingStore = settingStores();

+ 18 - 28
src/static/amap/1.html → src/static/amap/coordination.html

@@ -34,10 +34,26 @@
         <div class="content"> </div>
     </div>
 
+
+    <!-- 高德地图web端 -->
+    <!-- <script type="text/javascript">
+		window._AMapSecurityConfig = {
+			securityJsCode: 'be916fcd16d0b33d228c49f0ff096b17',
+		}
+	</script> -->
+    <!-- <script type="text/javascript" src="https://webapi.amap.com/maps?v=2.0&key=d4d73a7d572b6ff6028d5f67de62029a">
+	</script> -->
+
+
+
     <script src="https://a.amap.com/jsapi_demos/static/china.js"></script>
-    <script type="text/javascript"
-        src="https://webapi.amap.com/maps?v=2.0&key=8e266e1ac2ad2383c7773ff504ac248f"></script>
+    <script type="text/javascript" src="https://webapi.amap.com/maps?v=2.0&key=ffc71dfd4e576596027f8f45a1b8fb2f">
+    </script>
+    <!-- <script type="text/javascript" src="https://webapi.amap.com/maps?v=2.0&key=8e266e1ac2ad2383c7773ff504ac248f">
+    </script> -->
+    <!-- <script src="https://webapi.amap.com/loader.js"></script> -->
     <script type="text/javascript" src="https://webapi.amap.com/ui/1.1/main.js"></script>
+
     <script type="text/javascript" src="./js/jquery-2.2.1.min.js"></script>
     <script src="./js/M_select/M_select.js"></script>
     <script type="text/javascript" src="./js/map-data.js"></script>
@@ -354,32 +370,6 @@
                     }
                 });
 
-
-                address
-                :
-                "上海市闵行区浦江镇沿浦路15号"
-                companyName
-                :
-                "上海闵行区晨星敬老院"
-                companyTypeName
-                :
-                "重点单位"
-                id
-                :
-                371
-                latitude
-                :
-                "31.01668"
-                linkPhone
-                :
-                "13472846477"
-                longitude
-                :
-                "121.54048"
-                streetTown
-                :
-                "浦江镇"
-
                 context.marker.on("click", (e) => {
                     if (pageType === "警情综合处置") {
                         if (type == 1) {

+ 159 - 0
src/static/amap/mapGather.html

@@ -0,0 +1,159 @@
+<!doctype html>
+<html lang="en">
+
+<head>
+    <meta charset="utf-8">
+    <meta http-equiv="X-UA-Compatible" content="IE=edge">
+    <meta name="viewport" content="initial-scale=1.0, user-scalable=no, width=device-width">
+    <title>地图采集</title>
+    <link rel="stylesheet" href="https://a.amap.com/jsapi_demos/static/demo-center/css/demo-center.css" />
+    <link rel="stylesheet" type="text/css" href="./js/M_select/M_select.css">
+    <link rel="stylesheet" type="text/css" href="./js/notification/index.css">
+    <style>
+        html,
+        body,
+        #mapF {
+            height: 100%;
+            width: 100%;
+        }
+    </style>
+</head>
+
+<body>
+    <div id="mapF" class="map" tabindex="0"></div>
+
+    <div style="padding: 0 10px;">
+        <div style="position: absolute;top: 0;display:inline-block;width: 50%;padding-top: 10px;">
+            <select id="selectId" class="select02">
+            </select>
+        </div>
+    </div>
+
+    <div id="notification" style="display: none;">
+        <div class="mask"> </div>
+        <div class="content"> </div>
+    </div>
+
+    <div class="input-card" style="width: 120px;bottom: 40px;">
+        <button class="btn" onclick="handlePolygon('新增')" style="margin-bottom: 5px">新建</button>
+        <button class="btn" onclick="handlePolygon('编辑')" style="margin-bottom: 5px">开始编辑</button>
+        <button class="btn" onclick="handlePolygon('保存')" style="margin-bottom: 5px">结束编辑</button>
+
+        <button class="btn btn-red" type="button" id="postMessage" onclick="sendMessage()"> postMessage</button>
+    </div>
+
+    <script src="https://a.amap.com/jsapi_demos/static/china.js"></script>
+    <script type="text/javascript"
+        src="https://webapi.amap.com/maps?v=2.0&key=8e266e1ac2ad2383c7773ff504ac248f&plugin=AMap.PolygonEditor"></script>
+    <script type="text/javascript" src="https://webapi.amap.com/ui/1.1/main.js"></script>
+    <script type="text/javascript" src="./js/jquery-2.2.1.min.js"></script>
+    <script src="./js/M_select/M_select.js"></script>
+
+    <!-- uni 的 SDK -->
+    <!-- 需要把 uni.webview.1.5.4.js 下载到自己的服务器 -->
+    <script type="text/javascript" src="https://unpkg.com/@dcloudio/uni-webview-js@0.0.3/index.js"></script>
+
+    <script type="text/javascript">
+        var checkedArray = {
+            checkedData: 1,
+            checkedList: [
+                { value: 1, label: "消防站" },
+                { value: 2, label: "消防车" },
+                { value: 3, label: "监控" },
+                { value: 4, label: "重点单位" },
+                { value: 5, label: "消火栓/天然水源" },
+            ],
+        }//类型筛选
+
+        $.each(checkedArray.checkedList, function (i, item) {
+            $("#selectId").append(`<option value="${item.value}">${item.label}</option>`)
+        })
+        $(function () {
+            $(".select02").M_select({
+                // 手动添加下拉款图片(以html页面为起始位置写路径)
+                "Img": "./js/M_select/up4.png",
+                "Img2": "./js/M_select/down4.png",
+                "radius": "15px",
+                "Title": "--请选择--",
+                "inputName": "selected_value",
+                // 默认选中的值(参数值写需要选中的select的value值)
+                "selected": "1",
+                Succee: function () {
+                    checkedArray.checkedData = parseInt($(".inputHidden").val())
+                    mapCluster();
+                }
+            });
+        });
+
+        //点击遮罩层关闭
+        $('#notification .mask').on('click', function (e) {
+            $('#notification').css('display', 'none')
+
+            $('#notification .content #xxxx').remove()
+        })
+    </script>
+
+    <script type="text/javascript">
+
+        var map = [];
+        var polyEditor = null; //创建画布数据存储
+        var polygon1 = null; //选中地图区域数据存储
+
+        function initMap() {
+            map = new AMap.Map("mapF", {
+                // mapStyle: 'amap://styles/d0ddc09bd7cbd7331a8e8fa691e5b0da', //设置地图的显示样式
+                resizeEnable: true,
+                center: [121.4737021, 31.2303904],
+                zoom: 13,
+                zooms: [3, 16],
+            });
+
+            map.setFitView();
+
+            polyEditor = new AMap.PolygonEditor(map);
+        }
+
+        /**
+         * 面
+         */
+        function handlePolygon(clickType) {
+            if (clickType === "新增") {
+                polyEditor.close();
+                polyEditor.setTarget();
+                polyEditor.open();
+            } else if (clickType === "编辑") {
+                polyEditor.open();
+            } else if (clickType === "保存") {
+                polyEditor.close();
+            }
+        }
+
+        initMap();
+
+
+        if (window.plus) {
+            plusReady();
+        }//加上此判断以免再浏览器打开h5页面时报plus is not define
+        function plusReady() {
+            if (plus.webview.getWebviewById("batch_view")) {
+                const appData = plus.webview.getWebviewById("batch_view").data;
+                alert(JSON.stringfy(appData))
+            }
+        }
+
+        function sendMessage() {
+            uni.postMessage({
+                data: 'Hello from web page!'
+            });
+
+
+            var item = "previewFile";
+            if (window.parent) {
+                window.parent.postMessage(item, '*');
+            }
+        }
+
+    </script>
+</body>
+
+</html>

+ 0 - 154
src/static/js/json.js

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

+ 1 - 1
src/static/scss/colorui.css

@@ -10,7 +10,7 @@
 /* ==================
         初始化
  ==================== */
-body {
+page {
   background-color: #f5f6f7;
   font-size: 28upx;
   color: #333333;

+ 5 - 3
src/static/scss/public.scss

@@ -227,14 +227,16 @@ uni-input {
   position: fixed;
   left: 0;
   right: 0;
-  bottom: 0px;
-  //#ifdef APP-PLUS
-  bottom: 5px;
+  bottom: 0;
+  //#ifdef APP-PLUS || MP-WEIXIN
+  bottom: constant(safe-area-inset-bottom);
+  bottom: calc(env(safe-area-inset-bottom) - 25px);
   //#endif
   padding: 0px 15px 0px 15px;
   z-index: 50;
 
   .app-buttom {
+    display: block;
     width: 100%;
     height: 40px;
     font-size: 14px;

+ 3 - 1
src/static/scss/sidebar.scss

@@ -58,12 +58,14 @@ uni-button[type='primary'] {
     }
 
     .uni-section-header__content {
-        uni-text {
+        .uni-section__content-title {
             font-size: 15px !important;
             // color: #149eff !important;
             @include font_color('themeColor');
             font-weight: 600 !important;
+
         }
+
     }
 }
 

+ 1 - 7
src/store/modules/public.js

@@ -2,10 +2,6 @@ import { defineStore } from "pinia";
 
 const publicStore = defineStore("public", {
   state: () => ({
-    leftBtn: true, //左侧收起按钮
-    rightBtn: true, //右侧收起按钮
-    serveUrl: null, //链接地址
-
     mapBool: 1, //1.高德 2.测绘院
     streetTownList: [
       { value: "", label: "全区" },
@@ -126,10 +122,8 @@ const publicStore = defineStore("public", {
       },
     ],
 
-    arrayList: [], //撒点弹框数据存储
-
-
     deviceDetailsArray: {},//设备详情页面-数据存储
+
   }),
   persist: {
     // 自定义数据持久化方式

+ 4 - 2
src/store/modules/setting.js

@@ -16,8 +16,9 @@ const settingStore = defineStore("setting", {
         themeColor: storage.get(constant.themeColor),//主题
 
         barHeight: 0,//微信小程序顶部安全距离
+        webViewHeight: "",//webView整体高度-铺满
         StatusBar: 0,//app顶部安全距离
-        tabBarHeight: 0,//app底部安全距离
+        tabBarHeight: "",//app底部安全距离
         barHightTop: "",//app头部计算距离
 
     }),
@@ -70,8 +71,9 @@ const settingStore = defineStore("setting", {
         systemHeightTop() {
             let systemInfo = uni.getSystemInfoSync();
             var statusBarHeight = systemInfo.statusBarHeight
+            this.webViewHeight = systemInfo.safeArea.bottom  //高度+安全区域的高度
             this.StatusBar = statusBarHeight
-            this.tabBarHeight = systemInfo.screenHeight - systemInfo.safeArea.bottom
+            this.tabBarHeight = systemInfo.screenHeight - systemInfo.safeArea.bottom + "px"
             this.barHightTop = this.StatusBar ? this.StatusBar + 44 + 'px' : '44px'
 
             //#ifdef MP

+ 14 - 7
src/utils/jssdk.js

@@ -1,16 +1,24 @@
 import config from "@/config";
 
-// jwx.js
 //#ifdef H5
 const jweixin = import('weixin-js-sdk')
 //#endif
 export function configWeiXin(callback) {
-	const url = window.location.href.split('#')[0];
-	// const url= "https://s.yxin.tech/hello.html"
-	// start
+	const url = ""
+
+	//#ifdef H5
+	if (window.location.host) {
+		url = window.location.host;
+	}
+	//#endif
+
+	//#ifdef APP-PLUS || MP-WEIXIN
+	if (uni.getStorageSync("serveUrl")) {
+		url = uni.getStorageSync("serveUrl");
+	}
+	//#endif
+
 	uni.request({
-		// url: "/web/sign.php",
-		// url:"https://s.yxin.tech/sign.php",	
 		url: "https://qhome.usky.cn/USKYZHAF/sign.php",
 		header: {
 			'Content-Type': 'application/x-www-form-urlencoded;charset=UTF-8'
@@ -48,5 +56,4 @@ export function configWeiXin(callback) {
 			});
 		}
 	});
-	// end
 }