Hwt 2 лет назад
Родитель
Сommit
46d2b8ad94

+ 51 - 51
operationSupport/package-lock.json

@@ -11911,7 +11911,7 @@
     },
     "tunnel-agent": {
       "version": "0.6.0",
-      "resolved": "https://registry.npm.taobao.org/tunnel-agent/download/tunnel-agent-0.6.0.tgz",
+      "resolved": "https://registry.nlark.com/tunnel-agent/download/tunnel-agent-0.6.0.tgz",
       "integrity": "sha1-J6XeoGs2sEoKmWZ3SykIaPD8QP0=",
       "requires": {
         "safe-buffer": "^5.0.1"
@@ -11919,18 +11919,18 @@
     },
     "tweetnacl": {
       "version": "0.14.5",
-      "resolved": "https://registry.npm.taobao.org/tweetnacl/download/tweetnacl-0.14.5.tgz?cache=0&sync_timestamp=1589682745749&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Ftweetnacl%2Fdownload%2Ftweetnacl-0.14.5.tgz",
+      "resolved": "https://registry.npm.taobao.org/tweetnacl/download/tweetnacl-0.14.5.tgz",
       "integrity": "sha1-WuaBd/GS1EViadEIr6k/+HQ/T2Q="
     },
     "type-fest": {
       "version": "0.6.0",
-      "resolved": "https://registry.npm.taobao.org/type-fest/download/type-fest-0.6.0.tgz?cache=0&sync_timestamp=1602623859603&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Ftype-fest%2Fdownload%2Ftype-fest-0.6.0.tgz",
+      "resolved": "https://registry.npmmirror.com/type-fest/download/type-fest-0.6.0.tgz",
       "integrity": "sha1-jSojcNPfiG61yQraHFv2GIrPg4s=",
       "dev": true
     },
     "type-is": {
       "version": "1.6.18",
-      "resolved": "https://registry.npm.taobao.org/type-is/download/type-is-1.6.18.tgz",
+      "resolved": "https://registry.nlark.com/type-is/download/type-is-1.6.18.tgz",
       "integrity": "sha1-TlUs0F3wlGfcvE73Od6J8s83wTE=",
       "dev": true,
       "requires": {
@@ -11940,7 +11940,7 @@
     },
     "typedarray": {
       "version": "0.0.6",
-      "resolved": "https://registry.npm.taobao.org/typedarray/download/typedarray-0.0.6.tgz",
+      "resolved": "https://registry.nlark.com/typedarray/download/typedarray-0.0.6.tgz",
       "integrity": "sha1-hnrHTjhkGHsdPUfZlqeOxciDB3c=",
       "dev": true
     },
@@ -11951,7 +11951,7 @@
     },
     "uglify-js": {
       "version": "3.4.10",
-      "resolved": "https://registry.npm.taobao.org/uglify-js/download/uglify-js-3.4.10.tgz?cache=0&sync_timestamp=1603066085933&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fuglify-js%2Fdownload%2Fuglify-js-3.4.10.tgz",
+      "resolved": "https://registry.npmmirror.com/uglify-js/download/uglify-js-3.4.10.tgz",
       "integrity": "sha1-mtlWPY6zrN+404WX0q8dgV9qdV8=",
       "dev": true,
       "requires": {
@@ -11961,13 +11961,13 @@
       "dependencies": {
         "commander": {
           "version": "2.19.0",
-          "resolved": "https://registry.npm.taobao.org/commander/download/commander-2.19.0.tgz?cache=0&sync_timestamp=1598576116597&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fcommander%2Fdownload%2Fcommander-2.19.0.tgz",
+          "resolved": "https://registry.npmmirror.com/commander/download/commander-2.19.0.tgz?cache=0&sync_timestamp=1634886396986&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2Fcommander%2Fdownload%2Fcommander-2.19.0.tgz",
           "integrity": "sha1-9hmKqE5bg8RgVLlN3tv+1e6f8So=",
           "dev": true
         },
         "source-map": {
           "version": "0.6.1",
-          "resolved": "https://registry.npm.taobao.org/source-map/download/source-map-0.6.1.tgz",
+          "resolved": "https://registry.nlark.com/source-map/download/source-map-0.6.1.tgz",
           "integrity": "sha1-dHIq8y6WFOnCh6jQu95IteLxomM=",
           "dev": true
         }
@@ -12015,7 +12015,7 @@
     },
     "union-value": {
       "version": "1.0.1",
-      "resolved": "https://registry.npm.taobao.org/union-value/download/union-value-1.0.1.tgz",
+      "resolved": "https://registry.nlark.com/union-value/download/union-value-1.0.1.tgz",
       "integrity": "sha1-C2/nuDWuzaYcbqTU8CwUIh4QmEc=",
       "dev": true,
       "requires": {
@@ -12027,7 +12027,7 @@
     },
     "uniq": {
       "version": "1.0.1",
-      "resolved": "https://registry.npm.taobao.org/uniq/download/uniq-1.0.1.tgz",
+      "resolved": "https://registry.nlark.com/uniq/download/uniq-1.0.1.tgz",
       "integrity": "sha1-sxxa6CVIRKOoKBVBzisEuGWnNP8=",
       "dev": true
     },
@@ -12048,7 +12048,7 @@
     },
     "unique-slug": {
       "version": "2.0.2",
-      "resolved": "https://registry.npm.taobao.org/unique-slug/download/unique-slug-2.0.2.tgz",
+      "resolved": "https://registry.nlark.com/unique-slug/download/unique-slug-2.0.2.tgz",
       "integrity": "sha1-uqvOkQg/xk6UWw861hPiZPfNTmw=",
       "dev": true,
       "requires": {
@@ -12057,25 +12057,25 @@
     },
     "universalify": {
       "version": "0.1.2",
-      "resolved": "https://registry.npm.taobao.org/universalify/download/universalify-0.1.2.tgz?cache=0&sync_timestamp=1603179967633&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Funiversalify%2Fdownload%2Funiversalify-0.1.2.tgz",
+      "resolved": "https://registry.nlark.com/universalify/download/universalify-0.1.2.tgz",
       "integrity": "sha1-tkb2m+OULavOzJ1mOcgNwQXvqmY=",
       "dev": true
     },
     "unpipe": {
       "version": "1.0.0",
-      "resolved": "https://registry.npm.taobao.org/unpipe/download/unpipe-1.0.0.tgz",
+      "resolved": "https://registry.nlark.com/unpipe/download/unpipe-1.0.0.tgz",
       "integrity": "sha1-sr9O6FFKrmFltIF4KdIbLvSZBOw=",
       "dev": true
     },
     "unquote": {
       "version": "1.1.1",
-      "resolved": "https://registry.npm.taobao.org/unquote/download/unquote-1.1.1.tgz",
+      "resolved": "https://registry.nlark.com/unquote/download/unquote-1.1.1.tgz",
       "integrity": "sha1-j97XMk7G6IoP+LkF58CYzcCG1UQ=",
       "dev": true
     },
     "unset-value": {
       "version": "1.0.0",
-      "resolved": "https://registry.npm.taobao.org/unset-value/download/unset-value-1.0.0.tgz",
+      "resolved": "https://registry.nlark.com/unset-value/download/unset-value-1.0.0.tgz",
       "integrity": "sha1-g3aHP30jNRef+x5vw6jtDfyKtVk=",
       "dev": true,
       "requires": {
@@ -12085,7 +12085,7 @@
       "dependencies": {
         "has-value": {
           "version": "0.3.1",
-          "resolved": "https://registry.npm.taobao.org/has-value/download/has-value-0.3.1.tgz",
+          "resolved": "https://registry.nlark.com/has-value/download/has-value-0.3.1.tgz",
           "integrity": "sha1-ex9YutpiyoJ+wKIHgCVlSEWZXh8=",
           "dev": true,
           "requires": {
@@ -12115,13 +12115,13 @@
     },
     "upath": {
       "version": "1.2.0",
-      "resolved": "https://registry.npm.taobao.org/upath/download/upath-1.2.0.tgz?cache=0&sync_timestamp=1602008334498&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fupath%2Fdownload%2Fupath-1.2.0.tgz",
+      "resolved": "https://registry.npm.taobao.org/upath/download/upath-1.2.0.tgz",
       "integrity": "sha1-j2bbzVWog6za5ECK+LA1pQRMGJQ=",
       "dev": true
     },
     "upper-case": {
       "version": "1.1.3",
-      "resolved": "https://registry.npm.taobao.org/upper-case/download/upper-case-1.1.3.tgz",
+      "resolved": "https://registry.nlark.com/upper-case/download/upper-case-1.1.3.tgz",
       "integrity": "sha1-9rRQHC7EzdJrp4vnIilh3ndiFZg=",
       "dev": true
     },
@@ -12150,13 +12150,13 @@
     },
     "urix": {
       "version": "0.1.0",
-      "resolved": "https://registry.npm.taobao.org/urix/download/urix-0.1.0.tgz",
+      "resolved": "https://registry.npmmirror.com/urix/download/urix-0.1.0.tgz",
       "integrity": "sha1-2pN/emLiH+wf0Y1Js1wpNQZ6bHI=",
       "dev": true
     },
     "url": {
       "version": "0.11.0",
-      "resolved": "https://registry.npm.taobao.org/url/download/url-0.11.0.tgz",
+      "resolved": "https://registry.nlark.com/url/download/url-0.11.0.tgz?cache=0&sync_timestamp=1618847135337&other_urls=https%3A%2F%2Fregistry.nlark.com%2Furl%2Fdownload%2Furl-0.11.0.tgz",
       "integrity": "sha1-ODjpfPxgUh63PFJajlW/3Z4uKPE=",
       "dev": true,
       "requires": {
@@ -12166,7 +12166,7 @@
       "dependencies": {
         "punycode": {
           "version": "1.3.2",
-          "resolved": "https://registry.npm.taobao.org/punycode/download/punycode-1.3.2.tgz",
+          "resolved": "https://registry.nlark.com/punycode/download/punycode-1.3.2.tgz?cache=0&sync_timestamp=1622604519710&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fpunycode%2Fdownload%2Fpunycode-1.3.2.tgz",
           "integrity": "sha1-llOgNvt8HuQjQvIyXM7v6jkmxI0=",
           "dev": true
         }
@@ -12174,7 +12174,7 @@
     },
     "url-loader": {
       "version": "1.1.2",
-      "resolved": "https://registry.npm.taobao.org/url-loader/download/url-loader-1.1.2.tgz?cache=0&sync_timestamp=1602252626029&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Furl-loader%2Fdownload%2Furl-loader-1.1.2.tgz",
+      "resolved": "https://registry.npmmirror.com/url-loader/download/url-loader-1.1.2.tgz",
       "integrity": "sha1-uXHRkbg69pPF4/6kBkvp4fLX+Ng=",
       "dev": true,
       "requires": {
@@ -12205,7 +12205,7 @@
         },
         "schema-utils": {
           "version": "1.0.0",
-          "resolved": "https://registry.npm.taobao.org/schema-utils/download/schema-utils-1.0.0.tgz",
+          "resolved": "https://registry.npmmirror.com/schema-utils/download/schema-utils-1.0.0.tgz?cache=0&sync_timestamp=1637075997986&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2Fschema-utils%2Fdownload%2Fschema-utils-1.0.0.tgz",
           "integrity": "sha1-C3mpMgTXtgDUsoUNH2bCo0lRx3A=",
           "dev": true,
           "requires": {
@@ -12228,13 +12228,13 @@
     },
     "use": {
       "version": "3.1.1",
-      "resolved": "https://registry.npm.taobao.org/use/download/use-3.1.1.tgz",
+      "resolved": "https://registry.nlark.com/use/download/use-3.1.1.tgz",
       "integrity": "sha1-1QyMrHmhn7wg8pEfVuuXP04QBw8=",
       "dev": true
     },
     "util": {
       "version": "0.11.1",
-      "resolved": "https://registry.npm.taobao.org/util/download/util-0.11.1.tgz",
+      "resolved": "https://registry.nlark.com/util/download/util-0.11.1.tgz?cache=0&sync_timestamp=1622212984161&other_urls=https%3A%2F%2Fregistry.nlark.com%2Futil%2Fdownload%2Futil-0.11.1.tgz",
       "integrity": "sha1-MjZzNyDsZLsn9uJvQhqqLhtYjWE=",
       "dev": true,
       "requires": {
@@ -12243,7 +12243,7 @@
       "dependencies": {
         "inherits": {
           "version": "2.0.3",
-          "resolved": "https://registry.npm.taobao.org/inherits/download/inherits-2.0.3.tgz",
+          "resolved": "https://registry.nlark.com/inherits/download/inherits-2.0.3.tgz",
           "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=",
           "dev": true
         }
@@ -12251,12 +12251,12 @@
     },
     "util-deprecate": {
       "version": "1.0.2",
-      "resolved": "https://registry.npm.taobao.org/util-deprecate/download/util-deprecate-1.0.2.tgz",
+      "resolved": "https://registry.nlark.com/util-deprecate/download/util-deprecate-1.0.2.tgz",
       "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8="
     },
     "util.promisify": {
       "version": "1.0.1",
-      "resolved": "https://registry.npm.taobao.org/util.promisify/download/util.promisify-1.0.1.tgz?cache=0&sync_timestamp=1589682767473&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Futil.promisify%2Fdownload%2Futil.promisify-1.0.1.tgz",
+      "resolved": "https://registry.npm.taobao.org/util.promisify/download/util.promisify-1.0.1.tgz?cache=0&sync_timestamp=1610159895694&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Futil.promisify%2Fdownload%2Futil.promisify-1.0.1.tgz",
       "integrity": "sha1-a693dLgO6w91INi4HQeYKlmruu4=",
       "dev": true,
       "requires": {
@@ -12268,13 +12268,13 @@
     },
     "utila": {
       "version": "0.4.0",
-      "resolved": "https://registry.npm.taobao.org/utila/download/utila-0.4.0.tgz",
+      "resolved": "https://registry.nlark.com/utila/download/utila-0.4.0.tgz",
       "integrity": "sha1-ihagXURWV6Oupe7MWxKk+lN5dyw=",
       "dev": true
     },
     "utils-merge": {
       "version": "1.0.1",
-      "resolved": "https://registry.npm.taobao.org/utils-merge/download/utils-merge-1.0.1.tgz",
+      "resolved": "https://registry.nlark.com/utils-merge/download/utils-merge-1.0.1.tgz",
       "integrity": "sha1-n5VxD1CiZ5R7LMwSR0HBAoQn5xM=",
       "dev": true
     },
@@ -12288,12 +12288,12 @@
     },
     "uuid": {
       "version": "3.4.0",
-      "resolved": "https://registry.npm.taobao.org/uuid/download/uuid-3.4.0.tgz",
+      "resolved": "https://registry.npmmirror.com/uuid/download/uuid-3.4.0.tgz",
       "integrity": "sha1-sj5DWK+oogL+ehAK8fX4g/AgB+4="
     },
     "validate-npm-package-license": {
       "version": "3.0.4",
-      "resolved": "https://registry.npm.taobao.org/validate-npm-package-license/download/validate-npm-package-license-3.0.4.tgz",
+      "resolved": "https://registry.nlark.com/validate-npm-package-license/download/validate-npm-package-license-3.0.4.tgz",
       "integrity": "sha1-/JH2uce6FchX9MssXe/uw51PQQo=",
       "requires": {
         "spdx-correct": "^3.0.0",
@@ -12302,19 +12302,19 @@
     },
     "vary": {
       "version": "1.1.2",
-      "resolved": "https://registry.npm.taobao.org/vary/download/vary-1.1.2.tgz",
+      "resolved": "https://registry.nlark.com/vary/download/vary-1.1.2.tgz",
       "integrity": "sha1-IpnwLG3tMNSllhsLn3RSShj2NPw=",
       "dev": true
     },
     "vendors": {
       "version": "1.0.4",
-      "resolved": "https://registry.npm.taobao.org/vendors/download/vendors-1.0.4.tgz",
+      "resolved": "https://registry.nlark.com/vendors/download/vendors-1.0.4.tgz",
       "integrity": "sha1-4rgApT56Kbk1BsPPQRANFsTErY4=",
       "dev": true
     },
     "verror": {
       "version": "1.10.0",
-      "resolved": "https://registry.npm.taobao.org/verror/download/verror-1.10.0.tgz",
+      "resolved": "https://registry.npmmirror.com/verror/download/verror-1.10.0.tgz?cache=0&sync_timestamp=1635885078723&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2Fverror%2Fdownload%2Fverror-1.10.0.tgz",
       "integrity": "sha1-OhBcoXBTr1XW4nDB+CiGguGNpAA=",
       "requires": {
         "assert-plus": "^1.0.0",
@@ -12331,7 +12331,7 @@
     },
     "vm-browserify": {
       "version": "1.1.2",
-      "resolved": "https://registry.npm.taobao.org/vm-browserify/download/vm-browserify-1.1.2.tgz?cache=0&sync_timestamp=1572870717730&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fvm-browserify%2Fdownload%2Fvm-browserify-1.1.2.tgz",
+      "resolved": "https://registry.nlark.com/vm-browserify/download/vm-browserify-1.1.2.tgz",
       "integrity": "sha1-eGQcSIuObKkadfUR56OzKobl3aA=",
       "dev": true
     },
@@ -12366,7 +12366,7 @@
     },
     "vue-hot-reload-api": {
       "version": "2.3.4",
-      "resolved": "https://registry.npm.taobao.org/vue-hot-reload-api/download/vue-hot-reload-api-2.3.4.tgz?cache=0&sync_timestamp=1568190386192&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fvue-hot-reload-api%2Fdownload%2Fvue-hot-reload-api-2.3.4.tgz",
+      "resolved": "https://registry.nlark.com/vue-hot-reload-api/download/vue-hot-reload-api-2.3.4.tgz",
       "integrity": "sha1-UylVzB6yCKPZkLOp+acFdGV+CPI=",
       "dev": true
     },
@@ -12407,7 +12407,7 @@
     },
     "vue-quill-editor": {
       "version": "3.0.6",
-      "resolved": "https://registry.npm.taobao.org/vue-quill-editor/download/vue-quill-editor-3.0.6.tgz",
+      "resolved": "https://registry.nlark.com/vue-quill-editor/download/vue-quill-editor-3.0.6.tgz",
       "integrity": "sha1-H4VkYhHWijGoCnLLf0W7LxGbyPs=",
       "requires": {
         "object-assign": "^4.1.1",
@@ -12731,7 +12731,7 @@
     },
     "wcwidth": {
       "version": "1.0.1",
-      "resolved": "https://registry.npm.taobao.org/wcwidth/download/wcwidth-1.0.1.tgz",
+      "resolved": "https://registry.nlark.com/wcwidth/download/wcwidth-1.0.1.tgz",
       "integrity": "sha1-8LDc+RW8X/FSivrbLA4XtTLaL+g=",
       "dev": true,
       "requires": {
@@ -12913,7 +12913,7 @@
     },
     "webpack-bundle-analyzer": {
       "version": "3.9.0",
-      "resolved": "https://registry.npm.taobao.org/webpack-bundle-analyzer/download/webpack-bundle-analyzer-3.9.0.tgz",
+      "resolved": "https://registry.npmmirror.com/webpack-bundle-analyzer/download/webpack-bundle-analyzer-3.9.0.tgz?cache=0&sync_timestamp=1634019921368&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2Fwebpack-bundle-analyzer%2Fdownload%2Fwebpack-bundle-analyzer-3.9.0.tgz",
       "integrity": "sha1-9vlNsQj7V05BWtMT3kGicH0z7zw=",
       "dev": true,
       "requires": {
@@ -12934,13 +12934,13 @@
       "dependencies": {
         "acorn": {
           "version": "7.4.1",
-          "resolved": "https://registry.npm.taobao.org/acorn/download/acorn-7.4.1.tgz",
+          "resolved": "https://registry.npmmirror.com/acorn/download/acorn-7.4.1.tgz?cache=0&sync_timestamp=1637225522161&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2Facorn%2Fdownload%2Facorn-7.4.1.tgz",
           "integrity": "sha1-/q7SVZc9LndVW4PbwIhRpsY1IPo=",
           "dev": true
         },
         "acorn-walk": {
           "version": "7.2.0",
-          "resolved": "https://registry.npm.taobao.org/acorn-walk/download/acorn-walk-7.2.0.tgz?cache=0&sync_timestamp=1597235855275&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Facorn-walk%2Fdownload%2Facorn-walk-7.2.0.tgz",
+          "resolved": "https://registry.nlark.com/acorn-walk/download/acorn-walk-7.2.0.tgz",
           "integrity": "sha1-DeiJpgEgOQmw++B7iTjcIdLpZ7w=",
           "dev": true
         },
@@ -12977,7 +12977,7 @@
     },
     "webpack-chain": {
       "version": "4.12.1",
-      "resolved": "https://registry.npm.taobao.org/webpack-chain/download/webpack-chain-4.12.1.tgz?cache=0&sync_timestamp=1595814928534&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fwebpack-chain%2Fdownload%2Fwebpack-chain-4.12.1.tgz",
+      "resolved": "https://registry.npm.taobao.org/webpack-chain/download/webpack-chain-4.12.1.tgz",
       "integrity": "sha1-bIQ5u7KrVQlS1g4eqTGRQZBsAqY=",
       "dev": true,
       "requires": {
@@ -13297,7 +13297,7 @@
     },
     "webpack-log": {
       "version": "2.0.0",
-      "resolved": "https://registry.npm.taobao.org/webpack-log/download/webpack-log-2.0.0.tgz?cache=0&sync_timestamp=1564684667159&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fwebpack-log%2Fdownload%2Fwebpack-log-2.0.0.tgz",
+      "resolved": "https://registry.npm.taobao.org/webpack-log/download/webpack-log-2.0.0.tgz?cache=0&sync_timestamp=1615477439589&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fwebpack-log%2Fdownload%2Fwebpack-log-2.0.0.tgz",
       "integrity": "sha1-W3ko4GN1k/EZ0y9iJ8HgrDHhtH8=",
       "dev": true,
       "requires": {
@@ -13307,7 +13307,7 @@
     },
     "webpack-merge": {
       "version": "4.2.2",
-      "resolved": "https://registry.npm.taobao.org/webpack-merge/download/webpack-merge-4.2.2.tgz?cache=0&sync_timestamp=1602063120051&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fwebpack-merge%2Fdownload%2Fwebpack-merge-4.2.2.tgz",
+      "resolved": "https://registry.nlark.com/webpack-merge/download/webpack-merge-4.2.2.tgz",
       "integrity": "sha1-onxS6ng9E5iv0gh/VH17nS9DY00=",
       "dev": true,
       "requires": {
@@ -13316,7 +13316,7 @@
     },
     "webpack-sources": {
       "version": "1.4.3",
-      "resolved": "https://registry.npm.taobao.org/webpack-sources/download/webpack-sources-1.4.3.tgz?cache=0&sync_timestamp=1601308261594&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fwebpack-sources%2Fdownload%2Fwebpack-sources-1.4.3.tgz",
+      "resolved": "https://registry.npmmirror.com/webpack-sources/download/webpack-sources-1.4.3.tgz?cache=0&sync_timestamp=1636982760786&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2Fwebpack-sources%2Fdownload%2Fwebpack-sources-1.4.3.tgz",
       "integrity": "sha1-7t2OwLko+/HL/plOItLYkPMwqTM=",
       "dev": true,
       "requires": {
@@ -13326,7 +13326,7 @@
       "dependencies": {
         "source-map": {
           "version": "0.6.1",
-          "resolved": "https://registry.npm.taobao.org/source-map/download/source-map-0.6.1.tgz",
+          "resolved": "https://registry.nlark.com/source-map/download/source-map-0.6.1.tgz",
           "integrity": "sha1-dHIq8y6WFOnCh6jQu95IteLxomM=",
           "dev": true
         }
@@ -13356,7 +13356,7 @@
     },
     "which": {
       "version": "1.3.1",
-      "resolved": "https://registry.npm.taobao.org/which/download/which-1.3.1.tgz?cache=0&sync_timestamp=1574116720213&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fwhich%2Fdownload%2Fwhich-1.3.1.tgz",
+      "resolved": "https://registry.nlark.com/which/download/which-1.3.1.tgz",
       "integrity": "sha1-pFBD1U9YBTFtqNYvn1CRjT2nCwo=",
       "requires": {
         "isexe": "^2.0.0"
@@ -13390,7 +13390,7 @@
     },
     "worker-farm": {
       "version": "1.7.0",
-      "resolved": "https://registry.npm.taobao.org/worker-farm/download/worker-farm-1.7.0.tgz",
+      "resolved": "https://registry.nlark.com/worker-farm/download/worker-farm-1.7.0.tgz",
       "integrity": "sha1-JqlMU5G7ypJhUgAvabhKS/dy5ag=",
       "dev": true,
       "requires": {
@@ -13447,7 +13447,7 @@
     },
     "wrappy": {
       "version": "1.0.2",
-      "resolved": "https://registry.npm.taobao.org/wrappy/download/wrappy-1.0.2.tgz",
+      "resolved": "https://registry.nlark.com/wrappy/download/wrappy-1.0.2.tgz?cache=0&sync_timestamp=1619133505879&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fwrappy%2Fdownload%2Fwrappy-1.0.2.tgz",
       "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8="
     },
     "ws": {
@@ -13470,7 +13470,7 @@
     },
     "xtend": {
       "version": "4.0.2",
-      "resolved": "https://registry.npm.taobao.org/xtend/download/xtend-4.0.2.tgz",
+      "resolved": "https://registry.nlark.com/xtend/download/xtend-4.0.2.tgz",
       "integrity": "sha1-u3J3n1+kZRhrH0OPZ0+jR/2121Q=",
       "dev": true
     },

+ 1 - 0
operationSupport/src/components/common/organTree.vue

@@ -49,6 +49,7 @@ export default {
         .then(({ status, data, msg }) => {
           if (status === 0 && data) {
             this.dimension(data);
+            debugger
             this.organList = data;
             this.$nextTick().then(() => {
               const firstNode = document.querySelector('.el-tree-node');

+ 7 - 1
operationSupport/src/utils/newValidate.js

@@ -84,7 +84,7 @@ export default {
             message: '该项不能为空.',
             required: true,
             trigger: 'blur',
-            validator() { }
+            validator() {}
         };
     },
     // 为空校验
@@ -287,8 +287,12 @@ export default {
      * @author: chenlong (陈龙)
      */
     selectRequired(name = '名称', msg) {
+        debugger;
         return { required: true, message: msg || `请选择${name}`, trigger: 'change' };
     },
+    selectRequireds(name = '名称', msg) {
+        return { required: true, message: msg || `请${name}`, trigger: 'change' };
+    },
     /**
      * @description: 正则表达式
      * @param {RegExp || String}: reg 正则表达式 | regExps里面的正则类型
@@ -327,6 +331,8 @@ export default {
     patternPhone(required = true) {
         let pattern = /^((13[0-9])|(14[5,7])|(15[0-3,5-9])|(17[0,3,5-8])|(18[0-9])|166|198|199|147|191)\d{8}$/,
             message = '您输入的手机号有误';
+        debugger;
+
         return { required, pattern, message, trigger: 'blur' };
     },
     // 手机号校验

+ 7 - 1
operationSupport/src/views/assetManagement/housingManagement/index.vue

@@ -271,7 +271,13 @@ export default {
     },
     deleteRow (row) {
       const { communityName, buildingName, unitName, roomNumber } = row;
-      let title = `您确定要删除“${communityName}${buildingName}${unitName}${roomNumber}”号房间`;
+      let title = ''
+      if (row.unitName == null) {
+        title = `您确定要删除“${communityName}${buildingName}${roomNumber}”号房间`;
+      } else {
+        title = `您确定要删除“${communityName}${buildingName}${unitName}${roomNumber}”号房间`;
+      }
+
       this.$msgBox(title)
         .then(() => {
           this.$http

+ 59 - 18
operationSupport/src/views/assetManagement/housingManagement/saveEdits.vue

@@ -17,6 +17,7 @@
               v-model="ruleForm.communityId"
               placeholder="请选择社区名称"
               class="width100"
+              @change="communityIdChange"
             >
               <el-option
                 v-for="(item, index) in communityList"
@@ -31,6 +32,7 @@
               v-model="ruleForm.unitName"
               placeholder="请选择单元"
               class="width100"
+              @change="unitNameChange"
             >
               <el-option
                 v-for="(item, index) in resunitList"
@@ -145,6 +147,7 @@
               v-model="ruleForm.buildingId"
               placeholder="请选择楼栋"
               class="width100"
+              @change="buildingIdChange"
             >
               <el-option
                 v-for="(item, index) in buildingList"
@@ -162,11 +165,12 @@
               v-model="ruleForm.floorNumber"
               placeholder="请选择楼层"
               class="width100"
+              @change="floorNumberChange"
             >
               <el-option
                 v-for="(items, indexs) in floorNumberList"
-                :label="items.floorNumber"
-                :value="items.floorNumber"
+                :label="items"
+                :value="items"
                 :key="indexs"
               ></el-option>
             </el-select>
@@ -345,6 +349,7 @@ export default {
         salesType: '', //租售类型
         remarks: '' //备注
       },
+      res: '',
       rules: {
         communityId: [this.$valid.selectRequired('社区')],
         roomNumber: [this.$valid.inputRequired('房屋号')],
@@ -368,12 +373,17 @@ export default {
   },
   watch: {
     'ruleForm.communityId' (newValue, oldValue) {
+      debugger
       if (newValue !== oldValue) {
         this.buildingNameList();
-        this.ruleForm.buildingId = '';
-        this.ruleForm.unitName = '';
-        this.ruleForm.floorNumber = '';
-        this.ruleForm.roomNumber = '';
+        debugger
+        if (this.ruleForm.floorNumber == '') {
+          this.ruleForm.buildingId = '';
+          this.ruleForm.unitName = '';
+          this.ruleForm.floorNumber = '';
+          this.ruleForm.roomNumber = '';
+        }
+
       }
     },
     'ruleForm.buildingId' (newValue, oldValue) {
@@ -382,16 +392,24 @@ export default {
 
         this.unitNameList();
         this.unitChoice(newValue);
-        this.ruleForm.unitName = '';
-        this.ruleForm.floorNumber = '';
-        this.ruleForm.roomNumber = '';
+        debugger
+        if (this.ruleForm.floorNumber == '') {
+
+          this.ruleForm.unitName = '';
+          this.ruleForm.floorNumber = '';
+          this.ruleForm.roomNumber = '';
+        }
+
       }
     },
     'ruleForm.unitName' (newValue, oldValue) {
       if (newValue !== oldValue) {
         this.unitChoice(newValue);
-        this.ruleForm.floorNumber = '';
-        this.ruleForm.roomNumber = '';
+        if (this.ruleForm.roomNumber == '') {
+          this.ruleForm.floorNumber = '';
+          this.ruleForm.roomNumber = '';
+        }
+
       }
     },
     unitList (val) {
@@ -401,7 +419,24 @@ export default {
     }
   },
   methods: {
-
+    communityIdChange () {
+      this.ruleForm.buildingId = '';
+      this.ruleForm.unitName = '';
+      this.ruleForm.floorNumber = '';
+      this.ruleForm.roomNumber = '';
+    },
+    buildingIdChange () {
+      this.ruleForm.unitName = '';
+      this.ruleForm.floorNumber = '';
+      this.ruleForm.roomNumber = '';
+    },
+    unitNameChange () {
+      this.ruleForm.floorNumber = '';
+      this.ruleForm.roomNumber = '';
+    },
+    floorNumberChange () {
+      this.ruleForm.roomNumber = '';
+    },
 
     submitForm (formName) {
       this.$refs[formName].validate((valid) => {
@@ -436,6 +471,7 @@ export default {
     //查询楼栋下拉列表
     buildingNameList () {
       this.buildingList = [];
+
       this.$http
         .post('/czc-community/assets/building/list/building', { communityId: this.ruleForm.communityId })
         .then(({ data, status, msg }) => {
@@ -445,6 +481,7 @@ export default {
         });
     },
     unitNameList () {
+
       this.unitList = [];
       this.resunitList = [];
       this.$http.get('/czc-community/assets/building/house/find', { id: this.ruleForm.buildingId }).then((res) => {
@@ -466,21 +503,25 @@ export default {
     unitChoice (e) {
 
       this.floorNumberList = [];
-      this.unitList.map((item) => {
-        // if (item.unitName == e) {
-
-        this.floorNumberList = item.unitFloorList;
 
-        // }
-        console.log(' this.unitList11', this.floorNumberList);
+      this.unitList.map((item) => {
+        this.floorNumberList.push(item.unitFloorList[0].floorNumber);
       });
+
+      this.floorNumberList = Array.from(new Set(this.floorNumberList))
     },
 
     getDetails (id) {
       this.$http.get('/czc-community/assets/house/find/' + id, {}).then((res) => {
         if (res.status == 0) {
+
           this.ruleForm = res.data;
+
+
+          // this.ruleForm.buildingId = res.data.buildingId;
+          console.log('this.ruleForm', this.ruleForm);
           if (!!this.ruleForm.housingType) {
+
             var housingTypes = this.ruleForm.housingType.split(':');
             this.housingType.roomNumber = housingTypes[0];
             this.housingType.officeNumber = housingTypes[1];

+ 7 - 1
operationSupport/src/views/assetManagement/shopManagement/index.vue

@@ -333,7 +333,13 @@ export default {
     },
     deleteRow (row) {
       const { communityName, buildingName, unitName, roomNumber } = row;
-      let title = `您确定要删除“${communityName}${buildingName}${unitName}${roomNumber}”号房间`;
+      let title = ``;
+      if (row.unitName == null) {
+        title = `您确定要删除“${communityName}${buildingName}${roomNumber}”号房间`;
+      } else {
+        title = `您确定要删除“${communityName}${buildingName}${unitName}${roomNumber}”号房间`;
+      }
+
       this.$msgBox(title)
         .then(() => {
           this.$http

+ 49 - 16
operationSupport/src/views/assetManagement/shopManagement/saveEdits.vue

@@ -15,6 +15,7 @@
             <el-select
               v-model="ruleForm.communityId"
               placeholder="请选择社区名称"
+              @change="communityIdChange"
             >
               <el-option
                 v-for="(item, index) in communityList"
@@ -28,9 +29,10 @@
             <el-select
               v-model="ruleForm.unitName"
               placeholder="请选择单元"
+              @change="unitNameChange"
             >
               <el-option
-                v-for="(item, index) in unitList"
+                v-for="(item, index) in resunitList"
                 :label="item.unitName"
                 :value="item.unitName"
                 :key="index"
@@ -90,6 +92,7 @@
             <el-select
               v-model="ruleForm.buildingId"
               placeholder="请选择楼栋"
+              @change="buildingIdChange"
             >
               <el-option
                 v-for="(item, index) in buildingList"
@@ -106,12 +109,13 @@
             <el-select
               v-model="ruleForm.floorNumber"
               placeholder="请选择楼层"
+              @change="floorNumberChange"
             >
               <el-option
-                v-for="(item, index) in floorNumberList"
-                :label="item.floorNumber"
-                :value="item.floorNumber"
-                :key="index"
+                v-for="(items, indexs) in floorNumberList"
+                :label="items"
+                :value="items"
+                :key="indexs"
               ></el-option>
             </el-select>
           </el-form-item>
@@ -224,13 +228,16 @@
   </div>
 </template>
 <script>
-import { residenceTypeArr } from '../housPublic';
+// import { Arr } from 'tern';
+// import { residenceTypeArr } from '../housPublic';
 export default {
   props: ['params'],
   data () {
     return {
       buildingList: [], //楼栋下拉选择列表
       unitList: [], //单元下拉选择列表
+      resunitList: [],
+      floorNumberList: [],
       addEditState: '',
       ruleForm: {
         communityId: '', //社区id
@@ -273,22 +280,20 @@ export default {
     'ruleForm.communityId' (newValue, oldValue) {
       if (newValue !== oldValue) {
         this.buildingNameList();
-        // this.ruleForm.buildingId = '';
-        // this.ruleForm.unitName = '';
-        // this.ruleForm.floorNumber = '';
+
       }
     },
     'ruleForm.buildingId' (newValue, oldValue) {
       if (newValue !== oldValue) {
         this.unitNameList();
-        // this.ruleForm.unitName = '';
-        // this.ruleForm.floorNumber = '';
+        this.unitChoice(newValue);
+
       }
     },
     'ruleForm.unitName' (newValue, oldValue) {
       if (newValue !== oldValue) {
         this.unitChoice(newValue);
-        // this.ruleForm.floorNumber = '';
+
       }
     },
     unitList (val) {
@@ -298,6 +303,24 @@ export default {
     }
   },
   methods: {
+    communityIdChange () {
+      this.ruleForm.buildingId = '';
+      this.ruleForm.unitName = '';
+      this.ruleForm.floorNumber = '';
+      this.ruleForm.roomNumber = '';
+    },
+    buildingIdChange () {
+      this.ruleForm.unitName = '';
+      this.ruleForm.floorNumber = '';
+      this.ruleForm.roomNumber = '';
+    },
+    unitNameChange () {
+      this.ruleForm.floorNumber = '';
+      this.ruleForm.roomNumber = '';
+    },
+    floorNumberChange () {
+      this.ruleForm.roomNumber = '';
+    },
     submit () {
       this.$refs['ruleForm'].validate((valid) => {
         if (valid) {
@@ -340,9 +363,17 @@ export default {
     },
     unitNameList () {
       this.unitList = [];
+      this.resunitList = [];
       this.$http.get('/czc-community/assets/building/house/find', { id: this.ruleForm.buildingId }).then((res) => {
+
         if (res.status == 0) {
           if (res.data.buildingUnitList.length != 0) {
+
+            for (let i = 0; i < res.data.buildingUnitList.length; i++) {
+              if (res.data.buildingUnitList[i].unitName != null && res.data.buildingUnitList[i].unitName != '') {
+                this.resunitList.push(res.data.buildingUnitList[i])
+              }
+            }
             this.unitList = res.data.buildingUnitList;
           }
         }
@@ -350,12 +381,14 @@ export default {
     },
 
     unitChoice (e) {
+
       this.floorNumberList = [];
       this.unitList.map((item) => {
-        if (item.unitName == e) {
-          this.floorNumberList = item.unitFloorList;
-        }
-      });
+        this.floorNumberList.push(item.unitFloorList[0].floorNumber)
+
+      })
+      this.floorNumberList = Array.from(new Set(this.floorNumberList))
+
     },
 
     getDetails (id) {

+ 872 - 0
operationSupport/src/views/buildingManagement/pageJump/01.vue

@@ -0,0 +1,872 @@
+<template>
+  <div class="device-info_install addinstall">
+    <div class="device_content">
+      <div class="left_content">
+        <div class="form_head">
+          <p>基本信息</p>
+        </div>
+        <div class="form_content">
+          <el-scrollbar
+            class="app-list-scroll"
+            style="height: 100%"
+          >
+            <div class="form_content_disform">
+              <zz-form
+                :cols="detailCols"
+                :data="formdata"
+                :rules="formrules"
+                labelWidth="98"
+                ref="detailform"
+              >
+                <el-select
+                  v-model="formdata.communityId"
+                  placeholder="请选择社区名称"
+                  slot="communityId"
+                  class="width100"
+                >
+                  <el-option
+                    v-for="(item, index) in communityArray"
+                    :label="item.communityName"
+                    :value="item.id"
+                    :key="index"
+                  ></el-option>
+                </el-select>
+                <el-select
+                  v-model="formdata.buildingType"
+                  placeholder="请选择楼栋类型"
+                  slot="buildingTypeList"
+                  class="width100"
+                >
+                  <el-option
+                    label="高层"
+                    :value="1"
+                  ></el-option>
+                  <el-option
+                    label="低层"
+                    :value="2"
+                  ></el-option>
+                </el-select>
+
+                <el-select
+                  v-model="formdata.buildingPurpose"
+                  placeholder="请选择楼栋用途"
+                  slot="buildingPurpose"
+                  class="width100"
+                >
+                  <el-option
+                    v-for="(item, index) in buildingPurposeType"
+                    :label="item.label"
+                    :value="item.id"
+                    :key="index"
+                  ></el-option>
+                </el-select>
+
+                <el-select
+                  v-model="formdata.buildingStructure"
+                  placeholder="请选择楼栋用途"
+                  slot="buildingStructure"
+                  class="width100"
+                >
+                  <el-option
+                    v-for="(item, index) in buildingStructureType"
+                    :label="item.label"
+                    :value="item.id"
+                    :key="index"
+                  ></el-option>
+                </el-select>
+                <el-input
+                  type="textarea"
+                  :rows="4"
+                  slot="remarks"
+                  show-word-limit
+                  v-model="formdata.remarks"
+                  maxlength="300"
+                >
+                </el-input>
+              </zz-form>
+            </div>
+          </el-scrollbar>
+        </div>
+      </div>
+      <div class="right_content">
+        <div class="right_content_head">
+          <span class="head_text">创建房屋</span>
+          <span
+            class="close"
+            @click="close"
+          >
+            <i class="el-icon-close"></i>
+          </span>
+        </div>
+        <div class="right_content_info">
+          <div
+            class="head_fr"
+            v-if="isAdd"
+          >
+            <div class="head_content head_add">
+              <div class="checkbox_style">
+                <el-checkbox
+                  disabled
+                  @change="checkedUnit"
+                  v-model="initialUnitList.checkedUnit"
+                ></el-checkbox>
+              </div>
+              <div class="form_content">
+                <zz-form
+                  :cols="unitCols"
+                  labelposition="left"
+                  :rules="unitrules"
+                  :data="formdata"
+                  :disabled="!isAdd"
+                  labelWidth="50"
+                  ref="unitform"
+                >
+                  <template
+                    slot="unitRule"
+                    prop="unitRule"
+                  >
+                    <div class="row_class">
+                      <el-radio-group
+                        :disabled="!initialUnitList.checkedUnit"
+                        v-model="initialUnitList.unit.type"
+                        @change="radioChange('unit', $event)"
+                      >
+                        <el-radio label="Number">按数字1-20生成</el-radio>
+                        <el-radio label="Letter">按字母A-Z生成</el-radio>
+                      </el-radio-group>
+                      <el-select
+                        :disabled="!initialUnitList.checkedUnit"
+                        class="w120 wfirst"
+                        v-model="initialUnitList.unit.start"
+                        prop="floorstart"
+                        placeholder="起始单元"
+                      >
+                        <el-option
+                          v-for="item in unitOptions"
+                          :key="item.value"
+                          :label="item.label"
+                          :value="item.value"
+                        >
+                        </el-option>
+                      </el-select>
+                      <el-select
+                        class="w120 wsecond"
+                        :disabled="!initialUnitList.checkedUnit"
+                        v-model="initialUnitList.unit.end"
+                        placeholder="单元数"
+                      >
+                        <el-option
+                          v-for="item in unitOptions"
+                          :key="item.value"
+                          :label="item.label"
+                          :value="item.value"
+                        >
+                        </el-option>
+                      </el-select>
+                    </div>
+                    <div class="row_class addfloo">
+                      <div class="last_level">
+                        <label class="label_text">每栋层数</label>
+                        <el-select
+                          class="w120"
+                          v-model="formdata.floorsNumber"
+                          placeholder="请选择楼栋层数"
+                        >
+                          <el-option
+                            v-for="item in floorlevelOptions"
+                            :key="item.value"
+                            :label="item.label"
+                            :value="item.value"
+                          >
+                          </el-option>
+                        </el-select>
+                      </div>
+                      <div class="last_level">
+                        <label class="label_text">每层户数</label>
+                        <el-select
+                          class="w120"
+                          v-model="formdata.householdsPerFloor"
+                          placeholder="请选择每层户数"
+                        >
+                          <el-option
+                            v-for="item in unithouseOptions"
+                            :key="item.value"
+                            :label="item.label"
+                            :value="item.value"
+                          >
+                          </el-option>
+                        </el-select>
+                      </div>
+                      <div
+                        class="last_level"
+                        v-if="isAdd"
+                      >
+                        <label class="label_text">房屋类型</label>
+                        <el-select
+                          class="w120"
+                          v-model="formdata.houseType"
+                          @change="toggleUnithOptions"
+                          placeholder="请选择每层户数"
+                        >
+                          <el-option
+                            label="住宅"
+                            :value="1"
+                          ></el-option>
+                          <el-option
+                            label="商业"
+                            :value="2"
+                          ></el-option>
+                        </el-select>
+                      </div>
+                    </div>
+                  </template>
+                </zz-form>
+              </div>
+              <div class="btn_unit">
+                <el-button
+                  type="primary"
+                  class="el-mgRight-md"
+                  :disabled="!isAdd"
+                  @click="createDoor"
+                >{{ doorData.length ? '重新' : '' }}生成房屋</el-button>
+                <el-button
+                  @click="clearDoor"
+                  :disabled="!isAdd"
+                >清空房屋</el-button>
+              </div>
+            </div>
+            <div class="title_class">
+              <span class="title_txt">楼栋信息</span>
+              <el-tooltip
+                v-if="doorData && doorData.length > 0"
+                class="item text-wrapper"
+                effect="light"
+                placement="right"
+              >
+                <div slot="content">
+                  双击可对楼栋、单元名称进行自定义修改<br />单击选中楼栋、单元、单元户信息根据选中的楼栋、单元进行展示
+                </div>
+                <img
+                  src="@/assets/img/menuicon/icon_tishi_zhengchang.png"
+                  alt=""
+                />
+              </el-tooltip>
+            </div>
+          </div>
+          <div class="floorinfo">
+            <div class="door-wrap door_install">
+              <div
+                class="top_content"
+                :class="!isAdd ? 'is-disabled' : ''"
+              >
+                <el-scrollbar
+                  class="app-list-scroll"
+                  style="height: 100%"
+                >
+                  <div
+                    class="floor_unit"
+                    v-if="doorData && doorData.length > 0"
+                  >
+                    <div class="box clearfix">
+                      <div class="label_left">楼栋</div>
+                      <div class="el-fl-left tags">
+                        <el-tag
+                          :disable-transitions="false"
+                          data-code="build"
+                          class="active"
+                        >
+                          {{ formdata.buildingName }}
+                        </el-tag>
+                      </div>
+                    </div>
+                    <div
+                      class="box clearfix"
+                      v-if="
+                                                initialUnitList.enableUnit &&
+                                                doorData[buildingIndex] &&
+                                                doorData[buildingIndex].unitFloorList &&
+                                                doorData[buildingIndex].unitFloorList.length
+                                            "
+                    >
+                      <div class="label_left">单元</div>
+
+                      <div class="el-fl-left tags">
+                        <el-tag
+                          :key="index2"
+                          v-for="(unit, index2) in doorData"
+                          closable
+                          :disable-transitions="false"
+                          data-code="unit"
+                          @close="handleClose('unit', index2, doorData)"
+                          @click="unitIndex = index2"
+                          :class="{ active: unitIndex === index2 }"
+                          style="position: relative ; top: 14px;"
+                        >
+                          <span @dblclick="showInput">{{ unit.unitName }}</span>
+                          <el-input
+                            style="display: none"
+                            v-model="unit.unitName"
+                            @keyup.enter.native="inputConfirm($event, doorData)"
+                            @blur="inputConfirm($event, doorData)"
+                            data-code="unit"
+                            maxlength="20"
+                          ></el-input>
+                        </el-tag>
+                        <el-button
+                          class="el-icon-plus button-new-tag"
+                          size="small"
+                          @click="showInput"
+                          style="position: relative; top: -17px;"
+                        ></el-button>
+                        <el-input
+                          class="input-new-tag"
+                          style="display: none"
+                          size="small"
+                          placeholder="请输入单元号"
+                          v-model="inputValue.unit"
+                          @keyup.enter.native="handleInputConfirm($event, doorData)"
+                          @blur="handleInputConfirm($event, doorData)"
+                          data-code="unit"
+                          maxlength="20"
+                        >
+                        </el-input>
+                      </div>
+                    </div>
+                  </div>
+                  <div
+                    v-else
+                    class="empty_floor"
+                  >
+                    <p>暂无相关信息</p>
+                  </div>
+                  <div class="title_class border_hr">
+                    <span class="title_txt">单元户信息</span>
+                    {{doorData[buildingIndex]}}
+                    <el-tooltip
+                      v-if="
+                                                doorData[buildingIndex] &&
+                                                doorData[buildingIndex].unitFloorList &&
+                                                doorData[buildingIndex].unitFloorList.length
+                                            "
+                      class="item"
+                      effect="light"
+                      placement="right"
+                      :content="unitMsg"
+                    >
+                      <img
+                        src="@/assets/img/menuicon/icon_tishi_zhengchang.png"
+                        alt=""
+                      />
+                    </el-tooltip>
+                  </div>
+
+                  <div
+                    class="unit"
+                    v-if="
+                                           doorData[buildingIndex] &&
+                                            doorData[buildingIndex].unitFloorList &&
+                                            doorData[buildingIndex].unitFloorList.length
+                                        "
+                  >
+                    <div
+                      class="floor"
+                      v-if="
+                                               doorData[buildingIndex].unitFloorList[unitIndex] &&
+                                                doorData[buildingIndex].unitFloorList[unitIndex].roomList &&
+                                                doorData[buildingIndex].unitFloorList[unitIndex].roomList.length 
+                                            "
+                    >
+                      <!-- <h2>单元户<span>鼠标双击修改名称; 修改楼层名称后,请自行修改单元户的名称</span></h2> -->
+
+                      <div
+                        class="box clearfix"
+                        :key="index3"
+                        v-for="(floor, index3) in doorData[buildingIndex].unitFloorList"
+                      >
+                        <!-- <span class="el-fl-left label">楼层:</span> -->
+                        <div class="unit_left">
+                          <el-tag
+                            closable
+                            :disable-transitions="false"
+                            data-code="floor"
+                            @close="handleClose('floor', index3, doorData[buildingIndex].unitFloorList)"
+                          >
+                            <span @dblclick="showInput">{{ floor.floorNumber }}</span>
+                            <el-input
+                              style="display: none"
+                              v-model="floor.floorNumber"
+                              @keyup.enter.native="
+                                                                inputConfirm($event, doorData[buildingIndex].unitFloorList)
+                                                            "
+                              @blur="inputConfirm($event, doorData[buildingIndex].unitFloorList)"
+                              data-code="floor"
+                              maxlength="20"
+                            ></el-input>
+                          </el-tag>
+                          <span class="unit_text">层</span>
+                        </div>
+                        <span class="el-fl-left tags">
+                          <div
+                            class="door"
+                            v-if="floor"
+                          >
+                            <el-tag
+                              :key="index4"
+                              v-for="(door, index4) in floor.roomList"
+                              closable
+                              :disable-transitions="false"
+                              data-code="door"
+                              @close="handleClose('door', index4, floor.roomList)"
+                            >
+                              <span @dblclick="showInput">{{ door.roomNumber }}</span>
+                              <el-input
+                                style="display: none"
+                                v-model="door.roomNumber"
+                                @keyup.enter.native="inputConfirm($event, floor.roomList)"
+                                @blur="inputConfirm($event, floor.roomList)"
+                                data-code="door"
+                                maxlength="20"
+                              ></el-input>
+                            </el-tag>
+                            <el-button
+                              class="el-icon-plus button-new-tag"
+                              size="small"
+                              @click="showInput"
+                            ></el-button>
+                            <el-input
+                              class="input-new-tag"
+                              style="display: none"
+                              size="small"
+                              placeholder="请输入户号"
+                              v-model="inputValue.door"
+                              @keyup.enter.native="handleInputConfirm($event, floor.roomList)"
+                              @blur="handleInputConfirm($event, floor.roomList)"
+                              data-code="door"
+                              maxlength="20"
+                            >
+                            </el-input>
+                          </div>
+                        </span>
+                      </div>
+                      <div class="add-floor">
+                        <el-button
+                          class="el-icon-plus button-new-tag"
+                          size="small"
+                          @click="showInput"
+                        ></el-button>
+                        <el-input
+                          class="input-new-tag"
+                          style="display: none"
+                          size="small"
+                          placeholder="请输入楼层号"
+                          v-model="inputValue.floor"
+                          @keyup.enter.native="handleInputConfirm($event, doorData[buildingIndex].unitFloorList)"
+                          @blur="handleInputConfirm($event, doorData[buildingIndex].unitFloorList)"
+                          data-code="floor"
+                          maxlength="20"
+                        >
+                        </el-input>
+                      </div>
+                    </div>
+                  </div>
+                  <div
+                    v-else
+                    class="unit_empty"
+                  >
+                    <div class="center_text">
+                      <img
+                        src="@assets/img/menuicon/img_wuxiaoxi@2x.png"
+                        alt=""
+                      />
+                      <span>暂无相关信息</span>
+                    </div>
+                  </div>
+                </el-scrollbar>
+              </div>
+              <div class="btns footer_btn">
+                <el-button @click="resetForm">重置</el-button>
+                <el-button @click="close">取消</el-button>
+                <el-button
+                  type="primary"
+                  @click="submit"
+                >保存</el-button>
+              </div>
+            </div>
+          </div>
+        </div>
+      </div>
+    </div>
+  </div>
+</template>
+
+<script>
+import initList from '../mixins/initList';
+import { initDoor, calcDoor } from './basedata';
+const createContinueData = (type, num) => {
+  //type--类型,num生成的个数
+  let objArr = [];
+  if (type == 'Number') {
+    [...new Array(Number(num)).keys()].map((idx) => {
+      let obj = { label: Number(idx) + 1, value: Number(idx) + 1 };
+      objArr.push(obj);
+    });
+  } else {
+    for (let i = 0; i < num; i++) {
+      let letter = String.fromCharCode(65 + i);
+      let obj = { label: letter, value: letter };
+      objArr.push(obj);
+    }
+  }
+  return objArr;
+};
+const txtI18n = {
+  build: '楼栋',
+  unit: '单元',
+  floor: '楼层',
+  door: '单元户'
+};
+export default {
+  mixins: [initList],
+  name: 'editBuilding',
+  data () {
+    return {
+      unitCols: [[{ label: '单元', slot: 'unitRule', prop: 'unitRule' }]],
+      detailCols: [
+        [
+          {
+            label: '所属社区',
+            prop: 'communityId',
+            slot: 'communityId'
+          },
+          {
+            label: '楼栋名称',
+            prop: 'buildingName',
+            input: 'true'
+          },
+          {
+            label: '楼栋编号',
+            prop: 'buildingNumber',
+            input: 'true'
+          },
+          {
+            label: '楼栋类型',
+            prop: 'buildingTypeList',
+            slot: 'buildingTypeList'
+          },
+          {
+            label: '楼栋用途',
+            prop: 'buildingPurpose',
+            slot: 'buildingPurpose'
+          },
+          {
+            label: '建筑结构',
+            prop: 'buildingStructure',
+            slot: 'buildingStructure'
+          },
+          {
+            label: '建成日期',
+            prop: 'builtDate',
+            date: 'true',
+            widt: true
+          },
+          {
+            label: '验收日期',
+            prop: 'acceptanceDate',
+            date: 'true',
+            widt: true
+          },
+          {
+            label: '建筑面积',
+            prop: 'buildingArea',
+            input: true
+          },
+          {
+            label: '使用面积',
+            prop: 'useArea',
+            input: 'true'
+          },
+          {
+            label: '备注信息',
+            prop: 'remarks',
+            slot: 'remarks'
+          }
+        ]
+      ],
+      formdata: {
+        communityId: '',
+        buildingName: '',
+        buildingNumber: '', //楼栋编号
+        buildingType: '',
+        buildingPurpose: '',
+        buildingStructure: '',
+        builtDate: '',
+        acceptanceDate: '',
+        buildingArea: '',
+        useArea: '',
+        remarks: '',
+        houseType: 1,
+        floorsNumber: '1', //每栋层数
+        unitNumber: 1, //单元数
+        householdsPerFloor: '1' //每层户数
+      },
+      initialUnitList: {
+        checkedUnit: true,
+        enableUnit: 1, //勾选了复选框
+        unit: {
+          type: 'Number', //  Number letter
+          start: '1', // 1 A单元的起始单元
+          end: '1'
+        }
+      },
+      formrules: {
+        communityId: this.$valid.selectRequired(['社区']),
+        buildingName: [this.$valid.inputRequired('楼栋名称')]
+      },
+      buildingPurposeType: [
+        {
+          label: '住宅楼',
+          id: 1
+        },
+        {
+          label: '商场',
+          id: 2
+        },
+        {
+          label: '写字楼',
+          id: 3
+        },
+        {
+          label: '公寓',
+          id: 4
+        },
+        {
+          label: '别墅',
+          id: 5
+        },
+        {
+          label: '自建楼',
+          id: 6
+        },
+        {
+          label: '其他',
+          id: 7
+        }
+      ],
+      buildingStructureType: [
+        {
+          label: '钢结构',
+          id: 1
+        },
+        {
+          label: '钢筋混凝土结构',
+          id: 2
+        },
+        {
+          label: '筋混凝土结构',
+          id: 3
+        },
+        {
+          label: '混合结构',
+          id: 4
+        },
+        {
+          label: '砖木结构',
+          id: 5
+        },
+        {
+          label: '其他结构',
+          id: 6
+        }
+      ]
+    };
+  },
+  props: {
+    params: {
+      type: Object
+    },
+    isAdd: {
+      type: Boolean,
+      default: true
+    }
+  },
+  methods: {
+    radioChange (type, val) {
+      let length = val == 'Number' ? '20' : '26';
+      if (val == 'Letter') {
+        this.unitOptions = createContinueData(val, length);
+        this.initialUnitList.unit.type = 'Letter';
+        this.initialUnitList.unit.start = 'A';
+        this.initialUnitList.unit.end = 'A';
+      } else {
+        this.initialUnitList.unit = this.copyrules.unit;
+        this.unitOptions = createContinueData(val, length);
+      }
+    },
+
+    resetForm () {
+      this.formdata = {};
+      this.formdata = this.copyformdata;
+      // this.doorData = [];
+      this.$refs.detailform.validateField('communityId');
+    },
+
+    checkedUnit (val) {
+      if (val) {
+        this.initialUnitList.enableUnit = 1;
+      } else {
+        this.formdata.unitNumber = 1;
+        this.initialUnitList.enableUnit = 0;
+      }
+    },
+    createDoor () {
+      if (this.formdata.buildingName == '') {
+        this.$message.error('先输入楼栋名称');
+        return;
+      }
+      new Promise((resolve) => {
+        this.$refs.unitform.validate(resolve);
+      }).then((v) => {
+        if (this.initialUnitList.checkedUnit) {
+          this.initialUnitList.enableUnit = 1;
+        } else {
+          this.formdata.unitNumber = 1;
+          this.initialUnitList.enableUnit = 0;
+        }
+        let isNumberUnitFlag = this.initialUnitList.unit.type == 'Number' ? true : false;
+        let checkUnit = this.initialUnitList.unit.start <= this.initialUnitList.unit.end ? true : false;
+        if (this.initialUnitList.checkedUnit) {
+          if (checkUnit && isNumberUnitFlag) {
+            this.formdata.unitNumber = this.initialUnitList.unit.end - this.initialUnitList.unit.start + 1;
+          } else if (!isNumberUnitFlag && checkUnit) {
+            this.formdata.unitNumber =
+              this.initialUnitList.unit.end.charCodeAt() - this.initialUnitList.unit.start.charCodeAt() + 1;
+          } else {
+            this.formdata.unitNumber = 1;
+            this.$message.error('单元起始和结束设置出错');
+            return;
+          }
+        }
+
+        this.doorData = initDoor(this.formdata, this.initialUnitList).generateUnit;
+      });
+    },
+    handleInputConfirm (e, arr) {
+      const { value, dataset } = e.target;
+      if (value && dataset) {
+        const { code } = dataset;
+        const querySame = () => _.isEmpty(_.filter(arr, (v) => v.name == value));
+        const generate = {
+          unit: initDoor(this.formdata, this.initialUnitList).generateUnit,
+          floor: initDoor(this.formdata, this.initialUnitList).generateFloor,
+          door: initDoor(this.formdata, this.initialUnitList).generateDoor(value)
+        };
+        if (querySame()) {
+          if (code == 'unit') {
+            arr.push({
+              unitName: value,
+              unitFloorList: code != 'door' ? generate['floor'] : undefined
+            });
+          } else if (code == 'door') {
+            arr.push({
+              roomNumber: value
+            });
+          } else if (code == 'floor') {
+            arr.push({
+              floorNumber: value,
+              roomList: code != 'door' ? generate['door'] : undefined
+            });
+          }
+          this.inputValue[code] = '';
+        } else {
+          this.$message.error(`${txtI18n[code]}名称重复,请重新添加`);
+        }
+      }
+      e.target.parentElement.style.display = 'none';
+      e.target.parentElement.previousElementSibling.style.display = 'inline-block';
+      e.target.value = '';
+    },
+
+    submit () {
+      new Promise((resolve) => {
+        this.$refs.detailform.validate(resolve);
+      }).then((v) => {
+
+        const { buildNumber, unitNumber, floorNumber, doorNumber } = calcDoor(this.doorData, this.initialUnitList.checkedUnit);
+        const txt = `请检查信息是否填写完整(包含重复名称,名称为空现象)<br>确认提交单元户信息:<br>总楼栋数:${buildNumber}${this.initialUnitList.enableUnit ? `<br>总单元数:${unitNumber}` : ''
+          }<br>总楼层数:${floorNumber}<br>总单元户数:${doorNumber}`;
+
+        this.__confirm(txt, '提交')
+          .then((v) => {
+            if (!this.initialUnitList.checkedUnit) {
+              this.doorData[0].unitName = '';
+              this.formdata.unitNumber = 0;
+            }
+            this.formdata.buildingUnitList = this.doorData;
+
+            let url = '/czc-community/assets/building/add';
+            if (!!this.params.id) {
+              url = '/czc-community/assets/building/update';
+            }
+            this.$http
+              .post(url, this.formdata)
+              .then(({ msg, status }) => {
+                this.$message({
+                  type: status === 0 ? 'success' : 'error',
+                  message: msg
+                });
+                if (status === 0) {
+                  this.close();
+                }
+              })
+              .catch(() => { });
+          })
+          .catch(() => { });
+      });
+    },
+
+    getDetailData (id) {
+      this.$http.get('/czc-community/assets/building/house/find', { id: id }).then(({ status, data, msg }) => {
+
+        if (0 === status) {
+          if (data.buildingUnitList.length !== 0) {
+            this.formdata = data;
+            debugger
+            this.formdata.householdsPerFloor = data.buildingUnitList[0].unitFloorList[0].roomList.length;
+            this.initialUnitList = {
+              checkedUnit: data.unitNumber !== 0 ? true : false,
+              enableUnit: data.unitNumber !== 0 ? 1 : 0,
+              unit: {
+                type: 'Number', //  Number letter
+                start: data.buildingUnitList[0]['unitName'], // 1 A单元的起始单元
+                end: data.buildingUnitList[data.buildingUnitList.length - 1]['unitName']
+              }
+            };
+            debugger
+            let resDate = [];
+            data.buildingUnitList.map((item, index) => {
+              resDate.push(item.unitFloorList)
+            })
+            // this.doorData = data.buildingUnitList;
+            debugger
+            this.doorData = resDate;
+          } else {
+            this.formdata = data;
+          }
+        }
+      });
+    }
+  },
+  mounted () { },
+  created () {
+
+    this.copyformdata = this.deepClone(this.formdata);
+    if (!!this.params.id) {
+      this.getDetailData(this.params.id);
+    }
+    this.copyrules = JSON.parse(JSON.stringify(this.initialUnitList));
+  }
+};
+</script>
+<style lang="scss" >
+@import './popup.scss';
+</style>

+ 51 - 17
operationSupport/src/views/buildingManagement/pageJump/addoredit.vue

@@ -267,13 +267,20 @@
                     class="floor_unit"
                     v-if="doorData && doorData.length > 0"
                   >
-                    <div class="box clearfix">
+                    <div
+                      class="box clearfix"
+                      style="overflow-y: 0;"
+                    >
                       <div class="label_left">楼栋</div>
-                      <div class="el-fl-left tags">
+                      <div
+                        class="el-fl-left tags"
+                        style="width: 116px;"
+                      >
                         <el-tag
                           :disable-transitions="false"
                           data-code="build"
                           class="active"
+                          style="width: 116px;"
                         >
                           {{ formdata.buildingName }}
                         </el-tag>
@@ -285,9 +292,10 @@
                                                 initialUnitList.enableUnit &&
                                                 doorData[buildingIndex] &&
                                                 doorData[buildingIndex].unitFloorList &&
-                                                doorData[buildingIndex].unitFloorList.length
+                                                doorData[buildingIndex].unitFloorList.length && doorData[buildingIndex].unitName != null
                                             "
                     >
+                      <!-- && doorData[buildingIndex].unitName != null -->
                       <div class="label_left">单元</div>
 
                       <div class="el-fl-left tags">
@@ -341,7 +349,7 @@
                   </div>
                   <div class="title_class border_hr">
                     <span class="title_txt">单元户信息</span>
-                    {{doorData[buildingIndex]}}
+                    <!-- {{doorData[buildingIndex]}} -->
                     <el-tooltip
                       v-if="
                                                 doorData[buildingIndex] &&
@@ -361,12 +369,13 @@
                   </div>
 
                   <div
-                    class="unit"
+                    class="unit formContent-item_title_center"
                     v-if="
                                            doorData[buildingIndex] &&
                                             doorData[buildingIndex].unitFloorList &&
                                             doorData[buildingIndex].unitFloorList.length
                                         "
+                    style="height: 500px; overflow: hidden; overflow-y: auto;"
                   >
                     <div
                       class="floor"
@@ -381,7 +390,7 @@
                       <div
                         class="box clearfix"
                         :key="index3"
-                        v-for="(floor, index3) in doorData[buildingIndex].unitFloorList"
+                        v-for="(floor, index3) in doorData"
                       >
                         <!-- <span class="el-fl-left label">楼层:</span> -->
                         <div class="unit_left">
@@ -391,7 +400,7 @@
                             data-code="floor"
                             @close="handleClose('floor', index3, doorData[buildingIndex].unitFloorList)"
                           >
-                            <span @dblclick="showInput">{{ floor.floorNumber }}</span>
+                            <span @dblclick="showInput">{{ floor.unitFloorList[0].floorNumber }}</span>
                             <el-input
                               style="display: none"
                               v-model="floor.floorNumber"
@@ -410,15 +419,16 @@
                             class="door"
                             v-if="floor"
                           >
+                            <!-- {{floor.unitFloorList[0].roomList[0].roomNumber}} -->
                             <el-tag
                               :key="index4"
-                              v-for="(door, index4) in floor.roomList"
+                              v-for="(door, index4) in floor.unitFloorList[0].roomList"
                               closable
                               :disable-transitions="false"
                               data-code="door"
                               @close="handleClose('door', index4, floor.roomList)"
                             >
-                              <span @dblclick="showInput">{{ door.roomNumber }}</span>
+                              <span @dblclick="showInput">{{ door .roomNumber}}</span>
                               <el-input
                                 style="display: none"
                                 v-model="door.roomNumber"
@@ -830,7 +840,7 @@ export default {
         if (0 === status) {
           if (data.buildingUnitList.length !== 0) {
             this.formdata = data;
-            debugger
+
             this.formdata.householdsPerFloor = data.buildingUnitList[0].unitFloorList[0].roomList.length;
             this.initialUnitList = {
               checkedUnit: data.unitNumber !== 0 ? true : false,
@@ -841,13 +851,13 @@ export default {
                 end: data.buildingUnitList[data.buildingUnitList.length - 1]['unitName']
               }
             };
-            debugger
-            let resDate = [];
-            data.buildingUnitList.map((item, index) => {
-              resDate.push(item.unitFloorList)
-            })
-            // this.doorData = data.buildingUnitList;
-            debugger
+
+            // let resDate = [];
+            // data.buildingUnitList.map((item, index) => {
+            //   resDate.push(item.unitFloorList)
+            // })
+            this.doorData = data.buildingUnitList;
+
             this.doorData = resDate;
           } else {
             this.formdata = data;
@@ -869,4 +879,28 @@ export default {
 </script>
 <style lang="scss" >
 @import './popup.scss';
+.el-scrollbar__wrap {
+    overflow: hidden !important;
+}
+
+.formContent-item_title_center::-webkit-scrollbar {
+    width: 5px !important;
+}
+.formContent-item_title_center::-webkit-scrollbar {
+    /*滚动条整体样式*/
+    width: 10px; /*高宽分别对应横竖滚动条的尺寸*/
+    height: 1px;
+}
+.formContent-item_title_center::-webkit-scrollbar-thumb {
+    /*滚动条里面小方块*/
+    border-radius: 10px;
+    // -webkit-box-shadow: inset 0 0 5px rgba(0, 0, 0, 0.2);
+    background: #c6c4c4a9;
+}
+.formContent-item_title_center::-webkit-scrollbar-track {
+    /*滚动条里面轨道*/
+    // -webkit-box-shadow: inset 0 0 5px rgba(0, 0, 0, 0.2);
+    border-radius: 10px;
+    background: #f4f7f9a8;
+}
 </style>

+ 3 - 1
operationSupport/src/views/flow/popups/AddOrEdit.vue

@@ -211,8 +211,10 @@ export default {
         case 3:
           // this.getTaskType();
           this.getTaskType('SC_WORK_ORDER_TYPE');
+          break;
+        case 4:
+          this.getTaskType('CZC_CHARGE_TYPE');
       }
-      // this.isEdit=true
     }
   }
 };

+ 1 - 1
operationSupport/src/views/ownerManagement/landlordManagement/stepPage/add.vue

@@ -416,7 +416,7 @@ export default {
         }
       ],
       formRules: {
-        name: [this.$valid.selectRequired('填写姓名')],
+        name: [this.$valid.selectRequireds('填写姓名')],
         phone: [this.$valid.patternPhone('填写手机号')],
       },
       houseInformation: [

+ 1 - 1
operationSupport/src/views/patrolManagement/patrolStandard.vue

@@ -278,7 +278,7 @@ export default {
             rowId: '1',
             callback: resolve
           },
-          title: '添加巡更类型'
+          title: '编辑巡更类型'
         });
       }).then(() => {
         this.mixins_search();