From 110ff41b225e47b736fea112c83955a107ead905 Mon Sep 17 00:00:00 2001
From: zhoushihao <zsh19950802@163.com>
Date: 星期二, 15 十月 2024 17:07:44 +0800
Subject: [PATCH] 代码合并--新增英文翻译切换按钮

---
 UI-Project/src/layout/MainErpView.vue |  187 +++++------
 UI-Project/src/lang/en.js             |  405 ++++++++++++++++++++----
 UI-Project/src/lang/py.js             |  300 ++++++++++++++++++
 UI-Project/src/lang/index.js          |    7 
 UI-Project/src/views/LoginView.vue    |   14 
 5 files changed, 727 insertions(+), 186 deletions(-)

diff --git a/UI-Project/src/lang/en.js b/UI-Project/src/lang/en.js
index d80a9be..eddcad4 100644
--- a/UI-Project/src/lang/en.js
+++ b/UI-Project/src/lang/en.js
@@ -188,26 +188,47 @@
         waiting:'袞写械屑.',
     },
     workOrder:{
-        glassID:'小褌械泻谢褟薪薪褘泄 ID',
-        height:'袙褘褋芯褌邪',
-        width:'楔懈褉懈薪邪',
-        thickness:'孝芯谢褖懈薪邪',
-        coatingtypes:'孝懈锌褘 锌芯泻褉褘褌懈泄',
-        productionsequence:'袩芯褋谢械写芯胁邪褌械谢褜薪芯褋褌褜 锌褉芯懈蟹胁芯写褋褌胁邪',
-        cardnumber:'袧芯屑械褉 泻邪褉褌芯褔泻懈 锌褉芯褑械褋褋邪',
-        operate:'袨锌械褉邪褑懈褟',
-        messagedamaged:'袩芯胁褉械卸写械薪芯 谢懈 褋芯芯斜褖械薪懈械锛�',
-        prompt:'袩芯写褋泻邪蟹泻',
-        yes:'袛邪',
-        cancel:'袨褌屑械薪邪',
-        takemessage:'小谢械写褍械褌 谢懈 褍写邪谢褟褌褜 褋芯芯斜褖械薪懈械锛�',
-        breakage:'袩芯胁褉械卸写械薪懈械',
-        takeout:'袙蟹褟褌褜',
+        glassID: 'Glass ID',
+        height: 'Height',
+        width: 'Width',
+        thickness: 'Thickness',
+        coatingtypes: 'Coating types',
+        productionsequence: 'Production sequence',
+        cardnumber: 'Process card number',
+        operate: 'Operate',
+        messagedamaged: 'Is this information damaged?',
+        prompt: 'Prompt',
+        yes: 'Yes',
+        cancel: 'Cancel',
+        takemessage: 'Do you need to delete the message锛�',
+        breakage: 'Breakage',
+        takeout: 'Take away',
+        glasstype: 'Glass type',
+        line: 'Wire',
+        status: 'Status',
     },
-    processCard:{
-        intofurnace:'袙 锌械褔褜',
-        beforefurnace:'袛芯 锌械褔泻懈.',
-        outfurnace:'袨泻芯薪褔械薪芯 褋褌械泻谢芯 懈蟹 锌械褔懈 写谢褟 蟹邪泻邪谢泻懈',
+    processCard: {
+        intofurnace: 'Entering the furnace',
+        beforefurnace: 'Before entering the furnace',
+        outfurnace: 'Glass finished from tempering furnace',
+        print: 'Take away the print',
+        printing: 'print',
+        projectnumber: 'Please enter the project number',
+        inquire: 'Inquire',
+        project: 'Project number',
+        awayprocess: 'Take away the process',
+        awayequipment: 'Take away the equipment',
+        awayteam: 'Take away the crew',
+        flowcard: 'Process card',
+        layer: 'Layer number',
+        temperinglayout: 'Heat number',
+        temperingfeed: 'Preface',
+        width: 'Width',
+        height: 'Height',
+        thickness: 'Thickness',
+        glasstakeout: 'Glass take away list',
+        layoutID: 'Drawing ID of loading for tempering furnace',
+        glassID: 'Glass ID',
     },
     reportWork:{
         lowerbit:'小褌邪薪褑懈褟 褉邪蟹谐褉褍蟹泻懈',
@@ -237,66 +258,292 @@
         width:'楔懈褉懈薪邪',
         height:'袙褘褋芯褌邪',
     },
-    productStock:{
-        addusers:'袛芯斜邪胁褜褌械 锌芯谢褜蟹芯胁邪褌械谢械泄.',
-        username:'袠屑褟 锌芯谢褜蟹芯胁邪褌械谢褟.',
-        usernamea:'袠屑褟 锌芯谢褜蟹芯胁邪褌械谢褟.锛�',
-        inusername:'袙胁械写懈褌械 懈屑褟 锌芯谢褜蟹芯胁邪褌械谢褟',
-        role:'袪芯谢褜',
-        rolea:'袪芯谢褜锛�',
-        inrole:'袙褘斜械褉懈褌械 褉芯谢褜',
-        test:'孝械褋褌',
-        admin:'袗写屑懈薪懈褋褌褉邪褌芯褉.',
-        operate:'袨锌械褉邪褑懈褟',
-        resetpassword:'小斜褉芯褋懈褌褜 锌邪褉芯谢褜',
-        exit:'袪械写邪泻褌芯褉',
-        delete:'校写邪谢',
-        prompt:'袩芯写褋泻邪蟹泻',
-        repassword:'袩械褉械蟹邪谐褉褍蟹泻邪 锌芯谢褜蟹芯胁邪褌械谢褜褋泻芯谐芯 锌邪褉芯谢褟 懈谢懈 薪械褌锛�',
-        yes:'袛邪',
-        cancel:'袨褌屑械薪邪',
-        reusername:'袠蟹屑械薪械薪懈械 锌芯谢褜蟹芯胁邪褌械谢褟',
-        addusername:'袛芯斜邪胁褜褌械 锌芯谢褜蟹芯胁邪褌械谢械泄.',
-        password:'袣芯写锛�',
-        sure:'锌芯写褌胁械褉写',
-        inpassword:'袙胁械写懈褌械 锌邪褉芯谢褜.',
-        deusername:'校写邪谢械薪懈械 锌芯谢褜蟹芯胁邪褌械谢褟 懈谢懈 薪械褌锛�',
+
+    productStock: {
+        addusers: 'Add user',
+        username: 'User name',
+        usernamea: 'User name锛�',
+        inusername: 'Enter one user name',
+        role: 'Role',
+        rolea: 'Role锛�',
+        inrole: 'Please select a role',
+        test: 'Test',
+        admin: 'Administrator',
+        operate: 'Operate',
+        resetpassword: 'Reset password',
+        exit: 'Edit',
+        delete: 'Delete',
+        prompt: 'Prompt',
+        repassword: 'Do you want to reset the user password锛�',
+        yes: 'Yes',
+        cancel: 'Cancel',
+        reusername: 'Modify Users',
+        addusername: 'Add user',
+        password: 'Password锛�',
+        sure: 'Confirm',
+        inpassword: 'Please input a password',
+        deusername: 'Do you want to delete the user锛�',
     },
-    customer:{
-        addmenu:'袛芯斜邪胁褜褌械 屑械薪褞.',
-        firstmenu:'孝邪斜谢懈褑邪 屑械薪褞 锌械褉胁芯泄 褋褌械锌械薪懈',
-        link:'小褋褘谢泻',
-        linka:'小褋褘谢泻锛�',
-        inlink:'袙胁械写懈褌械 褋褋褘谢泻褍',
-        sort:'小芯褉褌懈褉芯胁泻',
-        sorta:'小芯褉褌懈褉芯胁泻锛�',
-        insort:'袙胁械写懈褌械 褋芯褉褌懈褉芯胁泻褍',
-        operate:'袨锌械褉邪褑懈褟',
-        exit:'袪械写邪泻褌芯褉',
-        inmenu:'袙胁械写懈褌械 屑械薪褞',
-        delete:'校写邪谢',
-        semenu:'孝邪斜谢懈褑邪 屑械薪褞 胁褌芯褉芯泄 褋褌械锌械薪懈',
-        menu:'袦械薪褞.锛�',
-        sure:'锌芯写褌胁械褉写',
-        cancel:'袨褌屑械薪邪',
-        exmene:'袠蟹屑械薪械薪懈械 屑械薪褞.',
-        yes:'袛邪',
-        demenu:'校写邪谢懈褌褜 屑械薪褞 懈谢懈 薪械褌锛�',
-        prompt:'袩芯写褋泻邪蟹泻',
+    customer: {
+        addmenua: 'Add secondary menus',
+        addmenu: 'Add a first-level menu',
+        firstmenu: 'First level menu bar',
+        firstmenuname: 'The name of the first-level menu:',
+        link: 'Link',
+        inlink: 'Please enter the link',
+        linka: 'Link锛�',
+        sort: 'Sort',
+        insort: 'Please enter sorting',
+        sorta: 'Sort锛�',
+        operate: 'Operate',
+        exit: 'Edit',
+        delete: 'Delete',
+        semenu: 'Secondary menu bar',
+        semenuname: 'Secondary menu name:',
+        menu: 'Menu bar锛�',
+        inmenu: 'Please enter a menu name',
+        sure: 'Confirm',
+        cancel: 'Cancel',
+        exmene: 'Modify the first-level menu',
+        exmenea: 'Modify the secondary menu',
+        yes: 'Yes',
+        demenu: 'Do you want to delete this menu锛�',
+        prompt: 'Prompt',
     },
-    delivery:{
-        addrole:'袛芯斜邪胁褜褌械 褉芯谢懈.',
-        editrole:'袠蟹屑械薪械薪懈械 褉芯谢懈.',
-        role :'袪芯谢褜',
-        rolea :'袪芯谢褜锛�',
-        inrole :'袙胁械写懈褌械 褉芯谢懈.',
-        operate :'袨锌械褉邪褑懈褟',
-        edit :'袪械写邪泻褌芯褉',
-        delete :'校写邪谢',
-        sure :'锌芯写褌胁械褉写',
-        cancel :'袨褌屑械薪邪',
-        yes:'袛邪',
-        derole :'校写邪谢懈褌褜 锌械褉褋芯薪邪卸 懈谢懈 薪械褌锛�',
-        prompt:'袩芯写褋泻邪蟹泻',
+    delivery: {
+        addrole: 'Add Role',
+        editrole: 'Modify role',
+        role: 'Role',
+        rolea: 'Role锛�',
+        inrole: 'Please enter the role',
+        operate: 'Operate',
+        edit: 'Edit',
+        delete: 'Delete',
+        yes: 'Yes',
+        sure: 'Confirm',
+        cancel: 'Cancel',
+        derole: 'Do you want to delete this role',
+        prompt: 'Prompt',
+        choice: 'Menu permissions锛�',
+        inchoice: 'Please select Menu Permissions',
     },
-  }
\ No newline at end of file
+    replenish: {
+        patchManagement: 'Mesh management',
+
+    },
+    rework: {
+        reworkManagement: 'Rework management',
+        addRework: "Rework added ",
+    },
+
+
+    role: {
+        id: 'ID',
+        characterHomepage: 'Character Home',
+    },
+    user: {
+        userId: 'User ID',
+        userHomepage: 'User Home',
+    },
+    orderBasicData: {
+        order: 'orders',
+        orderType: 'The type of order',
+    },
+    machine: {
+        basicId: 'Device number',
+        basicName: 'The name of the device',
+        basicCategory: 'The process in which it is located',
+        tempering: 'Steel',
+    },
+    report: {
+        productionReport: 'Production reports',
+        workInProgressReport: 'WIP report',
+    },
+    productionBasicData: {
+        basicDataQuery: 'Basic data query',
+    },
+    mainIngredient: {
+        materialInformation: 'Material information',
+    },
+    mainIngredientStock: {
+        materialName: 'The name of the item',
+        createTime: 'Return date',
+    },
+    large: {
+        time: 'The time of the break',
+        number: 'Order number',
+        jobnumber: 'Job number',
+        productionnumber: 'The production order number',
+        cardnumber: 'Process card number',
+        projectname: 'The name of the project',
+        batch: 'batch',
+        detailID: 'Detail ID',
+        building: 'Building No',
+        serialnumber: 'Order serial number',
+        productname: 'Product name',
+        serial: 'Process validation number',
+        slicemarker: 'Frame marker (position)',
+        numberpatches: 'Number of patches',
+        width: 'Width',
+        height: 'Height',
+        shape: 'Shape',
+        responsibleprocess: 'Responsible process',
+        process: 'This process',
+        numberfractions: 'The number of unfilled fractions',
+        breakreason: 'The reason for the break',
+        breaktype: 'Sub-break type',
+        responsiblepersonnel: 'Responsible Personnel',
+        responsiblequipment: 'Responsible Equipment',
+        responsibleteam: 'Responsible team',
+        area: 'Sub-broken area',
+        inspector: 'Quality inspector',
+        operate: 'Operate',
+        mes: 'Detail',
+        projectnumber: 'The project order number',
+        brokeno: 'The report is broken and not filled',
+        close: 'Shut down',
+        orderId: 'Order ID',
+        customerName: 'The name of the customer',
+        project: 'The name of the project',
+        are: 'are',
+        quantity: 'quantity',
+        warehousing: 'State',
+        deliveryDate: 'Delivery time',
+        notstocked: 'Not yet in stock',
+        inboundstatus: 'Partial inventory status',
+        allstatus: 'All in stock status',
+        completedquantity: 'Completed quantity',
+        scrapquantity: 'Scrap Quantity',
+        method: 'Processing method',
+        innumber: 'Quantity already entered',
+        productstatus: 'Production status',
+        right: 'normal',
+        stop: 'termination',
+        inquire: 'query',
+        starttime: 'Start Time',
+        endtime: 'End Time',
+        loading: 'In the process of uploading锛�',
+    },
+    reportmanage: {
+        productiontime: 'production time',
+        starttime: 'Start Time',
+        endtime: 'End Time',
+        ctype: 'Please select type',
+        cstate: 'Please select the status',
+        cprocess: 'Please select the process',
+        all: 'All',
+        completed: 'Completed',
+        broke: 'Damaged',
+        takeout: 'Takeout',
+        dreportwork: 'Unreported work',
+        pendingwork: 'Pending job application',
+        reportwork: 'Reported work',
+        incise: 'slicing',
+        edging: 'edging',
+        steel: 'toughened',
+        inquire: 'query',
+        signingwork: 'Reporting for work',
+        reporteam: 'Report work team',
+        reportingequipment: 'Reporting equipment',
+        line: 'line',
+        process: 'production processes',
+        glassID: 'Glass ID',
+        projectnumber: 'Project number',
+        layoutID: 'Tempered layout ID',
+        type: 'type',
+        state: 'state',
+        processcards: 'Flow Card',
+        number: 'Serial Number',
+        layer: 'storey',
+        typebreakage: 'Damage type',
+        ptypebreakage: ' Please select the type of damage',
+        causebreakage: 'Reason for damage',
+        pcausebreakage: 'Please select the reason for the damage',
+        responsibleprocess: 'Responsibility Process',
+        responsiblepersonnel: 'Responsible personnel',
+        presponsiblepersonnel: 'Please enter the responsible personnel',
+        responsibleteam: 'Responsible team',
+        presponsibleteam: 'Please select the responsible team',
+        responsibleequipment: 'Responsible equipment',
+        presponsibleequipment: 'Please select the responsible device',
+        remark: 'notes',
+        premark: 'Please enter a note',
+    },
+    film: {
+        mes: 'Original film storage details',
+        warehousing: 'store',
+        operate: 'Operate',
+        exit: 'Edit',
+        delete: 'Delete',
+        outbound: 'Outbound',
+        deviceid: 'device ID',
+        slot: 'Grid number',
+        enablestatea: 'Enable tagging',
+        disable: 'Disable',
+        start: 'Enable',
+        startslot: 'Start workstation',
+        endslot: 'Target workstation',
+        slotid: 'Grid ID',
+        width: 'Width',
+        widtha: 'Width锛�',
+        inwidth: 'Please enter width',
+        height: 'Height',
+        inheight: 'Please enter height',
+        heighta: 'Height锛�',
+        thickness: 'Thickness',
+        inthickness: 'Please enter thickness',
+        thicknessa: 'Thickness锛�',
+        films: 'Films',
+        infilms: 'Please enter films',
+        filmsa: 'Films锛�',
+        createtime: 'Creation time',
+        remainquantity: 'Remaining Quantity',
+        thickremainquantity: 'Remaining quantity of original film (sheets)锛�',
+        inquantity: 'Please enter the quantity',
+        quantitya: 'Number锛�',
+        enableid: 'Task ID',
+        originateslot: 'Starting grid',
+        patternquantity: 'Number',
+        enabletype: 'Task Type',
+        enablestate: 'Workstation status',
+        finish: 'Completed',
+        unfinish: 'Incomplete',
+        dedelete: 'Do you want to delete this content锛�',
+        dedisable: 'Do you want to disable this content锛�',
+        deoutbound: 'Whether to release the content of this item from the warehouse锛�',
+        selectwarehousing: 'Please select the lifting position',
+        inwarehousing: 'Lifting position锛�',
+        warehousing1: 'Lifting position 1',
+        warehousing2: 'Lifting position 2',
+        starttime: 'Start Time',
+        endtime: 'End Time',
+        taskstatus: 'Status',
+        built: 'newly built',
+        execution: 'In progress',
+        tasktype: 'Task Type',
+        stocke: 'store',
+        dispatch: 'dispatch',
+        inquire: 'query',
+        station: 'station',
+    },
+    Mounting: {
+        previewproject: 'Select Preview Project',
+        loadinglinea: 'Upper film line',
+        loadingline: 'Upper film line锛�',
+        inloadingline: 'Please select the upper film line',
+        oneloadingline: 'Line 1 on film',
+        twoloadingline: 'Line 2 on film',
+        waiting: 'Waiting',
+        setparameters: 'Set parameters',
+        project: 'Project number',
+        projecta: 'Project number锛�',
+        width: 'Width',
+        height: 'Height',
+        thickness: 'Thickness',
+        projectnumber: 'Project original piece number',
+        state: 'state',
+        createtime: 'Creation time',
+        all: 'Select All',
+
+    }
+}
\ No newline at end of file
diff --git a/UI-Project/src/lang/index.js b/UI-Project/src/lang/index.js
index 2a371f6..e226ac6 100644
--- a/UI-Project/src/lang/index.js
+++ b/UI-Project/src/lang/index.js
@@ -1,10 +1,11 @@
-
-import { createI18n}  from 'vue-i18n'
+import {createI18n} from 'vue-i18n'
 import zh from "./zh"
+import py from "./py"
 import en from "./en"
 
 let messages = {
-    zh:zh,
+    zh: zh,
+    py: py,
     en: en
 }
 
diff --git a/UI-Project/src/lang/py.js b/UI-Project/src/lang/py.js
new file mode 100644
index 0000000..5bdf392
--- /dev/null
+++ b/UI-Project/src/lang/py.js
@@ -0,0 +1,300 @@
+export default {
+    "northglassMESsystem": '小懈褋褌械屑邪 "NorthGlass MES"',
+    login: {
+        userErr: '袙胁械写懈褌械 薪芯屑械褉 褋褔械褌邪.',
+        pwErr: '袙胁械写懈褌械 锌邪褉芯谢褜.',
+        user: '袗泻泻邪褍薪褌',
+        password: '袣芯写',
+        login: '袟邪谢芯谐懈薪',
+        loginSuccessful: '袙褏芯写 胁 褋懈褋褌械屑褍 胁褘锌芯谢薪械薪 褍褋锌械褕薪芯锛�',
+        register: '袟邪褉械谐懈褋褌褉懈褉芯胁邪',
+        namea: '袠屑褟 薪械 屑芯卸械褌 斜褘褌褜 锌褍褋褌褘屑',
+        len: '袛谢懈薪邪 薪械 写芯谢卸薪邪 锌褉械胁褘褕邪褌褜 16',
+        passnull: '袩邪褉芯谢褜 薪械 屑芯卸械褌 斜褘褌褜 锌褍褋褌褘屑',
+        leng: '袛谢懈薪邪 锌邪褉芯谢褟 薪械 写芯谢卸薪邪 斜褘褌褜 屑械薪褜褕械 6 懈谢懈 斜芯谢褜褕械 16.',
+        spwn: '袩邪褉芯谢褜 锌芯写褌胁械褉卸写械薪懈褟 薪械 屑芯卸械褌 斜褘褌褜 锌褍褋褌褘屑',
+        depass: '袛胁邪 褉邪蟹薪褘褏 锌邪褉芯谢褟.',
+    },
+    register: {
+        registerSuccessful: '袪械谐懈褋褌褉邪褑懈褟 褍褋锌械褕薪芯',
+        newuserregister: '袧芯胁褘泄 褉械械褋褌褉 锌芯谢褜蟹芯胁邪褌械谢械泄',
+        name: '袠屑褟锛�',
+        inputname: '袙胁械写懈褌械 懈屑褟',
+        password: '袣芯写:',
+        pwErr: '袙胁械写懈褌械 锌邪褉芯谢褜.',
+        passwordation: '袩芯写褌胁械褉写懈褌械 锌邪褉芯谢褜:',
+        pwErration: '袩芯卸邪谢褍泄褋褌邪, 锌芯写褌胁械褉褌懈褌械 锌邪褉芯谢褜',
+        registration: '袩芯写褌胁械褉卸写械薪懈械 芯 褉械谐懈褋褌褉邪褑懈懈',
+        false: '袨褌屑械薪邪',
+    },
+    main: {
+        connectErr: '袧械芯斜褘褔薪芯械 锌芯写泻谢褞褔械薪懈械 泻 褋械褉胁械褉褍, 锌芯锌褉芯斜褍泄褌械 锌芯蟹卸械',
+        titleFirst: "袛芯斜褉芯 锌芯卸邪谢芯胁邪褌褜 ",
+        titleLast: ' 胁 褋懈褋褌械屑褍 NorthGlass MES锛�',
+        quit: "袙褘褏芯写",
+    },
+    basicData: {
+        deletemessage: '校写邪谢懈褌褜 褝褌褍 懈薪褎芯褉屑邪褑懈褞 懈谢懈 薪械褌?',
+        laserprinting: '袦邪褕懈薪邪 谢邪蟹械褉薪芯泄 屑邪褉泻懈褉芯胁泻懈 谐芯褌芯胁邪锛�',
+        cuttingmachine: '袦邪褕懈薪邪 写谢褟 褉械蟹泻懈 谐芯褌芯胁邪锛�',
+        machine: '小芯褋褌芯褟薪懈械 褋褌邪薪芯泻 蟹邪谐褉褍蟹泻懈 胁 褉械卸懈屑械 芯薪谢邪泄薪锛�',
+        machineaa: '袪褍褔薪芯械 褋芯褋褌芯褟薪懈械 褋褌邪薪芯泻 蟹邪谐褉褍蟹泻懈:',
+        selectproject: "袙褘斜械褉懈褌械 锌褉芯械泻褌",
+        startloading: '袧邪褔邪谢芯 蟹邪谐褉褍蟹泻懈',
+        stop: '袩邪褍蟹邪',
+        yes: '锌芯写褌胁械褉写',
+        change: '锌械褉械泻谢褞褔邪',
+        projectnumber: '袧芯屑械褉 锌褉芯械泻褌邪',
+        glasswidth: '楔懈褉懈薪邪 褋褌械泻谢邪',
+        glassheight: '袙褘褋芯褌邪 褋褌械泻谢邪',
+        coatingtypes: '孝懈锌褘 锌芯泻褉褘褌懈泄',
+        coatingtypesa: '孝懈锌褘 锌芯泻褉褘褌懈泄锛�',
+        quantity: '袣芯谢懈褔械褋褌胁芯',
+        quantitya: '袣芯谢懈褔械褋褌胁芯锛�',
+        thickness: '孝芯谢褖懈薪邪',
+        thicknessa: '孝芯谢褖懈薪邪锛�',
+        startstatus: '小褌邪褌褍褋 薪邪褔邪谢邪 芯锌械褉邪褑懈懈',
+        pass: '效械褉械蟹',
+        waiting: '袞写械屑.',
+        up: '袟邪谐褉褍蟹泻邪',
+        finish: '袟邪胁械褉褕械薪芯',
+        project: '懈薪卸械薪械褉懈褟',
+        plselectproject: '袩芯卸邪谢褍泄褋褌邪, 胁褘斜械褉懈褌械 锌褉芯械泻褌.',
+        confirm: '锌芯写褌胁械褉写',
+        cancel: '袨褌屑械薪邪',
+        startfilm: '袧邪褔懈薪邪褌褜 懈谢懈 薪械褌锛�',
+        whetherpause: '袩邪褍蟹邪 懈谢懈 薪械褌锛�',
+        station: '袪邪斜芯褔械械 屑械褋褌芯',
+        width: '楔懈褉懈薪邪',
+        widtha: '楔懈褉懈薪邪锛�',
+        height: '袙褘褋芯褌邪',
+        heighta: '袙褘褋芯褌邪锛�',
+        operate: '袨锌械褉邪褑懈褟',
+        add: '袛芯斜邪胁谢褟',
+        delete: '校写邪谢',
+        addglass: '袛芯斜邪胁懈褌褜 褋褌械泻谢芯',
+        selectwidth: '袙褘斜懈褉懈褌械 褕懈褉懈薪褍',
+        selectheight: '袙褘斜懈褉懈褌械 胁褘褋芯褌褍',
+        selectcoatingtypes: '袙褘斜械褉懈褌械 褌懈锌褘 锌芯泻褉褘褌懈泄',
+        selectthickness: '袙褘斜械褉懈褌械 褌芯谢褖懈薪褍',
+        selectquantity: '袙胁械写懈褌械 泻芯谢褜褔械褋褌胁芯.',
+        pause: '袙褌芯褉邪褟 懈 褔械褌胁械褉褌邪褟 褋褌褉芯泻懈 写芯谢卸薪褘 斜褘褌褜 胁褘褕械 2700 写谢褟 褋芯褏褉邪薪械薪懈褟!',
+        pausea: '袩芯卸邪谢褍泄褋褌邪, 褍斜械写懈褌械褋褜, 褔褌芯 屑邪褉泻懈褉芯胁芯褔薪邪褟 懈 褉械卸褍褖邪褟 屑邪褕懈薪褘 谐芯褌芯胁褘!',
+        infonull: '袧芯屑械褉 锌褉芯械泻褌邪 薪械 屑芯卸械褌 斜褘褌褜 锌褍褋褌褘屑!',
+        updatanull: '袩褉芯械泻褌 薪械 褋芯褏褉邪薪懈谢懈褋褜 薪邪 谢懈褋褌械 蟹邪谐褉褍蟹泻懈!',
+        glassnull: '袨褕懈斜泻邪 锌褉懈 芯斜薪芯胁谢械薪懈懈 褋褌械泻谢邪',
+    },
+    sorter: {
+        gridnumber: '携褔械械泻 褋械褌泻谢邪',
+        glassnumber: '袧芯屑械褉 褋褌邪泻谢邪',
+        width: '楔懈褉懈薪邪',
+        height: '袙褘褋芯褌邪',
+        startstatus: '小褌邪褌褍褋 薪邪褔邪谢邪 芯锌械褉邪褑懈懈',
+        disable: '袨褌泻谢褞褔',
+        start: '袧邪褔邪谢芯',
+        deficiencieste: '袧械写芯褋褌邪褌泻懈 胁 芯褌褔械褌薪芯褋褌懈',
+        operate: '袨锌械褉邪褑懈褟',
+        prompt: '袩芯写褋泻邪蟹泻',
+        information: '小谢械写褍械褌 谢懈 褋芯芯斜褖邪褌褜 薪械写芯褋褌邪褞褖褍褞 懈薪褎芯褉屑邪褑懈褞锛�',
+        yes: '袛邪',
+        cancel: '袨褌屑械薪邪',
+    },
+    order: {
+        dilapidation: '袩芯胁褉械卸写械薪懈械',
+        Takeaway: '袙蟹褟褌褜 胁褉褍褔薪褍褞',
+    },
+
+    searchOrder: {
+        cageinformation: '袠薪褎芯褉屑邪褑懈褟 斜褍褎械褉邪',
+        productionqueue: '袩褉芯懈蟹胁芯写褋褌胁械薪薪邪褟 芯褔械褉械写褜',
+        outputglassID: '袙褘褏芯写薪芯械 褋褌械泻谢芯 ID',
+        startposition: '袟邪薪褟褌褜 锌芯蟹懈褑懈懈',
+        targetlocation: '袩芯蟹懈褑懈褟 褑械谢懈',
+        trips: '鈩� 锌芯械蟹写邪',
+        number: '小械褉懈泄薪 薪芯屑械褉',
+        taskstatus: '小芯褋褌芯褟薪懈械 蟹邪写邪褔懈',
+        filmenter: '袨卸懈写邪薪懈械 褋褌械泻谢褟薪薪芯泄 胁褏芯写',
+        infilm: '袙 薪邪褋褌芯褟褖械械 胁褉械屑褟',
+        endtask: '袟邪写邪褔邪 薪邪 泻芯薪械褑',
+        completetask: '袙褘锌芯谢薪械薪懈械 蟹邪写邪薪懈褟',
+        intoglassid: '袙褏芯写薪芯泄 褋褌械泻谢褟薪薪褘泄 ID',
+        line: '袥懈薪懈褟',
+        Usage: '小泻芯褉芯褋褌褜 懈褋锌芯谢褜蟹芯胁邪薪懈褟',
+        free: '袘械褋锌谢邪褌薪芯 (褟褔械械泻)',
+        addcage: '袛芯斜邪胁懈褌褜 懈薪褎芯褉屑邪褑懈褞 芯 斜褍褎械褉械',
+        glassIDa: '小褌械泻谢褟薪薪褘泄 ID锛�',
+        glassID: '小褌械泻谢褟薪薪褘泄 ID',
+        inglassID: '袙胁械写懈褌械 褋褌械泻谢芯 ID',
+        pieceingrid: '袩芯褉褟写芯泻 褉邪褋锌芯谢芯卸械薪懈褟 屑邪谢械薪褜泻懈褏 褋褌械泻谢褟薪薪褘褏 锌谢邪褋褌懈薪 胁 泻谢械褌泻械',
+        pieceingrida: '袩芯褉褟写芯泻 褉邪褋锌芯谢芯卸械薪懈褟 屑邪谢械薪褜泻懈褏 褋褌械泻谢褟薪薪褘褏 锌谢邪褋褌懈薪 胁 泻谢械褌泻械锛�',
+        inpieceingrid: '袙胁械写懈褌械 锌芯褉褟写芯泻 褉邪褋锌芯谢芯卸械薪懈褟 褋褌械泻谢褟薪薪褘褏 谢懈褋褌芯胁 胁 褟褔械械泻械',
+        cardnumber: '袧芯屑械褉 泻邪褉褌芯褔泻懈 锌褉芯褑械褋褋邪',
+        cardnumbera: '袧芯屑械褉 泻邪褉褌芯褔泻懈 锌褉芯褑械褋褋邪锛�',
+        incardnumber: '袙胁械写懈褌械 薪芯屑械褉 锌褉芯褑械褋褋邪 .',
+        typeglass: '孝懈锌 褋褌械泻谢邪',
+        typeglassa: '孝懈锌 褋褌械泻谢邪锛�',
+        intypeglass: '袙胁械写懈褌械 褌懈锌 褋褌械泻谢邪',
+        coatingtypes: '孝懈锌褘 锌芯泻褉褘褌懈泄',
+        width: '楔懈褉懈薪邪',
+        widtha: '楔懈褉懈薪邪锛�',
+        inwidth: '袙胁械写懈褌械 褕懈褉懈薪褍',
+        height: '袙褘褋芯褌邪',
+        heighta: '袙褘褋芯褌邪锛�',
+        inheight: '袙胁械写懈褌械 胁褘褋芯褌褍',
+        thickness: '孝芯谢褖懈薪邪',
+        thicknessa: '孝芯谢褖懈薪邪锛�',
+        inthickness: '袙胁械写懈褌械 褌芯谢褖懈薪褍.',
+        layoutID: '效械褉褌械卸 ID 蟹邪谐褉褍蟹泻懈 锌械褔懈 写谢褟 蟹邪泻邪谢泻懈',
+        layoutIDa: '效械褉褌械卸 ID 蟹邪谐褉褍蟹泻懈 锌械褔懈 写谢褟 蟹邪泻邪谢泻懈锛�',
+        inlayoutID: '袙胁械写懈褌械 褔械褉褌械卸 蟹邪泻邪谢泻懈 ID',
+        picturesequence: '效械褉褌械卸 褋械褉懈泄薪 薪芯屑械褉 蟹邪谐褉褍蟹泻懈 锌械褔懈 写谢褟 蟹邪泻邪谢泻懈',
+        picturesequencea: '效械褉褌械卸 褋械褉懈泄薪 薪芯屑械褉 蟹邪谐褉褍蟹泻懈 锌械褔懈 写谢褟 蟹邪泻邪谢泻懈锛�',
+        inpicturesequence: '袙胁械写懈褌械 锌芯褉褟写芯泻 褔械褉褌械卸懈 蟹邪泻邪谢泻懈 褋褌械泻谢邪.',
+        startstatus: '小褌邪褌褍褋 薪邪褔邪谢邪 芯锌械褉邪褑懈懈',
+        startstatusa: '小褌邪褌褍褋 薪邪褔邪谢邪 芯锌械褉邪褑懈懈锛�',
+        instartstatus: '袙胁械写懈褌械 褋芯褋褌芯褟薪懈械 邪泻褌懈胁邪褑懈懈',
+        glassgaps: '小褌械泻谢褟薪薪褘泄 蟹邪蟹芯褉',
+        glassgapsa: '小褌械泻谢褟薪薪褘泄 蟹邪蟹芯褉锛�',
+        inglassgaps: '袙胁械写懈褌械 褋褌械泻谢芯 蟹邪蟹芯褉',
+        sure: '锌芯写褌胁械褉写',
+        cancel: '袨褌屑械薪邪',
+        operate: '袨锌械褉邪褑懈褟',
+        breakage: '袩芯胁褉械卸写械薪懈械',
+        delete: '校写邪谢',
+        outfilm: '袙褘锌褍褋泻 褋褌械泻谢邪',
+        cagetableID: 'ID 斜褍褎械褉薪芯泄 褌邪斜谢懈褑褘',
+        cagenumber: '袘褍褎械褉 薪芯屑械褉邪',
+        gridnumber: '携褔械械泻 褋械褌泻谢邪',
+        enable: '袧邪褔邪谢芯',
+        disable: '袨褌泻谢褞褔',
+        remainingwidth: '袨褋褌邪褌芯褔薪邪褟 褕懈褉懈薪邪',
+        add: '袛芯斜邪胁谢褟',
+        sheetID: '袟邪泻邪谢泻邪 屑邪谢械薪褜泻懈泄 褋褌械泻谢褟薪薪褘泄 ID 褌邪斜谢懈褑褘 懈薪褎芯褉屑邪褑懈懈',
+        processcards: '袣邪褉褌芯褔泻邪 锌褉芯褑械褋褋邪',
+        processcardtype: '孝懈锌 褋褌械泻谢邪 泻邪褉褌芯褔泻懈 锌褉芯褑械褋褋邪',
+        acceptshorizontal: '校屑械褉械薪薪芯械 锌褉懈薪褟褌懈械 谐芯褉懈蟹芯薪褌邪谢懈',
+        xcoordinates: 'X-泻芯芯褉写懈薪邪褌褘',
+        ycoordinates: 'Y-泻芯芯褉写懈薪邪褌褘',
+        rotationangle: '校谐芯谢 胁褉邪褖械薪懈褟 (锌褉芯褌懈胁 褔邪褋芯胁芯泄 褋褌褉械谢泻懈)',
+        state: '小芯褋褌芯褟薪懈械',
+        takeout: '袙蟹褟褌褜',
+        deletemessage: '校写邪谢懈褌褜 褝褌褍 懈薪褎芯褉屑邪褑懈褞 懈谢懈 薪械褌?',
+        prompt: '袩芯写褋泻邪蟹泻',
+        yes: '袛邪',
+        accept: '袩褉懈薪褟褌褜',
+        noaccept: '袧械 锌褉懈薪懈屑邪褌褜',
+        filmcomplete: '小褌械泻谢芯 谐芯褌芯胁芯',
+        waiting: '袞写械屑.',
+    },
+    workOrder: {
+        glassID: '小褌械泻谢褟薪薪褘泄 ID',
+        height: '袙褘褋芯褌邪',
+        width: '楔懈褉懈薪邪',
+        thickness: '孝芯谢褖懈薪邪',
+        coatingtypes: '孝懈锌褘 锌芯泻褉褘褌懈泄',
+        productionsequence: '袩芯褋谢械写芯胁邪褌械谢褜薪芯褋褌褜 锌褉芯懈蟹胁芯写褋褌胁邪',
+        cardnumber: '袧芯屑械褉 泻邪褉褌芯褔泻懈 锌褉芯褑械褋褋邪',
+        operate: '袨锌械褉邪褑懈褟',
+        messagedamaged: '袩芯胁褉械卸写械薪芯 谢懈 褋芯芯斜褖械薪懈械锛�',
+        prompt: '袩芯写褋泻邪蟹泻',
+        yes: '袛邪',
+        cancel: '袨褌屑械薪邪',
+        takemessage: '小谢械写褍械褌 谢懈 褍写邪谢褟褌褜 褋芯芯斜褖械薪懈械锛�',
+        breakage: '袩芯胁褉械卸写械薪懈械',
+        takeout: '袙蟹褟褌褜',
+    },
+    processCard: {
+        intofurnace: '袙 锌械褔褜',
+        beforefurnace: '袛芯 锌械褔泻懈.',
+        outfurnace: '袨泻芯薪褔械薪芯 褋褌械泻谢芯 懈蟹 锌械褔懈 写谢褟 蟹邪泻邪谢泻懈',
+    },
+    reportWork: {
+        lowerbit: '小褌邪薪褑懈褟 褉邪蟹谐褉褍蟹泻懈',
+        shelfnumber: '袧芯屑械褉 褋褌芯泄泻懈 褉械谐懈褋褌褉邪褑懈懈',
+        cardnumber: '袧芯屑械褉 泻邪褉褌芯褔泻懈 锌褉芯褑械褋褋邪',
+        totalquantity: '袨斜褖械械 泻芯谢懈褔械褋褌胁芯',
+        beendropped: '袣芯谢懈褔械褋褌胁芯 褋褌械泻谢邪 褉邪蟹谐褉褍蟹泻懈',
+        state: '小芯褋褌芯褟薪懈械',
+        devicenumber: '袧芯屑械褉 芯斜芯褉褍写芯胁邪薪懈褟.',
+        startstatus: '小褌邪褌褍褋 薪邪褔邪谢邪 芯锌械褉邪褑懈懈',
+        enable: '袧邪褔邪谢芯',
+        unenable: '袧械 薪邪褔邪褌',
+        operate: '袨锌械褉邪褑懈褟',
+        bindingshelves: '袧邪蟹薪邪褔械薪薪邪褟 褋褌械谢谢邪卸泻邪',
+        clear: '效懈褋褌芯.',
+        workstation: '小褌邪薪褑懈褟 薪芯屑械褉',
+        cardnumbera: '袧芯屑械褉 泻邪褉褌芯褔泻懈 锌褉芯褑械褋褋邪锛�',
+        incardnumber: '袩芯卸邪谢褍泄褋褌邪, 胁褘斜械褉懈褌械 薪芯屑械褉 锌褉芯谐褉邪屑屑褘',
+        clearglass: '袨褔懈褋褌懈褌褜 褋褌械泻谢芯 褋 锌芯谢泻懈',
+        sure: '锌芯写褌胁械褉写',
+        cancel: '袨褌屑械薪邪',
+        glassinformation: '袠薪褎芯褉屑邪褑懈褟 褋褌械泻谢邪',
+        glassID: '小褌械泻谢褟薪薪褘泄 ID',
+        coatingtypes: '孝懈锌褘 锌芯泻褉褘褌懈泄',
+        thickness: '孝芯谢褖懈薪邪',
+        width: '楔懈褉懈薪邪',
+        height: '袙褘褋芯褌邪',
+    },
+    productStock: {
+        addusers: '袛芯斜邪胁褜褌械 锌芯谢褜蟹芯胁邪褌械谢械泄.',
+        username: '袠屑褟 锌芯谢褜蟹芯胁邪褌械谢褟.',
+        usernamea: '袠屑褟 锌芯谢褜蟹芯胁邪褌械谢褟.锛�',
+        inusername: '袙胁械写懈褌械 懈屑褟 锌芯谢褜蟹芯胁邪褌械谢褟',
+        role: '袪芯谢褜',
+        rolea: '袪芯谢褜锛�',
+        inrole: '袙褘斜械褉懈褌械 褉芯谢褜',
+        test: '孝械褋褌',
+        admin: '袗写屑懈薪懈褋褌褉邪褌芯褉.',
+        operate: '袨锌械褉邪褑懈褟',
+        resetpassword: '小斜褉芯褋懈褌褜 锌邪褉芯谢褜',
+        exit: '袪械写邪泻褌芯褉',
+        delete: '校写邪谢',
+        prompt: '袩芯写褋泻邪蟹泻',
+        repassword: '袩械褉械蟹邪谐褉褍蟹泻邪 锌芯谢褜蟹芯胁邪褌械谢褜褋泻芯谐芯 锌邪褉芯谢褟 懈谢懈 薪械褌锛�',
+        yes: '袛邪',
+        cancel: '袨褌屑械薪邪',
+        reusername: '袠蟹屑械薪械薪懈械 锌芯谢褜蟹芯胁邪褌械谢褟',
+        addusername: '袛芯斜邪胁褜褌械 锌芯谢褜蟹芯胁邪褌械谢械泄.',
+        password: '袣芯写锛�',
+        sure: '锌芯写褌胁械褉写',
+        inpassword: '袙胁械写懈褌械 锌邪褉芯谢褜.',
+        deusername: '校写邪谢械薪懈械 锌芯谢褜蟹芯胁邪褌械谢褟 懈谢懈 薪械褌锛�',
+    },
+    customer: {
+        addmenu: '袛芯斜邪胁褜褌械 屑械薪褞.',
+        firstmenu: '孝邪斜谢懈褑邪 屑械薪褞 锌械褉胁芯泄 褋褌械锌械薪懈',
+        link: '小褋褘谢泻',
+        linka: '小褋褘谢泻锛�',
+        inlink: '袙胁械写懈褌械 褋褋褘谢泻褍',
+        sort: '小芯褉褌懈褉芯胁泻',
+        sorta: '小芯褉褌懈褉芯胁泻锛�',
+        insort: '袙胁械写懈褌械 褋芯褉褌懈褉芯胁泻褍',
+        operate: '袨锌械褉邪褑懈褟',
+        exit: '袪械写邪泻褌芯褉',
+        inmenu: '袙胁械写懈褌械 屑械薪褞',
+        delete: '校写邪谢',
+        semenu: '孝邪斜谢懈褑邪 屑械薪褞 胁褌芯褉芯泄 褋褌械锌械薪懈',
+        menu: '袦械薪褞.锛�',
+        sure: '锌芯写褌胁械褉写',
+        cancel: '袨褌屑械薪邪',
+        exmene: '袠蟹屑械薪械薪懈械 屑械薪褞.',
+        yes: '袛邪',
+        demenu: '校写邪谢懈褌褜 屑械薪褞 懈谢懈 薪械褌锛�',
+        prompt: '袩芯写褋泻邪蟹泻',
+    },
+    delivery: {
+        addrole: '袛芯斜邪胁褜褌械 褉芯谢懈.',
+        editrole: '袠蟹屑械薪械薪懈械 褉芯谢懈.',
+        role: '袪芯谢褜',
+        rolea: '袪芯谢褜锛�',
+        inrole: '袙胁械写懈褌械 褉芯谢懈.',
+        operate: '袨锌械褉邪褑懈褟',
+        edit: '袪械写邪泻褌芯褉',
+        delete: '校写邪谢',
+        sure: '锌芯写褌胁械褉写',
+        cancel: '袨褌屑械薪邪',
+        yes: '袛邪',
+        derole: '校写邪谢懈褌褜 锌械褉褋芯薪邪卸 懈谢懈 薪械褌锛�',
+        prompt: '袩芯写褋泻邪蟹泻',
+    },
+}
\ No newline at end of file
diff --git a/UI-Project/src/layout/MainErpView.vue b/UI-Project/src/layout/MainErpView.vue
index e2f4b57..2c1ad75 100644
--- a/UI-Project/src/layout/MainErpView.vue
+++ b/UI-Project/src/layout/MainErpView.vue
@@ -3,14 +3,14 @@
 import userInfo from '@/stores/userInfo'
 import request from '@/utils/request'
 import {ElMessage} from 'element-plus'
-import {ref, watch, onMounted } from 'vue'
-import deepClone from '@/utils/deepClone'
-import { useRouter } from 'vue-router';  
-import { useI18n } from 'vue-i18n'
-  const { t } = useI18n()
-  let language = ref(localStorage.getItem('lang') || 'zh')
+import {ref, watch} from 'vue'
+import {useRouter} from 'vue-router';
+import {useI18n} from 'vue-i18n'
+
+const {t} = useI18n()
+let language = ref(localStorage.getItem('lang') || 'zh')
 const store = userInfo()
-const isCollapse = ref(false);  
+const isCollapse = ref(false);
 // const { $i18n } = useI18n(); // 鑾峰彇 i18n 瀹炰緥  
 const router = useRouter()
 const userStore = useUserInfoStore()
@@ -22,108 +22,99 @@
 // let userInfo = userInfoStr.user.token;  
 let token = userInfo; // 鎻愬彇 token  
 // 閫�鍑虹櫥褰曟柟娉�  
-function quit() {  
+function quit() {
   // localStorage.removeItem('token'); 
   store.$patch({
-              user: null,
-              })
-  router.push('/login')  
+    user: null,
+  })
+  router.push('/login')
 }
-// const quit = async () => {
-//   try  {
-//       store.$patch({user: null})
-//     const response = await request.post('/loadGlass/sys/user/logout')
-//     if (response.code === 200) {  
-//         console.log('鐧诲嚭鎴愬姛');  
-//       } else {  
-//         // 澶勭悊閿欒鎯呭喌  
-//         console.error('鐧诲嚭澶辫触', response);  
-//       } 
-// }
-// catch (error) {
-//     // 澶勭悊閿欒
-//     console.error(error);
-//   }
-// }
-// store.createWebSocket();
-// function quit() {
-//   userStore.$patch({
-//     user: null,
-//   })
-//   // router.push('/login')
-//   request.get("/loadGlass/sys/user/login").then((res) => {
-//     if (res.code === 200) {
-//     ElMessage.success(res.msg);
-//      console.log(res.data);
-//     } else {
-//     ElMessage.warning(res.msg);
-//     // router.push("/login");
-//     }
-//    });
-// }
 
-
-  function replaceChineseWithEnglish(menuData) {  
-      // 瀹氫箟涓嫳鏂囧鐓у叧绯诲璞�
-       const translation  = {  
-          '涓婄墖鏈�': '小褌芯谢 蟹邪谐褉褍蟹泻懈',  
-          '鎺扮墖/璇嗗埆': '袪邪蟹谢芯屑/懈写械薪褌懈褎懈泻邪褑懈褟',  
-          '鍗у紡缂撳瓨': ' 袚芯褉懈蟹芯薪褌邪谢褜薪褘泄 斜褍褎械褉',  
-          '纾ㄨ竟鍓嶅崸寮忕紦瀛�': '袚芯褉懈蟹芯薪褌邪谢褜薪褘泄 斜褍褎械褉 锌械褉械写 褕谢懈褎芯胁泻芯泄',  
-          '涓嬬墖鍗у紡缂撳瓨': '袚芯褉懈蟹芯薪褌邪谢褜薪褘泄 斜褍褎械褉 褋褌械泻谢邪 褉邪蟹谐褉褍蟹泻懈',  
-          '纾ㄨ竟锛堝喎鍔犲伐锛�': '楔谢懈褎芯胁邪褌褜 泻褉邪褟 (褏芯谢芯写薪邪褟 芯斜褉邪斜芯褌泻邪)',  
-          '1绾跨(杈�(鍐峰姞宸�)': '楔谢懈褎芯胁邪褌褜 泻褉邪褟 1 谢懈薪懈懈 (褏芯谢芯写薪邪褟 芯斜褉邪斜芯褌泻邪)',  
-          '2绾跨(杈�(鍐峰姞宸�)': '楔谢懈褎芯胁邪褌褜 泻褉邪褟 2 谢懈薪懈懈 (褏芯谢芯写薪邪褟 芯斜褉邪斜芯褌泻邪)',  
-          '澶х悊鐗囩': '袘褍褎械褉薪邪褟 褋懈褋褌械屑邪',  
-          '閽㈠寲': '袟邪泻邪谢泻邪',  
-          '閽㈠寲鍓�': '袩械褉械写 蟹邪泻邪谢泻懈',  
-          '閽㈠寲鍚�': '袩芯褋谢械 蟹邪泻邪谢泻懈',  
-          '涓嬬墖鍙�': '小褌芯谢 褉邪蟹谐褉褍蟹泻懈',  
-          '绯荤粺绠$悊': '校锌褉邪胁谢械薪懈械 褋懈褋褌械屑芯泄',  
-          '鐢ㄦ埛绠$悊': '校锌褉邪胁谢械薪懈械 锌芯谢褜蟹芯胁邪褌械谢械屑',  
-          '鏉冮檺绠$悊': '校锌褉邪胁谢械薪懈械 锌芯谢薪芯屑芯褔懈褟屑懈',  
-          '瑙掕壊绠$悊': '校锌褉邪胁谢械薪懈械 褉芯谢褜褞',  
-     };  
-  menuData.forEach(menu => {  
-    menu.menuName = translation[menu.menuName] || menu.menuName;  
+function replaceChineseWithEnglish(menuData) {
+  // 瀹氫箟涓縿鏂囧鐓у叧绯诲璞�
+  const translation = {
+    '涓婄墖鏈�': '小褌芯谢 蟹邪谐褉褍蟹泻懈',
+    '涓婄墖': '袙械褉褏薪褟褟 褔邪褋褌褜',
+    '鎺扮墖/璇嗗埆': '袪邪蟹谢芯屑/懈写械薪褌懈褎懈泻邪褑懈褟',
+    '鍗у紡缂撳瓨': ' 袚芯褉懈蟹芯薪褌邪谢褜薪褘泄 斜褍褎械褉',
+    '纾ㄨ竟鍓嶅崸寮忕紦瀛�': '袚芯褉懈蟹芯薪褌邪谢褜薪褘泄 斜褍褎械褉 锌械褉械写 褕谢懈褎芯胁泻芯泄',
+    '涓嬬墖鍗у紡缂撳瓨': '袚芯褉懈蟹芯薪褌邪谢褜薪褘泄 斜褍褎械褉 褋褌械泻谢邪 褉邪蟹谐褉褍蟹泻懈',
+    '纾ㄨ竟锛堝喎鍔犲伐锛�': '楔谢懈褎芯胁邪褌褜 泻褉邪褟 (褏芯谢芯写薪邪褟 芯斜褉邪斜芯褌泻邪)',
+    '1绾跨(杈�(鍐峰姞宸�)': '楔谢懈褎芯胁邪褌褜 泻褉邪褟 1 谢懈薪懈懈 (褏芯谢芯写薪邪褟 芯斜褉邪斜芯褌泻邪)',
+    '2绾跨(杈�(鍐峰姞宸�)': '楔谢懈褎芯胁邪褌褜 泻褉邪褟 2 谢懈薪懈懈 (褏芯谢芯写薪邪褟 芯斜褉邪斜芯褌泻邪)',
+    '澶х悊鐗囩': '袘褍褎械褉薪邪褟 褋懈褋褌械屑邪',
+    '閽㈠寲': '袟邪泻邪谢泻邪',
+    '閽㈠寲鍓�': '袩械褉械写 蟹邪泻邪谢泻懈',
+    '閽㈠寲鍚�': '袩芯褋谢械 蟹邪泻邪谢泻懈',
+    '涓嬬墖鍙�': '小褌芯谢 褉邪蟹谐褉褍蟹泻懈',
+    '绯荤粺绠$悊': '校锌褉邪胁谢械薪懈械 褋懈褋褌械屑芯泄',
+    '鐢ㄦ埛绠$悊': '校锌褉邪胁谢械薪懈械 锌芯谢褜蟹芯胁邪褌械谢械屑',
+    '鏉冮檺绠$悊': '校锌褉邪胁谢械薪懈械 锌芯谢薪芯屑芯褔懈褟屑懈',
+    '瑙掕壊绠$悊': '校锌褉邪胁谢械薪懈械 褉芯谢褜褞',
+    '鍙鍖栫郴缁�': '袙懈蟹褍邪谢褜薪邪褟 褋懈褋褌械屑邪',
+    '鎶ュ伐绠$悊': '校锌褉邪胁谢械薪懈械 芯褌褔械褌薪芯褋褌褜褞',
+    '浠撳偍涓績': '小泻谢邪写褋泻芯泄 褑械薪褌褉',
+    '鍘熺墖浠撳偍': '小泻谢邪写 褋褘褉褜褟',
+  };
+  menuData.forEach(menu => {
+    menu.menuName = translation[menu.menuName] || menu.menuName;
     // if (menu.children) {  
-      menu.children && menu.children.forEach(submenu => {  
-        submenu.menuName = translation[submenu.menuName] || submenu.menuName;  
-      });  
+    menu.children && menu.children.forEach(submenu => {
+      submenu.menuName = translation[submenu.menuName] || submenu.menuName;
+    });
     // }  
-  });  
+  });
+}
+
+function replaceChineseWithRussian(menuData) {
+  // 瀹氫箟涓嫳鏂囧鐓у叧绯诲璞�
+  const translation = {
+    '涓婄墖鏈�': 'Loading Machine',
+    '涓婄墖': 'Start showing a movie',
+    '鎺扮墖/璇嗗埆': 'Breaking /Identification',
+    '鍗у紡缂撳瓨': 'Horizontal cache',
+    '纾ㄨ竟鍓嶅崸寮忕紦瀛�': 'Horizontal buffer before edge grinding',
+    '涓嬬墖鍗у紡缂撳瓨': 'Offline horizontal cache',
+    '纾ㄨ竟锛堝喎鍔犲伐锛�': 'Grinding edge (cold processing)',
+    '1绾跨(杈�(鍐峰姞宸�)': '1-line edge grinding (cold processing)',
+    '2绾跨(杈�(鍐峰姞宸�)': '2-line edge grinding (cold processing)',
+    '澶х悊鐗囩': 'Dali slice cage',
+    '閽㈠寲': 'Toughened',
+    '閽㈠寲鍓�': 'Before Tempering',
+    '閽㈠寲鍚�': 'After Tempering',
+    '涓嬬墖鍙�': 'Next Stage',
+    '绯荤粺绠$悊': 'System Management',
+    '鐢ㄦ埛绠$悊': 'User Management',
+    '鏉冮檺绠$悊': 'Rights Management',
+    '瑙掕壊绠$悊': 'Roles',
+    '鍙鍖栫郴缁�': 'visualization system',
+    '鎶ュ伐绠$悊': 'Job reporting management',
+    '浠撳偍涓績': 'Storage Center',
+    '鍘熺墖浠撳偍': 'Original film storage',
+  };
+  menuData.forEach(menu => {
+    menu.menuName = translation[menu.menuName] || menu.menuName;
+    // if (menu.children) {  
+    menu.children && menu.children.forEach(submenu => {
+      submenu.menuName = translation[submenu.menuName] || submenu.menuName;
+    });
+    // }  
+  });
 } 
 //鎻愬彇鑿滃崟妯″潡鍒楄〃
 let menuList = $ref([])
 
-// onMounted(async () => {  
-//   try {  
-//     const res = await request.get('/loadGlass/sys/menu/getMenuTree'); // 鍋囪 request.get 杩斿洖 Promise  
-//     if (res.code == 200) { 
-//       // 浣跨敤 value 灞炴�ф潵淇敼 ref 寮曠敤鐨勫��  
-//       menuList.value = deepClone(res.data);  
-//       const language = $i18n.locale;  
-//       if (language === 'en') {  
-//         replaceChineseWithEnglish(menuList.value); // 浼犲叆 ref 鐨� value  
-//       }  
-//       console.log(res.data.token); // 濡傛灉 res.data 涓湁 token 鐨勮瘽  
-//     } else {  
-//       ElMessage.warning(res.msg);  
-//       router.push('/login');  
-//     }  
-//   } catch (error) {  
-//     // 澶勭悊璇锋眰閿欒  
-//     console.error('鑾峰彇鑿滃崟鍒楄〃鏃跺嚭閿�:', error);  
-//   }  
-// });  
 request.get('/loadGlass/sys/menu/getMenuTree').then((res) => {
   if (res.code == 200) {
     menuList = res.data
     console.log(language.value)
-      if (language.value === 'en') {
-        
-        replaceChineseWithEnglish(menuList);
-      }
+    // translateMenu(menuList.value, language.value); 
+    if (language.value === 'en') {
+      replaceChineseWithRussian(menuList);
+    }
+    if (language.value === 'py') {
+      replaceChineseWithEnglish(menuList);
+    }
   } else {
     ElMessage.warning(res.msg)
     router.push('/login')
@@ -169,7 +160,7 @@
       <el-header>
         <div style="height: 100%;width: 100%;display: flex;background-color: #fff;">
           <img src="../assets/northGlass.ico"
-               alt=""
+               alt="" @click="toggleCollapse"
                style="max-width: 100%;max-height: 100%">
           <h3 style="margin: 1rem  ;font-weight: bold;width: 33vw;"> {{ $t('main.titleFirst') }}{{ userName }}{{ $t('main.titleLast') }}</h3>
           <span style="height: 70%;width: 78vw;margin-top: 1rem;">
@@ -187,11 +178,11 @@
                 <SwitchButton size=""/>{{ $t('main.quit') }}
               </el-icon>
             </el-button>
-            <div class="header-left">
+            <!-- <div class="header-left">
               <el-button @click="toggleCollapse" style="height: 30px;">  
                <el-icon><Expand /></el-icon>
               </el-button>  
-          </div>
+          </div> -->
           </span>
         </div>
       </el-header>
diff --git a/UI-Project/src/views/LoginView.vue b/UI-Project/src/views/LoginView.vue
index 6431f47..a700274 100644
--- a/UI-Project/src/views/LoginView.vue
+++ b/UI-Project/src/views/LoginView.vue
@@ -5,15 +5,16 @@
 import {ElMessage} from 'element-plus'
 import request from '@/utils/request'
 import userInfo from '@/stores/userInfo'
-import { useI18n } from 'vue-i18n'
+import {useI18n} from 'vue-i18n'
+
 const store = userInfo()
 let ruleFormRef = ref<FormInstance>()
 const router = useRouter()
 const route = useRoute()
-const { t } = useI18n()
+const {t} = useI18n()
 let language = ref(localStorage.getItem('lang') || 'zh')
-const changeLanguage = () =>{
-  localStorage.setItem('lang',language.value)
+const changeLanguage = () => {
+  localStorage.setItem('lang', language.value)
   location.reload()
 }
 const userForm = reactive({
@@ -129,8 +130,9 @@
             v-model="language"
             placeholder=" "
             style="float: right;width: 9rem">
-          <el-option value="zh"  label="涓枃" />
-          <el-option value="en"  label="袪褍褋褋泻懈泄 褟蟹褘泻" />
+          <el-option value="zh" label="涓枃"/>
+          <el-option value="py" label="袪褍褋褋泻懈泄 褟蟹褘泻"/>
+          <el-option value="en" label="English"/>
         </el-select>
         <el-form @submit.native.prevent
                  ref="ruleFormRef"

--
Gitblit v1.8.0