rewards.vue 51 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041051061071081091101111121131141151161171181191201211221231241251261271281291301311321331341351361371381391401411421431441451461471481491501511521531541551561571581591601611621631641651661671681691701711721731741751761771781791801811821831841851861871881891901911921931941951961971981992002012022032042052062072082092102112122132142152162172182192202212222232242252262272282292302312322332342352362372382392402412422432442452462472482492502512522532542552562572582592602612622632642652662672682692702712722732742752762772782792802812822832842852862872882892902912922932942952962972982993003013023033043053063073083093103113123133143153163173183193203213223233243253263273283293303313323333343353363373383393403413423433443453463473483493503513523533543553563573583593603613623633643653663673683693703713723733743753763773783793803813823833843853863873883893903913923933943953963973983994004014024034044054064074084094104114124134144154164174184194204214224234244254264274284294304314324334344354364374384394404414424434444454464474484494504514524534544554564574584594604614624634644654664674684694704714724734744754764774784794804814824834844854864874884894904914924934944954964974984995005015025035045055065075085095105115125135145155165175185195205215225235245255265275285295305315325335345355365375385395405415425435445455465475485495505515525535545555565575585595605615625635645655665675685695705715725735745755765775785795805815825835845855865875885895905915925935945955965975985996006016026036046056066076086096106116126136146156166176186196206216226236246256266276286296306316326336346356366376386396406416426436446456466476486496506516526536546556566576586596606616626636646656666676686696706716726736746756766776786796806816826836846856866876886896906916926936946956966976986997007017027037047057067077087097107117127137147157167177187197207217227237247257267277287297307317327337347357367377387397407417427437447457467477487497507517527537547557567577587597607617627637647657667677687697707717727737747757767777787797807817827837847857867877887897907917927937947957967977987998008018028038048058068078088098108118128138148158168178188198208218228238248258268278288298308318328338348358368378388398408418428438448458468478488498508518528538548558568578588598608618628638648658668678688698708718728738748758768778788798808818828838848858868878888898908918928938948958968978988999009019029039049059069079089099109119129139149159169179189199209219229239249259269279289299309319329339349359369379389399409419429439449459469479489499509519529539549559569579589599609619629639649659669679689699709719729739749759769779789799809819829839849859869879889899909919929939949959969979989991000100110021003100410051006100710081009101010111012101310141015101610171018101910201021102210231024102510261027102810291030103110321033103410351036103710381039104010411042104310441045104610471048104910501051105210531054105510561057105810591060106110621063106410651066106710681069107010711072107310741075107610771078107910801081108210831084108510861087108810891090109110921093109410951096109710981099110011011102110311041105110611071108110911101111111211131114111511161117111811191120112111221123112411251126112711281129113011311132113311341135113611371138113911401141114211431144114511461147114811491150115111521153115411551156115711581159116011611162116311641165116611671168116911701171117211731174117511761177117811791180118111821183118411851186118711881189119011911192119311941195119611971198119912001201120212031204120512061207120812091210121112121213121412151216121712181219122012211222122312241225122612271228122912301231123212331234123512361237123812391240124112421243124412451246124712481249125012511252125312541255125612571258125912601261126212631264126512661267126812691270127112721273127412751276127712781279128012811282128312841285128612871288128912901291129212931294129512961297129812991300130113021303130413051306130713081309131013111312131313141315131613171318131913201321132213231324132513261327132813291330133113321333133413351336133713381339134013411342134313441345134613471348134913501351135213531354135513561357135813591360136113621363136413651366136713681369137013711372137313741375137613771378137913801381138213831384138513861387138813891390139113921393139413951396139713981399140014011402140314041405140614071408140914101411141214131414141514161417141814191420142114221423142414251426142714281429143014311432143314341435143614371438143914401441144214431444144514461447144814491450145114521453145414551456145714581459146014611462146314641465146614671468146914701471147214731474147514761477147814791480148114821483148414851486148714881489149014911492149314941495149614971498149915001501150215031504150515061507150815091510151115121513151415151516151715181519152015211522152315241525152615271528152915301531153215331534153515361537153815391540154115421543154415451546154715481549155015511552155315541555155615571558155915601561156215631564156515661567156815691570157115721573157415751576157715781579158015811582158315841585158615871588158915901591159215931594159515961597159815991600160116021603160416051606160716081609161016111612161316141615161616171618161916201621162216231624162516261627162816291630163116321633163416351636163716381639164016411642164316441645164616471648164916501651165216531654165516561657165816591660166116621663166416651666166716681669167016711672167316741675167616771678167916801681168216831684168516861687168816891690169116921693169416951696169716981699170017011702170317041705170617071708170917101711
  1. <template>
  2. <div>
  3. <el-container>
  4. <!-- <el-scrollbar height="550px">
  5. <el-aside>
  6. <div class="JKWTree-tree">
  7. <h3>工序大废品奖惩记录</h3>
  8. <el-tree
  9. :data="treeData"
  10. :props="defaultProps"
  11. @node-click="handleNodeClick"
  12. />
  13. </div>
  14. </el-aside>
  15. </el-scrollbar> -->
  16. <layout-sider
  17. :resize-directions="['right']"
  18. :width="220"
  19. style="margin-right: 10px;"
  20. >
  21. <div
  22. class="JKWTree-tree"
  23. style="height: 70vh;"
  24. >
  25. <h3>工序大废品奖惩记录</h3>
  26. <el-tree
  27. :data="treeData"
  28. highlight-current
  29. @node-click="handleNodeClick"
  30. />
  31. </div>
  32. </layout-sider>
  33. <el-container>
  34. <!-- <el-header>dd</el-header>-->
  35. <el-main>
  36. <div class="gva-search-box">
  37. <el-form
  38. ref="elSearchFormRef"
  39. :inline="true"
  40. :model="searchInfo"
  41. class="demo-form-inline"
  42. :rules="searchRule"
  43. @keyup.enter="onSubmit"
  44. >
  45. <el-form-item>
  46. <el-input
  47. v-model="detailData.image"
  48. :clearable="true"
  49. placeholder="输入工单编号或产品名称"
  50. />
  51. </el-form-item>
  52. <el-form-item>
  53. <el-button
  54. type="primary"
  55. icon="search"
  56. @click="onSubmit"
  57. class="bt"
  58. >查询</el-button>
  59. <el-button
  60. icon="refresh"
  61. type="primary"
  62. @click="onReset"
  63. class="bt"
  64. >切换显示方式</el-button>
  65. <el-button
  66. type="primary"
  67. icon="search"
  68. @click="onAdd"
  69. class="bt"
  70. >新增</el-button>
  71. <el-button
  72. type="primary"
  73. icon="search"
  74. @click="onDel"
  75. class="bt"
  76. >删除</el-button>
  77. </el-form-item>
  78. </el-form>
  79. </div>
  80. <div class="gva-table-box">
  81. <el-table
  82. ref="multipleTable"
  83. style="width: 100%"
  84. border
  85. tooltip-effect="dark"
  86. :data="tableData"
  87. row-key="ID"
  88. :show-overflow-tooltip="true"
  89. highlight-current-row
  90. :row-style="{ height: '20px' }"
  91. :cell-style="{ padding: '0px' }"
  92. :header-row-style="{ height: '20px' }"
  93. :header-cell-style="{ padding: '0px' }"
  94. @selection-change="handleSelectionChange"
  95. @row-dblclick="handleDoubleClick"
  96. @row-click="Click"
  97. >
  98. <el-table-column
  99. type="selection"
  100. width="55"
  101. />
  102. <el-table-column
  103. align="left"
  104. label="工单编号"
  105. prop="sczl_gdbh"
  106. width="120" sortable
  107. />
  108. <el-table-column
  109. align="left"
  110. label="印件名称"
  111. prop="yj_yjmc"
  112. width="210" sortable
  113. />
  114. <el-table-column
  115. align="left"
  116. label="日期"
  117. prop="sczl_rq"
  118. width="100" sortable
  119. />
  120. <el-table-column
  121. align="left"
  122. label="流程单备注"
  123. prop="sczl_numDesc"
  124. width="120" sortable
  125. />
  126. <el-table-column
  127. align="left"
  128. label="联数"
  129. prop="sczl_ls"
  130. width="120" sortable
  131. />
  132. <el-table-column
  133. align="left"
  134. label="责任部门"
  135. prop="责任部门"
  136. width="120" sortable
  137. />
  138. <el-table-column
  139. align="left"
  140. label="大废品数"
  141. prop="sczl_cl"
  142. width="120" sortable
  143. />
  144. <el-table-column
  145. align="left"
  146. label="废品类型"
  147. prop="sczl_fplxA"
  148. width="120" sortable
  149. />
  150. <el-table-column
  151. align="left"
  152. label="废品来源"
  153. prop="sczl_fplxB"
  154. width="120" sortable
  155. />
  156. <el-table-column
  157. align="left"
  158. label="奖励班组"
  159. prop="Jl_bzdh"
  160. width="120" sortable
  161. />
  162. <el-table-column
  163. align="left"
  164. label="检验员工"
  165. prop="JL_bh1"
  166. width="120" sortable
  167. />
  168. <el-table-column
  169. align="left"
  170. label="责任班组"
  171. prop="sczl_bzdh"
  172. width="120" sortable
  173. />
  174. <el-table-column
  175. align="left"
  176. label="责任员工1"
  177. prop="sczl_bh1"
  178. width="120" sortable
  179. />
  180. <el-table-column
  181. align="left"
  182. label="责任员工2"
  183. prop="sczl_bh2"
  184. width="120" sortable
  185. />
  186. <el-table-column
  187. align="left"
  188. label="创建用户"
  189. prop="sys_id"
  190. width="120" sortable
  191. />
  192. <el-table-column
  193. align="left"
  194. label="创建时间"
  195. prop="sys_rq"
  196. width="160" sortable
  197. />
  198. <el-table-column
  199. align="left"
  200. label="UNIQID"
  201. prop="UniqId"
  202. width="120" sortable
  203. />
  204. </el-table>
  205. <div class="gva-pagination">
  206. <el-pagination
  207. layout="total, sizes, prev, pager, next, jumper"
  208. :current-page="page"
  209. :page-size="pageSize"
  210. :page-sizes="[10, 30, 50, 100]"
  211. :total="total"
  212. @current-change="handleCurrentChange"
  213. @size-change="handleSizeChange"
  214. />
  215. </div>
  216. </div>
  217. <el-dialog
  218. v-model="dialogFormVisible"
  219. :before-close="closeDialog"
  220. :title="type === 'create' ? '新增' : '修改'"
  221. destroy-on-close
  222. style="width: 1020px;position: fixed; top: 35%; left: 50%; transform: translate(-50%, -50%);"
  223. >
  224. <el-scrollbar height="70vh">
  225. <el-form
  226. ref="elFormRef"
  227. :model="detailData"
  228. :inline="true"
  229. style="margin-bottom: 0px;"
  230. label-position="right"
  231. :rules="rule"
  232. label-width="80px"
  233. aria-="true"
  234. >
  235. <el-form-item
  236. label="工单编号:"
  237. prop="address"
  238. style="margin-right: 120px;"
  239. >
  240. <el-input
  241. v-model="detailData.sczl_gdbh"
  242. @keydown="ent1($event)"
  243. @blur="getCPMCsubmit()"
  244. style="width: 120px;"
  245. />
  246. </el-form-item>
  247. <el-form-item
  248. label="产品名称:"
  249. prop="image"
  250. >
  251. <el-input
  252. v-model="detailData.Gd_cpmc"
  253. @keydown="ent1($event)"
  254. placeholder="请输入产品名称"
  255. style="width: 450px;"
  256. />
  257. </el-form-item>
  258. </el-form>
  259. <el-form
  260. ref="elFormRef"
  261. :model="detailData"
  262. :inline="true"
  263. label-position="right"
  264. :rules="rule"
  265. label-width="80px"
  266. >
  267. <el-form-item
  268. label="印件号:"
  269. prop="address"
  270. style="margin-right: 120px;"
  271. >
  272. <el-input
  273. v-model="detailData.sczl_yjno"
  274. @keydown="ent1($event)"
  275. @blur="getYJMCsubmit()"
  276. style="width: 120px;"
  277. />
  278. </el-form-item>
  279. <el-form-item
  280. label="印件名称:"
  281. prop="image"
  282. >
  283. <el-input
  284. v-model="detailData.yj_yjmc"
  285. @keydown="ent1($event)"
  286. style="width: 450px;"
  287. />
  288. </el-form-item>
  289. </el-form>
  290. <el-form
  291. ref="elFormRef"
  292. :model="detailData"
  293. :inline="true"
  294. label-position="right"
  295. :rules="rule"
  296. label-width="90px"
  297. >
  298. <el-form-item
  299. label="工序名称:"
  300. prop="address"
  301. >
  302. <el-input
  303. v-model="detailData.sczl_gxmc"
  304. @blur="getGXsubmit()"
  305. @keydown="ent1($event)"
  306. style="width: 300px;"
  307. />
  308. </el-form-item>
  309. <el-form-item prop="image">
  310. <el-input
  311. v-model="detailData.sczl_gxh"
  312. @keydown="ent1($event)"
  313. style="width: 50px;"
  314. />
  315. </el-form-item>
  316. <el-form-item
  317. label="流程单备注:"
  318. prop="image"
  319. >
  320. <el-input
  321. v-model="detailData.sczl_numDesc"
  322. @keydown="ent1($event)"
  323. />
  324. </el-form-item>
  325. </el-form>
  326. <el-form
  327. ref="elFormRef"
  328. :model="detailData"
  329. :inline="true"
  330. label-position="right"
  331. :rules="rule"
  332. label-width="80px"
  333. >
  334. <el-form-item
  335. label="日期:"
  336. prop="address"
  337. style="margin-right: 120px;"
  338. >
  339. <el-input
  340. v-model="detailData.sczl_rq"
  341. @keydown="ent1($event)"
  342. style="width: 120px;"
  343. />
  344. </el-form-item>
  345. <el-form-item
  346. label="废品数量:"
  347. prop="image"
  348. >
  349. <el-input
  350. v-model="detailData.sczl_cl"
  351. @keydown="ent1($event)"
  352. style="width: 120px;"
  353. />
  354. </el-form-item>
  355. <el-form-item
  356. label="联数:"
  357. prop="image"
  358. >
  359. <el-input
  360. v-model="detailData.sczl_ls"
  361. @keydown="ent1($event)"
  362. style="width: 120px;"
  363. />
  364. </el-form-item>
  365. </el-form>
  366. <el-form
  367. ref="elFormRef"
  368. :model="detailData"
  369. :inline="true"
  370. label-position="right"
  371. :rules="rule"
  372. label-width="90px"
  373. >
  374. <el-form-item
  375. label="废品备注:"
  376. prop="address"
  377. >
  378. <el-input
  379. v-model="detailData.sczl_fplxA"
  380. @keydown="ent1($event)"
  381. style="width: 300px;"
  382. />
  383. </el-form-item>
  384. <el-form-item>
  385. <el-checkbox
  386. v-model="detailData"
  387. style="width: 30px;"
  388. @keydown="ent1($event)"
  389. >制程废</el-checkbox>
  390. </el-form-item>
  391. <el-form-item
  392. label="责任部门:"
  393. prop="image"
  394. >
  395. <el-input
  396. v-model="detailData.责任部门"
  397. @keydown="ent1($event)"
  398. style="width: 250px;"
  399. />
  400. </el-form-item>
  401. </el-form>
  402. <el-form
  403. ref="elFormRef"
  404. :model="detailData"
  405. :inline="true"
  406. label-position="right"
  407. :rules="rule"
  408. >
  409. <el-form-item>
  410. <div
  411. class="sub-title"
  412. style="width: 193px; height: 10px;"
  413. />
  414. <div
  415. class="sub-title"
  416. style="width: 83.5px; height: 10px;"
  417. >组员1</div>
  418. <div
  419. class="sub-title"
  420. style="width: 83.5px; height: 10px;"
  421. >组员2</div>
  422. <div
  423. class="sub-title"
  424. style="width: 83.5px; height: 10px;"
  425. >组员3</div>
  426. <div
  427. class="sub-title"
  428. style="width: 83.5px; height: 10px;"
  429. >组员4</div>
  430. <div
  431. class="sub-title"
  432. style="width: 83.5px; height: 10px;"
  433. >组员5</div>
  434. <div
  435. class="sub-title"
  436. style="width: 83.5px; height: 10px;"
  437. >组员6</div>
  438. <div
  439. class="sub-title"
  440. style="width: 83.5px; height: 10px;"
  441. >组员7</div>
  442. <div
  443. class="sub-title"
  444. style="width: 83.5px; height: 10px;"
  445. >组员8</div>
  446. <div
  447. class="sub-title"
  448. style="width: 83.5px; height: 10px;"
  449. >组员9</div>
  450. </el-form-item>
  451. </el-form>
  452. <el-form
  453. ref="elFormRef"
  454. :model="detailData"
  455. :inline="true"
  456. label-position="right"
  457. :rules="rule"
  458. >
  459. <el-form-item>
  460. <div class="sub-title">奖励班组:</div>
  461. <el-input
  462. v-model="detailData.Jl_bzdh"
  463. @keydown="ent1($event)"
  464. style="width: 45px;"
  465. />
  466. <el-input
  467. v-model="detailData.jl_jtbh"
  468. @blur="getJtbhsubmit('1')"
  469. @keydown="ent1($event)"
  470. id="jt"
  471. style="width: 65px;"
  472. />
  473. <el-input
  474. v-model="detailData.JL_bh1"
  475. id="bh1" @blur="GetYg($event, '2')" @keydown="ent($event, 'jt', 'bh1', 'bh2')"
  476. style="width: 85px;"
  477. />
  478. <el-input
  479. v-model="detailData.JL_bh2"
  480. id="bh2" @keydown="ent($event, 'bh1', 'bh2', 'bh3')" @blur="GetYg($event, '3')"
  481. style="width: 85px;"
  482. />
  483. <el-input
  484. v-model="detailData.JL_bh3"
  485. id="bh3" @keydown="ent($event, 'bh2', 'bh3', 'bh4')" @blur="GetYg($event, '4')"
  486. style="width: 85px;"
  487. />
  488. <el-input
  489. v-model="detailData.JL_bh4"
  490. id="bh4" @keydown="ent($event, 'bh3', 'bh4', 'bh5')" @blur="GetYg($event, '5')"
  491. style="width: 85px;"
  492. />
  493. <el-input
  494. v-model="detailData.JL_bh5"
  495. id="bh5" @keydown="ent($event, 'bh4', 'bh5', 'bh6')" @blur="GetYg($event, '6')"
  496. style="width: 85px;"
  497. />
  498. <el-input
  499. v-model="detailData.JL_bh6"
  500. id="bh6" @keydown="ent($event, 'bh5', 'bh6', 'bh7')" @blur="GetYg($event, '7')"
  501. style="width: 85px;"
  502. />
  503. <el-input
  504. v-model="detailData.JL_bh7"
  505. id="bh7" @keydown="ent($event, 'bh6', 'bh7', 'bh8')" @blur="GetYg($event, '8')"
  506. style="width: 85px;"
  507. />
  508. <el-input
  509. v-model="detailData.JL_bh8"
  510. id="bh8" @keydown="ent($event, 'bh7', 'bh8', 'bh9')" @blur="GetYg($event, '9')"
  511. style="width: 85px;"
  512. />
  513. <el-input
  514. v-model="detailData.JL_bh9"
  515. id="bh9"
  516. @keydown="ent($event, 'bh8', 'bh9', 'name1', '9')"
  517. @blur="GetYg($event, '10')"
  518. style="width: 85px;"
  519. />
  520. </el-form-item>
  521. </el-form>
  522. <el-form
  523. ref="elFormRef"
  524. :model="detailData"
  525. :inline="true"
  526. label-position="right"
  527. :rules="rule"
  528. >
  529. <el-form-item>
  530. <div
  531. class="sub-title"
  532. style="width: 182px;"
  533. />
  534. <el-input
  535. v-model="detailData.jlname1"
  536. id="name1"
  537. @keydown="ent1($event)"
  538. style="width: 85px;"
  539. />
  540. <el-input
  541. v-model="detailData.jlname2"
  542. @keydown="ent1($event)"
  543. style="width: 85px;"
  544. />
  545. <el-input
  546. v-model="detailData.jlname3"
  547. @keydown="ent1($event)"
  548. style="width: 85px;"
  549. />
  550. <el-input
  551. v-model="detailData.jlname4"
  552. @keydown="ent1($event)"
  553. style="width: 85px;"
  554. />
  555. <el-input
  556. v-model="detailData.jlname5"
  557. @keydown="ent1($event)"
  558. style="width: 85px;"
  559. />
  560. <el-input
  561. v-model="detailData.jlname6"
  562. @keydown="ent1($event)"
  563. style="width: 85px;"
  564. />
  565. <el-input
  566. v-model="detailData.jlname7"
  567. @keydown="ent1($event)"
  568. style="width: 85px;"
  569. />
  570. <el-input
  571. v-model="detailData.jlname8"
  572. @keydown="ent1($event)"
  573. style="width: 85px;"
  574. />
  575. <el-input
  576. v-model="detailData.jlname9"
  577. @keydown="ent1($event)"
  578. style="width: 85px;"
  579. />
  580. </el-form-item>
  581. </el-form>
  582. <el-form
  583. ref="elFormRef"
  584. :model="detailData"
  585. :inline="true"
  586. label-position="right"
  587. :rules="rule"
  588. >
  589. <el-form-item>
  590. <div
  591. class="sub-title"
  592. style="width: 182px;"
  593. >奖励金额:</div>
  594. <el-input
  595. v-model="detailData.JL_Je1"
  596. @keydown="ent1($event)"
  597. style="width: 85px;"
  598. />
  599. <el-input
  600. v-model="detailData.JL_Je2"
  601. @keydown="ent1($event)"
  602. style="width: 85px;"
  603. />
  604. <el-input
  605. v-model="detailData.JL_Je3"
  606. @keydown="ent1($event)"
  607. style="width: 85px;"
  608. />
  609. <el-input
  610. v-model="detailData.JL_Je4"
  611. @keydown="ent1($event)"
  612. style="width: 85px;"
  613. />
  614. <el-input
  615. v-model="detailData.JL_Je5"
  616. @keydown="ent1($event)"
  617. style="width: 85px;"
  618. />
  619. <el-input
  620. v-model="detailData.JL_Je6"
  621. @keydown="ent1($event)"
  622. style="width: 85px;"
  623. />
  624. <el-input
  625. v-model="detailData.JL_Je7"
  626. @keydown="ent1($event)"
  627. style="width: 85px;"
  628. />
  629. <el-input
  630. v-model="detailData.JL_Je8"
  631. @keydown="ent1($event)"
  632. style="width: 85px;"
  633. />
  634. <el-input
  635. v-model="detailData.JL_Je9"
  636. @keydown="ent1($event)"
  637. style="width: 85px;"
  638. />
  639. </el-form-item>
  640. </el-form>
  641. <el-form
  642. ref="elFormRef"
  643. :model="detailData"
  644. :inline="true"
  645. label-position="right"
  646. :rules="rule"
  647. >
  648. <el-form-item>
  649. <div
  650. class="sub-title"
  651. style="width: 193px; height: 10px;"
  652. />
  653. <div
  654. class="sub-title"
  655. style="width: 83.5px; height: 10px;"
  656. >组员1</div>
  657. <div
  658. class="sub-title"
  659. style="width: 83.5px; height: 10px;"
  660. >组员2</div>
  661. <div
  662. class="sub-title"
  663. style="width: 83.5px; height: 10px;"
  664. >组员3</div>
  665. <div
  666. class="sub-title"
  667. style="width: 83.5px; height: 10px;"
  668. >组员4</div>
  669. <div
  670. class="sub-title"
  671. style="width: 83.5px; height: 10px;"
  672. >组员5</div>
  673. <div
  674. class="sub-title"
  675. style="width: 83.5px; height: 10px;"
  676. >组员6</div>
  677. <div
  678. class="sub-title"
  679. style="width: 83.5px; height: 10px;"
  680. >组员7</div>
  681. <div
  682. class="sub-title"
  683. style="width: 83.5px; height: 10px;"
  684. >组员8</div>
  685. <div
  686. class="sub-title"
  687. style="width: 83.5px; height: 10px;"
  688. >组员9</div>
  689. </el-form-item>
  690. </el-form>
  691. <el-form
  692. ref="elFormRef"
  693. :model="detailData"
  694. :inline="true"
  695. label-position="right"
  696. :rules="rule"
  697. >
  698. <el-form-item>
  699. <div class="sub-title">责任班组:</div>
  700. <el-input
  701. v-model="detailData.sczl_bzdh"
  702. @keydown="ent1($event)"
  703. style="width: 45px;"
  704. />
  705. <el-input
  706. v-model="detailData.sczl_jtbh"
  707. id="jt2"
  708. @blur="getJtbhsubmit('2')"
  709. @keydown="ent1($event)"
  710. style="width: 65px;"
  711. />
  712. <el-input
  713. v-model="detailData.sczl_bh1"
  714. id="dh1" @keydown="ent($event, 'jt2', 'dh1', 'dh2')" @blur="GetYg($event, '13')"
  715. style="width: 85px;"
  716. />
  717. <el-input
  718. v-model="detailData.sczl_bh2"
  719. id="dh2" @keydown="ent($event, 'dh1', 'dh2', 'dh3')" @blur="GetYg($event, '14')"
  720. style="width: 85px;"
  721. />
  722. <el-input
  723. v-model="detailData.sczl_bh3"
  724. id="dh3" @keydown="ent($event, 'dh2', 'dh3', 'dh4')" @blur="GetYg($event, '15')"
  725. style="width: 85px;"
  726. />
  727. <el-input
  728. v-model="detailData.sczl_bh4"
  729. id="dh4" @keydown="ent($event, 'dh3', 'dh4', 'dh5')" @blur="GetYg($event, '16')"
  730. style="width: 85px;"
  731. />
  732. <el-input
  733. v-model="detailData.sczl_bh5"
  734. id="dh5" @keydown="ent($event, 'dh4', 'dh5', 'dh6')" @blur="GetYg($event, '17')"
  735. style="width: 85px;"
  736. />
  737. <el-input
  738. v-model="detailData.sczl_bh6"
  739. id="dh6" @keydown="ent($event, 'dh5', 'dh6', 'dh7')" @blur="GetYg($event, '18')"
  740. style="width: 85px;"
  741. />
  742. <el-input
  743. v-model="detailData.sczl_bh7"
  744. id="dh7" @keydown="ent($event, 'dh6', 'dh7', 'dh8')" @blur="GetYg($event, '19')"
  745. style="width: 85px;"
  746. />
  747. <el-input
  748. v-model="detailData.sczl_bh8"
  749. id="dh8" @keydown="ent($event, 'dh7', 'dh8', 'dh9')" @blur="GetYg($event, '20')"
  750. style="width: 85px;"
  751. />
  752. <el-input
  753. v-model="detailData.sczl_bh9"
  754. id="dh9" @keydown="ent1($event)" @blur="GetYg($event, '21')"
  755. style="width: 85px;"
  756. />
  757. </el-form-item>
  758. </el-form>
  759. <el-form
  760. ref="elFormRef"
  761. :model="detailData"
  762. :inline="true"
  763. label-position="right"
  764. :rules="rule"
  765. >
  766. <el-form-item>
  767. <div
  768. class="sub-title"
  769. style="width: 182px;"
  770. />
  771. <el-input
  772. v-model="detailData.zrname1"
  773. id="name2"
  774. @keydown="ent1($event)"
  775. style="width: 85px;"
  776. />
  777. <el-input
  778. v-model="detailData.zrname2"
  779. @keydown="ent1($event)"
  780. style="width: 85px;"
  781. />
  782. <el-input
  783. v-model="detailData.zrname3"
  784. @keydown="ent1($event)"
  785. style="width: 85px;"
  786. />
  787. <el-input
  788. v-model="detailData.zrname4"
  789. @keydown="ent1($event)"
  790. style="width: 85px;"
  791. />
  792. <el-input
  793. v-model="detailData.zrname5"
  794. @keydown="ent1($event)"
  795. style="width: 85px;"
  796. />
  797. <el-input
  798. v-model="detailData.zrname6"
  799. @keydown="ent1($event)"
  800. style="width: 85px;"
  801. />
  802. <el-input
  803. v-model="detailData.zrname7"
  804. @keydown="ent1($event)"
  805. style="width: 85px;"
  806. />
  807. <el-input
  808. v-model="detailData.zrname8"
  809. @keydown="ent1($event)"
  810. style="width: 85px;"
  811. />
  812. <el-input
  813. v-model="detailData.zrname9"
  814. @keydown="ent1($event)"
  815. style="width: 85px;"
  816. />
  817. </el-form-item>
  818. </el-form>
  819. <el-form
  820. ref="elFormRef"
  821. :model="detailData"
  822. :inline="true"
  823. label-position="right"
  824. :rules="rule"
  825. >
  826. <el-form-item>
  827. <div
  828. class="sub-title"
  829. style="width: 182px;"
  830. >处罚金额:</div>
  831. <el-input
  832. v-model="detailData.sczl_je1"
  833. @keydown="ent1($event)"
  834. style="width: 85px;"
  835. />
  836. <el-input
  837. v-model="detailData.sczl_je2"
  838. @keydown="ent1($event)"
  839. style="width: 85px;"
  840. />
  841. <el-input
  842. v-model="detailData.sczl_je3"
  843. @keydown="ent1($event)"
  844. style="width: 85px;"
  845. />
  846. <el-input
  847. v-model="detailData.sczl_je4"
  848. @keydown="ent1($event)"
  849. style="width: 85px;"
  850. />
  851. <el-input
  852. v-model="detailData.sczl_je5"
  853. @keydown="ent1($event)"
  854. style="width: 85px;"
  855. />
  856. <el-input
  857. v-model="detailData.sczl_je6"
  858. @keydown="ent1($event)"
  859. style="width: 85px;"
  860. />
  861. <el-input
  862. v-model="detailData.sczl_je7"
  863. @keydown="ent1($event)"
  864. style="width: 85px;"
  865. />
  866. <el-input
  867. v-model="detailData.sczl_je8"
  868. @keydown="ent1($event)"
  869. style="width: 85px;"
  870. />
  871. <el-input
  872. v-model="detailData.sczl_je9"
  873. @keydown="ent1($event)"
  874. style="width: 85px;"
  875. />
  876. </el-form-item>
  877. </el-form>
  878. </el-scrollbar>
  879. <template #footer>
  880. <div class="dialog-footer">
  881. <el-button @click="closeDialog">取 消</el-button>
  882. <el-button
  883. type="primary"
  884. @click="enterDialog"
  885. >确 定</el-button>
  886. </div>
  887. </template>
  888. </el-dialog>
  889. <el-dialog v-model="dialogSelectVisible" title="选择" destroy-on-close width="800px" @keydown="selectGX($event)">
  890. <el-table tooltip-effect="dark" :data="selectData" row-key="ID"
  891. highlight-current-row="true" border style="width:100%" @row-dblclick="handleSelectClick" ref="table2">
  892. <el-table-column label="工序名称" width="225">
  893. <template v-slot="{ row }">
  894. {{ row }}
  895. </template>
  896. </el-table-column>
  897. </el-table>
  898. </el-dialog>
  899. <el-dialog v-model="JtbhVisible" title="选择" destroy-on-close width="800px" >
  900. <el-table tooltip-effect="dark" :data="selectDataJtbh" row-key="ID"
  901. highlight-current-row="true" border style="width:100%"
  902. @row-dblclick="SelectClickJtbh"
  903. >
  904. <el-table-column prop="设备编号" label="设备编号" width="150" />
  905. </el-table>
  906. </el-dialog>
  907. <el-dialog
  908. v-model="detailShow"
  909. style="width: 800px"
  910. lock-scroll
  911. :before-close="closeDetailShow"
  912. title="查看详情"
  913. destroy-on-close
  914. >
  915. <el-scrollbar height="550px">
  916. <el-descriptions
  917. column="1"
  918. border
  919. >
  920. <el-descriptions-item label="address字段">
  921. {{ detailData.address }}
  922. </el-descriptions-item>
  923. <el-descriptions-item label="image字段">
  924. {{ detailData.image }}
  925. </el-descriptions-item>
  926. <el-descriptions-item label="name字段">
  927. {{ detailData.name }}
  928. </el-descriptions-item>
  929. </el-descriptions>
  930. </el-scrollbar>
  931. </el-dialog>
  932. </el-main>
  933. </el-container>
  934. </el-container>
  935. </div>
  936. </template>
  937. <script setup>
  938. import { getRewardDetail, getRewardList, getRewardTab, getRewardTabByGd,JunkWorkOrderList,PrintCodeList,
  939. ProcessList,MachineClassList,MachineList,JunkDetailDel,JunkDetailEdit,JunkDetailAdd} from '@/api/mes/job'
  940. import {getYg} from '@/api/jixiaoguanli/jitairibaobiao'
  941. import { createCompany, deleteCompany, deleteCompanyByIds, findCompany, updateCompany } from '@/api/company'
  942. import { Layout, LayoutContent, LayoutHeader, LayoutSider } from '@arco-design/web-vue'
  943. // 全量引入格式化工具 请按需保留
  944. import { ElMessage, ElMessageBox } from 'element-plus'
  945. import { ref, reactive, nextTick, onMounted, onBeforeMount } from 'vue'
  946. import { useUserStore } from '@/pinia/modules/user'
  947. const userStore = useUserStore()
  948. const sys_id='['+userStore.userInfo.userName+'/'+userStore.userInfo.nickName+']'
  949. defineOptions({
  950. name: 'Company'
  951. })
  952. const treeData = ref([])
  953. const displayMod = ref('')
  954. // 侧边栏
  955. const RewardTab = async() => {
  956. const getRewardTabs = await getRewardTab()
  957. if (getRewardTabs.code === 0) {
  958. treeData.value = getRewardTabs.data.map((item) => ({
  959. label: `${item.date.replace(/-/g, '.')}【单据数: ${item.counts}张】`,
  960. params: {
  961. date: item.date.replace(/\./g, '-'),
  962. }
  963. }))
  964. displayMod.value = 'date'
  965. }
  966. }
  967. RewardTab()
  968. const RewardTabByGd = async() => {
  969. const getRewardTabs = await getRewardTabByGd()
  970. if (getRewardTabs.code === 0) {
  971. treeData.value = getRewardTabs.data.map((item) => ({
  972. label: item.label,
  973. params: {
  974. date: item.sczl_gdbh
  975. }
  976. }))
  977. displayMod.value = 'gd'
  978. }
  979. }
  980. const handleNodeClick = (node, check) => {
  981. // 存放当前节点的nodeId
  982. // console.log(node, check)
  983. if (node.params) {
  984. params.date = node.params.date
  985. getTableData()
  986. }
  987. }
  988. // 切换显示方式
  989. const onReset = () => {
  990. if (displayMod.value === 'date') {
  991. RewardTabByGd()
  992. } else {
  993. RewardTab()
  994. }
  995. }
  996. // 验证规则
  997. const rule = reactive({
  998. })
  999. const searchRule = reactive({
  1000. createdAt: [
  1001. { validator: (rule, value, callback) => {
  1002. if (searchInfo.value.startCreatedAt && !searchInfo.value.endCreatedAt) {
  1003. callback(new Error('请填写结束日期'))
  1004. } else if (!searchInfo.value.startCreatedAt && searchInfo.value.endCreatedAt) {
  1005. callback(new Error('请填写开始日期'))
  1006. } else if (searchInfo.value.startCreatedAt && searchInfo.value.endCreatedAt && (searchInfo.value.startCreatedAt.getTime() === searchInfo.value.endCreatedAt.getTime() || searchInfo.value.startCreatedAt.getTime() > searchInfo.value.endCreatedAt.getTime())) {
  1007. callback(new Error('开始日期应当早于结束日期'))
  1008. } else {
  1009. callback()
  1010. }
  1011. }, trigger: 'change' }
  1012. ],
  1013. })
  1014. const elFormRef = ref()
  1015. const elSearchFormRef = ref()
  1016. // =========== 表格控制部分 ===========
  1017. const page = ref(1)
  1018. const total = ref(0)
  1019. const pageSize = ref(10)
  1020. const tableData = ref([])
  1021. const searchInfo = ref({})
  1022. const params = {
  1023. date: '',
  1024. page: page.value.toString(),
  1025. limit: pageSize.value.toString(),
  1026. }
  1027. // 搜索
  1028. const onSubmit = () => {
  1029. elSearchFormRef.value?.validate(async(valid) => {
  1030. if (!valid) return
  1031. page.value = 1
  1032. pageSize.value = 10
  1033. getTableData()
  1034. })
  1035. }
  1036. // 分页
  1037. const handleSizeChange = (val) => {
  1038. pageSize.value = val
  1039. params.limit = val.toString()
  1040. getTableData()
  1041. }
  1042. // 修改页面容量
  1043. const handleCurrentChange = (val) => {
  1044. page.value = val
  1045. params.page = val.toString()
  1046. getTableData()
  1047. }
  1048. // 查看详情
  1049. const detailData = reactive({})
  1050. const handleDoubleClick = async(row) => {
  1051. type.value = 'update';
  1052. const { UniqId } = row
  1053. console.log(UniqId)
  1054. const res = await getRewardDetail({ UniqId })
  1055. console.log(res)
  1056. if (res.code === 0) {
  1057. console.log(res)
  1058. Object.assign(detailData, res.data[0])
  1059. dialogFormVisible.value = true
  1060. }
  1061. }
  1062. let lastCellValue=ref()
  1063. // 单击表格操作
  1064. function Click(row, column, event) {
  1065. lastCellValue= row['UniqId'];
  1066. console.log(lastCellValue)
  1067. }
  1068. // 查询
  1069. const getTableData = async() => {
  1070. const table = await getRewardList(params)
  1071. if (table.code === 0) {
  1072. tableData.value = table.data.rows
  1073. total.value = table.data.total
  1074. }
  1075. }
  1076. const ADD=ref('0')
  1077. //新增
  1078. function onAdd() {
  1079. ADD.value='新增'
  1080. type.value = 'create'
  1081. GetInfo(lastCellValue)
  1082. // Productionadd()
  1083. }
  1084. // getTableData()
  1085. //获取详细信息
  1086. const GetInfo = async (value) => {
  1087. const res = await getRewardDetail({ UniqId:value })
  1088. if (res.code === 0) {
  1089. console.log(res)
  1090. Object.assign(detailData, res.data[0])
  1091. dialogFormVisible.value = true
  1092. }
  1093. }
  1094. //工单编号回车事件
  1095. const getCPMCsubmit = () => {
  1096. if(detailData.sczl_gdbh!=''){
  1097. JunkWorkOrderList({search:detailData.sczl_gdbh}).then(response=>{
  1098. if (response.code === 0) {
  1099. detailData.Gd_cpmc = response.data[0].产品名称
  1100. }else{
  1101. detailData.Gd_cpmch = '';
  1102. }
  1103. });
  1104. PrintCodeList({workorder:detailData.sczl_gdbh}).then(response=>{
  1105. if (response.code === 0) {
  1106. detailData.sczl_yjno = response.data[0].印件号
  1107. detailData.yj_yjmc = response.data[0].印件名称
  1108. }else{
  1109. detailData.sczl_yjno = ''
  1110. detailData.yj_yjmc = ''
  1111. }
  1112. });
  1113. }else{
  1114. ElMessage({
  1115. type: 'error',
  1116. message: '请注意, 工单编号输入空置, 除非有特殊需要!'
  1117. })
  1118. }
  1119. }
  1120. //印件号失去焦点事件
  1121. // const getYJMCsubmit = () => {
  1122. // if(detailData.sczl_gdbh!='' && formData.value.sczl_yjno!=''){
  1123. // //获取印件名称
  1124. // productionYjmc({gdbh:formData.value.sczl_gdbh,yjno:formData.value.sczl_yjno}).then(response=>{
  1125. // if (response.code === 0) {
  1126. // formData.value.yj_yjmc = response.data.yj_yjmc
  1127. // gxmc.value = response.data.gxmc
  1128. // formData.value.sczl_gxmc = gxmc.value.sczl_gxmc;
  1129. // setColorReadonly('印件名称')
  1130. // }else{
  1131. // ElMessage({
  1132. // type: 'error',
  1133. // message: '印件编号不存在, 将恢复默认值, 请仔细确认数据准确性!'
  1134. // })
  1135. // formData.value.sczl_yjno = yjnoArr.value[0];
  1136. // formData.value.yj_yjmc = '';
  1137. // gxmc.value = '';
  1138. // }
  1139. // });
  1140. // }else{
  1141. // ElMessage({
  1142. // type: 'error',
  1143. // message: '印件编号不存在, 将恢复默认值, 请仔细确认数据准确性!'
  1144. // })
  1145. // formData.value.sczl_yjno = yjnoArr.value[0];
  1146. // formData.value.yj_yjmc = '';
  1147. // gxmc.value = '';
  1148. // }
  1149. // }
  1150. const dialogSelectVisible=ref(false)
  1151. const selectData=reactive([])
  1152. //工序失去焦点事件
  1153. const getGXsubmit = () => {
  1154. //弹出选择
  1155. ProcessList({workorder:detailData.sczl_gdbh,yjno: detailData.sczl_yjno}).then(response=>{
  1156. if (response.code === 0) {
  1157. selectData.splice(0, selectData.length, ...response.data)
  1158. console.log(selectData)
  1159. dialogSelectVisible.value=true
  1160. }
  1161. })
  1162. }
  1163. // 工单选择框
  1164. const handleSelectClick = (row, column, event) => {
  1165. console.log(row)
  1166. detailData.sczl_gxmc=row
  1167. dialogSelectVisible.value=false
  1168. }
  1169. //机台选择
  1170. const selectDataJtbh = reactive([])
  1171. const JtbhVisible = ref(false)
  1172. const SelectClickJtbh = (row, column, event) => {
  1173. const {设备编号 } = row
  1174. if(jtbh.value==='JL'){
  1175. detailData.jl_jtbh=row.设备编号
  1176. }else if(jtbh.value==='ZR'){
  1177. detailData.sczl_jtbh=row.设备编号
  1178. }
  1179. JtbhVisible.value = false
  1180. }
  1181. const jtbh=ref()
  1182. //机台失去焦点事件
  1183. const getJtbhsubmit = (value) => {
  1184. if(value==='1'){
  1185. jtbh.value='JL'
  1186. }else if(value==='2'){
  1187. jtbh.value='ZR'
  1188. }
  1189. console.log(jtbh.value)
  1190. MachineList().then(response=>{
  1191. if (response.code === 0) {
  1192. selectDataJtbh.splice(0, selectDataJtbh.length, ...response.data)
  1193. JtbhVisible.value=true
  1194. }
  1195. })
  1196. }
  1197. //获取员工信息
  1198. const GetYg = (event, inputName) => {
  1199. console.log(inputName);
  1200. var num = parseInt(inputName) - 1;
  1201. if (num >= 1 && num <= 10) {
  1202. if(detailData['JL_bh' + num]==undefined){
  1203. return
  1204. }
  1205. getYg({ sczl_bh: detailData['JL_bh' + num] }).then(response => {
  1206. detailData['jlname' + num] = response.data[0].ygxm;
  1207. detailData['JL_bh' + num] = response.data[0].员工编号;
  1208. });
  1209. } else if (num >= 10 && num <= 21) {
  1210. if(detailData['sczl_bh' + (num - 11)]==undefined){
  1211. return
  1212. }
  1213. getYg({ sczl_bh: detailData['sczl_bh' + (num - 11)] }).then(response => {
  1214. detailData['zrname' + (num - 11)] = response.data[0].ygxm;
  1215. detailData['sczl_bh' + (num - 11)] = response.data[0].员工编号;
  1216. });
  1217. }
  1218. };
  1219. // ============== 表格控制部分结束 ===============
  1220. // 获取需要的字典 可能为空 按需保留
  1221. const setOptions = async() => {
  1222. }
  1223. // 获取需要的字典 可能为空 按需保留
  1224. setOptions()
  1225. // 多选数据
  1226. const multipleSelection = ref([])
  1227. // 多选
  1228. const handleSelectionChange = (val) => {
  1229. multipleSelection.value = val
  1230. }
  1231. // 删除行
  1232. const deleteRow = (row) => {
  1233. ElMessageBox.confirm('确定要删除吗?', '提示', {
  1234. confirmButtonText: '确定',
  1235. cancelButtonText: '取消',
  1236. type: 'warning'
  1237. }).then(() => {
  1238. deleteCompanyFunc(row)
  1239. })
  1240. }
  1241. // 批量删除控制标记
  1242. const deleteVisible = ref(false)
  1243. // 多选删除
  1244. const onDelete = async() => {
  1245. const ids = []
  1246. if (multipleSelection.value.length === 0) {
  1247. ElMessage({
  1248. type: 'warning',
  1249. message: '请选择要删除的数据'
  1250. })
  1251. return
  1252. }
  1253. multipleSelection.value &&
  1254. multipleSelection.value.map(item => {
  1255. ids.push(item.ID)
  1256. })
  1257. const res = await deleteCompanyByIds({ ids })
  1258. if (res.code === 0) {
  1259. ElMessage({
  1260. type: 'success',
  1261. message: '删除成功'
  1262. })
  1263. if (tableData.value.length === ids.length && page.value > 1) {
  1264. page.value--
  1265. }
  1266. deleteVisible.value = false
  1267. getTableData()
  1268. }
  1269. }
  1270. // 行为控制标记(弹窗内部需要增还是改)
  1271. const type = ref('')
  1272. // 删除行
  1273. const deleteCompanyFunc = async(row) => {
  1274. const res = await deleteCompany({ ID: row.ID })
  1275. if (res.code === 0) {
  1276. ElMessage({
  1277. type: 'success',
  1278. message: '删除成功'
  1279. })
  1280. if (tableData.value.length === 1 && page.value > 1) {
  1281. page.value--
  1282. }
  1283. getTableData()
  1284. }
  1285. }
  1286. // 弹窗控制标记
  1287. const dialogFormVisible = ref(false)
  1288. // 查看详情控制标记
  1289. const detailShow = ref(false)
  1290. // 打开详情弹窗
  1291. const openDetailShow = () => {
  1292. detailShow.value = true
  1293. }
  1294. // 打开详情
  1295. const getDetails = async(row) => {
  1296. // 打开弹窗
  1297. const res = await findCompany({ ID: row.ID })
  1298. if (res.code === 0) {
  1299. detailData.value = res.data.recompany
  1300. openDetailShow()
  1301. }
  1302. }
  1303. // 关闭详情弹窗
  1304. const closeDetailShow = () => {
  1305. detailShow.value = false
  1306. detailData.value = {
  1307. address: '',
  1308. image: '',
  1309. name: '',
  1310. }
  1311. }
  1312. //删除
  1313. function onDel() {
  1314. Del()
  1315. }
  1316. // 删除
  1317. const Del = async() => {
  1318. const res = await JunkDetailDel({ UniqId:lastCellValue})
  1319. if (res.code === 0) {
  1320. ElMessage({
  1321. type: 'success',
  1322. message: '成功'
  1323. })
  1324. getTableData()
  1325. }else{
  1326. ElMessage({
  1327. type: 'error',
  1328. message: '失败'
  1329. })
  1330. }
  1331. }
  1332. // 打开弹窗
  1333. const openDialog = () => {
  1334. type.value = 'create'
  1335. dialogFormVisible.value = true
  1336. }
  1337. // 关闭弹窗
  1338. const closeDialog = () => {
  1339. dialogFormVisible.value = false
  1340. detailData.value = {
  1341. address: '',
  1342. image: '',
  1343. name: '',
  1344. }
  1345. }
  1346. // 弹窗确定
  1347. const enterDialog = async() => {
  1348. if (type.value === 'update') {
  1349. SubmitDailyProduction()
  1350. } else if (type.value === 'create') {
  1351. add()
  1352. }
  1353. // SubmitDailyProduction()
  1354. // elFormRef.value?.validate(async(valid) => {
  1355. // if (!valid) return
  1356. // let res
  1357. // switch (type.value) {
  1358. // case 'create':
  1359. // res = await createCompany(detailData.value)
  1360. // break
  1361. // case 'update':
  1362. // res = await updateCompany(detailData.value)
  1363. // break
  1364. // default:
  1365. // res = await createCompany(detailData.value)
  1366. // break
  1367. // }
  1368. // if (res.code === 0) {
  1369. // ElMessage({
  1370. // type: 'success',
  1371. // message: '创建/更改成功'
  1372. // })
  1373. // closeDialog()
  1374. // getTableData()
  1375. // }
  1376. // })
  1377. }
  1378. //日报表上传
  1379. const SubmitDailyProduction = async () => {
  1380. const restoredData = {
  1381. sczl_gdbh:detailData.sczl_gdbh,
  1382. sczl_yjno:detailData.sczl_yjno,
  1383. sczl_gxh:detailData.sczl_gxh,
  1384. sczl_gxmc: detailData.sczl_gxmc,
  1385. sczl_numDesc: detailData.sczl_numDesc,
  1386. sczl_bh1: detailData.sczl_bh1,
  1387. sczl_bh2: detailData.sczl_bh2,
  1388. sczl_bh3: detailData.sczl_bh3,
  1389. sczl_bh4: detailData.sczl_bh4,
  1390. sczl_bh5: detailData.sczl_bh5,
  1391. sczl_bh6: detailData.sczl_bh6,
  1392. sczl_bh7: detailData.sczl_bh7,
  1393. sczl_bh8: detailData.sczl_bh8,
  1394. sczl_bh9: detailData.sczl_bh9,
  1395. sczl_bh10: '',
  1396. sczl_je1: detailData.sczl_je1,
  1397. sczl_je2: detailData.sczl_je2,
  1398. sczl_je3: detailData.sczl_je3,
  1399. sczl_je4: detailData.sczl_je4,
  1400. sczl_je5: detailData.sczl_je5,
  1401. sczl_je6: detailData.sczl_je6,
  1402. sczl_je7: detailData.sczl_je7,
  1403. sczl_je8: detailData.sczl_je8,
  1404. sczl_je9: detailData.sczl_je9,
  1405. sczl_je10: '',
  1406. JL_bh1: detailData.JL_bh1,
  1407. JL_bh2: detailData.JL_bh2,
  1408. JL_bh3: detailData.JL_bh3,
  1409. JL_bh4: detailData.JL_bh4,
  1410. JL_bh5: detailData.JL_bh5,
  1411. JL_bh6: detailData.JL_bh6,
  1412. JL_bh7: detailData.JL_bh7,
  1413. JL_bh8: detailData.JL_bh8,
  1414. JL_bh9: detailData.JL_bh9,
  1415. JL_bh10:'',
  1416. JL_Je1: detailData.JL_Je1,
  1417. JL_Je2: detailData.JL_Je2,
  1418. JL_Je3: detailData.JL_Je3,
  1419. JL_Je4: detailData.JL_Je4,
  1420. JL_Je5: detailData.JL_Je5,
  1421. JL_Je6: detailData.JL_Je6,
  1422. JL_Je7: detailData.JL_Je7,
  1423. JL_Je8: detailData.JL_Je8,
  1424. JL_Je9: detailData.JL_Je9,
  1425. JL_Je10: '',
  1426. sczl_rq: detailData.sczl_rq,
  1427. sczl_ls: detailData.sczl_ls,
  1428. sczl_fplxA: detailData.sczl_fplxA,
  1429. sczl_fplxB: '0',
  1430. 责任部门: detailData.责任部门,
  1431. sczl_cl: detailData.sczl_cl,
  1432. jl_jtbh: detailData.jl_jtbh,
  1433. Jl_bzdh: detailData.Jl_bzdh,
  1434. sczl_jtbh: detailData.sczl_jtbh,
  1435. sczl_bzdh: detailData.sczl_bzdh,
  1436. sys_id: sys_id,
  1437. UniqId:lastCellValue
  1438. }
  1439. console.log(restoredData)
  1440. // console.log(formData3.value.formattedArray)
  1441. const response = await JunkDetailEdit(restoredData);
  1442. console.log(response)
  1443. if (response.code === 0) {
  1444. ElMessage({
  1445. type: 'success',
  1446. message: '成功'
  1447. })
  1448. dialogFormVisible.value = false
  1449. }
  1450. getTableData()
  1451. }
  1452. const add = async () => {
  1453. const restoredData = {
  1454. sczl_gdbh:detailData.sczl_gdbh,
  1455. sczl_yjno:detailData.sczl_yjno,
  1456. sczl_gxh:detailData.sczl_gxh,
  1457. sczl_gxmc: detailData.sczl_gxmc,
  1458. sczl_numDesc: detailData.sczl_numDesc,
  1459. sczl_bh1: detailData.sczl_bh1,
  1460. sczl_bh2: detailData.sczl_bh2,
  1461. sczl_bh3: detailData.sczl_bh3,
  1462. sczl_bh4: detailData.sczl_bh4,
  1463. sczl_bh5: detailData.sczl_bh5,
  1464. sczl_bh6: detailData.sczl_bh6,
  1465. sczl_bh7: detailData.sczl_bh7,
  1466. sczl_bh8: detailData.sczl_bh8,
  1467. sczl_bh9: detailData.sczl_bh9,
  1468. sczl_bh10: '',
  1469. sczl_je1: detailData.sczl_je1,
  1470. sczl_je2: detailData.sczl_je2,
  1471. sczl_je3: detailData.sczl_je3,
  1472. sczl_je4: detailData.sczl_je4,
  1473. sczl_je5: detailData.sczl_je5,
  1474. sczl_je6: detailData.sczl_je6,
  1475. sczl_je7: detailData.sczl_je7,
  1476. sczl_je8: detailData.sczl_je8,
  1477. sczl_je9: detailData.sczl_je9,
  1478. sczl_je10: '',
  1479. JL_bh1: detailData.JL_bh1,
  1480. JL_bh2: detailData.JL_bh2,
  1481. JL_bh3: detailData.JL_bh3,
  1482. JL_bh4: detailData.JL_bh4,
  1483. JL_bh5: detailData.JL_bh5,
  1484. JL_bh6: detailData.JL_bh6,
  1485. JL_bh7: detailData.JL_bh7,
  1486. JL_bh8: detailData.JL_bh8,
  1487. JL_bh9: detailData.JL_bh9,
  1488. JL_bh10:'',
  1489. JL_Je1: detailData.JL_Je1,
  1490. JL_Je2: detailData.JL_Je2,
  1491. JL_Je3: detailData.JL_Je3,
  1492. JL_Je4: detailData.JL_Je4,
  1493. JL_Je5: detailData.JL_Je5,
  1494. JL_Je6: detailData.JL_Je6,
  1495. JL_Je7: detailData.JL_Je7,
  1496. JL_Je8: detailData.JL_Je8,
  1497. JL_Je9: detailData.JL_Je9,
  1498. JL_Je10: '',
  1499. sczl_rq: detailData.sczl_rq,
  1500. sczl_ls: detailData.sczl_ls,
  1501. sczl_fplxA: detailData.sczl_fplxA,
  1502. sczl_fplxB: '0',
  1503. 责任部门: detailData.责任部门,
  1504. sczl_cl: detailData.sczl_cl,
  1505. jl_jtbh: detailData.jl_jtbh,
  1506. Jl_bzdh: detailData.Jl_bzdh,
  1507. sczl_jtbh: detailData.sczl_jtbh,
  1508. sczl_bzdh: detailData.sczl_bzdh,
  1509. sys_id: sys_id,
  1510. }
  1511. console.log(restoredData)
  1512. // console.log(formData3.value.formattedArray)
  1513. const response = await JunkDetailAdd(restoredData);
  1514. console.log(response)
  1515. if (response.code === 0) {
  1516. ElMessage({
  1517. type: 'success',
  1518. message: '成功'
  1519. })
  1520. dialogFormVisible.value = false
  1521. }
  1522. getTableData()
  1523. }
  1524. //键盘 input框跳转
  1525. const ent = (event,id1,id2,id3) => {
  1526. if (event.keyCode === 13 || event.keyCode === 40) { // Enter 或向下箭头
  1527. if(id3!=''){
  1528. document.getElementById(id3).focus()
  1529. }
  1530. } else if (event.keyCode === 38) { // 向上箭头
  1531. if(id1!=''){
  1532. document.getElementById(id1).focus()
  1533. }
  1534. }else if (event.keyCode === 8) { // 删除箭头
  1535. if(id1!='' && document.getElementById(id2).value===''){
  1536. document.getElementById(id1).focus()
  1537. }
  1538. }else if (event.keyCode === 37) { // 向左箭头
  1539. if(id1!='' && document.getElementById(id2).selectionStart==0){
  1540. document.getElementById(id1).focus()
  1541. }
  1542. }else if (event.keyCode === 39) { // 向右箭头
  1543. if(id3!='' && document.getElementById(id2).selectionStart == document.getElementById(id2).value.length){
  1544. document.getElementById(id3).focus()
  1545. }
  1546. }
  1547. }
  1548. const ent1 = (event) => {
  1549. const inputs = document.getElementsByTagName('input');
  1550. const currentIndex = Array.from(inputs).indexOf(event.target);
  1551. if (event.keyCode === 13 || event.keyCode === 40) { // Enter 或向下箭头
  1552. for (let i = currentIndex + 1; i < inputs.length; i++) {
  1553. if (!inputs[i].readOnly) {
  1554. nextTick(()=>{
  1555. inputs[i].focus();
  1556. inputs[i].select();
  1557. })
  1558. break;
  1559. }
  1560. }
  1561. } else if (event.keyCode === 38) { // 向上箭头
  1562. for (let i = currentIndex - 1; i >= 0; i--) {
  1563. if (!inputs[i].readOnly) {
  1564. nextTick(()=>{
  1565. inputs[i].focus();
  1566. inputs[i].select();
  1567. })
  1568. break;
  1569. }
  1570. }
  1571. } else if (event.keyCode === 8) { // 删除箭头
  1572. if (event.target.selectionStart === 0) {
  1573. for (let i = currentIndex - 1; i >= 0; i--) {
  1574. if (!inputs[i].readOnly) {
  1575. nextTick(()=>{
  1576. inputs[i].focus();
  1577. inputs[i].setSelectionRange(0, 0);
  1578. inputs[i].select(); // 全选输入框内容
  1579. })
  1580. break;
  1581. }
  1582. }
  1583. }
  1584. } else if (event.keyCode === 37) { // 向左箭头
  1585. if (event.target.selectionStart === 0) {
  1586. for (let i = currentIndex - 1; i >= 0; i--) {
  1587. if (!inputs[i].readOnly) {
  1588. nextTick(()=>{
  1589. inputs[i].focus();
  1590. inputs[i].select();
  1591. })
  1592. break;
  1593. }
  1594. }
  1595. }
  1596. } else if (event.keyCode === 39) { // 向右箭头
  1597. if (event.target.selectionStart === event.target.value.length) {
  1598. for (let i = currentIndex + 1; i < inputs.length; i++) {
  1599. if (!inputs[i].readOnly) {
  1600. nextTick(()=>{
  1601. inputs[i].focus();
  1602. inputs[i].select();
  1603. })
  1604. break;
  1605. }
  1606. }
  1607. }
  1608. }
  1609. }
  1610. </script>
  1611. <style scoped>
  1612. :deep(.el-table td .cell) {
  1613. line-height: 30px !important;
  1614. }
  1615. .JKWTree-container {
  1616. display: flex;
  1617. }
  1618. /* 选中某行时的背景色 */
  1619. :deep(.el-table__body tr.current-row) > td {
  1620. background: #ff80ff !important;
  1621. }
  1622. .JKWTree-tree {
  1623. width: 300px;
  1624. background-color: #fff;
  1625. padding: 10px;
  1626. margin-right: 20px;
  1627. }
  1628. .JKWTree-tree h3 {
  1629. font-size: 15px;
  1630. font-weight: 700;
  1631. margin: 10px 0;
  1632. }
  1633. .JKWTree-content {
  1634. flex: 1;
  1635. }
  1636. .bt {
  1637. margin-left: 2px !important;
  1638. padding: 3px !important;
  1639. font-size: 12px;
  1640. }
  1641. </style>