廖井涛
2025-11-17 fcbce36f8734813b13c8f9c5b26b4bd192274534
north-glass-erp/northglass-erp/src/components/pp/PrintProcessStraight.vue
@@ -31,7 +31,8 @@
  printList: null,
  printMerge: null,
  printLike: null,
  printProject:null
  printProject:null,
  merges:null
})
const {currentRoute} = useRouter()
@@ -54,22 +55,25 @@
if (like == '') {
  like = null
}
let merges = props.merges
if (merges == '') {
  merges = null
}
let name=company.companyName
data.value.printList = JSON.parse(props.printList)
let flowCardCount = ''
onMounted(() => {
      if(props.printProject!=null){
        request.post(`/processCard/getSelectPrintProject/${printProject}`).then((res) => {
        request.post(`/processCard/getSelectPrintProject/${printProject}/${merges}`).then((res) => {
          if (res.code == 200) {
            load(res.data.data)
            console.log(res.data)
          } else {
            ElMessage.warning(res.msg)
            router.push("/login")
          }
        })
      }else{
        request.post(`/processCard/getSelectPrinting/${merge}/${like}`, data.value).then((res) => {
        request.post(`/processCard/getSelectPrinting/${merge}/${like}/${merges}`, data.value).then((res) => {
          if (res.code == 200) {
            load(res.data.data)
          } else {
@@ -169,33 +173,33 @@
    produceList.value[j].detail[0].weight = sumWeight
  }
  //处理合并打印
  if (printMerge !== null && printMerge !== undefined && printMerge !== "") {
    produceList.value.forEach(item => {
      item.detail[0].technologyNumber = printMerge;
    });
    //合并打印工艺流程处理
    if (like == null) {
      let process = produceList.value[0].detail[0].process
      let indexOfJiaJiao = process.indexOf('夹胶');
      if (indexOfJiaJiao !== -1) {
        // 使用 substring 截取 "夹胶" 后面的部分,包括 "夹胶" 本身
        let afterJiaJiao = process.substring(indexOfJiaJiao).trim();
        produceList.value.forEach(item => {
          item.detail[0].process = afterJiaJiao
        })
      }
      let indexOfProceList = produceList.value[0].processList
      let getProceList = indexOfProceList.findIndex(item => item.process === '夹胶');
      if (getProceList !== -1) {
        // 使用 filter 方法过滤出 "夹胶" 及其之后的对象
        produceList.value[0].processList = indexOfProceList.filter((item, index) => index >= getProceList);
      }
    }
  }
  // if (printMerge !== null && printMerge !== undefined && printMerge !== "") {
  //
  //   produceList.value.forEach(item => {
  //     item.detail[0].technologyNumber = printMerge;
  //   });
  //
  //   //合并打印工艺流程处理
  //   if (like == null) {
  //     let process = produceList.value[0].detail[0].process
  //     let indexOfJiaJiao = process.indexOf('夹胶');
  //     if (indexOfJiaJiao !== -1) {
  //       // 使用 substring 截取 "夹胶" 后面的部分,包括 "夹胶" 本身
  //       let afterJiaJiao = process.substring(indexOfJiaJiao).trim();
  //       produceList.value.forEach(item => {
  //         item.detail[0].process = afterJiaJiao
  //       })
  //     }
  //
  //     let indexOfProceList = produceList.value[0].processList
  //     let getProceList = indexOfProceList.findIndex(item => item.process === '夹胶');
  //
  //     if (getProceList !== -1) {
  //       // 使用 filter 方法过滤出 "夹胶" 及其之后的对象
  //       produceList.value[0].processList = indexOfProceList.filter((item, index) => index >= getProceList);
  //     }
  //   }
  // }
  // produceList.value.forEach(item => {
@@ -251,7 +255,7 @@
      <thead>
      <tr v-for="(itemFlow,index) in item.detail" :key="index">
        <td  colspan="31">
          <div style="float: left;"><input style="border: none;font-size: 28px;width: 70px;margin: 5px  "/></div>
          <div style="float: left;"><img id="img-pic" style="width: 42px;height: 32px" src="@/assets/northGlass.ico" alt=""><input style="border: none;font-size: 28px;width: 70px;margin: 5px  "/></div>
          <div id="bj" style="float: right;font-size: 28px">{{ id + 1 }}</div>
          <div>{{ company.companyName }}</div>
          <div>生产流程卡<span style="font-weight: bold" v-if="printProject!=null">({{ printProject }})</span></div>
@@ -260,13 +264,8 @@
              打印人:{{user.user.userName}} &nbsp;&nbsp;
              时间:{{formattedTime}}
              &nbsp;&nbsp;
              <span style="font-weight: bolder;" v-if="name=='金华福喜天成玻璃有限公司'">
                打印总数量:{{totalQuantity}}
              打印总面积:{{totalArea}}
              </span>
            </div>
            <div>
              <span v-if="name=='天津北玻玻璃工业技术有限公司(TJBB-QR7.1-01)'" style="font-size: 10px">{{itemFlow.otherRemarks}}</span>&nbsp;&nbsp;
            <div><span v-if="item.detailList[0].merge===1">合</span>{{itemFlow.rack}}
              流程卡号: {{
                itemFlow.process_id
              }}/{{ itemFlow.technologyNumber }} 共 {{ item.count }} 架
@@ -276,37 +275,31 @@
      </tr>
      <tr v-for="(items,index) in item.detail" :key="index">
        <td class="tdNowrap">客户名称:</td>
        <td colspan="2">{{ items.customer_name }}</td>
        <td class="tdNowrap">项目名称:</td>
        <td colspan="4" style="min-width: 250px;">{{ items.project }}</td>
        <td colspan="1" style="width: 200px;font-size: 17px">{{ items.customer_name }}</td>
        <td class="tdNowrap">磨边类型:</td>
        <td colspan="1" style="min-width: 100px">{{ items.edging_type }}</td>
        <td class="tdNowrap">工艺流程:</td>
        <td :colspan="2+item.processList.length*2"  style="width: 500px">{{ items.process }}</td>
        <td :colspan="1+item.processList.length*1"  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="1" style="font-size: 17px">{{ itemTr.project }}</td>
        <td class="tdNowrap">单片名称:</td>
        <td colspan="4">{{ itemTr.glass_child }}</td>
        <td colspan="1">{{ itemTr.glass_child }}</td>
        <td class="tdNowrap">产品名称:</td>
        <td :colspan="2+item.processList.length*2">{{ itemTr.product_name }}</td>
        <td :colspan="1+item.processList.length*1">{{ itemTr.product_name }}</td>
      </tr>
      <tr>
        <td rowspan='2'>序号</td>
        <td rowspan='2'>图号</td>
        <td rowspan='2'>编号</td>
        <td rowspan="2">小片顺序</td>
        <td rowspan='2' style="width: 90px">宽*高</td>
        <td rowspan='2' >数量</td>
        <td rowspan='2'>面积</td>
        <td rowspan='2'>周长</td>
        <td rowspan='2'>半径/备注</td>
        <td rowspan='2'>备注</td>
        <td v-for="(itemPr,index) in item.processList" :key="index" colspan="2">{{ itemPr.process }}</td>
        <td rowspan='2' style="font-size: 15px">序号</td>
        <td rowspan='2' style="font-size: 15px">宽*高</td>
        <td rowspan='2' style="font-size: 15px">数量</td>
        <td rowspan='2' style="font-size: 15px">备注</td>
        <td rowspan='2' style="font-size: 15px">面积</td>
        <td v-for="(itemPr,index) in item.processList" :key="index"  colspan="1">{{ itemPr.process }}</td>
      </tr>
      <tr>
        <template v-for=" n in item.processList.length">
          <td>{{ company.printLabel.printFlowCard.patch }}</td>
          <td>{{ company.printLabel.printFlowCard.lackOf }}</td>
        </template>
      </tr>
      </thead>
@@ -314,20 +307,14 @@
      <tr v-for="(itemDatile,index) in item.detailList" :key="index">
        <td>{{ itemDatile.order_number }}</td>
        <td>{{ itemDatile.mapNumber }}</td>
        <td v-if="name=='金华福喜天成玻璃有限公司'">{{ itemDatile.building_number }}</td>
        <td v-else>{{ itemDatile.s01Value }}</td>
        <td>{{ itemDatile.technology_number }}</td>
        <td>{{ itemDatile.child_width }}</td>
        <td class="item" style="width: 60px;height: 100%;">
          <input v-model="itemDatile.quantity" style="width: 100%;height: 100%"  @keyup="handleSummary()"/>
        <td style="font-size: 20px" v-if="itemDatile.mapNumber===''">{{ itemDatile.child_width }}</td>
        <td style="font-size: 20px" v-else>{{ itemDatile.mapNumber }}</td>
        <td class="item" style="width: 60px;height: 100%">
          <input v-model="itemDatile.quantity" style="width: 100%;height: 100%;font-size: 17px"  @keyup="handleSummary()"/>
        </td>
        <td>{{ itemDatile.total_area }}</td>
        <td>{{ itemDatile.perimeter }}</td>
        <td>{{ itemDatile.bend_radius }}</td>
        <td>{{ itemDatile.remarks }}</td>
        <td>{{ itemDatile.total_area }}</td>
        <template v-for=" n in item.processList.length">
          <td></td>
          <td></td>
        </template>
      </tr>
@@ -337,44 +324,37 @@
          <label>{{ itemsum.quantity }}</label>
          面积:
          <label>{{ itemsum.gross_area }}</label>
          重量:
          <label>{{ parseFloat(itemsum.weight.toFixed(2)) }}</label>
        </td>
      </tr>
      <tr v-for="(itemtextarea,index) in item.detail" :key="index">
        <td>完工签名</td>
        <td colspan="2"></td>
        <td colspan="2"></td>
        <td colspan="2"></td>
        <td colspan="2"></td>
        <td colspan="2"></td>
        <td colspan="1"></td>
        <td colspan="1"></td>
        <td colspan="1"></td>
        <td colspan="1"></td>
        <template v-for=" n in item.processList.length">
          <td colspan="2"></td>
          <td></td>
        </template>
      </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="1"></td>
        <td colspan="1"></td>
        <td colspan="1"></td>
        <td colspan="1"></td>
        <template v-for=" n in item.processList.length">
          <td colspan="2"></td>
          <td></td>
        </template>
      </tr>
      <tr>
        <td>原片箱号</td>
        <td colspan="31"></td>
      </tr>
      <tr v-for="(qrCodeItem,index) in item.detail" :key="index">
        <td colspan="31">
          <span style="display: flex;">
            <span v-for="(qrCodeItems,index) in qrCodeItem.qrcodeList" :key="index" style="display: flex;width: 35%">
            <div class='qrCode' style="width: 80px;height: 80px;">
            <img :src=qrCodeItems.qrcode>
            <img style="width: 97%;height: 97%;margin-top: 1px" :src=qrCodeItems.qrcode>
          </div>
          <span style="float: left;font-weight: bolder">{{
              qrCodeItem.process_id + "/" + qrCodeItems.technologyNumber
@@ -384,27 +364,12 @@
        </td>
      </tr>
      <tr v-if="company.remarkSwitch=='1'">
        <td colspan="31">
          <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="31"  style="width: 480px;height: 150px ">
          <div style="width: 100%;height: 100%;text-align: left"><textarea style="height: 99%;width: 99%;border: none;;font-size: 14px;overflow: hidden;text-align: left;vertical-align: middle">{{itemtextareas.processing_note}}</textarea>
          <div style="width: 99%;height: 99%;text-align: left;margin-left: 10px"><textarea style="height: 99%;width: 99%;border: none;;font-size: 14px;overflow: hidden;text-align: left;vertical-align: middle">{{itemtextareas.processing_note}}</textarea>
          </div>
        </td>
      </tr>
@@ -484,11 +449,10 @@
@media print {
  @page {
    size: auto;  /* auto is the initial value */
    margin: 4mm 5mm 10mm 5mm  /* this affects the margin in the printer settings */
    @page {
      margin: 10mm 10mm 5mm 10mm !important;
    }
  }
  table {
    page-break-before: always;