浏览代码

项目维护

zengfanwei 4 周之前
父节点
当前提交
a47bd478b1

+ 356 - 53
package-lock.json

@@ -24,7 +24,7 @@
         "dom-zindex": "1.0.2",
         "driver.js": "1.3.1",
         "echarts": "5.5.0",
-        "element-plus": "file:deps/element-plus.2.7.1.1.tar.gz",
+        "element-plus": "^2.7.1",
         "exceljs": "^4.4.0",
         "file-saver": "2.0.5",
         "html2canvas": "^1.4.1",
@@ -60,6 +60,7 @@
         "@vitejs/plugin-vue-jsx": "^4.0.1",
         "@vue/cli-service": "5.0.8",
         "@vue/compiler-sfc": "3.4.27",
+        "code-inspector-plugin": "^0.20.17",
         "dotenv": "^16.4.7",
         "fs-extra": "^11.2.0",
         "prettier": "^3.3.3",
@@ -594,17 +595,19 @@
       }
     },
     "node_modules/@babel/helper-string-parser": {
-      "version": "7.24.8",
-      "resolved": "https://registry.npmmirror.com/@babel/helper-string-parser/-/helper-string-parser-7.24.8.tgz",
-      "integrity": "sha512-pO9KhhRcuUyGnJWwyEgnRJTSIZHiT+vMD0kPeD+so0l7mxkMT19g3pjY9GTnHySck/hDzq+dtW/4VgnMkippsQ==",
+      "version": "7.27.1",
+      "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.27.1.tgz",
+      "integrity": "sha512-qMlSxKbpRlAridDExk92nSobyDdpPijUq2DW6oDnUqd0iOGxmQjyqhMIihI9+zv4LPyZdRje2cavWPbCbWm3eA==",
+      "license": "MIT",
       "engines": {
         "node": ">=6.9.0"
       }
     },
     "node_modules/@babel/helper-validator-identifier": {
-      "version": "7.24.7",
-      "resolved": "https://registry.npmmirror.com/@babel/helper-validator-identifier/-/helper-validator-identifier-7.24.7.tgz",
-      "integrity": "sha512-rR+PBcQ1SMQDDyF6X0wxtG8QyLCgUB0eRAGguqRLfkCA87l7yAP7ehq8SNj96OOGTO8OBV70KhuFYcIkHXOg0w==",
+      "version": "7.27.1",
+      "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.27.1.tgz",
+      "integrity": "sha512-D2hP9eA+Sqx1kBZgzxZh0y1trbuU+JoDkiEwqhQ36nodYqJwyEIhPSdMNd7lOm/4io72luTPWH20Yda0xOuUow==",
+      "license": "MIT",
       "engines": {
         "node": ">=6.9.0"
       }
@@ -713,11 +716,12 @@
       }
     },
     "node_modules/@babel/parser": {
-      "version": "7.25.6",
-      "resolved": "https://registry.npmmirror.com/@babel/parser/-/parser-7.25.6.tgz",
-      "integrity": "sha512-trGdfBdbD0l1ZPmcJ83eNxB9rbEax4ALFTF7fN386TMYbeCQbyme5cOEXQhbGXKebwGaB/J52w1mrklMcbgy6Q==",
+      "version": "7.28.0",
+      "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.28.0.tgz",
+      "integrity": "sha512-jVZGvOxOuNSsuQuLRTh13nU0AogFlw32w/MT+LV6D3sP5WdbW61E77RnkbaO2dUvmPAYrBDJXGn5gGS6tH4j8g==",
+      "license": "MIT",
       "dependencies": {
-        "@babel/types": "^7.25.6"
+        "@babel/types": "^7.28.0"
       },
       "bin": {
         "parser": "bin/babel-parser.js"
@@ -1948,13 +1952,13 @@
       }
     },
     "node_modules/@babel/types": {
-      "version": "7.25.6",
-      "resolved": "https://registry.npmmirror.com/@babel/types/-/types-7.25.6.tgz",
-      "integrity": "sha512-/l42B1qxpG6RdfYf343Uw1vmDjeNhneUXtzhojE7pDgfpEypmRhI6j1kr17XCVv4Cgl9HdAiQY2x0GwKm7rWCw==",
+      "version": "7.28.2",
+      "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.28.2.tgz",
+      "integrity": "sha512-ruv7Ae4J5dUYULmeXw1gmb7rYRz57OWCPM57pHojnLq/3Z1CK2lNSLTCVjxVk1F/TZHwOZZrOWi0ur95BbLxNQ==",
+      "license": "MIT",
       "dependencies": {
-        "@babel/helper-string-parser": "^7.24.8",
-        "@babel/helper-validator-identifier": "^7.24.7",
-        "to-fast-properties": "^2.0.0"
+        "@babel/helper-string-parser": "^7.27.1",
+        "@babel/helper-validator-identifier": "^7.27.1"
       },
       "engines": {
         "node": ">=6.9.0"
@@ -5200,6 +5204,114 @@
         "node": ">=0.10.0"
       }
     },
+    "node_modules/code-inspector-core": {
+      "version": "0.20.17",
+      "resolved": "https://registry.npmjs.org/code-inspector-core/-/code-inspector-core-0.20.17.tgz",
+      "integrity": "sha512-vZkEfNNFhB5KeBMGSsM4NaPBjmaQfAEMM2iyqn9K1EVpm070RN/aFVu42fmPRGpLqyInj4z9yZozzybCjZ2CIA==",
+      "dev": true,
+      "license": "MIT",
+      "dependencies": {
+        "@vue/compiler-dom": "^3.5.13",
+        "chalk": "^4.1.1",
+        "dotenv": "^16.1.4",
+        "launch-ide": "1.0.8",
+        "portfinder": "^1.0.28"
+      }
+    },
+    "node_modules/code-inspector-core/node_modules/@vue/compiler-core": {
+      "version": "3.5.18",
+      "resolved": "https://registry.npmjs.org/@vue/compiler-core/-/compiler-core-3.5.18.tgz",
+      "integrity": "sha512-3slwjQrrV1TO8MoXgy3aynDQ7lslj5UqDxuHnrzHtpON5CBinhWjJETciPngpin/T3OuW3tXUf86tEurusnztw==",
+      "dev": true,
+      "license": "MIT",
+      "dependencies": {
+        "@babel/parser": "^7.28.0",
+        "@vue/shared": "3.5.18",
+        "entities": "^4.5.0",
+        "estree-walker": "^2.0.2",
+        "source-map-js": "^1.2.1"
+      }
+    },
+    "node_modules/code-inspector-core/node_modules/@vue/compiler-dom": {
+      "version": "3.5.18",
+      "resolved": "https://registry.npmjs.org/@vue/compiler-dom/-/compiler-dom-3.5.18.tgz",
+      "integrity": "sha512-RMbU6NTU70++B1JyVJbNbeFkK+A+Q7y9XKE2EM4NLGm2WFR8x9MbAtWxPPLdm0wUkuZv9trpwfSlL6tjdIa1+A==",
+      "dev": true,
+      "license": "MIT",
+      "dependencies": {
+        "@vue/compiler-core": "3.5.18",
+        "@vue/shared": "3.5.18"
+      }
+    },
+    "node_modules/code-inspector-core/node_modules/@vue/shared": {
+      "version": "3.5.18",
+      "resolved": "https://registry.npmjs.org/@vue/shared/-/shared-3.5.18.tgz",
+      "integrity": "sha512-cZy8Dq+uuIXbxCZpuLd2GJdeSO/lIzIspC2WtkqIpje5QyFbvLaI5wZtdUjLHjGZrlVX6GilejatWwVYYRc8tA==",
+      "dev": true,
+      "license": "MIT"
+    },
+    "node_modules/code-inspector-core/node_modules/chalk": {
+      "version": "4.1.2",
+      "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz",
+      "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==",
+      "dev": true,
+      "license": "MIT",
+      "dependencies": {
+        "ansi-styles": "^4.1.0",
+        "supports-color": "^7.1.0"
+      },
+      "engines": {
+        "node": ">=10"
+      },
+      "funding": {
+        "url": "https://github.com/chalk/chalk?sponsor=1"
+      }
+    },
+    "node_modules/code-inspector-core/node_modules/entities": {
+      "version": "4.5.0",
+      "resolved": "https://registry.npmjs.org/entities/-/entities-4.5.0.tgz",
+      "integrity": "sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw==",
+      "dev": true,
+      "license": "BSD-2-Clause",
+      "engines": {
+        "node": ">=0.12"
+      },
+      "funding": {
+        "url": "https://github.com/fb55/entities?sponsor=1"
+      }
+    },
+    "node_modules/code-inspector-plugin": {
+      "version": "0.20.17",
+      "resolved": "https://registry.npmjs.org/code-inspector-plugin/-/code-inspector-plugin-0.20.17.tgz",
+      "integrity": "sha512-qYL/3xLCDbmMwmmZGFyvSDCrkxn2VmgDn3OHBis8nbtQHMLbzbivj2DgluqouqT2M2rTalx8nQGvJhKfFEllEw==",
+      "dev": true,
+      "license": "MIT",
+      "dependencies": {
+        "chalk": "4.1.1",
+        "code-inspector-core": "0.20.17",
+        "dotenv": "^16.3.1",
+        "esbuild-code-inspector-plugin": "0.20.17",
+        "vite-code-inspector-plugin": "0.20.17",
+        "webpack-code-inspector-plugin": "0.20.17"
+      }
+    },
+    "node_modules/code-inspector-plugin/node_modules/chalk": {
+      "version": "4.1.1",
+      "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.1.tgz",
+      "integrity": "sha512-diHzdDKxcU+bAsUboHLPEDQiw0qEe0qd7SYUn3HgcFlWgbDcfLGswOHYeGrHKzG9z6UYf01d9VFMfZxPM1xZSg==",
+      "dev": true,
+      "license": "MIT",
+      "dependencies": {
+        "ansi-styles": "^4.1.0",
+        "supports-color": "^7.1.0"
+      },
+      "engines": {
+        "node": ">=10"
+      },
+      "funding": {
+        "url": "https://github.com/chalk/chalk?sponsor=1"
+      }
+    },
     "node_modules/codepage": {
       "version": "1.14.0",
       "resolved": "https://registry.npmmirror.com/codepage/-/codepage-1.14.0.tgz",
@@ -6655,9 +6767,9 @@
       "integrity": "sha512-kMb204zvK3PsSlgvvwzI3wBIcAw15tRkYk+NQdsjdDtcQWTp2RABbMQ9rUBy8KNEOM+/E6ep+XC3AykiWZld4g=="
     },
     "node_modules/element-plus": {
-      "version": "0.0.0-dev.1",
-      "resolved": "file:deps/element-plus.2.7.1.1.tar.gz",
-      "integrity": "sha512-9uORewtaeoznBJlEWqVqNriXNWOvUGiHG+Sj1hNdCjhlFyHA5Zk8EYf3ZdE/MoOG9qBcNxwVbudBdhxoKek4cA==",
+      "version": "2.10.4",
+      "resolved": "https://registry.npmjs.org/element-plus/-/element-plus-2.10.4.tgz",
+      "integrity": "sha512-UD4elWHrCnp1xlPhbXmVcaKFLCRaRAY6WWRwemGfGW3ceIjXm9fSYc9RNH3AiOEA6Ds1p9ZvhCs76CR9J8Vd+A==",
       "license": "MIT",
       "dependencies": {
         "@ctrl/tinycolor": "^3.4.1",
@@ -6668,7 +6780,7 @@
         "@types/lodash-es": "^4.17.6",
         "@vueuse/core": "^9.1.0",
         "async-validator": "^4.2.5",
-        "dayjs": "^1.11.3",
+        "dayjs": "^1.11.13",
         "escape-html": "^1.0.3",
         "lodash": "^4.17.21",
         "lodash-es": "^4.17.21",
@@ -6753,6 +6865,12 @@
         }
       }
     },
+    "node_modules/element-plus/node_modules/dayjs": {
+      "version": "1.11.13",
+      "resolved": "https://registry.npmjs.org/dayjs/-/dayjs-1.11.13.tgz",
+      "integrity": "sha512-oaMBel6gjolK862uaPQOVTA7q3TZhuSvuMQAAglQDOWYO9A91IrAOUJEyKVlqJlHE0vq5p5UXxzdPfMH/x6xNg==",
+      "license": "MIT"
+    },
     "node_modules/emoji-regex": {
       "version": "8.0.0",
       "resolved": "https://registry.npmmirror.com/emoji-regex/-/emoji-regex-8.0.0.tgz",
@@ -6886,6 +7004,16 @@
         "@esbuild/win32-x64": "0.21.2"
       }
     },
+    "node_modules/esbuild-code-inspector-plugin": {
+      "version": "0.20.17",
+      "resolved": "https://registry.npmjs.org/esbuild-code-inspector-plugin/-/esbuild-code-inspector-plugin-0.20.17.tgz",
+      "integrity": "sha512-YN0y8lVDCOWzfQlivhuxMYtjp0B2bqho1zP0RetdjsAXCuSgwq1Dj1gc5z0sT8iJGhFaKsXmLls2crB5uupcvg==",
+      "dev": true,
+      "license": "MIT",
+      "dependencies": {
+        "code-inspector-core": "0.20.17"
+      }
+    },
     "node_modules/escalade": {
       "version": "3.2.0",
       "resolved": "https://registry.npmmirror.com/escalade/-/escalade-3.2.0.tgz",
@@ -8461,6 +8589,34 @@
         "launch-editor": "^2.6.1"
       }
     },
+    "node_modules/launch-ide": {
+      "version": "1.0.8",
+      "resolved": "https://registry.npmjs.org/launch-ide/-/launch-ide-1.0.8.tgz",
+      "integrity": "sha512-DD0bSMGCx3R94zHR//ZynWpjkcimnAhbAae8frLJQJ5gK37wX/ZpLOU9Hw4cF6VklQVA7ZplcHKzJSDzq3YmIw==",
+      "dev": true,
+      "license": "MIT",
+      "dependencies": {
+        "chalk": "^4.1.1",
+        "dotenv": "^16.1.4"
+      }
+    },
+    "node_modules/launch-ide/node_modules/chalk": {
+      "version": "4.1.2",
+      "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz",
+      "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==",
+      "dev": true,
+      "license": "MIT",
+      "dependencies": {
+        "ansi-styles": "^4.1.0",
+        "supports-color": "^7.1.0"
+      },
+      "engines": {
+        "node": ">=10"
+      },
+      "funding": {
+        "url": "https://github.com/chalk/chalk?sponsor=1"
+      }
+    },
     "node_modules/lazystream": {
       "version": "1.0.1",
       "resolved": "https://registry.npmmirror.com/lazystream/-/lazystream-1.0.1.tgz",
@@ -11760,14 +11916,6 @@
         "node": ">=14.14"
       }
     },
-    "node_modules/to-fast-properties": {
-      "version": "2.0.0",
-      "resolved": "https://registry.npmmirror.com/to-fast-properties/-/to-fast-properties-2.0.0.tgz",
-      "integrity": "sha512-/OaKK0xYrs3DmxRYqL/yDc+FxFUVYhDlXMhRmv3z915w2HF1tnN1omB354j8VUGO/hbRzyD6Y3sA7v7GS/ceog==",
-      "engines": {
-        "node": ">=4"
-      }
-    },
     "node_modules/to-regex-range": {
       "version": "5.0.1",
       "resolved": "https://registry.npmmirror.com/to-regex-range/-/to-regex-range-5.0.1.tgz",
@@ -12282,6 +12430,16 @@
         }
       }
     },
+    "node_modules/vite-code-inspector-plugin": {
+      "version": "0.20.17",
+      "resolved": "https://registry.npmjs.org/vite-code-inspector-plugin/-/vite-code-inspector-plugin-0.20.17.tgz",
+      "integrity": "sha512-WdAEvVZCtvJR/xFGaObdI23ic9umqf8BIAaROetsICsJaXnS0AqvtbAONGgfQ7zLXOBv9PJAuIgICkIDFsCnZA==",
+      "dev": true,
+      "license": "MIT",
+      "dependencies": {
+        "code-inspector-core": "0.20.17"
+      }
+    },
     "node_modules/vite-plugin-html": {
       "version": "3.2.2",
       "resolved": "https://registry.npmmirror.com/vite-plugin-html/-/vite-plugin-html-3.2.2.tgz",
@@ -13177,6 +13335,16 @@
         "node": ">=0.10.0"
       }
     },
+    "node_modules/webpack-code-inspector-plugin": {
+      "version": "0.20.17",
+      "resolved": "https://registry.npmjs.org/webpack-code-inspector-plugin/-/webpack-code-inspector-plugin-0.20.17.tgz",
+      "integrity": "sha512-MxPJyU9ob7pgv5tJpBGQrUKCRWa+nXuNsZPdvFr5t4TTlEXUCDp5n3U8P8AEb28CFzLnG+8bzaIcs5IBx14C1A==",
+      "dev": true,
+      "license": "MIT",
+      "dependencies": {
+        "code-inspector-core": "0.20.17"
+      }
+    },
     "node_modules/webpack-dev-middleware": {
       "version": "5.3.3",
       "resolved": "https://registry.npmmirror.com/webpack-dev-middleware/-/webpack-dev-middleware-5.3.3.tgz",
@@ -14042,14 +14210,14 @@
       }
     },
     "@babel/helper-string-parser": {
-      "version": "7.24.8",
-      "resolved": "https://registry.npmmirror.com/@babel/helper-string-parser/-/helper-string-parser-7.24.8.tgz",
-      "integrity": "sha512-pO9KhhRcuUyGnJWwyEgnRJTSIZHiT+vMD0kPeD+so0l7mxkMT19g3pjY9GTnHySck/hDzq+dtW/4VgnMkippsQ=="
+      "version": "7.27.1",
+      "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.27.1.tgz",
+      "integrity": "sha512-qMlSxKbpRlAridDExk92nSobyDdpPijUq2DW6oDnUqd0iOGxmQjyqhMIihI9+zv4LPyZdRje2cavWPbCbWm3eA=="
     },
     "@babel/helper-validator-identifier": {
-      "version": "7.24.7",
-      "resolved": "https://registry.npmmirror.com/@babel/helper-validator-identifier/-/helper-validator-identifier-7.24.7.tgz",
-      "integrity": "sha512-rR+PBcQ1SMQDDyF6X0wxtG8QyLCgUB0eRAGguqRLfkCA87l7yAP7ehq8SNj96OOGTO8OBV70KhuFYcIkHXOg0w=="
+      "version": "7.27.1",
+      "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.27.1.tgz",
+      "integrity": "sha512-D2hP9eA+Sqx1kBZgzxZh0y1trbuU+JoDkiEwqhQ36nodYqJwyEIhPSdMNd7lOm/4io72luTPWH20Yda0xOuUow=="
     },
     "@babel/helper-validator-option": {
       "version": "7.24.8",
@@ -14133,11 +14301,11 @@
       }
     },
     "@babel/parser": {
-      "version": "7.25.6",
-      "resolved": "https://registry.npmmirror.com/@babel/parser/-/parser-7.25.6.tgz",
-      "integrity": "sha512-trGdfBdbD0l1ZPmcJ83eNxB9rbEax4ALFTF7fN386TMYbeCQbyme5cOEXQhbGXKebwGaB/J52w1mrklMcbgy6Q==",
+      "version": "7.28.0",
+      "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.28.0.tgz",
+      "integrity": "sha512-jVZGvOxOuNSsuQuLRTh13nU0AogFlw32w/MT+LV6D3sP5WdbW61E77RnkbaO2dUvmPAYrBDJXGn5gGS6tH4j8g==",
       "requires": {
-        "@babel/types": "^7.25.6"
+        "@babel/types": "^7.28.0"
       }
     },
     "@babel/plugin-bugfix-firefox-class-in-computed-class-key": {
@@ -14934,13 +15102,12 @@
       }
     },
     "@babel/types": {
-      "version": "7.25.6",
-      "resolved": "https://registry.npmmirror.com/@babel/types/-/types-7.25.6.tgz",
-      "integrity": "sha512-/l42B1qxpG6RdfYf343Uw1vmDjeNhneUXtzhojE7pDgfpEypmRhI6j1kr17XCVv4Cgl9HdAiQY2x0GwKm7rWCw==",
+      "version": "7.28.2",
+      "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.28.2.tgz",
+      "integrity": "sha512-ruv7Ae4J5dUYULmeXw1gmb7rYRz57OWCPM57pHojnLq/3Z1CK2lNSLTCVjxVk1F/TZHwOZZrOWi0ur95BbLxNQ==",
       "requires": {
-        "@babel/helper-string-parser": "^7.24.8",
-        "@babel/helper-validator-identifier": "^7.24.7",
-        "to-fast-properties": "^2.0.0"
+        "@babel/helper-string-parser": "^7.27.1",
+        "@babel/helper-validator-identifier": "^7.27.1"
       }
     },
     "@ctrl/tinycolor": {
@@ -17436,6 +17603,92 @@
         }
       }
     },
+    "code-inspector-core": {
+      "version": "0.20.17",
+      "resolved": "https://registry.npmjs.org/code-inspector-core/-/code-inspector-core-0.20.17.tgz",
+      "integrity": "sha512-vZkEfNNFhB5KeBMGSsM4NaPBjmaQfAEMM2iyqn9K1EVpm070RN/aFVu42fmPRGpLqyInj4z9yZozzybCjZ2CIA==",
+      "dev": true,
+      "requires": {
+        "@vue/compiler-dom": "^3.5.13",
+        "chalk": "^4.1.1",
+        "dotenv": "^16.1.4",
+        "launch-ide": "1.0.8",
+        "portfinder": "^1.0.28"
+      },
+      "dependencies": {
+        "@vue/compiler-core": {
+          "version": "3.5.18",
+          "resolved": "https://registry.npmjs.org/@vue/compiler-core/-/compiler-core-3.5.18.tgz",
+          "integrity": "sha512-3slwjQrrV1TO8MoXgy3aynDQ7lslj5UqDxuHnrzHtpON5CBinhWjJETciPngpin/T3OuW3tXUf86tEurusnztw==",
+          "dev": true,
+          "requires": {
+            "@babel/parser": "^7.28.0",
+            "@vue/shared": "3.5.18",
+            "entities": "^4.5.0",
+            "estree-walker": "^2.0.2",
+            "source-map-js": "^1.2.1"
+          }
+        },
+        "@vue/compiler-dom": {
+          "version": "3.5.18",
+          "resolved": "https://registry.npmjs.org/@vue/compiler-dom/-/compiler-dom-3.5.18.tgz",
+          "integrity": "sha512-RMbU6NTU70++B1JyVJbNbeFkK+A+Q7y9XKE2EM4NLGm2WFR8x9MbAtWxPPLdm0wUkuZv9trpwfSlL6tjdIa1+A==",
+          "dev": true,
+          "requires": {
+            "@vue/compiler-core": "3.5.18",
+            "@vue/shared": "3.5.18"
+          }
+        },
+        "@vue/shared": {
+          "version": "3.5.18",
+          "resolved": "https://registry.npmjs.org/@vue/shared/-/shared-3.5.18.tgz",
+          "integrity": "sha512-cZy8Dq+uuIXbxCZpuLd2GJdeSO/lIzIspC2WtkqIpje5QyFbvLaI5wZtdUjLHjGZrlVX6GilejatWwVYYRc8tA==",
+          "dev": true
+        },
+        "chalk": {
+          "version": "4.1.2",
+          "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz",
+          "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==",
+          "dev": true,
+          "requires": {
+            "ansi-styles": "^4.1.0",
+            "supports-color": "^7.1.0"
+          }
+        },
+        "entities": {
+          "version": "4.5.0",
+          "resolved": "https://registry.npmjs.org/entities/-/entities-4.5.0.tgz",
+          "integrity": "sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw==",
+          "dev": true
+        }
+      }
+    },
+    "code-inspector-plugin": {
+      "version": "0.20.17",
+      "resolved": "https://registry.npmjs.org/code-inspector-plugin/-/code-inspector-plugin-0.20.17.tgz",
+      "integrity": "sha512-qYL/3xLCDbmMwmmZGFyvSDCrkxn2VmgDn3OHBis8nbtQHMLbzbivj2DgluqouqT2M2rTalx8nQGvJhKfFEllEw==",
+      "dev": true,
+      "requires": {
+        "chalk": "4.1.1",
+        "code-inspector-core": "0.20.17",
+        "dotenv": "^16.3.1",
+        "esbuild-code-inspector-plugin": "0.20.17",
+        "vite-code-inspector-plugin": "0.20.17",
+        "webpack-code-inspector-plugin": "0.20.17"
+      },
+      "dependencies": {
+        "chalk": {
+          "version": "4.1.1",
+          "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.1.tgz",
+          "integrity": "sha512-diHzdDKxcU+bAsUboHLPEDQiw0qEe0qd7SYUn3HgcFlWgbDcfLGswOHYeGrHKzG9z6UYf01d9VFMfZxPM1xZSg==",
+          "dev": true,
+          "requires": {
+            "ansi-styles": "^4.1.0",
+            "supports-color": "^7.1.0"
+          }
+        }
+      }
+    },
     "codepage": {
       "version": "1.14.0",
       "resolved": "https://registry.npmmirror.com/codepage/-/codepage-1.14.0.tgz",
@@ -18571,8 +18824,9 @@
       "integrity": "sha512-kMb204zvK3PsSlgvvwzI3wBIcAw15tRkYk+NQdsjdDtcQWTp2RABbMQ9rUBy8KNEOM+/E6ep+XC3AykiWZld4g=="
     },
     "element-plus": {
-      "version": "file:deps/element-plus.2.7.1.1.tar.gz",
-      "integrity": "sha512-9uORewtaeoznBJlEWqVqNriXNWOvUGiHG+Sj1hNdCjhlFyHA5Zk8EYf3ZdE/MoOG9qBcNxwVbudBdhxoKek4cA==",
+      "version": "2.10.4",
+      "resolved": "https://registry.npmjs.org/element-plus/-/element-plus-2.10.4.tgz",
+      "integrity": "sha512-UD4elWHrCnp1xlPhbXmVcaKFLCRaRAY6WWRwemGfGW3ceIjXm9fSYc9RNH3AiOEA6Ds1p9ZvhCs76CR9J8Vd+A==",
       "requires": {
         "@ctrl/tinycolor": "^3.4.1",
         "@element-plus/icons-vue": "^2.3.1",
@@ -18582,7 +18836,7 @@
         "@types/lodash-es": "^4.17.6",
         "@vueuse/core": "^9.1.0",
         "async-validator": "^4.2.5",
-        "dayjs": "^1.11.3",
+        "dayjs": "^1.11.13",
         "escape-html": "^1.0.3",
         "lodash": "^4.17.21",
         "lodash-es": "^4.17.21",
@@ -18635,6 +18889,11 @@
               "requires": {}
             }
           }
+        },
+        "dayjs": {
+          "version": "1.11.13",
+          "resolved": "https://registry.npmjs.org/dayjs/-/dayjs-1.11.13.tgz",
+          "integrity": "sha512-oaMBel6gjolK862uaPQOVTA7q3TZhuSvuMQAAglQDOWYO9A91IrAOUJEyKVlqJlHE0vq5p5UXxzdPfMH/x6xNg=="
         }
       }
     },
@@ -18749,6 +19008,15 @@
         "@esbuild/win32-x64": "0.21.2"
       }
     },
+    "esbuild-code-inspector-plugin": {
+      "version": "0.20.17",
+      "resolved": "https://registry.npmjs.org/esbuild-code-inspector-plugin/-/esbuild-code-inspector-plugin-0.20.17.tgz",
+      "integrity": "sha512-YN0y8lVDCOWzfQlivhuxMYtjp0B2bqho1zP0RetdjsAXCuSgwq1Dj1gc5z0sT8iJGhFaKsXmLls2crB5uupcvg==",
+      "dev": true,
+      "requires": {
+        "code-inspector-core": "0.20.17"
+      }
+    },
     "escalade": {
       "version": "3.2.0",
       "resolved": "https://registry.npmmirror.com/escalade/-/escalade-3.2.0.tgz",
@@ -20005,6 +20273,28 @@
         "launch-editor": "^2.6.1"
       }
     },
+    "launch-ide": {
+      "version": "1.0.8",
+      "resolved": "https://registry.npmjs.org/launch-ide/-/launch-ide-1.0.8.tgz",
+      "integrity": "sha512-DD0bSMGCx3R94zHR//ZynWpjkcimnAhbAae8frLJQJ5gK37wX/ZpLOU9Hw4cF6VklQVA7ZplcHKzJSDzq3YmIw==",
+      "dev": true,
+      "requires": {
+        "chalk": "^4.1.1",
+        "dotenv": "^16.1.4"
+      },
+      "dependencies": {
+        "chalk": {
+          "version": "4.1.2",
+          "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz",
+          "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==",
+          "dev": true,
+          "requires": {
+            "ansi-styles": "^4.1.0",
+            "supports-color": "^7.1.0"
+          }
+        }
+      }
+    },
     "lazystream": {
       "version": "1.0.1",
       "resolved": "https://registry.npmmirror.com/lazystream/-/lazystream-1.0.1.tgz",
@@ -22572,11 +22862,6 @@
       "resolved": "https://registry.npmmirror.com/tmp/-/tmp-0.2.3.tgz",
       "integrity": "sha512-nZD7m9iCPC5g0pYmcaxogYKggSfLsdxl8of3Q/oIbqCqLLIO9IAF0GWjX1z9NZRHPiXv8Wex4yDCaZsgEw0Y8w=="
     },
-    "to-fast-properties": {
-      "version": "2.0.0",
-      "resolved": "https://registry.npmmirror.com/to-fast-properties/-/to-fast-properties-2.0.0.tgz",
-      "integrity": "sha512-/OaKK0xYrs3DmxRYqL/yDc+FxFUVYhDlXMhRmv3z915w2HF1tnN1omB354j8VUGO/hbRzyD6Y3sA7v7GS/ceog=="
-    },
     "to-regex-range": {
       "version": "5.0.1",
       "resolved": "https://registry.npmmirror.com/to-regex-range/-/to-regex-range-5.0.1.tgz",
@@ -23107,6 +23392,15 @@
         }
       }
     },
+    "vite-code-inspector-plugin": {
+      "version": "0.20.17",
+      "resolved": "https://registry.npmjs.org/vite-code-inspector-plugin/-/vite-code-inspector-plugin-0.20.17.tgz",
+      "integrity": "sha512-WdAEvVZCtvJR/xFGaObdI23ic9umqf8BIAaROetsICsJaXnS0AqvtbAONGgfQ7zLXOBv9PJAuIgICkIDFsCnZA==",
+      "dev": true,
+      "requires": {
+        "code-inspector-core": "0.20.17"
+      }
+    },
     "vite-plugin-html": {
       "version": "3.2.2",
       "resolved": "https://registry.npmmirror.com/vite-plugin-html/-/vite-plugin-html-3.2.2.tgz",
@@ -23530,6 +23824,15 @@
         }
       }
     },
+    "webpack-code-inspector-plugin": {
+      "version": "0.20.17",
+      "resolved": "https://registry.npmjs.org/webpack-code-inspector-plugin/-/webpack-code-inspector-plugin-0.20.17.tgz",
+      "integrity": "sha512-MxPJyU9ob7pgv5tJpBGQrUKCRWa+nXuNsZPdvFr5t4TTlEXUCDp5n3U8P8AEb28CFzLnG+8bzaIcs5IBx14C1A==",
+      "dev": true,
+      "requires": {
+        "code-inspector-core": "0.20.17"
+      }
+    },
     "webpack-dev-middleware": {
       "version": "5.3.3",
       "resolved": "https://registry.npmmirror.com/webpack-dev-middleware/-/webpack-dev-middleware-5.3.3.tgz",

+ 19 - 0
src/api/lc/project.js

@@ -26,6 +26,25 @@ export function insertLcProject(data) {
     })
 }
 
+//通过id获取项目分类信息
+export function getLcProjectTypeById() {
+    return request({
+        url: '/LcProjectType/getLcProjectTypeById',
+        method: 'get',
+
+    })
+}
+
+
+//新增项目
+export function getAllLcProjectTypes(data) {
+    return request({
+        url: '/LcProjectType/getAllLcProjectTypes',
+        method: 'post',
+        data,
+    })
+}
+
 
 
 

+ 1 - 1
src/auto-imports.d.ts

@@ -65,6 +65,6 @@ declare global {
 // for type re-export
 declare global {
   // @ts-ignore
-  export type { Component, ComponentPublicInstance, ComputedRef, DirectiveBinding, ExtractDefaultPropTypes, ExtractPropTypes, ExtractPublicPropTypes, InjectionKey, PropType, Ref, MaybeRef, MaybeRefOrGetter, VNode, WritableComputedRef } from 'vue'
+  export type { Component, ComponentPublicInstance, ComputedRef, ExtractDefaultPropTypes, ExtractPropTypes, ExtractPublicPropTypes, InjectionKey, PropType, Ref, VNode, WritableComputedRef } from 'vue'
   import('vue')
 }

+ 11 - 10
src/views/logisticsMaterials/logisticsBasicData/enterpriseInformation/index.vue

@@ -48,7 +48,7 @@
                                         </el-button>
                                     </template>
                                 </el-table-column>
-                            </el-table> 
+                            </el-table>
                         </div>
                         <div>
                             <el-pagination :current-page="pageNumber" :page-size="pageSize"
@@ -112,8 +112,9 @@
             </el-tabs>
         </div>
 
-        <el-dialog v-model="centerDialogVisible" :title="(addItemForm.companyCode ? '编辑' : '新增') + currentTabLabel"
-            width="800" center @close="handleDialogClose">
+        <el-dialog v-model="centerDialogVisible"
+            :title="(addItemForm.id ? '编辑' : '新增') + (addItemForm.companyType == '0' ? '供应商' : '生产厂家')" width="800"
+            center @close="handleDialogClose">
             <template #footer>
                 <el-form ref="ruleFormRef" :model="addItemForm" label-width="auto" :rules="formRules">
                     <el-row type="flex" justify="center" :gutter="20">
@@ -275,7 +276,7 @@ const handleDialogClose = () => {
 
 const editItem = (row) => {
     if (row) {
-        addItemForm.value = row
+        addItemForm.value = {...row}
     }
     centerDialogVisible.value = true
 }
@@ -305,13 +306,13 @@ const changeDelFlag = (row) => {
         distinguishCancelAndClose: true,
         dangerouslyUseHTMLString: true
     }).then(() => {
-        let params = {id: row.id, delFlag: row.delFlag == '0' ? '1' : '0'}
+        let params = { id: row.id, delFlag: row.delFlag == '0' ? '1' : '0' }
         insertLcCompany(params).then(res => {
-                ElMessage.success(row.delFlag == '0' ? '停用成功' : '启用成功')
-                queryCompanyList()
-            }).catch(err => {
-                // ElMessage.error(err.message)
-            })
+            ElMessage.success(row.delFlag == '0' ? '停用成功' : '启用成功')
+            queryCompanyList()
+        }).catch(err => {
+            // ElMessage.error(err.message)
+        })
     }).catch((action) => {
         if (action === 'cancel') {
         }

+ 2 - 2
src/views/logisticsMaterials/logisticsBasicData/projectInformation/index.vue

@@ -46,7 +46,7 @@
     <el-dialog v-model="showDialog" :close-on-click-modal="false" :close-on-press-escape="false"
         :title="(currentEditCode ? '编辑' : '新增') + '项目'" width="100%" destroy-on-close fullscreen  @close="handleDialogClose">
         <!-- <YpPrintName :ypPrintNameDetail="ypPrintNameDetail" @closeYpPrintNameEditFor="closeYpPrintName" /> -->
-        <info :currentEditCode="currentEditCode"></info>
+        <info :currentEditCode="currentEditCode" @handleDialogClose="handleDialogClose"></info>
     </el-dialog>
 </template>
 <script setup name="YpDict">
@@ -54,7 +54,7 @@ import { ref, onMounted, nextTick } from 'vue'
 import { ElMessage, ElMessageBox } from 'element-plus'
 import { getLcProjectList, insertLcProject } from '@/api/lc/project.js'
 import searchArea from '@/components/searchArea/index.vue';
-import info from '@/views/logisticsMaterials/procurement/departmentProcurementPlan/info.vue';
+import info from '@/views/logisticsMaterials/logisticsBasicData/projectInformation/info.vue';
 
 const delFlagOption = [{ value: '0', label: '启用' }, { value: '1', label: '停用' }]
 

+ 296 - 67
src/views/logisticsMaterials/logisticsBasicData/projectInformation/info.vue

@@ -1,61 +1,178 @@
 <template>
     <div class="container">
         <el-form ref="formRef" :model="form" class="form" label-width="127px" size="default">
-            <el-row gutter="20">
+            <el-row :gutter="20">
                 <el-col :span="8">
-                    <el-form-item label="服务库房" prop="name">
-                        <el-input v-model="form.name" disabled></el-input>
+                    <div>第一部分</div>
+                </el-col>
+            </el-row>
+            <el-row :gutter="20">
+                <el-col :span="8">
+                    <el-form-item label="项目编码" prop="projectCode">
+                        <el-input v-model="form.projectCode" disabled></el-input>
                     </el-form-item>
                 </el-col>
                 <el-col :span="8">
-                    <el-form-item label="请领科室" prop="name">
-                        <el-select v-model="form.type" placeholder="请选择请领科室">
-                            <el-option label="请领科室" value=""></el-option>
+                    <el-form-item label="项目分类" prop="projectType">
+                        <el-select v-model="form.projectType" placeholder="请选择项目分类">
+                            <el-option v-for="item in projectTypeOption" :label="typeName"
+                                :value="item.typeCode"></el-option>
                         </el-select>
                     </el-form-item>
                 </el-col>
                 <el-col :span="8">
+                    <el-form-item label="项目名称" prop="projectName">
+                        <el-input v-model="form.projectName" placeholder="请输入项目名称">
+                        </el-input>
+                    </el-form-item>
+                </el-col>
+                <el-col :span="8">
+                    <el-form-item label="拼音码" prop="pyCode">
+                        <el-input v-model="form.pyCode" placeholder="请输入项目名称" disabled>
+                        </el-input>
+                    </el-form-item>
+                </el-col>
+                <el-col :span="8">
+                    <el-form-item label="五笔码" prop="wbCode">
+                        <el-input v-model="form.wbCode" placeholder="请输入项目名称" disabled>
+                        </el-input>
+                    </el-form-item>
+                </el-col>
+                <el-col :span="8">
+                    <el-form-item label="零售价" prop="retailPrice">
+                        <el-input v-model="form.retailPrice" placeholder="请输入零售价" type="number">
+                        </el-input>
+                    </el-form-item>
+                </el-col>
+                <el-col :span="8">
+                    <el-form-item label="内部结算价" prop="internalSettlementPrice">
+                        <el-input v-model="form.internalSettlementPrice" placeholder="请输入内部结算价" type="number">
+                        </el-input>
+                    </el-form-item>
+                </el-col>
+                <el-col :span="8">
+                    <el-form-item label="批发价" prop="wholesalePrice">
+                        <el-input v-model="form.wholesalePrice" placeholder="请输入批发价" type="number">
+                        </el-input>
+                    </el-form-item>
+                </el-col>
+                <el-col :span="8">
+                    <el-form-item label="生产厂家" prop="lcCompanyId">
+                        <el-select v-model="form.lcCompanyId" placeholder="请选择生产厂家">
+                            <el-option v-for="item in lcCompanyOption" :label="item.label"
+                                :value="item.value"></el-option>
+                        </el-select>
+                    </el-form-item>
+                </el-col>
+                <!-- <el-col :span="8">
                     <el-form-item label="请领月份" prop="name">
                         <el-date-picker v-model="form.date" type="month" placeholder="请选择日期"></el-date-picker>
                     </el-form-item>
+                </el-col> -->
+            </el-row>
+
+            <el-row :gutter="20">
+                <div>第二部分</div>
+            </el-row>
+            <el-row :gutter="20">
+                <el-col :span="8">
+                    <el-form-item label="项目规格" prop="projectSpecifications">
+                        <el-input v-model="form.projectSpecifications" placeholder="请输入项目规格" type="number">
+                        </el-input>
+                    </el-form-item>
+                </el-col>
+                <el-col :span="8">
+                    <el-form-item label="单位" prop="projectUnit">
+                        <el-select v-model="form.projectUnit" placeholder="请选择单位">
+                            <el-option v-for="item in projectUnitOption" :label="item.label"
+                                :value="item.value"></el-option>
+                        </el-select>
+                    </el-form-item>
+                </el-col>
+                <el-col :span="8">
+                    <el-form-item label="计费方式" prop="chargingType">
+                        <el-select v-model="form.chargingType" placeholder="请选择计费方式">
+                            <el-option v-for="item in chargingTypeOption" :label="item.label"
+                                :value="item.value"></el-option>
+                        </el-select>
+                    </el-form-item>
+                </el-col>
+                <el-col :span="8">
+                    <el-form-item label="最小包装单位" prop="projectMinUnit">
+                        <el-select v-model="form.projectMinUnit" placeholder="请选择最小包装单位">
+                            <el-option v-for="item in projectMinUnitOption" :label="item.label"
+                                :value="item.value"></el-option>
+                        </el-select>
+                    </el-form-item>
+                </el-col>
+                <el-col :span="8">
+                    <el-form-item label="包装量" prop="packagingQuantity">
+                        <el-input v-model="form.packagingQuantity" placeholder="请输入包装量" type="number">
+                        </el-input>
+                    </el-form-item>
+                </el-col>
+            </el-row>
+            <el-row :gutter="20">
+                <el-col :span="8">
+                    <el-form-item label="批准文号" prop="approvalNumber">
+                        <el-input v-model="form.approvalNumber" placeholder="请输入批准文号">
+                        </el-input>
+                    </el-form-item>
+                </el-col>
+                <el-col :span="8">
+                    <el-form-item label="产品编号" prop="productCode">
+                        <el-input v-model="form.productCode" placeholder="请输入产品编号">
+                        </el-input>
+                    </el-form-item>
+                </el-col>
+                <el-col :span="8">
+                    <el-form-item label="注册证号" prop="registCode">
+                        <el-input v-model="form.registCode" placeholder="请输入注册证号">
+                        </el-input>
+                    </el-form-item>
                 </el-col>
                 <el-col :span="8">
-                    <el-form-item label="项目名称" prop="name">
-                        <el-input v-model="form.name" placeholder="请输入项目名称">
-                            <template #prefix>
-                                <el-icon class="el-input__icon" @click="handleSearch">
-                                    <search />
-                                </el-icon>
-                            </template>
+                    <el-form-item label="物价码" prop="priceCode">
+                        <el-input v-model="form.priceCode" placeholder="请输入物价码">
                         </el-input>
                     </el-form-item>
                 </el-col>
+                <el-col :span="8">
+                    <el-form-item label="是否停用" prop="delFlag">
+                        <el-select v-model="form.delFlag" placeholder="请选择">
+                            <el-option v-for="item in delFlagOption" :label="item.label"
+                                :value="item.value"></el-option>
+                        </el-select>
+                    </el-form-item>
+                </el-col>
             </el-row>
         </el-form>
 
-        <el-divider />
-        <div class="title-area">
-            采购明细
+        <!-- <el-divider /> -->
+        <el-row :gutter="20">
+            <el-col :span="8">
+                <div>别名管理</div>
+            </el-col>
+        </el-row>
+        <div style="margin: 10px 0;">
+            <el-button icon="Plus" type="primary" @click="showDialog = true" size="small">新增别名</el-button>
         </div>
-        <el-table :data="detailTableData" style="width: 100%" height="500" size="default">
-            <el-table-column fixed="left" label="操作" width="80">
-                <template #default>
-                    <el-button type="danger" size="small" @click="handleClick">
+        <el-table :data="tableData" style="width: 100%" height="500" size="default">
+            <el-table-column fixed="right" label="操作" width="150">
+                <template #default="scope">
+                    <el-button type="primary" size="small" @click="toEditAlias(scope.row, scope.$index)">
+                        编 辑
+                    </el-button>
+                    <el-button type="danger" size="small" @click="deleteAlias(scope.$index)">
                         删 除
                     </el-button>
                     <!-- <el-button link type="primary" size="small">Edit</el-button> -->
                 </template>
             </el-table-column>
             <el-table-column type="index" prop="date" label="序号" width="80" />
-            <el-table-column prop="name" label="项目编码" />
-            <el-table-column prop="state" label="项目名称" />
-            <el-table-column prop="city" label="规格" />
-            <el-table-column prop="city" label="单位" />
-            <el-table-column prop="city" label="请领数量">
-                <template #default="scope">
-                    <el-input v-model="scope.row.city" type="number" />
-                </template>
-            </el-table-column>
+            <el-table-column prop="name" label="项目别名" />
+            <el-table-column prop="state" label="别名拼音码" />
+            <el-table-column prop="city" label="别名五笔码" />
         </el-table>
         <div class="confirm-area flex-center-row" style="margin-top: 20px;">
             <el-button type="primary" @click="confirm" size="default">确定</el-button>
@@ -66,14 +183,19 @@
     <!-- <el-divider /> -->
 
 
-    <el-dialog v-model="showDialog" :close-on-click-modal="false" :close-on-press-escape="false" title="选择项目"
-        width="70%" destroy-on-close>
-        <el-table :data="itemTableData" style="width: 100%" height="450">
+    <el-dialog v-model="showDialog" :close-on-click-modal="false" :close-on-press-escape="false" title="新增别名"
+        width="30%" top="15%" destroy-on-close @close="handleDialogClose">
+        <!-- <el-table :data="itemTableData" style="width: 100%" height="450">
             <el-table-column prop="date" label="项目编码" />
             <el-table-column prop="name" label="项目名称" />
             <el-table-column prop="address" label="规格" />
             <el-table-column prop="address" label="单位" />
-        </el-table>
+        </el-table> -->
+        <div class="flex-center-column ">
+            <el-input v-model="aliasForm.name" placeholder="请输入内容" style="width: 95%;margin-bottom: 20px;"
+                size="default" />
+            <el-button type="primary" @click="addOrEditProjectAlias" size="default">确定</el-button>
+        </div>
     </el-dialog>
 </template>
 <script setup name="YpDictInfo">
@@ -81,6 +203,8 @@ import { nextTick, onMounted, ref } from 'vue'
 import { ElMessage, ElMessageBox } from 'element-plus'
 import { clone } from '@/utils/clone'
 import { Export } from '@/utils/ExportExcel'
+import { getLcCompanyList } from '@/api/lc/company.js'
+import { insertLcProject, getLcProjectById, getAllLcProjectTypes } from '@/api/lc/project.js'
 
 const props = defineProps({
     //子组件接收父组件传递过来的值
@@ -88,10 +212,12 @@ const props = defineProps({
 })
 //使用父组件传递过来的值
 const { currentEditCode } = toRefs(props)
-
+//父组件的方法
+const emit = defineEmits(["handleDialogClose"])
 onMounted(() => {
     nextTick(() => {
-
+        getCompanyList()
+        getProjectTypes()
     })
 })
 
@@ -102,41 +228,66 @@ let form = ref({
 let showDialog = ref(false)
 
 let itemTableData = ref([
-    {
-        date: '2016-05-03',
-        name: 'Tom',
-        address: 'No. 189, Grove St, Los Angeles',
-    },
-    {
-        date: '2016-05-02',
-        name: 'Tom',
-        address: 'No. 189, Grove St, Los Angeles',
-    },
-    {
-        date: '2016-05-04',
-        name: 'Tom',
-        address: 'No. 189, Grove St, Los Angeles',
-    },
 ])
 
-let detailTableData = ref([
-    {
-        date: '2016-05-03',
-        name: 'Tom',
-        address: 'No. 189, Grove St, Los Angeles',
-    },
-    {
-        date: '2016-05-02',
-        name: 'Tom',
-        address: 'No. 189, Grove St, Los Angeles',
-    },
-    {
-        date: '2016-05-04',
-        name: 'Tom',
-        address: 'No. 189, Grove St, Los Angeles',
-    },
-])
+let tableData = ref([])
 
+const projectTypeOption = ref([])
+const lcCompanyOption = ref([])
+const projectUnitOption = ref(
+    [
+        { "label": "把", "value": "0" },
+        { "label": "板", "value": "1" },
+        { "label": "包", "value": "2" },
+        { "label": "本", "value": "3" },
+        { "label": "袋", "value": "4" },
+        { "label": "副", "value": "5" },
+        { "label": "个", "value": "6" },
+        { "label": "根", "value": "7" },
+        { "label": "盒", "value": "8" },
+        { "label": "件", "value": "9" },
+        { "label": "卷", "value": "10" },
+        { "label": "块", "value": "11" },
+        { "label": "枚", "value": "12" },
+        { "label": "颗", "value": "13" },
+        { "label": "米", "value": "14" },
+        { "label": "片", "value": "15" },
+        { "label": "瓶", "value": "16" },
+        { "label": "人份", "value": "17" },
+        { "label": "套", "value": "18" },
+        { "label": "条", "value": "19" },
+        { "label": "贴", "value": "20" },
+        { "label": "桶", "value": "21" },
+        { "label": "筒", "value": "22" },
+        { "label": "箱", "value": "23" },
+        { "label": "张", "value": "24" },
+        { "label": "支", "value": "25" },
+        { "label": "只", "value": "26" }
+    ]
+)
+const chargingTypeOption = ref([
+    { "label": "按次", "value": "0" },
+    { "label": "按天", "value": "1" },
+    { "label": "按量", "value": "2" }
+])
+const projectMinUnitOption = ref([
+    { "label": "把", "value": "0" },
+    { "label": "板", "value": "1" },
+    { "label": "包", "value": "2" },
+    { "label": "本", "value": "3" },
+    { "label": "袋", "value": "4" },
+    { "label": "副", "value": "5" },
+    { "label": "个", "value": "6" },
+    { "label": "根", "value": "7" },
+    { "label": "盒", "value": "8" },
+    { "label": "件", "value": "9" },
+    { "label": "卷", "value": "10" },
+    { "label": "块", "value": "11" }
+])
+const delFlagOption = ref([
+    { "label": "启用", "value": "0" },
+    { "label": "停用", "value": "1" }
+])
 
 
 const handleSearch = () => {
@@ -148,6 +299,77 @@ const confirm = () => {
 
 }
 
+const cancel = () => {
+    console.log("cancel")
+    emit("handleDialogClose")
+}
+
+const getCompanyList = () => {
+    console.log("getCompanyList")
+    let params = {
+        companyType: "1"
+    }
+    getLcCompanyList(params).then(res => {
+        lcCompanyOption.value = res.records
+    }).catch(err => {
+
+    })
+}
+
+const getProjectTypes = () => {
+    getAllLcProjectTypes().then(res => {
+        projectTypeOption.value = res
+    }).catch(err => {
+
+    })
+}
+
+const aliasForm = ref({
+    name: ""
+})
+
+const aliasEditIndex = ref(-1)
+const toEditAlias = (row, index) => {
+    aliasForm.value.name = row.name
+    aliasEditIndex.value = index
+    showDialog.value = true
+}
+
+const deleteAlias = (index) => {
+    ElMessageBox.confirm("是否删除", {
+        cancelButtonText: '取消',
+        confirmButtonText: '确定',
+        type: 'warning',
+        distinguishCancelAndClose: true,
+        dangerouslyUseHTMLString: true
+    }).then(() => {
+        tableData.value.splice(index, 1)
+    }).catch((action) => {
+    })
+}
+const addOrEditProjectAlias = () => {
+    if (!aliasForm.value.name) {
+        return ElMessage.warning("请输入别名")
+    }
+    if (aliasEditIndex.value >= 0) {
+        console.log("target", tableData.value)
+        tableData.value[aliasEditIndex.value].name = aliasForm.value.name
+        showDialog.value = false
+    } else {
+        tableData.value.push({
+            name: aliasForm.value.name
+        })
+        showDialog.value = false
+    }
+}
+
+const handleDialogClose = () => {
+    aliasForm.value = {
+        name: ""
+    }
+    aliasEditIndex.value = -1
+}
+
 
 </script>
 
@@ -179,4 +401,11 @@ const confirm = () => {
     justify-content: center;
     align-items: center;
 }
+
+.flex-center-column {
+    display: flex;
+    flex-direction: column;
+    justify-content: center;
+    align-items: center;
+}
 </style>