chanpinziliao.vue 165 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041051061071081091101111121131141151161171181191201211221231241251261271281291301311321331341351361371381391401411421431441451461471481491501511521531541551561571581591601611621631641651661671681691701711721731741751761771781791801811821831841851861871881891901911921931941951961971981992002012022032042052062072082092102112122132142152162172182192202212222232242252262272282292302312322332342352362372382392402412422432442452462472482492502512522532542552562572582592602612622632642652662672682692702712722732742752762772782792802812822832842852862872882892902912922932942952962972982993003013023033043053063073083093103113123133143153163173183193203213223233243253263273283293303313323333343353363373383393403413423433443453463473483493503513523533543553563573583593603613623633643653663673683693703713723733743753763773783793803813823833843853863873883893903913923933943953963973983994004014024034044054064074084094104114124134144154164174184194204214224234244254264274284294304314324334344354364374384394404414424434444454464474484494504514524534544554564574584594604614624634644654664674684694704714724734744754764774784794804814824834844854864874884894904914924934944954964974984995005015025035045055065075085095105115125135145155165175185195205215225235245255265275285295305315325335345355365375385395405415425435445455465475485495505515525535545555565575585595605615625635645655665675685695705715725735745755765775785795805815825835845855865875885895905915925935945955965975985996006016026036046056066076086096106116126136146156166176186196206216226236246256266276286296306316326336346356366376386396406416426436446456466476486496506516526536546556566576586596606616626636646656666676686696706716726736746756766776786796806816826836846856866876886896906916926936946956966976986997007017027037047057067077087097107117127137147157167177187197207217227237247257267277287297307317327337347357367377387397407417427437447457467477487497507517527537547557567577587597607617627637647657667677687697707717727737747757767777787797807817827837847857867877887897907917927937947957967977987998008018028038048058068078088098108118128138148158168178188198208218228238248258268278288298308318328338348358368378388398408418428438448458468478488498508518528538548558568578588598608618628638648658668678688698708718728738748758768778788798808818828838848858868878888898908918928938948958968978988999009019029039049059069079089099109119129139149159169179189199209219229239249259269279289299309319329339349359369379389399409419429439449459469479489499509519529539549559569579589599609619629639649659669679689699709719729739749759769779789799809819829839849859869879889899909919929939949959969979989991000100110021003100410051006100710081009101010111012101310141015101610171018101910201021102210231024102510261027102810291030103110321033103410351036103710381039104010411042104310441045104610471048104910501051105210531054105510561057105810591060106110621063106410651066106710681069107010711072107310741075107610771078107910801081108210831084108510861087108810891090109110921093109410951096109710981099110011011102110311041105110611071108110911101111111211131114111511161117111811191120112111221123112411251126112711281129113011311132113311341135113611371138113911401141114211431144114511461147114811491150115111521153115411551156115711581159116011611162116311641165116611671168116911701171117211731174117511761177117811791180118111821183118411851186118711881189119011911192119311941195119611971198119912001201120212031204120512061207120812091210121112121213121412151216121712181219122012211222122312241225122612271228122912301231123212331234123512361237123812391240124112421243124412451246124712481249125012511252125312541255125612571258125912601261126212631264126512661267126812691270127112721273127412751276127712781279128012811282128312841285128612871288128912901291129212931294129512961297129812991300130113021303130413051306130713081309131013111312131313141315131613171318131913201321132213231324132513261327132813291330133113321333133413351336133713381339134013411342134313441345134613471348134913501351135213531354135513561357135813591360136113621363136413651366136713681369137013711372137313741375137613771378137913801381138213831384138513861387138813891390139113921393139413951396139713981399140014011402140314041405140614071408140914101411141214131414141514161417141814191420142114221423142414251426142714281429143014311432143314341435143614371438143914401441144214431444144514461447144814491450145114521453145414551456145714581459146014611462146314641465146614671468146914701471147214731474147514761477147814791480148114821483148414851486148714881489149014911492149314941495149614971498149915001501150215031504150515061507150815091510151115121513151415151516151715181519152015211522152315241525152615271528152915301531153215331534153515361537153815391540154115421543154415451546154715481549155015511552155315541555155615571558155915601561156215631564156515661567156815691570157115721573157415751576157715781579158015811582158315841585158615871588158915901591159215931594159515961597159815991600160116021603160416051606160716081609161016111612161316141615161616171618161916201621162216231624162516261627162816291630163116321633163416351636163716381639164016411642164316441645164616471648164916501651165216531654165516561657165816591660166116621663166416651666166716681669167016711672167316741675167616771678167916801681168216831684168516861687168816891690169116921693169416951696169716981699170017011702170317041705170617071708170917101711171217131714171517161717171817191720172117221723172417251726172717281729173017311732173317341735173617371738173917401741174217431744174517461747174817491750175117521753175417551756175717581759176017611762176317641765176617671768176917701771177217731774177517761777177817791780178117821783178417851786178717881789179017911792179317941795179617971798179918001801180218031804180518061807180818091810181118121813181418151816181718181819182018211822182318241825182618271828182918301831183218331834183518361837183818391840184118421843184418451846184718481849185018511852185318541855185618571858185918601861186218631864186518661867186818691870187118721873187418751876187718781879188018811882188318841885188618871888188918901891189218931894189518961897189818991900190119021903190419051906190719081909191019111912191319141915191619171918191919201921192219231924192519261927192819291930193119321933193419351936193719381939194019411942194319441945194619471948194919501951195219531954195519561957195819591960196119621963196419651966196719681969197019711972197319741975197619771978197919801981198219831984198519861987198819891990199119921993199419951996199719981999200020012002200320042005200620072008200920102011201220132014201520162017201820192020202120222023202420252026202720282029203020312032203320342035203620372038203920402041204220432044204520462047204820492050205120522053205420552056205720582059206020612062206320642065206620672068206920702071207220732074207520762077207820792080208120822083208420852086208720882089209020912092209320942095209620972098209921002101210221032104210521062107210821092110211121122113211421152116211721182119212021212122212321242125212621272128212921302131213221332134213521362137213821392140214121422143214421452146214721482149215021512152215321542155215621572158215921602161216221632164216521662167216821692170217121722173217421752176217721782179218021812182218321842185218621872188218921902191219221932194219521962197219821992200220122022203220422052206220722082209221022112212221322142215221622172218221922202221222222232224222522262227222822292230223122322233223422352236223722382239224022412242224322442245224622472248224922502251225222532254225522562257225822592260226122622263226422652266226722682269227022712272227322742275227622772278227922802281228222832284228522862287228822892290229122922293229422952296229722982299230023012302230323042305230623072308230923102311231223132314231523162317231823192320232123222323232423252326232723282329233023312332233323342335233623372338233923402341234223432344234523462347234823492350235123522353235423552356235723582359236023612362236323642365236623672368236923702371237223732374237523762377237823792380238123822383238423852386238723882389239023912392239323942395239623972398239924002401240224032404240524062407240824092410241124122413241424152416241724182419242024212422242324242425242624272428242924302431243224332434243524362437243824392440244124422443244424452446244724482449245024512452245324542455245624572458245924602461246224632464246524662467246824692470247124722473247424752476247724782479248024812482248324842485248624872488248924902491249224932494249524962497249824992500250125022503250425052506250725082509251025112512251325142515251625172518251925202521252225232524252525262527252825292530253125322533253425352536253725382539254025412542254325442545254625472548254925502551255225532554255525562557255825592560256125622563256425652566256725682569257025712572257325742575257625772578257925802581258225832584258525862587258825892590259125922593259425952596259725982599260026012602260326042605260626072608260926102611261226132614261526162617261826192620262126222623262426252626262726282629263026312632263326342635263626372638263926402641264226432644264526462647264826492650265126522653265426552656265726582659266026612662266326642665266626672668266926702671267226732674267526762677267826792680268126822683268426852686268726882689269026912692269326942695269626972698269927002701270227032704270527062707270827092710271127122713271427152716271727182719272027212722272327242725272627272728272927302731273227332734273527362737273827392740274127422743274427452746274727482749275027512752275327542755275627572758275927602761276227632764276527662767276827692770277127722773277427752776277727782779278027812782278327842785278627872788278927902791279227932794279527962797279827992800280128022803280428052806280728082809281028112812281328142815281628172818281928202821282228232824282528262827282828292830283128322833283428352836283728382839284028412842284328442845284628472848284928502851285228532854285528562857285828592860286128622863286428652866286728682869287028712872287328742875287628772878287928802881288228832884288528862887288828892890289128922893289428952896289728982899290029012902290329042905290629072908290929102911291229132914291529162917291829192920292129222923292429252926292729282929293029312932293329342935293629372938293929402941294229432944294529462947294829492950295129522953295429552956295729582959296029612962296329642965296629672968296929702971297229732974297529762977297829792980298129822983298429852986298729882989299029912992299329942995299629972998299930003001300230033004300530063007300830093010301130123013301430153016301730183019302030213022302330243025302630273028302930303031303230333034303530363037303830393040304130423043304430453046304730483049305030513052305330543055305630573058305930603061306230633064306530663067306830693070307130723073307430753076307730783079308030813082308330843085308630873088308930903091309230933094309530963097309830993100310131023103310431053106310731083109311031113112311331143115311631173118311931203121312231233124312531263127312831293130313131323133313431353136313731383139314031413142314331443145314631473148314931503151315231533154315531563157315831593160316131623163316431653166316731683169317031713172317331743175317631773178317931803181318231833184318531863187318831893190319131923193319431953196319731983199320032013202320332043205320632073208320932103211321232133214321532163217321832193220322132223223322432253226322732283229323032313232323332343235323632373238323932403241324232433244324532463247324832493250325132523253325432553256325732583259326032613262326332643265326632673268326932703271327232733274327532763277327832793280328132823283328432853286328732883289329032913292329332943295329632973298329933003301330233033304330533063307330833093310331133123313331433153316331733183319332033213322332333243325332633273328332933303331333233333334333533363337333833393340334133423343334433453346334733483349335033513352335333543355335633573358335933603361336233633364336533663367336833693370337133723373337433753376337733783379338033813382338333843385338633873388338933903391339233933394339533963397339833993400340134023403340434053406340734083409341034113412341334143415341634173418341934203421342234233424342534263427342834293430343134323433343434353436343734383439344034413442344334443445344634473448344934503451345234533454345534563457345834593460346134623463346434653466346734683469347034713472347334743475347634773478347934803481348234833484348534863487348834893490349134923493349434953496349734983499350035013502350335043505350635073508350935103511351235133514351535163517351835193520352135223523352435253526352735283529353035313532353335343535353635373538353935403541354235433544354535463547354835493550355135523553355435553556355735583559356035613562356335643565356635673568356935703571357235733574357535763577357835793580358135823583358435853586358735883589359035913592359335943595359635973598359936003601360236033604360536063607360836093610361136123613361436153616361736183619362036213622362336243625362636273628362936303631363236333634363536363637363836393640364136423643364436453646364736483649365036513652365336543655365636573658365936603661366236633664366536663667366836693670
  1. <template>
  2. <div>
  3. <layout>
  4. <layout-header >
  5. <div class="">
  6. <!--按钮部分-->
  7. <el-form ref="elSearchFormRef" :inline="true" class="demo-form-inline" :rules="searchRule" @keyup.enter="onSubmit">
  8. <el-form-item>
  9. <el-input v-model="searchInfo" placeholder="搜索产品编号或产品名称" style="width: 180px;"></el-input>
  10. <el-button type="primary" icon="search" @click="onSubmit" class="search"></el-button>
  11. <el-button type="primary" class="bt" icon="edit" @click="onStatusClick">状态设置</el-button>
  12. <el-button type="primary" class="bt" icon="edit" @click="jsfjClick">技术附件</el-button>
  13. <el-button type="primary" class="bt" icon="edit" @click="cpgyfzclick">产品工艺复制</el-button>
  14. <el-button type="primary" class="bt" icon="edit" @click="gygmClick" >工艺方案更名</el-button>
  15. <el-button type="primary" class="bt" icon="edit" @click="fjClick" >工艺方案附加</el-button>
  16. <el-button type="primary" class="bt" icon="edit" @click="jsssxzClick" >计损色数修正</el-button>
  17. <el-button type="primary" class="bt" icon="edit" @click="fjfpxsClick" >质检废品系数</el-button>
  18. <el-button type="primary" class="bt" icon="edit" @click="pccstzClick" >排产参数调整</el-button>
  19. <el-button type="primary" class="bt" icon="edit" @click="hscstzClick" >核算参数调整</el-button>
  20. <el-button type="primary" class="bt" icon="edit" @click="addcpyj_onclick" >新增印件资料</el-button>
  21. <el-button type="primary" class="bt" icon="edit" @click="addcpgy_onclick" >新增工艺资料</el-button>
  22. <el-button type="primary" class="bt" icon="edit" @click="addyb_onclick" >新增印版资料</el-button>
  23. <!-- <el-button type="primary" class="bt" icon="Download" @click="cpexportToExcel" disabled>导出产品资料</el-button>-->
  24. <!-- <el-button type="primary" class="bt" icon="Download" @click="gyexportToExcel" disabled>导出工艺流程</el-button>-->
  25. </el-form-item>
  26. </el-form>
  27. <!--按钮弹窗部分-->
  28. <!--状态设置-->
  29. <el-dialog v-model="onstatuslist" title="状态设置" style="width: 300px; top: 20%">
  30. <div>
  31. <el-radio-group v-model="status">
  32. <el-radio label="在产">在产</el-radio>
  33. <el-radio label="停产">停产</el-radio>
  34. </el-radio-group>
  35. </div>
  36. <div slot="footer" class="dialog-footer" style="text-align: right;">
  37. <el-button @click="handleCancel">取消</el-button>
  38. <el-button type="primary" @click="handleConfirm">确定</el-button>
  39. </div>
  40. </el-dialog>
  41. <!-- 产品工艺复制-->
  42. <el-dialog v-model="cpgyfzlist" title="产品工艺复制" style="width: 35%;top: 15%;">
  43. <el-form-item label="参照产品代号:" prop="process" class="mab">
  44. <el-input disabled v-model="cpgyfzformData['process']" id="process" @keydown="add_cpgyfzent($event, 'fzybzl', 'process', 'processName')" placeholder="" style="width: 160px;"/>
  45. <el-input disabled v-model="cpgyfzformData['processName']" id="processName" @keydown="add_cpgyfzent($event, 'process', 'processName', 'gongyifa')" placeholder="" style="width: 360px;"/>
  46. </el-form-item>
  47. <el-form-item label="参照工艺方案:" prop="originalName" class="mab">
  48. <el-select v-model="cpgyfzformData.gongyifa" placeholder="请选择" id="gongyifa" @keydown="add_cpgyfzent($event, 'processName', 'gongyifa', 'mubprocess')" style="width: 160px;">
  49. <el-option v-for="option in cpgyfzformData.gongyifaNameOptions" :key="option" :label="option" style="width: 160px;" :value="option" />
  50. </el-select>
  51. </el-form-item>
  52. <el-form-item label="目标产品代号:" prop="process" class="mab">
  53. <el-input v-model="cpgyfzformData['mubprocess']" id="mubprocess" @keydown="add_cpgyfzent($event, 'gongyifa', 'mubprocess', 'mubprocessName')" placeholder="" style="width: 160px;"/>
  54. <el-input disabled v-model="cpgyfzformData['mubprocessName']" id="mubprocessName" @keydown="add_cpgyfzent($event, 'mubprocess', 'mubprocessName', 'fzgyzl')" placeholder="" style="width: 360px;"/>
  55. </el-form-item>
  56. <!-- cpgyfzformData.fzgyzl === true-->
  57. <el-form-item label="" class="mab" >
  58. <el-checkbox v-model="cpgyfzformData['fzgyzl']" id="fzgyzl" @keydown="add_cpgyfzent($event, 'mubprocessName', 'fzgyzl', 'fzybzl')" >复制工艺资料</el-checkbox>
  59. <el-input v-model="cpgyfzformData['to_pro']" id="to_pro" v-if="cpgyfzformData['fzgyzl'] !== false" placeholder="目标工艺方案" style="width: 160px;margin-left: 20px"/>
  60. </el-form-item>
  61. <el-form-item label="" class="mab" >
  62. <el-checkbox v-model="cpgyfzformData['fzybzl']" id="fzybzl" @keydown="add_cpgyfzent($event, 'fzgyzl', 'fzybzl', 'process')" >复制印版资料</el-checkbox>
  63. </el-form-item>
  64. <div class="dialog-footer" style="text-align: right ">
  65. <el-button @click="cpgyfzhandleCancel">取消</el-button>
  66. <el-button type="primary" @click="cpgyfzhandleConfirm">确定</el-button>
  67. </div>
  68. </el-dialog>
  69. <!-- 产品工艺复制 目标产品代号弹窗-->
  70. <el-dialog v-model="cpgyfzdisplay" :before-close="() => cpgyfzdisplay = false">
  71. <el-form>
  72. <div>
  73. <el-form-item label="关键字:" class="mab" prop="keyOrder">
  74. <el-space>
  75. <el-input v-model="cpgyfz_keyword" @keyup.enter="cpgyfz_ProductValue" style="width: 100%;"/>
  76. <el-button @click="cpgyfzSearchHandle(cpgyfz_keyword, '产品代号')">刷新</el-button>
  77. </el-space>
  78. </el-form-item>
  79. <div style="border:1px solid #eee; width:100%; height: 400px; overflow-y: auto">
  80. <el-tree :data="cpgyfzLists" :props="{children: 'children',label: 'name', value: '产品编号'}" @node-click="cpgyfzselectGongDanNode($event, '产品代号')" />
  81. </div>
  82. </div>
  83. </el-form>
  84. </el-dialog>
  85. <!--工艺方案更名-->
  86. <el-dialog v-model="gygmlist" title="工艺方案更名" style="width: 35%;top: 15%;">
  87. <el-form-item label="产品代号:" prop="process" class="mab">
  88. <el-input v-model="gyformData['process']" disabled placeholder="" style="width: 160px;"/>
  89. </el-form-item>
  90. <br>
  91. <el-form-item label="产品名称" prop="processName" class="mab">
  92. <el-input v-model="gyformData['processName']" disabled placeholder="" style="width: 90%;" />
  93. </el-form-item>
  94. <br>
  95. <el-form-item label="工艺方案原名:" prop="originalName" class="mab">
  96. <el-select v-model="gyformData.originalName" placeholder="请选择" style="width: 160px;">
  97. <el-option v-for="option in gyformData.originalNameOptions" :key="option" :label="option" :value="option" />
  98. </el-select>
  99. </el-form-item>
  100. <br>
  101. <el-form-item label="工艺方案新名:" prop="newName" class="mab">
  102. <el-input v-model="gyformData['newName']" placeholder="" style="width: 160px;"/>
  103. </el-form-item>
  104. <div class="dialog-footer" style="text-align: right ">
  105. <el-button @click="gygmhandleCancel">取消</el-button>
  106. <el-button type="primary" @click="gygmhandleConfirm">确定</el-button>
  107. </div>
  108. </el-dialog>
  109. <!--工艺方案附加 -->
  110. <el-dialog v-model="fjlist" title="工艺方案附加" style="width: 100%;height: 100%;margin: 0px">
  111. <el-button type="primary" @click="fjbzgx">附加标准工序</el-button>
  112. <el-button type="primary" @click="gxdqcpgx">更新当前产品工序</el-button>
  113. <!-- :disabled="!fjformData['dqoriginalName']" 替换 disabled -->
  114. <el-button type="primary" disabled @click="fjhandleConfirm">建立工艺方案</el-button>
  115. <el-button type="primary" @click="fjhandleCancel">放弃操作</el-button>
  116. <div>
  117. <br>
  118. <div style="height: 38px; display: flex; align-items: center;">
  119. <el-form-item label="当前产品:" prop="currentProcess" style="margin-right: 20px;padding: 0px">
  120. <el-input v-model="fjformData['process']" disabled placeholder="" style="width: 160px;"/>
  121. <el-input v-model="fjformData['processName']" disabled placeholder="" style="width: 500px;flex: 1;"/>
  122. </el-form-item>
  123. <el-form-item label="工艺方案:" prop="originalName" style="margin-left: 20px;">
  124. <el-select v-model="fjformData.originalName" placeholder="请选择" style="width: 160px;">
  125. <el-option v-for="option in fjformData.originalNameOptions" @click="onoriginalNameclick" :key="option" :label="option" :value="option" />
  126. </el-select>
  127. </el-form-item>
  128. </div>
  129. <div style="height: 38px;display: flex; align-items: center;">
  130. <el-form-item label="新 产 品 :" prop="currentProcess" style="margin-right: 20px;">
  131. <el-input v-model="fjformData['dqprocess']"
  132. @keyup.enter="getProductValue" placeholder="输入新产品" style="width: 160px;"/>
  133. <el-input v-model="fjformData['dqprocessName']"
  134. :disabled="!!fjformData['dqprocessName']"
  135. placeholder="点击输框获取产品名称" @click="ondqprocessNameclick" style="width: 500px;flex: 1;"/>
  136. </el-form-item>
  137. <el-form-item label="工艺方案:" prop="originalName" style="margin-left: 20px;">
  138. <el-input v-model="fjformData['dqoriginalName']"
  139. :disabled="!fjformData['dqprocessName']"
  140. placeholder="" style="width: 160px;"/>
  141. </el-form-item>
  142. </div>
  143. <el-table ref="multipleTable"
  144. :show-overflow-tooltip="true"
  145. :row-style="{ height: '0px' }"
  146. :cell-style="{ padding: '0px' }" :header-row-style="{ height: '0px' }"
  147. :header-cell-style="{ padding: '0px' }"
  148. style="width: 100%;height: 70vh;" border tooltip-effect="dark"
  149. :data="fjtableData" row-key="ID" @selection-change="handleSelectionChange">
  150. <el-table-column v-slot="scope" align="left" label=方案 width="100" >
  151. <el-input disabled v-model="scope.row.programme" :clearable="false"/>
  152. </el-table-column>
  153. <el-table-column v-slot="scope" align="left" label="印件号" width="100">
  154. <el-input v-model="scope.row.Gy0_yjno" :clearable="false"/>
  155. </el-table-column>
  156. <el-table-column v-slot="scope" align="left" label="工序号" width="100" >
  157. <el-input v-model="scope.row.Gy0_gxh" :clearable="false"/>
  158. </el-table-column>
  159. <el-table-column v-slot="scope" align="left" label="工序名称" width="600" >
  160. <el-input disabled v-model="scope.row.Add_gxmc" :clearable="false"/>
  161. </el-table-column>
  162. <el-table-column v-slot="scope" align="left" label="工价系列" width="100" >
  163. <el-input disabled v-model="scope.row.difficulty_coe" :clearable="false"/>
  164. </el-table-column>
  165. <el-table-column v-slot="scope" align="left" label="损耗系数" width="100" >
  166. <el-input disabled v-model="scope.row.loss_coe" :clearable="false"/>
  167. </el-table-column>
  168. <el-table-column v-slot="scope" align="left" label="开数" width="100" >
  169. <el-input v-model="scope.row.Gy0_Ks" :clearable="false"/>
  170. </el-table-column>
  171. <el-table-column v-slot="scope" align="left" label="联数" width="100" >
  172. <el-input v-model="scope.row.Gy0_ls" :clearable="false"/>
  173. </el-table-column>
  174. <el-table-column v-slot="scope" align="left" label="备注" width="340" >
  175. <el-input disabled v-model="scope.row.remark" :clearable="false"/>
  176. </el-table-column>
  177. <el-table-column v-slot="scope" align="left" label="车间" width="130" >
  178. <el-input disabled v-model="scope.row.Gy0_site" :clearable="false"/>
  179. </el-table-column>
  180. <el-table-column v-slot="scope" align="left" label="设备编号" width="110" >
  181. <el-input disabled v-model="scope.row.Gy0_sbbh" :clearable="false"/>
  182. </el-table-column>
  183. </el-table>
  184. <!-- <div class="dialog-footer" style="text-align: right;margin: 0;">-->
  185. <!-- <el-button type="primary" @click="fjbzgx">附加标准工序</el-button>-->
  186. <!-- <el-button type="primary" @click="gxdqcpgx">更新当前产品工序</el-button>-->
  187. <!-- &lt;!&ndash; :disabled="!fjformData['dqoriginalName']" 替换 disabled &ndash;&gt;-->
  188. <!-- <el-button type="primary" disabled @click="fjhandleConfirm">建立工艺方案</el-button>-->
  189. <!-- <el-button type="primary" @click="fjhandleCancel">放弃操作</el-button>-->
  190. <!-- </div>-->
  191. </div>
  192. </el-dialog>
  193. <!--工艺方案附加中 附加标准工序-->
  194. <el-dialog v-model="cpgylcfjxx" title="产品工艺流程附加选择" width="1400px" style="height: 740px;bottom: 6%;">
  195. <div>
  196. <div style="width: 100%; height: 60px; padding: 0px; margin: 10px 0px 0px 0px; display: flex; align-items: center;">
  197. <el-form-item label="产品代号 :" prop="currentProcess" style="margin-right: 20px; padding: 0px">
  198. <el-input v-model="cpgyformData['cpgydh']"
  199. @keyup.enter="cpgygetProductValue" placeholder="输入新产品" style="width: 160px;"/>
  200. <el-input v-model="cpgyformData['cpgymc']"
  201. disabled
  202. placeholder="" @click="oncpgymcclick" style="width: 500px;flex: 1;"/>
  203. </el-form-item>
  204. <el-form-item label="工艺方案:" prop="originalName" style="margin-left: 20px;">
  205. <el-select v-model="cpgyformData.cpgyfan" placeholder="请选择" style="width: 160px;">
  206. <el-option v-for="option in cpgyformData.cpgyfans" @click="oncpgyfanclick" :key="option" :label="option" :value="option" />
  207. </el-select>
  208. </el-form-item>
  209. </div>
  210. <el-table ref="multipleTable"
  211. v-if="cpgyformData['cpgydh'] && cpgyformData['cpgydh'].length > 0"
  212. :show-overflow-tooltip="true"
  213. :row-style="{ height: '20px' }"
  214. :cell-style="{ padding: '0px' }" :header-row-style="{ height: '20px' }"
  215. :header-cell-style="{ padding: '0px' }"
  216. :hidden="!cpgyformData['cpgymc']"
  217. style="width: 100%;height: 450px" border tooltip-effect="dark"
  218. :data="cpgytableData" row-key="ID" @selection-change="handleSelectionChange">
  219. <el-table-column v-slot="scope" align="left" label=方案 width="100" >
  220. <el-input disabled v-model="scope.row.programme" :clearable="false"/>
  221. </el-table-column>
  222. <el-table-column v-slot="scope" align="left" label="印件号" width="100">
  223. <el-input disabled v-model="scope.row.Gy0_yjno" :clearable="false"/>
  224. </el-table-column>
  225. <el-table-column v-slot="scope" align="left" label="工序号" width="100" >
  226. <el-input disabled v-model="scope.row.Gy0_gxh" :clearable="false"/>
  227. </el-table-column>
  228. <el-table-column v-slot="scope" align="left" label="工序名称" width="340" >
  229. <el-input disabled v-model="scope.row.Add_gxmc" :clearable="false"/>
  230. </el-table-column>
  231. <el-table-column v-slot="scope" align="left" label="工价系列" width="100" >
  232. <el-input disabled v-model="scope.row.difficulty_coe" :clearable="false"/>
  233. </el-table-column>
  234. <el-table-column v-slot="scope" align="left" label="损耗系数" width="100" >
  235. <el-input disabled v-model="scope.row.loss_coe" :clearable="false"/>
  236. </el-table-column>
  237. <el-table-column v-slot="scope" align="left" label="开数" width="100" >
  238. <el-input disabled v-model="scope.row.Gy0_Ks" :clearable="false"/>
  239. </el-table-column>
  240. <el-table-column v-slot="scope" align="left" label="联数" width="100" >
  241. <el-input disabled v-model="scope.row.Gy0_ls" :clearable="false"/>
  242. </el-table-column>
  243. <el-table-column v-slot="scope" align="left" label="备注" width="200" >
  244. <el-input disabled v-model="scope.row.remark" :clearable="false"/>
  245. </el-table-column>
  246. <el-table-column v-slot="scope" align="left" label="车间" width="120" >
  247. <el-input disabled v-model="scope.row.Gy0_site" :clearable="false"/>
  248. </el-table-column>
  249. <el-table-column v-slot="scope" align="left" label="设备编号" width="100" >
  250. <el-input disabled v-model="scope.row.Gy0_sbbh" :clearable="false"/>
  251. </el-table-column>
  252. </el-table>
  253. <!-- <div class="dialog-footer" style="margin-top: 80px; margin-left: 45%;">-->
  254. <!-- <el-button type="primary" @click="onfjbzgxexecute">执 行</el-button>-->
  255. <!-- <el-button type="primary" @click="onfjbzgxcancellation">放 弃</el-button>-->
  256. <!-- </div>-->
  257. </div>
  258. </el-dialog>
  259. <!--计损色数修正-->
  260. <el-dialog v-model="jsssxzlist" title="计损色数修正" style="width: 100%;height: 100%;margin: 0;">
  261. <el-button type="" @click="jsssxzCancel">取消</el-button>
  262. <el-button type="primary" @click="jsssxzConfirm">确定</el-button>
  263. <div style="width: 100%; height: 60px; padding: 0px; margin: 0px 0px 6px 0px; display: flex; align-items: center;">
  264. <el-form-item label="关键字 :" prop="currentProcess" style="margin-right: 20px; padding: 0px">
  265. <el-input v-model="jsssxzformData['cpdh']"
  266. @keyup.enter="jsssxzgetProductValue" placeholder="输入产品编号" style="width: 500px;"/>
  267. </el-form-item>
  268. </div>
  269. <el-table ref="multipleTable"
  270. :show-overflow-tooltip="true"
  271. :row-style="{ height: '20px' }"
  272. :header-row-style="{ height: '20px' }"
  273. :header-cell-style="{ padding: '0px' }"
  274. style="width: 100%;height: 70vh" border tooltip-effect="dark"
  275. :data="jsssxztableData" row-key="ID" @selection-change="handleSelectionChange">
  276. <el-table-column v-slot="scope" align="left" label=产品名称 width="320" >
  277. <el-input disabled v-model="scope.row.product_name" :clearable="false"/>
  278. </el-table-column>
  279. <el-table-column v-slot="scope" align="left" label=方案 width="70" >
  280. <el-input disabled v-model="scope.row.programme" :clearable="false"/>
  281. </el-table-column>
  282. <el-table-column v-slot="scope" align="left" label=印件 width="70" >
  283. <el-input disabled v-model="scope.row.Gy0_yjno" :clearable="false"/>
  284. </el-table-column>
  285. <el-table-column v-slot="scope" align="left" label=工序 width="70" >
  286. <el-input disabled v-model="scope.row.Gy0_gxh" :clearable="false"/>
  287. </el-table-column>
  288. <el-table-column v-slot="scope" align="left" label=工艺 width="120" >
  289. <el-input disabled v-model="scope.row.gy0_gxmc" :clearable="false"/>
  290. </el-table-column>
  291. <el-table-column v-slot="scope" align="left" label="原计损色数" width="100">
  292. <el-input :value="scope.row.old_ms_coe" disabled :clearable="false"/>
  293. </el-table-column>
  294. <el-table-column v-slot="scope" align="left" prop="ms_coe" label=新计损色数 width="100" >
  295. <el-input v-model="scope.row.ms_coe" :clearable="false"/>
  296. </el-table-column>
  297. <el-table-column v-slot="scope" align="left" prop="Gy0_Ks" label=新开数 width="90" >
  298. <el-input v-model="scope.row.Gy0_Ks" :clearable="false"/>
  299. </el-table-column>
  300. <el-table-column v-slot="scope" align="left" prop="Gy0_ls" label=新联数 width="90" >
  301. <el-input v-model="scope.row.Gy0_ls" :clearable="false"/>
  302. </el-table-column>
  303. <el-table-column v-slot="scope" align="left" prop="Add_gxmc" label=工序名称 width="210" >
  304. <el-input v-model="scope.row.Add_gxmc" :clearable="false"/>
  305. </el-table-column>
  306. <el-table-column v-slot="scope" align="left" prop="remark" label=工序备注说明 width="340" >
  307. <el-input v-model="scope.row.remark" :clearable="false"/>
  308. </el-table-column>
  309. <el-table-column v-slot="scope" align="left" label=设备编号 width="100" >
  310. <el-input disabled v-model="scope.row.Gy0_sbbh" :clearable="false"/>
  311. </el-table-column>
  312. <el-table-column v-slot="scope" align="left" label=客户名称 width="200" >
  313. <el-input disabled v-model="scope.row.custom_name" :clearable="false"/>
  314. </el-table-column>
  315. </el-table>
  316. <!-- <div class="dialog-footer" style="text-align: right; margin-top: 1%;">-->
  317. <!-- <el-button type="" @click="jsssxzCancel">取消</el-button>-->
  318. <!-- <el-button type="primary" @click="jsssxzConfirm">确定</el-button>-->
  319. <!-- </div>-->
  320. </el-dialog>
  321. <!--质检废品系数-->
  322. <el-dialog v-model="fjfpxslist" title="质检废品系数" style="width: 100%;height: 100%;margin: 0;">
  323. <el-button type="" @click="fjfpxsCancel">取消</el-button>
  324. <el-button type="primary" @click="fjfpxsConfirm">确认</el-button>
  325. <div style="width: 100%; height: 60px; padding: 0px; margin: 0px 0px 6px 0px; display: flex; align-items: center;">
  326. <el-form-item label="关键字 :" prop="currentProcess" style="margin-right: 20px; padding: 0px">
  327. <el-input v-model="fjfpxsformData['cpdh']"
  328. @keyup.enter="fjfpxsgetProductValue" placeholder="输入产品编号" style="width: 500px;"/>
  329. </el-form-item>
  330. </div>
  331. <el-table ref="multipleTable"
  332. :show-overflow-tooltip="true"
  333. :row-style="{ height: '20px' }"
  334. :cell-style="{ padding: '0px' }" :header-row-style="{ height: '20px' }"
  335. :header-cell-style="{ padding: '0px' }"
  336. style="width: 100%;height: 70vh" border tooltip-effect="dark"
  337. :data="fjfpxstableData" row-key="ID" @selection-change="handleSelectionChange">
  338. <el-table-column v-slot="scope" align="left" label=产品名称 width="300" >
  339. <el-input disabled v-model="scope.row.product_name" :clearable="false"/>
  340. </el-table-column>
  341. <el-table-column v-slot="scope" align="left" label=印件 width="70" >
  342. <el-input disabled v-model="scope.row.Gy0_yjno" :clearable="false"/>
  343. </el-table-column>
  344. <el-table-column v-slot="scope" align="left" label=工序 width="70" >
  345. <el-input disabled v-model="scope.row.Gy0_gxh" :clearable="false"/>
  346. </el-table-column>
  347. <el-table-column v-slot="scope" align="left" label=工艺 width="120" >
  348. <el-input disabled v-model="scope.row.gy0_gxmc" :clearable="false"/>
  349. </el-table-column>
  350. <el-table-column v-slot="scope" align="left" label=原人工正品版 width="110" >
  351. <el-input disabled v-model="scope.row.old_artificial_zp" :clearable="false"/>
  352. </el-table-column>
  353. <el-table-column v-slot="scope" align="left" label=原人工次品板 width="110" >
  354. <el-input disabled v-model="scope.row.old_artificial_cp" :clearable="false"/>
  355. </el-table-column>
  356. <el-table-column v-slot="scope" align="left" label=原人工废检 width="100" >
  357. <el-input disabled v-model="scope.row.old_artificial_fj" :clearable="false"/>
  358. </el-table-column>
  359. <el-table-column v-slot="scope" align="left" label=原机检正品版 width="110" >
  360. <el-input disabled v-model="scope.row.old_machine_zp" :clearable="false"/>
  361. </el-table-column>
  362. <el-table-column v-slot="scope" align="left" label=原机检次品版 width="110" >
  363. <el-input disabled v-model="scope.row.old_machine_cp" :clearable="false"/>
  364. </el-table-column>
  365. <el-table-column v-slot="scope" align="left" label=原机检废检 width="100" >
  366. <el-input disabled v-model="scope.row.old_machine_fj" :clearable="false"/>
  367. </el-table-column>
  368. <el-table-column v-slot="scope" align="left" label=新人工正品版 width="110" >
  369. <el-input v-model="scope.row.artificial_zp" :clearable="false"/>
  370. </el-table-column>
  371. <el-table-column v-slot="scope" align="left" label=新人工次品板 width="110" >
  372. <el-input v-model="scope.row.artificial_cp" :clearable="false"/>
  373. </el-table-column>
  374. <el-table-column v-slot="scope" align="left" label=新人工废检 width="100" >
  375. <el-input v-model="scope.row.artificial_fj" :clearable="false"/>
  376. </el-table-column>
  377. <el-table-column v-slot="scope" align="left" label=新机检正品版 width="110" >
  378. <el-input v-model="scope.row.machine_zp" :clearable="false"/>
  379. </el-table-column>
  380. <el-table-column v-slot="scope" align="left" label=新机检次品版 width="110" >
  381. <el-input v-model="scope.row.machine_cp" :clearable="false"/>
  382. </el-table-column>
  383. <el-table-column v-slot="scope" align="left" label=新机检废检 width="100" >
  384. <el-input v-model="scope.row.machine_fj" :clearable="false"/>
  385. </el-table-column>
  386. <el-table-column v-slot="scope" align="left" label=设备编号 width="100" >
  387. <el-input disabled v-model="scope.row.Gy0_sbbh" :clearable="false"/>
  388. </el-table-column>
  389. <el-table-column v-slot="scope" align="left" label=客户名称 width="200" >
  390. <el-input disabled v-model="scope.row.custom_name" :clearable="false"/>
  391. </el-table-column>
  392. </el-table>
  393. </el-dialog>
  394. <!--排产参数调整-->
  395. <el-dialog v-model="pccstzlist" title="排产参数调整" style="width: 100%;height: 100%;margin: 0;">
  396. <el-button type="" @click="pccstzCancel">取消</el-button>
  397. <el-button type="primary" @click="pccstzConfirm">确认</el-button>
  398. <div style="width: 100%; height: 60px; padding: 0px; margin: 0px 0px 6px 0px; display: flex; align-items: center;">
  399. <el-form-item label="关键是字 :" prop="currentProcess" style="margin-right: 20px; padding: 0px">
  400. <el-input v-model="pccstzformData['cpdh']"
  401. @keyup.enter="pccstzProductValue" placeholder="输入产品编号" style="width: 500px;"/>
  402. </el-form-item>
  403. </div>
  404. <el-table ref="multipleTable"
  405. :show-overflow-tooltip="true"
  406. :row-style="{ height: '20px' }"
  407. :cell-style="{ padding: '0px' }" :header-row-style="{ height: '20px' }"
  408. :header-cell-style="{ padding: '0px' }"
  409. style="width: 100%;height: 70vh;" border tooltip-effect="dark"
  410. :data="pccstztableData" row-key="ID" @selection-change="handleSelectionChange">
  411. <el-table-column v-slot="scope" align="left" label=产品名称 width="230" >
  412. <el-input disabled v-model="scope.row.product_name" :clearable="false"/>
  413. </el-table-column>
  414. <el-table-column v-slot="scope" align="left" label=方案 width="70" >
  415. <el-input disabled v-model="scope.row.programme" :clearable="false"/>
  416. </el-table-column>
  417. <el-table-column v-slot="scope" align="left" label=印件 width="70" >
  418. <el-input disabled v-model="scope.row.Gy0_yjno" :clearable="false"/>
  419. </el-table-column>
  420. <el-table-column v-slot="scope" align="left" label=工序 width="70" >
  421. <el-input disabled v-model="scope.row.Gy0_gxh" :clearable="false"/>
  422. </el-table-column>
  423. <el-table-column v-slot="scope" align="left" label=工序名称 width="150" >
  424. <el-input disabled v-model="scope.row.gy0_gxmc" :clearable="false"/>
  425. </el-table-column>
  426. <el-table-column v-slot="scope" align="left" label=原A类产能 width="100" >
  427. <el-input disabled v-model="scope.row.old_A_power" :clearable="false"/>
  428. </el-table-column>
  429. <el-table-column v-slot="scope" align="left" label=原损耗代号 width="170" >
  430. <el-input disabled v-model="scope.row.old_Gy0_shdh" :clearable="false"/>
  431. </el-table-column>
  432. <el-table-column v-slot="scope" align="left" label=原机组编号 width="100" >
  433. <el-input disabled v-model="scope.row.old_Gy0_sbbh" :clearable="false"/>
  434. </el-table-column>
  435. <el-table-column v-slot="scope" align="left" label=新A类产能 width="115" >
  436. <el-input v-model="scope.row.A_power" :clearable="false"/>
  437. </el-table-column>
  438. <el-table-column v-slot="scope" align="left" label=新损耗代号 width="170" >
  439. <el-input v-model="scope.row.Gy0_shdh" :clearable="false"/>
  440. </el-table-column>
  441. <el-table-column v-slot="scope" align="left" label=新机组编号 width="115" >
  442. <el-input v-model="scope.row.Gy0_sbbh" :clearable="false"/>
  443. </el-table-column>
  444. <el-table-column v-slot="scope" align="left" label=新装版开工时 width="115" >
  445. <el-input v-model="scope.row.Gy0_辅助工时" :clearable="false"/>
  446. </el-table-column>
  447. <el-table-column v-slot="scope" align="left" label=开数 width="70" >
  448. <el-input disabled v-model="scope.row.Gy0_Ks" :clearable="false"/>
  449. </el-table-column>
  450. <el-table-column v-slot="scope" align="left" label=联数 width="70" >
  451. <el-input disabled v-model="scope.row.Gy0_ls" :clearable="false"/>
  452. </el-table-column>
  453. <el-table-column v-slot="scope" align="left" label=车间 width="110" >
  454. <el-input disabled v-model="scope.row.Gy0_site" :clearable="false"/>
  455. </el-table-column>
  456. <el-table-column v-slot="scope" align="left" label=设备编号 width="100" >
  457. <el-input disabled v-model="scope.row.olds_Gy0_sbbh" :clearable="false"/>
  458. </el-table-column>
  459. <el-table-column v-slot="scope" align="left" label=客户名称 width="300" >
  460. <el-input disabled v-model="scope.row.custom_name" :clearable="false"/>
  461. </el-table-column>
  462. </el-table>
  463. <!-- <div class="dialog-footer" style="text-align: right; margin-top: 1%;">-->
  464. <!-- <el-button type="" @click="pccstzCancel">取消</el-button>-->
  465. <!-- <el-button type="primary" @click="pccstzConfirm">确认</el-button>-->
  466. <!-- </div>-->
  467. </el-dialog>
  468. <!--核算参数调整-->
  469. <el-dialog v-model="hscstzlist" title="核算参数调整" style="width: 100%;height: 100%;margin: 0;">
  470. <el-button type="" @click="hscstzCancel">取消</el-button>
  471. <el-button type="primary" @click="hscstzConfirm">确认</el-button>
  472. <div style="width: 100%; height: 60px; padding: 0px; margin: 0px 0px 6px 0px; display: flex; align-items: center;">
  473. <el-form-item label="关键是字 :" prop="currentProcess" style="margin-right: 20px; padding: 0px">
  474. <el-input v-model="hscstzformData['cpdh']"
  475. @keyup.enter="hscstzProductValue" placeholder="输入产品编号" style="width: 500px;"/>
  476. </el-form-item>
  477. </div>
  478. <el-table ref="multipleTable"
  479. :show-overflow-tooltip="true"
  480. :row-style="{ height: '20px' }"
  481. :cell-style="{ padding: '0px' }" :header-row-style="{ height: '20px' }"
  482. :header-cell-style="{ padding: '0px' }"
  483. style="width: 100%;height: 70vh;" border tooltip-effect="dark"
  484. :data="hscstztableData" row-key="ID" @selection-change="handleSelectionChange">
  485. <el-table-column v-slot="scope" align="left" label=产品名称 width="260" >
  486. <el-input disabled v-model="scope.row.product_name" :clearable="false"/>
  487. </el-table-column>
  488. <el-table-column v-slot="scope" align="left" label=方案 width="70" >
  489. <el-input disabled v-model="scope.row.programme" :clearable="false"/>
  490. </el-table-column>
  491. <el-table-column v-slot="scope" align="left" label=印件 width="70" >
  492. <el-input disabled v-model="scope.row.Gy0_yjno" :clearable="false"/>
  493. </el-table-column>
  494. <el-table-column v-slot="scope" align="left" label=工序 width="70" >
  495. <el-input disabled v-model="scope.row.Gy0_gxh" :clearable="false"/>
  496. </el-table-column>
  497. <el-table-column v-slot="scope" align="left" label=工序名称 width="150" >
  498. <el-input disabled v-model="scope.row.gy0_gxmc" :clearable="false"/>
  499. </el-table-column>
  500. <!-- 原难度系数、原损耗系数、原计损色数-->
  501. <el-table-column v-slot="scope" align="left" label=原难度系数 width="115" >
  502. <el-input disabled v-model="scope.row.hscstzold_difficulty_coe" :clearable="false"/>
  503. </el-table-column>
  504. <el-table-column v-slot="scope" align="left" label=原损耗系数 width="115" >
  505. <el-input disabled v-model="scope.row.hscstzold_loss_coe" :clearable="false"/>
  506. </el-table-column>
  507. <el-table-column v-slot="scope" align="left" label=原计损色数 width="115" >
  508. <el-input disabled v-model="scope.row.hscstzold_ms_coe" :clearable="false"/>
  509. </el-table-column>
  510. <!-- 新难度系数、新损耗系数、新计损色数-->
  511. <el-table-column v-slot="scope" align="left" label=新难度系数 width="115" >
  512. <el-input v-model="scope.row.difficulty_coe" :clearable="false"/>
  513. </el-table-column>
  514. <el-table-column v-slot="scope" align="left" label=新损耗系数 width="115" >
  515. <el-input v-model="scope.row.loss_coe" :clearable="false"/>
  516. </el-table-column>
  517. <el-table-column v-slot="scope" align="left" label=新计损色数 width="115" >
  518. <el-input v-model="scope.row.ms_coe" :clearable="false"/>
  519. </el-table-column>
  520. <el-table-column v-slot="scope" align="left" label=开数 width="70" >
  521. <el-input disabled v-model="scope.row.Gy0_Ks" :clearable="false"/>
  522. </el-table-column>
  523. <el-table-column v-slot="scope" align="left" label=联数 width="70" >
  524. <el-input disabled v-model="scope.row.Gy0_ls" :clearable="false"/>
  525. </el-table-column>
  526. <el-table-column v-slot="scope" align="left" label=车间 width="110" >
  527. <el-input disabled v-model="scope.row.Gy0_site" :clearable="false"/>
  528. </el-table-column>
  529. <el-table-column v-slot="scope" align="left" label=设备编号 width="100" >
  530. <el-input disabled v-model="scope.row.Gy0_sbbh" :clearable="false"/>
  531. </el-table-column>
  532. <el-table-column v-slot="scope" align="left" label=客户名称 width="300" >
  533. <el-input disabled v-model="scope.row.custom_name" :clearable="false"/>
  534. </el-table-column>
  535. </el-table>
  536. <!-- <div class="dialog-footer" style="text-align: right; margin-top: 1%;">-->
  537. <!-- <el-button type="" @click="hscstzCancel">取消</el-button>-->
  538. <!-- <el-button type="primary" @click="hscstzConfirm">确认</el-button>-->
  539. <!-- </div>-->
  540. </el-dialog>
  541. <!--导出产品资料-->
  542. <el-dialog v-model="cpdialogexportToExcel" title="导出产品资料" width="50%">
  543. </el-dialog>
  544. <!--导出工艺流程-->
  545. <el-dialog v-model="gydialogexportToExcel" title="导出工艺流程" width="50%">
  546. </el-dialog>
  547. </div>
  548. </layout-header>
  549. <layout>
  550. <!-- 左侧树侧形结构-->
  551. <layout-sider :resize-directions="['right']" :width="190" style="margin-right: 10px;">
  552. <div class="JKWTree-tree" style="height: 200px">
  553. <h3> 产品管理</h3>
  554. <el-tree :data="treeData" @node-click="handleNodeClick" @node-expand="handleNodeExpand">
  555. <template #default="{node,data}">{{data['客户编号']}}【{{data['客户名称']}}】</template>
  556. </el-tree>
  557. </div>
  558. </layout-sider>
  559. <!-- 右侧内容区域 -->
  560. <layout-content >
  561. <!-- 产品表格列表 -->
  562. <div class="gva-table-box">
  563. <el-table ref="multipleTable"
  564. style="width: 100%;height: 25vh;"
  565. :row-style="{ height: '15px' }"
  566. :cell-style="{ padding: '0px' }" :header-row-style="{ height: '20px' }"
  567. :header-cell-style="{ padding: '0px' }"
  568. border tooltip-effect="dark" :data="tableData" row-key="ID"
  569. :row-class-name="tableRowClass" highlight-current-row="true"
  570. size="small"
  571. :cell-class-name="tableDataCellClass"
  572. @selection-change="handleSelectionChange"
  573. @row-dblclick="updateCompanyFunc"
  574. @row-click="tableRowClick"
  575. :show-overflow-tooltip="true">
  576. <el-table-column type="selection" width="30" />
  577. <el-table-column sortable align="left" label="产品编号" prop="产品编号" width="115" />
  578. <el-table-column sortable align="left" label="产品名称" prop="产品名称" width="340" />
  579. <el-table-column sortable align="left" label="版本号" prop="版本号" width="100"/>
  580. <el-table-column sortable align="left" label="成品规格" prop="成品规格" width="100" />
  581. <el-table-column sortable align="left" label="单位" prop="计量单位" width="100"/>
  582. <el-table-column sortable align="left" label="产品分类" prop="产品类别" width="100" />
  583. <el-table-column sortable align="left" label="最近接单时间" prop="receiveDate" width="160" />
  584. <el-table-column sortable align="left" label="印件数" prop="yjData" width="100" />
  585. <el-table-column sortable align="left" label="工艺" prop="gyData" width="100"/>
  586. <el-table-column sortable align="left" label="当前状态" prop="状态" width="100"/>
  587. <el-table-column sortable align="left" label="最后修改" prop="Sys_id" width="160" />
  588. <el-table-column sortable align="left" label="建档日期" prop="Sys_rq" width="160" />
  589. <el-table-column sortable align="left" label="更新日期" prop="Mod_rq" width="160" />
  590. </el-table>
  591. <div class="gva-pagination">
  592. <!-- <el-pagination-->
  593. <!-- @size-change="handleSizeChange"-->
  594. <!-- @current-change="handleCurrentChange"-->
  595. <!-- :current-page="page"-->
  596. <!-- :page-sizes="[10, 30, 50, 100]"-->
  597. <!-- :page-size="pageSize"-->
  598. <!-- layout="total, sizes, prev, pager, next, jumper"-->
  599. <!-- :total="total">-->
  600. <!-- </el-pagination>-->
  601. <el-pagination
  602. @size-change="handleSizeChange"
  603. @current-change="handleCurrentChange"
  604. :current-page="page"
  605. :page-sizes="[10, 30, 50, 100]"
  606. layout="total, sizes, prev, pager, next, jumper"
  607. :total="total">
  608. </el-pagination>
  609. </div>
  610. </div>
  611. <!-- 印件资料、工艺资料、印版资料、技术资料附件表格 -->
  612. <el-tabs v-model="activeName" @tab-click="handleClick" class="ta">
  613. <el-tab-pane label="印件资料" @click="showTable('印件资料')" name="first">
  614. <el-table ref="multipleTable"
  615. :show-overflow-tooltip="true"
  616. highlight-current-row="true"
  617. :row-style="{ height: '20px' }"
  618. :cell-style="{ padding: '0px' }" :header-row-style="{ height: '20px' }"
  619. :header-cell-style="{ padding: '0px' }"
  620. @row-dblclick="yjupdateCompanyFunc"
  621. style="width: 100%;height: 40vh" border tooltip-effect="dark" :data="yjtableData" row-key="ID" @selection-change="handleSelectionChange">
  622. <el-table-column type="selection" width="30" />
  623. <el-table-column align="left" sortable label="印件号" prop="yj_yjno" width="100"/>
  624. <el-table-column align="left" sortable label="印件代号" prop="yj_yjdh" width="110" />
  625. <el-table-column align="left" sortable label="印件名称" prop="yj_yjmc" width="540" />
  626. <el-table-column align="left" sortable label="纸张单号" prop="yj_zzdh" width="110"/>
  627. <el-table-column align="left" sortable label="纸张名称" prop="yj_zzmc" width="340"/>
  628. <el-table-column align="left" sortable label="投料规格" prop="yj_tlgg" width="240"/>
  629. <el-table-column align="left" sortable label="开料规格" prop="yj_klgg" width="110"/>
  630. <el-table-column align="left" sortable label="开数" prop="yj_ks" width="100" />
  631. <el-table-column align="left" sortable label="联数" prop="yj_ls" width="100" />
  632. <el-table-column align="left" sortable label="备注" prop="yj_desc" width="200" />
  633. <el-table-column align="left" sortable label="建档用户" prop="sys_id" width="130" />
  634. <el-table-column align="left" sortable label="建档日期" prop="sys_rq" width="160" />
  635. <el-table-column align="left" sortable label="更新日期" prop="mod_rq" width="160"/>
  636. </el-table>
  637. </el-tab-pane>
  638. <el-tab-pane label="工艺资料" @click="showTable('工艺资料')" name="second">
  639. <el-table ref="multipleTable"
  640. highlight-current-row="true"
  641. :show-overflow-tooltip="true"
  642. :row-style="{ height: '20px' }"
  643. :cell-style="{ padding: '0px' }" :header-row-style="{ height: '20px' }"
  644. :header-cell-style="{ padding: '0px' }"
  645. @row-dblclick="gyupdateCompanyFunc"
  646. :row-class-name="rowClassStyle"
  647. style="width: 100%;height: 40vh" border tooltip-effect="dark" :data="gytableData" row-key="ID" @selection-change="handleSelectionChange"
  648. @row-click="clickybupdate">
  649. <el-table-column type="selection" width="30" />
  650. <el-table-column align="left" sortable label="方案" prop="方案" width="110"/>
  651. <el-table-column align="left" sortable label="印件" prop="Gy0_yjno" width="110" />
  652. <el-table-column align="left" sortable label="工序" prop="Gy0_gxh" width="110" />
  653. <el-table-column align="left" sortable label="工序名称" prop="gy0_gxmc" width="120" />
  654. <el-table-column align="left" sortable label="工序名称" prop="add_gxmc" width="340" />
  655. <el-table-column align="left" sortable label="开数" prop="Gy0_Ks" width="110" />
  656. <el-table-column align="left" sortable label="联数" prop="Gy0_ls" width="110" />
  657. <el-table-column align="left" sortable label="备注" prop="备注" width="150" />
  658. <el-table-column align="left" sortable label="工价系数" prop="工价系数" width="110" />
  659. <el-table-column align="left" sortable label="损耗系数" prop="损耗系数" width="110" />
  660. <el-table-column align="left" sortable label="计损色数" prop="Gy0_Ms" width="110" />
  661. <el-table-column align="left" sortable label="人工检_正品版" prop="人工检_正品版" width="150" />
  662. <el-table-column align="left" sortable label="人工检_次品版" prop="人工检_正品版" width="150" />
  663. <el-table-column align="left" sortable label="人工检_废检" prop="人工检_废检" width="140"/>
  664. <el-table-column align="left" sortable label="机检_正品版" prop="机检_正品版" width="140"/>
  665. <el-table-column align="left" sortable label="机检_次品检" prop="机检_次品检" width="140"/>
  666. <el-table-column align="left" sortable label="机检_废检" prop="机检_废检" width="140"/>
  667. <el-table-column align="left" sortable label="设备编号" prop="Gy0_sbmc" width="110"/>
  668. <el-table-column align="left" sortable label="最后修改" prop="最后修改" width="160"/>
  669. <el-table-column align="left" sortable label="建档日期" prop="建档日期" width="160"/>
  670. <el-table-column align="left" sortable label="更新日期" prop="更新日期" width="160"/>
  671. </el-table>
  672. </el-tab-pane>
  673. <el-tab-pane label="印版资料" @click="showTable('印版资料')" name="third">
  674. <el-table ref="multipleTable"
  675. highlight-current-row="true"
  676. :show-overflow-tooltip="true"
  677. :row-style="{ height: '20px' }"
  678. :cell-style="{ padding: '0px' }" :header-row-style="{ height: '20px' }"
  679. :header-cell-style="{ padding: '0px' }"
  680. @row-dblclick="ybupdateCompanyFunc"
  681. style="width: 100%;height: 40vh" border tooltip-effect="dark" :data="ybtableData" row-key="ID" @selection-change="handleSelectionChange"
  682. >
  683. <el-table-column type="selection" width="30" />
  684. <el-table-column align="left" sortable label="方案" prop="YB_方案" width="100"/>
  685. <el-table-column align="left" sortable label="印件号" prop="YB_Yjno" width="100" />
  686. <el-table-column align="left" sortable label="印版类别" prop="印版类别" width="110" />
  687. <el-table-column align="left" sortable label="存货编码" prop="存货编码" width="110"/>
  688. <el-table-column align="left" sortable label="印版名称" prop="印版名称" width="440"/>
  689. <el-table-column align="left" sortable label="考核印数" prop="考核印数" width="110"/>
  690. <el-table-column align="left" sortable label="建档用户" prop="Sys_id" width="120" />
  691. <el-table-column align="left" sortable label="建档日期" prop="建档日期" width="160" />
  692. <el-table-column align="left" sortable label="更新日期" prop="更新日期" width="160" />
  693. </el-table>
  694. </el-tab-pane>
  695. <el-tab-pane label="技术资料附件" @click="showTable('技术资料附件')" name="fourth">
  696. <el-table ref="multipleTable"
  697. :row-style="{ height: '20px' }"
  698. :cell-style="{ padding: '0px' }" :header-row-style="{ height: '20px' }"
  699. :header-cell-style="{ padding: '0px' }"
  700. :show-overflow-tooltip="true"
  701. highlight-current-row="true"
  702. style="width: 100%;height: 40vh"
  703. border tooltip-effect="dark"
  704. :data="jstableData"
  705. row-key="ID"
  706. @row-dblclick="ExcelShow"
  707. @selection-change="handleSelectionChange">
  708. <!-- <el-table-column type="selection" width="55" />-->
  709. <el-table-column align="left" sortable label="序号" prop="序号" width="120"/>
  710. <el-table-column align="left" sortable label="适用工序" prop="适用工序" width="120" />
  711. <el-table-column align="left" sortable label="备注" prop="附件备注" width="120" />
  712. <el-table-column align="left" sortable label="文件类型" prop="附件类型" width="120"/>
  713. <el-table-column align="left" sortable label="关联产品" prop="关联产品" width="360"/>
  714. <el-table-column align="left" sortable label="建档用户" prop="sys_id" width="120"/>
  715. <el-table-column align="left" sortable label="建档日期" prop="sys_rq" width="160" />
  716. <el-table-column align="left" sortable label="更新日期" prop="mod_rq" width="160" />
  717. <el-table-column fixed="right" label="操作" width="100">
  718. <template v-slot="{ row }">
  719. <button @click="jsfj_del(row)">删除</button>
  720. </template>
  721. </el-table-column>
  722. </el-table>
  723. </el-tab-pane>
  724. </el-tabs>
  725. <!-- 修改产品产品基本资料表格弹窗 -->
  726. <el-dialog v-model="dialogFormVisible" :before-close="closeDialog" :title="'修改产品基本资料'" height="80%" width="60%" destroy-on-close>
  727. <el-row>
  728. <el-scrollbar>
  729. <el-form :model="formDataTest" label-position="right" ref="elFormRef" :rules="rule" label-width="80px">
  730. <el-row>
  731. <el-col :span="24">
  732. <el-form-item label="客户编号:" prop="address" class="mab">
  733. <el-input v-model="formDataTest['客户编号']" id="id1" placeholder="" @keydown="ent($event, '', 'id1', 'id2')" style="width: 150px;" />
  734. </el-form-item>
  735. </el-col>
  736. <el-col :span="24">
  737. <el-form-item label="客户名称:" prop="gender" class="mab">
  738. <el-input v-model="formDataTest['客户名称']" id="id2" placeholder="" @keydown="ent($event, 'id1', 'id2', 'id3')" />
  739. </el-form-item>
  740. </el-col>
  741. <el-col :span="9">
  742. <el-form-item label="印品代号:" prop="address" class="mab">
  743. <el-input v-model="formDataTest['产品编号']" id="id3" placeholder="" @keydown="ent($event, 'id2', 'id3', '版本号')" style="width: 150px;" />
  744. </el-form-item>
  745. </el-col>
  746. <el-col :span="6">
  747. <el-form-item label="版本号:" prop="gender" label-width="60px" class="mab">
  748. <el-input v-model="formDataTest['版本号']" placeholder="" id="版本号" @keydown="ent($event, 'id3', '版本号', '客户料号')" style="width: 120px;" />
  749. </el-form-item>
  750. </el-col>
  751. <el-col :span="9">
  752. <el-form-item label="客户料号:" prop="idCard" label-width="110px" class="mab">
  753. <el-input v-model="formDataTest['客户料号']" placeholder="" id="客户料号" @keydown="ent($event, '版本号', '客户料号', '产品名称')" style="width: 150px;" />
  754. </el-form-item>
  755. </el-col>
  756. </el-row>
  757. <el-row>
  758. <el-col :span="24">
  759. <el-form-item label="产品名称:" prop="department" class="mab">
  760. <el-input v-model="formDataTest['产品名称']" placeholder="" id="产品名称" @keydown="ent($event, '客户料号', '产品名称', '产品类别')" />
  761. </el-form-item>
  762. </el-col>
  763. </el-row>
  764. <el-row>
  765. <el-col :span="9">
  766. <el-form-item label="产品类别:" prop="department" class="mab">
  767. <el-input v-model="formDataTest['产品类别']" placeholder="" id="产品类别" @keydown="ent($event, '产品名称', '产品类别', '计量单位')" style="width: 150px;" />
  768. </el-form-item>
  769. </el-col>
  770. <el-col :span="15">
  771. <el-form-item label="单位:" prop="department" label-width="60px" class="mab">
  772. <el-input v-model="formDataTest['计量单位']" placeholder="" id="计量单位" @keydown="ent($event, '产品类别', '计量单位', '成品规格')" style="width: 120px;" />
  773. </el-form-item>
  774. </el-col>
  775. </el-row>
  776. <el-col :span="24">
  777. <el-form-item label="成品规格:" prop="department" class="mab">
  778. <el-input v-model="formDataTest['成品规格']" placeholder="" id="成品规格" @keydown="ent($event, '计量单位', '成品规格', '产品备注')" />
  779. </el-form-item>
  780. </el-col>
  781. <el-col :span="24">
  782. <el-form-item label="产品备注:" prop="remark" class="mab">
  783. <el-input type="textarea" v-model="formDataTest['产品备注']" :rows="3" resize="none" placeholder="" id="产品备注" @keydown="ent($event, '成品规格', '产品备注', 'id1')" />
  784. </el-form-item>
  785. </el-col>
  786. </el-form>
  787. </el-scrollbar>
  788. </el-row>
  789. <template #footer>
  790. <div class="dialog-footer">
  791. <el-button @click="closeDialog">取 消</el-button>
  792. <el-button type="primary" @click="enterDialog">确 定</el-button>
  793. </div>
  794. </template>
  795. </el-dialog>
  796. <!-- 修改印件资料-->
  797. <el-dialog v-model="yjdialogFormVisible" :before-close="yjcloseDialog" :title="'修改印件资料'" style="margin-top: 40px" height="500px" width="800px" destroy-on-close>
  798. <el-row>
  799. <el-scrollbar >
  800. <el-form :model="yjformDataTest" label-position="right" ref="elFormRef" :rules="rule">
  801. <el-row>
  802. <el-form-item label="印件号:" prop="address" class="mab" label-width="105px">
  803. <el-input v-model="yjformDataTest['yj_yjno']" placeholder="" style="width: 140px;" id="印件号" @keydown="yj_ent($event, '', '印件号', '印件代号')" />
  804. </el-form-item>
  805. </el-row>
  806. <el-row>
  807. <el-form-item label="印件代号:" prop="address" class="mab" label-width="105px">
  808. <el-input v-model="yjformDataTest['yj_yjdh']" placeholder="" style="width: 140px;" id="印件代号" @keydown="yj_ent($event, '印件号', '印件代号', 'yj_zzdh')" />
  809. </el-form-item>
  810. </el-row>
  811. <el-row>
  812. <el-col :span="22">
  813. <el-form-item label="印件名称:" prop="address" class="mab" label-width="105px">
  814. <el-input v-model="yjformDataTest['yj_yjmc']" disabled placeholder="" id="印件名称" @keydown="yj_ent($event, '印件代号', '印件名称', 'yj_zzdh')" />
  815. </el-form-item>
  816. </el-col>
  817. </el-row>
  818. <el-row>
  819. <el-col :span="24">
  820. <el-form-item label="纸张:" prop="address" class="mab" label-width="105px">
  821. <el-row>
  822. <el-input v-model="yjformDataTest['yj_zzdh']" placeholder="" style="width: 140px;" id="yj_zzdh" @keydown="yj_ent($event, '印件代号', 'yj_zzdh', 'yj_zzmc')" />
  823. <el-input v-model="yjformDataTest['yj_zzmc']" placeholder="" style="width: 460px;" id="yj_zzmc" @keydown="yj_ent($event, 'yj_zzdh', 'yj_zzmc', 'yj_zzdh1')" />
  824. </el-row>
  825. </el-form-item>
  826. </el-col>
  827. <el-col :span="24">
  828. <el-form-item label="备用纸张1:" prop="address" class="mab" label-width="105px">
  829. <el-row>
  830. <el-input v-model="yjformDataTest['yj_zzdh1']" placeholder="" style="width: 140px;" id="yj_zzdh1" @keydown="yj_ent($event, 'yj_zzmc', 'yj_zzdh1', 'yj_zzmc1')" />
  831. <el-input v-model="yjformDataTest['yj_zzmc1']" placeholder="" style="width: 460px;" id="yj_zzmc1" @keydown="yj_ent($event, 'yj_zzdh1', 'yj_zzmc1', 'yj_zzdh2')" />
  832. </el-row>
  833. </el-form-item>
  834. </el-col>
  835. <el-col :span="24">
  836. <el-form-item label="备用纸张2:" prop="address" class="mab" label-width="105px">
  837. <el-row>
  838. <el-input v-model="yjformDataTest['yj_zzdh2']" placeholder="" style="width: 140px;" id="yj_zzdh2" @keydown="yj_ent($event, 'yj_zzdh2', 'yj_zzdh2', 'yj_zzmc2')" />
  839. <el-input v-model="yjformDataTest['yj_zzmc2']" placeholder="" style="width: 460px;" id="yj_zzmc2" @keydown="yj_ent($event, 'yj_zzdh2', 'yj_zzmc2', 'yj_zzdh3')" />
  840. </el-row>
  841. </el-form-item>
  842. </el-col>
  843. <el-col :span="24">
  844. <el-form-item label="备用纸张3:" prop="address" class="mab" label-width="105px">
  845. <el-row>
  846. <el-input v-model="yjformDataTest['yj_zzdh3']" placeholder="" style="width: 140px;" id="yj_zzdh3" @keydown="yj_ent($event, 'yj_zzmc2', 'yj_zzdh3', 'yj_zzmc3')" />
  847. <el-input v-model="yjformDataTest['yj_zzmc3']" placeholder="" style="width: 460px;" id="yj_zzmc3" @keydown="yj_ent($event, 'yj_zzdh3', 'yj_zzmc3', 'yj_zzdh4')" />
  848. </el-row>
  849. </el-form-item>
  850. </el-col>
  851. <el-col :span="24">
  852. <el-form-item label="备用纸张4:" prop="address" class="mab" label-width="105px">
  853. <el-row>
  854. <el-input v-model="yjformDataTest['yj_zzdh4']" placeholder="" style="width: 140px;" id="yj_zzdh4" @keydown="yj_ent($event, 'yj_zzmc3', 'yj_zzdh4', 'yj_zzmc4')" />
  855. <el-input v-model="yjformDataTest['yj_zzmc4']" placeholder="" style="width: 460px;" id="yj_zzmc4" @keydown="yj_ent($event, 'yj_zzdh', 'yj_zzmc4', 'yj_tlgg')" />
  856. </el-row>
  857. </el-form-item>
  858. </el-col>
  859. </el-row>
  860. <el-row>
  861. <el-col :span="12">
  862. <el-form-item label="投料(mm*mm):" prop="address" class="mab">
  863. <el-input v-model="yjformDataTest['yj_tlgg']" placeholder="" style="width: 140px;" id="yj_tlgg" @keydown="yj_ent($event, 'yj_zzmc4', 'yj_tlgg', 'yj_klgg')"/>
  864. </el-form-item>
  865. </el-col>
  866. <el-col :span="12">
  867. <el-form-item label="开料(mm*mm):" prop="address" class="mab">
  868. <el-input v-model="yjformDataTest['yj_klgg']" placeholder="" style="width: 140px;" id="yj_klgg" @keydown="yj_ent($event, 'yj_tlgg', 'yj_klgg', 'yj_ks')"/>
  869. </el-form-item>
  870. </el-col>
  871. </el-row>
  872. <el-row>
  873. <el-col :span="6">
  874. <el-form-item label="开数:" prop="address" class="mab" label-width="105px">
  875. <el-input v-model="yjformDataTest['yj_ks']" placeholder="" style="width: 100px;" id="yj_ks" @keydown="yj_ent($event, 'yj_tlgg', 'yj_ks', 'yj_ls')"/>
  876. </el-form-item>
  877. </el-col>
  878. <el-col :span="6">
  879. <el-form-item label="联数:" prop="address" class="mab" >
  880. <el-input v-model="yjformDataTest['yj_ls']" placeholder="" style="width: 100px;" id="yj_ls" @keydown="yj_ent($event, 'yj_ks', 'yj_ls', '换算系数')"/>
  881. </el-form-item>
  882. </el-col>
  883. <el-col :span="10">
  884. <el-form-item label="换算系数(公斤到万张):" prop="address" class="mab">
  885. <el-input v-model="yjformDataTest['KgToPages']" placeholder="" style="width: 170px;" id="换算系数" @keydown="yj_ent($event, 'yj_ls', '换算系数', 'yj_desc')"/>
  886. </el-form-item>
  887. </el-col>
  888. </el-row>
  889. <el-row>
  890. <el-col :span="24">
  891. <el-form-item label="备注说明:" prop="remark" class="mab" label-width="105px">
  892. <el-input type="textarea" v-model="yjformDataTest['yj_desc']" rows="3" placeholder="" resize="none" id="yj_desc" @keydown="yj_ent($event, '换算系数', 'yj_desc', '印件号')"/>
  893. </el-form-item>
  894. </el-col>
  895. </el-row>
  896. </el-form>
  897. </el-scrollbar>
  898. </el-row>
  899. <template #footer>
  900. <div class="dialog-footer">
  901. <el-button @click="yjcloseDialog">取 消</el-button>
  902. <el-button type="primary" @click="yjenterDialog">确 定</el-button>
  903. </div>
  904. </template>
  905. </el-dialog>
  906. <!-- 新增印件资料 -->
  907. <el-dialog v-model="add_gdyjdialogFormVisible" :before-close="add_gdyjcloseDialog" :title="'新增印件资料'" style="margin-top: 40px" height="500px" width="800px" destroy-on-close>
  908. <el-row>
  909. <el-scrollbar >
  910. <el-form :model="add_yjzlformdata" label-position="right" ref="elFormRef" :rules="rule">
  911. <el-row>
  912. <el-form-item label="印件号:" prop="address" class="mab" label-width="100px">
  913. <el-input v-model="add_yjzlformdata.yjno" placeholder="" style="width: 140px;" id="印件号" @keydown="add_yinjian_ent($event, 'yj_desc', '印件号', '印件代号')" />
  914. </el-form-item>
  915. </el-row>
  916. <el-row>
  917. <el-form-item label="印件代号:" prop="address" class="mab" label-width="100px">
  918. <el-input v-model="add_yjzlformdata.yjdh" placeholder="" style="width: 140px;" id="印件代号" @keydown="add_yinjian_ent($event, '印件号', '印件代号', 'yj_zzdh')" />
  919. </el-form-item>
  920. </el-row>
  921. <el-row>
  922. <el-col :span="22">
  923. <el-form-item label="印件名称:" prop="address" class="mab" label-width="100px">
  924. <el-input disabled v-model="add_yjzlformdata.yjmc" placeholder="" style="width: 100%;" id="印件名称"/>
  925. </el-form-item>
  926. </el-col>
  927. </el-row>
  928. <el-row>
  929. <el-col :span="24">
  930. <el-form-item label="纸张:" prop="address" class="mab" label-width="100px">
  931. <el-row>
  932. <el-input v-model="add_yjzlformdata.zzdh" placeholder="" style="width: 140px;" id="yj_zzdh" @keydown="add_yinjian_ent($event, '印件代号', 'yj_zzdh', 'yj_zzmc')" />
  933. <el-input v-model="add_yjzlformdata.zzmc" placeholder="" style="width: 460px;" id="yj_zzmc" @keydown="add_yinjian_ent($event, 'yj_zzdh', 'yj_zzmc', 'yj_zzdh1')" />
  934. </el-row>
  935. </el-form-item>
  936. </el-col>
  937. <el-col :span="24">
  938. <el-form-item label="备用纸张1:" prop="address" class="mab" label-width="100px">
  939. <el-row>
  940. <el-input v-model="add_yjzlformdata.zzdh1" placeholder="" style="width: 140px;" id="yj_zzdh1" @keydown="add_yinjian_ent($event, 'yj_zzmc', 'yj_zzdh1', 'yj_zzmc1')" />
  941. <el-input v-model="add_yjzlformdata.zzmc1" placeholder="" style="width: 460px;" id="yj_zzmc1" @keydown="add_yinjian_ent($event, 'yj_zzdh1', 'yj_zzmc1', 'yj_zzdh2')" />
  942. </el-row>
  943. </el-form-item>
  944. </el-col>
  945. <el-col :span="24">
  946. <el-form-item label="备用纸张2:" prop="address" class="mab" label-width="100px">
  947. <el-row>
  948. <el-input v-model="add_yjzlformdata.zzdh2" placeholder="" style="width: 140px;" id="yj_zzdh2" @keydown="add_yinjian_ent($event, 'yj_zzmc1', 'yj_zzdh2', 'yj_zzmc2')" />
  949. <el-input v-model="add_yjzlformdata.zzmc2" placeholder="" style="width: 460px;" id="yj_zzmc2" @keydown="ent($event, 'yj_zzdh2', 'yj_zzmc2', 'yj_zzdh3')" />
  950. </el-row>
  951. </el-form-item>
  952. </el-col>
  953. <el-col :span="24">
  954. <el-form-item label="备用纸张3:" prop="address" class="mab" label-width="100px">
  955. <el-row>
  956. <el-input v-model="add_yjzlformdata.zzdh3" placeholder="" style="width: 140px;" id="yj_zzdh3" @keydown="add_yinjian_ent($event, 'yj_zzmc2', 'yj_zzdh3', 'yj_zzmc3')" />
  957. <el-input v-model="add_yjzlformdata.zzmc3" placeholder="" style="width: 460px;" id="yj_zzmc3" @keydown="ent($event, 'yj_zzdh3', 'yj_zzmc3', 'yj_zzdh4')" />
  958. </el-row>
  959. </el-form-item>
  960. </el-col>
  961. <el-col :span="24">
  962. <el-form-item label="备用纸张4:" prop="address" class="mab" label-width="100px">
  963. <el-row>
  964. <el-input v-model="add_yjzlformdata.zzdh4" placeholder="" style="width: 140px;" id="yj_zzdh4" @keydown="add_yinjian_ent($event, 'yj_zzmc3', 'yj_zzdh4', 'yj_zzmc4')" />
  965. <el-input v-model="add_yjzlformdata.zzmc4" placeholder="" style="width: 460px;" id="yj_zzmc4" @keydown="ent($event, 'yj_zzdh4', 'yj_zzmc4', 'yj_tlgg')" />
  966. </el-row>
  967. </el-form-item>
  968. </el-col>
  969. </el-row>
  970. <el-row>
  971. <el-col :span="8">
  972. <el-form-item label="投料(mm*mm):" prop="address" class="mab">
  973. <el-input v-model="add_yjzlformdata.tl" placeholder="" style="width: 140px;" id="yj_tlgg" @keydown="ent($event, 'yj_zzmc4', 'yj_tlgg', 'yj_klgg')"/>
  974. </el-form-item>
  975. </el-col>
  976. <el-col :span="8">
  977. <el-form-item label="开料(mm*mm):" prop="address" class="mab">
  978. <el-input v-model="add_yjzlformdata.kl" placeholder="" style="width: 140px;" id="yj_klgg" @keydown="ent($event, 'yj_tlgg', 'yj_klgg', 'yj_ks')"/>
  979. </el-form-item>
  980. </el-col>
  981. </el-row>
  982. <el-row>
  983. <el-col :span="6">
  984. <el-form-item label="开数:" prop="address" class="mab" label-width="100px">
  985. <el-input v-model="add_yjzlformdata.ks" placeholder="" style="width: 140px;" id="yj_ks" @keydown="ent($event, 'yj_tlgg', 'yj_ks', 'yj_ls')"/>
  986. </el-form-item>
  987. </el-col>
  988. <el-col :span="6">
  989. <el-form-item label="联数:" prop="address" class="mab">
  990. <el-input v-model="add_yjzlformdata.ls" placeholder="" style="width: 140px;" id="yj_ls" @keydown="ent($event, 'yj_ks', 'yj_ls', 'KgToPages')"/>
  991. </el-form-item>
  992. </el-col>
  993. <el-col :span="10">
  994. <el-form-item label="换算系数(公斤到万张):" prop="address" class="mab">
  995. <el-input v-model="add_yjzlformdata.KgToPages" placeholder="" style="width: 140px;" id="KgToPages" @keydown="ent($event, 'yj_ls', 'KgToPages', 'yj_desc')"/>
  996. </el-form-item>
  997. </el-col>
  998. </el-row>
  999. <el-row>
  1000. <el-col :span="24">
  1001. <el-form-item label="备注说明:" prop="remark" class="mab">
  1002. <el-input v-model="add_yjzlformdata['备注说明']" type="textarea" rows="3" resize="none" clearable placeholder="请输入备注说明" id="yj_desc" @keydown="ent($event, 'KgToPages', 'yj_desc', '印件号')"/>
  1003. </el-form-item>
  1004. </el-col>
  1005. </el-row>
  1006. </el-form>
  1007. </el-scrollbar>
  1008. </el-row>
  1009. <template #footer>
  1010. <div class="dialog-footer">
  1011. <el-button @click="add_dyjcloseDialog">取 消</el-button>
  1012. <el-button type="primary" @click="add_gdyjenterDialog">确 定</el-button>
  1013. </div>
  1014. </template>
  1015. </el-dialog>
  1016. <!-- 新增查询印件代码 -->
  1017. <el-dialog v-model="searchModel" :before-close="() => searchModel = false">
  1018. <el-form>
  1019. <div>
  1020. <el-form-item label="关键字:" class="mab" prop="keyOrder">
  1021. <el-space>
  1022. <el-input v-model="cpyjdh_keyword" style="width: 100%;"/>
  1023. <el-button @click="cpsearchHandle(cpyjdh_keyword)">刷新</el-button>
  1024. </el-space>
  1025. </el-form-item>
  1026. <div style="border:1px solid #eee; width:100%; height: 400px; overflow-y: auto">
  1027. <el-tree :data="getProductYjListdata" :props="{children: 'children',label: 'label', value: '物料代码'}" @node-click="selectNode" />
  1028. </div>
  1029. </div>
  1030. </el-form>
  1031. </el-dialog>
  1032. <!-- 新增查询印件纸张 -->
  1033. <el-dialog v-model="searchZhiModel" :before-close="() => searchZhiModel = false">
  1034. <el-form>
  1035. <div>
  1036. <el-form-item label="关键字:" class="mab" prop="keyOrder">
  1037. <el-space>
  1038. <el-input v-model="zhi_keyword" style="width: 100%;"/>
  1039. <el-button @click="searchZhiHandle(zhi_keyword)">刷新</el-button>
  1040. </el-space>
  1041. </el-form-item>
  1042. <div style="border:1px solid #eee; width:100%; height: 400px; overflow-y: auto">
  1043. <el-tree :data="getProductZhiListdata" :props="{children: 'children',label: '物料名称', value: '物料代码'}" @node-click="selectZhiNode" />
  1044. </div>
  1045. </div>
  1046. </el-form>
  1047. </el-dialog>
  1048. <!-- 修改工艺资料 弹窗 -->
  1049. <el-dialog v-model="gydialogFormVisible" :before-close="gycloseDialog" :title="'修改工艺资料'" height="300px" width="900px" destroy-on-close>
  1050. <el-row>
  1051. <el-scrollbar>
  1052. <el-form :model="gyformDataTest" label-position="right" ref="elFormRef" :rules="rule" >
  1053. <el-row>
  1054. <el-form-item label="工序方案:" prop="address" class="mab" >
  1055. <el-input v-model="gyformDataTest['Gy0_方案']" placeholder="" style="width: 90px;" id="方案" @keydown="ent($event, '备注', '方案', '加工开数')"/>
  1056. </el-form-item>
  1057. <el-form-item label="印件编号:" prop="address" class="mab" label-width="90">
  1058. <el-input v-model="gyformDataTest['Gy0_yjno']" disabled placeholder="" style="width: 90px;" id="Gy0_yjno"/>
  1059. </el-form-item>
  1060. <el-form-item label="工序编号:" prop="address" class="mab" >
  1061. <el-input v-model="gyformDataTest['Gy0_gxh']" disabled placeholder="" style="width: 90px;" id="Gy0_gxh" />
  1062. </el-form-item>
  1063. <el-form-item label="加工开数" prop="address" class="mab">
  1064. <el-input v-model="gyformDataTest['Gy0_Ks']" placeholder="" style="width: 90px;" id="加工开数" @keydown="ent($event, 'Gy0_gxh', '加工开数', 'Gy0_ls')"/>
  1065. </el-form-item>
  1066. <el-form-item label="加工联数:" prop="address" class="mab" >
  1067. <el-input v-model="gyformDataTest['Gy0_ls']" placeholder="" style="width: 90px;" id="Gy0_ls" @keydown="ent($event, '加工开数', 'Gy0_ls', 'gy0_site')"/>
  1068. </el-form-item>
  1069. </el-row>
  1070. <el-row>
  1071. <el-col :span="6">
  1072. <el-form-item label="车间名称:" prop="address" class="mab">
  1073. <el-input v-model="gyformDataTest['Gy0_site']" placeholder="" style="width: 140px;" id="gy0_site" @keydown="ent($event, 'Gy0_ls', 'gy0_site', 'gy0_gxmc')"/>
  1074. </el-form-item>
  1075. </el-col>
  1076. <el-col :span="6">
  1077. <el-form-item label="工艺名称:" prop="address" class="mab" label-width="100">
  1078. <el-input v-model="gyformDataTest['gy0_gxmc']" placeholder="" style="width: 140px;" id="gy0_gxmc" @keydown="ent($event, 'gy0_site', 'gy0_gxmc', 'add_gxmc')"/>
  1079. </el-form-item>
  1080. </el-col>
  1081. </el-row>
  1082. <el-row>
  1083. <el-col :span="24">
  1084. <el-form-item label="工序名称:" prop="address" class="mab">
  1085. <el-input v-model="gyformDataTest['Add_gxmc']" placeholder="" style="width: 100%;" id="add_gxmc" @keydown="ent($event, 'gy0_gxmc', 'add_gxmc', 'Gy0_sbbh')"/>
  1086. </el-form-item>
  1087. </el-col>
  1088. </el-row>
  1089. <el-row>
  1090. <el-form-item label="计损色数:" prop="address" class="mab">
  1091. <el-input v-model="gyformDataTest['Gy0_Ms']" placeholder="" style="width: 140px;" id="Gy0_sbbh" @keydown="ent($event, 'add_gxmc', 'Gy0_sbbh', 'sys_mc')"/>
  1092. </el-form-item>
  1093. <el-form-item label="可用设备:" prop="address" class="mab" label-width="100">
  1094. <el-input v-model="gyformDataTest['Gy0_sbbh']" disabled placeholder="" style="" id="可用设备" />
  1095. </el-form-item>
  1096. <el-form-item label="难度系数:" prop="address" class="mab" label-width="237">
  1097. <el-input v-model="gyformDataTest['工价系数']" disabled placeholder="" style="width: 90px;" id="工价系数" />
  1098. </el-form-item>
  1099. </el-row>
  1100. <el-row>
  1101. <el-form-item label="标准损耗:" prop="address" class="mab">
  1102. <el-input v-model="gyformDataTest['Gy0_shdh']" disabled placeholder="" style="width: 150px;" id="Gy0_shdh" />
  1103. <el-input v-model="gyformDataTest['sys_mc']" placeholder="" style="width: 160px;" id="sys_mc" @keydown="ent($event, 'Gy0_sbbh', 'sys_mc', '基础损耗')"/>
  1104. </el-form-item>
  1105. <el-form-item label="基础损耗:" prop="address" class="mab">
  1106. <el-input v-model="gyformDataTest['sys_rate0']" placeholder="" style="width: 70px;" id="基础损耗" @keydown="ent($event, 'sys_mc', '基础损耗', '损耗率')"/>
  1107. </el-form-item>
  1108. <el-form-item label="损耗率" prop="address" class="mab" >
  1109. <el-input v-model="gyformDataTest['sys_rate1']" placeholder="" style="width: 90px;" id="损耗率" @keydown="ent($event, '基础损耗', '损耗率', '工序备注')"/>
  1110. </el-form-item>
  1111. <el-form-item label="损耗系数:" prop="address" class="mab" >
  1112. <el-input v-model="gyformDataTest['损耗系数']" disabled placeholder="" style="width: 90px;" id="损耗系数"/>
  1113. </el-form-item>
  1114. </el-row>
  1115. <el-row>
  1116. <el-col :span="24">
  1117. <el-form-item label="工序备注:" prop="remark" class="mab">
  1118. <el-input type="textarea" v-model="gyformDataTest['工序备注']" rows="2" resize="none" placeholder="" id="工序备注" @keydown="ent($event, '损耗率', '工序备注', '质量要求')" />
  1119. </el-form-item>
  1120. </el-col>
  1121. <el-col :span="24">
  1122. <el-form-item label="质量要求:" prop="remark" class="mab">
  1123. <el-input type="textarea" v-model="gyformDataTest['质量要求']" rows="2" resize="none" placeholder="" id="质量要求" @keydown="ent($event, '工序备注', '质量要求', '质量隐患')" />
  1124. </el-form-item>
  1125. </el-col>
  1126. <el-col :span="24">
  1127. <el-form-item label="质量隐患:" prop="remark" class="mab">
  1128. <el-input type="textarea" v-model="gyformDataTest['质量隐患']" rows="2" resize="none" placeholder="" id="质量隐患" @keydown="ent($event, '质量要求', '质量隐患', '方案')" />
  1129. </el-form-item>
  1130. </el-col>
  1131. </el-row>
  1132. </el-form>
  1133. </el-scrollbar>
  1134. </el-row>
  1135. <template #footer>
  1136. <div class="dialog-footer">
  1137. <el-button @click="gycloseDialog">取 消</el-button>
  1138. <el-button type="primary" disabled @click="gyenterDialog">确 定</el-button>
  1139. </div>
  1140. </template>
  1141. </el-dialog>
  1142. <!-- 新增工艺资料 弹窗 -->
  1143. <el-dialog v-model="addgydialogFormVisible" :before-close="addgycloseDialog" :title="'新增工艺资料'" height="300px" width="900px" destroy-on-close>
  1144. <el-row>
  1145. <el-scrollbar>
  1146. <el-form :model="gyformDataTest" label-position="right" ref="elFormRef" :rules="rule" >
  1147. <el-row>
  1148. <el-form-item label="工序方案:" prop="address" class="mab" >
  1149. <el-input v-model="add_gyformData.Gy0_方案" placeholder="" style="width: 90px;" id="方案" @keydown="ent($event, '备注', '方案', '加工开数')"/>
  1150. </el-form-item>
  1151. <el-form-item label="印件编号:" prop="address" class="mab" label-width="90">
  1152. <el-input v-model="add_gyformData.Gy0_cpdh" placeholder="" style="width: 90px;" id="Gy0_yjno"/>
  1153. </el-form-item>
  1154. <el-form-item label="工序编号:" prop="address" class="mab" >
  1155. <el-input v-model="add_gyformData.Gy0_gxh" placeholder="" style="width: 90px;" id="Gy0_gxh" />
  1156. </el-form-item>
  1157. <el-form-item label="加工开数" prop="address" class="mab">
  1158. <el-input v-model="add_gyformData.Gy0_Ks" placeholder="" style="width: 90px;" id="加工开数" @keydown="ent($event, 'Gy0_gxh', '加工开数', 'Gy0_ls')"/>
  1159. </el-form-item>
  1160. <el-form-item label="加工联数:" prop="address" class="mab" >
  1161. <el-input v-model="add_gyformData.Gy0_ls" placeholder="" style="width: 90px;" id="Gy0_ls" @keydown="ent($event, '加工开数', 'Gy0_ls', 'gy0_site')"/>
  1162. </el-form-item>
  1163. </el-row>
  1164. <el-row>
  1165. <el-col :span="6">
  1166. <el-form-item label="车间名称:" prop="address" class="mab">
  1167. <el-input v-model="add_gyformData.Gy0_site" @keyup.enter="getcjmc()" placeholder="" style="width: 140px;" id="gy0_site" />
  1168. </el-form-item>
  1169. </el-col>
  1170. <el-col :span="6">
  1171. <el-form-item label="工艺名称:" prop="address" class="mab" label-width="100">
  1172. <el-input v-model="add_gyformData.Add_gxmc" placeholder="" style="width: 140px;" id="gy0_gxmc" @keydown="ent($event, 'gy0_site', 'gy0_gxmc', 'add_gxmc')"/>
  1173. </el-form-item>
  1174. </el-col>
  1175. </el-row>
  1176. <el-row>
  1177. <el-col :span="24">
  1178. <el-form-item label="工序名称:" prop="address" class="mab">
  1179. <el-input v-model="add_gyformData.gy0_gxmc" placeholder="" style="width: 100%;" id="add_gxmc" @keydown="ent($event, 'gy0_gxmc', 'add_gxmc', 'Gy0_sbbh')"/>
  1180. </el-form-item>
  1181. </el-col>
  1182. </el-row>
  1183. <el-row>
  1184. <el-form-item label="计损色数:" prop="address" class="mab">
  1185. <el-input v-model="add_gyformData.Gy0_Ms" placeholder="" style="width: 140px;" id="Gy0_sbbh" @keydown="ent($event, 'add_gxmc', 'Gy0_sbbh', 'sys_mc')"/>
  1186. </el-form-item>
  1187. <el-form-item label="可用设备:" prop="address" class="mab" label-width="100">
  1188. <el-input v-model="add_gyformData.Gy0_sbbh" placeholder="" style="" id="可用设备" />
  1189. </el-form-item>
  1190. <el-form-item label="难度系数:" prop="address" class="mab" label-width="237">
  1191. <el-input v-model="add_gyformData.难度系数" placeholder="" style="width: 90px;" id="工价系数" />
  1192. </el-form-item>
  1193. </el-row>
  1194. <el-row>
  1195. <el-form-item label="标准损耗:" prop="address" class="mab">
  1196. <el-input v-model="add_gyformData.标准损耗" @keyup.enter="getSH()" placeholder="" style="width: 150px;" id="Gy0_shdh" />
  1197. <el-input v-model="add_gyformData.标准损耗2" placeholder="" style="width: 160px;" id="sys_mc" @keydown="ent($event, 'Gy0_sbbh', 'sys_mc', '基础损耗')"/>
  1198. </el-form-item>
  1199. <el-form-item label="基础损耗:" prop="address" class="mab">
  1200. <el-input v-model="add_gyformData.Gy0_shdh" placeholder="" style="width: 70px;" id="基础损耗" @keydown="ent($event, 'sys_mc', '基础损耗', '损耗率')"/>
  1201. </el-form-item>
  1202. <el-form-item label="损耗率" prop="address" class="mab" >
  1203. <el-input v-model="add_gyformData.损耗率" placeholder="" style="width: 90px;" id="损耗率" @keydown="ent($event, '基础损耗', '损耗率', '工序备注')"/>
  1204. </el-form-item>
  1205. <el-form-item label="损耗系数:" prop="address" class="mab" >
  1206. <el-input v-model="add_gyformData.损耗系数" placeholder="" style="width: 90px;" id="损耗系数"/>
  1207. </el-form-item>
  1208. </el-row>
  1209. <el-row>
  1210. <el-col :span="24">
  1211. <el-form-item label="工序备注:" prop="remark" class="mab">
  1212. <el-input type="textarea" v-model="add_gyformData.工序备注" rows="2" resize="none" placeholder="" id="工序备注" @keydown="ent($event, '损耗率', '工序备注', '质量要求')" />
  1213. </el-form-item>
  1214. </el-col>
  1215. <el-col :span="24">
  1216. <el-form-item label="质量要求:" prop="remark" class="mab">
  1217. <el-input type="textarea" v-model="add_gyformData.质量要求" rows="2" resize="none" placeholder="" id="质量要求" @keydown="ent($event, '工序备注', '质量要求', '质量隐患')" />
  1218. </el-form-item>
  1219. </el-col>
  1220. <el-col :span="24">
  1221. <el-form-item label="质量隐患:" prop="remark" class="mab">
  1222. <el-input type="textarea" v-model="add_gyformData.质量隐患" rows="2" resize="none" placeholder="" id="质量隐患" @keydown="ent($event, '质量要求', '质量隐患', '方案')" />
  1223. </el-form-item>
  1224. </el-col>
  1225. </el-row>
  1226. </el-form>
  1227. </el-scrollbar>
  1228. </el-row>
  1229. <template #footer>
  1230. <div class="dialog-footer">
  1231. <el-button @click="addgycloseDialog">取 消</el-button>
  1232. <el-button type="primary" @click="addgyenterDialog">确 定</el-button>
  1233. </div>
  1234. </template>
  1235. </el-dialog>
  1236. <!-- 新增查询车间名称 -->
  1237. <el-dialog v-model="searchCJModel" :before-close="() => searchCJModel = false">
  1238. <el-form>
  1239. <div>
  1240. <!-- <el-form-item label="关键字:" class="mab" prop="keyOrder">
  1241. <el-space>
  1242. <el-input v-model="gymc_keyword" style="width: 100%;"/>
  1243. <el-button @click="searchHandle(gymc_keyword)">刷新</el-button>
  1244. </el-space>
  1245. </el-form-item> -->
  1246. <div style="border:1px solid #eee; width:100%; height: 400px; overflow-y: auto">
  1247. <el-tree :data="getCJListdata" :props="defaultProps" @node-click="selectCJNode" />
  1248. </div>
  1249. </div>
  1250. </el-form>
  1251. </el-dialog>
  1252. <!-- 新增查询标准损耗 -->
  1253. <el-dialog v-model="searchSHModel" :before-close="() => searchSHModel = false">
  1254. <el-form>
  1255. <div>
  1256. <!-- <el-form-item label="关键字:" class="mab" prop="keyOrder">
  1257. <el-space>
  1258. <el-input v-model="gymc_keyword" style="width: 100%;"/>
  1259. <el-button @click="searchHandle(gymc_keyword)">刷新</el-button>
  1260. </el-space>
  1261. </el-form-item> -->
  1262. <div style="border:1px solid #eee; width:100%; height: 400px; overflow-y: auto">
  1263. <el-tree :data="getSHListdata" :props="defaultProps" @node-click="selectSHNode" />
  1264. </div>
  1265. </div>
  1266. </el-form>
  1267. </el-dialog>
  1268. <!-- 修改印版资料 弹窗 -->
  1269. <el-dialog v-model="ybdialogFormVisible" :before-close="ybcloseDialog" :title="'修改印版资料'" destroy-on-close>
  1270. <el-row>
  1271. <el-scrollbar >
  1272. <el-form :model="ybformDataTest" label-position="right" ref="elFormRef" :rules="rule" label-width="100px" >
  1273. <el-row>
  1274. <el-col :span="8">
  1275. <el-form-item label="工序方案:" prop="address" class="mab">
  1276. <el-input v-model="ybformDataTest['YB_方案']" clearable placeholder="" style="width: 100px;" id="YB_方案" @keydown="ent($event, 'gy0_site', 'YB_方案', 'YB_Yjno')"/>
  1277. </el-form-item>
  1278. </el-col>
  1279. <el-col :span="8">
  1280. <el-form-item label="印件号:" prop="address" class="mab">
  1281. <el-input v-model="ybformDataTest['YB_Yjno']" clearable placeholder="" style="width: 100px;" id="YB_Yjno" @keydown="ent($event, 'YB_方案', 'YB_Yjno', '工序编号')"/>
  1282. </el-form-item>
  1283. </el-col>
  1284. <el-col :span="8">
  1285. <el-form-item label="工序编号:" prop="address" class="mab">
  1286. <el-input v-model="ybformDataTest['']" clearable placeholder="" style="width: 100px;" id="工序编号" @keydown="ent($event, 'YB_Yjno', '工序编号', '工艺名称')"/>
  1287. </el-form-item>
  1288. </el-col>
  1289. </el-row>
  1290. <el-row>
  1291. <el-col :span="24">
  1292. <el-form-item label="工艺名称:" prop="address" class="mab">
  1293. <el-input v-model="ybformDataTest['gy0_site']" clearable placeholder="" style="width: 100%;" id="工艺名称" @keydown="ent($event, '工序编号', '工艺名称', '工序名称')"/>
  1294. </el-form-item>
  1295. </el-col>
  1296. </el-row>
  1297. <el-row>
  1298. <el-col :span="24">
  1299. <el-form-item label="工序名称:" prop="address" class="mab">
  1300. <el-input v-model="ybformDataTest['gy0_site']" clearable placeholder="" style="width: 100%;" id="工序名称" @keydown="ent($event, '工艺名称', '工序名称', '存货编码')"/>
  1301. </el-form-item>
  1302. </el-col>
  1303. </el-row>
  1304. <el-row>
  1305. <el-col :span="10 ">
  1306. <el-form-item label="存货编码:" prop="address" class="mab">
  1307. <el-input v-model="ybformDataTest['存货编码']" clearable placeholder="" style="width: 140px;" id="存货编码" @keydown="ent($event, '工序名称', '存货编码', '印版名称')"/>
  1308. </el-form-item>
  1309. </el-col>
  1310. </el-row>
  1311. <el-row>
  1312. <el-col :span="24">
  1313. <el-form-item label="存货名称:" prop="address" class="mab">
  1314. <el-input v-model="ybformDataTest['印版名称']" clearable placeholder="" style="width: 100%;" id="印版名称" @keydown="ent($event, '存货编码', '印版名称', 'gy0_site')"/>
  1315. </el-form-item>
  1316. </el-col>
  1317. </el-row>
  1318. <el-row>
  1319. <el-col :span="24">
  1320. <el-form-item label="印版备注:" prop="address" class="mab">
  1321. <el-input v-model="ybformDataTest['gy0_site']" clearable placeholder="" style="width: 100%;" id="gy0_site" @keydown="ent($event, '印版名称', 'gy0_site', 'YB_方案')"/>
  1322. </el-form-item>
  1323. </el-col>
  1324. </el-row>
  1325. </el-form>
  1326. </el-scrollbar>
  1327. </el-row>
  1328. <template #footer>
  1329. <div class="dialog-footer">
  1330. <el-button @click="ybcloseDialog">取 消</el-button>
  1331. <el-button type="primary" disabled @click="ybenterDialog">确 定</el-button>
  1332. </div>
  1333. </template>
  1334. </el-dialog>
  1335. <!-- 新增印版资料 弹窗 -->
  1336. <el-dialog v-model="addybdialogFormVisible" :before-close="addybcloseDialog" :title="'新增印版资料'" height="300px" width="600px" destroy-on-close>
  1337. <el-row>
  1338. <el-scrollbar>
  1339. <el-form :model="add_ybformDataTest" label-position="right" ref="elFormRef" :rules="rule" >
  1340. <input type="hidden" v-model="add_ybformDataTest.gxmc1">
  1341. <el-form-item label="" prop="gongxu" class="mab" label-width="50">
  1342. <el-select v-model="add_ybformDataTest.gongxu" placeholder="请选择" id="chbm" style="width: 400px;">
  1343. <el-option v-for="option in addybdisplaydata.gongxuNameOptions" @click="ongongxufanclick" :key="option" :label="option" :value="option" />
  1344. </el-select>
  1345. </el-form-item>
  1346. <el-form-item label="工序方案:" prop="address" class="mab" >
  1347. <el-input disabled v-model="add_ybformDataTest.YB_方案" placeholder="" style="width: 90px;" id="YB_方案"/>
  1348. <el-form-item label="印件编号:" prop="address" class="mab" label-width="100">
  1349. <el-input disabled v-model="add_ybformDataTest.YB_Yjno" placeholder="" style="width: 90px;" id="YB_Yjno"/>
  1350. </el-form-item>
  1351. <el-form-item label="工序编号:" prop="address" class="mab" label-width="100">
  1352. <el-input disabled v-model="add_ybformDataTest.YB_gxh" placeholder="" style="width: 90px;" id="YB_gxh"/>
  1353. </el-form-item>
  1354. </el-form-item>
  1355. <el-form-item label="工艺名称:" prop="address" class="mab" >
  1356. <el-input disabled v-model="add_ybformDataTest.YB_gymc" placeholder="" style="width: 500px;" id="YB_gymc"/>
  1357. </el-form-item>
  1358. <el-form-item label="工序名称:" prop="address" class="mab" >
  1359. <el-input disabled v-model="add_ybformDataTest.YB_gxmc" placeholder="" style="width: 500px;" id="YB_gxmc"/>
  1360. </el-form-item>
  1361. <br>
  1362. <el-form-item label="存货编码:" prop="address" class="mab" >
  1363. <el-input v-model="add_ybformDataTest.物料代码" placeholder="" style="width: 200px;" id="YB_gxmc" @keydown="add_ybzlent($event, '', 'YB_gxmc', '')"/>
  1364. </el-form-item>
  1365. <el-form-item label="存货名称:" prop="address" class="mab" >
  1366. <el-input disabled v-model="add_ybformDataTest.物料名称" placeholder="" style="width: 500px;" id="YB_gxmc"/>
  1367. </el-form-item>
  1368. <el-form-item label="印版备注:" prop="address" class="mab" >
  1369. <el-input type="textarea" resize="none" v-model="add_ybformDataTest.ybbz" rows="1" clearable style="flex: 1;resize: none" />
  1370. </el-form-item>
  1371. </el-form>
  1372. </el-scrollbar>
  1373. </el-row>
  1374. <template #footer>
  1375. <div class="dialog-footer">
  1376. <el-button @click="addtbcloseDialog">取 消</el-button>
  1377. <el-button type="primary" @click="addtbenterDialog">确 定</el-button>
  1378. </div>
  1379. </template>
  1380. </el-dialog>
  1381. <!-- 新增印版资料查询存货编码 -->
  1382. <el-dialog v-model="addybdisplay" :before-close="() => addybdisplay = false">
  1383. <el-form>
  1384. <div>
  1385. <el-form-item label="" prop="originalName" class="mab">
  1386. <el-select v-model="addybdisplaydata.chbm" placeholder="请选择" id="chbm" style="width: 200px;">
  1387. <el-option v-for="option in addybdisplaydata.chbmNameOptions" @click="onybzlfanclick" :key="option" :label="option" :value="option" />
  1388. </el-select>
  1389. <!-- </el-form-item>-->
  1390. <!-- <el-form-item label="" class="mab" prop="keyOrder">-->
  1391. <el-space>
  1392. <el-input v-model="addyb_keyword" style="width: 100%;margin-left: 20px"/>
  1393. <el-button @click="addyb_searchHandle(addyb_keyword)" style="width: 10%;">刷新</el-button>
  1394. </el-space>
  1395. </el-form-item>
  1396. <div style="border:1px solid #eee; width:100%; height: 400px; overflow-y: auto">
  1397. <el-tree :data="getYBListdata" :props="defaultProps" @node-click="addyb_selectSHNode" />
  1398. </div>
  1399. </div>
  1400. </el-form>
  1401. </el-dialog>
  1402. <!-- 技术附件 -->
  1403. <el-dialog v-model="jsfjdialogFormVisible" :before-close="jsfjcloseDialog" :title="产品技术附件资料" style="margin-top: 40px" height="500px" width="800px" destroy-on-close>
  1404. <el-form :model="jsfjformdata" label-position="right" ref="elFormRef" :rules="rule" label-width="75px">
  1405. <el-row :gutter="24">
  1406. <el-col :span="6">
  1407. <el-form-item label="序号:" prop="address" class="mab">
  1408. <el-input v-model="jsfjformdata.序号" id="序号" style="width: 140px;" />
  1409. </el-form-item>
  1410. </el-col>
  1411. <el-col :span="18">
  1412. <el-form-item label="附件备注:" prop="address" class="mab">
  1413. <el-input v-model="jsfjformdata.附件备注" id="附件备注" />
  1414. </el-form-item>
  1415. </el-col>
  1416. </el-row>
  1417. <el-row :gutter="24">
  1418. <el-col :span="24">
  1419. <el-form-item label="适用工序:" prop="address" class="mab">
  1420. <el-input v-model="jsfjformdata.适用工序" id="适用工序" />
  1421. </el-form-item>
  1422. </el-col>
  1423. </el-row>
  1424. <el-row :gutter="24">
  1425. <el-col :span="24">
  1426. <el-form-item label="关联产品:" prop="address" class="mab">
  1427. <el-input v-model="jsfjformdata.关联产品" id="关联产品" />
  1428. </el-form-item>
  1429. </el-col>
  1430. </el-row>
  1431. <el-row :gutter="24">
  1432. <el-col :span="6"></el-col>
  1433. <el-col :span="12">
  1434. <input style="font-size:16px;" type="file" @change="uploadExcel" >
  1435. </el-col>
  1436. <el-col :span="6">
  1437. <el-button @click="yulan">预览</el-button>
  1438. </el-col>
  1439. </el-row>
  1440. </el-form>
  1441. <template #footer>
  1442. <div class="dialog-footer">
  1443. <el-button @click="jsfjcloseDialog">取 消</el-button>
  1444. <el-button type="primary" @click="jsfjenterDialog">确 定</el-button>
  1445. </div>
  1446. </template>
  1447. </el-dialog>
  1448. <el-dialog v-model="luckyexcelVisible" :before-close="luckyexcelCloseDialog" width="100%" top="0vh">
  1449. <div id="luckyexcel" style="width: 100%;height: 90vh;"></div>
  1450. </el-dialog>
  1451. </layout-content>
  1452. </layout>
  1453. </layout>
  1454. </div>
  1455. </template>
  1456. <script>
  1457. //点击按钮显示下方表格
  1458. export default {
  1459. data() {
  1460. return {
  1461. currentTable: '',
  1462. activeName: 'first',
  1463. currentGy0_yjno: null
  1464. };
  1465. },
  1466. methods: {
  1467. tableRowClass({row,rowIndex}){
  1468. if(row.状态==="停产"){
  1469. return "warning-row"
  1470. }
  1471. },
  1472. rowClassStyle({row,rowIndex}){
  1473. // debugger
  1474. // console.log(row.Gy0_yjno, this.currentGy0_yjno)
  1475. if(row.Gy0_yjno==this.currentGy0_yjno){
  1476. return "warning-row"
  1477. }
  1478. },
  1479. clickybupdate(row,column,event){
  1480. this.currentGy0_yjno = row.Gy0_yjno
  1481. },
  1482. showTable(tableName) {
  1483. // console.log(tableName)
  1484. // 根据点击的按钮设置当前展示的表格
  1485. // this.currentTable = tableName;
  1486. },
  1487. showTableChange() {
  1488. // 处理表格选中事件
  1489. },
  1490. // 其他方法...
  1491. }
  1492. };
  1493. </script>
  1494. <script setup>
  1495. // 全量引入格式化工具 请按需保留
  1496. import $script from 'scriptjs'
  1497. import $ from 'jquery';
  1498. import LuckyExcel from 'luckyexcel';
  1499. import { ElMessage, ElMessageBox } from 'element-plus'
  1500. //拖拽 import { Layout, LayoutSider, LayoutContent } from '@arco-design/web-vue';
  1501. import { Layout, LayoutSider, LayoutContent } from '@arco-design/web-vue';
  1502. import { ref, reactive, nextTick, } from 'vue'
  1503. import {
  1504. DataList,
  1505. editGyName,
  1506. editGyNo,
  1507. editProduct,
  1508. getProductYbMaterialDetail,
  1509. editProductYjInfo,
  1510. getProductGyInfo,
  1511. getCustom,
  1512. getDepartment,
  1513. getProduct,
  1514. editGy,
  1515. getProductData,
  1516. getProductYjInfo,
  1517. getGyTotal,
  1518. ProductCodeList,
  1519. getProductGy,
  1520. editGyWaste,
  1521. editGyMs,
  1522. getStaffList,
  1523. setProductStatus,
  1524. getProductYjList,
  1525. getProductZzList,
  1526. addProductYjInfo,
  1527. getDepartName,
  1528. getProcess,
  1529. getProcessLoss,
  1530. addProductGyInfo,
  1531. copyProductGy,
  1532. getProductYbMaterialList,
  1533. getProductYbInfo,
  1534. addProductYbInfo,
  1535. getAnnexTable,
  1536. annexAdd,
  1537. annexDel,
  1538. } from '@/api/yunyin/yunying'
  1539. defineOptions({ name: 'Company'})
  1540. import { useUserStore } from '@/pinia/modules/user'
  1541. const userStore = useUserStore()
  1542. const _username = ref('')
  1543. _username.value = userStore.userInfo.userName + '/' + userStore.userInfo.nickName
  1544. // =========== 导出Excel表格 ===========
  1545. // //导出产品
  1546. // const cpdialogexportToExcel = ref(false)
  1547. // const cpexportToExcel = () => {
  1548. // console.log('点击了导出产品按钮')
  1549. // cpdialogexportToExcel.value = true;
  1550. // }
  1551. //
  1552. // //导出工艺
  1553. // const gydialogexportToExcel = ref(false)
  1554. // const gyexportToExcel = () => {
  1555. // console.log('点击了导出工艺流程按钮')
  1556. // gydialogexportToExcel.value = true;
  1557. // }
  1558. // =========== 状态设置 ===========
  1559. const onstatuslist = ref(false);
  1560. const status = ref('在产'); // 默认选择在产
  1561. const _stacode = ref(null);
  1562. //点击【状态设置】按钮
  1563. const onStatusClick = () => {
  1564. if(_product_code.value == null){
  1565. onstatuslist.value = false;
  1566. ElMessage({
  1567. type: 'warning',
  1568. message: '请选择树形后,再操作此功能'
  1569. })
  1570. }else{
  1571. _stacode.value = _product_code.value;
  1572. onstatuslist.value = true;
  1573. }
  1574. };
  1575. // 状态设置放弃按钮
  1576. const handleCancel = () => {
  1577. onstatuslist.value = false;
  1578. };
  1579. // 状态设置执行按钮
  1580. const handleConfirm = async () => {
  1581. onstatuslist.value = false;
  1582. let statusCode;
  1583. let code = _stacode.value;
  1584. if (status.value === '在产') {
  1585. statusCode = 1;
  1586. } else if (status.value === '停产') {
  1587. statusCode = 2;
  1588. }
  1589. const data = await setProductStatus({ code: code, status: statusCode });
  1590. if (data.code === 0) {
  1591. ElMessage({
  1592. type: 'success',
  1593. message: '更新成功'
  1594. })
  1595. } else {
  1596. ElMessage({
  1597. type: 'error',
  1598. message: '更新成功'
  1599. })
  1600. }
  1601. };
  1602. handleCancel(_stacode);
  1603. // =========== 工艺方案附加 ===========
  1604. const fjlist = ref(false);
  1605. const fjformData = reactive({
  1606. //当前产品
  1607. process: '',
  1608. //产品名称
  1609. processName: '',
  1610. //工艺方案
  1611. processfa: [],
  1612. // 工艺方案默认选择的值
  1613. originalName: '',
  1614. //↓新产品数据
  1615. dqprocess: '',
  1616. dqprocessName: '',
  1617. dqoriginalName: ''
  1618. });
  1619. const fjtableData = ref([]);
  1620. const _originalNamev = ref(null);
  1621. //1.点击【工艺方案附加】按钮
  1622. const fjClick = () => {
  1623. if(_product_code.value == null){
  1624. fjlist.value = false;
  1625. ElMessage({
  1626. type: 'warning',
  1627. message: '请选择分类项目,再操作此功能'
  1628. })
  1629. }else{
  1630. fjlist.value = true;
  1631. if (gytableData.length === 0) {
  1632. fjlist.value = false;
  1633. ElMessage({
  1634. type: 'warning',
  1635. message: '没有工艺资料'
  1636. })
  1637. } else {
  1638. //将值赋值给当前产品
  1639. fjformData.process = _product_code.value;
  1640. fjformData.processName = _kehu_code.value;
  1641. //默认新产品为空
  1642. fjformData.dqprocess = ''
  1643. fjformData.dqprocessName = ''
  1644. fjformData.dqoriginalName = ''
  1645. //获取方案
  1646. const uniqueSchemeSet = new Set();
  1647. gytableData.forEach(item => {
  1648. uniqueSchemeSet.add(item['方案']);
  1649. });
  1650. const uniqueSchemeArray = Array.from(uniqueSchemeSet);
  1651. fjformData.originalNameOptions = [];// 清空原有数据
  1652. fjformData.originalNameOptions = fjformData.originalNameOptions.concat(uniqueSchemeArray);
  1653. // 设置默认选择第一个选项
  1654. if (fjformData.originalNameOptions.length > 0) {
  1655. fjformData.originalName = fjformData.originalNameOptions[0];
  1656. }
  1657. }
  1658. const product_code = fjformData.process
  1659. const plan = fjformData.originalName
  1660. getProductGys(product_code,plan)
  1661. }
  1662. };
  1663. //2.输入新产品点击后面input获取新产品的值
  1664. const ondqprocessNameclick = () => {
  1665. _originalNamev.value = fjformData['dqprocess'];
  1666. _ongetProductclick();
  1667. }
  1668. //2.新产品输入框回车事件
  1669. const getProductValue = () => {
  1670. if(fjformData['dqprocessName'] === ''){
  1671. fjformData['dqprocessName'] = '';
  1672. }
  1673. _originalNamev.value = fjformData['dqprocess'];
  1674. _ongetProductclick();
  1675. }
  1676. //封装获取单个产品基础数据方法[用来获取新产品名称]
  1677. const _ongetProductclick = async ()=>{
  1678. let params = {}
  1679. params.search = _originalNamev.value;
  1680. params.limit = 999;
  1681. params.page = 1;
  1682. try {
  1683. const WorkListdata = await getProduct(params);
  1684. fjformData['dqprocessName'] = WorkListdata.data.data[0]['产品名称'];
  1685. } catch (error) {
  1686. console.error(error);
  1687. }
  1688. }
  1689. //3.获取选择下拉框当前方案的值
  1690. const onoriginalNameclick = () => {
  1691. //获取方案
  1692. const uniqueSchemeSet = new Set();
  1693. gytableData.forEach(item => {
  1694. uniqueSchemeSet.add(item['方案']);
  1695. });
  1696. const uniqueSchemeArray = Array.from(uniqueSchemeSet);
  1697. fjformData.originalNameOptions = [];// 清空原有数据
  1698. fjformData.originalNameOptions = fjformData.originalNameOptions.concat(uniqueSchemeArray);
  1699. const product_code = fjformData.process
  1700. const plan = fjformData.originalName
  1701. getProductGys(product_code,plan)
  1702. }
  1703. //当前产品号通过接口查询工艺数据,用来展示表格
  1704. const getProductGys = async (product_code,plan) => {
  1705. const getProductGydata = await getProductGy({product_code:product_code,plan:plan});
  1706. fjtableData.value = getProductGydata.data;
  1707. };
  1708. //==========点击【附加标准工序】按钮=====弹出新页面==========
  1709. const cpgylcfjxx = ref(false);
  1710. //产品代号
  1711. const _cpgyoriginalNamev = ref(null);
  1712. const cpgyformData = reactive({
  1713. //当前产品代号
  1714. cpgydh: '',
  1715. //当前产品名称
  1716. cpgymc: '',
  1717. //当前产品工艺方案
  1718. cpgyfan: [],
  1719. // 当前工艺方案默认选择的值
  1720. cpgyfans: '',
  1721. });
  1722. //点击【附加标准工序按钮】打开页面清空输入框数据
  1723. const fjbzgx = async () => {
  1724. cpgyformData['cpgydh'] = '';
  1725. cpgyformData['cpgymc'] = '';
  1726. cpgyformData['cpgyfan'] = '';
  1727. cpgylcfjxx.value = true;
  1728. }
  1729. //输入新产品点击后面input获取新产品的值
  1730. const oncpgymcclick = () => {
  1731. _cpgyoriginalNamev.value = cpgyformData['cpgydh'];
  1732. _cpgyongetProductclick();
  1733. _ongetProductclicks();
  1734. }
  1735. //新产品输入框回车事件
  1736. const cpgygetProductValue = () => {
  1737. if(cpgyformData['cpgydh'] == ''){
  1738. cpgyformData['cpgymc'] = '';
  1739. }
  1740. _cpgyoriginalNamev.value = cpgyformData['cpgydh'];
  1741. _cpgyongetProductclick();
  1742. _ongetProductclicks();
  1743. }
  1744. //3.点击工艺方案下拉框获取输入框的值
  1745. const oncpgyfanclick = () => {
  1746. // 产品代号
  1747. const product_code = cpgyformData.cpgydh;
  1748. // 选中的工艺方案
  1749. const plan = cpgyformData.cpgyfan;
  1750. getProductGyss(product_code,plan)
  1751. }
  1752. const yincangtableData = ref([]);
  1753. const _cpgyongetProductclick = async ()=>{
  1754. const product_code = _cpgyoriginalNamev.value;//产品号
  1755. const getProductDatadata = await getProductData({product_code:product_code});
  1756. // 从数据中提取方案
  1757. const schemes = getProductDatadata.data.gyData.map(item => item.方案);
  1758. // 使用 Set 进行去重
  1759. const uniqueSchemes = Array.from(new Set(schemes));
  1760. // 更新工艺方案数组
  1761. cpgyformData.cpgyfans = uniqueSchemes;
  1762. // 设置默认选择第一个选项
  1763. if (cpgyformData.cpgyfans.length > 0) {
  1764. cpgyformData.cpgyfan = [cpgyformData.cpgyfans[0]];
  1765. }
  1766. const plan = cpgyformData.cpgyfan[0]
  1767. getProductGyss(product_code,plan)
  1768. }
  1769. //当前产品号通过接口查询工艺数据,用来展示表格
  1770. const cpgytableData = ref([]);
  1771. const getProductGyss = async (product_code,plan) => {
  1772. const getProductGydata = await getProductGy({product_code:product_code,plan:plan});
  1773. cpgytableData.value = getProductGydata.data;
  1774. };
  1775. const _ongetProductclicks = async ()=>{
  1776. let params = {}
  1777. params.search = _cpgyoriginalNamev.value;
  1778. params.limit = 999;
  1779. params.page = 1;
  1780. try {
  1781. const getProductdata = await getProduct(params);
  1782. cpgyformData['cpgymc'] = getProductdata.data.data[0]['产品名称'];
  1783. } catch (error) {
  1784. console.error(error);
  1785. }
  1786. }
  1787. //点击【附加标准工序执行】按钮
  1788. const onfjbzgxexecute = async () => {
  1789. cpgylcfjxx.value = false;
  1790. }
  1791. //点击【附加标准工序放弃】按钮
  1792. const onfjbzgxcancellation = async () => {cpgylcfjxx.value = false;}
  1793. //点击【更新当前产品工序】按钮,更新的是表格数据
  1794. const gxdqcpgx = async () => {
  1795. const rawValueArray = fjtableData._rawValue;
  1796. const formattedData = rawValueArray.map(item => {
  1797. return {
  1798. UniqID: item.UniqID,
  1799. Gy0_yjno: item.Gy0_yjno,
  1800. Gy0_gxh: item.Gy0_gxh,
  1801. Gy0_Ks: item.Gy0_Ks,
  1802. Gy0_ls: item.Gy0_ls
  1803. };
  1804. });
  1805. const editGyNamedata = await editGyNo(formattedData);
  1806. if (editGyNamedata.code === 0) {
  1807. ElMessage({
  1808. type: 'success',
  1809. message: '更新成功'
  1810. })
  1811. } else {
  1812. ElMessage({
  1813. type: 'error',
  1814. message: '更新失败'
  1815. })
  1816. }
  1817. fjlist.value = false;
  1818. };
  1819. //点击【建立工艺方案】按钮,当前的方案建立到新产品方案中
  1820. const fjhandleConfirm = async () => {
  1821. fjlist.value = false;
  1822. };
  1823. //点击【工艺方案附加放弃操作】按钮
  1824. const fjhandleCancel = () => {
  1825. fjlist.value = false;
  1826. };
  1827. // =========== 产品工艺复制 ===========
  1828. const cpgyfzlist = ref(false);
  1829. const cpgyfzformData = reactive({
  1830. process: '',
  1831. processName: '',
  1832. gongyifa:'',
  1833. gongyifaNameOptions: [],
  1834. mubprocess: '',
  1835. mubprocessName: '',
  1836. to_pro:'',
  1837. fzgyzl: false,
  1838. fzybzl: true,
  1839. });
  1840. const cpgyfzclick = async () => {
  1841. if(_product_code.value == null){
  1842. gygmlist.value = false;
  1843. ElMessage({
  1844. type: 'warning',
  1845. message: '请选择分类项目,再操作此功能'
  1846. })
  1847. }else{
  1848. cpgyfzlist.value = true;
  1849. cpgyfzformData.process = _product_code.value;
  1850. await _getGyTotal();
  1851. }
  1852. };
  1853. //取消
  1854. const cpgyfzhandleCancel = async () => {
  1855. cpgyfzlist.value = false;
  1856. };
  1857. //确定
  1858. const is_copy_gy = ref(0);
  1859. const is_copy_yb = ref(0);
  1860. const toProUpperCase = ref('');
  1861. const cpgyfzhandleConfirm = async () => {
  1862. // console.log(cpgyfzformData)
  1863. if(cpgyfzformData['process'] === ''){
  1864. ElMessage({type: 'warning',message: '参照产品代号不能为空' })
  1865. return false;
  1866. }
  1867. if(cpgyfzformData['mubprocess'] === ''){
  1868. ElMessage({type: 'warning',message: '目标产品编号不能为空' })
  1869. return false;
  1870. }
  1871. if(cpgyfzformData['gongyifa'] === '' || cpgyfzformData['gongyifa'] === undefined){
  1872. ElMessage({type: 'warning',message: '该产品未查询到工艺方案' })
  1873. return false;
  1874. }
  1875. if(cpgyfzformData['mubprocess'] === ''){
  1876. ElMessage({type: 'warning',message: '目标产品代号不能为空' })
  1877. return false;
  1878. }
  1879. //选择复制工艺资料
  1880. if (cpgyfzformData['fzgyzl'] === true) {
  1881. is_copy_gy.value = 1;
  1882. }
  1883. //选择复制印版资料
  1884. if (cpgyfzformData['fzybzl'] === true) {
  1885. is_copy_yb.value = 1;
  1886. }
  1887. //选择复制工艺资料、不选择复制印版资料
  1888. if (cpgyfzformData['fzgyzl'] === true && cpgyfzformData['fzybzl'] === false) {
  1889. if(cpgyfzformData['to_pro'] === ''){
  1890. ElMessage({type: 'warning',message: '目标工艺方案不能为空' })
  1891. return false;
  1892. }
  1893. is_copy_gy.value = 1;
  1894. is_copy_yb.value = 0;
  1895. }
  1896. //选择复制印版资料、不选择复制工艺资料
  1897. if (cpgyfzformData['fzgyzl'] === false && cpgyfzformData['fzybzl'] === true) {
  1898. is_copy_gy.value = 0;
  1899. is_copy_yb.value = 1;
  1900. cpgyfzformData['to_pro'] = '';
  1901. }
  1902. //都不选择提示信息
  1903. if (cpgyfzformData['fzgyzl'] === false && cpgyfzformData['fzybzl'] === false) {
  1904. ElMessage({type: 'warning',message: '请选择复制工艺资料 或 复制印版资料' })
  1905. return false;
  1906. }
  1907. // 判断是否为大写字母
  1908. if (cpgyfzformData['to_pro'] === cpgyfzformData['to_pro'].toUpperCase()) {
  1909. toProUpperCase.value = cpgyfzformData['to_pro'];
  1910. } else {
  1911. // 如果不是大写字母,则将其转换为大写
  1912. toProUpperCase.value = cpgyfzformData['to_pro'].toUpperCase();
  1913. }
  1914. const formattedData = {
  1915. from_code: cpgyfzformData['process'],
  1916. from_pro: cpgyfzformData['gongyifa'],
  1917. to_code: cpgyfzformData['mubprocess'],
  1918. is_copy_gy: is_copy_gy.value,
  1919. to_pro: toProUpperCase.value,
  1920. is_copy_yb: is_copy_yb.value,
  1921. };
  1922. console.log(formattedData);
  1923. const copyProductGy_add = await copyProductGy(formattedData);
  1924. if (copyProductGy_add.code === 0) {
  1925. xzhscslist.value = false;
  1926. ElMessage({ type: 'success', message: '更新成功' });
  1927. cpgyfzlist.value = false;
  1928. } else {
  1929. ElMessage({ type: 'error', message: '更新失败' });
  1930. }
  1931. };
  1932. cpgyfzhandleConfirm
  1933. //101201052
  1934. const _getGyTotal = async () => {
  1935. console.log(_product_code.value)
  1936. const getGyTotaldata = await getGyTotal({code:_product_code.value});
  1937. cpgyfzformData.processName = getGyTotaldata.data.name
  1938. cpgyfzformData.gongyifa = getGyTotaldata.data.gy[0]
  1939. cpgyfzformData.gongyifaNameOptions = getGyTotaldata.data.gy
  1940. };
  1941. const cpgyfzdisplay = ref(false)
  1942. const cpgyfzLists = ref(false);
  1943. const cpgyfz_keyword = ref('')
  1944. //点击客户代号
  1945. const cpgyfzselectGongDanNode = (node, type) => {
  1946. if (type === '产品代号') {
  1947. cpgyfzformData['mubprocess'] = node.产品编号
  1948. cpgyfzformData['mubprocessName'] = node.产品名称
  1949. cpgyfzdisplay.value = false
  1950. }
  1951. }
  1952. const cpgyfzSearchHandle = async (v, type) => {
  1953. if (type === '产品代号') {
  1954. await _ProductCodeList(v)
  1955. }
  1956. }
  1957. //【回车】
  1958. const cpgyfz_ProductValue = async (v) => {
  1959. await _ProductCodeList(cpgyfz_keyword.value)
  1960. };
  1961. //产品代号列表
  1962. const _ProductCodeList = async (v = '')=>{
  1963. try {
  1964. const ProductCodeListdata = await ProductCodeList({cilent: v});
  1965. cpgyfzLists.value = ProductCodeListdata.data
  1966. } catch (error) {
  1967. console.error(error);
  1968. }
  1969. }
  1970. const add_cpgyfzent = async (event,id1,id2,id3) => {
  1971. if (id2 === 'mubprocess' && event.key==='Tab' || id2 === 'mubprocess' && event.key=== 'Enter') {
  1972. // cpgyfz_keyword.value = '';
  1973. await _ProductCodeList(cpgyfzformData['mubprocess'])
  1974. if (cpgyfzLists.value != null) {
  1975. const row = cpgyfzLists.value.find(item => item.产品编号 === cpgyfzformData['mubprocess'])
  1976. if (row) {
  1977. cpgyfzformData['mubprocess'] = row.产品编号
  1978. cpgyfzformData['mubprocessName'] = row.产品名称
  1979. } else {
  1980. cpgyfzdisplay.value = true
  1981. }
  1982. } else {
  1983. cpgyfzdisplay.value = true
  1984. }
  1985. }
  1986. if (event.keyCode === 13 || event.keyCode === 40) { // Enter 或向下箭头
  1987. if(id3!=''){
  1988. document.getElementById(id3).focus()
  1989. }
  1990. } else if (event.keyCode === 38) { // 向上箭头
  1991. if(id1!=''){
  1992. document.getElementById(id1).focus()
  1993. }
  1994. }else if (event.keyCode === 8) { // 删除箭头
  1995. if(id1!='' && document.getElementById(id2).value==''){
  1996. document.getElementById(id1).focus()
  1997. }
  1998. // console.log(document.getElementById(id2).value)
  1999. }else if (event.keyCode === 37) { // 向左箭头
  2000. if(id1!='' && document.getElementById(id2).selectionStart==0){
  2001. document.getElementById(id1).focus()
  2002. }
  2003. }else if (event.keyCode === 39) { // 向右箭头
  2004. if(id3!='' && document.getElementById(id2).selectionStart == document.getElementById(id2).value.length){
  2005. document.getElementById(id3).focus()
  2006. }
  2007. }
  2008. }
  2009. // =========== 工艺方案更名 ===========
  2010. const gygmlist = ref(false);
  2011. const _gygmstacode = ref(null);
  2012. const gyformData = reactive({
  2013. process: '',
  2014. processName: '',
  2015. originalNameOptions: [],
  2016. newName: '',
  2017. originalName: '', // 工艺方案默认选择的值
  2018. });
  2019. //点击【工艺方案更名】按钮
  2020. const gygmClick = () => {
  2021. if(_product_code.value == null){
  2022. gygmlist.value = false;
  2023. ElMessage({
  2024. type: 'warning',
  2025. message: '请选择分类项目,再操作此功能'
  2026. })
  2027. }else{
  2028. gygmlist.value = true;
  2029. gyformData.process = _product_code.value;
  2030. gyformData.processName = _kehu_code.value;
  2031. if (gytableData.length === 0) {
  2032. gygmlist.value = false;
  2033. ElMessage({
  2034. type: 'warning',
  2035. message: '没有工艺资料'
  2036. })
  2037. } else {
  2038. const uniqueSchemeSet = new Set();
  2039. gytableData.forEach(item => {
  2040. uniqueSchemeSet.add(item['方案']);
  2041. });
  2042. const uniqueSchemeArray = Array.from(uniqueSchemeSet);
  2043. gyformData.originalNameOptions = []; // 清空原有数据
  2044. gyformData.originalNameOptions = gyformData.originalNameOptions.concat(uniqueSchemeArray);
  2045. // 设置默认选择第一个选项
  2046. if (gyformData.originalNameOptions.length > 0) {
  2047. gyformData.originalName = gyformData.originalNameOptions[0];
  2048. }
  2049. }
  2050. }
  2051. };
  2052. // 工艺方案更名放弃按钮
  2053. const gygmhandleCancel = () => {gygmlist.value = false;};
  2054. // 点击工艺方案更名【执行】按钮
  2055. const gygmhandleConfirm = async () => {
  2056. if(gyformData.originalName === '' || gyformData.originalName === undefined){
  2057. ElMessage({type: 'warning',message: '该产品未查询到工艺方案原名' })
  2058. return false;
  2059. }
  2060. if(gyformData.newName === ''){
  2061. ElMessage({
  2062. type: 'warning',
  2063. message: '工艺方案新名不能为空'
  2064. })
  2065. return;
  2066. }
  2067. gygmlist.value = false;
  2068. let params = {}
  2069. params.code = gyformData.process;
  2070. params.old_name = gyformData.originalName;
  2071. params.new_name = gyformData.newName;
  2072. //确定后清空 工艺方案原名 输入框
  2073. gyformData.originalName = ''
  2074. //确定后清空 工艺方案新名 输入框
  2075. gyformData.newName = ''
  2076. try {
  2077. const WorkListdata = await editGyName(params);
  2078. if (WorkListdata.code === 0) {
  2079. ElMessage({type: 'success',message: '更新成功'})
  2080. } else {
  2081. ElMessage({type: 'error',message: '更新失败'})
  2082. }
  2083. } catch (error) {
  2084. console.error(error);
  2085. }
  2086. };
  2087. gygmhandleCancel(_gygmstacode);
  2088. // =========== 计损色数修正 ===========
  2089. const jsssxzlist = ref(false);
  2090. const jsssxztableData = ref([]);
  2091. const jsssxzformData = reactive({cpdh: '',});
  2092. //点击【计损色数修正】按钮
  2093. const jsssxzClick = () => {
  2094. if(_product_code.value == null){
  2095. jsssxzlist.value = false;
  2096. ElMessage({
  2097. type: 'warning',
  2098. message: '请选择分类项目,再操作此功能'
  2099. })
  2100. }else{
  2101. _jsssxzgetProductGy();
  2102. jsssxzformData['cpdh'] = _product_code.value;
  2103. jsssxzlist.value = true;
  2104. }
  2105. }
  2106. //计损色数修正【回车】
  2107. const jsssxzgetProductValue = async () => {
  2108. _product_code.value = '';
  2109. _jsssxzgetProductGy();
  2110. };
  2111. //计损色数修正获取工艺表格数据
  2112. const _jsssxzgetProductGy = async ()=>{
  2113. let product_code = _product_code.value || jsssxzformData['cpdh'];
  2114. try {
  2115. const getProductGydata = await getProductGy({product_code:product_code});
  2116. jsssxztableData.value = getProductGydata.data;
  2117. const formattedData = getProductGydata.data.map(item=>{
  2118. item.old_ms_coe = item.ms_coe
  2119. return item
  2120. });
  2121. } catch (error) {
  2122. console.error(error);
  2123. }
  2124. }
  2125. //计损色数修正更新按钮
  2126. const jsssxzConfirm = async () => {
  2127. const rawValueArray = jsssxztableData._rawValue;
  2128. const formattedData = rawValueArray.map(item => {
  2129. return {
  2130. UniqID: item.UniqID,
  2131. Gy0_Ms: item.ms_coe,
  2132. Gy0_gxh: item.Gy0_gxh,
  2133. Gy0_Ks: item.Gy0_Ks,
  2134. Add_gxmc: item.Add_gxmc,
  2135. remark: item.remark
  2136. };
  2137. });
  2138. const editeditGyMs = await editGyMs(formattedData);
  2139. if (editeditGyMs.code === 0) {
  2140. ElMessage({type: 'success',message: '更新成功'})
  2141. } else {
  2142. ElMessage({type: 'error',message: '更新失败'})
  2143. }
  2144. jsssxzlist.value = false;
  2145. };
  2146. //计损色数修正放弃按钮
  2147. const jsssxzCancel = () => {jsssxzlist.value = false;};
  2148. // =========== 质检废品系数 ===========
  2149. const fjfpxslist = ref(false);
  2150. const fjfpxstableData = ref([]);
  2151. const fjfpxsformData = reactive({cpdh: '',});
  2152. //点击【质检废品系数】按钮
  2153. const fjfpxsClick = () => {
  2154. if(_product_code.value == null){
  2155. gygmlist.value = false;
  2156. ElMessage({type: 'warning',message: '请选择分类项目,再操作此功能'})
  2157. }else{
  2158. fjfpxsformData['cpdh'] = _product_code.value;
  2159. _fjfpxsgetProductGy();
  2160. fjfpxslist.value = true;
  2161. }
  2162. }
  2163. //质检废品系数回车
  2164. const fjfpxsgetProductValue = async () => {
  2165. _product_code.value = '';
  2166. _fjfpxsgetProductGy();
  2167. };
  2168. //质检废品系数获取工艺表格数据
  2169. const _fjfpxsgetProductGy = async ()=>{
  2170. let product_code = _product_code.value || fjfpxsformData['cpdh'];
  2171. try {
  2172. const getProductGydata = await getProductGy({product_code:product_code});
  2173. fjfpxstableData.value = getProductGydata.data;
  2174. const formattedData = getProductGydata.data.map(item=>{
  2175. item.old_artificial_zp = item.artificial_zp;
  2176. item.old_artificial_cp = item.artificial_cp;
  2177. item.old_artificial_fj = item.artificial_fj;
  2178. item.old_machine_zp = item.machine_zp;
  2179. item.old_machine_cp = item.machine_cp;
  2180. item.old_machine_fj = item.machine_fj;
  2181. return item
  2182. });
  2183. } catch (error) {
  2184. console.error(error);
  2185. }
  2186. }
  2187. //质检废品系数更新按钮
  2188. const fjfpxsConfirm = async () => {
  2189. const rawValueArray = fjfpxstableData._rawValue;
  2190. const formattedData = rawValueArray.map(item => {
  2191. return {
  2192. UniqID: item.UniqID,
  2193. artificial_zp: parseFloat(item.artificial_zp) || item.artificial_zp === 0 ? parseFloat(item.artificial_zp).toFixed(3) : "0.000",
  2194. artificial_cp: parseFloat(item.artificial_cp) || item.artificial_cp === 0 ? parseFloat(item.artificial_cp).toFixed(3) : "0.000",
  2195. artificial_fj: parseFloat(item.artificial_fj) || item.artificial_fj === 0 ? parseFloat(item.artificial_fj).toFixed(3) : "0.000",
  2196. machine_zp: parseFloat(item.machine_zp) || item.machine_zp === 0 ? parseFloat(item.machine_zp).toFixed(3) : "0.000",
  2197. machine_cp: parseFloat(item.machine_cp) || item.machine_cp === 0 ? parseFloat(item.machine_cp).toFixed(3) : "0.000",
  2198. machine_fj: parseFloat(item.machine_fj) || item.machine_fj === 0 ? parseFloat(item.machine_fj).toFixed(3) : "0.000"
  2199. };
  2200. });
  2201. const editGyWastes = await editGyWaste(formattedData);
  2202. if (editGyWastes.code === 0) {
  2203. ElMessage({type: 'success',message: '更新成功'})
  2204. } else {
  2205. ElMessage({type: 'error',message: '更新失败'})
  2206. }
  2207. fjfpxslist.value = false;
  2208. };
  2209. //质检废品系数放弃按钮
  2210. const fjfpxsCancel = () => {fjfpxslist.value = false;};
  2211. // =========== 排产参数调整 ===========
  2212. const pccstzlist = ref(false);
  2213. const pccstztableData = ref([]);
  2214. const pccstzformData = reactive({cpdh: '',});
  2215. //点击【排产参数调整】按钮
  2216. const pccstzClick = () => {
  2217. if(_product_code.value == null){
  2218. pccstzlist.value = false;
  2219. ElMessage({type: 'warning',message: '请选择分类项目,再操作此功能'})
  2220. }else{
  2221. pccstzformData['cpdh'] = _product_code.value;
  2222. _pccstzgetProductGy();
  2223. pccstzlist.value = true;
  2224. }
  2225. }
  2226. //排产参数调整 回车
  2227. const pccstzProductValue = async () => {
  2228. _product_code.value = '';
  2229. _pccstzgetProductGy();
  2230. };
  2231. //排产参数调整 获取单个工艺数据(排产参数调整)
  2232. const _pccstzgetProductGy = async ()=>{
  2233. let product_code = _product_code.value || pccstzformData['cpdh'];
  2234. try {
  2235. const getProductGydata = await getProductGy({product_code:product_code});
  2236. pccstztableData.value = getProductGydata.data;
  2237. const formattedData = getProductGydata.data.map(item=>{
  2238. //原A类产能
  2239. item.old_A_power = item.A_power;
  2240. //原损耗代号
  2241. item.old_Gy0_shdh = item.Gy0_shdh;
  2242. // 原机组编号
  2243. item.old_Gy0_sbbh = item.Gy0_sbbh;
  2244. //设备编号
  2245. item.olds_Gy0_sbbh = item.Gy0_sbbh;
  2246. return item
  2247. });
  2248. } catch (error) {
  2249. console.error(error);
  2250. }
  2251. }
  2252. //排产参数调整 【执行更新按钮】
  2253. const pccstzConfirm = async () => {
  2254. const rawValueArray = pccstztableData._rawValue;
  2255. const formattedData = rawValueArray.map(item => {
  2256. return {
  2257. UniqID: item.UniqID,
  2258. A_power: item.A_power,
  2259. shdh: item.Gy0_shdh,
  2260. machine: item.Gy0_sbbh,
  2261. time: item.Gy0_辅助工时,
  2262. };
  2263. });
  2264. const editGy_edit = await editGy(formattedData);
  2265. if (editGy_edit.code === 0) {
  2266. ElMessage({type: 'success',message: '更新成功'})
  2267. } else {
  2268. ElMessage({type: 'error',message: '更新失败'})
  2269. }
  2270. pccstzlist.value = false;
  2271. };
  2272. //排产参数调整 放弃
  2273. const pccstzCancel = () => {pccstzlist.value = false;};
  2274. // =========== 核算参数调整 ===========
  2275. const hscstzlist = ref(false);
  2276. const hscstztableData = ref([]);
  2277. const hscstzformData = reactive({cpdh: '',});
  2278. //点击【核算参数调整】按钮
  2279. const hscstzClick = () => {
  2280. if(_product_code.value == null){
  2281. hscstzlist.value = false;
  2282. ElMessage({type: 'warning',message: '请选择分类项目,再操作此功能'})
  2283. }else{
  2284. hscstzformData['cpdh'] = _product_code.value;
  2285. _hscstzgetProductGy();
  2286. hscstzlist.value = true;
  2287. }
  2288. }
  2289. //排产参数调整 回车
  2290. const hscstzProductValue = async () => {
  2291. _product_code.value = '';
  2292. _hscstzgetProductGy();
  2293. };
  2294. //核算参数调整 获取单个工艺数据(排产参数调整)
  2295. const _hscstzgetProductGy = async ()=>{
  2296. let product_code = _product_code.value || hscstzformData['cpdh'];
  2297. try {
  2298. const hscstz_getProductGy = await getProductGy({product_code:product_code});
  2299. hscstztableData.value = hscstz_getProductGy.data;
  2300. const formattedData = hscstz_getProductGy.data.map(item=>{
  2301. //原难度系数
  2302. item.hscstzold_difficulty_coe = item.difficulty_coe;
  2303. //原损耗系数
  2304. item.hscstzold_loss_coe = item.loss_coe;
  2305. //原计损色数
  2306. item.hscstzold_ms_coe = item.ms_coe;
  2307. return item
  2308. });
  2309. } catch (error) {
  2310. console.error(error);
  2311. }
  2312. }
  2313. //核算参数调整 【执行按钮】
  2314. const hscstzConfirm = async () => {
  2315. const rawValueArray = hscstztableData._rawValue;
  2316. const formattedData = rawValueArray.map(item => {
  2317. return {
  2318. UniqID: item.UniqID,
  2319. difficulty_coe: item.difficulty_coe,
  2320. loss_coe: item.loss_coe,
  2321. ms_coe: item.ms_coe,
  2322. };
  2323. });
  2324. const hscstz_edit = await editGy(formattedData);
  2325. if (hscstz_edit.code === 0) {
  2326. ElMessage({type: 'success',message: '更新成功'})
  2327. } else {
  2328. ElMessage({type: 'error',message: '更新失败'})
  2329. }
  2330. hscstzlist.value = false;
  2331. };
  2332. //核算参数调整 放弃
  2333. const hscstzCancel = () => {hscstzlist.value = false;};
  2334. // =========== 左侧树侧形结构 ===========
  2335. const treeData = ref({})
  2336. const getCustomdata = async () => {
  2337. try {
  2338. const data = await getCustom()
  2339. treeData.value = data.data;
  2340. } catch (error) {
  2341. console.error('Error fetching custom data:', error);
  2342. }
  2343. }
  2344. getCustomdata()
  2345. //点击左侧树形获取列表
  2346. const tableData = reactive([])
  2347. const _custom_code = ref(null)
  2348. const handleNodeClick = async (node) => {
  2349. _custom_code.value = node.客户编号;
  2350. //清空搜索框
  2351. searchInfo.value = '';
  2352. _getProduct()
  2353. };
  2354. //印件资料
  2355. const yjtableData = reactive([])
  2356. //工艺资料
  2357. const gytableData = reactive([])
  2358. //印版资料
  2359. const ybtableData = reactive([])
  2360. //技术资料附件【暂时为空】
  2361. const jstableData = reactive([])
  2362. //全局调用产品编号
  2363. const _product_code = ref(null)
  2364. //全局调用产品名称
  2365. const _kehu_code = ref(null)
  2366. const _UniqID = ref(null)
  2367. //点击表格行 下方表格获取数据
  2368. const tableRowClick = async (row) => {
  2369. _UniqID.value = row.UniqID;
  2370. _Gd_gdbh.value = row.产品编号;
  2371. _product_code.value = row.产品编号;
  2372. _kehu_code.value = row.产品名称;
  2373. const res = await getProductData({product_code:_product_code.value});
  2374. yjtableData.splice(0, yjtableData.length, ...res.data.yjData);
  2375. gytableData.splice(0, gytableData.length, ...res.data.gyData);
  2376. ybtableData.splice(0, ybtableData.length, ...res.data.ybData);
  2377. jstableData.splice(0, jstableData.length, ...res.data.jsData);
  2378. if(yjtableData.length==0){
  2379. yjzuidahaoma.value = 1
  2380. }else{
  2381. let tmp = yjtableData.map(item => item.yj_yjno)
  2382. tmp = tmp.sort((a,b)=>b-a)
  2383. yjzuidahaoma.value = Number(tmp[0]) + 1
  2384. }
  2385. // console.log(yjzuidahaoma.value)
  2386. // yjzuidahaoma.value = yjtableData.length+1
  2387. };
  2388. //搜索查询
  2389. const searchInfo = ref('')
  2390. //点击【查询】按钮
  2391. const onSubmit = () => {
  2392. _custom_code.value = '';
  2393. _getProduct();
  2394. };
  2395. //封装获取单个产品基础数据方法
  2396. const _getProduct = async ()=>{
  2397. let params = {}
  2398. params.search = searchInfo.value;
  2399. params.custom_code = _custom_code.value;
  2400. params.limit = pageSize.value;
  2401. params.page = page.value;
  2402. console.log(params)
  2403. try {
  2404. const WorkListdata = await getProduct(params);
  2405. console.log(WorkListdata.data.data)
  2406. if(WorkListdata.data.data === []){
  2407. ElMessage({type: 'warning',message: '未查询到搜索条件'})
  2408. }else{
  2409. tableData.splice(0, tableData.length, ...WorkListdata.data.data);//表格
  2410. console.log(WorkListdata)
  2411. total.value = WorkListdata.data.total;//共多少条
  2412. }
  2413. } catch (error) {
  2414. console.error(error);
  2415. }
  2416. }
  2417. // 分页
  2418. const page = ref(1)
  2419. const total = ref(0)
  2420. const pageSize = ref(30)
  2421. const handleCurrentChange = (val) => {
  2422. page.value = val;
  2423. _getProduct();
  2424. };
  2425. // 修改页面容量 点击多少条/页
  2426. const handleSizeChange = (val) => {
  2427. pageSize.value = val;
  2428. _getProduct();
  2429. };
  2430. //=========修改产品基本资料产品表格弹窗========
  2431. let formDataTest = reactive({})
  2432. //弹窗
  2433. const dialogFormVisible = ref(false)
  2434. //双击修改弹窗
  2435. const dbclickId = ref()
  2436. const updateCompanyFunc = async (row, cols) => {
  2437. dbclickId.value = row.UniqID
  2438. formDataTest = Object.assign(formDataTest,row);
  2439. dialogFormVisible.value = true;
  2440. };
  2441. //关闭修改弹窗
  2442. const closeDialog = () => {
  2443. dialogFormVisible.value = false
  2444. }
  2445. //点击确定修改表格
  2446. const enterDialog = async () => {
  2447. const formattedData = {
  2448. '客户编号': formDataTest['客户编号'],
  2449. '客户名称': formDataTest['客户名称'],
  2450. '印品代号': formDataTest['产品编号'],
  2451. '版本号': formDataTest['版本号'],
  2452. '客户料号': formDataTest['客户料号'],
  2453. '产品名称': formDataTest['产品名称'],
  2454. '产品类别': formDataTest['产品类别'],
  2455. '计量单位': formDataTest['计量单位'],
  2456. '成品规格': formDataTest['成品规格'],
  2457. '产品备注': formDataTest['产品备注'],
  2458. };
  2459. const editProductedit = await editProduct(formattedData);
  2460. if (editProductedit.code === 0) {
  2461. const row = tableData.find(item => item.UniqID === dbclickId.value)
  2462. Object.keys(formDataTest).map( key => {
  2463. row[key] = formDataTest[key]
  2464. })
  2465. ElMessage({type: 'success',message: '更新成功'})
  2466. } else {
  2467. ElMessage({ type: 'error',message: '更新失败'})
  2468. }
  2469. dialogFormVisible.value = false;
  2470. }
  2471. //=========修改印件资料========
  2472. let yjformDataTest = reactive({})
  2473. //双击修改
  2474. const yjupdateCompanyFunc = async (row) => {
  2475. //3.1获取产品印件资料
  2476. const getProductYjInfo_edit = await getProductYjInfo({UniqId:row.UniqId})
  2477. Object.assign(yjformDataTest,getProductYjInfo_edit.data[0]);
  2478. yjdialogFormVisible.value = true;
  2479. };
  2480. // 弹窗
  2481. const yjdialogFormVisible = ref(false)
  2482. //关闭修改弹窗
  2483. const yjcloseDialog = () => {
  2484. yjdialogFormVisible.value = false
  2485. }
  2486. //点击确定修改表格
  2487. const yjenterDialog = async () => {
  2488. console.log(yjformDataTest)
  2489. const formattedData = {
  2490. UniqId: yjformDataTest['UniqId'],
  2491. yj_yjno: yjformDataTest['yj_yjno'],
  2492. yj_yjdh: yjformDataTest['yj_yjdh'],
  2493. yj_yjmc: yjformDataTest['yj_yjmc'],
  2494. yj_zzdh: yjformDataTest['yj_zzdh'],
  2495. yj_zzdh1: yjformDataTest['yj_zzdh1'],
  2496. yj_zzdh2: yjformDataTest['yj_zzdh2'],
  2497. yj_zzdh3: yjformDataTest['yj_zzdh3'],
  2498. yj_zzdh4: yjformDataTest['yj_zzdh4'],
  2499. yj_zzmc: yjformDataTest['yj_zzmc'],
  2500. yj_zzmc1: yjformDataTest['yj_zzmc1'],
  2501. yj_zzmc2: yjformDataTest['yj_zzmc2'],
  2502. yj_zzmc3: yjformDataTest['yj_zzmc3'],
  2503. yj_zzmc4: yjformDataTest['yj_zzmc4'],
  2504. yj_tlgg: yjformDataTest['yj_tlgg'],
  2505. yj_klgg: yjformDataTest['yj_klgg'],
  2506. yj_ks: yjformDataTest['yj_ks'],
  2507. yj_ls: yjformDataTest['yj_ls'],
  2508. KgToPages: yjformDataTest['KgToPages'],
  2509. yj_desc: yjformDataTest['yj_desc'],
  2510. };
  2511. //3.2修改产品印件资料
  2512. const editProductYjInfo_edit = await editProductYjInfo(formattedData);
  2513. if (editProductYjInfo_edit.code === 0) {
  2514. ElMessage({type: 'success',message: '更新成功'})
  2515. } else {
  2516. ElMessage({ type: 'error',message: '更新失败'})
  2517. }
  2518. yjdialogFormVisible.value = false;
  2519. }
  2520. //=========新增印件资料========
  2521. //全局调用工单编号
  2522. const _Gd_gdbh = ref(null)
  2523. const add_gdyjdialogFormVisible = ref(false)
  2524. const cgugdlist = ref(false);
  2525. const searchModel = ref(false)
  2526. const cpyjdh_keyword = ref('')
  2527. const getProductZhiListdata = ref()
  2528. const searchZhiModel = ref(false)
  2529. const zzdhIndex = ref(null)
  2530. const yjzuidahaoma = ref(0)
  2531. const add_yjzlformdata = reactive({
  2532. yjno: '',
  2533. yjdh: '',
  2534. yjmc: '',
  2535. zzdh: '',
  2536. zzdh1: '',
  2537. zzdh2: '',
  2538. zzdh3: '',
  2539. zzdh4: '',
  2540. zzmc: '',
  2541. zzmc1: '',
  2542. zzmc2: '',
  2543. zzmc3: '',
  2544. zzmc4: '',
  2545. cpsl: '',
  2546. sjtl: '',
  2547. pztl: '',
  2548. tlgg: '',
  2549. klgg: '',
  2550. hsgg: '',
  2551. ks: '',
  2552. ls: '',
  2553. desc: '',
  2554. 万小张: '',
  2555. KgToPages:'',
  2556. });
  2557. const getProductYjListdata = ref()
  2558. //点击新增印件资料按钮
  2559. const addcpyj_onclick = () => {
  2560. if(_Gd_gdbh.value == null){
  2561. cgugdlist.value = false;
  2562. ElMessage({type: 'warning',message: '请选择具体的工单后,再操作此功能'})
  2563. }else{
  2564. gdyj_clearFormData();
  2565. add_gdyjdialogFormVisible.value = true
  2566. }
  2567. }
  2568. //印件代号Tab或回车
  2569. // const openSearchModal = (code) => {
  2570. // if (code.key==='Tab' || code.key==='Enter') {
  2571. // setTimeout(() =>document.querySelector('#yjdhId').focus(), 50)
  2572. // _getProductYjList();
  2573. // searchModel.value = true
  2574. // }
  2575. // }
  2576. //印件代号刷新按钮
  2577. const cpsearchHandle = async (v) => {
  2578. const response = await getProductYjList({search:v});
  2579. getProductYjListdata.value = handleTreeData(response.data)
  2580. }
  2581. //印件代号 点击树状图获取点击的数据
  2582. const selectNode = (v) => {
  2583. if(v.物料名称){
  2584. add_yjzlformdata['yjdh'] = v.物料代码
  2585. add_yjzlformdata['yjmc'] = v.物料名称
  2586. searchModel.value= false
  2587. }
  2588. }
  2589. const openSearchZhiModal = (code, idx) => {
  2590. if (code.key==='Tab') {
  2591. setTimeout(() => document.querySelector('.zhi').focus(), 50)
  2592. _getProductZzList()
  2593. searchZhiModel.value = true
  2594. zzdhIndex.value = idx
  2595. }
  2596. }
  2597. const _getProductZzList = async ()=>{
  2598. try {
  2599. const response = await getProductZzList({search:''});
  2600. getProductZhiListdata.value = handleTreeData(response.data)
  2601. } catch (error) {
  2602. console.error(error);
  2603. }
  2604. }
  2605. const _getProductYjList = async ()=>{
  2606. try {
  2607. const response = await getProductYjList({search:''});
  2608. getProductYjListdata.value = handleTreeData(response.data)
  2609. } catch (error) {
  2610. console.error(error);
  2611. }
  2612. }
  2613. const handleTreeData = (treeData) => {
  2614. const data = Object.keys(treeData).map((key)=>({
  2615. label:key,
  2616. children: Object.keys(treeData[key]).map((keys)=>({
  2617. label:keys,
  2618. children:treeData[key][keys].map(item=>({
  2619. label:`${item.物料代码} ${item.物料名称}`,
  2620. 物料代码:item.物料代码,
  2621. 物料名称:item.物料名称
  2622. }))
  2623. }))
  2624. }))
  2625. return data
  2626. }
  2627. const selectZhiNode = (v) => {
  2628. if (v.children.length === 0) {
  2629. if (zzdhIndex.value == 0) {
  2630. add_yjzlformdata['zzdh'] = v.物料代码
  2631. add_yjzlformdata['zzmc'] = v.物料名称
  2632. console.log(v.物料代码)
  2633. console.log(v.物料名称)
  2634. } else {
  2635. add_yjzlformdata['zzdh' + zzdhIndex.value] = v.物料代码
  2636. add_yjzlformdata['zzmc' + zzdhIndex.value] = v.物料名称
  2637. }
  2638. searchZhiModel.value = false
  2639. }
  2640. }
  2641. //清空对象的属性值
  2642. const gdyj_clearFormData = () => {
  2643. Object.keys(add_yjzlformdata).forEach(key => {
  2644. add_yjzlformdata[key] = '';
  2645. });
  2646. add_yjzlformdata.yjno = yjzuidahaoma.value;
  2647. add_yjzlformdata['pztl'] = 0;
  2648. add_yjzlformdata['ks'] = 0;
  2649. add_yjzlformdata['ls'] = 0;
  2650. add_yjzlformdata['万小张'] = 0;
  2651. };
  2652. //印件新增确定
  2653. const add_gdyjenterDialog = () => {
  2654. console.log(add_yjzlformdata)
  2655. const formattedData = {
  2656. yj_cpdh: _Gd_gdbh.value,
  2657. yj_yjno: add_yjzlformdata['yjno'],
  2658. yj_yjdh: add_yjzlformdata['yjdh'],
  2659. yj_yjmc: add_yjzlformdata['yjmc'],
  2660. yj_zzdh: add_yjzlformdata['zzdh'],
  2661. yj_zzdh1: add_yjzlformdata['zzdh1'],
  2662. yj_zzdh2: add_yjzlformdata['zzdh2'],
  2663. yj_zzdh3: add_yjzlformdata['zzdh3'],
  2664. yj_zzdh4: add_yjzlformdata['zzdh4'],
  2665. yj_zzmc: add_yjzlformdata['zzmc'],
  2666. yj_zzmc1: add_yjzlformdata['zzmc1'],
  2667. yj_zzmc2: add_yjzlformdata['zzmc2'],
  2668. yj_zzmc3: add_yjzlformdata['zzmc3'],
  2669. yj_zzmc4: add_yjzlformdata['zzmc4'],
  2670. KgToPages:add_yjzlformdata['KgToPages'],
  2671. yj_tlgg: add_yjzlformdata['tl'],
  2672. yj_klgg: add_yjzlformdata['kl'],
  2673. yj_ks: add_yjzlformdata['ks'],
  2674. yj_ls: add_yjzlformdata['ls'],
  2675. yj_desc: add_yjzlformdata['desc'],
  2676. sys_id : _username.value,
  2677. // 万小张: add_yjzlformdata['万小张'],
  2678. };
  2679. console.log(formattedData)
  2680. const res=addProductYjInfo(formattedData)
  2681. console.log(res)
  2682. }
  2683. //印件新增取消
  2684. const add_dyjcloseDialog = () => {
  2685. add_gdyjdialogFormVisible.value = false
  2686. }
  2687. const add_yinjian_ent = (event,id1,id2,id3) => {
  2688. if (id2 === '印件代号' && event.key==='Tab' || event.key==='Enter') {
  2689. _getProductYjList(add_yjzlformdata['yjdh']);
  2690. searchModel.value = true
  2691. }
  2692. if (event.keyCode === 13 || event.keyCode === 40) { // Enter 或向下箭头
  2693. if(id3!=''){
  2694. document.getElementById(id3).focus()
  2695. }
  2696. } else if (event.keyCode === 38) { // 向上箭头
  2697. if(id1!=''){
  2698. document.getElementById(id1).focus()
  2699. }
  2700. }else if (event.keyCode === 8) { // 删除箭头
  2701. if(id1!='' && document.getElementById(id2).value==''){
  2702. document.getElementById(id1).focus()
  2703. }
  2704. console.log(document.getElementById(id2).value)
  2705. }else if (event.keyCode === 37) { // 向左箭头
  2706. if(id1!='' && document.getElementById(id2).selectionStart==0){
  2707. document.getElementById(id1).focus()
  2708. }
  2709. }else if (event.keyCode === 39) { // 向右箭头
  2710. if(id3!='' && document.getElementById(id2).selectionStart == document.getElementById(id2).value.length){
  2711. document.getElementById(id3).focus()
  2712. }
  2713. }
  2714. }
  2715. //===============新增工艺资料=======================
  2716. const addgydialogFormVisible = ref(false)
  2717. const searchCJModel = ref(false)
  2718. const searchSHModel = ref(false)
  2719. const addcpgy_onclick = () => {
  2720. addgydialogFormVisible.value=true
  2721. // add_yjdialogFormVisible.value = true
  2722. // console.log(yjtableData.length)
  2723. }
  2724. const add_gyformData = reactive({
  2725. Gy0_方案: '',
  2726. Gy0_cpdh: '',
  2727. Gy0_yjno: '',
  2728. Gy0_gxh: '',
  2729. Gy0_Ks: '',
  2730. Gy0_ls: '',
  2731. Gy0_site: '',
  2732. gy0_gxmc: '',
  2733. Add_gxmc: '',
  2734. Gy0_Ms: '',
  2735. Gy0_sbbh: '',
  2736. Gy0_shdh: '',
  2737. 工价系数: '',
  2738. 难度系数:'1.000',
  2739. 损耗率:'0.00140',
  2740. 损耗系数: '1.000',
  2741. 工序备注: '',
  2742. 质量要求: '',
  2743. 质量隐患: '',
  2744. Sys_id: _username.value,
  2745. 标准损耗2:'',
  2746. });
  2747. const getcjmc = (code) => {
  2748. // if (code.key==='Tab') {
  2749. // setTimeout(() =>document.querySelector('#yjdhId').focus(), 50)
  2750. // _getCJList();
  2751. // }
  2752. _getCJList()
  2753. }
  2754. const getCJListdata = ref([]);
  2755. const _getCJList = async () => {
  2756. try {
  2757. const response = await getDepartName({ search: '' });
  2758. getCJListdata.value = Object.keys(response.data).map(process => {
  2759. return {
  2760. label: process,
  2761. level: 1,
  2762. children: Object.keys(response.data[process]).map(department => {
  2763. return {
  2764. label: department,
  2765. level: 2,
  2766. children: response.data[process][department].map(subDepartment => {
  2767. return {
  2768. label: subDepartment,
  2769. level: 3
  2770. };
  2771. })
  2772. };
  2773. })
  2774. };
  2775. });
  2776. searchCJModel.value = true;
  2777. } catch (error) {
  2778. console.error(error);
  2779. }
  2780. };
  2781. const selectCJNode = (nodeData) => {
  2782. console.log(nodeData.level)
  2783. if(nodeData.level==2){
  2784. console.log(nodeData.label)
  2785. add_gyformData.Gy0_site=nodeData.label
  2786. }
  2787. if(nodeData.level==3){
  2788. console.log(nodeData.label)
  2789. add_gyformData.Add_gxmc=nodeData.label
  2790. searchCJModel.value = false
  2791. }
  2792. }
  2793. const getSHListdata = ref([]);
  2794. const getSH = (code) => {
  2795. _getSH()
  2796. }
  2797. const _getSH = async () => {
  2798. const response = await getProcessLoss({code:add_gyformData.标准损耗});
  2799. // getSHListdata.value = processData(response.data);
  2800. // searchSHModel.value = true
  2801. console.log(response.data[0].sys_mc)
  2802. add_gyformData.标准损耗2=response.data[0].sys_mc
  2803. console.log(getSHListdata.value);
  2804. };
  2805. // const processData = (data) => {
  2806. // const map = {};
  2807. // const tree = [];
  2808. // console.log(data)
  2809. // data.forEach(item => {
  2810. // map[item.sys_bh] = { label: `${item.sys_bh} ${item.sys_mc}`, level: 1, children: [] };
  2811. // });
  2812. // data.forEach(item => {
  2813. // if (item.Parent !== "0_") {
  2814. // map[item.Parent].children.push(map[item.sys_bh]); console.log(item) }
  2815. // // } else {
  2816. // // tree.push(map[item.sys_bh]);
  2817. // // console.log(item)
  2818. // // }
  2819. // });
  2820. // tree.forEach(item => {
  2821. // // console.log(item)
  2822. // // if (item.children.length === 0) {
  2823. // // item.children.push({ label: `${item.sys_bh} ${item.sys_mc}`, level: 2 });
  2824. // // }
  2825. // });
  2826. // return tree;
  2827. // };
  2828. //工艺新增确定
  2829. const addgyenterDialog = () => {
  2830. console.log(add_yjzlformdata)
  2831. const formattedData = {
  2832. Gy0_cpdh: _Gd_gdbh.value,
  2833. Gy0_方案: add_gyformData['Gy0_方案'],
  2834. Gy0_yjno: add_gyformData['Gy0_yjno'],
  2835. Gy0_gxh: add_gyformData['Gy0_gxh'],
  2836. Gy0_Ks: add_gyformData['Gy0_Ks'],
  2837. Gy0_ls: add_gyformData['Gy0_ls'],
  2838. Gy0_site: add_gyformData['Gy0_site'],
  2839. gy0_gxmc: add_gyformData['gy0_gxmc'],
  2840. Add_gxmc: add_gyformData['Add_gxmc'],
  2841. Gy0_Ms: add_gyformData['Gy0_Ms'],
  2842. Gy0_sbbh: add_gyformData['Gy0_sbbh'],
  2843. Gy0_shdh: add_gyformData['Gy0_shdh'],
  2844. 工价系数: add_gyformData['工价系数'],
  2845. 损耗系数: add_gyformData['损耗系数'],
  2846. 工序备注:add_gyformData['工序备注'],
  2847. 质量要求: add_gyformData['质量要求'],
  2848. 质量隐患: add_gyformData['质量隐患'],
  2849. Sys_id : _username.value,
  2850. // 万小张: add_yjzlformdata['万小张'],
  2851. };
  2852. console.log(formattedData)
  2853. const res=addProductGyInfo(formattedData)
  2854. console.log(res)
  2855. if(res.code==0){
  2856. }else{
  2857. }
  2858. addgydialogFormVisible.value = false
  2859. }
  2860. //工艺新增取消
  2861. const addgycloseDialog = () => {
  2862. addgydialogFormVisible.value = false
  2863. }
  2864. //=========新增印版资料========
  2865. const addybdialogFormVisible = ref(false)
  2866. const addybdisplay = ref(false)
  2867. const addyb_keyword = ref('')
  2868. const getYBListdata = ref([])
  2869. const addybdisplaydata = reactive({
  2870. chbm:'',
  2871. chbmNameOptions:[],
  2872. })
  2873. const add_ybformDataTest = reactive({
  2874. gongxu:'',
  2875. gongxuNameOptions:[],
  2876. })
  2877. //点击新增印版资料
  2878. const addyb_onclick = async () => {
  2879. console.log(_UniqID)
  2880. if(_UniqID.value === '' || _UniqID.value === undefined || _UniqID.value === null){
  2881. ElMessage({type: 'warning',message: '请选择具体的工单后,再操作此功能'})
  2882. return false;
  2883. }else{
  2884. const getProductYbInfo_list = await getProductYbInfo({UniqID:_UniqID.value});
  2885. console.log(getProductYbInfo_list.data.gy_data)
  2886. //默认取第一个数据
  2887. // add_ybformDataTest.gongxu = getProductYbInfo_list.data.gy_data[0]['gy'];
  2888. add_ybformDataTest.gxmc1 = getProductYbInfo_list.data['印版名称'];
  2889. addybdisplaydata.gongxuNameOptions = getProductYbInfo_list.data.gy_data.map(item=>{
  2890. return item.gy
  2891. });
  2892. addybdialogFormVisible.value = true;
  2893. }
  2894. };
  2895. //点击下拉框获取数据方案、印件、编号、工艺名称、工序名称
  2896. const ongongxufanclick = async (v) => {
  2897. add_ybformDataTest.YB_方案 = add_ybformDataTest.gongxu.split('-->')[0];
  2898. add_ybformDataTest.YB_Yjno = add_ybformDataTest.gongxu.split('-->')[1].split('-')[0];
  2899. add_ybformDataTest.YB_gxh = add_ybformDataTest.gongxu.split('-->')[1].split('-')[1].split('-')[0].split(' ')[0];
  2900. add_ybformDataTest.YB_gymc = add_ybformDataTest.gongxu.split('-->')[1].split('-')[1].split('-')[0].split(' ')[1];
  2901. add_ybformDataTest.YB_gxmc = add_ybformDataTest.gxmc1;
  2902. // addybdialogFormVisible.value = false;
  2903. };
  2904. //新增印版资料确定
  2905. const addtbenterDialog = async () => {
  2906. // console.log(add_ybformDataTest)
  2907. if(add_ybformDataTest.YB_方案 === '' || add_ybformDataTest.YB_方案 === undefined){
  2908. ElMessage({type: 'warning',message: '工艺方案不能为空'})
  2909. return false;
  2910. }
  2911. if(add_ybformDataTest.物料代码 === '' || add_ybformDataTest.物料代码 === undefined){
  2912. ElMessage({type: 'warning',message: '存货编码不能为空'})
  2913. return false;
  2914. }
  2915. const formattedData = {
  2916. YB_Cpdh: _Gd_gdbh.value,
  2917. YB_方案: add_ybformDataTest.YB_方案 ,
  2918. YB_Yjno: add_ybformDataTest.YB_Yjno,
  2919. YB_gxh: add_ybformDataTest.YB_gxh,
  2920. 存货编码: add_ybformDataTest.物料代码,
  2921. 印版名称: add_ybformDataTest.物料名称,
  2922. Sys_id: _username.value,
  2923. // 印版备注: add_ybformDataTest.ybbz,
  2924. };
  2925. console.log(formattedData)
  2926. const addProductYbInfo_add = await addProductYbInfo(formattedData);
  2927. if(addProductYbInfo_add.code === 0) {
  2928. ElMessage({type: 'success',message: '更新成功'})
  2929. addybdialogFormVisible.value = false;
  2930. } else {
  2931. ElMessage({type: 'error',message: '更新失败' })
  2932. }
  2933. };
  2934. //新增印版资料取消
  2935. const addtbcloseDialog = async () => {
  2936. addybdialogFormVisible.value = false;
  2937. };
  2938. //新增印版资料弹窗 键盘 input框跳转
  2939. const add_ybzlent = async (event,id1,id2,id3) => {
  2940. if (id2==='YB_gxmc' && event.key==='Tab' || id2 === 'YB_gxmc' && event.key=== 'Enter') {
  2941. addybdisplay.value = true
  2942. addyb_keyword.value = '';
  2943. await _getProductYbMaterialList();
  2944. }
  2945. if (event.keyCode === 13 || event.keyCode === 40) { // Enter 或向下箭头
  2946. if(id3!=''){
  2947. document.getElementById(id3).focus()
  2948. }
  2949. } else if (event.keyCode === 38) { // 向上箭头
  2950. if(id1!=''){
  2951. document.getElementById(id1).focus()
  2952. }
  2953. }else if (event.keyCode === 8) { // 删除箭头
  2954. if(id1!='' && document.getElementById(id2).value==''){
  2955. document.getElementById(id1).focus()
  2956. }
  2957. }else if (event.keyCode === 37) { // 向左箭头
  2958. if(id1!='' && document.getElementById(id2).selectionStart==0){
  2959. document.getElementById(id1).focus()
  2960. }
  2961. }else if (event.keyCode === 39) { // 向右箭头
  2962. if(id3!='' && document.getElementById(id2).selectionStart == document.getElementById(id2).value.length){
  2963. document.getElementById(id3).focus()
  2964. }
  2965. }
  2966. }
  2967. const addyb_searchHandle = async () => {
  2968. await _getProductYbMaterialDetail();
  2969. };
  2970. //3.11印版资料-获取存货名称列表
  2971. const _getProductYbMaterialList = async () => {
  2972. const getProductYbMaterialList_list = await getProductYbMaterialList();
  2973. //默认取第一个数据
  2974. addybdisplaydata.chbm = getProductYbMaterialList_list.data[0]['编号'] + "【" + getProductYbMaterialList_list.data[0]['名称'] + "】";
  2975. addybdisplaydata.chbmNameOptions = getProductYbMaterialList_list.data.map(item=>{
  2976. return `${item.编号}【${item.名称}】`
  2977. });
  2978. };
  2979. //点击下拉框获取输入框的值
  2980. const onybzlfanclick = async () => {
  2981. await _getProductYbMaterialDetail();
  2982. }
  2983. const addyb_selectSHNode = async (v) => {
  2984. console.log(v.物料代码)
  2985. if(v.物料名称){
  2986. add_ybformDataTest.物料代码 = v.物料代码
  2987. add_ybformDataTest.物料名称 = v.物料名称
  2988. addybdisplay.value = false
  2989. }
  2990. }
  2991. //点击下拉框获取输入框的值
  2992. const _getProductYbMaterialDetail = async () => {
  2993. const code = addybdisplaydata.chbm.split('【')[0];
  2994. console.log(code)
  2995. console.log(addyb_keyword.value)
  2996. const getProductYbMaterialDetail_list = await getProductYbMaterialDetail({code:code,search:addyb_keyword.value});
  2997. getYBListdata.value = Object.keys(getProductYbMaterialDetail_list.data).map((key)=>({
  2998. label:key,
  2999. children: Object.keys(getProductYbMaterialDetail_list.data[key]).map((keys)=>({
  3000. label:keys,
  3001. children:Object.keys(getProductYbMaterialDetail_list.data[key][keys]).map((keyss)=>({
  3002. label:keyss,
  3003. children:getProductYbMaterialDetail_list.data[key][keys][keyss].map(item=>({
  3004. label:`${item.物料代码}/${item.物料名称}/${item.规格}`,
  3005. 物料代码:item.物料代码,
  3006. 物料名称:item.物料名称,
  3007. }))
  3008. }))
  3009. }))
  3010. }))
  3011. }
  3012. //=========修改工艺资料========
  3013. let gyformDataTest = reactive({})
  3014. //双击修改
  3015. const gyupdateCompanyFunc = async (row) => {
  3016. //3.6工艺资料-获取产品工艺资料
  3017. const getProductGyInfo_edit = await getProductGyInfo({UniqID:row.UniqID})
  3018. console.log(getProductGyInfo_edit)
  3019. Object.assign(gyformDataTest,getProductGyInfo_edit.data);
  3020. gydialogFormVisible.value = true;
  3021. };
  3022. //默认关闭弹窗
  3023. const gydialogFormVisible = ref(false)
  3024. //工艺修改确定
  3025. const gyenterDialog = () => {
  3026. // console.log(gyformDataTest)
  3027. const formattedData = {
  3028. Gy0_方案: gyformDataTest['Gy0_方案'],
  3029. Gy0_yjno: gyformDataTest['Gy0_yjno'],
  3030. Gy0_gxh: gyformDataTest['Gy0_gxh'],
  3031. Gy0_Ks: gyformDataTest['Gy0_Ks'],
  3032. Gy0_ls: gyformDataTest['Gy0_ls'],
  3033. Gy0_site: gyformDataTest['Gy0_site'],
  3034. gy0_gxmc: gyformDataTest['gy0_gxmc'],
  3035. Add_gxmc: gyformDataTest['Add_gxmc'],
  3036. Gy0_Ms: gyformDataTest['Gy0_Ms'],
  3037. Gy0_sbbh: gyformDataTest['Gy0_sbbh'],
  3038. 工价系数: gyformDataTest['工价系数'],
  3039. Gy0_shdh: gyformDataTest['Gy0_shdh'],
  3040. sys_mc: gyformDataTest['sys_mc'],
  3041. sys_rate0: gyformDataTest['sys_rate0'],
  3042. sys_rate1: gyformDataTest['sys_rate1'],
  3043. 损耗系数: gyformDataTest['损耗系数'],
  3044. 工序备注: gyformDataTest['工序备注'],
  3045. 质量要求: gyformDataTest['质量要求'],
  3046. 质量隐患: gyformDataTest['质量隐患'],
  3047. };
  3048. console.log(formattedData)
  3049. // const editdata = await 修改工艺接口函数(formattedData);
  3050. // if (editdata.code === 0) {
  3051. // ElMessage({type: 'success',message: '更新成功'})
  3052. // } else {
  3053. // ElMessage({ type: 'error',message: '更新失败'})
  3054. // }
  3055. // gydialogFormVisible.value = true
  3056. }
  3057. //关闭修改弹窗
  3058. const gycloseDialog = () => {
  3059. gydialogFormVisible.value = false
  3060. }
  3061. //=========印版修改========
  3062. let ybformDataTest = reactive({})
  3063. //双击修改
  3064. const ybupdateCompanyFunc = async (row) => {
  3065. console.log(ybformDataTest)
  3066. console.log(row)
  3067. Object.assign(ybformDataTest,row);
  3068. // ybformDataTest = row;
  3069. ybdialogFormVisible.value = true;
  3070. };
  3071. // 弹窗
  3072. const ybdialogFormVisible = ref(false)
  3073. // 打开修改弹窗
  3074. const ybenterDialog = () => {
  3075. console.log(ybformDataTest)
  3076. const formattedData = {
  3077. '工序方案': ybformDataTest['YB_方案'],
  3078. '印件号': ybformDataTest['YB_Yjno'],
  3079. '存货编码': ybformDataTest['存货编码'],
  3080. '印版名称': ybformDataTest['印版名称'],
  3081. };
  3082. console.log(formattedData)
  3083. // const editdata = await 修改印版接口函数(formattedData);
  3084. // if (editdata.code === 0) {
  3085. // ElMessage({type: 'success',message: '更新成功'})
  3086. // } else {
  3087. // ElMessage({ type: 'error',message: '更新失败'})
  3088. // }
  3089. // ybdialogFormVisible.value = true
  3090. }
  3091. // 关闭弹窗
  3092. const ybcloseDialog = () => {
  3093. ybdialogFormVisible.value = false
  3094. }
  3095. //===========改变按钮中表格修改背景颜色=========
  3096. //计损色数修正表格修改颜色 :cell-style="setInputCellStyle"
  3097. const setInputCellStyle = (data) => {
  3098. const jiSun = ['ms_coe', 'Gy0_Ks', 'Gy0_ls', 'Add_gxmc', 'remark']
  3099. let style = { padding: 0 }
  3100. if (data.column?.property && jiSun.includes(data.column?.property)) {
  3101. Object.assign(style, { backgroundColor: '#42b983'})
  3102. }
  3103. return style
  3104. }
  3105. //键盘 input框跳转
  3106. const ent = (event,id1,id2,id3) => {
  3107. if (event.keyCode === 13 || event.keyCode === 40) { // Enter 或向下箭头
  3108. if(id3!=''){
  3109. document.getElementById(id3).focus()
  3110. }
  3111. } else if (event.keyCode === 38) { // 向上箭头
  3112. if(id1!=''){
  3113. document.getElementById(id1).focus()
  3114. }
  3115. }else if (event.keyCode === 8) { // 删除箭头
  3116. if(id1!='' && document.getElementById(id2).value==''){
  3117. document.getElementById(id1).focus()
  3118. }
  3119. console.log(document.getElementById(id2).value)
  3120. }else if (event.keyCode === 37) { // 向左箭头
  3121. if(id1!='' && document.getElementById(id2).selectionStart==0){
  3122. document.getElementById(id1).focus()
  3123. }
  3124. }else if (event.keyCode === 39) { // 向右箭头
  3125. if(id3!='' && document.getElementById(id2).selectionStart == document.getElementById(id2).value.length){
  3126. document.getElementById(id3).focus()
  3127. }
  3128. }
  3129. }
  3130. // const _yjdh = ref(null);
  3131. const yj_ent = (event,id1,id2,id3) => {
  3132. // if(event.keyCode == 13){
  3133. // if(yjformDataTest['yj_yjdh']){
  3134. // _getProductDatat()
  3135. // }
  3136. // }
  3137. if ( event.keyCode === 40) { // Enter 或向下箭头
  3138. if(id3!=''){
  3139. document.getElementById(id3).focus()
  3140. }
  3141. } else if (event.keyCode === 38) { // 向上箭头
  3142. if(id1!=''){
  3143. document.getElementById(id1).focus()
  3144. }
  3145. }else if (event.keyCode === 8) { // 删除箭头
  3146. if(id1!='' && document.getElementById(id2).value==''){
  3147. document.getElementById(id1).focus()
  3148. }
  3149. console.log(document.getElementById(id2).value)
  3150. }else if (event.keyCode === 37) { // 向左箭头
  3151. if(id1!='' && document.getElementById(id2).selectionStart==0){
  3152. document.getElementById(id1).focus()
  3153. }
  3154. }else if (event.keyCode === 39) { // 向右箭头
  3155. if(id3!='' && document.getElementById(id2).selectionStart == document.getElementById(id2).value.length){
  3156. document.getElementById(id3).focus()
  3157. }
  3158. }
  3159. }
  3160. //表格文字变色
  3161. const tableDataCellClass = ({row, column, rowIndex, columnIndex}) =>{
  3162. if (column.property === 'gyData' || column.property === 'yjData') {
  3163. return 'plan-usage-low';
  3164. }
  3165. }
  3166. //点击技术附件按钮
  3167. const jsfjClick = () => {
  3168. if(_Gd_gdbh.value == null){
  3169. cgugdlist.value = false;
  3170. ElMessage({type: 'warning',message: '请选择具体的工单后,再操作此功能'})
  3171. }else{
  3172. initJsfjformdata();
  3173. jsfjformdata.value.关联产品 = _Gd_gdbh.value
  3174. jsfjdialogFormVisible.value = true
  3175. }
  3176. }
  3177. //技术附件弹窗
  3178. const jsfjdialogFormVisible = ref(false)
  3179. const jsfjformdata = ref({
  3180. sys_id: _username.value,
  3181. 序号: '',
  3182. 附件备注: '',
  3183. 附件内容: '',
  3184. 附件类型: '',
  3185. 适用工序: '',
  3186. 关联产品: '',
  3187. });
  3188. //技术附件弹窗取消
  3189. const initJsfjformdata = () => {
  3190. jsfjformdata.value = {
  3191. sys_id: _username.value,
  3192. 序号: '',
  3193. 附件备注: '',
  3194. 附件内容: '',
  3195. 附件类型: '',
  3196. 适用工序: '',
  3197. 关联产品: '',
  3198. }
  3199. }
  3200. //技术附件弹窗取消
  3201. const jsfjcloseDialog = () => {
  3202. jsfjdialogFormVisible.value = false
  3203. }
  3204. const uploadExcel = (event) =>{
  3205. const files = event.target.files;
  3206. let suffixArr = name.split("."), suffix = suffixArr[suffixArr.length-1];
  3207. // if(suffix!="xlsx"){
  3208. // alert("Currently only supports the import of xlsx files");
  3209. // return;
  3210. // }
  3211. jsfjformdata.value.附件内容 = files[0]
  3212. jsfjformdata.value.附件类型 = 'XLSX'
  3213. }
  3214. const yulan = (event) =>{
  3215. if(!jsfjformdata.value.附件内容) return
  3216. $.getScript('/luckysheet/plugins/js/plugin.js', () => {
  3217. $script('/luckysheet/luckysheet.umd.js', () => {
  3218. luckyexcelVisible.value = true
  3219. LuckyExcel.transformExcelToLucky(jsfjformdata.value.附件内容, function(exportJson, luckysheetfile){
  3220. if(exportJson.sheets==null || exportJson.sheets.length==0){
  3221. alert("Failed to read the content of the excel file, currently does not support xls files!");
  3222. return;
  3223. }
  3224. if(luckyExcel) luckyExcel.destroy();
  3225. luckysheet.create({
  3226. container: 'luckyexcel', //容器的ID
  3227. data: exportJson.sheets,
  3228. title: exportJson.info.name, // 工作簿名称
  3229. lang: "zh", // 设定表格语言 国际化设置,允许设置表格的语言,支持中文("zh")和英文("en")
  3230. showtoolbar: false, // 是否显示工具栏
  3231. showinfobar: false, // 是否显示顶部信息栏
  3232. allowEdit: false, // 是否允许前台编辑
  3233. enableAddRow: false, // 允许增加行
  3234. enableAddCol: false, // 允许增加列
  3235. userInfo: false, // 右上角的用户信息展示样式
  3236. showRowBar: false, // 是否显示行号区域
  3237. showColumnBar: false, // 是否显示列号区域
  3238. sheetFormulaBar: false, // 是否显示公式栏
  3239. enableAddBackTop: false,//返回头部按钮
  3240. });
  3241. luckyExcel = luckysheet;
  3242. })
  3243. })
  3244. })
  3245. $('head').append($('<link rel="stylesheet" type="text/css" />').attr('href', '/luckysheet/plugins/css/pluginsCss.css'));
  3246. $('head').append($('<link rel="stylesheet" type="text/css" />').attr('href', '/luckysheet/plugins/plugins.css'));
  3247. $('head').append($('<link rel="stylesheet" type="text/css" />').attr('href', '/luckysheet/css/luckysheet.css'));
  3248. $('head').append($('<link rel="stylesheet" type="text/css" />').attr('href', '/luckysheet/assets/iconfont/iconfont.css'));
  3249. }
  3250. const jsfj_del = (row) =>{
  3251. ElMessageBox.confirm('确定要删除吗?', '提示', {
  3252. confirmButtonText: '确定',
  3253. cancelButtonText: '取消',
  3254. type: 'warning'
  3255. }).then(() => {
  3256. annexDel({'UniqId':row.UniqId,'cpdh':_Gd_gdbh.value}).then(response => {
  3257. if(response.code==0){
  3258. ElMessage({
  3259. type: 'success',
  3260. message: '删除成功',
  3261. })
  3262. let row = {
  3263. 'UniqID':_UniqID.value,
  3264. '产品编号':_product_code.value,
  3265. '产品名称':_kehu_code.value,
  3266. }
  3267. tableRowClick (row)
  3268. }
  3269. })
  3270. })
  3271. }
  3272. //技术附件弹窗确定
  3273. const jsfjenterDialog = () => {
  3274. if(jsfjformdata.value.序号==''){
  3275. ElMessage({
  3276. type: 'error',
  3277. message: '请填写序号'
  3278. });
  3279. return;
  3280. }
  3281. if(jsfjformdata.value.附件备注==''){
  3282. ElMessage({
  3283. type: 'error',
  3284. message: '请填写附件备注'
  3285. });
  3286. return;
  3287. }
  3288. if(jsfjformdata.value.附件内容==''){
  3289. ElMessage({
  3290. type: 'error',
  3291. message: '请上传文件'
  3292. });
  3293. return;
  3294. }
  3295. if(jsfjformdata.value.适用工序==''){
  3296. ElMessage({
  3297. type: 'error',
  3298. message: '请填写适用工序'
  3299. });
  3300. return;
  3301. }
  3302. if(jsfjformdata.value.关联产品==''){
  3303. ElMessage({
  3304. type: 'error',
  3305. message: '请填写关联产品'
  3306. });
  3307. return;
  3308. }
  3309. let fr = new FileReader();
  3310. fr.readAsDataURL(jsfjformdata.value.附件内容);
  3311. fr.onload = function () {
  3312. const restoredData = new FormData();
  3313. restoredData.append('sys_id', jsfjformdata.value.sys_id);
  3314. restoredData.append('序号', jsfjformdata.value.序号);
  3315. restoredData.append('附件备注', jsfjformdata.value.附件备注);
  3316. restoredData.append('附件内容', fr.result);
  3317. restoredData.append('附件类型', jsfjformdata.value.附件类型);
  3318. restoredData.append('适用工序', jsfjformdata.value.适用工序);
  3319. restoredData.append('关联产品', jsfjformdata.value.关联产品);
  3320. annexAdd(restoredData).then(response => {
  3321. if(response.code==0){
  3322. ElMessage({
  3323. type: 'success',
  3324. message: '新增成功',
  3325. })
  3326. jsfjdialogFormVisible.value = false
  3327. let row = {
  3328. 'UniqID':_UniqID.value,
  3329. '产品编号':_product_code.value,
  3330. '产品名称':_kehu_code.value,
  3331. }
  3332. tableRowClick (row)
  3333. }
  3334. })
  3335. }
  3336. }
  3337. //技术资料excel展示
  3338. const ExcelShow = (row) =>{
  3339. if(!row.附件内容) return
  3340. $.getScript('/luckysheet/plugins/js/plugin.js', () => {
  3341. $script('/luckysheet/luckysheet.umd.js', () => {
  3342. console.log(row.附件内容)
  3343. function dataURLtoBlob(dataUrl) {
  3344. const byteString = atob(dataUrl.split(',')[1]);
  3345. const ab = new ArrayBuffer(byteString.length);
  3346. const ia = new Uint8Array(ab);
  3347. for (let i = 0; i < byteString.length; i++) {
  3348. ia[i] = byteString.charCodeAt(i);
  3349. }
  3350. return new Blob([ab], { type: 'application/octet-stream' });
  3351. }
  3352. const blob = dataURLtoBlob(row.附件内容);
  3353. luckyexcelVisible.value = true
  3354. LuckyExcel.transformExcelToLucky(blob, function(exportJson, luckysheetfile){
  3355. if(exportJson.sheets==null || exportJson.sheets.length==0){
  3356. alert("Failed to read the content of the excel file, currently does not support xls files!");
  3357. return;
  3358. }
  3359. if(luckyExcel) luckyExcel.destroy();
  3360. luckysheet.create({
  3361. container: 'luckyexcel', //容器的ID
  3362. data: exportJson.sheets,
  3363. title: exportJson.info.name, // 工作簿名称
  3364. lang: "zh", // 设定表格语言 国际化设置,允许设置表格的语言,支持中文("zh")和英文("en")
  3365. showtoolbar: false, // 是否显示工具栏
  3366. showinfobar: false, // 是否显示顶部信息栏
  3367. allowEdit: false, // 是否允许前台编辑
  3368. enableAddRow: false, // 允许增加行
  3369. enableAddCol: false, // 允许增加列
  3370. userInfo: false, // 右上角的用户信息展示样式
  3371. showRowBar: false, // 是否显示行号区域
  3372. showColumnBar: false, // 是否显示列号区域
  3373. sheetFormulaBar: false, // 是否显示公式栏
  3374. enableAddBackTop: false,//返回头部按钮
  3375. });
  3376. luckyExcel = luckysheet;
  3377. })
  3378. })
  3379. })
  3380. $('head').append($('<link rel="stylesheet" type="text/css" />').attr('href', '/luckysheet/plugins/css/pluginsCss.css'));
  3381. $('head').append($('<link rel="stylesheet" type="text/css" />').attr('href', '/luckysheet/plugins/plugins.css'));
  3382. $('head').append($('<link rel="stylesheet" type="text/css" />').attr('href', '/luckysheet/css/luckysheet.css'));
  3383. $('head').append($('<link rel="stylesheet" type="text/css" />').attr('href', '/luckysheet/assets/iconfont/iconfont.css'));
  3384. }
  3385. let luckyExcel = null
  3386. const luckyexcelVisible = ref(false)
  3387. const luckyexcelCloseDialog = () => {
  3388. luckyexcelVisible.value = false
  3389. }
  3390. /**
  3391. * 只读版luckyExcel 创建
  3392. */
  3393. const createROLuckyExcel = (files) => {
  3394. LuckyExcel.transformExcelToLucky(files, function (exportJson, luckysheetfile) {
  3395. if (exportJson.sheets == null || exportJson.sheets.length == 0) {
  3396. alert("Failed to read the content of the excel file, currently does not support xls files!");
  3397. return;
  3398. }
  3399. if(luckyExcel) luckyExcel.destroy();
  3400. nextTick(() => {
  3401. $(function () {
  3402. luckysheet.create({
  3403. container: 'luckyexcel', //容器的ID
  3404. data: exportJson.sheets,
  3405. title: exportJson.info.name, // 工作簿名称
  3406. lang: "zh", // 设定表格语言 国际化设置,允许设置表格的语言,支持中文("zh")和英文("en")
  3407. // allowCopy: false, // 是否允许拷贝
  3408. showtoolbar: false, // 是否显示工具栏
  3409. showinfobar: false, // 是否显示顶部信息栏
  3410. // showsheetbar: false, // 是否显示底部sheet页按钮
  3411. // showstatisticBar: false, // 是否显示底部计数栏
  3412. // sheetBottomConfig: false, // sheet页下方的添加行按钮和回到顶部按钮配置
  3413. allowEdit: false, // 是否允许前台编辑
  3414. enableAddRow: false, // 允许增加行
  3415. enableAddCol: false, // 允许增加列
  3416. userInfo: false, // 右上角的用户信息展示样式
  3417. showRowBar: false, // 是否显示行号区域
  3418. showColumnBar: false, // 是否显示列号区域
  3419. sheetFormulaBar: false, // 是否显示公式栏
  3420. enableAddBackTop: false,//返回头部按钮
  3421. // rowHeaderWidth: 0,//纵坐标
  3422. // columnHeaderHeight: 0,//横坐标
  3423. // showstatisticBarConfig: {
  3424. // count:false,
  3425. // view:false,
  3426. // zoom:false,
  3427. // },
  3428. // showsheetbarConfig: {
  3429. // add: false, //新增sheet
  3430. // menu: false, //sheet管理菜单
  3431. // sheet: false, //sheet页显示
  3432. // },
  3433. // hook: {
  3434. // cellMousedown:this.cellMousedown,//绑定鼠标事件
  3435. // },
  3436. // forceCalculation: true,//强制计算公式
  3437. });
  3438. luckyExcel = luckysheet;
  3439. });
  3440. });
  3441. })
  3442. }
  3443. </script>
  3444. <style scoped>
  3445. :deep(.plan-usage-low div) {
  3446. color: red !important;
  3447. }
  3448. .JKWTree-container {
  3449. display: flex;
  3450. }
  3451. .JKWTree-tree {
  3452. width: 300px;
  3453. background-color: #fff;
  3454. /*background-color: rgba(241, 224, 224, 0.99);*/
  3455. padding: 10px;
  3456. margin-right: 20px;
  3457. }
  3458. .JKWTree-tree h3 {
  3459. font-size: 15px;
  3460. font-weight: 700;
  3461. margin: 10px 0;
  3462. }
  3463. .JKWTree-content {
  3464. flex: 1;
  3465. }
  3466. :deep(.el-table__body .warning-row) {
  3467. background: #FFFF80 !important;
  3468. }
  3469. /* 选中某行时的背景色 */
  3470. :deep(.el-table__body tr.current-row) > td {
  3471. background: #ff80ff !important;
  3472. }
  3473. </style>
  3474. <style scoped>
  3475. :deep(.el-table td .cell) {
  3476. line-height: 20px !important;
  3477. }
  3478. :deep(.el-tabs__header){
  3479. margin-bottom: 0;
  3480. }
  3481. .search{
  3482. margin-left: 0px !important;
  3483. margin-right: 10px !important;
  3484. }
  3485. .bt{
  3486. margin-left: 2px !important;
  3487. padding: 3px !important;
  3488. font-size: 12px;
  3489. }
  3490. .el-tabs__header{
  3491. margin: 0px !important;
  3492. }
  3493. .gva-table-box{
  3494. padding: 0px !important;
  3495. }
  3496. .mab{
  3497. margin-bottom: 5px;
  3498. }
  3499. </style>