unknown 1 maand geleden
bovenliggende
commit
a58f36eef4

+ 78 - 254
package-lock.json

@@ -34,7 +34,6 @@
         "eslint-plugin-import": "^2.25.3",
         "eslint-plugin-node": "^11.1.0",
         "eslint-plugin-promise": "^5.1.0",
-        "eslint-plugin-vue": "^8.0.3",
         "sass": "^1.32.7",
         "sass-loader": "^12.0.0",
         "vue-template-compiler": "^2.6.14"
@@ -3390,10 +3389,9 @@
     },
     "node_modules/@vue/eslint-config-standard": {
       "version": "6.1.0",
-      "resolved": "https://registry.npmjs.org/@vue/eslint-config-standard/-/eslint-config-standard-6.1.0.tgz",
+      "resolved": "https://registry.npmmirror.com/@vue/eslint-config-standard/-/eslint-config-standard-6.1.0.tgz",
       "integrity": "sha512-9+hrEyflDzsGdlBDl9jPV5DIYUx1TOU5OSQqRDKCrNumrxRj5HRWKuk+ocXWnha6uoNRtLC24mY7d/MwqvBCNw==",
       "dev": true,
-      "license": "MIT",
       "dependencies": {
         "eslint-config-standard": "^16.0.3",
         "eslint-import-resolver-node": "^0.3.4",
@@ -3671,26 +3669,13 @@
     },
     "node_modules/acorn-jsx": {
       "version": "5.3.2",
-      "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.3.2.tgz",
+      "resolved": "https://registry.npmmirror.com/acorn-jsx/-/acorn-jsx-5.3.2.tgz",
       "integrity": "sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==",
       "dev": true,
-      "license": "MIT",
       "peerDependencies": {
         "acorn": "^6.0.0 || ^7.0.0 || ^8.0.0"
       }
     },
-    "node_modules/acorn-jsx/node_modules/acorn": {
-      "version": "7.4.1",
-      "dev": true,
-      "license": "MIT",
-      "peer": true,
-      "bin": {
-        "acorn": "bin/acorn"
-      },
-      "engines": {
-        "node": ">=0.4.0"
-      }
-    },
     "node_modules/acorn-walk": {
       "version": "8.3.2",
       "resolved": "https://registry.npmjs.org/acorn-walk/-/acorn-walk-8.3.2.tgz",
@@ -6463,74 +6448,24 @@
       }
     },
     "node_modules/eslint-plugin-vue": {
-      "version": "8.7.1",
-      "resolved": "https://registry.npmjs.org/eslint-plugin-vue/-/eslint-plugin-vue-8.7.1.tgz",
-      "integrity": "sha512-28sbtm4l4cOzoO1LtzQPxfxhQABararUb1JtqusQqObJpWX2e/gmVyeYVfepizPFne0Q5cILkYGiBoV36L12Wg==",
+      "version": "7.20.0",
+      "resolved": "https://registry.npmmirror.com/eslint-plugin-vue/-/eslint-plugin-vue-7.20.0.tgz",
+      "integrity": "sha512-oVNDqzBC9h3GO+NTgWeLMhhGigy6/bQaQbHS+0z7C4YEu/qK/yxHvca/2PTZtGNPsCrHwOTgKMrwu02A9iPBmw==",
       "dev": true,
-      "license": "MIT",
+      "peer": true,
       "dependencies": {
-        "eslint-utils": "^3.0.0",
+        "eslint-utils": "^2.1.0",
         "natural-compare": "^1.4.0",
-        "nth-check": "^2.0.1",
-        "postcss-selector-parser": "^6.0.9",
-        "semver": "^7.3.5",
-        "vue-eslint-parser": "^8.0.1"
+        "semver": "^6.3.0",
+        "vue-eslint-parser": "^7.10.0"
       },
       "engines": {
-        "node": "^12.22.0 || ^14.17.0 || >=16.0.0"
+        "node": ">=8.10"
       },
       "peerDependencies": {
         "eslint": "^6.2.0 || ^7.0.0 || ^8.0.0"
       }
     },
-    "node_modules/eslint-plugin-vue/node_modules/eslint-utils": {
-      "version": "3.0.0",
-      "resolved": "https://registry.npmjs.org/eslint-utils/-/eslint-utils-3.0.0.tgz",
-      "integrity": "sha512-uuQC43IGctw68pJA1RgbQS8/NP7rch6Cwd4j3ZBtgo4/8Flj4eGE7ZYSZRN3iq5pVUv6GPdW5Z1RFleo84uLDA==",
-      "dev": true,
-      "license": "MIT",
-      "dependencies": {
-        "eslint-visitor-keys": "^2.0.0"
-      },
-      "engines": {
-        "node": "^10.0.0 || ^12.0.0 || >= 14.0.0"
-      },
-      "funding": {
-        "url": "https://github.com/sponsors/mysticatea"
-      },
-      "peerDependencies": {
-        "eslint": ">=5"
-      }
-    },
-    "node_modules/eslint-plugin-vue/node_modules/lru-cache": {
-      "version": "6.0.0",
-      "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz",
-      "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==",
-      "dev": true,
-      "license": "ISC",
-      "dependencies": {
-        "yallist": "^4.0.0"
-      },
-      "engines": {
-        "node": ">=10"
-      }
-    },
-    "node_modules/eslint-plugin-vue/node_modules/semver": {
-      "version": "7.6.0",
-      "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.0.tgz",
-      "integrity": "sha512-EnwXhrlwXMk9gKu5/flx5sv/an57AkRplG3hTK68W7FRDN+k+OWBj65M7719OkA82XLBxrcX0KSHj+X5COhOVg==",
-      "dev": true,
-      "license": "ISC",
-      "dependencies": {
-        "lru-cache": "^6.0.0"
-      },
-      "bin": {
-        "semver": "bin/semver.js"
-      },
-      "engines": {
-        "node": ">=10"
-      }
-    },
     "node_modules/eslint-scope": {
       "version": "5.1.1",
       "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-5.1.1.tgz",
@@ -6756,16 +6691,6 @@
         "node": ">=0.4.0"
       }
     },
-    "node_modules/espree/node_modules/acorn-jsx": {
-      "version": "5.3.2",
-      "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.3.2.tgz",
-      "integrity": "sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==",
-      "dev": true,
-      "license": "MIT",
-      "peerDependencies": {
-        "acorn": "^6.0.0 || ^7.0.0 || ^8.0.0"
-      }
-    },
     "node_modules/espree/node_modules/eslint-visitor-keys": {
       "version": "1.3.0",
       "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-1.3.0.tgz",
@@ -12793,105 +12718,66 @@
       "integrity": "sha512-D9q93U6rzIeGthpq+yOgKKWDoSrWQlKHTxOW1Y8hVscA8uHYtE600VNLwoFrDhpdcgpMBetM/VRfDCb7/dmImA=="
     },
     "node_modules/vue-eslint-parser": {
-      "version": "8.3.0",
-      "resolved": "https://registry.npmjs.org/vue-eslint-parser/-/vue-eslint-parser-8.3.0.tgz",
-      "integrity": "sha512-dzHGG3+sYwSf6zFBa0Gi9ZDshD7+ad14DGOdTLjruRVgZXe2J+DcZ9iUhyR48z5g1PqRa20yt3Njna/veLJL/g==",
+      "version": "7.11.0",
+      "resolved": "https://registry.npmmirror.com/vue-eslint-parser/-/vue-eslint-parser-7.11.0.tgz",
+      "integrity": "sha512-qh3VhDLeh773wjgNTl7ss0VejY9bMMa0GoDG2fQVyDzRFdiU3L7fw74tWZDHNQXdZqxO3EveQroa9ct39D2nqg==",
       "dev": true,
-      "license": "MIT",
+      "peer": true,
       "dependencies": {
-        "debug": "^4.3.2",
-        "eslint-scope": "^7.0.0",
-        "eslint-visitor-keys": "^3.1.0",
-        "espree": "^9.0.0",
+        "debug": "^4.1.1",
+        "eslint-scope": "^5.1.1",
+        "eslint-visitor-keys": "^1.1.0",
+        "espree": "^6.2.1",
         "esquery": "^1.4.0",
         "lodash": "^4.17.21",
-        "semver": "^7.3.5"
+        "semver": "^6.3.0"
       },
       "engines": {
-        "node": "^12.22.0 || ^14.17.0 || >=16.0.0"
+        "node": ">=8.10"
       },
       "funding": {
         "url": "https://github.com/sponsors/mysticatea"
       },
       "peerDependencies": {
-        "eslint": ">=6.0.0"
+        "eslint": ">=5.0.0"
       }
     },
-    "node_modules/vue-eslint-parser/node_modules/eslint-scope": {
-      "version": "7.2.2",
-      "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-7.2.2.tgz",
-      "integrity": "sha512-dOt21O7lTMhDM+X9mB4GX+DZrZtCUJPL/wlcTqxyrx5IvO0IYtILdtrQGQp+8n5S0gwSVmOf9NQrjMOgfQZlIg==",
+    "node_modules/vue-eslint-parser/node_modules/acorn": {
+      "version": "7.4.1",
+      "resolved": "https://registry.npmmirror.com/acorn/-/acorn-7.4.1.tgz",
+      "integrity": "sha512-nQyp0o1/mNdbTO1PO6kHkwSrmgZ0MT/jCCpNiwbUjGoRN4dlBhqJtoQuCnEOKzgTVwg0ZWiCoQy6SxMebQVh8A==",
       "dev": true,
-      "license": "BSD-2-Clause",
-      "dependencies": {
-        "esrecurse": "^4.3.0",
-        "estraverse": "^5.2.0"
+      "peer": true,
+      "bin": {
+        "acorn": "bin/acorn"
       },
       "engines": {
-        "node": "^12.22.0 || ^14.17.0 || >=16.0.0"
-      },
-      "funding": {
-        "url": "https://opencollective.com/eslint"
+        "node": ">=0.4.0"
       }
     },
     "node_modules/vue-eslint-parser/node_modules/eslint-visitor-keys": {
-      "version": "3.4.3",
-      "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.4.3.tgz",
-      "integrity": "sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag==",
+      "version": "1.3.0",
+      "resolved": "https://registry.npmmirror.com/eslint-visitor-keys/-/eslint-visitor-keys-1.3.0.tgz",
+      "integrity": "sha512-6J72N8UNa462wa/KFODt/PJ3IU60SDpC3QXC1Hjc1BXXpfL2C9R5+AU7jhe0F6GREqVMh4Juu+NY7xn+6dipUQ==",
       "dev": true,
-      "license": "Apache-2.0",
+      "peer": true,
       "engines": {
-        "node": "^12.22.0 || ^14.17.0 || >=16.0.0"
-      },
-      "funding": {
-        "url": "https://opencollective.com/eslint"
+        "node": ">=4"
       }
     },
     "node_modules/vue-eslint-parser/node_modules/espree": {
-      "version": "9.6.1",
-      "resolved": "https://registry.npmjs.org/espree/-/espree-9.6.1.tgz",
-      "integrity": "sha512-oruZaFkjorTpF32kDSI5/75ViwGeZginGGy2NoOSg3Q9bnwlnmDm4HLnkl0RE3n+njDXR037aY1+x58Z/zFdwQ==",
-      "dev": true,
-      "license": "BSD-2-Clause",
-      "dependencies": {
-        "acorn": "^8.9.0",
-        "acorn-jsx": "^5.3.2",
-        "eslint-visitor-keys": "^3.4.1"
-      },
-      "engines": {
-        "node": "^12.22.0 || ^14.17.0 || >=16.0.0"
-      },
-      "funding": {
-        "url": "https://opencollective.com/eslint"
-      }
-    },
-    "node_modules/vue-eslint-parser/node_modules/lru-cache": {
-      "version": "6.0.0",
-      "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz",
-      "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==",
-      "dev": true,
-      "license": "ISC",
-      "dependencies": {
-        "yallist": "^4.0.0"
-      },
-      "engines": {
-        "node": ">=10"
-      }
-    },
-    "node_modules/vue-eslint-parser/node_modules/semver": {
-      "version": "7.6.0",
-      "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.0.tgz",
-      "integrity": "sha512-EnwXhrlwXMk9gKu5/flx5sv/an57AkRplG3hTK68W7FRDN+k+OWBj65M7719OkA82XLBxrcX0KSHj+X5COhOVg==",
+      "version": "6.2.1",
+      "resolved": "https://registry.npmmirror.com/espree/-/espree-6.2.1.tgz",
+      "integrity": "sha512-ysCxRQY3WaXJz9tdbWOwuWr5Y/XrPTGX9Kiz3yoUXwW0VZ4w30HTkQLaGx/+ttFjF8i+ACbArnB4ce68a9m5hw==",
       "dev": true,
-      "license": "ISC",
+      "peer": true,
       "dependencies": {
-        "lru-cache": "^6.0.0"
-      },
-      "bin": {
-        "semver": "bin/semver.js"
+        "acorn": "^7.1.1",
+        "acorn-jsx": "^5.2.0",
+        "eslint-visitor-keys": "^1.1.0"
       },
       "engines": {
-        "node": ">=10"
+        "node": ">=6.0.0"
       }
     },
     "node_modules/vue-hot-reload-api": {
@@ -15951,7 +15837,7 @@
     },
     "@vue/eslint-config-standard": {
       "version": "6.1.0",
-      "resolved": "https://registry.npmjs.org/@vue/eslint-config-standard/-/eslint-config-standard-6.1.0.tgz",
+      "resolved": "https://registry.npmmirror.com/@vue/eslint-config-standard/-/eslint-config-standard-6.1.0.tgz",
       "integrity": "sha512-9+hrEyflDzsGdlBDl9jPV5DIYUx1TOU5OSQqRDKCrNumrxRj5HRWKuk+ocXWnha6uoNRtLC24mY7d/MwqvBCNw==",
       "dev": true,
       "requires": {
@@ -16168,17 +16054,10 @@
     },
     "acorn-jsx": {
       "version": "5.3.2",
-      "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.3.2.tgz",
+      "resolved": "https://registry.npmmirror.com/acorn-jsx/-/acorn-jsx-5.3.2.tgz",
       "integrity": "sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==",
       "dev": true,
-      "requires": {},
-      "dependencies": {
-        "acorn": {
-          "version": "7.4.1",
-          "dev": true,
-          "peer": true
-        }
-      }
+      "requires": {}
     },
     "acorn-walk": {
       "version": "8.3.2",
@@ -18158,46 +18037,16 @@
       "requires": {}
     },
     "eslint-plugin-vue": {
-      "version": "8.7.1",
-      "resolved": "https://registry.npmjs.org/eslint-plugin-vue/-/eslint-plugin-vue-8.7.1.tgz",
-      "integrity": "sha512-28sbtm4l4cOzoO1LtzQPxfxhQABararUb1JtqusQqObJpWX2e/gmVyeYVfepizPFne0Q5cILkYGiBoV36L12Wg==",
+      "version": "7.20.0",
+      "resolved": "https://registry.npmmirror.com/eslint-plugin-vue/-/eslint-plugin-vue-7.20.0.tgz",
+      "integrity": "sha512-oVNDqzBC9h3GO+NTgWeLMhhGigy6/bQaQbHS+0z7C4YEu/qK/yxHvca/2PTZtGNPsCrHwOTgKMrwu02A9iPBmw==",
       "dev": true,
+      "peer": true,
       "requires": {
-        "eslint-utils": "^3.0.0",
+        "eslint-utils": "^2.1.0",
         "natural-compare": "^1.4.0",
-        "nth-check": "^2.0.1",
-        "postcss-selector-parser": "^6.0.9",
-        "semver": "^7.3.5",
-        "vue-eslint-parser": "^8.0.1"
-      },
-      "dependencies": {
-        "eslint-utils": {
-          "version": "3.0.0",
-          "resolved": "https://registry.npmjs.org/eslint-utils/-/eslint-utils-3.0.0.tgz",
-          "integrity": "sha512-uuQC43IGctw68pJA1RgbQS8/NP7rch6Cwd4j3ZBtgo4/8Flj4eGE7ZYSZRN3iq5pVUv6GPdW5Z1RFleo84uLDA==",
-          "dev": true,
-          "requires": {
-            "eslint-visitor-keys": "^2.0.0"
-          }
-        },
-        "lru-cache": {
-          "version": "6.0.0",
-          "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz",
-          "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==",
-          "dev": true,
-          "requires": {
-            "yallist": "^4.0.0"
-          }
-        },
-        "semver": {
-          "version": "7.6.0",
-          "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.0.tgz",
-          "integrity": "sha512-EnwXhrlwXMk9gKu5/flx5sv/an57AkRplG3hTK68W7FRDN+k+OWBj65M7719OkA82XLBxrcX0KSHj+X5COhOVg==",
-          "dev": true,
-          "requires": {
-            "lru-cache": "^6.0.0"
-          }
-        }
+        "semver": "^6.3.0",
+        "vue-eslint-parser": "^7.10.0"
       }
     },
     "eslint-scope": {
@@ -18293,13 +18142,6 @@
           "integrity": "sha512-nQyp0o1/mNdbTO1PO6kHkwSrmgZ0MT/jCCpNiwbUjGoRN4dlBhqJtoQuCnEOKzgTVwg0ZWiCoQy6SxMebQVh8A==",
           "dev": true
         },
-        "acorn-jsx": {
-          "version": "5.3.2",
-          "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.3.2.tgz",
-          "integrity": "sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==",
-          "dev": true,
-          "requires": {}
-        },
         "eslint-visitor-keys": {
           "version": "1.3.0",
           "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-1.3.0.tgz",
@@ -22369,63 +22211,45 @@
       "integrity": "sha512-D9q93U6rzIeGthpq+yOgKKWDoSrWQlKHTxOW1Y8hVscA8uHYtE600VNLwoFrDhpdcgpMBetM/VRfDCb7/dmImA=="
     },
     "vue-eslint-parser": {
-      "version": "8.3.0",
-      "resolved": "https://registry.npmjs.org/vue-eslint-parser/-/vue-eslint-parser-8.3.0.tgz",
-      "integrity": "sha512-dzHGG3+sYwSf6zFBa0Gi9ZDshD7+ad14DGOdTLjruRVgZXe2J+DcZ9iUhyR48z5g1PqRa20yt3Njna/veLJL/g==",
+      "version": "7.11.0",
+      "resolved": "https://registry.npmmirror.com/vue-eslint-parser/-/vue-eslint-parser-7.11.0.tgz",
+      "integrity": "sha512-qh3VhDLeh773wjgNTl7ss0VejY9bMMa0GoDG2fQVyDzRFdiU3L7fw74tWZDHNQXdZqxO3EveQroa9ct39D2nqg==",
       "dev": true,
+      "peer": true,
       "requires": {
-        "debug": "^4.3.2",
-        "eslint-scope": "^7.0.0",
-        "eslint-visitor-keys": "^3.1.0",
-        "espree": "^9.0.0",
+        "debug": "^4.1.1",
+        "eslint-scope": "^5.1.1",
+        "eslint-visitor-keys": "^1.1.0",
+        "espree": "^6.2.1",
         "esquery": "^1.4.0",
         "lodash": "^4.17.21",
-        "semver": "^7.3.5"
+        "semver": "^6.3.0"
       },
       "dependencies": {
-        "eslint-scope": {
-          "version": "7.2.2",
-          "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-7.2.2.tgz",
-          "integrity": "sha512-dOt21O7lTMhDM+X9mB4GX+DZrZtCUJPL/wlcTqxyrx5IvO0IYtILdtrQGQp+8n5S0gwSVmOf9NQrjMOgfQZlIg==",
+        "acorn": {
+          "version": "7.4.1",
+          "resolved": "https://registry.npmmirror.com/acorn/-/acorn-7.4.1.tgz",
+          "integrity": "sha512-nQyp0o1/mNdbTO1PO6kHkwSrmgZ0MT/jCCpNiwbUjGoRN4dlBhqJtoQuCnEOKzgTVwg0ZWiCoQy6SxMebQVh8A==",
           "dev": true,
-          "requires": {
-            "esrecurse": "^4.3.0",
-            "estraverse": "^5.2.0"
-          }
+          "peer": true
         },
         "eslint-visitor-keys": {
-          "version": "3.4.3",
-          "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.4.3.tgz",
-          "integrity": "sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag==",
-          "dev": true
-        },
-        "espree": {
-          "version": "9.6.1",
-          "resolved": "https://registry.npmjs.org/espree/-/espree-9.6.1.tgz",
-          "integrity": "sha512-oruZaFkjorTpF32kDSI5/75ViwGeZginGGy2NoOSg3Q9bnwlnmDm4HLnkl0RE3n+njDXR037aY1+x58Z/zFdwQ==",
-          "dev": true,
-          "requires": {
-            "acorn": "^8.9.0",
-            "acorn-jsx": "^5.3.2",
-            "eslint-visitor-keys": "^3.4.1"
-          }
-        },
-        "lru-cache": {
-          "version": "6.0.0",
-          "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz",
-          "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==",
+          "version": "1.3.0",
+          "resolved": "https://registry.npmmirror.com/eslint-visitor-keys/-/eslint-visitor-keys-1.3.0.tgz",
+          "integrity": "sha512-6J72N8UNa462wa/KFODt/PJ3IU60SDpC3QXC1Hjc1BXXpfL2C9R5+AU7jhe0F6GREqVMh4Juu+NY7xn+6dipUQ==",
           "dev": true,
-          "requires": {
-            "yallist": "^4.0.0"
-          }
+          "peer": true
         },
-        "semver": {
-          "version": "7.6.0",
-          "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.0.tgz",
-          "integrity": "sha512-EnwXhrlwXMk9gKu5/flx5sv/an57AkRplG3hTK68W7FRDN+k+OWBj65M7719OkA82XLBxrcX0KSHj+X5COhOVg==",
+        "espree": {
+          "version": "6.2.1",
+          "resolved": "https://registry.npmmirror.com/espree/-/espree-6.2.1.tgz",
+          "integrity": "sha512-ysCxRQY3WaXJz9tdbWOwuWr5Y/XrPTGX9Kiz3yoUXwW0VZ4w30HTkQLaGx/+ttFjF8i+ACbArnB4ce68a9m5hw==",
           "dev": true,
+          "peer": true,
           "requires": {
-            "lru-cache": "^6.0.0"
+            "acorn": "^7.1.1",
+            "acorn-jsx": "^5.2.0",
+            "eslint-visitor-keys": "^1.1.0"
           }
         }
       }

+ 0 - 1
package.json

@@ -34,7 +34,6 @@
     "eslint-plugin-import": "^2.25.3",
     "eslint-plugin-node": "^11.1.0",
     "eslint-plugin-promise": "^5.1.0",
-    "eslint-plugin-vue": "^8.0.3",
     "sass": "^1.32.7",
     "sass-loader": "^12.0.0",
     "vue-template-compiler": "^2.6.14"

+ 1 - 1
public/index.html

@@ -5,7 +5,7 @@
     <meta http-equiv="X-UA-Compatible" content="IE=edge">
     <meta name="viewport" content="width=device-width,initial-scale=1.0">
     <link rel="icon" href="<%= BASE_URL %>favicon.ico">
-    <title>宝智达冷链物流平台</title>
+    <title>医疗冷链物流管理系统</title>
   </head>
   <body>
     <noscript>

+ 10 - 2
src/api/waybill.js

@@ -86,12 +86,20 @@ export function getWaybillHome(parameter) {
 }
 
 // 导出温湿度pdf
+// export function getTemperature(parameter) {
+//   return request({
+//     url: '/api/waybill/temperature-pdf',
+//     method: 'get',
+//     responseType: 'blob',
+//     params: parameter
+//   })
+// }
 export function getTemperature(parameter) {
   return request({
     url: '/api/waybill/temperature-pdf',
-    method: 'get',
+    method: 'post',
     responseType: 'blob',
-    params: parameter
+    data: parameter
   })
 }
 

+ 18 - 1
src/api/waybillLogistics.js

@@ -1,7 +1,7 @@
 import request from '@/utils/request'
 
 // 获取运单物流列表
-export function getWaybill(parameter) {
+export function getLogisticsWaybill(parameter) {
   return request({
     url: '/api/waybill-logistics',
     method: 'get',
@@ -43,3 +43,20 @@ export function wayNewestLocus(parameter) {
     data: parameter
   })
 }
+// 修改运单任务时间
+export function putWaybillTask(parameter) {
+  return request({
+    url: '/api/waybill-task',
+    method: 'put',
+    data: parameter
+  })
+}
+
+// 修改物流时间
+export function putWaybillLogistics(parameter) {
+  return request({
+    url: '/api/waybill-logistics',
+    method: 'put',
+    data: parameter
+  })
+}

+ 0 - 14
src/assets/css/global.css

@@ -7,20 +7,6 @@ body,
 	padding: 0;
 }
 
-body {
-	scrollbar-width: thin;
-	scrollbar-color: #888 transparent;
-}
-
-/* For Webkit browsers (Chrome, Safari) */
-body::-webkit-scrollbar {
-	width: 6px;
-}
-
-body::-webkit-scrollbar-thumb {
-	background-color: #888;
-}
-
 .center_in {
 	display: flex;
 	align-items: center;

+ 6 - 4
src/components/actionBar.vue

@@ -4,7 +4,7 @@
       <div style="display: flex;flex-direction: column;">
         <div class="action_bar_headline" :class="formList.length>0?'margin_5x':''">{{menuTitle}}</div>
         <el-form :model="ruleForm" ref="ruleForm" label-width="100" class="el-row demo-ruleForm"
-          :label-position="labelPosition">
+          :label-position="labelPosition" @submit.native.prevent>
           <div style="display: flex;flex-wrap: wrap;flex-direction: row;">
             <el-form-item style="display: flex;margin-right: 10px;margin-bottom: 10px !important;"
               v-for="(item, index) in formList" :key="index" :label="item.label" :prop="item.field"
@@ -14,7 +14,7 @@
                 <div class="forms_dom">
                   <el-input size="medium" autocomplete="new-password" :placeholder="item.placeholder"
                     :disabled="item.disabled" :id="item.field" :show-password="item.mold ? true : false"
-                    v-model="ruleForm[`${item.field}`]" />
+                    v-model="ruleForm[`${item.field}`]" @keyup.enter.native="searchProtocol" />
                 </div>
               </template>
               <!-- 下拉框 -->
@@ -30,7 +30,7 @@
               <template v-if="item.type === 'picker'">
                 <el-date-picker size="medium" v-model="ruleForm[`${item.field}`]" type="datetimerange" align="right"
                   value-format="yyyy-MM-dd hh:mm:ss" unlink-panels range-separator="至" start-placeholder="开始日期"
-                  end-placeholder="结束日期" :picker-options="pickerOptions">
+                  end-placeholder="结束日期" :picker-options="pickerOptions" @change="searchProtocol">
                 </el-date-picker>
               </template>
             </el-form-item>
@@ -122,7 +122,9 @@
         this.$forceUpdate()
         this.$emit('reset')
       },
-      changeSelect() {}
+      changeSelect() {
+        this.$emit('searchProtocol', this.ruleForm)
+      }
     }
   }
 </script>

+ 7 - 1
src/components/forms.vue

@@ -7,10 +7,16 @@
           <el-form-item class="card_independent" :label-width="item.labelWidth" :label="item.label" :prop="item.field"
             :rules="detail ? item.rules : {}" v-if="item.type === 'input'">
             <el-input :placeholder="item.placeholder" :disabled="item.disabled" :id="item.field"
-              v-model="ruleForm[`${item.field}`]"
+              v-model="ruleForm[`${item.field}`]" auto-complete="new-password"
               :show-password="['newPassword','password'].includes(item.field) ? true : false"></el-input>
             <div class="unit_card" v-if="item.unit">{{item.unit}}</div>
           </el-form-item>
+          <el-form-item class="card_independent" :label-width="item.labelWidth" :label="item.label" :prop="item.field"
+            :rules="detail ? item.rules : {}" v-if="item.type === 'number'">
+            <el-input :placeholder="item.placeholder" :disabled="item.disabled" :id="item.field"
+              v-model="ruleForm[`${item.field}`]" type="number"
+              oninput="value=value.replace(/^(0+)|[^\d]+/g,'')"></el-input>
+          </el-form-item>
           <el-form-item :label-width="item.labelWidth" :label="item.label" :prop="item.field"
             :rules="detail ? item.rules : {}" v-if="item.type === 'textarea'">
             <el-input :maxlength="item.maxLenght" type="textarea" :rows="item.rowsHeight" :disabled="item.disabled"

+ 5 - 3
src/components/humitureSupervision.vue

@@ -5,14 +5,14 @@
       <span class="humit_title">温湿度记录</span>
       <div class="item_humiture" v-for="(item,index) in humitureList" :key="index" @click="gethumiture(item)">
         <div class="card_supervision">
-          <span class="supervision_title" :style="{color:(item.flag ? '#409EFF' : '')}">【{{item.title}}】</span>
+          <div class="supervision_title" :style="{color:(item.flag ? '#409EFF' : '')}">【{{item.title}}】</div>
           <span class="supervision_title" :style="{color:(item.flag ? '#409EFF' : '')}">{{item.startTime}}</span>
           <span class="supervision_title" :style="{color:(item.flag ? '#409EFF' : '')}">{{item.endTime}}</span>
         </div>
       </div>
     </div>
     <div class="humiture_right">
-      <div style="padding: 10px;">
+      <div style="padding: 5px;">
         <div class="card_checkbox" v-if="probeList.length > 0">
           <el-checkbox-group v-model="checkList" @change="handleCheckedCitiesChange">
             <el-checkbox v-for="items in probeList" :key="items.T_id"
@@ -99,6 +99,8 @@
           })
           this.tIds = tId
           this.checkList = tId
+          this.Pagination.page = 1
+          this.Pagination.pageSize = 10
           this.getList()
         }
       },
@@ -201,10 +203,10 @@
     display: flex;
     align-items: flex-start;
     flex-direction: column;
-    margin-left: 10px;
   }
 
   .supervision_title {
+    text-align: left;
     font-size: 14px;
   }
 </style>

+ 79 - 76
src/components/orderDetails.vue

@@ -62,82 +62,85 @@
       return {
         staffDialogVisible: false,
         list: [{
-          title: '运单号:',
-          field: 'waybillNo',
-          colWidth: 8,
-        }, {
-          title: '运单状态:',
-          field: 'status',
-          colWidth: 8,
-        }, {
-          title: '制单人:',
-          field: 'nickName',
-          colWidth: 8,
-        }, {
-          title: '寄件人:',
-          field: 'senderAddressName',
-          colWidth: 8,
-        }, {
-          title: '寄件人电话:',
-          field: 'senderAddressPhone',
-          colWidth: 8,
-        }, {
-          title: '寄件地址:',
-          field: 'senderAddressDetails',
-          colWidth: 8,
-        }, {
-          title: '收件人:',
-          field: 'consigneeAddressName',
-          colWidth: 8,
-        }, {
-          title: '收件人电话:',
-          field: 'consigneeAddressPhone',
-          colWidth: 8,
-        }, {
-          title: '收件地址:',
-          field: 'consigneeAddressDetails',
-          colWidth: 8,
-        }, {
-          title: '温度需求:',
-          field: 'temperatureInterval',
-          colWidth: 8,
-        }, {
-          title: '配送要求:',
-          field: 'deliveryCondition',
-          colWidth: 8,
-        }, {
-          title: '货物类型:',
-          field: 'cargoType',
-          colWidth: 8,
-        }, {
-          title: '数量:',
-          field: 'quantity',
-          colWidth: 8,
-        }, {
-          title: '入库/装车时间:',
-          field: 'deliveryTime',
-          colWidth: 8,
-        }, {
-          title: '下单时间:',
-          field: 'orderTime',
-          colWidth: 8,
-        }, {
-          title: '签收时间:',
-          field: 'receiptTime',
-          colWidth: 8,
-        }, {
-          title: '备注:',
-          field: 'remark',
-          colWidth: 24,
-        }, {
-          title: '签收图片:',
-          field: 'ReceiptImg',
-          colWidth: 24,
-        }, {
-          title: '物流详情:',
-          field: 'logistics',
-          colWidth: 24,
-        }, ],
+            title: '运单号:',
+            field: 'waybillNo',
+            colWidth: 8,
+          }, {
+            title: '运单状态:',
+            field: 'status',
+            colWidth: 8,
+          }, {
+            title: '制单人:',
+            field: 'nickName',
+            colWidth: 8,
+          }, {
+            title: '寄件人:',
+            field: 'senderAddressName',
+            colWidth: 8,
+          }, {
+            title: '寄件人电话:',
+            field: 'senderAddressPhone',
+            colWidth: 8,
+          }, {
+            title: '寄件地址:',
+            field: 'senderAddressDetails',
+            colWidth: 8,
+          }, {
+            title: '收件人:',
+            field: 'consigneeAddressName',
+            colWidth: 8,
+          }, {
+            title: '收件人电话:',
+            field: 'consigneeAddressPhone',
+            colWidth: 8,
+          }, {
+            title: '收件地址:',
+            field: 'consigneeAddressDetails',
+            colWidth: 8,
+          }, {
+            title: '温度需求:',
+            field: 'temperatureInterval',
+            colWidth: 8,
+          }, {
+            title: '配送要求:',
+            field: 'deliveryCondition',
+            colWidth: 8,
+          }, {
+            title: '货物类型:',
+            field: 'cargoType',
+            colWidth: 8,
+          }, {
+            title: '数量:',
+            field: 'quantity',
+            colWidth: 8,
+          },
+          // {
+          //   title: '入库/装车时间:',
+          //   field: 'deliveryTime',
+          //   colWidth: 8,
+          // },
+          {
+            title: '下单时间:',
+            field: 'orderTime',
+            colWidth: 8,
+          }, {
+            title: '签收时间:',
+            field: 'receiptTime',
+            colWidth: 8,
+          }, {
+            title: '备注:',
+            field: 'remark',
+            colWidth: 24,
+          }, {
+            title: '签收图片:',
+            field: 'ReceiptImg',
+            colWidth: 24,
+          }, {
+            title: '物流详情:',
+            field: 'logistics',
+            colWidth: 24,
+          },
+        ],
         WaybillType: WaybillStatus(),
         myOrder: myOrder(),
         userType: '',

+ 13 - 2
src/components/tables.vue

@@ -230,18 +230,29 @@
         const arr = localStorage.getItem('userList')
         const userArr = JSON.parse(arr)
         if (row.waybillNo) {
-          if (userArr.userType == 'customer' && type == 'edit' || type == 'del') {
+          if (userArr.userType == 'customer' && type == 'edit') {
             if ([1, 2, 3, 9].includes(row.status)) {
               return false
             } else {
               return true
             }
-          } else if (type == 'send' || type == 'del') {
+          } else if (type == 'send') {
             if (row.status == 1 || row.status == 2 || row.status == 3 || row.status == 9) {
               return false
             } else {
               return true
             }
+          } else if (type == 'del') {
+            // type==1管理员
+            if (userArr.type != 1) {
+              if (row.status == 1 || row.status == 2 || row.status == 3 || row.status == 9) {
+                return false
+              } else {
+                return true
+              }
+            } else {
+              return false
+            }
           } else if (type == 'pdf') {
             if (row.status == 8) {
               return false

+ 1 - 0
src/permission.js

@@ -33,6 +33,7 @@ router.beforeEach(async (to, from, next) => {
       } else {
         store.dispatch('GetInfo').then(value => {
           const deptId = value
+          resetRouter()
           store.dispatch('GenerateRoutes', {
             deptId
           }).then((res) => {

+ 28 - 16
src/router/generator-routers.js

@@ -51,6 +51,24 @@ const clientRouter = {
     component: () => import('@/views/system/MyWaybill'),
   }]
 }
+const userRouter = {
+  path: '/UserManagement',
+  name: 'UserManagement',
+  meta: {
+    icon: 'icon-yonghuguanli',
+    title: '用户管理'
+  },
+  component: () => import('@/views/system/UserManagement'),
+}
+const clientManageRouter = {
+  path: '/ClientManagement',
+  name: 'ClientManagement',
+  meta: {
+    icon: 'icon-kehuguanli',
+    title: '客户管理'
+  },
+  component: () => import('@/views/system/ClientManagement'),
+}
 // 根级菜单
 const rootRouter = {
   name: 'index',
@@ -74,22 +92,6 @@ const rootRouter = {
     },
     component: () => import('@/views/system/corporateGovernance'),
   }, {
-    path: '/UserManagement',
-    name: 'UserManagement',
-    meta: {
-      icon: 'icon-yonghuguanli',
-      title: '用户管理'
-    },
-    component: () => import('@/views/system/UserManagement'),
-  }, {
-    path: '/ClientManagement',
-    name: 'ClientManagement',
-    meta: {
-      icon: 'icon-kehuguanli',
-      title: '客户管理'
-    },
-    component: () => import('@/views/system/ClientManagement'),
-  }, {
     path: '/IncubatorManagement',
     name: 'IncubatorManagement',
     meta: {
@@ -141,6 +143,16 @@ export const generatorDynamicRouter = arrType => {
           return arr.filter(obj => obj.name !== name);
         }
         rootRouter.children = deleteObjectById(rootRouter.children, 'CompanyManagement')
+        // 管理员type=1展示用户管理
+        if (arrType.type == 1) {
+          rootRouter.children = deleteObjectById(rootRouter.children, 'UserManagement')
+          rootRouter.children = deleteObjectById(rootRouter.children, 'ClientManagement')
+          rootRouter.children.splice(2, 0, userRouter)
+          rootRouter.children.splice(3, 0, clientManageRouter)
+        } else {
+          rootRouter.children = deleteObjectById(rootRouter.children, 'UserManagement')
+          rootRouter.children = deleteObjectById(rootRouter.children, 'ClientManagement')
+        }
         routers.push(notFoundRouter)
         routers.push(rootRouter)
       }

+ 1 - 0
src/store/modules/user.js

@@ -63,6 +63,7 @@ const user = {
               const arr = {
                 deptId: res.data.user.deptId,
                 userType: res.data.user.userType,
+                type: res.data.user.type,
               }
               const roles = [{
                 action: 'add',

+ 1 - 0
src/utils/request.js

@@ -64,6 +64,7 @@ request.interceptors.response.use((response) => {
   }
   if (response.data.Code || response.data.code) {
     const res = response.data
+    // console.log(res,25)
     if (res.code == 6401) {
       return refreshToken().then(resil => {
         // 更新本地存储的 Token

+ 19 - 33
src/views/WaybillInquiry.vue

@@ -45,13 +45,16 @@
 
 <script>
   import {
-    getWaybill,
+    getLogisticsWaybill,
     getWaybillTask,
     waybillTaskLocus,
     wayNewestLocus,
   } from '@/api/waybillLogistics'
   import logisticsTracking from '@/components/logisticsTracking'
   import MapContainer from '@/components/MapContainer'
+  import {
+    WaybillStatus
+  } from '@/assets/js/blockSort'
   export default {
     name: 'WaybillInquiry',
     components: {
@@ -63,31 +66,7 @@
         input3: '',
         tabIndex: '0',
         activitiesList: [],
-        statusList: [{
-          id: 1,
-          title: '待派单',
-        }, {
-          id: 2,
-          title: '待装车',
-        }, {
-          id: 3,
-          title: '待入库',
-        }, {
-          id: 4,
-          title: '已装车',
-        }, {
-          id: 5,
-          title: '已入库',
-        }, {
-          id: 6,
-          title: '已下车',
-        }, {
-          id: 7,
-          title: '已出库',
-        }, {
-          id: 8,
-          title: '已签收',
-        }],
+        statusList: WaybillStatus(),
         geoCoder: null,
         waybillNo: null,
         trackList: [],
@@ -137,7 +116,7 @@
         // console.log(this.waybillNo, this.tabIndex, 557)
       },
       getList() {
-        getWaybill({
+        getLogisticsWaybill({
           waybillNo: this.waybillNo,
         }).then((res) => {
           if (res.code == 200) {
@@ -149,18 +128,25 @@
               arrList.forEach(async (item) => {
                 item.content = ''
                 let arr = this.statusList.filter((i) => {
-                  return item.status == i.id;
+                  return item.status == i.value;
                 });
                 let yonTitle = ''
                 let phone = ''
-                if (item.car.id) {
+                if (item.car.id && item.user) {
                   yonTitle = item.car.carNo
-                  phone = item.car.user.phone
-                } else if (item.warehouse.id) {
+                  phone = item.user.phone
+                } else if (item.warehouse.id && item.user) {
                   yonTitle = item.warehouse.name
-                  phone = item.warehouse.user.phone
+                  phone = item.user.phone
+                } else if (item.coolerBox.id && item.user) {
+                  yonTitle = item.coolerBox.name
+                  phone = item.user.phone
+                }
+                let travelType = ''
+                if (arr[0].label) {
+                  travelType = arr[0].label
                 }
-                item.content = item.address + '【' + yonTitle + '】' + phone + '  ' + '您的货物' + arr[0].title
+                item.content = item.address + '【' + yonTitle + '】' + phone + '  ' + '您的货物' + travelType
                 // await setTimeout(() => {
                 //   this.reverseGeocode(item.lng, item.lat).then(res => {
                 //     const trapeze = res

+ 1 - 1
src/views/common/topNav.vue

@@ -1,7 +1,7 @@
 <template>
   <div class="card_head">
     <el-image style="height: 35px;width: 35px;" :src="require('@/assets/logo3.png')"></el-image>
-    <div class="head_title">宝智达冷链物流平台</div>
+    <div class="head_title">医疗冷链物流管理系统</div>
     <i class="card_unpack" :class="iconFlag ? 'el-icon-s-unfold' : 'el-icon-s-fold'" @click="getUnpack"></i>
   </div>
 </template>

+ 1 - 1
src/views/login.vue

@@ -3,7 +3,7 @@
     <div class="card_login_form">
       <div class="form_left center_in">
         <div class="form_login">
-          <h3>宝智达-冷链物流运输</h3>
+          <h3>医疗冷链物流管理系统</h3>
           <div class="card_form">
             <el-input v-model="form.name" size="medium" placeholder="请输入账号"></el-input>
           </div>

+ 21 - 33
src/views/newInquiry.vue

@@ -52,7 +52,7 @@
 
 <script>
   import {
-    getWaybill,
+    getLogisticsWaybill,
     getWaybillTask,
     waybillTaskLocus,
   } from '@/api/waybillLogistics'
@@ -60,6 +60,9 @@
   import humitureSupervision from '@/components/humitureSupervision'
   import mobileHumiture from '@/components/mobileHumiture'
   import MapContainer from '@/components/MapContainer'
+  import {
+    WaybillStatus
+  } from '@/assets/js/blockSort'
   export default {
     name: 'WaybillInquiry',
     components: {
@@ -73,31 +76,7 @@
         input3: '',
         tabIndex: '0',
         activitiesList: [],
-        statusList: [{
-          id: 1,
-          title: '待派单',
-        }, {
-          id: 2,
-          title: '待装车',
-        }, {
-          id: 3,
-          title: '待入库',
-        }, {
-          id: 4,
-          title: '已装车',
-        }, {
-          id: 5,
-          title: '已入库',
-        }, {
-          id: 6,
-          title: '已下车',
-        }, {
-          id: 7,
-          title: '已出库',
-        }, {
-          id: 8,
-          title: '已签收',
-        }],
+        statusList: WaybillStatus(),
         geoCoder: null,
         waybillNo: null,
         humitureList: [],
@@ -141,7 +120,7 @@
         // console.log(this.waybillNo, this.tabIndex, 557)
       },
       getList() {
-        getWaybill({
+        getLogisticsWaybill({
           waybillNo: this.waybillNo,
         }).then((res) => {
           if (res.code == 200) {
@@ -153,18 +132,25 @@
               arrList.forEach(async (item) => {
                 item.content = ''
                 let arr = this.statusList.filter((i) => {
-                  return item.status == i.id;
+                  return item.status == i.value;
                 });
                 let yonTitle = ''
                 let phone = ''
-                if (item.car.id) {
+                if (item.car.id && item.user) {
                   yonTitle = item.car.carNo
-                  phone = item.car.user.phone
-                } else if (item.warehouse.id) {
+                  phone = item.user.phone
+                } else if (item.warehouse.id && item.user) {
                   yonTitle = item.warehouse.name
-                  phone = item.warehouse.user.phone
+                  phone = item.user.phone
+                } else if (item.coolerBox.id && item.user) {
+                  yonTitle = item.coolerBox.name
+                  phone = item.user.phone
+                }
+                let travelType = ''
+                if (arr[0].label) {
+                  travelType = arr[0].label
                 }
-                item.content = item.address + '【' + yonTitle + '】' + phone + '  ' + '您的货物' + arr[0].title
+                item.content = item.address + '【' + yonTitle + '】' + phone + '  ' + '您的货物' + travelType
                 // await setTimeout(() => {
                 //   this.reverseGeocode(item.lng, item.lat).then(res => {
                 //     const trapeze = res
@@ -217,6 +203,8 @@
                   item.title = item.car.carNo
                 } else if (item.warehouse.id) {
                   item.title = item.warehouse.name
+                } else if (item.coolerBox.id) {
+                  item.title = item.coolerBox.name
                 }
               })
               this.humitureList = arrlist

+ 4 - 0
src/views/page/Home.vue

@@ -87,6 +87,10 @@
           title: '未入库',
           field: 'waitStorageNum',
         }, {
+          color: '#E6A23C',
+          title: '未装箱',
+          field: 'waitVanningNum',
+        }, {
           color: '#67C23A',
           title: '运送中',
           field: 'inDeliveryNum',

+ 2 - 3
src/views/system/ClientManagement.vue

@@ -28,7 +28,6 @@
 <script>
   import {
     getUser,
-    getUserDetails,
     addUser,
     putUser,
     putResetUser,
@@ -130,8 +129,8 @@
                     type: 'success'
                   });
                   this.getList()
+                  this.staffDialogVisible = false
                 }
-                this.staffDialogVisible = false
                 this.confirmLoading = false
               }).catch(() => {
                 this.confirmLoading = false
@@ -153,8 +152,8 @@
                   type: 'success'
                 });
                 this.getList()
+                this.staffDialogVisible = false
               }
-              this.staffDialogVisible = false
               this.confirmLoading = false
             }).catch(() => {
               this.confirmLoading = false

+ 0 - 1
src/views/system/CompanyManagement.vue

@@ -27,7 +27,6 @@
 <script>
   import {
     getCompany,
-    getCompanyDetails,
     addCompany,
     putCompany,
     delCompany

+ 2 - 2
src/views/system/IncubatorManagement.vue

@@ -22,7 +22,7 @@
       </span>
     </el-dialog>
     <div class="management_card">
-      <el-dialog :visible.sync="importDialogVisible" width="500px" :close-on-click-modal="false" @close="closeDialogil">
+      <el-dialog :visible.sync="importDialogVisible" width="700px" :close-on-click-modal="false" @close="closeDialogil">
         <div class="card_import">
           <div class="card_incubat">
             <forms ref="incubatorRules" labelPosition="left" :formNewList="stateRuleList" :ruleForm="stateRuleForm"
@@ -299,8 +299,8 @@
                   type: 'success'
                 });
                 this.getList()
+                this.staffDialogVisible = false
               }
-              this.staffDialogVisible = false
               this.confirmLoading = false
             }).catch(() => {
               this.confirmLoading = false

+ 8 - 5
src/views/system/MyWaybill.vue

@@ -88,7 +88,6 @@
   } from '@/api/waybill'
   import {
     getWaybill,
-    getWaybillDetails,
     addWaybill,
   } from '@/api/myWaybill'
   import {
@@ -140,7 +139,7 @@
         formList: [{
           type: 'input',
           label: '订单号',
-          field: 'name',
+          field: 'waybillNo',
           placeholder: '请输入订单号',
         }, {
           type: 'select',
@@ -280,8 +279,8 @@
                   type: 'success'
                 });
                 this.getList()
+                this.staffDialogVisible = false
               }
-              this.staffDialogVisible = false
               this.confirmLoading = false
             }).catch(() => {
               this.confirmLoading = false
@@ -295,8 +294,8 @@
                   type: 'success'
                 });
                 this.getList()
+                this.staffDialogVisible = false
               }
-              this.staffDialogVisible = false
               this.confirmLoading = false
             }).catch(() => {
               this.confirmLoading = false
@@ -522,13 +521,15 @@
           waybillImport(formData).then(res => {
             if (res.code == 200) {
               this.bulkImportVisible = false
-              this.importFlag = false
               this.getList()
               this.$message({
                 message: '恭喜你,导入成功',
                 type: 'success'
               });
             }
+            this.importFlag = false
+          }).catch(() => {
+            this.importFlag = false
           })
         } else {
           this.$message({
@@ -544,6 +545,8 @@
           let filename = '运单模板'
           this.blobDownload(response, filename)
           this.downloadFlag = false
+        }).catch(() => {
+          this.downloadFlag = false
         })
       },
       // 上传文件

+ 0 - 1
src/views/system/StoreManagement.vue

@@ -256,7 +256,6 @@
                 });
                 this.getList()
               }
-              this.staffDialogVisible = false
               this.confirmLoading = false
             }).catch(() => {
               this.confirmLoading = false

+ 2 - 2
src/views/system/UserManagement.vue

@@ -166,8 +166,8 @@
                     type: 'success'
                   });
                   this.getList()
+                  this.staffDialogVisible = false
                 }
-                this.staffDialogVisible = false
                 this.confirmLoading = false
               }).catch(() => {
                 this.confirmLoading = false
@@ -190,8 +190,8 @@
                   type: 'success'
                 });
                 this.getList()
+                this.staffDialogVisible = false
               }
-              this.staffDialogVisible = false
               this.confirmLoading = false
             }).catch(() => {
               this.confirmLoading = false

+ 1 - 1
src/views/system/VehicleManagement.vue

@@ -254,8 +254,8 @@
                 });
                 this.getList()
                 this.staffDialogVisible = false
-                this.confirmLoading = false
               }
+              this.confirmLoading = false
             }).catch(() => {
               this.confirmLoading = false
             })

+ 292 - 13
src/views/system/WaybillManagement.vue

@@ -55,9 +55,74 @@
           </div>
         </div>
       </el-dialog>
+      <el-dialog width="700px" :visible.sync="innerVisibleTime" append-to-body :close-on-click-modal="false"
+        @close="closePopup1">
+        <div style="display: flex;margin-bottom: 10px;" v-if="humitureList.length > 0">
+          <div class="flex1_time_title"></div>
+          <el-col :span="12">
+            <div class="flex1_time center_in">开始时间</div>
+          </el-col>
+          <el-col :span="12">
+            <div class="flex1_time center_in">结束时间</div>
+          </el-col>
+        </div>
+        <div style="display: flex;flex-direction: column;" v-if="humitureList.length > 0">
+          <el-form :model="timeRuleForm" :rules="rules" ref="timeRuleForm" label-width="170px" label-position="left"
+            class="demo-ruleForm">
+            <el-form-item :label="item.title" required v-for="(item,index) in humitureList" :key="index">
+              <el-col :span="12">
+                <el-form-item prop="date1">
+                  <el-date-picker style="width: calc(100% - 20px);margin:0px 10px;" v-model="item.startTime"
+                    type="datetime" format="yyyy-MM-dd HH:mm:ss" value-format="yyyy-MM-dd HH:mm:ss" placeholder="开始时间"
+                    @change="timeChange"></el-date-picker>
+                </el-form-item>
+              </el-col>
+              <el-col :span="12">
+                <el-form-item prop="date2">
+                  <el-date-picker style="width: calc(100% - 20px);margin:0px 10px;" v-model="item.endTime"
+                    type="datetime" format="yyyy-MM-dd HH:mm:ss" value-format="yyyy-MM-dd HH:mm:ss" placeholder="结束时间"
+                    @change="timeChangeil"></el-date-picker>
+                </el-form-item>
+              </el-col>
+            </el-form-item>
+          </el-form>
+        </div>
+        <el-empty description="暂无数据" v-else></el-empty>
+        <span slot="footer" class="dialog-footer">
+          <el-button plain @click="innerVisibleTime = false">取 消</el-button>
+          <el-button type="primary" :loading="timeLoading" @click="taskTime">提 交</el-button>
+        </span>
+      </el-dialog>
+      <el-dialog width="700px" :visible.sync="logisticsVisibleTime" append-to-body :close-on-click-modal="false"
+        @close="closePopup2">
+        <div v-if="activitiesList.length > 0">
+          <el-timeline>
+            <el-timeline-item :type="item.field" v-for="(item, index) in activitiesList" :key="index">
+              {{item.content}}<br/>
+              <slot name="timestamp">
+                <el-date-picker style="margin-top: 6px;" v-model="item.createdAt" type="datetime" format="yyyy-MM-dd HH:mm:ss"
+                  value-format="yyyy-MM-dd HH:mm:ss" placeholder="开始时间"></el-date-picker>
+              </slot>
+            </el-timeline-item>
+          </el-timeline>
+        </div>
+        <el-empty description="暂无数据" v-else></el-empty>
+        <span slot="footer" class="dialog-footer">
+          <el-button plain @click="logisticsVisibleTime = false">取 消</el-button>
+          <el-button type="primary" :loading="timeLoading" @click="logisticsTaskTime">提 交</el-button>
+        </span>
+      </el-dialog>
       <span slot="footer" class="dialog-footer">
-        <el-button plain @click="staffDialogVisible = false">取 消</el-button>
-        <el-button type="primary" :loading="confirmLoading" @click="handleAdd">确 定</el-button>
+        <div class="space_between_in">
+          <div style="display: flex;">
+            <el-button v-if="userList.type == 1" type="success" plain @click="missionTime">编辑任务时间</el-button>
+            <el-button v-if="userList.type == 1" type="warning" plain @click="logisticsTime">编辑物流时间</el-button>
+          </div>
+          <div style="display: flex;align-items: center;">
+            <el-button plain @click="staffDialogVisible = false">取 消</el-button>
+            <el-button type="primary" :loading="confirmLoading" @click="handleAdd">确 定</el-button>
+          </div>
+        </div>
       </span>
     </el-dialog>
     <el-dialog title="派单" :visible.sync="sendDialogVisible" width="500px" :close-on-click-modal="false"
@@ -94,18 +159,22 @@
       <tables :suspension="true" :tableList="tableList1" :tableData="tableData1">
       </tables>
       <div style="display: flex;margin-top: 15px;justify-content: flex-end;">
-        <div style="display: flex;align-items: center;margin-right: 10px;">
+        <!-- <div style="display: flex;align-items: center;margin-right: 10px;">
           <span style="font-size: 14px;margin-right: 8px;">湿度展示</span>
           <el-switch v-model="humidity"></el-switch>
-        </div>
+        </div> -->
         <el-button size="medium" type="primary" icon="el-icon-printer" :loading="peintFlag"
           @click="bulkPrint">批量打印</el-button>
       </div>
     </el-dialog>
     <el-dialog title="下载PDF" :visible.sync="pdfDialogVisible" width="400px">
       <div style="display: flex;align-items: center;margin-right: 10px;">
-        <span style="font-size: 14px;margin-right: 8px;">湿度展示</span>
-        <el-switch v-model="humidityil"></el-switch>
+        <span style="font-size: 14px;margin-right: 8px;">运单号:</span>
+        <div class="card_printWay">
+          <span>{{waybillNo}}</span>
+        </div>
+        <!--  <span style="font-size: 14px;margin-right: 8px;">湿度展示</span>
+        <el-switch v-model="humidityil"></el-switch> -->
       </div>
       <span slot="footer" class="dialog-footer">
         <el-button size="medium" @click="pdfDialogVisible = false">取 消</el-button>
@@ -138,7 +207,6 @@
   import Buffer from 'vue-buffer'
   import {
     getWaybill,
-    getWaybillDetails,
     addWaybill,
     putWaybill,
     delWaybill,
@@ -167,6 +235,12 @@
   import {
     getUser
   } from '@/api/user.js'
+  import {
+    getLogisticsWaybill,
+    getWaybillTask,
+    putWaybillTask,
+    putWaybillLogistics
+  } from '@/api/waybillLogistics'
   import actionBar from '@/components/actionBar'
   import tables from '@/components/tables'
   import pagination from '@/components/pagination'
@@ -206,7 +280,7 @@
           icon: 'el-icon-printer',
         }, {
           type: 'print',
-          title: '批量打印pfg',
+          title: '批量打印PDF',
           colour: 'success',
           icon: 'el-icon-printer',
         }, {
@@ -329,19 +403,45 @@
         peintFlag: false,
         humidity: true,
         pdfDialogVisible: false,
-        humidityil: true,
+        humidityil: false,
         waybillNo: '',
         // 运单
         printWaybillVisible: false,
         printData: [],
         definitFlag: false,
         pdfFlag: false,
+        userList: {},
+        innerVisibleTime: false,
+        humitureList: [],
+        timeLoading: false,
+        timeRuleForm: {
+          date1: '',
+          date2: '',
+        },
+        rules: {
+          date1: [{
+            required: true,
+            message: '请选择开始时间',
+            trigger: 'change'
+          }],
+          date2: [{
+            required: true,
+            message: '请选择结束时间',
+            trigger: 'change'
+          }],
+        },
+        logisticsVisibleTime: false,
+        statusList: WaybillStatus(),
+        activitiesList: [],
       }
     },
     mounted() {
       const dataList = formRules();
       this.formRuleList = dataList;
       this.getList()
+      const arr = localStorage.getItem('userList')
+      const userArr = JSON.parse(arr)
+      this.userList = userArr
     },
     methods: {
       // 搜索
@@ -411,8 +511,8 @@
                   type: 'success'
                 });
                 this.getList()
+                this.staffDialogVisible = false
               }
-              this.staffDialogVisible = false
               this.confirmLoading = false
             }).catch(() => {
               this.confirmLoading = false
@@ -426,8 +526,8 @@
                   type: 'success'
                 });
                 this.getList()
+                this.staffDialogVisible = false
               }
-              this.staffDialogVisible = false
               this.confirmLoading = false
             }).catch(() => {
               this.confirmLoading = false
@@ -439,6 +539,153 @@
         // console.log(this.ruleForm,86)
         // console.log(this.senderForm, this.recipientsForm, 665)
       },
+      // 修改任务时间
+      missionTime() {
+        this.innerVisibleTime = true
+        this.getTask()
+      },
+      // 编辑物流时间
+      logisticsTime() {
+        this.logisticsVisibleTime = true
+        this.getlogisticsTimeList()
+      },
+      getlogisticsTimeList() {
+        getLogisticsWaybill({
+          waybillNo: this.waybillNo,
+        }).then((res) => {
+          if (res.code == 200) {
+            var arrList = []
+            if (res.data.list) {
+              arrList = res.data.list
+            }
+            if (arrList.length > 0) {
+              arrList.forEach(async (item) => {
+                item.content = ''
+                let arr = this.statusList.filter((i) => {
+                  return item.status == i.value;
+                });
+                let yonTitle = ''
+                let phone = ''
+                if (item.car.id && item.user) {
+                  yonTitle = item.car.carNo
+                  phone = item.user.phone
+                } else if (item.warehouse.id && item.user) {
+                  yonTitle = item.warehouse.name
+                  phone = item.user.phone
+                } else if (item.coolerBox.id && item.user) {
+                  yonTitle = item.coolerBox.name
+                  phone = item.user.phone
+                }
+                let travelType = ''
+                if (arr[0].label) {
+                  travelType = arr[0].label
+                }
+                item.content = item.address + '【' + yonTitle + '】' + phone + '  ' + '您的货物' + travelType
+              })
+              // this.activitiesList = arrList
+              this.activitiesList = arrList.reverse()
+              this.activitiesList[this.activitiesList.length - 1].field = 'primary'
+            }
+            this.$forceUpdate()
+          }
+        })
+      },
+      // 获取运单列表
+      async getTask() {
+        getWaybillTask({
+          waybillNo: this.waybillNo,
+        }).then(res => {
+          if (res.code == 200) {
+            let arrlist = res.data.list
+            let arrData = []
+            arrlist.forEach(item => {
+              let arril = {
+                id: null,
+                title: '',
+                startTime: '',
+                endTime: '',
+              }
+              if (item.car.id) {
+                arril.title = item.car.carNo
+              } else if (item.warehouse.id) {
+                arril.title = item.warehouse.name
+              } else if (item.coolerBox.id) {
+                arril.title = item.coolerBox.name
+              }
+              arril.id = item.id
+              arril.startTime = item.startTime
+              arril.endTime = item.endTime
+              this.timeRuleForm.date1 = item.startTime
+              this.timeRuleForm.date2 = item.endTime
+              arrData.push(arril)
+            })
+            this.humitureList = arrData
+          }
+        })
+      },
+      // 修改运单任务时间
+      taskTime() {
+        this.$refs['timeRuleForm'].validate((valid) => {
+          if (valid) {
+            let arr = JSON.parse(JSON.stringify(this.humitureList))
+            arr.forEach(item => {
+              delete item.title
+            })
+            this.timeLoading = true
+            putWaybillTask({
+              waybillTaskList: arr,
+            }).then(res => {
+              if (res.code == 200) {
+                this.$message({
+                  message: res.msg,
+                  type: 'success'
+                });
+              }
+              this.innerVisibleTime = false
+              this.timeLoading = false
+            }).catch(() => {
+              this.timeLoading = false
+            })
+          } else {
+            console.log('error submit!!');
+            return false;
+          }
+        });
+      },
+      // 修改物流时间
+      logisticsTaskTime() {
+        const arr = []
+        this.activitiesList.forEach(item => {
+          let timeArr = {
+            id: item.id,
+            time: item.createdAt,
+          }
+          arr.push(timeArr)
+        })
+        this.timeLoading = true
+        putWaybillLogistics({
+          waybillLogistics: arr,
+        }).then(res => {
+          if (res.code == 200) {
+            this.$message({
+              message: res.msg,
+              type: 'success'
+            });
+            this.logisticsVisibleTime = false
+          }
+          this.timeLoading = false
+        }).catch(() => {
+          this.timeLoading = false
+        })
+      },
+      // 选择开始结束时间
+      timeChange(value) {
+        this.timeRuleForm.date1 = value
+      },
+      // 选择开始结束时间
+      timeChangeil(value) {
+        this.timeRuleForm.date2 = value
+      },
       // 添加寄件人
       getSender(value) {
         return new Promise((resolve, reject) => {
@@ -535,6 +782,7 @@
           this.waybillData = row
           this.waybillData.nickName = row.printUser.nickName
         } else if (type == 'edit') {
+          this.waybillNo = row.waybillNo
           this.staffTitle = '编辑'
           this.staffDialogVisible = true
           setTimeout(() => {
@@ -590,6 +838,7 @@
           this.definitFlag = false
           this.printWaybillVisible = false
         } catch (error) {
+          this.definitFlag = false
           throw new Error('请求错误,终止请求');
         }
       },
@@ -622,7 +871,6 @@
           humidityShow: this.humidityil,
         }).then(response => {
           if (response.fileName) {
-            this.pdfFlag = false
             this.pdfDialogVisible = false
             //fileName = decodeURIComponent(filename);//对filename进行转码
             let fileName = decodeURI(response.fileName);
@@ -640,6 +888,9 @@
           } else {
             this.$message.error('未获取到文件名');
           }
+          this.pdfFlag = false
+        }).catch(() => {
+          this.pdfFlag = false
         })
       },
       // 获取pdf
@@ -912,13 +1163,15 @@
           waybillImport(formData).then(res => {
             if (res.code == 200) {
               this.bulkImportVisible = false
-              this.importFlag = false
               this.getList()
               this.$message({
                 message: '恭喜你,导入成功',
                 type: 'success'
               });
             }
+            this.importFlag = false
+          }).catch(() => {
+            this.importFlag = false
           })
         } else {
           this.$message({
@@ -937,6 +1190,8 @@
           // this.blobDownload(response, filename)
           this.blobDownload(response.data, filename)
           this.downloadFlag = false
+        }).catch(() => {
+          this.downloadFlag = false
         })
       },
       // 批量打印
@@ -962,6 +1217,7 @@
           this.peintFlag = false
           this.bulkPrintVisible = false
         } catch (error) {
+          this.peintFlag = false
           throw new Error('请求错误,终止请求');
         }
       },
@@ -1082,6 +1338,12 @@
         this.$refs.recipients.resetForm()
         this.$refs.childRules.resetCheck()
       },
+      closePopup1() {
+        this.humitureList = []
+      },
+      closePopup2() {
+        this.activitiesList = []
+      },
       printClose() {
         this.printData = []
       }
@@ -1143,4 +1405,21 @@
       font-weight: bold;
     }
   }
+
+  .card_time_waybilltask {
+    display: flex;
+    align-items: center;
+    margin: 10px 0px;
+  }
+
+  .flex1_time_title {
+    width: 170px;
+    flex: none;
+  }
+
+  .flex1_time {
+    font-size: 16px;
+    flex: 1;
+    padding: 0px 10px;
+  }
 </style>

+ 15 - 15
src/views/system/client.js

@@ -7,12 +7,12 @@ export const employee = () => {
     label: '序号',
     align: 'center',
   }, {
-    field: 'nickName',
-    label: '姓名',
+    field: 'username',
+    label: '登录账号',
     align: 'center',
   }, {
-    field: 'username',
-    label: '用户名',
+    field: 'nickName',
+    label: '名',
     align: 'center',
   }, {
     field: 'phone',
@@ -55,17 +55,6 @@ export const formRules = () => {
       trigger: 'blur'
     }]
   }, {
-    field: 'username',
-    label: '用户名',
-    placeholder: '请输入用户名',
-    type: 'input',
-    colWidth: 24,
-    rules: [{
-      required: true,
-      message: '请输入用户名',
-      trigger: 'blur'
-    }]
-  }, {
     field: 'phone',
     label: '手机号',
     placeholder: '请输入手机号',
@@ -81,6 +70,17 @@ export const formRules = () => {
       trigger: "blur"
     }]
   }, {
+    field: 'username',
+    label: '登录账号',
+    placeholder: '请输入登录账号',
+    type: 'input',
+    colWidth: 24,
+    rules: [{
+      required: true,
+      message: '请输入登录账号',
+      trigger: 'blur'
+    }]
+  }, {
     field: 'newPassword',
     label: '密码',
     placeholder: '请输入密码',

+ 29 - 9
src/views/system/corporateGovernance.vue

@@ -5,8 +5,8 @@
       <div class="card_govern">
         <div class="card_item_ance">
           <span>公司logo</span>
-          <el-upload action :limit="1" :show-file-list="false" list-type="picture-card" :http-request="selectPicUpload"
-            :on-remove="handleRemove">
+          <el-upload ref="upload" action :limit="1" :show-file-list="false" list-type="picture-card"
+            :http-request="(params) => selectPicUpload(params,'logo')">
             <div class="image_logo center_in" v-if="dialogImageUrl">
               <!-- <img :src="dialogImageUrl" alt="" /> -->
               <el-image class="image_logo_icon" :src="dialogImageUrl" fit="contain"></el-image>
@@ -15,6 +15,17 @@
           </el-upload>
         </div>
         <div class="card_item_ance">
+          <span>公司公章</span>
+          <el-upload ref="upload1" accept=".png" action :limit="1" :show-file-list="false" list-type="picture-card"
+            :http-request="(params) => selectPicUpload(params,'cachet')">
+            <div class="image_logo center_in" v-if="dialogImageUrl1">
+              <!-- <img :src="dialogImageUrl" alt="" /> -->
+              <el-image class="image_logo_icon" :src="dialogImageUrl1" fit="contain"></el-image>
+            </div>
+            <i class="el-icon-plus" v-else></i>
+          </el-upload>
+        </div>
+        <div class="card_item_ance">
           <span>打印拦截</span>
           <el-switch v-model="printIntercept" active-color="#13ce66" inactive-color="#ff4949">
           </el-switch>
@@ -41,6 +52,7 @@
       return {
         printIntercept: '',
         dialogImageUrl: '',
+        dialogImageUrl1: '',
         dialogVisible: false,
         goverList: {},
         saveFlag: false,
@@ -48,7 +60,8 @@
     },
     computed: {
       modifyFlag() {
-        if (this.dialogImageUrl != this.goverList.logo || this.printIntercept != this.goverList.printIntercept) {
+        if (this.dialogImageUrl != this.goverList.logo || this.dialogImageUrl1 != this.goverList.seal || this
+          .printIntercept != this.goverList.printIntercept) {
           return false
         } else {
           return true
@@ -65,12 +78,13 @@
           if (res.code == 200) {
             this.goverList = JSON.parse(JSON.stringify(res.data))
             this.dialogImageUrl = res.data.logo
+            this.dialogImageUrl1 = res.data.seal
             this.printIntercept = res.data.printIntercept
           }
         })
       },
       // 上传\修改公司logo
-      selectPicUpload(file) {
+      selectPicUpload(file, type) {
         const loading = this.$loading({
           lock: true,
           text: '图片上传中...',
@@ -82,25 +96,31 @@
         formData.append('file', this.file);
         getFileToken(formData).then(res => {
           if (res.code == 200) {
-            this.dialogImageUrl = res.data
+            if (type == 'logo') {
+              this.dialogImageUrl = res.data
+              this.$refs.upload.clearFiles()
+            } else {
+              this.dialogImageUrl1 = res.data
+              this.$refs.upload1.clearFiles()
+            }
             this.$forceUpdate()
           } else {
             this.$message.error('上传失败');
           }
           loading.close();
         }).catch(e => {
+          loading.close();
           this.$message.error('上传失败');
         })
       },
-      handleRemove(file, fileList) {
-        console.log(file, fileList);
-      },
       // 保存/修改公司信息
       saveSettings() {
-        if (this.dialogImageUrl != this.goverList.logo || this.printIntercept != this.goverList.printIntercept) {
+        if (this.dialogImageUrl != this.goverList.logo || this.dialogImageUrl1 != this.goverList.seal || this
+          .printIntercept != this.goverList.printIntercept) {
           this.saveFlag = true
           putCompanyMy({
             logo: this.dialogImageUrl,
+            seal: this.dialogImageUrl1,
             printIntercept: this.printIntercept,
           }).then(res => {
             if (res.code == 200) {

+ 57 - 54
src/views/system/incubator.js

@@ -16,60 +16,63 @@ export const incubator = () => {
 
 export const employee = () => {
   return [{
-    field: 'index',
-    label: '序号',
-    align: 'center',
-  }, {
-    field: 'name',
-    label: '名称',
-    align: 'center',
-  }, {
-    field: 'sn',
-    label: 'SN',
-    align: 'center',
-  }, {
-    field: 'status',
-    label: '状态',
-    align: 'center',
-    options: startStatus()
-  }, {
-    field: 'deviceData.T_t',
-    label: '最新温度',
-    align: 'center',
-  }, {
-    field: 'deviceData.T_time',
-    label: '最新记录时间',
-    align: 'center',
-  }, {
-    field: 'action',
-    label: '操作',
-    colWidth: '270px',
-    align: 'center',
-    labelButton: [
-      //   {
-      //   type: 'record',
-      //   label: '记录',
-      //   icon: 'el-icon-s-order',
-      //   style: 'primary',
-      // },
-      {
-        type: 'logs',
-        label: '详情',
-        icon: 'el-icon-tickets',
-        style: 'success',
-      }, {
-        type: 'edit',
-        label: '编辑',
-        icon: 'el-icon-edit',
-        style: 'primary',
-      }, {
-        type: 'del',
-        label: '删除',
-        icon: 'el-icon-delete',
-        style: 'danger',
-      }
-    ]
-  }]
+      field: 'index',
+      label: '序号',
+      align: 'center',
+    }, {
+      field: 'name',
+      label: '名称',
+      align: 'center',
+    }, {
+      field: 'sn',
+      label: 'SN',
+      align: 'center',
+    }, {
+      field: 'status',
+      label: '状态',
+      align: 'center',
+      options: startStatus()
+    },
+    // {
+    //   field: 'deviceData.T_t',
+    //   label: '最新温度',
+    //   align: 'center',
+    // }, {
+    //   field: 'deviceData.T_time',
+    //   label: '最新记录时间',
+    //   align: 'center',
+    // },
+    {
+      field: 'action',
+      label: '操作',
+      colWidth: '270px',
+      align: 'center',
+      labelButton: [
+        //   {
+        //   type: 'record',
+        //   label: '记录',
+        //   icon: 'el-icon-s-order',
+        //   style: 'primary',
+        // },
+        {
+          type: 'logs',
+          label: '详情',
+          icon: 'el-icon-tickets',
+          style: 'success',
+        }, {
+          type: 'edit',
+          label: '编辑',
+          icon: 'el-icon-edit',
+          style: 'primary',
+        }, {
+          type: 'del',
+          label: '删除',
+          icon: 'el-icon-delete',
+          style: 'danger',
+        }
+      ]
+    }
+  ]
 }
 
 export const formRules = () => {

+ 1 - 1
src/views/system/myWaybillTable.js

@@ -205,7 +205,7 @@ export const formRules = () => {
     ],
   }, {
     field: 'quantity',
-    type: 'input',
+    type: 'number',
     label: '数量',
     placeholder: '请输入数量',
     colWidth: 12,

+ 17 - 17
src/views/system/userTable.js

@@ -7,12 +7,16 @@ export const employee = () => {
     label: '序号',
     align: 'center',
   }, {
+    field: 'username',
+    label: '登录账号',
+    align: 'center',
+  }, {
     field: 'nickName',
     label: '姓名',
     align: 'center',
   }, {
-    field: 'username',
-    label: '用户名',
+    field: 'phone',
+    label: '电话号码',
     align: 'center',
   }, {
     field: 'type',
@@ -20,10 +24,6 @@ export const employee = () => {
     align: 'center',
     options: orderStatus()
   }, {
-    field: 'phone',
-    label: '电话号码',
-    align: 'center',
-  }, {
     field: 'action',
     label: '操作',
     colWidth: '260px',
@@ -73,17 +73,6 @@ export const formRules = () => {
       trigger: 'blur'
     }]
   }, {
-    field: 'username',
-    label: '用户名',
-    placeholder: '请输入用户名',
-    type: 'input',
-    colWidth: 24,
-    rules: [{
-      required: true,
-      message: '请输入用户名',
-      trigger: 'blur'
-    }]
-  }, {
     field: 'phone',
     label: '电话号码',
     placeholder: '请输入电话号码',
@@ -99,6 +88,17 @@ export const formRules = () => {
       trigger: "blur"
     }]
   }, {
+    field: 'username',
+    label: '登录账号',
+    placeholder: '请输入登录账号',
+    type: 'input',
+    colWidth: 24,
+    rules: [{
+      required: true,
+      message: '请输入登录账号',
+      trigger: 'blur'
+    }]
+  }, {
     field: 'newPassword',
     label: '密码',
     placeholder: '请输入密码',

+ 1 - 1
src/views/system/waybill.js

@@ -222,7 +222,7 @@ export const formRules = () => {
     ],
   }, {
     field: 'quantity',
-    type: 'input',
+    type: 'number',
     label: '数量',
     placeholder: '请输入数量',
     colWidth: 12,

+ 43 - 65
yarn.lock

@@ -1719,7 +1719,7 @@
 
 "@vue/eslint-config-standard@^6.1.0":
   "integrity" "sha512-9+hrEyflDzsGdlBDl9jPV5DIYUx1TOU5OSQqRDKCrNumrxRj5HRWKuk+ocXWnha6uoNRtLC24mY7d/MwqvBCNw=="
-  "resolved" "https://registry.npmjs.org/@vue/eslint-config-standard/-/eslint-config-standard-6.1.0.tgz"
+  "resolved" "https://registry.npmmirror.com/@vue/eslint-config-standard/-/eslint-config-standard-6.1.0.tgz"
   "version" "6.1.0"
   dependencies:
     "eslint-config-standard" "^16.0.3"
@@ -1891,14 +1891,9 @@
   "resolved" "https://registry.npmjs.org/acorn-import-assertions/-/acorn-import-assertions-1.9.0.tgz"
   "version" "1.9.0"
 
-"acorn-jsx@^5.3.1":
+"acorn-jsx@^5.2.0", "acorn-jsx@^5.3.1":
   "integrity" "sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ=="
-  "resolved" "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.3.2.tgz"
-  "version" "5.3.2"
-
-"acorn-jsx@^5.3.2":
-  "integrity" "sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ=="
-  "resolved" "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.3.2.tgz"
+  "resolved" "https://registry.npmmirror.com/acorn-jsx/-/acorn-jsx-5.3.2.tgz"
   "version" "5.3.2"
 
 "acorn-walk@^8.0.0", "acorn-walk@^8.0.2":
@@ -1906,16 +1901,21 @@
   "resolved" "https://registry.npmjs.org/acorn-walk/-/acorn-walk-8.3.2.tgz"
   "version" "8.3.2"
 
-"acorn@^6.0.0 || ^7.0.0 || ^8.0.0", "acorn@^7.4.0":
-  "integrity" "sha512-nQyp0o1/mNdbTO1PO6kHkwSrmgZ0MT/jCCpNiwbUjGoRN4dlBhqJtoQuCnEOKzgTVwg0ZWiCoQy6SxMebQVh8A=="
-  "resolved" "https://registry.npmjs.org/acorn/-/acorn-7.4.1.tgz"
-  "version" "7.4.1"
-
-"acorn@^8", "acorn@^8.0.4", "acorn@^8.0.5", "acorn@^8.7.1", "acorn@^8.8.2", "acorn@^8.9.0":
+"acorn@^6.0.0 || ^7.0.0 || ^8.0.0", "acorn@^8", "acorn@^8.0.4", "acorn@^8.0.5", "acorn@^8.7.1", "acorn@^8.8.2":
   "integrity" "sha512-Y9rRfJG5jcKOE0CLisYbojUjIrIEE7AGMzA/Sm4BslANhbS+cDMpgBdcPT91oJ7OuJ9hYJBx59RjbhxVnrF8Xg=="
   "resolved" "https://registry.npmjs.org/acorn/-/acorn-8.11.3.tgz"
   "version" "8.11.3"
 
+"acorn@^7.1.1":
+  "integrity" "sha512-nQyp0o1/mNdbTO1PO6kHkwSrmgZ0MT/jCCpNiwbUjGoRN4dlBhqJtoQuCnEOKzgTVwg0ZWiCoQy6SxMebQVh8A=="
+  "resolved" "https://registry.npmmirror.com/acorn/-/acorn-7.4.1.tgz"
+  "version" "7.4.1"
+
+"acorn@^7.4.0":
+  "integrity" "sha512-nQyp0o1/mNdbTO1PO6kHkwSrmgZ0MT/jCCpNiwbUjGoRN4dlBhqJtoQuCnEOKzgTVwg0ZWiCoQy6SxMebQVh8A=="
+  "resolved" "https://registry.npmjs.org/acorn/-/acorn-7.4.1.tgz"
+  "version" "7.4.1"
+
 "address@^1.1.2":
   "integrity" "sha512-4B/qKCfeE/ODUaAUpSwfzazo5x29WD4r3vXiWsB7I2mSDAihwEqKO+g8GELZUQSSAo5e1XTYh3ZVfLyxBc12nA=="
   "resolved" "https://registry.npmjs.org/address/-/address-1.2.2.tgz"
@@ -2903,7 +2903,7 @@
   dependencies:
     "ms" "^2.1.1"
 
-"debug@^4.0.1", "debug@^4.1.0", "debug@^4.1.1", "debug@^4.3.1", "debug@^4.3.2":
+"debug@^4.0.1", "debug@^4.1.0", "debug@^4.1.1", "debug@^4.3.1":
   "integrity" "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ=="
   "resolved" "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz"
   "version" "4.3.4"
@@ -3401,17 +3401,15 @@
   "resolved" "https://registry.npmjs.org/eslint-plugin-promise/-/eslint-plugin-promise-5.2.0.tgz"
   "version" "5.2.0"
 
-"eslint-plugin-vue@^7.0.0", "eslint-plugin-vue@^8.0.3":
-  "integrity" "sha512-28sbtm4l4cOzoO1LtzQPxfxhQABararUb1JtqusQqObJpWX2e/gmVyeYVfepizPFne0Q5cILkYGiBoV36L12Wg=="
-  "resolved" "https://registry.npmjs.org/eslint-plugin-vue/-/eslint-plugin-vue-8.7.1.tgz"
-  "version" "8.7.1"
+"eslint-plugin-vue@^7.0.0":
+  "integrity" "sha512-oVNDqzBC9h3GO+NTgWeLMhhGigy6/bQaQbHS+0z7C4YEu/qK/yxHvca/2PTZtGNPsCrHwOTgKMrwu02A9iPBmw=="
+  "resolved" "https://registry.npmmirror.com/eslint-plugin-vue/-/eslint-plugin-vue-7.20.0.tgz"
+  "version" "7.20.0"
   dependencies:
-    "eslint-utils" "^3.0.0"
+    "eslint-utils" "^2.1.0"
     "natural-compare" "^1.4.0"
-    "nth-check" "^2.0.1"
-    "postcss-selector-parser" "^6.0.9"
-    "semver" "^7.3.5"
-    "vue-eslint-parser" "^8.0.1"
+    "semver" "^6.3.0"
+    "vue-eslint-parser" "^7.10.0"
 
 "eslint-scope@^5.1.1", "eslint-scope@5.1.1":
   "integrity" "sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw=="
@@ -3421,14 +3419,6 @@
     "esrecurse" "^4.3.0"
     "estraverse" "^4.1.1"
 
-"eslint-scope@^7.0.0":
-  "integrity" "sha512-dOt21O7lTMhDM+X9mB4GX+DZrZtCUJPL/wlcTqxyrx5IvO0IYtILdtrQGQp+8n5S0gwSVmOf9NQrjMOgfQZlIg=="
-  "resolved" "https://registry.npmjs.org/eslint-scope/-/eslint-scope-7.2.2.tgz"
-  "version" "7.2.2"
-  dependencies:
-    "esrecurse" "^4.3.0"
-    "estraverse" "^5.2.0"
-
 "eslint-utils@^2.0.0", "eslint-utils@^2.1.0":
   "integrity" "sha512-w94dQYoauyvlDc43XnGB8lU3Zt713vNChgt4EWwhXAP2XkBvndfxF0AgIqKOOasjPIPzj9JqgwkwbCYD0/V3Zg=="
   "resolved" "https://registry.npmjs.org/eslint-utils/-/eslint-utils-2.1.0.tgz"
@@ -3436,16 +3426,9 @@
   dependencies:
     "eslint-visitor-keys" "^1.1.0"
 
-"eslint-utils@^3.0.0":
-  "integrity" "sha512-uuQC43IGctw68pJA1RgbQS8/NP7rch6Cwd4j3ZBtgo4/8Flj4eGE7ZYSZRN3iq5pVUv6GPdW5Z1RFleo84uLDA=="
-  "resolved" "https://registry.npmjs.org/eslint-utils/-/eslint-utils-3.0.0.tgz"
-  "version" "3.0.0"
-  dependencies:
-    "eslint-visitor-keys" "^2.0.0"
-
 "eslint-visitor-keys@^1.1.0":
   "integrity" "sha512-6J72N8UNa462wa/KFODt/PJ3IU60SDpC3QXC1Hjc1BXXpfL2C9R5+AU7jhe0F6GREqVMh4Juu+NY7xn+6dipUQ=="
-  "resolved" "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-1.3.0.tgz"
+  "resolved" "https://registry.npmmirror.com/eslint-visitor-keys/-/eslint-visitor-keys-1.3.0.tgz"
   "version" "1.3.0"
 
 "eslint-visitor-keys@^1.3.0":
@@ -3458,11 +3441,6 @@
   "resolved" "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-2.1.0.tgz"
   "version" "2.1.0"
 
-"eslint-visitor-keys@^3.1.0", "eslint-visitor-keys@^3.4.1":
-  "integrity" "sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag=="
-  "resolved" "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.4.3.tgz"
-  "version" "3.4.3"
-
 "eslint-webpack-plugin@^3.1.0":
   "integrity" "sha512-avrKcGncpPbPSUHX6B3stNGzkKFto3eL+DKM4+VyMrVnhPc3vRczVlCq3uhuFOdRvDHTVXuzwk1ZKUrqDQHQ9w=="
   "resolved" "https://registry.npmjs.org/eslint-webpack-plugin/-/eslint-webpack-plugin-3.2.0.tgz"
@@ -3474,7 +3452,7 @@
     "normalize-path" "^3.0.0"
     "schema-utils" "^4.0.0"
 
-"eslint@^2 || ^3 || ^4 || ^5 || ^6 || ^7.2.0 || ^8", "eslint@^6.2.0 || ^7.0.0 || ^8.0.0", "eslint@^7.0.0", "eslint@^7.0.0 || ^8.0.0", "eslint@^7.12.1", "eslint@^7.32.0", "eslint@^7.5.0 || ^8.0.0", "eslint@>=4.19.1", "eslint@>=5", "eslint@>=5.16.0", "eslint@>=6.0.0", "eslint@>=7.5.0":
+"eslint@^2 || ^3 || ^4 || ^5 || ^6 || ^7.2.0 || ^8", "eslint@^6.2.0 || ^7.0.0 || ^8.0.0", "eslint@^7.0.0", "eslint@^7.0.0 || ^8.0.0", "eslint@^7.12.1", "eslint@^7.32.0", "eslint@^7.5.0 || ^8.0.0", "eslint@>=4.19.1", "eslint@>=5.0.0", "eslint@>=5.16.0", "eslint@>=7.5.0":
   "integrity" "sha512-VHZ8gX+EDfz+97jGcgyGCyRia/dPOd6Xh9yPv8Bl1+SoaIwD+a/vlrOmGRUyOYu7MwUhc7CxqeaDZU13S4+EpA=="
   "resolved" "https://registry.npmjs.org/eslint/-/eslint-7.32.0.tgz"
   "version" "7.32.0"
@@ -3520,6 +3498,15 @@
     "text-table" "^0.2.0"
     "v8-compile-cache" "^2.0.3"
 
+"espree@^6.2.1":
+  "integrity" "sha512-ysCxRQY3WaXJz9tdbWOwuWr5Y/XrPTGX9Kiz3yoUXwW0VZ4w30HTkQLaGx/+ttFjF8i+ACbArnB4ce68a9m5hw=="
+  "resolved" "https://registry.npmmirror.com/espree/-/espree-6.2.1.tgz"
+  "version" "6.2.1"
+  dependencies:
+    "acorn" "^7.1.1"
+    "acorn-jsx" "^5.2.0"
+    "eslint-visitor-keys" "^1.1.0"
+
 "espree@^7.3.0", "espree@^7.3.1":
   "integrity" "sha512-v3JCNCE64umkFpmkFGqzVKsOT0tN1Zr+ueqLZfpV1Ob8e+CEgPWa+OxCoGH3tnhimMKIaBm4m/vaRpJ/krRz2g=="
   "resolved" "https://registry.npmjs.org/espree/-/espree-7.3.1.tgz"
@@ -3529,15 +3516,6 @@
     "acorn-jsx" "^5.3.1"
     "eslint-visitor-keys" "^1.3.0"
 
-"espree@^9.0.0":
-  "integrity" "sha512-oruZaFkjorTpF32kDSI5/75ViwGeZginGGy2NoOSg3Q9bnwlnmDm4HLnkl0RE3n+njDXR037aY1+x58Z/zFdwQ=="
-  "resolved" "https://registry.npmjs.org/espree/-/espree-9.6.1.tgz"
-  "version" "9.6.1"
-  dependencies:
-    "acorn" "^8.9.0"
-    "acorn-jsx" "^5.3.2"
-    "eslint-visitor-keys" "^3.4.1"
-
 "esprima@^4.0.0":
   "integrity" "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A=="
   "resolved" "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz"
@@ -6112,7 +6090,7 @@
   "resolved" "https://registry.npmjs.org/semver/-/semver-5.7.2.tgz"
   "version" "5.7.2"
 
-"semver@^6.0.0", "semver@^6.1.0", "semver@^6.3.1":
+"semver@^6.0.0", "semver@^6.1.0", "semver@^6.3.0", "semver@^6.3.1":
   "integrity" "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA=="
   "resolved" "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz"
   "version" "6.3.1"
@@ -6890,18 +6868,18 @@
   "resolved" "https://registry.npmmirror.com/vue-buffer/-/vue-buffer-0.0.1.tgz"
   "version" "0.0.1"
 
-"vue-eslint-parser@^8.0.1":
-  "integrity" "sha512-dzHGG3+sYwSf6zFBa0Gi9ZDshD7+ad14DGOdTLjruRVgZXe2J+DcZ9iUhyR48z5g1PqRa20yt3Njna/veLJL/g=="
-  "resolved" "https://registry.npmjs.org/vue-eslint-parser/-/vue-eslint-parser-8.3.0.tgz"
-  "version" "8.3.0"
+"vue-eslint-parser@^7.10.0":
+  "integrity" "sha512-qh3VhDLeh773wjgNTl7ss0VejY9bMMa0GoDG2fQVyDzRFdiU3L7fw74tWZDHNQXdZqxO3EveQroa9ct39D2nqg=="
+  "resolved" "https://registry.npmmirror.com/vue-eslint-parser/-/vue-eslint-parser-7.11.0.tgz"
+  "version" "7.11.0"
   dependencies:
-    "debug" "^4.3.2"
-    "eslint-scope" "^7.0.0"
-    "eslint-visitor-keys" "^3.1.0"
-    "espree" "^9.0.0"
+    "debug" "^4.1.1"
+    "eslint-scope" "^5.1.1"
+    "eslint-visitor-keys" "^1.1.0"
+    "espree" "^6.2.1"
     "esquery" "^1.4.0"
     "lodash" "^4.17.21"
-    "semver" "^7.3.5"
+    "semver" "^6.3.0"
 
 "vue-hot-reload-api@^2.3.0":
   "integrity" "sha512-BXq3jwIagosjgNVae6tkHzzIk6a8MHFtzAdwhnV5VlvPTFxDCvIttgSiHWjdGoTJvXtmRu5HacExfdarRcFhog=="