You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

1019 lines
32 KiB

5 months ago
5 months ago
5 months ago
5 months ago
5 months ago
5 months ago
5 months ago
5 months ago
5 months ago
5 months ago
5 months ago
5 months ago
5 months ago
5 months ago
5 months ago
5 months ago
5 months ago
5 months ago
5 months ago
5 months ago
5 months ago
5 months ago
5 months ago
5 months ago
5 months ago
5 months ago
5 months ago
5 months ago
5 months ago
5 months ago
5 months ago
5 months ago
5 months ago
5 months ago
5 months ago
5 months ago
5 months ago
5 months ago
5 months ago
5 months ago
5 months ago
5 months ago
5 months ago
  1. <template>
  2. <div class="mod-config" >
  3. <el-form :inline="true" label-position="top" label-width="100px" style="margin-top: 0px;" >
  4. <el-row>
  5. <el-col :span="24" style="">
  6. <el-form-item :label="'物料编码:'">
  7. <el-input v-model="searchData.partNo" style="width: 130px"></el-input>
  8. </el-form-item>
  9. <el-form-item :label="'物料名称:'">
  10. <el-input v-model="searchData.partDesc" style="width: 130px"></el-input>
  11. </el-form-item>
  12. <el-form-item :label="'通知单号:'">
  13. <el-input v-model="searchData.orderNo" style="width: 130px"></el-input>
  14. </el-form-item>
  15. <el-form-item :label="'采购单号:'">
  16. <el-input v-model="searchData.poOrderNo" style="width: 130px"></el-input>
  17. </el-form-item>
  18. <el-form-item :label="'采购单行号:'">
  19. <el-input v-model="searchData.poItemNo" style="width: 130px"></el-input>
  20. </el-form-item>
  21. <el-form-item label="检验日期">
  22. <el-date-picker
  23. style="width: 130px"
  24. v-model="searchData.startDate"
  25. value-format="yyyy-MM-dd"
  26. >
  27. </el-date-picker>
  28. -
  29. <el-date-picker
  30. style="width: 130px"
  31. v-model="searchData.endDate "
  32. value-format="yyyy-MM-dd"
  33. >
  34. </el-date-picker>
  35. </el-form-item>
  36. <el-form-item :label="' '" >
  37. <el-button class="customer-bun-min" type="primary" @click="getMainData" style="">Query</el-button>
  38. <el-button @click="exportExcel()" type="primary" style="margin-left: 2px">{{'导出'}}</el-button>
  39. </el-form-item>
  40. </el-col>
  41. </el-row>
  42. </el-form>
  43. <el-table
  44. :height="height"
  45. :data="mainDataList"
  46. border
  47. ref="mainTable"
  48. highlight-current-row
  49. @row-click="changeData"
  50. v-loading="dataListLoading"
  51. style="margin-top: 0px; width: 100%;">
  52. <el-table-column
  53. header-align="center"
  54. align="center"
  55. width="100"
  56. label="操作">
  57. <template slot-scope="scope">
  58. <a type="text" size="small" @click="addOrUpdateHandle(scope.row)">生成标签</a>
  59. </template>
  60. </el-table-column>
  61. <el-table-column
  62. v-for="(item,index) in columnArray1" :key="index"
  63. :sortable="item.columnSortable"
  64. :prop="item.columnProp"
  65. :header-align="item.headerAlign"
  66. :show-overflow-tooltip="item.showOverflowTooltip"
  67. :align="item.align"
  68. :fixed="item.fixed==''?false:item.fixed"
  69. :min-width="item.columnWidth"
  70. :label="item.columnLabel">
  71. <template slot-scope="scope">
  72. <span v-if="!item.columnHidden"> {{scope.row[item.columnProp]}}</span>
  73. <span v-if="item.columnImage"><img :src="scope.row[item.columnProp]"
  74. style="width: 100px; height: 80px"/></span>
  75. </template>
  76. </el-table-column>
  77. </el-table>
  78. <el-pagination style="margin-top: 0px"
  79. @size-change="sizeChangeHandle"
  80. @current-change="currentChangeHandle"
  81. :current-page="pageIndex"
  82. :page-sizes="[20, 50, 100, 200, 500]"
  83. :page-size="pageSize"
  84. :total="totalPage"
  85. layout="total, sizes, prev, pager, next, jumper">
  86. </el-pagination>
  87. <el-form :inline="true" label-position="top" label-width="100px" style="margin-top: 0px;" >
  88. <el-form-item >
  89. <el-button type="primary" @click="printLabels" style="">打印</el-button>
  90. <el-button @click="deleteLabels()" type="primary" style="margin-left: 2px">删除</el-button>
  91. </el-form-item>
  92. </el-form>
  93. <el-table
  94. :height="height"
  95. :data="table2List"
  96. border
  97. ref="table3"
  98. highlight-current-row
  99. @selection-change="handleSelectionChange"
  100. v-loading="dataListLoading"
  101. style="margin-top: 0px; width: 100%;">
  102. <el-table-column
  103. type="selection"
  104. width="55"
  105. align="center">
  106. </el-table-column>
  107. <el-table-column
  108. v-for="(item,index) in columnArray2" :key="index"
  109. :sortable="item.columnSortable"
  110. :prop="item.columnProp"
  111. :header-align="item.headerAlign"
  112. :show-overflow-tooltip="item.showOverflowTooltip"
  113. :align="item.align"
  114. :fixed="item.fixed==''?false:item.fixed"
  115. :min-width="item.columnWidth"
  116. :label="item.columnLabel">
  117. <template slot-scope="scope">
  118. <span v-if="!item.columnHidden"> {{scope.row[item.columnProp]}}</span>
  119. <span v-if="item.columnImage"><img :src="scope.row[item.columnProp]"
  120. style="width: 100px; height: 80px"/></span>
  121. </template>
  122. </el-table-column>
  123. </el-table>
  124. <el-dialog title="标签发行" :close-on-click-modal="false" v-drag :visible.sync="addModelFlag" width="800px">
  125. <el-form :model="addModelData" label-position="top" style="margin-top: -5px;">
  126. <el-row :gutter="20">
  127. <el-col :span="8">
  128. <el-form-item label="物料编码" >
  129. <el-input v-model="addModelData.partNo" disabled style="width: 100%"></el-input>
  130. </el-form-item>
  131. </el-col>
  132. <el-col :span="16">
  133. <el-form-item label="物料名称" >
  134. <el-input v-model="addModelData.partDesc" disabled style="width: 100%"></el-input>
  135. </el-form-item>
  136. </el-col>
  137. <el-col :span="8">
  138. <el-form-item label="采购订单" >
  139. <el-input v-model="addModelData.poOrderNo" disabled style="width: 100%"></el-input>
  140. </el-form-item>
  141. </el-col>
  142. <el-col :span="8">
  143. <el-form-item label="采购订单行号">
  144. <el-input v-model="addModelData.poItemNo" disabled style="width: 100%"></el-input>
  145. </el-form-item>
  146. </el-col>
  147. <el-col :span="8">
  148. <el-form-item label="通知单">
  149. <el-input v-model="addModelData.orderNo" disabled style="width: 100%"></el-input>
  150. </el-form-item>
  151. </el-col>
  152. <el-col :span="8">
  153. <el-form-item label="本次到货数量">
  154. <el-input v-model="addModelData.orderQty" disabled style="width: 100%"></el-input>
  155. </el-form-item>
  156. </el-col>
  157. <el-col :span="8">
  158. <el-form-item label="本次到货卷数">
  159. <el-input v-model="addModelData.orderRollCount" disabled style="width: 100%"></el-input>
  160. </el-form-item>
  161. </el-col>
  162. <el-col :span="8">
  163. <el-form-item label="检验合格数量">
  164. <el-input v-model="addModelData.batchQualifiedQty" disabled style="width: 100%"></el-input>
  165. </el-form-item>
  166. </el-col>
  167. <el-col :span="8">
  168. <el-form-item label="剩余可发行数量">
  169. <el-input v-model="addModelData.remainingIssuableQty" disabled style="width: 100%"></el-input>
  170. </el-form-item>
  171. </el-col>
  172. <el-col :span="8">
  173. <el-form-item label="超入比例" >
  174. <el-input v-model="addModelData.exceedInRatio" disabled style="width: 100%"></el-input>
  175. </el-form-item>
  176. </el-col>
  177. <el-col :span="8">
  178. <el-form-item label="有效期管理">
  179. <el-input v-model="addModelData.expirationFlag" disabled style="width: 100%"></el-input>
  180. </el-form-item>
  181. </el-col>
  182. <el-col :span="8">
  183. <el-form-item label="本次发行数量" >
  184. <el-input v-model="addModelData.nowRollQty" disabled style="width: 100%"></el-input>
  185. </el-form-item>
  186. </el-col>
  187. <el-col :span="8">
  188. <el-form-item label="生产日期" required>
  189. <el-date-picker
  190. v-model="addModelData.productionDate"
  191. type="date"
  192. format="yyyy-MM-dd"
  193. value-format="yyyy-MM-dd"
  194. style="width: 100%">
  195. </el-date-picker>
  196. </el-form-item>
  197. </el-col>
  198. <el-col :span="8">
  199. <el-form-item label="批次号">
  200. <el-input v-model="addModelData.batchNo" style="width: 100%"></el-input>
  201. </el-form-item>
  202. </el-col>
  203. <el-col :span="8">
  204. <el-form-item label="发行张数" required>
  205. <el-input v-model="addModelData.rollCount" @blur="getNowRollQty()" @input="handleInput" type="number" style="width: 100%"></el-input>
  206. </el-form-item>
  207. </el-col>
  208. <el-col :span="8">
  209. <el-form-item label="每张数量" required>
  210. <el-input v-model="addModelData.rollQty" @blur="getNowRollQty()" type="number" style="width: 100%"></el-input>
  211. </el-form-item>
  212. </el-col>
  213. <el-col :span="8">
  214. <el-form-item label="尾卷数量">
  215. <el-input v-model="addModelData.tailRollQty" @blur="getNowRollQty()" type="number" style="width: 100%"></el-input>
  216. </el-form-item>
  217. </el-col>
  218. </el-row>
  219. </el-form>
  220. <div slot="footer" class="dialog-footer" style="text-align: center;">
  221. <el-button type="success" @click="submitDataNoClose()">应用</el-button>
  222. <el-button type="success" @click="submitData()">确定</el-button>
  223. <el-button type="primary" @click="addModelFlag=false">取消</el-button>
  224. </div>
  225. </el-dialog>
  226. </div>
  227. </template>
  228. <script>
  229. /*组件*/
  230. import excel from "@/utils/excel-util.js";
  231. import {
  232. deletePoPartLabelData,
  233. getInboundQcResultData,
  234. getInboundQcResultOtherData,
  235. getPoOrderRollNoOutData, getPoPartLabelData,
  236. submitPoOrderRollNo
  237. } from '../../../api/wms/wms'
  238. import {poPartLabelPrint} from '../clodopLabel/poPartLabel'
  239. export default {
  240. data() {
  241. return {
  242. functionId: this.$route.meta.menuId,
  243. height: 200,
  244. currentRow: {},
  245. searchData:{
  246. site:this.$store.state.user.site,
  247. orderNo:'',
  248. partNo:'',
  249. partDesc:'',
  250. poOrderNo:'',
  251. poItemNo:'',
  252. startDate:'',
  253. endDate:'',
  254. page: 1,
  255. limit: 10,
  256. },
  257. selectionDataList:[],
  258. pageIndex: 1,
  259. pageSize: 50,
  260. totalPage: 0,
  261. mainDataList:[],
  262. table2List:[],
  263. dataListLoading: false,
  264. addModelFlag:false,
  265. addModelData:{
  266. expirationWarningDay:'',
  267. site:'',
  268. buNo:'',
  269. partNo: '',
  270. partDesc: '',
  271. poOrderNo: '',
  272. poItemNo: '',
  273. orderNo: '',
  274. orderQty: '',
  275. supplierId: '',
  276. supplierName: '',
  277. orderRollCount: '',
  278. batchQualifiedQty: '',
  279. remainingIssuableQty: '',
  280. exceedInRatio: '',
  281. expirationFlag: '',
  282. expirationDay: '',
  283. nowRollQty: '',
  284. productionDate: '',
  285. batchNo: '',
  286. rollCount: '1',
  287. rollQty: '',
  288. tailRollQty: '0'
  289. },
  290. columnArray1: [
  291. {
  292. userId: this.$store.state.user.name,
  293. functionId: this.functionId,
  294. serialNumber: '670Table1BuNo',
  295. tableId: "670Table1",
  296. tableName: "采购检验合格单",
  297. columnProp: "buNo",
  298. headerAlign: "center",
  299. align: "center",
  300. columnLabel: "BU",
  301. columnWidth: '70',
  302. columnHidden: false,
  303. columnImage: false,
  304. columnSortable: false,
  305. sortLv: 0,
  306. status: true,
  307. fixed: false
  308. },
  309. {
  310. userId: this.$store.state.user.name,
  311. functionId: this.functionId,
  312. serialNumber: '670Table1OrderNo',
  313. tableId: "670Table1",
  314. tableName: "采购检验合格单",
  315. columnProp: "orderNo",
  316. headerAlign: "center",
  317. align: "left",
  318. columnLabel: "通知单号",
  319. columnWidth: '120',
  320. columnHidden: false,
  321. columnImage: false,
  322. columnSortable: false,
  323. sortLv: 1,
  324. status: true,
  325. fixed: false
  326. },
  327. {
  328. userId: this.$store.state.user.name,
  329. functionId: this.functionId,
  330. serialNumber: '670Table1OrderStatus',
  331. tableId: "670Table1",
  332. tableName: "采购检验合格单",
  333. columnProp: "orderStatus",
  334. headerAlign: "center",
  335. align: "center",
  336. columnLabel: "单据状态",
  337. columnWidth: '100',
  338. columnHidden: false,
  339. columnImage: false,
  340. columnSortable: false,
  341. sortLv: 2,
  342. status: true,
  343. fixed: false
  344. },
  345. {
  346. userId: this.$store.state.user.name,
  347. functionId: this.functionId,
  348. serialNumber: '670Table1PartNo',
  349. tableId: "670Table1",
  350. tableName: "采购检验合格单",
  351. columnProp: "partNo",
  352. headerAlign: "center",
  353. align: "left",
  354. columnLabel: "物料编码",
  355. columnWidth: '120',
  356. columnHidden: false,
  357. columnImage: false,
  358. columnSortable: false,
  359. sortLv: 3,
  360. status: true,
  361. fixed: false
  362. },
  363. {
  364. userId: this.$store.state.user.name,
  365. functionId: this.functionId,
  366. serialNumber: '670Table1PartDesc',
  367. tableId: "670Table1",
  368. tableName: "采购检验合格单",
  369. columnProp: "partDesc",
  370. headerAlign: "center",
  371. align: "left",
  372. columnLabel: "物料名称",
  373. columnWidth: '200',
  374. columnHidden: false,
  375. columnImage: false,
  376. columnSortable: false,
  377. sortLv: 4,
  378. status: true,
  379. fixed: false
  380. },
  381. {
  382. userId: this.$store.state.user.name,
  383. functionId: this.functionId,
  384. serialNumber: '670Table1PoOrderNo',
  385. tableId: "670Table1",
  386. tableName: "采购检验合格单",
  387. columnProp: "poOrderNo",
  388. headerAlign: "center",
  389. align: "left",
  390. columnLabel: "采购订单号",
  391. columnWidth: '120',
  392. columnHidden: false,
  393. columnImage: false,
  394. columnSortable: false,
  395. sortLv: 5,
  396. status: true,
  397. fixed: false
  398. },
  399. {
  400. userId: this.$store.state.user.name,
  401. functionId: this.functionId,
  402. serialNumber: '670Table1PoItemNo',
  403. tableId: "670Table1",
  404. tableName: "采购检验合格单",
  405. columnProp: "poItemNo",
  406. headerAlign: "center",
  407. align: "center",
  408. columnLabel: "行号",
  409. columnWidth: '80',
  410. columnHidden: false,
  411. columnImage: false,
  412. columnSortable: false,
  413. sortLv: 6,
  414. status: true,
  415. fixed: false
  416. },
  417. {
  418. userId: this.$store.state.user.name,
  419. functionId: this.functionId,
  420. serialNumber: '670Table1SupplierName',
  421. tableId: "670Table1",
  422. tableName: "采购检验合格单",
  423. columnProp: "supplierName",
  424. headerAlign: "center",
  425. align: "left",
  426. columnLabel: "供应商",
  427. columnWidth: '120',
  428. columnHidden: false,
  429. columnImage: false,
  430. columnSortable: false,
  431. sortLv: 7,
  432. status: true,
  433. fixed: false
  434. },
  435. {
  436. userId: this.$store.state.user.name,
  437. functionId: this.functionId,
  438. serialNumber: '670Table1InspectorDate',
  439. tableId: "670Table1",
  440. tableName: "采购检验合格单",
  441. columnProp: "inspectorDate",
  442. headerAlign: "center",
  443. align: "center",
  444. columnLabel: "检验日期",
  445. columnWidth: '100',
  446. columnHidden: false,
  447. columnImage: false,
  448. columnSortable: false,
  449. sortLv: 8,
  450. status: true,
  451. fixed: false
  452. },
  453. {
  454. userId: this.$store.state.user.name,
  455. functionId: this.functionId,
  456. serialNumber: '670Table1InspectorNo',
  457. tableId: "670Table1",
  458. tableName: "采购检验合格单",
  459. columnProp: "inspectorNo",
  460. headerAlign: "center",
  461. align: "left",
  462. columnLabel: "检验员",
  463. columnWidth: '100',
  464. columnHidden: false,
  465. columnImage: false,
  466. columnSortable: false,
  467. sortLv: 9,
  468. status: true,
  469. fixed: false
  470. },
  471. {
  472. userId: this.$store.state.user.name,
  473. functionId: this.functionId,
  474. serialNumber: '670Table1OrderQty',
  475. tableId: "670Table1",
  476. tableName: "采购检验合格单",
  477. columnProp: "orderQty",
  478. headerAlign: "center",
  479. align: "right",
  480. columnLabel: "到货数量",
  481. columnWidth: '100',
  482. columnHidden: false,
  483. columnImage: false,
  484. columnSortable: false,
  485. sortLv: 10,
  486. status: true,
  487. fixed: false
  488. },
  489. {
  490. userId: this.$store.state.user.name,
  491. functionId: this.functionId,
  492. serialNumber: '670Table1RollCount',
  493. tableId: "670Table1",
  494. tableName: "采购检验合格单",
  495. columnProp: "rollCount",
  496. headerAlign: "center",
  497. align: "right",
  498. columnLabel: "到货卷数",
  499. columnWidth: '100',
  500. columnHidden: false,
  501. columnImage: false,
  502. columnSortable: false,
  503. sortLv: 11,
  504. status: true,
  505. fixed: false
  506. },
  507. {
  508. userId: this.$store.state.user.name,
  509. functionId: this.functionId,
  510. serialNumber: '670Table1InspectionResult',
  511. tableId: "670Table1",
  512. tableName: "采购检验合格单",
  513. columnProp: "inspectionResult",
  514. headerAlign: "center",
  515. align: "center",
  516. columnLabel: "检验结论",
  517. columnWidth: '100',
  518. columnHidden: false,
  519. columnImage: false,
  520. columnSortable: false,
  521. sortLv: 12,
  522. status: true,
  523. fixed: false
  524. },
  525. {
  526. userId: this.$store.state.user.name,
  527. functionId: this.functionId,
  528. serialNumber: '670Table1DisposalMeasures',
  529. tableId: "670Table1",
  530. tableName: "采购检验合格单",
  531. columnProp: "disposalMeasures",
  532. headerAlign: "center",
  533. align: "left",
  534. columnLabel: "处置措施",
  535. columnWidth: '120',
  536. columnHidden: false,
  537. columnImage: false,
  538. columnSortable: false,
  539. sortLv: 13,
  540. status: true,
  541. fixed: false
  542. },
  543. {
  544. userId: this.$store.state.user.name,
  545. functionId: this.functionId,
  546. serialNumber: '670Table1BatchQualifiedQty',
  547. tableId: "670Table1",
  548. tableName: "采购检验合格单",
  549. columnProp: "batchQualifiedQty",
  550. headerAlign: "center",
  551. align: "right",
  552. columnLabel: "允许入库数",
  553. columnWidth: '100',
  554. columnHidden: false,
  555. columnImage: false,
  556. columnSortable: false,
  557. sortLv: 14,
  558. status: true,
  559. fixed: false
  560. }
  561. ],
  562. columnArray2: [
  563. {
  564. userId: this.$store.state.user.name,
  565. functionId: this.functionId,
  566. serialNumber: '670Table2OrderId',
  567. tableId: "670Table2",
  568. tableName: "采购物料标签清单",
  569. columnProp: "orderId",
  570. headerAlign: "center",
  571. align: "right",
  572. columnLabel: "No .",
  573. columnWidth: '50',
  574. columnHidden: false,
  575. columnImage: false,
  576. columnSortable: false,
  577. sortLv: 0,
  578. status: true,
  579. fixed: false
  580. },
  581. {
  582. userId: this.$store.state.user.name,
  583. functionId: this.functionId,
  584. serialNumber: '670Table2RollNo',
  585. tableId: "670Table2",
  586. tableName: "采购物料标签清单",
  587. columnProp: "rollNo",
  588. headerAlign: "center",
  589. align: "left",
  590. columnLabel: "标签条码",
  591. columnWidth: '150',
  592. columnHidden: false,
  593. columnImage: false,
  594. columnSortable: false,
  595. sortLv: 1,
  596. status: true,
  597. fixed: false
  598. },
  599. {
  600. userId: this.$store.state.user.name,
  601. functionId: this.functionId,
  602. serialNumber: '670Table2RollQty',
  603. tableId: "670Table2",
  604. tableName: "采购物料标签清单",
  605. columnProp: "rollQty",
  606. headerAlign: "center",
  607. align: "right",
  608. columnLabel: "标签数量",
  609. columnWidth: '100',
  610. columnHidden: false,
  611. columnImage: false,
  612. columnSortable: false,
  613. sortLv: 2,
  614. status: true,
  615. fixed: false
  616. },
  617. {
  618. userId: this.$store.state.user.name,
  619. functionId: this.functionId,
  620. serialNumber: '670Table2HardtagInFlag',
  621. tableId: "670Table2",
  622. tableName: "采购物料标签清单",
  623. columnProp: "hardtagInFlag",
  624. headerAlign: "center",
  625. align: "center",
  626. columnLabel: "标签状态",
  627. columnWidth: '100',
  628. columnHidden: false,
  629. columnImage: false,
  630. columnSortable: false,
  631. sortLv: 3,
  632. status: true,
  633. fixed: false
  634. },
  635. {
  636. userId: this.$store.state.user.name,
  637. functionId: this.functionId,
  638. serialNumber: '670Table2PrintFla',
  639. tableId: "670Table2",
  640. tableName: "采购物料标签清单",
  641. columnProp: "printFlag",
  642. headerAlign: "center",
  643. align: "right",
  644. columnLabel: "打印次数",
  645. columnWidth: '100',
  646. columnHidden: false,
  647. columnImage: false,
  648. columnSortable: false,
  649. sortLv: 4,
  650. status: true,
  651. fixed: false
  652. },
  653. {
  654. userId: this.$store.state.user.name,
  655. functionId: this.functionId,
  656. serialNumber: '670Table2ProductionDate',
  657. tableId: "670Table2",
  658. tableName: "采购物料标签清单",
  659. columnProp: "productionDate",
  660. headerAlign: "center",
  661. align: "center",
  662. columnLabel: "生产日期",
  663. columnWidth: '120',
  664. columnHidden: false,
  665. columnImage: false,
  666. columnSortable: false,
  667. sortLv: 6,
  668. status: true,
  669. fixed: false
  670. },
  671. {
  672. userId: this.$store.state.user.name,
  673. functionId: this.functionId,
  674. serialNumber: '670Table2OCreatedBy',
  675. tableId: "670Table2",
  676. tableName: "采购物料标签清单",
  677. columnProp: "createdBy",
  678. headerAlign: "center",
  679. align: "left",
  680. columnLabel: "操作员",
  681. columnWidth: '100',
  682. columnHidden: false,
  683. columnImage: false,
  684. columnSortable: false,
  685. sortLv: 7,
  686. status: true,
  687. fixed: false
  688. }
  689. ],
  690. exportName: '采购检验合格单'+this.dayjs().format('YYYYMMDDHHmmss'),
  691. exportName2: '采购物料标签清单'+this.dayjs().format('YYYYMMDDHHmmss'),
  692. }
  693. },
  694. /*组件*/
  695. components: {
  696. excel,
  697. },
  698. mounted() {
  699. this.$nextTick(() => {
  700. this.height = ( window.innerHeight - 220)/2;
  701. })
  702. },
  703. methods: {
  704. getMainData(){
  705. this.searchData.limit = this.pageSize
  706. this.searchData.page = this.pageIndex
  707. getInboundQcResultData(this.searchData).then(({data}) => {
  708. if (data.code === 0) {
  709. this.mainDataList = data.page.list
  710. this.pageIndex = data.page.currPage
  711. this.pageSize = data.page.pageSize
  712. this.totalPage = data.page.totalCount
  713. //判断是否全部存在数据
  714. if (this.totalPage > 0) {
  715. //设置选中行
  716. this.$refs.mainTable.setCurrentRow(this.mainDataList[0])
  717. this.changeData(this.mainDataList[0])
  718. }else {
  719. this.changeData(null)
  720. }
  721. }
  722. this.dataListLoading = false
  723. })
  724. },
  725. // 每页数
  726. sizeChangeHandle (val) {
  727. this.pageSize = val
  728. this.pageIndex = 1
  729. this.getMainData()
  730. },
  731. // 当前页
  732. currentChangeHandle (val) {
  733. this.pageIndex = val
  734. this.getMainData()
  735. },
  736. async exportExcel() {
  737. this.searchData.limit = -1
  738. this.searchData.page = 1
  739. excel.exportTable({
  740. url: "/wmsPrint/getInboundQcResultData",
  741. columnMapping: this.columnArray1,//可以直接用table,不需要的列就剔除
  742. mergeSetting: [],//需要合并的列
  743. params: this.searchData,
  744. fileName: this.exportName+".xlsx",
  745. rowFetcher: res => res.data,
  746. columnFormatter: [],
  747. dropColumns: [],//需要剔除的列,例如dropColumns: ["netWeight"],即剔除净重列
  748. });
  749. },
  750. changeData(row){
  751. this.currentRow=JSON.parse(JSON.stringify(row))
  752. // let inData={
  753. // site:this.currentRow.site,
  754. // buNo:this.currentRow.buNo,
  755. // inspectionNo:this.currentRow.orderNo,
  756. // }
  757. // getPoOrderRollNoOutData(inData).then(({data}) => {
  758. // //区分请求成功和失败的状况
  759. // if (data && data.code == 0) {
  760. // this.table2List = data.rows
  761. //
  762. // } else {
  763. // this.table2List = [];
  764. // }
  765. // });
  766. this.getDetailTableList();
  767. },
  768. getDetailTableList () {
  769. let inData={
  770. site:this.currentRow.site,
  771. buNo:this.currentRow.buNo,
  772. inspectionNo:this.currentRow.orderNo,
  773. }
  774. getPoOrderRollNoOutData(inData).then(({data}) => {
  775. //区分请求成功和失败的状况
  776. if (data && data.code == 0) {
  777. this.table2List = data.rows
  778. } else {
  779. this.table2List = [];
  780. }
  781. });
  782. },
  783. handleSelectionChange(val){
  784. this.selectionDataList = val
  785. console.log(this.selectionDataList)
  786. },
  787. addOrUpdateHandle(row) {
  788. getInboundQcResultOtherData(row).then(({data}) => {
  789. //区分请求成功和失败的状况
  790. if (data && data.code=== 0) {
  791. let outData = data.row
  792. console.log(data.row);
  793. this.addModelData={
  794. site:row.site,
  795. buNo:row.buNo,
  796. partNo: row.partNo,
  797. partDesc: row.partDesc,
  798. poOrderNo: row.poOrderNo,
  799. poItemNo: row.poItemNo,
  800. orderNo: row.orderNo,
  801. orderQty: row.orderQty,
  802. supplierId: row.supplierId,
  803. supplierName: row.supplierName,
  804. orderRollCount: row.rollCount,
  805. batchQualifiedQty: row.batchQualifiedQty,
  806. remainingIssuableQty: outData.remainingIssuableQty,
  807. exceedInRatio: outData.exceedInRatio,
  808. expirationFlag: outData.expirationFlag? outData.expirationFlag:'N',
  809. expirationDay:outData.expirationDay?Number(outData.expirationDay):0,
  810. nowRollQty: row.rollQty,
  811. productionDate: this.dayjs().format("YYYY-MM-DD"),
  812. batchNo: '',
  813. rollCount: '1',
  814. rollQty: row.rollQty,
  815. expirationWarningDay: outData.expirationWarningDay,
  816. tailRollQty: '0'
  817. }
  818. if(this.addModelData.exceedInRatio==""||this.addModelData.exceedInRatio==null){
  819. this.addModelData.exceedInRatio=0
  820. }
  821. }
  822. });
  823. this.addModelFlag = true;
  824. },
  825. submitData() {
  826. // 验证必填字段
  827. if (!this.addModelData.productionDate||this.addModelData.productionDate==='') {
  828. this.$message.error('请选择生产日期');
  829. return;
  830. }
  831. if (!this.addModelData.rollCount||this.addModelData.rollCount==='') {
  832. this.$message.error('请输入发行张数');
  833. return;
  834. }
  835. if (!this.addModelData.rollQty||this.addModelData.rollQty==='') {
  836. this.$message.error('请输入每张数量');
  837. return;
  838. }
  839. if ( this.addModelData.nowRollQty>Number(this.addModelData.remainingIssuableQty)+((Number(this.addModelData.exceedInRatio)*Number(this.addModelData.orderQty))/100)) {
  840. this.$message.error('本次发行数量大于剩余可发行数量和超入数量');
  841. return;
  842. }
  843. // 这里可以添加提交逻辑
  844. submitPoOrderRollNo(this.addModelData).then(({data}) => {
  845. if (data && data.code === 0) {
  846. this.$message.success( '操作成功')
  847. this.changeData(this.currentRow);
  848. this.addModelFlag = false;
  849. }else {
  850. this.$message.error(data.msg);
  851. }
  852. })
  853. },
  854. submitDataNoClose() {
  855. // 验证必填字段
  856. if (!this.addModelData.productionDate||this.addModelData.productionDate==='') {
  857. this.$message.error('请选择生产日期');
  858. return;
  859. }
  860. if (!this.addModelData.rollCount||this.addModelData.rollCount==='') {
  861. this.$message.error('请输入发行张数');
  862. return;
  863. }
  864. if (!this.addModelData.rollQty||this.addModelData.rollQty==='') {
  865. this.$message.error('请输入每张数量');
  866. return;
  867. }
  868. if ( this.addModelData.nowRollQty>Number(this.addModelData.remainingIssuableQty)+((Number(this.addModelData.exceedInRatio)*Number(this.addModelData.orderQty))/100)) {
  869. this.$message.error('本次发行数量大于剩余可发行数量和超入数量');
  870. return;
  871. }
  872. // 这里可以添加提交逻辑
  873. submitPoOrderRollNo(this.addModelData).then(({data}) => {
  874. if (data && data.code === 0) {
  875. this.$message.success( '操作成功')
  876. this.changeData(this.currentRow);
  877. let row=this.currentRow;
  878. getInboundQcResultOtherData(row).then(({data}) => {
  879. //区分请求成功和失败的状况
  880. if (data && data.code=== 0) {
  881. let outData = data.row
  882. console.log(data.row);
  883. this.addModelData.remainingIssuableQty= outData.remainingIssuableQty
  884. }
  885. });
  886. }else {
  887. this.$message.error(data.msg);
  888. }
  889. })
  890. },
  891. getNowRollQty(){
  892. if(this.addModelData.tailRollQty==''||this.addModelData.tailRollQty==null||this.addModelData.tailRollQty<0){
  893. this.addModelData.tailRollQty=0
  894. }
  895. if(this.addModelData.tailRollQty==0){
  896. this.addModelData.nowRollQty=Number(this.addModelData.rollQty)*Number(this.addModelData.rollCount)
  897. }else {
  898. this.addModelData.nowRollQty=Number(this.addModelData.rollQty)*(Number(this.addModelData.rollCount)-1)+Number(this.addModelData.tailRollQty)
  899. }
  900. },
  901. handleInput(value) {
  902. // 1. 只保留数字
  903. value = value.replace(/\D/g, '')
  904. // 2. 去除前导零(0, 00, 0123 → 123)
  905. value = value.replace(/^0+/, '')
  906. // 3. 更新数据(触发 Vue 响应式)
  907. this.addModelData.rollCount = value
  908. },
  909. printLabels(){
  910. if(this.selectionDataList.length===0){
  911. this.$message.error('未选择标签!');
  912. return false;
  913. }
  914. getPoPartLabelData(this.selectionDataList).then(({data}) => {
  915. if (data && data.code === 0) {
  916. console.log(data.rows)
  917. poPartLabelPrint(data.rows)
  918. this.getDetailTableList();
  919. }else {
  920. this.$message.error(data.msg);
  921. }
  922. })
  923. },
  924. deleteLabels(){
  925. if(this.selectionDataList.length===0){
  926. this.$message.error('未选择标签!');
  927. return false;
  928. }
  929. deletePoPartLabelData(this.selectionDataList).then(({data}) => {
  930. if (data && data.code === 0) {
  931. this.getDetailTableList();
  932. this.$message.success('删除成功!');
  933. }else {
  934. this.$message.error(data.msg);
  935. }
  936. })
  937. },
  938. },
  939. created() {
  940. //查询报表的类型
  941. this.getMainData();
  942. },
  943. }
  944. </script>
  945. <!--当前页面的标签样式-->
  946. <style scoped lang="scss">
  947. /deep/ .customer-tab .el-tabs__content {
  948. padding: 5px !important;
  949. }
  950. /deep/ .el-form-item__label {
  951. font-weight: 500;
  952. }
  953. /deep/ .el-form-item.is-required .el-form-item__label:before {
  954. content: '*';
  955. color: #f56c6c;
  956. margin-right: 4px;
  957. }
  958. /deep/ .dialog-footer {
  959. padding: 20px 0 0 0;
  960. text-align: center;
  961. }
  962. /deep/ .el-dialog__body {
  963. padding: 20px;
  964. }
  965. /deep/ .el-input.is-disabled .el-input__inner {
  966. background-color: #f5f7fa;
  967. border-color: #e4e7ed;
  968. color: #c0c4cc;
  969. }
  970. </style>