廖井涛
2024-10-14 b7546c0dcc65d193b7a549aa267a70a1a2dcac61
north-glass-erp/northglass-erp/src/components/pp/PrintProcess.vue
@@ -9,6 +9,7 @@
import deepClone from "@/utils/deepClone";
import QRCode from "qrcode";
import companyInfo from "@/stores/sd/companyInfo";
import userInfo from "@/stores/userInfo"
//语言获取
const company = companyInfo()
const {t} = useI18n()
@@ -16,6 +17,7 @@
let produceList = ref([])
let list = ref()
const details = ref([])
const user=userInfo()
const data = ref({
@@ -40,7 +42,7 @@
  like = null
}
data.value.printList = JSON.parse(props.printList)
let flowCardCount = data.value.printList.length
let flowCardCount = ''
onMounted(() => {
      request.post(`/processCard/getSelectPrinting/${merge}/${like}`, data.value).then((res) => {
        if (res.code == 200) {
@@ -135,24 +137,35 @@
const handleGetQRCode = async () => {
  console.log(produceList.value)
  let technologyNumber=''
  for (let i = 0; i < produceList.value.length; i++) {
    const technologyNumber = produceList.value[i].detail[0].technologyNumber.toString(); // 转换为字符串以便处理每个字符
    if (produceList.value[i].detail[0].qrcode!="" && produceList.value[i].detail[0].qrcode!=null){
       technologyNumber = produceList.value[i].detail[0].qrcode.toString(); // 转换为字符串以便处理每个字符,合并标签
    }else {
       technologyNumber = produceList.value[i].detail[0].technologyNumber.toString(); // 转换为字符串以便处理每个字符
    }
    produceList.value[i].detail[0]["qrcodeList"] = []; // 初始化一个空数组用来存储 QR Code
    for (let j = 0; j < technologyNumber.length; j++) {
      const processId = produceList.value[i].detail[0].process_id;
      const url = `${processId}/${technologyNumber[j]}`;
    const processId = produceList.value[i].detail[0].process_id;
    const url = `${processId}/${technologyNumber}`;
    // 生成 QR Code 并存储到数组中
    const qrcodeData = await QRCode.toDataURL(url);
    produceList.value[i].detail[0]["qrcodeList"].push({
      qrcode: qrcodeData,
      technologyNumber: technologyNumber
    });
      // 生成 QR Code 并存储到数组中
      const qrcodeData = await QRCode.toDataURL(url);
      produceList.value[i].detail[0]["qrcodeList"].push({
        qrcode: qrcodeData,
        technologyNumber: technologyNumber[j]
      });
    }
    // for (let j = 0; j < technologyNumber.length; j++) {
    //   const processId = produceList.value[i].detail[0].process_id;
    //   const url = `${processId}/${technologyNumber[j]}`;
    //   // 生成 QR Code 并存储到数组中
    //   const qrcodeData = await QRCode.toDataURL(url);
    //   produceList.value[i].detail[0]["qrcodeList"].push({
    //     qrcode: qrcodeData,
    //     technologyNumber: technologyNumber[j]
    //   });
    //
    // }
  }
};
@@ -188,7 +201,7 @@
<template>
  <!--  <el-button id="printButton" @click="printFlowCard();">{{ $t('basicData.print') }}</el-button>-->
  <div id="printFlowCard">
    <table v-for="(item,id) in produceList" id="contentTable" :key="id">
    <table v-for="(item,id) in produceList" id="contentTable" :key="id" style="border-bottom: none">
      <thead>
      <tr v-for="(itemFlow,index) in item.detail" :key="index">
        <td  colspan="29">
@@ -196,17 +209,14 @@
          <div id="bj" style="float: right;font-size: 28px">{{ id + 1 }}</div>
          <div>{{ company.companyName }}</div>
          <div>生产流程卡</div>
          <div v-if="itemFlow.technologyNumberMerge!=''" style="text-align: right;font-weight: bolder">
            {{itemFlow.otherRemarks}}&nbsp;&nbsp;
            流程卡号: {{
              itemFlow.process_id
            }}/{{ itemFlow.technologyNumberMerge }} 共 {{ flowCardCount }} 架
          </div>
          <div v-else style="text-align: right;font-weight: bolder">
            {{itemFlow.otherRemarks}}&nbsp;&nbsp;
            流程卡号: {{
              itemFlow.process_id
            }}/{{ itemFlow.technologyNumber }} 共 {{ flowCardCount }} 架
          <div  style="font-weight: bolder;display: flex;justify-content:space-between">
            <div>打印人:{{user.user.userName}}</div>
            <div>
              <span style="font-size: 10px">{{itemFlow.otherRemarks}}</span>&nbsp;&nbsp;
              流程卡号: {{
                itemFlow.process_id
              }}/{{ itemFlow.technologyNumber }} 共 {{ item.count }} 架
            </div>
          </div>
        </td>
      </tr>
@@ -214,17 +224,17 @@
        <td class="tdNowrap">客户名称:</td>
        <td colspan="2">{{ items.customer_name }}</td>
        <td class="tdNowrap">项目名称:</td>
        <td colspan="2">{{ items.project }}</td>
        <td colspan="4">{{ items.project }}</td>
        <td class="tdNowrap">工艺流程:</td>
        <td colspan="22"  style="width: 500px">{{ items.process }}</td>
        <td colspan="20"  style="width: 500px">{{ items.process }}</td>
      </tr>
      <tr v-for="(itemTr,index) in item.detail" :key="index">
        <td class="tdNowrap">磨边类型:</td>
        <td colspan="2">{{ itemTr.edging_type }}</td>
        <td class="tdNowrap">单片名称:</td>
        <td colspan="2">{{ itemTr.glass_child }}</td>
        <td colspan="4">{{ itemTr.glass_child }}</td>
        <td class="tdNowrap">产品名称:</td>
        <td colspan="22">{{ itemTr.product_name }}</td>
        <td colspan="20">{{ itemTr.product_name }}</td>
      </tr>
      <tr>
        <td rowspan='2'>序号</td>
@@ -297,8 +307,6 @@
        <td></td>
        <td></td>
      </tr>
      </tbody>
      <tfoot>
      <tr style="height: 14px">
        <td v-for="(itemsum,index) in item.detail" :key="index" colspan="29">
          数量:
@@ -344,23 +352,7 @@
        <td colspan="2"></td>
        <td colspan="2"></td>
      </tr>
      <tr>
        <td>质检签名</td>
        <td colspan="2"></td>
        <td colspan="2">生产签名</td>
        <td colspan="2"></td>
        <td colspan="2"></td>
        <td colspan="2"></td>
        <td colspan="2"></td>
        <td colspan="2"></td>
        <td colspan="2"></td>
        <td colspan="2"></td>
        <td colspan="2"></td>
        <td colspan="2"></td>
        <td colspan="2"></td>
        <td colspan="2"></td>
        <td colspan="2"></td>
      </tr>
      <tr>
        <td>原片箱号</td>
        <td colspan="28"></td>
@@ -380,14 +372,41 @@
        </td>
      </tr>
      <tr v-if="company.remarkSwitch=='1'">
        <td colspan="29">
          <div style="display: flex;flex-wrap: wrap;">
            <div class="nuber_xx" v-for="(itemremark,index) in item.remarkList" :key="index">
             <span v-if="!(itemremark.S02==null&&itemremark.S03==null&&itemremark.S04==null&&itemremark.S05==null)">
               编号:{{itemremark.S01}}
             </span>&nbsp;&nbsp;
              <span v-if="itemremark.S02!=null&&itemremark.S02!=''">备注1:{{itemremark.S02}}</span>&nbsp;&nbsp;
              <span v-if="itemremark.S03!=null&&itemremark.S03!=''">备注2:{{itemremark.S03}}</span>&nbsp;&nbsp;
              <span v-if="itemremark.S04!=null&&itemremark.S04!=''">备注3:{{itemremark.S04}}</span>&nbsp;&nbsp;
              <span v-if="itemremark.S05!=null&&itemremark.S05!=''">备注4:{{itemremark.S05}}</span>
            </div>
          </div>
        </td>
      </tr>
      </tbody>
      <tfoot>
      <tr v-for="(itemtextareas,index) in item.detail" :key="index">
        <td  colspan="29" rowspan="6" style="width: 480px;height: 150px ">
          <div style="width: 100%;height: 100%;"><textarea style="height: 99%;width: 99%;border: none;;font-size: 12px;overflow: hidden;">{{itemtextareas.processing_note}}</textarea>
        <td  colspan="29"  style="width: 480px;height: 150px ">
          <div style="width: 100%;height: 100%;text-align: left"><textarea style="height: 99%;width: 99%;border: none;;font-size: 12px;overflow: hidden;text-align: left;vertical-align: middle">{{itemtextareas.processing_note}}</textarea>
          </div>
        </td>
      </tr>
      <tr style="border-bottom: none">
        <td colspan="29" style="text-align: left;border-bottom: none;">
          <div>
            <span>质检签名:</span>
            <span style="margin-left: 300px">生产签名:</span>
          </div>
        </td>
      </tr>
      </tfoot>
    </table>
  </div>
</template>
@@ -396,9 +415,11 @@
* {
  margin: 0;
  padding: 0;
  text-align: center;
}
td,input{
  text-align: center;
}
#printFlowCard {
  text-align: center;
@@ -428,11 +449,11 @@
}
#contentTable tbody {
white-space: nowrap;
}
.tdNowrap {
  white-space: nowrap;
}
#contentTable tfoot {
@@ -445,13 +466,15 @@
  background: none;
}
.nuber_xx span{
  font-size: 12px;
}
@media print {
  @page {
    size: auto;  /* auto is the initial value */
    margin: 4mm 5mm 5mm 5mm  /* this affects the margin in the printer settings */
    margin: 4mm 5mm 10mm 5mm  /* this affects the margin in the printer settings */
  }
@@ -460,8 +483,9 @@
    page-break-inside: auto;
  }
 #contentTable thead {
   display: table-header-group;
  thead {
    display: table-header-group;
    page-break-inside: avoid;
  }
  tfoot {