Prechádzať zdrojové kódy

同屏对比添加当前系统时间显示,header组件用户名获取逻辑优化,map组件卷帘对比显示异常终极逻辑优化。

DESKTOP-6LTVLN7\Liumouren 2 rokov pred
rodič
commit
93cda2d29a

Rozdielové dáta súboru neboli zobrazené, pretože súbor je príliš veľký
+ 1 - 11646
package-lock.json


+ 1 - 0
package.json

@@ -10,6 +10,7 @@
     "axios": "^1.1.3",
     "core-js": "^3.8.3",
     "crypto-js": "^4.1.1",
+    "dayjs": "^1.11.6",
     "deep-clone": "^3.0.3",
     "docx-preview": "^0.1.4",
     "echarts": "^5.4.0",

+ 23 - 3
src/components/common/BottomForm/SameScreenComparison.vue

@@ -59,6 +59,7 @@
     </div>
     <!-- 底部文本域 -->
     <div id="textareaBox">
+      <div class="doPrintInfo">地址:xxxxxxxx 时间:{{ newTime }}</div>
       <div class="textareaTitle">描述记录:</div>
       <el-input type="textarea" :autosize="{ minRows: 3, maxRows: 4 }" placeholder="请输入内容" v-model="textarea1"> </el-input>
     </div>
@@ -66,6 +67,7 @@
     <div id="imgBox">
       <span>基本农田被侵占</span>
       <img src="" id="imgOut" style="width: 1240px; background-repeat: no-repeat; background-size: 100% 100%" />
+      <div class="doPrintInfo2">地址:xxxxxxxx 时间:{{ newTime }}</div>
       <span><div>描述记录:</div></span>
       <div>{{ textarea1 }}</div>
     </div>
@@ -95,6 +97,9 @@ export default {
       checkedCities: [],
       // 定时器暂存
       interval: "",
+      // 时间定时器暂存
+      timeInterval: "",
+      newTime: "",
       // 地图暂存显示变量
       centerZoom: {},
       // 外部地图暂存中心、层级信息
@@ -215,10 +220,20 @@ export default {
     this.$bus.$on("tpdb", () => {
       this.changeShowBottomMenusStatus();
     });
+    // 刷新实时时间
+    if (!this.timeInterval) {
+      this.timeInterval = setInterval(() => {
+        this.newTime = this.$dayjs().format("YYYY-MM-DD HH:mm:ss");
+      }, 1000);
+    }
   },
   destroy() {
     // 当容器销毁时,需要停止监听该事件
     this.$bus.$off("tpdb");
+    if (this.timeInterval) {
+      clearInterval(this.timeInterval);
+      this.timeInterval = "";
+    }
   },
   props: [],
   methods: {
@@ -288,10 +303,9 @@ export default {
       }, 500);
     },
     clearDiyInterval() {
-      let that = this;
       // 先销毁定时器
-      clearInterval(that.interval);
-      that.interval = "";
+      clearInterval(this.interval);
+      this.interval = "";
     },
     // div打印(iframe的方式为最优)
     doPrint() {
@@ -440,4 +454,10 @@ export default {
     padding: 20px 10px;
   }
 }
+.doPrintInfo {
+  color: #ffffff;
+}
+.doPrintInfo2 {
+  color: #000000;
+}
 </style>

+ 9 - 2
src/components/layout/Header.vue

@@ -47,10 +47,16 @@
               <span class="el-dropdown-link">
                 <el-avatar
                   size="medium"
-                  :src="$store.state.userInfo && $store.state.userInfo.photo ? $store.state.userInfo.photo : 'https://cube.elemecdn.com/3/7c/3ea6beec64369c2642b92c6726f1epng.png'"
+                  :src="
+                    $store.state.userInfo && $store.state.userInfo.photo
+                      ? $store.state.userInfo.photo
+                      : 'https://cube.elemecdn.com/3/7c/3ea6beec64369c2642b92c6726f1epng.png'
+                  "
                 ></el-avatar>
                 <!-- <div class="inner-user-icon"></div> -->
-                <div class="inner-user-text">{{ $store.state.userInfo && $store.state.userInfo.username ? $store.state.userInfo.username : '未登录'}}</div>
+                <div class="inner-user-text">
+                  {{ $store.state.userInfo && $store.state.userInfo.username ? $store.state.userInfo.username : userName }}
+                </div>
               </span>
               <el-dropdown-menu slot="dropdown">
                 <el-dropdown-item command="loginOut">注销登录</el-dropdown-item>
@@ -67,6 +73,7 @@ export default {
   name: "Header",
   data() {
     return {
+      userName: localStorage.getItem("_USER_NAME") ? localStorage.getItem("_USER_NAME") : "未登录",
       ActiveIndex: "0",
       navData: {
         1: "首页",

+ 8 - 11
src/components/map/MapHolder.vue

@@ -17,9 +17,6 @@ export default {
   components: { CaseAuditPopup, LabelCasePopup, BasemapChange },
   data() {
     return {
-      // 卷帘对比开关
-      JLControlShowStatus: false,
-
       town: "祝桥镇,南汇新城镇,川沙新镇,老港镇,惠南镇,航头镇,泥城镇,书院镇,新场镇,大团镇,唐镇,曹路镇,宣桥镇,张江镇,合庆镇,周浦镇,康桥镇,三林镇,高桥镇,高东镇,金桥镇,北蔡镇,万祥镇,高行镇",
       auditPopupShow: false,
       labelDetailsPopupShow: false,
@@ -89,8 +86,11 @@ export default {
     "$store.state.navSelect": {
       handler(val) {
         if (val.index !== "3") {
-          if (this.JLControlShowStatus) {
-            this.JLControl();
+          if (map2DViewer.map.hasLayer(map2DViewer.jlMap)) {
+            map2DViewer.map.removeControl(map2DViewer.jlControl);
+            map2DViewer.map.removeLayer(map2DViewer.jlMap);
+            delete map2DViewer.jlMap;
+            map2DViewer.jlControl = null;
           }
           this.$store.state.bottomMenuIndexs.index = -1;
           this.$store.state.bottomMenuIndexs.subIndex = -1;
@@ -275,15 +275,12 @@ export default {
     },
     // 卷帘对比
     JLControl() {
-      this.JLControlShowStatus = !this.JLControlShowStatus;
-      if (this.JLControlShowStatus) {
+      if (!map2DViewer.map.hasLayer(map2DViewer.jlMap)) {
         map2DViewer.jlMap = L.tileLayer(
           "http://t0.tianditu.gov.cn/DataServer?T=img_w&X={x}&Y={y}&L={z}&tk=f331ba0b9ab96fb21c56d91de868935d"
         ).addTo(map2DViewer.map);
-        map2DViewer.jlControl = L.control
-          .sideBySide(map2DViewer.map, map2DViewer.jlMap)
-          .addTo(map2DViewer.map);
-      } else {
+        map2DViewer.jlControl = L.control.sideBySide(map2DViewer.map, map2DViewer.jlMap).addTo(map2DViewer.map);
+      } else if(map2DViewer.map.hasLayer(map2DViewer.jlMap)) {
         map2DViewer.map.removeControl(map2DViewer.jlControl);
         map2DViewer.map.removeLayer(map2DViewer.jlMap);
         delete map2DViewer.jlMap;

+ 3 - 0
src/main.js

@@ -15,9 +15,12 @@ import $ from "jquery";
 import { drag } from "./directives/drag";
 import { post, postform } from "./utils/request.js";
 import urls from "./api/url";
+// 引入dayjs库
+import dayjs from 'dayjs';
 
 Vue.directive("drag", drag);
 Vue.prototype.$Post = post;
+Vue.prototype.$dayjs = dayjs;
 Vue.prototype.$PostForm = postform
 Vue.prototype.urlsCollection = urls;
 Vue.config.productionTip = false;

Niektoré súbory nie sú zobrazené, pretože je v týchto rozdielových dátach zmenené mnoho súborov