chengpinrucang.vue 26 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971
  1. <template>
  2. <div>
  3. <!-- 左侧树形结构 -->
  4. <el-container>
  5. <el-aside width="250px">
  6. <div class="JKWTree-tree">
  7. <h3>成品入仓管理</h3>
  8. <el-tree :data="treeData" :props="defaultProps" highlight-current="true"
  9. @node-click="handleNodeClick"></el-tree>
  10. </div>
  11. </el-aside>
  12. <el-container>
  13. <el-main>
  14. <!-- 按钮区域 -->
  15. <div class="gva-table-box">
  16. <div class="gva-btn-list">
  17. <el-row :span="6">
  18. <el-input v-model="positionvalue" placeholder="输入工单编号或产品名称" />
  19. </el-row>
  20. <el-button type="primary" :icon="Search" @click="onSearch">搜索</el-button>
  21. <el-button type="primary" @click="onDel">删除</el-button>
  22. <el-button type="primary" @click="onSMB">入仓末板数据统计</el-button>
  23. <el-button type="primary" @click="onDay">各日统计</el-button>
  24. <el-button type="primary" @click="onAdd">新增</el-button>
  25. <div style="margin-left: auto;">
  26. <el-button type="primary" :icon="Download" @click="exportExcel">导出到Excel</el-button>
  27. </div>
  28. </div>
  29. <!-- 数据展示 -->
  30. <el-table ref="multipleTable" style="width: 100%" tooltip-effect="dark" :data="tableData" row-key="ID"
  31. highlight-current-row="true" border @selection-change="handleSelectionChange" :show-overflow-tooltip="true" @row-dblclick="doubleClick">
  32. <el-table-column type="selection" width="55" />
  33. <el-table-column align="left" label="入仓类型" prop="入仓类型" width="120"/>
  34. <el-table-column align="left" label="仓库编号" prop="仓库编号" width="120"/>
  35. <el-table-column align="left" label="仓库名称" prop="仓库名称" width="120"/>
  36. <el-table-column align="left" label="入仓单号" prop="jjcp_num" width="120"/>
  37. <el-table-column align="left" label="工单编号" prop="jjcp_gdbh" width="160"/>
  38. <el-table-column align="left" label="印件号" prop="jjcp_yjno" width="160"/>
  39. <el-table-column align="left" label="入仓数量" prop="jjcp_sl" width="120"/>
  40. <el-table-column align="left" label="累计入仓数量" prop="jjcp_sls" width="120"/>
  41. <el-table-column align="left" label="订单数量" prop="订单数量" width="120"/>
  42. <el-table-column align="left" label="完成率" prop="完成率" width="120"/>
  43. <el-table-column align="left" label="单位" prop="jjcp_dw" width="120"/>
  44. <el-table-column align="left" label="入仓日期" prop="jjcp_sj" width="160"/>
  45. <el-table-column align="left" label="首末版" prop="jjcp_smb" width="160"/>
  46. <el-table-column align="left" label="印件代号" prop="jjcp_cpdh" width="120"/>
  47. <el-table-column align="left" label="印件名称" prop="jjcp_cpmc" width="120"/>
  48. <el-table-column align="left" label="产品编号" prop="成品编码" width="120"/>
  49. <el-table-column align="left" label="产品名称" prop="成品名称" width="120"/>
  50. <el-table-column align="left" label="客户料号" prop="客户料号" width="120"/>
  51. <el-table-column align="left" label="备注" prop="jjcp_desc" width="160"/>
  52. <el-table-column align="left" label="客户编号" prop="客户编号" width="160"/>
  53. <el-table-column align="left" label="客户名称" prop="Gd_客户名称" width="120"/>
  54. <el-table-column align="left" label="最近入仓日期" prop="最近入仓日期" width="120"/>
  55. <el-table-column align="left" label="机型备注" prop="机型备注" width="120"/>
  56. <el-table-column align="left" label="创建用户" prop="Sys_id" width="120"/>
  57. <el-table-column align="left" label="创建时间" prop="sys_rq" width="160"/>
  58. <el-table-column align="left" label="修改时间" prop="mod_rq" width="160"/>
  59. <el-table-column align="left" label="UNIQID" prop="UniqId" width="120"/>
  60. </el-table>
  61. <!-- 分页 -->
  62. <div class="gva-pagination">
  63. <el-pagination layout="total, sizes, prev, pager, next, jumper" v-model:current-page="page"
  64. v-model:page-size="limit"
  65. :page-sizes="[10, 30, 50, 100]" :total="total" @current-change="handleCurrentChange"
  66. @size-change="handleSizeChange" />
  67. </div>
  68. </div>
  69. <!-- 弹出框 -->
  70. <el-dialog v-model="dialogFormVisible" :before-close="closeDialog" :title="type === 'create' ? '添加' : '修改'"
  71. destroy-on-close width="1200px">
  72. <!-- <el-scrollbar height="500px"> -->
  73. <el-form :model="formData" label-position="left" ref="elFormRef" :rules="rule">
  74. <el-row :gutter="20">
  75. <el-col :span="4">
  76. <el-form-item label="入仓类型" prop="id">
  77. <el-input v-model="formData.入仓类型" :clearable="true" placeholder="" />
  78. </el-form-item>
  79. </el-col>
  80. <el-col :span="6">
  81. <el-form-item label="仓库" prop="name">
  82. <el-row :gutter="20">
  83. <el-col :span="12">
  84. <el-input v-model="formData.仓库编号" @keyup.enter.native="getCKsubmit" :clearable="true" placeholder="ZT01733" />
  85. </el-col>
  86. <el-col :span="12">
  87. <el-input v-model="formData.仓库名称" :clearable="true" placeholder="" />
  88. </el-col>
  89. </el-row>
  90. </el-form-item>
  91. </el-col>
  92. </el-row>
  93. <el-row :gutter="20">
  94. <el-col :span="4">
  95. <el-form-item label="单据编号" prop="id">
  96. <el-input v-model="formData.jjcp_num" :clearable="true" placeholder="" />
  97. </el-form-item>
  98. </el-col>
  99. </el-row>
  100. <el-row :gutter="20">
  101. <el-col :span="4">
  102. <el-form-item label="工单编号" prop="id">
  103. <el-input v-model="formData.jjcp_gdbh" @keyup.enter.native="getGDsubmit" :clearable="true" placeholder="" />
  104. </el-form-item>
  105. </el-col>
  106. <el-col :span="6">
  107. <el-form-item label="印件号" prop="name">
  108. <el-row :gutter="20">
  109. <el-col :span="12">
  110. <el-input v-model="formData.jjcp_yjno" :clearable="true" placeholder="" />
  111. </el-col>
  112. </el-row>
  113. </el-form-item>
  114. </el-col>
  115. <el-col :span="4">
  116. <el-form-item label="订单编号" prop="name">
  117. <el-row :gutter="20">
  118. <el-col :span="12">
  119. <el-input v-model="formData.订单编号" :clearable="true" placeholder="" />
  120. </el-col>
  121. </el-row>
  122. </el-form-item>
  123. </el-col>
  124. </el-row>
  125. <el-row :gutter="20">
  126. <el-col :span="4">
  127. <el-form-item label="印件编号" prop="id">
  128. <el-input v-model="formData.jjcp_cpdh" :clearable="true" placeholder="" />
  129. </el-form-item>
  130. </el-col>
  131. <el-col :span="4">
  132. <el-input v-model="formData.jjcp_cpmc" :clearable="true" placeholder="" />
  133. </el-col>
  134. </el-row>
  135. <el-row :gutter="20">
  136. <el-col :span="4">
  137. <el-form-item label="产品编号" prop="id">
  138. <el-input v-model="formData.jjcp_cpdh"@keyup.enter.native="getSLsubmit" :clearable="true" placeholder="" />
  139. </el-form-item>
  140. </el-col>
  141. <el-col :span="4">
  142. <el-input v-model="formData.jjcp_cpmc" :clearable="true" placeholder="" />
  143. </el-col>
  144. </el-row>
  145. <el-row :gutter="20">
  146. <el-col :span="4">
  147. <el-form-item label="客户料号" prop="id">
  148. <el-input v-model="formData.客户料号" :clearable="true" placeholder="" />
  149. </el-form-item>
  150. </el-col>
  151. </el-row>
  152. <el-row :gutter="20">
  153. <el-col :span="4">
  154. <el-form-item label="首末版" prop="id">
  155. <el-input v-model="formData.jjcp_smb" :clearable="true" placeholder="" />
  156. </el-form-item>
  157. </el-col>
  158. <el-col :span="4">
  159. <el-form-item label="入仓时间" prop="id">
  160. <el-input v-model="formData.jjcp_sj" :clearable="true" placeholder="" />
  161. </el-form-item>
  162. </el-col>
  163. </el-row>
  164. <el-row :gutter="20">
  165. <el-col :span="4">
  166. <el-form-item label="入仓数量" prop="id">
  167. <el-input v-model="formData.jjcp_sl" :clearable="true" placeholder="" />
  168. </el-form-item>
  169. </el-col>
  170. <el-col :span="4">
  171. <el-form-item label="入仓单位" prop="id">
  172. <el-input v-model="formData.jjcp_dw" :clearable="true" placeholder="" />
  173. </el-form-item>
  174. </el-col>
  175. </el-row>
  176. <el-row :gutter="20">
  177. <el-col :span="4">
  178. <el-form-item label="订单数量" prop="id">
  179. <el-input v-model="formData.订单数量" :clearable="true" placeholder="" />
  180. </el-form-item>
  181. </el-col>
  182. <el-col :span="4">
  183. <el-form-item label="已完工" prop="id">
  184. <el-input v-model="formData.jjcp_sls" :clearable="true" placeholder="" />
  185. </el-form-item>
  186. </el-col>
  187. <el-col :span="4">
  188. <el-form-item label="机型备注" prop="id">
  189. <el-input v-model="formData.机型备注" :clearable="true" placeholder="" />
  190. </el-form-item>
  191. </el-col>
  192. </el-row>
  193. <el-row :gutter="20">
  194. <el-col :span="4">
  195. <el-form-item label="入仓备注" prop="id">
  196. <el-input v-model="formData.jjcp_desc" :clearable="true" placeholder="" />
  197. </el-form-item>
  198. </el-col>
  199. </el-row>
  200. </el-form>
  201. <!-- </el-scrollbar> -->
  202. <template #footer>
  203. <div class="dialog-footer">
  204. <el-button @click="closeDialog">取 消</el-button>
  205. <el-button type="primary" @click="enterDialog">确 定</el-button>
  206. </div>
  207. </template>
  208. </el-dialog>
  209. <el-dialog
  210. v-model="CKVisible"
  211. title="选择"
  212. destroy-on-close
  213. width="600px"
  214. >
  215. <el-table
  216. tooltip-effect="dark"
  217. :data="CKselectData"
  218. row-key="ID"
  219. highlight-current-row="true"
  220. border
  221. style="width:100%"
  222. @row-dblclick="CKSelectClick"
  223. >
  224. <el-table-column
  225. prop="编号"
  226. label="编号"
  227. width="200"
  228. />
  229. <el-table-column
  230. prop="名称"
  231. label="名称"
  232. width="200"
  233. />
  234. </el-table>
  235. </el-dialog>
  236. <el-dialog
  237. v-model="GDVisible"
  238. title="选择"
  239. destroy-on-close
  240. width="600px"
  241. >
  242. <el-table
  243. tooltip-effect="dark"
  244. :data="GDselectData"
  245. row-key="ID"
  246. highlight-current-row="true"
  247. border
  248. style="width:100%"
  249. @row-dblclick="GDSelectClick"
  250. >
  251. <el-table-column
  252. prop="gdyj"
  253. label="工单印件"
  254. width="600"
  255. />
  256. <el-table-column
  257. prop="Gd_gdbh"
  258. label="工单编号"
  259. width="200"
  260. />
  261. <el-table-column
  262. prop="yj_yjno"
  263. label="印件号"
  264. width="200"
  265. />
  266. <el-table-column
  267. prop="销售订单号"
  268. label="销售订单号"
  269. width="200"
  270. />
  271. <el-table-column
  272. prop="yj_Yjdh"
  273. label="印件编码"
  274. width="200"
  275. />
  276. <el-table-column
  277. prop="yj_yjmc"
  278. label="印件名称"
  279. width="200"
  280. />
  281. <el-table-column
  282. prop="成品代号"
  283. label="成品代号"
  284. width="200"
  285. />
  286. <el-table-column
  287. prop="成品名称"
  288. label="成品名称"
  289. width="200"
  290. />
  291. <el-table-column
  292. prop="客户料号"
  293. label="客户料号"
  294. width="200"
  295. />
  296. </el-table>
  297. </el-dialog>
  298. <el-dialog
  299. v-model="TJVisible"
  300. title="各日统计"
  301. destroy-on-close
  302. width="80%px;"
  303. style="height: 80%;"
  304. >
  305. <el-row :gutter="20">
  306. <el-col :span="41">
  307. <el-form-item label="关键字" prop="id">
  308. <el-input v-model="keywords" :clearable="true" placeholder="2023.12.14" />
  309. </el-form-item>
  310. </el-col>
  311. </el-row>
  312. <el-table
  313. tooltip-effect="dark"
  314. :data="TJselectData"
  315. row-key="ID"
  316. highlight-current-row="true"
  317. border
  318. style="width:100%"
  319. height="300px"
  320. @row-dblclick="TJSelectClick"
  321. >
  322. <el-table-column
  323. prop="jjcp_sj"
  324. label="完工日期"
  325. width="200"
  326. />
  327. <el-table-column
  328. prop="jjcp_gdbh"
  329. label="工单编号"
  330. width="200"
  331. />
  332. <el-table-column
  333. prop="jjcp_cpmc"
  334. label="印件(产品名称)"
  335. width="200"
  336. />
  337. <el-table-column
  338. prop="实际投料"
  339. label="实际投料"
  340. width="200"
  341. />
  342. <el-table-column
  343. prop="入仓数量"
  344. label="入仓数量"
  345. width="200"
  346. />
  347. <el-table-column
  348. prop="投入产出率"
  349. label="投入产出率"
  350. width="200"
  351. />
  352. </el-table>
  353. </el-dialog>
  354. <el-dialog
  355. v-model="SMVisible"
  356. title="选择"
  357. destroy-on-close
  358. width="600px"
  359. >
  360. <el-table
  361. tooltip-effect="dark"
  362. :data="SMselectData"
  363. row-key="ID"
  364. highlight-current-row="true"
  365. border
  366. style="width:100%"
  367. @row-dblclick="SMSelectClick"
  368. >
  369. <el-table-column
  370. prop="gdyj"
  371. label="工单编号"
  372. width="180"
  373. />
  374. <el-table-column
  375. prop="Gd_gdbh"
  376. label="印件号"
  377. width="200"
  378. />
  379. <el-table-column
  380. prop="yj_yjno"
  381. label="印件名称"
  382. width="200"
  383. />
  384. <el-table-column
  385. prop="销售订单号"
  386. label="计划交货数量"
  387. width="200"
  388. />
  389. <el-table-column
  390. prop="yj_Yjdh"
  391. label="印件投料"
  392. width="200"
  393. />
  394. <el-table-column
  395. prop="yj_yjmc"
  396. label="包装产量"
  397. width="200"
  398. />
  399. <el-table-column
  400. prop="成品代号"
  401. label="入仓数量"
  402. width="200"
  403. />
  404. <el-table-column
  405. prop="成品名称"
  406. label="缺数"
  407. width="200"
  408. />
  409. <el-table-column
  410. prop="客户料号"
  411. label="完工"
  412. width="200"
  413. />
  414. <el-table-column
  415. prop="客户料号"
  416. label="最近入仓时间"
  417. width="200"
  418. />
  419. </el-table>
  420. </el-dialog>
  421. </el-main>
  422. </el-container>
  423. </el-container>
  424. </div>
  425. </template>
  426. <script setup>
  427. import {
  428. finishedTab,
  429. finishedTabByGdbh,
  430. finishedList,
  431. finishedlocate,
  432. finishedInfo,
  433. finishedgetCk,
  434. finishedgetGd,
  435. finishedgetGdsl,
  436. finisheddel,
  437. getDayList,
  438. mbList,
  439. finishedadd
  440. } from '@/api/jixiaoguanli/jitairibaobiao'
  441. // 全量引入格式化工具 请按需保留
  442. import { getDictFunc, formatDate, formatBoolean, filterDict, ReturnArrImg, onDownloadFile } from '@/utils/format'
  443. import { ElMessage, ElMessageBox } from 'element-plus'
  444. import { Search, Refresh, Download } from '@element-plus/icons-vue'
  445. import { ref, reactive, onMounted, onBeforeMount } from 'vue'
  446. import { getPackingSideTable, getPackingTable } from '@/api/mes_api_gty/myapi'
  447. import { TRUE } from 'sass'
  448. defineOptions({
  449. name: '06-packingDocuments'
  450. })
  451. // 侧边栏数据请求
  452. const treeData = reactive([]);
  453. const getTabdata = async () => {
  454. //接口调用函数
  455. const response = await finishedTab();
  456. console.log(response)
  457. const transformedData = response.data.map(item => ({
  458. label: `${item.date.replace(/-/g, '.')}【单据数: ${item.counts}张】`,
  459. children: item.sys.map(sysItem => ({
  460. label: `${sysItem.sys_id} 【记录数: ${sysItem.count}张】`,
  461. params: {
  462. date: item.date.replace(/\./g, '-'),
  463. sys_id: sysItem.sys_id,
  464. total: sysItem.count,
  465. },
  466. })),
  467. }));
  468. treeData.splice(0, treeData.length, ...transformedData);
  469. }
  470. getTabdata();
  471. // 自动化生成的字典(可能为空)以及字段
  472. const formData = ref({
  473. })
  474. // 验证规则
  475. const rule = reactive({
  476. })
  477. const elFormRef = ref()
  478. const elSearchFormRef = ref()
  479. // =========== 表格控制部分 ===========
  480. const tableData = reactive([])
  481. const detailData = reactive([
  482. ])
  483. const total = ref(0)
  484. const page = ref(1)
  485. const limit = ref(10)
  486. const searchInfo = ref('')
  487. const params = {
  488. type: '',
  489. date: '',
  490. sys_id: '',
  491. gdbh: '',
  492. }
  493. // 分页设置
  494. const handleSizeChange = (val) => {
  495. switch (params.type) {
  496. case 'getTableData':
  497. getTableData()
  498. break
  499. case 'getLocateTable':
  500. GetmachineLocate()
  501. break
  502. default:
  503. break
  504. }
  505. }
  506. // 页面跳转
  507. const handleCurrentChange = (val) => {
  508. switch (params.type) {
  509. case 'getTableData':
  510. getTableData()
  511. break
  512. case 'getLocateTable':
  513. GetmachineLocate()
  514. break
  515. default:
  516. break
  517. }
  518. }
  519. // 查询
  520. const getTableData = async () => {
  521. const response = await finishedList(params);
  522. console.log(response)
  523. if (response.code === 0) {
  524. tableData.splice(0, tableData.length, ...response.data.rows);
  525. }
  526. }
  527. const handleNodeClick = (node, check) => {
  528. //存放当前节点的nodeId
  529. if (node.params) {
  530. params.date = node.params.date;
  531. params.sys_id = node.params.sys_id;
  532. total.value = node.params.total;
  533. getTableData();
  534. }
  535. }
  536. let positionvalue=ref()
  537. let keywords=ref()
  538. // 搜索
  539. function onSearch() {
  540. params.gdbh = positionvalue.value
  541. params.type = 'getLocateTable'
  542. page.value = 1
  543. GetmachineLocate()
  544. }
  545. const ADD=ref('0')
  546. //新增
  547. function onAdd() {
  548. ADD.value='新增'
  549. console.log(ADD.value)
  550. dialogFormVisible.value = true
  551. // Productionadd()
  552. }
  553. //删除
  554. function onDel() {
  555. Del()
  556. }
  557. //删除
  558. const Del = async () => {
  559. const response = await finisheddel({UniqId:lastCellValue});
  560. if (response.code === 0) {
  561. console.log(333)
  562. }
  563. getTableData()
  564. }
  565. const TJVisible = ref(false)
  566. const TJselectData = ref([]);
  567. //每日统计
  568. function onDay() {
  569. GetDayList()
  570. TJVisible.value=true
  571. }
  572. const GetDayList = async (value) => {
  573. const response = await getDayList({key_word:'',page:page.value,limit:limit.value});
  574. console.log(response.data)
  575. if (response.code === 0) {
  576. TJselectData.value=response.data.rows
  577. console.log(TJselectData)
  578. }
  579. }
  580. const SMVisible = ref(false)
  581. const SMselectData = ref([]);
  582. //首末版统计
  583. function onSMB() {
  584. MbList()
  585. SMVisible.value=true
  586. }
  587. const MbList = async (value) => {
  588. const response = await mbList({page:page.value,limit:limit.value});
  589. console.log(response.data)
  590. if (response.code === 0) {
  591. SMselectData.value=response.data.rows
  592. console.log(TJselectData)
  593. }
  594. }
  595. //定位
  596. const GetmachineLocate = async () => {
  597. const response = await finishedlocate({
  598. gdbh: params.gdbh,
  599. page: page.value.toString(), limit: limit.value.toString(),
  600. })
  601. console.log(response)
  602. if (response.code === 0) {
  603. const processedData = response.data.rows.map(item => {
  604. return {
  605. ...item,
  606. combinedProp: item.sczl_gdbh + '--'+item.yj_yjmc,
  607. combinedProp2: item.sczl_yjgx + '-'+item.sczl_gxmc
  608. };
  609. });
  610. total.value = response.data.total
  611. tableData.splice(0, tableData.length, ...processedData);
  612. }
  613. }
  614. //仓库编号回车事件
  615. const getCKsubmit = (event) => {
  616. GetCK()
  617. }
  618. const CKVisible = ref(false)
  619. const CKselectData = reactive([])
  620. //获取仓库信息
  621. const GetCK = async () => {
  622. const response = await finishedgetCk();
  623. console.log(response)
  624. if (response.code === 0) {
  625. CKselectData.splice(0, CKselectData.length, ...response.data)
  626. CKVisible.value=true
  627. }
  628. }
  629. //选择
  630. const CKSelectClick = (row, column, event) => {
  631. const { 编号,名称 } = row
  632. formData.value.仓库编号=编号
  633. formData.value.仓库名称=名称
  634. CKVisible.value = false
  635. }
  636. //工单编号回车事件
  637. const getGDsubmit = (event) => {
  638. GetGD()
  639. }
  640. const GDVisible = ref(false)
  641. const GDselectData = reactive([])
  642. //获取工单信息
  643. const GetGD = async () => {
  644. console.log(formData.value.jjcp_gdbh)
  645. const response = await finishedgetGd({gdbh:formData.value.jjcp_gdbh});
  646. console.log(response)
  647. if (response.code === 0) {
  648. GDselectData.splice(0, GDselectData.length, ...response.data)
  649. GDVisible.value=true
  650. }
  651. }
  652. //选择
  653. const GDSelectClick = (row, column, event) => {
  654. const { Gd_gdbh,yj_yjno,销售订单号,yj_Yjdh,yj_yjmc,成品代号,成品名称,客户料号,gdyj } = row
  655. formData.value.jjcp_gdbh=Gd_gdbh
  656. formData.value.jjcp_yjno=yj_yjno
  657. formData.value.订单编号=销售订单号
  658. formData.value.jjcp_cpdh=yj_Yjdh
  659. formData.value.jjcp_cpmc=yj_yjmc
  660. formData.value.成品编码=成品代号
  661. formData.value.成品名称=成品名称
  662. formData.value.客户料号=客户料号
  663. GDVisible.value = false
  664. }
  665. //产品编号回车事件
  666. const getSLsubmit = (event) => {
  667. GetSL()
  668. }
  669. //获取工单数量信息
  670. const GetSL = async () => {
  671. console.log(formData.value.jjcp_gdbh)
  672. const response = await finishedgetGdsl({gdbh:formData.value.jjcp_gdbh,cpdh:formData.value.jjcp_cpdh});
  673. console.log(response)
  674. if (response.code === 0) {
  675. formData.value.订单数量=response.data.订单数量
  676. formData.value.jjcp_sls=response.data.jjcp_sls
  677. }
  678. }
  679. // ============== 表格控制部分结束 ===============
  680. // 获取需要的字典 可能为空 按需保留
  681. const setOptions = async () => {}
  682. // 获取需要的字典 可能为空 按需保留
  683. setOptions()
  684. // 多选数据
  685. const multipleSelection = ref([])
  686. // 多选
  687. const handleSelectionChange = (val) => {
  688. if(val.length>0){
  689. // multipleSelection.value = val
  690. const lenth=val.length
  691. // ScrapFactor.gdbh=val[lenth-1].combinedProp.split('-')[0];
  692. // const parts = val[lenth-1].combinedProp2.split('-')
  693. // ScrapFactor.yjno=parts[0];
  694. // ScrapFactor.gxh=parts[1];
  695. // ScrapFactor.type=val[lenth-1].sczl_检验类别
  696. // console.log(ScrapFactor)
  697. lastCellValue=val[lenth-1].UniqId
  698. console.log(val)
  699. val.splice(0, val.length); // 清空 val 数组
  700. console.log(lastCellValue)
  701. }
  702. }
  703. // 批量删除控制标记
  704. const deleteVisible = ref(false)
  705. // 多选删除
  706. const onDelete = async () => {
  707. const ids = []
  708. if (multipleSelection.value.length === 0) {
  709. ElMessage({
  710. type: 'warning',
  711. message: '请选择要删除的数据'
  712. })
  713. return
  714. }
  715. multipleSelection.value &&
  716. multipleSelection.value.map(item => {
  717. ids.push(item.ID)
  718. })
  719. const res = await deleteCompanyByIds({ ids })
  720. if (res.code === 0) {
  721. ElMessage({
  722. type: 'success',
  723. message: '删除成功'
  724. })
  725. if (tableData.value.length === ids.length && page.value > 1) {
  726. page.value--
  727. }
  728. deleteVisible.value = false
  729. getTableData()
  730. }
  731. }
  732. // 行为控制标记(弹窗内部需要增还是改)
  733. const type = ref('')
  734. // 更新行
  735. const updateCompanyFunc = async (row) => {
  736. const res = await findCompany({ ID: row.ID })
  737. type.value = 'update'
  738. if (res.code === 0) {
  739. formData.value = res.data.recompany
  740. dialogFormVisible.value = true
  741. }
  742. }
  743. // 弹窗控制标记
  744. const dialogFormVisible = ref(false)
  745. // 打开弹窗
  746. const openDialog = () => {
  747. type.value = 'create'
  748. dialogFormVisible.value = true
  749. }
  750. // 关闭弹窗
  751. const closeDialog = () => {
  752. dialogFormVisible.value = false
  753. formData.value = {
  754. address: '',
  755. image: '',
  756. name: '',
  757. }
  758. }
  759. // 弹窗确定
  760. const enterDialog = async () => {
  761. // elFormRef.value?.validate(async (valid) => {
  762. // if (!valid) return
  763. // let res
  764. // switch (type.value) {
  765. // case 'create':
  766. // res = await createCompany(formData.value)
  767. // break
  768. // case 'update':
  769. // res = await updateCompany(formData.value)
  770. // break
  771. // default:
  772. // res = await createCompany(formData.value)
  773. // break
  774. // }
  775. // if (res.code === 0) {
  776. // ElMessage({
  777. // type: 'success',
  778. // message: '创建/更改成功'
  779. // })
  780. // closeDialog()
  781. // getTableData()
  782. // }
  783. // })
  784. // dialogFormVisible.value=false
  785. updateDetailData()
  786. }
  787. // 更新数据
  788. const updateDetailData = async() => {
  789. const restoredData = {
  790. UniqId: lastCellValue,
  791. Sys_id:'[1035/刘晓庆]',
  792. 入仓类型:formData.value.入仓类型,
  793. 仓库编号:formData.value.入仓类型,
  794. 仓库名称:formData.value.仓库名称,
  795. jjcp_num:formData.value.jjcp_num,
  796. jjcp_gdbh:formData.value.jjcp_gdbh,
  797. jjcp_yjno:formData.value.jjcp_yjno,
  798. 订单编号:formData.value.订单编号,
  799. jjcp_cpdh:formData.value.jjcp_cpdh,
  800. jjcp_cpmc:formData.value.jjcp_cpmc,
  801. 成品编码:formData.value.成品编码,
  802. 成品名称:formData.value.成品名称,
  803. 客户料号:formData.value.客户料号,
  804. jjcp_smb:formData.value.jjcp_smb,
  805. jjcp_sj:formData.value.jjcp_sj,
  806. jjcp_sl:formData.value.jjcp_sl,
  807. jjcp_dw:formData.value.jjcp_dw,
  808. 机型备注:formData.value.机型备注,
  809. jjcp_desc:formData.value.jjcp_desc,
  810. }
  811. if(ADD.value=='新增'){
  812. // console.log('新增')
  813. console.log('新增')
  814. console.log(ADD.value)
  815. console.log(restoredData)
  816. const response = await finishedadd(restoredData);
  817. // ADD.value='1'
  818. // console.log(ADD.value)
  819. // ADD.value='0'
  820. console.log(response)
  821. }else{
  822. // const response = await productionedit(restoredData);
  823. console.log('修改')
  824. console.log(ADD.value)
  825. // console.log(response)
  826. // ADD.value='0'
  827. // console.log(ADD.value)
  828. }
  829. // console.log(restoredData)
  830. // console.log(lastCellValue)
  831. // formData.value.UniqId=lastCellValue
  832. // console.log(formData)
  833. // restoredData.UniqId='5'
  834. // console.log(FormData)
  835. // console.log(response)
  836. }
  837. let table=ref(5);
  838. let lastCellValue=ref()
  839. // 双击表格操作
  840. function doubleClick(row, column, event) {
  841. type.value = 'update';
  842. lastCellValue= row['UniqId'];
  843. console.log(lastCellValue)
  844. table.value=lastCellValue
  845. dialogFormVisible.value = true
  846. // dialogSelectVisible.value = true
  847. GetInfo(table.value)
  848. // dialogFormVisible.value = true
  849. }
  850. //获取详细信息
  851. const GetInfo = async (value) => {
  852. const response = await finishedInfo({UniqId:value});
  853. console.log(response)
  854. if (response.code === 0) {
  855. formData.value=response.data;
  856. }
  857. }
  858. // 导出excel
  859. function exportExcel() {
  860. console.log('导出到excel');
  861. }
  862. function openFolderDialog() {
  863. console.log('导出到excel');
  864. }
  865. // 生命周期钩子
  866. onMounted(async () => {
  867. });
  868. </script>
  869. <style>
  870. .JKWTree-container {
  871. display: flex;
  872. }
  873. .JKWTree-tree {
  874. width: 300px;
  875. background-color: #fff;
  876. padding: 10px;
  877. margin-right: 20px;
  878. }
  879. .JKWTree-tree h3 {
  880. font-size: 15px;
  881. font-weight: 700;
  882. margin: 10px 0;
  883. }
  884. .JKWTree-content {
  885. flex: 1;
  886. }
  887. /* 选中某行时的背景色*/
  888. .el-table__body tr.current-row>td {
  889. background: #ff80ff !important;
  890. /* 背景颜色 */
  891. }
  892. </style>