From 0b8f1db9b9db6ec216091e953303a752c91aa307 Mon Sep 17 00:00:00 2001
From: wangfei <3597712270@qq.com>
Date: 星期四, 17 十月 2024 08:56:49 +0800
Subject: [PATCH] 被覆盖代码找回

---
 UI-Project/src/views/UnLoadGlass/loadmachinerack.vue   |   56 
 UI-Project/src/views/Returns/upreturns.vue             |  538 +++++++++++++++
 UI-Project/src/views/Slicecage/slicecage.vue           |   18 
 UI-Project/src/views/StockBasicData/stockBasicData.vue |   20 
 UI-Project/src/views/Returns/returns.vue               |    2 
 UI-Project/src/lang/en.js                              | 1140 +++++++++++++++++---------------
 UI-Project/src/lang/py.js                              |   33 
 UI-Project/src/lang/zh.js                              |   53 +
 UI-Project/src/router/index.js                         |   30 
 UI-Project/src/views/Returns/return.vue                |   49 +
 UI-Project/src/views/PurchaseReturn/purchaseReturn.vue |    8 
 UI-Project/src/views/NewPage.vue                       |  151 ++++
 12 files changed, 1,505 insertions(+), 593 deletions(-)

diff --git a/UI-Project/src/lang/en.js b/UI-Project/src/lang/en.js
index eddcad4..0e3c60f 100644
--- a/UI-Project/src/lang/en.js
+++ b/UI-Project/src/lang/en.js
@@ -1,549 +1,619 @@
 export  default {
-    "northglassMESsystem": '小懈褋褌械屑邪 "NorthGlass MES"' ,
+    "northglassMESsystem": "NorthGlass MES System",
       login:{
-          userErr:'袙胁械写懈褌械 薪芯屑械褉 褋褔械褌邪.',
-          pwErr:'袙胁械写懈褌械 锌邪褉芯谢褜.',
-          user:'袗泻泻邪褍薪褌',
-          password:'袣芯写',
-          login:'袟邪谢芯谐懈薪',
-          loginSuccessful:'袙褏芯写 胁 褋懈褋褌械屑褍 胁褘锌芯谢薪械薪 褍褋锌械褕薪芯锛�',
-          register:'袟邪褉械谐懈褋褌褉懈褉芯胁邪',
-          namea:'袠屑褟 薪械 屑芯卸械褌 斜褘褌褜 锌褍褋褌褘屑',
-          len:'袛谢懈薪邪 薪械 写芯谢卸薪邪 锌褉械胁褘褕邪褌褜 16',
-          passnull:'袩邪褉芯谢褜 薪械 屑芯卸械褌 斜褘褌褜 锌褍褋褌褘屑',
-          leng:'袛谢懈薪邪 锌邪褉芯谢褟 薪械 写芯谢卸薪邪 斜褘褌褜 屑械薪褜褕械 6 懈谢懈 斜芯谢褜褕械 16.',
-          spwn:'袩邪褉芯谢褜 锌芯写褌胁械褉卸写械薪懈褟 薪械 屑芯卸械褌 斜褘褌褜 锌褍褋褌褘屑',
-          depass:'袛胁邪 褉邪蟹薪褘褏 锌邪褉芯谢褟.',
+          userErr:'Please enter account number',
+          pwErr:'Please input a password',
+          user:'Account number',
+          password:'Password',
+          login:'Log on',
+          loginSuccessful:'Log on was successful锛�',
+          register:'Register',
+          namea:'Name cannot be empty',
+          len:'The length cannot exceed 16',
+          passnull:'Password cannot be empty',
+          leng:'The password length cannot be less than 6 or more than 16',
+          spwn:'Confirm password cannot be empty',
+          depass:'The two passwords are not the same',
       },
       register:{
-          registerSuccessful:'袪械谐懈褋褌褉邪褑懈褟 褍褋锌械褕薪芯',
-          newuserregister:'袧芯胁褘泄 褉械械褋褌褉 锌芯谢褜蟹芯胁邪褌械谢械泄',
-          name:'袠屑褟锛�',
-          inputname:'袙胁械写懈褌械 懈屑褟',
-          password:'袣芯写:',
-          pwErr:'袙胁械写懈褌械 锌邪褉芯谢褜.',
-          passwordation:'袩芯写褌胁械褉写懈褌械 锌邪褉芯谢褜:',
-          pwErration:'袩芯卸邪谢褍泄褋褌邪, 锌芯写褌胁械褉褌懈褌械 锌邪褉芯谢褜',
-          registration:'袩芯写褌胁械褉卸写械薪懈械 芯 褉械谐懈褋褌褉邪褑懈懈',
-          false:'袨褌屑械薪邪',
+          registerSuccessful:'login was successful',
+          newuserregister:'New user register',
+          name:'Full name锛�',
+          inputname:'Please enter your name',
+          password:'Password:',
+          pwErr:'Please input a password',
+          passwordation:'Confirm password:',
+          pwErration:'Please confirm password',
+          registration:'Registration Confirm',
+          false:'Cancel',
       },
       main:{
-          connectErr:'袧械芯斜褘褔薪芯械 锌芯写泻谢褞褔械薪懈械 泻 褋械褉胁械褉褍, 锌芯锌褉芯斜褍泄褌械 锌芯蟹卸械',
-          titleFirst:"袛芯斜褉芯 锌芯卸邪谢芯胁邪褌褜 ",
-          titleLast:' 胁 褋懈褋褌械屑褍 NorthGlass MES锛�',
-          quit:"袙褘褏芯写",
+          connectErr:'The server connection is abnormal. Please try again later',
+          titleFirst:"Welcome ",
+          titleLast:' to use NorthGlass MES system锛�',
+          quit:"Exit",
       },
       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:'袨褕懈斜泻邪 锌褉懈 芯斜薪芯胁谢械薪懈懈 褋褌械泻谢邪',
+          laserprinting:'Laser printing machine ready status锛�',
+          cuttingmachine:'Cutting machine ready status锛�',
+          machine:'Online status of the loading table锛�',
+          machineaa:'Manual state of the loading table锛�',
+          selectproject:"Select project",
+          startloading:'Start loading',
+          stop:'Pause',
+          yes:'Confirm',
+          change:'Switch',
+          projectnumber:'Project number',
+          glasswidth:'Glass width',
+          glassheight:'Glass height',
+          coatingtypes:'Coating types',
+          coatingtypesa:'Coating types锛�',
+          quantity:'Quantity',
+          quantitya:'Quantity锛�',
+          thickness:'Thickness',
+          thicknessa:'Thickness锛�',
+          startstatus:'Start status',
+          pass:'Pass',
+          waiting:'Waiting',
+          up:'Loading',
+          finish:'Completed',
+          project:'Project ',
+          plselectproject:'Please select project',
+          confirm:'Confirm',
+          cancel:'Cancel',
+          startfilm:'Whether start loading锛�',
+          whetherpause:'Whether pause锛�',
+          station:'Station',
+          width:'Width',
+          widtha:'Width锛�',
+          height:'Height',
+          heighta:'Height锛�',
+          operate:'Operate',
+          add:'Increase',
+          delete:'Delete',
+          addglass:'Add glass',
+          selectwidth:'Please select width',
+          selectheight:'Please select high',
+          selectcoatingtypes:'Please select the coating types',
+          selectthickness:'Please select thickness',
+          selectquantity:'Please enter the quantity',
+          pause:'The height of the second and fourth rows must be greater than 2700 in order to save锛�',
+          pausea:'Please confirm the ready status of marking machine and cutting machine锛�',
+          infonull:'Project number cannot be empty锛�',
+          updatanull:'This project has not been saved to the loading list锛�',
+          glassnull:'An error occurred while updating the glass status',
+          deletemessage:'Do you want to delete this message?',
+          layoutSequence:'Serial Number',
       },
       sorter:{
-          gridnumber:'携褔械械泻 褋械褌泻谢邪',
-          glassnumber:'袧芯屑械褉 褋褌邪泻谢邪',
-          width:'楔懈褉懈薪邪',
-          height:'袙褘褋芯褌邪',
-          startstatus:'小褌邪褌褍褋 薪邪褔邪谢邪 芯锌械褉邪褑懈懈',
-          disable:'袨褌泻谢褞褔',
-          start:'袧邪褔邪谢芯',
-          deficiencieste:'袧械写芯褋褌邪褌泻懈 胁 芯褌褔械褌薪芯褋褌懈',
-          operate:'袨锌械褉邪褑懈褟',
-          prompt:'袩芯写褋泻邪蟹泻',
-          information:'小谢械写褍械褌 谢懈 褋芯芯斜褖邪褌褜 薪械写芯褋褌邪褞褖褍褞 懈薪褎芯褉屑邪褑懈褞锛�',
-          yes:'袛邪',
-          cancel:'袨褌屑械薪邪',
+          gridnumber:'Grid number',
+          glassnumber:'Glass number',
+          width:'Width',
+          height:'Height',
+          startstatus:'Start status',
+          disable:'Disabled',
+          start:'Enabled',
+          deficiencieste:'Report deficiencies',
+          updown:'Artificial filming',
+          operate:'Operate',
+          prompt:'Prompt',
+          information:'Is the missing information reported锛�',
+          infor:'Whether to manually download this information锛�',
+          yes:'Yes',
+          cancel:'Cancel',
       },
       order:{
-          dilapidation:'袩芯胁褉械卸写械薪懈械',
-          Takeaway:'袙蟹褟褌褜 胁褉褍褔薪褍褞',
+          dilapidation:'Breakage',
+          takeaway:'Manual removal',
+          takeon:'The arrangement is complete',
       },
-
       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:'袨褌屑械薪邪',
-        glassID:'小褌械泻谢褟薪薪褘泄 ID',
-        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: '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: '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:'小褌邪薪褑懈褟 褉邪蟹谐褉褍蟹泻懈',
-        shelfnumber:'袧芯屑械褉 褋褌芯泄泻懈 褉械谐懈褋褌褉邪褑懈懈',
-        cardnumber:'袧芯屑械褉 泻邪褉褌芯褔泻懈 锌褉芯褑械褋褋邪',
-        totalquantity:'袨斜褖械械 泻芯谢懈褔械褋褌胁芯',
-        beendropped:'袣芯谢懈褔械褋褌胁芯 褋褌械泻谢邪 褉邪蟹谐褉褍蟹泻懈',
-        state:'小芯褋褌芯褟薪懈械',
-        devicenumber:'袧芯屑械褉 芯斜芯褉褍写芯胁邪薪懈褟.',
-        startstatus:'小褌邪褌褍褋 薪邪褔邪谢邪 芯锌械褉邪褑懈懈',
-        enable:'袧邪褔邪谢芯',
-        unenable:'袧械 薪邪褔邪褌',
-        operate:'袨锌械褉邪褑懈褟',
-        bindingshelves:'袧邪蟹薪邪褔械薪薪邪褟 褋褌械谢谢邪卸泻邪',
-        clear:'效懈褋褌芯.',
-        workstation:'小褌邪薪褑懈褟 薪芯屑械褉',
-        shelfnumber:'袧芯屑械褉 褋褌芯泄泻懈 褉械谐懈褋褌褉邪褑懈懈锛�',
-        cardnumbera:'袧芯屑械褉 泻邪褉褌芯褔泻懈 锌褉芯褑械褋褋邪锛�',
-        incardnumber:'袩芯卸邪谢褍泄褋褌邪, 胁褘斜械褉懈褌械 薪芯屑械褉 锌褉芯谐褉邪屑屑褘',
-        clearglass:'袨褔懈褋褌懈褌褜 褋褌械泻谢芯 褋 锌芯谢泻懈',
-        sure:'锌芯写褌胁械褉写',
-        cancel:'袨褌屑械薪邪',
-        glassinformation:'袠薪褎芯褉屑邪褑懈褟 褋褌械泻谢邪',
-        glassID:'小褌械泻谢褟薪薪褘泄 ID',
-        coatingtypes:'孝懈锌褘 锌芯泻褉褘褌懈泄',
-        thickness:'孝芯谢褖懈薪邪',
-        width:'楔懈褉懈薪邪',
-        height:'袙褘褋芯褌邪',
-    },
-
-    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: {
-        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: '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',
-    },
-    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
+          searchlayout:'Non-tempered process card inquiry',
+          fullfurnaces:'Number of full furnaces',
+          specifiedproject:'The currently specified project',
+          undesignate:'Undesignate',
+          allnumber:'Total quantity',
+          numbercages:'Number of cages',
+          missingquantity:'Missing quantity',
+          breakquantity:'Breakage/Take Away quantity',
+          ceng:'layer',
+          cageinformation:'Sorter information',
+          productionqueue:'Production queue',
+          outputglassID:'Output glass ID',
+          startposition:'Start position',
+          targetlocation:'Target Position',
+          trips:'Train number',
+          number:'Serial Number',
+          taskstatus:'Task state',
+          filmenter:'Waiting for input glass',
+          infilm:'In progress',
+          endtask:'End task',
+          completetask:'Complete the task',
+          intoglassid:'Input glass ID',
+          line:'Wire',
+          Usage:'Usage rate',
+          free:'Free(pieces)',
+          addcage:'Add information on sorter',
+          glassIDa:'Glass ID锛�',
+          glassID:'Glass ID',
+          inglassID:'Please enter the glass ID',
+          pieceingrid:'The order of small pieces within the grid',
+          pieceingrida:'The order of small pieces within the grid锛�',
+          inpieceingrid:'Please enter the order of small pieces within the grid',
+          cardnumber:'Process card number',
+          cardnumbera:'Process card number锛�',
+          incardnumber:'Please enter the process card number',
+          typeglass:'Glass type',
+          typeglassa:'Glass type锛�',
+          intypeglass:'Please enter the glass type',
+          width:'Width',
+          widtha:'Width锛�',
+          inwidth:'Please enter width',
+          height:'Height',
+          heighta:'Height锛�',
+          inheight:'Please enter height',
+          coatingtypes:'Coating types',
+          thickness:'Thickness',
+          thicknessa:'Thickness锛�',
+          inthickness:'Please enter the thickness',
+          layoutID:'Drawing ID of loading for tempering furnace',
+          layoutIDa:'Drawing ID of loading for tempering furnace锛�',
+          inlayoutID:'Please enter the drawing ID of loading for tempering furnace',
+          picturesequence:'Drawing sequence of loading for tempering furnace',
+          picturesequencea:'Drawing sequence of loading for tempering furnace锛�',
+          inpicturesequence:'Please enter the drawing sequence of loading for tempering furnace',
+          startstatus:'Start status',
+          startstatusa:'Start status锛�',
+          instartstatus:'Please enter the enabled status',
+          glassgaps:'Glass gap',
+          glassgapsa:'Glass gap锛�',
+          inglassgaps:'Please enter the glass gap',
+          sure:'Confirm',
+          cancel:'Cancel',
+          operate:'Operate',
+          breakage:'Breakage',
+          delete:'Delete',
+          outfilm:'Output glass',
+          cagetableID:'Sorter table ID',
+          cagenumber:'Sorter number',
+          gridnumber:'Grid number',
+          gridnumbera:'Grid number锛�',
+          grid:'Please enter a grid number',
+          enable:'Enabled',
+          disable:'Disabled',
+          remainingwidth:'Remaining width',
+          add:'Add',
+          sheetID:'Tempered small piece information table ID',
+          processcards:'Process card',
+          processcardtype:'Process card glass type',
+          acceptshorizontal:'Does tempering accept horizontal placement',
+          xcoordinates:'x coordinate',
+          ycoordinates:'Y coordinate',
+          rotationangle:'Rotation angle (counterclockwise)',
+          state:'Status',
+          takeout:'Take away',
+          deletemessage:'Do you want to delete this message?',
+          prompt:'Prompt',
+          yes:'Yes',
+          accept:'Accept',
+          noaccept:'Not accept',
+          filmcomplete:'Glass output completed',
+          waiting:'Waiting',
+          broke:'Is this information damaged锛�',
+          brokeb:'Do you need to delete the message锛�',
+          outfil:'Whether the film is released or not锛�',
+          inputid:'Please enter the glass ID',
+          search:'Search',
+          tabid:'Dali film cage details table ID',
+          tid:'Device ID',
+          tida:'Device ID锛�',
+          fin:'Whether or not the task was completed锛�',
+          sureadd:'Confirm the addition',
+          sureadda:'Whether to confirm the addition锛�',
+          zailong:'In a cage',
+          rengongxp:'Artificial filming',
+          up:'Previous',
+          down:'Next',
+          now:'The current page is displayed',
+          tit:'data',
+          temperingqueries:'Tempering queries',
+          specifytempering:'Specify a furnace',
+          specifyengineerid:'Specify the project',
+          projectnumber:'Project number',
+          layoutnumber:'Drawing number of loading for tempering furnace',
+          numberglasses:'Number of glasses',
+          specifytemperinga:'Whether to specify the tempering of this information锛�',
+          temperedswitch:'Tempered switch',
+          dutyinformation:'Duty information',
+          process:'Process',
+          team:'Team',
+          basic:'equipment',
+          makesure:'Confirm the save',
+          // cancel:'鍙栨秷',
+          temperingtotal:'Number of tempering furnaces锛�',
+          glasstotal:'Total number of glasses锛�',
+      },
+      workOrder:{
+          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',
+          time:'Time period',
+          cway:'Please select a route',
+          cstate:'Please select a status',
+          edgingone:'Edging a line',
+          edgingtwo:'Edging two lines',
+          nedging:'Unedging',
+          edging:'Edging',
+          finedging:'has been edging',
+        },
+      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:{
+          details:'Drop off details',
+          filming:'Artificial filming',
+          printing:'Automatic printing',
+          cenumber:'Number of layers',
+          artificialorder:'The number of pieces under artificial order',
+          processcard:'Print the process card',
+          printlabels:'Print labels',
+          information:'Landing information',
+          cstation:'Please select a desk',
+          all:'all',
+          timeperiod:'Time period',
+          stationnumber:'Station number',
+          order:'order',
+          filminformation:'Manual film information',
+          glassmation:'Artificial film current glass information',
+          barcodescanner:'The current glass information of the barcode scanner',
+          lowerbit:'Unloading station',
+          shelfnumber:'Rack number',
+          cardnumber:'Process card number',
+          totalquantity:'Total quantity',
+          beendropped:'Quantity of unloaded glass',
+          state:'Status',
+          devicenumber:'Equipment No.',
+          startstatus:'Start status',
+          enable:'Start',
+          unenable:'Unstart',
+          operate:'Operate',
+          bindingshelves:'Assigned rack',
+          clear:'Clear',
+          workstation:'Station No.',
+          shelfnumbera:'Rack number锛�',
+          cardnumbera:'Process card number锛�',
+          incardnumber:'Please select the process card number',
+          clearglass:'Clear the glass on the shelf',
+          sure:'Operate',
+          cancel:'Cancel',
+          glassinformation:'Glass information',
+          glassID:'Glass ID',
+          coatingtypes:'Coating types',
+          thickness:'Thickness',
+          width:'Width',
+          height:'Height',
+      },
+   
+      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:{
+          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:'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',
+      },
+      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/py.js b/UI-Project/src/lang/py.js
index 5bdf392..a617a75 100644
--- a/UI-Project/src/lang/py.js
+++ b/UI-Project/src/lang/py.js
@@ -105,6 +105,15 @@
     },
 
     searchOrder: {
+        searchlayout:'袟邪锌褉芯褋 薪械褌械屑锌械褉懈褉芯胁邪薪薪芯泄 褌械褏薪芯谢芯谐懈褔械褋泻芯泄 泻邪褉褌褘',
+        fullfurnaces:'袣芯谢懈褔械褋褌胁芯 锌芯谢薪褘褏 锌械褔械泄',
+        specifiedproject:'校泻邪蟹邪薪薪褘泄 胁 写邪薪薪褘泄 屑芯屑械薪褌 锌褉芯械泻褌',
+        undesignate:'袘械蟹 芯斜芯蟹薪邪褔械薪懈褟',
+        allnumber:'袨斜褖械械 泻芯谢懈褔械褋褌胁芯',
+        numbercages:'袣芯谢懈褔械褋褌胁芯 褋械锌邪褉邪褌芯褉芯胁',
+        missingquantity:'袧械写芯褋褌邪褞褖械械 泻芯谢懈褔械褋褌胁芯',
+        breakquantity:'袣芯谢懈褔械褋褌胁芯 袩芯谢芯屑泻邪/袙褘薪芯褋',
+        ceng:'褋谢芯泄',
         cageinformation: '袠薪褎芯褉屑邪褑懈褟 斜褍褎械褉邪',
         productionqueue: '袩褉芯懈蟹胁芯写褋褌胁械薪薪邪褟 芯褔械褉械写褜',
         outputglassID: '袙褘褏芯写薪芯械 褋褌械泻谢芯 ID',
@@ -202,6 +211,14 @@
         takemessage: '小谢械写褍械褌 谢懈 褍写邪谢褟褌褜 褋芯芯斜褖械薪懈械锛�',
         breakage: '袩芯胁褉械卸写械薪懈械',
         takeout: '袙蟹褟褌褜',
+        time:'袩械褉懈芯写 胁褉械屑械薪懈',
+        cway:'袩芯卸邪谢褍泄褋褌邪, 胁褘斜械褉懈褌械 屑邪褉褕褉褍褌',
+        cstate:'袩芯卸邪谢褍泄褋褌邪, 胁褘斜械褉懈褌械 褋褌邪褌褍褋',
+        edgingone:'袨泻邪薪褌芯胁泻邪 谢懈薪懈懈',
+        edgingtwo:'袨泻邪薪褌芯胁泻邪 写胁褍褏 谢懈薪懈泄',
+        nedging:'袨泻邪薪褌芯胁泻邪',
+        edging:'袣褉邪泄',
+        finedging:'斜褘谢 芯泻邪薪褌芯胁芯褔薪褘屑',
     },
     processCard: {
         intofurnace: '袙 锌械褔褜',
@@ -209,6 +226,22 @@
         outfurnace: '袨泻芯薪褔械薪芯 褋褌械泻谢芯 懈蟹 锌械褔懈 写谢褟 蟹邪泻邪谢泻懈',
     },
     reportWork: {
+        details:'小胁械写械薪懈褟 芯 褋写邪褔械',
+        filming:'袠褋泻褍褋褋褌胁械薪薪邪褟 褋褗械屑泻邪',
+        printing:'袗胁褌芯屑邪褌懈褔械褋泻邪褟 锌械褔邪褌褜',
+        cenumber:'袣芯谢懈褔械褋褌胁芯 褋谢芯械胁',
+        artificialorder:'袣芯谢懈褔械褋褌胁芯 褕褌褍泻 锌褉懈 懈褋泻褍褋褋褌胁械薪薪芯屑 蟹邪泻邪蟹械',
+        processcard:'袩械褔邪褌褜 褌械褏薪芯谢芯谐懈褔械褋泻芯泄 泻邪褉褌褘',
+        printlabels:'袩械褔邪褌褜 褝褌懈泻械褌芯泻',
+        information:'袠薪褎芯褉屑邪褑懈褟 芯 锌芯褋邪写泻械',
+        cstation:'袩芯卸邪谢褍泄褋褌邪, 胁褘斜械褉懈褌械 褋褌芯谢',
+        all:'胁褋械',
+        timeperiod:'袩械褉懈芯写 胁褉械屑械薪懈',
+        stationnumber:'袧芯屑械褉 褋褌邪薪褑懈懈',
+        order:'锌芯褉褟写芯泻',
+        filminformation:'袠薪褎芯褉屑邪褑懈褟 芯 锌谢械薪泻械 胁褉褍褔薪褍褞',
+        glassmation:'袠褋泻褍褋褋褌胁械薪薪邪褟 锌谢械薪泻邪 邪泻褌褍邪谢褜薪邪褟 懈薪褎芯褉屑邪褑懈褟 芯 褋褌械泻谢械',
+        barcodescanner:'袗泻褌褍邪谢褜薪邪褟 懈薪褎芯褉屑邪褑懈褟 芯 褋褌械泻谢械 褋泻邪薪械褉邪 褕褌褉懈褏-泻芯写邪',
         lowerbit: '小褌邪薪褑懈褟 褉邪蟹谐褉褍蟹泻懈',
         shelfnumber: '袧芯屑械褉 褋褌芯泄泻懈 褉械谐懈褋褌褉邪褑懈懈',
         cardnumber: '袧芯屑械褉 泻邪褉褌芯褔泻懈 锌褉芯褑械褋褋邪',
diff --git a/UI-Project/src/lang/zh.js b/UI-Project/src/lang/zh.js
index 8d6ddd7..9fdddbd 100644
--- a/UI-Project/src/lang/zh.js
+++ b/UI-Project/src/lang/zh.js
@@ -108,6 +108,15 @@
         takeon:'鎽嗙墖瀹屾垚',
     },
     searchOrder:{
+        searchlayout:'闈為挗鍖栨祦绋嬪崱鏌ヨ',
+        fullfurnaces:'婊$倝鏁伴噺',
+        specifiedproject:'褰撳墠鎸囧畾宸ョ▼',
+        undesignate:'鍙栨秷鎸囧畾',
+        allnumber:'鎬绘暟閲�',
+        numbercages:'绗煎瓙鍐呮暟閲�',
+        missingquantity:'缂哄皯鏁伴噺',
+        breakquantity:'鐮存崯/鎷胯蛋鏁伴噺',
+        ceng:'灞�',
         cageinformation:'鐞嗙墖绗间俊鎭�',
         productionqueue:'鍑虹墖闃熷垪',
         outputglassID:'鍑虹墖鐜荤拑ID',
@@ -245,6 +254,14 @@
         glasstype:'鐜荤拑绫诲瀷',
         line:'绾胯矾',
         status:'鐘舵��',
+        time:'鏃堕棿娈�',
+        cway:'璇烽�夋嫨绾胯矾',
+        cstate:'璇烽�夋嫨鐘舵��',
+        edgingone:'纾ㄨ竟涓�绾�',
+        edgingtwo:'纾ㄨ竟浜岀嚎',
+        nedging:'鏈(杈�',
+        edging:'纾ㄨ竟涓�',
+        finedging:'宸茬(杈�',
     },
     processCard:{
         intofurnace:'杩涚倝涓�',
@@ -270,6 +287,22 @@
         glassID:'鐜荤拑ID',
     },
     reportWork:{
+        details:'钀芥灦璇︽儏',
+        filming:'浜哄伐涓嬬墖',
+        printing:'鑷姩鎵撳嵃',
+        cenumber:'灞傛暟',
+        artificialorder:'浜哄伐涓嬬墖鏁�',
+        processcard:'鎵撳嵃娴佺▼鍗�',
+        printlabels:'鎵撳嵃鏍囩',
+        information:'钀芥灦淇℃伅',
+        cstation:'璇烽�夋嫨宸ヤ綅',
+        all:'鍏ㄩ儴',
+        timeperiod:'鏃堕棿娈�',
+        stationnumber:'宸ヤ綅鍙�',
+        order:'椤哄簭',
+        filminformation:'浜哄伐涓嬬墖淇℃伅',
+        glassmation:'浜哄伐涓嬬墖褰撳墠鐜荤拑淇℃伅',
+        barcodescanner:'鎵爜鏋綋鍓嶇幓鐠冧俊鎭�',
         lowerbit:'涓嬬墖浣�',
         shelfnumber:'鏋跺彿',
         cardnumber:'娴佺▼鍗″彿',
@@ -572,4 +605,24 @@
         inquire :'鏌ヨ',
         station :'宸ヤ綅',
     },
+    Mounting:{
+        previewproject :'閫夋嫨棰勮宸ョ▼',
+        loadinglinea :'涓婄墖绾�',
+        loadingline :'涓婄墖绾匡細',
+        inloadingline :'璇烽�夋嫨涓婄墖绾�',
+        oneloadingline :'涓�鍙蜂笂鐗囩嚎',
+        twoloadingline :'浜屽彿涓婄墖绾�',
+        waiting :'绛夊緟涓�',
+        setparameters :'璁剧疆鍙傛暟',
+        project :'宸ョ▼鍙�',
+        projecta :'宸ョ▼鍙凤細',
+        width :'鍘熺墖瀹�',
+        height :'鍘熺墖楂�',
+        thickness :'鍘熺墖鍘�',
+        projectnumber :'宸ョ▼鍘熺墖搴忓彿',
+        state :'鐘舵��',
+        createtime :'鍒涘缓鏃堕棿',
+        all :'鍏ㄩ��',
+ 
+    }
 }
\ No newline at end of file
diff --git a/UI-Project/src/router/index.js b/UI-Project/src/router/index.js
index f492054..e6dca92 100644
--- a/UI-Project/src/router/index.js
+++ b/UI-Project/src/router/index.js
@@ -3,7 +3,6 @@
 // import User from '../views/sys/User.vue'
 // import Role from '../views/sys/Role.vue'
 // import Menu from '../views/sys/Menu.vue'
-
 const router = createRouter({
   history: createWebHashHistory(),
   routes: [
@@ -17,6 +16,11 @@
       path: '/login',
       name: 'login',
       component: () => import('../views/LoginView.vue')
+    },
+    {
+      path: '/new-page', // 鏂板鐨勬棤闇�鐧诲綍鐨勯〉闈�  
+      name: 'newPage',  
+      component: () => import('../views/NewPage.vue')
     },
     {
       path: '/main',
@@ -68,13 +72,18 @@
         /*----------- 涓婄墖鏈� ----------------*/
       {
         path: 'Returns',
-        name: 'Returns',
-        component: () => import('../views/Returns/returns.vue'),
+        name: 'return',
+        component: () => import('../views/Returns/return.vue'),
         children:[
           {
             path: '/Returns/returns',
             name: 'returns',
             component: () => import('../views/Returns/returns.vue')
+          },
+          {
+            path: '/Returns/upreturns',
+            name: 'upreturns',
+            component: () => import('../views/Returns/upreturns.vue')
           },
         ]
       },
@@ -204,7 +213,7 @@
             }
           ]
         },
-
+ 
          /*----------- 鍙鍖栫郴缁� ----------------*/
          {
           path: 'Visualization',
@@ -302,7 +311,7 @@
         },
         {
           path: '',
-          redirect: '/returns/returns'
+          redirect: '/Returns/returns'
         }
       ]
     },
@@ -314,5 +323,14 @@
     
   ]
 })
-
+ 
+// 瀵艰埅瀹堝崼  
+router.beforeEach((to, from, next) => {  
+  const isAuthenticated = !!localStorage.getItem('authToken'); // 鍋囪杩欐槸浣犵殑鐧诲綍鐘舵�佹鏌ラ�昏緫  
+  if (to.matched.some(record => record.meta.requiresAuth) && !isAuthenticated) {  
+    next({ name: 'login' }); // 濡傛灉闇�瑕佺櫥褰曚絾鏈櫥褰曪紝鍒欓噸瀹氬悜鍒扮櫥褰曢〉闈�  
+  } else {  
+    next(); // 鍚﹀垯缁х画瀵艰埅  
+  }  
+}); 
 export default router
diff --git a/UI-Project/src/views/NewPage.vue b/UI-Project/src/views/NewPage.vue
new file mode 100644
index 0000000..8076e73
--- /dev/null
+++ b/UI-Project/src/views/NewPage.vue
@@ -0,0 +1,151 @@
+<template>  
+  <div>  
+<div style="display: flex;">
+  <div style="margin-left: 50px;margin-top: 15px;font-size:large">宸ョ▼鍙�:</div>
+<el-input v-model="current" style="margin-left: 20px;margin-top: 15px;width: 240px" placeholder="璇疯緭鍏ュ伐绋嬪彿" @input="updateUrl"/>
+    <el-button style="margin-top: 15px;margin-left: 15px;"  type="primary" @click="fetchData">鏌ヨ</el-button>  
+  </div>  
+  <el-card style="flex: 1;margin-left: 10px;margin-top: 20px;margin-right: 10px;width: 1850px;" height="900" v-loading="loading">
+  <div v-for="(row, rowIndex) in divsData" :key="rowIndex" class="row">  
+      <div v-for="(rect, colIndex) in row" :key="colIndex" class="div-container">  
+  <el-scrollbar height="430px" width="900px" style="background-color: #e9e9eb;">
+  <div  style="position: relative;width: 100%;height: 100%;">  
+    <div  
+      v-for="(rect, index) in getAdjustedRectsForRow(rowIndex)"
+    :key="index"  
+    class="rect"
+    :style="{ position: 'absolute', 
+     top: `${rect.y_axis}px`, 
+     left: `${rect.x_axis}px`,
+     width: `${rect.width}px`,  
+       height: `${rect.height}px`,  
+      backgroundColor:  '#911005'}">
+   <div  class="centered-text">
+  <div style="font-size: 15px;font-weight: bold;">{{ rect.process_id }}</div>  
+  <div style="font-size: 15px;font-weight: bold;">{{ rect.project_no }}</div>  
+  <div style="font-size: 30px;font-weight: bold;">{{ rect.widtha }}*{{ rect.heighta }}</div>  
+</div>
+</div>
+ </div>
+ </el-scrollbar>
+ </div>
+ </div>
+ </el-card>
+</div>
+</template>  
+   
+   <script setup>  
+   import { ref, onMounted, watch, watchEffect } from 'vue';  
+   import { useRoute, useRouter } from 'vue-router';  
+   import request from "@/utils/request"
+   const route = useRoute();  
+   const router = useRouter();  
+   const current = ref(route.query.current || '');  
+   const adjustedRects = ref([]);
+   const loading = ref(false);
+   const adjustedRectsPerRow = ref([]);
+   const divsData = ref([]);
+   const rawData = ref([]);
+   onMounted(() => {  
+     if (route.query.current) {  
+       current.value = route.query.current;
+       console.log(current.value);
+       window.localStorage.setItem('current', current.value)
+     }  
+   });  
+   onMounted(async () => { 
+       try {  
+         let current = window.localStorage.getItem('current')
+           const response = await request.post(`/cacheGlass/taskCache/temperingTerritory?current=${current}`);
+         if (response.code === 200) {  
+           rawData.value = response.data;
+                 console.log(rawData.value);
+                 processData(rawData.value);
+         } else {  
+          //  ElMessage.warning(res.msg)
+         }  
+       } catch (error) {  
+         // console.error('Error fetching rects :', error);  
+       }  
+     }); 
+   watch(  
+     current,  
+     (newVal) => {  
+       router.replace({ query: { current: newVal } });  
+     },  
+     { immediate: true } // 浣跨敤 immediate: true 鏉ョ‘淇濆湪缁勪欢鎸傝浇鏃剁珛鍗虫墽琛屼竴娆� watch 鍥炶皟  
+   );
+   const fetchData = async () => {
+     try {
+       const response = await request.post(`/cacheGlass/taskCache/temperingTerritory?current=${current.value}`);
+       if (response.code === 200) {
+          rawData.value = response.data;
+          console.log(rawData.value);
+          processData(rawData.value);
+  }  
+} catch (error) {  
+  console.error('Failed to fetch data:', error);  
+} finally {  
+  loading.value = false;  
+}  
+};
+   function processData(data) {  
+const groupedData = [];  
+for (let i = 0; i < data.length; i += 2) {  
+  groupedData.push(data.slice(i, i + 2));  
+}  
+divsData.value = groupedData;
+adjustedRectsPerRow.value = divsData.value.map(() => []);
+divsData.value.forEach((row, rowIndex) => {  
+  const rawRowData = rawData.value[rowIndex];
+  if (rawRowData) {  
+adjustedRectsPerRow.value[rowIndex] = rawRowData.map(rect => {  
+      let adjustedWidth, adjustedHeight,newX;
+      if (rect.rotate_angle  === 0) {
+       newX = rect.olHeight -(rect.y_axis + rect.height); 
+       adjustedWidth = rect.height * (900/rect.olHeight);
+       adjustedHeight = rect.width * (430/rect.olWidth);
+      } else {  
+        newX = rect.olHeight -(rect.y_axis + rect.width); 
+       adjustedWidth = rect.width * (900/rect.olHeight);
+       adjustedHeight = rect.height * (430/rect.olWidth);
+      } 
+      // 璇ラ〉闈负椤烘椂閽堟棆杞�90搴�
+      let adjustedRect = {  
+        ...rect,
+        // x_axis: rect.y_axis * (959.35/rect.olHeight),
+        y_axis: rect.x_axis * (430/rect.olWidth),
+        x_axis: newX * (900/rect.olHeight),
+        // y_axis: rect.x_axis * (430/rect.olWidth),
+        width: adjustedWidth,  
+        height: adjustedHeight,  
+        widtha: rect.width,  
+        heighta: rect.height,  
+      }; 
+      return adjustedRect;  
+    });  
+  }  
+});  
+}
+// 鏂规硶鐢ㄤ簬鑾峰彇褰撳墠琛岀殑adjustedRects  
+function getAdjustedRectsForRow(rowIndex) {  
+return adjustedRectsPerRow.value[rowIndex] || [];  
+}  
+   </script>  
+     
+  
+<style scoped>  
+.row {  
+display: flex;  
+justify-content: space-between;  
+margin-bottom: 20px;
+}  
+
+.div-container {  
+width: 900px;
+float: left;
+background-color: #f4f4f5;
+height: 430px;
+box-sizing: border-box;
+}  
+</style>
\ No newline at end of file
diff --git a/UI-Project/src/views/PurchaseReturn/purchaseReturn.vue b/UI-Project/src/views/PurchaseReturn/purchaseReturn.vue
index d875780..6ce2420 100644
--- a/UI-Project/src/views/PurchaseReturn/purchaseReturn.vue
+++ b/UI-Project/src/views/PurchaseReturn/purchaseReturn.vue
@@ -790,7 +790,7 @@
 <div style="width: 49%;float: right;background-color: #f4f4f5;height: 430px;">
     <div v-if="adjustedRects1.length > 0">
       <!-- <div style="text-align: center;">鐐夊彿锛歿{ engineerIdDisplay }}-{{ adjustedRects[0].temperingLayoutId }}</div>   -->
-    <div style="text-align: center;"> 鐐夊彿锛歿{ adjustedRects1[0].engineerId }}-{{ adjustedRects1[0].temperingLayoutId }} </div>
+    <div style="text-align: center;"> {{ $t('processCard.temperinglayout') }}锛歿{ adjustedRects1[0].engineerId }}-{{ adjustedRects1[0].temperingLayoutId }} </div>
     <el-scrollbar height="430px" style="background-color: #e9e9eb;">
     <div  style="position: relative;max-width: 1400px;">  
       <div  
@@ -816,7 +816,7 @@
   </div>
 <div style="width: 50%;float: left;background-color: #f4f4f5;height: 430px;">
     <div v-if="adjustedRects2.length > 0">
-    <div style="text-align: center;"> 鐐夊彿锛歿{ adjustedRects2[0].engineerId }}-{{ adjustedRects2[0].temperingLayoutId }} </div>
+    <div style="text-align: center;"> {{ $t('processCard.temperinglayout') }}锛歿{ adjustedRects2[0].engineerId }}-{{ adjustedRects2[0].temperingLayoutId }} </div>
     <!-- <div style="text-align: center;">鐐夊彿锛歿{ engineerIdDisplay2 }}-{{ adjustedRects[0].temperingLayoutId }}</div>   -->
     <el-scrollbar height="430px" style="background-color: #e9e9eb;">
     <div  style="position: relative;max-width: 1400px;">  
@@ -847,7 +847,7 @@
   <!-- 杩涚倝鍓� -->
   <el-card style="flex: 1;margin-left: 10px;margin-top: 10px;margin-right: 10px;height: 800px;" v-loading="loading">
     <div v-if="adjustedRectsa.length > 0">
-    <div style="text-align: center;"> 鐐夊彿锛歿{ adjustedRectsa[0].engineerId }}-{{ adjustedRectsa[0].temperingLayoutId }} </div>
+    <div style="text-align: center;"> {{ $t('processCard.temperinglayout') }}锛歿{ adjustedRectsa[0].engineerId }}-{{ adjustedRectsa[0].temperingLayoutId }} </div>
     <!-- <div style="text-align: center;">鐐夊彿锛歿{ engineerIdDisplaya }}-{{ adjustedRects[0].temperingLayoutId }}</div>   -->
       <el-scrollbar height="750px" style="background-color: #e9e9eb;">
     <div  style="position: relative;max-width: 1400px;">  
@@ -874,7 +874,7 @@
   <!-- 宸插嚭鐐� -->
   <el-card style="flex: 1;margin-left: 10px;margin-top: 10px;margin-right: 10px;height: 800px;" v-loading="loading">
       <div v-if="adjustedRectsb.length > 0">
-    <div style="text-align: center;"> 鐐夊彿锛歿{ adjustedRectsb[0].engineerId }}-{{ adjustedRectsb[0].temperingLayoutId }} </div>
+    <div style="text-align: center;"> {{ $t('processCard.temperinglayout') }}锛歿{ adjustedRectsb[0].engineerId }}-{{ adjustedRectsb[0].temperingLayoutId }} </div>
     <!-- <div style="text-align: center;">鐐夊彿锛歿{ engineerIdDisplayb }}-{{ adjustedRects[0].temperingLayoutId }}</div>   -->
       <el-scrollbar height="750px" style="background-color: #e9e9eb;">
     <div  style="position: relative;max-width: 1400px;">  
diff --git a/UI-Project/src/views/Returns/return.vue b/UI-Project/src/views/Returns/return.vue
new file mode 100644
index 0000000..592037c
--- /dev/null
+++ b/UI-Project/src/views/Returns/return.vue
@@ -0,0 +1,49 @@
+<script setup>
+import {ArrowLeftBold, ArrowRight, Search} from "@element-plus/icons-vue"
+import {useRouter} from "vue-router";
+let indexFlag=$ref(1)
+function changeRouter(index){
+  indexFlag=index
+}
+ 
+</script>
+ 
+<template>
+  <!-- <div id="main-div"> -->
+   
+ 
+    <div id="main-body">
+      <router-view  />
+    </div>
+  <!-- </div> -->
+</template>
+ 
+<style scoped>
+#main-div{
+  width: 100%;
+  height: 100%;
+}
+#div-title{
+  height: 2%;
+  width: 100%;
+}
+#searchButton{
+  margin-top: -5px;
+  margin-left: 1rem;
+}
+/* #searchButton1{
+//margin-left: 10rem;
+} */
+/*main-body鏍峰紡*/
+#main-body{
+  width: 100%;
+  height: 95%;
+  /* margin-top: 1%; */
+}
+#select{
+  margin-left:0.5rem;
+}
+:deep(.indexTag .el-breadcrumb__inner){
+  color: #5CADFE !important;
+}
+</style>
\ No newline at end of file
diff --git a/UI-Project/src/views/Returns/returns.vue b/UI-Project/src/views/Returns/returns.vue
index c5ffe12..1aaeaa0 100644
--- a/UI-Project/src/views/Returns/returns.vue
+++ b/UI-Project/src/views/Returns/returns.vue
@@ -723,7 +723,7 @@
     <div style="margin-left: 70px;">{{ upstatus  }} </div>
     <i :style="{ marginTop: '2px', backgroundColor: cuttingMachineStatusColor, width: '18px', height: '18px', borderRadius: '50%', display: 'block' }"></i>  
     <el-button @click="confirmCutting" style="margin-left: 30px;margin-top: -3px;" >{{ $t('basicData.change') }}</el-button>
-   
+  
   </div>
     <el-button :disabled="!canSelectProject" style="margin-top: 5px;margin-left: 15px;"  type="primary" @click="selectproject">{{ $t('basicData.selectproject') }}</el-button>
     <el-button :disabled="!canSelectProject" :style="{ backgroundColor: canStartLoading ? 'green' : 'initial',color: canStartLoading ? 'white' : 'black', }" style="margin-top: 5px;margin-left: 20px;"  @click="handleBind">{{ $t('basicData.startloading') }}</el-button>
diff --git a/UI-Project/src/views/Returns/upreturns.vue b/UI-Project/src/views/Returns/upreturns.vue
new file mode 100644
index 0000000..1d25199
--- /dev/null
+++ b/UI-Project/src/views/Returns/upreturns.vue
@@ -0,0 +1,538 @@
+<script lang="ts" setup>
+import {Search} from "@element-plus/icons-vue";
+import {reactive} from "vue";
+import {useRouter} from "vue-router"
+const router = useRouter()
+import type { TableColumnCtx } from 'element-plus'
+import { ElMessage, ElMessageBox } from 'element-plus'
+import { useI18n } from 'vue-i18n'
+const { t } = useI18n()
+import { WebSocketHost ,host} from '@/utils/constants'
+import request from "@/utils/request"
+import { initializeWebSocket, closeWebSocket } from '@/utils/WebSocketService';
+import { ref, onMounted, onUnmounted, onBeforeUnmount } from "vue";
+const selectValuesa = reactive([]);
+const selectedProjectNo = ref(''); // 褰撳墠閫変腑鐨勫伐绋嬪彿  
+const loadingline = ref(''); // 褰撳墠閫変腑鐨勪笂鐗囩嚎
+const dialogFormVisible = ref(false)
+ 
+ 
+ 
+ 
+const blind = ref(false)
+const blinda = ref(false)
+const blindb = ref(false)
+const add = ref(false)
+const adda = ref(false)
+const dialoglea = ref(false)
+const tableDatax = ref([])
+const user = ref('');
+const projectNo = ref('');
+const workstationId = ref('');
+const id = ref('');
+const patternHeight = ref('');
+const patternWidth = ref('');
+const filmsId = ref('');
+const patternThickness = ref('');
+const number = ref('');
+const canSelectProject = ref(true);
+const canStartLoading = ref(false);
+const selectedValue = ref(''); // 褰撳墠閫変腑鐨勫  
+const selectedValuea = ref('');  
+const selectedValueb = ref('');
+const selectedValuec = ref(''); 
+// const upstatus = ref('涓婄墖鏈烘墜鍔ㄧ姸鎬侊細'); // 鍋囪杩欎釜鐢ㄤ簬鏄剧ず鑷姩/鎵嬪姩鐘舵��  
+const upstatus = ref(t('basicData.machineaa'));
+const cuttingMachine = ref(''); // 鍋囪杩欎釜鐢ㄤ簬瀛樺偍鍚庣杩斿洖鐨勭姸鎬佸�硷紙0鎴�1锛�  
+const cuttingMachineStatusColor = ref('#911005'); // 鐢ㄤ簬鍔ㄦ�佽缃甶鏍囩鐨勮儗鏅壊 
+const inKageWord = ref(0); // 鐢ㄤ簬瀛樺偍瑕佷紶閫掔粰鎺ュ彛鐨刬nKageWord鍊� 
+const options = ref<any[]>([]); // 涓嬫媺閫夐」鍒楄〃  
+const ida = ref(null); 
+const selectOptions = ref<Array<any>>([]); // 涓嬫媺閫夐�夐」鏁扮粍  
+const selectOptionsa = ref<Array<any>>([]); // 涓嬫媺閫夐�夐」鏁扮粍  
+const selectOptionsb = ref<Array<any>>([]); // 涓嬫媺閫夐�夐」鏁扮粍  
+const selectOptionsc = ref<Array<any>>([]); // 涓嬫媺閫夐�夐」鏁扮粍  
+  const tableDataa = ref([])
+  const tableData = reactive([]);
+const handlezhiban = () => {
+  dialoglea.value = true; // 鎵撳紑缁戝畾鏋跺瓙瀵硅瘽妗�
+};
+const selectproject = () => {
+  dialogFormVisible.value = true;
+};
+ 
+ 
+onMounted(() => {
+  // socket = initializeWebSocket(socketUrl, handleMessage);
+});
+  onUnmounted(() => {
+    if (socket) {
+    closeWebSocket(socket);
+    }
+    });
+//瀹氫箟鎺ユ敹鍔犺浇琛ㄥご涓嬫媺鏁版嵁
+const titleSelectJson = ref({
+  processType: [],
+})
+const titleSelectJsona = ref({
+  processTypea: [],
+})
+let socket = null;
+const socketUrl = `ws://${WebSocketHost}:${host}/api/loadGlass/api/talk/loadGlass`;
+// 瀹氫箟娑堟伅澶勭悊鍑芥暟锛屾洿鏂� receivedData 鍙橀噺
+ 
+const requestData = {  
+  state: 100  
+};  
+ 
+ 
+onBeforeUnmount(() => {
+  closeWebSocket();
+});
+// 娣诲姞
+const handleBindRack = (row) => {
+  workstationId.value = row.workstationId; // 鍋囪rackNumber鏄灦鍙峰瓧娈电殑灞炴�у悕
+  ida.value = row.id;
+  add.value = true; // 鎵撳紑缁戝畾鏋跺瓙瀵硅瘽妗�
+};
+// 鏆傚仠
+const handlea = async () => {
+  try  {
+  let engineeringId = window.localStorage.getItem('engineeringId')
+console.log(engineeringId);
+if (engineeringId !== '') {
+  const response = await request.post('/loadGlass/engineering/engineering/pauseTask', {
+      engineeringId: engineeringId,
+      state: 0,
+    })
+    if (response.code == 200) {
+      ElMessage.success(response.message);
+      blinda.value = false;
+      // tableData.splice([]);
+    } else {
+      // 璇锋眰澶辫触锛屾樉绀洪敊璇秷鎭�
+      ElMessage.error(response.message);
+    }
+  }
+    else  {
+      ElMessage({
+        type: 'info',
+        message: t('basicData.infonull'),
+      })
+    }
+}
+catch (error) {
+    // 澶勭悊閿欒
+    console.error(error);
+  }
+}
+function getStatusText(state: number) {
+  switch (state) {
+    case 0:  
+      return t('basicData.waiting');
+    case 1:  
+      return t('basicData.up');
+    case 2:  
+    return t('basicData.up');
+    case 100:  
+    return t('basicData.finish');
+  }  
+}  
+function getStatusType(state: number) {  
+  switch (state) {  
+    case 0:
+      return 'warning';  
+    case 1: 
+      return 'primary';  
+    case 2: 
+      return 'primary';  
+    case 100:
+      return 'success';  
+  }  
+}  
+// 寮�濮嬩笂鐗�
+const handleBind = (row) => {
+  blind.value = true; // 鎵撳紑缁戝畾鏋跺瓙瀵硅瘽妗�
+};
+// 鏆傚仠
+const handleBinda = (row) => {
+  blinda.value = true;
+};
+// 鍋滄浠诲姟
+const handleBindb = (row) => {
+  blindb.value = true; 
+};
+ 
+// 鍒犻櫎
+const handleBindRacka = (row) => {
+  workstationId.value = row.workstationId;
+  adda.value = true; 
+};
+const toggleEnableState = async (row: any) => {  
+  // 妫�鏌� id 鏄惁涓虹┖  
+  if (!row.id) {  
+    ElMessage.error(t('basicData.updatanull'));  
+    return; // 濡傛灉 id 涓虹┖锛屽垯涓嶆墽琛屽悗缁搷浣�  
+  }  
+  const newState = row.state === 100 ? 0 : 100;  
+  try {  
+    // 鍙戦�佽姹傚埌鍚庣鏇存柊鐘舵��  
+    const response = await request.post('/loadGlass/up-patten-usage/updateGlassState', { id: row.id, state: newState });  
+    if (response.code === 200) {  
+      ElMessage.success(response.message);  
+      row.state = newState;  
+    } else {  
+      ElMessage.error(response.message);  
+    }  
+  } catch (error) {  
+    // 澶勭悊璇锋眰閿欒  
+    ElMessage.error(t('basicData.glassnull'));   
+  }  
+};
+</script>
+<template>
+  <div>
+    <div id="dotClass">
+      <div>{{ $t('basicData.laserprinting') }}</div>  
+    <i :style="{ marginTop: '2px', backgroundColor: markingMachineStatus, width: '18px', height: '18px', borderRadius: '50%', display: 'block' }"></i>  
+    <el-button @click="confirmMarkingMachine" style="margin-left: 30px;margin-top: -3px;">{{ $t('basicData.yes') }}</el-button>
+    <div style="margin-left: 70px;">{{ $t('basicData.cuttingmachine') }}</div>
+    <i :style="{ marginTop: '2px', backgroundColor: cuttingMachineStatus, width: '18px', height: '18px', borderRadius: '50%', display: 'block' }"></i>  
+    <el-button @click="confirmCuttingMachine" style="margin-left: 30px;margin-top: -3px;" >{{ $t('basicData.yes') }}</el-button>
+    <div style="margin-left: 70px;">{{ upstatus  }} </div>
+    <i :style="{ marginTop: '2px', backgroundColor: cuttingMachineStatusColor, width: '18px', height: '18px', borderRadius: '50%', display: 'block' }"></i>  
+    <el-button @click="confirmCutting" style="margin-left: 30px;margin-top: -3px;" >{{ $t('basicData.change') }}</el-button>
+   
+  </div>
+    <el-button style="margin-top: 5px;margin-left: 15px;"  type="primary" @click="selectproject">{{ $t('Mounting.previewproject') }}</el-button>
+    <el-button style="margin-top: 5px;margin-left: 20px;" type="success" @click="handleBind">{{ $t('basicData.startloading') }}</el-button>
+    <el-button style="margin-top: 5px;margin-left: 20px;"  id="searchButton" type="warning" @click="handleBinda">{{ $t('basicData.stop') }}</el-button>
+    <el-button style="margin-top: 5px;margin-left: 20px;" id="searchButton" type="info" @click="handlezhiban">{{ $t('searchOrder.dutyinformation') }}</el-button>
+    <el-select v-model="selectValuesa[1]" clearable :placeholder="$t('Mounting.loadinglinea')" style="margin-top: 5px;margin-left: 20px;" >
+      <el-option :label="$t('Mounting.all')" value="0"></el-option>
+      <el-option :label="$t('Mounting.oneloadingline')" value="1"></el-option>
+      <el-option :label="$t('Mounting.twoloadingline')" value="2"></el-option>
+    </el-select>
+    <el-select v-model="selectValuesa[0]" clearable :placeholder="$t('film.taskstatus')" style="margin-top: 5px;margin-left: 20px;" >
+      <el-option :label="$t('Mounting.waiting')" value="1"></el-option>
+      <el-option :label="$t('film.execution')" value="2"></el-option>
+      <el-option :label="$t('film.finish')" value="3"></el-option>
+    </el-select>
+    <el-button type="primary" style="margin-left: 10px;" @click="selectReportData()">{{ $t('Mounting.setparameters') }}</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;">
+    <el-table
+    height="350"
+     ref="table" 
+     :header-cell-style="{background:'#F2F3F5 ',color:'#1D2129'}"
+      :data="tableData"
+    >
+      <el-table-column prop="layoutSequence" :label="$t('Mounting.project')" width="100" align="center"/>
+      <el-table-column prop="engineeringId" :label="$t('Mounting.width')" width="200" align="center"/>
+      <el-table-column prop="width" :label="$t('Mounting.height')" align="center"/>
+      <el-table-column prop="height" :label="$t('Mounting.thickness')" align="center"/>
+      <el-table-column prop="filmsId" :label="$t('Mounting.loadinglinea')" align="center"/>
+      <el-table-column :label="$t('Mounting.projectnumber')" align="center">  
+      <template #default="{ row }">  
+        <!-- 杩欓噷鎬绘槸鏄剧ず 1 -->  
+        <span>{{ 1 }}</span>  
+      </template>  
+    </el-table-column>  
+      <el-table-column
+          align="center"
+            :label="$t('Mounting.state')"
+            min-width="80"
+            prop="state"
+          >
+          <template #default="scope">  
+          <el-tag  
+            :type="scope.row.state === 100 ? 'success' : 'warning'"  
+            @click="toggleEnableState(scope.row)"  
+          >  
+            {{ scope.row.state === 100 ? $t('Mounting.pass') : $t('Mounting.waiting') }}
+          </el-tag>  
+        </template> 
+          </el-table-column>
+      <el-table-column prop="filmsId" :label="$t('Mounting.createtime')" align="center"/>
+    </el-table>
+      </div>
+    </el-card>
+    <div style="display: flex;">
+  <div style="width: 49%;float: left;">
+    <div style="display: flex;">
+        <img src="../../assets/shangpianji.png" alt="" style="max-width: 25%;max-height: 25%;margin-left: 10%;margin-top: 5%;">
+        <el-table :data="tableDataa" border style="width: 75%;margin-top: 10%;margin-left: 2%;"
+     :header-cell-style="{background:'#F2F3F5 ',color:'#1D2129'}"
+        >
+          <el-table-column prop="workstationId" align="center" :label="$t('basicData.station')" min-width="60" />
+          <el-table-column prop="patternWidth" align="center" :label="$t('basicData.width')" min-width="80" />
+          <el-table-column prop="patternHeight" align="center" :label="$t('basicData.height')" min-width="80" />
+          <el-table-column prop="filmsId" align="center" :label="$t('basicData.coatingtypes')" min-width="80" />
+          <el-table-column prop="number" align="center" :label="$t('basicData.quantity')" min-width="80" />
+        </el-table>
+    </div>
+  </div>
+    <div style="width: 48%;float: right;">
+      <div style="display: flex;">
+        <img src="../../assets/shangpianji.png" alt="" style="max-width: 25%;max-height: 25%;margin-left: 10%;margin-top: 5%;">
+        <el-table :data="tableDataa" border style="width: 75%;margin-top: 10%;margin-left: 2%;"
+     :header-cell-style="{background:'#F2F3F5 ',color:'#1D2129'}"
+        >
+          <el-table-column prop="workstationId" align="center" :label="$t('basicData.station')" min-width="60" />
+          <el-table-column prop="patternWidth" align="center" :label="$t('basicData.width')" min-width="80" />
+          <el-table-column prop="patternHeight" align="center" :label="$t('basicData.height')" min-width="80" />
+          <el-table-column prop="filmsId" align="center" :label="$t('basicData.coatingtypes')" min-width="80" />
+          <el-table-column prop="number" align="center" :label="$t('basicData.quantity')" min-width="80" />
+        </el-table>
+    </div>
+</div>
+</div>
+  <el-dialog v-model="blind" top="30vh" width="25%" :title="$t('basicData.startfilm')">
+    <template #footer>
+      <div id="dialog-footer">
+        <el-button type="primary" @click="handle">
+          {{ $t('basicData.confirm') }}
+        </el-button>
+        <el-button @click="blind = false">{{ $t('basicData.cancel') }}</el-button>
+      </div>
+    </template>
+  </el-dialog>
+  
+<el-dialog v-model="dialoglea" top="15vh" width="70%" :title="$t('searchOrder.dutyinformation')">
+    <el-table  ref="table" style="margin-top: 20px;height: 300px;"
+        :data="tableDatax" :header-cell-style="{background:'#F2F3F5 ',color:'#1D2129'}">
+          <el-table-column prop="line" fixed align="center" :label="$t('searchOrder.line')"/>
+          <el-table-column prop="workProcesses" fixed align="center" :label="$t('searchOrder.process')" />
+          <el-table-column prop="teamsGroupsName" align="center" :label="$t('searchOrder.team')">
+        <template #default="{ row }">  
+          <el-input v-model="row.teamsGroupsName" autocomplete="off" min-width="150"/>  
+        </template>  
+      </el-table-column>
+          <el-table-column prop="deviceName" align="center" :label="$t('searchOrder.basic')">
+            <template #default="{ row }">  
+          <el-input v-model="row.deviceName" autocomplete="off" min-width="150"/>  
+        </template>
+        </el-table-column>
+        </el-table>
+        <template #footer>
+      <div id="dialog-footer">
+        <el-button type="primary" @click="handleConfirm">
+          {{ $t('searchOrder.add') }}
+        </el-button>
+        <el-button @click="dialoglea = false">{{ $t('searchOrder.cancel') }}</el-button>
+      </div>
+    </template>
+</el-dialog>
+  <el-dialog v-model="blinda" top="24vh" width="30%" :title="$t('basicData.whetherpause')">
+    <div style="margin-left: 50px;margin-bottom: 10px;">
+    <el-form-item :label="$t('Mounting.loadingline')" :required="true">
+    <el-select v-model="loadingline" clearable :placeholder="$t('Mounting.inloadingline')" style="margin-left: 20px;" >
+      <el-option :label="$t('Mounting.all')" value="0"></el-option>
+      <el-option :label="$t('Mounting.oneloadingline')" value="1"></el-option>
+      <el-option :label="$t('Mounting.twoloadingline')" value="2"></el-option>
+    </el-select>
+    </el-form-item>
+    </div>
+    <template #footer>
+      <div id="dialog-footer">
+        <el-button type="primary" @click="handleup">
+          {{ $t('basicData.confirm') }}
+        </el-button>
+        <el-button @click="blinda = false">{{ $t('basicData.cancel') }}</el-button>
+      </div>
+    </template>
+  </el-dialog>
+    
+  <el-dialog v-model="add" top="23vh" width="45%" :title="$t('basicData.addglass')" >
+    <div style="margin-left: -50px;margin-top: 10px;margin-bottom: 10px;">
+            <el-form  size="mini" label-width="150px">
+      <el-form label-width="70px" 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="$t('basicData.widtha')" :required="true" style="width: 14vw">
+               <el-select  
+                      v-model="selectedValue"  
+                      filterable  
+                      clearable  
+                      :placeholder="$t('basicData.selectwidth')"
+                      style="width: 220px"  
+                      @input="handleInputChangea"  
+                    >  
+                 <el-option  
+                    v-for="item in selectOptions"  
+                    :key="item.id"  
+                    :label="item.label"  
+                    :value="item.value"  
+                 />  
+               </el-select>  
+              </el-form-item>
+              </div></div>
+          </el-col>
+          <el-col :span="9">
+            <div id="dta" style="font-size: 15px;">
+        <div>
+          <el-form-item :label="$t('basicData.heighta')" :required="true" style="width: 14vw">
+            <el-select  
+                      v-model="selectedValuea"  
+                      filterable  
+                      clearable  
+                      :placeholder="$t('basicData.selectheight')" 
+                      style="width: 220px"  
+                      @input="handleInputChangea"  
+                    >  
+                 <el-option  
+                    v-for="item in selectOptionsa"  
+                    :key="item.id"  
+                    :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="$t('basicData.coatingtypesa')"  :required="true" style="width: 14vw;">
+                <el-select  
+                      v-model="selectedValueb"  
+                      filterable  
+                      clearable  
+                      :placeholder="$t('basicData.selectcoatingtypes')"
+                      style="width: 220px"  
+                      @input="handleInputChangea"  
+                    >  
+                 <el-option  
+                    v-for="item in selectOptionsb"  
+                    :key="item.id"  
+                    :label="item.label"  
+                    :value="item.value"  
+                 />  
+               </el-select> 
+              </el-form-item></div></div>
+          </el-col>
+          <el-col :span="9">
+            <div id="dta" style="font-size: 15px;">
+        <div>
+              <el-form-item :label="$t('basicData.thicknessa')" :required="true" style="width: 14vw">
+                <el-select  
+                      v-model="selectedValuec"  
+                      filterable  
+                      clearable  
+                      :placeholder="$t('basicData.selectthickness')"
+                      style="width: 220px"  
+                      @input="handleInputChangea"  
+                    >  
+                 <el-option  
+                    v-for="item in selectOptionsc"  
+                    :key="item.id"  
+                    :label="item.label"  
+                    :value="item.value"  
+                 />  
+               </el-select> 
+                <!-- <el-input v-model="patternThickness" 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="$t('basicData.quantitya')" :required="true" style="width: 14vw;">
+                <el-input :placeholder="$t('basicData.selectquantity')" v-model="number" 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="handleConfirm">
+          {{ $t('basicData.confirm') }}
+        </el-button>
+        <el-button @click="add = false">{{ $t('basicData.cancel') }}</el-button>
+      </div>
+    </template>
+  </el-dialog>
+  <el-dialog v-model="adda" top="30vh" width="25%" :title="$t('basicData.deletemessage')">
+    <template #footer>
+      <div id="dialog-footer">
+        <el-button type="primary" @click="handleConfirma">
+          {{ $t('basicData.confirm') }}
+        </el-button>
+        <el-button @click="adda = false">{{ $t('basicData.cancel') }}</el-button>
+      </div>
+    </template>
+  </el-dialog>
+        </div>
+  <el-dialog v-model="dialogFormVisible" top="24vh" width="50%"  >
+    <div class="flex-container" style="margin-left: 50px;margin-bottom: 10px;">
+    <el-form-item :label="$t('Mounting.loadingline')" :required="true">
+    <el-select v-model="loadingline" clearable :placeholder="$t('Mounting.inloadingline')"  >
+      <el-option :label="$t('Mounting.oneloadingline')" value="1"></el-option>
+      <el-option :label="$t('Mounting.twoloadingline')" value="2"></el-option>
+    </el-select>
+              </el-form-item>
+      <el-form-item :label="$t('Mounting.projecta')" :required="true">
+        <el-select  
+           v-model="selectedProjectNo"  
+           filterable  
+           clearable  
+           :placeholder="$t('basicData.plselectproject')"
+           style="width: 220px"  
+           @input="handleInputChange"  
+         >  
+      <el-option  
+         v-for="item in titleSelectJson['processType']"  
+         :key="item.id"  
+         :label="item.projectNo"  
+         :value="item.projectNo"  
+      />  
+    </el-select>  
+              </el-form-item>
+          </div>
+    <template #footer>
+      <div id="dialog-footer">
+        <el-button type="primary" @click="handleup">
+          {{ $t('basicData.confirm') }}
+        </el-button>
+        <el-button @click="dialogFormVisible = false">{{ $t('basicData.cancel') }}</el-button>
+      </div>
+    </template>
+  </el-dialog>
+</template>
+ 
+<style scoped>
+ .flex-container {  
+  display: flex;  
+  align-items: center; /* 鍨傜洿灞呬腑 */  
+}  
+.flex-container .el-form-item {  
+  flex: 1; /* 浣挎瘡涓〃鍗曢」鍗犳嵁鐩哥瓑鐨勭┖闂� */  
+  margin-right: 0; /* 绉婚櫎榛樿鐨勫彸渚ц竟璺� */  
+}  
+.flex-container .el-form-item:last-child {  
+  margin-left: 20px; /* 涓虹浜屼釜琛ㄥ崟椤规坊鍔犲乏渚ц竟璺� */  
+}
+ 
+ 
+ 
+#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;
+}
+#dotClass {
+  display: flex;
+  margin-left: 20px; 
+  size: 50px;
+  margin-top: 20px;
+  margin-bottom: 10px;
+}
+</style>
\ No newline at end of file
diff --git a/UI-Project/src/views/Slicecage/slicecage.vue b/UI-Project/src/views/Slicecage/slicecage.vue
index 6732174..cc84b90 100644
--- a/UI-Project/src/views/Slicecage/slicecage.vue
+++ b/UI-Project/src/views/Slicecage/slicecage.vue
@@ -886,7 +886,7 @@
     <el-button style="margin-top: 5px;margin-left: 10px;" id="searchButton" type="success" @click="dialogFormVisibleb = true">{{ $t('searchOrder.productionqueue') }}</el-button>
     <el-button style="margin-top: 5px;margin-left: 10px;" id="searchButton" type="warning" @click="handleganghua">{{ $t('searchOrder.temperingqueries') }}</el-button>
     <el-button style="margin-top: 5px;margin-left: 10px;" id="searchButton" type="info" @click="handlezhiban">{{ $t('searchOrder.dutyinformation') }}</el-button>
-    <el-button style="margin-top: 5px;margin-left: 10px;" id="searchButton" type="info" @click="dialogFormVisibles=true;fetchFlows()">闈為挗鍖栨祦绋嬪崱鏌ヨ</el-button>
+    <el-button style="margin-top: 5px;margin-left: 10px;" id="searchButton" type="info" @click="dialogFormVisibles=true;fetchFlows()">{{ $t('searchOrder.searchlayout') }}</el-button>
     <el-switch style="margin-top: 5px;margin-left: 10px;" v-model="ganghua" class="mb-2" :inactive-text="$t('searchOrder.temperedswitch')" @change="handleChange" />
     <el-card style="flex: 1;margin-left: 10px;margin-top: 5px;" v-loading="loading">
       <div style="width: 98%; height: calc(100% - 35px); overflow-y: auto;max-height: 100px;">
@@ -1533,21 +1533,21 @@
           </el-col>
           <el-col :span="4">
               <div id="dt" style="font-size: 15px;">
-              <el-form-item :label="$t('婊$倝鏁伴噺')"  style="width: 14vw">
+              <el-form-item :label="$t('searchOrder.fullfurnaces')" style="width: 14vw">
                 {{ fulltotals }}
               </el-form-item>
               </div>
           </el-col>
           <el-col :span="4">
               <div id="dt" style="font-size: 15px;">
-              <el-form-item :label="$t('褰撳墠鎸囧畾宸ョ▼')"  style="width: 14vw">
+              <el-form-item :label="$t('searchOrder.specifiedproject')" style="width: 14vw">
                 {{ temperingengineerId }}
               </el-form-item>
               </div>
           </el-col>
           <el-col :span="4">
               <div id="dt" style="font-size: 15px;">
-                <el-button size="mini" type="text" plain @click="broked()">{{ $t('鍙栨秷鎸囧畾') }}</el-button>
+                <el-button size="mini" type="text" plain @click="broked()">{{ $t('searchOrder.undesignate') }}</el-button>
               </div>
           </el-col>
         </el-row>
@@ -1557,10 +1557,10 @@
         :data="tableDatagh" :header-cell-style="{background:'#F2F3F5 ',color:'#1D2129'}">
           <el-table-column prop="engineer_id" fixed align="center" :label="$t('searchOrder.projectnumber')" min-width="150"/>
           <el-table-column prop="tempering_layout_id" fixed align="center" :label="$t('searchOrder.layoutnumber')" min-width="120" />
-          <el-table-column prop="count2" align="center" :label="$t('鎬绘暟閲�')" min-width="150" />
-          <el-table-column prop="count1" align="center" :label="$t('绗煎瓙鍐呮暟閲�')" min-width="150" />
-          <el-table-column prop="count3" align="center" :label="$t('缂哄皯鏁伴噺')" min-width="150" />
-          <el-table-column prop="count4" align="center" :label="$t('鐮存崯/鎷胯蛋鏁伴噺')" min-width="150" />
+          <el-table-column prop="count2" align="center" :label="$t('searchOrder.allnumber')" min-width="150" />
+          <el-table-column prop="count1" align="center" :label="$t('searchOrder.numbercages')" min-width="150" />
+          <el-table-column prop="count3" align="center" :label="$t('searchOrder.missingquantity')" min-width="150" />
+          <el-table-column prop="count4" align="center" :label="$t('searchOrder.breakquantity')" min-width="150" />
           <el-table-column fixed="right" :label="$t('searchOrder.operate')" align="center" width="250">
             <template #default="scope">
               <el-button size="mini" type="text" plain @click="brokee(scope.row,1)">{{ $t('searchOrder.specifytempering') }}</el-button>
@@ -1599,7 +1599,7 @@
     <el-table  ref="table" style="margin-top: 20px;height: 500px;"
         :data="tableDatas" :header-cell-style="{background:'#F2F3F5 ',color:'#1D2129'}">
           <el-table-column prop="flow_card_id" fixed align="center" :label="$t('searchOrder.processcards')"/>
-          <el-table-column prop="layer" align="center" label="灞�" />
+          <el-table-column prop="layer" align="center" :label="$t('searchOrder.ceng')" />
           <el-table-column prop="count" align="center" :label="$t('searchOrder.numberglasses')" />
           <el-table-column fixed="right" :label="$t('searchOrder.operate')" align="center" >
             <template #default="scope">
diff --git a/UI-Project/src/views/StockBasicData/stockBasicData.vue b/UI-Project/src/views/StockBasicData/stockBasicData.vue
index a0d3c9e..85ba8a9 100644
--- a/UI-Project/src/views/StockBasicData/stockBasicData.vue
+++ b/UI-Project/src/views/StockBasicData/stockBasicData.vue
@@ -155,20 +155,20 @@
 <template>
   <div>
     <el-card style="flex: 1;margin-left: 10px;margin-top: 20px;" v-loading="loading">
-      <el-select v-model="selectValuesa[0]" filterable :placeholder="$t('璇烽�夋嫨绾胯矾')" clearable style="margin-left: 20px;margin-bottom: 10px;">
-            <el-option label="纾ㄨ竟涓�绾�" value="2001"></el-option>
-            <el-option label="纾ㄨ竟浜岀嚎" value="2002"></el-option>
+      <el-select v-model="selectValuesa[0]" filterable :placeholder="$t('workOrder.cway')" clearable style="margin-left: 20px;margin-bottom: 10px;">
+            <el-option :label="$t('workOrder.edgingone')" value="2001"></el-option>
+            <el-option :label="$t('workOrder.edgingtwo')" value="2002"></el-option>
           </el-select>
 
-          <el-select v-model="selectValuesa[1]" filterable :placeholder="$t('璇烽�夋嫨鐘舵��')" clearable style="margin-left: 20px;margin-bottom: 10px;" >
-            <el-option label="鏈(杈�" value="0"></el-option>
-            <el-option label="纾ㄨ竟涓�" value="1"></el-option>
-            <el-option label="宸茬(杈�" value="2"></el-option>
+          <el-select v-model="selectValuesa[1]" filterable :placeholder="$t('workOrder.cstate')" clearable style="margin-left: 20px;margin-bottom: 10px;" >
+            <el-option :label="$t('workOrder.nedging')" value="0"></el-option>
+            <el-option :label="$t('workOrder.edging')" value="1"></el-option>
+            <el-option :label="$t('workOrder.finedging')" value="2"></el-option>
           </el-select>
-          <span class="demonstration" style="margin-left: 20px;margin-bottom: 10px;">鏃堕棿娈�</span>
-            <el-date-picker v-model="timeRange" type="datetimerange" range-separator="鑷�" start-placeholder="寮�濮嬫棩鏈�"  style="margin-left: 20px;margin-bottom: 10px;" value-format = "YYYY-MM-DD hh:mm:ss"
+          <span class="demonstration" style="margin-left: 20px;margin-bottom: 10px;">{{ $t('workOrder.time') }}</span>
+            <el-date-picker v-model="timeRange" type="datetimerange" range-separator="鑷�" :start-placeholder="$t('reportmanage.starttime')"  style="margin-left: 20px;margin-bottom: 10px;" value-format = "YYYY-MM-DD hh:mm:ss"
             
-              end-placeholder="缁撴潫鏃ユ湡">
+              :end-placeholder="$t('reportmanage.endtime')">
             </el-date-picker>
           <el-button type="primary" style="margin-left: 10px;margin-bottom: 10px;" @click="setEdgGlassInfoRequest()">{{
         $t('reportmanage.inquire')
diff --git a/UI-Project/src/views/UnLoadGlass/loadmachinerack.vue b/UI-Project/src/views/UnLoadGlass/loadmachinerack.vue
index b0b40f3..01107af 100644
--- a/UI-Project/src/views/UnLoadGlass/loadmachinerack.vue
+++ b/UI-Project/src/views/UnLoadGlass/loadmachinerack.vue
@@ -446,13 +446,13 @@
 <template>
   <div>
     <el-button style="margin-top: 10px;margin-left: 10px;margin-bottom: 10px;" id="searchButton" type="primary"
-      @click="dialogFormVisibleaDownGlass = true">钀芥灦璇︽儏
+      @click="dialogFormVisibleaDownGlass = true">{{ $t('reportWork.details') }}
     </el-button>
     <el-button style="margin-top: 10px;margin-left: 10px;margin-bottom: 10px;" id="searchButton" type="primary"
-      @click="dialogFormVisibleaDownGlasss = true">浜哄伐涓嬬墖
+      @click="dialogFormVisibleaDownGlasss = true">{{ $t('reportWork.filming') }}
     </el-button>
     <el-switch style="margin-top: 10px;margin-left: 15px;margin-bottom: 10px;" v-model="autoPrint" class="mb-2"
-      :inactive-text="$t('鑷姩鎵撳嵃')" @change="handleChange" />
+      :inactive-text="$t('basicData.printing')" @change="handleChange" />
     <el-card style="flex: 1;" v-loading="loading">
       <el-card style="flex: 1;margin-left: 4px;margin-top: 1px;" v-loading="loading">
         <div style="width: 98%; height: calc(100% - 35px); overflow-y: auto;">
@@ -465,8 +465,8 @@
             <el-table-column prop="totalQuantity" align="center" :label="$t('reportWork.totalquantity')"
               min-width="120" />
             <el-table-column prop="racksNumber" align="center" :label="$t('reportWork.beendropped')" min-width="120" />
-            <el-table-column prop="layer" align="center" label="灞傛暟" min-width="120" />
-            <el-table-column prop="otherNumber" align="center" label="浜哄伐涓嬬墖鏁�" min-width="120" />
+            <el-table-column prop="layer" align="center" :label="$t('reportWork.cenumber')" min-width="120" />
+            <el-table-column prop="otherNumber" align="center" :label="$t('reportWork.artificialorder')" min-width="120" />
             <!-- <el-table-column prop="work_state" align="center" :label="$t('reportWork.state')" min-width="120" /> -->
             <el-table-column prop="deviceId" align="center" :label="$t('reportWork.devicenumber')" min-width="120" />
             <el-table-column align="center" :label="$t('reportWork.startstatus')" min-width="80" prop="enableState">
@@ -483,17 +483,17 @@
                 </el-button>
                 <el-button size="mini" type="text" plain @click="handleBindRack2(scope.row)">{{ $t('reportWork.clear')
                   }}</el-button>
-                <el-button @click="open(scope.row)" :disabled="scope.row.flowCardId == null">鎵撳嵃娴佺▼鍗�</el-button>
-                <el-button @click="open1(scope.row)" :disabled="scope.row.flowCardId == null">鎵撳嵃鏍囩</el-button>
+                <el-button @click="open(scope.row)" :disabled="scope.row.flowCardId == null">{{ $t('reportWork.processcard') }}</el-button>
+                <el-button @click="open1(scope.row)" :disabled="scope.row.flowCardId == null">{{ $t('reportWork.printlabels') }}</el-button>
               </template>
 
             </el-table-column>
           </el-table>
 
         </div>
-        <el-dialog v-model="dialogFormVisibleaDownGlass" top="2vh" width="97%" :title="$t('钀芥灦淇℃伅')">
-          <el-select v-model="selectValuesa[0]" filterable :placeholder="$t('璇烽�夋嫨宸ヤ綅')" clearable>
-            <el-option label="鍏ㄩ儴" value="0"></el-option>
+        <el-dialog v-model="dialogFormVisibleaDownGlass" top="2vh" width="97%" :title="$t('reportWork.information')">
+          <el-select v-model="selectValuesa[0]" filterable :placeholder="$t('reportWork.cstation')" clearable>
+            <el-option :label="$t('reportWork.all')" value="0"></el-option>
             <el-option label="1" value="1"></el-option>
             <el-option label="2" value="2"></el-option>
             <el-option label="3" value="3"></el-option>
@@ -508,9 +508,9 @@
             <el-option v-for="item in selectOptionsa" :key="item" :label="item" :value="item" />
           </el-select>
 
-          <span class="demonstration">鏃堕棿娈�</span>
-          <el-date-picker v-model="timeRange" type="datetimerange" range-separator="鑷�" start-placeholder="寮�濮嬫棩鏈�"
-            value-format="YYYY-MM-DD hh:mm:ss" end-placeholder="缁撴潫鏃ユ湡">
+          <span class="demonstration">{{ $t('reportWork.timeperiod') }}</span>
+          <el-date-picker v-model="timeRange" type="datetimerange" range-separator="鑷�" :start-placeholder="$t('reportmanage.starttime')"
+            value-format="YYYY-MM-DD hh:mm:ss" :end-placeholder="$t('reportmanage.endtime')">
           </el-date-picker>
 
           <el-button type="primary" style="margin-left: 10px;" @click="selectDownGlassData()">{{
@@ -519,19 +519,19 @@
           </el-button>
           <el-table height="200px" ref="table" @selection-change="handleSelectionChange" :data="downGlass"
             :header-cell-style="{ background: '#F2F3F5 ', color: '#1D2129' }">
-            <el-table-column prop="workStationId" align="center" :label="$t('宸ヤ綅鍙�')" min-width="80" />
-            <el-table-column prop="engineerId" align="center" :label="$t('宸ョ▼鍙�')" min-width="80" />
-            <el-table-column prop="flowCardId" align="center" :label="$t('娴佺▼鍗″彿')" min-width="80" />
-            <el-table-column prop="layer" align="center" :label="$t('灞�')" min-width="120" />
-            <el-table-column prop="sequence" align="center" :label="$t('椤哄簭')" min-width="150" />
-            <el-table-column prop="width" align="center" :label="$t('瀹�')" min-width="120" />
-            <el-table-column prop="height" align="center" :label="$t('楂�')" min-width="120" />
-            <el-table-column prop="Filmsid" align="center" :label="$t('鑶滅郴')" min-width="120" />
-            <el-table-column prop="thickness" align="center" label="鍘氬害" min-width="120" />
-            <el-table-column prop="glassId" align="center" :label="$t('鐜荤拑id')" min-width="120" />
+            <el-table-column prop="workStationId" align="center" :label="$t('reportWork.stationnumber')" min-width="80" />
+            <el-table-column prop="engineerId" align="center" :label="$t('basicData.projectnumber')" min-width="80" />
+            <el-table-column prop="flowCardId" align="center" :label="$t('workOrder.cardnumber')" min-width="80" />
+            <el-table-column prop="layer" align="center" :label="$t('searchOrder.ceng')" min-width="120" />
+            <el-table-column prop="sequence" align="center" :label="$t('reportWork.order')" min-width="150" />
+            <el-table-column prop="width" align="center" :label="$t('basicData.width')" min-width="120" />
+            <el-table-column prop="height" align="center" :label="$t('basicData.height')" min-width="120" />
+            <el-table-column prop="Filmsid" align="center" :label="$t('basicData.coatingtypes')" min-width="120" />
+            <el-table-column prop="thickness" align="center" :label="$t('basicData.thickness')" min-width="120" />
+            <el-table-column prop="glassId" align="center" :label="$t('searchOrder.glassID')" min-width="120" />
           </el-table>
         </el-dialog>
-        <el-dialog v-model="dialogFormVisibleaDownGlasss" top="2vh" width="97%" :title="$t('浜哄伐涓嬬墖淇℃伅')">
+        <el-dialog v-model="dialogFormVisibleaDownGlasss" top="2vh" width="97%" :title="$t('searchOrder.filminformation')">
           <div style="display:flex;justify-content: space-around;">
             <el-card
               style="display: flex; justify-content: center; align-items: center; width:800px; height: 800px;position: relative;">
@@ -540,8 +540,8 @@
 
               </div>
               <div style="font-size: 50px; text-align: center;position: absolute;top:0px;left:170px;">
-                <div>浜哄伐涓嬬墖褰撳墠鐜荤拑淇℃伅</div>
-                <div><el-button type="primary" @click="open1(takeGlass)" >鎵撳嵃鏍囩</el-button></div>
+                <div>{{ $t('reportWork.glassmation') }}</div>
+                <div><el-button type="primary" @click="open1(takeGlass)" >{{ $t('reportWork.printlabels') }}</el-button></div>
                 <div>{{ takeGlass.flowCardId }}</div>
                 <div>{{ takeGlass.layer }}</div>
                 <div>{{ takeGlass.glassId }}</div>
@@ -556,8 +556,8 @@
 
               </div>
               <div style="font-size: 50px; text-align: center;position: absolute;top:0px;left:200px;">
-                <div>鎵爜鏋綋鍓嶇幓鐠冧俊鎭�</div>
-                <div><el-button type="primary" @click="open1(scanGlass)" >鎵撳嵃鏍囩</el-button></div>
+                <div>{{ $t('reportWork.barcodescanner') }}</div>
+                <div><el-button type="primary" @click="open1(scanGlass)" >{{ $t('reportWork.printlabels') }}</el-button></div>
                 <div>{{ scanGlass.flowCardId }}</div>
                 <div>{{ scanGlass.layer }}</div>
                 <div>{{ scanGlass.glassId }}</div>

--
Gitblit v1.8.0