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.

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