LR 2 年之前
父節點
當前提交
631ee29681

+ 22 - 163
package-lock.json

@@ -1811,7 +1811,6 @@
       "version": "7.17.9",
       "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.17.9.tgz",
       "integrity": "sha512-lSiBBvodq29uShpWGNbgFdKYNiFDo5/HIYsaCEY9ff4sb10x9jizo2+pRrSyF4jKZCXqgzuqBOQKbUm90gQwJg==",
-      "dev": true,
       "requires": {
         "regenerator-runtime": "^0.13.4"
       },
@@ -1819,8 +1818,7 @@
         "regenerator-runtime": {
           "version": "0.13.9",
           "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.13.9.tgz",
-          "integrity": "sha512-p3VT+cOEgxFsRRA9X4lkI1E+k2/CtnKtU4gcxyaCUreilL/vqI6CdZ3wxVUx3UOUg+gnUOQQcRI7BmSI656MYA==",
-          "dev": true
+          "integrity": "sha512-p3VT+cOEgxFsRRA9X4lkI1E+k2/CtnKtU4gcxyaCUreilL/vqI6CdZ3wxVUx3UOUg+gnUOQQcRI7BmSI656MYA=="
         }
       }
     },
@@ -3772,6 +3770,7 @@
       "version": "4.9.15",
       "resolved": "https://registry.npmmirror.com/@types/echarts/-/echarts-4.9.15.tgz",
       "integrity": "sha512-C+GhOl8jYjpZrPE9JPYgI8pH8+mIfsib2WoE5E+WpM2wRWZDQhaIy6ZZ1HhaZOT1h+QkrHvDVWUoGvXCzcb0rw==",
+      "dev": true,
       "requires": {
         "@types/zrender": "*"
       }
@@ -3836,7 +3835,8 @@
     "@types/lodash": {
       "version": "4.14.182",
       "resolved": "https://registry.npmmirror.com/@types/lodash/-/lodash-4.14.182.tgz",
-      "integrity": "sha512-/THyiqyQAP9AfARo4pF+aCGcyiQ94tX/Is2I7HofNRqoYLgN1PBoOWu2/zTA5zMxzP5EFutMtWtGAFRKUe961Q=="
+      "integrity": "sha512-/THyiqyQAP9AfARo4pF+aCGcyiQ94tX/Is2I7HofNRqoYLgN1PBoOWu2/zTA5zMxzP5EFutMtWtGAFRKUe961Q==",
+      "dev": true
     },
     "@types/minimatch": {
       "version": "3.0.3",
@@ -3926,7 +3926,8 @@
     "@types/zrender": {
       "version": "4.0.2",
       "resolved": "https://registry.npmmirror.com/@types/zrender/-/zrender-4.0.2.tgz",
-      "integrity": "sha512-Y/3hGzYeFdJUD4yWV0a+jkk3kIjtrbjzxwqkAWRjXLGm6lpL2tckg3vgopkn9KKPK1QyzwGH+JSDvzbKJO59+Q=="
+      "integrity": "sha512-Y/3hGzYeFdJUD4yWV0a+jkk3kIjtrbjzxwqkAWRjXLGm6lpL2tckg3vgopkn9KKPK1QyzwGH+JSDvzbKJO59+Q==",
+      "dev": true
     },
     "@typescript-eslint/eslint-plugin": {
       "version": "1.13.0",
@@ -5298,11 +5299,6 @@
       "integrity": "sha1-SlKCrBZHKek2Gbz9OtFR+BfOkfU=",
       "dev": true
     },
-    "animate.css": {
-      "version": "4.1.1",
-      "resolved": "https://registry.npmjs.org/animate.css/-/animate.css-4.1.1.tgz",
-      "integrity": "sha512-+mRmCTv6SbCmtYJCN4faJMNFVNN5EuCTTprDTAo7YzIGji2KADmakjVA3+8mVDkZ2Bf09vayB35lSQIex2+QaQ=="
-    },
     "ansi-colors": {
       "version": "3.2.4",
       "resolved": "https://registry.npm.taobao.org/ansi-colors/download/ansi-colors-3.2.4.tgz",
@@ -5982,11 +5978,6 @@
         "@babel/helper-define-polyfill-provider": "^0.3.1"
       }
     },
-    "babel-plugin-syntax-dynamic-import": {
-      "version": "6.18.0",
-      "resolved": "https://registry.nlark.com/babel-plugin-syntax-dynamic-import/download/babel-plugin-syntax-dynamic-import-6.18.0.tgz",
-      "integrity": "sha1-jWomIpyDdFqZgqRBBRVyyqF5sdo="
-    },
     "babel-plugin-syntax-object-rest-spread": {
       "version": "6.13.0",
       "resolved": "https://registry.npm.taobao.org/babel-plugin-syntax-object-rest-spread/download/babel-plugin-syntax-object-rest-spread-6.13.0.tgz",
@@ -6949,8 +6940,8 @@
     },
     "btoa": {
       "version": "1.2.1",
-      "resolved": "https://registry.npm.taobao.org/btoa/download/btoa-1.2.1.tgz",
-      "integrity": "sha1-AamQn4ssk/a/aAuiYTHrMPf6PXM="
+      "resolved": "https://registry.npmmirror.com/btoa/-/btoa-1.2.1.tgz",
+      "integrity": "sha512-SB4/MIGlsiVkMcHmT+pSmIPoNDoHg+7cMzmt3Uxt628MTz2487DKSqK/fuhFBrkuqrYv5UCEnACpF4dTFNKc/g=="
     },
     "buffer": {
       "version": "4.9.2",
@@ -9338,9 +9329,9 @@
       }
     },
     "dompurify": {
-      "version": "2.2.8",
-      "resolved": "https://registry.nlark.com/dompurify/download/dompurify-2.2.8.tgz",
-      "integrity": "sha1-zojjlfbQC23FP4DWsqb99URoc8Y=",
+      "version": "2.3.8",
+      "resolved": "https://registry.npmmirror.com/dompurify/-/dompurify-2.3.8.tgz",
+      "integrity": "sha512-eVhaWoVibIzqdGYjwsBWodIQIaXFSB+cKDf4cfxLMsK0xiud6SE+/WCVx/Xw/UwQsa4cS3T2eITcdtmTg2UKcw==",
       "optional": true
     },
     "domready": {
@@ -10212,11 +10203,6 @@
         "estraverse": "^4.1.0"
       }
     },
-    "esri-loader": {
-      "version": "3.4.0",
-      "resolved": "https://registry.npmmirror.com/esri-loader/-/esri-loader-3.4.0.tgz",
-      "integrity": "sha512-iS3SbBmrnr4TlUdAjyyVZD2yCud8AMZkyJcmYEVzTiE5wVUtdN8d9USp7XYtilgwkJe/eWR2f2G1+S58ESqLuQ=="
-    },
     "estraverse": {
       "version": "4.3.0",
       "resolved": "https://registry.npm.taobao.org/estraverse/download/estraverse-4.3.0.tgz?cache=0&sync_timestamp=1586996117385&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Festraverse%2Fdownload%2Festraverse-4.3.0.tgz",
@@ -10869,11 +10855,6 @@
         }
       }
     },
-    "file-saver": {
-      "version": "2.0.5",
-      "resolved": "https://registry.npm.taobao.org/file-saver/download/file-saver-2.0.5.tgz?cache=0&sync_timestamp=1605790845476&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Ffile-saver%2Fdownload%2Ffile-saver-2.0.5.tgz",
-      "integrity": "sha1-1hz+LOBZ9BTYmendbUEH7iVnDDg="
-    },
     "file-type": {
       "version": "12.4.2",
       "resolved": "https://registry.npm.taobao.org/file-type/download/file-type-12.4.2.tgz?cache=0&sync_timestamp=1592123534210&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Ffile-type%2Fdownload%2Ffile-type-12.4.2.tgz",
@@ -11962,11 +11943,6 @@
         "css-line-break": "1.1.1"
       }
     },
-    "html2pdf": {
-      "version": "0.0.11",
-      "resolved": "https://registry.nlark.com/html2pdf/download/html2pdf-0.0.11.tgz",
-      "integrity": "sha1-E1kVb73qwOxvyKeBsF6HR97Rl2k="
-    },
     "htmlparser2": {
       "version": "3.10.1",
       "resolved": "https://registry.npm.taobao.org/htmlparser2/download/htmlparser2-3.10.1.tgz",
@@ -12190,11 +12166,6 @@
       "integrity": "sha1-Cpf7h2mG6AgcYxFg+PnziRV/AEM=",
       "dev": true
     },
-    "image-conversion": {
-      "version": "2.1.1",
-      "resolved": "https://registry.npmmirror.com/image-conversion/-/image-conversion-2.1.1.tgz",
-      "integrity": "sha512-hnMOmP7q2jxA+52FZ+wHNhg3fdFRlgfngsQH2JQHEQkafY7tj/8F15e6Rv/RxDegc872jvyaRHwMbkTZK1Cjbg=="
-    },
     "image-size": {
       "version": "0.5.5",
       "resolved": "https://registry.npm.taobao.org/image-size/download/image-size-0.5.5.tgz?cache=0&sync_timestamp=1569840751769&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fimage-size%2Fdownload%2Fimage-size-0.5.5.tgz",
@@ -14676,10 +14647,11 @@
       }
     },
     "jspdf": {
-      "version": "2.3.1",
-      "resolved": "https://registry.npm.taobao.org/jspdf/download/jspdf-2.3.1.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fjspdf%2Fdownload%2Fjspdf-2.3.1.tgz",
-      "integrity": "sha1-MT0RcjS1RkaWlKH9gaHgJBFkdXY=",
+      "version": "2.5.1",
+      "resolved": "https://registry.npmmirror.com/jspdf/-/jspdf-2.5.1.tgz",
+      "integrity": "sha512-hXObxz7ZqoyhxET78+XR34Xu2qFGrJJ2I2bE5w4SM8eFaFEkW2xcGRVUss360fYelwRSid/jT078kbNvmoW0QA==",
       "requires": {
+        "@babel/runtime": "^7.14.0",
         "atob": "^2.1.2",
         "btoa": "^1.2.1",
         "canvg": "^3.0.6",
@@ -14690,15 +14662,15 @@
       },
       "dependencies": {
         "core-js": {
-          "version": "3.12.1",
-          "resolved": "https://registry.nlark.com/core-js/download/core-js-3.12.1.tgz?cache=0&sync_timestamp=1620508113239&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fcore-js%2Fdownload%2Fcore-js-3.12.1.tgz",
-          "integrity": "sha1-a1r0/1VhbAikTThvH1EJF/8gQRI=",
+          "version": "3.23.3",
+          "resolved": "https://registry.npmmirror.com/core-js/-/core-js-3.23.3.tgz",
+          "integrity": "sha512-oAKwkj9xcWNBAvGbT//WiCdOMpb9XQG92/Fe3ABFM/R16BsHgePG00mFOgKf7IsCtfj8tA1kHtf/VwErhriz5Q==",
           "optional": true
         },
         "fflate": {
           "version": "0.4.8",
-          "resolved": "https://registry.nlark.com/fflate/download/fflate-0.4.8.tgz",
-          "integrity": "sha1-+QuCrvvYrBdCE6uzOL1++Ejw9a4="
+          "resolved": "https://registry.npmmirror.com/fflate/-/fflate-0.4.8.tgz",
+          "integrity": "sha512-FJqqoDBR00Mdj9ppamLa/Y7vxm+PRmNWA67N846RvsoYVMKB4q3y/de5PA7gUmRMYK/8CMz2GDZQmCRN1wBcWA=="
         }
       }
     },
@@ -14769,11 +14741,6 @@
       "integrity": "sha512-pJiBpiXMbt7dkzXe8Ghj/u4FfXOOa98fPW+bihOJ4SjnoijweJrNThJfd3ifXpXhREjpoF2mZVH1GfS9LV3kHQ==",
       "dev": true
     },
-    "krry-transfer": {
-      "version": "1.7.6",
-      "resolved": "https://registry.nlark.com/krry-transfer/download/krry-transfer-1.7.6.tgz",
-      "integrity": "sha1-mPKztF+3P+K7wjSvicml+liehrs="
-    },
     "launch-editor": {
       "version": "2.2.1",
       "resolved": "https://registry.npm.taobao.org/launch-editor/download/launch-editor-2.2.1.tgz",
@@ -15005,6 +14972,7 @@
       "version": "1.4.0",
       "resolved": "https://registry.npm.taobao.org/loader-utils/download/loader-utils-1.4.0.tgz?cache=0&sync_timestamp=1584445172927&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Floader-utils%2Fdownload%2Floader-utils-1.4.0.tgz",
       "integrity": "sha1-xXm140yzSxp07cbB+za/o3HVphM=",
+      "dev": true,
       "requires": {
         "big.js": "^5.2.2",
         "emojis-list": "^3.0.0",
@@ -15015,6 +14983,7 @@
           "version": "1.0.1",
           "resolved": "https://registry.npm.taobao.org/json5/download/json5-1.0.1.tgz",
           "integrity": "sha1-d5+wAYYE+oVOrL9iUhgNg1Q+Pb4=",
+          "dev": true,
           "requires": {
             "minimist": "^1.2.0"
           }
@@ -15805,11 +15774,6 @@
       "integrity": "sha1-MHXOk7whuPq0PhvE2n6BFe0ee6s=",
       "dev": true
     },
-    "mxgraph": {
-      "version": "4.2.2",
-      "resolved": "https://registry.npm.taobao.org/mxgraph/download/mxgraph-4.2.2.tgz",
-      "integrity": "sha1-UjNkQ/EKsQOb55zD/dLrjADJG6I="
-    },
     "nan": {
       "version": "2.14.1",
       "resolved": "https://registry.npm.taobao.org/nan/download/nan-2.14.1.tgz?cache=0&sync_timestamp=1587497111086&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fnan%2Fdownload%2Fnan-2.14.1.tgz",
@@ -16930,11 +16894,6 @@
         "sha.js": "^2.4.8"
       }
     },
-    "pdfjs-dist": {
-      "version": "2.6.347",
-      "resolved": "https://registry.npmmirror.com/pdfjs-dist/download/pdfjs-dist-2.6.347.tgz",
-      "integrity": "sha1-8lftZug76QDND9KFJKIYf7niXNU="
-    },
     "pend": {
       "version": "1.2.0",
       "resolved": "https://registry.npm.taobao.org/pend/download/pend-1.2.0.tgz",
@@ -21845,11 +21804,6 @@
       "resolved": "https://registry.npmjs.org/vue/-/vue-2.6.10.tgz",
       "integrity": "sha512-ImThpeNU9HbdZL3utgMCq0oiMzAkt1mcgy3/E6zWC/G6AaQoeuFdsl9nDhTDU3X1R6FK7nsIUuRACVcjI+A2GQ=="
     },
-    "vue-awesome-swiper": {
-      "version": "5.0.1",
-      "resolved": "https://registry.npmjs.org/vue-awesome-swiper/-/vue-awesome-swiper-5.0.1.tgz",
-      "integrity": "sha512-mWjFJzUqA4lG+DmsmibvMpoiBnl+IH2SSeiiQ3i5M0t1y9FknTxnGT0DsMb2YdJLgjYMEK3sYOWzqgLnZMH8Lg=="
-    },
     "vue-baidu-map": {
       "version": "0.21.22",
       "resolved": "https://registry.npmjs.org/vue-baidu-map/-/vue-baidu-map-0.21.22.tgz",
@@ -22006,76 +21960,6 @@
         "moment": "^2.19.2"
       }
     },
-    "vue-pdf": {
-      "version": "4.3.0",
-      "resolved": "https://registry.nlark.com/vue-pdf/download/vue-pdf-4.3.0.tgz",
-      "integrity": "sha1-1feQ7nln57eqkIm5exGrFo4Z29A=",
-      "requires": {
-        "babel-plugin-syntax-dynamic-import": "^6.18.0",
-        "loader-utils": "^1.4.0",
-        "pdfjs-dist": "2.6.347",
-        "raw-loader": "^4.0.2",
-        "vue-resize-sensor": "^2.0.0",
-        "worker-loader": "^2.0.0"
-      },
-      "dependencies": {
-        "@types/json-schema": {
-          "version": "7.0.9",
-          "resolved": "https://registry.npmmirror.com/@types/json-schema/download/@types/json-schema-7.0.9.tgz",
-          "integrity": "sha1-l+3JA36gw4WFMgsolk3eOznkZg0="
-        },
-        "ajv": {
-          "version": "6.12.6",
-          "resolved": "https://registry.npmmirror.com/ajv/download/ajv-6.12.6.tgz?cache=0&sync_timestamp=1637522318370&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2Fajv%2Fdownload%2Fajv-6.12.6.tgz",
-          "integrity": "sha1-uvWmLoArB9l3A0WG+MO69a3ybfQ=",
-          "requires": {
-            "fast-deep-equal": "^3.1.1",
-            "fast-json-stable-stringify": "^2.0.0",
-            "json-schema-traverse": "^0.4.1",
-            "uri-js": "^4.2.2"
-          }
-        },
-        "json5": {
-          "version": "2.2.0",
-          "resolved": "https://registry.nlark.com/json5/download/json5-2.2.0.tgz",
-          "integrity": "sha1-Lf7+cgxrpSXZ69kJlQ8FFTFsiaM=",
-          "requires": {
-            "minimist": "^1.2.5"
-          }
-        },
-        "raw-loader": {
-          "version": "4.0.2",
-          "resolved": "https://registry.npm.taobao.org/raw-loader/download/raw-loader-4.0.2.tgz?cache=0&sync_timestamp=1602255313867&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fraw-loader%2Fdownload%2Fraw-loader-4.0.2.tgz",
-          "integrity": "sha1-GqxrfRrRUB5m79rBUixz5ZpYTrY=",
-          "requires": {
-            "loader-utils": "^2.0.0",
-            "schema-utils": "^3.0.0"
-          },
-          "dependencies": {
-            "loader-utils": {
-              "version": "2.0.2",
-              "resolved": "https://registry.npmmirror.com/loader-utils/download/loader-utils-2.0.2.tgz?cache=0&sync_timestamp=1636687953081&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2Floader-utils%2Fdownload%2Floader-utils-2.0.2.tgz",
-              "integrity": "sha1-1uO0+4GHByGuTghoqxHdY4NowSk=",
-              "requires": {
-                "big.js": "^5.2.2",
-                "emojis-list": "^3.0.0",
-                "json5": "^2.1.2"
-              }
-            }
-          }
-        },
-        "schema-utils": {
-          "version": "3.1.1",
-          "resolved": "https://registry.npmmirror.com/schema-utils/download/schema-utils-3.1.1.tgz?cache=0&sync_timestamp=1637075967293&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2Fschema-utils%2Fdownload%2Fschema-utils-3.1.1.tgz",
-          "integrity": "sha1-vHTEtraZXB2I92qLd76nIZ4MgoE=",
-          "requires": {
-            "@types/json-schema": "^7.0.8",
-            "ajv": "^6.12.5",
-            "ajv-keywords": "^3.5.2"
-          }
-        }
-      }
-    },
     "vue-print-nb": {
       "version": "1.7.4",
       "resolved": "https://registry.nlark.com/vue-print-nb/download/vue-print-nb-1.7.4.tgz",
@@ -22096,11 +21980,6 @@
       "resolved": "https://registry.npmmirror.com/vue-property-decorator/-/vue-property-decorator-9.1.2.tgz",
       "integrity": "sha512-xYA8MkZynPBGd/w5QFJ2d/NM0z/YeegMqYTphy7NJQXbZcuU6FC6AOdUAcy4SXP+YnkerC6AfH+ldg7PDk9ESQ=="
     },
-    "vue-resize-sensor": {
-      "version": "2.0.0",
-      "resolved": "https://registry.nlark.com/vue-resize-sensor/download/vue-resize-sensor-2.0.0.tgz",
-      "integrity": "sha1-Olh/1oAuFohwnPLFqtrnoAdZUr8="
-    },
     "vue-router": {
       "version": "3.0.6",
       "resolved": "https://registry.npm.taobao.org/vue-router/download/vue-router-3.0.6.tgz?cache=0&sync_timestamp=1595736280573&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fvue-router%2Fdownload%2Fvue-router-3.0.6.tgz",
@@ -23017,26 +22896,6 @@
         "errno": "~0.1.7"
       }
     },
-    "worker-loader": {
-      "version": "2.0.0",
-      "resolved": "https://registry.nlark.com/worker-loader/download/worker-loader-2.0.0.tgz",
-      "integrity": "sha1-Rf2j73asqBV3GokQc5nuQRm0MKw=",
-      "requires": {
-        "loader-utils": "^1.0.0",
-        "schema-utils": "^0.4.0"
-      },
-      "dependencies": {
-        "schema-utils": {
-          "version": "0.4.7",
-          "resolved": "https://registry.npmmirror.com/schema-utils/download/schema-utils-0.4.7.tgz?cache=0&sync_timestamp=1637075967293&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2Fschema-utils%2Fdownload%2Fschema-utils-0.4.7.tgz",
-          "integrity": "sha1-unT1l9K+LqiAExdG7hfQoJPGgYc=",
-          "requires": {
-            "ajv": "^6.1.0",
-            "ajv-keywords": "^3.1.0"
-          }
-        }
-      }
-    },
     "worker-rpc": {
       "version": "0.1.1",
       "resolved": "https://registry.npmmirror.com/worker-rpc/-/worker-rpc-0.1.1.tgz",

+ 3 - 12
package.json

@@ -12,9 +12,6 @@
   },
   "dependencies": {
     "@supermap/iclient-ol": "^10.2.1",
-    "@types/echarts": "^4.9.15",
-    "@types/lodash": "^4.14.182",
-    "animate.css": "^4.1.1",
     "axios": "^0.27.2",
     "babel-loader": "^8.2.4",
     "core-js": "^2.6.11",
@@ -22,18 +19,12 @@
     "echarts": "^4.9.0",
     "echarts-liquidfill": "^2.0.6",
     "element-ui": "^2.15.7",
-    "esri-loader": "^3.4.0",
-    "file-saver": "^2.0.5",
     "hls.js": "^1.1.5",
     "html2canvas": "^1.0.0-rc.7",
-    "html2pdf": "0.0.11",
-    "image-conversion": "^2.1.1",
     "jquery": "^3.5.1",
     "js-cookie": "2.2.0",
-    "jspdf": "^2.3.1",
-    "krry-transfer": "^1.7.6",
+    "jspdf": "^2.5.1",
     "moment": "^2.29.2",
-    "mxgraph": "^4.2.2",
     "normalize.css": "7.0.0",
     "nprogress": "0.2.0",
     "object-to-formdata": "^4.4.2",
@@ -44,13 +35,11 @@
     "qs": "^6.9.0",
     "sha1-hex": "^1.0.0",
     "vue": "^2.6.10",
-    "vue-awesome-swiper": "^5.0.1",
     "vue-baidu-map": "^0.21.22",
     "vue-class-component": "^7.2.3",
     "vue-echarts": "^4.1.0",
     "vue-json-excel": "^0.3.0",
     "vue-moment": "^4.1.0",
-    "vue-pdf": "^4.3.0",
     "vue-print-nb": "^1.7.4",
     "vue-property-decorator": "^9.1.2",
     "vue-router": "3.0.6",
@@ -64,6 +53,8 @@
     "@babel/core": "7.0.0",
     "@babel/register": "7.0.0",
     "@types/jest": "^23.1.4",
+    "@types/echarts": "^4.9.15",
+    "@types/lodash": "^4.14.182",
     "@types/vue-moment": "^4.0.3",
     "@vue/babel-helper-vue-jsx-merge-props": "^1.2.1",
     "@vue/babel-preset-jsx": "^1.2.4",

File diff suppressed because it is too large
+ 0 - 145
src/components/GetPointInMap/index.vue


+ 5 - 8
src/main.ts

@@ -23,15 +23,14 @@ import '@/assets/iconfont/iconfont.js'
 import '@/assets/iconfont/iconfont.css'
 
 import Moment from 'vue-moment'
-import 'animate.css' //animate动画组件库
 //全局接口
-import PortApi from "./api/APIs";
-Vue.prototype.$PortApi = PortApi;
+import PortApi from './api/APIs'
+Vue.prototype.$PortApi = PortApi
 //全局lodash
-import lodash from "lodash";
-Object.defineProperty(Vue.prototype, "$_", {
+import lodash from 'lodash'
+Object.defineProperty(Vue.prototype, '$_', {
   value: lodash
-});
+})
 // import htmlToPdf from './utils/htmlToPdf'
 // Vue.use(htmlToPdf)
 // dialog拖动
@@ -65,8 +64,6 @@ Vue.component('downloadExcel', JsonExcel)
 
 Vue.prototype.$echarts = echarts
 Vue.prototype.$comMethod = comMethod
-import html2pdf from '@/utils/html2pdf'
-Vue.use(html2pdf)
 
 Vue.use(BaiduMap, {
   ak: 'CO5txfs21UEm2XUgiaPiGhZcvfpjVBXS'

+ 354 - 150
src/views/zhpt/common/MissionInfo.vue

@@ -1,46 +1,120 @@
 <template>
   <div style="display:none">
-    <el-dialog v-dialogDrag title="任务进度查看" :visible.sync="visiable" width="1100px" top="calc(50vh - 400px)" append-to-body>
-      <el-steps :active="stepsActive" finish-status="success" style="background:rgb(245, 247, 250);padding:10px 0;" align-center>
-        <el-step title="工单登记" :description="stepsActive > 0 ? '(已派工)' : '(未派工)'" v-loading="loading" ></el-step>
-        <el-step title="工单派工" :description="stepsActive >= 1 ? (stepsActive == 1 ? '(未开始)' : '(已开始)') : ''" ></el-step>
-        <el-step title="工单处理" :description="stepsActive >= 2 ? (stepsActive == 2 ? '(未完成)' : '(已完成)') : ''" ></el-step>
-        <el-step title="工单审核" :description="stepsActive >= 3 ? (stepsActive == 3 ? '(未审核)' : '(已审核)') : ''" ></el-step>
-      </el-steps>      
+    <el-dialog
+      v-dialogDrag
+      title="任务进度查看"
+      :visible.sync="visiable"
+      width="1100px"
+      top="calc(50vh - 400px)"
+      append-to-body
+    >
+      <el-steps
+        :active="stepsActive"
+        finish-status="success"
+        style="background:rgb(245, 247, 250);padding:10px 0;"
+        align-center
+      >
+        <el-step
+          title="工单登记"
+          :description="stepsActive > 0 ? '(已派工)' : '(未派工)'"
+          v-loading="loading"
+        ></el-step>
+        <el-step
+          title="工单派工"
+          :description="stepsActive >= 1 ? (stepsActive == 1 ? '(未开始)' : '(已开始)') : ''"
+        ></el-step>
+        <el-step
+          title="工单处理"
+          :description="stepsActive >= 2 ? (stepsActive == 2 ? '(未完成)' : '(已完成)') : ''"
+        ></el-step>
+        <el-step
+          title="工单审核"
+          :description="stepsActive >= 3 ? (stepsActive == 3 ? '(未审核)' : '(已审核)') : ''"
+        ></el-step>
+      </el-steps>
       <div ref="gundong" style="margin-top:5px;" v-loading="loading">
         <el-tabs v-model="first" type="border-card">
           <el-tab-pane label="工单登记" name="first">
             <tf-legend v-if="repairorderVo" label="工单信息" isopen="true" style="margin-top: 8px;">
               <div style="width: 100%; display: flex; flex-wrap: wrap;">
-                <div class="flexDiv"><span class="flexTitle">工单编号:</span><div class="flexInfo">{{ repairorderVo['orderCode'] || '-' }}</div></div>
-                <div class="flexDiv"><span class="flexTitle">工单来源:</span><div class="flexInfo">{{ repairorderVo['orderSource'] ? repairorderVo['orderSource'] + '工单' : '' }}</div></div>
-                <div class="flexDiv"><span class="flexTitle">维修类型:</span><div class="flexInfo">{{ repairorderVo['typeName'] || '-' }}</div></div>
-                <div class="flexDiv"><span class="flexTitle">工单状态:</span><div class="flexInfo">{{ repairorderVo['state'] || '-' }}</div></div>
-                <div class="flexDiv"><span class="flexTitle">维修数量:</span><div class="flexInfo">{{ repairorderVo['num'] || '' + (repairorderVo['unit'] || '') }}</div></div>
-                <div class="flexDiv"><span class="flexTitle">完成数量:</span><div class="flexInfo">{{ repairorderVo['overNum'] || '-' }}</div></div>
-                <div class="flexDiv"><span class="flexTitle">总完成率:</span><div class="flexInfo">{{ (repairorderVo['percent'] || '0') + '%' }}</div></div>
+                <div class="flexDiv">
+                  <span class="flexTitle">工单编号:</span>
+                  <div class="flexInfo">{{ repairorderVo['orderCode'] || '-' }}</div>
+                </div>
+                <div class="flexDiv">
+                  <span class="flexTitle">工单来源:</span>
+                  <div class="flexInfo">
+                    {{ repairorderVo['orderSource'] ? repairorderVo['orderSource'] + '工单' : '' }}
+                  </div>
+                </div>
+                <div class="flexDiv">
+                  <span class="flexTitle">维修类型:</span>
+                  <div class="flexInfo">{{ repairorderVo['typeName'] || '-' }}</div>
+                </div>
+                <div class="flexDiv">
+                  <span class="flexTitle">工单状态:</span>
+                  <div class="flexInfo">{{ repairorderVo['state'] || '-' }}</div>
+                </div>
+                <div class="flexDiv">
+                  <span class="flexTitle">维修数量:</span>
+                  <div class="flexInfo">{{ repairorderVo['num'] || '' + (repairorderVo['unit'] || '') }}</div>
+                </div>
+                <div class="flexDiv">
+                  <span class="flexTitle">完成数量:</span>
+                  <div class="flexInfo">{{ repairorderVo['overNum'] || '-' }}</div>
+                </div>
+                <div class="flexDiv">
+                  <span class="flexTitle">总完成率:</span>
+                  <div class="flexInfo">{{ (repairorderVo['percent'] || '0') + '%' }}</div>
+                </div>
                 <div class="flexDiv" style="width:100%;">
-                  <span class="flexTitle" style="vertical-align: top;">详细说明:</span><div class="flexInfo">{{ repairorderVo['notes'] || '-' }}</div>
+                  <span class="flexTitle" style="vertical-align: top;">详细说明:</span>
+                  <div class="flexInfo">{{ repairorderVo['notes'] || '-' }}</div>
                 </div>
               </div>
             </tf-legend>
             <tf-legend v-if="repairorderVo" label="派发情况" isopen="true" style="margin-top: 8px;">
               <div style="width: 100%; display: flex; flex-wrap: wrap;">
-                <div class="flexDiv"><span class="flexTitle">开始时间:</span><div class="flexInfo">{{ repairorderVo['startTime'] || '-' }}</div></div>
-                <div class="flexDiv"><span class="flexTitle">结束时间:</span><div class="flexInfo">{{ repairorderVo['endTime'] || '-' }}</div></div>
-                <div class="flexDiv"><span class="flexTitle">是否派工:</span><div class="flexInfo">{{ repairorderVo['isDispatching'] || '-' }}</div></div>
+                <div class="flexDiv">
+                  <span class="flexTitle">开始时间:</span>
+                  <div class="flexInfo">{{ repairorderVo['startTime'] || '-' }}</div>
+                </div>
+                <div class="flexDiv">
+                  <span class="flexTitle">结束时间:</span>
+                  <div class="flexInfo">{{ repairorderVo['endTime'] || '-' }}</div>
+                </div>
+                <div class="flexDiv">
+                  <span class="flexTitle">是否派工:</span>
+                  <div class="flexInfo">{{ repairorderVo['isDispatching'] || '-' }}</div>
+                </div>
                 <!-- <div class="flexDiv"><span class="flexTitle">是否查收:</span><div class="flexInfo">{{ repairorderVo['isread'] || '-' }}</div></div> -->
-                <div class="flexDiv"><span class="flexTitle">是否转发:</span><div class="flexInfo">{{ repairorderVo['isrelay'] || '-' }}</div></div>
-                <div class="flexDiv"><span class="flexTitle">是否驳回:</span><div class="flexInfo">{{ repairorderVo['isrebut'] || '-' }}</div></div>
+                <div class="flexDiv">
+                  <span class="flexTitle">是否转发:</span>
+                  <div class="flexInfo">{{ repairorderVo['isrelay'] || '-' }}</div>
+                </div>
+                <div class="flexDiv">
+                  <span class="flexTitle">是否驳回:</span>
+                  <div class="flexInfo">{{ repairorderVo['isrebut'] || '-' }}</div>
+                </div>
               </div>
             </tf-legend>
             <tf-legend v-if="repairorderVo" label="工单审核" isopen="true" style="margin-top: 8px;">
               <div style="width: 100%; display: flex; flex-wrap: wrap;">
-                <div class="flexDiv"><span class="flexTitle">审核意见:</span><div class="flexInfo">{{ repairorderVo['auditSate'] || '-' }}</div></div>
-                <div class="flexDiv"><span class="flexTitle">审核人:</span><div class="flexInfo">{{ repairorderVo['auditUserName'] || '-' }}</div></div>
-                <div class="flexDiv"><span class="flexTitle">审核时间:</span><div class="flexInfo">{{ repairorderVo['auditTime'] || '-' }}</div></div>
+                <div class="flexDiv">
+                  <span class="flexTitle">审核意见:</span>
+                  <div class="flexInfo">{{ repairorderVo['auditSate'] || '-' }}</div>
+                </div>
+                <div class="flexDiv">
+                  <span class="flexTitle">审核人:</span>
+                  <div class="flexInfo">{{ repairorderVo['auditUserName'] || '-' }}</div>
+                </div>
+                <div class="flexDiv">
+                  <span class="flexTitle">审核时间:</span>
+                  <div class="flexInfo">{{ repairorderVo['auditTime'] || '-' }}</div>
+                </div>
                 <div class="flexDiv" style="width:100%;">
-                  <span class="flexTitle" style="vertical-align: top;">审核说明:</span><div class="flexInfo">{{ repairorderVo['auditNote'] || '-' }}</div>
+                  <span class="flexTitle" style="vertical-align: top;">审核说明:</span>
+                  <div class="flexInfo">{{ repairorderVo['auditNote'] || '-' }}</div>
                 </div>
               </div>
             </tf-legend>
@@ -48,82 +122,148 @@
           <el-tab-pane v-if="repairUserVoList.length" label="个人工单">
             <el-table class="mapTable" :data="repairUserVoList" border style="width: 100%;" height="230px" stripe>
               <el-table-column type="index" width="50" label="序号" />
-              <el-table-column prop="respUserName" label="主负责人" show-overflow-tooltip/>
-              <el-table-column label="协同处理人" show-overflow-tooltip >
+              <el-table-column prop="respUserName" label="主负责人" show-overflow-tooltip />
+              <el-table-column label="协同处理人" show-overflow-tooltip>
                 <template slot-scope="scope">{{ scope.row.teamUserName || '-' }}</template>
               </el-table-column>
-              <el-table-column prop="state" label="工单状态" show-overflow-tooltip/>
-              <el-table-column label="实际 / 核定用时" show-overflow-tooltip >
-                <template slot-scope="scope">{{ (scope.row.realTime || '0') + ' / ' + (scope.row.ratifyTime || '0') }} H</template>
+              <el-table-column prop="state" label="工单状态" show-overflow-tooltip />
+              <el-table-column label="实际 / 核定用时" show-overflow-tooltip>
+                <template slot-scope="scope"
+                  >{{ (scope.row.realTime || '0') + ' / ' + (scope.row.ratifyTime || '0') }} H</template
+                >
               </el-table-column>
-              <el-table-column label="所在片区" show-overflow-tooltip >
+              <el-table-column label="所在片区" show-overflow-tooltip>
                 <template slot-scope="scope">{{ scope.row.regionName || '-' }}</template>
               </el-table-column>
-              <el-table-column label="完成时间" show-overflow-tooltip >
+              <el-table-column label="完成时间" show-overflow-tooltip>
                 <template slot-scope="scope">{{ scope.row.overTime || '-' }}</template>
               </el-table-column>
-              <el-table-column label="实际 / 计划完成" show-overflow-tooltip >
-                <template slot-scope="scope">{{ (scope.row.overNum || '0') + ' / ' + (scope.row.planNum || '0') + (repairorderVo['unit'] || '') }}</template>
+              <el-table-column label="实际 / 计划完成" show-overflow-tooltip>
+                <template slot-scope="scope">{{
+                  (scope.row.overNum || '0') + ' / ' + (scope.row.planNum || '0') + (repairorderVo['unit'] || '')
+                }}</template>
               </el-table-column>
               <el-table-column label="操作" width="60">
                 <template slot-scope="scope">
-                  <el-button type="text" size="small" @click="jump(scope.row)" :disabled="!scope.row.TF_center">跳转</el-button>
+                  <el-button type="text" size="small" @click="jump(scope.row)" :disabled="!scope.row.TF_center"
+                    >跳转</el-button
+                  >
                 </template>
               </el-table-column>
             </el-table>
             <div ref="mapBox" style="margin-top: 8px;width:100%;position:relative;" />
           </el-tab-pane>
           <el-tab-pane v-if="repairRecordVoList.length" label="处理信息">
-            <div style="width:calc(100% - 305px);float:left;max-height:380px;overflow: auto;">              
-              <div v-for="(item, index) of repairRecordVoList" :key="index" style="padding-right:8px;" >            
-                <tf-legend :label="'序号:' + (index + 1) + ' 处理人:' + '处理工单'" isopen="true">    
+            <div style="width:calc(100% - 305px);float:left;max-height:380px;overflow: auto;">
+              <div v-for="(item, index) of repairRecordVoList" :key="index" style="padding-right:8px;">
+                <tf-legend :label="'序号:' + (index + 1) + ' 处理人:' + '处理工单'" isopen="true">
                   <div style="width:calc(100% - 210px);float:left;">
                     <div style="width:100%; display: flex; flex-wrap: wrap;">
-                      <div class="flexDiv" style="width:50%;"><span class="flexTitle">定位网络:</span><div class="flexInfo">
-                        <span>{{ [, 'GPS', '基站', 'WIFI'][item['network'] || 0] }}</span>
-                        <el-button type="primary" plain size="mini" style="float: right;" @click="jump(item)">跳转</el-button>
-                      </div></div>
-                      <div class="flexDiv" style="width:50%;"><span class="flexTitle">口径:</span><div class="flexInfo">{{ item['bore'] || 0 }}</div></div>
-                      <div class="flexDiv" style="width:50%;"><span class="flexTitle">是否有效:</span><div class="flexInfo">{{ item['flag'] || 0 }}</div></div>
-                      <div class="flexDiv" style="width:50%;"><span class="flexTitle">片区名:</span><div class="flexInfo">{{ item['regionName'] || 0 }}</div></div>
-                      <div class="flexDiv" style="width:100%;"><span class="flexTitle">设备编号:</span><div class="flexInfo">
-                        <span>{{ item['repairDevice'] || 0 }}</span>                        
-                        <el-button type="primary" plain size="mini" style="float: right;" @click="jump(item, true)">跳转</el-button>
-                      </div></div>
-                      <div class="flexDiv" style="width:100%;"><span class="flexTitle">详细说明:</span><div class="flexInfo">{{ item['notes'] || '-' }}</div></div>
-                      <div class="flexDiv" style="width:100%;"><span class="flexTitle">地址描述:</span><div class="flexInfo">{{ item['address'] || '-' }}</div></div>
+                      <div class="flexDiv" style="width:50%;">
+                        <span class="flexTitle">定位网络:</span>
+                        <div class="flexInfo">
+                          <span>{{ [, 'GPS', '基站', 'WIFI'][item['network'] || 0] }}</span>
+                          <el-button type="primary" plain size="mini" style="float: right;" @click="jump(item)"
+                            >跳转</el-button
+                          >
+                        </div>
+                      </div>
+                      <div class="flexDiv" style="width:50%;">
+                        <span class="flexTitle">口径:</span>
+                        <div class="flexInfo">{{ item['bore'] || 0 }}</div>
+                      </div>
+                      <div class="flexDiv" style="width:50%;">
+                        <span class="flexTitle">是否有效:</span>
+                        <div class="flexInfo">{{ item['flag'] || 0 }}</div>
+                      </div>
+                      <div class="flexDiv" style="width:50%;">
+                        <span class="flexTitle">片区名:</span>
+                        <div class="flexInfo">{{ item['regionName'] || 0 }}</div>
+                      </div>
+                      <div class="flexDiv" style="width:100%;">
+                        <span class="flexTitle">设备编号:</span>
+                        <div class="flexInfo">
+                          <span>{{ item['repairDevice'] || 0 }}</span>
+                          <el-button type="primary" plain size="mini" style="float: right;" @click="jump(item, true)"
+                            >跳转</el-button
+                          >
+                        </div>
+                      </div>
+                      <div class="flexDiv" style="width:100%;">
+                        <span class="flexTitle">详细说明:</span>
+                        <div class="flexInfo">{{ item['notes'] || '-' }}</div>
+                      </div>
+                      <div class="flexDiv" style="width:100%;">
+                        <span class="flexTitle">地址描述:</span>
+                        <div class="flexInfo">{{ item['address'] || '-' }}</div>
+                      </div>
                     </div>
                   </div>
-                  <div style="width:200px;height:200px;float:left;border-left: 1px solid rgb(64, 158, 255);margin-left:10px;padding-left:10px">
+                  <div
+                    style="width:200px;height:200px;float:left;border-left: 1px solid rgb(64, 158, 255);margin-left:10px;padding-left:10px"
+                  >
                     <div style="text-align: center; margin: 4px 0;"><span>耗材处理记录</span></div>
-                    <div style="width:100%;overflow-y:auto;padding:8px;height:calc(100% - 28px);
-                      border:1px solid rgb(232,232,232);background:rgb(248,248,248);border-radius:4px;">
-                      <div v-for="(initem, index) of item['repairgoodsVoList']" :key="index"  style="width:100%;
-                        padding:8px;border:1px solid rgb(64, 158, 255); border-radius:4px;">
-                        <div style="text-align:center;"><span>{{initem.materialTypeName}}</span></div>
-                        <div style="margin-top:8px"><span>材质:{{ initem['material'] || '-' }}</span></div>
-                        <div style="margin-top:5px"><span>数量:{{ initem['num'] || '-' }}</span></div>
-                        <div style="margin-top:5px"><span>口径:{{ initem['bore'] || '-' }} mm</span></div>
+                    <div
+                      style="width:100%;overflow-y:auto;padding:8px;height:calc(100% - 28px);
+                      border:1px solid rgb(232,232,232);background:rgb(248,248,248);border-radius:4px;"
+                    >
+                      <div
+                        v-for="(initem, index) of item['repairgoodsVoList']"
+                        :key="index"
+                        style="width:100%;
+                        padding:8px;border:1px solid rgb(64, 158, 255); border-radius:4px;"
+                      >
+                        <div style="text-align:center;">
+                          <span>{{ initem.materialTypeName }}</span>
+                        </div>
+                        <div style="margin-top:8px">
+                          <span>材质:{{ initem['material'] || '-' }}</span>
+                        </div>
+                        <div style="margin-top:5px">
+                          <span>数量:{{ initem['num'] || '-' }}</span>
+                        </div>
+                        <div style="margin-top:5px">
+                          <span>口径:{{ initem['bore'] || '-' }} mm</span>
+                        </div>
                       </div>
                     </div>
-                  </div><div style="clear:both;"></div>
+                  </div>
+                  <div style="clear:both;"></div>
                   <el-tabs v-model="first2">
                     <el-tab-pane label="维修前附件" name="first">
                       <div style="width: 100%;overflow-x:auto;padding-top: 8px;">
-                        <el-image v-for="(src, index) in oneSrcs[item.id]" :key="index"
-                          style="width: 150px; height: 120px" :src="src" fit="cover" :preview-src-list="[src]"></el-image>
+                        <el-image
+                          v-for="(src, index) in oneSrcs[item.id]"
+                          :key="index"
+                          style="width: 150px; height: 120px"
+                          :src="src"
+                          fit="cover"
+                          :preview-src-list="[src]"
+                        ></el-image>
                       </div>
                     </el-tab-pane>
                     <el-tab-pane label="维修中附件" name="second">
                       <div style="width: 100%;overflow-x:auto;padding-top: 8px;">
-                        <el-image v-for="(src, index) in twoSrcs[item.id]" :key="index"
-                          style="width: 150px; height: 120px" :src="src" fit="cover" :preview-src-list="[src]"></el-image>
+                        <el-image
+                          v-for="(src, index) in twoSrcs[item.id]"
+                          :key="index"
+                          style="width: 150px; height: 120px"
+                          :src="src"
+                          fit="cover"
+                          :preview-src-list="[src]"
+                        ></el-image>
                       </div>
                     </el-tab-pane>
                     <el-tab-pane label="维修后附件" name="third">
                       <div style="width: 100%;overflow-x:auto;padding-top: 8px;">
-                        <el-image v-for="(src, index) in threeSrcs[item.id]" :key="index"
-                          style="width: 150px; height: 120px" :src="src" fit="cover" :preview-src-list="[src]"></el-image>
+                        <el-image
+                          v-for="(src, index) in threeSrcs[item.id]"
+                          :key="index"
+                          style="width: 150px; height: 120px"
+                          :src="src"
+                          fit="cover"
+                          :preview-src-list="[src]"
+                        ></el-image>
                       </div>
                     </el-tab-pane>
                   </el-tabs>
@@ -133,7 +273,8 @@
             </div>
             <div style="width:300px;float:left;margin-left:5px;">
               <div ref="mapBox2" style="margin-top: 8px;width:100%;position:relative;" />
-            </div><div style="clear:both;"></div>
+            </div>
+            <div style="clear:both;"></div>
           </el-tab-pane>
         </el-tabs>
       </div>
@@ -143,10 +284,9 @@
   </div>
 </template>
 <script>
-import {IP} from '@/utils/request'
+import { IP } from '@/utils/request'
 import request from '@/utils/request'
-import { loadModules } from 'esri-loader'
-import { esriConfig, appconfig } from 'staticPub/config'
+import { appconfig } from 'staticPub/config'
 import tfLegend from '@/views/zhpt/common/TableLegend'
 import nomalLegend from '@/views/zhpt/common/Legend'
 export default {
@@ -168,17 +308,17 @@ export default {
       first2: 'first'
     }
   },
-  mounted(){
+  mounted() {
     var div = this.$refs.cctvMap
     var div2 = this.$refs.cctvMap2
-    var mapV = this.mainMap = window.TF_mapView
+    var mapV = (this.mainMap = window.TF_mapView)
     this.$parent.loadMissionInfo = this.showMissionInfo
-    if(!mapV) return
-    [div, div2].map((e, i) => {
-      var view = this['mapView' + (i + 1)] = new mapV.TF_mapView({
+    if (!mapV) return
+    ;[div, div2].map((e, i) => {
+      var view = (this['mapView' + (i + 1)] = new mapV.TF_mapView({
         container: e,
         map: { basemap: mapV.map.basemap }
-      })
+      }))
       view.ui.components = []
       view.constraints.lods = mapV.constraints.lods
     })
@@ -187,28 +327,40 @@ export default {
     showMissionInfo(id) {
       this.visiable = true
       this.loading = true
-      this.first = this.first2 = 'first'      
+      this.first = this.first2 = 'first'
       this.$nextTick(() => this.loadInfo(id))
     },
     loadInfo(id) {
-      var token = this.$store.state.user.token;
-      request({ url: '/gps/repairorder/getPlanRepairOrderDetail/?flag=1&id=' + id, method: 'get' }).then(res => {
-        this.$nextTick(() => this.loading = false)
-        if(res.code != 1) return this.$message.error(res.message)
+      var token = this.$store.state.user.token
+      request({ url: '/gps/repairorder/getPlanRepairOrderDetail/?flag=1&id=' + id, method: 'get' }).then((res) => {
+        this.$nextTick(() => (this.loading = false))
+        if (res.code != 1) return this.$message.error(res.message)
         res = res.result
         this.repairorderVo = res.repairorderVo
         this.repairUserVoList = res.repairUserVoList || []
-        if((this.repairRecordVoList = res.repairRecordVoList || []).length) {
-          for(var i=0,il=res.repairRecordVoList,ii=il.length;i<ii;i++) {
+        if ((this.repairRecordVoList = res.repairRecordVoList || []).length) {
+          for (var i = 0, il = res.repairRecordVoList, ii = il.length; i < ii; i++) {
             var di = il[i]
-            if((di.filePathOneList || []).length) {
-              this.$set(this.oneSrcs, di.id, di.filePathOneList.map(e => IP + '/base/file/loadImg?access_token=' + token + '&remotePath=' + e))
+            if ((di.filePathOneList || []).length) {
+              this.$set(
+                this.oneSrcs,
+                di.id,
+                di.filePathOneList.map((e) => IP + '/base/file/loadImg?access_token=' + token + '&remotePath=' + e)
+              )
             }
-            if((di.filePathTowList || []).length) {
-              this.$set(this.twoSrcs, di.id, di.filePathTowList.map(e => IP + '/base/file/loadImg?access_token=' + token + '&remotePath=' + e))
+            if ((di.filePathTowList || []).length) {
+              this.$set(
+                this.twoSrcs,
+                di.id,
+                di.filePathTowList.map((e) => IP + '/base/file/loadImg?access_token=' + token + '&remotePath=' + e)
+              )
             }
-            if((di.filePathThreeList || []).length) {
-              this.$set(this.threeSrcs, di.id, di.filePathThreeList.map(e => IP + '/base/file/loadImg?access_token=' + token + '&remotePath=' + e))
+            if ((di.filePathThreeList || []).length) {
+              this.$set(
+                this.threeSrcs,
+                di.id,
+                di.filePathThreeList.map((e) => IP + '/base/file/loadImg?access_token=' + token + '&remotePath=' + e)
+              )
             }
           }
         }
@@ -219,10 +371,10 @@ export default {
     loadSteps() {
       var info = this.repairorderVo
       this.stepsActive = 0
-      if(info.isDispatching == '未派工') return
-      if(info.isread == '未查看' && info.overNum == null) return this.stepsActive = 1
-      if(info.percent != 100) return this.stepsActive = 2
-      if(info.state == '未审核') return this.stepsActive = 3
+      if (info.isDispatching == '未派工') return
+      if (info.isread == '未查看' && info.overNum == null) return (this.stepsActive = 1)
+      if (info.percent != 100) return (this.stepsActive = 2)
+      if (info.state == '未审核') return (this.stepsActive = 3)
       this.stepsActive = 4
     },
     loadMap() {
@@ -230,7 +382,7 @@ export default {
       var Graphic = mapV.TF_graphic
       var div = this.$refs.cctvMap
       var div2 = this.$refs.cctvMap2
-      if(this.repairUserVoList.length) {
+      if (this.repairUserVoList.length) {
         var view1 = this.mapView1
         this.$refs.mapBox.appendChild(div)
         div.style.display = ''
@@ -240,37 +392,57 @@ export default {
         var feas = []
         var [mx, my] = [0, 0]
         var num = 0
-        for(var i=0,ii=list.length;i<ii;i++) {
+        for (var i = 0, ii = list.length; i < ii; i++) {
           var di = JSON.parse(list[i].lngLats) || []
           var [x, y] = [0, 0]
-          for(var j=0,jj=di.length;j<jj;j++,num++) {
+          for (var j = 0, jj = di.length; j < jj; j++, num++) {
             var dj = di[j]
-            mx += dj[0], my += dj[1], x += dj[0], y += dj[1]
+            ;(mx += dj[0]), (my += dj[1]), (x += dj[0]), (y += dj[1])
             var geo = new Graphic({
               geometry: { type: 'point', x: dj[0], y: dj[1], spatialReference: sp },
               symbol: {
-                path: 'M911.609756 399.609756c0 220.659512-399.609756 624.390244-399.609756 624.390244S112.390244 620.269268 112.390244 399.609756a399.609756 399.609756 0 0 1 799.219512 0z',
-                color: '2D74E7', outline: { color: '2D74E7', width: '1px' },
-                size: '30px', yoffset: '15px', type: 'simple-marker'
+                path:
+                  'M911.609756 399.609756c0 220.659512-399.609756 624.390244-399.609756 624.390244S112.390244 620.269268 112.390244 399.609756a399.609756 399.609756 0 0 1 799.219512 0z',
+                color: '2D74E7',
+                outline: { color: '2D74E7', width: '1px' },
+                size: '30px',
+                yoffset: '15px',
+                type: 'simple-marker'
               }
             })
-            feas.push(geo, new Graphic({ geometry: geo.geometry, symbol: { type: 'text', color: 'white', font: { size: '14px', weight: 'bold' }, text:  i + 1, yoffset: '15px', verticalAlignment: 'bottom' }}))
+            feas.push(
+              geo,
+              new Graphic({
+                geometry: geo.geometry,
+                symbol: {
+                  type: 'text',
+                  color: 'white',
+                  font: { size: '14px', weight: 'bold' },
+                  text: i + 1,
+                  yoffset: '15px',
+                  verticalAlignment: 'bottom'
+                }
+              })
+            )
           }
-          if(jj > 0) {
-            x /= jj, y /= jj
+          if (jj > 0) {
+            ;(x /= jj), (y /= jj)
             list[i].TF_center = new Graphic({ geometry: { type: 'point', x: x, y: y, spatialReference: sp } })
           }
         }
         view1.graphics.addMany(feas)
-        if(num > 0) {          
-          mx /= num, my /= num
-          view1.goTo({
-            target: new Graphic({ geometry: { type: 'point', x: mx, y: my, spatialReference: sp }}),
-            zoom: 0,
-          }, { duration: 400 })
+        if (num > 0) {
+          ;(mx /= num), (my /= num)
+          view1.goTo(
+            {
+              target: new Graphic({ geometry: { type: 'point', x: mx, y: my, spatialReference: sp } }),
+              zoom: 0
+            },
+            { duration: 400 }
+          )
         } else div.style.display = 'none'
       } else div.style.display = 'none'
-      if(this.repairRecordVoList.length) {        
+      if (this.repairRecordVoList.length) {
         var view2 = this.mapView2
         this.$refs.mapBox2.appendChild(div2)
         div2.style.display = ''
@@ -281,79 +453,113 @@ export default {
         var [mx, my] = [0, 0]
         var num = 0
         var pipe = []
-        for(var i=0,ii=list.length;i<ii;i++, num++) {     
-          var di = list[i]     
-          mx += di.lgtd, my += di.lttd
+        for (var i = 0, ii = list.length; i < ii; i++, num++) {
+          var di = list[i]
+          ;(mx += di.lgtd), (my += di.lttd)
           var geo = new Graphic({
             geometry: { type: 'point', x: di.lgtd, y: di.lttd, spatialReference: sp },
             symbol: {
-              path: 'M911.609756 399.609756c0 220.659512-399.609756 624.390244-399.609756 624.390244S112.390244 620.269268 112.390244 399.609756a399.609756 399.609756 0 0 1 799.219512 0z',
-              color: '2D74E7', outline: { color: '2D74E7', width: '1px' },
-              size: '30px', yoffset: '15px', type: 'simple-marker'
+              path:
+                'M911.609756 399.609756c0 220.659512-399.609756 624.390244-399.609756 624.390244S112.390244 620.269268 112.390244 399.609756a399.609756 399.609756 0 0 1 799.219512 0z',
+              color: '2D74E7',
+              outline: { color: '2D74E7', width: '1px' },
+              size: '30px',
+              yoffset: '15px',
+              type: 'simple-marker'
             }
           })
           di.TF_person = geo
-          feas.push(geo, new Graphic({ geometry: geo.geometry, symbol: { type: 'text', color: 'white', font: { size: '14px', weight: 'bold' }, text:  i + 1, yoffset: '15px', verticalAlignment: 'bottom' }}))
+          feas.push(
+            geo,
+            new Graphic({
+              geometry: geo.geometry,
+              symbol: {
+                type: 'text',
+                color: 'white',
+                font: { size: '14px', weight: 'bold' },
+                text: i + 1,
+                yoffset: '15px',
+                verticalAlignment: 'bottom'
+              }
+            })
+          )
           pipe.push([i, di.repairLayer, di.repairDevice])
         }
         view2.graphics.addMany(feas)
-        if(num > 0) {          
-          mx /= num, my /= num
-          view2.goTo({
-            target: new Graphic({ geometry: { type: 'point', x: mx, y: my, spatialReference: sp }}),
-            zoom: 0,
-          }, { duration: 400 })
-          this.$nextTick(_ => this.addPipe(pipe))
+        if (num > 0) {
+          ;(mx /= num), (my /= num)
+          view2.goTo(
+            {
+              target: new Graphic({ geometry: { type: 'point', x: mx, y: my, spatialReference: sp } }),
+              zoom: 0
+            },
+            { duration: 400 }
+          )
+          this.$nextTick((_) => this.addPipe(pipe))
         }
       } else div2.style.display = 'none'
     },
     jump(row, bool) {
-      if(row.TF_center) return this.mapView1.goTo({ target: row.TF_center, zoom: Math.max(this.mapView1.zoom, 4), }, { duration: 400 })
-      if(row.TF_geometry && bool) return this.mapView2.goTo({ target: row.TF_geometry, }, { duration: 400 })
-      if(row.TF_person) return this.mapView2.goTo({ target: row.TF_person, zoom: Math.max(this.mapView2.zoom, 4), }, { duration: 400 })
+      if (row.TF_center)
+        return this.mapView1.goTo({ target: row.TF_center, zoom: Math.max(this.mapView1.zoom, 4) }, { duration: 400 })
+      if (row.TF_geometry && bool) return this.mapView2.goTo({ target: row.TF_geometry }, { duration: 400 })
+      if (row.TF_person)
+        return this.mapView2.goTo({ target: row.TF_person, zoom: Math.max(this.mapView2.zoom, 4) }, { duration: 400 })
     },
     addPipe(pipe) {
       var mapV = this.mainMap
-      var Graphic = mapV.TF_graphic     
+      var Graphic = mapV.TF_graphic
       var view2 = this.mapView2
       var sp = view2.spatialReference
       let seed = new Date().getTime()
       this.seed = seed
       var list = this.repairRecordVoList
       var layer = {}
-      for(var i=0,ii=pipe.length;i<ii;i++) {
+      for (var i = 0, ii = pipe.length; i < ii; i++) {
         var dp = pipe[i]
-        if(layer.hasOwnProperty(dp[1])) layer[dp[1]].push({ sid: dp[2], index: dp[0] })
+        if (layer.hasOwnProperty(dp[1])) layer[dp[1]].push({ sid: dp[2], index: dp[0] })
         else layer[dp[1]] = [{ sid: dp[2], index: dp[0] }]
       }
-      for(let i in layer) {
+      for (let i in layer) {
         let pipes = {}
         $.ajax({
           url: appconfig.gisResource.business_map.config[0].url + '/' + i + '/query',
           type: 'POST',
           data: {
-            where: layer[i].map(e => { pipes[e.sid] = e.index; return "SID = '" + e.sid +  "' " }).join(' or '),
+            where: layer[i]
+              .map((e) => {
+                pipes[e.sid] = e.index
+                return "SID = '" + e.sid + "' "
+              })
+              .join(' or '),
             outFields: 'SID',
             f: 'pjson'
           },
           success: (data) => {
-            if(seed != this.seed) return
+            if (seed != this.seed) return
             data = JSON.parse(data).features
             var feas = []
-            for(var i=0,ii=data.length;i<ii;i++) {
+            for (var i = 0, ii = data.length; i < ii; i++) {
               var di = data[i]
               var geo = di.geometry
-              var symbol = geo.x ? 
-                { type: 'simple-marker', color: [200, 200, 200], size: 12, outline: { color: [0, 255, 255], width: 2 }} : 
-                { type: 'simple-fill', color: [0, 0, 0, 0.3], outline: { color: [0, 255, 255, 1], width: "7px" } }
-              if(geo.x) geo.type = 'point'
-              else if(geo.paths) geo.type = 'polyline'
+              var symbol = geo.x
+                ? {
+                    type: 'simple-marker',
+                    color: [200, 200, 200],
+                    size: 12,
+                    outline: { color: [0, 255, 255], width: 2 }
+                  }
+                : { type: 'simple-fill', color: [0, 0, 0, 0.3], outline: { color: [0, 255, 255, 1], width: '7px' } }
+              if (geo.x) geo.type = 'point'
+              else if (geo.paths) geo.type = 'polyline'
               else geo.type = 'polygon'
               geo.spatialReference = view2.spatialReference
-              feas.push(list[pipes[di.attributes.SID]].TF_geometry = new Graphic({
-                geometry: di.geometry,
-                symbol: symbol
-              }))
+              feas.push(
+                (list[pipes[di.attributes.SID]].TF_geometry = new Graphic({
+                  geometry: di.geometry,
+                  symbol: symbol
+                }))
+              )
             }
             view2.graphics.addMany(feas)
           }
@@ -361,26 +567,24 @@ export default {
       }
     }
   },
-  destroyed() {
-  }
+  destroyed() {}
 }
 </script>
-<style lang='scss' scoped>
-.flexDiv{
+<style lang="scss" scoped>
+.flexDiv {
   width: 33%;
   min-height: 30px;
   line-height: 30px;
   margin-top: 10px;
 }
-.flexTitle{
+.flexTitle {
   vertical-align: top;
   min-width: 90px;
   display: inline-block;
   text-align: right;
 }
-.flexInfo{
+.flexInfo {
   display: inline-block;
   width: calc(100% - 90px);
 }
 </style>
-

File diff suppressed because it is too large
+ 0 - 297
src/views/zhpt/common/tfMap.vue


+ 62 - 25
src/views/zhpt/components/ExportBtn.vue

@@ -5,7 +5,6 @@
 </template>
 
 <script>
-import FileSaver from 'file-saver'
 import XLSX2 from 'xlsx'
 import XLSX from 'xlsx-style'
 export default {
@@ -19,28 +18,40 @@ export default {
     // 导出表格成excel
     setExport2Excel() {
       /* generate workbook object from table */
-      var wb = XLSX2.utils.table_to_sheet(document.querySelector(`#${this.tableId}`),{ raw: true }) // mytable为表格的id名
-      
+      var wb = XLSX2.utils.table_to_sheet(document.querySelector(`#${this.tableId}`), { raw: true }) // mytable为表格的id名
+
       // if (!wb['!merges']) {
       //   this.$message.warning('无法导出:报表无数据')
       //   return
       // }
       var isDate = (str) => {
         var v = (str + '').split(' ')
-        if(v.length == 1) {
+        if (v.length == 1) {
           v = v[0].split('-')
-          if(v.length == 3) {
-            var [year, month, day] = v.map(e => + e)
-            if(year >= 1997 && month > 0 && month < 13 && day > 0 && day < 32) return true
+          if (v.length == 3) {
+            var [year, month, day] = v.map((e) => +e)
+            if (year >= 1997 && month > 0 && month < 13 && day > 0 && day < 32) return true
           }
-        } else if(v.length == 2) {
+        } else if (v.length == 2) {
           var v1 = v[0].split('-')
           var v2 = v[1].split(':')
-          if(v1.length == 3 && v2.length == 3) {
-            var [year, month, day] = v1.map(e => + e)
-            var [hour, mins, sen] = v2.map(e => + e)
-            if(year >= 1997 && month > 0 && month < 13 && day > 0 && day < 32 &&
-              hour >= 0 && hour <= 24 && mins >= 0 && mins <= 60 && sen >= 0 && sen <= 60) return true
+          if (v1.length == 3 && v2.length == 3) {
+            var [year, month, day] = v1.map((e) => +e)
+            var [hour, mins, sen] = v2.map((e) => +e)
+            if (
+              year >= 1997 &&
+              month > 0 &&
+              month < 13 &&
+              day > 0 &&
+              day < 32 &&
+              hour >= 0 &&
+              hour <= 24 &&
+              mins >= 0 &&
+              mins <= 60 &&
+              sen >= 0 &&
+              sen <= 60
+            )
+              return true
           }
         }
         return false
@@ -52,12 +63,12 @@ export default {
       // 样式的文档地址
       // https://www.npmjs.com/package/xlsx-style
       var cells = {
-        '电量': row => row.s.numFmt = '0%' //(row.v *= 100, )
+        电量: (row) => (row.s.numFmt = '0%') //(row.v *= 100, )
       }
       var cacheCells = {}
       for (const key in wb) {
-        if(key.indexOf('!') > -1 ) continue
-        if(['', '操作', '详情', '编辑详情'].indexOf(wb[key].v) > -1) {
+        if (key.indexOf('!') > -1) continue
+        if (['', '操作', '详情', '编辑详情'].indexOf(wb[key].v) > -1) {
           delete wb[key]
           continue
         } else {
@@ -86,14 +97,14 @@ export default {
               right: { style: 'thin' }
             }
           }
-          
-          if(rowW == 1 && cells.hasOwnProperty(wb[key].v)) {
+
+          if (rowW == 1 && cells.hasOwnProperty(wb[key].v)) {
             cacheCells[cellW] = cells[wb[key].v]
-          } else if(cacheCells.hasOwnProperty(cellW)) {
+          } else if (cacheCells.hasOwnProperty(cellW)) {
             cacheCells[cellW](wb[key])
           }
-          
-          if(wb[key].z == 'm/d/yy') {
+
+          if (wb[key].z == 'm/d/yy') {
             delete wb[key].z
             wb[key].s.numFmt = 'yyyy-m-dd h:mm:ss'
             wb[key].v -= 0.0004976851
@@ -107,8 +118,35 @@ export default {
     },
     // 为合并项添加边框
     addRangeBorder(range, ws) {
-      const arr = ['A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J', 'K', 'L', 'M', 'N', 'O', 'P', 'Q', 'R', 'S', 'T', 'U', 'V', 'W', 'X', 'Y', 'Z']
-      range.forEach(item => {
+      const arr = [
+        'A',
+        'B',
+        'C',
+        'D',
+        'E',
+        'F',
+        'G',
+        'H',
+        'I',
+        'J',
+        'K',
+        'L',
+        'M',
+        'N',
+        'O',
+        'P',
+        'Q',
+        'R',
+        'S',
+        'T',
+        'U',
+        'V',
+        'W',
+        'X',
+        'Y',
+        'Z'
+      ]
+      range.forEach((item) => {
         const startColNumber = Number(item.s.r)
         const endColNumber = Number(item.e.r)
         const startRowNumber = Number(item.s.c)
@@ -167,5 +205,4 @@ export default {
 }
 </script>
 
-<style>
-</style>
+<style></style>

二進制
src/views/zhpt/tongyonggongju/measureTool/images/clear.png


二進制
src/views/zhpt/tongyonggongju/measureTool/images/legendtool.png


二進制
src/views/zhpt/tongyonggongju/measureTool/images/measure.png


二進制
src/views/zhpt/tongyonggongju/measureTool/images/tucengkongzhi.png


+ 0 - 365
src/views/zhpt/tongyonggongju/measureTool/widget.vue

@@ -1,365 +0,0 @@
-<template>
-  <div style="position: absolute; right: 10px; top: 20px;">
-    <div class="toolPar" style="float: left" title="图层管理">
-      <div class="widgetGroupButtoms" @click="showLayer">
-        <img src="./images/tucengkongzhi.png">
-      </div>
-    </div>
-    <div class="toolPar" style="float: left" title="空间测量">
-      <div class="widgetGroupButtoms">
-        <img src="./images/measure.png">
-      </div>
-      <div style="padding-top: 5px; position: absolute; width: 100px; transform: translateX(calc(-50% + 15px));">
-        <div class="tool" @click="line">距  离</div>
-        <div class="tool" @click="poly">面  积</div>
-        <div class="tool" @click="angle">角  度</div>
-        <div class="tool" @click="dem">高  程</div>
-      </div>
-    </div>
-    <div class="toolPar" style="float: left" title="清除绘制">
-      <div class="widgetGroupButtoms" @click="clearDraw">
-        <img src="./images/clear.png">
-      </div>
-    </div>
-  </div>
-</template>
-<script>
-import proj4 from "@/components/proj4/index";
-import { esriConfig } from 'staticPub/config'
-import { loadModules } from 'esri-loader'
-export default {
-  name: 'MeasureTool',
-  components: {},
-  props: {
-    mapView: {
-      type: Object,
-      default: () => []
-    }
-  },
-  data() {
-    return {
-      panel: {
-        pathId: 'layerManagement',
-        widgetid: 'Panel',
-        label: '图层管理'
-      }
-    }
-  },
-  watch: {
-    mapView: {
-      handler(e) {
-        loadModules(
-          ['esri/geometry/geometryEngine'], { url: esriConfig.baseUrl }
-        ).then(([GeometryEngine]) => {
-          this.GeometryEngine = GeometryEngine
-        })
-      }
-    }
-  },
-  methods: {
-    line: function() {
-      var mapView = this.mapView
-      var mapdiv = mapView.container
-      var draw = mapView.TF_draw
-      var layer = mapView.graphics
-      var graphic = mapView.TF_graphic
-      var sp = mapView.spatialReference
-      var ge = this.GeometryEngine
-      let distanceLine, distanceLinePoint
-      var lastSencndV, lastSencndV2Proj4
-      var allLength = 0
-      if(draw.activeAction) draw.reset()
-      mapView.TF_drawPolygon(() => {mapdiv.style.cursor = 'crosshair'},
-        (evt) => {
-          var v = evt.vertices
-          var lastV = v[v.length - 1]
-          layer.add(new graphic({
-            isMeaTool: true,
-            geometry: { type: 'point', x: lastV[0], y: lastV[1], spatialReference: sp },
-            symbol: { type: 'simple-marker', color: [255, 255, 255], size: 4, outline: { color: [245, 108, 108], width: 1 } }
-          }))
-          var nextPoint = new graphic({
-            isMeaTool: true,
-            geometry: { type: 'point', x: lastV[0], y: lastV[1], spatialReference: sp }            
-          })
-          if(v.length > 1) {
-            var lastV2Proj4 = proj4('EPSG:4490', 'EPSG:4544', v[v.length - 1])
-            var dx = lastV2Proj4[0] - lastSencndV2Proj4[0]
-            var dy = lastV2Proj4[1] - lastSencndV2Proj4[1]
-            allLength += Math.sqrt(dx * dx + dy * dy)
-            nextPoint.symbol = { type: 'text', color: 'white', haloColor: 'black', haloSize: '1px', text: allLength.toFixed(2) + 'm', yoffset: 6, verticalAlignment: 'bottom', font: {size: '14px'} }
-          }
-          else {
-            nextPoint.symbol = { type: 'text', color: 'white', haloColor: 'black', haloSize: '1px', text: '起点', yoffset: 6, verticalAlignment: 'bottom', font: {size: '14px'} }
-            layer.add(distanceLine = new graphic({
-              isMeaTool: true,
-              geometry: { type: 'polyline', paths:[[lastV]], spatialReference: sp },
-              symbol: { type: 'simple-line', color: [245, 108, 108], cap: 'square', width: "2px"  }
-            }))
-            layer.add(distanceLinePoint = new graphic({
-              isMeaTool: true,
-              geometry: { type: 'point', x: lastV[0], y: lastV[1], spatialReference: sp },
-              symbol: { type: 'text', color: 'white', haloColor: 'black', haloSize: '1px', text: '起点', yoffset: 6, verticalAlignment: 'bottom', font: {size: '14px', weight: 'bold'} }
-            }))
-          }
-          lastSencndV = v[v.length - 1]
-          lastSencndV2Proj4 = proj4('EPSG:4490', 'EPSG:4544', lastSencndV)
-          layer.add(nextPoint)
-        }, (evt) => {         
-          var v = evt.vertices 
-          if(v.length > 1) {
-            var lastV = v[v.length - 1]
-            var lastV2Proj4 = proj4('EPSG:4490', 'EPSG:4544', lastV)
-            var dx = lastV2Proj4[0] - lastSencndV2Proj4[0]
-            var dy = lastV2Proj4[1] - lastSencndV2Proj4[1]
-            var length = Math.sqrt(dx * dx + dy * dy)
-            distanceLine.geometry = { type: 'polyline', paths:v, spatialReference: sp }
-            distanceLinePoint.geometry = { type: 'point', x: lastV[0], y: lastV[1], spatialReference: sp }
-            distanceLinePoint.symbol = { type: 'text', color: 'white', haloColor: 'black', haloSize: '1px', text: '总长度:' + (allLength + length).toFixed(2) + 'm', yoffset: 6, verticalAlignment: 'bottom', font: {size: '14px'} }
-          }
-        }, () => {
-          layer.remove(distanceLinePoint)
-          mapdiv.style.cursor = ''
-      })
-    },
-    poly: function() {
-      var mapView = this.mapView
-      var mapdiv = mapView.container
-      var draw = mapView.TF_draw
-      var layer = mapView.graphics
-      var graphic = mapView.TF_graphic
-      var sp = mapView.spatialReference
-      var ge = this.GeometryEngine
-      var allPoint = []
-      let mesPolygon
-      let mesPolygonText
-      let mesPolygonProj4
-      if(draw.activeAction) draw.reset()
-      mapView.TF_drawPolygon(() => {mapdiv.style.cursor = 'crosshair'},
-        (evt) => {
-          var v = evt.vertices
-          var lastV = v[v.length - 1]
-          var lastPoint = proj4('EPSG:4490', 'EPSG:4544', lastV)
-          allPoint.push(lastPoint)
-          if(v.length < 2) {
-            layer.addMany([mesPolygon = new graphic({
-              isMeaTool: true,
-              geometry: { type: 'polygon', rings:[[lastV]], spatialReference: sp },
-              symbol: { type: "simple-fill", color: [245, 108, 108, 0.3], outline: { color: [245, 108, 108], width: "2px" }
-              }
-            }), mesPolygonText = new graphic({
-              isMeaTool: true,
-              geometry: { type: 'point', x: lastV[0], y: lastV[1], spatialReference: sp },
-              symbol: { type: 'text', color: 'white', haloColor: 'black', haloSize: '1px', text: '面积0m²', yoffset: 6, verticalAlignment: 'bottom', font: {size: '14px'} }
-            })])
-            mesPolygonProj4 = new graphic({ geometry: { type: 'polygon', rings:[[lastV]]} })
-          }
-        }, (evt) => {
-          var v = evt.vertices
-          var lastV = v[v.length - 1]
-          var lastPoint = proj4('EPSG:4490', 'EPSG:4544', lastV)
-          if(v.length > 1) {
-            mesPolygon.geometry = { type: 'polygon', rings:[v], spatialReference: sp }
-            mesPolygonProj4.geometry = { type: 'polygon', rings:[allPoint.concat([lastPoint])] }
-            var area = Math.abs(ge.planarArea(mesPolygonProj4.geometry))
-            var cc = mesPolygon.geometry.centroid
-            mesPolygonText.geometry = { type: 'point', x: cc.x, y: cc.y, spatialReference: sp }
-            mesPolygonText.symbol.text = '面积' + area.toFixed(2) + 'm²'
-          }
-        }, () => mapdiv.style.cursor = '')
-    },
-    angle: function() {
-      var mapView = this.mapView
-      var mapdiv = mapView.container
-      var layer = mapView.graphics
-      var graphic = mapView.TF_graphic
-      var sp = mapView.spatialReference
-      var that = this
-      var line = [undefined, [undefined, undefined], undefined, undefined]
-      var PI = Math.PI      
-      mapView.TF_drawPolygon(() => {mapdiv.style.cursor = 'crosshair'},
-        (evt) => {
-          var v = evt.vertices
-          var lastV = v[v.length - 1]
-          if (v.length < 2) {
-            layer.add(line[0] = new graphic({
-              isMeaTool: true,
-              geometry: { type: 'polyline', paths:[[[0, 0]]], spatialReference: sp },
-              symbol: { type: 'simple-line', color: [245, 108, 108], cap: 'square', width: "2px"  }
-            }))
-          } else {
-            line[2] = [v[v.length - 2], v[v.length - 1], undefined]
-            line[2][2] = Math.atan2(line[2][0][1] - line[2][1][1], line[2][0][0] - line[2][1][0])
-            line[3] = (line[2][2] <= 0 ? 1 : -1) * PI + line[2][2]
-            // var path = { type: "simple-marker", color: [255, 0, 0], xoffset: "0px", yoffset: "0px", size: "40px" };
-            // path.path = "M150 0 L75 200 L225 200 Z";
-            // path.angle = (-line[2][2] / PI) * 180;
-            line[1][0] = new graphic({
-              isMeaTool: true,
-              geometry: { type: 'point', x: lastV[0], y: lastV[1], spatialReference: sp },
-              // symbol: path,
-              symbol: { type: 'simple-marker', color: [255, 255, 255], size: 4, outline: { color: [245, 108, 108], width: 1 } }
-            })
-            line[1][1] = new graphic({
-              isMeaTool: true,
-              geometry: { type: 'point', x: lastV[0], y: lastV[1], spatialReference: sp },
-              symbol: { type: 'text', color: 'white', haloColor: 'black', haloSize: '1px', text: '0°', yoffset: 6, verticalAlignment: 'bottom', font: {size: '14px', weight: 'bold'} }
-            })
-            layer.addMany(line[1])
-          }
-        }, (evt) => {          
-          var v = evt.vertices
-          if (v.length > 1) {
-            var lastV = v[v.length - 1]              
-            line[0].geometry = { type: 'polyline', paths: v, spatialReference: sp }
-            if(v.length > 2) {
-              var ag = Math.atan2(lastV[1] - line[2][1][1], lastV[0] - line[2][1][0])
-              lastV = Math.abs(ag - line[2][2])
-              // ag = [ lastV > PI ? 2 * PI - lastV : lastV, line[2][2] >= 0 ? ag >= line[3] && ag < line[2][2] ? 1 : 0 : ag <= line[3] && ag > line[2][2] ? 0 : 1];
-              // line[1][0].geometry = { type: 'point', x: line[2][1][0], y: line[2][1][1], spatialReference: sp }
-              // line[1][0].symbol.path = "M 200 100 A 50 50 0 0 " + ag[1] + " " + (150 + Math.cos(ag[0]) * 50) + " " + (100 + (ag[1] == 1 ? 1 : -1) * Math.sin(ag[0]) * 50) +
-              //   " L150 100 L200 100Z";
-              line[1][1].geometry = { type: 'point', x: line[2][1][0], y: line[2][1][1], spatialReference: sp },
-              line[1][1].symbol.text = (((lastV > PI ? 2 * PI - lastV : lastV) / PI) * 180).toFixed(2) + '°' // ((ag[0] / PI) * 180).toFixed(2) + "°"
-            }
-          }
-        }, () => {
-          mapdiv.style.cursor = ''
-          layer.removeMany(line[1])
-      })
-    },
-    dem() {
-      if(!this.rectUrl) {
-        for(let i=0,il=this.mapView.map.basemap.baseLayers.items,ii=il.length;i<ii;i++) {
-          if(!il[i].url) continue     
-          for(let j=0,jl=il[i].allSublayers.items,jj=jl.length;j<jj;j++){
-            if(jl[j].title != '管线') continue
-            this.rectUrl = jl[j].url
-            break
-          }
-          if(this.rectUrl) break
-        }
-      }
-      var mapView = this.mapView
-      var mapdiv = mapView.container
-      mapdiv.style.cursor = 'crosshair'
-      if(this.click) this.click.remove()
-      this.click = mapView.on('click', (evt) => {          
-        var xy = mapView.toMap({ x: evt.x, y: evt.y })
-        this.click.remove()
-        this.click = undefined
-        mapdiv.style.cursor = ''
-        this.query(xy)
-      })      
-    },
-    query(xy) {
-      var mapView = this.mapView
-      var graphic = mapView.TF_graphic
-      var sp = mapView.spatialReference
-      var layer = mapView.graphics
-      var x = xy.x, y = xy.y
-      var r = mapView.resolution * 5, da = Math.PI / 10
-      var ret = []
-      var PI2 = Math.PI * 2, sin = Math.sin, cos = Math.cos
-      for(let i=0;i< PI2;i+=da){
-        ret.push([x + r * cos(i), y + r * sin(i)])
-      }
-      $.ajax({
-        url: this.rectUrl + '/query',
-        type: 'POST',
-        data: {
-          geometry: JSON.stringify({ spatialReference: {wkid: 4490}, rings: [ret] }),
-          geometryType: 'esriGeometryPolygon',
-          outFields: 'OBJECTID,STARTZ,ENDZ',
-          f: 'pjson'          
-        }, 
-        success: (data) => {
-          data = JSON.parse(data).features
-          if(data && data.length < 1) return this.$message.error('无管线')
-          var long = Infinity, closet, dep, attDep
-          for(let i=0,ii=data.length;i<ii;i++) {
-            var nd = data[i].geometry.paths[0]
-            var cl = this.getClosetPoint(nd, [x, y])
-            var length = [cl[0] - x, cl[1] - y]
-            length = Math.sqrt(length[0] * length[0] + length[1] * length[1])
-            if(length < long) {
-              long = length
-              closet = cl
-              if(nd[0][0] == nd[1][0]) {
-                dep = Math.abs(closet[1] - nd[0][1]) / Math.abs(nd[0][1] - nd[1][1])                
-              } else {
-                dep = Math.abs(closet[0] - nd[0][0]) / Math.abs(nd[0][0] - nd[1][0])     
-              }
-              attDep = data[i].attributes
-              attDep = [attDep.STARTZ, attDep.ENDZ]
-            }
-          }
-          attDep = Math.abs(attDep[0] - attDep[1]) * dep + Math.min(attDep[0], attDep[1])
-          layer.add(new graphic({
-            isMeaTool: true,
-            geometry: { type: 'point', x: closet[0], y: closet[1], spatialReference: sp },
-            symbol: { type: 'simple-marker', color: [255, 255, 255], size: 4, outline: { color: [245, 108, 108], width: 1 } }
-          }))
-          layer.add(new graphic({
-            isMeaTool: true,
-            geometry: { type: 'point', x: closet[0], y: closet[1], spatialReference: sp },
-            symbol: { type: 'text', color: 'white', haloColor: 'black', haloSize: '1px', text: '高程:' + attDep.toFixed(2) + 'm', yoffset: 6, verticalAlignment: 'bottom', font: {size: '14px', weight: 'bold'} }
-          }))
-        },
-        error: (error) => this.$message.error(error)
-      })
-    },
-    getClosetPoint(line, cood) {
-      var p1 = line[0], p2 = line[1], A = p2[1] - p1[1], B = p1[0] - p2[0], C  = p2[0] * p1[1] - p1[0] * p2[1]
-      var p3 = [(B * B * cood[0] - A * B * cood[1] - A * C) / (A * A + B * B), (-A * B * cood[0] + A * A * cood[1] - B * C) / (A * A + B * B)]
-      if (p3[0] < Math.min(p1[0], p2[0]) || p3[0] > Math.max(p1[0], p2[0])) Math.abs(p3[0] - p1[0]) > Math.abs(p3[0] - p2[0]) ? p3 = p2 : p3 = p1
-      return p3
-    },
-    clearDraw: function() {
-      var removeFeas = []
-      for(let i=0,il=this.mapView.graphics.items,ii=il.length;i<ii;i++) {
-        if (il[i].isMeaTool){
-          removeFeas.push(il[i])
-        }
-      }
-      this.mapView.graphics.removeMany(removeFeas)
-    },
-    showLayer() {
-      this.$store.dispatch('map/changeMethod', this.panel)
-    }
-  }
-}
-</script>
-<style type="scss">
-.toolPar:hover .tool {
-  opacity: 1;
-  max-height: 30px;
-}
-.toolPar:hover .widgetGroupButtoms i {
-  color: #3385ff;
-}
-.tool {
-  opacity: 0;
-  max-height: 0px;
-  box-shadow: 0 1px 2px rgba(0, 0, 0, 0.3);
-  cursor: pointer;
-  height: 30px;
-  padding: 0 7px;
-  background: #fff;
-  line-height: 30px;
-  letter-spacing: 1px;
-  transition: 0.2s;
-  font-size: 14px;
-  overflow: hidden;
-  text-align: center;
-}
-.tool i {
-  transition: 0.2s;
-}
-.tool:hover {
-  background: #eee;
-}
-.tool:hover i {
-  color: #3385ff;
-}
-</style>

+ 2 - 4
src/views/zhpt/tongyonggongju/mouseLocation/widget.vue

@@ -5,8 +5,6 @@
   </div>
 </template>
 <script>
-import { esriConfig } from 'staticPub/config'
-import { loadModules } from 'esri-loader'
 export default {
   name: 'MouseLocation',
   components: {},
@@ -27,10 +25,10 @@ export default {
       view.TF_mouseLocation = this
       this.mapView.on('pointer-move', function(evt) {
         var xy = view.toMap({ x: evt.x, y: evt.y })
-        location.innerHTML = xy ? ('坐标:' + xy.x.toFixed(5) + ',' + xy.y.toFixed(5)) : '' // that.mapView.zoom+","+that.mapView.resolution+","+that.mapView.scale;//+"\n"+
+        location.innerHTML = xy ? '坐标:' + xy.x.toFixed(5) + ',' + xy.y.toFixed(5) : '' // that.mapView.zoom+","+that.mapView.resolution+","+that.mapView.scale;//+"\n"+
       })
       this.mapView.watch('resolution', function(e) {
-        scale.innerHTML = '比例尺:1:' + view.scale.toFixed(0);
+        scale.innerHTML = '比例尺:1:' + view.scale.toFixed(0)
       })
     }
   }

+ 10 - 12
src/views/zhpt/tongyonggongju/qAndA/widget.vue

@@ -68,7 +68,7 @@
         <el-button size="small" @click="updateSign">确定</el-button>
         <el-button size="small" @click="qandADialogVisiable = false">取消</el-button>
       </span>
-    </el-dialog>    
+    </el-dialog>
     <el-dialog v-dialogDrag title="疑问上报" :visible.sync="updateVisiable" width="400px" top="calc(50vh - 300px)">
       <div class="flexDiv" style="width:100%;"><span class="flexTitle">处理人:</span>
         <!-- <el-select v-model="cheakMan" style="display: inline-block; margin-left: 5px; width: calc(100% - 100px);" size="small" placeholder="请选择处理人">
@@ -97,8 +97,6 @@
 </template>
 
 <script>
-import { esriConfig } from 'staticPub/config'
-import { loadModules } from 'esri-loader'
 import tfLegend from '@/views/zhpt/common/Legend'
 import TableItem from '@/components/Table'
 import tfTableLegend from '@/views/zhpt/common/TableLegend'
@@ -159,7 +157,7 @@ export default {
     //       this.checks = res.result[0].users
     //     } else this.$message('处理人加载失败:' + res.message)
     //   })
-    // }  
+    // }
     request({ url: '/base/user/getInfo', method: 'get' }).then(res => {
       if(res.code == 1) {
         res = res.result
@@ -265,10 +263,10 @@ export default {
           var list = []
           for (let i = 0, il = res.records, ii = il.length; i < ii; i++) {
             var ni = il[i]
-            list.push({ 
+            list.push({
               id: ni.id, title: ni.caption, path: ni.filePath, createUserName: ni.createUserName, createDate: ni.createDate,
-              x: ni.x, y: ni.y, scale: ni.scale, status: ~~ ni.status, handleUserName: ni.handleUserName, 
-              handleUser: ni.handleUser, handleDate: ni.handleDate, notes: ni.notes 
+              x: ni.x, y: ni.y, scale: ni.scale, status: ~~ ni.status, handleUserName: ni.handleUserName,
+              handleUser: ni.handleUser, handleDate: ni.handleDate, notes: ni.notes
             })
           }
           this.$refs.pageLength.innerHTML = pages.internalCurrentPage + '/' + Math.ceil(res.total / pages.internalPageSize)
@@ -287,7 +285,7 @@ export default {
         var qa = ajaxData[i]
         signsIndex[qa.id] = qa
         signsTabledata.push(
-          { id: qa.id, 
+          { id: qa.id,
             name: qa.title,
             notes: qa.notes,
             createUser: qa.createUserName,
@@ -443,7 +441,7 @@ export default {
       var base64 = this.$refs.QAimage.src
       if (!base64) return this.$message.error('图片不存在')
       var array = []
-      
+
       var arr = base64.split(','), bstr = atob(arr[1])
       for (var i = 0,ii = bstr.length; i < ii; i++) { array.push(bstr.charCodeAt(i)) }
       var blob = new File([new Uint8Array(array)], 'Q&Aimage.jpg', { type: 'image/jpeg' })
@@ -610,7 +608,7 @@ export default {
         '<div class="flexDiv" style="width:66%"><span class="flexTitle">创建时间:</span><div class="flexInfo">' + (feaData.createDate || '-') + '</div></div>' +
         '<div class="flexDiv"><span class="flexTitle">处理状态:</span><div class="flexInfo">' + (['未处理', '已处理', '未上报'][feaData.status]) + '</div></div>' +
         '<div class="flexDiv" style="width:100%"><span class="flexTitle">处理说明:</span><div class="flexInfo">' + (feaData.handleCaption || '-') + '</div></div>'+
-        
+
         '<div class="flexDiv"><span class="flexTitle">处理人:</span><div class="flexInfo">' + (feaData.handleUserName || '-') + '</div></div>' +
         '<div class="flexDiv" style="width:66%"><span class="flexTitle">处理时间:</span><div class="flexInfo">' + (feaData.handleDate || '-') + '</div></div></div>'
       div.innerHTML = '<div style="width:100%;min-height:200px;text-align: center;background:#ddd;">' +
@@ -641,7 +639,7 @@ export default {
         this.$message.warning('标识【'+exported.name+'】已经上报,不允许再次上报!');
         return;
       }
-      this.updateVisiable = true  
+      this.updateVisiable = true
     },
     updateTrue() {
       var selects = this.$refs.markTable.selection
@@ -654,7 +652,7 @@ export default {
           this.$refs.pagination.internalCurrentPage = 1
           this.loadSign()
         } else this.$message(res.message)
-        this.updateVisiable = false  
+        this.updateVisiable = false
       })
     },
     destroy() {

二進制
src/views/zhpt/tongyonggongju/simpleQueryTool/images/left.png


二進制
src/views/zhpt/tongyonggongju/simpleQueryTool/images/right.png


+ 0 - 77
src/views/zhpt/tongyonggongju/simpleQueryTool/queryConfig.ts

@@ -1,77 +0,0 @@
-export const queryConfig = {
-    '地名': {
-        text: '地址',
-        fields: 'ADDRESS', // 地址
-        isLike: true,
-        layers: [
-            'TF_JSJS_WATERINTAKE_B',// 取水口
-            'TF_JSJS_WATERHEAD_B',// 水源
-            'TF_JSJS_WATERPUMP_B',// 水泵
-            'TF_JSJS_WATERMETER_B',// 水表
-            'TF_JSJS_COLLECTSITE_B',// 水质取样点
-            'TF_JSJS_STATION_B',// 监测点
-            'TF_JSJS_VALVE_B',// 控制阀门
-            'TF_JSJS_NONVALVE_B',// 非控制阀
-            'TF_JSJS_HYDRANT_B',// 消防栓
-            'TF_JSJS_MANHOLE_B',// 检查井
-            'TF_JSJS_INSPECTSITE_B',// 排污点
-            'TF_JSJS_PIPENODE_B',// 节点
-            'TF_JSJS_STANDPIPE_B',// 立管
-            'TF_JSJS_PIPE_B',// 管线
-            'TF_JSQT_MEDIAN_B',// 绿地
-            'TF_JSQT_BLOCK_B'// 居民区
-        ]
-    },
-    '管径': {
-        text: '管径',
-        fields: 'DIAMETER', // 地址
-        isLike: false,
-        layers: [
-            'TF_JSJS_STANDPIPE_B',// 立管
-            'TF_JSJS_PIPE_B',// 管线
-        ]
-    },
-    '管材': {
-        text: '管线材质',
-        fields: 'MATERIAL', // 地址
-        isLike: true,
-        layers: [
-            'TF_JSJS_STANDPIPE_B',// 立管
-            'TF_JSJS_PIPE_B',// 管线
-        ]
-    },
-    '设施编号': {
-        text: '设施编号',
-        fields: 'SID', // 地址
-        isLike: true,
-        layers: [
-            'TF_JSJS_WATERPUMP_B',// 水泵
-            'TF_JSJS_WATERMETER_B',// 水表
-            'TF_JSJS_STATION_B',// 监测点
-            'TF_JSJS_VALVE_B',// 控制阀门
-            'TF_JSJS_NONVALVE_B',// 非控制阀
-            'TF_JSJS_HYDRANT_B',// 消防栓
-            'TF_JSJS_MANHOLE_B',// 检查井
-            'TF_JSJS_STANDPIPE_B',// 立管
-            'TF_JSJS_PIPE_B'// 管线
-        ]
-    },
-    '阀门类型': {
-        text: '阀门类型',
-        fields: 'VALVETYPE', // 地址
-        isLike: true,
-        layers: [
-            'TF_JSJS_VALVE_B',// 控制阀门
-            'TF_JSJS_NONVALVE_B',// 非控制阀
-        ]
-    },
-    '阀门规格': {
-        text: '阀门规格',
-        fields: 'DIAMETER', // 地址
-        isLike: false,
-        layers: [
-            'TF_JSJS_VALVE_B',// 控制阀门
-            'TF_JSJS_NONVALVE_B',// 非控制阀
-        ]
-    },
-}

File diff suppressed because it is too large
+ 0 - 500
src/views/zhpt/tongyonggongju/simpleQueryTool/widget.vue


二進制
src/views/zhpt/tongyonggongju/widgetGroup/images/firstPage.png


二進制
src/views/zhpt/tongyonggongju/widgetGroup/images/zoomIn.png


二進制
src/views/zhpt/tongyonggongju/widgetGroup/images/zoomOut.png


+ 0 - 541
src/views/zhpt/tongyonggongju/widgetGroup/widget.vue

@@ -1,541 +0,0 @@
-<template>
-  <div id="widgetGroup">
-    <div class="widgetGroupButtoms" title="框选放大" @click="zoomDraw('in')">
-      <img src="./images/zoomIn.png">
-    </div>
-    <div class="widgetGroupButtoms" style="margin-bottom: 5px" title="框选缩小" @click="zoomDraw('out')">
-      <img src="./images/zoomOut.png">
-    </div>
-    <div class="widgetGroupButtoms" style="margin-bottom: 5px" title="初始位置" @click="extentAll">
-      <img src="./images/firstPage.png">
-    </div>
-    <!-- <div ref="loadTag" style="width:10px;height:10px;background:#f00;border-radius:50%;position:absolute;top:-15px;"></div> -->
-  </div>
-</template>
-<script>
-import { esriConfig } from 'staticPub/config'
-import { loadModules } from 'esri-loader'
-import zoomIn from "./images/zoomIn.png";
-import zoomOut from "./images/zoomOut.png";
-export default {
-  name: 'WidgetGroup',
-  components: {},
-  props: {
-    mapView: { type: Object, default: () => [] },
-    that: { type: Object, default: () => [] }
-  },
-  data() {
-    return {
-      test: 0,
-      isLoaded: false,
-      allExtent: undefined,
-      graphicsLayer: undefined,
-      draw: undefined
-    }
-  },
-  watch: {
-    mapView: {
-      handler(e) {
-        if (this.isLoaded || (this.mapView && !this.isLoaded)) { this.isLoaded = true } else return
-        var that = this
-        loadModules(
-          ['esri/layers/GraphicsLayer', 'esri/views/draw/Draw', 'esri/Graphic', 'esri/views/MapView', 'esri/layers/FeatureLayer'],
-          { url: esriConfig.baseUrl }
-        ).then(([GraphicsLayer, Draw, Graphic, MapView, FeatureLayer]) => {
-          var mapViewD = that.mapView          
-          mapViewD.container.style.overflow = 'hidden'
-          that.allExtent = [e.center, e.zoom]
-          that.graphicsLayer = new GraphicsLayer({id: 'tool'})
-          mapViewD.map.add(that.graphicsLayer)          
-          that.Graphic = Graphic
-          mapViewD.TF_draw = that.graphicsLayer.TF_draw = that.draw = new Draw({ view: mapViewD })
-          mapViewD.TF_graphic = that.graphicsLayer.TF_graphic = Graphic
-          mapViewD.TF_mapView = MapView
-          mapViewD.TF_featureLayer = FeatureLayer
-          mapViewD.TF_graphicsLayer = GraphicsLayer
-          mapViewD.TF_drawRect = that.graphicsLayer.TF_drawRect = (start, add, move, end) => {
-            that.graphicsLayer.removeAll()
-            var action = that.draw.create('rectangle')
-            start()
-            action.on('vertex-add', (evt) => add(evt, action))
-            action.on('cursor-update', (evt) => move(evt, action))
-            action.on('draw-complete', (evt) => end(evt, action))
-            return action
-          }
-
-          mapViewD.TF_drawPolygon = that.graphicsLayer.TF_drawPolygon = (start, add, move, end) => {
-            that.graphicsLayer.removeAll()
-            var action = that.draw.create('polyline', {mode: "click"})
-            start()
-            action.on('vertex-add', (evt) => add(evt, action))
-            action.on('cursor-update', (evt) => move(evt, action))
-            action.on('draw-complete', (evt) => end(evt, action))
-            return action
-          }
-
-          mapViewD.TF_printToJson = (mapView, extent, scale, title, author, company) => {
-            var result = {
-                "mapOptions": {
-                    "extent": extent.toJSON(),
-                    "spatialReference": mapView.spatialReference.toJSON(),
-                    "scale": scale
-                },
-                "operationalLayers": [],
-                "exportOptions": {},
-                "layoutOptions": {
-                    "titleText": title,
-                    "authorText": author,
-                    "copyrightText": company,
-                    "customTextElements": [{ "company": company }],
-                    "scaleBarOptions": {
-                        "metricUnit": "esriMeters ",
-                        "metricLabel": "米",
-                        "nonMetricUnit": "esriMiles",
-                        "nonMetricLabel": "mi"
-                    },
-                }
-            };
-            var returnLayers = result['operationalLayers']
-            for(let i=0,il=mapView.map.basemap.baseLayers.items,ii=il.length;i<ii;i++){
-              var layer = il[i]
-              if(layer.url && layer.visible) {
-                var layerInfo = {
-                  "id": undefined,
-                  "title": layer.title,
-                  "opacity": layer.opacity,
-                  "minScale": layer.minScale,
-                  "maxScale": layer.maxScale,
-                  "url": layer.url,
-                  "token": layer.token,
-                  "layers": []
-                }
-                var subLayers = layer.allSublayers
-                for(let j=0,jl=subLayers.items,jj=jl.length;j<jj;j++){
-                  var subLayer = jl[j]
-                  var inLayerIds
-                  var pId
-                  if(subLayer.sublayers) {
-                    inLayerIds = []
-                    pId = -1
-                    for(let k=0,kl = subLayer.sublayers.items,kk=kl.length;k<kk;k++) {
-                      inLayerIds.push(kl[k].id)
-                    }
-                  }
-                  else {
-                    pId = subLayer.parent.id
-                    if(pId == layer.id) pId = -1
-                    inLayerIds = null
-                  }
-                  layerInfo.layers.push({
-                    "id": subLayer.id,
-                    "minScale": subLayer.minScale,
-                    "maxScale": subLayer.maxScale,
-                    "parentLayerId": pId,
-                    "layerDefinition": {
-                        "source": {
-                            "mapLayerId": subLayer.id,
-                            "type": "mapLayer"
-                        }
-                    },
-                    "subLayerIds": inLayerIds,
-                    "name": subLayer.title,
-                    "defaultVisibility": subLayer.visible
-                  })
-                }
-                returnLayers.push(layerInfo)
-              }
-            }
-            return result
-          }
-          this.that.loading = false
-          // that.$refs.loadTag.style.background = '#0f0'
-        })
-      }
-    }
-  },
-  methods: {
-    extentAll: function() {
-      this.mapView.goTo({
-        center: this.allExtent[0],
-        zoom: this.allExtent[1]
-      })
-    },
-    zoomDraw: function(zoom) {
-      var that = this
-      var inputPolygon
-      var cache = this.mapView.container.style.cursor
-      this.graphicsLayer.TF_drawRect(() => {that.mapView.container.style.cursor = zoom=="in"?"url("+zoomIn+"),auto":"url("+zoomOut+"),auto";},//'crosshair'},
-      (evt) => {
-        var vertices = evt.vertices
-        if (vertices.length < 2) {
-          inputPolygon = new that.Graphic({
-            geometry: { type: 'polygon', rings: [[vertices[0]]], spatialReference: that.mapView.spatialReference },
-            symbol: { type: "simple-fill", color: [245, 108, 108, 0.2], outline: { color: [245, 108, 108], width: "2px" }}
-          })
-          that.graphicsLayer.add(inputPolygon)
-        }
-      }, (evt) => {
-        var v = evt.vertices
-        if (inputPolygon) 
-          inputPolygon.geometry = {
-            type: 'polygon',
-            rings: [[v[0], [v[1][0], v[0][1]], v[1], [v[0][0], v[1][1]]]],
-            spatialReference: that.mapView.spatialReference
-          } 
-      }, (evt, action) => {
-        var v = inputPolygon.geometry.extent
-        switch (zoom) {
-          case 'in':
-            that.mapView.goTo(v)
-            break
-          case 'out':
-            that.mapView.goTo({
-              center: v.center,
-              scale: that.mapView.scale * Math.min(that.mapView.extent.width / v.width, that.mapView.extent.height / v.height)
-            })
-            break
-        }
-        that.mapView.container.style.cursor = cache
-        that.graphicsLayer.removeAll()
-        action = undefined
-      })      
-    }
-  }
-}
-</script>
-<style type="scss" scoped>
-i {
-  font-weight: bold;
-  transition: 0.2s;
-}
-#widgetGroup {
-  position: absolute;
-  right: 10px;
-  bottom: 35px;
-}
-</style>
-<style>
-.esri-popup__main-container {
-  max-height: 800px !important;
-}
-
-.widgetGroupButtoms {
-  width: 30px;
-  height: 30px;
-  cursor: pointer;
-  box-shadow: 0 1px 2px rgba(0, 0, 0, 0.3);
-  background: #fff;
-  line-height: 30px;
-  transition: 0.2s;
-  display: flex;
-  align-items: center;
-  justify-content: center;
-}
-.widgetGroupButtoms:hover {
-  background: #eee;
-}
-.widgetGroupButtoms img {
-  filter: grayscale(100%) drop-shadow(0px 0px 0px rgb(45,116,231));
-  transition: 0.4s;
-}
-.widgetGroupButtoms:hover img {
-  filter:grayscale(0%) drop-shadow(0px 0px 1px rgb(45,116,231));
-}
-.title2 {
-  font-size: 14px;
-}
-.mapTable .el-table__header-wrapper table th{
-  color: #606266;
-  background: #e1f0fd;
-}
-.mapTable .el-table__fixed-right table th:not(.is-hidden){
-  color: #606266;
-  background: #e1f0fd;
-}
-.mapTable .el-table__body-wrapper tbody tr.analysis_brokenButton{
-  background: oldlace;
-}
-.helpInput input[type="text"]{
-   border-radius: 4px 0px 0px 4px;
-}
-.sqlQueryUl {
-  list-style-type: none;
-  padding: 2px;
-  margin: 0px;
-  font-size: 14px;
-  border: 1px solid #ccc;
-  overflow-x: hidden;
-  overflow-y: auto;
-}
-.sqlQueryUl li {
-  margin: 2px 0;
-  cursor: pointer;
-}
-.sqlQueryUl li:hover {
-  background: rgb(30, 144, 255);
-  color: #fff;
-}
-.sqlQueryUl .none {
-  color: #C0C4CC;
-  letter-spacing: 1px;
-  margin-left: 5px;
-}
-.spanTitle {
-  clear: both;
-  margin-top: 3px;
-  margin-bottom: 5px;
-  font-size: 14px;
-}
-.titleS {
-  color: #606266;
-}
-.circle {
-  width: 18px;
-  height: 18px;
-  border-radius: 50%;
-  display: inline-block;
-  transform: translateY(3px);
-}
-.text {
-  line-height: 18px;
-  margin-left: 4px;
-}
-.selectRowC {
-  cursor: pointer;
-}
-#player {  
-  animation:mymove 0.4s;
-}
-
-@keyframes mymove
-{
-  0% {
-    opacity: 0;
-    bottom: 0;
-  }
-  100% {
-    opacity: 1;
-    bottom: 80px;
-  }
-}
-
-
-#graphContainer {
-  position: relative;
-  overflow: hidden;
-  width: 100%;
-  height: 100%;
-  cursor: default;
-}
-.underSvg {
-  z-index: 1;
-  position: absolute;
-  width: 100%;
-  height: 100%;
-  left: 0%;
-  top: 0%;
-}
-.underSvg div {
-  position: absolute;
-  background: rgb(33,61,81);
-  border: 2px solid rgb(53,88,112);
-}
-
-.graph .underSvg span {
-  position: absolute;
-  left: 50%;
-  white-space: nowrap;
-  color: #8ac9fb;
-}
-
-.graph .underSvg .onText {
-  transform: translate(-50%, -100%);
-  top: -2%;
-}
-
-.onSvg {
-  z-index: 3;
-  position: absolute;
-  width: 100%;
-  height: 100%;
-  left: 0%;
-  top: 0%;
-  color: #eee;
-}
-.graph svg {
-  z-index: 2;
-  position: absolute;
-}
-.graph .img {
-  position: absolute;
-  background-size: 100% 100%;
-  font-size: 17px;
-  letter-spacing: 2px;
-  font-weight: bold;
-}
-.graph .img span {
-  position: absolute;
-  left: 50%;
-  white-space: nowrap;
-  color: #8ac9fb;
-  padding: 0 5px;
-}
-.graph .img .unText {
-  transform: translate(-50%, 100%);
-  bottom: -2%;
-}
-.graph .text ul {
-  position: absolute;
-  list-style: none;
-  padding: 0px;
-  margin: 0px;
-  font-size: 12px;
-  white-space: nowrap;
-  z-index: 1;
-}
-
-.graph .text ul li{
-  margin-bottom: 3px;
-  cursor: pointer;
-  position: relative;
-}
-
-.graph .text ul li::before{
-  content: "";
-  position: absolute;
-  display: block;
-  height: 1px;
-  left: 1px;
-  width: 0;
-  bottom: -1px;
-  background: #21b7f6;
-  transition: 0.4s;
-}
-.graph .text ul li:hover::before{
-  width: calc(100% + 2px);
-}
-.graph .text ul li:nth-last-child(1) {
-  margin-bottom: 0px;
-}
-.graph .text ul li div:nth-child(2) span:nth-child(1) {
-  text-align: right;
-}
-.graph .text ul li .title {
-  font-size: 13px;
-  letter-spacing: 1px;
-  position: absolute;
-  left: 0;
-  transform: translateX(-100%);
-}
-.graph .text ul li .title span {
-  font-weight: bold;
-}
-.graph .text ul li .title span::before{
-  content: "";
-  position: absolute;
-  display: block;
-  right: 0;
-  bottom: 0;
-  height: 1px;
-  background: rgb(73, 167, 239);
-  width: 0;
-  transition: 0.3s;
-}
-.graph .text ul li:hover .title span::before{
-  width: calc(100% - 3px);
-}
-.graph .text ul li .title2 {
-  font-size: 13px;
-  letter-spacing: 1px;
-  text-align: right;
-}
-.graph .text ul li .title2 span {
-  color: #eee;
-  font-weight: bold;
-}
-.graph .text ul li .title2 span::before{
-  content: "";
-  position: absolute;
-  display: block;
-  right: 0;
-  bottom: 0;
-  height: 1px;
-  background: rgb(73, 167, 239);
-  width: 0;
-  transition: 0.3s;
-}
-.graph .text ul li:hover .title2 span::before{
-  width: calc(100% - 3px);
-}
-.graph .text ul li .value {
-  font-weight: bold;
-  display: inline-block;
-  padding-right: 5px;
-  /* width: 40px; */
-  text-align: right;
-}
-.graph .text ul li .unit {
-  width: 15px;
-}
-.graph .text div.inPic {
-  position: absolute;
-  font-size: 12px;
-  z-index: 2;
-  font-weight: bold;
-  text-shadow: 1px 0px 1px #000, -1px 0px 1px #000, 0px 1px 1px #000, 0px -1px 1px #000;
-}
-.graph .flowBack {
-  /* stroke-width: 1px; */
-  stroke-width: 6px;
-  stroke: rgb(114,169,212);
-  stroke-linejoin: round;
-  stroke-linecap: round;
-}
-.graph .flow {
-  stroke-width: 4px;
-  stroke-dasharray: 5, 12;
-  stroke-linecap: round;
-  stroke-linejoin: round;
-  animation: dash 0.8s linear;
-  animation-iteration-count: infinite;
-}
-.graph .flowN {
-  stroke-width: 4px;
-  stroke-dasharray: 5, 12;
-  stroke-linecap: round;
-  stroke-linejoin: round;
-} 
-@keyframes dash {
-  to {stroke-dashoffset: -17;}
-} 
-
-.graph .img .onWhiteText {
-  transform: translate(-50%, -100%);
-  top: -2%;
-  color: #fff;
-}
-.graph .img .unWhiteText {
-  transform: translate(-50%, 100%);
-  bottom: -5%;
-  color: #fff;
-}
-.graph .img .unJiaYaWhiteText {
-  transform: translate(-50%, 0);
-  bottom: -85px;
-  color: #fff;
-}
-
-.graph .img .shuiku {
-  transform: translate(-50%, 0);
-  bottom: 2%;
-  color: rgb(4,30,48);
-}
-.graph .img .qushui {
-  transform: translate(-200%, 0);
-  bottom: 4px;
-  color: #fff;
-  left: -6px;
-  width: 0;
-  white-space: normal;
-}
-</style>