chejianbaogong.vue 141 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041051061071081091101111121131141151161171181191201211221231241251261271281291301311321331341351361371381391401411421431441451461471481491501511521531541551561571581591601611621631641651661671681691701711721731741751761771781791801811821831841851861871881891901911921931941951961971981992002012022032042052062072082092102112122132142152162172182192202212222232242252262272282292302312322332342352362372382392402412422432442452462472482492502512522532542552562572582592602612622632642652662672682692702712722732742752762772782792802812822832842852862872882892902912922932942952962972982993003013023033043053063073083093103113123133143153163173183193203213223233243253263273283293303313323333343353363373383393403413423433443453463473483493503513523533543553563573583593603613623633643653663673683693703713723733743753763773783793803813823833843853863873883893903913923933943953963973983994004014024034044054064074084094104114124134144154164174184194204214224234244254264274284294304314324334344354364374384394404414424434444454464474484494504514524534544554564574584594604614624634644654664674684694704714724734744754764774784794804814824834844854864874884894904914924934944954964974984995005015025035045055065075085095105115125135145155165175185195205215225235245255265275285295305315325335345355365375385395405415425435445455465475485495505515525535545555565575585595605615625635645655665675685695705715725735745755765775785795805815825835845855865875885895905915925935945955965975985996006016026036046056066076086096106116126136146156166176186196206216226236246256266276286296306316326336346356366376386396406416426436446456466476486496506516526536546556566576586596606616626636646656666676686696706716726736746756766776786796806816826836846856866876886896906916926936946956966976986997007017027037047057067077087097107117127137147157167177187197207217227237247257267277287297307317327337347357367377387397407417427437447457467477487497507517527537547557567577587597607617627637647657667677687697707717727737747757767777787797807817827837847857867877887897907917927937947957967977987998008018028038048058068078088098108118128138148158168178188198208218228238248258268278288298308318328338348358368378388398408418428438448458468478488498508518528538548558568578588598608618628638648658668678688698708718728738748758768778788798808818828838848858868878888898908918928938948958968978988999009019029039049059069079089099109119129139149159169179189199209219229239249259269279289299309319329339349359369379389399409419429439449459469479489499509519529539549559569579589599609619629639649659669679689699709719729739749759769779789799809819829839849859869879889899909919929939949959969979989991000100110021003100410051006100710081009101010111012101310141015101610171018101910201021102210231024102510261027102810291030103110321033103410351036103710381039104010411042104310441045104610471048104910501051105210531054105510561057105810591060106110621063106410651066106710681069107010711072107310741075107610771078107910801081108210831084108510861087108810891090109110921093109410951096109710981099110011011102110311041105110611071108110911101111111211131114111511161117111811191120112111221123112411251126112711281129113011311132113311341135113611371138113911401141114211431144114511461147114811491150115111521153115411551156115711581159116011611162116311641165116611671168116911701171117211731174117511761177117811791180118111821183118411851186118711881189119011911192119311941195119611971198119912001201120212031204120512061207120812091210121112121213121412151216121712181219122012211222122312241225122612271228122912301231123212331234123512361237123812391240124112421243124412451246124712481249125012511252125312541255125612571258125912601261126212631264126512661267126812691270127112721273127412751276127712781279128012811282128312841285128612871288128912901291129212931294129512961297129812991300130113021303130413051306130713081309131013111312131313141315131613171318131913201321132213231324132513261327132813291330133113321333133413351336133713381339134013411342134313441345134613471348134913501351135213531354135513561357135813591360136113621363136413651366136713681369137013711372137313741375137613771378137913801381138213831384138513861387138813891390139113921393139413951396139713981399140014011402140314041405140614071408140914101411141214131414141514161417141814191420142114221423142414251426142714281429143014311432143314341435143614371438143914401441144214431444144514461447144814491450145114521453145414551456145714581459146014611462146314641465146614671468146914701471147214731474147514761477147814791480148114821483148414851486148714881489149014911492149314941495149614971498149915001501150215031504150515061507150815091510151115121513151415151516151715181519152015211522152315241525152615271528152915301531153215331534153515361537153815391540154115421543154415451546154715481549155015511552155315541555155615571558155915601561156215631564156515661567156815691570157115721573157415751576157715781579158015811582158315841585158615871588158915901591159215931594159515961597159815991600160116021603160416051606160716081609161016111612161316141615161616171618161916201621162216231624162516261627162816291630163116321633163416351636163716381639164016411642164316441645164616471648164916501651165216531654165516561657165816591660166116621663166416651666166716681669167016711672167316741675167616771678167916801681168216831684168516861687168816891690169116921693169416951696169716981699170017011702170317041705170617071708170917101711171217131714171517161717171817191720172117221723172417251726172717281729173017311732173317341735173617371738173917401741174217431744174517461747174817491750175117521753175417551756175717581759176017611762176317641765176617671768176917701771177217731774177517761777177817791780178117821783178417851786178717881789179017911792179317941795179617971798179918001801180218031804180518061807180818091810181118121813181418151816181718181819182018211822182318241825182618271828182918301831183218331834183518361837183818391840184118421843184418451846184718481849185018511852185318541855185618571858185918601861186218631864186518661867186818691870187118721873187418751876187718781879188018811882188318841885188618871888188918901891189218931894189518961897189818991900190119021903190419051906190719081909191019111912191319141915191619171918191919201921192219231924192519261927192819291930193119321933193419351936193719381939194019411942194319441945194619471948194919501951195219531954195519561957195819591960196119621963196419651966196719681969197019711972197319741975197619771978197919801981198219831984198519861987198819891990199119921993199419951996199719981999200020012002200320042005200620072008200920102011201220132014201520162017201820192020202120222023202420252026202720282029203020312032203320342035203620372038203920402041204220432044204520462047204820492050205120522053205420552056205720582059206020612062206320642065206620672068206920702071207220732074207520762077207820792080208120822083208420852086208720882089209020912092209320942095209620972098209921002101210221032104210521062107210821092110211121122113211421152116211721182119212021212122212321242125212621272128212921302131213221332134213521362137213821392140214121422143214421452146214721482149215021512152215321542155215621572158215921602161216221632164216521662167216821692170217121722173217421752176217721782179218021812182218321842185218621872188218921902191219221932194219521962197219821992200220122022203220422052206220722082209221022112212221322142215221622172218221922202221222222232224222522262227222822292230223122322233223422352236223722382239224022412242224322442245224622472248224922502251225222532254225522562257225822592260226122622263226422652266226722682269227022712272227322742275227622772278227922802281228222832284228522862287228822892290229122922293229422952296229722982299230023012302230323042305230623072308230923102311231223132314231523162317231823192320232123222323232423252326232723282329233023312332233323342335233623372338233923402341234223432344234523462347234823492350235123522353235423552356235723582359236023612362236323642365236623672368236923702371237223732374237523762377237823792380238123822383238423852386238723882389239023912392239323942395239623972398239924002401240224032404240524062407240824092410241124122413241424152416241724182419242024212422242324242425242624272428242924302431243224332434243524362437243824392440244124422443244424452446244724482449245024512452245324542455245624572458245924602461246224632464246524662467246824692470247124722473247424752476247724782479248024812482248324842485248624872488248924902491249224932494249524962497249824992500250125022503250425052506250725082509251025112512251325142515251625172518251925202521252225232524252525262527252825292530253125322533253425352536253725382539254025412542254325442545254625472548254925502551255225532554255525562557255825592560256125622563256425652566256725682569257025712572257325742575257625772578257925802581258225832584258525862587258825892590259125922593259425952596259725982599260026012602260326042605260626072608260926102611261226132614261526162617261826192620262126222623262426252626262726282629263026312632263326342635263626372638263926402641264226432644264526462647264826492650265126522653265426552656265726582659266026612662266326642665266626672668266926702671267226732674267526762677267826792680268126822683268426852686268726882689269026912692269326942695269626972698269927002701270227032704270527062707270827092710271127122713271427152716271727182719272027212722272327242725272627272728272927302731273227332734273527362737273827392740274127422743274427452746274727482749275027512752275327542755275627572758275927602761276227632764276527662767276827692770277127722773277427752776277727782779278027812782278327842785278627872788278927902791279227932794279527962797279827992800280128022803280428052806280728082809281028112812281328142815281628172818281928202821282228232824282528262827282828292830283128322833283428352836283728382839284028412842284328442845284628472848284928502851285228532854285528562857285828592860286128622863286428652866286728682869287028712872287328742875287628772878287928802881288228832884288528862887288828892890289128922893289428952896289728982899290029012902290329042905290629072908290929102911291229132914291529162917291829192920292129222923292429252926292729282929293029312932293329342935293629372938293929402941294229432944294529462947294829492950295129522953295429552956295729582959296029612962296329642965296629672968296929702971297229732974297529762977297829792980298129822983298429852986298729882989299029912992299329942995299629972998299930003001300230033004300530063007300830093010301130123013301430153016301730183019302030213022302330243025302630273028302930303031303230333034303530363037303830393040304130423043304430453046304730483049305030513052305330543055305630573058305930603061306230633064306530663067306830693070307130723073307430753076307730783079308030813082308330843085308630873088308930903091309230933094309530963097309830993100310131023103310431053106310731083109311031113112311331143115311631173118311931203121312231233124312531263127312831293130313131323133313431353136313731383139314031413142314331443145314631473148314931503151315231533154315531563157315831593160316131623163316431653166316731683169317031713172317331743175317631773178317931803181318231833184318531863187318831893190319131923193319431953196319731983199320032013202320332043205320632073208320932103211321232133214321532163217321832193220322132223223322432253226322732283229323032313232323332343235323632373238323932403241324232433244324532463247324832493250325132523253325432553256325732583259326032613262326332643265326632673268326932703271327232733274327532763277327832793280328132823283328432853286328732883289329032913292329332943295329632973298329933003301330233033304330533063307330833093310331133123313331433153316331733183319332033213322332333243325332633273328332933303331333233333334333533363337333833393340334133423343334433453346334733483349335033513352335333543355335633573358335933603361336233633364336533663367336833693370337133723373337433753376337733783379338033813382338333843385338633873388338933903391339233933394339533963397339833993400340134023403340434053406340734083409341034113412341334143415341634173418341934203421342234233424342534263427342834293430343134323433343434353436343734383439344034413442344334443445344634473448344934503451345234533454345534563457345834593460346134623463346434653466346734683469347034713472347334743475347634773478347934803481348234833484348534863487348834893490349134923493349434953496349734983499350035013502350335043505350635073508350935103511351235133514351535163517351835193520352135223523352435253526352735283529353035313532353335343535353635373538353935403541354235433544354535463547354835493550355135523553355435553556355735583559356035613562356335643565356635673568356935703571357235733574357535763577357835793580358135823583358435853586358735883589359035913592359335943595359635973598359936003601360236033604360536063607360836093610361136123613361436153616361736183619362036213622362336243625362636273628362936303631363236333634363536363637363836393640364136423643364436453646364736483649365036513652365336543655365636573658365936603661366236633664366536663667366836693670367136723673367436753676367736783679368036813682368336843685368636873688368936903691369236933694369536963697369836993700370137023703370437053706370737083709371037113712371337143715371637173718371937203721372237233724372537263727372837293730373137323733373437353736373737383739374037413742374337443745374637473748374937503751375237533754375537563757375837593760376137623763376437653766376737683769377037713772377337743775377637773778377937803781378237833784378537863787378837893790379137923793379437953796379737983799380038013802380338043805380638073808380938103811381238133814381538163817381838193820382138223823382438253826382738283829383038313832383338343835383638373838383938403841384238433844384538463847384838493850385138523853385438553856385738583859386038613862386338643865386638673868386938703871387238733874387538763877387838793880388138823883388438853886388738883889389038913892389338943895389638973898389939003901390239033904390539063907390839093910391139123913391439153916391739183919392039213922392339243925392639273928392939303931393239333934393539363937393839393940394139423943394439453946394739483949395039513952395339543955395639573958
  1. <template>
  2. <div>
  3. <header>
  4. <div style="height: 50px;">
  5. <el-button type="primary" size="large" @click="onBZ" >班组维护</el-button>
  6. <el-button type="primary" size="large" @click="onchanliang" v-if="zdtreeType === true" >日产量上报</el-button>
  7. <el-button type="primary" size="large" @click="onOver" >完工</el-button>
  8. <el-button type="primary" size="large" @click="onzhicheng" >制程检验</el-button>
  9. <el-button type="primary" size="large" @click="ondianjian" >设备点检</el-button>
  10. <el-button type="primary" size="large" @click="onxuncha" >管理巡查</el-button>
  11. <el-button type="primary" size="large" @click="onstatus" >设置机台状态</el-button>
  12. <el-button type="primary" size="large" @click="onyinban">印版领退</el-button>
  13. <el-button type="primary" size="large" @click="onClear" >换型清场</el-button>
  14. <el-button type="primary" size="large" @click="oncomplaints" >客诉记录</el-button>
  15. </div>
  16. </header>
  17. <el-container>
  18. <!-- <el-aside width="200px">
  19. <div class="JKWTree-tree">
  20. <h3 > 车间报工</h3>
  21. <el-tree :data="treeData" :props="defaultProps" :default-expand-all="true" @node-click="handleNodeClick"></el-tree>
  22. </div>
  23. </el-aside> -->
  24. <el-container>
  25. <!-- <el-header>dd</el-header>-->
  26. <el-main>
  27. <div class="gva-search-box" style="overflow: hidden; padding: 0; display: flex;">
  28. <div style="flex: 1; border: 0px magenta solid; margin: 0; padding: 0; margin-left: 20px; margin-top: 20px;">
  29. <el-form-item label="工单编号" prop="name">
  30. <el-row :gutter="24">
  31. <el-col :span="6">
  32. <el-input v-model="formData.工单编号" placeholder="" />
  33. </el-col>
  34. <el-col :span="18">
  35. <el-input v-model="formData.产品名称" placeholder="" />
  36. </el-col>
  37. </el-row>
  38. </el-form-item>
  39. <el-row :gutter="20">
  40. <el-col :span="6">
  41. <el-form-item label="印件编号" prop="id">
  42. <el-input v-model="formData.印件号" placeholder="" />
  43. </el-form-item>
  44. </el-col>
  45. <el-col :span="18">
  46. <el-form-item label="工序名称" prop="name">
  47. <el-input v-model="formData.工序名称" placeholder="" />
  48. </el-form-item>
  49. </el-col>
  50. </el-row>
  51. <el-row :gutter="20">
  52. <el-col :span="4">
  53. <el-form-item label="班组成员" prop="id">
  54. </el-form-item>
  55. </el-col>
  56. </el-row>
  57. <el-row :gutter="1">
  58. <!-- 循环生成 el-input 组件 -->
  59. <el-col v-for="i in 6" :span="4" :key="i">
  60. <el-input v-model="formData[`sczl_bh${i}`]" placeholder="" />
  61. </el-col>
  62. </el-row>
  63. <el-row :gutter="1">
  64. <!-- 循环生成 el-input 组件 -->
  65. <el-col v-for="i in 6" :span="4" :key="i">
  66. <el-input v-model="formData[`sczl_name${i}`]" placeholder="" />
  67. </el-col>
  68. </el-row>
  69. </div>
  70. <div style="flex: 1; border: 0px lawngreen solid; margin: 0; padding: 0; overflow: hidden;">
  71. <el-table
  72. tooltip-effect="dark"
  73. :data="selectData"
  74. row-key="ID"
  75. highlight-current-row="true"
  76. border
  77. :row-style="{ height: '20px' }"
  78. :cell-style="{ padding: '0px' }" :header-row-style="{ height: '20px' }"
  79. style="width:100%;height: 30vh;"
  80. @row-dblclick="handleSelectClick"
  81. >
  82. <el-table-column
  83. prop="process"
  84. label="印件及工序"
  85. width="480"
  86. />
  87. <el-table-column
  88. prop="completed"
  89. label="已完成板数"
  90. width="100"
  91. />
  92. </el-table>
  93. </div>
  94. </div>
  95. <div class="gva-table-box">
  96. <el-tabs v-model="activName" type="card" @tab-click="duohandleClick" >
  97. <el-tab-pane label="设备作业清单" @click="showTable('印件资料')" name="first">
  98. <!-- highlight-current-row="true"-->
  99. <el-table ref="multipleTable"
  100. :show-overflow-tooltip="true"
  101. :row-style="{ height: '20px' }"
  102. :cell-style="{ padding: '0px' }" :header-row-style="{ height: '20px' }"
  103. :header-cell-style="{ padding: '0px' }"
  104. @row-click="yjupdateCompanyFunc"
  105. :cell-class-name="sbzyqdplanUsageCellClass"
  106. style="width: 100%;height: 330px" border tooltip-effect="dark" :data="sbzyData" row-key="ID" @selection-change="handleSelectionChange">
  107. <!-- <el-table-column type="selection" width="55" />-->
  108. <el-table-column align="left" label="选择" prop="yj_yjno" width="80"/>
  109. <el-table-column align="left" label="工单编号|质量信息" prop="工单编号|质量信息" width="180" />
  110. <el-table-column align="left" label="印件资料" prop="印件资料" width="240" />
  111. <el-table-column align="left" label="工序名称" prop="工序名称" width="100" />
  112. <el-table-column align="left" label="计划产量/已完成" prop="计划产量/已完成" width="180"/>
  113. <el-table-column align="left" label="装版时数" prop="装版时数" width="100"/>
  114. <el-table-column align="left" label="工序产能" prop="工序产能" width="100"/>
  115. <el-table-column align="left" label="计划工时" prop="计划工时" width="100"/>
  116. <el-table-column align="left" label="计划生产时段" prop="计划生产时段" width="240" />
  117. <el-table-column align="left" label="排产备注" prop="排产备注" width="100" />
  118. <el-table-column align="left" label="产品名称" prop="产品名称" width="240" />
  119. </el-table>
  120. </el-tab-pane>
  121. <el-tab-pane label="班组人员及分配比例" @click="showTable('工艺资料')" name="second">
  122. <el-table ref="multipleTable"
  123. :show-overflow-tooltip="true"
  124. :row-style="{ height: '20px' }"
  125. :cell-style="{ padding: '0px' }" :header-row-style="{ height: '20px' }"
  126. :header-cell-style="{ padding: '0px' }"
  127. @row-dblclick="gyupdateCompanyFunc"
  128. :row-class-name="rowClassStyle"
  129. :cell-class-name="bzryplanUsageCellClass"
  130. style="width: 100%;height: 400px" border tooltip-effect="dark" :data="FPData" row-key="ID" @selection-change="handleSelectionChange"
  131. @row-click="clickybupdate">
  132. <el-table-column type="selection" label="选择" width="55" />
  133. <el-table-column align="left" label="班组号" prop="班组号" width="80" />
  134. <el-table-column align="left" label="组员1" prop="0" width="240" />
  135. <el-table-column align="left" label="组员2" prop="1" width="240" />
  136. <el-table-column align="left" label="组员3" prop="2" width="240" />
  137. <el-table-column align="left" label="组员4" prop="3" width="240" />
  138. <el-table-column align="left" label="组员5" prop="4" width="100" />
  139. <el-table-column align="left" label="组员6" prop="5" width="100" />
  140. <el-table-column align="left" label="组员7" prop="6" width="100" />
  141. <el-table-column align="left" label="组员8" prop="7" width="100" />
  142. <el-table-column align="left" label="组员9" prop="8" width="100" />
  143. <el-table-column align="left" label="组员10" prop="9_正品版" width="120" />
  144. </el-table>
  145. </el-tab-pane>
  146. <el-tab-pane label="当班产量明细" @click="showsTable('印版资料')" name="third">
  147. <el-table ref="multipleTable"
  148. highlight-current-row="true"
  149. :show-overflow-tooltip="true"
  150. :row-style="{ height: '20px' }"
  151. :cell-style="{ padding: '0px' }" :header-row-style="{ height: '20px' }"
  152. :header-cell-style="{ padding: '0px' }"
  153. @row-dblclick="ybupdateCompanyFunc"
  154. style="width: 100%;height: 400px" border tooltip-effect="dark" :data="CLMXData" row-key="ID" @selection-change="handleSelectionChange"
  155. >
  156. <!-- <el-table-column type="selection" width="55" />-->
  157. <el-table-column align="left" label="生产时段" prop="生产时间段" width="180"/>
  158. <el-table-column align="left" label="工单编号" prop="工单编号" width="120" />
  159. <el-table-column align="left" label="产品名称" prop="产品名称" width="240" />
  160. <el-table-column align="left" label="印件及工序" prop="印件及工序" width="320"/>
  161. <el-table-column align="left" label="标牌号" prop="标牌号" width="80"/>
  162. <el-table-column align="left" label="产量" prop="产量" width="100"/>
  163. <el-table-column align="left" label="制程废品" prop="制程废品" width="100" />
  164. <el-table-column align="left" label="制程次品" prop="制程次品" width="100" />
  165. <el-table-column align="left" label="前工序废" prop="前工序废" width="100" />
  166. <el-table-column align="left" label="来料异常" prop="来料异常" width="100"/>
  167. <el-table-column align="left" label="装版工时" prop="装版工时" width="100" />
  168. <el-table-column align="left" label="保养工时" prop="保养工时" width="100" />
  169. <el-table-column align="left" label="打样工时" prop="打样工时" width="100"/>
  170. <el-table-column align="left" label="异常停机工时" prop="异常停机工时" width="120"/>
  171. <el-table-column align="left" label="通电工时" prop="通电工时" width="100"/>
  172. <el-table-column align="left" label="码开始行" prop="码开始行" width="100" />
  173. <el-table-column align="left" label="码结束行" prop="码结束行" width="100" />
  174. <el-table-column align="left" label="码包" prop="码包" width="100" />
  175. <el-table-column align="left" label="主电表" prop="主电表" width="100"/>
  176. <el-table-column align="left" label="辅电表" prop="辅电表" width="100" />
  177. <el-table-column align="left" label="色度数" prop="色度数" width="100" />
  178. </el-table>
  179. </el-tab-pane>
  180. <el-tab-pane label="检验记录" @click="showTable('技术资料附件')" name="fourth">
  181. <el-table ref="multipleTable"
  182. :row-style="{ height: '20px' }"
  183. :cell-style="{ padding: '0px' }" :header-row-style="{ height: '20px' }"
  184. :header-cell-style="{ padding: '0px' }"
  185. :show-overflow-tooltip="true"
  186. highlight-current-row="true"
  187. style="width: 100%;height: 400px" border tooltip-effect="dark" :data="JYData" row-key="ID" @selection-change="handleSelectionChange">
  188. <!-- <el-table-column type="selection" width="55" />-->
  189. <el-table-column align="left" label="工单编号" prop="工单编号" width="120"/>
  190. <el-table-column align="left" label="印件号" prop="印件号" width="120" />
  191. <el-table-column align="left" label="工序名称" prop="工序名称" width="330" />
  192. <el-table-column align="left" label="检验项目" prop="检验项目" width="120"/>
  193. <el-table-column
  194. v-for="time in columnNames"
  195. :key="time"
  196. :label="time"
  197. :prop="time"
  198. align="center"
  199. width="120"
  200. ></el-table-column>
  201. </el-table>
  202. </el-tab-pane>
  203. </el-tabs>
  204. <!-- <div class="gva-pagination">
  205. <el-pagination
  206. layout="total, sizes, prev, pager, next, jumper"
  207. :current-page="page"
  208. :page-size="pageSize"
  209. :page-sizes="[10, 30, 50, 100]"
  210. :total="total"
  211. @current-change="handleCurrentChange"
  212. @size-change="handleSizeChange"
  213. />
  214. </div> -->
  215. </div>
  216. <el-dialog v-model="dialogFormVisible" :before-close="closeDialog" :title="type==='create'?'添加':'修改'" destroy-on-close>
  217. <el-tabs v-model="activeName" type="card" @tab-click="handleClick">
  218. <el-tab-pane label="当日上报产量" @click="showTable('工艺资料')" name="first">
  219. <el-table ref="multipleTable"
  220. :show-overflow-tooltip="true"
  221. :row-style="{ height: '20px' }"
  222. :cell-style="{ padding: '0px' }" :header-row-style="{ height: '20px' }"
  223. :header-cell-style="{ padding: '0px' }"
  224. highlight-current-row="true"
  225. style="width: 100%;height: 400px" border tooltip-effect="dark" :data="gytableData" row-key="ID" @selection-change="handleSelectionChange">
  226. <el-table-column type="selection" width="55" />
  227. <el-table-column align="left" label="选择" prop="工单编号" width="100"/>
  228. <el-table-column align="left" label="产品名称" prop="重点工序" width="100"/>
  229. <el-table-column align="left" label="工序" prop="工序备注" width="240"/>
  230. <el-table-column align="left" label="备注" prop="机组" width="100"/>
  231. <el-table-column align="left" label="产量" prop="小时产能" width="100"/>
  232. <el-table-column align="left" label="千件工价" prop="生产工时" width="100"/>
  233. <el-table-column align="left" label="日定额" prop="辅助工时" width="100"/>
  234. <el-table-column align="left" label="补产标准" prop="印刷方式" width="100"/>
  235. <el-table-column align="left" label="难度系数" prop="版距" width="100"/>
  236. <el-table-column align="left" label="印刷方式" prop="创建用户" width="120"/>
  237. <el-table-column align="left" label="组员1" prop="Gy0_gxh" width="240" />
  238. <el-table-column align="left" label="组员2" prop="gy0_gxmc" width="240" />
  239. <el-table-column align="left" label="组员3" prop="add_gxmc" width="240" />
  240. <el-table-column align="left" label="组员4" prop="Gy0_Ks" width="240" />
  241. <el-table-column align="left" label="组员5" prop="Gy0_ls" width="100" />
  242. <el-table-column align="left" label="组员6" prop="备注" width="100" />
  243. <el-table-column align="left" label="组员7" prop="工价系数" width="100" />
  244. <el-table-column align="left" label="组员8" prop="损耗系数" width="100" />
  245. <el-table-column align="left" label="组员9" prop="Gy0_Ms" width="100" />
  246. <el-table-column align="left" label="组员10" prop="人工检_正品版" width="120" />
  247. <el-table-column align="left" label="制程废品" prop="Sys_id" width="100" />
  248. <el-table-column align="left" label="制程次品" prop="建档日期" width="100" />
  249. <el-table-column align="left" label="前工序废" prop="更新日期" width="100" />
  250. <el-table-column align="left" label="来料异常" prop="YB_方案" width="100"/>
  251. <el-table-column align="left" label="装版工时" prop="YB_Yjno" width="100" />
  252. <el-table-column align="left" label="保养工时" prop="印版类别" width="100" />
  253. <el-table-column align="left" label="打样工时" prop="存货编码" width="100"/>
  254. <el-table-column align="left" label="异常停机工时" prop="印版名称" width="120"/>
  255. <el-table-column align="left" label="通电工时" prop="考核印数" width="100"/>
  256. <el-table-column align="left" label="码开始行" prop="Sys_id" width="100" />
  257. <el-table-column align="left" label="码结束行" prop="建档日期" width="100" />
  258. <el-table-column align="left" label="码包" prop="更新日期" width="100" />
  259. <el-table-column align="left" label="主电表" prop="YB_方案" width="100"/>
  260. <el-table-column align="left" label="辅电表" prop="YB_Yjno" width="100" />
  261. <el-table-column align="left" label="色度数" prop="印版类别" width="100" />
  262. <el-table-column align="left" label="用户" prop="YB_Yjno" width="100" />
  263. <el-table-column align="left" label="更新时间" prop="印版类别" width="100" />
  264. </el-table>
  265. </el-tab-pane>
  266. <el-tab-pane label="当日制程检验记录" @click="showTable('印件资料')" name="second">
  267. <el-table ref="multipleTable"
  268. :row-style="{ height: '20px' }"
  269. :cell-style="{ padding: '0px' }" :header-row-style="{ height: '20px' }"
  270. :header-cell-style="{ padding: '0px' }"
  271. :show-overflow-tooltip="true"
  272. highlight-current-row="true"
  273. style="width: 100%;height: 400px" border tooltip-effect="dark" :data="drzcData" row-key="ID" @selection-change="handleSelectionChange">
  274. <el-table-column type="selection" width="55" />
  275. <el-table-column align="left" label="工单编号" prop="工单编号" width="120"/>
  276. <el-table-column align="left" label="印件号" prop="印件号" width="120" />
  277. <el-table-column align="left" label="工序名称" prop="工序名称" width="330" />
  278. <el-table-column align="left" label="检验项目" prop="检验项目" width="120"/>
  279. <el-table-column
  280. v-for="time in columnNames"
  281. :key="time"
  282. :label="time"
  283. :prop="time"
  284. align="center"
  285. width="120"
  286. ></el-table-column>
  287. </el-table>
  288. </el-tab-pane>
  289. </el-tabs>
  290. </el-dialog>
  291. <el-dialog v-model="detailShow" style="width: 140vh" lock-scroll :before-close="closeDetailShow" title="机台班组维护" destroy-on-close>
  292. <el-table ref="multipleTable"
  293. :row-style="{ height: '20px' }"
  294. :cell-style="{ padding: '0px' }" :header-row-style="{ height: '20px' }"
  295. :header-cell-style="{ padding: '0px' }"
  296. :show-overflow-tooltip="true"
  297. :cell-class-name="bzryplanUsageCellClass"
  298. @row-click="BZhandle"
  299. style="width: 100%;height: 250px;margin-top: 0px;" border tooltip-effect="dark"
  300. :data="bzData" row-key="ID" @selection-change="BZSelectionChange">
  301. <!-- <el-table-column type="selection" width="55" /> -->
  302. <el-table-column align="left" label="机台" prop="JTMC" width="80"/>
  303. <el-table-column align="left" label="班组" prop="班组号" width="60"/>
  304. <el-table-column align="left" label="组员1" prop="0" width="200"/>
  305. <el-table-column align="left" label="组员2" prop="1" width="200"/>
  306. <el-table-column align="left" label="组员3" prop="2" width="200"/>
  307. <el-table-column align="left" label="组员4" prop="3" width="195"/>
  308. <el-table-column align="left" label="组员5" prop="4" width="70"/>
  309. <el-table-column align="left" label="组员6" prop="5" width="70"/>
  310. <el-table-column align="left" label="组员7" prop="6" width="70"/>
  311. <el-table-column align="left" label="组员8" prop="7" width="70"/>
  312. <el-table-column align="left" label="组员9" prop="8" width="70"/>
  313. <el-table-column align="left" label="特殊组员" prop="9" width="200"/>
  314. <el-table-column align="left" label="UNIQID" prop="ID" width="75"/>
  315. </el-table>
  316. <el-row :gutter="20">
  317. <el-col :span="10">
  318. <el-form-item label="机台编号" prop="id">
  319. <el-select v-model="selectedOption" placeholder="请选择">
  320. <el-option
  321. v-for="item in dropdownOptions"
  322. :key="item.value"
  323. :label="item.label"
  324. :value="item.value"
  325. ></el-option>
  326. </el-select>
  327. </el-form-item>
  328. </el-col>
  329. <el-col :span="10">
  330. <el-form-item label="班组编号" prop="id">
  331. <el-input v-model="BZMC" placeholder="" />
  332. </el-form-item>
  333. </el-col>
  334. </el-row>
  335. <div style="display: flex;">
  336. <div class="groupbox float-div" style="height: 17vh; width: 130vh;">
  337. <span class="grouptitle">组员及分配比例</span>
  338. <el-row :gutter="10" style="margin-top: 0px; height: 5vh;">
  339. <el-col :span="2">
  340. <span></span>
  341. </el-col>
  342. <el-col :span="2">
  343. </el-col>
  344. <el-col :span="2">
  345. </el-col>
  346. <el-col :span="2">
  347. </el-col>
  348. <el-col :span="2">
  349. </el-col>
  350. <el-col :span="2">
  351. </el-col>
  352. <el-col :span="2">
  353. </el-col>
  354. <el-col :span="2">
  355. </el-col>
  356. <el-col :span="2">
  357. </el-col>
  358. <el-col :span="3">
  359. </el-col>
  360. <el-col :span="3">
  361. <el-form-item label="特殊组员" prop="id">
  362. </el-form-item>
  363. </el-col>
  364. </el-row>
  365. <el-row :gutter="10" style="margin-top: 0px;">
  366. <!-- <el-col :span="1">
  367. <span></span>
  368. </el-col> -->
  369. <el-col :span="3">
  370. <el-input v-model="formDatas.code1" @keyup.enter.native="getbzyg($event, '1')" placeholder="" />
  371. </el-col>
  372. <el-col :span="3">
  373. <el-input v-model="formDatas.code2" @keyup.enter.native="getbzyg($event, '2')" placeholder="" />
  374. </el-col>
  375. <el-col :span="3">
  376. <el-input v-model="formDatas.code3" @keyup.enter.native="getbzyg($event, '3')" placeholder="" />
  377. </el-col>
  378. <el-col :span="3">
  379. <el-input v-model="formDatas.code4" @keyup.enter.native="getbzyg($event, '4')" placeholder="" />
  380. </el-col>
  381. <el-col :span="3">
  382. <el-input v-model="formDatas.code5" @keyup.enter.native="getbzyg($event, '5')" placeholder="" />
  383. </el-col>
  384. <el-col :span="3">
  385. <el-input v-model="formDatas.code6" @keyup.enter.native="getbzyg($event, '6')" placeholder="" />
  386. </el-col>
  387. <el-col :span="3">
  388. <el-input v-model="formDatas.code7" @keyup.enter.native="getbzyg($event, '7')" placeholder="" />
  389. </el-col>
  390. <el-col :span="3">
  391. <el-input v-model="formDatas.code8" @keyup.enter.native="getbzyg($event, '8')" placeholder="" />
  392. </el-col>
  393. <!-- <el-col :span="2">
  394. <el-input v-model="formData.name" placeholder="瞿春生" />
  395. </el-col>
  396. <el-col :span="2">
  397. <el-input v-model="percentage" placeholder="11.0" />
  398. </el-col>
  399. <el-col :span="2">
  400. <el-input v-model="formData.qczl_NumDesc" placeholder="打包废纸" />
  401. </el-col>
  402. <el-col :span="2">
  403. <el-input v-model="formData.qczl_NumDesc" placeholder="是" />
  404. </el-col>
  405. <el-col :span="2">
  406. <el-input v-model="formData.qczl_NumDesc" placeholder="ZI00401" />
  407. </el-col>
  408. <el-col :span="2">
  409. <el-input v-model="formData.qczl_NumDesc" placeholder="瞿春生" />
  410. </el-col>
  411. <el-col :span="2">
  412. <el-input v-model="formData.qczl_NumDesc" placeholder="11.0" />
  413. </el-col>
  414. <el-col :span="2">
  415. <el-input v-model="formData.qczl_NumDesc" placeholder="11.0" />
  416. </el-col>
  417. <el-col :span="2">
  418. <el-input v-model="formData.qczl_NumDesc" placeholder="11.0" />
  419. </el-col> -->
  420. </el-row>
  421. <el-row :gutter="10" style="margin-top: 1px;">
  422. <!-- <el-col :span="2">
  423. <span></span>
  424. </el-col> -->
  425. <el-col :span="3">
  426. <el-input v-model="formDatas.name1" placeholder="" />
  427. </el-col>
  428. <el-col :span="3">
  429. <el-input v-model="formDatas.name2" placeholder="" />
  430. </el-col>
  431. <el-col :span="3">
  432. <el-input v-model="formDatas.name3" placeholder="" />
  433. </el-col>
  434. <el-col :span="3">
  435. <el-input v-model="formDatas.name4" placeholder="" />
  436. </el-col>
  437. <el-col :span="3">
  438. <el-input v-model="formDatas.name5" placeholder="" />
  439. </el-col>
  440. <el-col :span="3">
  441. <el-input v-model="formDatas.name6" placeholder="" />
  442. </el-col>
  443. <el-col :span="3">
  444. <el-input v-model="formDatas.name7" placeholder="" />
  445. </el-col>
  446. <el-col :span="3">
  447. <el-input v-model="formDatas.name8" placeholder="" />
  448. </el-col>
  449. <!-- <el-col :span="2">
  450. <el-input v-model="formData.qczl_NumDesc" placeholder="是" />
  451. </el-col>
  452. <el-col :span="2">
  453. <el-input v-model="formData.qczl_NumDesc" placeholder="ZI00401" />
  454. </el-col>
  455. <el-col :span="2">
  456. <el-input v-model="formData.qczl_NumDesc" placeholder="瞿春生" />
  457. </el-col>
  458. <el-col :span="2">
  459. <el-input v-model="formData.qczl_NumDesc" placeholder="11.0" />
  460. </el-col>
  461. <el-col :span="2">
  462. <el-input v-model="formData.qczl_NumDesc" placeholder="11.0" />
  463. </el-col>
  464. <el-col :span="2">
  465. <el-input v-model="formData.qczl_NumDesc" placeholder="11.0" />
  466. </el-col> -->
  467. </el-row>
  468. <el-row :gutter="10" style="margin-top: 1px;">
  469. <!-- <el-col :span="2">
  470. <span></span>
  471. </el-col> -->
  472. <el-col :span="3">
  473. <el-input v-model="formDatas.percentage1" placeholder="" />
  474. </el-col>
  475. <el-col :span="3">
  476. <el-input v-model="formDatas.percentage2" placeholder="" />
  477. </el-col>
  478. <el-col :span="3">
  479. <el-input v-model="formDatas.percentage3" placeholder="" />
  480. </el-col>
  481. <el-col :span="3">
  482. <el-input v-model="formDatas.percentage4" placeholder="" />
  483. </el-col>
  484. <el-col :span="3">
  485. <el-input v-model="formDatas.percentage5" placeholder="" />
  486. </el-col>
  487. <el-col :span="3">
  488. <el-input v-model="formDatas.percentage6" placeholder="" />
  489. </el-col>
  490. <el-col :span="3">
  491. <el-input v-model="formDatas.percentage7" placeholder="" />
  492. </el-col>
  493. <el-col :span="3">
  494. <el-input v-model="formDatas.percentage8" placeholder="" />
  495. </el-col>
  496. <!-- <el-col :span="2">
  497. <el-input v-model="formData.qczl_NumDesc" placeholder="是" />
  498. </el-col>
  499. <el-col :span="2">
  500. <el-input v-model="formData.qczl_NumDesc" placeholder="ZI00401" />
  501. </el-col>
  502. <el-col :span="2">
  503. <el-input v-model="formData.qczl_NumDesc" placeholder="瞿春生" />
  504. </el-col>
  505. <el-col :span="2">
  506. <el-input v-model="formData.qczl_NumDesc" placeholder="11.0" />
  507. </el-col>
  508. <el-col :span="2">
  509. <el-input v-model="formData.qczl_NumDesc" placeholder="11.0" />
  510. </el-col>
  511. <el-col :span="2">
  512. <el-input v-model="formData.qczl_NumDesc" placeholder="11.0" />
  513. </el-col> -->
  514. </el-row>
  515. </div>
  516. <div style="height: 17vh; width: 15vh;margin-top: 5vh;">
  517. <el-button type="text"></el-button>
  518. <el-button style="margin-bottom: 5px;" @click="addBz" >新增</el-button>
  519. <el-button style="margin-bottom: 1vh;" @click="selectBz" >更新当前班组</el-button>
  520. <!-- <el-button style="margin-bottom: 1vh;" @click="delBz" >删除当前班组</el-button>-->
  521. </div>
  522. </div>
  523. </el-dialog>
  524. <el-dialog v-model="complaintsShow" style="width: 140vh; height:78vh;" lock-scroll :before-close="closecomplaintsShow" title="产品客诉查询" destroy-on-close>
  525. <el-table ref="multipleTable"
  526. :row-style="{ height: '20px' }"
  527. :cell-style="{ padding: '0px' }" :header-row-style="{ height: '20px' }"
  528. :header-cell-style="{ padding: '0px' }"
  529. :show-overflow-tooltip="true"
  530. highlight-current-row="true" @row-click="complaintshandle"
  531. style="width: 100%;height: 30vh;margin-top: 0px;" border tooltip-effect="dark"
  532. :data="complaintsData" row-key="ID" @selection-change="complaintsSelectionChange">
  533. <!-- <el-table-column type="selection" width="55" /> -->
  534. <el-table-column align="left" label="产品编号" prop="产品编号" width="120"/>
  535. <el-table-column align="left" label="产品名称" prop="产品名称" width="200"/>
  536. <el-table-column align="left" label="客诉日期" prop="客诉日期" width="120"/>
  537. <el-table-column align="left" label="客诉单号" prop="客诉单号" width="120"/>
  538. <el-table-column align="left" label="客诉方式" prop="客诉方式" width="100"/>
  539. <el-table-column align="left" label="订单编号" prop="订单编号" width="100"/>
  540. <el-table-column align="left" label="缺陷关键字" prop="缺陷关键字" width="140"/>
  541. <el-table-column align="left" label="客诉性质" prop="客诉性质" width="100"/>
  542. <el-table-column align="left" label="主要责任部门" prop="主要责任部门" width="140"/>
  543. <el-table-column align="left" label="次要责任部门" prop="次要责任部门" width="140"/>
  544. </el-table>
  545. <el-row :gutter="20" style="margin-bottom: 1px;margin-top: 0px;">
  546. <el-col :span="6" style="margin-bottom: 1px;margin-top: 0px;">
  547. <el-form-item label="客户编号" prop="id" style="margin-bottom: 1px;margin-top: 0px;">
  548. <el-input v-model="selectedRowData.客户编号" style="margin-bottom: 1px;margin-top: 0px;" placeholder="" />
  549. </el-form-item>
  550. </el-col>
  551. <el-col :span="15" style="margin-bottom: 1px;margin-top: 0px;">
  552. <el-form-item label="客户名称" prop="id" style="margin-bottom: 1px;margin-top: 0px;">
  553. <el-input v-model="selectedRowData.客户名称" style="margin-bottom: 1px;margin-top: 0px;" placeholder="" />
  554. </el-form-item>
  555. </el-col>
  556. </el-row>
  557. <el-row :gutter="20" style="margin-bottom: 1px;margin-top: 0px;">
  558. <el-col :span="6" style="margin-bottom: 1px;margin-top: 0px;">
  559. <el-form-item label="客诉单号" prop="id" style="margin-bottom: 1px;margin-top: 0px;">
  560. <el-input v-model="selectedRowData.客诉单号" style="margin-bottom: 1px;margin-top: 0px;" placeholder="" />
  561. </el-form-item>
  562. </el-col>
  563. <el-col :span="5" style="margin-bottom: 1px;margin-top: 0px;">
  564. <el-form-item label="客诉日期" prop="id" style="margin-bottom: 1px;margin-top: 0px;">
  565. <el-input v-model="selectedRowData.客诉日期" style="margin-bottom: 1px;margin-top: 0px;" placeholder="" />
  566. </el-form-item>
  567. </el-col>
  568. <el-col :span="5" style="margin-bottom: 1px;margin-top: 0px;">
  569. <el-form-item label="方式" prop="id" style="margin-bottom: 1px;margin-top: 0px;">
  570. <el-input v-model="selectedRowData.客诉方式" style="margin-bottom: 1px;margin-top: 0px;" placeholder="" />
  571. </el-form-item>
  572. </el-col>
  573. <el-col :span="5" style="margin-bottom: 1px;margin-top: 0px;">
  574. <el-form-item label="批次号" prop="id" style="margin-bottom: 1px;margin-top: 0px;">
  575. <el-input v-model="selectedRowData.订单编号" style="margin-bottom: 1px;margin-top: 0px;" placeholder="" />
  576. </el-form-item>
  577. </el-col>
  578. </el-row>
  579. <el-row :gutter="20" style="margin-bottom: 1px;margin-top: 0px;">
  580. <el-col :span="20" style="margin-bottom: 1px;margin-top: 0px;">
  581. <el-form-item label="反馈问题" prop="id" style="margin-bottom: 1px;margin-top: 0px;">
  582. <el-input v-model="selectedRowData.客诉描述" style="margin-bottom: 1px;margin-top: 0px;" placeholder="" />
  583. </el-form-item>
  584. </el-col>
  585. </el-row>
  586. <el-row :gutter="20" style="margin-bottom: 1px;margin-top: 0px;">
  587. <el-col :span="20" style="margin-bottom: 1px;margin-top: 0px;">
  588. <el-form-item label="缺陷关键字" prop="id" style="margin-bottom: 1px;margin-top: 0px;">
  589. <el-input v-model="selectedRowData.缺陷关键字" style="margin-bottom: 1px;margin-top: 0px;" placeholder="" />
  590. </el-form-item>
  591. </el-col>
  592. </el-row>
  593. <el-row :gutter="20" style="margin-bottom: 1px;margin-top: 0px;">
  594. <el-col :span="5" style="margin-bottom: 1px;margin-top: 0px;">
  595. <el-form-item label="性质" prop="id" style="margin-bottom: 1px;margin-top: 0px;">
  596. <el-input v-model="selectedRowData.客诉性质" style="margin-bottom: 1px;margin-top: 0px;" placeholder="" />
  597. </el-form-item>
  598. </el-col>
  599. <el-col :span="5" style="margin-bottom: 1px;margin-top: 0px;">
  600. <el-form-item label="扣分" prop="id" style="margin-bottom: 1px;margin-top: 0px;">
  601. <el-input v-model="selectedRowData.扣分" style="margin-bottom: 1px;margin-top: 0px;" placeholder="" />
  602. </el-form-item>
  603. </el-col>
  604. </el-row>
  605. <el-row :gutter="20" style="margin-bottom: 1px;margin-top: 0px;">
  606. <el-col :span="20" style="margin-bottom: 1px;margin-top: 0px;">
  607. <el-form-item label="主责任部门" prop="id" style="margin-bottom: 1px;margin-top: 0px;">
  608. <el-input v-model="selectedRowData.主要责任部门" style="margin-bottom: 1px;margin-top: 0px;" placeholder="" />
  609. </el-form-item>
  610. </el-col>
  611. </el-row>
  612. <el-row :gutter="20" style="margin-bottom: 1px;margin-top: 0px;">
  613. <el-col :span="20" style="margin-bottom: 1px;margin-top: 0px;">
  614. <el-form-item label="次责任部门" prop="id" style="margin-bottom: 1px;margin-top: 0px;">
  615. <el-input v-model="selectedRowData.次要责任部门" style="margin-bottom: 1px;margin-top: 0px;" placeholder="" />
  616. </el-form-item>
  617. </el-col>
  618. </el-row>
  619. </el-dialog>
  620. <el-dialog
  621. v-model="dianjianVisible"
  622. title="设备点检记录"
  623. destroy-on-close
  624. width="150vh"
  625. style="height: 78vh;"
  626. >
  627. <el-row :gutter="24" style="margin-bottom: 0px;margin-top: 0px;">
  628. <el-col :span="4" style="margin-bottom: 0px;margin-top: 0px;">
  629. <el-form-item label="设备编号" prop="id" style="margin-bottom: 0px;margin-top: 0px;">
  630. <el-input v-model="JTMC" placeholder="" style="margin-bottom: 0px;margin-top: 0px;"/>
  631. </el-form-item>
  632. </el-col>
  633. <el-col :span="10" style="margin-bottom: 0px;margin-top: 0px;">
  634. <el-row style="margin-bottom: 0px;margin-top: 0px;">
  635. <el-col style="margin-bottom: 0px;margin-top: 0px;">
  636. <el-input v-model="formData.产品名称" placeholder="" style="margin-bottom: 0px;margin-top: 0px;"/>
  637. </el-col>
  638. </el-row>
  639. </el-col>
  640. </el-row>
  641. <div style="display: flex;">
  642. <div style="flex: 0.1;margin-top: 0px;">
  643. <el-aside width="25vh" style="margin: 0; height: 50vh; margin-top: 0px;">
  644. <div class="JKWTree-tree" style="height: 100%; border-right: 1px solid #ebeef5;">
  645. <el-tree :data="dianjiantreeData" :props="defaultProps" highlight-current="true"
  646. @node-click="dianjianNodeClick" @node-dblclick="handleNodeDoubleClick"></el-tree>
  647. </div>
  648. </el-aside>
  649. </div>
  650. <div style="flex: 1; margin: 0;">
  651. <el-table
  652. tooltip-effect="dark"
  653. :data="dianjianselectData"
  654. row-key="ID"
  655. highlight-current-row="true"
  656. :show-overflow-tooltip="true"
  657. border @row-click="dianjianhandle"
  658. style="width:100%; height:45vh; margin-top: 5px;"
  659. @row-dblclick="handleSelectClick"
  660. :row-class-name="rowClassName"
  661. >
  662. <el-table-column
  663. prop="检验项目"
  664. label="检验项目"
  665. width="320"
  666. />
  667. <el-table-column
  668. prop="点检方法"
  669. label="点检方法"
  670. width="180"
  671. />
  672. <el-table-column
  673. v-slot="scope"
  674. label="正常"
  675. width="70"
  676. >
  677. <el-checkbox v-model="scope.row.zc" @click="zcClick(scope.row)"></el-checkbox>
  678. </el-table-column>
  679. <el-table-column
  680. v-slot="scope"
  681. label="异常"
  682. width="70"
  683. >
  684. <el-checkbox v-model="scope.row.yc" @click="ycClick(scope.row)"></el-checkbox>
  685. </el-table-column>
  686. <el-table-column
  687. v-slot="scope"
  688. label="备注说明"
  689. width="180"
  690. >
  691. <el-input v-model="scope.row.remark"/>
  692. </el-table-column>
  693. <el-table-column
  694. v-slot="scope"
  695. label="不检测"
  696. width="75"
  697. >
  698. <el-checkbox v-model="scope.row.notjc" @click="notjcClick(scope.row)"></el-checkbox>
  699. </el-table-column>
  700. </el-table>
  701. <el-row :gutter="24">
  702. <el-col :span="24">
  703. <el-input v-model="pandingfangfa" style="margin-top=0px; height: 40px; margin-bottom: 0px;" />
  704. </el-col>
  705. </el-row>
  706. </div>
  707. </div>
  708. <template #footer>
  709. <div class="dialog-footer">
  710. <el-button @click="closedianjianDialog">关 闭</el-button>
  711. <el-button type="primary" @click="dianjianDialog">提 交</el-button>
  712. </div>
  713. </template>
  714. </el-dialog>
  715. <el-dialog
  716. v-model="zhichengVisible"
  717. title="制程检验记录"
  718. destroy-on-close
  719. width="160vh"
  720. style="height: 78vh;"
  721. >
  722. <el-row :gutter="24" style="margin-top=0px; margin-bottom: 1px;">
  723. <el-col :span="5" style="margin-top=0px; margin-bottom: 0px;">
  724. <el-form-item label="工单编号" prop="id" style="margin-top=0px; margin-bottom: 0px;">
  725. <el-input v-model="xunchaData.order" placeholder="" style="margin-top=0px; margin-bottom: 0px;"/>
  726. </el-form-item>
  727. </el-col>
  728. <el-col :span="15" style="margin-top=0px; margin-bottom: 0px;">
  729. <el-row style="margin-top=0px; margin-bottom: 0px;">
  730. <el-col style="margin-top=0px; margin-bottom: 0px;">
  731. <el-input v-model="xunchaData.product_name" placeholder="" style="margin-top=0px; margin-bottom: 0px;"/>
  732. </el-col>
  733. </el-row>
  734. </el-col>
  735. <el-col :span="4" style="margin-top=0px; margin-bottom: 0px;">
  736. <el-form-item label="流程单" prop="id" style="margin-top=0px; margin-bottom: 0px;">
  737. <el-input v-model="xunchaData.lcdh" placeholder="" style="margin-top=0px; margin-bottom: 0px;"/>
  738. </el-form-item>
  739. </el-col>
  740. </el-row>
  741. <el-row :gutter="24" style="margin-top=0px; margin-bottom: 1px;">
  742. <el-col :span="5" style="margin-top=0px; margin-bottom: 0px;">
  743. <el-form-item label="印件编号" prop="id" style="margin-top=0px; margin-bottom: 0px;">
  744. <el-input v-model="xunchaData.yjno" placeholder="" style="margin-top=0px; margin-bottom: 0px;"/>
  745. </el-form-item>
  746. </el-col>
  747. <el-col :span="15" style="margin-top=0px; margin-bottom: 0px;">
  748. <el-input v-model="xunchaData.gxmc" placeholder="" style="margin-top=0px; margin-bottom: 0px;"/>
  749. </el-col>
  750. </el-row>
  751. <div style="display: flex;">
  752. <div style="flex: 0.1;">
  753. <el-aside width="25vh" style="margin: 0;">
  754. <div class="JKWTree-tree" style="height: 100%; border-right: 1px solid #ebeef5;">
  755. <el-tree :data="zhichengtreeData" :props="defaultProps" highlight-current="true"
  756. @node-click="zhichengNodeClick"></el-tree>
  757. </div>
  758. </el-aside>
  759. </div>
  760. <div v-if="zhichengstatus" style="flex: 0; margin: 0;">
  761. <el-tabs v-model="activNames" type="card" @tab-click="handleClick">
  762. <el-tab-pane label="指标检验" @click="showTable('指标检验')" name="first">
  763. <el-table
  764. tooltip-effect="dark"
  765. :data="zhibiaoselectData"
  766. row-key="ID"
  767. highlight-current-row="true"
  768. :show-overflow-tooltip="true"
  769. border @row-click="dianjianhandle"
  770. style="width:100%; height:40vh;"
  771. @row-dblclick="handleSelectClick"
  772. :row-class-name="rowClassName"
  773. >
  774. <el-table-column
  775. prop="检验项目"
  776. label="检验项目"
  777. width="270"
  778. />
  779. <el-table-column
  780. v-slot="scope"
  781. label="不检测"
  782. width="70"
  783. >
  784. <el-checkbox v-model="scope.row.notjc" @click="notjcClick(scope.row)"></el-checkbox>
  785. </el-table-column>
  786. <el-table-column
  787. v-slot="scope"
  788. label="合格"
  789. width="60"
  790. >
  791. <el-checkbox v-model="scope.row.zc" @click="zcClick(scope.row)"></el-checkbox>
  792. </el-table-column>
  793. <el-table-column
  794. v-slot="scope"
  795. label="不合格"
  796. width="70"
  797. >
  798. <el-checkbox v-model="scope.row.yc" @click="ycClick(scope.row)"></el-checkbox>
  799. </el-table-column>
  800. <el-table-column
  801. prop="检测方法"
  802. label="检测方法"
  803. width="90"
  804. />
  805. <el-table-column
  806. prop="检验频率"
  807. label="检验频率"
  808. width="150"
  809. />
  810. <el-table-column
  811. prop="相关标准"
  812. label="相关标准"
  813. width="180"
  814. />
  815. </el-table>
  816. </el-tab-pane>
  817. <el-tab-pane label="附加检验记录" @click="showTable('附加检验记录')" name="second">
  818. <el-table
  819. tooltip-effect="dark"
  820. :data="fujiaselectData"
  821. row-key="ID"
  822. highlight-current-row="true"
  823. :show-overflow-tooltip="true"
  824. border @row-click="dianjianhandle"
  825. style="width:100%; height:40vh;"
  826. @row-dblclick="handleSelectClick"
  827. :row-class-name="rowClassName"
  828. >
  829. <el-table-column
  830. v-slot="scope"
  831. label="不检测"
  832. width="75"
  833. >
  834. <el-checkbox v-model="scope.row.notjc"></el-checkbox>
  835. </el-table-column>
  836. <el-table-column
  837. prop="缺陷备注"
  838. label="缺陷及记录"
  839. width="720"
  840. />
  841. <el-table-column
  842. prop="编号"
  843. label="编号"
  844. width="80"
  845. />
  846. </el-table>
  847. </el-tab-pane>
  848. </el-tabs>
  849. </div>
  850. </div>
  851. <template #footer>
  852. <div v-if="zhichengstatus" class="dialog-footer">
  853. <el-button @click="closezhichengDialog">关 闭</el-button>
  854. <el-button type="primary" @click="zhichengDialog">提 交</el-button>
  855. </div>
  856. </template>
  857. </el-dialog>
  858. <el-dialog
  859. v-model="huanxingVisible"
  860. title="换型清场"
  861. destroy-on-close
  862. width="145vh"
  863. style="height: 78vh;"
  864. >
  865. <div style="display: flex;">
  866. <div style="flex: 0.1;">
  867. <el-aside width="26vh" style="margin: 0;">
  868. <div class="JKWTree-tree" style="height: 60vh; border-right: 1px solid #ebeef5;">
  869. <el-tree :data="huanxingtreeData" :props="defaultProps" highlight-current="true"
  870. @node-click="huanxingNodeClick"></el-tree>
  871. </div>
  872. </el-aside>
  873. </div>
  874. <div v-if="huanxingstatus" style="flex: 0; margin: 0;">
  875. <el-tabs v-model="activNames" type="card" @tab-click="handleClick">
  876. <el-tab-pane label="换型清场明细信息" @click="showTable('换型清场明细信息')" name="first">
  877. <div style="width:110vh">
  878. <el-descriptions :column="9" border>
  879. <el-descriptions-item :span="9">
  880. <el-row :gutter="24" style="margin-bottom: 0px;margin-top: 0px;">
  881. <el-col :span="6" style="margin-bottom: 0px;margin-top: 0px;">
  882. <el-form-item label="日期:" prop="id" style="margin-top=0px; margin-bottom: 0px;">
  883. <el-input v-model="huanxingData.日期" placeholder="" style="margin-top=0px; margin-bottom: 0px;"/>
  884. </el-form-item>
  885. </el-col>
  886. <el-col :span="2" style="margin-bottom: 0px;margin-top: 0px;">
  887. </el-col>
  888. <el-col :span="6" style="margin-bottom: 0px;margin-top: 0px;">
  889. <el-form-item label="机台编号:" prop="id" style="margin-top=0px; margin-bottom: 0px;">
  890. <el-input v-model="huanxingData.机台编号" placeholder="" style="margin-top=0px; margin-bottom: 0px;"/>
  891. </el-form-item>
  892. </el-col>
  893. <el-col :span="1" style="margin-bottom: 0px;margin-top: 0px;">
  894. </el-col>
  895. <el-col :span="6" style="margin-bottom: 0px;margin-top: 0px;">
  896. <el-form-item label="班组:" prop="id" style="margin-top=0px; margin-bottom: 0px;">
  897. <el-input v-model="huanxingData.班组" placeholder="" style="margin-top=0px; margin-bottom: 0px;"/>
  898. </el-form-item>
  899. </el-col>
  900. </el-row>
  901. </el-descriptions-item>
  902. <el-descriptions-item label="清场原因 从" :span="9">
  903. <el-row :gutter="24" style="margin-bottom: 0px;margin-top: 0px;">
  904. <el-col :span="8" style="margin-bottom: 0px;margin-top: 0px;">
  905. <el-form-item label="工单编号:" prop="id" style="margin-bottom: 0px;margin-top: 0px;">
  906. <el-input v-model="huanxingData.工单编号A" placeholder="" style="margin-bottom: 0px;margin-top: 0px;"/>
  907. </el-form-item>
  908. </el-col>
  909. <el-col :span="16" style="margin-bottom: 0px;margin-top: 0px;">
  910. <el-form-item label="印件名称:" prop="id" style="margin-bottom: 0px;margin-top: 0px;">
  911. <el-input v-model="huanxingData.印件名称A" placeholder="" style="margin-bottom: 0px;margin-top: 0px;"/>
  912. </el-form-item>
  913. </el-col>
  914. </el-row>
  915. <el-row :gutter="24" style="margin-bottom: 0px;margin-top: 0px;">
  916. <el-col :span="12" style="margin-bottom: 0px;margin-top: 0px;">
  917. <el-form-item label="印件工序:" prop="id" style="margin-bottom: 0px;margin-top: 0px;">
  918. <el-input v-model="huanxingData.印件工序A" placeholder="" style="margin-bottom: 0px;margin-top: 0px;"/>
  919. </el-form-item>
  920. </el-col>
  921. <el-col :span="6" style="margin-bottom: 0px;margin-top: 0px;">
  922. </el-col>
  923. <el-col :span="6" style="margin-bottom: 0px;margin-top: 0px;">
  924. <el-form-item label="码包号" prop="id" style="margin-bottom: 0px;margin-top: 0px;">
  925. <el-input v-model="huanxingData.码包号A" placeholder="" style="margin-bottom: 0px;margin-top: 0px;"/>
  926. </el-form-item>
  927. </el-col>
  928. </el-row>
  929. </el-descriptions-item>
  930. <el-descriptions-item label="清场原因 到" :span="9">
  931. <el-row :gutter="24" style="margin-bottom: 0px;margin-top: 0px;">
  932. <el-col :span="8" style="margin-bottom: 0px;margin-top: 0px;">
  933. <el-form-item label="工单编号:" prop="id" style="margin-bottom: 0px;margin-top: 0px;">
  934. <el-input v-model="huanxingData.工单编号B" placeholder="" style="margin-bottom: 0px;margin-top: 0px;"/>
  935. </el-form-item>
  936. </el-col>
  937. <el-col :span="16" style="margin-bottom: 0px;margin-top: 0px;">
  938. <el-form-item label="印件名称:" prop="id" style="margin-bottom: 0px;margin-top: 0px;">
  939. <el-input v-model="huanxingData.印件名称B" placeholder="" style="margin-bottom: 0px;margin-top: 0px;"/>
  940. </el-form-item>
  941. </el-col>
  942. </el-row>
  943. <el-row :gutter="24" style="margin-bottom: 0px;margin-top: 0px;">
  944. <el-col :span="12" style="margin-bottom: 0px;margin-top: 0px;">
  945. <el-form-item label="印件工序:" prop="id" style="margin-bottom: 0px;margin-top: 0px;">
  946. <el-input v-model="huanxingData.印件工序B" placeholder="" style="margin-bottom: 0px;margin-top: 0px;"/>
  947. </el-form-item>
  948. </el-col>
  949. <el-col :span="6" style="margin-bottom: 0px;margin-top: 0px;">
  950. </el-col>
  951. <el-col :span="6" style="margin-bottom: 0px;margin-top: 0px;">
  952. <el-form-item label="码包号" prop="id" style="margin-bottom: 0px;margin-top: 0px;">
  953. <el-input v-model="huanxingData.码包B" placeholder="" style="margin-bottom: 0px;margin-top: 0px;"/>
  954. </el-form-item>
  955. </el-col>
  956. </el-row>
  957. </el-descriptions-item>
  958. <el-descriptions-item label="清场确认项目" :span="9">
  959. <el-row :gutter="24" style="margin-bottom: 0px;margin-top: 0px;">
  960. <el-col :span="12" style="margin-bottom: 0px;margin-top: 0px;">
  961. <el-form-item label="菲林_标样_签样品_留样品" prop="id" style="margin-bottom: 0px;margin-top: 0px;">
  962. <el-checkbox v-model="huanxingData.项目1"></el-checkbox>
  963. </el-form-item>
  964. </el-col>
  965. <el-col :span="12" style="margin-bottom: 0px;margin-top: 0px;">
  966. <el-form-item label="版材_纸张_电化铝_油墨" prop="id" style="margin-bottom: 0px;margin-top: 0px;">
  967. <el-checkbox v-model="huanxingData.项目2"></el-checkbox>
  968. </el-form-item>
  969. </el-col>
  970. </el-row>
  971. <el-row :gutter="24" style="margin-bottom: 0px;margin-top: 0px;">
  972. <el-col :span="12" style="margin-bottom: 0px;margin-top: 0px;">
  973. <el-form-item label="过版纸_废品_次品" prop="id" style="margin-bottom: 0px;margin-top: 0px;">
  974. <el-checkbox v-model="huanxingData.项目3"></el-checkbox>
  975. </el-form-item>
  976. </el-col>
  977. <el-col :span="12" style="margin-bottom: 0px;margin-top: 0px;">
  978. <el-form-item label="半成品_成品_零头" prop="id" style="margin-bottom: 0px;margin-top: 0px;">
  979. <el-checkbox v-model="huanxingData.项目4"></el-checkbox>
  980. </el-form-item>
  981. </el-col>
  982. </el-row>
  983. <el-row :gutter="24" style="margin-bottom: 0px;margin-top: 0px;">
  984. <el-col :span="12" style="margin-bottom: 0px;margin-top: 0px;">
  985. <el-form-item label="操作台桌面_抽屉_地面" prop="id" style="margin-bottom: 0px;margin-top: 0px;">
  986. <el-checkbox v-model="huanxingData.项目5"></el-checkbox>
  987. </el-form-item>
  988. </el-col>
  989. </el-row>
  990. </el-descriptions-item>
  991. <el-descriptions-item label="清场确认人" :span="9">
  992. <el-row :gutter="24" style="margin-bottom: 0px;margin-top: 0px;">
  993. <el-col :span="12" style="margin-bottom: 0px;margin-top: 0px;">
  994. <el-form-item label="机长签字" prop="id" style="margin-bottom: 0px;margin-top: 0px;">
  995. <el-input v-model="huanxingData.机长" placeholder="" style="margin-bottom: 0px;margin-top: 0px;"/>
  996. </el-form-item>
  997. </el-col>
  998. </el-row>
  999. <el-row :gutter="24" style="margin-bottom: 0px;margin-top: 0px;">
  1000. <el-col :span="12" style="margin-bottom: 0px;margin-top: 0px;">
  1001. <el-form-item label="带班主管签字" prop="id" style="margin-bottom: 0px;margin-top: 0px;">
  1002. <el-input v-model="huanxingData.班长" placeholder="" style="margin-bottom: 0px;margin-top: 0px;"/>
  1003. </el-form-item>
  1004. </el-col>
  1005. <el-col :span="12" style="margin-bottom: 0px;margin-top: 0px;">
  1006. <el-form-item label="质量巡查员签字" prop="id" style="margin-bottom: 0px;margin-top: 0px;">
  1007. <el-input v-model="huanxingData.质量巡查员" placeholder="" style="margin-bottom: 0px;margin-top: 0px;"/>
  1008. </el-form-item>
  1009. </el-col>
  1010. </el-row>
  1011. </el-descriptions-item>
  1012. </el-descriptions>
  1013. </div>
  1014. </el-tab-pane>
  1015. <el-tab-pane label="当前设备换型记录" @click="showTable('当前设备换型记录')" name="second">
  1016. <el-table
  1017. tooltip-effect="dark"
  1018. :data="huanxingselectData"
  1019. row-key="ID"
  1020. highlight-current-row="true"
  1021. :show-overflow-tooltip="true"
  1022. border @row-click="dianjianhandle"
  1023. style="width:115vh; height:50vh;"
  1024. @row-dblclick="handleSelectClick"
  1025. :row-class-name="rowClassName"
  1026. >
  1027. <el-table-column
  1028. prop="日期"
  1029. label="日期"
  1030. width="160"
  1031. />
  1032. <el-table-column
  1033. prop="机台编号"
  1034. label="机台编号"
  1035. width="90"
  1036. />
  1037. <el-table-column
  1038. prop="班组"
  1039. label="班组"
  1040. width="70"
  1041. />
  1042. <el-table-column
  1043. prop="工单编号A"
  1044. label="工单编号A"
  1045. width="95"
  1046. />
  1047. <el-table-column
  1048. prop="印件名称A"
  1049. label="印件名称A"
  1050. width="130"
  1051. />
  1052. <el-table-column
  1053. prop="印件工序A"
  1054. label="印件工序A"
  1055. width="150"
  1056. />
  1057. <el-table-column
  1058. prop="码包号A"
  1059. label="码包号A"
  1060. width="80"
  1061. />
  1062. <el-table-column
  1063. prop="工单编号B"
  1064. label="工单编号B"
  1065. width="100"
  1066. />
  1067. <el-table-column
  1068. prop="印件名称B"
  1069. label="印件名称B"
  1070. width="100"
  1071. />
  1072. <el-table-column
  1073. prop="印件工序B"
  1074. label="印件工序B"
  1075. width="150"
  1076. />
  1077. <el-table-column
  1078. prop="码包号B"
  1079. label="码包号B"
  1080. width="80"
  1081. />
  1082. <el-table-column
  1083. prop="清场项目A"
  1084. label="菲林_标样_签样品_留样品"
  1085. width="190"
  1086. />
  1087. <el-table-column
  1088. prop="清场项目B"
  1089. label="版材_纸张_电化铝_油墨"
  1090. width="190"
  1091. />
  1092. <el-table-column
  1093. prop="清场项目C"
  1094. label="过版纸_废品_次品"
  1095. width="170"
  1096. />
  1097. <el-table-column
  1098. prop="清场项目D"
  1099. label="半成品_成品_零头"
  1100. width="170"
  1101. />
  1102. <el-table-column
  1103. prop="清场项目E"
  1104. label="操作台桌面_抽屉_地面"
  1105. width="180"
  1106. />
  1107. <el-table-column
  1108. prop="机长"
  1109. label="机长"
  1110. width="80"
  1111. />
  1112. <el-table-column
  1113. prop="班长"
  1114. label="带班长"
  1115. width="80"
  1116. />
  1117. <el-table-column
  1118. prop="质量巡查员"
  1119. label="质量巡查员"
  1120. width="100"
  1121. />
  1122. <el-table-column
  1123. prop="创建时间"
  1124. label="创建时间"
  1125. width="120"
  1126. />
  1127. <el-table-column
  1128. prop="UNIQID"
  1129. label="UNIQID"
  1130. width="80"
  1131. />
  1132. </el-table>
  1133. </el-tab-pane>
  1134. </el-tabs>
  1135. </div>
  1136. </div>
  1137. </el-dialog>
  1138. <el-dialog
  1139. v-model="yinbanVisible"
  1140. title="印版领退"
  1141. destroy-on-close
  1142. width="180vh"
  1143. style="height: 78vh;"
  1144. >
  1145. <el-row :gutter="24">
  1146. <el-col :span="4">
  1147. <el-form-item label="工单编号" prop="id">
  1148. <el-input v-model="formData.工单编号" />
  1149. </el-form-item>
  1150. </el-col>
  1151. <el-col :span="6">
  1152. <el-form-item prop="id">
  1153. <el-input v-model="formData.productCode" />
  1154. </el-form-item>
  1155. </el-col>
  1156. <el-col :span="14">
  1157. <el-form-item prop="id">
  1158. <el-input v-model="formData.产品名称" />
  1159. </el-form-item>
  1160. </el-col>
  1161. </el-row>
  1162. <div style="display: flex;">
  1163. <div style="flex: 1;">
  1164. <el-aside width="34vh" style="margin: 0;">
  1165. <div class="JKWTree-tree" style="height: 100%; border-right: 1px solid #ebeef5;">
  1166. <el-tree :data="yinbantreeData" :props="defaultProps" highlight-current="true"
  1167. @node-click="yinbanNodeClick" @node-dblclick="handleNodeDoubleClick"></el-tree>
  1168. </div>
  1169. </el-aside>
  1170. </div>
  1171. <div style="flex: 1; margin: 0;">
  1172. <el-table
  1173. tooltip-effect="dark"
  1174. :data="yinbanselectData"
  1175. row-key="ID"
  1176. highlight-current-row="true"
  1177. :show-overflow-tooltip="true"
  1178. border @row-click="dianjianhandle"
  1179. style="width:140vh; height:50vh;"
  1180. @row-dblclick="handleSelectClick"
  1181. :row-class-name="rowClassName"
  1182. >
  1183. <el-table-column
  1184. prop="存货编码"
  1185. label="存货编码"
  1186. width="100"
  1187. />
  1188. <el-table-column
  1189. prop="存货名称"
  1190. label="存货名称"
  1191. width="180"
  1192. />
  1193. <el-table-column
  1194. prop="印版名称"
  1195. label="印版名称"
  1196. width="180"
  1197. />
  1198. <el-table-column
  1199. prop="供方批号"
  1200. label="供方批号"
  1201. width="150"
  1202. />
  1203. <el-table-column
  1204. prop="制造日期"
  1205. label="制造日期"
  1206. width="170"
  1207. />
  1208. <el-table-column
  1209. prop="印数"
  1210. label="印数"
  1211. width="80"
  1212. />
  1213. <el-table-column
  1214. prop="印版类别"
  1215. label="印版类别"
  1216. width="90"
  1217. />
  1218. <el-table-column
  1219. prop="客户编号"
  1220. label="客户编号"
  1221. width="90"
  1222. />
  1223. <el-table-column
  1224. prop="客户名称"
  1225. label="客户名称"
  1226. width="180"
  1227. />
  1228. <el-table-column
  1229. prop="产品编号"
  1230. label="产品编号"
  1231. width="100"
  1232. />
  1233. <el-table-column
  1234. prop="产品名称"
  1235. label="产品名称"
  1236. width="180"
  1237. />
  1238. <el-table-column
  1239. prop="点检方法"
  1240. label="备注说明"
  1241. width="90"
  1242. />
  1243. <!-- <el-table-column
  1244. prop="点检方法"
  1245. label="备注说明"
  1246. width="180"
  1247. /> -->
  1248. </el-table>
  1249. </div>
  1250. </div>
  1251. </el-dialog>
  1252. <el-dialog
  1253. v-model="xunchaVisible"
  1254. title="管理人员现场巡查记录"
  1255. destroy-on-close
  1256. width="162vh"
  1257. style="height: 78vh;"
  1258. >
  1259. <el-row :gutter="24" style="margin-top=0px; margin-bottom: 1px;">
  1260. <el-col :span="4" style="margin-top=0px; margin-bottom: 0px;">
  1261. <el-form-item label="工单编号" prop="id" style="margin-top=0px; margin-bottom: 0px;">
  1262. <el-input v-model="xunchaData.order" placeholder="" style="margin-top=0px; margin-bottom: 0px;"/>
  1263. </el-form-item>
  1264. </el-col>
  1265. <el-col :span="9" style="margin-top=0px; margin-bottom: 0px;">
  1266. <el-row style="margin-top=0px; margin-bottom: 0px;">
  1267. <el-col style="margin-top=0px; margin-bottom: 0px;">
  1268. <el-input v-model="xunchaData.product_name" placeholder="" style="margin-top=0px; margin-bottom: 0px;"/>
  1269. </el-col>
  1270. </el-row>
  1271. </el-col>
  1272. <el-col :span="4" style="margin-top=0px; margin-bottom: 0px;">
  1273. <el-form-item label="工号 " prop="id" style="margin-top=0px; margin-bottom: 0px;">
  1274. <el-input v-model="xunchaData.sczl_bh" @keyup.enter.native="getxunchayg($event)" placeholder="" style="margin-top=0px; margin-bottom: 0px;"/>
  1275. </el-form-item>
  1276. </el-col>
  1277. <el-col :span="4" style="margin-top=0px; margin-bottom: 0px;">
  1278. <el-form-item label="流程单" prop="id" style="margin-top=0px; margin-bottom: 0px;">
  1279. <el-input v-model="xunchaData.lcdh" placeholder="" style="margin-top=0px; margin-bottom: 0px;"/>
  1280. </el-form-item>
  1281. </el-col>
  1282. </el-row>
  1283. <el-row :gutter="24" style="margin-top=0px; margin-bottom: 1px;">
  1284. <el-col :span="3" style="margin-top=0px; margin-bottom: 0px;">
  1285. <el-form-item label="印件编号" prop="id" style="margin-top=0px; margin-bottom: 0px;">
  1286. <el-input v-model="xunchaData.yjno" placeholder="" style="margin-top=0px; margin-bottom: 0px;"/>
  1287. </el-form-item>
  1288. </el-col>
  1289. <el-col :span="10" style="margin-top=0px; margin-bottom: 0px;">
  1290. <el-row style="margin-top=0px; margin-bottom: 0px;">
  1291. <el-col style="margin-top=0px; margin-bottom: 0px;">
  1292. <el-input v-model="xunchaData.gxmc" placeholder="" style="margin-top=0px; margin-bottom: 0px;"/>
  1293. </el-col>
  1294. </el-row>
  1295. </el-col>
  1296. <el-col :span="4" style="margin-top=0px; margin-bottom: 0px;">
  1297. <el-form-item label="姓名" prop="id" style="margin-top=0px; margin-bottom: 0px;">
  1298. <el-input v-model="xunchaData.sczl_name" placeholder="" style="margin-top=0px; margin-bottom: 0px;"/>
  1299. </el-form-item>
  1300. </el-col>
  1301. </el-row>
  1302. <el-row :gutter="24" style="margin-top=0px; margin-bottom: 1px;">
  1303. <el-col :span="13" style="margin-top=0px; margin-bottom: 0px;">
  1304. <el-form-item label="检验备注" prop="id" style="margin-top=0px; margin-bottom: 0px;">
  1305. <el-input v-model="xunchaData.remark" placeholder="" style="margin-top=0px; margin-bottom: 0px;"/>
  1306. </el-form-item>
  1307. </el-col>
  1308. </el-row>
  1309. <div style="display: flex;">
  1310. <div style="flex: 0.1;">
  1311. <el-aside width="20vh" style="margin: 0;">
  1312. <div class="JKWTree-tree" style="height: 100%; border-right: 1px solid #ebeef5;">
  1313. <el-tree :data="xunchatreeData" :props="defaultProps" highlight-current="true"
  1314. @node-click="xunchaNodeClick" @node-dblclick="handleNodeDoubleClick"></el-tree>
  1315. </div>
  1316. </el-aside>
  1317. </div>
  1318. <div style="flex: 1; margin: 0;">
  1319. <el-table
  1320. tooltip-effect="dark"
  1321. :data="xunchaselectData"
  1322. row-key="ID"
  1323. highlight-current-row="true"
  1324. border @row-click="dianjianhandle"
  1325. style="width:138vh; height:42vh;"
  1326. @row-dblclick="handleSelectClick"
  1327. :row-class-name="rowClassName"
  1328. :show-overflow-tooltip="true"
  1329. >
  1330. <el-table-column
  1331. prop="工单编号"
  1332. label="工单编号"
  1333. width="85"
  1334. />
  1335. <el-table-column
  1336. prop="印件号"
  1337. label="印件号"
  1338. width="70"
  1339. />
  1340. <el-table-column
  1341. prop="工序名称"
  1342. label="工序名称"
  1343. width="240"
  1344. />
  1345. <el-table-column
  1346. prop="流程单号"
  1347. label="流程单号"
  1348. width="85"
  1349. />
  1350. <el-table-column
  1351. prop="设备编号"
  1352. label="设备编号"
  1353. width="85"
  1354. />
  1355. <el-table-column
  1356. prop="班组编号"
  1357. label="班组编号"
  1358. width="85"
  1359. />
  1360. <el-table-column
  1361. prop="检验备注"
  1362. label="检验备注"
  1363. width="85"
  1364. />
  1365. <el-table-column
  1366. prop="现场管理人员"
  1367. label="现场管理人员"
  1368. width="150"
  1369. />
  1370. <el-table-column
  1371. prop="提交时间"
  1372. label="提交时间"
  1373. width="165"
  1374. />
  1375. <el-table-column
  1376. prop="开工时间"
  1377. label="开工时间"
  1378. width="165"
  1379. />
  1380. <el-table-column
  1381. prop="分钟差数"
  1382. label="分钟差数"
  1383. width="85"
  1384. />
  1385. <el-table-column
  1386. prop="归属时段"
  1387. label="归属时段"
  1388. width="165"
  1389. />
  1390. </el-table>
  1391. </div>
  1392. </div>
  1393. <template #footer>
  1394. <div class="dialog-footer">
  1395. <el-button @click="closexunchaDialog">关 闭</el-button>
  1396. <el-button type="primary" @click="xunchaDialog">提 交</el-button>
  1397. </div>
  1398. </template>
  1399. </el-dialog>
  1400. <el-dialog
  1401. v-model="chanliangVisible"
  1402. title="日产量上报"
  1403. destroy-on-close
  1404. width="160vh"
  1405. style="height: 110vh;"
  1406. >
  1407. <el-row :gutter="24" style="margin-top=0px; margin-bottom: 1px;">
  1408. <el-col :span="4" style="margin-top=0px; margin-bottom: 1px;">
  1409. <el-form-item label="工单编号" prop="id" style="margin-top=0px; margin-bottom: 0px;">
  1410. <el-input style="margin-top=0px; margin-bottom: 1px;" v-model="formData3.order" id="工单编号" @keydown="ent($event, 'rate10', '工单编号', '产品名称')" placeholder="" />
  1411. </el-form-item>
  1412. </el-col>
  1413. <el-col :span="10" style="margin-top=0px; margin-bottom: 1px;">
  1414. <el-form-item label="产品名称" prop="id" style="margin-top=0px; margin-bottom: 1px;">
  1415. <el-input v-model="formData3.product_name" id="产品名称" style="margin-top=0px; margin-bottom: 1px;" @keydown="ent($event, '工单编号', '产品名称', '工序名称')" placeholder="" />
  1416. </el-form-item>
  1417. </el-col>
  1418. <el-col :span="10" style="margin-top=0px; margin-bottom: 1px;">
  1419. <el-form-item label="工序名称" prop="id" style="margin-top=0px; margin-bottom: 1px;">
  1420. <el-input v-model="formData3.gxmc" id="工序名称" style="margin-top=0px; margin-bottom: 1px;" @keydown="ent($event, '产品名称', '工序名称', '印件号')" placeholder="" />
  1421. </el-form-item>
  1422. </el-col>
  1423. </el-row>
  1424. <el-row :gutter="24" style="margin-top=0px; margin-bottom: 1px;">
  1425. <el-col :span="4" style="margin-top=0px; margin-bottom: 1px;">
  1426. <el-form-item label="印件号" prop="id" style="margin-top=0px; margin-bottom: 1px;">
  1427. <el-input v-model="formData3.yjno" style="margin-top=0px; margin-bottom: 1px;" id="印件号" @keydown="ent($event, '工序名称', '印件号', '印件名称')" placeholder="" />
  1428. </el-form-item>
  1429. </el-col>
  1430. <el-col :span="10" style="margin-top=0px; margin-bottom: 1px;">
  1431. <el-form-item label="印件名称" prop="id" style="margin-top=0px; margin-bottom: 1px;">
  1432. <el-input v-model="formData3.yj_name" id="印件名称" style="margin-top=0px; margin-bottom: 1px;" @keydown="ent($event, '印件号', '印件名称', '工艺名称')" placeholder="" />
  1433. </el-form-item>
  1434. </el-col>
  1435. <el-col :span="8" style="margin-top=0px; margin-bottom: 1px;">
  1436. <el-form-item label="工艺名称" prop="id" style="margin-top=0px; margin-bottom: 1px;">
  1437. <el-input v-model="formData3.gy_name" id="工艺名称" style="margin-top=0px; margin-bottom: 1px;" @keydown="ent($event, '印件名称', '工艺名称', 'gxh')" placeholder="" />
  1438. </el-form-item>
  1439. </el-col>
  1440. <el-col :span="2" style="margin-top=0px; margin-bottom: 1px;">
  1441. <el-form-item label="" prop="id" style="margin-top=0px; margin-bottom: 1px;">
  1442. <el-input v-model="formData3.gxh" id="gxh" style="margin-top=0px; margin-bottom: 1px;" @keydown="ent($event, '工艺名称', 'gxh', '日期')" placeholder="" />
  1443. </el-form-item>
  1444. </el-col>
  1445. </el-row>
  1446. <el-row :gutter="24" style="margin-top=0px; margin-bottom: 1px;">
  1447. <el-col :span="1" style="margin-top=0px; margin-bottom: 1px;">
  1448. </el-col>
  1449. <el-col :span="5" style="margin-top=0px; margin-bottom: 1px;">
  1450. <el-form-item label="日期" prop="id" style="margin-top=0px; margin-bottom: 1px;">
  1451. <el-input v-model="formData3.日期" id="日期" style="margin-top=0px; margin-bottom: 1px;" @keydown="ent($event, 'gxh', '日期', '流程标牌')" placeholder="" />
  1452. </el-form-item>
  1453. </el-col>
  1454. <el-col :span="5" style="margin-top=0px; margin-bottom: 1px;">
  1455. <el-form-item label="流程标牌" prop="id" style="margin-top=0px; margin-bottom: 1px;">
  1456. <el-input v-model="formData3.流程标牌" id="流程标牌" style="margin-top=0px; margin-bottom: 1px;" @keydown="ent($event, '日期', '流程标牌', '上机时间')" placeholder="" />
  1457. </el-form-item>
  1458. </el-col>
  1459. <el-col :span="5" style="margin-top=0px; margin-bottom: 1px;">
  1460. <el-form-item label="上机时间" prop="id" style="margin-top=0px; margin-bottom: 1px;">
  1461. <el-input v-model="formData3.上机时间" id="上机时间" style="margin-top=0px; margin-bottom: 1px;" @keydown="ent($event, '流程标牌', '上机时间', '下机时间')" placeholder="" />
  1462. </el-form-item>
  1463. </el-col>
  1464. <el-col :span="5" style="margin-top=0px; margin-bottom: 1px;">
  1465. <el-form-item label="下机时间" prop="" style="margin-top=0px; margin-bottom: 1px;">
  1466. <el-input v-model="formData3.下机时间" style="margin-top=0px; margin-bottom: 1px;" id="下机时间" @keydown="ent($event, '上机时间', '下机时间', '产量')" placeholder="" />
  1467. </el-form-item>
  1468. </el-col>
  1469. <el-col :span="3">
  1470. </el-col>
  1471. </el-row>
  1472. <el-row :gutter="24" style="margin-top=0px; margin-bottom: 1px;">
  1473. <el-col :span="1" style="margin-top=0px; margin-bottom: 1px;">
  1474. </el-col>
  1475. <el-col :span="4" style="margin-top=0px; margin-bottom: 1px;">
  1476. <el-form-item label="产量" prop="id" style="margin-top=0px; margin-bottom: 1px;">
  1477. <el-input v-model="formData3.产量" id="产量" style="margin-top=0px; margin-bottom: 1px;" @keydown="ent($event, '下机时间', '产量', '制程废品')" placeholder="" />
  1478. </el-form-item>
  1479. </el-col>
  1480. <el-col :span="4" style="margin-top=0px; margin-bottom: 1px;">
  1481. <el-form-item label="制程废品" prop="id" style="margin-top=0px; margin-bottom: 1px;">
  1482. <el-input v-model="formData3.制程废品" id="制程废品" style="margin-top=0px; margin-bottom: 1px;" @keydown="ent($event, '产量', '制程废品', '制程次品')" placeholder="" />
  1483. </el-form-item>
  1484. </el-col>
  1485. <el-col :span="3" style="margin-top=0px; margin-bottom: 1px;">
  1486. <el-form-item label="制程次品" prop="id" style="margin-top=0px; margin-bottom: 1px;">
  1487. <el-input v-model="formData3.制程次品" id="制程次品" style="margin-top=0px; margin-bottom: 1px;" @keydown="ent($event, '制程废品', '制程次品', '前工序废')" placeholder="" />
  1488. </el-form-item>
  1489. </el-col>
  1490. <el-col :span="3" style="margin-top=0px; margin-bottom: 1px;">
  1491. <el-form-item label="前工序废" prop="" style="margin-top=0px; margin-bottom: 1px;">
  1492. <el-input v-model="formData3.前工序废" id="前工序废" style="margin-top=0px; margin-bottom: 1px;" @keydown="ent($event, '制程次品', '前工序废', '来料异常')" placeholder="" />
  1493. </el-form-item>
  1494. </el-col>
  1495. <el-col :span="3" style="margin-top=0px; margin-bottom: 1px;">
  1496. <el-form-item label="来料异常" prop="" style="margin-top=0px; margin-bottom: 1px;">
  1497. <el-input v-model="formData3.来料异常" id="来料异常" style="margin-top=0px; margin-bottom: 1px;" @keydown="ent($event, '前工序废', '来料异常', '联数')" placeholder="" />
  1498. </el-form-item>
  1499. </el-col>
  1500. <el-col :span="3" style="margin-top=0px; margin-bottom: 1px;">
  1501. <el-form-item label="联数" prop="" style="margin-top=0px; margin-bottom: 1px;">
  1502. <el-input v-model="formData3.联数" id="联数" style="margin-top=0px; margin-bottom: 1px;" @keydown="ent($event, '来料异常', '联数', '墨色')" placeholder="" />
  1503. </el-form-item>
  1504. </el-col>
  1505. <el-col :span="3" style="margin-top=0px; margin-bottom: 1px;">
  1506. <el-form-item label="墨色" prop="" style="margin-top=0px; margin-bottom: 1px;">
  1507. <el-input v-model="formData3.墨色" id="墨色" style="margin-top=0px; margin-bottom: 1px;" @keydown="ent($event, '联数', '墨色', '装版总时长')" placeholder="" />
  1508. </el-form-item>
  1509. </el-col>
  1510. </el-row>
  1511. <el-row :gutter="20" style="margin-top=0px; margin-bottom: 1px;">
  1512. <el-col :span="4" style="margin-top=0px; margin-bottom: 1px;">
  1513. <el-form-item label="装版总时长" prop="id" style="margin-top=0px; margin-bottom: 1px;">
  1514. <el-input v-model="formData3.装版总时长" id="装版总时长" style="margin-top=0px; margin-bottom: 1px;" @keydown="ent($event, '墨色', '装版总时长', '打样总工时')" placeholder="" />
  1515. </el-form-item>
  1516. </el-col>
  1517. <el-col :span="4" style="margin-top=0px; margin-bottom: 1px;">
  1518. <el-form-item label="打样总工时" prop="id" style="margin-top=0px; margin-bottom: 1px;">
  1519. <el-input v-model="formData3.打样总工时" style="margin-top=0px; margin-bottom: 1px;" id="打样总工时" @keydown="ent($event, '装版总时长', '打样总工时', '通电工时')" placeholder="" />
  1520. </el-form-item>
  1521. </el-col>
  1522. <el-col :span="4" style="margin-top=0px; margin-bottom: 1px;">
  1523. <el-form-item label="通电工时" prop="id" style="margin-top=0px; margin-bottom: 1px;">
  1524. <el-input v-model="formData3.通电工时" style="margin-top=0px; margin-bottom: 1px;" id="通电工时" @keydown="ent($event, '打样总工时', '通电工时', '定额代号')" placeholder="" />
  1525. </el-form-item>
  1526. </el-col>
  1527. </el-row>
  1528. <el-row :gutter="20" style="margin-top=0px; margin-bottom: 1vh;">
  1529. <el-col :span="4" style="margin-top=0px; margin-bottom: 1px;">
  1530. <el-form-item label="定额代号" prop="id" style="margin-top=0px; margin-bottom: 1px;">
  1531. <el-input v-model="formData3.定额代号" id="定额代号" style="margin-top=0px; margin-bottom: 1px;" @keydown="ent($event, '通电工时', '定额代号', '码包')" placeholder="" />
  1532. </el-form-item>
  1533. </el-col>
  1534. <el-col :span="8" style="margin-top=0px; margin-bottom: 1px;">
  1535. </el-col>
  1536. <el-col :span="4" style="margin-top=0px; margin-bottom: 1px;">
  1537. <el-form-item label="码包" prop="id" style="margin-top=0px; margin-bottom: 1px;">
  1538. <el-input v-model="formData3.码包" style="margin-top=0px; margin-bottom: 1px;" id="码包" @keydown="ent($event, '定额代号', '码包', '主电表')" placeholder="" />
  1539. </el-form-item>
  1540. </el-col>
  1541. <el-col :span="4" style="margin-top=0px; margin-bottom: 1px;">
  1542. <el-form-item label="主电表" prop="id" style="margin-top=0px; margin-bottom: 1px;">
  1543. <el-input v-model="formData3.主电表" style="margin-top=0px; margin-bottom: 1px;" id="主电表" @keydown="ent($event, '码包', '主电表', '辅电表')" placeholder="" />
  1544. </el-form-item>
  1545. </el-col>
  1546. <el-col :span="4" style="margin-top=0px; margin-bottom: 1px;">
  1547. <el-form-item label="辅电表" prop="id" style="margin-top=0px; margin-bottom: 1px;">
  1548. <el-input v-model="formData3.辅电表" id="辅电表" style="margin-top=0px; margin-bottom: 1px;" @keydown="ent($event, '主电表', '辅电表', 'bzdh')" placeholder="" />
  1549. </el-form-item>
  1550. </el-col>
  1551. </el-row>
  1552. <div style="display: flex;">
  1553. <div style="width: 131vh;">组员及分配比例</div>
  1554. <div style="width: 13vh;">特殊组员</div>
  1555. <div>拉料人员</div>
  1556. </div>
  1557. <el-row :gutter="10" style="margin-top: 1vh;">
  1558. <el-col :span="2">
  1559. <el-input v-model="formData3.sczl_bzdh" id="bzdh" @keydown="ent($event, '辅电表', 'bzdh', 'bh1')" placeholder="ZI00401" />
  1560. </el-col>
  1561. <el-col :span="2">
  1562. <el-input v-model="formData3.sczl_bh1" id="bh1" @keydown="ent($event, 'bzdh', 'bh1', 'bh2')" @keyup.enter.native="getygsubmit($event, '1')" placeholder="" />
  1563. </el-col>
  1564. <el-col :span="2">
  1565. <el-input v-model="formData3.sczl_bh2" id="bh2" @keydown="ent($event, 'bh1', 'bh2', 'bh3')" @keyup.enter.native="getygsubmit($event, '2')" placeholder="" />
  1566. </el-col>
  1567. <el-col :span="2">
  1568. <el-input v-model="formData3.sczl_bh3" id="bh3" @keydown="ent($event, 'bh2', 'bh3', 'bh4')" @keyup.enter.native="getygsubmit($event, '3')" placeholder="" />
  1569. </el-col>
  1570. <el-col :span="2">
  1571. <el-input v-model="formData3.sczl_bh4" id="bh4" @keydown="ent($event, 'bh3', 'bh4', 'bh5')" @keyup.enter.native="getygsubmit($event, '4')" placeholder="" />
  1572. </el-col>
  1573. <el-col :span="2">
  1574. <el-input v-model="formData3.sczl_bh5" id="bh5" @keydown="ent($event, 'bh4', 'bh5', 'bh6')" @keyup.enter.native="getygsubmit($event, '5')" placeholder="" />
  1575. </el-col>
  1576. <el-col :span="2">
  1577. <el-input v-model="formData3.sczl_bh6" id="bh6" @keydown="ent($event, 'bh5', 'bh6', 'bh7')" @keyup.enter.native="getygsubmit($event, '6')" placeholder="" />
  1578. </el-col>
  1579. <el-col :span="2">
  1580. <el-input v-model="formData3.sczl_bh7" id="bh7" @keydown="ent($event, 'bh6', 'bh7', 'bh8')" @keyup.enter.native="getygsubmit($event, '7')" placeholder="" />
  1581. </el-col>
  1582. <el-col :span="2">
  1583. <el-input v-model="formData3.sczl_bh8" id="bh8" @keydown="ent($event, 'bh7', 'bh8', 'bh9')" @keyup.enter.native="getygsubmit($event, '8')" placeholder="" />
  1584. </el-col>
  1585. <el-col :span="2">
  1586. <el-input v-model="formData3.sczl_bh9" id="bh9" @keydown="ent($event, 'bh8', 'bh9', 'bh10')" @keyup.enter.native="getygsubmit($event, '9')" placeholder="" />
  1587. </el-col>
  1588. <el-col :span="2">
  1589. <el-input v-model="formData3.sczl_bh10" id="bh10" @keydown="ent($event, 'bh9', 'bh10', 'bh11')" @keyup.enter.native="getygsubmit($event, '10')" placeholder="" />
  1590. </el-col>
  1591. <el-col :span="2">
  1592. <el-input v-model="formData3.sczl_bh11" id="bh11" @keydown="ent($event, 'bh10', 'bh11', 'name1')" @keyup.enter.native="getygsubmit($event, '11')" placeholder="" />
  1593. </el-col>
  1594. </el-row>
  1595. <el-row :gutter="10" style="margin-top: 10px;">
  1596. <el-col :span="2">
  1597. </el-col>
  1598. <el-col :span="2">
  1599. <el-input v-model="formData3.sczl_name1" id="name1" @keydown="ent($event, 'bh11', 'name1', 'name2')" placeholder="" />
  1600. </el-col>
  1601. <el-col :span="2">
  1602. <el-input v-model="formData3.sczl_name2" id="name2" @keydown="ent($event, 'name1', 'name2', 'name3')" placeholder="" />
  1603. </el-col>
  1604. <el-col :span="2">
  1605. <el-input v-model="formData3.sczl_name3" id="name3" @keydown="ent($event, 'name2', 'name3', 'name4')" placeholder="" />
  1606. </el-col>
  1607. <el-col :span="2">
  1608. <el-input v-model="formData3.sczl_name4" id="name4" @keydown="ent($event, 'name3', 'name4', 'name5')" placeholder="" />
  1609. </el-col>
  1610. <el-col :span="2">
  1611. <el-input v-model="formData3.sczl_name5" id="name5" @keydown="ent($event, 'name4', 'name5', 'name6')" placeholder="" />
  1612. </el-col>
  1613. <el-col :span="2">
  1614. <el-input v-model="formData3.sczl_name6" id="name6" @keydown="ent($event, 'name5', 'name6', 'name7')" placeholder="" />
  1615. </el-col>
  1616. <el-col :span="2">
  1617. <el-input v-model="formData3.sczl_name7" id="name7" @keydown="ent($event, 'name6', 'name7', 'name8')" placeholder="" />
  1618. </el-col>
  1619. <el-col :span="2">
  1620. <el-input v-model="formData3.sczl_name8" id="name8" @keydown="ent($event, 'name7', 'name8', 'name9')" placeholder="" />
  1621. </el-col>
  1622. <el-col :span="2">
  1623. <el-input v-model="formData3.sczl_name9" id="name9" @keydown="ent($event, 'name8', 'name9', 'name10')" placeholder="" />
  1624. </el-col>
  1625. <el-col :span="2">
  1626. <el-input v-model="formData3.sczl_name10" id="name10" @keydown="ent($event, 'name9', 'name10', 'name11')" placeholder="" />
  1627. </el-col>
  1628. <el-col :span="2">
  1629. <el-input v-model="formData3.sczl_name11" id="name11" @keydown="ent($event, 'name10', 'name11', 'rate1')" placeholder="" />
  1630. </el-col>
  1631. </el-row>
  1632. <el-row :gutter="10" style="margin-top: 10px;">
  1633. <el-col :span="2">
  1634. </el-col>
  1635. <el-col :span="2">
  1636. <el-input v-model="formData3.sczl_rate1" id="rate1" @keydown="ent($event, 'name11', 'rate1', 'rate2')" placeholder="" />
  1637. </el-col>
  1638. <el-col :span="2">
  1639. <el-input v-model="formData3.sczl_rate2" id="rate2" @keydown="ent($event, 'rate1', 'rate2', 'rate3')" placeholder="" />
  1640. </el-col>
  1641. <el-col :span="2">
  1642. <el-input v-model="formData3.sczl_rate3" id="rate3" @keydown="ent($event, 'rate2', 'rate3', 'rate4')" placeholder="" />
  1643. </el-col>
  1644. <el-col :span="2">
  1645. <el-input v-model="formData3.sczl_rate4" id="rate4" @keydown="ent($event, 'rate3', 'rate4', 'rate5')" placeholder="" />
  1646. </el-col>
  1647. <el-col :span="2">
  1648. <el-input v-model="formData3.sczl_rate5" id="rate5" @keydown="ent($event, 'rate4', 'rate5', 'rate6')" placeholder="" />
  1649. </el-col>
  1650. <el-col :span="2">
  1651. <el-input v-model="formData3.sczl_rate6" id="rate6" @keydown="ent($event, 'rate5', 'rate6', 'rate7')" placeholder="" />
  1652. </el-col>
  1653. <el-col :span="2">
  1654. <el-input v-model="formData3.sczl_rate7" id="rate7" @keydown="ent($event, 'rate6', 'rate7', 'rate8')" placeholder="" />
  1655. </el-col>
  1656. <el-col :span="2">
  1657. <el-input v-model="formData3.sczl_rate8" id="rate8" @keydown="ent($event, 'rate7', 'rate8', 'rate9')" placeholder="" />
  1658. </el-col>
  1659. <el-col :span="2">
  1660. <el-input v-model="formData3.sczl_rate9" id="rate9" @keydown="ent($event, 'rate8', 'rate9', 'rate10')" placeholder="" />
  1661. </el-col>
  1662. <el-col :span="2">
  1663. <el-input v-model="formData3.sczl_rate10" id="rate10" @keydown="ent($event, 'rate9', 'rate10', '工单编号')" placeholder="" />
  1664. </el-col>
  1665. <el-col :span="2">
  1666. </el-col>
  1667. </el-row>
  1668. <el-table
  1669. tooltip-effect="dark"
  1670. :data="chanliangselectData"
  1671. row-key="ID"
  1672. highlight-current-row="true"
  1673. border
  1674. style="width:100%"
  1675. height="40vh"
  1676. @row-dblclick="batchaddSelectClick"
  1677. :selectable="row => rowSelectable(row)"
  1678. @selection-change="chanliangSelectionChange"
  1679. >
  1680. <el-table-column type="selection" width="55" align="center" label=""></el-table-column>
  1681. <el-table-column
  1682. prop="batch"
  1683. label="物料编号"
  1684. width="150"
  1685. />
  1686. <el-table-column
  1687. prop="BOM_物料名称"
  1688. label="物料名称"
  1689. width="400"
  1690. />
  1691. <el-table-column
  1692. prop="采购单号"
  1693. label="采购单号"
  1694. width="150"
  1695. />
  1696. <el-table-column
  1697. prop="st_wlbh"
  1698. label="供方批次"
  1699. width="400"
  1700. />
  1701. <el-table-column
  1702. prop="卷号"
  1703. label="卷号"
  1704. width="150"
  1705. />
  1706. <el-table-column
  1707. prop="Uniqid"
  1708. label="UniqID"
  1709. width="150"
  1710. />
  1711. </el-table>
  1712. <!-- </el-scrollbar> -->
  1713. <template #footer>
  1714. <div class="dialog-footer">
  1715. <el-button @click="closeDialog">取 消</el-button>
  1716. <el-button type="primary" @click="chanliangenterDialog">确 定</el-button>
  1717. </div>
  1718. </template>
  1719. </el-dialog>
  1720. <Shebeizhuangtai
  1721. v-if="dialogSbyxgl"
  1722. v-model="dialogSbyxgl"
  1723. title="【01.30 08:30】【JY01#--海德堡对开八色平版胶印机(JY08-01)】【2311116-->钻石(荷花)盒包装纸】【01--胶印】"
  1724. :formData="formData"
  1725. />
  1726. </el-main>
  1727. </el-container>
  1728. </el-container>
  1729. </div>
  1730. </template>
  1731. <script setup>
  1732. import {
  1733. createCompany,
  1734. deleteCompany,
  1735. deleteCompanyByIds,
  1736. updateCompany,
  1737. findCompany,
  1738. getCompanyList
  1739. } from '@/api/company'
  1740. import {
  1741. EquipmentSchedulingEdit,
  1742. } from "@/api/yunyin/yunying";
  1743. import {
  1744. ProcessInspectionRecordsItemAdd,
  1745. AdditionalInspectionRecordAdd,
  1746. getMac,
  1747. remodelGetTab,
  1748. setMachineTeam,
  1749. ModelChangeRecord,
  1750. ComplaintRecord,
  1751. RemodelDetail,
  1752. MachineTeamAdd
  1753. } from '@/api/jixiaoguanli/baogong'
  1754. import {
  1755. facilityTab,
  1756. facilitychanLiang,
  1757. facilityInspect,
  1758. facilityProduction,
  1759. facilityTeam,
  1760. facilityMachineList,
  1761. facilitySpotCheckItem,
  1762. facilityInspectionItem,
  1763. reportProduceInfo,
  1764. reportName,
  1765. reportInfo,
  1766. reportMachineMac,
  1767. facilityWorklist,
  1768. setProcessStatus,
  1769. submitDailyProduction,
  1770. facilityDetail,
  1771. inspectionRecord,
  1772. getYg,
  1773. submitPatrolRecord,
  1774. getMachineMac,
  1775. setMachineStatus,
  1776. fieldInspectionRecord,
  1777. InspectionItemAdd,
  1778. ProcessInspectionRecordsItem,
  1779. MachineDetailList,
  1780. facilityPrintGetTab,
  1781. facilityPrintDetail,
  1782. facilityProcedure
  1783. } from '@/api/jixiaoguanli/jitairibaobiao'
  1784. import {
  1785. demoCustomer
  1786. } from "@/api/demo";
  1787. // 全量引入格式化工具 请按需保留
  1788. import { getDictFunc, formatDate, formatBoolean, filterDict, ReturnArrImg, onDownloadFile } from '@/utils/format'
  1789. import { ElMessage, ElMessageBox } from 'element-plus'
  1790. import { ref, reactive } from 'vue'
  1791. import Shebeizhuangtai from '@/view/performance/09-workOrderVerification/componets/shebeizhuangtai.vue'
  1792. const dialogSbyxgl=ref(false)
  1793. const zhichengstatus=ref(false)
  1794. const yinbanselectData = ref([])
  1795. defineOptions({
  1796. name: 'Company'
  1797. })
  1798. const xunchatreeData=ref([{label: '现场巡查记录',} ])
  1799. const activName=ref('first')
  1800. const activNames=ref('first')
  1801. let checked3=ref(false)
  1802. const detailData = reactive([])
  1803. const treeData=ref([])
  1804. const huanxingtreeData=ref([])
  1805. const huanxingselectData = ref([])
  1806. const huanxingData = ref({})
  1807. const huanxingstatus=ref(false)
  1808. const zhichengtreeData=ref([{
  1809. label: '首件与过程确认'
  1810. },{
  1811. label: '机台检验'
  1812. },{
  1813. label: 'IPQC检验'
  1814. }])
  1815. let dianjiantreeData;
  1816. let JTMC=ref()
  1817. let CJMC=ref()
  1818. const sbzyData = reactive([])
  1819. const FPData = reactive([])
  1820. const CLMXData = reactive([])
  1821. let JYData = reactive([])
  1822. //键盘 input框跳转
  1823. const ent = (event,id1,id2,id3) => {
  1824. if (event.keyCode === 13 || event.keyCode === 40) { // Enter 或向下箭头
  1825. const idMap = {
  1826. 'bh1': '1',
  1827. 'bh2': '2',
  1828. 'bh3': '3',
  1829. 'bh4': '4',
  1830. 'bh5': '5',
  1831. 'bh6': '6',
  1832. 'bh7': '7',
  1833. 'bh8': '8',
  1834. 'bh9': '9',
  1835. 'bh10': '10',
  1836. 'bh11': '11',
  1837. };
  1838. if (idMap.hasOwnProperty(id2) && event.keyCode === 13) {
  1839. getygsubmit('', idMap[id2]);
  1840. }else if(id3!=''){
  1841. document.getElementById(id3).focus()
  1842. }
  1843. } else if (event.keyCode === 38) { // 向上箭头
  1844. if(id1!=''){
  1845. document.getElementById(id1).focus()
  1846. }
  1847. }else if (event.keyCode === 8) { // 删除箭头
  1848. if(id1!='' && document.getElementById(id2).value==''){
  1849. document.getElementById(id1).focus()
  1850. }
  1851. console.log(document.getElementById(id2).value)
  1852. }else if (event.keyCode === 37) { // 向左箭头
  1853. if(id1!='' && document.getElementById(id2).selectionStart==0){
  1854. document.getElementById(id1).focus()
  1855. }
  1856. }else if (event.keyCode === 39) { // 向右箭头
  1857. if(id3!='' && document.getElementById(id2).selectionStart == document.getElementById(id2).value.length){
  1858. document.getElementById(id3).focus()
  1859. }
  1860. }
  1861. }
  1862. const huanxingNodeClick = (node) => {
  1863. //存放当前节点的nodeId
  1864. if(node.machine){
  1865. // console.log(node.label.split('/')[1])
  1866. huanxingstatus.value=true
  1867. remodelDetail(node.label.split('/')[1])
  1868. modelChangeRecord(node.machine)
  1869. }else{
  1870. console.log('2')
  1871. }
  1872. }
  1873. const modelChangeRecord = async (val) => {
  1874. const response = await ModelChangeRecord({machine:val});
  1875. if (response.code === 0) {
  1876. huanxingselectData.value=response.data
  1877. }
  1878. }
  1879. const remodelDetail = async (val) => {
  1880. const response = await RemodelDetail({UniqId:val});
  1881. if (response.code === 0) {
  1882. huanxingData.value=response.data
  1883. if(response.data.项目1==1){
  1884. huanxingData.value.项目1=true
  1885. }else{
  1886. huanxingData.value.项目1=false
  1887. }
  1888. if(response.data.项目2==1){
  1889. huanxingData.value.项目2=true
  1890. }else{
  1891. huanxingData.value.项目2=false
  1892. }
  1893. if(response.data.项目3==1){
  1894. huanxingData.value.项目3=true
  1895. }else{
  1896. huanxingData.value.项目3=false
  1897. }
  1898. if(response.data.项目4==1){
  1899. huanxingData.value.项目4=true
  1900. }else{
  1901. huanxingData.value.项目4=false
  1902. }
  1903. if(response.data.项目5==1){
  1904. huanxingData.value.项目5=true
  1905. }else{
  1906. huanxingData.value.项目5=false
  1907. }
  1908. }
  1909. }
  1910. const handleNodeClick = (nodeData,node) => {
  1911. //存放当前节点的nodeId
  1912. if(nodeData.level === 1){
  1913. console.log('1')
  1914. }else{
  1915. console.log('2')
  1916. }
  1917. // if (nodeData.level === 1) {
  1918. // console.log(node.label); // 第一级节点
  1919. // } else if (nodeData.level === 2) {
  1920. // console.log(node.label); // 第二级节点
  1921. // JTMC=node.label.split("【")[0]
  1922. // FacilityProduction()
  1923. // FacilityWorklist()
  1924. // FacilityTeam(JTMC)
  1925. // // InspectionRecord()
  1926. // // FacilityDetail()
  1927. // // ReportProduceInfo()
  1928. // console.log(JTMC)
  1929. // } else if (nodeData.level === 3) {
  1930. // console.log(node.label); // 第三级节点
  1931. // }
  1932. // JTMC=node.label.split("【")[0]
  1933. // FacilityProduction()
  1934. // console.log(node.label)
  1935. }
  1936. //当前生产订单
  1937. // const formDatabz = reactive({
  1938. // sczl_bh12: [],
  1939. // sczl_name12: [],
  1940. // });
  1941. const classbz=ref([])
  1942. const FacilityProduction = async (addr) => {
  1943. const response = await facilityProduction({machine:JTMC});
  1944. if (response.code === 0) {
  1945. formData.value.工单编号 = response.data.工单编号;
  1946. formData.value.印件号 = response.data.印件号;
  1947. formData.value.工序号 = response.data.工序名称.substring(0,2);
  1948. formData.value.工序名称 = response.data.工序名称;
  1949. formData.value.产品名称 = response.data.产品名称;
  1950. formData.value.班组Id=response.data.班组Id
  1951. formData.value.machine=JTMC
  1952. formData.value.状态=response.data.状态
  1953. formData.value.定额代号=response.data.定额代号
  1954. formData.value.addr=addr
  1955. BZMC.value=response.data.班组编号
  1956. // 填充sczl_bh和sczl_name字段
  1957. let sczl_bhkey=''
  1958. let sczl_namekey=''
  1959. if (response.data.班组成员) {
  1960. for (let i = 0; i < Math.min(Object.keys(response.data.班组成员).length, 9); i++) {
  1961. sczl_bhkey=`sczl_bh${i+1}`
  1962. sczl_namekey=`sczl_name${i+1}`
  1963. formData.value[sczl_bhkey] = response.data.班组成员[i]['编号'];
  1964. formData.value[sczl_namekey] = response.data.班组成员[i]['姓名'];
  1965. classbz.value[i]=response.data.班组成员[i]['编号']
  1966. }
  1967. }
  1968. formData.value.class=classbz.value.join(',')
  1969. // for (let i = 1; i <= 10; i++) {
  1970. // if (response.data.班组成员) {
  1971. // // formData.value.['sczl_bh12'] = response.data.班组成员[i]['编号'];
  1972. // // formData.value['sczl_name12'] = response.data.班组成员[i]['名字'];
  1973. // // console.log(formData)
  1974. // // console.log(response.data[sczl_bh]['员工姓名'])
  1975. // // console.log(formData.value.sczl_bh)
  1976. // // console.log(sczl_name)
  1977. // } else {
  1978. // console.log(555555555555555)
  1979. // // 如果字段不存在,可以在这里进行处理
  1980. // // console.log('2');
  1981. // // formData.value[sczl_bh] = response.data[sczl_bh]['员工编号'];
  1982. // // formData.value[sczl_name] = response.data[sczl_bh]['员工姓名'];
  1983. // // console.log(formData.value.sczl_bh)
  1984. // // console.log(sczl_name)
  1985. // }
  1986. // }
  1987. const responses = await MachineDetailList({workshop:CJMC});
  1988. if(responses.code===0){
  1989. responses.data.map(item=>{
  1990. if(item.设备编号==JTMC){
  1991. formData.value.status=item.状态
  1992. }
  1993. })
  1994. }
  1995. if(response.data.工单编号){
  1996. InspectionRecord()
  1997. FacilityDetail()
  1998. }
  1999. FacilityWorklist()
  2000. FacilityTeam(JTMC)
  2001. }
  2002. }
  2003. //设备工作清单
  2004. const FacilityWorklist = async () => {
  2005. const response = await facilityWorklist({machine:JTMC});
  2006. if (response.code === 0) {
  2007. sbzyData.splice(0, sbzyData.length, ...response.data);
  2008. // formData.value.productCode= response.data[0]['产品代号']
  2009. response.data.map(item=>{
  2010. if(item['工单编号|质量信息'].substring(0, 7)==formData.value.工单编号){
  2011. formData.value.productCode=item.产品代号
  2012. }
  2013. })
  2014. selectData.value=[]
  2015. const res = await facilityProcedure({ Gd_gdbh: sbzyData[0]['工单编号|质量信息'].substring(0, 7) })
  2016. // formData.value.productCode= response.data[0]['产品代号']
  2017. // console.log(res)
  2018. if (res.code === 0) {
  2019. selectData.value = res.data
  2020. }
  2021. }
  2022. }
  2023. //检验记录
  2024. const InspectionRecord = async () => {
  2025. JYData=[]
  2026. const response = await inspectionRecord({machine:JTMC,Gd_gdbh:formData.value.工单编号,team:BZMC.value});
  2027. if(response.code==0){
  2028. // 提取 inspectiontime 作为列名
  2029. // Extract inspectiontime as columnNames
  2030. columnNames = response.data.inspectiontime;
  2031. // Populate drzcData with row data
  2032. for (const key in response.data) {
  2033. if (key !== 'inspectiontime') {
  2034. const item = response.data[key];
  2035. const rowData = {
  2036. '工单编号': item['工单编号'],
  2037. '印件号': item['印件号'],
  2038. '工序名称': item['工序名称'],
  2039. '检验项目': item['检验项目']
  2040. };
  2041. // Initialize time columns with '—'
  2042. columnNames.forEach(time => {
  2043. rowData[time] = '';
  2044. });
  2045. // Split inspectresult and fill the corresponding time columns
  2046. const results = item['inspectresult'].split(',');
  2047. results.forEach(result => {
  2048. if (columnNames.includes(result)) {
  2049. rowData[result] = '√';
  2050. }else{rowData[result] = ''}
  2051. });
  2052. // Add the row data to drzcData
  2053. JYData.push(rowData);
  2054. }
  2055. }
  2056. console.log(JYData);
  2057. }
  2058. }
  2059. //当班产量明细
  2060. const FacilityDetail = async () => {
  2061. formData.value.production_now=0
  2062. formData.value.production_all=0
  2063. const response = await facilityDetail({ machine: JTMC, Gd_gdbh: formData.value.工单编号, team:BZMC.value });
  2064. if (response.code === 0) {
  2065. if(response.data === null){
  2066. formData.value.上机时间=currentDate+' 08:30:00'
  2067. }else{
  2068. formData.value.上机时间=currentDate.split('-')[0]+'-'+response.data[0]['生产时间段'].split('>')[1]+':00'
  2069. }
  2070. console.log(formData.value.上机时间)
  2071. CLMXData.splice(0, CLMXData.length, ...Object.values(response.data));
  2072. formData.value.production_now=response.data[0].产量
  2073. formData.value.production_all=response.data.total.产量
  2074. }
  2075. };
  2076. //员工编号回车事件
  2077. const getygsubmit = (event, inputName) => {
  2078. // console.log(inputName)
  2079. let combinedString = 'sczl_bh' + inputName;
  2080. // console.log(combinedString)
  2081. // let variableName = 'sczl_gdbh'+inputName;
  2082. let variableValue = eval('formData3.value.' + combinedString);
  2083. // console.log(variableValue)
  2084. GetYg(variableValue,inputName)
  2085. }
  2086. const getbzyg = async (value,key) => {
  2087. let bzyg=''
  2088. bzyg=`code${key}`
  2089. let bzxm=''
  2090. bzxm=`name${key}`
  2091. const response = await getYg({sczl_bh:formDatas.value[bzyg]});
  2092. if (response.code === 0) {
  2093. formDatas.value[bzxm]=response.data.ygxm
  2094. }
  2095. }
  2096. const getxunchayg = async (value) => {
  2097. const response = await getYg({sczl_bh:xunchaData.value.sczl_bh});
  2098. if (response.code === 0) {
  2099. xunchaData.value.sczl_name=response.data.ygxm
  2100. }
  2101. }
  2102. //获取员工信息
  2103. const GetYg = async (value,inputName) => {
  2104. const response = await getYg({sczl_bh:value});
  2105. // console.log(response)
  2106. if (response.code === 0) {
  2107. // console.log(response.data.ygxm)
  2108. let Bname = 'sczl_name' + inputName;
  2109. formData3.value[Bname]=response.data.ygxm
  2110. // console.log(formData.value[Bname])
  2111. }
  2112. }
  2113. // 验证规则
  2114. const rule = reactive({
  2115. })
  2116. const searchRule = reactive({
  2117. createdAt: [
  2118. { validator: (rule, value, callback) => {
  2119. if (searchInfo.value.startCreatedAt && !searchInfo.value.endCreatedAt) {
  2120. callback(new Error('请填写结束日期'))
  2121. } else if (!searchInfo.value.startCreatedAt && searchInfo.value.endCreatedAt) {
  2122. callback(new Error('请填写开始日期'))
  2123. } else if (searchInfo.value.startCreatedAt && searchInfo.value.endCreatedAt && (searchInfo.value.startCreatedAt.getTime() === searchInfo.value.endCreatedAt.getTime() || searchInfo.value.startCreatedAt.getTime() > searchInfo.value.endCreatedAt.getTime())) {
  2124. callback(new Error('开始日期应当早于结束日期'))
  2125. } else {
  2126. callback()
  2127. }
  2128. }, trigger: 'change' }
  2129. ],
  2130. })
  2131. const elFormRef = ref()
  2132. const elSearchFormRef = ref()
  2133. // =========== 表格控制部分 ===========
  2134. const page = ref(1)
  2135. const total = ref(0)
  2136. const pageSize = ref(10)
  2137. const tableData = ref([])
  2138. const zhibiaoselectData=ref([])
  2139. const yinbanVisible = ref(false)
  2140. const yinbantreeData=ref([])
  2141. const fujiaselectData=ref([])
  2142. const searchInfo = ref({})
  2143. // 重置
  2144. const onReset = () => {
  2145. searchInfo.value = {}
  2146. getTableData()
  2147. }
  2148. // 搜索
  2149. const onSubmit = () => {
  2150. elSearchFormRef.value?.validate(async(valid) => {
  2151. if (!valid) return
  2152. page.value = 1
  2153. pageSize.value = 10
  2154. getTableData()
  2155. })
  2156. }
  2157. // 分页
  2158. const handleSizeChange = (val) => {
  2159. pageSize.value = val
  2160. getTableData()
  2161. }
  2162. // 修改页面容量
  2163. const handleCurrentChange = (val) => {
  2164. page.value = val
  2165. getTableData()
  2166. }
  2167. const getTableData = async () => {
  2168. const response = await facilityTab();
  2169. if (response.code === 0 && response.data) {
  2170. const workshops = response.data; // 车间数据
  2171. // 在推送新项之前将 treeData 重置为空数组
  2172. treeData.value = []; // 使用 .value 访问响应式引用的值
  2173. for (const workshopName in workshops) {
  2174. const workshopNode = {
  2175. label: workshopName,
  2176. children: [],
  2177. level: 1 // 添加层级属性
  2178. };
  2179. const machines = workshops[workshopName]; // 车间下的机器
  2180. for (const machineName in machines) {
  2181. const machineNode = {
  2182. label: machineName,
  2183. children: [],
  2184. level: 2, // 添加层级属性
  2185. parentNode: workshopNode
  2186. };
  2187. // Now that machineNode is initialized, you can refer to it
  2188. const childrenNodes = machines[machineName].map(dateTime => {
  2189. const dateOnly = dateTime.split(' ')[0];
  2190. return {
  2191. label: dateOnly,
  2192. level: 3, // 添加层级属性
  2193. parentNode: machineNode
  2194. };
  2195. });
  2196. // Assign the childrenNodes to the machineNode's children property
  2197. machineNode.children = childrenNodes;
  2198. // Finally, push the machineNode to the workshopNode's children array
  2199. workshopNode.children.push(machineNode);
  2200. }
  2201. // 将 workshopNode 推送到响应式 treeData 数组
  2202. treeData.value.push(workshopNode);
  2203. }
  2204. }
  2205. };
  2206. // 查询
  2207. const getTableList = async() => {
  2208. const table = await getCompanyList({ page: page.value, pageSize: pageSize.value, ...searchInfo.value })
  2209. if (table.code === 0) {
  2210. tableData.value = table.data.list
  2211. total.value = table.data.total
  2212. page.value = table.data.page
  2213. pageSize.value = table.data.pageSize
  2214. }
  2215. }
  2216. // getTableData()
  2217. //删除
  2218. function onDel() {
  2219. }
  2220. //完工
  2221. function onOver() {
  2222. SetProcessStatus()
  2223. FacilityProduction()
  2224. }
  2225. //完工事件
  2226. const SetProcessStatus = async () => {
  2227. const RESCODE={
  2228. order:'2311114',
  2229. yjno:'01',
  2230. gxh:'01',
  2231. }
  2232. console.log(formData.value.工单编号,formData.value.印件号,formData.value.工序号)
  2233. const response = await setProcessStatus({order:formData.value.工单编号,yjno:formData.value.印件号,gxh:formData.value.工序号});
  2234. if (response.code === 0) {
  2235. FacilityProduction
  2236. }
  2237. console.log(response)
  2238. }
  2239. import { nextTick } from 'vue';
  2240. //设备点检
  2241. function ondianjian() {
  2242. getSpotCheckItem(JTMC).then(treeData => {
  2243. if (treeData) {
  2244. // 如果获取成功,treeData 就是我们需要的树形结构数据
  2245. dianjiantreeData = treeData;
  2246. console.log('222');
  2247. console.log(dianjiantreeData);
  2248. // 使用 nextTick 来确保在更新 dianjianVisible 后立即刷新视图
  2249. nextTick(() => {
  2250. dianjianVisible.value = true;
  2251. });
  2252. // 这里可以处理treeData,例如将其赋值给某个状态管理变量或者用于渲染界面
  2253. } else {
  2254. // 如果获取失败,则treeData为null
  2255. console.log('获取巡检项目树形结构数据失败');
  2256. }
  2257. });
  2258. }
  2259. //机台印版领用->右侧详情
  2260. const facilityPrintDetailItem = async (value) => {
  2261. try {
  2262. // 调用接口获取巡检项目数据
  2263. const response = await facilityPrintDetail({ workOrder: formData.value.工单编号,code:value,productCode:formData.value.productCode });
  2264. // const response = await facilityPrintDetail({ workOrder: '2312165',code:'0521',productCode:'104601001' });
  2265. // 检查接口返回的状态码
  2266. if (response.code === 0) {
  2267. console.log(response)
  2268. yinbanselectData.value=response.data
  2269. }
  2270. } catch (error) {
  2271. // 捕获并打印异常
  2272. console.error("获取数据出错:" + error);
  2273. return null;
  2274. }
  2275. };
  2276. const yinbanNodeClick = (node, check, nodeData) => {
  2277. if (node.children && node.children.length > 0) {
  2278. // 点击的是父节点,且有子节点
  2279. // 执行相应的父节点单击事件处理逻辑
  2280. // 这里可以添加你想要的处理逻辑,比如展开/折叠节点等
  2281. } else {
  2282. // 点击的是子节点,或者没有子节点
  2283. // 执行相应的子节点单击事件处理逻辑
  2284. yinbanselectData.value=[]
  2285. facilityPrintDetailItem(node.code)
  2286. }
  2287. };
  2288. const onyinban = async() => {
  2289. const res = await facilityPrintGetTab({productCode:formData.value.productCode})
  2290. if(res.code===0){
  2291. yinbantreeData.value=[{
  2292. label:'产品印版库',
  2293. children:res.data.map(item=>({
  2294. label:item.印版分类,
  2295. code:item.编号
  2296. }))
  2297. }]
  2298. console.log(res.data.map(item=>({
  2299. label:item.印版分类,
  2300. code:item.编号
  2301. })))
  2302. yinbanVisible.value = true;
  2303. }
  2304. }
  2305. const onzhicheng = async () => {
  2306. zhichengstatus.value=false
  2307. xunchaData.value=[]
  2308. const response = await reportProduceInfo({machine:JTMC.split("#")[0]});
  2309. if (response.code === 0) {
  2310. xunchaData.value.order=response.data.order
  2311. xunchaData.value.yjno=response.data.yjno
  2312. xunchaData.value.product_name=response.data.product_name
  2313. xunchaData.value.gxmc=response.data.gxmc
  2314. xunchaData.value.lcdh=0
  2315. xunchaData.value.sczl_bh=''
  2316. xunchaData.value.sczl_name=''
  2317. xunchaData.value.remark=''
  2318. zhichengVisible.value = true;
  2319. }
  2320. }
  2321. const chanliangselectData = reactive([])
  2322. const chanliangVisible = ref(false)
  2323. const huanxingVisible = ref(false)
  2324. const xunchaVisible = ref(false)
  2325. //客诉记录
  2326. const complaintsShow = ref(false)
  2327. const complaintsData = ref([])
  2328. function oncomplaints() {
  2329. Complaints()
  2330. }
  2331. // 客诉记录表格填充
  2332. const Complaints = async() => {
  2333. complaintsData.value=[]
  2334. selectedRowData.value={}
  2335. const res = await ComplaintRecord({productCode :formData.value.productCode})
  2336. if (res.msg === '成功') {
  2337. complaintsData.value=res.data;
  2338. selectedRowData.value=complaintsData.value[0]
  2339. complaintsShow.value=true
  2340. }else{
  2341. ElMessage({
  2342. type: 'success',
  2343. message: '未找到该产品客诉记录!'
  2344. })
  2345. }
  2346. }
  2347. const selectedRowData = ref({
  2348. })
  2349. //客诉表格单击
  2350. const complaintshandle = (val, row) => {
  2351. selectedRowData.value=val
  2352. };
  2353. //设置机台状态
  2354. function onstatus() {
  2355. dialogSbyxgl.value=true
  2356. SetMachineStatus()
  2357. // ReportProduceInfo()
  2358. }
  2359. function onClear() {
  2360. huanxingVisible.value=true
  2361. RemodelGetTab()
  2362. }
  2363. const RemodelGetTab = async() => {
  2364. const response = await remodelGetTab()
  2365. let arr=[]
  2366. if (response.code === 0) {
  2367. // for(let key in response.data){
  2368. // if(response.data[key][0]){
  2369. // let children =[]
  2370. // for (let i = 0; i < response.data[key].length; i++) {
  2371. // children.push({label:response.data[key][i],machine:key})
  2372. // }
  2373. // arr.push({
  2374. // label:key,
  2375. // children:children
  2376. // })
  2377. // console.log(response.data[key].length)
  2378. // }else{
  2379. // arr.push({label:key})
  2380. // }
  2381. // }
  2382. // huanxingtreeData.value=arr
  2383. huanxingtreeData.value=[{label:JTMC,children:response.data[JTMC].map(item=>({
  2384. label:item,
  2385. machine:JTMC
  2386. }))}]
  2387. }
  2388. }
  2389. //设置机台状态
  2390. const SetMachineStatus = async () => {
  2391. // const response = await setMachineStatus({
  2392. // machine:'JY03',
  2393. // gy_name:'02-胶印〖白、黑、哑油【预干】、NT光油',
  2394. // order:'2311114',
  2395. // yjno:'1',
  2396. // class:'ZM00545,ZM01351,ZM01170',
  2397. // status:'维修',
  2398. // production_now:'',
  2399. // production_all:'',
  2400. // });
  2401. // if (response.code === 0) {
  2402. // }
  2403. }
  2404. //提交巡查记录
  2405. function onxuncha() {
  2406. xunchaData.value=[]
  2407. ReportProduceInfo()
  2408. }
  2409. //巡检弹窗确定
  2410. const xunchaDialog = async () => {
  2411. SubmitPatrolRecord()
  2412. }
  2413. const closexunchaDialog = async () => {
  2414. xunchaVisible.value=false
  2415. }
  2416. const dianjianDialog = async () => {
  2417. dianjianselectData.splice(0, dianjianselectData.length, ...dianjianselectData.map(item=>{
  2418. if(item.zc==true){
  2419. item.status='正常'
  2420. }
  2421. if(item.yc==true){
  2422. item.status='异常'
  2423. }
  2424. if(item.notjc==true){
  2425. item.status='不检测'
  2426. }
  2427. item.itemName=item.检验项目
  2428. item.method=item.点检方法
  2429. item.standard=item.判定标准
  2430. delete item.notjc
  2431. delete item.zc
  2432. delete item.yc
  2433. delete item.检验项目
  2434. delete item.点检方法
  2435. delete item.判定标准
  2436. return item
  2437. }))
  2438. const response = await InspectionItemAdd(dianjianselectData);
  2439. if (response.code === 0) {
  2440. ElMessage({
  2441. type: 'success',
  2442. message: '成功'
  2443. })
  2444. dianjianVisible.value=false
  2445. }
  2446. }
  2447. const zhichengDialog = async () => {
  2448. console.log(fujiaselectData.value)
  2449. let arr =[]
  2450. zhibiaoselectData.value.map(item=>{
  2451. if(item.zc==true){
  2452. item.result='合格'
  2453. item.item=item.检验项目
  2454. item.instrument=item.检测方法
  2455. item.standard=item.相关标准
  2456. delete item.notjc
  2457. delete item.zc
  2458. delete item.yc
  2459. delete item.检验项目
  2460. delete item.检测方法
  2461. delete item.相关标准
  2462. delete item.检验频率
  2463. arr.push(item)
  2464. return item
  2465. }
  2466. if(item.yc==true){
  2467. item.result='不合格'
  2468. item.item=item.检验项目
  2469. item.instrument=item.检测方法
  2470. item.standard=item.相关标准
  2471. delete item.notjc
  2472. delete item.zc
  2473. delete item.yc
  2474. delete item.检验项目
  2475. delete item.检测方法
  2476. delete item.相关标准
  2477. delete item.检验频率
  2478. arr.push(item)
  2479. return item
  2480. }
  2481. if(item.notjc==true){
  2482. item.result='不检测'
  2483. item.item=item.检验项目
  2484. item.instrument=item.检测方法
  2485. item.standard=item.相关标准
  2486. delete item.notjc
  2487. delete item.zc
  2488. delete item.yc
  2489. delete item.检验项目
  2490. delete item.检测方法
  2491. delete item.相关标准
  2492. delete item.检验频率
  2493. // arr.push(item)
  2494. return item
  2495. }
  2496. })
  2497. let arrs=[]
  2498. let fujiastatus=0
  2499. fujiaselectData.value.map(item=>{
  2500. if(item.notjc==true){
  2501. return item
  2502. }else{
  2503. fujiastatus=1
  2504. item.remark=item.缺陷备注
  2505. delete item.notjc
  2506. delete item.缺陷备注
  2507. delete item.编号
  2508. arrs.push(item)
  2509. return item
  2510. }
  2511. })
  2512. if(fujiastatus==1){
  2513. const responses = await AdditionalInspectionRecordAdd(arrs);
  2514. fujiastatus=0
  2515. }
  2516. // const response = await ProcessInspectionRecordsItemAdd(arr);
  2517. const response = await ProcessInspectionRecordsItemAdd(zhibiaoselectData.value);
  2518. // const responses = await AdditionalInspectionRecordAdd(zhibiaoselectData.value);
  2519. if (response.code === 0) {
  2520. ElMessage({
  2521. type: 'success',
  2522. message: '成功'
  2523. })
  2524. zhichengVisible.value=false
  2525. zhibiaoselectData.value=[]
  2526. fujiaselectData.value=[]
  2527. }
  2528. }
  2529. const closedianjianDialog = async () => {
  2530. dianjianVisible.value=false
  2531. }
  2532. const closezhichengDialog = async () => {
  2533. zhichengVisible.value=false
  2534. }
  2535. //获取机台生产信息
  2536. const ReportProduceInfo = async (value,inputName) => {
  2537. const response = await reportProduceInfo({machine:JTMC.split("#")[0]});
  2538. if (response.code === 0) {
  2539. xunchaData.value.order=response.data.order
  2540. xunchaData.value.yjno=response.data.yjno
  2541. xunchaData.value.product_name=response.data.product_name
  2542. xunchaData.value.gxmc=response.data.gxmc
  2543. xunchaData.value.lcdh=0
  2544. xunchaData.value.sczl_bh=''
  2545. xunchaData.value.sczl_name=''
  2546. xunchaData.value.remark=''
  2547. FieldInspectionRecord()
  2548. xunchaVisible.value=true
  2549. }
  2550. }
  2551. // 假设 xunchaselectData 是一个 ref 对象
  2552. const xunchaselectData = ref([]);
  2553. const xunchaData = ref([]);
  2554. // 在 FieldInspectionRecord 方法中填充数据
  2555. const FieldInspectionRecord = async () => {
  2556. const response = await fieldInspectionRecord({ workOrder: xunchaData.value.order, team: BZMC.value});
  2557. console.log(response);
  2558. if (response.code === 0) {
  2559. xunchaselectData.value = response.data;
  2560. }
  2561. }
  2562. //获取机台编号
  2563. const GetMachineMac = async (addr) => {
  2564. console.log(addr);
  2565. const response = await getMachineMac({ addr: addr });
  2566. // const response = await getMachineMac({ addr: '68-ED-A4-26-5D-5E' });
  2567. // const response = await getMachineMac({ addr: '68-ED-A4-26-5D-90' });
  2568. // const response = await getMachineMac({ addr: '68-ED-A4-26-5E-50' });
  2569. // const response = await getMachineMac({ addr: '68-ED-A4-26-60-CC' });
  2570. // const response = await getMachineMac({ addr: '68-ED-A4-26-5F-8E' });
  2571. // const response = await getMachineMac({ addr: '68-ED-A4-26-60-C8' });
  2572. // const response = await getMachineMac({ addr: '40-62-31-21-4E-15' });
  2573. // const response = await getMachineMac({ addr: '68-ED-A4-26-5F-42' });
  2574. // const response = await getMachineMac({ addr: '68-ED-A4-26-60-E5' });
  2575. // const response = await getMachineMac({ addr: '68-ED-A4-26-5E-4E' });
  2576. // const response = await getMachineMac({ addr: '68-ED-A4-26-60-D1' });
  2577. if (response.code === 0) {
  2578. if(response.data===null){
  2579. JTMC = 'MQ07#';
  2580. FacilityProduction(addr);
  2581. }else{
  2582. // 将接口返回的数据添加到树型结构中
  2583. let newNode = {
  2584. label: response.data["使用部门"],
  2585. level: 1,
  2586. children: [
  2587. {
  2588. label: response.data["设备编号"],
  2589. level: 2,
  2590. }
  2591. ]
  2592. };
  2593. treeData.value.push(newNode);
  2594. CJMC=newNode.label
  2595. JTMC = newNode.children[0].label;
  2596. FacilityProduction(addr);
  2597. }
  2598. }
  2599. }
  2600. const GetAddr = () => {
  2601. var xmlhttp = null;
  2602. var res;
  2603. if (window.XMLHttpRequest) {
  2604. xmlhttp = new XMLHttpRequest();
  2605. } else if (window.ActiveXObject) {
  2606. xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
  2607. }
  2608. // 2. 设置回调函数
  2609. xmlhttp.onreadystatechange = function() {
  2610. if (xmlhttp.readyState == 4 && xmlhttp.status == 200) {
  2611. res = eval('('+xmlhttp.response+')');
  2612. let result = ''
  2613. for (let i = 0; i < res.macAddress.length; i++) {
  2614. if (i % 2 === 0 && i !== 0) {
  2615. result += '-' // 根据实际需求修改分隔符
  2616. }
  2617. result += res.macAddress[i]
  2618. }
  2619. GetMachineMac(result)
  2620. }
  2621. }
  2622. // 3. 打开一个连接http://10.10.4.42/
  2623. xmlhttp.open("get", "http://127.0.0.1:8090/init")
  2624. // 5. 发送
  2625. xmlhttp.send();
  2626. }
  2627. GetAddr()
  2628. //提交巡查记录
  2629. const SubmitPatrolRecord = async () => {
  2630. console.log(JTMC.split("#")[0])
  2631. const response = await submitPatrolRecord({
  2632. type:'现场巡查记录',
  2633. machine:JTMC.split("#")[0],
  2634. order:xunchaData.value.order,
  2635. yjno:xunchaData.value.yjno,
  2636. process:xunchaData.value.lcdh,
  2637. no:xunchaData.value.sczl_bh,
  2638. name:xunchaData.value.sczl_name,
  2639. remark:xunchaData.value.remark,
  2640. });
  2641. console.log(response)
  2642. if (response.code === 0) {
  2643. ElMessage({
  2644. type: 'success',
  2645. message: '成功'
  2646. })
  2647. xunchaVisible.value=false
  2648. }
  2649. }
  2650. //日产量上报
  2651. function onchanliang() {
  2652. console.log(JTMC.split("#")[0]); // 通过value属性获取ref对象的值,然后再调用split方法
  2653. ReportInfo()
  2654. }
  2655. // 获取当前日期
  2656. const today = new Date();
  2657. const year = today.getFullYear();
  2658. const month = String(today.getMonth() + 1).padStart(2, '0'); // 月份从 0 开始,需要补零
  2659. const day = String(today.getDate()).padStart(2, '0');
  2660. const hours = String(today.getHours()).padStart(2, '0');
  2661. const minutes = String(today.getMinutes()).padStart(2, '0');
  2662. const seconds = String(today.getSeconds()).padStart(2, '0');
  2663. const currentDate = `${year}-${month}-${day}`;
  2664. const currentTime = `${year}-${month}-${day} ${hours}:${minutes}`;
  2665. const currenttime = `${year}-${month}-${day} ${hours}:${minutes}:${seconds}`;
  2666. //日产量详情获取
  2667. const ReportInfo = async () => {
  2668. const response = await reportInfo({ machine: JTMC.split("#")[0] });
  2669. if (response.code === 0) {
  2670. const { order_info, class: classInfo } = response.data;
  2671. const newData = {
  2672. order: order_info.order,
  2673. yjno: order_info.yjno,
  2674. gxh: order_info.gxh,
  2675. gxmc: order_info.gxmc,
  2676. product_name: order_info.product_name,
  2677. yj_name: order_info.yj_name,
  2678. gy_name: order_info.gy_name,
  2679. 日期:currentDate,
  2680. 下机时间:currenttime,
  2681. 上机时间:formData.value.上机时间,
  2682. 装版总时长:0,
  2683. 定额代号:formData.value.定额代号,
  2684. sczl_jtbh: classInfo.sczl_jtbh.split('#')[0],
  2685. sczl_bzdh: classInfo.sczl_bzdh,
  2686. sys_id: classInfo.sys_id,
  2687. sys_rq: classInfo.sys_rq,
  2688. mod_rq: classInfo.mod_rq,
  2689. UniqId: classInfo.UniqId,
  2690. sczl_bh1: classInfo.sczl_bh1,
  2691. sczl_bh2: classInfo.sczl_bh2,
  2692. sczl_bh3: classInfo.sczl_bh3,
  2693. sczl_bh4: classInfo.sczl_bh4,
  2694. sczl_bh5: classInfo.sczl_bh5,
  2695. sczl_bh6: classInfo.sczl_bh6,
  2696. sczl_bh7: classInfo.sczl_bh7,
  2697. sczl_bh8: classInfo.sczl_bh8,
  2698. sczl_bh9: classInfo.sczl_bh9,
  2699. sczl_bh10: classInfo.sczl_bh10,
  2700. sczl_name1: classInfo.sczl_name1,
  2701. sczl_name2: classInfo.sczl_name2,
  2702. sczl_name3: classInfo.sczl_name3,
  2703. sczl_name4: classInfo.sczl_name4,
  2704. sczl_name5: classInfo.sczl_name5,
  2705. sczl_name6: classInfo.sczl_name6,
  2706. sczl_name7: classInfo.sczl_name7,
  2707. sczl_name8: classInfo.sczl_name8,
  2708. sczl_name9: classInfo.sczl_name9,
  2709. sczl_name10: classInfo.sczl_name10,
  2710. sczl_rate1: classInfo.sczl_rate1,
  2711. sczl_rate2: classInfo.sczl_rate2,
  2712. sczl_rate3: classInfo.sczl_rate3,
  2713. sczl_rate4: classInfo.sczl_rate4,
  2714. sczl_rate5: classInfo.sczl_rate5,
  2715. sczl_rate6: classInfo.sczl_rate6,
  2716. sczl_rate7: classInfo.sczl_rate7,
  2717. sczl_rate8: classInfo.sczl_rate8,
  2718. sczl_rate9: classInfo.sczl_rate9,
  2719. sczl_rate10: classInfo.sczl_rate10,
  2720. };
  2721. formData3.value = { ...formData3.value, ...newData };
  2722. chanliangselectData.splice(0, chanliangselectData.length, ...response.data.bom)
  2723. chanliangVisible.value=true
  2724. }
  2725. // getTableData()
  2726. }
  2727. //日报表弹窗确定
  2728. const chanliangenterDialog = async () => {
  2729. SubmitDailyProduction()
  2730. }
  2731. //日报表上传
  2732. const SubmitDailyProduction = async () => {
  2733. const restoredData = {
  2734. sczl_gdbh:formData3.value.order,
  2735. sczl_yjno:formData3.value.yjno,
  2736. sczl_gxh:formData3.value.gxh,
  2737. sczl_gxmc: formData3.value.gxmc,
  2738. sczl_bzdh: formData3.value.sczl_bzdh,
  2739. sczl_bh1: formData3.value.sczl_bh1,
  2740. sczl_bh2: formData3.value.sczl_bh2,
  2741. sczl_bh3: formData3.value.sczl_bh3,
  2742. sczl_bh4: formData3.value.sczl_bh4,
  2743. sczl_bh5: formData3.value.sczl_bh5,
  2744. sczl_bh6: formData3.value.sczl_bh6,
  2745. sczl_bh7: formData3.value.sczl_bh7,
  2746. sczl_bh8: formData3.value.sczl_bh8,
  2747. sczl_bh9: formData3.value.sczl_bh9,
  2748. sczl_bh10: formData3.value.sczl_bh10,
  2749. sczl_bh98:formData3.value.sczl_bh11,
  2750. sczl_rate1: formData3.value.sczl_rate1,
  2751. sczl_rate2: formData3.value.sczl_rate2,
  2752. sczl_rate3: formData3.value.sczl_rate3,
  2753. sczl_rate4: formData3.value.sczl_rate4,
  2754. sczl_rate5: formData3.value.sczl_rate5,
  2755. sczl_rate6: formData3.value.sczl_rate6,
  2756. sczl_rate7: formData3.value.sczl_rate7,
  2757. sczl_rate8: formData3.value.sczl_rate8,
  2758. sczl_rate9: formData3.value.sczl_rate9,
  2759. sczl_rate10: formData3.value.sczl_rate10,
  2760. sczl_jtbh: formData3.value.sczl_jtbh,
  2761. sczl_rq: formData3.value.日期,
  2762. sczl_num: formData3.value.流程标牌,
  2763. sczl_sj1: formData3.value.上机时间,
  2764. sczl_sj2: formData3.value.下机时间,
  2765. sczl_cl: formData3.value.产量,
  2766. sczl_zcfp: formData3.value.制程废品,
  2767. sczl_zccp: formData3.value.制程次品,
  2768. last_fp: formData3.value.前工序废,
  2769. less_sl: formData3.value.来料异常,
  2770. sczl_ls: formData3.value.联数,
  2771. sczl_ms: formData3.value.墨色,
  2772. zb_time: formData3.value.装版总时长,
  2773. dy_time: formData3.value.打样总工时,
  2774. run_time: formData3.value.通电工时,
  2775. sczl_dedh: formData3.value.定额代号,
  2776. code: formData3.value.码包,
  2777. main_meter: formData3.value.主电表,
  2778. auxiliary_meter: formData3.value.辅电表,
  2779. bom: formData3.value.formattedArray
  2780. }
  2781. console.log(restoredData)
  2782. console.log(formData3.value.formattedArray)
  2783. const response = await submitDailyProduction(restoredData);
  2784. console.log(response)
  2785. if (response.code === 0) {
  2786. ElMessage({
  2787. type: 'success',
  2788. message: '成功'
  2789. })
  2790. FacilityDetail()
  2791. chanliangVisible.value=false
  2792. }
  2793. }
  2794. // let formattedArray
  2795. // 产量单选
  2796. const chanliangSelectionChange = (val) => {
  2797. // if(val.length>0){
  2798. // multipleSelection.value = val
  2799. // const lenth=val.length
  2800. // lastCellValue=val[lenth-1].UniqId
  2801. // console.log(val)
  2802. // val.splice(0, val.length); // 清空 val 数组
  2803. // console.log(lastCellValue)
  2804. // }
  2805. const selectedItems =val
  2806. // 存储batch和st_wlbh的数组
  2807. formData3.value.formattedArray = selectedItems.map(item => `${item.batch}-${item.st_wlbh}`).join(',');
  2808. console.log(formData3.value.formattedArray);
  2809. // console.log(selectedItems)
  2810. }
  2811. //获取设备点检->检验项目
  2812. const FacilityInspectionItem = async (value) => {
  2813. try {
  2814. // 调用接口获取巡检项目数据
  2815. const response = await facilityInspectionItem({ unitName: value ,machine:JTMC.split("#")[0]});
  2816. // 检查接口返回的状态码
  2817. if (response.code === 0) {
  2818. console.log(response)
  2819. dianjianselectData.splice(0, dianjianselectData.length, ...response.data.map(item=>{
  2820. item.notjc=true;
  2821. item.zc=false;
  2822. item.yc=false;
  2823. item.remark=''
  2824. item.unitName=value
  2825. item.team=BZMC.value
  2826. item.machine=JTMC
  2827. return item
  2828. }))
  2829. }
  2830. } catch (error) {
  2831. // 捕获并打印异常
  2832. console.error("获取巡检项目数据出错:" + error);
  2833. return null;
  2834. }
  2835. };
  2836. //树形结构单机
  2837. const dianjianselectData = reactive([])
  2838. const dianjianNodeClick = (node, check, nodeData) => {
  2839. console.log('111')
  2840. if (node.children && node.children.length > 0) {
  2841. // 点击的是父节点,且有子节点
  2842. // 执行相应的父节点单击事件处理逻辑
  2843. // 这里可以添加你想要的处理逻辑,比如展开/折叠节点等
  2844. } else {
  2845. // 点击的是子节点,或者没有子节点
  2846. // 执行相应的子节点单击事件处理逻辑
  2847. FacilityInspectionItem(node.label)
  2848. }
  2849. };
  2850. const category =ref()
  2851. const zhichengNodeClick = (node, check) => {
  2852. if(node.label){
  2853. zhichengstatus.value=true
  2854. category.value=node.label
  2855. processInspectionRecordsItem()
  2856. }
  2857. };
  2858. const processInspectionRecordsItem = async (value) => {
  2859. const response = await ProcessInspectionRecordsItem({ process: xunchaData.value.gxmc });
  2860. if (response.code === 0) {
  2861. zhibiaoselectData.value=response.data.首件.指标检验.map(item=>{
  2862. item.notjc=true;
  2863. item.zc=false;
  2864. item.yc=false;
  2865. item.remark=''
  2866. item.category=category.value
  2867. item.workOrder=xunchaData.value.order
  2868. item.yjno=xunchaData.value.yjno
  2869. item.flow=xunchaData.value.lcdh
  2870. item.team=BZMC.value
  2871. item.machine=JTMC.split("#")[0]
  2872. return item
  2873. })
  2874. fujiaselectData.value=response.data.首件.附加.map(item=>{
  2875. item.notjc=true;
  2876. item.workOrder=xunchaData.value.order
  2877. item.yjno=xunchaData.value.yjno
  2878. item.flow=xunchaData.value.lcdh
  2879. item.machine=JTMC.split("#")[0]
  2880. return item
  2881. })
  2882. }
  2883. };
  2884. const notjcClick = (val) => {
  2885. try {
  2886. if(val.notjc==false){
  2887. val.zc=false
  2888. val.yc==false
  2889. }else{
  2890. val.zc=true
  2891. val.yc==false
  2892. }
  2893. } catch (error) {
  2894. console.error('An error occurred:', error);
  2895. }
  2896. };
  2897. const zcClick = (val) => {
  2898. try {
  2899. if(val.notjc==false){
  2900. if(val.zc==false){
  2901. val.yc=false
  2902. }else{
  2903. val.yc==true
  2904. }
  2905. }{
  2906. val.zc=true
  2907. }
  2908. } catch (error) {
  2909. console.error('An error occurred:', error);
  2910. }
  2911. };
  2912. const ycClick = (val) => {
  2913. try {
  2914. if(val.notjc==false){
  2915. if(val.yc==false){
  2916. val.zc=false
  2917. }else{
  2918. val.zc=true
  2919. }
  2920. }else{
  2921. val.yc=true
  2922. }
  2923. } catch (error) {
  2924. console.error('An error occurred:', error);
  2925. }
  2926. };
  2927. let pandingfangfa=ref()
  2928. //检验项目单击
  2929. const dianjianhandle = async (val, row) => {
  2930. try {
  2931. console.log(val.判定标准);
  2932. pandingfangfa.value = val.判定标准;
  2933. } catch (error) {
  2934. console.error('An error occurred:', error);
  2935. }
  2936. };
  2937. const rowClassName = (row, column) => {
  2938. try {
  2939. if (row.unchecked) {
  2940. return 'row-yellow';
  2941. }
  2942. return '';
  2943. } catch (error) {
  2944. console.error('An error occurred:', error);
  2945. return '';
  2946. }
  2947. };
  2948. function duohandleClick(table) {
  2949. console.log(table.props.label)
  2950. if(table.props.label=='当班产量明细'){
  2951. zdtreeType.value=true
  2952. }else{
  2953. zdtreeType.value=false
  2954. }
  2955. }
  2956. // 异步函数,用于获取指定设备的巡检项目,并且将结果格式化为树形结构数据
  2957. const getSpotCheckItem = async (machineName) => {
  2958. try {
  2959. // 调用接口获取巡检项目数据
  2960. const response = await facilitySpotCheckItem({ machine: machineName });
  2961. // 检查接口返回的状态码
  2962. if (response.code === 0) {
  2963. // 构建树形结构数据
  2964. const childrenData = Object.entries(response.data).map(([id, label]) => {
  2965. return {
  2966. id, // 子节点的唯一标识
  2967. label, // 子节点的标签
  2968. children: [] // 初始化子节点数组
  2969. };
  2970. });
  2971. // 创建包含父节点的树形结构数据
  2972. const treeData = [{
  2973. id: machineName, // 父节点的唯一标识
  2974. label: machineName, // 父节点的标签
  2975. children: childrenData // 子节点数据
  2976. }];
  2977. // 返回构建好的树形结构数据
  2978. return treeData;
  2979. } else {
  2980. // 如果接口返回的状态码不是0,打印错误信息
  2981. console.error("接口返回错误:" + response.msg);
  2982. return null;
  2983. }
  2984. } catch (error) {
  2985. // 捕获并打印异常
  2986. console.error("获取巡检项目数据出错:" + error);
  2987. return null;
  2988. }
  2989. };
  2990. // 班组人员及分配比例
  2991. const FacilityTeam = async (value) => {
  2992. const response = await facilityTeam({ machine: value });
  2993. if (response.code === 0) {
  2994. // 清空 bzData 数组
  2995. bzData.splice(0, bzData.length);
  2996. response.data.map(item=>{
  2997. if(formData.value['班组Id']==item.ID){
  2998. currentBz.value=item
  2999. formDatas.value = {};
  3000. let sczl_bhkey = ''
  3001. let sczl_namekey = ''
  3002. let percentagekey = ''
  3003. if (currentBz.value[9]) {
  3004. for (let i = 1; i <= 10; i++) {
  3005. sczl_bhkey = `code${i}`
  3006. sczl_namekey = `name${i}`
  3007. percentagekey = `percentage${i}`
  3008. formDatas.value[sczl_bhkey] = '';
  3009. formDatas.value[sczl_namekey] = '';
  3010. formDatas.value[percentagekey] = '';
  3011. }
  3012. formDatas.value.code8 = currentBz.value[9].split(' ')[0];
  3013. formDatas.value.name8 = currentBz.value[9].split(' ')[1]
  3014. formDatas.value.percentage8 = parseFloat(currentBz.value[9].split(' ')[2].split('(')[1].split(')')[0])/100
  3015. for (let i = 1; i <= Math.min(Object.keys(currentBz.value).length - 4, 6); i++) {
  3016. sczl_bhkey = `code${i}`
  3017. sczl_namekey = `name${i}`
  3018. percentagekey = `percentage${i}`
  3019. formDatas.value[sczl_bhkey] = currentBz.value[i - 1].split(' ')[0];
  3020. formDatas.value[sczl_namekey] = currentBz.value[i - 1].split(' ')[1];
  3021. if(isNaN(parseFloat(currentBz.value[i - 1].split(' ')[2].split('(')[1].split(')')[0]))){
  3022. formDatas.value[percentagekey] = currentBz.value[i - 1].split(' ')[2].split('(')[1].split(')')[0];
  3023. }else{
  3024. formDatas.value[percentagekey] = parseFloat(currentBz.value[i - 1].split(' ')[2].split('(')[1].split(')')[0])/100;
  3025. }
  3026. }
  3027. } else {
  3028. for (let i = 1; i <= 10; i++) {
  3029. sczl_bhkey = `code${i}`
  3030. sczl_namekey = `name${i}`
  3031. percentagekey = `percentage${i}`
  3032. formDatas.value[sczl_bhkey] = '';
  3033. formDatas.value[sczl_namekey] = '';
  3034. formDatas.value[percentagekey] = '';
  3035. }
  3036. for (let i = 1; i <= Math.min(Object.keys(currentBz.value).length - 3, 6); i++) {
  3037. sczl_bhkey = `code${i}`
  3038. sczl_namekey = `name${i}`
  3039. percentagekey = `percentage${i}`
  3040. formDatas.value[sczl_bhkey] = currentBz.value[i - 1].split(' ')[0];
  3041. formDatas.value[sczl_namekey] = currentBz.value[i - 1].split(' ')[1];
  3042. if(isNaN(parseFloat(currentBz.value[i - 1].split(' ')[2].split('(')[1].split(')')[0]))){
  3043. formDatas.value[percentagekey] = currentBz.value[i - 1].split(' ')[2].split('(')[1].split(')')[0];
  3044. }else{
  3045. formDatas.value[percentagekey] = parseFloat(currentBz.value[i - 1].split(' ')[2].split('(')[1].split(')')[0])/100;
  3046. }
  3047. }
  3048. }
  3049. console.log(formDatas)
  3050. }
  3051. })
  3052. // 遍历接口返回的数据,并给每个对象添加 JTMC 属性
  3053. const updatedData = response.data.map(item => {
  3054. return { ...item, JTMC: value }; // 添加 JTMC 属性
  3055. });
  3056. FPData.splice(0, FPData.length, ...updatedData)
  3057. // 将更新后的数据添加到 bzData 数组
  3058. bzData.push(...updatedData);
  3059. // FPData.push(...updatedData)
  3060. console.log(FPData)
  3061. }
  3062. };
  3063. //班组维护
  3064. function onBZ() {
  3065. FacilityTeam(JTMC)
  3066. fetchData()
  3067. detailShow.value=true
  3068. console.log('2222')
  3069. }
  3070. // 下拉框选项数据
  3071. const dropdownOptions = ref([]);
  3072. // 选中的选项
  3073. const selectedOption = ref('');
  3074. // 获取接口数据并转换为下拉框需要的格式
  3075. const fetchData = async () => {
  3076. try {
  3077. // Simulate API call
  3078. const response = await facilityMachineList();
  3079. if (response.code === 0) {
  3080. // Transform data format
  3081. const options = response.data.map((item) => ({
  3082. label: item,
  3083. value: item
  3084. }));
  3085. dropdownOptions.value = options;
  3086. // Default to selecting the first option
  3087. const defaultOption = options.find(option => option.value.split('|')[0] === JTMC);
  3088. if (defaultOption) {
  3089. selectedOption.value = defaultOption.value;
  3090. } else if (options.length > 0) {
  3091. // 如果 myDefaultValue 不在选项中,选择第一个选项
  3092. selectedOption.value = options[0].value;
  3093. }
  3094. }
  3095. } catch (error) {
  3096. console.error('Error fetching data:', error);
  3097. // Handle the error appropriately
  3098. }
  3099. };
  3100. // formData
  3101. let BZMC=ref()
  3102. let lastCellValue=ref()
  3103. let parts =reactive([])
  3104. const formData3= ref({
  3105. order:'',
  3106. yjno:'',
  3107. gxh:'',
  3108. gxmc:'',
  3109. product_name:'',
  3110. yj_name:'',
  3111. gy_name:'',
  3112. sczl_jtbh:'',
  3113. sczl_bzdh:'',
  3114. sys_id:'',
  3115. sys_rq:'',
  3116. mod_rq:'',
  3117. UniqId:'',
  3118. sczl_bh1:'',
  3119. sczl_bh2:'',
  3120. sczl_bh3:'',
  3121. sczl_bh4:'',
  3122. sczl_bh5:'',
  3123. sczl_bh6:'',
  3124. sczl_bh7:'',
  3125. sczl_bh8:'',
  3126. sczl_bh9:'',
  3127. sczl_bh10:'',
  3128. sczl_bh11:'',
  3129. sczl_name1:'',
  3130. sczl_name2:'',
  3131. sczl_name3:'',
  3132. sczl_name4:'',
  3133. sczl_name5:'',
  3134. sczl_name6:'',
  3135. sczl_name7:'',
  3136. sczl_name8:'',
  3137. sczl_name9:'',
  3138. sczl_name10:'',
  3139. sczl_name11:'',
  3140. sczl_rate1:'',
  3141. sczl_rate2:'',
  3142. sczl_rate3:'',
  3143. sczl_rate4:'',
  3144. sczl_rate5:'',
  3145. sczl_rate6:'',
  3146. sczl_rate7:'',
  3147. sczl_rate8:'',
  3148. sczl_rate9:'',
  3149. sczl_rate10:'',
  3150. 日期:'',
  3151. 流程标牌:'',
  3152. 上机时间:'',
  3153. 下机时间:'',
  3154. 产量:'',
  3155. 制程废品:'',
  3156. 制程次品:'',
  3157. 前工序废:'',
  3158. 来料异常:'',
  3159. 联数:'',
  3160. 墨色:'',
  3161. 装版总工时:'',
  3162. 打样总工时:'',
  3163. 通电工时:'',
  3164. 定额代号:'',
  3165. 码包:'',
  3166. 主电表:'',
  3167. 辅电表:'',
  3168. formattedArray:'',
  3169. })
  3170. // 自动化生成的字典(可能为空)以及字段
  3171. const formData= ref({
  3172. // 工单编号:'',
  3173. // 印件号:'',
  3174. // 工序名称:'',
  3175. // 产品名称:'',
  3176. // sczl_bh1:'',
  3177. // sczl_bh2:'',
  3178. // sczl_bh3:'',
  3179. // sczl_bh4:'',
  3180. // sczl_bh5:'',
  3181. // sczl_bh6:'',
  3182. // sczl_bh7:'',
  3183. // sczl_bh8:'',
  3184. // sczl_bh9:'',
  3185. // sczl_bh10:'',
  3186. // sczl_name1:'',
  3187. // sczl_name2:'',
  3188. // sczl_name3:'',
  3189. // sczl_name4:'',
  3190. // sczl_name5:'',
  3191. // sczl_name6:'',
  3192. // sczl_name7:'',
  3193. // sczl_name8:'',
  3194. // sczl_name9:'',
  3195. // sczl_name10:'',
  3196. // 班组:'',
  3197. // order:'',
  3198. // yjno:'',
  3199. // product_name:'',
  3200. // gxmc:'',
  3201. })
  3202. const formDatasData= reactive([])
  3203. const formDatas = ref({
  3204. code1:'',
  3205. code2:'',
  3206. code3:'',
  3207. code4:'',
  3208. code5:'',
  3209. code6:'',
  3210. code7:'',
  3211. code8:'',
  3212. code9:'',
  3213. code10:'',
  3214. name1:'',
  3215. name2:'',
  3216. name3:'',
  3217. name4:'',
  3218. name5L:'',
  3219. name6:'',
  3220. name7:'',
  3221. name8:'',
  3222. name9:'',
  3223. name10:'',
  3224. percentage1:'',
  3225. percentage2:'',
  3226. percentage3:'',
  3227. percentage4:'',
  3228. percentage5:'',
  3229. percentage6:'',
  3230. percentage7:'',
  3231. percentage8:'',
  3232. percentage9:'',
  3233. percentage10:'',
  3234. })
  3235. const currentBz ={}
  3236. //班组单击
  3237. const BZhandle = (val) => {
  3238. currentBz.value = val
  3239. formDatas.value = {};
  3240. let sczl_bhkey = ''
  3241. let sczl_namekey = ''
  3242. let percentagekey = ''
  3243. if (currentBz.value[9]) {
  3244. for (let i = 1; i <= 9; i++) {
  3245. sczl_bhkey = `code${i}`
  3246. sczl_namekey = `name${i}`
  3247. percentagekey = `percentage${i}`
  3248. formDatas.value[sczl_bhkey] = '';
  3249. formDatas.value[sczl_namekey] = '';
  3250. formDatas.value[percentagekey] = '';
  3251. }
  3252. formDatas.value.code8 = currentBz.value[9].split(' ')[0];
  3253. formDatas.value.name8 = currentBz.value[9].split(' ')[1]
  3254. formDatas.value.percentage8 = parseFloat(currentBz.value[9].split(' ')[2].split('(')[1].split(')')[0])/100
  3255. for (let i = 1; i <= Math.min(Object.keys(currentBz.value).length - 5, 6); i++) {
  3256. sczl_bhkey = `code${i}`
  3257. sczl_namekey = `name${i}`
  3258. percentagekey = `percentage${i}`
  3259. formDatas.value[sczl_bhkey] = currentBz.value[i - 1].split(' ')[0];
  3260. formDatas.value[sczl_namekey] = currentBz.value[i - 1].split(' ')[1];
  3261. if(isNaN(parseFloat(currentBz.value[i - 1].split(' ')[2].split('(')[1].split(')')[0]))){
  3262. formDatas.value[percentagekey] = currentBz.value[i - 1].split(' ')[2].split('(')[1].split(')')[0];
  3263. }else{
  3264. formDatas.value[percentagekey] = parseFloat(currentBz.value[i - 1].split(' ')[2].split('(')[1].split(')')[0])/100;
  3265. }
  3266. }
  3267. } else {
  3268. for (let i = 1; i <= 10; i++) {
  3269. sczl_bhkey = `code${i}`
  3270. sczl_namekey = `name${i}`
  3271. percentagekey = `percentage${i}`
  3272. formDatas.value[sczl_bhkey] = '';
  3273. formDatas.value[sczl_namekey] = '';
  3274. formDatas.value[percentagekey] = '';
  3275. }
  3276. for (let i = 1; i <= Math.min(Object.keys(currentBz.value).length - 4, 6); i++) {
  3277. sczl_bhkey = `code${i}`
  3278. sczl_namekey = `name${i}`
  3279. percentagekey = `percentage${i}`
  3280. formDatas.value[sczl_bhkey] = currentBz.value[i - 1].split(' ')[0];
  3281. formDatas.value[sczl_namekey] = currentBz.value[i - 1].split(' ')[1];
  3282. if(isNaN(parseFloat(currentBz.value[i - 1].split(' ')[2].split('(')[1].split(')')[0]))){
  3283. formDatas.value[percentagekey] = currentBz.value[i - 1].split(' ')[2].split('(')[1].split(')')[0];
  3284. }else{
  3285. formDatas.value[percentagekey] = parseFloat(currentBz.value[i - 1].split(' ')[2].split('(')[1].split(')')[0])/100;
  3286. }
  3287. }
  3288. }
  3289. console.log(formDatas)
  3290. // for (const key in val) {
  3291. // if (val[key] === 0) {
  3292. // break;
  3293. // }
  3294. // const parts = val[key].split(/[\s()]+/);
  3295. // const code = parts[0];
  3296. // const name = parts[1];
  3297. // const percentage = parts[2];
  3298. //
  3299. // // 根据索引填充不同的字段
  3300. // const index = parseInt(key) + 1; // 索引从1开始
  3301. // formDatas.value['code' + index] = code;
  3302. // formDatas.value['name' + index] = name;
  3303. // formDatas.value['percentage' + index] = percentage;
  3304. BZMC.value=val.班组号
  3305. // }
  3306. };
  3307. const addBz = async() => {
  3308. console.log(selectedOption.value)
  3309. console.log(BZMC.value)
  3310. console.log(currentBz.value.ID)
  3311. const response = await MachineTeamAdd({
  3312. sczl_jtbh: selectedOption.value.split('|')[0],
  3313. sczl_bzdh: BZMC.value,
  3314. sczl_bh1: formDatas.value.code1,
  3315. sczl_bh2: formDatas.value.code2,
  3316. sczl_bh3: formDatas.value.code3,
  3317. sczl_bh4: formDatas.value.code4,
  3318. sczl_bh5: formDatas.value.code5,
  3319. sczl_bh6: formDatas.value.code6,
  3320. sczl_bh7: formDatas.value.code7,
  3321. sczl_bh8: formDatas.value.code10,
  3322. sczl_bh9: formDatas.value.code9,
  3323. sczl_bh10: formDatas.value.code8,
  3324. sczl_rate1: formDatas.value.percentage1,
  3325. sczl_rate2: formDatas.value.percentage2,
  3326. sczl_rate3: formDatas.value.percentage3,
  3327. sczl_rate4: formDatas.value.percentage4,
  3328. sczl_rate5: formDatas.value.percentage5,
  3329. sczl_rate6: formDatas.value.percentage6,
  3330. sczl_rate7: formDatas.value.percentage7,
  3331. sczl_rate8: formDatas.value.percentage10,
  3332. sczl_rate9: formDatas.value.percentage9,
  3333. sczl_rate10: formDatas.value.percentage8,
  3334. sys_id: `【${formData.value.addr} ${JTMC}】`
  3335. })
  3336. if (response.code === 0) {
  3337. ElMessage({
  3338. type: 'success',
  3339. message: '成功'
  3340. })
  3341. FacilityProduction()
  3342. }
  3343. }
  3344. const selectBz = async() => {
  3345. if(currentBz.value){
  3346. BZMC.value=currentBz.value.班组号
  3347. let sczl_bhkey=''
  3348. let sczl_namekey=''
  3349. // if (currentBz.value) {
  3350. // for (let i = 1; i <= 6; i++) {
  3351. // sczl_bhkey=`sczl_bh${i}`
  3352. // sczl_namekey=`sczl_name${i}`
  3353. // formData.value[sczl_bhkey] = '';
  3354. // formData.value[sczl_namekey] = '';
  3355. // }
  3356. // for (let i = 1; i <= Math.min(Object.keys(currentBz.value).length-4, 6); i++) {
  3357. // sczl_bhkey=`sczl_bh${i}`
  3358. // sczl_namekey=`sczl_name${i}`
  3359. // console.log(currentBz.value[i-1].split(' '))
  3360. // formData.value[sczl_bhkey] = currentBz.value[i-1].split(' ')[0];
  3361. // formData.value[sczl_namekey] = currentBz.value[i-1].split(' ')[1];
  3362. // classbz.value[i-1]=currentBz.value[i-1].split(' ')[0]
  3363. // }
  3364. // formData.value.class=classbz.value.join(',')
  3365. // }
  3366. if (currentBz.value[9]) {
  3367. for (let i = 1; i <= 9; i++) {
  3368. sczl_bhkey=`sczl_bh${i}`
  3369. sczl_namekey=`sczl_name${i}`
  3370. formData.value[sczl_bhkey] = '';
  3371. formData.value[sczl_namekey] = '';
  3372. }
  3373. formData.value.sczl_bh10 = currentBz.value[9].split(' ')[0];
  3374. formData.value.sczl_name10=currentBz.value[9].split(' ')[1]
  3375. for (let i = 1; i <= Math.min(Object.keys(currentBz.value).length-5, 6); i++) {
  3376. sczl_bhkey=`sczl_bh${i}`
  3377. sczl_namekey=`sczl_name${i}`
  3378. console.log(currentBz.value[i-1].split(' '))
  3379. formData.value[sczl_bhkey] = currentBz.value[i-1].split(' ')[0];
  3380. formData.value[sczl_namekey] = currentBz.value[i-1].split(' ')[1];
  3381. classbz.value[i-1]=currentBz.value[i-1].split(' ')[0]
  3382. }
  3383. classbz.value.push(currentBz.value[9].split(' ')[0])
  3384. formData.value.class=classbz.value.join(',')
  3385. console.log(formData.value)
  3386. }else{
  3387. for (let i = 1; i <= 10; i++) {
  3388. sczl_bhkey=`sczl_bh${i}`
  3389. sczl_namekey=`sczl_name${i}`
  3390. formData.value[sczl_bhkey] = '';
  3391. formData.value[sczl_namekey] = '';
  3392. }
  3393. for (let i = 1; i <= Math.min(Object.keys(currentBz.value).length-4, 6); i++) {
  3394. sczl_bhkey=`sczl_bh${i}`
  3395. sczl_namekey=`sczl_name${i}`
  3396. console.log(currentBz.value[i-1].split(' '))
  3397. formData.value[sczl_bhkey] = currentBz.value[i-1].split(' ')[0];
  3398. formData.value[sczl_namekey] = currentBz.value[i-1].split(' ')[1];
  3399. classbz.value[i-1]=currentBz.value[i-1].split(' ')[0]
  3400. }
  3401. formData.value.class=classbz.value.join(',')
  3402. }
  3403. const response = await setMachineTeam({
  3404. machine: JTMC.split("#")[0],
  3405. order:formData.value.工单编号,
  3406. yjno:formData.value.印件号,
  3407. gy_name:formData.value.工序名称,
  3408. sczl_bzdh:BZMC.value,
  3409. status:formData.value.状态,
  3410. production_now:0,
  3411. production_all:0,
  3412. team_id:currentBz.value.ID
  3413. })
  3414. if(response.code===0){
  3415. ElMessage({
  3416. type: 'success',
  3417. message: '成功'
  3418. })
  3419. }
  3420. // currentBz.value={}
  3421. }
  3422. }
  3423. const delBz = async() => {
  3424. if(currentBz.value){
  3425. ElMessageBox.confirm('确定要删除吗?', '提示', {
  3426. confirmButtonText: '确定',
  3427. cancelButtonText: '取消',
  3428. type: 'warning'
  3429. }).then(() => {
  3430. const response = teamDel(currentBz.value.ID)
  3431. if(response.code===0){
  3432. ElMessage({
  3433. type: 'success',
  3434. message: '成功'
  3435. })
  3436. }
  3437. })
  3438. FacilityProduction()
  3439. currentBz.value={}
  3440. }
  3441. }
  3442. // ============== 表格控制部分结束 ===============
  3443. // 获取需要的字典 可能为空 按需保留
  3444. const setOptions = async () =>{
  3445. }
  3446. // 获取需要的字典 可能为空 按需保留
  3447. setOptions()
  3448. // 多选数据
  3449. const multipleSelection = ref([])
  3450. // 多选
  3451. const handleSelectionChange = (val) => {
  3452. multipleSelection.value = val
  3453. }
  3454. const zdtreeType = ref(false)
  3455. const selectData = ref([])
  3456. const showsTable = (val,tab) => {
  3457. }
  3458. const showTable = (val,tab) => {
  3459. // zdtreeType.value=false
  3460. }
  3461. // 删除行
  3462. const deleteRow = (row) => {
  3463. ElMessageBox.confirm('确定要删除吗?', '提示', {
  3464. confirmButtonText: '确定',
  3465. cancelButtonText: '取消',
  3466. type: 'warning'
  3467. }).then(() => {
  3468. deleteCompanyFunc(row)
  3469. })
  3470. }
  3471. // 批量删除控制标记
  3472. const deleteVisible = ref(false)
  3473. // 多选删除
  3474. const onDelete = async() => {
  3475. const ids = []
  3476. if (multipleSelection.value.length === 0) {
  3477. ElMessage({
  3478. type: 'warning',
  3479. message: '请选择要删除的数据'
  3480. })
  3481. return
  3482. }
  3483. multipleSelection.value &&
  3484. multipleSelection.value.map(item => {
  3485. ids.push(item.ID)
  3486. })
  3487. const res = await deleteCompanyByIds({ ids })
  3488. if (res.code === 0) {
  3489. ElMessage({
  3490. type: 'success',
  3491. message: '删除成功'
  3492. })
  3493. if (tableData.value.length === ids.length && page.value > 1) {
  3494. page.value--
  3495. }
  3496. deleteVisible.value = false
  3497. getTableData()
  3498. }
  3499. }
  3500. // 行为控制标记(弹窗内部需要增还是改)
  3501. const type = ref('')
  3502. // 更新行
  3503. const updateCompanyFunc = async(row) => {
  3504. const res = await findCompany({ ID: row.ID })
  3505. type.value = 'update'
  3506. if (res.code === 0) {
  3507. formData.value = res.data.recompany
  3508. dialogFormVisible.value = true
  3509. }
  3510. }
  3511. const yjupdateCompanyFunc = async(row) => {
  3512. ElMessageBox.confirm('确定切换当前工单为工作工单吗?', '提示', {
  3513. confirmButtonText: '确定',
  3514. cancelButtonText: '取消',
  3515. type: 'warning'
  3516. }).then(() => {
  3517. setMachineTeams(row)
  3518. })
  3519. }
  3520. const setMachineTeams = async(row) => {
  3521. const res = await setMachineTeam({
  3522. machine: JTMC.split("#")[0],
  3523. order:row['工单编号|质量信息'].split('|')[0],
  3524. yjno:row['印件资料'].split('-')[0],
  3525. gy_name:row['工序名称'],
  3526. sczl_bzdh:BZMC.value,
  3527. status:formData.value.状态,
  3528. production_now:0,
  3529. production_all:0,
  3530. team_id:formData.value.班组Id
  3531. })
  3532. if (res.code === 0) {
  3533. EquipmentSchedulingEdits(row)
  3534. ElMessage({
  3535. type: 'success',
  3536. message: '成功'
  3537. })
  3538. }
  3539. }
  3540. const EquipmentSchedulingEdits = async(row) => {
  3541. console.log(row)
  3542. const res = await EquipmentSchedulingEdit([{
  3543. capacity:row.工序产能,
  3544. ProductionHours:row.计划工时,
  3545. AuxiliaryHours:row.装版时数,
  3546. shift:row.班组,
  3547. remark:row.排产备注,
  3548. start:row.最早开工时间,
  3549. projectTime:currentTime,
  3550. UniqId:row.UniqId
  3551. }])
  3552. if (res.code === 0) {
  3553. FacilityProduction()
  3554. }
  3555. }
  3556. // 删除行
  3557. const deleteCompanyFunc = async (row) => {
  3558. const res = await deleteCompany({ ID: row.ID })
  3559. if (res.code === 0) {
  3560. ElMessage({
  3561. type: 'success',
  3562. message: '删除成功'
  3563. })
  3564. if (tableData.value.length === 1 && page.value > 1) {
  3565. page.value--
  3566. }
  3567. getTableData()
  3568. }
  3569. }
  3570. // 弹窗控制标记
  3571. const dialogFormVisible = ref(false)
  3572. const dianjianVisible = ref(false)
  3573. const zhichengVisible = ref(false)
  3574. // 查看详情控制标记
  3575. const detailShow = ref(false)
  3576. const bzData = reactive([])
  3577. // 打开详情弹窗
  3578. const openDetailShow = () => {
  3579. detailShow.value = true
  3580. }
  3581. // 打开详情
  3582. const getDetails = async (row) => {
  3583. // 打开弹窗
  3584. const res = await findCompany({ ID: row.ID })
  3585. if (res.code === 0) {
  3586. formData.value = res.data.recompany
  3587. openDetailShow()
  3588. }
  3589. }
  3590. // 关闭详情弹窗
  3591. const closeDetailShow = () => {
  3592. detailShow.value = false
  3593. // formData.value = {
  3594. // address: '',
  3595. // image: '',
  3596. // name: '',
  3597. // }
  3598. }
  3599. // 打开弹窗
  3600. const openDialog = () => {
  3601. // type.value = 'create'
  3602. // console.log('222')
  3603. // FacilityInspect()
  3604. // dialogFormVisible.value = true
  3605. }
  3606. let drzcData=[]
  3607. let columnNames=[]
  3608. //当日制程检验记录
  3609. const FacilityInspect = async () => {
  3610. const response = await facilityInspect({machine:'JY01#',date:'2024-01-04'});
  3611. console.log(response)
  3612. if(response.code==0){
  3613. // 提取 inspectiontime 作为列名
  3614. // Extract inspectiontime as columnNames
  3615. columnNames = response.data.inspectiontime;
  3616. // Populate drzcData with row data
  3617. for (const key in response.data) {
  3618. if (key !== 'inspectiontime') {
  3619. const item = response.data[key];
  3620. const rowData = {
  3621. '工单编号': item['工单编号'],
  3622. '印件号': item['印件号'],
  3623. '工序名称': item['工序名称'],
  3624. '检验项目': item['检验项目']
  3625. };
  3626. // Initialize time columns with '—'
  3627. columnNames.forEach(time => {
  3628. rowData[time] = '';
  3629. });
  3630. // Split inspectresult and fill the corresponding time columns
  3631. const results = item['inspectresult'].split(',');
  3632. results.forEach(result => {
  3633. if (columnNames.includes(result)) {
  3634. rowData[result] = '√';
  3635. }else{rowData[result] = ''}
  3636. });
  3637. // Add the row data to drzcData
  3638. drzcData.push(rowData);
  3639. }
  3640. }
  3641. console.log(drzcData);
  3642. }
  3643. }
  3644. // 关闭弹窗
  3645. const closeDialog = () => {
  3646. dialogFormVisible.value = false
  3647. formData.value = {
  3648. address: '',
  3649. image: '',
  3650. name: '',
  3651. }
  3652. }
  3653. const equipmentCode=ref('JY01')
  3654. const equipmentName=ref('海德堡对开')
  3655. const workOrder=ref('2312117')
  3656. const number=ref('1907')
  3657. // 弹窗确定
  3658. const enterDialog = async () => {
  3659. elFormRef.value?.validate( async (valid) => {
  3660. if (!valid) return
  3661. let res
  3662. switch (type.value) {
  3663. case 'create':
  3664. res = await createCompany(formData.value)
  3665. break
  3666. case 'update':
  3667. res = await updateCompany(formData.value)
  3668. break
  3669. default:
  3670. res = await createCompany(formData.value)
  3671. break
  3672. }
  3673. if (res.code === 0) {
  3674. ElMessage({
  3675. type: 'success',
  3676. message: '创建/更改成功'
  3677. })
  3678. closeDialog()
  3679. getTableData()
  3680. }
  3681. })
  3682. }
  3683. const sbzyqdplanUsageCellClass = ({row, column, rowIndex, columnIndex}) =>{
  3684. if(formData.value['工单编号'] === row['工单编号|质量信息'].split('|')[0]){
  3685. return 'back-color-row';
  3686. }
  3687. }
  3688. const bzryplanUsageCellClass = ({row, column, rowIndex, columnIndex}) =>{
  3689. if(formData.value['班组Id'] === row.ID){
  3690. return 'back-color-row';
  3691. }
  3692. }
  3693. </script>
  3694. <style scoped>
  3695. .JKWTree-container {
  3696. display: flex;
  3697. }
  3698. .JKWTree-tree {
  3699. width: 300px;
  3700. background-color: #fff;
  3701. padding: 10px;
  3702. margin-right: 20px;
  3703. }
  3704. .JKWTree-tree h3 {
  3705. font-size: 15px;
  3706. font-weight: 700;
  3707. margin: 10px 0;
  3708. }
  3709. .JKWTree-content {
  3710. flex: 1;
  3711. }
  3712. .groupbox
  3713. {margin:10px;
  3714. width:500px;
  3715. height:500px;
  3716. border:thin solid black;
  3717. padding:10px}
  3718. .grouptitle
  3719. {display:block;
  3720. margin-top:-24px;
  3721. margin-left:20px;
  3722. width:150px;
  3723. text-align:center;
  3724. background-color:white}
  3725. /* 选中某行时的背景色*/
  3726. :deep(.el-table__body tr.current-row)>td {
  3727. background: #ff80ff !important;
  3728. }
  3729. /*设备作业清单背景颜色*/
  3730. :deep(.el-table__body .back-color-row) {
  3731. background: #ff80ff !important;
  3732. }
  3733. </style>