chanpinziliao.vue 170 KB

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