rewards.vue 51 KB

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