MachineDocuments.vue 42 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041051061071081091101111121131141151161171181191201211221231241251261271281291301311321331341351361371381391401411421431441451461471481491501511521531541551561571581591601611621631641651661671681691701711721731741751761771781791801811821831841851861871881891901911921931941951961971981992002012022032042052062072082092102112122132142152162172182192202212222232242252262272282292302312322332342352362372382392402412422432442452462472482492502512522532542552562572582592602612622632642652662672682692702712722732742752762772782792802812822832842852862872882892902912922932942952962972982993003013023033043053063073083093103113123133143153163173183193203213223233243253263273283293303313323333343353363373383393403413423433443453463473483493503513523533543553563573583593603613623633643653663673683693703713723733743753763773783793803813823833843853863873883893903913923933943953963973983994004014024034044054064074084094104114124134144154164174184194204214224234244254264274284294304314324334344354364374384394404414424434444454464474484494504514524534544554564574584594604614624634644654664674684694704714724734744754764774784794804814824834844854864874884894904914924934944954964974984995005015025035045055065075085095105115125135145155165175185195205215225235245255265275285295305315325335345355365375385395405415425435445455465475485495505515525535545555565575585595605615625635645655665675685695705715725735745755765775785795805815825835845855865875885895905915925935945955965975985996006016026036046056066076086096106116126136146156166176186196206216226236246256266276286296306316326336346356366376386396406416426436446456466476486496506516526536546556566576586596606616626636646656666676686696706716726736746756766776786796806816826836846856866876886896906916926936946956966976986997007017027037047057067077087097107117127137147157167177187197207217227237247257267277287297307317327337347357367377387397407417427437447457467477487497507517527537547557567577587597607617627637647657667677687697707717727737747757767777787797807817827837847857867877887897907917927937947957967977987998008018028038048058068078088098108118128138148158168178188198208218228238248258268278288298308318328338348358368378388398408418428438448458468478488498508518528538548558568578588598608618628638648658668678688698708718728738748758768778788798808818828838848858868878888898908918928938948958968978988999009019029039049059069079089099109119129139149159169179189199209219229239249259269279289299309319329339349359369379389399409419429439449459469479489499509519529539549559569579589599609619629639649659669679689699709719729739749759769779789799809819829839849859869879889899909919929939949959969979989991000100110021003100410051006100710081009101010111012101310141015101610171018101910201021102210231024102510261027102810291030103110321033103410351036103710381039104010411042104310441045104610471048104910501051105210531054105510561057105810591060106110621063106410651066106710681069107010711072107310741075107610771078107910801081108210831084108510861087108810891090109110921093109410951096109710981099110011011102110311041105110611071108110911101111111211131114111511161117111811191120112111221123112411251126112711281129113011311132113311341135113611371138113911401141114211431144114511461147114811491150115111521153115411551156115711581159116011611162116311641165116611671168116911701171117211731174117511761177117811791180118111821183118411851186118711881189119011911192119311941195119611971198119912001201120212031204
  1. <template>
  2. <div>
  3. <!-- 左侧树形结构 -->
  4. <el-container>
  5. <el-aside width="250px">
  6. <div class="JKWTree-tree">
  7. <h3>机器检验计件单据维护</h3>
  8. <el-tree :data="treeData" :props="defaultProps" highlight-current="true"
  9. @node-click="handleNodeClick"></el-tree>
  10. </div>
  11. </el-aside>
  12. <el-container>
  13. <el-main>
  14. <!-- 按钮区域 -->
  15. <div class="gva-table-box">
  16. <div class="gva-btn-list">
  17. <el-row :span="6">
  18. <el-input v-model="positionvalue" placeholder="输入工单编号或产品名称" />
  19. </el-row>
  20. <el-button type="primary" :icon="Search" @click="onSearch">搜索</el-button>
  21. <el-button type="primary" :icon="Refresh" @click="onRefresh">刷新质检系数</el-button>
  22. <el-button type="primary" @click="onCountByGdbh">按工单显示</el-button>
  23. <el-button type="primary" :icon="Refresh" @click="onAdd">新增</el-button>
  24. <el-button type="primary" :icon="Refresh" @click="onDel">删除</el-button>
  25. <div style="margin-left: auto;">
  26. <el-button type="primary" :icon="Download" @click="exportExcel">导出到Excel</el-button>
  27. </div>
  28. </div>
  29. <!-- 数据展示 -->
  30. <el-table ref="multipleTable" style="width: 100%" tooltip-effect="dark" :data="tableData" row-key="ID"
  31. highlight-current-row="true" border @selection-change="handleSelectionChange"
  32. :show-overflow-tooltip="true" @row-dblclick="doubleClick">
  33. <el-table-column type="selection" width="55" />
  34. <el-table-column align="left" label="分类" prop="sczl_单据类型" width="120"/>
  35. <el-table-column align="left" label="工单印件" prop="combinedProp"width="340"/>
  36. <el-table-column align="left" label="印件工序" prop="combinedProp2" width="220"/>
  37. <el-table-column align="left" label="机台编号" prop="sczl_jtbh" width="120"/>
  38. <el-table-column align="left" label="机台" prop="sczl_jtbh" width="120"/>
  39. <el-table-column align="left" label="日期" prop="sczl_rq" width="120"/>
  40. <el-table-column align="left" label="计件产量" prop="sczl_cl" width="120"/>
  41. <el-table-column align="left" label="检验类别" prop="sczl_检验类别" width="120"/>
  42. <el-table-column align="left" label="废品率系数" prop="sczl_废品率系数" width="120"/>
  43. <el-table-column align="left" label="日定额" prop="日定额" width="120"/>
  44. <el-table-column align="left" label="员工姓名1" prop="sczl_bh1_name" width="120"/>
  45. <el-table-column align="left" label="员工姓名2" prop="sczl_bh2_name"width="120" />
  46. <el-table-column align="left" label="员工姓名3" prop="sczl_bh3_name" width="120"/>
  47. <el-table-column align="left" label="员工姓名4" prop="sczl_bh4_name"width="120" />
  48. <el-table-column align="left" label="班组代号" prop="sczl_bzdh" width="120"/>
  49. <el-table-column align="left" label="千件工价" prop="千件工价" width="120"/>
  50. <el-table-column align="left" label="日通电工时" prop="sczl_设备运行工时" width="120"/>
  51. <el-table-column align="left" label="流程单备注" prop="qczl_NumDesc" width="120"/>
  52. <el-table-column align="left" label="创建用户" prop="sys_id" width="120"/>
  53. <el-table-column align="left" label="创建时间" prop="sys_rq" width="160"/>
  54. <el-table-column align="left" label="修改时间" prop="mod_rq" width="160"/>
  55. <el-table-column align="left" label="UNIQID" prop="UniqId" width="120"/>
  56. </el-table>
  57. <!-- 分页 -->
  58. <div class="gva-pagination">
  59. <el-pagination layout="total, sizes, prev, pager, next, jumper" v-model:current-page="page"
  60. v-model:page-size="limit"
  61. :page-sizes="[10, 30, 50, 100]" :total="total" @current-change="handleCurrentChange"
  62. @size-change="handleSizeChange" />
  63. </div>
  64. </div>
  65. <!-- 弹出框 -->
  66. <el-dialog v-model="dialogFormVisible" :before-close="closeDialog" :title="type === 'create' ? '添加' : '修改'"
  67. destroy-on-close width="1200px">
  68. <!-- <el-scrollbar height="500px"> -->
  69. <el-form :model="formData" label-position="left" ref="elFormRef" :rules="rule">
  70. <el-row :gutter="20">
  71. <el-col :span="4">
  72. <el-form-item label="日期" prop="id">
  73. <el-input v-model="formData.sczl_rq" id="日期" @keydown="ent($event, '其他备注', '日期', '组别')" :clearable="true" placeholder="" />
  74. </el-form-item>
  75. </el-col>
  76. <el-col :span="6">
  77. <el-form-item label="组别" prop="name">
  78. <el-row :gutter="20">
  79. <el-col :span="12">
  80. <el-input v-model="formData.sczl_bzdh" id="组别" @keydown="ent($event, '日期', '组别', '工单编号')" :clearable="true" placeholder="" />
  81. </el-col>
  82. </el-row>
  83. </el-form-item>
  84. </el-col>
  85. </el-row>
  86. <el-row :gutter="20">
  87. <el-col :span="4">
  88. <el-form-item label="工单编号" prop="id">
  89. <el-input v-model="formData.sczl_gdbh"id="工单编号" @keydown="ent($event, '日期', '工单编号', 'sczl_yjgx')" @keyup.enter.native="getMachineGxMcsubmit" :clearable="true" placeholder="" />
  90. </el-form-item>
  91. </el-col>
  92. <el-col :span="20">
  93. <!-- <el-form-item label="组别" prop="name"> -->
  94. <el-row :gutter="20">
  95. <el-col :span="5">
  96. <el-input v-model="formData.sczl_yjgx" id="sczl_yjgx" @keydown="ent($event, '工单编号', 'sczl_yjgx', 'sczl_gxmc')" :clearable="true" placeholder="" />
  97. </el-col>
  98. <el-col :span="5">
  99. <el-input v-model="formData.sczl_gxmc" id="sczl_gxmc" @keydown="ent($event, 'sczl_yjgx', 'sczl_gxmc', 'yj_yjmc')" :clearable="true" placeholder="" />
  100. </el-col>
  101. <el-col :span="5">
  102. <el-input v-model="formData.yj_yjmc" id="yj_yjmc" @keydown="ent($event, 'sczl_gxmc', 'yj_yjmc', '机台编号')" :clearable="true" placeholder="" />
  103. </el-col>
  104. </el-row>
  105. <!-- </el-form-item> -->
  106. </el-col>
  107. </el-row>
  108. <el-row :gutter="20">
  109. <el-col :span="4">
  110. <el-form-item label="机台编号" prop="id">
  111. <el-input v-model="formData.sczl_jtbh" id="机台编号" @keydown="ent($event, 'yj_yjmc', '机台编号', '检验类型')" @keyup.enter.native="getJtbhsubmit" :clearable="true" placeholder="" />
  112. </el-form-item>
  113. </el-col>
  114. <el-col :span="6">
  115. <el-row :gutter="20">
  116. <el-col :span="12">
  117. <el-form-item label="检验类型" prop="id">
  118. <el-input v-model="formData.sczl_单据类型" id="检验类型" @keydown="ent($event, '机台编号', '检验类型', '检验类别')" :clearable="true" placeholder="" />
  119. </el-form-item>
  120. </el-col>
  121. </el-row>
  122. </el-col>
  123. <el-col :span="3">
  124. <el-form-item label="检验类别" prop="name">
  125. <el-input v-model="formData.sczl_检验类别" id="检验类别" @keydown="ent($event, '检验类型', '检验类别', '废品率系数')" :clearable="true" placeholder="" />
  126. </el-form-item>
  127. </el-col>
  128. <el-col :span="3">
  129. <el-form-item label="废品率系数" prop="name">
  130. <el-input v-model="formData.sczl_废品率系数" id="废品率系数" @keydown="ent($event, '检验类别', '废品率系数', '计件箱数')" :clearable="true" placeholder="" />
  131. </el-form-item>
  132. </el-col>
  133. </el-row>
  134. <el-row :gutter="20">
  135. <el-col :span="4">
  136. <el-form-item label="计件箱数" prop="id">
  137. <el-input v-model="formData.sczl_cl" id="计件箱数" @keydown="ent($event, '废品率系数', '计件箱数', '每箱数量')" :clearable="true" placeholder="" />
  138. </el-form-item>
  139. </el-col>
  140. <el-col :span="3">
  141. <el-form-item label="每箱数量" prop="name">
  142. <el-input v-model="formData.sczl_PgCl" id="每箱数量" @keydown="ent($event, '计件箱数', '每箱数量', '定额代号')" :clearable="true" placeholder="" />
  143. </el-form-item>
  144. </el-col>
  145. <el-col :span="3">
  146. <el-form-item label="定额代号" prop="name">
  147. <el-input v-model="formData.sczl_dedh" @keyup.enter.native="getMachineDedhsubmit" id="定额代号" @keydown="ent($event, '计件箱数', '定额代号', '流程单号')" :clearable="true" placeholder="" />
  148. </el-form-item>
  149. </el-col>
  150. </el-row>
  151. <el-row :gutter="1">
  152. <el-col :span="4">
  153. <el-form-item label="流程单号" prop="id">
  154. <el-input v-model="formData.address" id="流程单号" @keydown="ent($event, '定额代号', '流程单号', '流程单号1')" :clearable="true" placeholder="" />
  155. </el-form-item>
  156. </el-col>
  157. <el-col :span="1">
  158. <el-input v-model="formData.流程单号1" id="流程单号1" @keydown="ent($event, '流程单号', '流程单号1', '流程单号2')" :clearable="true" placeholder="" />
  159. </el-col>
  160. <el-col :span="1">
  161. <el-input v-model="formData.流程单号2" id="流程单号2" @keydown="ent($event, '流程单号1', '流程单号2', '流程单号3')" :clearable="true" placeholder="" />
  162. </el-col>
  163. <el-col :span="1">
  164. <el-input v-model="formData.流程单号3" id="流程单号3" @keydown="ent($event, '流程单号2', '流程单号3', '流程单号4')" :clearable="true" placeholder="" />
  165. </el-col>
  166. <el-col :span="1">
  167. <el-input v-model="formData.流程单号4" id="流程单号4" @keydown="ent($event, '流程单号3', '流程单号4', '流程单号5')" :clearable="true" placeholder="" />
  168. </el-col>
  169. <el-col :span="1">
  170. <el-input v-model="formData.流程单号5" id="流程单号5" @keydown="ent($event, '流程单号4', '流程单号5', '流程单号6')" :clearable="true" placeholder="" />
  171. </el-col>
  172. <el-col :span="1">
  173. <el-input v-model="formData.流程单号6" id="流程单号6" @keydown="ent($event, '流程单号5', '流程单号6', '流程单号7')" :clearable="true" placeholder="" />
  174. </el-col>
  175. <el-col :span="1">
  176. <el-input v-model="formData.流程单号7" id="流程单号7" @keydown="ent($event, '流程单号6', '流程单号7', '流程单号8')" :clearable="true" placeholder="" />
  177. </el-col>
  178. <el-col :span="1">
  179. <el-input v-model="formData.流程单号8" id="流程单号8" @keydown="ent($event, '流程单号7', '流程单号8', '流程单号9')" :clearable="true" placeholder="" />
  180. </el-col>
  181. <el-col :span="1">
  182. <el-input v-model="formData.流程单号9" id="流程单号9" @keydown="ent($event, '流程单号8', '流程单号9', '备注')" :clearable="true" placeholder="" />
  183. </el-col>
  184. <el-col :span="6">
  185. <el-row :gutter="20">
  186. <el-col :span="12">
  187. <el-form-item label="备注" prop="id">
  188. <el-input v-model="formData.qczl_NumDesc" id="备注" @keydown="ent($event, '流程单号9', '备注', '换模补产工时')" :clearable="true" placeholder="" />
  189. </el-form-item>
  190. </el-col>
  191. </el-row>
  192. </el-col>
  193. </el-row>
  194. <el-row :gutter="20">
  195. <el-col :span="4">
  196. <el-form-item label="换模补产工时" prop="id">
  197. <el-input v-model="formData.sczl_装版工时" id="换模补产工时" @keydown="ent($event, '备注', '换模补产工时', '设备保养工时')" :clearable="true" placeholder="" />
  198. </el-form-item>
  199. </el-col>
  200. <el-col :span="6">
  201. <el-row :gutter="20">
  202. <el-col :span="12">
  203. <el-form-item label="设备保养工时" prop="id">
  204. <el-input v-model="formData.sczl_保养工时" id="设备保养工时" @keydown="ent($event, '换模补产工时', '设备保养工时', '异常停机')" :clearable="true" placeholder="" />
  205. </el-form-item>
  206. </el-col>
  207. </el-row>
  208. </el-col>
  209. <el-col :span="3">
  210. <el-form-item label="异常停机" prop="name">
  211. <el-input v-model="formData.sczl_异常停机工时" id="异常停机" @keydown="ent($event, '设备保养工时', '异常停机', '设备通电工时')" :clearable="true" placeholder="" />
  212. </el-form-item>
  213. </el-col>
  214. <el-col :span="3">
  215. <el-form-item label="设备通电工时" prop="name">
  216. <el-input v-model="formData.sczl_设备运行工时" id="设备通电工时" @keydown="ent($event, '异常停机', '设备通电工时', 'sczl_bh1')" :clearable="true" placeholder="" />
  217. </el-form-item>
  218. </el-col>
  219. </el-row>
  220. <el-row :gutter="10" style="margin-top: 10px;">
  221. <el-col :span="2">
  222. <span>组员信息</span>
  223. </el-col>
  224. <el-col :span="2">
  225. <el-input v-model="formData.sczl_bh1"id="sczl_bh1" @keydown="ent($event, '异常停机', 'sczl_bh1', 'sczl_bh2')" @keyup.enter.native="getGxMcsubmit($event, '1')" :clearable="true" placeholder="" />
  226. </el-col>
  227. <el-col :span="2">
  228. <el-input v-model="formData.sczl_bh2" id="sczl_bh2" @keydown="ent($event, 'sczl_bh1', 'sczl_bh2', 'sczl_bh3')" @keyup.enter.native="getGxMcsubmit($event, '2')" :clearable="true" placeholder="" />
  229. </el-col>
  230. <el-col :span="2">
  231. <el-input v-model="formData.sczl_bh3" id="sczl_bh3" @keydown="ent($event, 'sczl_bh2', 'sczl_bh3', 'sczl_bh4')" @keyup.enter.native="getGxMcsubmit($event, '3')" :clearable="true" placeholder="" />
  232. </el-col>
  233. <el-col :span="2">
  234. <el-input v-model="formData.sczl_bh4" id="sczl_bh4" @keydown="ent($event, 'sczl_bh3', 'sczl_bh4', 'sczl_bh5')" @keyup.enter.native="getGxMcsubmit($event, '4')" :clearable="true" placeholder="" />
  235. </el-col>
  236. <el-col :span="2">
  237. <el-input v-model="formData.sczl_bh5" id="sczl_bh5" @keydown="ent($event, 'sczl_bh4', 'sczl_bh5', 'sczl_bh6')" @keyup.enter.native="getGxMcsubmit($event, '5')" :clearable="true" placeholder="" />
  238. </el-col>
  239. <el-col :span="2">
  240. <el-input v-model="formData.sczl_bh6" id="sczl_bh6" @keydown="ent($event, 'sczl_bh5', 'sczl_bh6', 'sczl_bh7')" @keyup.enter.native="getGxMcsubmit($event, '6')" :clearable="true" placeholder="" />
  241. </el-col>
  242. <el-col :span="2">
  243. <el-input v-model="formData.sczl_bh7" id="sczl_bh7" @keydown="ent($event, 'sczl_bh6', 'sczl_bh7', 'sczl_bh8')" @keyup.enter.native="getGxMcsubmit($event, '7')" :clearable="true" placeholder="" />
  244. </el-col>
  245. <el-col :span="2">
  246. <el-input v-model="formData.sczl_bh8" id="sczl_bh8" @keydown="ent($event, 'sczl_bh7', 'sczl_bh8', 'name1')" @keyup.enter.native="getGxMcsubmit($event, '8')" :clearable="true" placeholder="" />
  247. </el-col>
  248. </el-row>
  249. <el-row :gutter="10" style="margin-top: 10px;">
  250. <el-col :span="2">
  251. <span></span>
  252. </el-col>
  253. <el-col :span="2">
  254. <el-input v-model="formData.sczl_bh1_name" id="name1" @keydown="ent($event, 'sczl_bh8', 'name1', 'name2')" :clearable="true" placeholder="" />
  255. </el-col>
  256. <el-col :span="2">
  257. <el-input v-model="formData.sczl_bh2_name" id="name2" @keydown="ent($event, 'name1', 'name2', 'name3')" :clearable="true" placeholder="" />
  258. </el-col>
  259. <el-col :span="2">
  260. <el-input v-model="formData.sczl_bh3_name" id="name3" @keydown="ent($event, 'name2', 'name3', 'name4')" :clearable="true" placeholder="" />
  261. </el-col>
  262. <el-col :span="2">
  263. <el-input v-model="formData.sczl_bh4_name" id="name4" @keydown="ent($event, 'name3', 'name4', 'name5')" :clearable="true" placeholder="" />
  264. </el-col>
  265. <el-col :span="2">
  266. <el-input v-model="formData.sczl_bh5_name" id="name5" @keydown="ent($event, 'name4', 'name5', 'name6')" :clearable="true" placeholder="" />
  267. </el-col>
  268. <el-col :span="2">
  269. <el-input v-model="formData.sczl_bh6_name" id="name6" @keydown="ent($event, 'name5', 'name6', 'name7')" :clearable="true" placeholder="" />
  270. </el-col>
  271. <el-col :span="2">
  272. <el-input v-model="formData.sczl_bh7_name" id="name7" @keydown="ent($event, 'name6', 'name7', 'name8')" :clearable="true" placeholder="" />
  273. </el-col>
  274. <el-col :span="2">
  275. <el-input v-model="formData.sczl_bh8_name" id="name8" @keydown="ent($event, 'name7', 'name8', 'NumDesc1')" :clearable="true" placeholder="" />
  276. </el-col>
  277. </el-row>
  278. <el-row :gutter="10" style="margin-top: 10px;">
  279. <el-col :span="2">
  280. <span></span>
  281. </el-col>
  282. <el-col :span="2">
  283. <el-input v-model="formData.qczl_NumDesc" id="NumDesc1" @keydown="ent($event, 'name8', 'NumDesc1', 'NumDesc2')" :clearable="true" placeholder="" />
  284. </el-col>
  285. <el-col :span="2">
  286. <el-input v-model="formData.qczl_NumDesc" id="NumDesc2" @keydown="ent($event, 'NumDesc1', 'NumDesc2', 'NumDesc3')" :clearable="true" placeholder="" />
  287. </el-col>
  288. <el-col :span="2">
  289. <el-input v-model="formData.qczl_NumDesc" id="NumDesc3" @keydown="ent($event, 'NumDesc2', 'NumDesc3', 'NumDesc4')" :clearable="true" placeholder="" />
  290. </el-col>
  291. <el-col :span="2">
  292. <el-input v-model="formData.qczl_NumDesc" id="NumDesc4" @keydown="ent($event, 'NumDesc3', 'NumDesc4', 'NumDesc5')" :clearable="true" placeholder="" />
  293. </el-col>
  294. <el-col :span="2">
  295. <el-input v-model="formData.qczl_NumDesc" id="NumDesc5" @keydown="ent($event, 'NumDesc4', 'NumDesc5', 'NumDesc6')" :clearable="true" placeholder="" />
  296. </el-col>
  297. <el-col :span="2">
  298. <el-input v-model="formData.qczl_NumDesc" id="NumDesc6" @keydown="ent($event, 'NumDesc5', 'NumDesc6', 'NumDesc7')" :clearable="true" placeholder="" />
  299. </el-col>
  300. <el-col :span="2">
  301. <el-input v-model="formData.qczl_NumDesc" id="NumDesc7" @keydown="ent($event, 'NumDesc6', 'NumDesc7', 'NumDesc8')" :clearable="true" placeholder="" />
  302. </el-col>
  303. <el-col :span="2">
  304. <el-input v-model="formData.qczl_NumDesc" id="NumDesc8" @keydown="ent($event, 'NumDesc7', 'NumDesc8', '其他备注')" :clearable="true" placeholder="" />
  305. </el-col>
  306. </el-row>
  307. <el-row :gutter="20">
  308. <el-col :span="20">
  309. <el-form-item label="其他备注" prop="id">
  310. <el-input v-model="formData.流程单号" id="其他备注" @keydown="ent($event, 'NumDesc8', '其他备注', '日期')" :clearable="true" placeholder="" />
  311. </el-form-item>
  312. </el-col>
  313. </el-row>
  314. </el-form>
  315. <template #footer>
  316. <div class="dialog-footer">
  317. <el-button @click="closeDialog">取 消</el-button>
  318. <el-button type="primary" @click="enterDialog">确 定</el-button>
  319. </div>
  320. </template>
  321. </el-dialog>
  322. <el-dialog
  323. v-model="dialogSelectVisible"
  324. title="选择"
  325. destroy-on-close
  326. width="600px"
  327. >
  328. <el-table
  329. tooltip-effect="dark"
  330. :data="selectData"
  331. row-key="ID"
  332. highlight-current-row="true"
  333. border
  334. style="width:100%"
  335. @row-dblclick="handleSelectClick"
  336. >
  337. <el-table-column
  338. prop="Gd_cpmc"
  339. label="印件名称"
  340. width="340"
  341. />
  342. <el-table-column
  343. prop="jyGx"
  344. label="检验工序"
  345. width="150"
  346. />
  347. <el-table-column
  348. prop="Gy0_gxmc"
  349. label="工序名称"
  350. width="150"
  351. />
  352. </el-table>
  353. </el-dialog>
  354. <el-dialog
  355. v-model="GetMachineDedhVisible"
  356. title="选择"
  357. destroy-on-close
  358. width="600px"
  359. >
  360. <el-aside width="250px">
  361. <div class="JKWTree-tree">
  362. <el-tree :data="GetMachineDedhtreeData" :props="defaultProps" highlight-current="true"
  363. @node-click="GetMachineDedhhandleNodeClick" @node-dblclick="handleNodeDoubleClick"></el-tree>
  364. </div>
  365. </el-aside>
  366. </el-dialog>
  367. <el-dialog
  368. v-model="GetjtbhVisible"
  369. title="选择"
  370. destroy-on-close
  371. width="600px"
  372. >
  373. <el-table
  374. tooltip-effect="dark"
  375. :data="JTBHselectData"
  376. row-key="ID"
  377. highlight-current-row="true"
  378. border
  379. style="width:100%"
  380. @row-dblclick="JTBHSelectClick"
  381. >
  382. <el-table-column
  383. prop="jtbh"
  384. label="机台编号"
  385. width="150"
  386. />
  387. <el-table-column
  388. prop="jtmc"
  389. label="机台名称"
  390. width="400"
  391. />
  392. </el-table>
  393. </el-dialog>
  394. </el-main>
  395. </el-container>
  396. </el-container>
  397. </div>
  398. </template>
  399. <script setup>
  400. import {
  401. getMachineCount,
  402. getDateMachine,
  403. machineLocate,
  404. MachineInfo,
  405. getYg,
  406. getMachineGxMc,
  407. getMachineDedh,
  408. getMachineScrapFactor,
  409. getJtbh,
  410. machineEdit,
  411. machineDel,
  412. getMachineCountByGdbh,
  413. machineAdd
  414. } from '@/api/jixiaoguanli/jitairibaobiao'
  415. // 全量引入格式化工具 请按需保留
  416. import { getDictFunc, formatDate, formatBoolean, filterDict, ReturnArrImg, onDownloadFile } from '@/utils/format'
  417. import { ElMessage, ElMessageBox } from 'element-plus'
  418. import { Search, Refresh, Download } from '@element-plus/icons-vue'
  419. import { ref, reactive, onMounted, onBeforeMount } from 'vue'
  420. import { getPackingSideTable, getPackingTable } from '@/api/mes_api_gty/myapi'
  421. import { login } from '@/api/user'
  422. defineOptions({
  423. name: '06-packingDocuments'
  424. })
  425. // 侧边栏数据请求
  426. const treeData = reactive([]);
  427. let GetMachineDedhtreeData = reactive([]);
  428. const getTabdata = async () => {
  429. //接口调用函数
  430. const response = await getMachineCount();
  431. console.log(response)
  432. //根据日期获取侧边栏
  433. const transformedData = response.data.map(item => ({
  434. label: `${item.sys_rq.replace(/-/g, '.')}【单据数: ${item.count}张】`,
  435. children: item.sys.map(sysItem => ({
  436. label: `${sysItem.sys_id} 【记录数: ${sysItem.count}张】`,
  437. params: {
  438. date: item.sys_rq.replace(/\./g, '-'),
  439. sys_id: sysItem.sys_id,
  440. total: sysItem.count,
  441. },
  442. })),
  443. }));
  444. treeData.splice(0, treeData.length, ...transformedData);
  445. }
  446. getTabdata();
  447. // 自动化生成的字典(可能为空)以及字段
  448. const formData = ref({
  449. sczl_gdbh: '',
  450. sczl_yjgx: '',
  451. sczl_gxmc: '',
  452. sczl_jtbh: '',
  453. sczl_bzdh: '',
  454. sczl_rq: '',
  455. sczl_cl: '',
  456. sczl_PgCl: '',
  457. sczl_单据类型: '',
  458. sczl_dedh: '',
  459. sczl_装版工时: '',
  460. sczl_保养工时: '',
  461. sczl_异常停机工时: '',
  462. sczl_设备运行工时: '',
  463. sczl_废品率系数: '',
  464. sczl_检验类别: '',
  465. sczl_bh1: '',
  466. sczl_bh2: '',
  467. sczl_bh3: '',
  468. sczl_bh4: '',
  469. sczl_bh5: '',
  470. sczl_bh6: '',
  471. sczl_bh7: '',
  472. sczl_bh8: '',
  473. 流程单号 :'',
  474. 流程单号2: '',
  475. 流程单号3: '',
  476. 流程单号4: '',
  477. 流程单号5: '',
  478. 流程单号6: '',
  479. 流程单号7: '',
  480. 流程单号8: '',
  481. 流程单号9:'',
  482. qczl_NumDesc:'',
  483. sczl_desc:'',
  484. sczl_bh1_name:'',
  485. sczl_bh2_name:'',
  486. sczl_bh3_name: '',
  487. sczl_bh4_name: '',
  488. sczl_bh5_name: '',
  489. sczl_bh6_name: '',
  490. sczl_bh7_name: '',
  491. sczl_bh8_name: '',
  492. yj_yjmc: '',
  493. })
  494. // 验证规则
  495. const rule = reactive({
  496. })
  497. const elFormRef = ref()
  498. const elSearchFormRef = ref()
  499. // =========== 表格控制部分 ===========
  500. const tableData = reactive([])
  501. const total = ref(0)
  502. const page = ref(1)
  503. const limit = ref(10)
  504. const searchInfo = ref('')
  505. const params = {
  506. type: '',
  507. date: '',
  508. sys_id: '',
  509. gdbh: '',
  510. }
  511. // 分页设置
  512. const handleSizeChange = (val) => {
  513. switch (params.type) {
  514. case 'getTableData':
  515. getTableData()
  516. break
  517. case 'getLocateTable':
  518. GetmachineLocate()
  519. break
  520. default:
  521. break
  522. }
  523. }
  524. // 页面跳转
  525. const handleCurrentChange = (val) => {
  526. switch (params.type) {
  527. case 'getTableData':
  528. getTableData()
  529. break
  530. case 'getLocateTable':
  531. GetmachineLocate()
  532. break
  533. default:
  534. break
  535. }
  536. }
  537. const getTableData = async() => {
  538. const response = await getDateMachine({
  539. date: params.date, sys_id: params.sys_id,
  540. page: page.value.toString(), limit: limit.value.toString(),
  541. })
  542. if (response.code === 0) {
  543. console.log(response)
  544. const processedData = response.data.data.map(item => {
  545. return {
  546. ...item,
  547. combinedProp: item.sczl_gdbh + '--'+item.yj_yjmc,
  548. combinedProp2: item.sczl_yjgx + '-'+item.sczl_gxmc
  549. };
  550. });
  551. tableData.splice(0, tableData.length, ...processedData);
  552. }
  553. // const response = await getDateMachine(params);
  554. // console.log(response)
  555. // if (response.code === 0) {
  556. // const processedData = response.data.data.map(item => {
  557. // return {
  558. // ...item,
  559. // combinedProp: item.sczl_gdbh + '--'+item.yj_yjmc,
  560. // combinedProp2: item.sczl_yjgx + '-'+item.sczl_gxmc
  561. // };
  562. // });
  563. // tableData.splice(0, tableData.length, ...processedData);
  564. // }
  565. }
  566. //定位
  567. const GetmachineLocate = async () => {
  568. const response = await machineLocate({
  569. gdbh: params.gdbh,
  570. page: page.value.toString(), limit: limit.value.toString(),
  571. })
  572. console.log(response)
  573. if (response.code === 0) {
  574. const processedData = response.data.rows.map(item => {
  575. return {
  576. ...item,
  577. combinedProp: item.sczl_gdbh + '--'+item.yj_yjmc,
  578. combinedProp2: item.sczl_yjgx + '-'+item.sczl_gxmc
  579. };
  580. });
  581. total.value = response.data.total
  582. tableData.splice(0, tableData.length, ...processedData);
  583. }
  584. // if (response.code === 0) {
  585. // total.value = response.data.total
  586. // tableData.splice(0, tableData.length, ...response.data.rows)
  587. // }
  588. // const response = await machineLocate(locatevalue);
  589. // console.log(locatevalue)
  590. // console.log(response)
  591. // if (response.code === 0) {
  592. // tableData.splice(0, tableData.length, ...response.data.rows);
  593. // }
  594. }
  595. //获取详细信息
  596. const GetMachineInfo = async (value) => {
  597. const response = await MachineInfo({UniqId:value});
  598. console.log(response)
  599. if (response.code === 0) {
  600. formData.value=response.data;
  601. }
  602. }
  603. //获取员工信息
  604. const GetYg = async (value,inputName) => {
  605. const response = await getYg({sczl_bh:value});
  606. console.log(response)
  607. if (response.code === 0) {
  608. console.log(response.data.ygxm)
  609. let Bname = 'sczl_bh' + inputName+'_name';
  610. formData.value[Bname]=response.data.ygxm
  611. // console.log(formData.value[Bname])
  612. }
  613. }
  614. //员工编号回车事件
  615. const getGxMcsubmit = (event, inputName) => {
  616. console.log(inputName)
  617. let combinedString = 'sczl_bh' + inputName;
  618. console.log(combinedString)
  619. // let variableName = 'sczl_gdbh'+inputName;
  620. let variableValue = eval('formData.value.' + combinedString);
  621. console.log(variableValue)
  622. GetYg(variableValue,inputName)
  623. }
  624. const dialogSelectVisible = ref(false)
  625. const GetMachineDedhVisible = ref(false)
  626. const selectData = reactive([])
  627. const GetjtbhVisible = ref(false)
  628. const JTBHselectData = reactive([])
  629. //查询印件工序及产品名称
  630. const GetMachineGxMc = async () => {
  631. console.log(formData.value.sczl_gdbh)
  632. const response = await getMachineGxMc({gdbh:formData.value.sczl_gdbh});
  633. console.log(response)
  634. if (response.code === 0) {
  635. if(response.data.length==1){
  636. const { Gd_cpmc, Gy0_yjno, Gy0_gxh, Gy0_gxmc,jyGx} = response.data[0]
  637. formData.value.yj_yjmc=Gd_cpmc
  638. formData.value.sczl_gxmc=Gy0_gxmc
  639. formData.value.sczl_yjgx=jyGx
  640. console.log(Gy0_gxmc)
  641. console.log(formData.value.sczl_gxmc)
  642. }else{
  643. selectData.splice(0, selectData.length, ...response.data)
  644. dialogSelectVisible.value=true
  645. }
  646. // console.log(response.data.ygxm)
  647. // let Bname = 'sczl_bh' + inputName+'_name';
  648. // formData.value[Bname]=response.data.ygxm
  649. // // console.log(formData.value[Bname])
  650. // console.log(response.data.length)
  651. }
  652. }
  653. //工单编号回车事件
  654. const getMachineGxMcsubmit = async() => {
  655. console.log(formData.value.sczl_gdbh)
  656. GetMachineGxMc()
  657. }
  658. // 处理选择框
  659. const handleSelectClick = (row, column, event) => {
  660. const { Gd_cpmc, Gy0_yjno, Gy0_gxh, Gy0_gxmc,jyGx } = row
  661. formData.value.yj_yjmc=Gd_cpmc
  662. formData.value.sczl_gxmc=Gy0_gxmc
  663. formData.value.sczl_yjgx=jyGx
  664. dialogSelectVisible.value = false
  665. }
  666. //获取定额代号
  667. const GetMachineDedh = async (value) => {
  668. const response = await getMachineDedh();
  669. console.log(response)
  670. const treeData = {};
  671. if(response.code==0){
  672. // 遍历接口返回的数据,构建父子关系
  673. response.data.bh_mc.forEach(item => {
  674. if (item.sys_bh === response.data.sys_bh) {
  675. if (!treeData[item.sys_bh]) {
  676. treeData[item.sys_bh] = { label: item.sys_bh, children: [] };
  677. }
  678. treeData[item.sys_bh].children.push({ label: item.sys_bh + item.sys_mc, params: { sys_bh: item.sys_bh } });
  679. } else if (item.sys_bh.startsWith(response.data.sys_bh)) {
  680. if (!treeData[response.data.sys_bh]) {
  681. treeData[response.data.sys_bh] = { label: response.data.sys_bh, children: [] };
  682. }
  683. treeData[response.data.sys_bh].children.push({ label: item.sys_bh + item.sys_mc, params: { sys_bh: item.sys_bh } });
  684. }
  685. });
  686. // 将父子关系转换为数组
  687. const transformedData = Object.values(treeData);
  688. console.log(transformedData)
  689. GetMachineDedhtreeData = transformedData;
  690. // const treeData = fillDataToTree(response);
  691. // console.log(treeData)
  692. // // GetMachineDedhtreeData=treeData
  693. // GetMachineDedhtreeData.splice(0, GetMachineDedhtreeData.length, ...treeData);
  694. // const GetMachineDedhtreeData=
  695. GetMachineDedhVisible.value=true
  696. console.log(formData)
  697. }
  698. }
  699. //定额代号树形结构单机
  700. const GetMachineDedhhandleNodeClick = (node,check,nodeData) => {
  701. //存放当前节点的nodeId
  702. //存放当前节点的nodeId
  703. if (node.params) {
  704. // 点击的是父节点
  705. // 执行相应的父节点单击事件处理逻辑
  706. console.log(node.params)
  707. formData.value.sczl_dedh=node.params.sys_bh
  708. console.log(formData.value.sczl_dedh)
  709. GetMachineDedhVisible.value=false
  710. } else {
  711. // 点击的是子节点
  712. // 执行相应的子节点单击事件处理逻辑
  713. console.log('11111');
  714. console.log(node.params)
  715. // 例如,您可以在这里执行子节点单击事件触发的操作
  716. }
  717. }
  718. const GetJtbh = async () => {
  719. const response = await getJtbh({sys_mc:'检验车间'});
  720. if(response.code==0){
  721. if(response.data.length==1){
  722. // const { Gd_cpmc, Gy0_yjno, Gy0_gxh, Gy0_gxmc,jyGx} = response.data[0]
  723. // formData.value.yj_yjmc=Gd_cpmc
  724. // formData.value.sczl_gxmc=Gy0_gxmc
  725. // formData.value.sczl_yjgx=jyGx
  726. // console.log(Gy0_gxmc)
  727. // console.log(formData.value.sczl_gxmc)
  728. }else{
  729. JTBHselectData.splice(0, selectData.length, ...response.data)
  730. GetjtbhVisible.value=true
  731. }
  732. }
  733. console.log(response)
  734. }
  735. const JTBHSelectClick = (row, column, event) => {
  736. const { jtbh, jtmc } = row
  737. formData.value.sczl_jtbh=jtbh
  738. GetjtbhVisible.value = false
  739. }
  740. const getJtbhsubmit = () => {
  741. GetJtbh()
  742. }
  743. //定额代号回车事件
  744. const getMachineDedhsubmit = () => {
  745. GetMachineDedh()
  746. }
  747. //刷新废品率系数
  748. const GetMachineScrapFactor = async (value) => {
  749. const response = await getMachineScrapFactor(value);
  750. if(response.code==0){
  751. console.log(response.data.num)
  752. const rowIndex = tableData.findIndex(row => row.UniqId === lastCellValue);
  753. console.log(rowIndex)
  754. tableData[rowIndex].sczl_废品率系数 = response.data.num;
  755. }
  756. // console.log(response)
  757. // const rowIndex = tableData.findIndex(row => row.UniqId === 123);
  758. }
  759. // 更新数据
  760. const updateDetailData = async() => {
  761. const restoredData = {
  762. UniqId: lastCellValue,
  763. sczl_rq: formData.value.sczl_rq,
  764. sczl_bzdh: formData.value.sczl_bzdh,
  765. sczl_gdbh: formData.value.sczl_gdbh,
  766. sczl_yjgx: formData.value.sczl_yjgx,
  767. sczl_gxmc: formData.value.sczl_gxmc,
  768. sczl_jtbh: formData.value.sczl_jtbh,
  769. sczl_单据类型: formData.value.sczl_单据类型,
  770. sczl_检验类别: formData.value.sczl_检验类别,
  771. sczl_废品率系数: formData.value.sczl_废品率系数,
  772. sczl_cl: formData.value.sczl_cl,
  773. sczl_PgCl: formData.value.sczl_PgCl,
  774. sczl_dedh: formData.value.sczl_desc,
  775. qczl_Num: formData.value.qczl_NumDesc,
  776. qczl_NumDesc1: formData.value.流程单号1,
  777. qczl_NumDesc2: formData.value.流程单号2,
  778. qczl_NumDesc3: formData.value.流程单号3,
  779. qczl_NumDesc4: formData.value.流程单号4,
  780. qczl_NumDesc5: formData.value.流程单号5,
  781. qczl_NumDesc6: formData.value.流程单号6,
  782. qczl_NumDesc7: formData.value.流程单号7,
  783. qczl_NumDesc8: formData.value.流程单号8,
  784. qczl_NumDesc: formData.value.流程单号9,
  785. sczl_装版工时: formData.value.sczl_装版工时,
  786. sczl_保养工时: formData.value.sczl_保养工时,
  787. sczl_异常停机工时: formData.value.sczl_异常停机工时,
  788. sczl_设备运行工时: formData.value.sczl_设备运行工时,
  789. sczl_bh1: formData.value.sczl_bh1,
  790. sczl_bh2: formData.value.sczl_bh2,
  791. sczl_bh3: formData.value.sczl_bh3,
  792. sczl_bh4: formData.value.sczl_bh4,
  793. sczl_bh5: formData.value.sczl_bh5,
  794. sczl_bh6: formData.value.sczl_bh6,
  795. sczl_bh7: formData.value.sczl_bh7,
  796. sczl_bh8: formData.value.sczl_bh8,
  797. sczl_desc: formData.value.sczl_desc,
  798. sys_id:'[1008/姜剑娟]',
  799. }
  800. // detailData.table.forEach((item, index, array) => {
  801. // const num = index + 1
  802. // restoredData[`sczl_gdbh${num}`] = item.sczl_gdbh
  803. // restoredData[`sczl_yjGx${num}`] = item.sczl_yjGx
  804. // restoredData[`sczl_gxmc${num}`] = item.sczl_gxmc
  805. // // restoredData[`Gd_cpmc${num}`] = item.Gd_cpmc
  806. // restoredData[`sczl_cl${num}`] = item.sczl_cl
  807. // restoredData[`sczl_PgCl${num}`] = item.sczl_PgCl
  808. // restoredData[`sczl_clAdd${num}`] = item.sczl_clAdd
  809. // })
  810. if(ADD.value=='新增'){
  811. // console.log('新增')
  812. console.log('新增')
  813. console.log(ADD.value)
  814. console.log(restoredData)
  815. const response = await machineAdd(restoredData);
  816. // ADD.value='1'
  817. // console.log(ADD.value)
  818. ADD.value='0'
  819. console.log(response)
  820. }else{
  821. console.log(restoredData)
  822. console.log(lastCellValue)
  823. formData.value.UniqId=lastCellValue
  824. console.log(formData)
  825. restoredData.UniqId='5'
  826. const response = await machineEdit(restoredData);
  827. // console.log(FormData)
  828. console.log(response)
  829. }
  830. }
  831. //删除
  832. const MachineDel = async () => {
  833. const response = await machineDel({UniqId:lastCellValue});
  834. if (response.code === 0) {
  835. console.log(333)
  836. }
  837. getTableData()
  838. }
  839. const handleNodeClick = (node,check) => {
  840. //存放当前节点的nodeId
  841. //存放当前节点的nodeId
  842. if (node.params) {
  843. params.date = node.params.date;
  844. params.sys_id = node.params.sys_id;
  845. total.value = node.params.total;
  846. params.type = 'getTableData'
  847. page.value = 1
  848. getTableData();
  849. }
  850. }
  851. const locatevalue={
  852. gdbh:'',
  853. cpmc:'',
  854. page:'5',
  855. limit:'10',
  856. }
  857. let positionvalue=ref()
  858. // 搜索
  859. function onSearch() {
  860. params.gdbh = positionvalue.value
  861. params.type = 'getLocateTable'
  862. page.value = 1
  863. GetmachineLocate()
  864. }
  865. // 刷新废品率系数
  866. function onRefresh() {
  867. GetMachineScrapFactor(ScrapFactor)
  868. }
  869. const ADD=ref('0')
  870. //新增
  871. function onAdd() {
  872. ADD.value='新增'
  873. console.log(ADD.value)
  874. dialogFormVisible.value = true
  875. // Productionadd()
  876. }
  877. //删除
  878. function onDel() {
  879. MachineDel()
  880. }
  881. // 按工单显示
  882. function onCountByGdbh() {
  883. CountByGdbh()
  884. }
  885. //按工单显示
  886. const CountByGdbh = async () => {
  887. const response = await getMachineCountByGdbh();
  888. // console.log(response)
  889. treeData.splice(0, GetJTtreeData.length);
  890. if (response.code === 0) {
  891. console.log(response)
  892. const transformedData = response.data.map(item => ({
  893. label: `${item.sczl_gdbh+item.cpmc}`,
  894. children: item.sys.map(sysItem => ({
  895. label: `${sysItem.sys_id} 【记录数: ${sysItem.count}张】`,
  896. params: {
  897. date: item.sczl_gdbh,
  898. sys_id: sysItem.sys_id,
  899. total: sysItem.count,
  900. },
  901. })),
  902. }));
  903. treeData.splice(0, treeData.length, ...transformedData);
  904. }
  905. getTableData()
  906. }
  907. // ============== 表格控制部分结束 ===============
  908. // 获取需要的字典 可能为空 按需保留
  909. const setOptions = async () => {
  910. }
  911. // 获取需要的字典 可能为空 按需保留
  912. setOptions()
  913. // 多选数据
  914. const multipleSelection = ref([
  915. ])
  916. // 多选
  917. const ScrapFactor={
  918. gdbh:'',
  919. yjno:'',
  920. gxh:'',
  921. type:'',
  922. }
  923. const handleSelectionChange = (val) => {
  924. // multipleSelection.value = val
  925. if(val.length>0){
  926. multipleSelection.value = val
  927. const lenth=val.length
  928. ScrapFactor.gdbh=val[lenth-1].combinedProp.split('-')[0];
  929. const parts = val[lenth-1].combinedProp2.split('-')
  930. ScrapFactor.yjno=parts[0];
  931. ScrapFactor.gxh=parts[1];
  932. ScrapFactor.type=val[lenth-1].sczl_检验类别
  933. console.log(ScrapFactor)
  934. lastCellValue=val[lenth-1].UniqId
  935. console.log(val)
  936. val.splice(0, val.length); // 清空 val 数组
  937. console.log(lastCellValue)
  938. }
  939. }
  940. // 批量删除控制标记
  941. const deleteVisible = ref(false)
  942. // 多选删除
  943. const onDelete = async () => {
  944. const ids = []
  945. if (multipleSelection.value.length === 0) {
  946. ElMessage({
  947. type: 'warning',
  948. message: '请选择要删除的数据'
  949. })
  950. return
  951. }
  952. multipleSelection.value &&
  953. multipleSelection.value.map(item => {
  954. ids.push(item.ID)
  955. })
  956. const res = await deleteCompanyByIds({ ids })
  957. if (res.code === 0) {
  958. ElMessage({
  959. type: 'success',
  960. message: '删除成功'
  961. })
  962. if (tableData.value.length === ids.length && page.value > 1) {
  963. page.value--
  964. }
  965. deleteVisible.value = false
  966. getTableData()
  967. }
  968. }
  969. // 行为控制标记(弹窗内部需要增还是改)
  970. const type = ref('')
  971. // 更新行
  972. const updateCompanyFunc = async (row) => {
  973. const res = await findCompany({ ID: row.ID })
  974. type.value = 'update'
  975. if (res.code === 0) {
  976. formData.value = res.data.recompany
  977. dialogFormVisible.value = true
  978. }
  979. }
  980. // 弹窗控制标记
  981. const dialogFormVisible = ref(false)
  982. // 打开弹窗
  983. const openDialog = () => {
  984. type.value = 'create'
  985. dialogFormVisible.value = true
  986. }
  987. // 关闭弹窗
  988. const closeDialog = () => {
  989. dialogFormVisible.value = false
  990. formData.value = {
  991. address: '',
  992. image: '',
  993. name: '',
  994. }
  995. }
  996. // 弹窗确定
  997. const enterDialog = async () => {
  998. // elFormRef.value?.validate(async (valid) => {
  999. // if (!valid) return
  1000. // let res
  1001. // switch (type.value) {
  1002. // case 'create':
  1003. // res = await createCompany(formData.value)
  1004. // break
  1005. // case 'update':
  1006. // res = await updateCompany(formData.value)
  1007. // break
  1008. // default:
  1009. // res = await createCompany(formData.value)
  1010. // break
  1011. // }
  1012. // if (res.code === 0) {
  1013. // ElMessage({
  1014. // type: 'success',
  1015. // message: '创建/更改成功'
  1016. // })
  1017. // closeDialog()
  1018. // getTableData()
  1019. // }
  1020. // })
  1021. updateDetailData()
  1022. }
  1023. //键盘 input框跳转
  1024. const ent = (event,id1,id2,id3) => {
  1025. if (event.keyCode === 13 || event.keyCode === 40) { // Enter 或向下箭头
  1026. if(id3!=''){
  1027. document.getElementById(id3).focus()
  1028. }
  1029. if(id2=='工单编号'&&event.keyCode === 13){
  1030. getMachineGxMcsubmit()
  1031. }else if(id2=='机台编号'&&event.keyCode === 13){
  1032. getJtbhsubmit()
  1033. }else if(id2=='定额代号'&&event.keyCode === 13){
  1034. getMachineDedhsubmit()
  1035. }
  1036. if(id2=='工单编号'&&event.keyCode === 13){
  1037. getMachineGxMcsubmit()
  1038. }else if(id2=='机台编号'&&event.keyCode === 13){
  1039. getJtbhsubmit()
  1040. }else if(id2=='定额代号'&&event.keyCode === 13){
  1041. getMachineDedhsubmit()
  1042. }
  1043. } else if (event.keyCode === 38) { // 向上箭头
  1044. if(id1!=''){
  1045. document.getElementById(id1).focus()
  1046. }
  1047. }else if (event.keyCode === 8) { // 删除箭头
  1048. if(id1!='' && document.getElementById(id2).value==''){
  1049. document.getElementById(id1).focus()
  1050. }
  1051. console.log(document.getElementById(id2).value)
  1052. }else if (event.keyCode === 37) { // 向左箭头
  1053. if(id1!='' && document.getElementById(id2).selectionStart==0){
  1054. document.getElementById(id1).focus()
  1055. }
  1056. }else if (event.keyCode === 39) { // 向右箭头
  1057. if(id3!='' && document.getElementById(id2).selectionStart == document.getElementById(id2).value.length){
  1058. document.getElementById(id3).focus()
  1059. }
  1060. }
  1061. }
  1062. let table=ref(5);
  1063. let lastCellValue=ref()
  1064. // 双击表格操作
  1065. function doubleClick(row, column, event) {
  1066. type.value = 'update';
  1067. lastCellValue= row['UniqId'];
  1068. console.log(lastCellValue)
  1069. table.value=lastCellValue
  1070. dialogFormVisible.value = true
  1071. // dialogSelectVisible.value = true
  1072. GetMachineInfo(table.value)
  1073. }
  1074. // 导出excel
  1075. function exportExcel() {
  1076. console.log('导出到excel');
  1077. }
  1078. // 生命周期钩子
  1079. onMounted(async () => {
  1080. });
  1081. </script>
  1082. <style>
  1083. .JKWTree-container {
  1084. display: flex;
  1085. }
  1086. .JKWTree-tree {
  1087. width: 300px;
  1088. background-color: #fff;
  1089. padding: 10px;
  1090. margin-right: 20px;
  1091. }
  1092. .JKWTree-tree h3 {
  1093. font-size: 15px;
  1094. font-weight: 700;
  1095. margin: 10px 0;
  1096. }
  1097. .JKWTree-content {
  1098. flex: 1;
  1099. }
  1100. /* 选中某行时的背景色*/
  1101. .el-table__body tr.current-row>td {
  1102. background: #ff80ff !important;
  1103. /* 背景颜色 */
  1104. }
  1105. </style>