wangfei
2024-10-17 32bc1fb9a3692c460d21f8094ca80f1e0e0eb6a6
被覆盖代码找回
12个文件已修改
3623 ■■■■ 已修改文件
UI-Project/src/lang/en.js 1203 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
UI-Project/src/lang/py.js 619 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
UI-Project/src/lang/zh.js 1212 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
UI-Project/src/router/index.js 6 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
UI-Project/src/views/NewPage.vue 276 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
UI-Project/src/views/PurchaseReturn/purchaseReturn.vue 10 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
UI-Project/src/views/Returns/return.vue 8 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
UI-Project/src/views/Returns/returns.vue 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
UI-Project/src/views/Returns/upreturns.vue 22 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
UI-Project/src/views/Slicecage/slicecage.vue 32 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
UI-Project/src/views/StockBasicData/stockBasicData.vue 40 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
UI-Project/src/views/UnLoadGlass/loadmachinerack.vue 193 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
UI-Project/src/lang/en.js
@@ -1,586 +1,619 @@
export  default {
  "northglassMESsystem": "NorthGlass MES System",
    login:{
        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:'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:'The server connection is abnormal. Please try again later',
        titleFirst:"Welcome ",
        titleLast:' to use NorthGlass MES system!',
        quit:"Exit",
    },
    basicData:{
        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:'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:'Breakage',
        takeaway:'Manual removal',
        takeon:'The arrangement is complete',
    },
    searchOrder:{
        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',
    },
    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:'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',
    }
}
    "northglassMESsystem": "NorthGlass MES System",
      login:{
          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:'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:'The server connection is abnormal. Please try again later',
          titleFirst:"Welcome ",
          titleLast:' to use NorthGlass MES system!',
          quit:"Exit",
      },
      basicData:{
          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:'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:'Breakage',
          takeaway:'Manual removal',
          takeon:'The arrangement is complete',
      },
      searchOrder:{
          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',
      }
  }
UI-Project/src/lang/py.js
@@ -1,300 +1,333 @@
export  default {
    "northglassMESsystem": 'Система "NorthGlass MES"' ,
      login:{
          userErr:'Введите номер счета.',
          pwErr:'Введите пароль.',
          user:'Аккаунт',
          password:'Код',
          login:'Залогин',
          loginSuccessful:'Вход в систему выполнен успешно!',
          register:'Зарегистрирова',
          namea:'Имя не может быть пустым',
          len:'Длина не должна превышать 16',
          passnull:'Пароль не может быть пустым',
          leng:'Длина пароля не должна быть меньше 6 или больше 16.',
          spwn:'Пароль подтверждения не может быть пустым',
          depass:'Два разных пароля.',
      },
      register:{
          registerSuccessful:'Регистрация успешно',
          newuserregister:'Новый реестр пользователей',
          name:'Имя:',
          inputname:'Введите имя',
          password:'Код:',
          pwErr:'Введите пароль.',
          passwordation:'Подтвердите пароль:',
          pwErration:'Пожалуйста, подтвертите пароль',
          registration:'Подтверждение о регистрации',
          false:'Отмена',
      },
      main:{
          connectErr:'Необычное подключение к серверу, попробуйте позже',
          titleFirst:"Добро пожаловать ",
          titleLast:' в систему NorthGlass MES!',
          quit:"Выход",
      },
      basicData:{
          deletemessage:'Удалить эту информацию или нет?',
          laserprinting:'Машина лазерной маркировки готова:',
          cuttingmachine:'Машина для резки готова:',
          machine:'Состояние станок загрузки в режиме онлайн:',
          machineaa:'Ручное состояние станок загрузки:',
          selectproject:"Выберите проект",
          startloading:'Начало загрузки',
          stop:'Пауза',
          yes:'подтверд',
          change:'переключа',
          projectnumber:'Номер проекта',
          glasswidth:'Ширина стекла',
          glassheight:'Высота стекла',
          coatingtypes:'Типы покрытий',
          coatingtypesa:'Типы покрытий:',
          quantity:'Количество',
          quantitya:'Количество:',
          thickness:'Толщина',
          thicknessa:'Толщина:',
          startstatus:'Статус начала операции',
          pass:'Через',
          waiting:'Ждем.',
          up:'Загрузка',
          finish:'Завершено',
          project:'инженерия',
          plselectproject:'Пожалуйста, выберите проект.',
          confirm:'подтверд',
          cancel:'Отмена',
          startfilm:'Начинать или нет?',
          whetherpause:'Пауза или нет?',
          station:'Рабочее место',
          width:'Ширина',
          widtha:'Ширина:',
          height:'Высота',
          heighta:'Высота:',
          operate:'Операция',
          add:'Добавля',
          delete:'Удал',
          addglass:'Добавить стекло',
          selectwidth:'Выбирите ширину',
          selectheight:'Выбирите высоту',
          selectcoatingtypes:'Выберите типы покрытий',
          selectthickness:'Выберите толщину',
          selectquantity:'Введите кольчество.',
          pause:'Вторая и четвертая строки должны быть выше 2700 для сохранения!',
          pausea:'Пожалуйста, убедитесь, что маркировочная и режущая машины готовы!',
          infonull:'Номер проекта не может быть пустым!',
          updatanull:'Проект не сохранились на листе загрузки!',
          glassnull:'Ошибка при обновлении стекла',
      },
      sorter:{
          gridnumber:'Ячеек сеткла',
          glassnumber:'Номер стакла',
          width:'Ширина',
          height:'Высота',
          startstatus:'Статус начала операции',
          disable:'Отключ',
          start:'Начало',
          deficiencieste:'Недостатки в отчетности',
          operate:'Операция',
          prompt:'Подсказк',
          information:'Следует ли сообщать недостающую информацию?',
          yes:'Да',
          cancel:'Отмена',
      },
      order:{
          dilapidation:'Повреждение',
          Takeaway:'Взять вручную',
      },
      searchOrder:{
        cageinformation:'Информация буфера',
        productionqueue:'Производственная очередь',
        outputglassID:'Выходное стекло ID',
        startposition:'Занять позиции',
        targetlocation:'Позиция цели',
        trips:'№ поезда',
        number:'Серийн номер',
        taskstatus:'Состояние задачи',
        filmenter:'Ожидание стеклянной вход',
        infilm:'В настоящее время',
        endtask:'Задача на конец',
        completetask:'Выполнение задания',
        intoglassid:'Входной стеклянный ID',
        line:'Линия',
        Usage:'Скорость использования',
        free:'Бесплатно (ячеек)',
        addcage:'Добавить информацию о буфере',
        glassIDa:'Стеклянный ID:',
        glassID:'Стеклянный ID',
        inglassID:'Введите стекло ID',
        pieceingrid:'Порядок расположения маленьких стеклянных пластин в клетке',
        pieceingrida:'Порядок расположения маленьких стеклянных пластин в клетке:',
        inpieceingrid:'Введите порядок расположения стеклянных листов в ячееке',
        cardnumber:'Номер карточки процесса',
        cardnumbera:'Номер карточки процесса:',
        incardnumber:'Введите номер процесса .',
        typeglass:'Тип стекла',
        typeglassa:'Тип стекла:',
        intypeglass:'Введите тип стекла',
        coatingtypes:'Типы покрытий',
        width:'Ширина',
        widtha:'Ширина:',
        inwidth:'Введите ширину',
        height:'Высота',
        heighta:'Высота:',
        inheight:'Введите высоту',
        thickness:'Толщина',
        thicknessa:'Толщина:',
        inthickness:'Введите толщину.',
        layoutID:'Чертеж ID загрузки печи для закалки',
        layoutIDa:'Чертеж ID загрузки печи для закалки:',
        inlayoutID:'Введите чертеж закалки ID',
        picturesequence:'Чертеж серийн номер загрузки печи для закалки',
        picturesequencea:'Чертеж серийн номер загрузки печи для закалки:',
        inpicturesequence:'Введите порядок чертежи закалки стекла.',
        startstatus:'Статус начала операции',
        startstatusa:'Статус начала операции:',
        instartstatus:'Введите состояние активации',
        glassgaps:'Стеклянный зазор',
        glassgapsa:'Стеклянный зазор:',
        inglassgaps:'Введите стекло зазор',
        sure:'подтверд',
        cancel:'Отмена',
        operate:'Операция',
        breakage:'Повреждение',
        delete:'Удал',
        outfilm:'Выпуск стекла',
        cagetableID:'ID буферной таблицы',
        cagenumber:'Буфер номера',
        gridnumber:'Ячеек сеткла',
        enable:'Начало',
        disable:'Отключ',
        remainingwidth:'Остаточная ширина',
        add:'Добавля',
        sheetID:'Закалка маленький стеклянный ID таблицы информации',
        processcards:'Карточка процесса',
        processcardtype:'Тип стекла карточки процесса',
        acceptshorizontal:'Умеренное принятие горизонтали',
        xcoordinates:'X-координаты',
        ycoordinates:'Y-координаты',
        rotationangle:'Угол вращения (против часовой стрелки)',
        state:'Состояние',
        takeout:'Взять',
        deletemessage:'Удалить эту информацию или нет?',
        prompt:'Подсказк',
        yes:'Да',
        accept:'Принять',
        noaccept:'Не принимать',
        filmcomplete:'Стекло готово',
        waiting:'Ждем.',
export default {
    "northglassMESsystem": 'Система "NorthGlass MES"',
    login: {
        userErr: 'Введите номер счета.',
        pwErr: 'Введите пароль.',
        user: 'Аккаунт',
        password: 'Код',
        login: 'Залогин',
        loginSuccessful: 'Вход в систему выполнен успешно!',
        register: 'Зарегистрирова',
        namea: 'Имя не может быть пустым',
        len: 'Длина не должна превышать 16',
        passnull: 'Пароль не может быть пустым',
        leng: 'Длина пароля не должна быть меньше 6 или больше 16.',
        spwn: 'Пароль подтверждения не может быть пустым',
        depass: 'Два разных пароля.',
    },
    workOrder:{
        glassID:'Стеклянный ID',
        height:'Высота',
        width:'Ширина',
        thickness:'Толщина',
        coatingtypes:'Типы покрытий',
        productionsequence:'Последовательность производства',
        cardnumber:'Номер карточки процесса',
        operate:'Операция',
        messagedamaged:'Повреждено ли сообщение?',
        prompt:'Подсказк',
        yes:'Да',
        cancel:'Отмена',
        takemessage:'Следует ли удалять сообщение?',
        breakage:'Повреждение',
        takeout:'Взять',
    register: {
        registerSuccessful: 'Регистрация успешно',
        newuserregister: 'Новый реестр пользователей',
        name: 'Имя:',
        inputname: 'Введите имя',
        password: 'Код:',
        pwErr: 'Введите пароль.',
        passwordation: 'Подтвердите пароль:',
        pwErration: 'Пожалуйста, подтвертите пароль',
        registration: 'Подтверждение о регистрации',
        false: 'Отмена',
    },
    processCard:{
        intofurnace:'В печь',
        beforefurnace:'До печки.',
        outfurnace:'Окончено стекло из печи для закалки',
    main: {
        connectErr: 'Необычное подключение к серверу, попробуйте позже',
        titleFirst: "Добро пожаловать ",
        titleLast: ' в систему NorthGlass MES!',
        quit: "Выход",
    },
    reportWork:{
        lowerbit:'Станция разгрузки',
        shelfnumber:'Номер стойки регистрации',
        cardnumber:'Номер карточки процесса',
        totalquantity:'Общее количество',
        beendropped:'Количество стекла разгрузки',
        state:'Состояние',
        devicenumber:'Номер оборудования.',
        startstatus:'Статус начала операции',
        enable:'Начало',
        unenable:'Не начат',
        operate:'Операция',
        bindingshelves:'Назначенная стеллажка',
        clear:'Чисто.',
        workstation:'Станция номер',
        cardnumbera:'Номер карточки процесса:',
        incardnumber:'Пожалуйста, выберите номер программы',
        clearglass:'Очистить стекло с полки',
        sure:'подтверд',
        cancel:'Отмена',
        glassinformation:'Информация стекла',
        glassID:'Стеклянный ID',
        coatingtypes:'Типы покрытий',
        thickness:'Толщина',
        width:'Ширина',
        height:'Высота',
    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: 'Ошибка при обновлении стекла',
    },
    productStock:{
        addusers:'Добавьте пользователей.',
        username:'Имя пользователя.',
        usernamea:'Имя пользователя.:',
        inusername:'Введите имя пользователя',
        role:'Роль',
        rolea:'Роль:',
        inrole:'Выберите роль',
        test:'Тест',
        admin:'Администратор.',
        operate:'Операция',
        resetpassword:'Сбросить пароль',
        exit:'Редактор',
        delete:'Удал',
        prompt:'Подсказк',
        repassword:'Перезагрузка пользовательского пароля или нет?',
        yes:'Да',
        cancel:'Отмена',
        reusername:'Изменение пользователя',
        addusername:'Добавьте пользователей.',
        password:'Код:',
        sure:'подтверд',
        inpassword:'Введите пароль.',
        deusername:'Удаление пользователя или нет?',
    sorter: {
        gridnumber: 'Ячеек сеткла',
        glassnumber: 'Номер стакла',
        width: 'Ширина',
        height: 'Высота',
        startstatus: 'Статус начала операции',
        disable: 'Отключ',
        start: 'Начало',
        deficiencieste: 'Недостатки в отчетности',
        operate: 'Операция',
        prompt: 'Подсказк',
        information: 'Следует ли сообщать недостающую информацию?',
        yes: 'Да',
        cancel: 'Отмена',
    },
    customer:{
        addmenu:'Добавьте меню.',
        firstmenu:'Таблица меню первой степени',
        link:'Ссылк',
        linka:'Ссылк:',
        inlink:'Введите ссылку',
        sort:'Сортировк',
        sorta:'Сортировк:',
        insort:'Введите сортировку',
        operate:'Операция',
        exit:'Редактор',
        inmenu:'Введите меню',
        delete:'Удал',
        semenu:'Таблица меню второй степени',
        menu:'Меню.:',
        sure:'подтверд',
        cancel:'Отмена',
        exmene:'Изменение меню.',
        yes:'Да',
        demenu:'Удалить меню или нет?',
        prompt:'Подсказк',
    order: {
        dilapidation: 'Повреждение',
        Takeaway: 'Взять вручную',
    },
    delivery:{
        addrole:'Добавьте роли.',
        editrole:'Изменение роли.',
        role :'Роль',
        rolea :'Роль:',
        inrole :'Введите роли.',
        operate :'Операция',
        edit :'Редактор',
        delete :'Удал',
        sure :'подтверд',
        cancel :'Отмена',
        yes:'Да',
        derole :'Удалить персонаж или нет?',
        prompt:'Подсказк',
    searchOrder: {
        searchlayout:'Запрос нетемперированной технологической карты',
        fullfurnaces:'Количество полных печей',
        specifiedproject:'Указанный в данный момент проект',
        undesignate:'Без обозначения',
        allnumber:'Общее количество',
        numbercages:'Количество сепараторов',
        missingquantity:'Недостающее количество',
        breakquantity:'Количество Поломка/Вынос',
        ceng:'слой',
        cageinformation: 'Информация буфера',
        productionqueue: 'Производственная очередь',
        outputglassID: 'Выходное стекло ID',
        startposition: 'Занять позиции',
        targetlocation: 'Позиция цели',
        trips: '№ поезда',
        number: 'Серийн номер',
        taskstatus: 'Состояние задачи',
        filmenter: 'Ожидание стеклянной вход',
        infilm: 'В настоящее время',
        endtask: 'Задача на конец',
        completetask: 'Выполнение задания',
        intoglassid: 'Входной стеклянный ID',
        line: 'Линия',
        Usage: 'Скорость использования',
        free: 'Бесплатно (ячеек)',
        addcage: 'Добавить информацию о буфере',
        glassIDa: 'Стеклянный ID:',
        glassID: 'Стеклянный ID',
        inglassID: 'Введите стекло ID',
        pieceingrid: 'Порядок расположения маленьких стеклянных пластин в клетке',
        pieceingrida: 'Порядок расположения маленьких стеклянных пластин в клетке:',
        inpieceingrid: 'Введите порядок расположения стеклянных листов в ячееке',
        cardnumber: 'Номер карточки процесса',
        cardnumbera: 'Номер карточки процесса:',
        incardnumber: 'Введите номер процесса .',
        typeglass: 'Тип стекла',
        typeglassa: 'Тип стекла:',
        intypeglass: 'Введите тип стекла',
        coatingtypes: 'Типы покрытий',
        width: 'Ширина',
        widtha: 'Ширина:',
        inwidth: 'Введите ширину',
        height: 'Высота',
        heighta: 'Высота:',
        inheight: 'Введите высоту',
        thickness: 'Толщина',
        thicknessa: 'Толщина:',
        inthickness: 'Введите толщину.',
        layoutID: 'Чертеж ID загрузки печи для закалки',
        layoutIDa: 'Чертеж ID загрузки печи для закалки:',
        inlayoutID: 'Введите чертеж закалки ID',
        picturesequence: 'Чертеж серийн номер загрузки печи для закалки',
        picturesequencea: 'Чертеж серийн номер загрузки печи для закалки:',
        inpicturesequence: 'Введите порядок чертежи закалки стекла.',
        startstatus: 'Статус начала операции',
        startstatusa: 'Статус начала операции:',
        instartstatus: 'Введите состояние активации',
        glassgaps: 'Стеклянный зазор',
        glassgapsa: 'Стеклянный зазор:',
        inglassgaps: 'Введите стекло зазор',
        sure: 'подтверд',
        cancel: 'Отмена',
        operate: 'Операция',
        breakage: 'Повреждение',
        delete: 'Удал',
        outfilm: 'Выпуск стекла',
        cagetableID: 'ID буферной таблицы',
        cagenumber: 'Буфер номера',
        gridnumber: 'Ячеек сеткла',
        enable: 'Начало',
        disable: 'Отключ',
        remainingwidth: 'Остаточная ширина',
        add: 'Добавля',
        sheetID: 'Закалка маленький стеклянный ID таблицы информации',
        processcards: 'Карточка процесса',
        processcardtype: 'Тип стекла карточки процесса',
        acceptshorizontal: 'Умеренное принятие горизонтали',
        xcoordinates: 'X-координаты',
        ycoordinates: 'Y-координаты',
        rotationangle: 'Угол вращения (против часовой стрелки)',
        state: 'Состояние',
        takeout: 'Взять',
        deletemessage: 'Удалить эту информацию или нет?',
        prompt: 'Подсказк',
        yes: 'Да',
        accept: 'Принять',
        noaccept: 'Не принимать',
        filmcomplete: 'Стекло готово',
        waiting: 'Ждем.',
    },
  }
    workOrder: {
        glassID: 'Стеклянный ID',
        height: 'Высота',
        width: 'Ширина',
        thickness: 'Толщина',
        coatingtypes: 'Типы покрытий',
        productionsequence: 'Последовательность производства',
        cardnumber: 'Номер карточки процесса',
        operate: 'Операция',
        messagedamaged: 'Повреждено ли сообщение?',
        prompt: 'Подсказк',
        yes: 'Да',
        cancel: 'Отмена',
        takemessage: 'Следует ли удалять сообщение?',
        breakage: 'Повреждение',
        takeout: 'Взять',
        time:'Период времени',
        cway:'Пожалуйста, выберите маршрут',
        cstate:'Пожалуйста, выберите статус',
        edgingone:'Окантовка линии',
        edgingtwo:'Окантовка двух линий',
        nedging:'Окантовка',
        edging:'Край',
        finedging:'был окантовочным',
    },
    processCard: {
        intofurnace: 'В печь',
        beforefurnace: 'До печки.',
        outfurnace: 'Окончено стекло из печи для закалки',
    },
    reportWork: {
        details:'Сведения о сдаче',
        filming:'Искусственная съемка',
        printing:'Автоматическая печать',
        cenumber:'Количество слоев',
        artificialorder:'Количество штук при искусственном заказе',
        processcard:'Печать технологической карты',
        printlabels:'Печать этикеток',
        information:'Информация о посадке',
        cstation:'Пожалуйста, выберите стол',
        all:'все',
        timeperiod:'Период времени',
        stationnumber:'Номер станции',
        order:'порядок',
        filminformation:'Информация о пленке вручную',
        glassmation:'Искусственная пленка актуальная информация о стекле',
        barcodescanner:'Актуальная информация о стекле сканера штрих-кода',
        lowerbit: 'Станция разгрузки',
        shelfnumber: 'Номер стойки регистрации',
        cardnumber: 'Номер карточки процесса',
        totalquantity: 'Общее количество',
        beendropped: 'Количество стекла разгрузки',
        state: 'Состояние',
        devicenumber: 'Номер оборудования.',
        startstatus: 'Статус начала операции',
        enable: 'Начало',
        unenable: 'Не начат',
        operate: 'Операция',
        bindingshelves: 'Назначенная стеллажка',
        clear: 'Чисто.',
        workstation: 'Станция номер',
        cardnumbera: 'Номер карточки процесса:',
        incardnumber: 'Пожалуйста, выберите номер программы',
        clearglass: 'Очистить стекло с полки',
        sure: 'подтверд',
        cancel: 'Отмена',
        glassinformation: 'Информация стекла',
        glassID: 'Стеклянный ID',
        coatingtypes: 'Типы покрытий',
        thickness: 'Толщина',
        width: 'Ширина',
        height: 'Высота',
    },
    productStock: {
        addusers: 'Добавьте пользователей.',
        username: 'Имя пользователя.',
        usernamea: 'Имя пользователя.:',
        inusername: 'Введите имя пользователя',
        role: 'Роль',
        rolea: 'Роль:',
        inrole: 'Выберите роль',
        test: 'Тест',
        admin: 'Администратор.',
        operate: 'Операция',
        resetpassword: 'Сбросить пароль',
        exit: 'Редактор',
        delete: 'Удал',
        prompt: 'Подсказк',
        repassword: 'Перезагрузка пользовательского пароля или нет?',
        yes: 'Да',
        cancel: 'Отмена',
        reusername: 'Изменение пользователя',
        addusername: 'Добавьте пользователей.',
        password: 'Код:',
        sure: 'подтверд',
        inpassword: 'Введите пароль.',
        deusername: 'Удаление пользователя или нет?',
    },
    customer: {
        addmenu: 'Добавьте меню.',
        firstmenu: 'Таблица меню первой степени',
        link: 'Ссылк',
        linka: 'Ссылк:',
        inlink: 'Введите ссылку',
        sort: 'Сортировк',
        sorta: 'Сортировк:',
        insort: 'Введите сортировку',
        operate: 'Операция',
        exit: 'Редактор',
        inmenu: 'Введите меню',
        delete: 'Удал',
        semenu: 'Таблица меню второй степени',
        menu: 'Меню.:',
        sure: 'подтверд',
        cancel: 'Отмена',
        exmene: 'Изменение меню.',
        yes: 'Да',
        demenu: 'Удалить меню или нет?',
        prompt: 'Подсказк',
    },
    delivery: {
        addrole: 'Добавьте роли.',
        editrole: 'Изменение роли.',
        role: 'Роль',
        rolea: 'Роль:',
        inrole: 'Введите роли.',
        operate: 'Операция',
        edit: 'Редактор',
        delete: 'Удал',
        sure: 'подтверд',
        cancel: 'Отмена',
        yes: 'Да',
        derole: 'Удалить персонаж или нет?',
        prompt: 'Подсказк',
    },
}
UI-Project/src/lang/zh.js
@@ -1,586 +1,628 @@
export  default {
  "northglassMESsystem": "北玻MES系统",
    login:{
        userErr:'请输入账号',
        pwErr:'请输入密码',
        user:'账号',
        password:'密码',
        login:'登录',
        loginSuccessful:'登录成功!',
        register:'注册',
        namea:'姓名不能为空',
        len:'长度不能超过16',
        passnull:'密码不能为空',
        leng:'密码长度不能低于6或超过16',
        spwn:'确认密码不能为空',
        depass:'两次密码不相同',
    },
    register:{
        registerSuccessful:'注册成功',
        newuserregister:'注册新用户',
        name:'姓名:',
        inputname:'请输入姓名',
        password:'密码:',
        pwErr:'请输入密码',
        passwordation:'确认密码:',
        pwErration:'请确认密码',
        registration:'确认注册',
        false:'取消',
    },
    main:{
        connectErr:'服务器连接异常,请稍后再试',
        titleFirst:"欢迎 ",
        titleLast:' 使用北玻MES系统!',
        quit:"退出",
    },
    basicData:{
        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:'更新玻璃状态时发生错误',
        deletemessage:'是否删除该条信息?',
        layoutSequence:'序号',
    },
    sorter:{
        gridnumber:'栅格号',
        glassnumber:'玻璃编号',
        width:'宽',
        height:'高',
        startstatus:'启用状态',
        disable:'已禁用',
        start:'已启用',
        deficiencieste:'报缺',
        updown:'人工下片',
        operate:'操作',
        prompt:'提示',
        information:'是否报缺该条信息?',
        infor:'是否人工下片该条信息?',
        yes:'是',
        cancel:'取消',
    },
    order:{
        dilapidation:'破损',
        takeaway:'人工拿走',
        takeon:'摆片完成',
    },
    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:'请输入玻璃类型',
        width:'宽',
        widtha:'宽:',
        inwidth:'请输入宽',
        height:'高',
        heighta:'高:',
        inheight:'请输入高',
        coatingtypes:'膜系',
        thickness:'厚度',
        thicknessa:'厚度:',
        inthickness:'请输入厚度',
        layoutID:'钢化版图ID',
        layoutIDa:'钢化版图ID:',
        inlayoutID:'请输入钢化版图ID',
        picturesequence:'钢化版图片序',
        picturesequencea:'钢化版图片序:',
        inpicturesequence:'请输入钢化版图片序',
        startstatus:'启用状态',
        startstatusa:'启用状态:',
        instartstatus:'请输入启用状态',
        glassgaps:'玻璃间隙',
        glassgapsa:'玻璃间隙:',
        inglassgaps:'请输入玻璃间隙',
        sure:'确认',
        cancel:'取消',
        operate:'操作',
        breakage:'破损',
        delete:'删除',
        outfilm:'出片',
        cagetableID:'大理片笼表ID',
        cagenumber:'理片笼号',
        gridnumber:'栅格号',
        gridnumbera:'栅格号:',
        grid:'请输入栅格号',
        enable:'已启用',
        disable:'已禁用',
        remainingwidth:'剩余宽度',
        add:'添加',
        sheetID:'钢化小片信息表ID',
        processcards:'流程卡',
        processcardtype:'流程卡玻璃类型',
        acceptshorizontal:'钢化是否接受横放',
        xcoordinates:'x坐标',
        ycoordinates:'y坐标',
        rotationangle:'旋转角度(逆时针)',
        state:'状态',
        takeout:'拿走',
        deletemessage:'是否删除该条信息?',
        prompt:'提示',
        yes:'是',
        accept:'接受',
        noaccept:'不接受',
        filmcomplete:'出片完成',
        waiting:'等待中',
        broke:'是否破损该条信息?',
        brokeb:'是否拿走该条信息?',
        outfil:'是否出片该条信息?',
        inputid:'请输入玻璃ID',
        search:'搜索',
        tabid:'大理片笼详情表id',
        tid:'设备id',
        tida:'设备id:',
        fin:'是否完成任务?',
        sureadd:'确认添加',
        sureadda:'是否确认添加?',
        zailong:'在笼中',
        rengongxp:'人工下片',
        up:'上一页',
        down:'下一页',
        now:'当前页显示',
        tit:'条数据',
        temperingqueries:'钢化查询',
        specifytempering:'指定一炉',
        specifyengineerid:'指定工程',
        projectnumber:'工程号',
        layoutnumber:'钢化版图号',
        numberglasses:'玻璃数量',
        specifytemperinga:'是否指定钢化该条信息?',
        temperedswitch:'钢化开关',
        dutyinformation:'值班信息',
        process:'工序',
        team:'班组',
        basic:'设备',
        makesure:'确认保存',
        // cancel:'取消',
        temperingtotal:'钢化炉数:',
        glasstotal:'玻璃总数:',
    },
    workOrder:{
        glassID:'玻璃ID',
        height:'高',
        width:'宽',
        thickness:'厚度',
        coatingtypes:'膜系',
        productionsequence:'出片顺序',
        cardnumber:'流程卡号',
        operate:'操作',
        messagedamaged:'是否破损该条信息?',
        prompt:'提示',
        yes:'是',
        cancel:'取消',
        takemessage:'是否拿走该条信息?',
        breakage:'破损',
        takeout:'拿走',
        glasstype:'玻璃类型',
        line:'线路',
        status:'状态',
    },
    processCard:{
        intofurnace:'进炉中',
        beforefurnace:'进炉前',
        outfurnace:'已出炉玻璃',
        print:'拿走打印',
        printing:'打印',
        projectnumber:'请输入工程号',
        inquire:'查询',
        project:'工程号',
        awayprocess:'拿走工序',
        awayequipment:'拿走设备',
        awayteam:'拿走班组',
        flowcard:'流程卡',
        layer:'层号',
        temperinglayout:'炉号',
        temperingfeed:'片序',
        width:'宽',
        height:'高',
        thickness:'厚',
        glasstakeout:'玻璃拿走清单',
        layoutID:'版图ID',
        glassID:'玻璃ID',
    },
    reportWork:{
        lowerbit:'下片位',
        shelfnumber:'架号',
        cardnumber:'流程卡号',
        totalquantity:'总数量',
        beendropped:'已落架数量',
        state:'状态',
        devicenumber:'设备号',
        startstatus:'启用状态',
        enable:'已启用',
        unenable:'未启用',
        operate:'操作',
        bindingshelves:'绑定架子',
        clear:'清空',
        workstation:'号工位',
        shelfnumbera:'架号:',
        cardnumbera:'流程卡号:',
        incardnumber:'请选择流程卡号',
        clearglass:'清除架子玻璃',
        sure:'确认',
        cancel:'取消',
        glassinformation:'玻璃信息',
        glassID:'玻璃ID',
        coatingtypes:'膜系',
        thickness:'厚度',
        width:'宽度',
        height:'高度',
    },
    productStock:{
        addusers:'添加用户',
        username:'用户名',
        usernamea:'用户名:',
        inusername:'请输入用户名',
        role:'角色',
        rolea:'角色:',
        inrole:'请选择角色',
        test:'测试',
        admin:'管理员',
        operate:'操作',
        resetpassword:'重置密码',
        exit:'编辑',
        delete:'删除',
        prompt:'提示',
        repassword:'是否重置用户密码?',
        yes:'是',
        cancel:'取消',
        reusername:'修改用户',
        addusername:'添加用户',
        password:'密码:',
        sure:'确认',
        inpassword:'请输入密码',
        deusername:'是否删除该用户?',
    },
    customer:{
        addmenua:'添加二级菜单',
        addmenu:'添加一级菜单',
        firstmenu:'一级菜单栏',
        firstmenuname:'一级菜单名称:',
        link:'链接',
        inlink:'请输入链接',
        linka:'链接:',
        sort:'排序',
        insort:'请输入排序',
        sorta:'排序:',
        operate:'操作',
        exit:'编辑',
        delete:'删除',
        semenu:'二级菜单栏',
        semenuname:'二级菜单名称:',
        menu:'菜单栏:',
        inmenu:'请输入菜单名称',
        sure:'确认',
        cancel:'取消',
        exmene:'修改一级菜单',
        exmenea:'修改二级菜单',
        yes:'是',
        demenu:'是否删除该菜单?',
        prompt:'提示',
    },
    delivery:{
        addrole:'添加角色',
        editrole:'修改角色',
        role :'角色',
        rolea :'角色:',
        inrole :'请输入角色',
        operate :'操作',
        edit :'编辑',
        delete :'删除',
        yes:'是',
        sure :'确认',
        cancel :'取消',
        derole :'是否删除该角色',
        prompt:'提示',
        choice:'菜单权限:',
        inchoice:'请选择菜单权限',
    },
    replenish:{
        patchManagement:'补片管理',
    },
    rework:{
        reworkManagement:'返工管理',
        addRework:"返工新增 ",
    },
    role:{
        id:'ID',
        characterHomepage:'角色首页',
    },
    user:{
        userId:'用户ID',
        userHomepage:'用户首页',
    },
    orderBasicData:{
        order:'订单',
        orderType:'订单类型',
    },
    machine:{
        basicId:'设备编号',
        basicName:'设备名称',
        basicCategory:'所在工序',
        tempering:'钢化',
    },
    report:{
        productionReport:'生产报表',
        workInProgressReport:'在制品报表',
    },
    productionBasicData:{
        basicDataQuery :'基础数据查询',
    },
    mainIngredient:{
        materialInformation :'物料资料',
    },
    mainIngredientStock:{
        materialName :'物料名称',
        createTime :'返库日期',
    },
    large:{
        time: '次破时间',
        number: '订单号',
        jobnumber: '报工编号',
        productionnumber: '生产订单号',
        cardnumber: '流程卡号',
        projectname: '项目名称',
        batch: '批次',
        detailID: '明细ID',
        building: '楼号',
        serialnumber: '订单序号',
        productname: '产品名称',
        serial: '工艺确认序号',
        slicemarker: '片标记(位置)',
        numberpatches: '补片数量',
        width: '宽',
        height: '高',
        shape: '形状',
        responsibleprocess: '责任工序',
        process: '本工序',
        numberfractions: '次破未补数量',
        breakreason: '次破原因',
        breaktype: '次破类型',
        responsiblepersonnel: '责任人员',
        responsiblequipment: '责任设备',
        responsibleteam: '责任班组',
        area: '次破面积',
        inspector: '质检员',
        operate: '操作',
        mes: '详情',
        projectnumber: '工程单号',
        brokeno: '报次破未补',
        close: '关闭',
        orderId: '订单ID',
        customerName: '客户名称',
        project: '项目名称',
        are: '面积',
        quantity: '数量',
        warehousing: '状态',
        deliveryDate: '送货时间',
        notstocked: '未入库',
        inboundstatus: '部分入库状态',
        allstatus: '全部入库状态',
        completedquantity: '完成数量',
        scrapquantity: '报废数量',
        method: '加工方式',
        innumber: '已入数量',
        productstatus: '生产状态',
        right: '正常',
        stop: '终止',
        inquire: '查询',
        starttime :'开始时间',
        endtime :'结束时间',
        loading :'正在上片:',
    },
    reportmanage:{
        productiontime :'生产时间',
        starttime :'开始时间',
        endtime :'结束时间',
        ctype :'清选择类型',
        cstate :'清选择状态',
        cprocess :'清选择工序',
        all :'全部',
        completed :'完工',
        broke :'破损',
        takeout :'拿走',
        dreportwork :'未报工',
        pendingwork :'待报工',
        reportwork :'已报工',
        incise :'切割',
        edging :'磨边',
        steel :'钢化',
        inquire :'查询',
        signingwork :'报工',
        reporteam :'报工班组',
        reportingequipment :'报工设备',
        line :'线路',
        process :'工序',
        glassID :'玻璃ID',
        projectnumber :'工程号',
        layoutID :'钢化版图ID',
        type :'类型',
        state :'状态',
        processcards :'流程卡',
        number :'序号',
        layer :'层',
        typebreakage :'破损类型',
        ptypebreakage :' 请选择破损类型',
        causebreakage :'破损原因',
        pcausebreakage :'请选择破损原因',
        responsibleprocess :'责任工序',
        responsiblepersonnel :'责任人员',
        presponsiblepersonnel :'请输入责任人员',
        responsibleteam :'责任班组',
        presponsibleteam :'请选择责任班组',
        responsibleequipment :'责任设备',
        presponsibleequipment :'请选择责任设备',
        remark :'备注',
        premark :'请输入备注',
    },
    film:{
        mes:'原片仓储详情',
        warehousing:'入库',
        operate: '操作',
        exit:'编辑',
        delete:'删除',
        outbound:'出库',
        deviceid:'设备ID',
        slot:'栅格号',
        enablestatea:'启用标记',
        disable:'禁用',
        start:'启用',
        startslot:'开始工位',
        endslot:'目标工位',
        slotid:'格子ID',
        width:'原片宽',
        widtha:'原片宽:',
        inwidth:'请输入原片宽',
        height:'原片高',
        inheight:'请输入原片高',
        heighta:'原片高:',
        thickness:'原片厚度',
        inthickness:'请输入原片厚度',
        thicknessa:'原片厚度:',
        films:'膜系',
        infilms:'请输入膜系',
        filmsa:'膜系:',
        createtime:'创建时间',
        remainquantity:'剩余数量',
        thickremainquantity:'原片剩余数量(张):',
        inquantity:'请输入数量',
        quantitya:'数量:',
        enableid:'任务ID',
        originateslot:'起始格子',
        patternquantity:'原片数量',
        enabletype:'任务类型',
        enablestate:'工位状态',
        finish:'已完成',
        unfinish:'未完成',
        dedelete:'是否删除该条内容?',
        dedisable:'是否禁用该条内容?',
        deoutbound:'是否出库该条内容?',
        selectwarehousing:'请选择吊装位',
        inwarehousing:'吊装位:',
        warehousing1:'吊装位1',
        warehousing2:'吊装位2',
        starttime :'开始时间',
        endtime :'结束时间',
        taskstatus :'任务状态',
        built :'新建',
        execution :'执行中',
        tasktype :'任务类型',
        stocke :'入库',
        dispatch :'调度',
        inquire :'查询',
        station :'工位',
    },
    Mounting:{
        previewproject :'选择预览工程',
        loadinglinea :'上片线',
        loadingline :'上片线:',
        inloadingline :'请选择上片线',
        oneloadingline :'一号上片线',
        twoloadingline :'二号上片线',
        waiting :'等待中',
        setparameters :'设置参数',
        project :'工程号',
        projecta :'工程号:',
        width :'原片宽',
        height :'原片高',
        thickness :'原片厚',
        projectnumber :'工程原片序号',
        state :'状态',
        createtime :'创建时间',
        all :'全选',
    }
}
    "northglassMESsystem": "北玻MES系统",
      login:{
          userErr:'请输入账号',
          pwErr:'请输入密码',
          user:'账号',
          password:'密码',
          login:'登录',
          loginSuccessful:'登录成功!',
          register:'注册',
          namea:'姓名不能为空',
          len:'长度不能超过16',
          passnull:'密码不能为空',
          leng:'密码长度不能低于6或超过16',
          spwn:'确认密码不能为空',
          depass:'两次密码不相同',
      },
      register:{
          registerSuccessful:'注册成功',
          newuserregister:'注册新用户',
          name:'姓名:',
          inputname:'请输入姓名',
          password:'密码:',
          pwErr:'请输入密码',
          passwordation:'确认密码:',
          pwErration:'请确认密码',
          registration:'确认注册',
          false:'取消',
      },
      main:{
          connectErr:'服务器连接异常,请稍后再试',
          titleFirst:"欢迎 ",
          titleLast:' 使用北玻MES系统!',
          quit:"退出",
      },
      basicData:{
          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:'更新玻璃状态时发生错误',
          deletemessage:'是否删除该条信息?',
          layoutSequence:'序号',
      },
      sorter:{
          gridnumber:'栅格号',
          glassnumber:'玻璃编号',
          width:'宽',
          height:'高',
          startstatus:'启用状态',
          disable:'已禁用',
          start:'已启用',
          deficiencieste:'报缺',
          updown:'人工下片',
          operate:'操作',
          prompt:'提示',
          information:'是否报缺该条信息?',
          infor:'是否人工下片该条信息?',
          yes:'是',
          cancel:'取消',
      },
      order:{
          dilapidation:'破损',
          takeaway:'人工拿走',
          takeon:'摆片完成',
      },
      searchOrder:{
          searchlayout:'非钢化流程卡查询',
          fullfurnaces:'满炉数量',
          specifiedproject:'当前指定工程',
          undesignate:'取消指定',
          allnumber:'总数量',
          numbercages:'笼子内数量',
          missingquantity:'缺少数量',
          breakquantity:'破损/拿走数量',
          ceng:'层',
          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:'请输入玻璃类型',
          width:'宽',
          widtha:'宽:',
          inwidth:'请输入宽',
          height:'高',
          heighta:'高:',
          inheight:'请输入高',
          coatingtypes:'膜系',
          thickness:'厚度',
          thicknessa:'厚度:',
          inthickness:'请输入厚度',
          layoutID:'钢化版图ID',
          layoutIDa:'钢化版图ID:',
          inlayoutID:'请输入钢化版图ID',
          picturesequence:'钢化版图片序',
          picturesequencea:'钢化版图片序:',
          inpicturesequence:'请输入钢化版图片序',
          startstatus:'启用状态',
          startstatusa:'启用状态:',
          instartstatus:'请输入启用状态',
          glassgaps:'玻璃间隙',
          glassgapsa:'玻璃间隙:',
          inglassgaps:'请输入玻璃间隙',
          sure:'确认',
          cancel:'取消',
          operate:'操作',
          breakage:'破损',
          delete:'删除',
          outfilm:'出片',
          cagetableID:'大理片笼表ID',
          cagenumber:'理片笼号',
          gridnumber:'栅格号',
          gridnumbera:'栅格号:',
          grid:'请输入栅格号',
          enable:'已启用',
          disable:'已禁用',
          remainingwidth:'剩余宽度',
          add:'添加',
          sheetID:'钢化小片信息表ID',
          processcards:'流程卡',
          processcardtype:'流程卡玻璃类型',
          acceptshorizontal:'钢化是否接受横放',
          xcoordinates:'x坐标',
          ycoordinates:'y坐标',
          rotationangle:'旋转角度(逆时针)',
          state:'状态',
          takeout:'拿走',
          deletemessage:'是否删除该条信息?',
          prompt:'提示',
          yes:'是',
          accept:'接受',
          noaccept:'不接受',
          filmcomplete:'出片完成',
          waiting:'等待中',
          broke:'是否破损该条信息?',
          brokeb:'是否拿走该条信息?',
          outfil:'是否出片该条信息?',
          inputid:'请输入玻璃ID',
          search:'搜索',
          tabid:'大理片笼详情表id',
          tid:'设备id',
          tida:'设备id:',
          fin:'是否完成任务?',
          sureadd:'确认添加',
          sureadda:'是否确认添加?',
          zailong:'在笼中',
          rengongxp:'人工下片',
          up:'上一页',
          down:'下一页',
          now:'当前页显示',
          tit:'条数据',
          temperingqueries:'钢化查询',
          specifytempering:'指定一炉',
          specifyout:'指定人工出片',
          specifyengineerid:'指定工程',
          projectnumber:'工程号',
          layoutnumber:'钢化版图号',
          numberglasses:'玻璃数量',
          specifytemperinga:'是否指定钢化该条信息?',
          temperedswitch:'钢化开关',
          dutyinformation:'值班信息',
          line:'线路',
          process:'工序',
          team:'班组',
          basic:'设备',
          makesure:'确认保存',
          cancel:'取消',
          temperingtotal:'钢化炉数:',
          glasstotal:'玻璃总数:',
      },
      workOrder:{
          glassID:'玻璃ID',
          height:'高',
          width:'宽',
          thickness:'厚度',
          coatingtypes:'膜系',
          productionsequence:'出片顺序',
          cardnumber:'流程卡号',
          operate:'操作',
          messagedamaged:'是否破损该条信息?',
          prompt:'提示',
          yes:'是',
          cancel:'取消',
          takemessage:'是否拿走该条信息?',
          breakage:'破损',
          takeout:'拿走',
          glasstype:'玻璃类型',
          line:'线路',
          status:'状态',
          time:'时间段',
          cway:'请选择线路',
          cstate:'请选择状态',
          edgingone:'磨边一线',
          edgingtwo:'磨边二线',
          nedging:'未磨边',
          edging:'磨边中',
          finedging:'已磨边',
      },
      processCard:{
          intofurnace:'进炉中',
          beforefurnace:'进炉前',
          outfurnace:'已出炉玻璃',
          print:'拿走打印',
          printing:'打印',
          projectnumber:'请输入工程号',
          inquire:'查询',
          project:'工程号',
          awayprocess:'拿走工序',
          awayequipment:'拿走设备',
          awayteam:'拿走班组',
          flowcard:'流程卡',
          layer:'层号',
          temperinglayout:'炉号',
          temperingfeed:'片序',
          width:'宽',
          height:'高',
          thickness:'厚',
          glasstakeout:'玻璃拿走清单',
          layoutID:'版图ID',
          glassID:'玻璃ID',
      },
      reportWork:{
          details:'落架详情',
          filming:'人工下片',
          printing:'自动打印',
          cenumber:'层数',
          artificialorder:'人工下片数',
          processcard:'打印流程卡',
          printlabels:'打印标签',
          information:'落架信息',
          cstation:'请选择工位',
          all:'全部',
          timeperiod:'时间段',
          stationnumber:'工位号',
          order:'顺序',
          filminformation:'人工下片信息',
          glassmation:'人工下片当前玻璃信息',
          barcodescanner:'扫码枪当前玻璃信息',
          lowerbit:'下片位',
          shelfnumber:'架号',
          cardnumber:'流程卡号',
          totalquantity:'总数量',
          beendropped:'已落架数量',
          state:'状态',
          devicenumber:'设备号',
          startstatus:'启用状态',
          enable:'已启用',
          unenable:'未启用',
          operate:'操作',
          bindingshelves:'绑定架子',
          clear:'清空',
          workstation:'号工位',
          shelfnumbera:'架号:',
          cardnumbera:'流程卡号:',
          incardnumber:'请选择流程卡号',
          clearglass:'清除架子玻璃',
          sure:'确认',
          cancel:'取消',
          glassinformation:'玻璃信息',
          glassID:'玻璃ID',
          coatingtypes:'膜系',
          thickness:'厚度',
          width:'宽度',
          height:'高度',
      },
      productStock:{
          addusers:'添加用户',
          username:'用户名',
          usernamea:'用户名:',
          inusername:'请输入用户名',
          role:'角色',
          rolea:'角色:',
          inrole:'请选择角色',
          test:'测试',
          admin:'管理员',
          operate:'操作',
          resetpassword:'重置密码',
          exit:'编辑',
          delete:'删除',
          prompt:'提示',
          repassword:'是否重置用户密码?',
          yes:'是',
          cancel:'取消',
          reusername:'修改用户',
          addusername:'添加用户',
          password:'密码:',
          sure:'确认',
          inpassword:'请输入密码',
          deusername:'是否删除该用户?',
      },
      customer:{
          addmenua:'添加二级菜单',
          addmenu:'添加一级菜单',
          firstmenu:'一级菜单栏',
          firstmenuname:'一级菜单名称:',
          link:'链接',
          inlink:'请输入链接',
          linka:'链接:',
          sort:'排序',
          insort:'请输入排序',
          sorta:'排序:',
          operate:'操作',
          exit:'编辑',
          delete:'删除',
          semenu:'二级菜单栏',
          semenuname:'二级菜单名称:',
          menu:'菜单栏:',
          inmenu:'请输入菜单名称',
          sure:'确认',
          cancel:'取消',
          exmene:'修改一级菜单',
          exmenea:'修改二级菜单',
          yes:'是',
          demenu:'是否删除该菜单?',
          prompt:'提示',
      },
      delivery:{
          addrole:'添加角色',
          editrole:'修改角色',
          role :'角色',
          rolea :'角色:',
          inrole :'请输入角色',
          operate :'操作',
          edit :'编辑',
          delete :'删除',
          yes:'是',
          sure :'确认',
          cancel :'取消',
          derole :'是否删除该角色',
          prompt:'提示',
          choice:'菜单权限:',
          inchoice:'请选择菜单权限',
      },
      replenish:{
          patchManagement:'补片管理',
      },
      rework:{
          reworkManagement:'返工管理',
          addRework:"返工新增 ",
      },
      role:{
          id:'ID',
          characterHomepage:'角色首页',
      },
      user:{
          userId:'用户ID',
          userHomepage:'用户首页',
      },
      orderBasicData:{
          order:'订单',
          orderType:'订单类型',
      },
      machine:{
          basicId:'设备编号',
          basicName:'设备名称',
          basicCategory:'所在工序',
          tempering:'钢化',
      },
      report:{
          productionReport:'生产报表',
          workInProgressReport:'在制品报表',
      },
      productionBasicData:{
          basicDataQuery :'基础数据查询',
      },
      mainIngredient:{
          materialInformation :'物料资料',
      },
      mainIngredientStock:{
          materialName :'物料名称',
          createTime :'返库日期',
      },
      large:{
          time: '次破时间',
          number: '订单号',
          jobnumber: '报工编号',
          productionnumber: '生产订单号',
          cardnumber: '流程卡号',
          projectname: '项目名称',
          batch: '批次',
          detailID: '明细ID',
          building: '楼号',
          serialnumber: '订单序号',
          productname: '产品名称',
          serial: '工艺确认序号',
          slicemarker: '片标记(位置)',
          numberpatches: '补片数量',
          width: '宽',
          height: '高',
          shape: '形状',
          responsibleprocess: '责任工序',
          process: '本工序',
          numberfractions: '次破未补数量',
          breakreason: '次破原因',
          breaktype: '次破类型',
          responsiblepersonnel: '责任人员',
          responsiblequipment: '责任设备',
          responsibleteam: '责任班组',
          area: '次破面积',
          inspector: '质检员',
          operate: '操作',
          mes: '详情',
          projectnumber: '工程单号',
          brokeno: '报次破未补',
          close: '关闭',
          orderId: '订单ID',
          customerName: '客户名称',
          project: '项目名称',
          are: '面积',
          quantity: '数量',
          warehousing: '状态',
          deliveryDate: '送货时间',
          notstocked: '未入库',
          inboundstatus: '部分入库状态',
          allstatus: '全部入库状态',
          completedquantity: '完成数量',
          scrapquantity: '报废数量',
          number: '数量',
          method: '加工方式',
          innumber: '已入数量',
          productstatus: '生产状态',
          projectnumber: '工程号',
          right: '正常',
          stop: '终止',
          inquire: '查询',
          starttime :'开始时间',
          endtime :'结束时间',
          loading :'正在上片:',
      },
      reportmanage:{
          productiontime :'生产时间',
          starttime :'开始时间',
          endtime :'结束时间',
          ctype :'清选择类型',
          cstate :'清选择状态',
          cprocess :'清选择工序',
          all :'全部',
          completed :'完工',
          broke :'破损',
          takeout :'拿走',
          dreportwork :'未报工',
          pendingwork :'待报工',
          reportwork :'已报工',
          incise :'切割',
          edging :'磨边',
          steel :'钢化',
          inquire :'查询',
          signingwork :'报工',
          reporteam :'报工班组',
          reportingequipment :'报工设备',
          line :'线路',
          process :'工序',
          glassID :'玻璃ID',
          projectnumber :'工程号',
          layoutID :'钢化版图ID',
          productiontime :'生产时间',
          type :'类型',
          state :'状态',
          processcards :'流程卡',
          number :'序号',
          layer :'层',
          typebreakage :'破损类型',
          ptypebreakage :' 请选择破损类型',
          causebreakage :'破损原因',
          pcausebreakage :'请选择破损原因',
          responsibleprocess :'责任工序',
          responsiblepersonnel :'责任人员',
          presponsiblepersonnel :'请输入责任人员',
          responsibleteam :'责任班组',
          presponsibleteam :'请选择责任班组',
          responsibleequipment :'责任设备',
          presponsibleequipment :'请选择责任设备',
          remark :'备注',
          premark :'请输入备注',
      },
      film:{
          mes:'原片仓储详情',
          warehousing:'入库',
          operate: '操作',
          exit:'编辑',
          delete:'删除',
          outbound:'出库',
          deviceid:'设备ID',
          slot:'栅格号',
          enablestatea:'启用标记',
          disable:'禁用',
          start:'启用',
          startslot:'开始工位',
          endslot:'目标工位',
          slotid:'格子ID',
          slot:'格子号',
          width:'原片宽',
          widtha:'原片宽:',
          inwidth:'请输入原片宽',
          height:'原片高',
          inheight:'请输入原片高',
          heighta:'原片高:',
          thickness:'原片厚度',
          inthickness:'请输入原片厚度',
          thicknessa:'原片厚度:',
          films:'膜系',
          infilms:'请输入膜系',
          filmsa:'膜系:',
          createtime:'创建时间',
          remainquantity:'剩余数量',
          thickremainquantity:'原片剩余数量(张):',
          inquantity:'请输入数量',
          quantitya:'数量:',
          enableid:'任务ID',
          originateslot:'起始格子',
          endslot:'目标格子',
          patternquantity:'原片数量',
          enabletype:'任务类型',
          enablestate:'工位状态',
          finish:'已完成',
          unfinish:'未完成',
          dedelete:'是否删除该条内容?',
          dedisable:'是否禁用该条内容?',
          deoutbound:'是否出库该条内容?',
          selectwarehousing:'请选择吊装位',
          inwarehousing:'吊装位:',
          warehousing1:'吊装位1',
          warehousing2:'吊装位2',
          starttime :'开始时间',
          endtime :'结束时间',
          taskstatus :'任务状态',
          built :'新建',
          execution :'执行中',
          finish :'完成',
          tasktype :'任务类型',
          stocke :'入库',
          outbound :'出库',
          dispatch :'调度',
          inquire :'查询',
          station :'工位',
      },
      Mounting:{
          previewproject :'选择预览工程',
          loadinglinea :'上片线',
          loadingline :'上片线:',
          inloadingline :'请选择上片线',
          oneloadingline :'一号上片线',
          twoloadingline :'二号上片线',
          waiting :'等待中',
          setparameters :'设置参数',
          project :'工程号',
          projecta :'工程号:',
          width :'原片宽',
          height :'原片高',
          thickness :'原片厚',
          projectnumber :'工程原片序号',
          state :'状态',
          createtime :'创建时间',
          all :'全选',
      }
  }
UI-Project/src/router/index.js
@@ -213,7 +213,7 @@
            }
          ]
        },
         /*----------- 可视化系统 ----------------*/
         {
          path: 'Visualization',
@@ -323,7 +323,7 @@
    
  ]
})
// 导航守卫  
router.beforeEach((to, from, next) => {  
  const isAuthenticated = !!localStorage.getItem('authToken'); // 假设这是你的登录状态检查逻辑  
@@ -333,4 +333,4 @@
    next(); // 否则继续导航  
  }  
}); 
export default router
export default router
UI-Project/src/views/NewPage.vue
@@ -1,151 +1,151 @@
<template>  
    <div>
  <div style="display: flex;">
    <div style="margin-left: 50px;margin-top: 15px;font-size:large">工程号:</div>
  <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);
    <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)
         }  
       });
     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;
       } 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;
   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) {
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;
      });
    }
  });
      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] || [];
return adjustedRectsPerRow.value[rowIndex] || [];
}  
     </script>
  <style scoped>
.row {
  display: flex;
  justify-content: space-between;
  margin-bottom: 20px;
}
   </script>
  
.div-container {
  width: 900px;
  float: left;
  background-color: #f4f4f5;
  height: 430px;
  box-sizing: border-box;
<style scoped>
.row {
display: flex;
justify-content: space-between;
margin-bottom: 20px;
}  
  </style>
.div-container {
width: 900px;
float: left;
background-color: #f4f4f5;
height: 430px;
box-sizing: border-box;
}
</style>
UI-Project/src/views/PurchaseReturn/purchaseReturn.vue
@@ -272,7 +272,7 @@
        widtha = rect.width;
        heighta = rect.height;
      }
  if (rect.angle === 0) {
  if (rect.angle === 0) {
    adjustedWidth = widtha * scaleFactor;  
    adjustedHeight = heighta * scaleFactory;  
    // adjustedWidtha = widtha;  
@@ -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;">  
UI-Project/src/views/Returns/return.vue
@@ -5,19 +5,19 @@
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%;
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>
UI-Project/src/views/Returns/upreturns.vue
@@ -15,10 +15,10 @@
const selectedProjectNo = ref(''); // 当前选中的工程号  
const loadingline = ref(''); // 当前选中的上片线
const dialogFormVisible = ref(false)
const blind = ref(false)
const blinda = ref(false)
const blindb = ref(false)
@@ -60,8 +60,8 @@
const selectproject = () => {
  dialogFormVisible.value = true;
};
onMounted(() => {
  // socket = initializeWebSocket(socketUrl, handleMessage);
});
@@ -80,12 +80,12 @@
let socket = null;
const socketUrl = `ws://${WebSocketHost}:${host}/api/loadGlass/api/talk/loadGlass`;
// 定义消息处理函数,更新 receivedData 变量
const requestData = {  
  state: 100  
};  
 
onBeforeUnmount(() => {
  closeWebSocket();
});
@@ -519,9 +519,9 @@
.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{
UI-Project/src/views/Slicecage/slicecage.vue
@@ -362,7 +362,7 @@
  }  
}; 
 // 指定钢化
 const brokee = async(row) => {
 const brokee = async(row,temperingFeedSequence) => {
  try {
    const confirmResult = await ElMessageBox.confirm(  
      t('searchOrder.specifytemperinga'), 
@@ -377,6 +377,7 @@
      const response = await request.post("/cacheVerticalGlass/bigStorageCageDetails/TemperingGlass",{
        engineerId: row.engineer_id,
        temperingLayoutId: row.tempering_layout_id,
        temperingFeedSequence:temperingFeedSequence
    });
    if (response.code === 200) {
      ElMessage.success(response.message);
@@ -387,6 +388,7 @@
  } catch (error) {  
    console.error('发生错误:', error);  
  }  
  handleganghua();
}; 
 // 指定工程
 const brokek = async(row) => {  
@@ -601,7 +603,7 @@
  } catch (error) {  
    // console.error('Error fetching rects :', error);  
  }  
  
}); 
const fetchFlows = async () => {
@@ -617,7 +619,7 @@
  } 
}
 
const fetchFlow = async () => {
  try  {
    const response = await request.post('/cacheVerticalGlass/bigStorageCageDetails/selectTemperingGlass')
@@ -635,7 +637,7 @@
      });
      glasstotal.value = totalCount;
      fulltotals.value = fullCount;
    } else {
      ElMessage.error(response.message);
    }
@@ -884,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;">
@@ -1531,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>
@@ -1555,16 +1557,16 @@
        :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)">{{ $t('searchOrder.specifytempering') }}</el-button>
              <el-button size="mini" type="text" plain @click="brokee(scope.row,1)">{{ $t('searchOrder.specifytempering') }}</el-button>
              <el-button size="mini" type="text" plain @click="brokee(scope.row,0)">{{ $t('searchOrder.specifyout') }}</el-button>
              <el-button size="mini" type="text" plain @click="brokek(scope.row)">{{ $t('searchOrder.specifyengineerid') }}</el-button>
            </template>
        </el-table-column>
        </el-table>
</el-dialog>
@@ -1597,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">
UI-Project/src/views/StockBasicData/stockBasicData.vue
@@ -14,7 +14,7 @@
  import { useI18n } from 'vue-i18n'
  const { t } = useI18n()
  let language = ref(localStorage.getItem('lang') || 'zh')
const tableData = ref([])
const slot = ref('')
const requestData = {  
@@ -24,7 +24,7 @@
const selectValuesa = reactive([]);
// request.post("/cacheGlass/taskCache/selectEdgTask",{
//   ...requestData,  
// }).then((res) => {
//           if (res.code == 200) {
            
@@ -36,7 +36,7 @@
        
//           }
//           });
// 磨边任务查询
const setEdgGlassInfoRequest = async () => {
  let celllist=[]
@@ -63,9 +63,9 @@
  } else {
    ElMessage.error(response.message);
  }
}
// 破损
 const open = async(row) => { 
  try {
@@ -155,25 +155,25 @@
<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')
      }}</el-button>
      <div style="width: 98%; height: calc(100% - 35px); overflow-y: auto;">
        <el-table height="750" ref="table" 
        @selection-change="handleSelectionChange"
@@ -189,8 +189,8 @@
              {{ scope.row.status==0?"未磨边":scope.row.status==1?"磨边中":"已磨边" }}
            </template>
        </el-table-column>
          <el-table-column fixed="right" :label="$t('workOrder.operate')" align="center" width="200">
            <template #default="scope">
              <el-button size="mini" type="text" plain @click="open(scope.row)">{{ $t('workOrder.breakage') }}</el-button>
@@ -202,7 +202,7 @@
    </el-card>
  </div>
</template>
<style scoped>
#dt { display:block; float:left;line-height: 20px;margin-left: 100px;}
#dta { display:block; float:left;line-height: 20px;margin-left: 80%;}
UI-Project/src/views/UnLoadGlass/loadmachinerack.vue
@@ -10,7 +10,7 @@
import Landingindication from "./Landingindication.vue";
import Landingindicationtwo from "./Landingindicationtwo.vue";
import PrintLabel from "@/views/UnLoadGlass/PrintCustomLabelSemi1.vue";
const router = useRouter()
const { t } = useI18n()
let language = ref(localStorage.getItem('lang') || 'zh')
@@ -19,8 +19,8 @@
const autoPrint = ref(false)
const takeGlass = ref([])
const scanGlass = ref([])
const dialogFormVisiblea = ref(false)
const dialogFormVisiblea2 = ref(false)
const dialogFormVisibleaDownGlass = ref(false)
@@ -37,24 +37,25 @@
const flowCardOptions = ref('[]');
const tableData = reactive([]);
const downGlass = ref([]);
const selectValuesa = reactive({});
const selectOptionsa = ref([]);
const dialogTableVisible = ref(false)
const dialogTableVisible1 = ref(false)
const printFlowCardId = ref('')
const printLayer = ref('')
const printGlassId = ref('')
const now = new Date();
const timeRange = ref([])
const browser = ref(false)
const handleChange = async () => {
  console.log("触发开关")
  try {
    const body = {
      flag: autoPrint.value, // 使用 ganghua.value 获取当前开关的状态
    };
    var url = "/unLoadGlass/downWorkStation/autoPrint?flag=" + autoPrint.value;
    const response = await request.post(url)
    if (response.code == 200) {
@@ -78,7 +79,7 @@
    browser.value = false
  }
}
const handleInputChangea = (value, rowId) => {
  // 更新对应行的 select 值
  selectValuesa[rowId] = value;
@@ -100,7 +101,7 @@
    const response = await request.get('unLoadGlass/downWorkStation/getflowCardId');
    console.log(response)
    if (response.code === 200) {
      flowCardOptions.value = response.data.filter(item => item !== null)
        .map(item => ({ flowcard_id: item.flow_card_id }));
      console.log(flowCardOptions.value);
@@ -125,7 +126,7 @@
    if (response.code == 200) {
      // 绑定成功,处理逻辑
      console.log('绑定成功');
      ElMessage.success(response.message);
      updatePageData();
      dialogFormVisiblea.value = false;
@@ -155,8 +156,8 @@
    const response = await request.post('unLoadGlass/downWorkStation/clear', {
      workstationId: workstationId.value,
    });
    if (response.code === 200) {
      // 清除成功的逻辑
      console.log('清除成功');
@@ -183,7 +184,7 @@
  try {
    // 发送获取表格数据的请求,并等待响应
    const response = await request.get('unLoadGlass/downWorkStation/getone');
    // 检查响应状态
    if (response.code === 200) {
      // 更新表格数据
@@ -202,7 +203,7 @@
const socketUrl = `ws://${WebSocketHost}:${host}/api/unLoadGlass/api/talk/unloadglass`;
// 定义消息处理函数,更新 receivedData 变量
const handleMessage = (data) => {
  // 更新 tableData 的数据
  if (data.downGlassInfos != null) {
    downGlass.value = data.downGlassInfos[0];
@@ -223,8 +224,8 @@
        takeGlass.value.width = height;
        takeGlass.value.height = width;
      }
  }
  if (data.scanGlass != null) {
    scanGlass.value = data.scanGlass[0];
@@ -234,8 +235,11 @@
      scanGlass.value.width = height;
      scanGlass.value.height = width;
    }
    if(autoPrint.value == true && browser.value == true){
      open1(scanGlass);
    }
  }
  //自动打印
  if (fullFlowCard.value == "" && autoPrint.value == true && browser.value == true) {
    for (let i = 0; i < tableData.length; i++) {
@@ -254,7 +258,7 @@
  if (data.params != null) {
    tableData.splice(0, tableData.length, ...data.params[0]);
  }
  //  console.log("更新后数据", data.params[0]);
};
// 初始化 WebSocket,并传递消息处理函数
@@ -273,30 +277,30 @@
  console.log("关闭了")
  closeWebSocket();
});
const getTagType = (status) => {
  return status === 1 ? 'success' : 'danger';
  // 根据状态值决定标签类型,这里假设状态为1时为成功(绿色),否则为失败(红色)
}
const toggleStatus = (row) => {
  // 切换料架状态的逻辑
  row.enableState = 1 - row.enableState; // Toggle between 0 and 1
  // 此处可以添加保存状态的逻辑,比如调用 API 更新数据
  updateRowStatus(row);
};
const updateRowStatus = async (row) => {
  try {
    // 假设你的后端 API 接收 PUT 请求,并且需要传递 row.id 和 row.enableState 参数
    const response = await request.post('unLoadGlass/downWorkStation/updateDownWorkstation', {
      enableState: row.enableState,
      id: row.id
    });
    console.log('Updated row status:', response.data);
    // 可以根据后端返回的数据进行进一步处理,比如更新本地状态等
@@ -305,10 +309,10 @@
    // 处理错误情况,比如提示用户更新失败
  }
};
// 查询数据
const selectDownGlassData = async () => {
  const response = await request.post("/unLoadGlass/downGlassInfo/setDownGlassInfoRequest", {
    workStationId: selectValuesa[0],
    engineerId: selectValuesa[1],
@@ -320,12 +324,12 @@
  } else {
    ElMessage.error(response.message);
  }
}
const open = async (row) => {
  printFlowCardId.value = row.flowCardId;
  printLayer.value = row.layer
  dialogTableVisible.value = true;
@@ -335,29 +339,30 @@
  }, 2000);
}
const open1 = async (row) => {
  printFlowCardId.value = row.flowCardId;
  printLayer.value = row.layer
  printGlassId.value = row.glassId
  dialogTableVisible1.value = true;
  setTimeout(() => {
    printFlowCard1();
    //dialogTableVisible1.value = false;
  }, 1000);
}
const printFlowCard = () => {
  // 需要打印的局部区域赋予"print-wrap"的id
  let el = document.getElementById("child");
  let doc = document;
  let body = doc.body || doc.getElementsByTagName("body")[0];
  let printId = "print-" + Date.now();
  // 创建无副作用的打印容器(因不确定页面的打印元素有无其它样式)
  let content = doc.createElement("div");
  content.id = printId;
  // alert(/Chrome/.test(userAgent) && !/Edge/.test(userAgent));
  // 样式控制与打印无关的元素隐藏
  let style = doc.createElement("style");
  console.log("style1:" + style.innerHTML)
@@ -375,11 +380,11 @@
    "{display:block;}#" +
    printId +
    "{display: block; padding: 0; margin: 0;  width: 100%;  position: absolute; top: 0; left: 0; height: 100vh;  box-sizing: border-box;}} ";
  content.innerHTML = el.outerHTML;
  // // console.log("el.outerHTML", el.outerHTML);
  body.appendChild(style);
  // 与style元素设置的样式相配合
  // 把打印内容的元素添加到body(作为body的子元素,可用body的子选择器 '>' 控制打印样式)
  body.appendChild(content);
@@ -389,18 +394,18 @@
    body.removeChild(style);
  }, 20);
}
const printFlowCard1 = () => {
  // 需要打印的局部区域赋予"print-wrap"的id
  let el = document.getElementById("printFlowCard");
  let doc = document;
  let body = doc.body || doc.getElementsByTagName("body")[0];
  let printId = "print-" + Date.now();
  // 创建无副作用的打印容器(因不确定页面的打印元素有无其它样式)
  let content = doc.createElement("div");
  content.id = printId;
  // 样式控制与打印无关的元素隐藏
  let style = doc.createElement("style");
  style.innerHTML =
@@ -419,7 +424,7 @@
  content.innerHTML = el.outerHTML;
  // // console.log("el.outerHTML", el.outerHTML);
  body.appendChild(style);
  // 与style元素设置的样式相配合
  // 把打印内容的元素添加到body(作为body的子元素,可用body的子选择器 '>' 控制打印样式)
  body.appendChild(content);
@@ -429,10 +434,10 @@
    body.removeChild(style);
  }, 20);
}
// beforeUnmount(() => {
//   closeWebSocket();
// });
@@ -441,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;">
@@ -460,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">
@@ -478,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>
@@ -497,45 +502,46 @@
            <el-option label="6" value="6"></el-option>
            <el-option label="7" value="7"></el-option>
          </el-select>
          <el-select v-model="selectValuesa[1]" filterable :placeholder="$t('basicData.plselectproject')" clearable
            @input="handleInputChangea($event, row.id)">
            <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()">{{
            $t('reportmanage.inquire')
          }}
          </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;">
              <div
                :style="{ width: takeGlass.width + 'px', height: takeGlass.height + 'px', backgroundColor: '#e1f3d8', transform: 'scale(' + 800 / (takeGlass.width > takeGlass.height ? takeGlass.width : takeGlass.height) + ')' }">
              </div>
              <div style="font-size: 50px; text-align: center;position: absolute;top:0px;left:170px;">
                <div>人工下片当前玻璃信息</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>
@@ -547,16 +553,17 @@
              style="display: flex; justify-content: center; align-items: center; width: 800px; height: 800px;position: relative;">
              <div
                :style="{ width: scanGlass.width + 'px', height: scanGlass.height + 'px', backgroundColor: '#e1f3d8', transform: 'scale(' + 800 / (scanGlass.width > scanGlass.height ? scanGlass.width : scanGlass.height) + ')' }">
              </div>
              <div style="font-size: 50px; text-align: center;position: absolute;top:0px;left:200px;">
                <div>扫码枪当前玻璃信息</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>
                <div>{{ scanGlass.width }}</div>
                <div>{{ scanGlass.height }}</div>
              </div>
            </el-card>
          </div>
@@ -577,9 +584,9 @@
        </div>
      </div>
    </el-card>
  </div>
  <el-dialog v-model="dialogFormVisiblea" top="21vh" width="40%" :title="$t('reportWork.bindingshelves')">
    <div style="margin-left: 50px;margin-top: 10px;margin-bottom: 10px;">
      <el-form size="mini" label-width="100px">
@@ -598,7 +605,7 @@
    </div>
    <template #footer>
      <div id="dialog-footer">
        <el-button type="primary" @click="handleConfirm">
          {{ $t('reportWork.sure') }}
        </el-button>
@@ -616,15 +623,15 @@
      </div>
    </template>
  </el-dialog>
  <el-dialog id="sizePrintCalrd" v-model="dialogTableVisible" destroy-on-close>
    <print-flow id="child" :printFlowCardId="printFlowCardId" :printLayer="printLayer"
      style="width: 100%;height: 100%" />
  </el-dialog>
  <el-dialog id="sizePrintCalrd1" v-model="dialogTableVisible1" destroy-on-close>
    <print-label id="printFlowCard" :printFlowCardId="printFlowCardId" :printLayer="printLayer" style="" />
    <print-label id="printFlowCard" :printFlowCardId="printFlowCardId" :printLayer="printLayer" :printGlassId="printGlassId"  style="" />
  </el-dialog>
</template>
<style scoped>
#dt {
@@ -633,19 +640,19 @@
  line-height: 20px;
  margin-left: 100px;
}
#dta {
  display: block;
  float: left;
  line-height: 20px;
  margin-left: 80%;
}
#dialog-footer {
  text-align: center;
  margin-top: -15px;
}
#message {
  text-align: center;
  align-items: center;
@@ -655,21 +662,21 @@
  background-color: #337ecc;
  margin-left: 28%;
}
.awatch {
  max-width: 100%;
}
#main-body {
  margin-top: -40px;
  margin-left: 150px;
}
#main-bodya {
  margin-top: -40px;
  margin-left: 100px;
}
:deep(#sizePrintCalrd .el-dialog__body) {
  height: 85%;
  width: 100%;