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