chejianbaogong.vue 132 KB

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