chejianbaogong.vue 116 KB

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