Merge branch 'master' of http://bore.pub:10439/r/HangZhouMes
# Conflicts:
# UI-Project/src/views/Slicecage/slicecage.vue
# UI-Project/src/views/UnLoadGlass/loadmachinerack.vue
# hangzhoumesParent/moduleService/CacheGlassModule/src/main/java/com/mes/edgstoragecage/service/impl/EdgStorageCageDetailsServiceImpl.java
# hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/job/PlcStorageCageTask.java
# hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/resources/application.yml
| | |
| | | export default { |
| | | serverUrl: "10.153.19.150:88/api", |
| | | // serverUrl: "192.168.1.199:88/api", |
| | | // serverUrl: "10.153.19.150:88/api", |
| | | serverUrl: "192.168.1.199:88/api", |
| | | // serverUrl: "127.0.0.1:88/api", |
| | | serverUrl2: "10.153.19.150:88" |
| | | // serverUrl2: "192.168.1.199:88" |
| | | // serverUrl2: "10.153.19.150:88" |
| | | serverUrl2: "192.168.1.199:88" |
| | | // serverUrl2: "127.0.0.1:88" |
| | | |
| | | //serverUrl:"res.abeim.cn" |
| | |
| | | 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', |
| | | |
| | | } |
| | | } |
| | |
| | | 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: 'Подсказк', |
| | | }, |
| | | } |
| | |
| | | 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: '指定一炉', |
| | | specifyout: '指定人工出片', |
| | | 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 :'全选', |
| | | |
| | | } |
| | | } |
| | |
| | | } |
| | | ] |
| | | }, |
| | | |
| | | |
| | | /*----------- 可视化系统 ----------------*/ |
| | | { |
| | | path: 'Visualization', |
| | |
| | | |
| | | ] |
| | | }) |
| | | |
| | | |
| | | // 导航守卫 |
| | | router.beforeEach((to, from, next) => { |
| | | const isAuthenticated = !!localStorage.getItem('authToken'); // 假设这是你的登录状态检查逻辑 |
| | |
| | | next(); // 否则继续导航 |
| | | } |
| | | }); |
| | | export default router |
| | | export default router |
| | |
| | | // export const WebSocketHost = "192.168.1.199"; |
| | | export const WebSocketHost = "10.153.19.150"; |
| | | export const WebSocketHost = "192.168.1.199"; |
| | | // export const WebSocketHost = "10.153.19.150"; |
| | | // export const WebSocketHost = "127.0.0.1"; |
| | | export const host = "88"; |
| | |
| | | <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 {onMounted, ref, watch} 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); |
| | | } |
| | | 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> |
| | |
| | | widtha = rect.width; |
| | | heighta = rect.height; |
| | | } |
| | | if (rect.angle === 0) { |
| | | if (rect.angle === 0) { |
| | | adjustedWidth = widtha * scaleFactor; |
| | | adjustedHeight = heighta * scaleFactory; |
| | | // adjustedWidtha = widtha; |
| | |
| | | <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 |
| | |
| | | </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;"> |
| | |
| | | <!-- 进炉前 --> |
| | | <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;"> |
| | |
| | | <!-- 已出炉 --> |
| | | <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;"> |
| | |
| | | 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%; |
| | |
| | | <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> |
| | |
| | | <script lang="ts" setup> |
| | | import {onBeforeUnmount, onMounted, onUnmounted, reactive, ref} from "vue"; |
| | | import {Search} from "@element-plus/icons-vue"; |
| | | import {reactive} from "vue"; |
| | | import {useRouter} from "vue-router" |
| | | import {ElMessage} from 'element-plus' |
| | | import {useI18n} from 'vue-i18n' |
| | | import {host, WebSocketHost} from '@/utils/constants' |
| | | import request from "@/utils/request" |
| | | import {closeWebSocket, initializeWebSocket} from '@/utils/WebSocketService'; |
| | | |
| | | const router = useRouter() |
| | | const {t} = useI18n() |
| | | import type { TableColumnCtx } from 'element-plus' |
| | | import { ElMessage, ElMessageBox } from 'element-plus' |
| | | import { useI18n } from 'vue-i18n' |
| | | const { t } = useI18n() |
| | | import { WebSocketHost ,host} from '@/utils/constants' |
| | | import request from "@/utils/request" |
| | | import { initializeWebSocket, closeWebSocket } from '@/utils/WebSocketService'; |
| | | import { ref, onMounted, onUnmounted, onBeforeUnmount } from "vue"; |
| | | const selectValuesa = reactive([]); |
| | | |
| | | |
| | | const selectedProjectNo = ref(''); // 当前选中的工程号 |
| | | const loadingline = ref(''); // 当前选中的上片线 |
| | | const dialogFormVisible = ref(false) |
| | | |
| | | |
| | | |
| | | |
| | | const blind = ref(false) |
| | | const blinda = ref(false) |
| | | const blindb = ref(false) |
| | | const add = ref(false) |
| | | const adda = ref(false) |
| | | const flake = ref(false) |
| | | const flakea = ref(false) |
| | | const flakeb = ref(false) |
| | | const flakec = ref(false) |
| | | const dialoglea = ref(false) |
| | | const tableDatax = ref([]) |
| | | const user = ref(''); |
| | |
| | | const number = ref(''); |
| | | const canSelectProject = ref(true); |
| | | const canStartLoading = ref(false); |
| | | const ida = ref(null); |
| | | const selectedProjectNo = ref(''); // 当前选中的工程号 |
| | | const selectedProjectNoa = ref(''); // 当前选中的工程号 |
| | | const selectedValue = ref(''); // 当前选中的宽 |
| | | const selectedValuea = ref(''); |
| | | const selectedValuea = ref(''); |
| | | const selectedValueb = ref(''); |
| | | const selectedValuec = ref(''); |
| | | const selectedValuec = ref(''); |
| | | // const upstatus = ref('上片机手动状态:'); // 假设这个用于显示自动/手动状态 |
| | | const upstatus = ref(t('basicData.machineaa')); |
| | | const cuttingMachine = ref(''); // 假设这个用于存储后端返回的状态值(0或1) |
| | | const cuttingMachineStatusColor = ref('#911005'); // 用于动态设置i标签的背景色 |
| | | const inKageWord = ref(0); // 用于存储要传递给接口的inKageWord值 |
| | | const options = ref<any[]>([]); // 下拉选项列表 |
| | | const ida = ref(null); |
| | | const selectOptions = ref<Array<any>>([]); // 下拉选选项数组 |
| | | const selectOptionsa = ref<Array<any>>([]); // 下拉选选项数组 |
| | | const selectOptionsb = ref<Array<any>>([]); // 下拉选选项数组 |
| | | const selectOptionsc = ref<Array<any>>([]); // 下拉选选项数组 |
| | | const tableDataa = ref([]) |
| | | const tableData = reactive([]); |
| | | const fetchTableData = async () => { |
| | | try { |
| | | const response = await request.get("/loadGlass/up-patten-usage/prioritylist"); |
| | | // 检查响应状态 |
| | | if (response.code === 200) { |
| | | // 更新表格数据 |
| | | console.log('成功获取表格数据:', response.data); |
| | | tableData.splice(0, tableData.length, ...response.data); |
| | | // window.localStorage.setItem('engineeringId', response.data[0].engineeringId) |
| | | // 获取唯一值 |
| | | const uniqueWidths = new Set(response.data.map(item => item.width)); |
| | | const uniqueHeights = new Set(response.data.map(item => item.height)); |
| | | const uniqueFilmsIds = new Set(response.data.map(item => item.filmsId)); |
| | | const uniqueThicknesses = new Set(response.data.map(item => item.thickness)); |
| | | |
| | | selectOptions.value = Array.from(uniqueWidths).map(width => ({ |
| | | value: width, // 假设这是你想要作为value的属性 |
| | | label: width, // 假设这是你想要显示的label |
| | | })); |
| | | selectOptionsa.value = Array.from(uniqueHeights).map(height => ({ |
| | | value: height, |
| | | label: height, |
| | | })); |
| | | selectOptionsb.value = Array.from(uniqueFilmsIds).map(filmsId => ({ |
| | | value: filmsId, |
| | | label: filmsId, |
| | | })); |
| | | selectOptionsc.value = Array.from(uniqueThicknesses).map(thickness => ({ |
| | | value: thickness, |
| | | label: thickness, |
| | | })); |
| | | } else { |
| | | ElMessage.error(response.message); |
| | | } |
| | | } catch (error) { |
| | | // 处理请求失败的情况 |
| | | // ElMessage.error('获取表格数据失败,请重试'); |
| | | } |
| | | }; |
| | | const tableDataa = ref([]) |
| | | const tableData = reactive([]); |
| | | const handlezhiban = () => { |
| | | dialoglea.value = true; // 打开绑定架子对话框 |
| | | fetchFlowCardId(); |
| | | }; |
| | | const selectproject = () => { |
| | | dialogFormVisible.value = true; |
| | | selectgong(); |
| | | }; |
| | | // 值班信息 |
| | | const fetchFlowCardId = async () => { |
| | | try { |
| | | const response = await request.post('/loadGlass/work_assignment/selectWorkAssignment', { |
| | | line: 2001, |
| | | workingProcedure: '冷加工' |
| | | }) |
| | | if (response.code == 200) { |
| | | ElMessage.success(response.message); |
| | | tableDatax.value = response.data; |
| | | console.log(tableDatax.value); |
| | | console |
| | | } else { |
| | | ElMessage.error(response.message); |
| | | } |
| | | } catch (error) { |
| | | // 处理错误 |
| | | console.error(error); |
| | | } |
| | | } |
| | | const handleConfirmb = async () => { |
| | | const response = await request.post("/loadGlass/work_assignment/updateWorkAssignment", tableDatax.value) |
| | | if (response.code === 200) { |
| | | ElMessage.success(response.message); |
| | | dialoglea.value = false; |
| | | } else { |
| | | ElMessage.error(response.message); |
| | | } |
| | | }; |
| | | |
| | | |
| | | onMounted(() => { |
| | | list(''); |
| | | fetchOptions(''); |
| | | socket = initializeWebSocket(socketUrl, handleMessage); |
| | | // socket = initializeWebSocket(socketUrl, handleMessage); |
| | | }); |
| | | onUnmounted(() => { |
| | | if (socket) { |
| | | onUnmounted(() => { |
| | | if (socket) { |
| | | closeWebSocket(socket); |
| | | } |
| | | }); |
| | | const list = async () => { |
| | | try { |
| | | const response = await request.get('/loadGlass/LoadGlass/list'); |
| | | if (response.code == 200) { |
| | | tableDataa.value = response.data |
| | | if (tableDataa.value.length === 4) { |
| | | if (tableDataa.value[0].patternHeight > 0 && tableDataa.value[0].patternWidth > 0 && tableDataa.value[0].number > 0) { |
| | | flake.value = true; |
| | | } |
| | | if (tableDataa.value[1].patternHeight > 0 && tableDataa.value[1].patternWidth > 0 && tableDataa.value[1].number > 0) { |
| | | flakea.value = true; |
| | | } |
| | | if (tableDataa.value[2].patternHeight > 0 && tableDataa.value[2].patternWidth > 0 && tableDataa.value[2].number > 0) { |
| | | flakeb.value = true; |
| | | } |
| | | if (tableDataa.value[3].patternHeight > 0 && tableDataa.value[3].patternWidth > 0 && tableDataa.value[3].number > 0) { |
| | | flakec.value = true; |
| | | } |
| | | } |
| | | } else { |
| | | ElMessage.warning(response.data); |
| | | } |
| | | } catch (error) { |
| | | console.error('Error fetching options:', error); |
| | | } |
| | | }; |
| | | // 假设这是您的响应处理函数 |
| | | // request.get("/loadGlass/LoadGlass/list").then((res) => { |
| | | // if (res.code == 200) { |
| | | // tableDataa.value = res.data |
| | | // if (tableDataa.value.length === 4) { |
| | | // if (tableDataa.value[0].patternHeight > 0) { |
| | | // flake.value = true; |
| | | // } |
| | | // if (tableDataa.value[1].patternHeight > 0) { |
| | | // flakea.value = true; |
| | | // } |
| | | // if (tableDataa.value[2].patternHeight > 0) { |
| | | // flakeb.value = true; |
| | | // } |
| | | // if (tableDataa.value[3].patternHeight > 0) { |
| | | // flakec.value = true; |
| | | // } |
| | | // } |
| | | // } else { |
| | | // ElMessage.warning(res.message) |
| | | // // router.push("/login") |
| | | // } |
| | | // }); |
| | | }); |
| | | //定义接收加载表头下拉数据 |
| | | const titleSelectJson = ref({ |
| | | processType: [], |
| | |
| | | let socket = null; |
| | | const socketUrl = `ws://${WebSocketHost}:${host}/api/loadGlass/api/talk/loadGlass`; |
| | | // 定义消息处理函数,更新 receivedData 变量 |
| | | const handleMessage = (data) => { |
| | | if (data.prioritylist != null) { |
| | | tableData.splice(0, tableData.length, ...data.prioritylist[0]); |
| | | } |
| | | if (data.list != null) { |
| | | tableDataa.value = data.list[0] |
| | | } |
| | | if (data.engineering) { |
| | | if (Array.isArray(data.engineering) && data.engineering.length !== 0) { |
| | | canSelectProject.value = false; |
| | | canStartLoading.value = true; |
| | | } else { |
| | | canSelectProject.value = true; |
| | | canStartLoading.value = false; |
| | | } |
| | | } |
| | | if (data.InkageStatus) { |
| | | if (data.InkageStatus != null) { |
| | | const status = data.InkageStatus[0]; |
| | | cuttingMachine.value = status; |
| | | upstatus.value = status === '1' ? t('basicData.machine') : t('basicData.machineaa'); |
| | | cuttingMachineStatusColor.value = status === '1' ? 'green' : '#911005'; |
| | | inKageWord.value = status === '1' ? 0 : 1; |
| | | } |
| | | } |
| | | }; |
| | | const requestData = { |
| | | state: 100 |
| | | }; |
| | | |
| | | |
| | | const selectgong = async (queryString: string) => { |
| | | try { |
| | | const response = await request.post('/loadGlass/optimizeProject/listByState', { |
| | | ...requestData, |
| | | query: queryString |
| | | }) |
| | | if (response.code == 200) { |
| | | titleSelectJson.value.processType = response.data; |
| | | } else { |
| | | ElMessage.error(response.message); |
| | | } |
| | | } catch (error) { |
| | | // 处理错误 |
| | | console.error(error); |
| | | } |
| | | } |
| | | const fetchOptions = async (queryString: string) => { |
| | | try { |
| | | // 发送请求到后端接口 |
| | | const response = await request.post('/loadGlass/optimizeProject/listByState', { |
| | | ...requestData, |
| | | query: queryString // 将查询字符串作为参数传递 |
| | | }); |
| | | if (response.code == 200) { |
| | | // titleSelectJson.value.processType = response.data; |
| | | console.log(response.data); |
| | | |
| | | } else { |
| | | ElMessage.warning(response.data); |
| | | } |
| | | } catch (error) { |
| | | console.error('Error fetching options:', error); |
| | | } |
| | | }; |
| | | // 处理用户输入变化的方法 |
| | | const handleInputChange = async (value: string) => { |
| | | if (value) { |
| | | await fetchOptions(value); |
| | | } else { |
| | | options.value = []; // 清空选项列表 |
| | | } |
| | | }; |
| | | // 处理用户输入变化的方法 |
| | | const handleInputChangea = async (value: string) => { |
| | | if (value) { |
| | | await fetchOptionsa(value); |
| | | } else { |
| | | options.value = []; // 清空选项列表 |
| | | } |
| | | }; |
| | | |
| | | const requestData = { |
| | | state: 100 |
| | | }; |
| | | |
| | | |
| | | onBeforeUnmount(() => { |
| | | closeWebSocket(); |
| | | }); |
| | |
| | | ida.value = row.id; |
| | | add.value = true; // 打开绑定架子对话框 |
| | | }; |
| | | // 添加 |
| | | const handleConfirm = async () => { |
| | | // console.log('id.value:', id.value); |
| | | if ((ida.value === 2 || ida.value === 4) && (parseInt(selectedValuea.value, 10) >= 2700)) { |
| | | try { |
| | | const response = await request.post('/loadGlass/LoadGlass/updateGlassMessage', { |
| | | id: workstationId.value, |
| | | workstationId: workstationId.value, |
| | | patternHeight: selectedValuea.value, |
| | | patternWidth: selectedValue.value, |
| | | filmsId: selectedValueb.value, |
| | | patternThickness: selectedValuec.value, |
| | | number: number.value |
| | | }); |
| | | // window.localStorage.setItem('workstationId', workstationId.value) |
| | | // window.localStorage.setItem('patternHeight', selectedValuea.value) |
| | | // window.localStorage.setItem('patternWidth', selectedValue.value) |
| | | // window.localStorage.setItem('number', number.value) |
| | | if (response.code == 200) { |
| | | // 绑定成功,处理逻辑 |
| | | ElMessage.success(response.message); |
| | | // window.location.reload() |
| | | add.value = false; |
| | | tableDataa.value = response.data; |
| | | // let workstationId = window.localStorage.getItem('workstationId') |
| | | // let patternHeight = window.localStorage.getItem('patternHeight') |
| | | // let patternWidth = window.localStorage.getItem('patternWidth') |
| | | // let number = window.localStorage.getItem('number') |
| | | if (selectedValuea.value !== '0' && selectedValue.value !== '0' && number.value !== '0' && workstationId.value === '1') { |
| | | flake.value = true |
| | | } else if (selectedValuea.value !== '0' && selectedValue.value !== '0' && number.value !== '0' && workstationId.value === '2') { |
| | | flakea.value = true |
| | | } else if (selectedValuea.value !== '0' && selectedValue.value !== '0' && number.value !== '0' && workstationId.value === '3') { |
| | | flakeb.value = true |
| | | } else if (selectedValuea.value !== '0' && selectedValue.value !== '0' && number.value !== '0' && workstationId.value === '4') { |
| | | flakec.value = true |
| | | } |
| | | // if (patternHeight !== '0' && patternWidth !== '0' && number !== '0' && workstationId === '1') { |
| | | // flake.value = true |
| | | // } else if (patternHeight !== '0' && patternWidth !== '0' && number !== '0' && workstationId === '2'){ |
| | | // flakea.value = true |
| | | // }else if (patternHeight !== '0' && patternWidth !== '0' && number !== '0' && workstationId === '3'){ |
| | | // flakeb.value = true |
| | | // }else if (patternHeight !== '0' && patternWidth !== '0' && number !== '0' && workstationId === '4'){ |
| | | // flakec.value = true |
| | | // } |
| | | selectedValuea.value = ''; |
| | | selectedValue.value = ''; |
| | | selectedValueb.value = ''; |
| | | selectedValuec.value = ''; |
| | | number.value = ''; |
| | | list() |
| | | } else { |
| | | // 请求失败,显示错误消息 |
| | | ElMessage.error(response.message); |
| | | } |
| | | } catch (error) { |
| | | // 处理请求错误 |
| | | } |
| | | } else if (ida.value === 1 || ida.value === 3) { |
| | | try { |
| | | const response = await request.post('/loadGlass/LoadGlass/updateGlassMessage', { |
| | | id: workstationId.value, |
| | | workstationId: workstationId.value, |
| | | patternHeight: selectedValuea.value, |
| | | patternWidth: selectedValue.value, |
| | | filmsId: selectedValueb.value, |
| | | patternThickness: selectedValuec.value, |
| | | number: number.value |
| | | }); |
| | | if (response.code == 200) { |
| | | // 绑定成功,处理逻辑 |
| | | ElMessage.success(response.message); |
| | | // window.location.reload() |
| | | add.value = false; |
| | | tableDataa.value = response.data; |
| | | if (selectedValuea.value !== '0' && selectedValue.value !== '0' && number.value !== '0' && workstationId.value === '1') { |
| | | flake.value = true |
| | | } else if (selectedValuea.value !== '0' && selectedValue.value !== '0' && number.value !== '0' && workstationId.value === '2') { |
| | | flakea.value = true |
| | | } else if (selectedValuea.value !== '0' && selectedValue.value !== '0' && number.value !== '0' && workstationId.value === '3') { |
| | | flakeb.value = true |
| | | } else if (selectedValuea.value !== '0' && selectedValue.value !== '0' && number.value !== '0' && workstationId.value === '4') { |
| | | flakec.value = true |
| | | } |
| | | selectedValuea.value = ''; |
| | | selectedValue.value = ''; |
| | | selectedValueb.value = ''; |
| | | selectedValuec.value = ''; |
| | | number.value = ''; |
| | | list() |
| | | } else { |
| | | // 请求失败,显示错误消息 |
| | | ElMessage.error(response.message); |
| | | } |
| | | } catch (error) { |
| | | // 处理请求错误 |
| | | } |
| | | } else { |
| | | ElMessage({ |
| | | type: 'info', |
| | | message: t('basicData.pause'), |
| | | }) |
| | | } |
| | | }; |
| | | // 删除 |
| | | const handleConfirma = async () => { |
| | | try { |
| | | const response = await request.post('/loadGlass/LoadGlass/updateGlassMessage', { |
| | | workstationId: workstationId.value, |
| | | patternHeight: 0, |
| | | patternWidth: 0, |
| | | filmsId: "", |
| | | patternThickness: 0, |
| | | number: 0 |
| | | }); |
| | | if (response.code == 200) { |
| | | // 绑定成功,处理逻辑 |
| | | ElMessage.success(response.message); |
| | | adda.value = false; |
| | | tableDataa.value = response.data; |
| | | // window.localStorage.setItem('workstationId', response.data.workstationId) |
| | | // let workstationId = window.localStorage.getItem('workstationId') |
| | | if (workstationId.value == '1') { |
| | | flake.value = false |
| | | } else if (workstationId.value == '2') { |
| | | flakea.value = false |
| | | } else if (workstationId.value == '3') { |
| | | flakeb.value = false |
| | | } else if (workstationId.value == '4') { |
| | | flakec.value = false |
| | | } |
| | | list() |
| | | } else { |
| | | // 请求失败,显示错误消息 |
| | | ElMessage.error(response.message); |
| | | } |
| | | } catch (error) { |
| | | // 处理错误 |
| | | console.error(error); |
| | | } |
| | | }; |
| | | // 选择工程确认 |
| | | const handleup = async () => { |
| | | try { |
| | | const response = await request.post('/loadGlass/up-patten-usage/selectUpPattenUsage', { |
| | | engineerId: selectedProjectNo.value, |
| | | }) |
| | | window.localStorage.setItem('engineeringId', selectedProjectNo.value) |
| | | if (response.code == 200) { |
| | | // 绑定成功,处理逻辑 |
| | | ElMessage.success(response.message); |
| | | // window.location.reload() |
| | | dialogFormVisible.value = false; |
| | | tableData.splice(0, tableData.length, ...response.data); |
| | | selectedProjectNo.value = '' |
| | | markingMachineStatus.value = '#911005'; |
| | | cuttingMachineStatus.value = '#911005'; |
| | | const uniqueWidths = new Set(response.data.map(item => item.width)); |
| | | const uniqueHeights = new Set(response.data.map(item => item.height)); |
| | | const uniqueFilmsIds = new Set(response.data.map(item => item.filmsId)); |
| | | const uniqueThicknesses = new Set(response.data.map(item => item.thickness)); |
| | | selectOptions.value = Array.from(uniqueWidths).map(width => ({ |
| | | value: width, |
| | | label: width, |
| | | })); |
| | | selectOptionsa.value = Array.from(uniqueHeights).map(height => ({ |
| | | value: height, |
| | | label: height, |
| | | })); |
| | | selectOptionsb.value = Array.from(uniqueFilmsIds).map(filmsId => ({ |
| | | value: filmsId, |
| | | label: filmsId, |
| | | })); |
| | | selectOptionsc.value = Array.from(uniqueThicknesses).map(thickness => ({ |
| | | value: thickness, |
| | | label: thickness, |
| | | })); |
| | | } else { |
| | | // 请求失败,显示错误消息 |
| | | ElMessage.error(response.message); |
| | | // ElMessage.error(response.msg); |
| | | } |
| | | } catch (error) { |
| | | // 处理错误 |
| | | console.error(error); |
| | | } |
| | | } |
| | | // 开始上片 |
| | | const handle = async () => { |
| | | if (markingMachineStatus.value === 'green' && cuttingMachineStatus.value === 'green') { |
| | | try { |
| | | let engineeringId = window.localStorage.getItem('engineeringId') |
| | | const response = await request.post('/loadGlass/engineering/engineering/changeTask', { |
| | | engineerId: engineeringId, |
| | | state: 1, |
| | | }) |
| | | if (response.code == 200) { |
| | | // 绑定成功,处理逻辑 |
| | | ElMessage.success(response.message); |
| | | // window.location.reload() |
| | | blind.value = false; |
| | | selectedProjectNoa.value = ''; |
| | | } else { |
| | | // 请求失败,显示错误消息 |
| | | ElMessage.error(response.message); |
| | | } |
| | | } catch (error) { |
| | | // 处理错误 |
| | | console.error(error); |
| | | } |
| | | } else if (markingMachineStatus.value === '#911005' || cuttingMachineStatus.value === '#911005') { |
| | | // 提示用户打标机未就绪 |
| | | ElMessage.warning(t('basicData.pausea')); |
| | | } |
| | | } |
| | | // 暂停 |
| | | const handlea = async () => { |
| | | try { |
| | | let engineeringId = window.localStorage.getItem('engineeringId') |
| | | console.log(engineeringId); |
| | | if (engineeringId !== '') { |
| | | const response = await request.post('/loadGlass/engineering/engineering/pauseTask', { |
| | | engineeringId: engineeringId, |
| | | state: 0, |
| | | }) |
| | | try { |
| | | let engineeringId = window.localStorage.getItem('engineeringId') |
| | | console.log(engineeringId); |
| | | if (engineeringId !== '') { |
| | | const response = await request.post('/loadGlass/engineering/engineering/pauseTask', { |
| | | engineeringId: engineeringId, |
| | | state: 0, |
| | | }) |
| | | if (response.code == 200) { |
| | | ElMessage.success(response.message); |
| | | blinda.value = false; |
| | |
| | | message: t('basicData.infonull'), |
| | | }) |
| | | } |
| | | } catch (error) { |
| | | } |
| | | catch (error) { |
| | | // 处理错误 |
| | | console.error(error); |
| | | } |
| | | } |
| | | // 停止任务 |
| | | const handleb = async () => { |
| | | try { |
| | | let engineeringId = window.localStorage.getItem('engineeringId') |
| | | console.log(engineeringId); |
| | | if (engineeringId !== '') { |
| | | const response = await request.post('/loadGlass/engineering/engineering/pauseTask', { |
| | | engineeringId: engineeringId, |
| | | state: 0, |
| | | }) |
| | | if (response.code == 200) { |
| | | // 绑定成功,处理逻辑 |
| | | ElMessage.success(response.message); |
| | | // window.location.reload() |
| | | blindb.value = false; |
| | | tableData.splice([]); |
| | | |
| | | // 请求失败,显示错误消息 |
| | | ElMessage.error(response.message); |
| | | } |
| | | } else { |
| | | ElMessage({ |
| | | type: 'info', |
| | | message: t('basicData.infonull'), |
| | | }) |
| | | } |
| | | } catch (error) { |
| | | // 处理错误 |
| | | console.error(error); |
| | | } |
| | | } |
| | | onMounted(fetchTableData); |
| | | |
| | | function getStatusText(state: number) { |
| | | switch (state) { |
| | | case 0: |
| | | case 0: |
| | | return t('basicData.waiting'); |
| | | case 1: |
| | | case 1: |
| | | return t('basicData.up'); |
| | | case 2: |
| | | return t('basicData.up'); |
| | | case 100: |
| | | return t('basicData.finish'); |
| | | case 2: |
| | | return t('basicData.up'); |
| | | case 100: |
| | | return t('basicData.finish'); |
| | | } |
| | | } |
| | | function getStatusType(state: number) { |
| | |
| | | }; |
| | | // 停止任务 |
| | | const handleBindb = (row) => { |
| | | blindb.value = true; |
| | | blindb.value = true; |
| | | }; |
| | | |
| | | |
| | | // 删除 |
| | | const handleBindRacka = (row) => { |
| | | workstationId.value = row.workstationId; |
| | | adda.value = true; |
| | | adda.value = true; |
| | | }; |
| | | // 定义一个响应式引用,用于存储颜色状态 |
| | | const markingMachineStatus = ref('#911005'); |
| | | const cuttingMachineStatus = ref('#911005'); |
| | | // 定义一个方法来改变颜色状态 |
| | | const confirmMarkingMachine = () => { |
| | | markingMachineStatus.value = 'green'; |
| | | }; |
| | | const confirmCuttingMachine = () => { |
| | | cuttingMachineStatus.value = 'green'; |
| | | }; |
| | | const toggleEnableState = async (row: any) => { |
| | | const toggleEnableState = async (row: any) => { |
| | | // 检查 id 是否为空 |
| | | if (!row.id) { |
| | | ElMessage.error(t('basicData.updatanull')); |
| | | if (!row.id) { |
| | | ElMessage.error(t('basicData.updatanull')); |
| | | return; // 如果 id 为空,则不执行后续操作 |
| | | } |
| | | const newState = row.state === 100 ? 0 : 100; |
| | | try { |
| | | } |
| | | const newState = row.state === 100 ? 0 : 100; |
| | | try { |
| | | // 发送请求到后端更新状态 |
| | | const response = await request.post('/loadGlass/up-patten-usage/updateGlassState', {id: row.id, state: newState}); |
| | | if (response.code === 200) { |
| | | ElMessage.success(response.message); |
| | | row.state = newState; |
| | | } else { |
| | | ElMessage.error(response.message); |
| | | } |
| | | } catch (error) { |
| | | const response = await request.post('/loadGlass/up-patten-usage/updateGlassState', { id: row.id, state: newState }); |
| | | if (response.code === 200) { |
| | | ElMessage.success(response.message); |
| | | row.state = newState; |
| | | } else { |
| | | ElMessage.error(response.message); |
| | | } |
| | | } catch (error) { |
| | | // 处理请求错误 |
| | | ElMessage.error(t('basicData.glassnull')); |
| | | } |
| | | }; |
| | | // 上片机联机状态 |
| | | // const wsUrl = `ws://${WebSocketHost}:${host}/api/loadGlass/api/talk/loadGlass`; |
| | | // const ws = new WebSocket(wsUrl); |
| | | // ws.onopen = () => { |
| | | // console.log('WebSocket连接已打开'); |
| | | // }; |
| | | |
| | | // // 监听WebSocket的错误事件 |
| | | // ws.onerror = (error) => { |
| | | // console.error('WebSocket发生错误:', error); |
| | | // }; |
| | | |
| | | // // 监听WebSocket的关闭事件 |
| | | // ws.onclose = (event) => { |
| | | // if (event.wasClean) { |
| | | // console.log('WebSocket连接已正常关闭'); |
| | | // } else { |
| | | // console.error('WebSocket连接异常关闭'); |
| | | // } |
| | | // }; |
| | | // // 监听WebSocket的消息事件 |
| | | // ws.onmessage = (event) => { |
| | | // try { |
| | | // const data = JSON.parse(event.data.replace('<END>', '')); // 解析消息为JSON |
| | | // if (data && Array.isArray(data.InkageStatus) && data.InkageStatus.length > 0) { |
| | | // if(data.InkageStatus!=null){ |
| | | // const status = data.InkageStatus[0]; |
| | | // cuttingMachine.value = status; |
| | | // upstatus.value = status === '1' ? t('basicData.machine') : t('basicData.machineaa'); |
| | | // cuttingMachineStatusColor.value = status === '1' ? 'green' : '#911005'; |
| | | // inKageWord.value = status === '1' ? 0 : 1; |
| | | // } |
| | | // } else { |
| | | // // 处理错误情况或无效数据 |
| | | // // console.error('接收到的数据无效', data); |
| | | // } |
| | | // } catch (error) { |
| | | // // console.error('解析WebSocket消息时发生错误', error); |
| | | // } |
| | | // }; |
| | | const confirmCutting = async () => { |
| | | try { |
| | | const response = await request.post('/loadGlass/LoadGlass/updateMesInkageLoad', |
| | | inKageWord.value |
| | | ); |
| | | if (response.code == 200) { |
| | | const status = response.data.status; |
| | | upstatus.value = status === '1' ? t('basicData.machine') : t('basicData.machineaa'); |
| | | cuttingMachineStatusColor.value = status === '1' ? 'green' : '#911005'; |
| | | // 显示成功消息 |
| | | ElMessage.success(response.message); |
| | | } else { |
| | | ElMessage.error(response.message || '请求失败'); |
| | | } |
| | | } catch (error) { |
| | | // 处理错误 |
| | | console.error('请求时发生错误', error); |
| | | ElMessage.error('请求时发生错误'); |
| | | } |
| | | ElMessage.error(t('basicData.glassnull')); |
| | | } |
| | | }; |
| | | </script> |
| | | <template> |
| | | <div> |
| | | <div id="dotClass"> |
| | | <div>{{ $t('basicData.laserprinting') }}</div> |
| | | <i :style="{ marginTop: '2px', backgroundColor: markingMachineStatus, width: '18px', height: '18px', borderRadius: '50%', display: 'block' }"></i> |
| | | <el-button @click="confirmMarkingMachine" style="margin-left: 30px;margin-top: -3px;">{{ |
| | | $t('basicData.yes') |
| | | }} |
| | | </el-button> |
| | | <div style="margin-left: 70px;">{{ $t('basicData.cuttingmachine') }}</div> |
| | | <i :style="{ marginTop: '2px', backgroundColor: cuttingMachineStatus, width: '18px', height: '18px', borderRadius: '50%', display: 'block' }"></i> |
| | | <el-button @click="confirmCuttingMachine" style="margin-left: 30px;margin-top: -3px;">{{ |
| | | $t('basicData.yes') |
| | | }} |
| | | </el-button> |
| | | <div style="margin-left: 70px;">{{ upstatus }}</div> |
| | | <i :style="{ marginTop: '2px', backgroundColor: cuttingMachineStatusColor, width: '18px', height: '18px', borderRadius: '50%', display: 'block' }"></i> |
| | | <el-button @click="confirmCutting" style="margin-left: 30px;margin-top: -3px;">{{ |
| | | $t('basicData.change') |
| | | }} |
| | | </el-button> |
| | | |
| | | </div> |
| | | <el-button :disabled="!canSelectProject" style="margin-top: 5px;margin-left: 15px;" type="primary" |
| | | @click="selectproject">{{ $t('Mounting.previewproject') }} |
| | | </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> |
| | | <el-button style="margin-top: 5px;margin-left: 20px;" id="searchButton" type="warning" @click="handleBinda"> |
| | | {{ $t('basicData.stop') }} |
| | | </el-button> |
| | | <el-button style="margin-top: 5px;margin-left: 20px;" id="searchButton" type="info" @click="handlezhiban"> |
| | | {{ $t('searchOrder.dutyinformation') }} |
| | | </el-button> |
| | | <el-select v-model="selectValuesa[0]" clearable :placeholder="$t('film.taskstatus')" |
| | | style="margin-top: 5px;margin-left: 20px;"> |
| | | <el-option :label="$t('film.built')" value="1"></el-option> |
| | | <div>{{ $t('basicData.laserprinting') }}</div> |
| | | <i :style="{ marginTop: '2px', backgroundColor: markingMachineStatus, width: '18px', height: '18px', borderRadius: '50%', display: 'block' }"></i> |
| | | <el-button @click="confirmMarkingMachine" style="margin-left: 30px;margin-top: -3px;">{{ $t('basicData.yes') }}</el-button> |
| | | <div style="margin-left: 70px;">{{ $t('basicData.cuttingmachine') }}</div> |
| | | <i :style="{ marginTop: '2px', backgroundColor: cuttingMachineStatus, width: '18px', height: '18px', borderRadius: '50%', display: 'block' }"></i> |
| | | <el-button @click="confirmCuttingMachine" style="margin-left: 30px;margin-top: -3px;" >{{ $t('basicData.yes') }}</el-button> |
| | | <div style="margin-left: 70px;">{{ upstatus }} </div> |
| | | <i :style="{ marginTop: '2px', backgroundColor: cuttingMachineStatusColor, width: '18px', height: '18px', borderRadius: '50%', display: 'block' }"></i> |
| | | <el-button @click="confirmCutting" style="margin-left: 30px;margin-top: -3px;" >{{ $t('basicData.change') }}</el-button> |
| | | |
| | | </div> |
| | | <el-button style="margin-top: 5px;margin-left: 15px;" type="primary" @click="selectproject">{{ $t('Mounting.previewproject') }}</el-button> |
| | | <el-button style="margin-top: 5px;margin-left: 20px;" type="success" @click="handleBind">{{ $t('basicData.startloading') }}</el-button> |
| | | <el-button style="margin-top: 5px;margin-left: 20px;" id="searchButton" type="warning" @click="handleBinda">{{ $t('basicData.stop') }}</el-button> |
| | | <el-button style="margin-top: 5px;margin-left: 20px;" id="searchButton" type="info" @click="handlezhiban">{{ $t('searchOrder.dutyinformation') }}</el-button> |
| | | <el-select v-model="selectValuesa[1]" clearable :placeholder="$t('Mounting.loadinglinea')" style="margin-top: 5px;margin-left: 20px;" > |
| | | <el-option :label="$t('Mounting.all')" value="0"></el-option> |
| | | <el-option :label="$t('Mounting.oneloadingline')" value="1"></el-option> |
| | | <el-option :label="$t('Mounting.twoloadingline')" value="2"></el-option> |
| | | </el-select> |
| | | <el-select v-model="selectValuesa[0]" clearable :placeholder="$t('film.taskstatus')" style="margin-top: 5px;margin-left: 20px;" > |
| | | <el-option :label="$t('Mounting.waiting')" value="1"></el-option> |
| | | <el-option :label="$t('film.execution')" value="2"></el-option> |
| | | <el-option :label="$t('film.finish')" value="3"></el-option> |
| | | </el-select> |
| | | <el-select v-model="selectValuesa[1]" clearable :placeholder="$t('film.tasktype')" |
| | | style="margin-top: 5px;margin-left: 20px;"> |
| | | <el-option :label="$t('film.stocke')" value="1"></el-option> |
| | | <el-option :label="$t('film.outbound')" value="2"></el-option> |
| | | <el-option :label="$t('film.dispatch')" value="3"></el-option> |
| | | </el-select> |
| | | <el-button type="primary" style="margin-left: 10px;" @click="selectReportData()">{{ |
| | | $t('film.inquire') |
| | | }} |
| | | </el-button> |
| | | <el-button type="primary" style="margin-left: 10px;" @click="selectReportData()">{{ $t('Mounting.setparameters') }}</el-button> |
| | | <el-card style="flex: 1;margin-left: 10px;margin-top: 15px;" v-loading="loading"> |
| | | <div style="width: 98%; height: calc(100% - 35px); overflow-y: auto;"> |
| | | <el-table |
| | | height="350" |
| | | ref="table" |
| | | :header-cell-style="{background:'#F2F3F5 ',color:'#1D2129'}" |
| | | :data="tableData" |
| | | > |
| | | <el-table-column prop="layoutSequence" :label="$t('basicData.layoutSequence')" width="100" align="center"/> |
| | | <el-table-column prop="engineeringId" :label="$t('basicData.projectnumber')" width="200" align="center"/> |
| | | <el-table-column prop="width" :label="$t('basicData.glasswidth')" align="center"/> |
| | | <el-table-column prop="height" :label="$t('basicData.glassheight')" align="center"/> |
| | | <el-table-column prop="filmsId" :label="$t('basicData.coatingtypes')" align="center"/> |
| | | <el-table-column :label="$t('basicData.quantity')" align="center"> |
| | | <template #default="{ row }"> |
| | | <!-- 这里总是显示 1 --> |
| | | <span>{{ 1 }}</span> |
| | | </template> |
| | | </el-table-column> |
| | | <el-table-column prop="thickness" :label="$t('basicData.thickness')" align="center"/> |
| | | <!-- <el-table-column |
| | | align="center" |
| | | label="状态" |
| | | min-width="80" |
| | | prop="state" |
| | | > |
| | | <template #default="scope"> |
| | | <el-tag :type="getStatusType(scope.row.state)"> |
| | | {{ getStatusText(scope.row.state) }} |
| | | </el-tag> |
| | | </template> --> |
| | | <el-table-column |
| | | align="center" |
| | | :label="$t('basicData.startstatus')" |
| | | min-width="80" |
| | | prop="state" |
| | | <el-table |
| | | height="350" |
| | | ref="table" |
| | | :header-cell-style="{background:'#F2F3F5 ',color:'#1D2129'}" |
| | | :data="tableData" |
| | | > |
| | | <el-table-column prop="layoutSequence" :label="$t('Mounting.project')" width="100" align="center"/> |
| | | <el-table-column prop="engineeringId" :label="$t('Mounting.width')" width="200" align="center"/> |
| | | <el-table-column prop="width" :label="$t('Mounting.height')" align="center"/> |
| | | <el-table-column prop="height" :label="$t('Mounting.thickness')" align="center"/> |
| | | <el-table-column prop="filmsId" :label="$t('Mounting.loadinglinea')" align="center"/> |
| | | <el-table-column :label="$t('Mounting.projectnumber')" align="center"> |
| | | <template #default="{ row }"> |
| | | <!-- 这里总是显示 1 --> |
| | | <span>{{ 1 }}</span> |
| | | </template> |
| | | </el-table-column> |
| | | <el-table-column |
| | | align="center" |
| | | :label="$t('Mounting.state')" |
| | | min-width="80" |
| | | prop="state" |
| | | > |
| | | <template #default="scope"> |
| | | <el-tag |
| | | :type="scope.row.state === 100 ? 'success' : 'warning'" |
| | | @click="toggleEnableState(scope.row)" |
| | | > |
| | | {{ scope.row.state === 100 ? $t('basicData.pass') : $t('basicData.waiting') }} |
| | | </el-tag> |
| | | <template #default="scope"> |
| | | <el-tag |
| | | :type="scope.row.state === 100 ? 'success' : 'warning'" |
| | | @click="toggleEnableState(scope.row)" |
| | | > |
| | | {{ scope.row.state === 100 ? $t('Mounting.pass') : $t('Mounting.waiting') }} |
| | | </el-tag> |
| | | </template> |
| | | </el-table-column> |
| | | <el-table-column prop="filmsId" :label="$t('Mounting.createtime')" align="center"/> |
| | | </el-table> |
| | | </div> |
| | | </el-card> |
| | | <div style="display: flex;"> |
| | | <div style="width: 49%;float: left;"> |
| | | <div style="display: flex;"> |
| | | <img src="../../assets/shangpianji.png" alt="" style="max-width: 25%;max-height: 25%;margin-left: 10%;margin-top: 5%;"> |
| | | <el-table :data="tableDataa" border style="width: 75%;margin-top: 10%;margin-left: 2%;" |
| | | :header-cell-style="{background:'#F2F3F5 ',color:'#1D2129'}" |
| | | > |
| | | <el-table-column prop="workstationId" align="center" :label="$t('basicData.station')" min-width="60" /> |
| | | <el-table-column prop="patternWidth" align="center" :label="$t('basicData.width')" min-width="80" /> |
| | | <el-table-column prop="patternHeight" align="center" :label="$t('basicData.height')" min-width="80" /> |
| | | <el-table-column prop="filmsId" align="center" :label="$t('basicData.coatingtypes')" min-width="80" /> |
| | | <el-table-column prop="number" align="center" :label="$t('basicData.quantity')" min-width="80" /> |
| | | </el-table> |
| | | </div> |
| | | </div> |
| | | <div style="width: 48%;float: right;"> |
| | | <div style="display: flex;"> |
| | | <img src="../../assets/shangpianji.png" alt="" style="max-width: 25%;max-height: 25%;margin-left: 10%;margin-top: 5%;"> |
| | | <el-table :data="tableDataa" border style="width: 75%;margin-top: 10%;margin-left: 2%;" |
| | | :header-cell-style="{background:'#F2F3F5 ',color:'#1D2129'}" |
| | | > |
| | | <el-table-column prop="workstationId" align="center" :label="$t('basicData.station')" min-width="60" /> |
| | | <el-table-column prop="patternWidth" align="center" :label="$t('basicData.width')" min-width="80" /> |
| | | <el-table-column prop="patternHeight" align="center" :label="$t('basicData.height')" min-width="80" /> |
| | | <el-table-column prop="filmsId" align="center" :label="$t('basicData.coatingtypes')" min-width="80" /> |
| | | <el-table-column prop="number" align="center" :label="$t('basicData.quantity')" min-width="80" /> |
| | | </el-table> |
| | | </div> |
| | | </div> |
| | | </div> |
| | | <el-dialog v-model="blind" top="30vh" width="25%" :title="$t('basicData.startfilm')"> |
| | | <template #footer> |
| | | <div id="dialog-footer"> |
| | |
| | | </div> |
| | | </template> |
| | | </el-dialog> |
| | | <el-dialog v-model="blinda" top="30vh" width="25%" :title="$t('basicData.whetherpause')"> |
| | | <template #footer> |
| | | <div id="dialog-footer"> |
| | | <el-button type="primary" @click="handlea"> |
| | | {{ $t('basicData.confirm') }} |
| | | </el-button> |
| | | <el-button @click="blinda = false">{{ $t('basicData.cancel') }}</el-button> |
| | | </div> |
| | | </template> |
| | | </el-dialog> |
| | | <!-- <el-dialog v-model="blindb" top="30vh" width="25%" title="是否停止任务?" > |
| | | <template #footer> |
| | | <div id="dialog-footer"> |
| | | <el-button type="primary" @click="handleb"> |
| | | 确认 |
| | | </el-button> |
| | | <el-button @click="blindb = false">取消</el-button> |
| | | </div> |
| | | </template> |
| | | </el-dialog> --> |
| | | <div id="parent"> |
| | | <img src="../../assets/shangpian.png" alt="" |
| | | style="max-width: 40%;max-height: 40%;margin-top: 20px;margin-left: 340px;"> |
| | | <div id="overlay" v-show="flake"></div> |
| | | <div id="overlaya" v-show="flakea"></div> |
| | | <div id="overlayb" v-show="flakeb"></div> |
| | | <div id="overlayc" v-show="flakec"></div> |
| | | <el-dialog v-model="blinda" top="24vh" width="30%" :title="$t('basicData.whetherpause')"> |
| | | <div style="margin-left: 50px;margin-bottom: 10px;"> |
| | | <el-form-item :label="$t('Mounting.loadingline')" :required="true"> |
| | | <el-select v-model="loadingline" clearable :placeholder="$t('Mounting.inloadingline')" style="margin-left: 20px;" > |
| | | <el-option :label="$t('Mounting.all')" value="0"></el-option> |
| | | <el-option :label="$t('Mounting.oneloadingline')" value="1"></el-option> |
| | | <el-option :label="$t('Mounting.twoloadingline')" value="2"></el-option> |
| | | </el-select> |
| | | </el-form-item> |
| | | </div> |
| | | <div style="margin-top: -300px;margin-left: 680px;"> |
| | | <el-table :data="tableDataa" border style="width: 85%" |
| | | :header-cell-style="{background:'#F2F3F5 ',color:'#1D2129'}" |
| | | > |
| | | <el-table-column prop="workstationId" align="center" :label="$t('basicData.station')" min-width="60"/> |
| | | <el-table-column prop="patternWidth" align="center" :label="$t('basicData.width')" min-width="80"/> |
| | | <el-table-column prop="patternHeight" align="center" :label="$t('basicData.height')" min-width="80"/> |
| | | <el-table-column prop="filmsId" align="center" :label="$t('basicData.coatingtypes')" min-width="80"/> |
| | | <el-table-column prop="number" align="center" :label="$t('basicData.quantity')" min-width="80"/> |
| | | <el-table-column fixed="right" :label="$t('basicData.operate')" align="center" width="150"> |
| | | <template #default="scope"> |
| | | <el-button size="mini" type="text" plain @click="handleBindRack(scope.row)">{{ |
| | | $t('basicData.add') |
| | | }} |
| | | </el-button> |
| | | <el-button size="mini" type="text" plain @click="handleBindRacka(scope.row)">{{ |
| | | $t('basicData.delete') |
| | | }} |
| | | </el-button> |
| | | </template> |
| | | </el-table-column> |
| | | </el-table> |
| | | </div> |
| | | |
| | | <el-dialog v-model="add" top="23vh" width="45%" :title="$t('basicData.addglass')"> |
| | | <div style="margin-left: -50px;margin-top: 10px;margin-bottom: 10px;"> |
| | | <el-form size="mini" label-width="150px"> |
| | | <el-form label-width="70px" label-position="right"> |
| | | <el-row style="margin-top: -15px;margin-bottom: -2px;"> |
| | | <el-col :span="6"> |
| | | <div id="dt" style="font-size: 15px;"> |
| | | <div> |
| | | <el-form-item :label="$t('basicData.widtha')" :required="true" style="width: 14vw"> |
| | | <template #footer> |
| | | <div id="dialog-footer"> |
| | | <el-button type="primary" @click="handleup"> |
| | | {{ $t('basicData.confirm') }} |
| | | </el-button> |
| | | <el-button @click="blinda = false">{{ $t('basicData.cancel') }}</el-button> |
| | | </div> |
| | | </template> |
| | | </el-dialog> |
| | | |
| | | <el-dialog v-model="add" top="23vh" width="45%" :title="$t('basicData.addglass')" > |
| | | <div style="margin-left: -50px;margin-top: 10px;margin-bottom: 10px;"> |
| | | <el-form size="mini" label-width="150px"> |
| | | <el-form label-width="70px" label-position="right"> |
| | | <el-row style="margin-top: -15px;margin-bottom: -2px;"> |
| | | <el-col :span="6"> |
| | | <div id="dt" style="font-size: 15px;"> |
| | | <div> |
| | | <el-form-item :label="$t('basicData.widtha')" :required="true" style="width: 14vw"> |
| | | <el-select |
| | | v-model="selectedValue" |
| | | filterable |
| | |
| | | </div> |
| | | </template> |
| | | </el-dialog> |
| | | </div> |
| | | <el-dialog v-model="dialogFormVisible" top="24vh" width="30%" :title="$t('basicData.project')"> |
| | | <div style="margin-left: 50px;margin-bottom: 10px;"> |
| | | <el-form-item :label="$t('basicData.projectnumber')" :required="true"> |
| | | <el-select |
| | | v-model="selectedProjectNo" |
| | | filterable |
| | | clearable |
| | | :placeholder="$t('basicData.plselectproject')" |
| | | style="width: 220px" |
| | | @input="handleInputChange" |
| | | > |
| | | <el-option |
| | | v-for="item in titleSelectJson['processType']" |
| | | </div> |
| | | <el-dialog v-model="dialogFormVisible" top="24vh" width="50%" > |
| | | <div class="flex-container" style="margin-left: 50px;margin-bottom: 10px;"> |
| | | <el-form-item :label="$t('Mounting.loadingline')" :required="true"> |
| | | <el-select v-model="loadingline" clearable :placeholder="$t('Mounting.inloadingline')" > |
| | | <el-option :label="$t('Mounting.oneloadingline')" value="1"></el-option> |
| | | <el-option :label="$t('Mounting.twoloadingline')" value="2"></el-option> |
| | | </el-select> |
| | | </el-form-item> |
| | | <el-form-item :label="$t('Mounting.projecta')" :required="true"> |
| | | <el-select |
| | | v-model="selectedProjectNo" |
| | | filterable |
| | | clearable |
| | | :placeholder="$t('basicData.plselectproject')" |
| | | style="width: 220px" |
| | | @input="handleInputChange" |
| | | > |
| | | <el-option |
| | | v-for="item in titleSelectJson['processType']" |
| | | :key="item.id" |
| | | :label="item.projectNo" |
| | | :value="item.projectNo" |
| | |
| | | </template> |
| | | |
| | | <style scoped> |
| | | |
| | | .flex-container { |
| | | display: flex; |
| | | align-items: center; /* 垂直居中 */ |
| | | } |
| | | .flex-container .el-form-item { |
| | | flex: 1; /* 使每个表单项占据相等的空间 */ |
| | | margin-right: 0; /* 移除默认的右侧边距 */ |
| | | } |
| | | .flex-container .el-form-item:last-child { |
| | | margin-left: 20px; /* 为第二个表单项添加左侧边距 */ |
| | | } |
| | | |
| | | |
| | | |
| | | #dt { display:block; float:left;line-height: 20px;margin-left: 100px;} |
| | | #dta { display:block; float:left;line-height: 20px;margin-left: 80%;} |
| | | #dialog-footer{ |
| | | text-align: center; |
| | | margin-top: -15px; |
| | | } |
| | | |
| | | #dotClass { |
| | | display: flex; |
| | | margin-left: 20px; |
| | | margin-left: 20px; |
| | | size: 50px; |
| | | margin-top: 20px; |
| | | margin-bottom: 10px; |
| | | } |
| | | |
| | | #parent { |
| | | position: relative; |
| | | width: 1500px; |
| | | margin-left: -300px |
| | | } |
| | | |
| | | #overlayb { |
| | | position: absolute; |
| | | z-index: 1; |
| | | width: 228px; |
| | | height: 16px; |
| | | background-color: #529b2e; |
| | | margin-top: -303px; |
| | | margin-left: 355px; |
| | | } |
| | | |
| | | #overlayc { |
| | | position: absolute; |
| | | z-index: 1; |
| | | width: 228px; |
| | | height: 16px; |
| | | background-color: #529b2e; |
| | | margin-top: -303px; |
| | | margin-left: 703px; |
| | | } |
| | | |
| | | #overlay { |
| | | position: absolute; |
| | | z-index: 1; |
| | | width: 228px; |
| | | height: 16px; |
| | | background-color: #529b2e; |
| | | margin-top: -45px; |
| | | margin-left: 355px; |
| | | } |
| | | |
| | | #overlaya { |
| | | position: absolute; |
| | | z-index: 1; |
| | | width: 228px; |
| | | height: 16px; |
| | | background-color: #529b2e; |
| | | margin-top: -45px; |
| | | margin-left: 703px; |
| | | } |
| | | |
| | | </style> |
| | |
| | | <script lang="ts" setup> |
| | | import {useI18n} from 'vue-i18n' |
| | | import { useI18n } from 'vue-i18n' |
| | | const { t } = useI18n() |
| | | let language = ref(localStorage.getItem('lang') || 'zh') |
| | | import {Search} from "@element-plus/icons-vue"; |
| | | import {useRouter} from "vue-router" |
| | | const router = useRouter() |
| | | import request from "@/utils/request" |
| | | import {host, WebSocketHost} from '@/utils/constants' |
| | | import {computed, onBeforeUnmount, onMounted, onUnmounted, reactive, ref} from "vue"; |
| | | import {closeWebSocket, initializeWebSocket} from '@/utils/WebSocketService'; |
| | | import {ElMessage, ElMessageBox} from 'element-plus' |
| | | |
| | | import PrintLabel from "@/views/UnLoadGlass/PrintCustomLabelSemi1.vue"; |
| | | const dialogFormVisibleaDownGlasss = ref(false) |
| | | const scanGlass = ref([]) |
| | | const {t} = useI18n() |
| | | let language = ref(localStorage.getItem('lang') || 'zh') |
| | | const router = useRouter() |
| | | import { tr } from "element-plus/es/locale"; |
| | | const dialogFormVisible = ref(false) |
| | | const dialoglea = ref(false) |
| | | const dialogFormVisiblea = ref(false) |
| | |
| | | } |
| | | }; |
| | | // 指定钢化 |
| | | const brokee = async (row, temperingFeedSequence) => { |
| | | const brokee = async(row,temperingFeedSequence) => { |
| | | try { |
| | | const confirmResult = await ElMessageBox.confirm( |
| | | t('searchOrder.specifytemperinga'), |
| | | t('searchOrder.prompt'), |
| | | { |
| | | confirmButtonText: t('searchOrder.yes'), |
| | | cancelButtonText: t('searchOrder.cancel'), |
| | | type: 'warning', |
| | | } |
| | | const confirmResult = await ElMessageBox.confirm( |
| | | t('searchOrder.specifytemperinga'), |
| | | t('searchOrder.prompt'), |
| | | { |
| | | confirmButtonText: t('searchOrder.yes'), |
| | | cancelButtonText: t('searchOrder.cancel'), |
| | | type: 'warning', |
| | | } |
| | | ); |
| | | if (confirmResult === 'confirm') { |
| | | const response = await request.post("/cacheVerticalGlass/bigStorageCageDetails/TemperingGlass",{ |
| | | engineerId: row.engineer_id, |
| | | temperingLayoutId: row.tempering_layout_id, |
| | | temperingFeedSequence: temperingFeedSequence |
| | | temperingFeedSequence:temperingFeedSequence |
| | | }); |
| | | if (response.code === 200) { |
| | | ElMessage.success(response.message); |
| | |
| | | } |
| | | } catch (error) { |
| | | console.error('发生错误:', error); |
| | | } |
| | | } |
| | | handleganghua(); |
| | | }; |
| | | // 指定工程 |
| | |
| | | } catch (error) { |
| | | // console.error('Error fetching rects :', error); |
| | | } |
| | | |
| | | |
| | | |
| | | }); |
| | | const fetchFlows = async () => { |
| | |
| | | } |
| | | } |
| | | |
| | | |
| | | |
| | | const fetchFlow = async () => { |
| | | try { |
| | | const response = await request.post('/cacheVerticalGlass/bigStorageCageDetails/selectTemperingGlass') |
| | |
| | | }); |
| | | glasstotal.value = totalCount; |
| | | fulltotals.value = fullCount; |
| | | |
| | | |
| | | } else { |
| | | ElMessage.error(response.message); |
| | | } |
| | |
| | | <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-button style="margin-top: 10px;margin-left: 10px;margin-bottom: 10px;" id="searchButton" type="primary" |
| | | @click="dialogFormVisibleaDownGlasss = true">人工下片 |
| | |
| | | </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> |
| | |
| | | :data="tableDatagh" :header-cell-style="{background:'#F2F3F5 ',color:'#1D2129'}"> |
| | | <el-table-column prop="engineer_id" fixed align="center" :label="$t('searchOrder.projectnumber')" min-width="150"/> |
| | | <el-table-column prop="tempering_layout_id" fixed align="center" :label="$t('searchOrder.layoutnumber')" min-width="120" /> |
| | | <el-table-column prop="count2" align="center" :label="$t('总数量')" min-width="150" /> |
| | | <el-table-column prop="count1" align="center" :label="$t('笼子内数量')" min-width="150" /> |
| | | <el-table-column prop="count3" align="center" :label="$t('缺少数量')" min-width="150" /> |
| | | <el-table-column prop="count4" align="center" :label="$t('破损/拿走数量')" min-width="150" /> |
| | | <el-table-column prop="count2" align="center" :label="$t('searchOrder.allnumber')" min-width="150" /> |
| | | <el-table-column prop="count1" align="center" :label="$t('searchOrder.numbercages')" min-width="150" /> |
| | | <el-table-column prop="count3" align="center" :label="$t('searchOrder.missingquantity')" min-width="150" /> |
| | | <el-table-column prop="count4" align="center" :label="$t('searchOrder.breakquantity')" min-width="150" /> |
| | | <el-table-column fixed="right" :label="$t('searchOrder.operate')" align="center" width="250"> |
| | | <template #default="scope"> |
| | | <el-button size="mini" type="text" plain @click="brokee(scope.row,1)"> |
| | | {{ $t('searchOrder.specifytempering') }} |
| | | </el-button> |
| | | <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> |
| | | <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-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"> |
| | |
| | | import { useI18n } from 'vue-i18n' |
| | | const { t } = useI18n() |
| | | let language = ref(localStorage.getItem('lang') || 'zh') |
| | | |
| | | |
| | | const tableData = ref([]) |
| | | const slot = ref('') |
| | | const requestData = { |
| | |
| | | const selectValuesa = reactive([]); |
| | | // request.post("/cacheGlass/taskCache/selectEdgTask",{ |
| | | // ...requestData, |
| | | |
| | | |
| | | // }).then((res) => { |
| | | // if (res.code == 200) { |
| | | |
| | |
| | | |
| | | // } |
| | | // }); |
| | | |
| | | |
| | | // 磨边任务查询 |
| | | const setEdgGlassInfoRequest = async () => { |
| | | let celllist=[] |
| | |
| | | } else { |
| | | ElMessage.error(response.message); |
| | | } |
| | | |
| | | |
| | | } |
| | | |
| | | |
| | | // 破损 |
| | | const open = async(row) => { |
| | | try { |
| | |
| | | <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" |
| | |
| | | {{ 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> |
| | |
| | | </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%;} |
| | |
| | | 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') |
| | |
| | | const autoPrint = ref(false) |
| | | const takeGlass = ref([]) |
| | | const scanGlass = ref([]) |
| | | |
| | | |
| | | |
| | | |
| | | const dialogFormVisiblea = ref(false) |
| | | const dialogFormVisiblea2 = ref(false) |
| | | const dialogFormVisibleaDownGlass = ref(false) |
| | |
| | | const flowCardOptions = ref('[]'); |
| | | const tableData = reactive([]); |
| | | const downGlass = ref([]); |
| | | |
| | | |
| | | const selectValuesa = reactive({}); |
| | | const selectOptionsa = ref([]); |
| | | const dialogTableVisible = ref(false) |
| | |
| | | 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) { |
| | |
| | | browser.value = false |
| | | } |
| | | } |
| | | |
| | | |
| | | const handleInputChangea = (value, rowId) => { |
| | | // 更新对应行的 select 值 |
| | | selectValuesa[rowId] = value; |
| | |
| | | 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); |
| | |
| | | if (response.code == 200) { |
| | | // 绑定成功,处理逻辑 |
| | | console.log('绑定成功'); |
| | | |
| | | |
| | | ElMessage.success(response.message); |
| | | updatePageData(); |
| | | dialogFormVisiblea.value = false; |
| | |
| | | const response = await request.post('unLoadGlass/downWorkStation/clear', { |
| | | workstationId: workstationId.value, |
| | | }); |
| | | |
| | | |
| | | |
| | | |
| | | if (response.code === 200) { |
| | | // 清除成功的逻辑 |
| | | console.log('清除成功'); |
| | |
| | | try { |
| | | // 发送获取表格数据的请求,并等待响应 |
| | | const response = await request.get('unLoadGlass/downWorkStation/getone'); |
| | | |
| | | |
| | | // 检查响应状态 |
| | | if (response.code === 200) { |
| | | // 更新表格数据 |
| | |
| | | const socketUrl = `ws://${WebSocketHost}:${host}/api/unLoadGlass/api/talk/unloadglass`; |
| | | // 定义消息处理函数,更新 receivedData 变量 |
| | | const handleMessage = (data) => { |
| | | |
| | | |
| | | // 更新 tableData 的数据 |
| | | if (data.downGlassInfos != null) { |
| | | downGlass.value = data.downGlassInfos[0]; |
| | |
| | | takeGlass.value.width = height; |
| | | takeGlass.value.height = width; |
| | | } |
| | | |
| | | |
| | | |
| | | |
| | | } |
| | | if (data.scanGlass != null) { |
| | | scanGlass.value = data.scanGlass[0]; |
| | |
| | | open1(scanGlass); |
| | | } |
| | | } |
| | | |
| | | |
| | | //自动打印 |
| | | if (fullFlowCard.value == "" && autoPrint.value == true && browser.value == true) { |
| | | for (let i = 0; i < tableData.length; i++) { |
| | |
| | | if (data.params != null) { |
| | | tableData.splice(0, tableData.length, ...data.params[0]); |
| | | } |
| | | |
| | | |
| | | // console.log("更新后数据", data.params[0]); |
| | | }; |
| | | // 初始化 WebSocket,并传递消息处理函数 |
| | |
| | | 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); |
| | | // 可以根据后端返回的数据进行进一步处理,比如更新本地状态等 |
| | |
| | | // 处理错误情况,比如提示用户更新失败 |
| | | } |
| | | }; |
| | | |
| | | |
| | | // 查询数据 |
| | | const selectDownGlassData = async () => { |
| | | |
| | | |
| | | const response = await request.post("/unLoadGlass/downGlassInfo/setDownGlassInfoRequest", { |
| | | workStationId: selectValuesa[0], |
| | | engineerId: selectValuesa[1], |
| | |
| | | } else { |
| | | ElMessage.error(response.message); |
| | | } |
| | | |
| | | |
| | | } |
| | | |
| | | |
| | | |
| | | |
| | | const open = async (row) => { |
| | | |
| | | |
| | | printFlowCardId.value = row.flowCardId; |
| | | printLayer.value = row.layer |
| | | dialogTableVisible.value = true; |
| | |
| | | }, 2000); |
| | | } |
| | | const open1 = async (row) => { |
| | | |
| | | |
| | | printFlowCardId.value = row.flowCardId; |
| | | printLayer.value = row.layer |
| | | printGlassId.value = row.glassId |
| | |
| | | //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) |
| | |
| | | "{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); |
| | |
| | | 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 = |
| | |
| | | content.innerHTML = el.outerHTML; |
| | | // // console.log("el.outerHTML", el.outerHTML); |
| | | body.appendChild(style); |
| | | |
| | | |
| | | // 与style元素设置的样式相配合 |
| | | // 把打印内容的元素添加到body(作为body的子元素,可用body的子选择器 '>' 控制打印样式) |
| | | body.appendChild(content); |
| | |
| | | body.removeChild(style); |
| | | }, 20); |
| | | } |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | // beforeUnmount(() => { |
| | | // closeWebSocket(); |
| | | // }); |
| | |
| | | <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;"> |
| | |
| | | <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"> |
| | |
| | | </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> |
| | |
| | | <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><el-button type="primary" @click="open1(takeGlass)" >打印标签</el-button></div> |
| | | <div>{{ $t('reportWork.glassmation') }}</div> |
| | | <div><el-button type="primary" @click="open1(takeGlass)" >{{ $t('reportWork.printlabels') }}</el-button></div> |
| | | <div>{{ takeGlass.flowCardId }}</div> |
| | | <div>{{ takeGlass.layer }}</div> |
| | | <div>{{ takeGlass.glassId }}</div> |
| | |
| | | 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><el-button type="primary" @click="open1(scanGlass)" >打印标签</el-button></div> |
| | | <div>{{ $t('reportWork.barcodescanner') }}</div> |
| | | <div><el-button type="primary" @click="open1(scanGlass)" >{{ $t('reportWork.printlabels') }}</el-button></div> |
| | | <div>{{ scanGlass.flowCardId }}</div> |
| | | <div>{{ scanGlass.layer }}</div> |
| | | <div>{{ scanGlass.glassId }}</div> |
| | | <div>{{ scanGlass.width }}</div> |
| | | <div>{{ scanGlass.height }}</div> |
| | | |
| | | |
| | | </div> |
| | | </el-card> |
| | | </div> |
| | |
| | | </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"> |
| | |
| | | </div> |
| | | <template #footer> |
| | | <div id="dialog-footer"> |
| | | |
| | | |
| | | <el-button type="primary" @click="handleConfirm"> |
| | | {{ $t('reportWork.sure') }} |
| | | </el-button> |
| | |
| | | </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 id="sizePrintCalrd1" v-model="dialogTableVisible1" destroy-on-close> |
| | | <print-label id="printFlowCard" :printFlowCardId="printFlowCardId" :printLayer="printLayer" :printGlassId="printGlassId" style="" /> |
| | | </el-dialog> |
| | | |
| | | |
| | | </template> |
| | | <style scoped> |
| | | #dt { |
| | |
| | | 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; |
| | |
| | | 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%; |
| | |
| | | |
| | | import com.baomidou.dynamic.datasource.annotation.DS; |
| | | import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; |
| | | import com.github.yulichang.base.MPJBaseServiceImpl; |
| | | import com.mes.temperingglass.entity.TemperingGlassInfo; |
| | | import com.mes.temperingglass.mapper.TemperingGlassInfoMapper; |
| | | import com.mes.temperingglass.service.TemperingGlassInfoService; |
| | | import org.springframework.beans.factory.annotation.Autowired; |
| | | import org.springframework.stereotype.Service; |
| | | import com.github.yulichang.base.MPJBaseServiceImpl; |
| | | |
| | | import java.util.List; |
| | | |
| | |
| | | public List<TemperingGlassInfo> selectWaitingGlass() { |
| | | //获取等待进炉中的玻璃信息 |
| | | QueryWrapper<TemperingGlassInfo> wrapper = new QueryWrapper<>(); |
| | | wrapper.select("Top 1 *").in("state", 1, 0, -1); |
| | | wrapper.select("Top 1 *").in("state",1,0); |
| | | TemperingGlassInfo glass=temperingMapper.selectOne(wrapper); |
| | | if(glass!=null) { |
| | | QueryWrapper<TemperingGlassInfo> glassinfo = new QueryWrapper<>(); |
| | |
| | | on pd.prod_id = od.product_id and pd.glass_sort = ogd.technology_number |
| | | where fc.process_id = #{processId} |
| | | <if test="technologyNumber != 0"> |
| | | and fc.technology_number = #{technologyNumber} |
| | | and a.layer = #{technologyNumber} |
| | | </if> |
| | | <if test="technologyNumber != 0"> |
| | | and position(fc.technology_number in #{technologyNumber}) |
| | |
| | | .eq(OptimizeHeatDetail::getProjectNo, current) |
| | | ); |
| | | |
| | | Map<String, List<Map<String, Object>>> groupBy = resultCutTerritory.stream().collect(Collectors.groupingBy(item -> item.get("layout_id").toString())); |
| | | Map<String, List<Map<String, Object>>> groupBy=resultCutTerritory.stream().collect(Collectors.groupingBy(item->item.get("layout_id").toString())); |
| | | // List<List<Map<String, Object>>> Result=groupBy.values().stream().collect(Collectors.toList()); |
| | | List<List<Map<String, Object>>> result = new ArrayList<>(); |
| | | for (int i = 1; i <= groupBy.keySet().size(); i++) { |
| | | String key = i + ""; |
| | | if (key != null) { |
| | | List<List<Map<String, Object>>> result=new ArrayList<>(); |
| | | for (int i=1;i<=groupBy.keySet().size();i++) { |
| | | String key=i+""; |
| | | if(key!=null){ |
| | | result.add(groupBy.get(key)); |
| | | } |
| | | } |
| | |
| | | @Value("${mes.max.secondLength}") |
| | | private String secondLength; |
| | | |
| | | @Value("${mes.cache.cacheWidth}") |
| | | private double cacheWidth; |
| | | |
| | | @Value("${mes.cache.cacheHeight}") |
| | | private double cacheHeight; |
| | | |
| | | @Value("${mes.min.one.firstLength}") |
| | | private String minOneFirstLength; |
| | | |
| | |
| | | |
| | | public static String engineerId = ""; |
| | | |
| | | @Scheduled(fixedDelay = 1000) |
| | | //@Scheduled(fixedDelay = 1000) |
| | | public void plcHomeEdgTask() { |
| | | Date startDate = new Date(); |
| | | log.info("本次任务开始执行时间:{}", startDate); |
| | |
| | | String out10Glassstate = plcParameterObject.getPlcParameter("A10_glass_status").getValue(); |
| | | String confirmationWrodAddress = plcParameterObject.getPlcParameter("MES_confirmation_word").getAddress(); |
| | | String currentSlot = plcParameterObject.getPlcParameter("Current_slot").getValue(); |
| | | |
| | | // taskRequestTypeValue = "3"; |
| | | // out08Glassstate = "1"; |
| | | // out10Glassstate = "1"; |
| | | // currentSlot = "2"; |
| | | // confirmationWrodValue = "0"; |
| | | // glassIdeValue = "P24092706|15|5"; |
| | | |
| | | log.info("1、获取到的请求字为:{},获取到的扫描ID为:{},获取到的确认字为:{},获取到的出片状态分别为:A09:{}、A10:{},当前格子号为:{}", |
| | | taskRequestTypeValue, glassIdeValue, confirmationWrodValue, out08Glassstate, out10Glassstate, currentSlot); |
| | |
| | | //09空闲 :1 10空闲 :2 都空闲:3 其他0 |
| | | log.info("2、出片请求,且确认字为0,执行出片任务"); |
| | | outTo(Integer.parseInt(out08Glassstate), |
| | | Integer.parseInt(out10Glassstate), confirmationWrodAddress, "", Integer.parseInt(currentSlot)); |
| | | Integer.parseInt(out10Glassstate), confirmationWrodAddress, "", 0); |
| | | } else if ("3".equals(taskRequestTypeValue)) { |
| | | log.info("2、进片和出片都空闲,执行出片任务"); |
| | | //加笼子里面是否有玻璃,有先出,无玻璃先进 |
| | |
| | | Damage damage = new Damage(); |
| | | damage.setGlassId(e.getGlassId()); |
| | | damage.setLine(e.getEndCell()); |
| | | damage.setWorkingProcedure("磨边"); |
| | | damage.setWorkingProcedure("冷加工"); |
| | | damage.setRemark("磨边前卧式理片"); |
| | | damage.setStatus(1); |
| | | damage.setStatus(0); |
| | | damage.setType(e.getTaskStatus()); |
| | | return damage; |
| | | }).collect(Collectors.toList()); |
| | |
| | | */ |
| | | public void inTo(String glassId, String confirmationWrodAddress, String currentSlot) { |
| | | log.info("1、按照玻璃id:{}获取玻璃小片信息,当前格子为:{}", glassId, currentSlot); |
| | | |
| | | GlassInfo feedGlassInfo = glassInfoService.getOne( |
| | | new LambdaQueryWrapper<GlassInfo>() |
| | | .eq(GlassInfo::getGlassId, glassId) |
| | | ); |
| | | if (Math.max(feedGlassInfo.getWidth(), feedGlassInfo.getHeight()) > cacheWidth || Math.min(feedGlassInfo.getWidth(), feedGlassInfo.getHeight()) > cacheHeight) { |
| | | log.info("1.1、玻璃超过卧式理片最大尺寸:{}", feedGlassInfo); |
| | | return; |
| | | } |
| | | |
| | | //添加进片任务 查找空格 |
| | | EdgStorageCage nearestEmpty = edgStorageCageService.selectNearestEmpty(Integer.parseInt(currentSlot), Boolean.FALSE); |
| | | Assert.isTrue(null != nearestEmpty, "格子已满"); |
| | |
| | | .eq(GlassInfo::getHeight, glassInfo.getHeight()) |
| | | .eq(GlassInfo::getThickness, glassInfo.getThickness()) |
| | | .eq(GlassInfo::getFilmsid, glassInfo.getFilmsid()) |
| | | .eq(GlassInfo::getFlowCardId, glassInfo.getFlowCardId()) |
| | | .ne(GlassInfo::getGlassId, glassInfo.getGlassId()) |
| | | .eq(GlassInfo::getTotalLayer, glassInfo.getTotalLayer()) |
| | | .eq(GlassInfo::getLayer, glassInfo.getLayer()) |
| | | .eq(GlassInfo::getEngineerId, glassInfo.getEngineerId()) |
| | | .notInSql(GlassInfo::getGlassId, "select distinct glass_id from edg_storage_cage_details " + |
| | | "where engineer_id = '" + glassInfo.getEngineerId() + "' and width = " + glassInfo.getWidth() + " and height = " + glassInfo.getHeight() |
| | | + " and state != 100") |
| | | "where engineer_id = '" + glassInfo.getEngineerId() + "' and width = " + glassInfo.getWidth() + " and height = " + glassInfo.getHeight()) |
| | | .orderByAsc(GlassInfo::getTemperingLayoutId) |
| | | .orderBy(Boolean.TRUE, sequenceOrder, GlassInfo::getTemperingFeedSequence) |
| | | .last("Limit 1"); |
| | |
| | | // 获取待出笼的玻璃需要替换的玻璃信息 |
| | | EdgStorageCageDetails swapGlassDetailInfo = edgStorageCageDetailsService.getOne(new LambdaQueryWrapper<EdgStorageCageDetails>() |
| | | .eq(EdgStorageCageDetails::getGlassId, swapGlassId).eq(EdgStorageCageDetails::getState, Const.GLASS_STATE_IN)); |
| | | |
| | | // 玻璃小片表中玻璃已经替换,更新卧理笼内现有的准备出笼的玻璃信息, |
| | | if (null == swapGlassDetailInfo) { |
| | | GlassInfo glassInfoBase = glassInfoService.getOne(new LambdaQueryWrapper<GlassInfo>() |
| | | .eq(GlassInfo::getGlassId, swapGlassId)); |
| | | //需要替换的玻璃为存进卧理,仅需更新当前需要出笼的玻璃信息即可 |
| | | edgStorageCageDetailsService.update(new LambdaUpdateWrapper<EdgStorageCageDetails>() |
| | | .eq(EdgStorageCageDetails::getGlassId, glassId) |
| | | .set(EdgStorageCageDetails::getTemperingLayoutId, glassInfoBase.getTemperingLayoutId()) |
| | | .set(EdgStorageCageDetails::getTemperingFeedSequence, glassInfoBase.getTemperingFeedSequence())); |
| | | .eq(EdgStorageCageDetails::getGlassId, glassId).set(EdgStorageCageDetails::getGlassId, swapGlassId)); |
| | | } else { |
| | | //需要替换的玻璃都在卧理内,按照玻璃id对调玻璃信息:对调玻璃id即可 |
| | | edgStorageCageDetailsService.update(new LambdaUpdateWrapper<EdgStorageCageDetails>() |
| | | .eq(EdgStorageCageDetails::getId, glassInfo.getId()) |
| | | .set(EdgStorageCageDetails::getTemperingLayoutId, swapGlassDetailInfo.getTemperingLayoutId()) |
| | | .set(EdgStorageCageDetails::getTemperingFeedSequence, swapGlassDetailInfo.getTemperingFeedSequence()) |
| | | ); |
| | | .eq(EdgStorageCageDetails::getId, glassInfo.getId()).set(EdgStorageCageDetails::getGlassId, swapGlassId)); |
| | | edgStorageCageDetailsService.update(new LambdaUpdateWrapper<EdgStorageCageDetails>() |
| | | .eq(EdgStorageCageDetails::getId, swapGlassDetailInfo.getId()) |
| | | .set(EdgStorageCageDetails::getTemperingLayoutId, glassInfo.getTemperingLayoutId()) |
| | | .set(EdgStorageCageDetails::getTemperingFeedSequence, glassInfo.getTemperingFeedSequence()) |
| | | ); |
| | | .eq(EdgStorageCageDetails::getId, swapGlassDetailInfo.getId()).set(EdgStorageCageDetails::getGlassId, glassId)); |
| | | } |
| | | } |
| | | |
| | |
| | | } |
| | | } |
| | | } |
| | | return saveOutGlassMessageBySlot(glassInfo, endcell, confirmationWrodAddress, glassId, currentSlot); |
| | | return saveOutGlassMessage(glassInfo, endcell, confirmationWrodAddress, glassId, currentSlot); |
| | | } |
| | | |
| | | /** |
| | |
| | | log.info("4、添加出片任务,玻璃id:{},任务类型:{},起始位置:{},结束位置:{}", glassInfo.getGlassId(), |
| | | 2, glassInfo.getSlot(), endcell); |
| | | if (glassInfo.getGlassId().equals(glassId)) { |
| | | |
| | | log.info("5、直通任务,将玻璃信息插入卧式理片笼,当前玻璃信息:{}", glassInfo); |
| | | EdgStorageCageDetails details = new EdgStorageCageDetails(); |
| | | BeanUtils.copyProperties(glassInfo, details); |
| | |
| | | BeanUtils.copyProperties(glassInfo, details); |
| | | } else { |
| | | GlassInfo one = glassInfoService.getOne(new LambdaQueryWrapper<GlassInfo>().eq(GlassInfo::getGlassId, glassId)); |
| | | BeanUtils.copyProperties(one, details); |
| | | BeanUtils.copyProperties(glassInfo, details); |
| | | } |
| | | EdgStorageCage nearestEmpty = edgStorageCageService.selectNearestEmpty(currentSlot, Boolean.TRUE); |
| | | Assert.isTrue(null != nearestEmpty, "格子已满,无法执行直通任务"); |
| | |
| | | log.info("6、添加出片任务是否完成:{}", taskCacheStatus); |
| | | } else { |
| | | log.info("5、非直通任务,将玻璃信息插入卧式理片笼,当前玻璃信息:{}", glassInfo); |
| | | if (!glassInfo.getSlot().equals(currentSlot)) { |
| | | if (endcell != currentSlot) { |
| | | EdgStorageCageDetails currentGlass = edgStorageCageDetailsService.getOne(new LambdaQueryWrapper<EdgStorageCageDetails>() |
| | | .eq(EdgStorageCageDetails::getState, Const.GLASS_STATE_IN) |
| | | .eq(EdgStorageCageDetails::getSlot, currentSlot).eq(EdgStorageCageDetails::getWidth, glassInfo.getWidth()) |
| | |
| | | ); |
| | | if (null != currentGlass) { |
| | | glassInfo = currentGlass; |
| | | endcell = currentSlot; |
| | | } |
| | | } |
| | | //玻璃信息替换 |
| | |
| | | } |
| | | return Boolean.FALSE; |
| | | } |
| | | |
| | | |
| | | /** |
| | | * 添加理片笼任务 |
| | |
| | | mes: |
| | | threshold: 3 |
| | | ratio: 10 |
| | | cache: # 卧式理片最大尺寸 |
| | | cache: # 卧式理片最大尺寸 |
| | | cacheWidth: 4000 |
| | | cacheHeight: 3000 |
| | | max: # 第二条线的最大尺寸信息 |
| | |
| | | secondLength: 400 |
| | | sequence: |
| | | order: false |
| | | kangaroohy: |
| | | milo: |
| | | enabled: false |
| | | primary: default |
| | | config: |
| | | default: |
| | | endpoint: opc.tcp://127.0.0.1:49320 |
| | | security-policy: basic256sha256 |
| | | username: zsh |
| | | password: 1qaz2wsx3edc4rfv |
| | | |
| | |
| | | import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; |
| | | import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; |
| | | import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper; |
| | | import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper; |
| | | import com.mes.bigstorage.entity.BigStorageCageDetails; |
| | | import com.mes.bigstorage.service.BigStorageCageDetailsService; |
| | | import com.mes.bigstorage.service.BigStorageCageService; |
| | |
| | | @ApiOperation("指定钢化") |
| | | @PostMapping("/TemperingGlass") |
| | | public Result temperingGlass(@RequestBody BigStorageCageDetails bigStorageCageDetails) { |
| | | boolean result = bigStorageCageDetailsService |
| | | .temperingGlass(bigStorageCageDetails.getTemperingLayoutId().toString(), bigStorageCageDetails.getEngineerId(), bigStorageCageDetails.getTemperingFeedSequence().toString()); |
| | | boolean result = bigStorageCageDetailsService.temperingGlass(bigStorageCageDetails.getTemperingLayoutId().toString(), bigStorageCageDetails.getEngineerId()); |
| | | if (result == true) { |
| | | return Result.build(200, "指定钢化成功", 1); |
| | | } else { |
| | |
| | | */ |
| | | List<SlotSequenceDTO> queryGlassMaxAndMin(String engineerId, Integer temperingLayoutId); |
| | | |
| | | boolean temperingGlass(String temperingLayoutId, String engineerId, String temperingFeedSequence); |
| | | boolean temperingGlass(String temperingLayoutId, String engineerId); |
| | | |
| | | List<Map<String, Object>> selectTemperingGlass(); |
| | | |
| | |
| | | |
| | | import cn.hutool.core.lang.Assert; |
| | | import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; |
| | | import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; |
| | | import com.baomidou.mybatisplus.core.toolkit.CollectionUtils; |
| | | import com.github.yulichang.base.MPJBaseServiceImpl; |
| | | import com.github.yulichang.toolkit.JoinWrappers; |
| | |
| | | import com.mes.glassinfo.entity.GlassInfo; |
| | | import com.mes.glassinfo.mapper.GlassInfoMapper; |
| | | import com.mes.glassinfo.service.GlassInfoService; |
| | | import com.mes.job.PlcStorageCageTask; |
| | | import com.mes.temperingglass.entity.TemperingGlassInfo; |
| | | import com.mes.temperingglass.mapper.TemperingGlassInfoMapper; |
| | | import com.mes.temperingglass.service.TemperingGlassInfoService; |
| | |
| | | |
| | | @Resource |
| | | private TemperingGlassInfoService temperingGlassInfoService; |
| | | |
| | | @Resource |
| | | private PlcStorageCageTask plcStorageCageTask; |
| | | |
| | | @Resource |
| | | private DamageService damageService; |
| | |
| | | LambdaQueryWrapper<BigStorageCageDetails> bigStorageCageDetailsWrapper = new LambdaQueryWrapper<>(); |
| | | bigStorageCageDetailsWrapper |
| | | .eq(BigStorageCageDetails::getGlassId, glassId) |
| | | .eq(BigStorageCageDetails::getState, Const.GLASS_STATE_IN); |
| | | .eq(BigStorageCageDetails::getState,Const.GLASS_STATE_IN); |
| | | BigStorageCageDetails bigStorageCageDetails = baseMapper.selectOne(bigStorageCageDetailsWrapper); |
| | | |
| | | if (temperingGlassInfo != null) { |
| | |
| | | @Override |
| | | public List<BigStorageCageDetails> selectBigStorageCageDetails(String glassId) { |
| | | LambdaQueryWrapper<GlassInfo> glassInfoWrapper = new LambdaQueryWrapper<>(); |
| | | List<BigStorageCageDetails> bigStorageCageDetailsList = new ArrayList<>(); |
| | | List<BigStorageCageDetails> bigStorageCageDetailsList=new ArrayList<>(); |
| | | glassInfoWrapper.eq(GlassInfo::getGlassId, glassId); |
| | | GlassInfo glassInfo = glassInfoMapper.selectOne(glassInfoWrapper); |
| | | BigStorageCageDetails bigStorageCageDetails = new BigStorageCageDetails(); |
| | |
| | | .gt(BigStorageCage::getRemainWidth, Math.max(glassInfo.getWidth(), glassInfo.getHeight())) |
| | | .last("limit 1"); |
| | | if (glassInfo.getTemperingLayoutId() == 0) { |
| | | wrapper.eq(BigStorageCageDetails::getFlowCardId, glassInfo.getFlowCardId()) |
| | | .eq(BigStorageCageDetails::getLayer, glassInfo.getLayer()); |
| | | wrapper.eq(BigStorageCageDetails::getFlowCardId,glassInfo.getFlowCardId()) |
| | | .eq(BigStorageCageDetails::getLayer,glassInfo.getLayer()); |
| | | // wrapper.eq(BigStorageCageDetails::getWidth, glassInfo.getWidth()).eq(BigStorageCageDetails::getHeight, glassInfo.getHeight()); |
| | | } else { |
| | | wrapper.eq(BigStorageCageDetails::getTemperingFeedSequence, glassInfo.getTemperingFeedSequence() + 1); |
| | |
| | | } |
| | | |
| | | @Override |
| | | public boolean temperingGlass(String temperingLayoutId, String engineerId, String temperingFeedSequence) { |
| | | public boolean temperingGlass(String temperingLayoutId, String engineerId) { |
| | | LambdaQueryWrapper<TemperingGlassInfo> temperingGlassInfoLambdaQueryWrapper = new LambdaQueryWrapper<>(); |
| | | temperingGlassInfoLambdaQueryWrapper |
| | | .eq(TemperingGlassInfo::getState, Const.TEMPERING_NEW); |
| | |
| | | .in(BigStorageCageDetails::getState, Const.GLASS_STATE_IN) |
| | | .orderBy(Boolean.TRUE, sequenceOrder, GlassInfo::getTemperingFeedSequence)); |
| | | if (CollectionUtils.isNotEmpty(temperingGlassInfos)) { |
| | | if ("0".equals(temperingFeedSequence)) { |
| | | if (CollectionUtils.isNotEmpty(temperingGlassInfos)) { |
| | | plcStorageCageTask.computeOutMoreGlassInfo(temperingGlassInfos, Boolean.FALSE, ""); |
| | | } |
| | | } else { |
| | | temperingGlassInfoService.saveBatch(temperingGlassInfos); |
| | | } |
| | | temperingGlassInfoService.saveBatch(temperingGlassInfos); |
| | | return true; |
| | | } |
| | | } |
| | |
| | | } |
| | | |
| | | @Override |
| | | public void appointEngineerId(String engineerId) { |
| | | public void appointEngineerId(String engineerId){ |
| | | redisUtil.setCacheObject("temperingengineerId", engineerId); |
| | | } |
| | | } |
| | |
| | | |
| | | import cn.hutool.json.JSONArray; |
| | | import cn.hutool.json.JSONObject; |
| | | import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; |
| | | import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; |
| | | import com.fasterxml.jackson.databind.ObjectMapper; |
| | | import com.mes.bigstorage.entity.BigStorageCage; |
| | | import com.mes.bigstorage.service.BigStorageCageDetailsService; |
| | | import com.mes.bigstorage.service.BigStorageCageService; |
| | | import com.mes.bigstoragetask.mapper.BigStorageCageFeedTaskMapper; |
| | | import com.mes.common.config.Const; |
| | | import com.mes.damage.entity.Damage; |
| | | import com.mes.damage.service.DamageService; |
| | |
| | | import com.mes.job.PlcStorageCageTask; |
| | | import com.mes.pp.entity.ReportingWork; |
| | | import com.mes.pp.entity.ReportingWorkDetail; |
| | | import com.mes.temperingglass.entity.TemperingGlassInfo; |
| | | import lombok.extern.slf4j.Slf4j; |
| | | import org.junit.Test; |
| | | import org.junit.runner.RunWith; |
| | |
| | | import java.net.URL; |
| | | import java.time.LocalDateTime; |
| | | import java.time.format.DateTimeFormatter; |
| | | import java.util.ArrayList; |
| | | import java.util.Arrays; |
| | | import java.util.List; |
| | | import java.util.*; |
| | | |
| | | /** |
| | | * @Author : zhoush |
| | |
| | | Damage damage=new Damage(); |
| | | damage.setGlassId("P24060403|3|6"); |
| | | damage.setLine(2001); |
| | | damage.setWorkingProcedure("磨边"); |
| | | damage.setWorkingProcedure("冷加工"); |
| | | damage.setRemark(""); |
| | | damage.setStatus(2); |
| | | damageService.insertDamage(damage); |
| | |
| | | |
| | | import cn.hutool.core.collection.CollectionUtil; |
| | | import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; |
| | | import com.kangaroohy.milo.model.ReadWriteEntity; |
| | | import com.kangaroohy.milo.service.MiloService; |
| | | import com.mes.common.config.Const; |
| | | import com.mes.engineering.entity.Engineering; |
| | | import com.mes.engineering.mapper.EngineeringMapper; |
| | | import com.mes.milo.model.ReadWriteEntity; |
| | | import com.mes.milo.service.MiloService; |
| | | import com.mes.rawglassdetails.entity.RawGlassStorageDetails; |
| | | import com.mes.rawglassdetails.service.RawGlassStorageDetailsService; |
| | | import com.mes.rawglassstation.entity.RawGlassStorageStation; |
| | |
| | | mybatis-plus: |
| | | mapper-locations: classpath*:mapper/*.xml |
| | | configuration: |
| | | log-impl: org.apache.ibatis.logging.stdout.StdOutImpl |
| | | kangaroohy: |
| | | log-impl: org.apache.ibatis.logging.stdout.StdOutImplkangaroohy: |
| | | milo: |
| | | enabled: false |
| | |
| | | damage.setLine(Const.TEMPERING_OUT_TARGET_POSITION); |
| | | damage.setWorkingProcedure("钢化"); |
| | | damage.setRemark("钢化"); |
| | | damage.setStatus(1); |
| | | damage.setStatus(0); |
| | | damage.setType(e.getState()); |
| | | return damage; |
| | | }).collect(Collectors.toList()); |
| | |
| | | primary: default |
| | | config: |
| | | default: |
| | | endpoint: opc.tcp://10.153.19.150:49320 |
| | | endpoint: opc.tcp://zidonghua:49320 |
| | | security-policy: basic256sha256 |
| | | username: admin |
| | | username: zsh |
| | | password: 1qaz2wsx3edc4rfv |
| | |
| | | package com.mes.downglassinfo.service.impl; |
| | | |
| | | import cn.smallbun.screw.core.util.CollectionUtils; |
| | | import com.alibaba.fastjson.JSONObject; |
| | | import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; |
| | | import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; |
| | |
| | | import com.mes.downworkstation.entity.dto.DownGlassInfoDTO; |
| | | import com.mes.downworkstation.service.DownWorkstationService; |
| | | import com.mes.glassinfo.entity.GlassInfo; |
| | | import com.mes.glassinfo.service.GlassInfoService; |
| | | import com.mes.job.DownLoadCacheGlassTask; |
| | | import com.mes.pp.service.FlowCardService; |
| | | import lombok.extern.slf4j.Slf4j; |
| | |
| | | import java.util.HashMap; |
| | | import java.util.List; |
| | | import java.util.Map; |
| | | import java.util.stream.Collectors; |
| | | |
| | | @Slf4j |
| | | @Service |
| | |
| | | |
| | | @Autowired |
| | | FlowCardService flowCardService; |
| | | |
| | | @Autowired |
| | | GlassInfoService glassInfoService; |
| | | |
| | | /** |
| | | * 根据流程卡号查询最大序号 |
| | |
| | | |
| | | @Override |
| | | public List<Map<String, Object>> downGlassLabelPrint(DownGlassInfo downGlassInfo) { |
| | | List<Map<String, Object>> resultList = null; |
| | | if (downGlassInfo.getGlassId() != null) { |
| | | resultList = glassInfoService.listMaps( |
| | | new LambdaQueryWrapper<GlassInfo>() |
| | | .eq(GlassInfo::getGlassId, downGlassInfo.getGlassId()) |
| | | ); |
| | | } else { |
| | | resultList = baseMapper.downGlassLabelPrint(downGlassInfo.getFlowCardId(), downGlassInfo.getLayer()); |
| | | } |
| | | |
| | | List<Map<String, Object>> resultList = baseMapper.downGlassLabelPrint(downGlassInfo.getFlowCardId(), downGlassInfo.getLayer()); |
| | | log.info("MES落架数据:{}", resultList); |
| | | //获取ERP标签所需的信息 |
| | | List<Map<String, Object>> labelInfo; |
| | |
| | | import org.springframework.beans.BeanUtils; |
| | | import org.springframework.beans.factory.annotation.Autowired; |
| | | import org.springframework.beans.factory.annotation.Value; |
| | | import org.springframework.scheduling.annotation.Async; |
| | | import org.springframework.scheduling.annotation.Scheduled; |
| | | import org.springframework.stereotype.Component; |
| | | |
| | |
| | | String confirmationWrodValue = plcParameterObject.getPlcParameter("confirmationWord").getValue(); |
| | | String confirmationWrodAddress = plcParameterObject.getPlcParameter("confirmationWord").getAddress(); |
| | | String currentSlot = plcParameterObject.getPlcParameter("currentCell").getValue(); |
| | | |
| | | |
| | | log.info("1、获取到的请求字为:{},获取到的扫描ID为:{},获取到的确认字为:{},获取到的出片状态分别为:g06:{}、g08:{}、g11:{}、g13:{},当前格子号为:{}", |
| | | requestWord, glassIdeValue, confirmationWrodValue, out06Glassstate, out08Glassstate, out11Glassstate, out13Glassstate, currentSlot); |
| | |
| | | Damage damage = new Damage(); |
| | | damage.setGlassId(e.getGlassId()); |
| | | damage.setLine(Const.TEMPERING_OUT_TARGET_POSITION); |
| | | damage.setWorkingProcedure("钢化"); |
| | | damage.setWorkingProcedure("下片"); |
| | | damage.setRemark("下片"); |
| | | damage.setStatus(1); |
| | | damage.setStatus(0); |
| | | damage.setType(e.getTaskStatus()); |
| | | return damage; |
| | | }).collect(Collectors.toList()); |
New file |
| | |
| | | <?xml version="1.0" encoding="UTF-8"?> |
| | | <project xmlns="http://maven.apache.org/POM/4.0.0" |
| | | xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" |
| | | xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> |
| | | <modelVersion>4.0.0</modelVersion> |
| | | |
| | | <groupId>groupId</groupId> |
| | | <artifactId>HangZhouMes</artifactId> |
| | | <version>1.0-SNAPSHOT</version> |
| | | |
| | | |
| | | </project> |