From be5351fe3cc2714756ae43ab272cf8813cb0fe98 Mon Sep 17 00:00:00 2001
From: wu <731351411@qq.com>
Date: 星期三, 13 九月 2023 14:47:40 +0800
Subject: [PATCH] Merge branch 'master' of http://10.153.19.25:10101/r/CanadaMes

---
 CanadaMes-ui/src/utils/request.js                                                      |    3 
 CanadaMes-ui/vue.config.js                                                             |    1 
 CanadaMes-ui/src/views/home/index.vue                                                  |  103 +-
 CanadaMes-ui/src/router/index.js                                                       |    3 
 springboot-vue3/src/main/java/com/example/springboot/service/JdbcConnections.java      |    2 
 CanadaMes-ui/src/views/Electrical/State.vue                                            |   22 
 CanadaMes-ui/src/views/Electrical/Parameter.vue                                        |   24 
 CanadaMes-ui/src/views/register/index.vue                                              |  184 ++--
 CanadaMes-ui/src/views/user/index.vue                                                  |  152 ++--
 springboot-vue3/springboot-vue3.iml                                                    |    4 
 springboot-vue3/src/main/java/com/example/springboot/component/Plchome.java            |    2 
 CanadaMes-ui/src/layout/index.vue                                                      |    9 
 CanadaMes-ui/package.json                                                              |    1 
 springboot-vue3/src/main/java/com/example/springboot/component/PlcParameter.java       |    7 
 CanadaMes-ui/src/views/Electrical/alarm.vue                                            |   22 
 springboot-vue3/.idea/misc.xml                                                         |    3 
 springboot-vue3/pom.xml                                                                |    9 
 CanadaMes-ui/src/views/Electrical/Action.vue                                           |   26 
 springboot-vue3/.idea/artifacts/springboot_vue3_war_exploded.xml                       |  150 ++++
 CanadaMes-ui/src/main.js                                                               |    4 
 CanadaMes-ui/package-lock.json                                                         |  320 ++++++--
 springboot-vue3/src/main/java/com/example/springboot/component/Plcaction.java          |    8 
 CanadaMes-ui/src/views/Electrical/Sign.vue                                             |   22 
 springboot-vue3/src/main/java/com/example/springboot/component/PlcHold.java            |    1 
 CanadaMes-ui/.env                                                                      |    2 
 CanadaMes-ui/src/views/power/index.vue                                                 |  183 ++--
 CanadaMes-ui/src/lang/locales/zh-CN.json                                               |   85 ++
 /dev/null                                                                              |   13 
 springboot-vue3/src/main/java/com/example/springboot/config/AppRunnerConfig.java       |   12 
 springboot-vue3/src/main/resources/application.properties                              |    9 
 springboot-vue3/src/main/resources/sql/canadames.sql                                   |  605 ++++++++++++++++
 CanadaMes-ui/src/lang/locales/en-US.json                                               |   84 ++
 springboot-vue3/.idea/artifacts/springboot_vue3_war.xml                                |   14 
 springboot-vue3/src/main/java/com/example/springboot/AuthorityApplication.java         |    2 
 springboot-vue3/src/main/java/com/example/springboot/controller/DefaultController.java |    7 
 35 files changed, 1,598 insertions(+), 500 deletions(-)

diff --git a/CanadaMes-ui/.env b/CanadaMes-ui/.env
index 6bc3d03..a5fd3e6 100644
--- a/CanadaMes-ui/.env
+++ b/CanadaMes-ui/.env
@@ -1 +1 @@
-VUE_APP_BASE_API=/api
+VUE_APP_BASE_API=/api
\ No newline at end of file
diff --git a/CanadaMes-ui/package-lock.json b/CanadaMes-ui/package-lock.json
index 8a2960a..4409180 100644
--- a/CanadaMes-ui/package-lock.json
+++ b/CanadaMes-ui/package-lock.json
@@ -11,6 +11,7 @@
         "axios": "^0.19.2",
         "core-js": "^3.6.5",
         "element-ui": "^2.13.2",
+        "http-proxy-middleware": "^2.0.6",
         "js-cookie": "^3.0.1",
         "less": "^3.12.2",
         "less-loader": "^6.2.0",
@@ -1474,7 +1475,7 @@
       "version": "1.19.0",
       "resolved": "https://registry.npm.taobao.org/@types/body-parser/download/@types/body-parser-1.19.0.tgz?cache=0&sync_timestamp=1613378063000&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40types%2Fbody-parser%2Fdownload%2F%40types%2Fbody-parser-1.19.0.tgz",
       "integrity": "sha1-BoWzxH6zAG/+0RfN1VFkth+AU48=",
-      "dev": true,
+      "devOptional": true,
       "dependencies": {
         "@types/connect": "*",
         "@types/node": "*"
@@ -1484,7 +1485,7 @@
       "version": "3.4.34",
       "resolved": "https://registry.npm.taobao.org/@types/connect/download/@types/connect-3.4.34.tgz?cache=0&sync_timestamp=1613378229103&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40types%2Fconnect%2Fdownload%2F%40types%2Fconnect-3.4.34.tgz",
       "integrity": "sha1-FwpAIjptZmAG2TyhKK8r6x2bGQE=",
-      "dev": true,
+      "devOptional": true,
       "dependencies": {
         "@types/node": "*"
       }
@@ -1500,26 +1501,27 @@
       }
     },
     "node_modules/@types/express": {
-      "version": "4.17.11",
-      "resolved": "https://registry.npm.taobao.org/@types/express/download/@types/express-4.17.11.tgz?cache=0&sync_timestamp=1613378493388&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40types%2Fexpress%2Fdownload%2F%40types%2Fexpress-4.17.11.tgz",
-      "integrity": "sha1-3r48qm+OX82pa0e9VOL0DE7llUU=",
-      "dev": true,
+      "version": "4.17.17",
+      "resolved": "https://registry.npmmirror.com/@types/express/-/express-4.17.17.tgz",
+      "integrity": "sha512-Q4FmmuLGBG58btUnfS1c1r/NQdlp3DMfGDGig8WhfpA2YRUtEkxAjkZb0yvplJGYdF1fsQ81iMDcH24sSCNC/Q==",
+      "devOptional": true,
       "dependencies": {
         "@types/body-parser": "*",
-        "@types/express-serve-static-core": "^4.17.18",
+        "@types/express-serve-static-core": "^4.17.33",
         "@types/qs": "*",
         "@types/serve-static": "*"
       }
     },
     "node_modules/@types/express-serve-static-core": {
-      "version": "4.17.18",
-      "resolved": "https://registry.npm.taobao.org/@types/express-serve-static-core/download/@types/express-serve-static-core-4.17.18.tgz",
-      "integrity": "sha1-g3HiYPQODhygwRapr82UJvoJTEA=",
-      "dev": true,
+      "version": "4.17.36",
+      "resolved": "https://registry.npmmirror.com/@types/express-serve-static-core/-/express-serve-static-core-4.17.36.tgz",
+      "integrity": "sha512-zbivROJ0ZqLAtMzgzIUC4oNqDG9iF0lSsAqpOD9kbs5xcIM3dTiyuHvBc7R8MtWBp3AAWGaovJa+wzWPjLYW7Q==",
+      "devOptional": true,
       "dependencies": {
         "@types/node": "*",
         "@types/qs": "*",
-        "@types/range-parser": "*"
+        "@types/range-parser": "*",
+        "@types/send": "*"
       }
     },
     "node_modules/@types/glob": {
@@ -1533,10 +1535,9 @@
       }
     },
     "node_modules/@types/http-proxy": {
-      "version": "1.17.5",
-      "resolved": "https://registry.npm.taobao.org/@types/http-proxy/download/@types/http-proxy-1.17.5.tgz",
-      "integrity": "sha1-wgPF5uncaCDSekDrHlEccKIgQj0=",
-      "dev": true,
+      "version": "1.17.11",
+      "resolved": "https://registry.npmmirror.com/@types/http-proxy/-/http-proxy-1.17.11.tgz",
+      "integrity": "sha512-HC8G7c1WmaF2ekqpnFq626xd3Zz0uvaqFmBJNRZCGEZCXkvSdJoNFn/8Ygbd9fKNQj8UzLdCETaI0UWPAjK7IA==",
       "dependencies": {
         "@types/node": "*"
       }
@@ -1561,7 +1562,7 @@
       "version": "1.3.2",
       "resolved": "https://registry.npm.taobao.org/@types/mime/download/@types/mime-1.3.2.tgz?cache=0&sync_timestamp=1613379303907&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40types%2Fmime%2Fdownload%2F%40types%2Fmime-1.3.2.tgz",
       "integrity": "sha1-k+Jb+e51/g/YC1lLxP6w6GIRG1o=",
-      "dev": true
+      "devOptional": true
     },
     "node_modules/@types/minimatch": {
       "version": "3.0.3",
@@ -1578,8 +1579,7 @@
     "node_modules/@types/node": {
       "version": "14.14.31",
       "resolved": "https://registry.npm.taobao.org/@types/node/download/@types/node-14.14.31.tgz?cache=0&sync_timestamp=1613758409994&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40types%2Fnode%2Fdownload%2F%40types%2Fnode-14.14.31.tgz",
-      "integrity": "sha1-cihr0z0TeqDRUtR+x8F2JWPTQFU=",
-      "dev": true
+      "integrity": "sha1-cihr0z0TeqDRUtR+x8F2JWPTQFU="
     },
     "node_modules/@types/normalize-package-data": {
       "version": "2.4.0",
@@ -1597,19 +1597,29 @@
       "version": "6.9.5",
       "resolved": "https://registry.npm.taobao.org/@types/qs/download/@types/qs-6.9.5.tgz",
       "integrity": "sha1-Q0cRvdSete5p2QwdZ8NUqajssYs=",
-      "dev": true
+      "devOptional": true
     },
     "node_modules/@types/range-parser": {
       "version": "1.2.3",
       "resolved": "https://registry.npm.taobao.org/@types/range-parser/download/@types/range-parser-1.2.3.tgz",
       "integrity": "sha1-fuMwunyq+5gJC+zoal7kQRWQTCw=",
-      "dev": true
+      "devOptional": true
+    },
+    "node_modules/@types/send": {
+      "version": "0.17.1",
+      "resolved": "https://registry.npmmirror.com/@types/send/-/send-0.17.1.tgz",
+      "integrity": "sha512-Cwo8LE/0rnvX7kIIa3QHCkcuF21c05Ayb0ZfxPiv0W8VRiZiNW/WuRupHKpqqGVGf7SUA44QSOUKaEd9lIrd/Q==",
+      "devOptional": true,
+      "dependencies": {
+        "@types/mime": "^1",
+        "@types/node": "*"
+      }
     },
     "node_modules/@types/serve-static": {
       "version": "1.13.9",
       "resolved": "https://registry.npm.taobao.org/@types/serve-static/download/@types/serve-static-1.13.9.tgz",
       "integrity": "sha1-qs8oqFoF7imhH7fD6tk1rFbzPk4=",
-      "dev": true,
+      "devOptional": true,
       "dependencies": {
         "@types/mime": "^1",
         "@types/node": "*"
@@ -6032,8 +6042,7 @@
     "node_modules/eventemitter3": {
       "version": "4.0.7",
       "resolved": "https://registry.npm.taobao.org/eventemitter3/download/eventemitter3-4.0.7.tgz",
-      "integrity": "sha1-Lem2j2Uo1WRO9cWVJqG0oHMGFp8=",
-      "dev": true
+      "integrity": "sha1-Lem2j2Uo1WRO9cWVJqG0oHMGFp8="
     },
     "node_modules/events": {
       "version": "3.2.0",
@@ -6583,7 +6592,6 @@
       "version": "1.13.2",
       "resolved": "https://registry.npm.taobao.org/follow-redirects/download/follow-redirects-1.13.2.tgz",
       "integrity": "sha1-3XPI7/wScoulz0JZ12DqX7g+MUc=",
-      "dev": true,
       "engines": {
         "node": ">=4.0"
       },
@@ -7272,7 +7280,6 @@
       "version": "1.18.1",
       "resolved": "https://registry.npm.taobao.org/http-proxy/download/http-proxy-1.18.1.tgz",
       "integrity": "sha1-QBVB8FNIhLv5UmAzTnL4juOXZUk=",
-      "dev": true,
       "dependencies": {
         "eventemitter3": "^4.0.0",
         "follow-redirects": "^1.0.0",
@@ -7283,18 +7290,87 @@
       }
     },
     "node_modules/http-proxy-middleware": {
-      "version": "0.19.1",
-      "resolved": "https://registry.npm.taobao.org/http-proxy-middleware/download/http-proxy-middleware-0.19.1.tgz",
-      "integrity": "sha1-GDx9xKoUeRUDBkmMIQza+WCApDo=",
-      "dev": true,
+      "version": "2.0.6",
+      "resolved": "https://registry.npmmirror.com/http-proxy-middleware/-/http-proxy-middleware-2.0.6.tgz",
+      "integrity": "sha512-ya/UeJ6HVBYxrgYotAZo1KvPWlgB48kUJLDePFeneHsVujFaW5WNj2NgWCAE//B1Dl02BIfYlpNgBy8Kf8Rjmw==",
       "dependencies": {
-        "http-proxy": "^1.17.0",
-        "is-glob": "^4.0.0",
-        "lodash": "^4.17.11",
-        "micromatch": "^3.1.10"
+        "@types/http-proxy": "^1.17.8",
+        "http-proxy": "^1.18.1",
+        "is-glob": "^4.0.1",
+        "is-plain-obj": "^3.0.0",
+        "micromatch": "^4.0.2"
       },
       "engines": {
-        "node": ">=4.0.0"
+        "node": ">=12.0.0"
+      },
+      "peerDependencies": {
+        "@types/express": "^4.17.13"
+      },
+      "peerDependenciesMeta": {
+        "@types/express": {
+          "optional": true
+        }
+      }
+    },
+    "node_modules/http-proxy-middleware/node_modules/braces": {
+      "version": "3.0.2",
+      "resolved": "https://registry.npmmirror.com/braces/-/braces-3.0.2.tgz",
+      "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==",
+      "dependencies": {
+        "fill-range": "^7.0.1"
+      },
+      "engines": {
+        "node": ">=8"
+      }
+    },
+    "node_modules/http-proxy-middleware/node_modules/fill-range": {
+      "version": "7.0.1",
+      "resolved": "https://registry.npmmirror.com/fill-range/-/fill-range-7.0.1.tgz",
+      "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==",
+      "dependencies": {
+        "to-regex-range": "^5.0.1"
+      },
+      "engines": {
+        "node": ">=8"
+      }
+    },
+    "node_modules/http-proxy-middleware/node_modules/is-number": {
+      "version": "7.0.0",
+      "resolved": "https://registry.npmmirror.com/is-number/-/is-number-7.0.0.tgz",
+      "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==",
+      "engines": {
+        "node": ">=0.12.0"
+      }
+    },
+    "node_modules/http-proxy-middleware/node_modules/is-plain-obj": {
+      "version": "3.0.0",
+      "resolved": "https://registry.npmmirror.com/is-plain-obj/-/is-plain-obj-3.0.0.tgz",
+      "integrity": "sha512-gwsOE28k+23GP1B6vFl1oVh/WOzmawBrKwo5Ev6wMKzPkaXaCDIQKzLnvsA42DRlbVTWorkgTKIviAKCWkfUwA==",
+      "engines": {
+        "node": ">=10"
+      }
+    },
+    "node_modules/http-proxy-middleware/node_modules/micromatch": {
+      "version": "4.0.5",
+      "resolved": "https://registry.npmmirror.com/micromatch/-/micromatch-4.0.5.tgz",
+      "integrity": "sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==",
+      "dependencies": {
+        "braces": "^3.0.2",
+        "picomatch": "^2.3.1"
+      },
+      "engines": {
+        "node": ">=8.6"
+      }
+    },
+    "node_modules/http-proxy-middleware/node_modules/to-regex-range": {
+      "version": "5.0.1",
+      "resolved": "https://registry.npmmirror.com/to-regex-range/-/to-regex-range-5.0.1.tgz",
+      "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==",
+      "dependencies": {
+        "is-number": "^7.0.0"
+      },
+      "engines": {
+        "node": ">=8.0"
       }
     },
     "node_modules/http-signature": {
@@ -7913,7 +7989,6 @@
       "version": "2.1.1",
       "resolved": "https://registry.npm.taobao.org/is-extglob/download/is-extglob-2.1.1.tgz",
       "integrity": "sha1-qIwCU1eR8C7TfHahueqXc8gz+MI=",
-      "devOptional": true,
       "engines": {
         "node": ">=0.10.0"
       }
@@ -7931,7 +8006,6 @@
       "version": "4.0.1",
       "resolved": "https://registry.npm.taobao.org/is-glob/download/is-glob-4.0.1.tgz",
       "integrity": "sha1-dWfb6fL14kZ7x3q4PEopSCQHpdw=",
-      "devOptional": true,
       "dependencies": {
         "is-extglob": "^2.1.1"
       },
@@ -9895,10 +9969,9 @@
       "dev": true
     },
     "node_modules/picomatch": {
-      "version": "2.2.2",
-      "resolved": "https://registry.npm.taobao.org/picomatch/download/picomatch-2.2.2.tgz",
-      "integrity": "sha1-IfMz6ba46v8CRo9RRupAbTRfTa0=",
-      "optional": true,
+      "version": "2.3.1",
+      "resolved": "https://registry.npmmirror.com/picomatch/-/picomatch-2.3.1.tgz",
+      "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==",
       "engines": {
         "node": ">=8.6"
       }
@@ -11159,8 +11232,7 @@
     "node_modules/requires-port": {
       "version": "1.0.0",
       "resolved": "https://registry.npm.taobao.org/requires-port/download/requires-port-1.0.0.tgz",
-      "integrity": "sha1-kl0mAdOaxIXgkc8NpcbmlNw9yv8=",
-      "dev": true
+      "integrity": "sha1-kl0mAdOaxIXgkc8NpcbmlNw9yv8="
     },
     "node_modules/resize-observer-polyfill": {
       "version": "1.5.1",
@@ -13754,6 +13826,21 @@
         "node": ">=0.10.0"
       }
     },
+    "node_modules/webpack-dev-server/node_modules/http-proxy-middleware": {
+      "version": "0.19.1",
+      "resolved": "https://registry.npmmirror.com/http-proxy-middleware/-/http-proxy-middleware-0.19.1.tgz",
+      "integrity": "sha512-yHYTgWMQO8VvwNS22eLLloAkvungsKdKTLO8AJlftYIKNfJr3GK3zK0ZCfzDDGUBttdGc8xFy1mCitvNKQtC3Q==",
+      "dev": true,
+      "dependencies": {
+        "http-proxy": "^1.17.0",
+        "is-glob": "^4.0.0",
+        "lodash": "^4.17.11",
+        "micromatch": "^3.1.10"
+      },
+      "engines": {
+        "node": ">=4.0.0"
+      }
+    },
     "node_modules/webpack-dev-server/node_modules/is-absolute-url": {
       "version": "3.0.3",
       "resolved": "https://registry.npm.taobao.org/is-absolute-url/download/is-absolute-url-3.0.3.tgz",
@@ -15501,7 +15588,7 @@
       "version": "1.19.0",
       "resolved": "https://registry.npm.taobao.org/@types/body-parser/download/@types/body-parser-1.19.0.tgz?cache=0&sync_timestamp=1613378063000&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40types%2Fbody-parser%2Fdownload%2F%40types%2Fbody-parser-1.19.0.tgz",
       "integrity": "sha1-BoWzxH6zAG/+0RfN1VFkth+AU48=",
-      "dev": true,
+      "devOptional": true,
       "requires": {
         "@types/connect": "*",
         "@types/node": "*"
@@ -15511,7 +15598,7 @@
       "version": "3.4.34",
       "resolved": "https://registry.npm.taobao.org/@types/connect/download/@types/connect-3.4.34.tgz?cache=0&sync_timestamp=1613378229103&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40types%2Fconnect%2Fdownload%2F%40types%2Fconnect-3.4.34.tgz",
       "integrity": "sha1-FwpAIjptZmAG2TyhKK8r6x2bGQE=",
-      "dev": true,
+      "devOptional": true,
       "requires": {
         "@types/node": "*"
       }
@@ -15527,26 +15614,27 @@
       }
     },
     "@types/express": {
-      "version": "4.17.11",
-      "resolved": "https://registry.npm.taobao.org/@types/express/download/@types/express-4.17.11.tgz?cache=0&sync_timestamp=1613378493388&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40types%2Fexpress%2Fdownload%2F%40types%2Fexpress-4.17.11.tgz",
-      "integrity": "sha1-3r48qm+OX82pa0e9VOL0DE7llUU=",
-      "dev": true,
+      "version": "4.17.17",
+      "resolved": "https://registry.npmmirror.com/@types/express/-/express-4.17.17.tgz",
+      "integrity": "sha512-Q4FmmuLGBG58btUnfS1c1r/NQdlp3DMfGDGig8WhfpA2YRUtEkxAjkZb0yvplJGYdF1fsQ81iMDcH24sSCNC/Q==",
+      "devOptional": true,
       "requires": {
         "@types/body-parser": "*",
-        "@types/express-serve-static-core": "^4.17.18",
+        "@types/express-serve-static-core": "^4.17.33",
         "@types/qs": "*",
         "@types/serve-static": "*"
       }
     },
     "@types/express-serve-static-core": {
-      "version": "4.17.18",
-      "resolved": "https://registry.npm.taobao.org/@types/express-serve-static-core/download/@types/express-serve-static-core-4.17.18.tgz",
-      "integrity": "sha1-g3HiYPQODhygwRapr82UJvoJTEA=",
-      "dev": true,
+      "version": "4.17.36",
+      "resolved": "https://registry.npmmirror.com/@types/express-serve-static-core/-/express-serve-static-core-4.17.36.tgz",
+      "integrity": "sha512-zbivROJ0ZqLAtMzgzIUC4oNqDG9iF0lSsAqpOD9kbs5xcIM3dTiyuHvBc7R8MtWBp3AAWGaovJa+wzWPjLYW7Q==",
+      "devOptional": true,
       "requires": {
         "@types/node": "*",
         "@types/qs": "*",
-        "@types/range-parser": "*"
+        "@types/range-parser": "*",
+        "@types/send": "*"
       }
     },
     "@types/glob": {
@@ -15560,10 +15648,9 @@
       }
     },
     "@types/http-proxy": {
-      "version": "1.17.5",
-      "resolved": "https://registry.npm.taobao.org/@types/http-proxy/download/@types/http-proxy-1.17.5.tgz",
-      "integrity": "sha1-wgPF5uncaCDSekDrHlEccKIgQj0=",
-      "dev": true,
+      "version": "1.17.11",
+      "resolved": "https://registry.npmmirror.com/@types/http-proxy/-/http-proxy-1.17.11.tgz",
+      "integrity": "sha512-HC8G7c1WmaF2ekqpnFq626xd3Zz0uvaqFmBJNRZCGEZCXkvSdJoNFn/8Ygbd9fKNQj8UzLdCETaI0UWPAjK7IA==",
       "requires": {
         "@types/node": "*"
       }
@@ -15588,7 +15675,7 @@
       "version": "1.3.2",
       "resolved": "https://registry.npm.taobao.org/@types/mime/download/@types/mime-1.3.2.tgz?cache=0&sync_timestamp=1613379303907&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40types%2Fmime%2Fdownload%2F%40types%2Fmime-1.3.2.tgz",
       "integrity": "sha1-k+Jb+e51/g/YC1lLxP6w6GIRG1o=",
-      "dev": true
+      "devOptional": true
     },
     "@types/minimatch": {
       "version": "3.0.3",
@@ -15605,8 +15692,7 @@
     "@types/node": {
       "version": "14.14.31",
       "resolved": "https://registry.npm.taobao.org/@types/node/download/@types/node-14.14.31.tgz?cache=0&sync_timestamp=1613758409994&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40types%2Fnode%2Fdownload%2F%40types%2Fnode-14.14.31.tgz",
-      "integrity": "sha1-cihr0z0TeqDRUtR+x8F2JWPTQFU=",
-      "dev": true
+      "integrity": "sha1-cihr0z0TeqDRUtR+x8F2JWPTQFU="
     },
     "@types/normalize-package-data": {
       "version": "2.4.0",
@@ -15624,19 +15710,29 @@
       "version": "6.9.5",
       "resolved": "https://registry.npm.taobao.org/@types/qs/download/@types/qs-6.9.5.tgz",
       "integrity": "sha1-Q0cRvdSete5p2QwdZ8NUqajssYs=",
-      "dev": true
+      "devOptional": true
     },
     "@types/range-parser": {
       "version": "1.2.3",
       "resolved": "https://registry.npm.taobao.org/@types/range-parser/download/@types/range-parser-1.2.3.tgz",
       "integrity": "sha1-fuMwunyq+5gJC+zoal7kQRWQTCw=",
-      "dev": true
+      "devOptional": true
+    },
+    "@types/send": {
+      "version": "0.17.1",
+      "resolved": "https://registry.npmmirror.com/@types/send/-/send-0.17.1.tgz",
+      "integrity": "sha512-Cwo8LE/0rnvX7kIIa3QHCkcuF21c05Ayb0ZfxPiv0W8VRiZiNW/WuRupHKpqqGVGf7SUA44QSOUKaEd9lIrd/Q==",
+      "devOptional": true,
+      "requires": {
+        "@types/mime": "^1",
+        "@types/node": "*"
+      }
     },
     "@types/serve-static": {
       "version": "1.13.9",
       "resolved": "https://registry.npm.taobao.org/@types/serve-static/download/@types/serve-static-1.13.9.tgz",
       "integrity": "sha1-qs8oqFoF7imhH7fD6tk1rFbzPk4=",
-      "dev": true,
+      "devOptional": true,
       "requires": {
         "@types/mime": "^1",
         "@types/node": "*"
@@ -19319,8 +19415,7 @@
     "eventemitter3": {
       "version": "4.0.7",
       "resolved": "https://registry.npm.taobao.org/eventemitter3/download/eventemitter3-4.0.7.tgz",
-      "integrity": "sha1-Lem2j2Uo1WRO9cWVJqG0oHMGFp8=",
-      "dev": true
+      "integrity": "sha1-Lem2j2Uo1WRO9cWVJqG0oHMGFp8="
     },
     "events": {
       "version": "3.2.0",
@@ -19788,8 +19883,7 @@
     "follow-redirects": {
       "version": "1.13.2",
       "resolved": "https://registry.npm.taobao.org/follow-redirects/download/follow-redirects-1.13.2.tgz",
-      "integrity": "sha1-3XPI7/wScoulz0JZ12DqX7g+MUc=",
-      "dev": true
+      "integrity": "sha1-3XPI7/wScoulz0JZ12DqX7g+MUc="
     },
     "for-in": {
       "version": "1.0.2",
@@ -20353,7 +20447,6 @@
       "version": "1.18.1",
       "resolved": "https://registry.npm.taobao.org/http-proxy/download/http-proxy-1.18.1.tgz",
       "integrity": "sha1-QBVB8FNIhLv5UmAzTnL4juOXZUk=",
-      "dev": true,
       "requires": {
         "eventemitter3": "^4.0.0",
         "follow-redirects": "^1.0.0",
@@ -20361,15 +20454,60 @@
       }
     },
     "http-proxy-middleware": {
-      "version": "0.19.1",
-      "resolved": "https://registry.npm.taobao.org/http-proxy-middleware/download/http-proxy-middleware-0.19.1.tgz",
-      "integrity": "sha1-GDx9xKoUeRUDBkmMIQza+WCApDo=",
-      "dev": true,
+      "version": "2.0.6",
+      "resolved": "https://registry.npmmirror.com/http-proxy-middleware/-/http-proxy-middleware-2.0.6.tgz",
+      "integrity": "sha512-ya/UeJ6HVBYxrgYotAZo1KvPWlgB48kUJLDePFeneHsVujFaW5WNj2NgWCAE//B1Dl02BIfYlpNgBy8Kf8Rjmw==",
       "requires": {
-        "http-proxy": "^1.17.0",
-        "is-glob": "^4.0.0",
-        "lodash": "^4.17.11",
-        "micromatch": "^3.1.10"
+        "@types/http-proxy": "^1.17.8",
+        "http-proxy": "^1.18.1",
+        "is-glob": "^4.0.1",
+        "is-plain-obj": "^3.0.0",
+        "micromatch": "^4.0.2"
+      },
+      "dependencies": {
+        "braces": {
+          "version": "3.0.2",
+          "resolved": "https://registry.npmmirror.com/braces/-/braces-3.0.2.tgz",
+          "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==",
+          "requires": {
+            "fill-range": "^7.0.1"
+          }
+        },
+        "fill-range": {
+          "version": "7.0.1",
+          "resolved": "https://registry.npmmirror.com/fill-range/-/fill-range-7.0.1.tgz",
+          "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==",
+          "requires": {
+            "to-regex-range": "^5.0.1"
+          }
+        },
+        "is-number": {
+          "version": "7.0.0",
+          "resolved": "https://registry.npmmirror.com/is-number/-/is-number-7.0.0.tgz",
+          "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng=="
+        },
+        "is-plain-obj": {
+          "version": "3.0.0",
+          "resolved": "https://registry.npmmirror.com/is-plain-obj/-/is-plain-obj-3.0.0.tgz",
+          "integrity": "sha512-gwsOE28k+23GP1B6vFl1oVh/WOzmawBrKwo5Ev6wMKzPkaXaCDIQKzLnvsA42DRlbVTWorkgTKIviAKCWkfUwA=="
+        },
+        "micromatch": {
+          "version": "4.0.5",
+          "resolved": "https://registry.npmmirror.com/micromatch/-/micromatch-4.0.5.tgz",
+          "integrity": "sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==",
+          "requires": {
+            "braces": "^3.0.2",
+            "picomatch": "^2.3.1"
+          }
+        },
+        "to-regex-range": {
+          "version": "5.0.1",
+          "resolved": "https://registry.npmmirror.com/to-regex-range/-/to-regex-range-5.0.1.tgz",
+          "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==",
+          "requires": {
+            "is-number": "^7.0.0"
+          }
+        }
       }
     },
     "http-signature": {
@@ -20851,8 +20989,7 @@
     "is-extglob": {
       "version": "2.1.1",
       "resolved": "https://registry.npm.taobao.org/is-extglob/download/is-extglob-2.1.1.tgz",
-      "integrity": "sha1-qIwCU1eR8C7TfHahueqXc8gz+MI=",
-      "devOptional": true
+      "integrity": "sha1-qIwCU1eR8C7TfHahueqXc8gz+MI="
     },
     "is-fullwidth-code-point": {
       "version": "3.0.0",
@@ -20864,7 +21001,6 @@
       "version": "4.0.1",
       "resolved": "https://registry.npm.taobao.org/is-glob/download/is-glob-4.0.1.tgz",
       "integrity": "sha1-dWfb6fL14kZ7x3q4PEopSCQHpdw=",
-      "devOptional": true,
       "requires": {
         "is-extglob": "^2.1.1"
       }
@@ -22471,10 +22607,9 @@
       "dev": true
     },
     "picomatch": {
-      "version": "2.2.2",
-      "resolved": "https://registry.npm.taobao.org/picomatch/download/picomatch-2.2.2.tgz",
-      "integrity": "sha1-IfMz6ba46v8CRo9RRupAbTRfTa0=",
-      "optional": true
+      "version": "2.3.1",
+      "resolved": "https://registry.npmmirror.com/picomatch/-/picomatch-2.3.1.tgz",
+      "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA=="
     },
     "pify": {
       "version": "4.0.1",
@@ -23553,8 +23688,7 @@
     "requires-port": {
       "version": "1.0.0",
       "resolved": "https://registry.npm.taobao.org/requires-port/download/requires-port-1.0.0.tgz",
-      "integrity": "sha1-kl0mAdOaxIXgkc8NpcbmlNw9yv8=",
-      "dev": true
+      "integrity": "sha1-kl0mAdOaxIXgkc8NpcbmlNw9yv8="
     },
     "resize-observer-polyfill": {
       "version": "1.5.1",
@@ -25717,6 +25851,18 @@
             }
           }
         },
+        "http-proxy-middleware": {
+          "version": "0.19.1",
+          "resolved": "https://registry.npmmirror.com/http-proxy-middleware/-/http-proxy-middleware-0.19.1.tgz",
+          "integrity": "sha512-yHYTgWMQO8VvwNS22eLLloAkvungsKdKTLO8AJlftYIKNfJr3GK3zK0ZCfzDDGUBttdGc8xFy1mCitvNKQtC3Q==",
+          "dev": true,
+          "requires": {
+            "http-proxy": "^1.17.0",
+            "is-glob": "^4.0.0",
+            "lodash": "^4.17.11",
+            "micromatch": "^3.1.10"
+          }
+        },
         "is-absolute-url": {
           "version": "3.0.3",
           "resolved": "https://registry.npm.taobao.org/is-absolute-url/download/is-absolute-url-3.0.3.tgz",
diff --git a/CanadaMes-ui/package.json b/CanadaMes-ui/package.json
index 895a0f4..f49cf5a 100644
--- a/CanadaMes-ui/package.json
+++ b/CanadaMes-ui/package.json
@@ -11,6 +11,7 @@
     "axios": "^0.19.2",
     "core-js": "^3.6.5",
     "element-ui": "^2.13.2",
+    "http-proxy-middleware": "^2.0.6",
     "js-cookie": "^3.0.1",
     "less": "^3.12.2",
     "less-loader": "^6.2.0",
diff --git a/CanadaMes-ui/src/lang/locales/en-US.json b/CanadaMes-ui/src/lang/locales/en-US.json
index ad35a8e..8140ccb 100644
--- a/CanadaMes-ui/src/lang/locales/en-US.json
+++ b/CanadaMes-ui/src/lang/locales/en-US.json
@@ -171,5 +171,87 @@
   "State": "State",
   "Alarm": "Alarm",
   "Distribute": "Distribute",
-  "Search": "Search"
+  "Search": "Search",
+ 
+ 
+  "langUsernameLabel": "Username",
+
+  "langPasswordLabel": "Password",
+  "langPasswordPlaceholder": "Please enter your password",
+  "langConfirmPasswordLabel": "Confirm Password",
+  "langConfirmPasswordPlaceholder": "Please confirm your password",
+  "langEmailLabel": "Email",
+
+  "langQQLabel": "QQ",
+  "langQQPlaceholder": "Please enter your QQ number",
+  "langPhoneNumberLabel": "Phone Number",
+  "langPhoneNumberPlaceholder": "Please enter your phone number",
+  "langUsernameRequiredMessage": "Please enter your username",
+  "langUsernameLengthMessage": "Username length should be between 5 and 15 characters",
+  "langPasswordRequiredMessage": "Please enter your password",
+  "langPasswordLengthMessage": "Password length should be between 5 and 15 characters",
+  "langEmailRequiredMessage": "Please enter your email",
+  "langEmailFormatMessage": "Invalid email format",
+  "langRegisterButton": "Register",
+  "langResetButton": "Reset",
+  "langCancelButton": "Cancel",
+  "langRegisterSuccessMessage": "Registration successful",
+
+  "娣诲姞鐢ㄦ埛鎴愬姛":"Successfully add user ",
+  "confirmResetPassword": "Are you sure you want to reset the password to the default value?",
+
+  "confirm": "Confirm",
+  "cancel": "Cancel",
+  "passwordResetSuccess": "Password has been reset to the default value",
+  "confirmDeleteCategory": "This operation will permanently delete the category. Do you want to continue?",
+  "prompt": "Prompt",
+  "userDeleteSuccess": "User deleted successfully",
+  "deleteCanceled": "Deletion canceled",
+  "addUserSuccess": "User added successfully",
+  "editUserSuccess": "User edited successfully",
+  "addSuccessMessage": "Added successfully",
+"deleteConfirmMessage": "Are you sure you want to delete this permission?",
+
+"confirmButtonText": "Confirm",
+"cancelButtonText": "Cancel",
+"deleteSuccessMessage": "Deleted successfully",
+"deleteCancelledMessage": "Deletion cancelled",
+
+
+  "Enter the glass lD":"Enter the glass lD",
+  "Manually feed the glass":"Manually feed the glass",
+  "Enter the order number":"Enter the order number",
+  "Exit the glass by order number":"Exit the glass by order number",
+  "Please confirm the glass information":"Please confirm the glass information",
+  "Please confirm the Ordering Information":"Please confirm the Ordering Information",
+  "Alarm Information":"Alarm Information",
+  "Cage Details":"Cage Details",
+  "order":"order",
+  "length":"length",
+  "width":"width",
+  "coating":"coating",
+  "Operate":"Operate",
+  "end task":"end task",
+  "cancal":"cancal",
+  "confirm":"confirm",
+  "number":"number",
+  "Coming out glass ID":"Coming out glass ID",
+  "Incoming glass ID":"Incoming glass ID",
+  "The Cage number being used":"The Cage number being used",
+  "The Grille number being used":"The Grille number being used",
+  "Order Nmuber":"Order Nmuber",
+  "Length and width":"Length and width",
+  "id":"id",
+  "content":"content",
+  "timeon":"timeon",
+  "endTime":"endTime",
+
+  "The Cage number":"The Cage number",
+  "tier":"tier",
+  "cell":"cell",
+  "glassid":"glassid",
+  "order number":"order number",
+  "delete":"delete",
+  "out":"out"
+
 }
\ No newline at end of file
diff --git a/CanadaMes-ui/src/lang/locales/zh-CN.json b/CanadaMes-ui/src/lang/locales/zh-CN.json
index 30c0b8c..e85ed6b 100644
--- a/CanadaMes-ui/src/lang/locales/zh-CN.json
+++ b/CanadaMes-ui/src/lang/locales/zh-CN.json
@@ -171,5 +171,88 @@
   "State": "State",
   "Alarm": "鎶ヨ淇℃伅",
   "Distribute": "涓嬪彂",
-  "Search": "鎼滅储"
+  "Search": "鎼滅储",
+  "langUsernameLabel": "鐢ㄦ埛鍚�",
+  "langPasswordLabel": "瀵嗙爜",
+  "langPasswordPlaceholder": "璇疯緭鍏ュ瘑鐮�",
+  "langConfirmPasswordLabel": "纭瀵嗙爜",
+  "langConfirmPasswordPlaceholder": "璇风‘璁ゅ瘑鐮�",
+  "langEmailLabel": "閭",
+  
+  "langQQLabel": "QQ",
+  "langQQPlaceholder": "璇疯緭鍏Q鍙风爜",
+  "langPhoneNumberLabel": "鎵嬫満鍙风爜",
+  "langPhoneNumberPlaceholder": "璇疯緭鍏ユ墜鏈哄彿鐮�",
+  "langUsernameRequiredMessage": "璇疯緭鍏ョ敤鎴峰悕",
+  "langUsernameLengthMessage": "鐢ㄦ埛鍚嶉暱搴﹀湪5鍒�15涓瓧绗︿箣闂�",
+  "langPasswordRequiredMessage": "璇疯緭鍏ュ瘑鐮�",
+  "langPasswordLengthMessage": "瀵嗙爜闀垮害鍦�5鍒�15涓瓧绗︿箣闂�",
+  "langEmailRequiredMessage": "璇疯緭鍏ラ偖绠�",
+  "langEmailFormatMessage": "閭鏍煎紡涓嶆纭�",
+  "langRegisterButton": "娉ㄥ唽",
+  "langResetButton": "閲嶇疆",
+  "langCancelButton": "鍙栨秷",
+  "langRegisterSuccessMessage": "娉ㄥ唽鎴愬姛",
+
+  "娣诲姞鐢ㄦ埛鎴愬姛":"娣诲姞鐢ㄦ埛鎴愬姛",
+  "confirmResetPassword": "纭閲嶇疆瀵嗙爜涓洪粯璁ゅ�煎悧锛�",
+  
+  "confirm": "纭畾",
+  "cancel": "鍙栨秷",
+  "passwordResetSuccess": "瀵嗙爜宸查噸缃负榛樿鍊�",
+  "confirmDeleteCategory": "姝ゆ搷浣滃皢姘镐箙鍒犻櫎璇ュ垎绫�, 鏄惁缁х画?",
+  "prompt": "鎻愮ず",
+  "userDeleteSuccess": "鍒犻櫎鐢ㄦ埛鎴愬姛",
+  "deleteCanceled": "宸插彇娑堝垹闄�",
+  "addUserSuccess": "娣诲姞鐢ㄦ埛鎴愬姛",
+  "editUserSuccess": "淇敼鐢ㄦ埛鎴愬姛",
+  "effective": "鏈夋晥",
+"invalid": "鏃犳晥",
+
+"addSuccessMessage": "娣诲姞鎴愬姛",
+"deleteConfirmMessage": "纭畾瑕佸垹闄よ鏉冮檺鍚楋紵",
+
+"confirmButtonText": "纭畾",
+"cancelButtonText": "鍙栨秷",
+"deleteSuccessMessage": "鍒犻櫎鎴愬姛",
+"deleteCancelledMessage": "宸插彇娑堝垹闄ゆ搷浣�",
+
+
+
+  "Enter the glass lD":"杈撳叆鐜荤拑id",
+  "Manually feed the glass":"鎵嬪姩涓婄墖",
+  "Enter the order number":"杈撳叆璁㈠崟鍙�",
+  "Exit the glass by order number":"鎸夎鍗曞嚭鐗�",
+  "Please confirm the glass information":"璇风‘璁ょ幓鐠冧俊鎭�",
+  "Please confirm the Ordering Information":"璇风‘璁よ鍗曚俊鎭�",
+  "Alarm Information":"鎶ヨ淇℃伅",
+  "Cage Details":"鐞嗙墖绗艰鎯�",
+  "order":"璁㈠崟",
+  "length":"闀�",
+  "width":"瀹�",
+  "coating":"娑傚眰",
+  "Operate":"鎿嶄綔",
+  "end task":"瀹屾垚浠诲姟",
+  "cancal":"鍙栨秷",
+  "confirm":"纭",
+  "number":"鏁伴噺",
+  "Coming out glass ID":"杩涚墖鐜荤拑id",
+  "Incoming glass ID":"鍑虹墖鐜荤拑id",
+  "The Cage number being used":"绗煎瓙",
+  "The Grille number being used":"鏍煎瓙",
+  "Order Nmuber":"璁㈠崟缂栧彿",
+  "Length and width":"灏哄",
+  "id":"id",
+  "content":"鍐呭",
+  "timeon":"鎶ヨ鏃堕棿",
+  "endTime":"缁撴潫鏃堕棿",
+
+  "The Cage number":"绗煎瓙",
+  "tier":"灞�",
+  "cell":"鏍煎瓙",
+  "glassid":"鐜荤拑id",
+  "order number":"璁㈠崟",
+  "delete":"鍒犻櫎",
+  "out":"鍑虹墖"
+
 }
\ No newline at end of file
diff --git a/CanadaMes-ui/src/layout/index.vue b/CanadaMes-ui/src/layout/index.vue
index 4e5d820..be073bb 100644
--- a/CanadaMes-ui/src/layout/index.vue
+++ b/CanadaMes-ui/src/layout/index.vue
@@ -1,5 +1,5 @@
 <template>
-  <el-container style="flex: 1;">
+  <el-container style="flex: 1;height:100%;">
     <div style="width: 200px;background-color: #222f3e" :style="{width: isCollapse?'70px':'250px'}">
       <el-aside :width="isCollapse?'70px':'250px'">
         <el-col :gutter="20">
@@ -207,12 +207,15 @@
         '鎶ヨ淇℃伅': 'AlarmInformation',
         '鍙傛暟涓嬪彂': 'ParameterSetting',
         '寮�鍏虫帶鍒�': 'SwitchControl',
-        'I/O鐘舵��': 'I/O Status',
+        'IO鐘舵��': 'Sign',
         '鏉冮檺绠$悊': 'PermissionManagement',
         '鏉冮檺鍒楄〃': 'PermissionList',
         '瑙掕壊绠$悊': 'RoleManagement',
         '瑙掕壊鍒楄〃': 'RoleList',
-        '鐢垫皵绠$悊': 'Electrical management'
+        '鐢垫皵绠$悊': 'Electrical management',
+        '璁惧鐘舵��':'State',
+
+        '涓婚〉': 'Home'
         // 鏍规嵁瀹為檯闇�姹傜户缁坊鍔犲鐓у叧绯�
       };
 
diff --git a/CanadaMes-ui/src/main.js b/CanadaMes-ui/src/main.js
index 11d1158..07eff9c 100644
--- a/CanadaMes-ui/src/main.js
+++ b/CanadaMes-ui/src/main.js
@@ -2,6 +2,8 @@
 import App from './App.vue'
 import router from './router'
 import ElementUI, {Message, MessageBox} from 'element-ui';
+import locale from 'element-ui/lib/locale/lang/en' // lang i18n
+
 import 'element-ui/lib/theme-chalk/index.css';
 // 瀵煎叆鍏ㄥ眬鏍峰紡琛�
 import './assets/css/global.css'
@@ -23,7 +25,7 @@
 
 const EventBus = new Vue();
 Vue.prototype.$bus = EventBus;
-Vue.use(ElementUI);
+Vue.use(ElementUI,{locale});
 
 Vue.config.productionTip = false;
 
diff --git a/CanadaMes-ui/src/router/index.js b/CanadaMes-ui/src/router/index.js
index 7cc714b..a4d9ebf 100644
--- a/CanadaMes-ui/src/router/index.js
+++ b/CanadaMes-ui/src/router/index.js
@@ -97,7 +97,10 @@
   }
 ];
 
+
+
 const router = new VueRouter({
+  // base: '/canadames/',  
   routes
 });
 
diff --git a/CanadaMes-ui/src/utils/request.js b/CanadaMes-ui/src/utils/request.js
index c5b5a25..d115559 100644
--- a/CanadaMes-ui/src/utils/request.js
+++ b/CanadaMes-ui/src/utils/request.js
@@ -3,7 +3,8 @@
 
 const service = axios.create({
     baseURL: process.env.VUE_APP_BASE_API,
-    timeout: 5000
+    timeout: 5000,
+    withCredentials: true // 娣诲姞姝よ閰嶇疆
 })
 
 service.interceptors.response.use(
diff --git a/CanadaMes-ui/src/views/Electrical/Action.vue b/CanadaMes-ui/src/views/Electrical/Action.vue
index b53055a..e7f938d 100644
--- a/CanadaMes-ui/src/views/Electrical/Action.vue
+++ b/CanadaMes-ui/src/views/Electrical/Action.vue
@@ -2,13 +2,12 @@
   <div class="app">
     <!--闈㈠寘灞戝鑸尯鍩�-->
     <el-breadcrumb separator-class="el-icon-arrow-right" class="el-breadcrumb">
-      <router-link to="/home" tag="el-button" type="text">{{ $t('langHome') }}</router-link>
-      <el-button type="text">Electrical</el-button>
-      <router-link to="/Electrical/Parameter" tag="el-button" type="text">Parameter</router-link>
-      <router-link to="/Electrical/Action" tag="el-button" type="text">Action</router-link>
-      <router-link to="/Electrical/Sign" tag="el-button" type="text">Sign</router-link>
-      <router-link to="/Electrical/State" tag="el-button" type="text">State</router-link>
-      <router-link to="/Electrical/alarm" tag="el-button" type="text">Alarm</router-link>
+     
+      <router-link to="/Electrical/Parameter" tag="el-button" type="text" active-class="blue-button">{{ $t('Parameter') }}</router-link>
+    <router-link to="/Electrical/Action" tag="el-button" type="text" active-class="blue-button">{{ $t('Action') }}</router-link>
+    <router-link to="/Electrical/Sign" tag="el-button" type="text" active-class="blue-button">{{ $t('Sign') }}</router-link>
+    <router-link to="/Electrical/State" tag="el-button" type="text" active-class="blue-button">{{ $t('State') }}</router-link>
+    <router-link to="/Electrical/alarm" tag="el-button" type="text" active-class="blue-button">{{ $t('Alarm') }}</router-link>
     </el-breadcrumb>
     <div>Action</div>
     <el-form label-width="100px" style="display: flex;flex-wrap: wrap;" :model="{ messagepack }">
@@ -31,12 +30,13 @@
 import LanguageMixin from '../../lang/LanguageMixin'
 let socket;
 export default {
-  name: "action",
+  name: "Action",
   mixins: [LanguageMixin],
   data () {
     return {
+      activeButton: '',
       record: {
-        params: [0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
+        params: [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
         canshu: [
           'D01 VFD conveyor',
           'D02 VFD conveyor',
@@ -68,7 +68,7 @@
         xyData: [
           { name: 'D01 VFD conveyor', value: "0" },
           { name: 'D02 VFD conveyor', value: "0" },
-          { name: 'D03 VFD conveyor', value: "1" },
+          { name: 'D03 VFD conveyor', value: "0" },
           { name: 'D04 VFD conveyor', value: "0" },
           { name: 'D05 VFD conveyor', value: "0" },
           { name: 'D06 VFD conveyor', value: "0" },
@@ -111,6 +111,9 @@
     this.init();
   },
   methods: {
+    setActiveButton(buttonName) {
+    this.activeButton = buttonName;
+  },
     init () {
       let viewname = "action";
 
@@ -203,4 +206,7 @@
 .el-input__inner {
   border: none;
 }
+.blue-button {
+  background-color: skyblue;
+}
 </style>
\ No newline at end of file
diff --git a/CanadaMes-ui/src/views/Electrical/Parameter.vue b/CanadaMes-ui/src/views/Electrical/Parameter.vue
index 8dfa62b..0ef74f9 100644
--- a/CanadaMes-ui/src/views/Electrical/Parameter.vue
+++ b/CanadaMes-ui/src/views/Electrical/Parameter.vue
@@ -2,13 +2,11 @@
   <div class="app">
     <!-- 闈㈠寘灞戝鑸尯鍩� -->
     <el-breadcrumb separator-class="el-icon-arrow-right" class="el-breadcrumb">
-      <router-link to="/home" tag="el-button" type="text">{{ $t('langHome') }}</router-link>
-      <el-button type="text">Electrical</el-button>
-      <router-link to="/Electrical/Parameter" tag="el-button" type="text">Parameter</router-link>
-      <router-link to="/Electrical/Action" tag="el-button" type="text">Action</router-link>
-      <router-link to="/Electrical/Sign" tag="el-button" type="text">Sign</router-link>
-      <router-link to="/Electrical/State" tag="el-button" type="text">State</router-link>
-      <router-link to="/Electrical/alarm" tag="el-button" type="text">Alarm</router-link>
+      <router-link to="/Electrical/Parameter" tag="el-button" type="text" active-class="blue-button">{{ $t('Parameter') }}</router-link>
+    <router-link to="/Electrical/Action" tag="el-button" type="text" active-class="blue-button">{{ $t('Action') }}</router-link>
+    <router-link to="/Electrical/Sign" tag="el-button" type="text" active-class="blue-button">{{ $t('Sign') }}</router-link>
+    <router-link to="/Electrical/State" tag="el-button" type="text" active-class="blue-button">{{ $t('State') }}</router-link>
+    <router-link to="/Electrical/alarm" tag="el-button" type="text" active-class="blue-button">{{ $t('Alarm') }}</router-link>
     </el-breadcrumb>
 
     <div>Parameter</div>
@@ -31,11 +29,13 @@
 
 <script>
 let socket;
-
+import LanguageMixin from '../../lang/LanguageMixin'
 export default {
   name: "Parameter",
+  mixins: [LanguageMixin],
   data () {
     return {
+      activeButton: '',
       record: {
         params: [100, 200, 10, 10, 10, 10],
         xyData: [
@@ -70,6 +70,9 @@
     this.isButtonDisabled = true;
   },
   methods: {
+    setActiveButton(buttonName) {
+      this.activeButton = buttonName;
+    },
     initWebSocket () {
       let viewname = "Parameter";
 
@@ -156,7 +159,10 @@
   border: none;
 }
 
-
+.blue-button {
+  background-color: skyblue;
+  color: #fff;
+}
 #btn_div {
   width: 100%;
 }
diff --git a/CanadaMes-ui/src/views/Electrical/Sign.vue b/CanadaMes-ui/src/views/Electrical/Sign.vue
index 3252ddb..6963507 100644
--- a/CanadaMes-ui/src/views/Electrical/Sign.vue
+++ b/CanadaMes-ui/src/views/Electrical/Sign.vue
@@ -2,13 +2,11 @@
   <div class="app">
     <!--闈㈠寘灞戝鑸尯鍩�-->
     <el-breadcrumb separator-class="el-icon-arrow-right" class="el-breadcrumb">
-      <router-link to="/home" tag="el-button" type="text">{{ $t('langHome') }}</router-link>
-      <el-button type="text">{{ $t('Electrical') }}</el-button>
-      <router-link to="/Electrical/Parameter" tag="el-button" type="text">{{ $t('Parameter') }}</router-link>
-      <router-link to="/Electrical/Action" tag="el-button" type="text">{{ $t('Action') }}</router-link>
-      <router-link to="/Electrical/Sign" tag="el-button" type="text">{{ $t('Sign') }}</router-link>
-      <router-link to="/Electrical/State" tag="el-button" type="text">{{ $t('State') }}</router-link>
-      <router-link to="/Electrical/alarm" tag="el-button" type="text">{{ $t('Alarm') }}</router-link>
+      <router-link to="/Electrical/Parameter" tag="el-button" type="text" active-class="blue-button">{{ $t('Parameter') }}</router-link>
+    <router-link to="/Electrical/Action" tag="el-button" type="text" active-class="blue-button">{{ $t('Action') }}</router-link>
+    <router-link to="/Electrical/Sign" tag="el-button" type="text" active-class="blue-button">{{ $t('Sign') }}</router-link>
+    <router-link to="/Electrical/State" tag="el-button" type="text" active-class="blue-button">{{ $t('State') }}</router-link>
+    <router-link to="/Electrical/alarm" tag="el-button" type="text" active-class="blue-button">{{ $t('Alarm') }}</router-link>
     </el-breadcrumb>
     <div>Sign</div>
     <div style="padding-right: 30px;display: flex;flex-wrap: wrap;" class="neir">
@@ -32,6 +30,7 @@
   mixins: [LanguageMixin],
   data () {
     return {
+      activeButton: '',
       record: {
         //瀹氫箟鏁扮粍锛屽苟娣诲姞榛樿鍊�
         params: [1, 1, 1, 1, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0,
@@ -148,6 +147,12 @@
     this.init();
   },
   methods: {
+    onButtonClick() {
+      this.isButtonClicked = true; // 灏嗘寜閽鑹茶缃负钃濊壊
+      setTimeout(() => {
+        this.isButtonClicked = false; // 閲嶇疆鎸夐挳棰滆壊
+      }, 500); // 杩欓噷鐨�500姣鏄牴鎹偍甯屾湜鎸夐挳棰滆壊鎸佺画澶氶暱鏃堕棿鏉ュ畾鐨勶紝鍙互鏍规嵁闇�姹傝繘琛岃皟鏁�
+    },
     //鏍规嵁璇诲彇PLC鐨勫�硷紝鏍规嵁鍚嶇О鏀瑰彉棰滆壊
     getStatusClass (zhuangtai) {
       if (zhuangtai === 0) {
@@ -289,4 +294,7 @@
 .yellow {
   background-color: yellow;
 }
+.blue-button {
+  background-color: skyblue;
+}
 </style>
\ No newline at end of file
diff --git a/CanadaMes-ui/src/views/Electrical/State.vue b/CanadaMes-ui/src/views/Electrical/State.vue
index 9cfb3b3..d06991a 100644
--- a/CanadaMes-ui/src/views/Electrical/State.vue
+++ b/CanadaMes-ui/src/views/Electrical/State.vue
@@ -2,13 +2,11 @@
   <div class="app">
     <!--闈㈠寘灞戝鑸尯鍩�-->
     <el-breadcrumb separator-class="el-icon-arrow-right" class="el-breadcrumb">
-      <router-link to="/home" tag="el-button" type="text">{{ $t('langHome') }}</router-link>
-      <el-button type="text">{{ $t('Electrical') }}</el-button>
-      <router-link to="/Electrical/Parameter" tag="el-button" type="text">{{ $t('Parameter') }}</router-link>
-      <router-link to="/Electrical/Action" tag="el-button" type="text">{{ $t('Action') }}</router-link>
-      <router-link to="/Electrical/Sign" tag="el-button" type="text">{{ $t('Sign') }}</router-link>
-      <router-link to="/Electrical/State" tag="el-button" type="text">{{ $t('State') }}</router-link>
-      <router-link to="/Electrical/alarm" tag="el-button" type="text">{{ $t('Alarm') }}</router-link>
+      <router-link to="/Electrical/Parameter" tag="el-button" type="text" active-class="blue-button">{{ $t('Parameter') }}</router-link>
+    <router-link to="/Electrical/Action" tag="el-button" type="text" active-class="blue-button">{{ $t('Action') }}</router-link>
+    <router-link to="/Electrical/Sign" tag="el-button" type="text" active-class="blue-button">{{ $t('Sign') }}</router-link>
+    <router-link to="/Electrical/State" tag="el-button" type="text" active-class="blue-button">{{ $t('State') }}</router-link>
+    <router-link to="/Electrical/alarm" tag="el-button" type="text" active-class="blue-button">{{ $t('Alarm') }}</router-link>
     </el-breadcrumb>
     <div>State</div>
 
@@ -38,6 +36,7 @@
   mixins: [LanguageMixin],
   data () {
     return {
+      activeButton: '',
       record: {
         params: [1, 1, 1, 1, 1, 1, 1, 1, 1, 1,],
         xyData: [
@@ -82,6 +81,12 @@
     this.init();
   },
   methods: {
+    onButtonClick() {
+      this.isButtonClicked = true; // 灏嗘寜閽鑹茶缃负钃濊壊
+      setTimeout(() => {
+        this.isButtonClicked = false; // 閲嶇疆鎸夐挳棰滆壊
+      }, 500); // 杩欓噷鐨�500姣鏄牴鎹偍甯屾湜鎸夐挳棰滆壊鎸佺画澶氶暱鏃堕棿鏉ュ畾鐨勶紝鍙互鏍规嵁闇�姹傝繘琛岃皟鏁�
+    },
     init () {
       let viewname = "State";
 
@@ -186,4 +191,7 @@
 #btn_div .el-button {
   float: right;
 }
+.blue-button {
+  background-color: skyblue;
+}
 </style>
diff --git a/CanadaMes-ui/src/views/Electrical/alarm.vue b/CanadaMes-ui/src/views/Electrical/alarm.vue
index 7b20441..946a1e2 100644
--- a/CanadaMes-ui/src/views/Electrical/alarm.vue
+++ b/CanadaMes-ui/src/views/Electrical/alarm.vue
@@ -2,13 +2,11 @@
   <div class="app">
     <!--闈㈠寘灞戝鑸尯鍩�-->
     <el-breadcrumb separator-class="el-icon-arrow-right" class="el-breadcrumb">
-      <router-link to="/home" tag="el-button" type="text">{{ $t('langHome') }}</router-link>
-      <el-button type="text">{{ $t('Electrical') }}</el-button>
-      <router-link to="/Electrical/Parameter" tag="el-button" type="text">{{ $t('Parameter') }}</router-link>
-      <router-link to="/Electrical/Action" tag="el-button" type="text">{{ $t('Action') }}</router-link>
-      <router-link to="/Electrical/Sign" tag="el-button" type="text">{{ $t('Sign') }}</router-link>
-      <router-link to="/Electrical/State" tag="el-button" type="text">{{ $t('State') }}</router-link>
-      <router-link to="/Electrical/alarm" tag="el-button" type="text">{{ $t('Alarm') }}</router-link>
+      <router-link to="/Electrical/Parameter" tag="el-button" type="text" active-class="blue-button">{{ $t('Parameter') }}</router-link>
+    <router-link to="/Electrical/Action" tag="el-button" type="text" active-class="blue-button">{{ $t('Action') }}</router-link>
+    <router-link to="/Electrical/Sign" tag="el-button" type="text" active-class="blue-button">{{ $t('Sign') }}</router-link>
+    <router-link to="/Electrical/State" tag="el-button" type="text" active-class="blue-button">{{ $t('State') }}</router-link>
+    <router-link to="/Electrical/alarm" tag="el-button" type="text" active-class="blue-button">{{ $t('Alarm') }}</router-link>
     </el-breadcrumb>
     <div>Alarm</div>
     <div class="block">
@@ -49,6 +47,7 @@
   mixins: [LanguageMixin],
   data () {
     return {
+      activeButton: '',
       record: {
         params: [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
 
@@ -110,6 +109,12 @@
 
   },
   methods: {
+    onButtonClick() {
+      this.isButtonClicked = true; // 灏嗘寜閽鑹茶缃负钃濊壊
+      setTimeout(() => {
+        this.isButtonClicked = false; // 閲嶇疆鎸夐挳棰滆壊
+      }, 500); // 杩欓噷鐨�500姣鏄牴鎹偍甯屾湜鎸夐挳棰滆壊鎸佺画澶氶暱鏃堕棿鏉ュ畾鐨勶紝鍙互鏍规嵁闇�姹傝繘琛岃皟鏁�
+    },
 
     load () {
       setAll().then(res => {
@@ -232,4 +237,7 @@
 th div {
   text-align: center;
 }
+.blue-button {
+  background-color: skyblue;
+}
 </style>
\ No newline at end of file
diff --git a/CanadaMes-ui/src/views/home/index.vue b/CanadaMes-ui/src/views/home/index.vue
index f76e51d..98c0f36 100644
--- a/CanadaMes-ui/src/views/home/index.vue
+++ b/CanadaMes-ui/src/views/home/index.vue
@@ -151,37 +151,37 @@
                 </div>
             </div>
             <div style="display:flex;justify-content: space-around;width: 95%;margin: 0 auto;">
-                <el-input style="width:15%;" placeholder="Enter the glass lD" v-model="glassid"></el-input>
-                <el-button type="primary" @click="showform()">Manually feed the glass</el-button>
-                <el-input style="width:15%;" placeholder="Enter the order number" v-model="order"></el-input>
-                <el-button type="warning" @click="showform1();">Exit the glass by order number</el-button>
+                <el-input style="width:15%;" :placeholder="$t('Enter the glass lD')" v-model="glassid"></el-input>
+                <el-button type="primary" @click="showform()">{{ $t('Manually feed the glass') }}</el-button>
+                <el-input style="width:15%;" :placeholder="$t('Enter the order number')" v-model="order"></el-input>
+                <el-button type="warning" @click="showform1();">{{ $t('Exit the glass by order number') }}</el-button>
             </div>
             <div>
                 <el-table :data="this.tasklist1" border style="width: 100%">
-                    <el-table-column prop="glassId" label="Coming out glass ID"></el-table-column>
-                    <el-table-column :width="250" prop="cell" label="The Grille number being used"></el-table-column>
-                    <el-table-column prop="orderId" label="Order Nmuber"></el-table-column>
-                    <el-table-column prop="lengthWidth" label="Length and width"></el-table-column>
-                    <el-table-column prop="coating" label="coating"></el-table-column>
-                    <el-table-column label="Operate">
+                    <el-table-column prop="glassId" :label="$t('Coming out glass ID')"></el-table-column>
+                    <el-table-column :width="250" prop="cage" :label="$t('The Cage number being used')"></el-table-column>
+                    <el-table-column :width="250" prop="cell" :label="$t('The Grille number being used')"></el-table-column>
+                    <el-table-column prop="orderId" :label="$t('Order Nmuber')"></el-table-column>
+                    <el-table-column prop="lengthWidth" :label="$t('Length and width')"></el-table-column>
+                    <el-table-column prop="coating" :label="$t('coating')"></el-table-column>
+                    <el-table-column :label="$t('Operate')">
                         <template slot-scope='scope'>
                             <el-button type="primary" style="padding: 4px 10px;font-size: 12px;"
-                                @click="endtask(0, scope.row.glassId, scope.row.cell)">end
-                                task</el-button>
+                                @click="endtask(0, scope.row.glassId, scope.row.cell)">{{$t('end task')}}</el-button>
                         </template>
                     </el-table-column>
                 </el-table>
                 <el-table :data="this.tasklist2" border style="width: 100%">
-                    <el-table-column prop="glassId" label="Incoming glass ID"></el-table-column>
-                    <el-table-column :width="250" prop="cell" label="The Grille number being used"></el-table-column>
-                    <el-table-column prop="orderId" label="Order Nmuber"></el-table-column>
-                    <el-table-column prop="lengthWidth" label="Length and width"></el-table-column>
-                    <el-table-column prop="coating" label="coating"></el-table-column>
-                    <el-table-column label="Operate">
+                    <el-table-column prop="glassId" :label="$t('Incoming glass ID')"></el-table-column>
+                    <el-table-column :width="250" prop="cage" :label="$t('The Cage number being used')"></el-table-column>
+                    <el-table-column :width="250" prop="cell" :label="$t('The Grille number being used')"></el-table-column>
+                    <el-table-column prop="orderId" :label="$t('Order Nmuber')"></el-table-column>
+                    <el-table-column prop="lengthWidth" :label="$t('Length and width')"></el-table-column>
+                    <el-table-column prop="coating" :label="$t('coating')"></el-table-column>
+                    <el-table-column :label="$t('Operate')">
                         <template slot-scope='scope'>
                             <el-button type="primary" style="padding: 4px 10px;font-size: 12px;"
-                                @click="endtask(1, scope.row.glassId, scope.row.cell)">end
-                                task</el-button>
+                                @click="endtask(1, scope.row.glassId, scope.row.cell)">{{$t('end task')}}</el-button>
                         </template>
                     </el-table-column>
                 </el-table>
@@ -221,68 +221,67 @@
                 <div class="blocks-img" :style="{ left: car2 + 'px', top: '194px' }"></div>
             </div>
         </el-footer>
-        <el-dialog :visible.sync="dialogFormVisible" title="Please confirm the information">
+        <el-dialog :visible.sync="dialogFormVisible" :title="$t('Please confirm the glass information')">
             <el-form :model="form" label-width="100px" style="padding-right: 30px">
-                <el-form-item label="order">
+                <el-form-item :label="$t('order')">
                     <el-input v-model="form.orderno" autocomplete="off" />
                 </el-form-item>
-                <el-form-item label="length">
+                <el-form-item :label="$t('length')">
                     <el-input v-model="form.length" autocomplete="off" />
                 </el-form-item>
-                <el-form-item label="width">
+                <el-form-item :label="$t('width')">
                     <el-input v-model="form.width" autocomplete="off" />
                 </el-form-item>
-                <el-form-item label="coating">
+                <el-form-item :label="$t('coating')">
                     <el-input v-model="form.coating" autocomplete="off" />
                 </el-form-item>
             </el-form>
             <template #footer>
                 <span class="dialog-footer">
-                    <el-button @click="cancal()">cancal</el-button>
-                    <el-button @click="sbumitglassid()" type="primary">confirm</el-button>
+                    <el-button @click="cancal()">{{ $t('cancal') }}</el-button>
+                    <el-button @click="sbumitglassid()" type="primary">{{ $t('confirm') }}</el-button>
                 </span>
             </template>
         </el-dialog>
-        <el-dialog :visible.sync="dialogFormVisible1" title="Ordering Information">
+        <el-dialog :visible.sync="dialogFormVisible1" :title="$t('Please confirm the Ordering Information')">
             <el-form :model="form1" label-width="100px" style="padding-right: 30px">
-                <el-form-item label="order">
+                <el-form-item :label="$t('order')">
                     <el-input v-model="form1.order" autocomplete="off" />
                 </el-form-item>
-                <el-form-item label="number">
+                <el-form-item :label="$t('number')">
                     <el-input v-model="form1.number" autocomplete="off" />
                 </el-form-item>
             </el-form>
             <template #footer>
                 <span class="dialog-footer">
-                    <el-button @click="cancal1()">cancal</el-button>
-                    <el-button @click="getOrder();" type="primary">confirm</el-button>
+                    <el-button @click="cancal1()">{{ $t('cancal') }}</el-button>
+                    <el-button @click="getOrder();" type="primary">{{ $t('confirm') }}</el-button>
                 </span>
             </template>
         </el-dialog>
-        <el-dialog :visible.sync="dialogFormVisible2" title="Ordering Information">
+        <el-dialog :visible.sync="dialogFormVisible2" :title="$t('Alarm Information')">
             <el-table :data="this.alarm" border style="width: 100%;">
-                <el-table-column prop="id" label="id"></el-table-column>
-                <el-table-column prop="content" label="content"></el-table-column>
-                <el-table-column prop="timeons" label="timeon"></el-table-column>
-
-                <el-table-column prop="endTime" label="endTime"></el-table-column>
+                <el-table-column prop="id" :label="$t('id')"></el-table-column>
+                <el-table-column prop="content" :label="$t('content')"></el-table-column>
+                <el-table-column prop="timeons" :label="$t('timeon')"></el-table-column>
+                <el-table-column prop="endTime" :label="$t('endTime')"></el-table-column>
             </el-table>
         </el-dialog>
-        <el-dialog :visible.sync="dialogFormVisible3" title="Cage Details">
-            <el-table :data="this.cageinfo" border style="width: 100%;height: 700px;overflow: auto;">
-                <el-table-column :width="150" prop="cage" label="the grille number"></el-table-column>
-                <el-table-column prop="cell" label="cell"></el-table-column>
-                <el-table-column prop="tier" label="tier"></el-table-column>
-                <el-table-column prop="glassId" label="glassid"></el-table-column>
-                <el-table-column :width="130" prop="orderId" label="order number"></el-table-column>
-                <el-table-column :width="150" prop="lengthWidth" label="length and width"></el-table-column>
-                <el-table-column prop="coating" label="coating"></el-table-column>
-                <el-table-column :width="150" label="operate">
+        <el-dialog :visible.sync="dialogFormVisible3" :title="$t('Cage Details')">
+            <el-table :data="this.cageinfo" :height="700" border style="width: 100%;overflow: auto;">
+                <el-table-column :width="150" prop="cage" :label="$t('The Cage number')"></el-table-column>
+                <el-table-column prop="cell" :label="$t('cell')"></el-table-column>
+                <el-table-column prop="tier" :label="$t('tier')"></el-table-column>
+                <el-table-column prop="glassId" :label="$t('glassid')"></el-table-column>
+                <el-table-column :width="130" prop="orderId" :label="$t('order number')"></el-table-column>
+                <el-table-column :width="150" prop="lengthWidth" :label="$t('Length and width')"></el-table-column>
+                <el-table-column prop="coating" :label="$t('coating')"></el-table-column>
+                <el-table-column :width="140" :label="$t('Operate')">
                     <template slot-scope='scope'>
                         <el-button type="primary" style="padding: 4px 10px;font-size: 12px;"
-                            @click="deleteglass(scope.row.glassId, scope.row.state)">delete</el-button>
+                            @click="deleteglass(scope.row.glassId, scope.row.state)">{{ $t('delete') }}</el-button>
                         <el-button type="primary" style="padding: 4px 10px;font-size: 12px;"
-                            @click="outglass(scope.row.glassId, scope.row.state)">out</el-button>
+                            @click="outglass(scope.row.glassId, scope.row.state)">{{ $t('out') }}</el-button>
                     </template>
                 </el-table-column>
             </el-table>
@@ -442,7 +441,9 @@
             if (this.form1.order != "") {
                 InsertOrder(this.order).then(res => {
                     if (res.data.message == 200) {
+                        this.dialogFormVisible1=false;
                         this.$message.success("Operation successful");
+
                     } else {
                         this.$message.success("There is no such order");
                     }
@@ -462,7 +463,7 @@
                         this.$message.success("There are currently tasks");
                     }
                     else if(res.data.message2 == 300) {
-                        this.$message.success("There is no such grid");
+                        this.$message.success("There is no such glass");
                     }
                     else if(res.data.message2 == 400) {
                         this.$message.success("There is no such grid");
diff --git a/CanadaMes-ui/src/views/power/index.vue b/CanadaMes-ui/src/views/power/index.vue
index 7488cf8..eb274a9 100644
--- a/CanadaMes-ui/src/views/power/index.vue
+++ b/CanadaMes-ui/src/views/power/index.vue
@@ -201,100 +201,101 @@
     this.getPowerList();
   },
   methods: {
-    getPowerList() {
-      selectPage(this.queryInfo).then(res => {
-        this.powerList.total = res.data.total;
-        this.powerList.records = res.data.records;
+  getPowerList() {
+    selectPage(this.queryInfo).then(res => {
+      this.powerList.total = res.data.total;
+      this.powerList.records = res.data.records;
+    });
+  },
+  // 鐩戝惉pageSize鏀瑰彉鐨勪簨浠�
+  handleSizeChange(newSize) {
+    this.queryInfo.pageSize = newSize;
+    this.getPowerList()
+  },
+  // 鐩戝惉pageNum鏀瑰彉鐨勪簨浠�
+  handleCurrentChange(newPage) {
+    this.queryInfo.pageNum = newPage;
+    this.getPowerList()
+  },
+  stateChange(info) {
+    saveOrUpdate(info).then(() => {
+      this.$message.success(this.$t('updateSuccessMessage'))
+    });
+  },
+  // 鐩戝惉娣诲姞鏉冮檺瀵硅瘽妗嗙殑鍏抽棴浜嬩欢
+  addDialogClosed() {
+    this.$refs['powerRef'].resetFields();
+  },
+  // 鐐瑰嚮鎸夐挳娣诲姞鏂版潈闄�
+  addPower() {
+    this.$refs.powerRef.validate(async valid => {
+      if (!valid) return;
+      // 鍙戣捣娣诲姞鏉冮檺鐨勭綉缁滆姹�
+      saveOrUpdate(this.addPowerForm).then(() => {
+        // 閲嶆柊鑾峰彇鏉冮檺鍒楄〃
+        this.getPowerList();
+        // 闅愯棌娣诲姞鏉冮檺瀵硅瘽妗�
+        this.addDialogVisible = false;
+        this.$message.success(this.$t('addSuccessMessage'));
       });
-    },
-    // 鐩戝惉pageSize鏀瑰彉鐨勪簨浠�
-    handleSizeChange(newSize) {
-      this.queryInfo.pageSize = newSize;
-      this.getPowerList()
-    },
-    // 鐩戝惉pageNum鏀瑰彉鐨勪簨浠�
-    handleCurrentChange(newPage) {
-      this.queryInfo.pageNum = newPage;
-      this.getPowerList()
-    },
-    stateChange(info) {
-      saveOrUpdate(info).then(() => {
-        this.$message.success("鏇存柊鐘舵�佹垚鍔�")
+    })
+  },
+  // 灞曠ず淇敼鏉冮檺鐨勫璇濇
+  showEditDialog(role) {
+    getById({id: role.id}).then(res => {
+      this.editRoleForm = res.data;
+    });
+    select(this.addPowerForm).then(res => {
+      this.roleList = res.data;
+    });
+    selectPermission(this.addPowerForm).then(res => {
+      this.permissionList = res.data;
+    });
+    this.editDialogVisible = true;
+  },
+  // 灞曠ず娣诲姞鏉冮檺鐨勫璇濇
+  showAddDialog() {
+    select(this.addPowerForm).then(res => {
+      this.roleList = res.data;
+    });
+    selectPermission(this.addPowerForm).then(res => {
+      this.permissionList = res.data;
+    });
+    this.addDialogVisible = true;
+  },
+  // 淇敼鏉冮檺淇℃伅骞舵彁浜�
+  editRoleInfo() {
+    this.$refs.powerRef.validate(async valid => {
+      if (!valid) return;
+      // 鍙戣捣淇敼鏉冮檺鐨勭綉缁滆姹�
+      saveOrUpdate(this.editRoleForm).then(() => {
+        // 閲嶆柊鑾峰彇鏉冮檺鍒楄〃
+        this.getPowerList();
+        // 闅愯棌娣诲姞鏉冮檺瀵硅瘽妗�
+        this.editDialogVisible = false;
+        this.$message.success(this.$t('updateSuccessMessage'));
       });
-    },
-    // 鐩戝惉娣诲姞鏉冮檺瀵硅瘽妗嗙殑鍏抽棴浜嬩欢
-    addDialogClosed() {
-      this.$refs['powerRef'].resetFields();
-    },
-    // 鐐瑰嚮鎸夐挳娣诲姞鏂版潈闄�
-    addPower() {
-      this.$refs.powerRef.validate(async valid => {
-        if (!valid) return;
-        // 鍙戣捣娣诲姞鏉冮檺鐨勭綉缁滆姹�
-        saveOrUpdate(this.addPowerForm).then(() => {
-          // 閲嶆柊鑾峰彇鏉冮檺鍒楄〃
-          this.getPowerList();
-          // 闅愯棌娣诲姞鏉冮檺瀵硅瘽妗�
-          this.addDialogVisible = false;
-          this.$message.success("娣诲姞鏉冮檺鎴愬姛");
-        });
-      })
-    },
-    // 灞曠ず淇敼鏉冮檺鐨勫璇濇
-    showEditDialog(role) {
-      getById({id: role.id}).then(res => {
-        this.editRoleForm = res.data;
+    })
+  },
+  // 鏍规嵁id鍒犻櫎鏉冮檺淇℃伅
+  removeById(power) {
+    // 寮规璇㈤棶鐢ㄦ埛鏄惁鍒犻櫎鏉冮檺
+    this.$confirm(this.$t('deleteConfirmMessage'), this.$t('prompt'), {
+      confirmButtonText: this.$t('confirmButtonText'),
+      cancelButtonText: this.$t('cancelButtonText'),
+      type: 'warning'
+    }).then(() => {
+      // 鍒犻櫎鏉冮檺
+      removeById({id: power.id}).then(() => {
+        // 閲嶆柊鑾峰彇鏉冮檺鍒楄〃
+        this.getPowerList();
+        this.$message.success(this.$t('deleteSuccessMessage'));
       });
-      select(this.addPowerForm).then(res => {
-        this.roleList = res.data;
-      });
-      selectPermission(this.addPowerForm).then(res => {
-        this.permissionList = res.data;
-      });
-      this.editDialogVisible = true;
-    },
-    // 灞曠ず娣诲姞鏉冮檺鐨勫璇濇
-    showAddDialog() {
-      select(this.addPowerForm).then(res => {
-        this.roleList = res.data;
-      });
-      selectPermission(this.addPowerForm).then(res => {
-        this.permissionList = res.data;
-      });
-      this.addDialogVisible = true;
-    },
-    // 淇敼鏉冮檺淇℃伅骞舵彁浜�
-    editRoleInfo() {
-      this.$refs.powerRef.validate(async valid => {
-        if (!valid) return;
-        // 鍙戣捣淇敼鏉冮檺鐨勭綉缁滆姹�
-        saveOrUpdate(this.editRoleForm).then(() => {
-          // 閲嶆柊鑾峰彇鏉冮檺鍒楄〃
-          this.getPowerList();
-          // 闅愯棌娣诲姞鏉冮檺瀵硅瘽妗�
-          this.editDialogVisible = false;
-          this.$message.success("淇敼鏉冮檺鎴愬姛");
-        });
-      })
-    },
-    // 鏍规嵁id鍒犻櫎鏉冮檺淇℃伅
-    removeById(power) {
-      // 寮规璇㈤棶鐢ㄦ埛鏄惁鍒犻櫎鏉冮檺
-      this.$confirm('姝ゆ搷浣滃皢姘镐箙鍒犻櫎璇ユ潈闄�, 鏄惁缁х画?', '鎻愮ず', {
-        confirmButtonText: '纭畾',
-        cancelButtonText: '鍙栨秷',
-        type: 'warning'
-      }).then(() => {
-        // 鍒犻櫎鏉冮檺
-        removeById({id: power.id}).then(() => {
-          // 閲嶆柊鑾峰彇鏉冮檺鍒楄〃
-          this.getPowerList();
-          this.$message.success("鍒犻櫎鏉冮檺鎴愬姛");
-        });
-      }).catch(() => {
-        this.$message.info('宸插彇娑堝垹闄�');
-      })
-    }
+    }).catch(() => {
+      this.$message.info(this.$t('deleteCancelledMessage'));
+    })
+  }
+
   }
 }
 </script>
diff --git a/CanadaMes-ui/src/views/register/index.vue b/CanadaMes-ui/src/views/register/index.vue
index 2deef30..ef2f0b6 100644
--- a/CanadaMes-ui/src/views/register/index.vue
+++ b/CanadaMes-ui/src/views/register/index.vue
@@ -1,58 +1,60 @@
 <template>
   <div class="login_container">
-    <div class="login_box">
-      <!--澶村儚鍖哄煙-->
-      <div class="avatar_box">
-        <img src="../../assets/emi.png">
-      </div>
-      <el-form ref="registerRef" :model="registerForm" label-width="80px" :rules="registerRules"
-               class="login_form">
-        <el-form-item label="鐢ㄦ埛鍚�" prop="username">
-          <el-input v-model="registerForm.username" placeholder="璇疯緭鍏ョ敤鎴峰悕"></el-input>
-        </el-form-item>
-        <el-form-item label="瀵嗙爜" prop="password1">
-          <el-input v-model="registerForm.password1" placeholder="璇疯緭鍏ュ瘑鐮�" type="password"></el-input>
-        </el-form-item>
-        <el-form-item label="纭瀵嗙爜" prop="password">
-          <el-input v-model="registerForm.password" placeholder="璇峰啀娆¤緭鍏ョ敤鎴峰悕" type="password"></el-input>
-        </el-form-item>
-        <el-form-item label="閭" prop="email">
-          <el-input v-model="registerForm.email" placeholder="璇疯緭鍏ラ偖绠�" type="text"></el-input>
-        </el-form-item>
-        <el-form-item label="QQ" prop="qq">
-          <el-input v-model="registerForm.qq" placeholder="璇疯緭鍏Q" type="text"></el-input>
-        </el-form-item>
-        <el-form-item label="鎵嬫満鍙风爜" prop="phone">
-          <el-input v-model="registerForm.phone" placeholder="璇疯緭鍏ユ墜鏈哄彿鐮�" type="text"></el-input>
-        </el-form-item>
-        <el-form-item>
-          <el-button type="primary" @click="register">娉ㄥ唽</el-button>
-          <el-button @click="reset">閲嶈</el-button>
-          <el-button @click="toLogin">鍙栨秷</el-button>
-        </el-form-item>
-      </el-form>
-    </div>
+  <div class="login_box">
+  <!--澶村儚鍖哄煙-->
+  <div class="avatar_box">
+  <img src="../../assets/emi.png">
   </div>
-</template>
-
-<script>
-import {register} from '../../api/user'
-
-export default {
+  <el-form ref="registerRef" :model="registerForm" label-width="80px" :rules="registerRules"
+  class="login_form">
+  <el-form-item :label="$t('langUsernameLabel')" prop="username">
+            <el-input v-model="registerForm.username" :placeholder="$t('langUsernamePlaceholder')"></el-input>
+  </el-form-item>
+  <el-form-item :label="$t('langPasswordLabel')" prop="password1">
+            <el-input v-model="registerForm.password1" :placeholder="$t('langPasswordPlaceholder')" type="password"></el-input>
+  </el-form-item>
+  <el-form-item :label="$t('langConfirmPasswordLabel')" prop="password">
+            <el-input v-model="registerForm.password" :placeholder="$t('langConfirmPasswordPlaceholder')" type="password"></el-input>
+  </el-form-item>
+  <el-form-item :label="$t('langEmailLabel')" prop="email">
+            <el-input v-model="registerForm.email" :placeholder="$t('langEmailPlaceholder')" type="text"></el-input>
+  </el-form-item>
+  <el-form-item :label="$t('langQQLabel')" prop="qq">
+            <el-input v-model="registerForm.qq" :placeholder="$t('langQQPlaceholder')" type="text"></el-input>
+  </el-form-item>
+  <el-form-item :label="$t('langPhoneNumberLabel')" prop="phone">
+            <el-input v-model="registerForm.phone" :placeholder="$t('langPhoneNumberPlaceholder')" type="text"></el-input>
+  </el-form-item>
+  <el-form-item>
+  <el-button type="primary" @click="register">{{$t('langRegisterButton')}}</el-button>
+            <el-button @click="reset">{{$t('langResetButton')}}</el-button>
+  <el-button @click="toLogin">{{$t('langCancelButton')}}</el-button>
+  </el-form-item>
+  </el-form>
+  </div>
+  </div>
+  </template>
+  
+  <script>
+  import {register} from '../../api/user'
+  import LanguageMixin from '../../lang/LanguageMixin'
+  
+  export default {
   name: 'Register',
+  mixins: [LanguageMixin],
   data() {
-    // 鑷畾涔夋牎楠岃鍒�
-    const validatePassword = (rule, value, callback) => {
-      if (this.registerForm.password1 !== this.registerForm.password) {
-        callback(new Error("涓ゆ杈撳叆瀵嗙爜涓嶄竴鑷�!"));
-      } else {
-        callback();
-      }
-    };
-    return {
-      registerForm: {},
-      registerRules: {
-        username: [
+  // 鑷畾涔夋牎楠岃鍒�
+  const validatePassword = (rule, value, callback) => {
+  if (this.registerForm.password1 !== this.registerForm.password) {
+  callback(new Error("涓ゆ杈撳叆瀵嗙爜涓嶄竴鑷�!"));
+  } else {
+  callback();
+  }
+  };
+  return {
+  registerForm: {},
+  registerRules: {
+    username: [
           {required: true, message: '璇疯緭鍏ョ敤鎴峰悕', trigger: 'blur'},
           {min: 5, max: 15, message: '闀垮害鍦� 5 鍒� 5 涓瓧绗�', trigger: 'blur'}
         ],
@@ -70,8 +72,8 @@
           {required: false, message: '璇疯緭鍏ラ偖绠�', trigger: 'blur'},
           {type: 'email', message: '璇疯緭鍏ユ纭牸寮忕殑閭鍦板潃', trigger: 'blur'}
         ]
-      }
-    }
+  }
+  }
   },
   methods: {
     register() {
@@ -83,23 +85,23 @@
         });
       })
     },
-    reset() {
-      this.$refs['registerRef'].resetFields();
-    },
-    toLogin() {
-      this.$router.push('/login')
-    }
+  reset() {
+  this.refs['registerRef'].resetFields();
+      },
+      toLogin() {
+        this.router.push('/login')
   }
-}
-</script>
-
-<style scoped lang="less">
-.login_container {
+  }
+  }
+  </script>
+  
+  <style scoped lang="less">
+  .login_container {
   background-color: #2b4b6b;
   height: 100%;
-}
-
-.login_box {
+  }
+  
+  .login_box {
   width: 450px;
   height: 550px;
   background-color: #fff;
@@ -108,38 +110,38 @@
   left: 50%;
   top: 50%;
   transform: translate(-50%, -50%);
-
+  
   .avatar_box {
-    height: 130px;
-    width: 130px;
-    border: 1px solid #eee;
+  height: 130px;
+  width: 130px;
+  border: 1px solid #eee;
+  border-radius: 50%;
+  padding: 10px;
+  box-shadow: 0 0 10px #ddd;
+  position: absolute;
+  left: 50%;
+  transform: translate(-50%, -50%);
+  background-color: #fff;
+  
+  img {
+    width: 100%;
+    height: 100%;
     border-radius: 50%;
-    padding: 10px;
-    box-shadow: 0 0 10px #ddd;
-    position: absolute;
-    left: 50%;
-    transform: translate(-50%, -50%);
-    background-color: #fff;
-
-    img {
-      width: 100%;
-      height: 100%;
-      border-radius: 50%;
-      background-color: #eee;
-    }
+    background-color: #eee;
   }
-}
-
-.btns {
+  }
+  }
+  
+  .btns {
   display: flex;
   justify-content: flex-end;
-}
-
-.login_form {
+  }
+  
+  .login_form {
   position: absolute;
   bottom: 0;
   width: 100%;
   padding: 0 20px;
   box-sizing: border-box;
-}
-</style>
+  }
+  </style>
\ No newline at end of file
diff --git a/CanadaMes-ui/src/views/user/index.vue b/CanadaMes-ui/src/views/user/index.vue
index ccff3f2..93aea7e 100644
--- a/CanadaMes-ui/src/views/user/index.vue
+++ b/CanadaMes-ui/src/views/user/index.vue
@@ -40,7 +40,7 @@
             </el-switch>
           </template>
         </el-table-column>
-        <el-table-column label="鎿嶄綔">
+        <el-table-column :label="$t('langOperation')">
           <template slot-scope="scope">
             <el-button type="primary" icon="el-icon-refresh" @click="resetPassword(scope.row)">
 
@@ -241,84 +241,84 @@
       });
     },
     resetPassword (info) {
-      this.$confirm('纭閲嶇疆瀵嗙爜涓洪粯璁ゅ�煎悧锛�', '閲嶇疆瀵嗙爜', {
-        confirmButtonText: '纭畾',
-        cancelButtonText: '鍙栨秷',
-        type: 'warning',
-      })
-        .then(() => {
-          resetPass(info).then(() => {
-            this.$message.success('瀵嗙爜宸查噸缃负榛樿鍊�');
-          });
-        })
-        .catch(() => {
-          // 鐢ㄦ埛鍙栨秷閲嶇疆瀵嗙爜鎿嶄綔
-        });
-    },
-    showEditDialog (id) {
-      getById({ id: id }).then(res => {
-        this.editUserForm = res.data;
-        this.editDialogVisible = true;
+  this.$confirm(this.$t('confirmResetPassword'), this.$t('resetPassword'), {
+    confirmButtonText: this.$t('confirm'),
+    cancelButtonText: this.$t('cancel'),
+    type: 'warning',
+  })
+    .then(() => {
+      resetPass(info).then(() => {
+        this.$message.success(this.$t('passwordResetSuccess'));
       });
+    })
+    .catch(() => {
+      // 鐢ㄦ埛鍙栨秷閲嶇疆瀵嗙爜鎿嶄綔
+    });
+},
+showEditDialog (id) {
+  getById({ id: id }).then(res => {
+    this.editUserForm = res.data;
+    this.editDialogVisible = true;
+  });
 
+  select().then(res => {
+    this.roleList = res.data;
+  });
+},
+removeUserById (user) {
+  // 寮规璇㈤棶鐢ㄦ埛鏄惁鍒犻櫎鍒嗙被
+  this.$confirm(this.$t('confirmDeleteCategory'), this.$t('prompt'), {
+    confirmButtonText: this.$t('confirm'),
+    cancelButtonText: this.$t('cancel'),
+    type: 'warning'
+  }).then(() => {
+    removeById({ id: user.id }).then(() => {
+      // 閲嶆柊鑾峰彇鍒嗙被鍒楄〃
+      this.getUserList();
+      this.$message.success(this.$t('userDeleteSuccess'));
+    });
+  }).catch(() => {
+    this.$message.info(this.$t('deleteCanceled'));
+  });
+},
+handleSizeChange (newSize) {
+  this.queryInfo.pageSize = newSize;
+  this.getUserList()
+},
+handleCurrentChange (newPage) {
+  this.queryInfo.pageNum = newPage;
+  this.getUserList()
+},
+addDialogClosed () {
+  this.$refs['addUserRef'].resetFields();
+},
+addUser () {
+  this.$refs.addUserRef.validate(async valid => {
+    if (!valid) return;
+    saveOrUpdate(this.addUserForm).then(() => {
+      const successMessage = this.$t('addUserSuccess');
+      this.$message.success(successMessage);
+      // 闅愯棌娣诲姞鍒嗙被瀵硅瘽妗�
+      this.addDialogVisible = false;
+      // 閲嶆柊鑾峰彇鍒嗙被鍒楄〃
+      this.getUserList();
+    });
+  })
+},
+editUserInfo () {
+  this.$refs.addCategoryRef.validate(async valid => {
+    if (!valid) return;
 
-      select().then(res => {
-        this.roleList = res.data;
-      });
-    },
-    removeUserById (user) {
-      // 寮规璇㈤棶鐢ㄦ埛鏄惁鍒犻櫎鍒嗙被
-      this.$confirm('姝ゆ搷浣滃皢姘镐箙鍒犻櫎璇ュ垎绫�, 鏄惁缁х画?', '鎻愮ず', {
-        confirmButtonText: '纭畾',
-        cancelButtonText: '鍙栨秷',
-        type: 'warning'
-      }).then(() => {
-        removeById({ id: user.id }).then(() => {
-          // 閲嶆柊鑾峰彇鍒嗙被鍒楄〃
-          this.getUserList();
-          this.$message.success("鍒犻櫎鐢ㄦ埛鎴愬姛");
-        });
-      }).catch(() => {
-        this.$message.info('宸插彇娑堝垹闄�');
-      });
-    },
-    handleSizeChange (newSize) {
-      this.queryInfo.pageSize = newSize;
-      this.getUserList()
-    },
-    handleCurrentChange (newPage) {
-      this.queryInfo.pageNum = newPage;
-      this.getUserList()
-    },
-    addDialogClosed () {
-      this.$refs['addUserRef'].resetFields();
-    },
-    addUser () {
-      this.$refs.addUserRef.validate(async valid => {
-        if (!valid) return;
-        saveOrUpdate(this.addUserForm).then(() => {
-          this.$message.success("娣诲姞鐢ㄦ埛鎴愬姛");
-          // 闅愯棌娣诲姞鍒嗙被瀵硅瘽妗�
-          this.addDialogVisible = false;
-          // 閲嶆柊鑾峰彇鍒嗙被鍒楄〃
-          this.getUserList();
-        });
-      })
-    },
-    editUserInfo () {
-      this.$refs.addCategoryRef.validate(async valid => {
-        if (!valid) return;
-
-        saveOrUpdate(this.editUserForm).then(() => {
-          const 淇敼鐢ㄦ埛鎴愬姛 = this.$t('淇敼鐢ㄦ埛鎴愬姛');
-          this.$message.success(淇敼鐢ㄦ埛鎴愬姛);
-          // 闅愯棌娣诲姞鍒嗙被瀵硅瘽妗�
-          this.editDialogVisible = false;
-          // 閲嶆柊鑾峰彇鍒嗙被鍒楄〃
-          this.getUserList();
-        });
-      })
-    }
+    saveOrUpdate(this.editUserForm).then(() => {
+      const successMessage = this.$t('editUserSuccess');
+      this.$message.success(successMessage);
+      // 闅愯棌娣诲姞鍒嗙被瀵硅瘽妗�
+      this.editDialogVisible = false;
+      // 閲嶆柊鑾峰彇鍒嗙被鍒楄〃
+      this.getUserList();
+    });
+  })
+}
   }
 }
 </script>
diff --git a/CanadaMes-ui/vue.config.js b/CanadaMes-ui/vue.config.js
index b6c17bb..0e16427 100644
--- a/CanadaMes-ui/vue.config.js
+++ b/CanadaMes-ui/vue.config.js
@@ -13,6 +13,7 @@
                 pathRewrite: {
                     '^/api': ''
                 }
+                
             }
         }
     },
diff --git a/springboot-vue3/.idea/artifacts/springboot_vue3_war.xml b/springboot-vue3/.idea/artifacts/springboot_vue3_war.xml
new file mode 100644
index 0000000..d419cc3
--- /dev/null
+++ b/springboot-vue3/.idea/artifacts/springboot_vue3_war.xml
@@ -0,0 +1,14 @@
+<component name="ArtifactManager">
+  <artifact type="war" name="springboot-vue3:war">
+    <output-path>$PROJECT_DIR$/target</output-path>
+    <properties id="maven-jee-properties">
+      <options>
+        <module>springboot-vue3</module>
+        <packaging>war</packaging>
+      </options>
+    </properties>
+    <root id="archive" name="springboot-vue3-0.0.1-SNAPSHOT.war">
+      <element id="artifact" artifact-name="springboot-vue3:war exploded" />
+    </root>
+  </artifact>
+</component>
\ No newline at end of file
diff --git a/springboot-vue3/.idea/artifacts/springboot_vue3_war_exploded.xml b/springboot-vue3/.idea/artifacts/springboot_vue3_war_exploded.xml
new file mode 100644
index 0000000..96b4d65
--- /dev/null
+++ b/springboot-vue3/.idea/artifacts/springboot_vue3_war_exploded.xml
@@ -0,0 +1,150 @@
+<component name="ArtifactManager">
+  <artifact type="exploded-war" name="springboot-vue3:war exploded">
+    <output-path>$PROJECT_DIR$/target/springboot-vue3-0.0.1-SNAPSHOT</output-path>
+    <properties id="maven-jee-properties">
+      <options>
+        <exploded>true</exploded>
+        <module>springboot-vue3</module>
+        <packaging>war</packaging>
+      </options>
+    </properties>
+    <root id="root">
+      <element id="directory" name="WEB-INF">
+        <element id="directory" name="classes">
+          <element id="module-output" name="springboot-vue3" />
+        </element>
+        <element id="directory" name="lib">
+          <element id="library" level="project" name="Maven: org.springframework.boot:spring-boot-starter-web:2.3.2.RELEASE" />
+          <element id="library" level="project" name="Maven: org.springframework.boot:spring-boot-starter:2.3.2.RELEASE" />
+          <element id="library" level="project" name="Maven: org.springframework.boot:spring-boot:2.3.2.RELEASE" />
+          <element id="library" level="project" name="Maven: org.springframework.boot:spring-boot-starter-logging:2.3.2.RELEASE" />
+          <element id="library" level="project" name="Maven: ch.qos.logback:logback-classic:1.2.3" />
+          <element id="library" level="project" name="Maven: ch.qos.logback:logback-core:1.2.3" />
+          <element id="library" level="project" name="Maven: org.apache.logging.log4j:log4j-to-slf4j:2.13.3" />
+          <element id="library" level="project" name="Maven: org.slf4j:jul-to-slf4j:1.7.30" />
+          <element id="library" level="project" name="Maven: jakarta.annotation:jakarta.annotation-api:1.3.5" />
+          <element id="library" level="project" name="Maven: org.yaml:snakeyaml:1.26" />
+          <element id="library" level="project" name="Maven: org.springframework.boot:spring-boot-starter-json:2.3.2.RELEASE" />
+          <element id="library" level="project" name="Maven: com.fasterxml.jackson.datatype:jackson-datatype-jdk8:2.11.1" />
+          <element id="library" level="project" name="Maven: com.fasterxml.jackson.datatype:jackson-datatype-jsr310:2.11.1" />
+          <element id="library" level="project" name="Maven: com.fasterxml.jackson.module:jackson-module-parameter-names:2.11.1" />
+          <element id="library" level="project" name="Maven: org.springframework.boot:spring-boot-starter-tomcat:2.3.2.RELEASE" />
+          <element id="library" level="project" name="Maven: org.apache.tomcat.embed:tomcat-embed-core:9.0.37" />
+          <element id="library" level="project" name="Maven: org.glassfish:jakarta.el:3.0.3" />
+          <element id="library" level="project" name="Maven: org.apache.tomcat.embed:tomcat-embed-websocket:9.0.37" />
+          <element id="library" level="project" name="Maven: org.springframework:spring-web:5.2.8.RELEASE" />
+          <element id="library" level="project" name="Maven: org.springframework:spring-beans:5.2.8.RELEASE" />
+          <element id="library" level="project" name="Maven: org.springframework:spring-webmvc:5.2.8.RELEASE" />
+          <element id="library" level="project" name="Maven: org.springframework:spring-aop:5.2.8.RELEASE" />
+          <element id="library" level="project" name="Maven: org.springframework:spring-context:5.2.8.RELEASE" />
+          <element id="library" level="project" name="Maven: org.springframework:spring-expression:5.2.8.RELEASE" />
+          <element id="library" level="project" name="Maven: mysql:mysql-connector-java:8.0.21" />
+          <element id="library" level="project" name="Maven: net.bytebuddy:byte-buddy:1.10.13" />
+          <element id="library" level="project" name="Maven: org.springframework:spring-core:5.2.8.RELEASE" />
+          <element id="library" level="project" name="Maven: org.springframework:spring-jcl:5.2.8.RELEASE" />
+          <element id="library" level="project" name="Maven: cn.hutool:hutool-all:5.5.4" />
+          <element id="library" level="project" name="Maven: org.hibernate.validator:hibernate-validator:6.1.5.Final" />
+          <element id="library" level="project" name="Maven: jakarta.validation:jakarta.validation-api:2.0.2" />
+          <element id="library" level="project" name="Maven: org.jboss.logging:jboss-logging:3.4.1.Final" />
+          <element id="library" level="project" name="Maven: com.fasterxml:classmate:1.5.1" />
+          <element id="library" level="project" name="Maven: io.jsonwebtoken:jjwt-api:0.10.7" />
+          <element id="library" level="project" name="Maven: io.jsonwebtoken:jjwt-impl:0.10.7" />
+          <element id="library" level="project" name="Maven: io.jsonwebtoken:jjwt-jackson:0.10.7" />
+          <element id="library" level="project" name="Maven: com.fasterxml.jackson.core:jackson-databind:2.11.1" />
+          <element id="library" level="project" name="Maven: com.fasterxml.jackson.core:jackson-annotations:2.11.1" />
+          <element id="library" level="project" name="Maven: com.fasterxml.jackson.core:jackson-core:2.11.1" />
+          <element id="library" level="project" name="Maven: org.apache.shiro:shiro-spring-boot-starter:1.8.0" />
+          <element id="library" level="project" name="Maven: org.apache.shiro:shiro-spring:1.8.0" />
+          <element id="library" level="project" name="Maven: org.apache.shiro:shiro-core:1.8.0" />
+          <element id="library" level="project" name="Maven: org.apache.shiro:shiro-lang:1.8.0" />
+          <element id="library" level="project" name="Maven: org.apache.shiro:shiro-cache:1.8.0" />
+          <element id="library" level="project" name="Maven: org.apache.shiro:shiro-crypto-hash:1.8.0" />
+          <element id="library" level="project" name="Maven: org.apache.shiro:shiro-crypto-core:1.8.0" />
+          <element id="library" level="project" name="Maven: org.apache.shiro:shiro-crypto-cipher:1.8.0" />
+          <element id="library" level="project" name="Maven: org.apache.shiro:shiro-config-core:1.8.0" />
+          <element id="library" level="project" name="Maven: org.apache.shiro:shiro-config-ogdl:1.8.0" />
+          <element id="library" level="project" name="Maven: commons-beanutils:commons-beanutils:1.9.4" />
+          <element id="library" level="project" name="Maven: commons-collections:commons-collections:3.2.2" />
+          <element id="library" level="project" name="Maven: org.apache.shiro:shiro-event:1.8.0" />
+          <element id="library" level="project" name="Maven: org.apache.shiro:shiro-web:1.8.0" />
+          <element id="library" level="project" name="Maven: org.owasp.encoder:encoder:1.2.2" />
+          <element id="library" level="project" name="Maven: org.springframework.boot:spring-boot-autoconfigure:2.3.2.RELEASE" />
+          <element id="library" level="project" name="Maven: com.baomidou:mybatis-plus-boot-starter:3.2.0" />
+          <element id="library" level="project" name="Maven: com.baomidou:mybatis-plus:3.2.0" />
+          <element id="library" level="project" name="Maven: org.springframework.boot:spring-boot-starter-jdbc:2.3.2.RELEASE" />
+          <element id="library" level="project" name="Maven: com.zaxxer:HikariCP:3.4.5" />
+          <element id="library" level="project" name="Maven: org.springframework:spring-jdbc:5.2.8.RELEASE" />
+          <element id="library" level="project" name="Maven: org.springframework:spring-tx:5.2.8.RELEASE" />
+          <element id="library" level="project" name="Maven: com.baomidou:mybatis-plus-core:3.2.0" />
+          <element id="library" level="project" name="Maven: com.baomidou:mybatis-plus-annotation:3.2.0" />
+          <element id="library" level="project" name="Maven: com.github.jsqlparser:jsqlparser:2.1" />
+          <element id="library" level="project" name="Maven: org.mybatis:mybatis:3.5.2" />
+          <element id="library" level="project" name="Maven: com.baomidou:mybatis-plus-generator:3.2.0" />
+          <element id="library" level="project" name="Maven: com.baomidou:mybatis-plus-extension:3.2.0" />
+          <element id="library" level="project" name="Maven: org.mybatis:mybatis-spring:2.0.2" />
+          <element id="library" level="project" name="Maven: org.springframework.boot:spring-boot-starter-freemarker:2.3.2.RELEASE" />
+          <element id="library" level="project" name="Maven: org.freemarker:freemarker:2.3.30" />
+          <element id="library" level="project" name="Maven: org.springframework:spring-context-support:5.2.8.RELEASE" />
+          <element id="library" level="project" name="Maven: io.springfox:springfox-swagger2:2.9.2" />
+          <element id="library" level="project" name="Maven: io.swagger:swagger-annotations:1.5.20" />
+          <element id="library" level="project" name="Maven: io.swagger:swagger-models:1.5.20" />
+          <element id="library" level="project" name="Maven: io.springfox:springfox-spi:2.9.2" />
+          <element id="library" level="project" name="Maven: io.springfox:springfox-core:2.9.2" />
+          <element id="library" level="project" name="Maven: io.springfox:springfox-schema:2.9.2" />
+          <element id="library" level="project" name="Maven: io.springfox:springfox-swagger-common:2.9.2" />
+          <element id="library" level="project" name="Maven: io.springfox:springfox-spring-web:2.9.2" />
+          <element id="library" level="project" name="Maven: com.google.guava:guava:20.0" />
+          <element id="library" level="project" name="Maven: org.slf4j:slf4j-api:1.7.30" />
+          <element id="library" level="project" name="Maven: org.springframework.plugin:spring-plugin-core:1.2.0.RELEASE" />
+          <element id="library" level="project" name="Maven: org.springframework.plugin:spring-plugin-metadata:1.2.0.RELEASE" />
+          <element id="library" level="project" name="Maven: org.mapstruct:mapstruct:1.2.0.Final" />
+          <element id="library" level="project" name="Maven: io.springfox:springfox-swagger-ui:2.9.2" />
+          <element id="library" level="project" name="Maven: com.deepoove:poi-tl:1.12.1" />
+          <element id="library" level="project" name="Maven: org.apache.commons:commons-lang3:3.10" />
+          <element id="library" level="project" name="Maven: org.apache.poi:poi-ooxml:5.2.2" />
+          <element id="library" level="project" name="Maven: org.apache.poi:poi:5.2.2" />
+          <element id="library" level="project" name="Maven: commons-codec:commons-codec:1.14" />
+          <element id="library" level="project" name="Maven: org.apache.commons:commons-math3:3.6.1" />
+          <element id="library" level="project" name="Maven: com.zaxxer:SparseBitSet:1.2" />
+          <element id="library" level="project" name="Maven: org.apache.poi:poi-ooxml-lite:5.2.2" />
+          <element id="library" level="project" name="Maven: org.apache.xmlbeans:xmlbeans:5.0.3" />
+          <element id="library" level="project" name="Maven: org.apache.commons:commons-compress:1.21" />
+          <element id="library" level="project" name="Maven: commons-io:commons-io:2.11.0" />
+          <element id="library" level="project" name="Maven: com.github.virtuald:curvesapi:1.07" />
+          <element id="library" level="project" name="Maven: org.apache.logging.log4j:log4j-api:2.13.3" />
+          <element id="library" level="project" name="Maven: org.apache.commons:commons-collections4:4.4" />
+          <element id="library" level="project" name="Maven: org.apache.xmlgraphics:batik-transcoder:1.14" />
+          <element id="library" level="project" name="Maven: org.apache.xmlgraphics:batik-anim:1.14" />
+          <element id="library" level="project" name="Maven: org.apache.xmlgraphics:batik-css:1.14" />
+          <element id="library" level="project" name="Maven: org.apache.xmlgraphics:batik-ext:1.14" />
+          <element id="library" level="project" name="Maven: org.apache.xmlgraphics:batik-parser:1.14" />
+          <element id="library" level="project" name="Maven: org.apache.xmlgraphics:batik-svg-dom:1.14" />
+          <element id="library" level="project" name="Maven: org.apache.xmlgraphics:batik-awt-util:1.14" />
+          <element id="library" level="project" name="Maven: org.apache.xmlgraphics:xmlgraphics-commons:2.6" />
+          <element id="library" level="project" name="Maven: commons-logging:commons-logging:1.0.4" />
+          <element id="library" level="project" name="Maven: org.apache.xmlgraphics:batik-bridge:1.14" />
+          <element id="library" level="project" name="Maven: org.apache.xmlgraphics:batik-script:1.14" />
+          <element id="library" level="project" name="Maven: org.apache.xmlgraphics:batik-dom:1.14" />
+          <element id="library" level="project" name="Maven: xml-apis:xml-apis:1.4.01" />
+          <element id="library" level="project" name="Maven: org.apache.xmlgraphics:batik-gvt:1.14" />
+          <element id="library" level="project" name="Maven: org.apache.xmlgraphics:batik-shared-resources:1.14" />
+          <element id="library" level="project" name="Maven: org.apache.xmlgraphics:batik-svggen:1.14" />
+          <element id="library" level="project" name="Maven: org.apache.xmlgraphics:batik-util:1.14" />
+          <element id="library" level="project" name="Maven: org.apache.xmlgraphics:batik-constants:1.14" />
+          <element id="library" level="project" name="Maven: org.apache.xmlgraphics:batik-i18n:1.14" />
+          <element id="library" level="project" name="Maven: org.apache.xmlgraphics:batik-xml:1.14" />
+          <element id="library" level="project" name="Maven: xml-apis:xml-apis-ext:1.3.04" />
+          <element id="library" level="project" name="Maven: org.apache.xmlgraphics:batik-codec:1.14" />
+          <element id="library" level="project" name="Maven: org.springframework.boot:spring-boot-starter-websocket:2.3.2.RELEASE" />
+          <element id="library" level="project" name="Maven: org.springframework:spring-messaging:5.2.8.RELEASE" />
+          <element id="library" level="project" name="Maven: org.springframework:spring-websocket:5.2.8.RELEASE" />
+          <element id="library" level="project" name="Maven: com.github.xingshuangs:iot-communication:1.4.2" />
+        </element>
+      </element>
+      <element id="directory" name="META-INF">
+        <element id="file-copy" path="$PROJECT_DIR$/target/springboot-vue3-0.0.1-SNAPSHOT/META-INF/MANIFEST.MF" />
+      </element>
+      <element id="javaee-facet-resources" facet="springboot-vue3/web/Web" />
+    </root>
+  </artifact>
+</component>
\ No newline at end of file
diff --git a/springboot-vue3/.idea/misc.xml b/springboot-vue3/.idea/misc.xml
index 3d3371a..774ef25 100644
--- a/springboot-vue3/.idea/misc.xml
+++ b/springboot-vue3/.idea/misc.xml
@@ -1,5 +1,8 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <project version="4">
+  <component name="FrameworkDetectionExcludesConfiguration">
+    <file type="web" url="file://$PROJECT_DIR$" />
+  </component>
   <component name="MavenProjectsManager">
     <option name="originalFiles">
       <list>
diff --git a/springboot-vue3/pom.xml b/springboot-vue3/pom.xml
index 37d5977..881fe13 100644
--- a/springboot-vue3/pom.xml
+++ b/springboot-vue3/pom.xml
@@ -9,12 +9,13 @@
         <version>2.3.2.RELEASE</version>
         <relativePath/>
     </parent>
+<!--    <packaging>war</packaging>-->
 
-    <groupId>com.canadames</groupId>
-    <artifactId>canadames</artifactId>
+    <groupId>com.springboot-vue3</groupId>
+    <artifactId>springboot-vue3</artifactId>
     <version>0.0.1-SNAPSHOT</version>
-    <name>canadames</name>
-    <description>canadames System</description>
+    <name>springboot-vue3</name>
+    <description>springboot-vue3 System</description>
 
     <properties>
         <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
diff --git a/springboot-vue3/springboot-vue3.iml b/springboot-vue3/springboot-vue3.iml
index 79a8091..84a010a 100644
--- a/springboot-vue3/springboot-vue3.iml
+++ b/springboot-vue3/springboot-vue3.iml
@@ -3,7 +3,9 @@
   <component name="FacetManager">
     <facet type="web" name="Web">
       <configuration>
-        <webroots />
+        <webroots>
+          <root url="file://$MODULE_DIR$/src/main/webapp" relative="/" />
+        </webroots>
         <sourceRoots>
           <root url="file://$MODULE_DIR$/src/main/java" />
           <root url="file://$MODULE_DIR$/src/main/resources" />
diff --git a/springboot-vue3/src/main/java/com/example/springboot/AuthorityApplication.java b/springboot-vue3/src/main/java/com/example/springboot/AuthorityApplication.java
index b28c2d4..6976fae 100644
--- a/springboot-vue3/src/main/java/com/example/springboot/AuthorityApplication.java
+++ b/springboot-vue3/src/main/java/com/example/springboot/AuthorityApplication.java
@@ -6,7 +6,9 @@
 
 import com.example.springboot.component.WebSocketServer;
 
+
 @SpringBootApplication
+
 public class AuthorityApplication {
 
   public static void main(String[] args) {
diff --git a/springboot-vue3/src/main/java/com/example/springboot/component/PlcHold.java b/springboot-vue3/src/main/java/com/example/springboot/component/PlcHold.java
index f001dcb..f45e84f 100644
--- a/springboot-vue3/src/main/java/com/example/springboot/component/PlcHold.java
+++ b/springboot-vue3/src/main/java/com/example/springboot/component/PlcHold.java
@@ -43,6 +43,7 @@
           // TODO Auto-generated catch block
           e.printStackTrace();
         }
+
     
       spianService.selectout("11");  
       //鍒ゆ柇杩涚墖璇锋眰 
diff --git a/springboot-vue3/src/main/java/com/example/springboot/component/PlcParameter.java b/springboot-vue3/src/main/java/com/example/springboot/component/PlcParameter.java
index d416822..96ac83d 100644
--- a/springboot-vue3/src/main/java/com/example/springboot/component/PlcParameter.java
+++ b/springboot-vue3/src/main/java/com/example/springboot/component/PlcParameter.java
@@ -15,11 +15,12 @@
                 e.printStackTrace();
             }
 
-            List<Short> paramlist = S7control.getinstance().ReadWord("DB100.DBW", 12);
+            List<Short> arraylist = S7control.getinstance().ReadWord("DB100.DBW0", 12);
             List<Short> state = S7control.getinstance().ReadWord("DB103.DBW0", 10);
             JSONObject jsonObject = new JSONObject();
-            jsonObject.append("params", new short[]{1111,121, 3232, 0, 1, 0, 1, 0, 1, 0, 1, 0});
-            jsonObject.append("state", new short[]{0, 1, 0, 0, 0, 0, 0,0, 0, 0});
+//            new short[]{1111,121, 3232, 0, 1, 0, 1, 0, 1, 0, 1, 0}
+            jsonObject.append("params",  arraylist );
+            jsonObject.append("state", state);
             WebSocketServer sendwServer = WebSocketServer.sessionMap.get("Parameter");
             if (sendwServer != null) {
                 sendwServer.sendMessage(jsonObject.toString());
diff --git a/springboot-vue3/src/main/java/com/example/springboot/component/Plcaction.java b/springboot-vue3/src/main/java/com/example/springboot/component/Plcaction.java
index 5e4d59e..cc0f805 100644
--- a/springboot-vue3/src/main/java/com/example/springboot/component/Plcaction.java
+++ b/springboot-vue3/src/main/java/com/example/springboot/component/Plcaction.java
@@ -21,9 +21,9 @@
 //      JSONObject jsonObject = new JSONObject();
 //      jsonObject.append("params", new short[]{1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0});
 
-//      List<Boolean> paramlist = S7control.getinstance().ReadBits("DB100.DBW", 12);
-      Boolean[] values = {false, true,false, true,false, true,false, true,false, true,false, true,false, true,false, true,false, true,false, true,false, true};
-      List<Boolean> paramlist = new ArrayList<>(Arrays.asList(values));
+ List<Boolean> paramlist = S7control.getinstance().ReadBits("DB2.DBX0.0 ", 26);
+//      Boolean[] values = {true, true,true, true,true, true,true, true,true, true,true, true,true, true,true, true,true, true,true, true,true, true,true, true,false, true};
+//      List<Boolean> paramlist = new ArrayList<>(Arrays.asList(values));
       if (paramlist == null) {
 
       } else {
@@ -70,7 +70,7 @@
             // 灏嗘秷鎭�艰浆鎹负甯冨皵鍒楄〃
             List<Boolean> messageBooleans = new ArrayList<>();
             for (Integer value : messageValues) {
-              messageBooleans.add(value == 0 ? true : false);
+              messageBooleans.add(value == 1 ? true : false);
             }
 
             // 灏嗗竷灏斿垪琛ㄥ啓鍏� PLC
diff --git a/springboot-vue3/src/main/java/com/example/springboot/component/Plchome.java b/springboot-vue3/src/main/java/com/example/springboot/component/Plchome.java
index 953fd91..9425f7a 100644
--- a/springboot-vue3/src/main/java/com/example/springboot/component/Plchome.java
+++ b/springboot-vue3/src/main/java/com/example/springboot/component/Plchome.java
@@ -17,7 +17,7 @@
     public void run() {
         while (this != null) {
             try {
-                Thread.sleep(10000);
+                Thread.sleep(5000);
             } catch (InterruptedException e) {
                 e.printStackTrace();
             }
diff --git a/springboot-vue3/src/main/java/com/example/springboot/config/AppRunnerConfig.java b/springboot-vue3/src/main/java/com/example/springboot/config/AppRunnerConfig.java
index 7495bfc..667bda8 100644
--- a/springboot-vue3/src/main/java/com/example/springboot/config/AppRunnerConfig.java
+++ b/springboot-vue3/src/main/java/com/example/springboot/config/AppRunnerConfig.java
@@ -25,15 +25,19 @@
     //
     System.out.println("鍚姩瀹屾垚");
 
-    // new PlcHold().start();
+
+  new PlcHold().start();
+
+
+
     new Plcaction().start();
-    new PlcParameter().start();
-    new PlcHold().start();  
+
+
     new Plchome().start();
 
     new PlcParameter().start();
 
-    new Plcalarm().start();
+ new Plcalarm().start();
 
     new Plcsign().start();
 
diff --git a/springboot-vue3/src/main/java/com/example/springboot/controller/DefaultController.java b/springboot-vue3/src/main/java/com/example/springboot/controller/DefaultController.java
index 9208175..2e2a287 100644
--- a/springboot-vue3/src/main/java/com/example/springboot/controller/DefaultController.java
+++ b/springboot-vue3/src/main/java/com/example/springboot/controller/DefaultController.java
@@ -24,14 +24,12 @@
 import org.apache.shiro.crypto.hash.SimpleHash;
 import org.apache.shiro.util.ByteSource;
 import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.web.bind.annotation.GetMapping;
-import org.springframework.web.bind.annotation.PostMapping;
-import org.springframework.web.bind.annotation.RequestBody;
-import org.springframework.web.bind.annotation.RestController;
+import org.springframework.web.bind.annotation.*;
 
 import java.util.HashMap;
 
 @RestController
+
 @Slf4j
 @Api(tags = "鐧诲綍鍜屾敞鍐�")
 public class DefaultController {
@@ -57,6 +55,7 @@
     }
 
     @ApiOperation(value = "鐧诲綍")
+    @CrossOrigin(origins = "http://localhost:8080", allowCredentials = "true")
     @PostMapping("/login")
     public Result login(@RequestBody UserVo userVO) {
         ValidatorUtil.validateEntity(userVO);
diff --git a/springboot-vue3/src/main/java/com/example/springboot/service/JdbcConnections.java b/springboot-vue3/src/main/java/com/example/springboot/service/JdbcConnections.java
index 60278c8..5a5c756 100644
--- a/springboot-vue3/src/main/java/com/example/springboot/service/JdbcConnections.java
+++ b/springboot-vue3/src/main/java/com/example/springboot/service/JdbcConnections.java
@@ -67,4 +67,6 @@
 			e.printStackTrace();
 		}
 	}
+
+
 }
diff --git a/springboot-vue3/src/main/resources/application.properties b/springboot-vue3/src/main/resources/application.properties
index e3d98da..92e61eb 100644
--- a/springboot-vue3/src/main/resources/application.properties
+++ b/springboot-vue3/src/main/resources/application.properties
@@ -12,7 +12,7 @@
 #\u6570\u636E\u5E93\u7528\u6237\u5BC6\u7801  
 spring.datasource.password=beibo.123/
 #\u6620\u5C04\u6587\u4EF6\u7684\u4F4D\u7F6E
-mybatis-plus.mapper-locations=classpath:com/example/springboot/dao/*Dao.xml
+mybatis-plus.mapper-locations=classpath:com/example/springboot/mapper/*Mapper.xml
 #\u7C7B\u578B\u522B\u540D
 mybatis-plus.type-aliases-package=com.example.springboot.entity
 #\u914D\u7F6Esql\u6253\u5370
@@ -21,4 +21,9 @@
 spring.main.allow-bean-definition-overriding=true
 #\u683C\u5F0F\u5316date\u65E5\u671F\u683C\u5F0F
 spring.jackson.date-format=yyyy-MM-dd HH:mm:ss
-spring.jackson.time-zone=GMT+8
\ No newline at end of file
+spring.jackson.time-zone=GMT+8
+
+spring.mvc.cors.enabled=true
+spring.mvc.cors.allowed-origins=http://localhost:8080
+spring.mvc.cors.allowed-methods=GET,POST
+spring.mvc.cors.allowed-headers=*
\ No newline at end of file
diff --git a/springboot-vue3/src/main/resources/sql/canadames.sql b/springboot-vue3/src/main/resources/sql/canadames.sql
index 15a9308..e74de2a 100644
--- a/springboot-vue3/src/main/resources/sql/canadames.sql
+++ b/springboot-vue3/src/main/resources/sql/canadames.sql
@@ -1,21 +1,79 @@
 /*
  Navicat MySQL Data Transfer
 
- Source Server         : 鏈湴
+ Source Server         : server-150
  Source Server Type    : MySQL
- Source Server Version : 80022
- Source Host           : localhost:3306
+ Source Server Version : 80019
+ Source Host           : 10.153.19.150:3306
  Source Schema         : canadames
 
  Target Server Type    : MySQL
- Target Server Version : 80022
+ Target Server Version : 80019
  File Encoding         : 65001
 
- Date: 05/09/2023 16:20:45
+ Date: 13/09/2023 09:22:22
 */
 
 SET NAMES utf8mb4;
 SET FOREIGN_KEY_CHECKS = 0;
+
+-- ----------------------------
+-- Table structure for alarmmg
+-- ----------------------------
+DROP TABLE IF EXISTS `alarmmg`;
+CREATE TABLE `alarmmg`  (
+  `id` int NOT NULL AUTO_INCREMENT COMMENT '涓婚敭',
+  `content` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '鎶ヨ淇℃伅',
+  `timeon` datetime(0) NULL DEFAULT NULL COMMENT '寮�濮嬫椂闂�',
+  `endTime` datetime(0) NULL DEFAULT NULL COMMENT '缁撴潫鏃堕棿',
+  PRIMARY KEY (`id`) USING BTREE
+) ENGINE = InnoDB AUTO_INCREMENT = 1338 CHARACTER SET = utf8 COLLATE = utf8_general_ci ROW_FORMAT = DYNAMIC;
+
+-- ----------------------------
+-- Records of alarmmg
+-- ----------------------------
+INSERT INTO `alarmmg` VALUES (1, 'D01 VFD error', '2023-09-11 10:07:17', '2023-09-11 10:07:51');
+INSERT INTO `alarmmg` VALUES (2, 'D02 VFD error', '2023-09-07 10:07:17', '2023-09-07 10:07:51');
+INSERT INTO `alarmmg` VALUES (1338, 'D02 VFD error', '2023-09-12 16:10:32', '2023-09-12 16:22:36');
+INSERT INTO `alarmmg` VALUES (1339, 'D04 VFD error', '2023-09-12 16:10:32', '2023-09-12 16:22:36');
+INSERT INTO `alarmmg` VALUES (1340, 'D06 VFD error', '2023-09-12 16:10:32', '2023-09-12 16:22:36');
+INSERT INTO `alarmmg` VALUES (1341, 'B02 VFD error', '2023-09-12 16:10:32', '2023-09-12 16:22:36');
+INSERT INTO `alarmmg` VALUES (1342, 'A02 VFD error', '2023-09-12 16:10:32', '2023-09-12 16:22:36');
+INSERT INTO `alarmmg` VALUES (1343, 'A02 servo turn error', '2023-09-12 16:10:32', '2023-09-12 16:22:36');
+INSERT INTO `alarmmg` VALUES (1344, 'A02 servo travel error', '2023-09-12 16:10:32', '2023-09-12 16:22:36');
+INSERT INTO `alarmmg` VALUES (1345, 'B02 servo travel error', '2023-09-12 16:10:32', '2023-09-12 16:22:36');
+INSERT INTO `alarmmg` VALUES (1346, 'D01 pos error', '2023-09-12 16:10:32', '2023-09-12 16:22:36');
+INSERT INTO `alarmmg` VALUES (1347, 'D02 pos error', '2023-09-12 16:10:32', '2023-09-12 16:22:36');
+INSERT INTO `alarmmg` VALUES (1348, 'D03 pos error', '2023-09-12 16:10:32', '2023-09-12 16:22:36');
+INSERT INTO `alarmmg` VALUES (1349, 'D04 pos error', '2023-09-12 16:16:48', '2023-09-12 16:22:36');
+INSERT INTO `alarmmg` VALUES (1350, 'D05 pos error', '2023-09-12 16:16:48', '2023-09-12 16:22:36');
+INSERT INTO `alarmmg` VALUES (1351, 'D06 pos error', '2023-09-12 16:16:48', '2023-09-12 16:22:36');
+INSERT INTO `alarmmg` VALUES (1352, 'A01 pos error', '2023-09-12 16:16:48', '2023-09-12 16:22:36');
+INSERT INTO `alarmmg` VALUES (1353, 'A02 pos error', '2023-09-12 16:16:48', '2023-09-12 16:22:36');
+INSERT INTO `alarmmg` VALUES (1354, 'B01 IN pos error', '2023-09-12 16:16:48', '2023-09-12 16:22:36');
+INSERT INTO `alarmmg` VALUES (1355, 'B01 OUT pos error', '2023-09-12 16:16:48', '2023-09-12 16:22:36');
+INSERT INTO `alarmmg` VALUES (1356, 'B02 IN pos error', '2023-09-12 16:16:48', '2023-09-12 16:22:36');
+INSERT INTO `alarmmg` VALUES (1357, 'B02 OUT pos error', '2023-09-12 16:16:48', '2023-09-12 16:22:36');
+INSERT INTO `alarmmg` VALUES (1358, 'D01 VFD error', '2023-09-12 16:22:36', NULL);
+INSERT INTO `alarmmg` VALUES (1359, 'D03 VFD error', '2023-09-12 16:22:36', NULL);
+INSERT INTO `alarmmg` VALUES (1360, 'D05 VFD error', '2023-09-12 16:22:36', NULL);
+INSERT INTO `alarmmg` VALUES (1361, 'B01 VFD error', '2023-09-12 16:22:36', NULL);
+INSERT INTO `alarmmg` VALUES (1362, 'A01 VFD error', '2023-09-12 16:22:36', NULL);
+INSERT INTO `alarmmg` VALUES (1363, 'A01 servo turn error', '2023-09-12 16:22:36', NULL);
+INSERT INTO `alarmmg` VALUES (1364, 'A01 servo travel error', '2023-09-12 16:22:36', NULL);
+INSERT INTO `alarmmg` VALUES (1365, 'B01 servo travel error', '2023-09-12 16:22:36', NULL);
+INSERT INTO `alarmmg` VALUES (1366, 'D01 DEC error', '2023-09-12 16:22:36', NULL);
+INSERT INTO `alarmmg` VALUES (1367, 'D02 DEC error', '2023-09-12 16:22:36', NULL);
+INSERT INTO `alarmmg` VALUES (1368, 'D03 DEC error', '2023-09-12 16:22:36', NULL);
+INSERT INTO `alarmmg` VALUES (1369, 'D04 DEC error', '2023-09-12 16:22:36', NULL);
+INSERT INTO `alarmmg` VALUES (1370, 'D05 DEC error', '2023-09-12 16:22:36', NULL);
+INSERT INTO `alarmmg` VALUES (1371, 'D06 DEC error', '2023-09-12 16:22:36', NULL);
+INSERT INTO `alarmmg` VALUES (1372, 'A01 DEC error', '2023-09-12 16:22:36', NULL);
+INSERT INTO `alarmmg` VALUES (1373, 'A02 DEC error', '2023-09-12 16:22:36', NULL);
+INSERT INTO `alarmmg` VALUES (1374, 'B01 IN DEC error', '2023-09-12 16:22:36', NULL);
+INSERT INTO `alarmmg` VALUES (1375, 'B01 OUT DEC error', '2023-09-12 16:22:36', NULL);
+INSERT INTO `alarmmg` VALUES (1376, 'B02 IN DEC error', '2023-09-12 16:22:36', NULL);
+INSERT INTO `alarmmg` VALUES (1377, 'B02 OUT DEC error', '2023-09-12 16:22:36', NULL);
 
 -- ----------------------------
 -- Table structure for category
@@ -32,7 +90,7 @@
   `create_time` datetime(0) NOT NULL DEFAULT CURRENT_TIMESTAMP(0) COMMENT '鍒涘缓鏃堕棿',
   `update_time` datetime(0) NOT NULL DEFAULT CURRENT_TIMESTAMP(0) ON UPDATE CURRENT_TIMESTAMP(0) COMMENT '鏇存柊鏃堕棿',
   PRIMARY KEY (`id`) USING BTREE
-) ENGINE = InnoDB AUTO_INCREMENT = 1 CHARACTER SET = utf8 COLLATE = utf8_general_ci COMMENT = '鍟嗗搧鍒嗙被' ROW_FORMAT = Dynamic;
+) ENGINE = InnoDB AUTO_INCREMENT = 2 CHARACTER SET = utf8 COLLATE = utf8_general_ci COMMENT = '鍟嗗搧鍒嗙被' ROW_FORMAT = DYNAMIC;
 
 -- ----------------------------
 -- Records of category
@@ -62,7 +120,7 @@
   `last_product_count_date` date NULL DEFAULT NULL,
   PRIMARY KEY (`id`) USING BTREE,
   UNIQUE INDEX `device_id_idx`(`device_id`) USING BTREE
-) ENGINE = InnoDB AUTO_INCREMENT = 46 CHARACTER SET = utf8 COLLATE = utf8_general_ci ROW_FORMAT = DYNAMIC;
+) ENGINE = InnoDB AUTO_INCREMENT = 47 CHARACTER SET = utf8 COLLATE = utf8_general_ci ROW_FORMAT = DYNAMIC;
 
 -- ----------------------------
 -- Records of device
@@ -82,6 +140,26 @@
 INSERT INTO `device` VALUES (46, 'FS220666-AU1B60', 'admin', '2023-04-04 11:38:34', '寮犲媷AU1B60', '鏈惎鐢�', '{\"Ver\":\"1.0\",\"iTopDos\":[96],\"iTopRightMerge\":[],\"iBtmEnd\":[],\"iTopFront\":[],\"iBtmRow\":[12],\"iBtmLeftMerge\":[],\"iTopLeftMerge\":[],\"iTopColumn\":[8],\"iBtmDos\":[96],\"iBtmSingline\":[],\"iBtmFront\":[],\"iBtmRightMerge\":[],\"InterfaceName\":\"IDeviceInfor\",\"iTopEnd\":[],\"iTopRow\":[12],\"iTopSingline\":[],\"DeviceName\":\"FS220666-AU1B60\",\"iBtmColumn\":[8]}', '{\"Ver\":\"1.0\",\"Datas\":[{\"Binding\":\"Datas[0]\",\"Unit\":\"\",\"Name\":\"CurrentStatus\"},{\"Binding\":\"Datas[1]\",\"Unit\":\"鈩僜",\"Name\":\"RtTemperature\"},{\"Binding\":\"Datas[2]\",\"Unit\":\"%\",\"Name\":\"PvPower\"},{\"Binding\":\"Datas[3]\",\"Unit\":\"kw\",\"Name\":\"CurveTotalPower\"}],\"Segments\":[{\"Type\":\"O\",\"Controls\":[{\"Binding\":\"GlassLength[0]\",\"Col\":1,\"Type\":\"var\",\"Foreground\":\"black\",\"Row\":3,\"Unit\":\"mm\",\"Font\":\"榛戜綋 14px black\",\"Name\":\"ToolGlassLength\"},{\"Binding\":\"YieldCount[0]\",\"Col\":1,\"Type\":\"var\",\"Foreground\":\"black\",\"Row\":4,\"Unit\":\"\",\"Font\":\"榛戜綋 14px black\",\"Name\":\"GlassOutPut\"}],\"Width\":0.25,\"Name\":\"Load\"},{\"Type\":\"F\",\"Controls\":[{\"Binding\":\"GlassLength[1]\",\"Col\":1,\"Type\":\"var\",\"Foreground\":\"black\",\"Row\":3,\"Unit\":\"mm\",\"Font\":\"榛戜綋 14px black\",\"Name\":\"ToolGlassLength\"},{\"Binding\":\"TopHeatFansFrequency[0]\",\"Col\":1,\"Type\":\"var\",\"Foreground\":\"black\",\"Row\":0,\"Unit\":\"Hz\",\"Font\":\"榛戜綋 14px black\",\"Name\":\"\"},{\"Binding\":\"BtmHeatFansFrequency[0]\",\"Col\":1,\"Type\":\"var\",\"Foreground\":\"black\",\"Row\":4,\"Unit\":\"Hz\",\"Font\":\"榛戜綋 14px black\",\"Name\":\"\"}],\"Width\":0.25,\"Name\":\"鐐変綋娈礬"},{\"Type\":\"Q\",\"Controls\":[{\"Binding\":\"GlassLength[2]\",\"Col\":1,\"Type\":\"var\",\"Foreground\":\"black\",\"Row\":3,\"Unit\":\"mm\",\"Font\":\"榛戜綋 14px black\",\"Name\":\"ToolGlassLength\"},{\"Binding\":\"TopQuenchDist[0]\",\"Col\":1,\"Type\":\"var\",\"Foreground\":\"black\",\"Row\":0,\"Unit\":\"mm\",\"Font\":\"榛戜綋 14px black\",\"Name\":\"\"},{\"Binding\":\"BtmQuenchDist[0]\",\"Col\":1,\"Type\":\"var\",\"Foreground\":\"black\",\"Row\":4,\"Unit\":\"mm\",\"Font\":\"榛戜綋 14px black\",\"Name\":\"\"}],\"Width\":0.25,\"Name\":\"椋庢爡娈礬"},{\"Type\":\"O\",\"Controls\":[{\"Binding\":\"GlassLength[3]\",\"Col\":1,\"Type\":\"var\",\"Foreground\":\"black\",\"Row\":3,\"Unit\":\"mm\",\"Font\":\"榛戜綋 14px black\",\"Name\":\"ToolGlassLength\"},{\"Binding\":\"YieldCount[1]\",\"Col\":1,\"Type\":\"var\",\"Foreground\":\"black\",\"Row\":4,\"Unit\":\"\",\"Font\":\"榛戜綋 14px black\",\"Name\":\"GlassOutPut\"}],\"Width\":0.25,\"Name\":\"涓嬬墖娈礬"}],\"InterfaceName\":\"IDeviceMapInfor\",\"DeviceName\":\"FS220666-AU1B60\"}', '2023-04-04 11:38:34', '', '', '2023-04-04', '2023-04-04', NULL, NULL, NULL);
 
 -- ----------------------------
+-- Table structure for glass
+-- ----------------------------
+DROP TABLE IF EXISTS `glass`;
+CREATE TABLE `glass`  (
+  `id` int NOT NULL AUTO_INCREMENT,
+  `glassid` varchar(20) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL,
+  `orderid` varchar(20) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL,
+  `width` decimal(10, 2) NULL DEFAULT NULL,
+  `height` decimal(10, 2) NULL DEFAULT NULL,
+  PRIMARY KEY (`id`) USING BTREE
+) ENGINE = InnoDB AUTO_INCREMENT = 4 CHARACTER SET = utf8 COLLATE = utf8_general_ci ROW_FORMAT = Dynamic;
+
+-- ----------------------------
+-- Records of glass
+-- ----------------------------
+INSERT INTO `glass` VALUES (1, '001', '1145', 1400.00, 1200.00);
+INSERT INTO `glass` VALUES (2, '002', '1145', 1500.00, 1100.00);
+INSERT INTO `glass` VALUES (3, '112', '1145', 1220.00, 1500.00);
+
+-- ----------------------------
 -- Table structure for menu_list
 -- ----------------------------
 DROP TABLE IF EXISTS `menu_list`;
@@ -96,7 +174,7 @@
   `create_time` datetime(0) NOT NULL DEFAULT CURRENT_TIMESTAMP(0) COMMENT '鍒涘缓鏃堕棿',
   `update_time` datetime(0) NOT NULL DEFAULT CURRENT_TIMESTAMP(0) ON UPDATE CURRENT_TIMESTAMP(0) COMMENT '鏇存柊鏃堕棿',
   PRIMARY KEY (`id`) USING BTREE
-) ENGINE = InnoDB AUTO_INCREMENT = 61 CHARACTER SET = utf8 COLLATE = utf8_general_ci ROW_FORMAT = Dynamic;
+) ENGINE = InnoDB AUTO_INCREMENT = 61 CHARACTER SET = utf8 COLLATE = utf8_general_ci ROW_FORMAT = DYNAMIC;
 
 -- ----------------------------
 -- Records of menu_list
@@ -106,12 +184,32 @@
 INSERT INTO `menu_list` VALUES (5, NULL, '鏉冮檺绠$悊', 'el-icon-collection-tag', 5, '', 1, '2021-11-28 14:30:27', '2021-11-28 15:06:04');
 INSERT INTO `menu_list` VALUES (6, NULL, '瑙掕壊绠$悊', 'el-icon-s-flag', 6, '', 1, '2021-11-28 14:30:27', '2021-11-28 15:06:04');
 INSERT INTO `menu_list` VALUES (7, 1, '鐢ㄦ埛鍒楄〃', '', 7, 'user', 1, '2021-11-28 14:30:27', '2021-11-28 15:06:04');
+INSERT INTO `menu_list` VALUES (8, 9, '涓婚〉', 'el-icon-menu', 8, 'home', 1, '2023-09-08 10:56:12', '2023-09-08 11:02:36');
+INSERT INTO `menu_list` VALUES (9, NULL, '涓婚〉', 'el-icon-menu', 0, 'home', 1, '2023-09-08 10:43:34', '2023-09-08 11:02:32');
 INSERT INTO `menu_list` VALUES (11, 5, '鏉冮檺鍒楄〃', '', 11, 'power', 1, '2021-11-28 14:30:28', '2021-11-28 15:06:04');
 INSERT INTO `menu_list` VALUES (12, 6, '瑙掕壊鍒楄〃', '', 12, 'role', 1, '2021-11-28 14:30:28', '2021-11-28 15:06:04');
-INSERT INTO `menu_list` VALUES (49, 2, '鎶ヨ淇℃伅', '', 49, 'Electrical/Action', 1, '2021-11-28 14:30:28', '2023-09-01 16:33:29');
-INSERT INTO `menu_list` VALUES (51, 2, 'I/O鐘舵��', NULL, 51, 'Electrical/State', 1, '2023-08-25 13:29:13', '2023-09-01 16:34:03');
-INSERT INTO `menu_list` VALUES (52, 2, '寮�鍏虫帶鍒�', NULL, 52, 'Electrical/Sign', 1, '2023-08-25 13:29:18', '2023-09-01 16:33:48');
+INSERT INTO `menu_list` VALUES (49, 2, '鎶ヨ淇℃伅', '', 49, 'Electrical/alarm', 1, '2021-11-28 14:30:28', '2023-09-08 11:14:08');
+INSERT INTO `menu_list` VALUES (51, 2, '璁惧鐘舵��', NULL, 51, 'Electrical/State', 1, '2023-08-25 13:29:13', '2023-09-11 17:07:08');
+INSERT INTO `menu_list` VALUES (52, 2, '寮�鍏虫帶鍒�', NULL, 52, 'Electrical/Action', 1, '2023-08-25 13:29:18', '2023-09-12 17:02:54');
 INSERT INTO `menu_list` VALUES (53, 2, '鍙傛暟涓嬪彂', NULL, 53, 'Electrical/Parameter', 1, '2023-08-25 13:29:22', '2023-09-01 16:32:29');
+INSERT INTO `menu_list` VALUES (54, 2, 'IO鐘舵��', NULL, 53, 'Electrical/Sign', 1, '2023-08-25 13:29:22', '2023-09-11 17:06:16');
+
+-- ----------------------------
+-- Table structure for order_out
+-- ----------------------------
+DROP TABLE IF EXISTS `order_out`;
+CREATE TABLE `order_out`  (
+  `id` int NOT NULL AUTO_INCREMENT COMMENT '搴忓彿',
+  `order_id` varchar(50) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '璁㈠崟鍙�',
+  `state` int NULL DEFAULT NULL COMMENT '鐘舵��(0锛氭寜姝よ鍗曞彿鍑虹墖锛�1缁撴潫鍑虹墖)',
+  PRIMARY KEY (`id`) USING BTREE
+) ENGINE = InnoDB AUTO_INCREMENT = 1 CHARACTER SET = utf8 COLLATE = utf8_general_ci ROW_FORMAT = DYNAMIC;
+
+-- ----------------------------
+-- Records of order_out
+-- ----------------------------
+INSERT INTO `order_out` VALUES (1, 'NG2202302', 1);
+INSERT INTO `order_out` VALUES (2, 'NG2202302', 0);
 
 -- ----------------------------
 -- Table structure for permission
@@ -125,7 +223,7 @@
   `create_time` datetime(0) NOT NULL DEFAULT CURRENT_TIMESTAMP(0) COMMENT '鍒涘缓鏃堕棿',
   `update_time` datetime(0) NOT NULL DEFAULT CURRENT_TIMESTAMP(0) ON UPDATE CURRENT_TIMESTAMP(0) COMMENT '鏇存柊鏃堕棿',
   PRIMARY KEY (`id`) USING BTREE
-) ENGINE = InnoDB AUTO_INCREMENT = 32 CHARACTER SET = utf8 COLLATE = utf8_general_ci COMMENT = '鏉冮檺' ROW_FORMAT = Dynamic;
+) ENGINE = InnoDB AUTO_INCREMENT = 32 CHARACTER SET = utf8 COLLATE = utf8_general_ci COMMENT = '鏉冮檺' ROW_FORMAT = DYNAMIC;
 
 -- ----------------------------
 -- Records of permission
@@ -167,13 +265,13 @@
   `create_time` datetime(0) NOT NULL DEFAULT CURRENT_TIMESTAMP(0) COMMENT '鍒涘缓鏃堕棿',
   `update_time` datetime(0) NOT NULL DEFAULT CURRENT_TIMESTAMP(0) ON UPDATE CURRENT_TIMESTAMP(0) COMMENT '鏇存柊鏃堕棿',
   PRIMARY KEY (`id`) USING BTREE
-) ENGINE = InnoDB AUTO_INCREMENT = 7 CHARACTER SET = utf8 COLLATE = utf8_general_ci COMMENT = '瑙掕壊' ROW_FORMAT = Dynamic;
+) ENGINE = InnoDB AUTO_INCREMENT = 8 CHARACTER SET = utf8 COLLATE = utf8_general_ci COMMENT = '瑙掕壊' ROW_FORMAT = DYNAMIC;
 
 -- ----------------------------
 -- Records of role
 -- ----------------------------
 INSERT INTO `role` VALUES (1, NULL, 'admin', '绯荤粺绠$悊鍛�', 1, '2021-01-10 22:49:17', '2021-03-29 15:19:15');
-INSERT INTO `role` VALUES (2, 1, 'user', '鏅�氱敤鎴�', 1, '2021-01-13 00:28:58', '2021-03-29 15:19:15');
+INSERT INTO `role` VALUES (2, 1, 'user2', '鏅�氱敤鎴�', 1, '2021-01-13 00:28:58', '2021-03-29 15:19:15');
 INSERT INTO `role` VALUES (5, 1, 'user3', '777', 1, '2023-08-24 10:02:58', '2023-08-28 14:28:22');
 
 -- ----------------------------
@@ -188,7 +286,7 @@
   `create_time` datetime(0) NOT NULL DEFAULT CURRENT_TIMESTAMP(0) COMMENT '鍒涘缓鏃堕棿',
   `update_time` datetime(0) NOT NULL DEFAULT CURRENT_TIMESTAMP(0) ON UPDATE CURRENT_TIMESTAMP(0) COMMENT '鏇存柊鏃堕棿',
   PRIMARY KEY (`id`) USING BTREE
-) ENGINE = InnoDB AUTO_INCREMENT = 54 CHARACTER SET = utf8 COLLATE = utf8_general_ci COMMENT = '瑙掕壊鍜岃彍鍗曞叧鑱旇〃' ROW_FORMAT = Dynamic;
+) ENGINE = InnoDB AUTO_INCREMENT = 57 CHARACTER SET = utf8 COLLATE = utf8_general_ci COMMENT = '瑙掕壊鍜岃彍鍗曞叧鑱旇〃' ROW_FORMAT = DYNAMIC;
 
 -- ----------------------------
 -- Records of role_menu_list
@@ -231,6 +329,9 @@
 INSERT INTO `role_menu_list` VALUES (51, 2, 49, 1, '2023-08-28 15:14:27', '2023-08-28 15:53:34');
 INSERT INTO `role_menu_list` VALUES (52, 2, 1, 1, '2023-08-30 16:28:57', '2023-08-30 16:28:57');
 INSERT INTO `role_menu_list` VALUES (53, 2, 7, 1, '2023-08-30 16:29:05', '2023-08-30 16:29:05');
+INSERT INTO `role_menu_list` VALUES (54, 1, 9, 1, '2023-09-08 10:55:54', '2023-09-08 11:02:55');
+INSERT INTO `role_menu_list` VALUES (55, 1, 8, 1, '2023-09-08 10:56:45', '2023-09-08 11:01:43');
+INSERT INTO `role_menu_list` VALUES (56, 2, 54, 1, '2023-09-11 17:09:17', '2023-09-11 17:09:24');
 
 -- ----------------------------
 -- Table structure for role_permission
@@ -244,7 +345,7 @@
   `create_time` datetime(0) NOT NULL DEFAULT CURRENT_TIMESTAMP(0) COMMENT '鍒涘缓鏃堕棿',
   `update_time` datetime(0) NOT NULL DEFAULT CURRENT_TIMESTAMP(0) ON UPDATE CURRENT_TIMESTAMP(0) COMMENT '鏇存柊鏃堕棿',
   PRIMARY KEY (`id`) USING BTREE
-) ENGINE = InnoDB AUTO_INCREMENT = 76 CHARACTER SET = utf8 COLLATE = utf8_general_ci COMMENT = '瑙掕壊鏉冮檺' ROW_FORMAT = Dynamic;
+) ENGINE = InnoDB AUTO_INCREMENT = 76 CHARACTER SET = utf8 COLLATE = utf8_general_ci COMMENT = '瑙掕壊鏉冮檺' ROW_FORMAT = DYNAMIC;
 
 -- ----------------------------
 -- Records of role_permission
@@ -293,9 +394,452 @@
 INSERT INTO `role_permission` VALUES (69, 2, 26, 1, '2021-11-28 15:07:54', '2021-11-28 15:07:54');
 INSERT INTO `role_permission` VALUES (70, 2, 27, 1, '2021-11-28 15:07:54', '2021-11-28 15:07:54');
 INSERT INTO `role_permission` VALUES (71, 2, 28, 1, '2021-11-28 15:07:54', '2021-11-28 15:07:54');
-INSERT INTO `role_permission` VALUES (72, 2, 30, 1, '2023-08-24 08:55:34', '2023-08-24 08:55:34');
-INSERT INTO `role_permission` VALUES (73, 2, 29, 1, '2023-08-24 08:56:15', '2023-08-28 15:33:14');
+INSERT INTO `role_permission` VALUES (72, 2, 30, 0, '2023-08-24 08:55:34', '2023-08-24 08:55:34');
+INSERT INTO `role_permission` VALUES (73, 2, 29, 0, '2023-08-24 08:56:15', '2023-08-28 15:33:14');
 INSERT INTO `role_permission` VALUES (74, 2, 1, 1, '2023-08-30 16:29:46', '2023-08-30 16:29:46');
+
+-- ----------------------------
+-- Table structure for storage_cage
+-- ----------------------------
+DROP TABLE IF EXISTS `storage_cage`;
+CREATE TABLE `storage_cage`  (
+  `id` int NOT NULL AUTO_INCREMENT COMMENT '搴忓彿',
+  `glass_id` varchar(50) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '鐜荤拑id',
+  `order_id` varchar(50) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '璁㈠崟id',
+  `cage` int NULL DEFAULT NULL COMMENT '绗煎瓙id',
+  `cell` int NULL DEFAULT NULL COMMENT '鏍煎瓙id',
+  `tier` int NULL DEFAULT NULL COMMENT '鏍煎瓙灞俰d',
+  `width` decimal(7, 2) NULL DEFAULT NULL COMMENT '鏍煎瓙瀹�',
+  `glasswidth` decimal(7, 2) NULL DEFAULT NULL COMMENT '鐜荤拑瀹�',
+  `glassheight` decimal(7, 2) NULL DEFAULT NULL COMMENT '鐜荤拑楂�',
+  `state` int NULL DEFAULT NULL COMMENT '鐘舵�侊紙0锛氭棤鐜荤拑锛�1锛氭湁鐜荤拑锛�2锛氳繘鐗囦腑锛�3锛氬嚭鐗囦腑锛�4锛氳皟搴︿腑锛�',
+  `coating` varchar(50) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '娑傚眰',
+  PRIMARY KEY (`id`) USING BTREE
+) ENGINE = InnoDB AUTO_INCREMENT = 421 CHARACTER SET = utf8 COLLATE = utf8_general_ci ROW_FORMAT = DYNAMIC;
+
+-- ----------------------------
+-- Records of storage_cage
+-- ----------------------------
+INSERT INTO `storage_cage` VALUES (1, NULL, NULL, 1, 1, 1, 1500.00, NULL, NULL, 0, NULL);
+INSERT INTO `storage_cage` VALUES (2, NULL, NULL, 1, 1, 2, 1760.00, NULL, NULL, 0, NULL);
+INSERT INTO `storage_cage` VALUES (3, NULL, NULL, 1, 2, 1, 1500.00, NULL, NULL, 0, NULL);
+INSERT INTO `storage_cage` VALUES (4, NULL, NULL, 1, 2, 2, 1500.00, NULL, NULL, 0, NULL);
+INSERT INTO `storage_cage` VALUES (5, NULL, NULL, 1, 3, 1, 1500.00, NULL, NULL, 0, NULL);
+INSERT INTO `storage_cage` VALUES (6, NULL, NULL, 1, 3, 2, 1500.00, NULL, NULL, 0, NULL);
+INSERT INTO `storage_cage` VALUES (7, NULL, NULL, 1, 4, 1, 1500.00, NULL, NULL, 0, NULL);
+INSERT INTO `storage_cage` VALUES (8, NULL, NULL, 1, 4, 2, 1500.00, NULL, NULL, 0, NULL);
+INSERT INTO `storage_cage` VALUES (9, NULL, NULL, 1, 5, 1, 1500.00, NULL, NULL, 1, NULL);
+INSERT INTO `storage_cage` VALUES (10, NULL, NULL, 1, 5, 2, 1600.00, NULL, NULL, 0, NULL);
+INSERT INTO `storage_cage` VALUES (11, NULL, NULL, 1, 6, 1, 1600.00, NULL, NULL, 0, NULL);
+INSERT INTO `storage_cage` VALUES (12, '12', 'NG2202301', 1, 6, 2, 1602.00, 0.00, 2.00, 2, '2');
+INSERT INTO `storage_cage` VALUES (13, NULL, NULL, 1, 7, 1, 1600.00, NULL, NULL, 0, NULL);
+INSERT INTO `storage_cage` VALUES (14, '122', 'NG2202302', 1, 7, 2, 1500.00, 2.00, 2.00, 3, '3');
+INSERT INTO `storage_cage` VALUES (15, NULL, NULL, 1, 8, 1, 1500.00, NULL, NULL, 0, NULL);
+INSERT INTO `storage_cage` VALUES (16, NULL, NULL, 1, 8, 2, 1500.00, NULL, NULL, 0, NULL);
+INSERT INTO `storage_cage` VALUES (17, NULL, NULL, 1, 9, 1, 1500.00, NULL, NULL, 1, NULL);
+INSERT INTO `storage_cage` VALUES (18, NULL, NULL, 1, 9, 2, 1500.00, NULL, NULL, 1, NULL);
+INSERT INTO `storage_cage` VALUES (19, NULL, NULL, 1, 10, 1, 1500.00, NULL, NULL, 1, NULL);
+INSERT INTO `storage_cage` VALUES (20, NULL, NULL, 1, 10, 2, 1500.00, NULL, NULL, 1, NULL);
+INSERT INTO `storage_cage` VALUES (21, NULL, NULL, 1, 11, 1, 1500.00, NULL, NULL, 1, NULL);
+INSERT INTO `storage_cage` VALUES (22, NULL, NULL, 1, 11, 2, 1500.00, NULL, NULL, 1, NULL);
+INSERT INTO `storage_cage` VALUES (23, NULL, NULL, 1, 12, 1, 1500.00, NULL, NULL, 1, NULL);
+INSERT INTO `storage_cage` VALUES (24, NULL, NULL, 1, 12, 2, 1500.00, NULL, NULL, 1, NULL);
+INSERT INTO `storage_cage` VALUES (25, NULL, NULL, 1, 13, 1, 1500.00, NULL, NULL, 1, NULL);
+INSERT INTO `storage_cage` VALUES (26, NULL, NULL, 1, 13, 2, 1500.00, NULL, NULL, 1, NULL);
+INSERT INTO `storage_cage` VALUES (27, NULL, NULL, 1, 14, 1, 1500.00, NULL, NULL, 1, NULL);
+INSERT INTO `storage_cage` VALUES (28, NULL, NULL, 1, 14, 2, 1500.00, NULL, NULL, 1, NULL);
+INSERT INTO `storage_cage` VALUES (29, NULL, NULL, 1, 15, 1, 1500.00, NULL, NULL, 1, NULL);
+INSERT INTO `storage_cage` VALUES (30, NULL, NULL, 1, 15, 2, 1500.00, NULL, NULL, 1, NULL);
+INSERT INTO `storage_cage` VALUES (31, NULL, NULL, 1, 16, 1, 1500.00, NULL, NULL, 1, NULL);
+INSERT INTO `storage_cage` VALUES (32, NULL, NULL, 1, 16, 2, 1500.00, NULL, NULL, 1, NULL);
+INSERT INTO `storage_cage` VALUES (33, NULL, NULL, 1, 17, 1, 1500.00, NULL, NULL, 1, NULL);
+INSERT INTO `storage_cage` VALUES (34, NULL, NULL, 1, 17, 2, 1500.00, NULL, NULL, 1, NULL);
+INSERT INTO `storage_cage` VALUES (35, NULL, NULL, 1, 18, 1, 1500.00, NULL, NULL, 1, NULL);
+INSERT INTO `storage_cage` VALUES (36, NULL, NULL, 1, 18, 2, 1500.00, NULL, NULL, 1, NULL);
+INSERT INTO `storage_cage` VALUES (37, NULL, NULL, 1, 19, 1, 1500.00, NULL, NULL, 1, NULL);
+INSERT INTO `storage_cage` VALUES (38, NULL, NULL, 1, 19, 2, 1500.00, NULL, NULL, 1, NULL);
+INSERT INTO `storage_cage` VALUES (39, NULL, NULL, 1, 20, 1, 1500.00, NULL, NULL, 1, NULL);
+INSERT INTO `storage_cage` VALUES (40, NULL, NULL, 1, 20, 2, 1500.00, NULL, NULL, 1, NULL);
+INSERT INTO `storage_cage` VALUES (41, NULL, NULL, 1, 21, 1, 1500.00, NULL, NULL, 1, NULL);
+INSERT INTO `storage_cage` VALUES (42, NULL, NULL, 1, 21, 2, 1500.00, NULL, NULL, 1, NULL);
+INSERT INTO `storage_cage` VALUES (43, NULL, NULL, 2, 1, 1, 1500.00, NULL, NULL, 1, NULL);
+INSERT INTO `storage_cage` VALUES (44, NULL, NULL, 2, 1, 2, 1500.00, NULL, NULL, 1, NULL);
+INSERT INTO `storage_cage` VALUES (45, NULL, NULL, 2, 2, 1, 1500.00, NULL, NULL, 1, NULL);
+INSERT INTO `storage_cage` VALUES (46, NULL, NULL, 2, 2, 2, 1500.00, NULL, NULL, 1, NULL);
+INSERT INTO `storage_cage` VALUES (47, NULL, NULL, 2, 3, 1, 1500.00, NULL, NULL, 1, NULL);
+INSERT INTO `storage_cage` VALUES (48, NULL, NULL, 2, 3, 2, 1500.00, NULL, NULL, 1, NULL);
+INSERT INTO `storage_cage` VALUES (49, '112', '1145', 2, 4, 1, 330.00, 1220.00, NULL, 1, NULL);
+INSERT INTO `storage_cage` VALUES (50, NULL, NULL, 2, 4, 2, 1550.00, NULL, NULL, 0, NULL);
+INSERT INTO `storage_cage` VALUES (51, NULL, NULL, 2, 5, 1, 1550.00, NULL, NULL, 1, NULL);
+INSERT INTO `storage_cage` VALUES (52, NULL, NULL, 2, 5, 2, 1550.00, NULL, NULL, 1, NULL);
+INSERT INTO `storage_cage` VALUES (53, NULL, NULL, 2, 6, 1, 1550.00, NULL, NULL, 1, NULL);
+INSERT INTO `storage_cage` VALUES (54, NULL, NULL, 2, 6, 2, 1500.00, NULL, NULL, 1, NULL);
+INSERT INTO `storage_cage` VALUES (55, NULL, NULL, 2, 7, 1, 1500.00, NULL, NULL, 1, NULL);
+INSERT INTO `storage_cage` VALUES (56, NULL, NULL, 2, 7, 2, 1500.00, NULL, NULL, 1, NULL);
+INSERT INTO `storage_cage` VALUES (57, NULL, NULL, 2, 8, 1, 1500.00, NULL, NULL, 1, NULL);
+INSERT INTO `storage_cage` VALUES (58, NULL, NULL, 2, 8, 2, 1500.00, NULL, NULL, 1, NULL);
+INSERT INTO `storage_cage` VALUES (59, NULL, NULL, 2, 9, 1, 1500.00, NULL, NULL, 1, NULL);
+INSERT INTO `storage_cage` VALUES (60, NULL, NULL, 2, 9, 2, 1500.00, NULL, NULL, 1, NULL);
+INSERT INTO `storage_cage` VALUES (61, NULL, NULL, 2, 10, 1, 1500.00, NULL, NULL, 1, NULL);
+INSERT INTO `storage_cage` VALUES (62, NULL, NULL, 2, 10, 2, 1500.00, NULL, NULL, 1, NULL);
+INSERT INTO `storage_cage` VALUES (63, NULL, NULL, 2, 11, 1, 1500.00, NULL, NULL, 1, NULL);
+INSERT INTO `storage_cage` VALUES (64, NULL, NULL, 2, 11, 2, 1500.00, NULL, NULL, 1, NULL);
+INSERT INTO `storage_cage` VALUES (65, NULL, NULL, 2, 12, 1, 1760.00, NULL, NULL, 1, NULL);
+INSERT INTO `storage_cage` VALUES (66, NULL, NULL, 2, 12, 2, 1500.00, NULL, NULL, 1, NULL);
+INSERT INTO `storage_cage` VALUES (67, NULL, NULL, 2, 13, 1, 1500.00, NULL, NULL, 1, NULL);
+INSERT INTO `storage_cage` VALUES (68, NULL, NULL, 2, 13, 2, 1500.00, NULL, NULL, 1, NULL);
+INSERT INTO `storage_cage` VALUES (69, NULL, NULL, 2, 14, 1, 1500.00, NULL, NULL, 1, NULL);
+INSERT INTO `storage_cage` VALUES (70, NULL, NULL, 2, 14, 2, 1500.00, NULL, NULL, 1, NULL);
+INSERT INTO `storage_cage` VALUES (71, NULL, NULL, 2, 15, 1, 1500.00, NULL, NULL, 1, NULL);
+INSERT INTO `storage_cage` VALUES (72, NULL, NULL, 2, 15, 2, 1500.00, NULL, NULL, 1, NULL);
+INSERT INTO `storage_cage` VALUES (73, NULL, NULL, 2, 16, 1, 1500.00, NULL, NULL, 1, NULL);
+INSERT INTO `storage_cage` VALUES (74, NULL, NULL, 2, 16, 2, 1500.00, NULL, NULL, 1, NULL);
+INSERT INTO `storage_cage` VALUES (75, NULL, NULL, 2, 17, 1, 1500.00, NULL, NULL, 1, NULL);
+INSERT INTO `storage_cage` VALUES (76, NULL, NULL, 2, 17, 2, 1500.00, NULL, NULL, 1, NULL);
+INSERT INTO `storage_cage` VALUES (77, NULL, NULL, 2, 18, 1, 1500.00, NULL, NULL, 1, NULL);
+INSERT INTO `storage_cage` VALUES (78, NULL, NULL, 2, 18, 2, 1500.00, NULL, NULL, 1, NULL);
+INSERT INTO `storage_cage` VALUES (79, NULL, NULL, 2, 19, 1, 1500.00, NULL, NULL, 1, NULL);
+INSERT INTO `storage_cage` VALUES (80, NULL, NULL, 2, 19, 2, 1500.00, NULL, NULL, 1, NULL);
+INSERT INTO `storage_cage` VALUES (81, NULL, NULL, 2, 20, 1, 1500.00, NULL, NULL, 1, NULL);
+INSERT INTO `storage_cage` VALUES (82, NULL, NULL, 2, 20, 2, 1500.00, NULL, NULL, 1, NULL);
+INSERT INTO `storage_cage` VALUES (83, NULL, NULL, 2, 21, 1, 1500.00, NULL, NULL, 1, NULL);
+INSERT INTO `storage_cage` VALUES (84, NULL, NULL, 2, 21, 2, 1500.00, NULL, NULL, 1, NULL);
+INSERT INTO `storage_cage` VALUES (85, NULL, NULL, 3, 1, 1, 1500.00, NULL, NULL, 1, NULL);
+INSERT INTO `storage_cage` VALUES (86, NULL, NULL, 3, 1, 2, 1500.00, NULL, NULL, 1, NULL);
+INSERT INTO `storage_cage` VALUES (87, NULL, NULL, 3, 2, 1, 1500.00, NULL, NULL, 1, NULL);
+INSERT INTO `storage_cage` VALUES (88, '116', '112', 3, 2, 2, 1500.00, 1200.00, NULL, 1, NULL);
+INSERT INTO `storage_cage` VALUES (89, '117', '112', 3, 3, 1, 1500.00, 1200.00, NULL, 1, NULL);
+INSERT INTO `storage_cage` VALUES (90, '118', '112', 3, 3, 2, 1500.00, 1200.00, NULL, 1, NULL);
+INSERT INTO `storage_cage` VALUES (91, '119', '112', 3, 4, 1, 1500.00, 1200.00, NULL, 1, NULL);
+INSERT INTO `storage_cage` VALUES (92, '120', '112', 3, 4, 2, 1500.00, 1200.00, NULL, 1, NULL);
+INSERT INTO `storage_cage` VALUES (93, '121', '112', 3, 5, 1, 1500.00, 1200.00, NULL, 1, NULL);
+INSERT INTO `storage_cage` VALUES (94, '', '', 3, 5, 2, 2700.00, 0.00, NULL, 0, NULL);
+INSERT INTO `storage_cage` VALUES (95, NULL, NULL, 3, 6, 1, 280.00, NULL, NULL, 1, NULL);
+INSERT INTO `storage_cage` VALUES (96, NULL, NULL, 3, 6, 2, 1500.00, NULL, NULL, 1, NULL);
+INSERT INTO `storage_cage` VALUES (97, NULL, NULL, 3, 7, 1, 1500.00, NULL, NULL, 1, NULL);
+INSERT INTO `storage_cage` VALUES (98, NULL, NULL, 3, 7, 2, 1500.00, NULL, NULL, 1, NULL);
+INSERT INTO `storage_cage` VALUES (99, NULL, NULL, 3, 8, 1, 1500.00, NULL, NULL, 1, NULL);
+INSERT INTO `storage_cage` VALUES (100, NULL, NULL, 3, 8, 2, 1500.00, NULL, NULL, 1, NULL);
+INSERT INTO `storage_cage` VALUES (101, NULL, NULL, 3, 9, 1, 1500.00, NULL, NULL, 1, NULL);
+INSERT INTO `storage_cage` VALUES (102, NULL, NULL, 3, 9, 2, 1500.00, NULL, NULL, 1, NULL);
+INSERT INTO `storage_cage` VALUES (103, NULL, NULL, 3, 10, 1, 1500.00, NULL, NULL, 1, NULL);
+INSERT INTO `storage_cage` VALUES (104, NULL, NULL, 3, 10, 2, 1500.00, NULL, NULL, 1, NULL);
+INSERT INTO `storage_cage` VALUES (105, NULL, NULL, 3, 11, 1, 1500.00, NULL, NULL, 1, NULL);
+INSERT INTO `storage_cage` VALUES (106, NULL, NULL, 3, 11, 2, 1500.00, NULL, NULL, 1, NULL);
+INSERT INTO `storage_cage` VALUES (107, NULL, NULL, 3, 12, 1, 1500.00, NULL, NULL, 1, NULL);
+INSERT INTO `storage_cage` VALUES (108, NULL, NULL, 3, 12, 2, 1500.00, NULL, NULL, 1, NULL);
+INSERT INTO `storage_cage` VALUES (109, NULL, NULL, 3, 13, 1, 1500.00, NULL, NULL, 1, NULL);
+INSERT INTO `storage_cage` VALUES (110, NULL, NULL, 3, 13, 2, 1500.00, NULL, NULL, 1, NULL);
+INSERT INTO `storage_cage` VALUES (111, NULL, NULL, 3, 14, 1, 1500.00, NULL, NULL, 1, NULL);
+INSERT INTO `storage_cage` VALUES (112, NULL, NULL, 3, 14, 2, 1500.00, NULL, NULL, 1, NULL);
+INSERT INTO `storage_cage` VALUES (113, NULL, NULL, 3, 15, 1, 1500.00, NULL, NULL, 1, NULL);
+INSERT INTO `storage_cage` VALUES (114, NULL, NULL, 3, 15, 2, 1500.00, NULL, NULL, 1, NULL);
+INSERT INTO `storage_cage` VALUES (115, NULL, NULL, 3, 16, 1, 1500.00, NULL, NULL, 1, NULL);
+INSERT INTO `storage_cage` VALUES (116, NULL, NULL, 3, 16, 2, 1500.00, NULL, NULL, 1, NULL);
+INSERT INTO `storage_cage` VALUES (117, NULL, NULL, 3, 17, 1, 1500.00, NULL, NULL, 1, NULL);
+INSERT INTO `storage_cage` VALUES (118, NULL, NULL, 3, 17, 2, 1500.00, NULL, NULL, 1, NULL);
+INSERT INTO `storage_cage` VALUES (119, NULL, NULL, 3, 18, 1, 1500.00, NULL, NULL, 1, NULL);
+INSERT INTO `storage_cage` VALUES (120, NULL, NULL, 3, 18, 2, 1500.00, NULL, NULL, 1, NULL);
+INSERT INTO `storage_cage` VALUES (121, NULL, NULL, 3, 19, 1, 1500.00, NULL, NULL, 1, NULL);
+INSERT INTO `storage_cage` VALUES (122, NULL, NULL, 3, 19, 2, 1500.00, NULL, NULL, 1, NULL);
+INSERT INTO `storage_cage` VALUES (123, NULL, NULL, 3, 20, 1, 1500.00, NULL, NULL, 1, NULL);
+INSERT INTO `storage_cage` VALUES (124, NULL, NULL, 3, 20, 2, 1500.00, NULL, NULL, 1, NULL);
+INSERT INTO `storage_cage` VALUES (125, NULL, NULL, 3, 21, 1, 1500.00, NULL, NULL, 1, NULL);
+INSERT INTO `storage_cage` VALUES (126, NULL, NULL, 3, 21, 2, 1500.00, NULL, NULL, 1, NULL);
+INSERT INTO `storage_cage` VALUES (127, NULL, NULL, 4, 1, 1, 1500.00, NULL, NULL, 1, NULL);
+INSERT INTO `storage_cage` VALUES (128, NULL, NULL, 4, 1, 2, 1500.00, NULL, NULL, 1, NULL);
+INSERT INTO `storage_cage` VALUES (129, NULL, NULL, 4, 2, 1, 1550.00, NULL, NULL, 1, NULL);
+INSERT INTO `storage_cage` VALUES (130, NULL, NULL, 4, 2, 2, 1550.00, NULL, NULL, 1, NULL);
+INSERT INTO `storage_cage` VALUES (131, NULL, NULL, 4, 3, 1, 1550.00, NULL, NULL, 1, NULL);
+INSERT INTO `storage_cage` VALUES (132, NULL, NULL, 4, 3, 2, 1500.00, NULL, NULL, 1, NULL);
+INSERT INTO `storage_cage` VALUES (133, NULL, NULL, 4, 4, 1, 1500.00, NULL, NULL, 1, NULL);
+INSERT INTO `storage_cage` VALUES (134, NULL, NULL, 4, 4, 2, 1500.00, NULL, NULL, 1, NULL);
+INSERT INTO `storage_cage` VALUES (135, NULL, NULL, 4, 5, 1, 1500.00, NULL, NULL, 1, NULL);
+INSERT INTO `storage_cage` VALUES (136, NULL, NULL, 4, 5, 2, 1500.00, NULL, NULL, 1, NULL);
+INSERT INTO `storage_cage` VALUES (137, NULL, NULL, 4, 6, 1, 1500.00, NULL, NULL, 1, NULL);
+INSERT INTO `storage_cage` VALUES (138, NULL, NULL, 4, 6, 2, 1500.00, NULL, NULL, 1, NULL);
+INSERT INTO `storage_cage` VALUES (139, NULL, NULL, 4, 7, 1, 1500.00, NULL, NULL, 1, NULL);
+INSERT INTO `storage_cage` VALUES (140, NULL, NULL, 4, 7, 2, 1500.00, NULL, NULL, 1, NULL);
+INSERT INTO `storage_cage` VALUES (141, '123', '112', 4, 8, 1, 1500.00, 1200.00, NULL, 1, NULL);
+INSERT INTO `storage_cage` VALUES (142, '124', '112', 4, 8, 2, 1500.00, 1200.00, NULL, 1, NULL);
+INSERT INTO `storage_cage` VALUES (143, '125', '112', 4, 9, 1, 1500.00, 1200.00, NULL, 1, NULL);
+INSERT INTO `storage_cage` VALUES (144, '126', '112', 4, 9, 2, 1500.00, 1200.00, NULL, 1, NULL);
+INSERT INTO `storage_cage` VALUES (145, '127', '112', 4, 10, 1, 1500.00, 1200.00, NULL, 1, NULL);
+INSERT INTO `storage_cage` VALUES (146, '128', '112', 4, 10, 2, 1500.00, 1200.00, NULL, 1, NULL);
+INSERT INTO `storage_cage` VALUES (147, NULL, NULL, 4, 11, 1, 1500.00, NULL, NULL, 1, NULL);
+INSERT INTO `storage_cage` VALUES (148, NULL, NULL, 4, 11, 2, 1500.00, NULL, NULL, 1, NULL);
+INSERT INTO `storage_cage` VALUES (149, NULL, NULL, 4, 12, 1, 1500.00, NULL, NULL, 1, NULL);
+INSERT INTO `storage_cage` VALUES (150, NULL, NULL, 4, 12, 2, 1500.00, NULL, NULL, 1, NULL);
+INSERT INTO `storage_cage` VALUES (151, NULL, NULL, 4, 13, 1, 1500.00, NULL, NULL, 1, NULL);
+INSERT INTO `storage_cage` VALUES (152, NULL, NULL, 4, 13, 2, 1500.00, NULL, NULL, 1, NULL);
+INSERT INTO `storage_cage` VALUES (153, NULL, NULL, 4, 14, 1, 1500.00, NULL, NULL, 1, NULL);
+INSERT INTO `storage_cage` VALUES (154, NULL, NULL, 4, 14, 2, 1500.00, NULL, NULL, 1, NULL);
+INSERT INTO `storage_cage` VALUES (155, NULL, NULL, 4, 15, 1, 1500.00, NULL, NULL, 1, NULL);
+INSERT INTO `storage_cage` VALUES (156, NULL, NULL, 4, 15, 2, 1500.00, NULL, NULL, 1, NULL);
+INSERT INTO `storage_cage` VALUES (157, NULL, NULL, 4, 16, 1, 1500.00, NULL, NULL, 1, NULL);
+INSERT INTO `storage_cage` VALUES (158, NULL, NULL, 4, 16, 2, 1500.00, NULL, NULL, 1, NULL);
+INSERT INTO `storage_cage` VALUES (159, NULL, NULL, 4, 17, 1, 1500.00, NULL, NULL, 1, NULL);
+INSERT INTO `storage_cage` VALUES (160, NULL, NULL, 4, 17, 2, 1500.00, NULL, NULL, 1, NULL);
+INSERT INTO `storage_cage` VALUES (161, NULL, NULL, 4, 18, 1, 1500.00, NULL, NULL, 1, NULL);
+INSERT INTO `storage_cage` VALUES (162, NULL, NULL, 4, 18, 2, 1500.00, NULL, NULL, 1, NULL);
+INSERT INTO `storage_cage` VALUES (163, NULL, NULL, 4, 19, 1, 1500.00, NULL, NULL, 1, NULL);
+INSERT INTO `storage_cage` VALUES (164, NULL, NULL, 4, 19, 2, 1500.00, NULL, NULL, 1, NULL);
+INSERT INTO `storage_cage` VALUES (165, NULL, NULL, 4, 20, 1, 1500.00, NULL, NULL, 1, NULL);
+INSERT INTO `storage_cage` VALUES (166, NULL, NULL, 4, 20, 2, 1500.00, NULL, NULL, 1, NULL);
+INSERT INTO `storage_cage` VALUES (167, NULL, NULL, 4, 21, 1, 1500.00, NULL, NULL, 1, NULL);
+INSERT INTO `storage_cage` VALUES (168, NULL, NULL, 4, 21, 2, 1500.00, NULL, NULL, 1, NULL);
+INSERT INTO `storage_cage` VALUES (169, NULL, NULL, 5, 1, 1, 1500.00, NULL, NULL, 1, NULL);
+INSERT INTO `storage_cage` VALUES (170, NULL, NULL, 5, 1, 2, 1500.00, NULL, NULL, 1, NULL);
+INSERT INTO `storage_cage` VALUES (171, NULL, NULL, 5, 2, 1, 1500.00, NULL, NULL, 1, NULL);
+INSERT INTO `storage_cage` VALUES (172, NULL, NULL, 5, 2, 2, 1550.00, NULL, NULL, 1, NULL);
+INSERT INTO `storage_cage` VALUES (173, NULL, NULL, 5, 3, 1, 1500.00, NULL, NULL, 1, NULL);
+INSERT INTO `storage_cage` VALUES (174, NULL, NULL, 5, 3, 2, 1500.00, NULL, NULL, 1, NULL);
+INSERT INTO `storage_cage` VALUES (175, NULL, NULL, 5, 4, 1, 1500.00, NULL, NULL, 1, NULL);
+INSERT INTO `storage_cage` VALUES (176, NULL, NULL, 5, 4, 2, 1500.00, NULL, NULL, 1, NULL);
+INSERT INTO `storage_cage` VALUES (177, NULL, NULL, 5, 5, 1, 1500.00, NULL, NULL, 1, NULL);
+INSERT INTO `storage_cage` VALUES (178, NULL, NULL, 5, 5, 2, 1500.00, NULL, NULL, 1, NULL);
+INSERT INTO `storage_cage` VALUES (179, NULL, NULL, 5, 6, 1, 1500.00, NULL, NULL, 1, NULL);
+INSERT INTO `storage_cage` VALUES (180, NULL, NULL, 5, 6, 2, 1500.00, NULL, NULL, 1, NULL);
+INSERT INTO `storage_cage` VALUES (181, NULL, NULL, 5, 7, 1, 1500.00, NULL, NULL, 1, NULL);
+INSERT INTO `storage_cage` VALUES (182, NULL, NULL, 5, 7, 2, 1500.00, NULL, NULL, 1, NULL);
+INSERT INTO `storage_cage` VALUES (183, NULL, NULL, 5, 8, 1, 1500.00, NULL, NULL, 1, NULL);
+INSERT INTO `storage_cage` VALUES (184, NULL, NULL, 5, 8, 2, 1500.00, NULL, NULL, 1, NULL);
+INSERT INTO `storage_cage` VALUES (185, NULL, NULL, 5, 9, 1, 1500.00, NULL, NULL, 1, NULL);
+INSERT INTO `storage_cage` VALUES (186, NULL, NULL, 5, 9, 2, 1500.00, NULL, NULL, 1, NULL);
+INSERT INTO `storage_cage` VALUES (187, NULL, NULL, 5, 10, 1, 1500.00, NULL, NULL, 1, NULL);
+INSERT INTO `storage_cage` VALUES (188, NULL, NULL, 5, 10, 2, 1500.00, NULL, NULL, 1, NULL);
+INSERT INTO `storage_cage` VALUES (189, NULL, NULL, 5, 11, 1, 1500.00, NULL, NULL, 1, NULL);
+INSERT INTO `storage_cage` VALUES (190, NULL, NULL, 5, 11, 2, 1500.00, NULL, NULL, 1, NULL);
+INSERT INTO `storage_cage` VALUES (191, NULL, NULL, 5, 12, 1, 1500.00, NULL, NULL, 1, NULL);
+INSERT INTO `storage_cage` VALUES (192, NULL, NULL, 5, 12, 2, 1500.00, NULL, NULL, 1, NULL);
+INSERT INTO `storage_cage` VALUES (193, NULL, NULL, 5, 13, 1, 1500.00, NULL, NULL, 1, NULL);
+INSERT INTO `storage_cage` VALUES (194, NULL, NULL, 5, 13, 2, 1500.00, NULL, NULL, 1, NULL);
+INSERT INTO `storage_cage` VALUES (195, NULL, NULL, 5, 14, 1, 1500.00, NULL, NULL, 1, NULL);
+INSERT INTO `storage_cage` VALUES (196, NULL, NULL, 5, 14, 2, 1500.00, NULL, NULL, 1, NULL);
+INSERT INTO `storage_cage` VALUES (197, NULL, NULL, 5, 15, 1, 1500.00, NULL, NULL, 1, NULL);
+INSERT INTO `storage_cage` VALUES (198, NULL, NULL, 5, 15, 2, 1500.00, NULL, NULL, 1, NULL);
+INSERT INTO `storage_cage` VALUES (199, NULL, NULL, 5, 16, 1, 1500.00, NULL, NULL, 1, NULL);
+INSERT INTO `storage_cage` VALUES (200, NULL, NULL, 5, 16, 2, 1500.00, NULL, NULL, 1, NULL);
+INSERT INTO `storage_cage` VALUES (201, NULL, NULL, 5, 17, 1, 1500.00, NULL, NULL, 1, NULL);
+INSERT INTO `storage_cage` VALUES (202, NULL, NULL, 5, 17, 2, 1500.00, NULL, NULL, 1, NULL);
+INSERT INTO `storage_cage` VALUES (203, NULL, NULL, 5, 18, 1, 1500.00, NULL, NULL, 1, NULL);
+INSERT INTO `storage_cage` VALUES (204, NULL, NULL, 5, 18, 2, 1500.00, NULL, NULL, 1, NULL);
+INSERT INTO `storage_cage` VALUES (205, NULL, NULL, 5, 19, 1, 1500.00, NULL, NULL, 1, NULL);
+INSERT INTO `storage_cage` VALUES (206, NULL, NULL, 5, 19, 2, 1500.00, NULL, NULL, 1, NULL);
+INSERT INTO `storage_cage` VALUES (207, NULL, NULL, 5, 20, 1, 1500.00, NULL, NULL, 1, NULL);
+INSERT INTO `storage_cage` VALUES (208, NULL, NULL, 5, 20, 2, 1500.00, NULL, NULL, 1, NULL);
+INSERT INTO `storage_cage` VALUES (209, NULL, NULL, 5, 21, 1, 1500.00, NULL, NULL, 1, NULL);
+INSERT INTO `storage_cage` VALUES (210, NULL, NULL, 5, 21, 2, 1500.00, NULL, NULL, 1, NULL);
+INSERT INTO `storage_cage` VALUES (211, '129', '112', 6, 1, 1, 1500.00, 1200.00, NULL, 1, NULL);
+INSERT INTO `storage_cage` VALUES (212, '130', '113', 6, 1, 2, 1500.00, 1200.00, NULL, 1, NULL);
+INSERT INTO `storage_cage` VALUES (213, '', '', 6, 2, 1, 1500.00, NULL, NULL, 0, NULL);
+INSERT INTO `storage_cage` VALUES (214, NULL, NULL, 6, 2, 2, 1500.00, NULL, NULL, 0, NULL);
+INSERT INTO `storage_cage` VALUES (215, NULL, NULL, 6, 3, 1, 1500.00, NULL, NULL, 0, NULL);
+INSERT INTO `storage_cage` VALUES (216, NULL, NULL, 6, 3, 2, 1500.00, NULL, NULL, 0, NULL);
+INSERT INTO `storage_cage` VALUES (217, NULL, NULL, 6, 4, 1, 1500.00, NULL, NULL, 0, NULL);
+INSERT INTO `storage_cage` VALUES (218, NULL, NULL, 6, 4, 2, 1500.00, NULL, NULL, 1, NULL);
+INSERT INTO `storage_cage` VALUES (219, NULL, NULL, 6, 5, 1, 1500.00, NULL, NULL, 1, NULL);
+INSERT INTO `storage_cage` VALUES (220, NULL, NULL, 6, 5, 2, 1500.00, NULL, NULL, 1, NULL);
+INSERT INTO `storage_cage` VALUES (221, NULL, NULL, 6, 6, 1, 1500.00, NULL, NULL, 1, NULL);
+INSERT INTO `storage_cage` VALUES (222, NULL, NULL, 6, 6, 2, 1500.00, NULL, NULL, 1, NULL);
+INSERT INTO `storage_cage` VALUES (223, NULL, NULL, 6, 7, 1, 1500.00, NULL, NULL, 1, NULL);
+INSERT INTO `storage_cage` VALUES (224, NULL, NULL, 6, 7, 2, 1500.00, NULL, NULL, 1, NULL);
+INSERT INTO `storage_cage` VALUES (225, NULL, NULL, 6, 8, 1, 1500.00, NULL, NULL, 1, NULL);
+INSERT INTO `storage_cage` VALUES (226, NULL, NULL, 6, 8, 2, 1500.00, NULL, NULL, 1, NULL);
+INSERT INTO `storage_cage` VALUES (227, NULL, NULL, 6, 9, 1, 1500.00, NULL, NULL, 1, NULL);
+INSERT INTO `storage_cage` VALUES (228, NULL, NULL, 6, 9, 2, 1500.00, NULL, NULL, 1, NULL);
+INSERT INTO `storage_cage` VALUES (229, NULL, NULL, 6, 10, 1, 1500.00, NULL, NULL, 1, NULL);
+INSERT INTO `storage_cage` VALUES (230, NULL, NULL, 6, 10, 2, 1500.00, NULL, NULL, 1, NULL);
+INSERT INTO `storage_cage` VALUES (231, NULL, NULL, 6, 11, 1, 1500.00, NULL, NULL, 1, NULL);
+INSERT INTO `storage_cage` VALUES (232, NULL, NULL, 6, 11, 2, 1500.00, NULL, NULL, 1, NULL);
+INSERT INTO `storage_cage` VALUES (233, NULL, NULL, 6, 12, 1, 1500.00, NULL, NULL, 1, NULL);
+INSERT INTO `storage_cage` VALUES (234, NULL, NULL, 6, 12, 2, 1500.00, NULL, NULL, 1, NULL);
+INSERT INTO `storage_cage` VALUES (235, NULL, NULL, 6, 13, 1, 1500.00, NULL, NULL, 1, NULL);
+INSERT INTO `storage_cage` VALUES (236, NULL, NULL, 6, 13, 2, 1500.00, NULL, NULL, 1, NULL);
+INSERT INTO `storage_cage` VALUES (237, NULL, NULL, 6, 14, 1, 1500.00, NULL, NULL, 1, NULL);
+INSERT INTO `storage_cage` VALUES (238, NULL, NULL, 6, 14, 2, 1500.00, NULL, NULL, 1, NULL);
+INSERT INTO `storage_cage` VALUES (239, NULL, NULL, 6, 15, 1, 1500.00, NULL, NULL, 1, NULL);
+INSERT INTO `storage_cage` VALUES (240, NULL, NULL, 6, 15, 2, 1500.00, NULL, NULL, 1, NULL);
+INSERT INTO `storage_cage` VALUES (241, NULL, NULL, 6, 16, 1, 1500.00, NULL, NULL, 1, NULL);
+INSERT INTO `storage_cage` VALUES (242, NULL, NULL, 6, 16, 2, 1500.00, NULL, NULL, 1, NULL);
+INSERT INTO `storage_cage` VALUES (243, NULL, NULL, 6, 17, 1, 1500.00, NULL, NULL, 1, NULL);
+INSERT INTO `storage_cage` VALUES (244, NULL, NULL, 6, 17, 2, 1500.00, NULL, NULL, 1, NULL);
+INSERT INTO `storage_cage` VALUES (245, NULL, NULL, 6, 18, 1, 1500.00, NULL, NULL, 1, NULL);
+INSERT INTO `storage_cage` VALUES (246, NULL, NULL, 6, 18, 2, 1500.00, NULL, NULL, 1, NULL);
+INSERT INTO `storage_cage` VALUES (247, NULL, NULL, 6, 19, 1, 1500.00, NULL, NULL, 1, NULL);
+INSERT INTO `storage_cage` VALUES (248, NULL, NULL, 6, 19, 2, 1500.00, NULL, NULL, 1, NULL);
+INSERT INTO `storage_cage` VALUES (249, NULL, NULL, 6, 20, 1, 1500.00, NULL, NULL, 1, NULL);
+INSERT INTO `storage_cage` VALUES (250, NULL, NULL, 6, 20, 2, 1500.00, NULL, NULL, 1, NULL);
+INSERT INTO `storage_cage` VALUES (251, NULL, NULL, 6, 21, 1, 1500.00, NULL, NULL, 0, NULL);
+INSERT INTO `storage_cage` VALUES (252, NULL, NULL, 6, 21, 2, 1788.00, NULL, NULL, 0, NULL);
+INSERT INTO `storage_cage` VALUES (253, '1', '1145', 7, 1, 1, 388.00, 1400.00, NULL, 1, NULL);
+INSERT INTO `storage_cage` VALUES (254, '112', '1145', 7, 1, 2, 568.00, 1220.00, NULL, 1, NULL);
+INSERT INTO `storage_cage` VALUES (255, '112', '1145', 7, 2, 1, 568.00, 1220.00, NULL, 1, NULL);
+INSERT INTO `storage_cage` VALUES (256, '001', '1145', 7, 2, 2, 1788.00, NULL, NULL, 1, NULL);
+INSERT INTO `storage_cage` VALUES (257, NULL, NULL, 7, 3, 1, 1500.00, NULL, NULL, 1, NULL);
+INSERT INTO `storage_cage` VALUES (258, '112', '1145', 7, 3, 2, 280.00, 1220.00, NULL, 1, NULL);
+INSERT INTO `storage_cage` VALUES (259, NULL, NULL, 7, 4, 1, 1500.00, NULL, NULL, 0, NULL);
+INSERT INTO `storage_cage` VALUES (260, NULL, NULL, 7, 4, 2, 1500.00, NULL, NULL, 0, NULL);
+INSERT INTO `storage_cage` VALUES (261, NULL, NULL, 7, 5, 1, 1500.00, NULL, NULL, 0, NULL);
+INSERT INTO `storage_cage` VALUES (262, NULL, NULL, 7, 5, 2, 1500.00, NULL, NULL, 0, NULL);
+INSERT INTO `storage_cage` VALUES (263, NULL, NULL, 7, 6, 1, 1500.00, NULL, NULL, 1, NULL);
+INSERT INTO `storage_cage` VALUES (264, NULL, NULL, 7, 6, 2, 1500.00, NULL, NULL, 1, NULL);
+INSERT INTO `storage_cage` VALUES (265, NULL, NULL, 7, 7, 1, 1500.00, NULL, NULL, 1, NULL);
+INSERT INTO `storage_cage` VALUES (266, NULL, NULL, 7, 7, 2, 1500.00, NULL, NULL, 1, NULL);
+INSERT INTO `storage_cage` VALUES (267, NULL, NULL, 7, 8, 1, 1500.00, NULL, NULL, 1, NULL);
+INSERT INTO `storage_cage` VALUES (268, NULL, NULL, 7, 8, 2, 1500.00, NULL, NULL, 1, NULL);
+INSERT INTO `storage_cage` VALUES (269, NULL, NULL, 7, 9, 1, 1500.00, NULL, NULL, 1, NULL);
+INSERT INTO `storage_cage` VALUES (270, NULL, NULL, 7, 9, 2, 1500.00, NULL, NULL, 1, NULL);
+INSERT INTO `storage_cage` VALUES (271, NULL, NULL, 7, 10, 1, 1500.00, NULL, NULL, 1, NULL);
+INSERT INTO `storage_cage` VALUES (272, NULL, NULL, 7, 10, 2, 1500.00, NULL, NULL, 1, NULL);
+INSERT INTO `storage_cage` VALUES (273, NULL, NULL, 7, 11, 1, 1500.00, NULL, NULL, 1, NULL);
+INSERT INTO `storage_cage` VALUES (274, NULL, NULL, 7, 11, 2, 1500.00, NULL, NULL, 1, NULL);
+INSERT INTO `storage_cage` VALUES (275, NULL, NULL, 7, 12, 1, 1500.00, NULL, NULL, 1, NULL);
+INSERT INTO `storage_cage` VALUES (276, NULL, NULL, 7, 12, 2, 1500.00, NULL, NULL, 1, NULL);
+INSERT INTO `storage_cage` VALUES (277, NULL, NULL, 7, 13, 1, 1500.00, NULL, NULL, 1, NULL);
+INSERT INTO `storage_cage` VALUES (278, NULL, NULL, 7, 13, 2, 1500.00, NULL, NULL, 1, NULL);
+INSERT INTO `storage_cage` VALUES (279, NULL, NULL, 7, 14, 1, 1500.00, NULL, NULL, 1, NULL);
+INSERT INTO `storage_cage` VALUES (280, NULL, NULL, 7, 14, 2, 1500.00, NULL, NULL, 1, NULL);
+INSERT INTO `storage_cage` VALUES (281, NULL, NULL, 7, 15, 1, 1500.00, NULL, NULL, 1, NULL);
+INSERT INTO `storage_cage` VALUES (282, NULL, NULL, 7, 15, 2, 1500.00, NULL, NULL, 1, NULL);
+INSERT INTO `storage_cage` VALUES (283, NULL, NULL, 7, 16, 1, 1500.00, NULL, NULL, 1, NULL);
+INSERT INTO `storage_cage` VALUES (284, NULL, NULL, 7, 16, 2, 1500.00, NULL, NULL, 1, NULL);
+INSERT INTO `storage_cage` VALUES (285, NULL, NULL, 7, 17, 1, 1500.00, NULL, NULL, 1, NULL);
+INSERT INTO `storage_cage` VALUES (286, NULL, NULL, 7, 17, 2, 1500.00, NULL, NULL, 1, NULL);
+INSERT INTO `storage_cage` VALUES (287, NULL, NULL, 7, 18, 1, 1500.00, NULL, NULL, 1, NULL);
+INSERT INTO `storage_cage` VALUES (288, NULL, NULL, 7, 18, 2, 1500.00, NULL, NULL, 1, NULL);
+INSERT INTO `storage_cage` VALUES (289, NULL, NULL, 7, 19, 1, 1500.00, NULL, NULL, 1, NULL);
+INSERT INTO `storage_cage` VALUES (290, NULL, NULL, 7, 19, 2, 1500.00, NULL, NULL, 1, NULL);
+INSERT INTO `storage_cage` VALUES (291, NULL, NULL, 7, 20, 1, 1500.00, NULL, NULL, 1, NULL);
+INSERT INTO `storage_cage` VALUES (292, NULL, NULL, 7, 20, 2, 1500.00, NULL, NULL, 1, NULL);
+INSERT INTO `storage_cage` VALUES (293, NULL, NULL, 7, 21, 1, 1500.00, NULL, NULL, 1, NULL);
+INSERT INTO `storage_cage` VALUES (294, NULL, NULL, 7, 21, 2, 1500.00, NULL, NULL, 1, NULL);
+INSERT INTO `storage_cage` VALUES (295, NULL, NULL, 8, 1, 1, 1500.00, NULL, NULL, 0, NULL);
+INSERT INTO `storage_cage` VALUES (296, NULL, NULL, 8, 1, 2, 1500.00, NULL, NULL, 0, NULL);
+INSERT INTO `storage_cage` VALUES (297, NULL, NULL, 8, 2, 1, 1788.00, NULL, NULL, 0, NULL);
+INSERT INTO `storage_cage` VALUES (298, NULL, NULL, 8, 2, 2, 1788.00, NULL, NULL, 0, NULL);
+INSERT INTO `storage_cage` VALUES (299, NULL, NULL, 8, 3, 1, 1788.00, NULL, NULL, 1, NULL);
+INSERT INTO `storage_cage` VALUES (300, NULL, NULL, 8, 3, 2, 1788.00, NULL, NULL, 1, NULL);
+INSERT INTO `storage_cage` VALUES (301, NULL, NULL, 8, 4, 1, 1500.00, NULL, NULL, 1, NULL);
+INSERT INTO `storage_cage` VALUES (302, NULL, NULL, 8, 4, 2, 1500.00, NULL, NULL, 1, NULL);
+INSERT INTO `storage_cage` VALUES (303, NULL, NULL, 8, 5, 1, 1500.00, NULL, NULL, 1, NULL);
+INSERT INTO `storage_cage` VALUES (304, NULL, NULL, 8, 5, 2, 1500.00, NULL, NULL, 1, NULL);
+INSERT INTO `storage_cage` VALUES (305, NULL, NULL, 8, 6, 1, 1500.00, NULL, NULL, 1, NULL);
+INSERT INTO `storage_cage` VALUES (306, NULL, NULL, 8, 6, 2, 1500.00, NULL, NULL, 1, NULL);
+INSERT INTO `storage_cage` VALUES (307, NULL, NULL, 8, 7, 1, 1500.00, NULL, NULL, 1, NULL);
+INSERT INTO `storage_cage` VALUES (308, NULL, NULL, 8, 7, 2, 1500.00, NULL, NULL, 1, NULL);
+INSERT INTO `storage_cage` VALUES (309, NULL, NULL, 8, 8, 1, 1500.00, NULL, NULL, 1, NULL);
+INSERT INTO `storage_cage` VALUES (310, NULL, NULL, 8, 8, 2, 1500.00, NULL, NULL, 1, NULL);
+INSERT INTO `storage_cage` VALUES (311, NULL, NULL, 8, 9, 1, 1500.00, NULL, NULL, 1, NULL);
+INSERT INTO `storage_cage` VALUES (312, NULL, NULL, 8, 9, 2, 1500.00, NULL, NULL, 1, NULL);
+INSERT INTO `storage_cage` VALUES (313, NULL, NULL, 8, 10, 1, 1500.00, NULL, NULL, 1, NULL);
+INSERT INTO `storage_cage` VALUES (314, NULL, NULL, 8, 10, 2, 1500.00, NULL, NULL, 1, NULL);
+INSERT INTO `storage_cage` VALUES (315, NULL, NULL, 8, 11, 1, 1500.00, NULL, NULL, 1, NULL);
+INSERT INTO `storage_cage` VALUES (316, NULL, NULL, 8, 11, 2, 1500.00, NULL, NULL, 1, NULL);
+INSERT INTO `storage_cage` VALUES (317, NULL, NULL, 8, 12, 1, 1500.00, NULL, NULL, 1, NULL);
+INSERT INTO `storage_cage` VALUES (318, NULL, NULL, 8, 12, 2, 1500.00, NULL, NULL, 1, NULL);
+INSERT INTO `storage_cage` VALUES (319, NULL, NULL, 8, 13, 1, 1500.00, NULL, NULL, 1, NULL);
+INSERT INTO `storage_cage` VALUES (320, NULL, NULL, 8, 13, 2, 1500.00, NULL, NULL, 1, NULL);
+INSERT INTO `storage_cage` VALUES (321, NULL, NULL, 8, 14, 1, 1500.00, NULL, NULL, 1, NULL);
+INSERT INTO `storage_cage` VALUES (322, NULL, NULL, 8, 14, 2, 1500.00, NULL, NULL, 1, NULL);
+INSERT INTO `storage_cage` VALUES (323, NULL, NULL, 8, 15, 1, 1500.00, NULL, NULL, 1, NULL);
+INSERT INTO `storage_cage` VALUES (324, NULL, NULL, 8, 15, 2, 1500.00, NULL, NULL, 1, NULL);
+INSERT INTO `storage_cage` VALUES (325, NULL, NULL, 8, 16, 1, 1500.00, NULL, NULL, 1, NULL);
+INSERT INTO `storage_cage` VALUES (326, NULL, NULL, 8, 16, 2, 1500.00, NULL, NULL, 1, NULL);
+INSERT INTO `storage_cage` VALUES (327, NULL, NULL, 8, 17, 1, 1500.00, NULL, NULL, 1, NULL);
+INSERT INTO `storage_cage` VALUES (328, NULL, NULL, 8, 17, 2, 1500.00, NULL, NULL, 1, NULL);
+INSERT INTO `storage_cage` VALUES (329, NULL, NULL, 8, 18, 1, 1788.00, NULL, NULL, 1, NULL);
+INSERT INTO `storage_cage` VALUES (330, NULL, NULL, 8, 18, 2, 1788.00, NULL, NULL, 1, NULL);
+INSERT INTO `storage_cage` VALUES (331, NULL, NULL, 8, 19, 1, 1788.00, NULL, NULL, 1, NULL);
+INSERT INTO `storage_cage` VALUES (332, NULL, NULL, 8, 19, 2, 1788.00, NULL, NULL, 1, NULL);
+INSERT INTO `storage_cage` VALUES (333, NULL, NULL, 8, 20, 1, 1788.00, NULL, NULL, 1, NULL);
+INSERT INTO `storage_cage` VALUES (334, NULL, NULL, 8, 20, 2, 1788.00, NULL, NULL, 1, NULL);
+INSERT INTO `storage_cage` VALUES (335, NULL, NULL, 8, 21, 1, 1788.00, NULL, NULL, 1, NULL);
+INSERT INTO `storage_cage` VALUES (336, NULL, NULL, 8, 21, 2, 1500.00, NULL, NULL, 1, NULL);
+INSERT INTO `storage_cage` VALUES (337, NULL, NULL, 9, 1, 1, 1500.00, NULL, NULL, 0, NULL);
+INSERT INTO `storage_cage` VALUES (338, NULL, NULL, 9, 1, 2, 1500.00, NULL, NULL, 0, NULL);
+INSERT INTO `storage_cage` VALUES (339, NULL, NULL, 9, 2, 1, 1500.00, NULL, NULL, 0, NULL);
+INSERT INTO `storage_cage` VALUES (340, NULL, NULL, 9, 2, 2, 1500.00, NULL, NULL, 0, NULL);
+INSERT INTO `storage_cage` VALUES (341, NULL, NULL, 9, 3, 1, 1500.00, NULL, NULL, 0, NULL);
+INSERT INTO `storage_cage` VALUES (342, NULL, NULL, 9, 3, 2, 1500.00, NULL, NULL, 1, NULL);
+INSERT INTO `storage_cage` VALUES (343, NULL, NULL, 9, 4, 1, 1500.00, NULL, NULL, 1, NULL);
+INSERT INTO `storage_cage` VALUES (344, NULL, NULL, 9, 4, 2, 1500.00, NULL, NULL, 1, NULL);
+INSERT INTO `storage_cage` VALUES (345, NULL, NULL, 9, 5, 1, 1500.00, NULL, NULL, 1, NULL);
+INSERT INTO `storage_cage` VALUES (346, NULL, NULL, 9, 5, 2, 1500.00, NULL, NULL, 1, NULL);
+INSERT INTO `storage_cage` VALUES (347, NULL, NULL, 9, 6, 1, 1500.00, NULL, NULL, 1, NULL);
+INSERT INTO `storage_cage` VALUES (348, NULL, NULL, 9, 6, 2, 1500.00, NULL, NULL, 1, NULL);
+INSERT INTO `storage_cage` VALUES (349, NULL, NULL, 9, 7, 1, 1500.00, NULL, NULL, 1, NULL);
+INSERT INTO `storage_cage` VALUES (350, NULL, NULL, 9, 7, 2, 1500.00, NULL, NULL, 1, NULL);
+INSERT INTO `storage_cage` VALUES (351, NULL, NULL, 9, 8, 1, 1500.00, NULL, NULL, 1, NULL);
+INSERT INTO `storage_cage` VALUES (352, NULL, NULL, 9, 8, 2, 1500.00, NULL, NULL, 1, NULL);
+INSERT INTO `storage_cage` VALUES (353, NULL, NULL, 9, 9, 1, 1500.00, NULL, NULL, 1, NULL);
+INSERT INTO `storage_cage` VALUES (354, NULL, NULL, 9, 9, 2, 1500.00, NULL, NULL, 1, NULL);
+INSERT INTO `storage_cage` VALUES (355, NULL, NULL, 9, 10, 1, 1500.00, NULL, NULL, 1, NULL);
+INSERT INTO `storage_cage` VALUES (356, NULL, NULL, 9, 10, 2, 1500.00, NULL, NULL, 1, NULL);
+INSERT INTO `storage_cage` VALUES (357, NULL, NULL, 9, 11, 1, 1500.00, NULL, NULL, 1, NULL);
+INSERT INTO `storage_cage` VALUES (358, NULL, NULL, 9, 11, 2, 1500.00, NULL, NULL, 1, NULL);
+INSERT INTO `storage_cage` VALUES (359, NULL, NULL, 9, 12, 1, 1500.00, NULL, NULL, 1, NULL);
+INSERT INTO `storage_cage` VALUES (360, NULL, NULL, 9, 12, 2, 1500.00, NULL, NULL, 1, NULL);
+INSERT INTO `storage_cage` VALUES (361, NULL, NULL, 9, 13, 1, 1500.00, NULL, NULL, 1, NULL);
+INSERT INTO `storage_cage` VALUES (362, NULL, NULL, 9, 13, 2, 1500.00, NULL, NULL, 1, NULL);
+INSERT INTO `storage_cage` VALUES (363, NULL, NULL, 9, 14, 1, 1500.00, NULL, NULL, 1, NULL);
+INSERT INTO `storage_cage` VALUES (364, NULL, NULL, 9, 14, 2, 1500.00, NULL, NULL, 1, NULL);
+INSERT INTO `storage_cage` VALUES (365, NULL, NULL, 9, 15, 1, 1500.00, NULL, NULL, 1, NULL);
+INSERT INTO `storage_cage` VALUES (366, NULL, NULL, 9, 15, 2, 1500.00, NULL, NULL, 1, NULL);
+INSERT INTO `storage_cage` VALUES (367, NULL, NULL, 9, 16, 1, 1500.00, NULL, NULL, 1, NULL);
+INSERT INTO `storage_cage` VALUES (368, NULL, NULL, 9, 16, 2, 1500.00, NULL, NULL, 1, NULL);
+INSERT INTO `storage_cage` VALUES (369, NULL, NULL, 9, 17, 1, 1500.00, NULL, NULL, 1, NULL);
+INSERT INTO `storage_cage` VALUES (370, NULL, NULL, 9, 17, 2, 1500.00, NULL, NULL, 1, NULL);
+INSERT INTO `storage_cage` VALUES (371, NULL, NULL, 9, 18, 1, 1500.00, NULL, NULL, 1, NULL);
+INSERT INTO `storage_cage` VALUES (372, NULL, NULL, 9, 18, 2, 1788.00, NULL, NULL, 1, NULL);
+INSERT INTO `storage_cage` VALUES (373, NULL, NULL, 9, 19, 1, 1788.00, NULL, NULL, 1, NULL);
+INSERT INTO `storage_cage` VALUES (374, NULL, NULL, 9, 19, 2, 1788.00, NULL, NULL, 1, NULL);
+INSERT INTO `storage_cage` VALUES (375, NULL, NULL, 9, 20, 1, 1788.00, NULL, NULL, 1, NULL);
+INSERT INTO `storage_cage` VALUES (376, NULL, NULL, 9, 20, 2, 1788.00, NULL, NULL, 1, NULL);
+INSERT INTO `storage_cage` VALUES (377, NULL, NULL, 9, 21, 1, 1500.00, NULL, NULL, 1, NULL);
+INSERT INTO `storage_cage` VALUES (378, NULL, NULL, 9, 21, 2, 1500.00, NULL, NULL, 1, NULL);
+INSERT INTO `storage_cage` VALUES (379, NULL, NULL, 10, 1, 1, 1500.00, NULL, NULL, 1, NULL);
+INSERT INTO `storage_cage` VALUES (380, NULL, NULL, 10, 1, 2, 1500.00, NULL, NULL, 1, NULL);
+INSERT INTO `storage_cage` VALUES (381, NULL, NULL, 10, 2, 1, 1500.00, NULL, NULL, 1, NULL);
+INSERT INTO `storage_cage` VALUES (382, NULL, NULL, 10, 2, 2, 1500.00, NULL, NULL, 1, NULL);
+INSERT INTO `storage_cage` VALUES (383, NULL, NULL, 10, 3, 1, 1500.00, NULL, NULL, 1, NULL);
+INSERT INTO `storage_cage` VALUES (384, NULL, NULL, 10, 3, 2, 1500.00, NULL, NULL, 1, NULL);
+INSERT INTO `storage_cage` VALUES (385, NULL, NULL, 10, 4, 1, 1500.00, NULL, NULL, 1, NULL);
+INSERT INTO `storage_cage` VALUES (386, NULL, NULL, 10, 4, 2, 1500.00, NULL, NULL, 1, NULL);
+INSERT INTO `storage_cage` VALUES (387, NULL, NULL, 10, 5, 1, 1500.00, NULL, NULL, 1, NULL);
+INSERT INTO `storage_cage` VALUES (388, NULL, NULL, 10, 5, 2, 1500.00, NULL, NULL, 1, NULL);
+INSERT INTO `storage_cage` VALUES (389, NULL, NULL, 10, 6, 1, 1500.00, NULL, NULL, 1, NULL);
+INSERT INTO `storage_cage` VALUES (390, NULL, NULL, 10, 6, 2, 1500.00, NULL, NULL, 1, NULL);
+INSERT INTO `storage_cage` VALUES (391, NULL, NULL, 10, 7, 1, 1500.00, NULL, NULL, 1, NULL);
+INSERT INTO `storage_cage` VALUES (392, NULL, NULL, 10, 7, 2, 1500.00, NULL, NULL, 1, NULL);
+INSERT INTO `storage_cage` VALUES (393, NULL, NULL, 10, 8, 1, 1500.00, NULL, NULL, 1, NULL);
+INSERT INTO `storage_cage` VALUES (394, NULL, NULL, 10, 8, 2, 1500.00, NULL, NULL, 1, NULL);
+INSERT INTO `storage_cage` VALUES (395, NULL, NULL, 10, 9, 1, 1500.00, NULL, NULL, 1, NULL);
+INSERT INTO `storage_cage` VALUES (396, NULL, NULL, 10, 9, 2, 1500.00, NULL, NULL, 1, NULL);
+INSERT INTO `storage_cage` VALUES (397, NULL, NULL, 10, 10, 1, 1500.00, NULL, NULL, 1, NULL);
+INSERT INTO `storage_cage` VALUES (398, NULL, NULL, 10, 10, 2, 1500.00, NULL, NULL, 1, NULL);
+INSERT INTO `storage_cage` VALUES (399, NULL, NULL, 10, 11, 1, 1500.00, NULL, NULL, 1, NULL);
+INSERT INTO `storage_cage` VALUES (400, NULL, NULL, 10, 11, 2, 1500.00, NULL, NULL, 1, NULL);
+INSERT INTO `storage_cage` VALUES (401, NULL, NULL, 10, 12, 1, 1500.00, NULL, NULL, 1, NULL);
+INSERT INTO `storage_cage` VALUES (402, NULL, NULL, 10, 12, 2, 1500.00, NULL, NULL, 1, NULL);
+INSERT INTO `storage_cage` VALUES (403, NULL, NULL, 10, 13, 1, 1500.00, NULL, NULL, 1, NULL);
+INSERT INTO `storage_cage` VALUES (404, NULL, NULL, 10, 13, 2, 1500.00, NULL, NULL, 1, NULL);
+INSERT INTO `storage_cage` VALUES (405, NULL, NULL, 10, 14, 1, 1500.00, NULL, NULL, 1, NULL);
+INSERT INTO `storage_cage` VALUES (406, NULL, NULL, 10, 14, 2, 1500.00, NULL, NULL, 1, NULL);
+INSERT INTO `storage_cage` VALUES (407, NULL, NULL, 10, 15, 1, 1500.00, NULL, NULL, 1, NULL);
+INSERT INTO `storage_cage` VALUES (408, NULL, NULL, 10, 15, 2, 1500.00, NULL, NULL, 1, NULL);
+INSERT INTO `storage_cage` VALUES (409, NULL, NULL, 10, 16, 1, 1500.00, NULL, NULL, 1, NULL);
+INSERT INTO `storage_cage` VALUES (410, NULL, NULL, 10, 16, 2, 1500.00, NULL, NULL, 1, NULL);
+INSERT INTO `storage_cage` VALUES (411, NULL, NULL, 10, 17, 1, 1500.00, NULL, NULL, 1, NULL);
+INSERT INTO `storage_cage` VALUES (412, NULL, NULL, 10, 17, 2, 1500.00, NULL, NULL, 1, NULL);
+INSERT INTO `storage_cage` VALUES (413, NULL, NULL, 10, 18, 1, 1500.00, NULL, NULL, 1, NULL);
+INSERT INTO `storage_cage` VALUES (414, NULL, NULL, 10, 18, 2, 1500.00, NULL, NULL, 1, NULL);
+INSERT INTO `storage_cage` VALUES (415, NULL, NULL, 10, 19, 1, 1500.00, NULL, NULL, 1, NULL);
+INSERT INTO `storage_cage` VALUES (416, NULL, NULL, 10, 19, 2, 1500.00, NULL, NULL, 1, NULL);
+INSERT INTO `storage_cage` VALUES (417, NULL, NULL, 10, 20, 1, 1500.00, NULL, NULL, 0, NULL);
+INSERT INTO `storage_cage` VALUES (418, NULL, NULL, 10, 20, 2, 1500.00, NULL, NULL, 0, NULL);
+INSERT INTO `storage_cage` VALUES (419, NULL, NULL, 10, 21, 1, 1500.00, NULL, NULL, 0, NULL);
+INSERT INTO `storage_cage` VALUES (420, NULL, NULL, 10, 21, 2, 1500.00, NULL, NULL, 0, NULL);
 
 -- ----------------------------
 -- Table structure for storage_rack
@@ -739,6 +1283,28 @@
 INSERT INTO `storage_rack` VALUES (491, 210, 1, NULL, NULL, NULL, 2, 10);
 
 -- ----------------------------
+-- Table structure for storage_task
+-- ----------------------------
+DROP TABLE IF EXISTS `storage_task`;
+CREATE TABLE `storage_task`  (
+  `id` int NOT NULL AUTO_INCREMENT COMMENT '搴忓彿',
+  `task_type` int NULL DEFAULT NULL COMMENT '浠诲姟绫诲瀷锛�0锛氳繘鐗囷紝1锛氬嚭鐗囷紝2锛氳皟搴︼級',
+  `task_state` int NULL DEFAULT NULL COMMENT '浠诲姟鐘舵�侊紙0锛氭湭瀹屾垚锛�1锛氬畬鎴愶級',
+  `shelf_rack` int NULL DEFAULT NULL COMMENT '寮�濮嬩綅缃�',
+  `load_rack` int NULL DEFAULT NULL COMMENT '缁撴潫浣嶇疆',
+  `start_time` datetime(0) NULL DEFAULT NULL ON UPDATE CURRENT_TIMESTAMP(0) COMMENT '浠诲姟寮�濮嬫椂闂�',
+  `finsh_time` datetime(0) NULL DEFAULT NULL COMMENT '浠诲姟缁撴潫鏃堕棿',
+  PRIMARY KEY (`id`) USING BTREE
+) ENGINE = InnoDB AUTO_INCREMENT = 4 CHARACTER SET = utf8 COLLATE = utf8_general_ci ROW_FORMAT = DYNAMIC;
+
+-- ----------------------------
+-- Records of storage_task
+-- ----------------------------
+INSERT INTO `storage_task` VALUES (1, 0, 1, 6, 105, '2023-09-07 10:11:47', '2023-08-29 00:00:00');
+INSERT INTO `storage_task` VALUES (2, 1, 1, 7, 99, '2023-09-07 16:53:35', '2023-08-29 00:00:00');
+INSERT INTO `storage_task` VALUES (3, 2, 0, 26, 105, '2023-09-05 16:24:30', '2023-08-29 00:00:00');
+
+-- ----------------------------
 -- Table structure for user
 -- ----------------------------
 DROP TABLE IF EXISTS `user`;
@@ -757,7 +1323,7 @@
   `create_time` datetime(0) NOT NULL DEFAULT CURRENT_TIMESTAMP(0) COMMENT '鍒涘缓鏃堕棿',
   `update_time` datetime(0) NOT NULL DEFAULT CURRENT_TIMESTAMP(0) ON UPDATE CURRENT_TIMESTAMP(0) COMMENT '鏇存柊鏃堕棿',
   PRIMARY KEY (`id`) USING BTREE
-) ENGINE = InnoDB AUTO_INCREMENT = 21 CHARACTER SET = utf8 COLLATE = utf8_general_ci ROW_FORMAT = Dynamic;
+) ENGINE = InnoDB AUTO_INCREMENT = 21 CHARACTER SET = utf8 COLLATE = utf8_general_ci ROW_FORMAT = DYNAMIC;
 
 -- ----------------------------
 -- Records of user
@@ -765,7 +1331,6 @@
 INSERT INTO `user` VALUES (1, 0, '', 0, 1, 'admin', 'b2f0c414a5ffb6944c424bc18ae3a8a0', NULL, NULL, NULL, 1, '2023-08-25 08:58:58', '2023-09-05 16:12:28');
 INSERT INTO `user` VALUES (2, 1, '1-', 1, 2, 'user1', '601b99523f82de29f87771d5f95accdc', 'user1@qq.com', NULL, NULL, 1, '2021-11-28 14:31:39', '2021-11-28 15:09:36');
 INSERT INTO `user` VALUES (3, 1, '1-', 1, 2, 'user2', 'f403c87893db29eb71b21905b57bbd0d', 'user2@qq.com', NULL, NULL, 1, '2021-11-28 14:31:39', '2021-11-28 15:09:36');
-INSERT INTO `user` VALUES (8, 1, '1-', 1, 5, 'yyyyy', 'fca7e8e6b2fca165de912bd617c8df3c', '2265557248@qq.com', NULL, NULL, 1, '2023-08-23 20:08:44', '2023-08-23 20:08:44');
 INSERT INTO `user` VALUES (9, 1, '1-', 1, 1, 'yttttttttttt', 'b2f0c414a5ffb6944c424bc18ae3a8a0', '666@qq.com', NULL, NULL, 1, '2023-08-23 20:35:32', '2023-08-23 20:35:32');
 INSERT INTO `user` VALUES (10, 1, '1-', 1, 2, '767655555', '500637c0d48b442a3be6d4fce12e0910', NULL, NULL, NULL, 1, '2023-08-23 20:42:58', '2023-08-23 20:42:58');
 INSERT INTO `user` VALUES (11, 1, '1-', 1, 5, 'uiuyiuy', 'e046c4175152aa3001d2c71c5bc1aee5', '767676767tt@qq.com', NULL, NULL, 1, '2023-08-23 20:43:42', '2023-08-23 20:43:42');
diff --git a/springboot-vue3/src/test/java/com/example/springboot/AuthorityApplicationTests.java b/springboot-vue3/src/test/java/com/example/springboot/AuthorityApplicationTests.java
deleted file mode 100644
index 055634d..0000000
--- a/springboot-vue3/src/test/java/com/example/springboot/AuthorityApplicationTests.java
+++ /dev/null
@@ -1,13 +0,0 @@
-package com.example.springboot;
-
-import org.junit.jupiter.api.Test;
-import org.springframework.boot.test.context.SpringBootTest;
-
-@SpringBootTest
-class AuthorityApplicationTests {
-
-    @Test
-    void contextLoads() {
-    }
-
-}

--
Gitblit v1.8.0