From d56a642531aaf184c1431ae9bb1adee9418cae6c Mon Sep 17 00:00:00 2001
From: 严智鑫 <test>
Date: 星期三, 10 四月 2024 10:06:11 +0800
Subject: [PATCH] 更新

---
 UI-Project/src/views/StockBasicData/stockBasicData.vue                             |   32 
 UI-Project/src/views/Returns/returns.vue                                           |    2 
 CacheGlassModule/src/main/java/com/mes/controller/TidyUpGlassModuleController.java |    2 
 UI-Project/src/lang/i18n.js                                                        |   15 
 UI-Project/src/views/Permissions/permissionslist.vue                               |  419 +++++++++
 src.rar                                                                            |    0 
 UI-Project/src/lang/locales/zh-CN.json                                             |  521 ++++++++++++
 UI-Project/src/views/UnLoadGlass/loadmachineracktwo.vue                            |   13 
 UI-Project/src/views/Caching/caching.vue                                           |   27 
 UI-Project/src/views/UnLoadGlass/loadmachinerack.vue                               |  302 +-----
 UI-Project/src/lang/LanguageMixin.js                                               |   14 
 UI-Project/src/main.js                                                             |    3 
 UI-Project/src/router/index.js                                                     |   27 
 UI-Project/package-lock.json                                                       |   82 +
 UI-Project/package.json                                                            |    1 
 UI-Project/src/lang/locales/en-US.json                                             |  575 +++++++++++++
 UI-Project/src/views/User/userlist.vue                                             |  461 ++++++++++
 17 files changed, 2,266 insertions(+), 230 deletions(-)

diff --git a/CacheGlassModule/src/main/java/com/mes/controller/TidyUpGlassModuleController.java b/CacheGlassModule/src/main/java/com/mes/controller/TidyUpGlassModuleController.java
index 8a9e49e..591558a 100644
--- a/CacheGlassModule/src/main/java/com/mes/controller/TidyUpGlassModuleController.java
+++ b/CacheGlassModule/src/main/java/com/mes/controller/TidyUpGlassModuleController.java
@@ -38,7 +38,7 @@
         List<Map> h = ppService.selectCutTerritory(ProcessId);
         return Result.seccess(h);
     }
-
+    
     @GetMapping("/CurrentCutTerritory") // 璇嗗埆鏄剧ず  褰撳墠鐗堝浘 
     @ResponseBody
     public Result CurrentCutTerritory() {
diff --git a/UI-Project/package-lock.json b/UI-Project/package-lock.json
index 4b5e2c0..282cdfa 100644
--- a/UI-Project/package-lock.json
+++ b/UI-Project/package-lock.json
@@ -18,6 +18,7 @@
         "sortablejs": "^1.15.1",
         "sweetalert2": "^11.10.7",
         "vue": "^3.3.4",
+        "vue-i18n": "^9.11.0",
         "vue-router": "^4.2.4",
         "vxe-table": "^4.5.15",
         "xe-utils": "^3.5.14",
@@ -459,6 +460,38 @@
       "version": "0.1.6",
       "resolved": "https://registry.npmjs.org/@floating-ui/utils/-/utils-0.1.6.tgz",
       "integrity": "sha512-OfX7E2oUDYxtBvsuS4e/jSn4Q9Qb6DzgeYtsAdkPZ47znpoNsMgZw0+tVijiv3uGNR6dgNlty6r9rzIzHjtd/A=="
+    },
+    "node_modules/@intlify/core-base": {
+      "version": "9.11.0",
+      "resolved": "https://registry.npmmirror.com/@intlify/core-base/-/core-base-9.11.0.tgz",
+      "integrity": "sha512-cveOqAstjLZIiyatcP/HrzrQ87cZI8ScPQna3yvoM8zjcjcIRK1MRvmxUNlPdg0rTNJMZw7rixPVM58O5aHVPA==",
+      "dependencies": {
+        "@intlify/message-compiler": "9.11.0",
+        "@intlify/shared": "9.11.0"
+      },
+      "engines": {
+        "node": ">= 16"
+      }
+    },
+    "node_modules/@intlify/message-compiler": {
+      "version": "9.11.0",
+      "resolved": "https://registry.npmmirror.com/@intlify/message-compiler/-/message-compiler-9.11.0.tgz",
+      "integrity": "sha512-x31Gl7cscnoI4UUY1yaIy8e7vVMVW1VVlTXZz4SIHKqoSEUkfmgqK8NAx1e7RcoHEbICR7uyCbud0ZL1s4OGXQ==",
+      "dependencies": {
+        "@intlify/shared": "9.11.0",
+        "source-map-js": "^1.0.2"
+      },
+      "engines": {
+        "node": ">= 16"
+      }
+    },
+    "node_modules/@intlify/shared": {
+      "version": "9.11.0",
+      "resolved": "https://registry.npmmirror.com/@intlify/shared/-/shared-9.11.0.tgz",
+      "integrity": "sha512-KHSNgi7sRjmSm7aD8QH8WFt9VfKaekJuJ473opbJlkGY3EDnDUU8ikIhG8PbasQbgNvbY3m3tWNGqk2omIdwMA==",
+      "engines": {
+        "node": ">= 16"
+      }
     },
     "node_modules/@jridgewell/sourcemap-codec": {
       "version": "1.4.15",
@@ -1621,6 +1654,22 @@
         "@vue/shared": "3.3.4"
       }
     },
+    "node_modules/vue-i18n": {
+      "version": "9.11.0",
+      "resolved": "https://registry.npmmirror.com/vue-i18n/-/vue-i18n-9.11.0.tgz",
+      "integrity": "sha512-vU4gY6lu8Pdfs9BgKGiDAJmFDf88cceR47KcSB0VW4xJzUrXR/7qwqM7A8dQ2nedhoIDxoOm5Ro4pFd2KvJqbA==",
+      "dependencies": {
+        "@intlify/core-base": "9.11.0",
+        "@intlify/shared": "9.11.0",
+        "@vue/devtools-api": "^6.5.0"
+      },
+      "engines": {
+        "node": ">= 16"
+      },
+      "peerDependencies": {
+        "vue": "^3.0.0"
+      }
+    },
     "node_modules/vue-router": {
       "version": "4.2.5",
       "resolved": "https://registry.npmjs.org/vue-router/-/vue-router-4.2.5.tgz",
@@ -1915,6 +1964,29 @@
       "version": "0.1.6",
       "resolved": "https://registry.npmjs.org/@floating-ui/utils/-/utils-0.1.6.tgz",
       "integrity": "sha512-OfX7E2oUDYxtBvsuS4e/jSn4Q9Qb6DzgeYtsAdkPZ47znpoNsMgZw0+tVijiv3uGNR6dgNlty6r9rzIzHjtd/A=="
+    },
+    "@intlify/core-base": {
+      "version": "9.11.0",
+      "resolved": "https://registry.npmmirror.com/@intlify/core-base/-/core-base-9.11.0.tgz",
+      "integrity": "sha512-cveOqAstjLZIiyatcP/HrzrQ87cZI8ScPQna3yvoM8zjcjcIRK1MRvmxUNlPdg0rTNJMZw7rixPVM58O5aHVPA==",
+      "requires": {
+        "@intlify/message-compiler": "9.11.0",
+        "@intlify/shared": "9.11.0"
+      }
+    },
+    "@intlify/message-compiler": {
+      "version": "9.11.0",
+      "resolved": "https://registry.npmmirror.com/@intlify/message-compiler/-/message-compiler-9.11.0.tgz",
+      "integrity": "sha512-x31Gl7cscnoI4UUY1yaIy8e7vVMVW1VVlTXZz4SIHKqoSEUkfmgqK8NAx1e7RcoHEbICR7uyCbud0ZL1s4OGXQ==",
+      "requires": {
+        "@intlify/shared": "9.11.0",
+        "source-map-js": "^1.0.2"
+      }
+    },
+    "@intlify/shared": {
+      "version": "9.11.0",
+      "resolved": "https://registry.npmmirror.com/@intlify/shared/-/shared-9.11.0.tgz",
+      "integrity": "sha512-KHSNgi7sRjmSm7aD8QH8WFt9VfKaekJuJ473opbJlkGY3EDnDUU8ikIhG8PbasQbgNvbY3m3tWNGqk2omIdwMA=="
     },
     "@jridgewell/sourcemap-codec": {
       "version": "1.4.15",
@@ -2704,6 +2776,16 @@
         "@vue/shared": "3.3.4"
       }
     },
+    "vue-i18n": {
+      "version": "9.11.0",
+      "resolved": "https://registry.npmmirror.com/vue-i18n/-/vue-i18n-9.11.0.tgz",
+      "integrity": "sha512-vU4gY6lu8Pdfs9BgKGiDAJmFDf88cceR47KcSB0VW4xJzUrXR/7qwqM7A8dQ2nedhoIDxoOm5Ro4pFd2KvJqbA==",
+      "requires": {
+        "@intlify/core-base": "9.11.0",
+        "@intlify/shared": "9.11.0",
+        "@vue/devtools-api": "^6.5.0"
+      }
+    },
     "vue-router": {
       "version": "4.2.5",
       "resolved": "https://registry.npmjs.org/vue-router/-/vue-router-4.2.5.tgz",
diff --git a/UI-Project/package.json b/UI-Project/package.json
index f41d6b8..afef130 100644
--- a/UI-Project/package.json
+++ b/UI-Project/package.json
@@ -18,6 +18,7 @@
     "sortablejs": "^1.15.1",
     "sweetalert2": "^11.10.7",
     "vue": "^3.3.4",
+    "vue-i18n": "^9.11.0",
     "vue-router": "^4.2.4",
     "vxe-table": "^4.5.15",
     "xe-utils": "^3.5.14",
diff --git a/UI-Project/src/lang/LanguageMixin.js b/UI-Project/src/lang/LanguageMixin.js
new file mode 100644
index 0000000..39a6488
--- /dev/null
+++ b/UI-Project/src/lang/LanguageMixin.js
@@ -0,0 +1,14 @@
+export default {
+    created() {
+      const localStorageLang = localStorage.getItem('preferredLanguage');
+      if (localStorageLang) {
+        this.$i18n.locale = localStorageLang;
+      }
+    },
+    methods: {
+      switchLanguage(lang) {
+        this.$i18n.locale = lang;
+        localStorage.setItem('preferredLanguage', lang);
+      }
+    }
+  }
\ No newline at end of file
diff --git a/UI-Project/src/lang/i18n.js b/UI-Project/src/lang/i18n.js
new file mode 100644
index 0000000..c582ee5
--- /dev/null
+++ b/UI-Project/src/lang/i18n.js
@@ -0,0 +1,15 @@
+// i18n.js
+
+import { createI18n } from 'vue-i18n'
+import zhCn from './lang/locales/zh-CN.json'
+import enUs from './lang/locales/en-US.json'
+
+const i18n = createI18n({
+  locale: 'zh-CN', // 璁剧疆榛樿璇█
+  messages: {
+    'zh-CN': zhCn,
+    'en-US': enUs
+  }
+})
+
+export default i18n
diff --git a/UI-Project/src/lang/locales/en-US.json b/UI-Project/src/lang/locales/en-US.json
new file mode 100644
index 0000000..dfae361
--- /dev/null
+++ b/UI-Project/src/lang/locales/en-US.json
@@ -0,0 +1,575 @@
+{
+  "Clear":"Clear",
+  "ip":"192.168.10.21",
+  "systemTitle": "Login System",
+  "usernamePlaceholder": "Please enter username",
+  "passwordPlaceholder": "Please enter password",
+  "loginButton": "Login",
+  "registerButton": "Register",
+  "resetButton": "Reset",
+  "usernameRequired": "Please enter username",
+  "usernameLength": "Username must be between 5 and 15 characters",
+  "passwordRequired": "Please enter password",
+  "passwordLength": "Password must be between 5 and 15 characters",
+  "loginSuccess": "Login successful",
+  "langBtnCN": "Chinese",
+  "langBtnEN": "English",
+  "langHome": "Home",
+  "langUserManagement": "User Management",
+  "langUserList": "User List",
+  "langUsernamePlaceholder": "Please enter username",
+  "langEmailPlaceholder": "Please enter email",
+  "langSearch": "Search",
+  "langAddUser": "Add User",
+  "langUsername": "Username",
+  "langEmail": "Email",
+  "langCreateTime": "Create Time",
+  "langDisabled": "Disabled",
+  "langAction": "Action",
+  "langEdit": "Edit",
+  "langDelete": "Delete",
+  "langAddUserTitle": "Add User",
+  "langPassword": "Password",
+  "langState": "State",
+  "langSelect": "Please select",
+  "langCancel": "Cancel",
+  "langConfirm": "Confirm",
+  "langEditUserTitle": "Edit User",
+  "northglassMESsystem": "NorthGlassMesSystem",
+  "exit": "exit",
+  "changePassword": "changePassword",
+  "resetPassword": "resetPassword",
+  "Old password":"Old password",
+  "New password":"New password",
+  "Confirm password":"Confirm password",
+  "home": "Home",
+  "role": "role",
+  "langRoleManagement": "Role Management",
+  "langRoleList": "Role List",
+  "langEnterRoleName": "Please enter role name",
+  "langAddRole": "Add Role",
+  "langName": "Name",
+  "langIsValid": "Is Valid",
+  "langOperation": "Operation",
+  "langPleaseSelect": "Please select",
+  "langValid": "Valid",
+  "langInvalid": "Invalid",
+  "langAddRoleSuccess": "Add role successfully",
+  "langEnterName": "Please enter name",
+  "langLengthBetween": "Length should be between",
+  "langAnd": "and",
+  "langCharacters": "characters",
+  "langEnterState": "Please enter state",
+  "langUpdateState": "Update state successfully",
+  "langEditRole": "Edit Role",
+  "langEditRoleSuccess": "Edit role successfully",
+  "langDeleteRoleConfirm": "Are you sure you want to delete this role?",
+  "langPrompt": "Prompt",
+  "langDeleteRoleSuccess": "Delete role successfully",
+  "langCancelDelete": "Cancelled deleting",
+  "langRoleName": "langRoleName",
+  "updateSuccessMessage": "updateSuccessMessage",
+  "paginationTotal": "Total {total}",
+  "paginationSizes": "Items per page",
+  "paginationPrev": "Previous",
+  "paginationPager": "{currentPage}/{pageCount}",
+  "paginationNext": "Next",
+  "paginationJumper": "Jump to",
+  "breadcrumb": {
+    "home": "Home",
+    "permissionManagement": "Permission Management",
+    "permissionList": "Permission List"
+  },
+  "search": {
+    "placeholder": "Enter keywords"
+  },
+  "button": {
+    "addPermission": "Add Permission",
+    "cancel": "Cancel",
+    "confirm": "Confirm"
+  },
+  "table": {
+    "role": "Role",
+    "permissionDescription": "Permission Description",
+    "permissionValue": "Permission Value",
+    "createTime": "Create Time",
+    "isActive": "Is Active",
+    "operation": "Operation"
+  },
+  "tooltip": {
+    "edit": "Edit",
+    "delete": "Delete"
+  },
+  "dialog": {
+    "addPermission": "Add Permission",
+    "editPermission": "Edit Permission"
+  },
+  "form": {
+    "role": "Role",
+    "select": "Please Select",
+    "permission": "Permission",
+    "isActive": "Is Active"
+  },
+  "鎿嶄綔": "Operation",
+  "鏈夋晥": "Valid",
+  "鏃犳晥": "Invalid",
+  "璇疯緭鍏ュ悕绉�": "Please enter a name",
+  "璇疯緭鍏ヨ鑹�": "Please enter a role",
+  "璇疯緭鍏ユ潈闄愭弿杩�":"Please enter a permission description",
+  "闀垮害鍦� 2 鍒� 15 涓瓧绗�": "Length between 2 and 15 characters",
+  "璇疯緭鍏ョ姸鎬�": "Please enter the status",
+  "娣诲姞瑙掕壊": "Add Role",
+  "淇敼瑙掕壊": "Edit Role",
+  "鍒犻櫎瑙掕壊": "Delete Role",
+  "姝ゆ搷浣滃皢姘镐箙鍒犻櫎璇ヨ鑹�, 鏄惁缁х画?": "This operation will permanently delete the role. Continue?",
+  "鎻愮ず": "Reminder",
+  "纭畾": "Confirm",
+  "鍙栨秷": "Cancel",
+  "娣诲姞瑙掕壊鎴愬姛": "Successfully added role",
+  "鏇存柊鐘舵�佹垚鍔�": "Successfully updated status",
+  "淇敼瑙掕壊鎴愬姛": "Successfully modified role",
+  "鍒犻櫎瑙掕壊鎴愬姛": "Successfully deleted role",
+  "translation": {
+    "D01 VFD error": "D01 VFD error",
+    "D02 VFD error": "D02 VFD error",
+    "D03 VFD error": "D03 VFD erro",
+    "D04 VFD error": "D04 VFD error",
+    "D05 VFD error": "D05 VFD error",
+    "D06 VFD error": "D06 VFD error",
+    "B01 VFD error": "B01 VFD error",
+    "B02 VFD error": "B02 VFD error",
+    "A01 VFD error": "A01 VFD error",
+    "A02 VFD error": "A02 VFD error",
+    "A01 servo turn error": "A01 servo turn error",
+    "A02 servo turn error": "A02 servo turn error",
+    "A01 servo travel error": "A01 servo travel error",
+    "A02 servo travel error": "A02 servo travel error",
+    "B01 servo travel error": "B01 servo travel error",
+    "B02 servo travel error": "B02 servo travel error",
+    "D01 DEC error": "D01 DEC error",
+    "D01 pos error": "D01 pos error",
+    "D02 DEC error": "D02 DEC error",
+    "D02 pos error": "D02 pos error",
+    "D03 DEC error": "D03 DEC error",
+    "D03 pos error": "D03 pos error",
+    "D04 DEC error": "D04 DEC error",
+    "D04 pos error": "D04 pos error",
+    "D05 DEC error": "D05 DEC error",
+    "D05 pos error": "D05 pos error",
+    "D06 DEC error": "D06 DEC error",
+    "D06 pos error": "D06 pos error",
+    "A01 DEC error": "A01 DEC error",
+    "A01 pos error": "A01 pos error",
+    "A02 DEC error": "A02 DEC error",
+    "A02 pos error": "A02 pos error",
+    "B01 IN DEC error": "B01 IN DEC error",
+    "B01 IN pos error": "B01 IN pos error",
+    "B01 OUT DEC error": "B01 OUT DEC error",
+    "B01 OUT pos error": "B01 OUT pos error",
+    "B02 IN DEC error": "B02 IN DEC error",
+    "B02 IN pos error": "B02 IN pos error",
+    "B02 OUT DEC error": "B02 OUT DEC error",
+    "B02 OUT pos error": "B02 OUT pos error"
+  },
+  "Electrical": "Electrical",
+  "Parameter": "Parameter",
+  "Action": "Action",
+  "Sign": "Sign",
+  "State": "State",
+  "Alarm": "Alarm",
+  "Distribute": "Distribute",
+  "Search": "Search",
+  "dvstate": {
+    "鑷姩": "automatic",
+    "鎵嬪姩": "manual"
+  },
+  "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",
+  "today": "today",
+  "yesterday": "yesterday",
+  "week": "week",
+  "shijian": "date",
+  "Pick a day": "Pick a day",
+  "alarmid": "id",
+  "alacontent": "content",
+  "time-on": "time-on",
+  "End-Time": "End-Time",
+  "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 barcode":"Enter the glass barcode",
+  "Manually Infeed Glass":"Manually Infeed 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",
+  "Operate":"Operate",
+  "Terminate Task":"Terminate Task",
+  "cancel":"cancel",
+  "confirm":"confirm",
+  "Number":"Number",
+  "Outfeed glass barcode":"Outfeed glass barcode",
+  "Infeed glass barcode":"Infeed glass barcode",
+  "Cage No":"Cage No",
+  "Slot No":"Slot No",
+  "Dim":"Dim",
+  "id":"id",
+  "content":"content",
+  "timeon":"timeon",
+  "endTime":"endTime",
+
+  "The Side":"The Side",
+  "Barcode":"Barcode",
+  "Order No":"Order No",
+  "List No":"List No",
+  "Box No":"Box No",
+  "Delete":"Delete",
+  "Out":"Out",
+
+  "Operation successful":"Operation successful",
+  "Operation canceled":"Operation canceled",
+  "There is no glass for this order":"There is no glass for this order",
+  "There are currently tasks":"There are currently tasks",
+  "There is no such glass":"There is no such glass",
+  "There is no such grid":"There is no such grid",
+  "No delete allowed":"No delete allowed",
+  "No out allowed":"No out allowed",
+  "Are you sure to perform this operation ?":"Are you sure to perform this operation ?",
+  "Yes":"Yes",
+  
+
+  "No":"No",
+  "Please enter the password":"Please enter the password",
+  "Password error":"Password error",
+  "DataBase Connection failed":"DataBase Connection failed",
+  "Distribute parameters":"Distribute parameters",
+  "The glass size is not within the range":"The glass size is not within the range",
+  "Add":"Add",
+  "Enable":"Enable",
+  "Disable":"Disable",
+  "Usage":"Usage",
+  "Space (Pieces)":"Space (Pieces)",
+  "This glass is already in the cage":"This glass is already in the cage",
+  "Enter the Order No":"Enter the Order No",
+  "OrderInfo":"OrderInfo",
+  "Query":"Query",
+  "permission update":"permission update",
+  "query was successful":"query was successful",
+  "Scan Code Point":"Scan Code Point",
+  "Upper film position":"Upper film position",
+  "Glass Information":"Glass Information",
+  "current Information":"current information",
+  "Modify Information":"Modify information",
+  "Clear Current":"Clear Current",
+  "Confirm":"Confirm",
+  "The glass ID already exists in the loading queue":"The glass ID already exists in the loading queue",
+  "This glass ID already exists in the sorting cage":"This glass ID already exists in the sorting cage",
+  "Outing Queue":"Outing Queue",
+  "Enter the Frame No":"Enter the Frame No",
+  "Frame No":"Frame No",
+  "Glass information corresponding to aluminum frame":"Glass information corresponding to aluminum frame",
+  "In the cage":"In the cage",
+  "Flipped":"Flipped",
+  "In the queue":"In the queue",
+  "Normal":"Normal",
+  "Entering":"Entering",
+  "Outing":"Outing",
+  "Suspend":"Suspend",
+  "Stop":"Stop",
+  "Start":"Start",
+  "Sequence":"Sequence",
+  "Position":"Position",
+  "Top":"Top",
+  "Up":"Up",
+  "Down":"Down",
+  "Unable to find the placement method of the aluminum frame":"Unable to find the placement method of the aluminum frame",
+  "Unable to find whether the aluminum frame is flipped or not":"Unable to find whether the aluminum frame is flipped or not",
+  "You do not have this permission":"You do not have this permission",
+  "This glass is already in the Queue":"This glass is already in the Queue",
+  "Complete":"Complete",
+  "Allow":"Allow",
+  "Not Allow":"Not Allow",
+  "Completed":"Completed",
+  "Waiting":"Waiting",
+  "Deleted":"Deleted",
+  "Glass State":"Glass State",
+  "Absent":"Absent",
+  "Approximately resettable time":"Approximately resettable time",
+  "EXTERIQR OUT AND BYPASS TO THE LEFT":"EXTERIQR OUT AND BYPASS TO THE LEFT",
+  "EXTERIQR OUT AND BYPASS TO THE RIGHT":"EXTERIQR OUT AND BYPASS TO THE RIGHT",
+  "Complete Task":"Complete Task",
+  "Outed":"Outed",
+  "Queue State":"Queue State",
+  "Sorting State":"Sorting State",
+  "Confirm State":"Confirm State",
+  "Next":"Next",
+  "Current Frame":"Current Frame",
+  "Outside":"Outside",
+  "Inside":"Inside",
+  "Cancel":"Cancel",
+  "Are you sure to clear this barcode ?":"Are you sure to clear this barcode ?",
+  "Terminate Feeding":"Terminate Feeding",
+  "Terminate Outing":"Terminate Outing",
+  "SoftEmergencyStop":"SoftEmergencyStop",
+  "Unable to clear glass ID in automatic mode":"Unable to clear glass ID in automatic mode",
+  "Are you sure you want an emergency stop ?":"Are you sure you want an emergency stop ?",
+  "Current State":"Current State",
+  "Automatic":"Automatic",
+  "Hand Movement":"Hand Movement",
+  "Please enter the correct glassID":"Please enter the correct glassID",
+  "Switch":"Switch",
+  "This frame has glass that is currently outing":"This frame has glass that is currently outing",
+    "ServoManualone": {
+      "A01 鎵�鍦ㄦ牸瀛�": "A01 Current Grid",
+      "鏁伴噺": "Quantity",
+      "杩涚墖ID": "IncomingId",
+      "闀垮害": "Length",
+      "楂樺害": "Height",
+      "鍙栫墖鏍煎瓙": "Pickupgrid address",
+      "瀛樼墖鏍煎瓙": "Storagegrid address",
+      "A01缈昏浆瀹炴椂浣嶇疆": "A01FlipPosition",
+      "A02缈昏浆瀹炴椂浣嶇疆": "A02FlipPosition",
+      "鏁呴殰": "Fault",
+      "澶嶄綅": "Reset",
+      "鏈洖闆�": "NotZero",
+      "鍥為浂": "Home",
+      "鐩爣鏍煎瓙": "Target Grid",
+      "A02 鎵�鍦ㄦ牸瀛�": "A02 Current Grid",
+      "鍙栫墖ID": "PickupId",
+      "A01鍗婅嚜鍔�": "A01 Semi-Auto",
+      "A01鍗婅嚜鍔ㄥ惎鍔�": "A01 Semi-Auto Start",
+      "A02鍗婅嚜鍔�": "A02 Semi-Auto",
+      "A02鍗婅嚜鍔ㄥ惎鍔�": "A02 Semi-Auto Start",
+      "B01 鎵�鍦ㄦ牸瀛�": "B01 Current Grid",
+      "B02 鎵�鍦ㄦ牸瀛�": "B02 Current Grid"
+    
+    },
+    "langParameter1": {
+
+    
+      },
+    
+        "langParameter2": {
+          "D01鎵嬪姩鐘舵��": "D01 Manual Status",
+          "娓呴櫎ID": "Clear ID",
+          "ID": "ID",
+          "A02ID": "A02ID",
+          "B01ID": "B01ID",
+          "B02ID": "B02ID",
+          "D02鎵嬪姩鐘舵��": "D02 Manual Status",
+          "D03鎵嬪姩鐘舵��": "D03 Manual Status",
+          "D04鎵嬪姩鐘舵��": "D04 Manual Status",
+          "D05鎵嬪姩鐘舵��": "D05 Manual Status",
+          "D06鎵嬪姩鐘舵��": "D06 Manual Status",
+          "A01鎵嬪姩鐘舵��": "A01 Manual Status",
+          "ID1": "ID1",
+          "ID2": "ID2",
+          "A02鎵嬪姩鐘舵��": "A02 Manual Status",
+          "B01鎵嬪姩鐘舵��": "B01 Manual Status",
+          "B02鎵嬪姩鐘舵��": "B02 Manual Status",
+          "鎵弿鏋壂鐮佺殑ID": "Scanned ID",
+          "A01褰撳墠鏍煎瓙": "A01 Current Grid",
+          "A02鎵�鍦ㄦ牸瀛�": "A02 Current Grid",
+          "B01鎵�鍦ㄦ牸瀛�": "B01 Current Grid",
+          "B02鎵�鍦ㄦ牸瀛�": "B02 Current Grid",
+          "鎬ュ仠鍚庝腑姝�/缁х画閫夋嫨": "Abort/ResumeTasks",
+          "A01缁堟/缁х画": "A01Abort/ResumeTasks",
+          "A02缁堟/缁х画": "A02Abort/ResumeTasks",
+          "瀛樼墖绛夊緟寤舵椂": "Storage wait delay",
+          "杞�ュ仠": "emgHMI"
+          
+          },
+          "langPositioning1": {
+            "鏍煎瓙闂磋窛": "GridSpacing",
+            "瀛樼墖鎺ョ墖鍦板潃": "StorageReceivingAddress",
+            "鍑虹墖鎺ョ墖鍦板潃": "OutgoingReceivingAddress",
+            "瀛樼墖鏍间綅缃瀹�": "StorageGridPositionSetting",
+            "1#鏍煎湴鍧�": "grid address1# ",
+            "22#鏍煎湴鍧�": "grid address22#",
+            "43#鏍煎湴鍧�": "grid address43#",
+            "64#鏍煎湴鍧�": "grid address64#",
+            "85#鏍煎湴鍧�": "grid address85#",
+            "106#鏍煎湴鍧�": "grid address106#",
+            "127#鏍煎湴鍧�": "grid address127#",
+            "148#鏍煎湴鍧�": "grid address148#",
+            "169#鏍煎湴鍧�": "grid address169#",
+            "190#鏍煎湴鍧�": "grid address190#",
+            "鍑虹墖鏍间綅缃瀹�": "OutgoingGridPositionSetting",
+            "A01鎵�鍦ㄦ牸瀛�": "A01 grid address",
+            "鏁伴噺": "Quantity",
+            "杩涚墖ID": "IncomingId",
+            "闀垮害": "Length",
+            "楂樺害": "Height",
+            "鍙栫墖鏍煎瓙": "Pickupgrid address",
+            "缈昏浆瀹炴椂浣嶇疆": "FlipPosition",
+            "鏁呴殰": "Fault",
+            "澶嶄綅": "Reset",
+            "鏈洖闆�": "NotZero",
+            "鍥為浂": "Zero",
+            "鐩爣鏍煎瓙": "Target Grid",
+            "鏍煎瓙闂磋窛": "GridSpacing",
+            "瀛樼墖鎺ョ墖鍦板潃": "StorageReceivingAddress",
+            "鍑虹墖鎺ョ墖鍦板潃": "OutgoingReceivingAddress",
+            "瀛樼墖鏍间綅缃瀹�": "StorageGridPositionSetting",
+            "1#鏍煎湴鍧�": "grid address1# ",
+            "22#鏍煎湴鍧�": "grid address22#",
+            "43#鏍煎湴鍧�": "grid address43#",
+            "64#鏍煎湴鍧�": "grid address64#",
+            "85#鏍煎湴鍧�": "grid address85#",
+            "106#鏍煎湴鍧�": "grid address106#",
+            "127#鏍煎湴鍧�": "grid address127#",
+            "148#鏍煎湴鍧�": "grid address148#",
+            "169#鏍煎湴鍧�": "grid address169#",
+            "190#鏍煎湴鍧�": "grid address190#",
+            "鍑虹墖鏍间綅缃瀹�": "OutgoingGridPositionSetting",
+            "B01鏍间綅缃瀹�":"B01PositionSetting",
+            "B02浣嶇疆璁惧畾":"B02PositionSetting"
+            },
+            "langPositioning2": {
+             
+              },  "ManualonePositionlang": {
+                "A01鎵嬪姩鏍煎瓙": "A01 Target grid(Manual)",
+                "A01瀹氫綅閫熷害": "A01 TRAVEL POS Velocity manual",
+                "A01褰撳墠鏍煎瓙": "A01 Current Grid",
+                "A01鍚姩": "A01 Start",
+                "鏁呴殰": "Fault",
+                "澶嶄綅": "Reset",
+                "A02鎵嬪姩鏍煎瓙": "A02 Target grid(Manual)",
+                "A02瀹氫綅閫熷害": "A02 TRAVEL POS Velocity manual",
+                "A02褰撳墠鏍煎瓙": "A02 Current Grid",
+                "A02鍚姩": "A02 Start",
+                "澶嶄綅": "Reset",
+                "B01鎵嬪姩鏍煎瓙": "B01 Target grid(Manual)",
+                "B01瀹氫綅閫熷害": "B01 TRAVEL POS Velocity manual",
+                "B01褰撳墠鏍煎瓙": "B01 Current Grid",
+                "B01鍚姩": "B01 Start",
+                "澶嶄綅": "Reset",
+                "鍥為浂": "Home",
+                "鏈洖闆�": "NotZero",
+                "B02鎵嬪姩鏍煎瓙": "B02 Target grid(Manual)",
+                "B02瀹氫綅閫熷害": "B02 TRAVEL POS Velocity manual",
+                "B02褰撳墠鏍煎瓙": "B02 Current Grid",
+                "B02鍚姩": "B02 Start",
+                "澶嶄綅": "Reset",
+                "A01瀹炴椂浣嶇疆": "A01 tavel Actual Position",
+                "A02瀹炴椂浣嶇疆": "A02 tavel Actual Position",
+                "B01瀹炴椂浣嶇疆": "B02 tavel Actual Position",
+                "B02瀹炴椂浣嶇疆": "B02 tavel Actual Position"
+              },
+              "Manualoneposition2lang": {
+                "A01鎵嬪姩浣嶇疆": "A01 turn Target Angle(Manual)",
+                "A01瀹氫綅閫熷害": "A01 TURN POS Velocity manual",
+                "A01缈昏浆瀹炴椂浣嶇疆": "A01 turn Actual angle",
+                "A01缈昏浆鍚姩": "A01 SERVE TURN",
+                "鏁呴殰": "Fault",
+                "澶嶄綅": "Reset",
+                "鏈洖闆�": "NotZero",
+                "鍥為浂": "Home",
+                "A02鎵嬪姩浣嶇疆": "A02 turn Target Angle(Manual)",
+                "A02瀹氫綅閫熷害": "A02 TURN POS Velocity manual",
+                "A02缈昏浆瀹炴椂浣嶇疆": "A02 turn Actual angle",
+                "A02缈昏浆鍚姩": "A02 SERVE TURN",
+                "A02澶嶄綅": "Reset"
+            
+               
+              },
+              "AutomaticParameterSettinglang": {
+                "A01琛岃蛋楂橀�熻搴�": "A01 turn Angle1",
+                "A01琛岃蛋浣庨�熻搴�": "A01 turn Angle2",
+                "A01杈撻�佹帴鐗囪搴�": "A01 turn Angle3",
+                "A01绗煎瓙瑙掑害": "A01 turn Angle4",
+                "A02琛岃蛋楂橀�熻搴�": "A02 turn Angle1",
+                "A02琛岃蛋浣庨�熻搴�": "A02 turn Angle2",
+                "A02杈撻�佹帴鐗囪搴�": "A02 turn Angle3",
+                "A02绗煎瓙瑙掑害": "A02 turn Angle4",
+                "澶ц溅鑷姩閫熷害": "A01 A02 TRAVEL POS Velocity AUTO",
+                "灏忚溅鑷姩閫熷害": "B01 B02 TRAVEL POS Velocity AUTO",
+                "鑷姩缈昏浆閫熷害": "A01 A02 TURN POS Velocity AUTO",
+                "A01~A02杈撻��": "A01~A02 Conveying",
+                "B01~B02杈撻��": "B01~B02 Conveying",
+                "D01~D06杈撻��": "D01~D06 Conveying",
+                "缈昏浆鐐瑰姩閫熷害": "Flip Jog Speed",
+                "灏忚溅鐐瑰姩閫熷害": "Cart Jog Speed",
+                "鏈�楂橀�熷害": "Max Speed",
+                "楂橀�熺嚎閫熷害": "High-Speed Line Speed",
+                "浣庨�熺嚎閫熷害": "Low-Speed Line Speed",
+                "鎵嬪姩閫熷害": "Manual Speed"
+              },
+              "ManualJoglang": {
+                "D01杈撻��": "D01 VFD conveyor",
+                "D02杈撻��": "D02 VFD conveyor",
+                "D03杈撻��": "D03 VFD conveyor",
+                "D04杈撻��": "D04 VFD conveyor",
+                "D05杈撻��": "D05 VFD conveyor",
+                "D06杈撻��": "D06 VFD conveyor",
+                "A01杈撻�佹鍚�": "A01 VFD conveyor",
+                "A02杈撻�佹鍚�": "A02 VFD conveyor",
+                "B01杈撻��": "B01 VFD conveyor",
+                "B02杈撻��": "B02 VFD conveyor",
+                "A01缈昏浆": "A01 SERVE TURN",
+                "A02缈昏浆": "A02 SERVE TURN",
+                "A01琛岃蛋鐐瑰姩": "A01 SERVE TRAVEL",
+                "A02琛岃蛋鐐瑰姩": "A02 SERVE TRAVEL",
+                "B01琛岃蛋鐐瑰姩": "B01 SERVE TRAVEL",
+                "B02琛岃蛋鐐瑰姩": "B02 SERVE TRAVEL",
+                "B02缈昏浆姘旂几": "B02 Solenoid TURN",
+                "B02鍗囬檷姘旂几": "B02 Solenoid UP DOWN",
+                "B02鍚规皵": "B02 Solenoid Gassing",
+                "B01缈昏浆姘旂几": "B01 Solenoid TURN",
+                "B01鍗囬檷姘旂几": "B01 Solenoid UP DOWN",
+                "B01鍚规皵": "B01 Solenoid Gassing",
+                "A01杈撻�佸弽鍚�": "A01 VFD conveyor reverse",
+                "A02杈撻�佸弽鍚�": "A02 VFD conveyor reverse",
+                "A01娉ㄧ數娉�": "A01 oil pump",
+                "A02娉ㄧ數娉�": "A02 oil pump",
+                "A01琛岃蛋浼烘湇鍥為浂":"A01 SERVE TRAVEL Home",
+                "A02琛岃蛋浼烘湇鍥為浂":"A02 SERVE TRAVEL Home"
+              },
+              "A01琛岃蛋浼烘湇鍥為浂":"A01 SERVE TRAVEL Home",
+                "A02琛岃蛋浼烘湇鍥為浂":"A02 SERVE TRAVEL Home",
+                "Set":"Set"
+
+  
+}
\ No newline at end of file
diff --git a/UI-Project/src/lang/locales/zh-CN.json b/UI-Project/src/lang/locales/zh-CN.json
new file mode 100644
index 0000000..cc0ef84
--- /dev/null
+++ b/UI-Project/src/lang/locales/zh-CN.json
@@ -0,0 +1,521 @@
+{
+  "Clear":"娓呴櫎",
+  "ip":"192.168.10.21",
+  "username": "鐢ㄦ埛鍚�",
+  "password": "瀵嗙爜",
+  "usernamePlaceholder": "璇疯緭鍏ョ敤鎴峰悕",
+  "passwordPlaceholder": "璇疯緭鍏ュ瘑鐮�",
+  "loginButton": "鐧诲綍",
+  "registerButton": "娉ㄥ唽",
+  "resetButton": "閲嶇疆",
+  "usernameRequired": "璇疯緭鍏ョ敤鎴峰悕",
+  "usernameLength": "鐢ㄦ埛鍚嶉暱搴﹀湪5-15涓瓧绗︿箣闂�",
+  "passwordRequired": "璇疯緭鍏ュ瘑鐮�",
+  "passwordLength": "瀵嗙爜闀垮害鍦�5-15涓瓧绗︿箣闂�",
+  "loginSuccess": "鐧诲綍鎴愬姛",
+  "langBtnCN": "涓枃",
+  "langBtnEN": "English",
+  "langHome": "棣栭〉",
+  "langUserManagement": "鐢ㄦ埛绠$悊",
+  "langUserList": "鐢ㄦ埛鍒楄〃",
+  "langUsernamePlaceholder": "璇疯緭鍏ョ敤鎴峰悕",
+  "langEmailPlaceholder": "璇疯緭鍏ラ偖绠�",
+  "langSearch": "鎼滅储",
+  "langAddUser": "娣诲姞鐢ㄦ埛",
+  "langUsername": "鐢ㄦ埛鍚�",
+  "langEmail": "閭",
+  "langCreateTime": "鍒涘缓鏃堕棿",
+  "langDisabled": "鏄惁绂佺敤",
+  "langAction": "鎿嶄綔",
+  "langEdit": "淇敼",
+  "langDelete": "鍒犻櫎",
+  "langAddUserTitle": "娣诲姞鐢ㄦ埛",
+  "langPassword": "瀵嗙爜",
+  "langState": "鐘舵��",
+  "langSelect": "璇烽�夋嫨",
+  "langEditUserTitle": "淇敼鐢ㄦ埛",
+  "northglassMESsystem": "鍖楃幓MES绯荤粺",
+  "exit": "閫�鍑�",
+  "changePassword": "淇敼瀵嗙爜",
+  "Old password":"鏃у瘑鐮�",
+  "New password":"鏂板瘑鐮�",
+  "Confirm password":"鎻愪氦瀵嗙爜",
+  "resetPassword": "閲嶇疆瀵嗙爜",
+  "home": "涓婚〉",
+  "role": "瑙掕壊",
+  "langRoleManagement": "瑙掕壊绠$悊",
+  "langRoleList": "瑙掕壊鍒楄〃",
+  "langEnterRoleName": "璇疯緭鍏ヨ鑹插悕绉�",
+  "langAddRole": "娣诲姞瑙掕壊",
+  "langName": "鍚嶇О",
+  "langIsValid": "鏄惁鏈夋晥",
+  "langOperation": "鎿嶄綔",
+  "langPleaseSelect": "璇烽�夋嫨",
+  "langValid": "鏈夋晥",
+  "langInvalid": "鏃犳晥",
+  "langConfirm": "纭畾",
+  "langCancel": "鍙栨秷",
+  "langAddRoleSuccess": "娣诲姞瑙掕壊鎴愬姛",
+  "langEnterName": "璇疯緭鍏ュ悕绉�",
+  "langLengthBetween": "闀垮害鍦�",
+  "langAnd": "鍜�",
+  "langCharacters": "涓瓧绗︿箣闂�",
+  "langEnterState": "璇疯緭鍏ョ姸鎬�",
+  "langUpdateState": "鐘舵�佹洿鏂版垚鍔�",
+  "langEditRole": "缂栬緫瑙掕壊",
+  "langEditRoleSuccess": "缂栬緫瑙掕壊鎴愬姛",
+  "langDeleteRoleConfirm": "纭畾瑕佸垹闄よ瑙掕壊鍚楋紵",
+  "langPrompt": "鎻愮ず",
+  "langDeleteRoleSuccess": "鍒犻櫎瑙掕壊鎴愬姛",
+  "langCancelDelete": "宸插彇娑堝垹闄�",
+  "langRoleName": "瑙掕壊鍚嶇О",
+  "updateSuccessMessage": "鏇存柊鎴愬姛",
+  "paginationTotal": "鍏� {total} 鏉�",
+  "paginationSizes": "姣忛〉鏄剧ず",
+  "paginationPrev": "涓婁竴椤�",
+  "paginationPager": "{currentPage}/{pageCount}",
+  "paginationNext": "涓嬩竴椤�",
+  "paginationJumper": "璺宠嚦",
+  "breadcrumb": {
+    "home": "棣栭〉",
+    "permissionManagement": "鏉冮檺绠$悊",
+    "permissionList": "鏉冮檺鍒楄〃"
+  },
+  "search": {
+    "placeholder": "璇疯緭鍏ュ叧閿瓧"
+  },
+  "button": {
+    "addPermission": "娣诲姞鏉冮檺",
+    "cancel": "鍙栨秷",
+    "confirm": "纭"
+  },
+  "table": {
+    "role": "瑙掕壊",
+    "permissionDescription": "鏉冮檺鎻忚堪",
+    "permissionValue": "鏉冮檺鍊�",
+    "createTime": "鍒涘缓鏃堕棿",
+    "isActive": "鏄惁婵�娲�",
+    "operation": "鎿嶄綔"
+  },
+  "tooltip": {
+    "edit": "淇敼",
+    "delete": "鍒犻櫎"
+  },
+  "dialog": {
+    "addPermission": "娣诲姞鏉冮檺",
+    "editPermission": "缂栬緫鏉冮檺"
+  },
+  "form": {
+    "role": "瑙掕壊",
+    "select": "璇烽�夋嫨",
+    "permission": "鏉冮檺",
+    "isActive": "鏄惁婵�娲�"
+  },
+  "鎿嶄綔": "鎿嶄綔",
+  "鏈夋晥": "鏈夋晥",
+  "鏃犳晥": "鏃犳晥",
+  "璇疯緭鍏ュ悕绉�": "璇疯緭鍏ュ悕绉�",
+  "闀垮害鍦� 2 鍒� 15 涓瓧绗�": "闀垮害鍦� 2 鍒� 15 涓瓧绗�",
+  "璇疯緭鍏ョ姸鎬�": "璇疯緭鍏ョ姸鎬�",
+  "娣诲姞瑙掕壊": "娣诲姞瑙掕壊",
+  "淇敼瑙掕壊": "淇敼瑙掕壊",
+  "鍒犻櫎瑙掕壊": "鍒犻櫎瑙掕壊",
+  "姝ゆ搷浣滃皢姘镐箙鍒犻櫎璇ヨ鑹�, 鏄惁缁х画?": "姝ゆ搷浣滃皢姘镐箙鍒犻櫎璇ヨ鑹�, 鏄惁缁х画?",
+  "鎻愮ず": "鎻愮ず",
+  "纭畾": "纭畾",
+  "鍙栨秷": "鍙栨秷",
+  "娣诲姞瑙掕壊鎴愬姛": "娣诲姞瑙掕壊鎴愬姛",
+  "鏇存柊鐘舵�佹垚鍔�": "鏇存柊鐘舵�佹垚鍔�",
+  "淇敼瑙掕壊鎴愬姛": "淇敼瑙掕壊鎴愬姛",
+  "鍒犻櫎瑙掕壊鎴愬姛": "鍒犻櫎瑙掕壊鎴愬姛",
+  "translation": {
+    "D01 VFD error": "D01 VFD 閿欒",
+    "D02 VFD error": "D02 VFD 閿欒",
+    "D03 VFD error": "D03 VFD 閿欒",
+    "D04 VFD error": "D04 VFD 閿欒",
+    "D05 VFD error": "D05 VFD 閿欒",
+    "D06 VFD error": "D06 VFD 閿欒",
+    "B01 VFD error": "B01 VFD 閿欒",
+    "B02 VFD error": "B02 VFD 閿欒",
+    "A01 VFD error": "A01 VFD 閿欒",
+    "A02 VFD error": "A02 VFD 閿欒",
+    "A01 servo turn error": "A01 servo turn 閿欒",
+    "A02 servo turn error": "A02 servo turn 閿欒",
+    "A01 servo travel error": "A01 servo travel 閿欒",
+    "A02 servo travel error": "A02 servo travel 閿欒",
+    "B01 servo travel error": "B01 servo travel 閿欒",
+    "B02 servo travel error": "B02 servo travel 閿欒",
+    "D01 DEC error": "D01 DEC 閿欒",
+    "D01 pos error": "D01 pos 閿欒",
+    "D02 DEC error": "D02 DEC 閿欒",
+    "D02 pos error": "D02 pos 閿欒",
+    "D03 DEC error": "D03 DEC 閿欒",
+    "D03 pos error": "D03 pos 閿欒",
+    "D04 DEC error": "D04 DEC 閿欒",
+    "D04 pos error": "D04 pos 閿欒",
+    "D05 DEC error": "D05 DEC 閿欒",
+    "D05 pos error": "D05 pos 閿欒",
+    "D06 DEC error": "D06 DEC 閿欒",
+    "D06 pos error": "D06 pos 閿欒",
+    "A01 DEC error": "A01 DEC 閿欒",
+    "A01 pos error": "A01 pos 閿欒",
+    "A02 DEC error": "A02 DEC 閿欒",
+    "A02 pos error": "A02 pos 閿欒",
+    "B01 IN DEC error": "B01 IN DEC 閿欒",
+    "B01 IN pos error": "B01 IN pos 閿欒",
+    "B01 OUT DEC error": "B01 OUT DEC 閿欒",
+    "B01 OUT pos error": "B01 OUT pos 閿欒",
+    "B02 IN DEC error": "B02 IN DEC 閿欒",
+    "B02 IN pos error": "B02 IN pos 閿欒",
+    "B02 OUT DEC error": "B02 OUT DEC 閿欒",
+    "B02 OUT pos error": "B02 OUT pos 閿欒"
+  },
+  "Electrical": "鐢ㄦ埛绠$悊",
+  "Parameter": "鏉冮檺绠$悊",
+  "Action": "涓婄墖鏈�",
+  "Sign": "鎺扮墖/璇嗗埆",
+  "State": "鐘舵��",
+  "Alarm": "鎶ヨ淇℃伅",
+  "Distribute": "涓嬪彂",
+  "Search": "鎼滅储",
+  "dvstate": {
+    "automatic": "鑷姩",
+    "manual": "鎵嬪姩"
+  },
+  "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 barcode": "杈撳叆鐜荤拑id",
+  "Infeed Barcodeid": "鎵嬪姩涓婄墖",
+  "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": "瀹�",
+  "Operate": "鎿嶄綔",
+  "Terminate Task":"缁撴潫浠诲姟",
+  "end task": "瀹屾垚浠诲姟",
+  "Number": "鏁伴噺",
+  "Outfeed glass barcode": "鍑虹墖鐜荤拑id",
+  "Infeed glass barcode": "杩涚墖鐜荤拑id",
+  "Order No": "璁㈠崟缂栧彿",
+  "List No": "鍒楄〃缂栧彿",
+  "Box No": "绠卞瓙缂栧彿",
+  "Dim": "灏哄",
+  "id": "id",
+  "content": "鍐呭",
+  "timeon": "鎶ヨ鏃堕棿",
+  "endTime": "缁撴潫鏃堕棿",
+  "Cage No": "绗煎瓙",
+  "The Side": "鍐呭渚�",
+  "Slot No": "鏍煎瓙",
+  "Barcode": "鐜荤拑id",
+  "Delete": "鍒犻櫎",
+  "Out": "鍑虹墖",
+  "Operation successful": "鎿嶄綔鎴愬姛",
+  "Operation canceled": "鎿嶄綔鍙栨秷",
+  "There is no such order": "娌℃湁姝よ鍗曠殑鐜荤拑",
+  "There are currently tasks": "褰撳墠鏈変换鍔�",
+  "There is no such glass": "娌℃湁姝ょ幓鐠�",
+  "There is no such slot": "娌℃湁绌洪棽鏍煎瓙",
+  "No delete allowed": "涓嶈兘鍒犻櫎",
+  "No out allowed": "涓嶈兘鍑虹墖",
+  "Are you sure to perform this operation ?": "纭畾鎵ц姝ゆ搷浣�?",
+  "prompt": "鎻愮ず",
+  "Yes": "鏄�",
+  "No": "鍚�",
+  "today": "浠婂ぉ",
+  "yesterday": "鏄ㄥぉ",
+  "week": "涓�鍛ㄥ墠",
+  "shijian": "鏃ユ湡",
+  "Pick a day": "閫夋嫨鏃ユ湡",
+  "alarmid": "id",
+  "alacontent": "鎶ヨ鍐呭",
+  "time-on": "寮�濮嬫椂闂�",
+  "End-Time": "缁撴潫鏃堕棿",
+  "Please enter the password": "璇疯緭鍏ュ瘑鐮�",
+  "Password error": "瀵嗙爜閿欒",
+  "DataBase Connection failed": "鏁版嵁搴撹繛鎺ュけ璐�",
+  "Distribute parameters": "涓嬪彂鍙傛暟",
+  "The glass size is not within the range": "鐜荤拑灏哄涓嶅湪鑼冨洿鍐�",
+  "Add": "娣诲姞",
+  "Enable": "鍚敤",
+  "Disable": "绂佺敤",
+  "Usage": "浣跨敤鐜�",
+  "Space (Pieces)": "绌洪棿(鐗囨暟)",
+  "This glass is already in the cage": "绗煎瓙閲屽凡鏈夋鐜荤拑",
+  "Enter the Order No": "璇疯緭鍏ヨ鍗昳d",
+  "OrderInfo": "璁㈠崟淇℃伅",
+  "Query": "鏌ヨ",
+  "permission update": "鏉冮檺缂栬緫",
+  "query was successful": "鏌ヨ鎴愬姛",
+  "Scan Code Point": "鎵爜浣�",
+  "Upper film position": "涓婄墖浣�",
+  "Glass Information": "鐜荤拑淇℃伅",
+  "current Information": "褰撳墠淇℃伅",
+  "Modify Information": "淇敼淇℃伅",
+  "Clear Current": "娓呴櫎褰撳墠",
+  "Confirm": "纭",
+  "The glass ID already exists in the loading queue": "涓婄墖闃熷垪宸插瓨鍦ㄦ鐜荤拑id",
+  "This glass ID already exists in the sorting cage": "鐞嗙墖绗煎唴宸插瓨鍦ㄦ鐜荤拑id",
+  "Outing Queue":"鍑虹墖闃熷垪",
+  "Enter the Aluminum Frame No":"璇疯緭鍏ラ摑妗唅d",
+  "Frame No":"閾濇id",
+  "Glass information corresponding to aluminum frame":"閾濇瀵瑰簲鐨勭幓鐠冧俊鎭�",
+  "In the cage":"鍦ㄧ鍐�",
+  "Flipped":"缈昏浆",
+  "In the queue":"鍦ㄩ槦鍒�",
+  "Enter the Frame No":"璇疯緭鍏ラ摑妗唅d",
+  "Manually Infeed Glass":"鎵嬪姩杩涚墖",
+  "Normal":"姝e父",
+  "Entering":"姝e湪杩�",
+  "Outing":"姝e湪鍑�",
+  "Suspend":"鏆傚仠",
+  "Stop":"鍋滄",
+  "Start":"寮�濮�",
+  "Sequence":"椤哄簭",
+  "Position":"浣嶇疆",
+  "Top":"缃《",
+  "Up":"涓婄Щ",
+  "Down":"涓嬬Щ",
+  "You do not have this permission":"You do not have this permission",
+  "Unable to find the placement method of the aluminum frame":"鏌ヨ涓嶅埌閾濇鎽嗘斁鏂瑰紡",
+  "Unable to find whether the aluminum frame is flipped or not":"鏌ヨ涓嶅埌閾濇鏄惁缈昏浆",
+  "This glass is already in the Queue":"姝ょ幓鐠冨凡鍦ㄥ嚭鐗囬槦鍒椾腑",
+  "Complete":"瀹屾垚",
+  "Not Allow":"涓嶅厑璁�",
+  "Allow":"鍏佽",
+  "Completed":"宸插畬鎴�",
+  "Waiting":"绛夊緟涓�",
+  "Deleted":"宸插垹闄�",
+  "Glass State":"鐜荤拑鐘舵��",
+  "Absent":"涓嶅瓨鍦�",
+  "Approximately resettable time":"鍙浣嶅ぇ姒傛椂闂�",
+  "EXTERIQR OUT AND BYPASS TO THE LEFT":"EXTERIQR OUT AND BYPASS TO THE LEFT",
+  "EXTERIQR OUT AND BYPASS TO THE RIGHT":"EXTERIQR OUT AND BYPASS TO THE RIGHT",
+  "Complete Task":"瀹屾垚浠诲姟",
+  "Outed":"宸插嚭绗�",
+  "Queue State":"闃熷垪鐘舵��",
+  "Sorting State":"鎺掑簭鐘舵��",
+  "Confirm State":"纭鐘舵��",
+  "Next":"涓嬩竴涓�",
+  "Current Frame":"褰撳墠閾濇",
+  "Outside":"澶栦晶",
+  "Inside":"鍐呬晶",
+  "Cancel":"鍙栨秷",
+  "Are you sure to clear this barcode ?":"纭畾娓呴櫎姝ょ幓鐠僫d鍚� ?",
+  "Terminate Feeding":"缁堟杩涚墖",
+  "Terminate Outing":"缁堟鍑虹墖",
+  "SoftEmergencyStop":"杞�ュ仠",
+  "Unable to clear glass ID in automatic mode":"鏃犳硶鍦ㄨ嚜鍔ㄦā寮忎笅娓呴櫎鐜荤拑ID",
+  "Are you sure you want an emergency stop ?":"纭畾瑕佹�ュ仠鍚�?",
+  "Current State":"褰撳墠鐘舵��",
+  "Automatic":"鑷姩",
+  "Hand Movement":"鎵嬪姩",
+  "Please enter the correct glassID":"璇疯緭鍏ユ纭殑鐜荤拑ID",
+  "Switch":"鍒囨崲",
+  "This frame has glass that is currently outing":"姝ら摑妗嗘湁姝e湪鍑虹墖鐨勭幓鐠�",
+  "langparameter": {
+    "conveyor Velocity(Auto FAST)": "D01-D06 鐨甫杈撻�佽嚜鍔ㄥ揩閫�",
+    "conveyor Velocity(Auto SLOW)": "D01-D06 鐨甫杈撻�佽嚜鍔ㄦ參閫�",
+    "conveyor Velocity(Manual)": "D01-D06 鐨甫杈撻�佹墜鍔ㄩ�熷害",
+    "A01 A02 TURN JOG Velocity": "A01 A02 缈昏浆鐐瑰姩閫熷害",
+    "A01 A02 TRAVEL JOG Velocity": "A01 A02 琛岃蛋鐐瑰姩閫熷害",
+    "B01 B02 TRAVEL JOG Velocity": "B01 B02 琛岃蛋鐐瑰姩閫熷害",
+    "A01 A02 TURN POS Velocity AUTO": "A01 A02 缈昏浆鑷姩瀹氫綅閫熷害",
+    "A01 A02 TURN POS Velocity manual": "A01 A02 缈昏浆鎵嬪姩瀹氫綅閫熷害",
+    "A01 A02 TRAVEL POS Velocity AUTO": "A01 A02 琛岃蛋鑷姩瀹氫綅閫熷害",
+    "A01 A02 TRAVEL POS Velocity manual": "A01 A02 琛岃蛋鎵嬪姩瀹氫綅閫熷害",
+    "B01 B02 TRAVEL POS Velocity AUTO": "B01 B02 琛岃蛋鑷姩瀹氫綅閫熷害",
+    "B01 B02 TRAVEL POS Velocity manual": "B01 B02 琛岃蛋鎵嬪姩瀹氫綅閫熷害"
+  },
+  "langActions": {
+    "D01 VFD conveyor": "D01 杈撻�佸彉棰�",
+    "D02 VFD conveyor": "D02 杈撻�佸彉棰�",
+    "D03 VFD conveyor": "D03 杈撻�佸彉棰�",
+    "D04 VFD conveyor": "D04 杈撻�佸彉棰�",
+    "D05 VFD conveyor": "D05 杈撻�佸彉棰�",
+    "D06 VFD conveyor": "D06 杈撻�佸彉棰�",
+    "A01 VFD conveyor": "A01 杈撻�佸彉棰�",
+    "A02 VFD conveyor": "A02 杈撻�佸彉棰�",
+    "B01 VFD conveyor": "B01 杈撻�佸彉棰�",
+    "B02 VFD conveyor": "B02 杈撻�佸彉棰�",
+    "A01 SERVE TURN JOG+": "A01 缈昏浆浼烘湇鐐瑰姩",
+    "A02 SERVE TURN JOG-": "A02 缈昏浆浼烘湇鐐瑰姩",
+    "A01 SERVE TRAVEL JOG+": "A01 琛岃蛋浼烘湇鐐瑰姩",
+    "A02 SERVE TRAVEL JOG-": "A02 琛岃蛋浼烘湇鐐瑰姩",
+    "B01 SERVE TRAVEL JOG+": "B01 琛岃蛋浼烘湇鐐瑰姩",
+    "B02 SERVE TRAVEL JOG-": "B02 琛岃蛋浼烘湇鐐瑰姩",
+    "A01 SERVE TURN POS": "A01 缈昏浆浼烘湇瀹氫綅",
+    "A02 SERVE TURN POS": "A02 缈昏浆浼烘湇瀹氫綅",
+    "A01 SERVE TRAVEL POS": "A01 琛岃蛋浼烘湇瀹氫綅",
+    "A02 SERVE TRAVEL POS": "A02 琛岃蛋浼烘湇瀹氫綅",
+    "B01 SERVE TRAVEL POS": "B01 琛岃蛋浼烘湇瀹氫綅",
+    "B02 SERVE TRAVEL POS": "B02 琛岃蛋浼烘湇瀹氫綅",
+    "B01 YV TURN": "B01 鎶捣鐢电闃�",
+    "B01 YV UP DOWN": "B01 涓婂崌涓嬮檷鐢电闃�",
+    "B02 YV TURN": "B02 鎶捣鐢电闃�",
+    "B02 YV UP DOWN": "B02 涓婂崌涓嬮檷鐢电闃�"
+  },
+  "Signlang": {
+    "D01.SR dec": "D01.鍑忛�熶紶鎰熷櫒",
+    "D01.SR in pos": "D01.鍒颁綅浼犳劅鍣�",
+    "D02.SR dec": "D02.鍑忛�熶紶鎰熷櫒",
+    "D02.SR in pos": "D02.鍒颁綅浼犳劅鍣�",
+    "D03.SR into": "D03.杩涚墖浼犳劅鍣�",
+    "D03.SR dec": "D03.鍑忛�熶紶鎰熷櫒",
+    "D03.SR in pos": "D03.鍒颁綅浼犳劅鍣�",
+    "D04.SR dec": "D04.鍑忛�熶紶鎰熷櫒",
+    "D04.SR in pos": "D04.鍒颁綅浼犳劅鍣�",
+    "D05.SR dec": "D05.鍑忛�熶紶鎰熷櫒",
+    "D05.SR in pos": "D05.鍒颁綅浼犳劅鍣�",
+    "D06.SR dec": "D06.鍑忛�熶紶鎰熷櫒",
+    "D06.SR in pos": "D06.鍒颁綅浼犳劅鍣�",
+    "B01.SR in dec": "B01.杩涚墖鍑忛�熶紶鎰熷櫒",
+    "B01.SR in in pos": "B01.杩涚墖鍒颁綅浼犳劅鍣�",
+    "B01.SR out dec": "B01.鍑虹墖鍑忛�熶紶鎰熷櫒",
+    "B01.SR out in pos": "B01.鍑虹墖鍒颁綅浼犳劅鍣�",
+    "B01.SR turn on": "B01.缈昏浆涓婂埌浣嶄紶鎰熷櫒",
+    "B01.SR turn off": "B01.缈昏浆涓嬪埌浣嶄紶鎰熷櫒",
+    "B01.SR up": "B01.涓婂崌鍒颁綅浼犳劅鍣�",
+    "B01.SR down": "B01.涓嬮檷鍒颁綅浼犳劅鍣�",
+    "B02.SR out dec": "B02.鍑虹墖鍑忛�熶紶鎰熷櫒",
+    "B02.SR out in pos": "B02.鍑虹墖鍒颁綅浼犳劅鍣�",
+    "B02.SR in dec": "B02.杩涚墖鍑忛�熶紶鎰熷櫒",
+    "B02.SR in in pos": "B02.杩涚墖鍒颁綅浼犳劅鍣�",
+    "B02.SR turn on": "B02.缈昏浆涓婂埌浣嶄紶鎰熷櫒",
+    "B02.SR turn off": "B02.缈昏浆涓嬪埌浣嶄紶鎰熷櫒",
+    "B02.SR up": "B02.涓婂崌鍒颁綅浼犳劅鍣�",
+    "B02.SR down": "B02.涓嬮檷鍒颁綅浼犳劅鍣�",
+    "B01.SR in safety": "B01.杩涚墖瀹夊叏浼犳劅鍣�",
+    "B01.SR out safety": "B01.鍑虹墖瀹夊叏浼犳劅鍣�",
+    "B02.SR in safety": "B02.杩涚墖瀹夊叏浼犳劅鍣�",
+    "SB.start(+)": "SB.鍚姩锛�+锛夋寜閽�",
+    "SB.stop(1)": "SB.鍋滄锛�-锛夋寜閽�",
+    "SB.reset": "SB.澶嶄綅鎸夐挳",
+    "SB.auto/manul": "SB.鎵�/鑷垏鎹㈡寜閽�",
+    "D01.SB.confirm": "鐜荤拑淇℃伅纭",
+    "SB.emg": "SB.鎬ュ仠鎸夐挳",
+    "D01.SB.start": "D01.鍚姩",
+    "D06.SB.start": "D06.鍚姩",
+    "B02.SR out safety ": "B02.鍑虹墖瀹夊叏浼犳劅鍣�",
+    "SafetyDoor.requset": "瀹夊叏闂ㄨ姹傝繘鍏�",
+    "SafetyDoor.confirm": "瀹夊叏闂ㄧ‘璁�",
+    "SafetyDoor.reset": "瀹夊叏闂ㄥ浣�",
+    "A01.SR left dec":"A01宸﹂敭閫�",
+    "A01.SR left in pos":"A01宸﹀埌浣�",
+    "A01.SR left safety":"A01宸﹀畨鍏�",
+    "A01.SR right dec":"A01鍙抽敭閫�",
+    "A01.SR right in pos":"A01鍙冲埌浣�",
+    "A01.SR right safety":"A01鍙冲畨鍏�",
+    "A01.SR turn home":"A01缈昏浆鍘熺偣",
+    "A01.SR turn up":"A01缈昏浆涓婃瀬闄�",
+    "A01.SR turn down":"A01缈昏浆涓嬫瀬闄�",
+    "A01.SR travel home":"A01琛岃蛋鍘熺偣",
+    "A01.SR travel left dec":"A01琛岃蛋宸﹀噺閫�",
+    "A01.SR travel left limit":"A01琛岃蛋宸︽瀬闄�",
+    "A01.SR travel right dec":"A01琛岃蛋鍙冲噺閫�",
+    "A01.SR travel right limit":"A01琛岃蛋鍙虫瀬闄�",
+    "A02.SR left dec":"A02宸﹂敭閫�",
+    "A02.SR left in pos":"A02宸﹀埌浣�",
+    "A02.SR left safety":"A02宸﹀畨鍏�",
+    "A02.SR right dec":"A02鍙抽敭閫�",
+    "A02.SR right in pos":"A02鍙冲埌浣�",
+    "A02.SR right safety":"A02鍙冲畨鍏�",
+    "A02.SR turn home":"A02缈昏浆鍘熺偣",
+    "A02.SR turn up":"A02缈昏浆涓婃瀬闄�",
+    "A02.SR turn down":"A02缈昏浆涓嬫瀬闄�",
+    "A02.SR travel home":"A02琛岃蛋鍘熺偣",
+    "A02.SR travel left dec":"A02琛岃蛋宸﹀噺閫�",
+    "A02.SR travel left limit":"A02琛岃蛋宸︽瀬闄�",
+    "A02.SR travel right dec":"A02琛岃蛋鍙冲噺閫�",
+    "A02.SR travel right limit":"A02琛岃蛋鍙虫瀬闄�",
+    "B01.SR origin":"B01.鍘熺偣",
+    "B01.SR left limit":"B01.宸︽瀬闄�",
+    "B01.SR right limit":"B01.鍙虫瀬闄�",
+    "B02.SR origin":"B02.鍘熺偣",
+    "B02.SR left limit":"B02.宸︽瀬闄�",
+    "B02.SR right limit":"B02.鍙虫瀬闄�",
+    "LED.red": "涓夎壊鐏孩",
+    "LED.green": "涓夎壊鐏豢",
+    "LED.yellow": "涓夎壊鐏粍",
+    "D01.LED.green": "D01.缁跨伅",
+    "D06.LED.green": "D06.缁跨伅",
+    "B01.YV.turn": "B01.鐢电闃�缈昏浆",
+    "B01.YV.up down": "B01.鐢电闃�涓婂崌涓嬮檷",
+    "B01.YV.gassing": "B01.鐢电闃�鍚规皵",
+    "B02.YV.turn": "B02.鐢电闃�缈昏浆",
+    "B02.YV.up down": "B02.鐢电闃�涓婂崌涓嬮檷",
+    "B02.YV.gassing": "B02.鐢电闃�鍚规皵",
+    "SafetyDoor.Led": "瀹夊叏闂ㄧ姸鎬佺伅",
+    "SafetyDoor.open": "瀹夊叏闂ㄦ墦寮�",
+    "D01 SB.confirm":"鐜荤拑淇℃伅纭鎸囩ず鐏�",
+    "A01 oilPump":"A01娉ㄦ补娉�",
+    "A01 motorCtr":"A01鐢垫満鎺у埗",
+    "A02 oilPump":"A02娉ㄦ补娉�",
+    "A02 motorCtr":"A02鐢垫満鎺у埗",
+    "space":"澶囩敤"
+
+  },
+  "Statelang": {
+    "D01.State": "D01.鐘舵��",
+    "D02.State": "D02.鐘舵��",
+    "B01.State": "B01.鐘舵��",
+    "B02.State": "B02.鐘舵��",
+    "A01.State": "A01.鐘舵��",
+    "A02.State": "A02.鐘舵��",
+    "D03.State": "D03.鐘舵��",
+    "D04.State": "D04.鐘舵��",
+    "D05.State": "D05.鐘舵��",
+    "D06.State": "D06.鐘舵��"
+  },
+  "Automatic State":"鑷姩鐘舵��",
+  "ManualJog":"寮�鍏虫帶鍒�",
+  "ManualonePosition":"鎵嬪姩瀹氫綅",
+  "Servomanualone":"鍗婅嚜鍔�",
+  "Address parameter settings":"鍦板潃鍙傛暟璁剧疆",
+  "Speed parameter settings":"閫熷害鍙傛暟璁剧疆",
+  "InteractionState":"浜や簰鐘舵��",
+  "Set":"璁惧畾"
+
+}
\ No newline at end of file
diff --git a/UI-Project/src/main.js b/UI-Project/src/main.js
index d366da6..41bf9c3 100644
--- a/UI-Project/src/main.js
+++ b/UI-Project/src/main.js
@@ -10,10 +10,13 @@
 import 'element-plus/dist/index.css'
 import VXETable from 'vxe-table'
 import 'vxe-table/lib/style.css'
+//  import i18n from './lang/i18n' 
+
 
 const app = createApp(App)
 const pinia = createPinia()
 pinia.use(piniaPluginPersistedstate )
+// app.use(i18n)
 app.use(VXETable)
 app.use(pinia)
 app.use(router)
diff --git a/UI-Project/src/router/index.js b/UI-Project/src/router/index.js
index 527c0df..6ff9458 100644
--- a/UI-Project/src/router/index.js
+++ b/UI-Project/src/router/index.js
@@ -35,6 +35,33 @@
          ]
         },
       
+/*----------- 鐢ㄦ埛鍒楄〃 ----------------*/
+{
+  path: 'User',
+  name: 'User',
+  component: () => import('../views/User/userlist.vue'),
+  children:[
+    {
+      path: '/User/userlist',
+      name: 'userlist',
+      component: () => import('../views/User/userlist.vue')
+    },
+  ]
+  },
+  
+/*----------- 鏉冮檺鍒楄〃 ----------------*/
+{
+  path: 'Permissions',
+  name: 'Permissions',
+  component: () => import('../views/Permissions/permissionslist.vue'),
+  children:[
+    {
+      path: '/Permissions/permissionslist',
+      name: 'permissionslist',
+      component: () => import('../views/Permissions/permissionslist.vue')
+    },
+  ]
+  },
         /*----------- 涓婄墖鏈� ----------------*/
       {
         path: 'Returns',
diff --git a/UI-Project/src/views/Caching/caching.vue b/UI-Project/src/views/Caching/caching.vue
index b166446..18f3a10 100644
--- a/UI-Project/src/views/Caching/caching.vue
+++ b/UI-Project/src/views/Caching/caching.vue
@@ -6,6 +6,8 @@
 
 import { ref } from 'vue'
 import { ElMessage, ElMessageBox } from 'element-plus'
+//  import LanguageMixin from './lang/LanguageMixin'
+
 
 const tableData = [
   {
@@ -639,6 +641,23 @@
     thicka: '191',
   }
 ]
+
+const dialogForm = () => {
+  ElMessageBox.confirm(
+    '鏄惁鎶ョ己?',
+    '鎻愮ず',
+    {
+      confirmButtonText: '鏄�',
+      cancelButtonText: '鍙栨秷',
+      type: 'warning',
+    }
+  )
+  .then(() => {
+    // this.boxa = true
+    // this.box = false
+      
+    })
+}
 const open = () => {
   ElMessageBox.confirm(
     '鏄惁鍒犻櫎璇ユ潯淇℃伅?',
@@ -711,8 +730,12 @@
       'wide': '1005',
       'thick': '183.6',
     }
-  ],
+  ]
+ 
 })
+
+
+
 </script>
 
 <template>
@@ -728,7 +751,7 @@
           <el-table-column prop="type" align="center" label="闀�" min-width="120" />
           <el-table-column fixed="right" label="鎿嶄綔" align="center" width="200">
             <template #default>
-              <el-button size="mini" type="text" plain  @click="dialogFormVisiblea = true">鎶ョ己</el-button>
+              <el-button size="mini" type="text" plain  @click="dialogForm">鎶ョ己</el-button>
             </template>
         </el-table-column>
         </el-table>
diff --git a/UI-Project/src/views/Permissions/permissionslist.vue b/UI-Project/src/views/Permissions/permissionslist.vue
new file mode 100644
index 0000000..42a0399
--- /dev/null
+++ b/UI-Project/src/views/Permissions/permissionslist.vue
@@ -0,0 +1,419 @@
+<script lang="ts" setup>
+import {Search} from "@element-plus/icons-vue";
+import {reactive} from "vue";
+import {useRouter} from "vue-router"
+const router = useRouter()
+const value1 = ref(true)
+const add = ref(false)
+const adda = ref(false)
+import { ref } from 'vue'
+import { ElMessage, ElMessageBox } from 'element-plus'
+
+const changer = ref(false)
+
+const tableData = [
+  {
+    id: '1',
+    long: '1005',
+    wide: '183.6',
+    thick: '1991',
+    time: '2024/4/1',
+    typea: '1',
+  },
+  {
+    id: '2',
+    long: '105',
+    wide: '183',
+    thick: '191',
+    time: '2024/4/1',
+    typea: '1',
+    type: '寰呰瘑鍒�'
+  },
+  {
+    id: '2',
+    time: '2024/4/1',
+    long: '105',
+    wide: '183',
+    thick: '191',
+    typea: '1',
+    type: '寰呰瘑鍒�'
+  },
+]
+
+const data= reactive({
+   tableList:[]//table鏁版嵁
+})
+
+const beforeChange = () => {
+  return new Promise((resolve) => {
+    setTimeout(() => {
+      ElMessage.success("淇敼鎴愬姛锛�");
+      return resolve(true);
+    }, 1000);
+  });
+};
+const open = () => {
+  ElMessageBox.confirm(
+    '鏄惁鍒犻櫎璇ユ潯淇℃伅?',
+    '鎻愮ず',
+    {
+      confirmButtonText: '鏄�',
+      cancelButtonText: '鍙栨秷',
+      type: 'warning',
+    }
+  )
+    .then(() => {
+      ElMessage({
+        type: 'success',
+        message: '鍒犻櫎鎴愬姛锛�',
+      })
+    })
+    .catch(() => {
+      ElMessage({
+        type: 'info',
+        message: '鍒犻櫎澶辫触',
+      })
+    })
+}
+const getTableRow = (row,type) =>{
+  switch (type) {
+    case 'edit' :{
+      //alert('鎴戞帴鏀跺埌瀛愮粍浠朵紶閫佺殑缂栬緫淇℃伅')
+      router.push({path: '/main/returns/createReturns', query: { ReturnID: 'TH24010101' }})
+      break
+    }
+    case 'delete':{
+      alert('鎴戞帴鏀跺埌瀛愮粍浠朵紶閫佺殑鍒犻櫎淇℃伅')
+      break
+    }
+  }
+}
+const dialogForm = () => {
+  ElMessageBox.confirm(
+    '鏄惁閲嶇疆瀵嗙爜?',
+    '鎻愮ず',
+    {
+      confirmButtonText: '鏄�',
+      cancelButtonText: '鍙栨秷',
+      type: 'warning',
+    }
+  )
+  .then(() => {
+    // this.boxa = true
+    // this.box = false
+      
+    })
+}
+const empty = [
+   { id: '',
+    long: '',
+    wide: '',
+    thick: '',
+    type: '',
+    typea: '',}
+
+]
+const options = [
+  {
+    value: 'Option1',
+    label: 'admin',
+  },
+  {
+    value: 'Option2',
+    label: 'ueser2',
+  },
+  {
+    value: 'Option3',
+    label: 'ueser3',
+  },
+]
+const optionsa = [
+  {
+    valuea: 'Option1',
+    labela: '姝e父',
+  },
+  {
+    valuea: 'Option2',
+    labela: '绂佺敤',
+  },
+]
+// const delete = () => {
+//   ElMessageBox.confirm(
+//     '鏄惁鍒犻櫎璇ユ潯淇℃伅?',
+//     '鎻愮ず',
+//     {
+//       confirmButtonText: '鏄�',
+//       cancelButtonText: '鍙栨秷',
+//       type: 'warning',
+//     }
+//   )
+//   .then(() => {
+      
+//     })
+// }
+const gridOptions = reactive({
+  border:  "full",//琛ㄦ牸鍔犺竟妗�
+  keepSource: true,//淇濇寔婧愭暟鎹�
+  align: 'center',//鏂囧瓧灞呬腑
+  stripe:true,//鏂戦┈绾�
+  rowConfig: {isCurrent: true, isHover: true,height: 50},//榧犳爣绉诲姩鎴栭�夋嫨楂樹寒
+  id: 'OrderList',
+  showFooter: true,//鏄剧ず鑴�
+  printConfig: {},
+  importConfig: {},
+  exportConfig: {},
+  scrollY:{ enabled: true },//寮�鍚櫄鎷熸粴鍔�
+  showOverflow:true,
+  columnConfig: {
+    resizable: true,
+    useKey: true
+  },
+  filterConfig: {   //绛涢�夐厤缃」
+    remote: true
+  },
+  customConfig: {
+    storage: true
+  },
+  editConfig: {
+    trigger: 'click',
+    mode: 'row',
+    showStatus: true
+  },
+  data:  [
+    {
+      'id': '1',
+      'long': '5',
+      'wide': '1005',
+      'thick': '183.6',
+    }
+  ],
+})
+
+</script>
+
+<template>
+  <div>
+        <el-button type="primary" style="margin-top: 10px;margin-left: 10px;"  size="mini" id="searchButton" @click="add = true">娣诲姞鏉冮檺</el-button>
+        <el-input
+          clearable
+          placeholder="璇疯緭鍏ュ叧閿瓧"
+          size="mini"
+          style="margin-right: 20px; width: 200px;margin-left: 10px;margin-top: 10px;"
+        />
+        <el-button type="primary" size="mini" @click="searchSubmit" style="margin-top: 10px;">鏌ヨ</el-button >
+        <el-button type="primary" size="mini" @click="empty" style="margin-top: 10px;">娓呯┖</el-button>
+    <el-card style="flex: 1;margin-left: 10px;margin-top: 15px;" v-loading="loading">
+      <div style="width: 98%; height: calc(100% - 35px); overflow-y: auto;max-height: 200px;">
+        <el-table height="100%" ref="table" 
+        @selection-change="handleSelectionChange"
+        :data="tableData" :header-cell-style="{background:'#F2F3F5 ',color:'#1D2129'}">
+          <el-table-column prop="id" align="center" label="瑙掕壊" min-width="80" />
+          <el-table-column prop="long" align="center" label="鏉冮檺鎻忚堪" min-width="120" />
+          <el-table-column prop="wide" align="center" label="鏉冮檺鍊�" min-width="120" />
+          <el-table-column prop="time" align="center" label="鍒涘缓鏃堕棿" min-width="120" />
+        <el-table-column align="center"  prop="changer" label="鏄惁婵�娲�"  min-width="140">
+           <template #default="scope">
+           <el-switch  v-model="scope.row.changer"  :before-change="beforeChange" />
+         </template>
+         </el-table-column>
+          <el-table-column fixed="right" label="鎿嶄綔" align="center" width="200">
+            <template #default>
+              <el-button size="mini" type="text" plain  @click="adda = true">缂栬緫</el-button>
+              <el-button size="mini" type="text" plain  @click="delete">鍒犻櫎</el-button>
+            </template>
+        </el-table-column>
+        </el-table>
+      </div>
+    </el-card>
+   
+  </div>
+  
+  <el-dialog v-model="add" top="23vh" width="37%" title="娣诲姞鏉冮檺" >
+    <div style="margin-left: -50px;margin-top: 10px;margin-bottom: 10px;">
+            <el-form  size="mini" label-width="150px">
+      <el-form label-width="100px" label-position="right">
+        <el-row style="margin-top: 10px;">
+          <el-col :span="6">
+              <div id="dt" style="font-size: 15px;">
+        <div>
+              <el-form-item label="瑙掕壊锛�" :required="true" style="width: 25vw;">
+                <el-select
+               v-model="value"
+               clearable
+               placeholder="璇烽�夋嫨瑙掕壊"
+               style="width: 330px"
+             >
+               <el-option
+            v-for="item in options"
+            :key="item.value"
+            :label="item.label"
+            :value="item.value"
+          />
+        </el-select>
+              </el-form-item></div></div>
+          </el-col>
+        </el-row>
+        <el-row style="margin-top: 10px;">
+          <el-col :span="6">
+              <div id="dt" style="font-size: 15px;">
+        <div>
+              <el-form-item label="鏉冮檺锛�" :required="true" style="width: 25vw;">
+                <el-select
+               v-model="value"
+               clearable
+               placeholder="璇烽�夋嫨鏉冮檺"
+               style="width: 330px"
+             >
+               <el-option
+            v-for="item in options"
+            :key="item.value"
+            :label="item.label"
+            :value="item.value"
+          />
+        </el-select>
+              </el-form-item></div></div>
+          </el-col>
+        </el-row>
+        <el-row style="margin-top: 10px;">
+          <el-col :span="6">
+              <div id="dt" style="font-size: 15px;">
+        <div>
+              <el-form-item label="鏄惁婵�娲�" :required="true" style="width: 25vw;">
+                <el-select
+               v-model="value"
+               clearable
+               placeholder="璇烽�夋嫨鏄惁婵�娲�"
+               style="width: 330px"
+             >
+               <el-option
+            v-for="item in optionsa"
+            :key="item.valuea"
+            :label="item.labela"
+            :value="item.valuea"
+          />
+        </el-select>
+              </el-form-item></div></div>
+          </el-col>
+        </el-row>
+        </el-form>
+            </el-form>
+          </div>
+    <template #footer>
+      <div id="dialog-footer">
+        <el-button type="primary" @click="getTableRow('edit')">
+          纭
+        </el-button>
+        <el-button @click="add = false">鍙栨秷</el-button>
+      </div>
+    </template>
+  </el-dialog>
+  <el-dialog v-model="adda" top="23vh" width="37%" title="淇敼鏉冮檺" >
+    <div style="margin-left: -50px;margin-top: 10px;margin-bottom: 10px;">
+            <el-form  size="mini" label-width="150px">
+      <el-form label-width="100px" label-position="right">
+        <el-row style="margin-top: 10px;">
+          <el-col :span="6">
+              <div id="dt" style="font-size: 15px;">
+        <div>
+              <el-form-item label="瑙掕壊锛�" :required="true" style="width: 25vw;">
+                <el-select
+               v-model="value"
+               clearable
+               placeholder="璇烽�夋嫨瑙掕壊"
+               style="width: 330px"
+             >
+               <el-option
+            v-for="item in options"
+            :key="item.value"
+            :label="item.label"
+            :value="item.value"
+          />
+        </el-select>
+              </el-form-item></div></div>
+          </el-col>
+        </el-row>
+        <el-row style="margin-top: 10px;">
+          <el-col :span="6">
+              <div id="dt" style="font-size: 15px;">
+        <div>
+              <el-form-item label="鏉冮檺锛�" :required="true" style="width: 25vw;">
+                <el-select
+               v-model="value"
+               clearable
+               placeholder="璇烽�夋嫨鏉冮檺"
+               style="width: 330px"
+             >
+               <el-option
+            v-for="item in options"
+            :key="item.value"
+            :label="item.label"
+            :value="item.value"
+          />
+        </el-select>
+              </el-form-item></div></div>
+          </el-col>
+        </el-row>
+        <el-row style="margin-top: 10px;">
+          <el-col :span="6">
+              <div id="dt" style="font-size: 15px;">
+        <div>
+              <el-form-item label="鏄惁婵�娲�" :required="true" style="width: 25vw;">
+                <el-select
+               v-model="value"
+               clearable
+               placeholder="璇烽�夋嫨鏄惁婵�娲�"
+               style="width: 330px"
+             >
+               <el-option
+            v-for="item in optionsa"
+            :key="item.valuea"
+            :label="item.labela"
+            :value="item.valuea"
+          />
+        </el-select>
+              </el-form-item></div></div>
+          </el-col>
+        </el-row>
+        </el-form>
+            </el-form>
+          </div>
+    <template #footer>
+      <div id="dialog-footer">
+        <el-button type="primary" @click="getTableRow('edit')">
+          纭
+        </el-button>
+        <el-button @click="adda = false">鍙栨秷</el-button>
+      </div>
+    </template>
+  </el-dialog>
+</template>
+
+<style scoped>
+
+#dt { display:block; float:left;line-height: 20px;margin-left: 100px;}
+#dta { display:block; float:left;line-height: 20px;margin-left: 80%;}
+#dialog-footer{
+  text-align: center;
+  margin-top: -15px;
+}
+#message{
+  text-align: center;
+  align-items: center;
+  color: black;
+   width: 200px;
+   height: 100px;
+   background-color: #337ecc;
+   margin-left: 28%;
+}
+#awatch{
+  height: 450px;
+}
+#main-body{
+  margin-top: -20px;
+  margin-left: 300px;
+}
+#main-bodya{
+  margin-top: -10px;
+  margin-left: 100px;
+}
+</style>
\ No newline at end of file
diff --git a/UI-Project/src/views/Returns/returns.vue b/UI-Project/src/views/Returns/returns.vue
index a0a97f9..dacd22f 100644
--- a/UI-Project/src/views/Returns/returns.vue
+++ b/UI-Project/src/views/Returns/returns.vue
@@ -233,7 +233,7 @@
       </div>
     </el-card>
       <div id="parent">
-        <img src="../../assets/shangpianji .png" alt="" style="max-width: 20%;max-height: 20%;margin-top: 20px;margin-left: 130px;">
+        <img src="../../assets/shangpianji .png" alt="" style="max-width: 20%;max-height: 20%;margin-top: 20px;margin-left: 500px;">
         <el-button style="margin-top: -830px;margin-left: -40px;"  size="mini" id="searchButton" @click="add = true">娣诲姞鍘熺墖</el-button>
         <el-button style="margin-top: -10px;margin-left: -80px;"  size="mini" id="searchButton"  @click="adda = true">娣诲姞鍘熺墖</el-button>
         <!-- <div id="overlay" v-show="state"></div> -->
diff --git a/UI-Project/src/views/StockBasicData/stockBasicData.vue b/UI-Project/src/views/StockBasicData/stockBasicData.vue
index cf2dab3..b4e4821 100644
--- a/UI-Project/src/views/StockBasicData/stockBasicData.vue
+++ b/UI-Project/src/views/StockBasicData/stockBasicData.vue
@@ -69,7 +69,33 @@
     }
   }
 }
-
+const dialogForm = () => {
+  ElMessageBox.confirm(
+    '鏄惁鐮存崯?',
+    '鎻愮ず',
+    {
+      confirmButtonText: '鏄�',
+      cancelButtonText: '鍙栨秷',
+      type: 'warning',
+    }
+  )
+  .then(() => {
+    // this.boxa = true
+    // this.box = false
+      
+    })
+}
+const dialogForma = () => {
+  ElMessageBox.confirm(
+    '鏄惁鍒犻櫎璇ユ潯淇℃伅?',
+    '鎻愮ず',
+    {
+      confirmButtonText: '鏄�',
+      cancelButtonText: '鍙栨秷',
+      type: 'warning',
+    }
+  )
+}
 const gridOptions = reactive({
   border:  "full",//琛ㄦ牸鍔犺竟妗�
   keepSource: true,//淇濇寔婧愭暟鎹�
@@ -127,8 +153,8 @@
           <el-table-column prop="wide" align="center" label="鍏朵粬" min-width="120" />
           <el-table-column fixed="right" label="鎿嶄綔" align="center" width="200">
             <template #default>
-              <el-button size="mini" type="text" plain  @click="dialogFormVisiblea = true">鐮存崯</el-button>
-              <el-button size="mini" type="text" plain  @click="dialogFormVisiblea = true">鍒犻櫎</el-button>
+              <el-button size="mini" type="text" plain  @click="dialogForm">鐮存崯</el-button>
+              <el-button size="mini" type="text" plain  @click="dialogForma">鍒犻櫎</el-button>
             </template>
         </el-table-column>
         </el-table>
diff --git a/UI-Project/src/views/UnLoadGlass/loadmachinerack.vue b/UI-Project/src/views/UnLoadGlass/loadmachinerack.vue
index 2795d46..5c43e1d 100644
--- a/UI-Project/src/views/UnLoadGlass/loadmachinerack.vue
+++ b/UI-Project/src/views/UnLoadGlass/loadmachinerack.vue
@@ -1,166 +1,51 @@
 <script setup>
 import {Search} from "@element-plus/icons-vue";
-import {reactive,  onMounted} from "vue";
+import {reactive} from "vue";
 import {useRouter} from "vue-router"
 const router = useRouter()
 
+const dialogFormVisiblea = ref(false)
 import { ref } from 'vue'
 import { ElMessage, ElMessageBox } from 'element-plus'
 import Landingindication from "./Landingindication.vue";
-import Landingindicationtwo from "./Landingindicationtwo.vue";
-import unloadrequest from "@/utils/unloadrequest";
-const dialogFormVisiblea = ref(false)
 
-
-
-const dialogFormVisiblea2 = ref(false)
-
-
-const tableData = reactive([]);
-
-
-
-
-
-// 鏁版嵁
-const loading = ref(false);
-
-
-// 寮规鏄剧ず鎺у埗
-
-const dialogFormVisible = ref(false);
-
-// 琛ㄥ崟鏁版嵁
-const workstationId = ref('');
-const flowCardId = ref('');
-const flowCardOptions = ref([]);
-
-
-// 鏂规硶
-const handleSelectionChange = () => {
-  // 澶勭悊琛ㄦ牸琛岄�夋嫨浜嬩欢
-};
-
-const handleBindRack = (row) => {
-  workstationId.value = row.workstationId; // 鍋囪rackNumber鏄灦鍙峰瓧娈电殑灞炴�у悕
-
-  // 鍙戣捣鎺ュ彛璇锋眰鑾峰彇娴佺▼鍗″彿
-    fetchFlowCardId(); 
-
-
-  dialogFormVisiblea.value = true; // 鎵撳紑缁戝畾鏋跺瓙瀵硅瘽妗�
-};
-
-
-
-//鑾峰彇娴佺▼鍗″彿
-const fetchFlowCardId = async () => {
-  try {
-    const response = await unloadrequest.get('/api/downWorkstation/getflowCardId');
-    console.log(response)
-    if (response.code === 200) {
-      flowCardOptions.value = response.data.map(item => ({ flowcard_id: item.flowcard_id }));
-    } else {
-      ElMessage.error(response.msg);
-    }
-  } catch (error) {
-    console.error(error);
-  }
-};
-//纭
-const handleConfirm = async () => {
-  try {
-    const response = await unloadrequest.post('/api/downWorkstation/updateFlowCardId', {
-      workstationId: workstationId.value,
-      flowCardId: flowCardId.value
-    }); 
-
-    console.log(response)
-    if (response.code == 200) {
-      // 缁戝畾鎴愬姛锛屽鐞嗛�昏緫
-      console.log('缁戝畾鎴愬姛');
-      ElMessage.success(response.message);
-      dialogFormVisiblea.value = false;
-    } else {
-      // 璇锋眰澶辫触锛屾樉绀洪敊璇秷鎭�
-      ElMessage.error(response.msg);
-    }
-  } catch (error) {
-    // 澶勭悊閿欒
-    console.error(error);
-  }
-};
-
-
-
-const handleBindRack2 = (row) => {
-  workstationId.value = row.workstationId; // 鍋囪rackNumber鏄灦鍙峰瓧娈电殑灞炴�у悕
-
-
-
-
-  dialogFormVisiblea2.value = true; // 鎵撳紑缁戝畾鏋跺瓙瀵硅瘽妗�
-};
-//娓呴櫎鍐呭
-const handleclear = async () => {
-    try {
-        const response = await unloadrequest.post('/api/downWorkstation/clear', {
-            workstationId: workstationId.value,
-        });
-
-        console.log(response);
-
-        if (response.code === 200) {
-            // 娓呴櫎鎴愬姛鐨勯�昏緫
-            console.log('娓呴櫎鎴愬姛');
-            ElMessage.success(response.message);
-            dialogFormVisiblea2.value = false;
-        } else if (response.code === 400) {
-            // 娓呴櫎澶辫触鐨勯�昏緫
-            console.log('娓呴櫎澶辫触');
-            console.log(response.message); // 鎵撳嵃鏈嶅姟鍣ㄨ繑鍥炵殑閿欒淇℃伅
-            ElMessage.error(response.message);
-            dialogFormVisiblea2.value = false;
-        }
-    } catch (error) {
-        // console.log(error);
-         ElMessage.error("娓呴櫎澶辫触");
-            dialogFormVisiblea2.value = false;
-    }
-};
-
-
-
-
-
-// 鍙戦�佽幏鍙栬〃鏍兼暟鎹殑璇锋眰
-const fetchTableData = async () => {
-  try {
-    // 鍙戦�佽幏鍙栬〃鏍兼暟鎹殑璇锋眰锛屽苟绛夊緟鍝嶅簲
-    const response = await unloadrequest.get('/api/downWorkstation/getone');
-
-    // 妫�鏌ュ搷搴旂姸鎬�
-    if (response.code === 200) {
-      // 鏇存柊琛ㄦ牸鏁版嵁
-      console.log('鎴愬姛鑾峰彇琛ㄦ牸鏁版嵁:', response.data);
-      tableData.splice(0, tableData.length, ...response.data);
-    } else {
-      // 璇锋眰澶辫触锛屾樉绀洪敊璇秷鎭�
-      ElMessage.error(response.msg);
-    }
-  } catch (error) {
-    // 澶勭悊璇锋眰澶辫触鐨勬儏鍐�
-    ElMessage.error('鑾峰彇琛ㄦ牸鏁版嵁澶辫触锛岃閲嶈瘯');
-  }
-};
-
-
-
-
-// initWebSocket();
-onMounted(fetchTableData);
- setInterval(fetchTableData, 2000)
-
+const tableData = [
+  {
+    id: '1',
+    long: '1005',
+    wide: '183.6',
+    thick: '1991',
+    state: '鏈惎鐢�',
+  },
+  {
+    id: '2',
+    long: '105',
+    wide: '183',
+    thick: '191',
+    state: '鏈惎鐢�'
+  },
+  {
+    id: '3',
+    long: '105',
+    wide: '183',
+    thick: '191',
+    state: '鏈惎鐢�'
+  },
+  {
+    id: '4',
+    long: '105',
+    wide: '183',
+    thick: '191',
+    state: '鏈惎鐢�'
+  },
+  {
+    id: '5',
+    long: '105',
+    wide: '183',
+    thick: '191',
+    state: '鏈惎鐢�'
+  },
+]
 const open = () => {
   ElMessageBox.confirm(
     '鏄惁鍒犻櫎璇ユ潯淇℃伅?',
@@ -198,6 +83,17 @@
   }
 }
 
+const dialogForm = () => {
+  ElMessageBox.confirm(
+    '鏄惁娓呯┖璇ユ潯淇℃伅?',
+    '鎻愮ず',
+    {
+      confirmButtonText: '鏄�',
+      cancelButtonText: '鍙栨秷',
+      type: 'warning',
+    }
+  )
+}
 const gridOptions = reactive({
   border:  "full",//琛ㄦ牸鍔犺竟妗�
   keepSource: true,//淇濇寔婧愭暟鎹�
@@ -236,10 +132,6 @@
   ],
 })
 
-
-
-
-
 </script>
 
 <template>
@@ -249,80 +141,50 @@
         <el-table height="100%" ref="table" 
         @selection-change="handleSelectionChange"
         :data="tableData" :header-cell-style="{background:'#F2F3F5 ',color:'#1D2129'}">
-          <el-table-column prop="workstationId" align="center" label="涓嬬墖浣�" min-width="80" />
-          <el-table-column prop="workstationId" align="center" label="鏋跺彿" min-width="120" />
-          <el-table-column prop="flowCardId" align="center" label="娴佺▼鍗″彿" min-width="120" />
-          <el-table-column prop="totalquantity" align="center" label="鎬绘暟閲�" min-width="120" />
-          <el-table-column prop="racksnumber" align="center" label="宸茶惤鏋舵暟閲�" min-width="120" />
-          <el-table-column prop="work_state" align="center" label="鐘舵��" min-width="120" />
-          <el-table-column prop="deviceId" align="center" label="璁惧鍙�" min-width="120" />
-          <el-table-column prop="enableState" align="center" label="鍚敤鐘舵��" min-width="120" />
+          <el-table-column prop="id" align="center" label="涓嬬墖浣�" min-width="80" />
+          <el-table-column prop="long" align="center" label="鏋跺彿" min-width="120" />
+          <el-table-column prop="wide" align="center" label="娴佺▼鍗″彿" min-width="120" />
+          <el-table-column prop="wide" align="center" label="鎬绘暟閲�" min-width="120" />
+          <el-table-column prop="wide" align="center" label="宸茶惤鏋舵暟閲�" min-width="120" />
+          <el-table-column prop="state" align="center" label="鍚敤鐘舵��" min-width="120" />
           <el-table-column fixed="right" label="鎿嶄綔" align="center" width="200">
-            <template #default="scope">
-            <el-button size="mini" type="text" plain v-show="scope.row.enableState !== '宸插惎鐢�' " @click="handleBindRack(scope.row)">缁戝畾鏋跺瓙</el-button>
-            <el-button size="mini" type="text" plain  @click="handleBindRack2(scope.row)">娓呯┖</el-button>
-          </template>
+            <template #default>
+              <el-button size="mini" type="text" plain v-show="state !== '宸插惎鐢�' " @click="dialogFormVisiblea = true">缁戝畾鏋跺瓙</el-button>
+              <el-button size="mini" type="text" plain   @click="dialogForm">娓呯┖</el-button>
+            </template>
         </el-table-column>
         </el-table>
       </div>
     </el-card>
-
-
+   
+  </div>
+  <div style="display: flex;">
+  <div id="main-body">
+      <Landingindication></Landingindication>
+    </div>
+    </div>
     <el-dialog v-model="dialogFormVisiblea" top="21vh" width="30%" title="缁戝畾鏋跺瓙" >
     <div style="margin-left: 50px;margin-top: 10px;margin-bottom: 10px;">
-      <el-form  size="mini" label-width="150px">
-        <el-form  label-width="100px" label-position="right">
-          <el-form-item label="鏋跺彿锛�" :required="true" style="width: 18vw">
-            <el-input v-model="workstationId" autocomplete="off"/>
-          </el-form-item>
-          <el-form-item label="娴佺▼鍗″彿锛�" :required="true" style="width: 18vw;">
-          <el-select v-model="flowCardId" placeholder="璇烽�夋嫨娴佺▼鍗″彿">
-            <el-option v-for="item in flowCardOptions" :key="item.flowcard_id" :label="item.flowcard_id" :value="item.flowcard_id" />
-          </el-select>
-        </el-form-item>
-      </el-form>
-      </el-form>
-    </div>
+            <el-form  size="mini" label-width="150px">
+      <el-form  label-width="100px" label-position="right">
+              <el-form-item label="鏋跺彿锛�" :required="true" style="width: 18vw">
+                <el-input  autocomplete="off"/>
+              </el-form-item>
+              <el-form-item label="娴佺▼鍗″彿锛�" :required="true" style="width: 18vw;">
+                <el-input autocomplete="off" />
+              </el-form-item>
+        </el-form>
+            </el-form>
+          </div>
     <template #footer>
       <div id="dialog-footer">
-        <el-button type="primary" @click="handleConfirm">
+        <el-button type="primary" @click="dialogFormVisiblea = false">
           纭
         </el-button>
         <el-button @click="dialogFormVisiblea = false">鍙栨秷</el-button>
       </div>
     </template>
   </el-dialog>
-
-
-
-
-  <el-dialog v-model="dialogFormVisiblea2" top="21vh" width="30%" title="娓呴櫎鏋跺瓙鐜荤拑" >
-
-    <template #footer>
-      <div id="dialog-footer">
-        <el-button type="primary" @click="handleclear">
-          纭
-        </el-button>
-        <el-button @click="dialogFormVisiblea2 = false">鍙栨秷</el-button>
-      </div>
-    </template>
-  </el-dialog>
-
-
-    <!-- workstationId: '1',
-    workstationId: '1005',
-    flowCardId: '183.6',
-    totalquantity: '1991',
-    racksnumber:"1",
-    work_state: '寰呰瘑鍒�', -->
-  </div>
-  <div style="display: flex;">
-  <div id="main-body">
-      <Landingindication></Landingindication>
-    </div>
-  <div id="main-bodya">
-    <Landingindicationtwo></Landingindicationtwo>
-    </div></div>
 </template>
 
 <style scoped>
@@ -346,11 +208,7 @@
   height: 450px;
 }
 #main-body{
-  margin-top: -20px;
-  margin-left: 300px;
-}
-#main-bodya{
   margin-top: -10px;
-  margin-left: 100px;
+  margin-left: 450px;
 }
 </style>
\ No newline at end of file
diff --git a/UI-Project/src/views/UnLoadGlass/loadmachineracktwo.vue b/UI-Project/src/views/UnLoadGlass/loadmachineracktwo.vue
index 7219413..a469701 100644
--- a/UI-Project/src/views/UnLoadGlass/loadmachineracktwo.vue
+++ b/UI-Project/src/views/UnLoadGlass/loadmachineracktwo.vue
@@ -84,6 +84,17 @@
   }
 }
 
+const dialogForm = () => {
+  ElMessageBox.confirm(
+    '鏄惁娓呯┖璇ユ潯淇℃伅?',
+    '鎻愮ず',
+    {
+      confirmButtonText: '鏄�',
+      cancelButtonText: '鍙栨秷',
+      type: 'warning',
+    }
+  )
+}
 const gridOptions = reactive({
   border:  "full",//琛ㄦ牸鍔犺竟妗�
   keepSource: true,//淇濇寔婧愭暟鎹�
@@ -140,7 +151,7 @@
           <el-table-column fixed="right" label="鎿嶄綔" align="center" width="200">
             <template #default>
               <el-button size="mini" type="text" plain v-show="state !== '宸插惎鐢�' " @click="dialogFormVisiblea = true">缁戝畾鏋跺瓙</el-button>
-              <el-button size="mini" type="text" plain  @click="dialogFormVisible = true">娓呯┖</el-button>
+              <el-button size="mini" type="text" plain   @click="dialogForm">娓呯┖</el-button>
             </template>
         </el-table-column>
         </el-table>
diff --git a/UI-Project/src/views/User/userlist.vue b/UI-Project/src/views/User/userlist.vue
new file mode 100644
index 0000000..15a996d
--- /dev/null
+++ b/UI-Project/src/views/User/userlist.vue
@@ -0,0 +1,461 @@
+<script lang="ts" setup>
+import {Search} from "@element-plus/icons-vue";
+import {reactive} from "vue";
+import {useRouter} from "vue-router"
+import { ref } from 'vue'
+
+const router = useRouter()
+const value1 = ref(true)
+const add = ref(false)
+const adda = ref(false)
+
+const changer = ref(false)
+import { ElMessage, ElMessageBox } from 'element-plus'
+
+const tableData = [
+  {
+    id: '1',
+    long: '1005',
+    wide: '183.6',
+    thick: '1991',
+    time: '2024/4/1',
+    type: '寰呰瘑鍒�',
+    typea: '1',
+  },
+  {
+    id: '2',
+    long: '105',
+    wide: '183',
+    time: '2024/4/1',
+    thick: '191',
+    typea: '1',
+    type: '寰呰瘑鍒�'
+  },
+  {
+    id: '2',
+    long: '105',
+    wide: '183',
+    time: '2024/4/1',
+    thick: '191',
+    typea: '1',
+    type: '寰呰瘑鍒�'
+  },
+]
+const open = () => {
+  ElMessageBox.confirm(
+    '鏄惁鍒犻櫎璇ユ潯淇℃伅?',
+    '鎻愮ず',
+    {
+      confirmButtonText: '鏄�',
+      cancelButtonText: '鍙栨秷',
+      type: 'warning',
+    }
+  )
+    .then(() => {
+      ElMessage({
+        type: 'success',
+        message: '鍒犻櫎鎴愬姛锛�',
+      })
+    })
+    .catch(() => {
+      ElMessage({
+        type: 'info',
+        message: '鍒犻櫎澶辫触',
+      })
+    })
+}
+const getTableRow = (row,type) =>{
+  switch (type) {
+    case 'edit' :{
+      //alert('鎴戞帴鏀跺埌瀛愮粍浠朵紶閫佺殑缂栬緫淇℃伅')
+      router.push({path: '/main/returns/createReturns', query: { ReturnID: 'TH24010101' }})
+      break
+    }
+    case 'delete':{
+      alert('鎴戞帴鏀跺埌瀛愮粍浠朵紶閫佺殑鍒犻櫎淇℃伅')
+      break
+    }
+  }
+}
+const dialogForm = () => {
+  ElMessageBox.confirm(
+    '鏄惁閲嶇疆瀵嗙爜?',
+    '鎻愮ず',
+    {
+      confirmButtonText: '鏄�',
+      cancelButtonText: '鍙栨秷',
+      type: 'warning',
+    }
+  )
+  .then(() => {
+    // this.boxa = true
+    // this.box = false
+      
+    })
+}
+const dialogForma = () => {
+  ElMessageBox.confirm(
+    '鏄惁鍒犻櫎璇ユ潯淇℃伅?',
+    '鎻愮ず',
+    {
+      confirmButtonText: '鏄�',
+      cancelButtonText: '鍙栨秷',
+      type: 'warning',
+    }
+  )
+}
+
+const options = [
+  {
+    value: 'Option1',
+    label: 'admin',
+  },
+  {
+    value: 'Option2',
+    label: 'ueser2',
+  },
+  {
+    value: 'Option3',
+    label: 'ueser3',
+  },
+]
+const optionsa = [
+  {
+    valuea: 'Option1',
+    labela: '姝e父',
+  },
+  {
+    valuea: 'Option2',
+    labela: '绂佺敤',
+  },
+]
+
+const data= reactive({
+   tableList:[]//table鏁版嵁
+})
+
+const beforeChange = () => {
+  return new Promise((resolve) => {
+    setTimeout(() => {
+      ElMessage.success("淇敼鎴愬姛锛�");
+      return resolve(true);
+    }, 1000);
+  });
+};
+
+// //js灞傦紝瀹炴垬鐗堟湰,涓庡悗鍙版帴鍙d氦浜�
+// const gettableList = (id) = >{
+//   xxx鎺ュ彛.({
+//    id:id
+// }).then((res)=>{
+//    //灏嗘暟鎹紶缁檈l-table缁戝畾鐨�:data=>data.tableList
+//    data.tableList = res.data
+   
+// })
+// }
+ 
+// //鏈�鍚庡皢璇锋眰鍑芥暟鎸傝浇鍒皏ue瑙嗗浘涓�
+// onMounted(() => {
+//   gettableList ()
+
+// })
+// const delete = () => {
+//   ElMessageBox.confirm(
+//     '鏄惁鍒犻櫎璇ユ潯淇℃伅?',
+//     '鎻愮ず',
+//     {
+//       confirmButtonText: '鏄�',
+//       cancelButtonText: '鍙栨秷',
+//       type: 'warning',
+//     }
+//   )
+//   .then(() => {
+      
+//     })
+// }
+const gridOptions = reactive({
+  border:  "full",//琛ㄦ牸鍔犺竟妗�
+  keepSource: true,//淇濇寔婧愭暟鎹�
+  align: 'center',//鏂囧瓧灞呬腑
+  stripe:true,//鏂戦┈绾�
+  rowConfig: {isCurrent: true, isHover: true,height: 50},//榧犳爣绉诲姩鎴栭�夋嫨楂樹寒
+  id: 'OrderList',
+  showFooter: true,//鏄剧ず鑴�
+  printConfig: {},
+  importConfig: {},
+  exportConfig: {},
+  scrollY:{ enabled: true },//寮�鍚櫄鎷熸粴鍔�
+  showOverflow:true,
+  columnConfig: {
+    resizable: true,
+    useKey: true
+  },
+  filterConfig: {   //绛涢�夐厤缃」
+    remote: true
+  },
+  customConfig: {
+    storage: true
+  },
+  editConfig: {
+    trigger: 'click',
+    mode: 'row',
+    showStatus: true
+  },
+  data:  [
+    {
+      'id': '1',
+      'long': '5',
+      'wide': '1005',
+      'thick': '183.6',
+      'time': '2024/4/1',
+    }
+  ]
+})
+
+</script>
+
+<template>
+  <div>
+        <el-button type="primary" style="margin-top: 10px;margin-left: 10px;"  size="mini" id="searchButton" @click="add = true">娣诲姞鐢ㄦ埛</el-button>
+        <el-input
+          clearable
+          placeholder="璇疯緭鍏ョ敤鎴峰悕"
+          size="mini"
+          style="margin-right: 20px; width: 200px;margin-left: 10px;margin-top: 10px;"
+        />
+        <el-input
+          clearable
+          placeholder="璇疯緭鍏ラ偖绠�"
+          size="mini"
+          style="margin-right: 20px; width: 200px;margin-left: 10px;margin-top: 10px;"
+        />
+        <el-button type="primary" size="mini" @click="searchSubmit" style="margin-top: 10px;">鏌ヨ</el-button >
+        <el-button type="primary" size="mini" @click="empty" style="margin-top: 10px;">娓呯┖</el-button>
+    <el-card style="flex: 1;margin-left: 10px;margin-top: 15px;" v-loading="loading">
+      <div style="width: 98%; height: calc(100% - 35px); overflow-y: auto;max-height: 200px;">
+        <el-table height="100%" ref="table" 
+        @selection-change="handleSelectionChange"
+        :data="tableData" :header-cell-style="{background:'#F2F3F5 ',color:'#1D2129'}">
+          <el-table-column prop="id" align="center" label="鐢ㄦ埛鍚�" min-width="80" />
+          <el-table-column prop="long" align="center" label="閭" min-width="120" />
+          <el-table-column prop="time" align="center" label="鍒涘缓鏃堕棿" min-width="120" />
+          <el-table-column  align="center" prop="changer"  label="鏄惁绂佺敤"   min-width="140"  >
+           <template #default="scope">
+           <el-switch  v-model="scope.row.changer"  :before-change="beforeChange" />
+         </template>
+         </el-table-column>
+
+          <el-table-column fixed="right" label="鎿嶄綔" align="center" width="200">
+            <template #default>
+              <el-button size="mini" type="text" plain  @click="dialogForm">閲嶇疆瀵嗙爜</el-button>
+              <el-button size="mini" type="text" plain  @click="adda = true">缂栬緫</el-button>
+              <el-button size="mini" type="text" plain  @click="dialogForma">鍒犻櫎</el-button>
+            </template>
+        </el-table-column>
+        </el-table>
+      </div>
+    </el-card>
+   
+  </div>
+  
+  <el-dialog v-model="add" top="23vh" width="37%" title="娣诲姞鐢ㄦ埛" >
+    <div style="margin-left: -50px;margin-top: 10px;margin-bottom: 10px;">
+            <el-form  size="mini" label-width="150px">
+      <el-form label-width="100px" label-position="right">
+        <el-row style="margin-top: -15px;margin-bottom: -2px;">
+          <el-col :span="6">
+              <div id="dt" style="font-size: 15px;">
+        <div>
+              <el-form-item label="鐢ㄦ埛鍚嶏細" :required="true" style="width: 25vw">
+                <el-input  autocomplete="off" />
+              </el-form-item></div></div>
+          </el-col>
+        </el-row>
+        <el-row style="margin-top: 10px;">
+          <el-col :span="6">
+              <div id="dt" style="font-size: 15px;">
+        <div>
+              <el-form-item label="瑙掕壊锛�" :required="true" style="width: 25vw;">
+                <el-select
+               v-model="value"
+               clearable
+               placeholder="璇烽�夋嫨瑙掕壊"
+               style="width: 330px"
+             >
+               <el-option
+            v-for="item in options"
+            :key="item.value"
+            :label="item.label"
+            :value="item.value"
+          />
+        </el-select>
+              </el-form-item></div></div>
+          </el-col>
+        </el-row>
+        <el-row style="margin-top: 10px;">
+          <el-col :span="6">
+              <div id="dt" style="font-size: 15px;">
+        <div>
+              <el-form-item label="閭锛�" :required="true" style="width: 25vw;">
+                <el-input autocomplete="off" />
+              </el-form-item></div></div>
+          </el-col>
+        </el-row>
+        <el-row style="margin-top: 10px;">
+          <el-col :span="6">
+              <div id="dt" style="font-size: 15px;">
+        <div>
+              <el-form-item label="鏄惁绂佺敤" :required="true" style="width: 25vw;">
+                <el-select
+               v-model="value"
+               clearable
+               placeholder="璇烽�夋嫨鏄惁绂佺敤"
+               style="width: 330px"
+             >
+               <el-option
+            v-for="item in optionsa"
+            :key="item.valuea"
+            :label="item.labela"
+            :value="item.valuea"
+          />
+        </el-select>
+              </el-form-item></div></div>
+          </el-col>
+        </el-row>
+        <el-row style="margin-top: 10px;">
+          <el-col :span="6">
+              <div id="dt" style="font-size: 15px;">
+        <div>
+              <el-form-item label="瀵嗙爜锛�" :required="true" style="width: 25vw;">
+                <el-input autocomplete="off" />
+              </el-form-item></div></div>
+          </el-col>
+        </el-row>
+        </el-form>
+            </el-form>
+          </div>
+    <template #footer>
+      <div id="dialog-footer">
+        <el-button type="primary" @click="getTableRow('edit')">
+          纭
+        </el-button>
+        <el-button @click="add = false">鍙栨秷</el-button>
+      </div>
+    </template>
+  </el-dialog>  
+  <el-dialog v-model="adda" top="23vh" width="37%" title="淇敼鐢ㄦ埛" >
+    <div style="margin-left: -50px;margin-top: 10px;margin-bottom: 10px;">
+            <el-form  size="mini" label-width="150px">
+      <el-form label-width="100px" label-position="right">
+        <el-row style="margin-top: -15px;margin-bottom: -2px;">
+          <el-col :span="6">
+              <div id="dt" style="font-size: 15px;">
+        <div>
+              <el-form-item label="鐢ㄦ埛鍚嶏細" :required="true" style="width: 25vw">
+                <el-input  autocomplete="off" />
+              </el-form-item></div></div>
+          </el-col>
+        </el-row>
+        <el-row style="margin-top: 10px;">
+          <el-col :span="6">
+              <div id="dt" style="font-size: 15px;">
+        <div>
+              <el-form-item label="瑙掕壊锛�" :required="true" style="width: 25vw;">
+                <el-select
+               v-model="value"
+               clearable
+               placeholder="璇烽�夋嫨瑙掕壊"
+               style="width: 330px"
+             >
+               <el-option
+            v-for="item in options"
+            :key="item.value"
+            :label="item.label"
+            :value="item.value"
+          />
+        </el-select>
+              </el-form-item></div></div>
+          </el-col>
+        </el-row>
+        <el-row style="margin-top: 10px;">
+          <el-col :span="6">
+              <div id="dt" style="font-size: 15px;">
+        <div>
+              <el-form-item label="閭锛�" :required="true" style="width: 25vw;">
+                <el-input autocomplete="off" />
+              </el-form-item></div></div>
+          </el-col>
+        </el-row>
+        <el-row style="margin-top: 10px;">
+          <el-col :span="6">
+              <div id="dt" style="font-size: 15px;">
+        <div>
+              <el-form-item label="鏄惁绂佺敤" :required="true" style="width: 25vw;">
+                <el-select
+               v-model="value"
+               clearable
+               placeholder="璇烽�夋嫨鏄惁绂佺敤"
+               style="width: 330px"
+             >
+               <el-option
+            v-for="item in optionsa"
+            :key="item.valuea"
+            :label="item.labela"
+            :value="item.valuea"
+          />
+        </el-select>
+              </el-form-item></div></div>
+          </el-col>
+        </el-row>
+        <el-row style="margin-top: 10px;">
+          <el-col :span="6">
+              <div id="dt" style="font-size: 15px;">
+        <div>
+              <el-form-item label="瀵嗙爜锛�" :required="true" style="width: 25vw;">
+                <el-input autocomplete="off" />
+              </el-form-item></div></div>
+          </el-col>
+        </el-row>
+        </el-form>
+            </el-form>
+          </div>
+    <template #footer>
+      <div id="dialog-footer">
+        <el-button type="primary" @click="getTableRow('edit')">
+          纭
+        </el-button>
+        <el-button @click="adda = false">鍙栨秷</el-button>
+      </div>
+    </template>
+  </el-dialog>
+</template>
+
+<style scoped>
+
+#dt { display:block; float:left;line-height: 20px;margin-left: 100px;}
+#dta { display:block; float:left;line-height: 20px;margin-left: 80%;}
+#dialog-footer{
+  text-align: center;
+  margin-top: -15px;
+}
+#message{
+  text-align: center;
+  align-items: center;
+  color: black;
+   width: 200px;
+   height: 100px;
+   background-color: #337ecc;
+   margin-left: 28%;
+}
+#awatch{
+  height: 450px;
+}
+#main-body{
+  margin-top: -20px;
+  margin-left: 300px;
+}
+#main-bodya{
+  margin-top: -10px;
+  margin-left: 100px;
+}
+</style>
\ No newline at end of file
diff --git a/src.rar b/src.rar
new file mode 100644
index 0000000..043e441
--- /dev/null
+++ b/src.rar
Binary files differ

--
Gitblit v1.8.0