严智鑫
2024-04-10 d56a642531aaf184c1431ae9bb1adee9418cae6c
更新
10个文件已修改
7个文件已添加
2496 ■■■■■ 已修改文件
CacheGlassModule/src/main/java/com/mes/controller/TidyUpGlassModuleController.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
UI-Project/package-lock.json 82 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
UI-Project/package.json 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
UI-Project/src/lang/LanguageMixin.js 14 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
UI-Project/src/lang/i18n.js 15 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
UI-Project/src/lang/locales/en-US.json 575 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
UI-Project/src/lang/locales/zh-CN.json 521 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
UI-Project/src/main.js 3 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
UI-Project/src/router/index.js 27 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
UI-Project/src/views/Caching/caching.vue 27 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
UI-Project/src/views/Permissions/permissionslist.vue 419 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
UI-Project/src/views/Returns/returns.vue 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
UI-Project/src/views/StockBasicData/stockBasicData.vue 32 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
UI-Project/src/views/UnLoadGlass/loadmachinerack.vue 302 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
UI-Project/src/views/UnLoadGlass/loadmachineracktwo.vue 13 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
UI-Project/src/views/User/userlist.vue 461 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src.rar 补丁 | 查看 | 原始文档 | blame | 历史
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() {
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",
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",
UI-Project/src/lang/LanguageMixin.js
New file
@@ -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);
      }
    }
  }
UI-Project/src/lang/i18n.js
New file
@@ -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
UI-Project/src/lang/locales/en-US.json
New file
@@ -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"
}
UI-Project/src/lang/locales/zh-CN.json
New file
@@ -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": "请输入QQ号码",
  "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": "请输入订单id",
  "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":"请输入铝框id",
  "Frame No":"铝框id",
  "Glass information corresponding to aluminum frame":"铝框对应的玻璃信息",
  "In the cage":"在笼内",
  "Flipped":"翻转",
  "In the queue":"在队列",
  "Enter the Frame No":"请输入铝框id",
  "Manually Infeed Glass":"手动进片",
  "Normal":"正常",
  "Entering":"正在进",
  "Outing":"正在出",
  "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 ?":"确定清除此玻璃id吗 ?",
  "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":"此铝框有正在出片的玻璃",
  "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":"设定"
}
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)
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',
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>
UI-Project/src/views/Permissions/permissionslist.vue
New file
@@ -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: '正常',
  },
  {
    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>
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> -->
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>
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>
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>
UI-Project/src/views/User/userlist.vue
New file
@@ -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: '正常',
  },
  {
    valuea: 'Option2',
    labela: '禁用',
  },
]
const data= reactive({
   tableList:[]//table数据
})
const beforeChange = () => {
  return new Promise((resolve) => {
    setTimeout(() => {
      ElMessage.success("修改成功!");
      return resolve(true);
    }, 1000);
  });
};
// //js层,实战版本,与后台接口交互
// const gettableList = (id) = >{
//   xxx接口.({
//    id:id
// }).then((res)=>{
//    //将数据传给el-table绑定的:data=>data.tableList
//    data.tableList = res.data
// })
// }
// //最后将请求函数挂载到vue视图上
// 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>
src.rar
Binary files differ