Преглед изворни кода

采购单管理批量打印功能实现

lph пре 1 година
родитељ
комит
b1fb9928ee

+ 9 - 0
zkqy-ui/src/api/system/dict/data.js

@@ -56,3 +56,12 @@ export function delData(dictCode) {
     baseURL: process.env.VUE_APP_BASE_API1
   })
 }
+
+// 获取材料id对应的label
+export function getDictLabel(id) {
+  return request({
+    url: '/system/dict/data/getDictLabel/' + id,
+    method: 'get',
+    baseURL: process.env.VUE_APP_BASE_API1
+  })
+}

+ 16 - 17
zkqy-ui/src/utils/print/qrCodeList.js

@@ -3,16 +3,17 @@ import QRCode from 'qrcodejs2'
 import { v4 as uuidv4 } from "uuid";
 
 function qrCodeList(data, domId) {
-  const NUM = data.num;
-  let tempData = {
-    goodsName: '货品名称',
-    specifications: '规格'
-  }
-  let goodsname = "名称:" + data.purchaseBuyName;
-  let specifications = "规格:" + data.purchaseSerialNumber;
-  let goodstime = "生产日期:" + data.purchaseCreateTime;
+  // const NUM = data.num;
+  // let tempData = {
+  //   goodsName: '货品名称',
+  //   specifications: '规格'
+  // }
+  // let goodsname = "名称:" + data.purchaseBuyName;
+  // let specifications = "规格:" + data.purchaseSerialNumber;
+  // let goodstime = "生产日期:" + data.purchaseCreateTime;
   let printContent = `<div><table><tr><td >`;
-  for (var i = 0; i < NUM; i++) {
+  for (var i = 0; i < data.length; i++) {
+    let currentData = data[i]
     printContent +=
       `<div style="width: 840px; height:100px;background-color: skyblue;"><div id="HT` +
       i +
@@ -21,22 +22,20 @@ function qrCodeList(data, domId) {
       `<div id="LJJ` +
       i +
       `" style="float: left;margin-top: 5px;">
-                <h1><strong>${goodsname}</strong></h1>
-                <h1><strong>${specifications}</strong></h1>
+                <h1><strong>${currentData.showMsg[0].label +
+      ': ' + currentData.showMsg[0].value}</strong></h1>
+                <h1><strong>${currentData.showMsg[1].label +
+      ': ' + currentData.showMsg[1].value}</strong></h1>
               </div></div>
               <div style="clear: both"></div>`;
   }
   printContent += `</td></tr></table></div>`;
   document.body.innerHTML = document.getElementById(domId).innerHTML = printContent;
-  for (var i = 0; i < NUM; i++) {
+  for (var i = 0; i < data.length; i++) {
     for (let j = 0; j < 1; j++) {
       new QRCode(document.getElementById("HT" + i), {
         text:
-          sleep(1) +
-          "no=" +
-          tempData.goodsno +
-          "no=" +
-          uuidv4(),
+          sleep(1) + JSON.stringify(data[i].codeData),
         width: 120,
         height: 120,
         colorDark: "#000000",

+ 49 - 3
zkqy-ui/src/views/orderMange/purchase/index.vue

@@ -354,10 +354,13 @@ import { v4 as uuidv4 } from "uuid";
 import { mapState } from "vuex";
 import moment from "moment";
 import qrCodeList from "@/utils/print/qrCodeList";
+import { listTableData } from "@/api/tablelist/commonTable";
+import { getDictLabel } from "@/api/system/dict/data";
 
 export default {
   name: "listInfo",
   components: { Queryfrom, Menu, DialogTemplate },
+  dicts: ["wlml_type"],
   data() {
     return {
       // 打印数据
@@ -549,18 +552,61 @@ export default {
   },
   methods: {
     // 打印
-    toPrint() {
+    async toPrint() {
+      let { purchaseMaterielId, purchaseSerialNumber } = this.printRow;
+      let printData = {};
+      let payLoad = {
+        isEnablePaging: false,
+        basicMap: {
+          tableName: "materiel_code",
+        },
+        queryMap: {
+          materiel_code: purchaseMaterielId,
+        },
+      };
+      let res = await listTableData(payLoad);
+      let labelRes = await getDictLabel(purchaseMaterielId);
+      if (res.code == 200 && labelRes.code == 200) {
+        let data = res.rows[0]?.resultMap;
+        printData.serialNumber = purchaseSerialNumber;
+        printData.materielId = purchaseMaterielId;
+        printData.materielName = data?.materielName;
+        printData.units = data?.units;
+        printData.specificationModel = data?.specificationModel;
+        // printData.dictLabel = labelRes.msg;
+      }
       this.$refs.printFormRef.validate((valid) => {
         if (valid) {
-          let {} = this.printRow;
           console.log(this.printRow);
-          qrCodeList(this.printRow, "printDom");
+          let allPringtData = [];
+          for (let i = 0; i < Number(this.printForm.num); i++) {
+            allPringtData.push({
+              codeData: {
+                ...printData,
+                no: i + 1,
+              },
+              showMsg: [
+                {
+                  label: "序号",
+                  value: i + 1,
+                },
+                {
+                  label: "母粒名称",
+                  value: labelRes.msg,
+                },
+              ],
+            });
+          }
+          // console.log(allPringtData);
+          qrCodeList(allPringtData, "printDom");
         } else {
           console.log("error submit!!");
           return false;
         }
       });
     },
+    // 根据dict的Label获取对应value
+    getDictListValue(list) {},
     // 重置审计表单数据
     resetFormData() {
       Object.assign(this.formData, {