From 25cc86fd8a2fb3b2bb6b385cba0adaf89ff3dcdc Mon Sep 17 00:00:00 2001
From: chenlu <1320612696@qq.com>
Date: 星期四, 18 十二月 2025 16:39:32 +0800
Subject: [PATCH] 流程卡进度打印部分代码

---
 north-glass-erp/northglass-erp/src/views/pp/processCard/PrintLabel.vue |  481 ++++++++++++++++++++++++++++++++++++++++++++---------
 1 files changed, 400 insertions(+), 81 deletions(-)

diff --git a/north-glass-erp/northglass-erp/src/views/pp/processCard/PrintLabel.vue b/north-glass-erp/northglass-erp/src/views/pp/processCard/PrintLabel.vue
index 2f2eed2..e930fca 100644
--- a/north-glass-erp/northglass-erp/src/views/pp/processCard/PrintLabel.vue
+++ b/north-glass-erp/northglass-erp/src/views/pp/processCard/PrintLabel.vue
@@ -6,7 +6,8 @@
 import {useRouter} from 'vue-router'
 import {changeFilterEvent, filterChanged} from "@/hook"
 import {useI18n} from 'vue-i18n'
-import deepClone from "@/utils/deepClone";
+import deepClone from "@/utils/deepClone"
+import companyInfo from "@/stores/sd/companyInfo"
 //璇█鑾峰彇
 const {t} = useI18n()
 let router = useRouter()
@@ -14,19 +15,35 @@
 let labelList = ref([])
 let projectNo = ref([])
 let type = ref([])
+let printStyle = ref([])
 let orderId = ref([])
 const data = ref({
   printList: []
 })
-
+let remarks = ref('')
+const company = companyInfo()
 
 
 
 const {currentRoute} = useRouter()
 const route = currentRoute.value
+const printType=route.query.printType
 projectNo.value = route.query.projectNo
 type.value = route.query.type
+printStyle.value = route.query.printStyle
+
+
+
 onMounted(() => {
+      if (localStorage.getItem('hasRefreshed')=="false") {
+        // 璁剧疆鏍囧織锛岃〃绀哄凡缁忓埛鏂拌繃
+        localStorage.setItem('hasRefreshed', 'true');
+        // 鎵ц鍒锋柊鎿嶄綔
+        location.reload();
+      }else{
+        localStorage.setItem('hasRefreshed', 'false');
+      }
+  //宸ョ▼鎵撳嵃
   if(projectNo.value!=null){
     request.post(`/processCard/getSelectPrintLabel/${projectNo.value}/${type.value}`).then((res) => {
       if (res.code == 200) {
@@ -37,28 +54,52 @@
       }
     })
   }else{
-    data.value.printList = JSON.parse(route.query.printList)
-    request.post(`/processCard/getSelectPrintLabel1`,data.value).then((res) => {
-      if (res.code == 200) {
-        produceList.value = deepClone(res.data.data)
-        for (let i = 0; i < produceList.value.length; i++) {
-         let count= produceList.value[i].data.length
-          for (let j = 0; j < count; j++) {
-            for (let k = 0; k < produceList.value[i].data[j].quantity; k++){
-              labelList.value.push(produceList.value[i].data[j])
+    //娴佺▼鍗$紪杈戞墦鍗版爣绛� 甯稿窞
+    if (printType == 1) {
+      data.value.printList = JSON.parse(route.query.printList)
+      request.post(`/processCard/getSelectPrintLabel1`,data.value).then((res) => {
+        if (res.code == 200) {
+          produceList.value = deepClone(res.data.data)
+          for (let i = 0; i < produceList.value.length; i++) {
+            let count= produceList.value[i].data.length
+            for (let j = 0; j < count; j++) {
+              for (let k = 0; k < produceList.value[i].data[j].quantity; k++){
+                labelList.value.push(produceList.value[i].data[j])
+              }
+
+
             }
-
-
           }
+          console.log(labelList.value)
+        } else {
+          ElMessage.warning(res.msg)
+          router.push("/login")
         }
-      } else {
-        ElMessage.warning(res.msg)
-        router.push("/login")
-      }
-    })
+      })
+    }
+    //鏄庣粏鍒嗘灦鎵撳嵃鏍囩 甯稿窞
+    else if(printType==2){
+      data.value.printList = JSON.parse(route.query.printList)
+      request.post(`/processCard/getSelectPrintLabelDetails`, data.value).then((res) => {
+        if (res.code == 200) {
+          produceList.value = deepClone(res.data.data)
+          for (let i = 0; i < produceList.value.length; i++) {
+            let count = produceList.value[i].data.length
+            for (let j = 0; j < count; j++) {
+              for (let k = 0; k < produceList.value[i].data[j].quantity; k++) {
+                labelList.value.push(produceList.value[i].data[j])
+              }
+
+            }
+          }
+        } else {
+          ElMessage.warning(res.msg)
+          router.push("/login")
+        }
+      })
+    }
+
   }
-
-
 
 }
 
@@ -106,52 +147,235 @@
       body.removeChild(content);
       body.removeChild(style);
     }, 20);
+
+    request.post(`/processCard/updateProjectLabelPrintCount/${projectNo.value}`).then((res) => {
+      if(res.code==='200'){
+        ElMessage.info(t('order.printingNumber')+':'+res.data)
+      }
+
+    })
   }
 </script>
 
 <template>
   <el-button id="printButton" @click="printFlowCard();">{{ $t('basicData.print') }}</el-button>
+  <el-input v-if="!company.showDeliveryCreator" v-model="remarks" style="background-color: transparent;border: none;margin-top: -20px;width: 100px"/>
   <div id="printFlowCard" >
-<!--    <div id="entirety" v-for="(items,id) in produceList" >
-      <div v-for="(item,index) in items.data" :key="index">
-        <div class="row1">{{ item.customer_name }}</div>
-        <div  class="row2">
-          <span>{{ item.order_id }}</span>
-          <span>{{ item.type_name }}</span>
-        </div>
-        <div class="row3">{{item.child_width}}*{{item.child_height}}={{item.quantity}}</div>
-        <div class="row5">
-          <span>{{item.project}}</span>
-          <span>{{ item.remarks }}</span>
-        </div>
-        <div class="row6">
-          <span>{{item.glass_child}}</span>
-          <span>{{item.processing_note}}</span>
-        </div>
-      </div>
-    </div>-->
-    <div id="entirety" v-for="(item,id) in labelList" >
-        <div class="row1">
-          <span>{{ item.customer_name }}</span>&nbsp;
-          <span>{{ item.order_id }}</span>&nbsp;
-          <span v-if="item.process.includes('澶硅兌')">鑳剁墖</span>
+<!--     鍗婃垚鍝佹爣绛�-->
+    <template v-if="type!=='3'&&printStyle==='1'" v-for="(item,id) in labelList">
+    <div  id="entirety" >
+      <div  class="row1" >
+<!--閽㈠寲鐗堝浘搴忓彿锛岄挗鍖栫増鍥鹃噷鐨勯『搴�-->
+<!--        <div class="cell" v-if="item.heat_layout_id!==undefined">{{ item.heat_layout_id }}/{{ item.heat_layout_sort }}</div>-->
+        <span style="font-size: 12px;">{{ item.customer_name }}</span>
+
+        <template v-if="company.showDeliveryCreator">
+          <span v-if="item.process.includes('澶硅兌')||item.process.includes('澶瑰眰')">鑳剁墖</span>
           <span v-else-if="item.process.includes('涓┖')">涓┖</span>
           <span v-else-if="item.process.includes('鐧惧彾')">鐧惧彾</span>
           <span v-else></span>
+        </template>
+
+<!--stock_id 鐗堝浘-->
+<!--        <div class="cell1" v-if="item.stock_id!=undefined">{{ item.stock_id+'/'+item.polys_id }}</div>-->
+
+      </div>
+      <div v-if="item.customer_name!==undefined" class="row9">
+        <span v-if="company.showDeliveryCreator">{{ item.order_id }}</span>
+        <span v-if="!company.showDeliveryCreator">{{ item.process_id }}</span>
+      </div>
+      <div class="row3" v-if="item.other_columns!=null&&(JSON.parse(item.other_columns).S02!=null)">
+        <span v-if="item.heat_layout_id!==undefined && company.showDeliveryCreator"  style="font-size: 7pt;">
+          ({{ item.stock_id }}) {{ item.heat_layout_id }}/{{ item.heat_layout_sort }}
+        </span>
+        <span v-if="item.stock_id!==undefined && !company.showDeliveryCreator"  style="font-size: 7pt">
+              {{ item.stock_id }}/{{ item.polys_id }}
+        </span>
+        {{JSON.parse(item.other_columns).S02}}={{item.quantity}}
+      </div>
+      <div class="row3" v-else>
+        <span v-if="item.heat_layout_sort!==undefined && company.showDeliveryCreator"  style="font-size: 7pt;">
+          ({{ item.stock_id }}) {{ item.heat_layout_id }}/{{ item.heat_layout_sort }}
+        </span>
+        <span v-if="item.stock_id!==undefined && !company.showDeliveryCreator"  style="font-size: 7pt">
+              {{ item.stock_id }}/{{ item.polys_id }}
+        </span>
+        {{Math.round(item.width)}}x{{Math.round(item.height)}}={{item.quantity}}
+      </div>
+      <div v-if="item.customer_name!==undefined" class="row5">
+        <span>{{item.project}}</span>&nbsp;
+        <span>{{item.building_number?item.building_number.replace(/\r|\n|\s/g,''):''}}</span>&nbsp;
+        <span v-if="item.bend_radius!=null">R={{item.bend_radius}}</span>&nbsp;
+      </div>
+      <div v-if="item.customer_name!==undefined" class="row6">
+        <span>{{item.glass_child}}</span>&nbsp;
+        <span v-if="company.showDeliveryCreator" style="font-size: 10pt" >{{item.processing_note}}</span>
+        <span v-else style="font-size: 6pt"></span>
+
+        <br v-if="!company.showDeliveryCreator" />
+        <span v-if="!company.showDeliveryCreator" style="font-size: 6pt;margin-top: -10px">{{item.product_name}}</span>
+      </div>
+
+    </div>
+    <div class="element-to-break-after" v-if="(id+1)%44==0"></div>
+    </template>
+
+
+
+<!--鎴愬搧鍚嶇О-->
+    <template v-if="type==='3'&&printStyle==='1'"  v-for="(item,id) in labelList">
+      <div  id="entirety" v-for="n in item.quantity" >
+
+        <div class="row1" v-if="item.heat_layout_id!=null">
+
+
+          <span style="font-size: 8pt">{{ item.customer_name }}</span>&nbsp;
+
+        </div>
+        <div class="row1" v-else>
+          <span style="font-size: 8pt">{{ item.customer_name }}</span>&nbsp;
+        </div>
+        <div class="row2" style="font-size: 8pt" >{{item.order_id}}
+          <span style="font-size: 8pt">{{ remarks }}</span>&nbsp;
+        </div>
+        <div class="row3" v-if="item.other_columns!=null&&(JSON.parse(item.other_columns).S02!=null)">
+        <span v-if="item.heat_layout_id!==null && company.showDeliveryCreator"  style="font-size: 7pt;">
+          ({{ item.stock_id }}) {{ item.heat_layout_id }}/{{ item.heat_layout_sort }}
+        </span>
+          <span v-if="item.stock_id!==null && !company.showDeliveryCreator"  style="font-size: 7pt">
+              {{ item.stock_id }}/{{ item.polys_id }}
+        </span>
+          {{JSON.parse(item.other_columns).S02}}={{item.quantity}}
+        </div>
+        <div class="row3" v-else>
+        <span v-if="item.heat_layout_id!==null && company.showDeliveryCreator"  style="font-size: 7pt;">
+         ({{ item.stock_id }}) {{ item.heat_layout_id }}/{{ item.heat_layout_sort }}
+        </span>
+          <span v-if="item.stock_id!==null && !company.showDeliveryCreator"  style="font-size: 7pt">
+              {{ item.stock_id }}/{{ item.polys_id }}
+        </span>
+          {{Math.round(item.width)}}x{{Math.round(item.height)}}={{item.quantity}}
         </div>
 
-        <div class="row3" v-if="item.other_columns!=null&&(JSON.parse(item.other_columns).S02!=null)">{{JSON.parse(item.other_columns).S02}}={{item.quantity}}</div>
-        <div class="row3" v-else>{{Math.round(item.width)}}x{{Math.round(item.height)}}={{item.quantity}}</div>
         <div class="row5">
-          <span>{{item.project}}</span>&nbsp;
-          <span>{{ item.building_number }}</span>
+          <span style="white-space: pre-wrap;font-size: 8pt">{{ item.building_number?item.building_number.replace(/\r|\n|\s/g,''):'' }}</span>
           <span v-if="item.bend_radius!=null">R={{item.bend_radius}}</span>
         </div>
         <div class="row6">
-          <span>{{item.glass_child}}</span>&nbsp;
-          <span>{{item.processing_note}}</span>
+          <span style="font-size: 10pt">{{item.glass_child}}</span>&nbsp;
         </div>
-    </div>
+      </div>
+      <div class="element-to-break-after" v-if="(id+1)%44==0"></div>
+    </template>
+
+
+
+
+
+
+
+    <template v-if="type!=='3'&&printStyle==='2'" v-for="(item,id) in labelList">
+      <div id="entirety1" >
+
+        <div  class="row1" >
+          <!--閽㈠寲鐗堝浘搴忓彿锛岄挗鍖栫増鍥鹃噷鐨勯『搴�-->
+          <!--        <div class="cell" v-if="item.heat_layout_id!==undefined">{{ item.heat_layout_id }}/{{ item.heat_layout_sort }}</div>-->
+          <span >{{ item.customer_name }}</span>
+
+          <template v-if="company.showDeliveryCreator">
+            <span v-if="item.process.includes('澶硅兌')||item.process.includes('澶瑰眰')">鑳剁墖</span>
+            <span v-else-if="item.process.includes('涓┖')">涓┖</span>
+            <span v-else-if="item.process.includes('鐧惧彾')">鐧惧彾</span>
+            <span v-else></span>
+          </template>
+
+          <!--stock_id 鐗堝浘-->
+          <!--        <div class="cell1" v-if="item.stock_id!=undefined">{{ item.stock_id+'/'+item.polys_id }}</div>-->
+
+        </div>
+        <div v-if="item.customer_name!==undefined" class="row9">
+          <span v-if="company.showDeliveryCreator">{{ item.order_id }}</span>
+          <span v-if="!company.showDeliveryCreator">{{ item.process_id }}</span>
+        </div>
+        <div class="row3" v-if="item.other_columns!=null&&(JSON.parse(item.other_columns).S02!=null)">
+        <span v-if="item.heat_layout_id!==undefined && company.showDeliveryCreator"  style="font-size: 7pt;">
+          ({{ item.stock_id }}) {{ item.heat_layout_id }}/{{ item.heat_layout_sort }}
+        </span>
+          <span v-if="item.stock_id!==undefined && !company.showDeliveryCreator"  style="font-size: 7pt">
+              {{ item.stock_id }}/{{ item.polys_id }}
+        </span>
+          {{JSON.parse(item.other_columns).S02}}={{item.quantity}}
+        </div>
+        <div class="row3" v-else>
+        <span v-if="item.heat_layout_sort!==undefined && company.showDeliveryCreator" >
+          ({{ item.stock_id }}) {{ item.heat_layout_id }}/{{ item.heat_layout_sort }}
+        </span>
+          <span v-if="item.stock_id!==undefined && !company.showDeliveryCreator"  >
+              {{ item.stock_id }}/{{ item.polys_id }}
+        </span>
+          {{Math.round(item.width)}}x{{Math.round(item.height)}}={{item.quantity}}
+        </div>
+        <div v-if="item.customer_name!==undefined" class="row5">
+          <span>{{item.project}}</span>&nbsp;
+          <span>{{item.building_number?item.building_number.replace(/\r|\n|\s/g,''):''}}</span>&nbsp;
+          <span v-if="item.bend_radius!=null">R={{item.bend_radius}}</span>&nbsp;
+        </div>
+        <div v-if="item.customer_name!==undefined" class="row6">
+          <span>{{item.glass_child}}</span>&nbsp;
+          <span v-if="company.showDeliveryCreator" style="font-size: 8pt" >{{item.processing_note}}</span>
+          <span v-else style="font-size: 8pt"></span>
+
+          <br v-if="!company.showDeliveryCreator" />
+          <span v-if="!company.showDeliveryCreator" style="font-size: 8pt;margin-top: -10px">{{item.product_name}}</span>
+        </div>
+      </div>
+      <div class="element-to-break-after" v-if="(id+1)%18==0"></div>
+    </template>
+
+
+
+    <template v-if="type==='3'&&printStyle==='2'" v-for="(item,id) in labelList">
+      <div  id="entirety1" v-for="n in item.quantity" >
+
+        <div class="row1" v-if="item.heat_layout_id!=null">
+          <span>{{ item.customer_name }}</span>&nbsp;
+        </div>
+        <div class="row1" v-else>
+          <span >{{ item.customer_name }}</span>&nbsp;
+        </div>
+        <div class="row2"  >
+          <span > {{item.order_id}}</span>&nbsp;
+          <span >{{ remarks }}</span>&nbsp;
+        </div>
+        <div class="row3" v-if="item.other_columns!=null&&(JSON.parse(item.other_columns).S02!=null)">
+        <span v-if="item.heat_layout_id!==null && company.showDeliveryCreator"  >
+          ({{ item.stock_id }}) {{ item.heat_layout_id }}/{{ item.heat_layout_sort }}
+        </span>
+          <span v-if="item.stock_id!==null && !company.showDeliveryCreator" >
+              {{ item.stock_id }}/{{ item.polys_id }}
+        </span>
+          {{JSON.parse(item.other_columns).S02}}={{item.quantity}}
+        </div>
+        <div class="row3" v-else>
+        <span v-if="item.heat_layout_id!==null && company.showDeliveryCreator"  >
+         ({{ item.stock_id }}) {{ item.heat_layout_id }}/{{ item.heat_layout_sort }}
+        </span>
+          <span v-if="item.stock_id!==null && !company.showDeliveryCreator"  >
+              {{ item.stock_id }}/{{ item.polys_id }}
+        </span>
+          {{Math.round(item.width)}}x{{Math.round(item.height)}}={{item.quantity}}
+        </div>
+
+        <div class="row5">
+          <span style="white-space: pre-wrap;">{{ item.building_number?item.building_number.replace(/\r|\n|\s/g,''):'' }}</span>
+          <span v-if="item.bend_radius!=null">R={{item.bend_radius}}</span>
+        </div>
+        <div class="row6">
+          <span style="font-size: 10pt">{{item.glass_child}}</span>&nbsp;
+        </div>
+      </div>
+    </template>
+
   </div>
 
 </template>
@@ -176,10 +400,12 @@
 
 #entirety{
   text-align: center;
-  width: 185px;
-  height: 87px;
-  margin-bottom: 10px;
+  width: 180px;
+  height: 90px;
+  margin-bottom: 7px;
+  margin-right: 5px;
   overflow: hidden;
+  white-space: nowrap;
 }
 
 .row1 {
@@ -188,67 +414,160 @@
   height: 20px;
 }
 .row1 span {
-  font-size: 8pt;
+  font-size: 10pt;
+  font-weight: bold;
+}
+.row2 span {
+  font-size: 10pt;
   font-weight: bold;
 }
 
 .row2 {
   font-size: 8pt;
   font-weight: bold;
-  height: 20px;
+  height: 15px;
 }
 span {
-  font-size: 10pt;
+  font-size: 8pt;
   font-weight: bold;
 }
 
 
-
-
-
-
-
-
 .row3 {
   margin-top: -5px;
+  height: 18px;
+  font-size: 12pt;
+  font-weight: bolder;
+}
+
+.row9 {
+  margin-top: -15px;
   height: 25px;
   font-size: 15pt;
   font-weight: bolder;
 }
 
 .row5 {
-  height: 20px;
+  height: 10px;
   font-weight: bold;
-  font-size: 8pt;
+  font-size: 6pt;
 }
 .row5 span {
-  font-size: 10pt;
+  font-size: 8pt;
   font-weight: bold;
 }
 
 .row6 {
-  height: 20px;
+  height: 25px;
   font-weight: bold;
-  font-size: 8pt;
+  font-size: 4pt;
 }
 .row6 span {
   font-size: 10pt;
   font-weight: bold;
 }
-
-
-
-
-
-@media print {
-  div {
-    page-break-inside: avoid;
-  }
-  @page {
-    size: auto;  /* auto is the initial value */
-    margin: 13mm 4mm 0mm 4mm;  /* this affects the margin in the printer settings */
-
-  }
+.cell{
+  position: absolute;
+  font-weight: bold;
+  margin-left: 5px;
+  margin-top: 20px;
+  font-size: 6pt;
 }
 
+.cell1{
+  position: absolute;
+  font-weight: bold;
+  margin-left: 158px;
+  margin-top: 0px;
+}
+.font-size {
+  font-size: 6pt;
+}
+
+.element-to-break-after {
+  page-break-after: always;
+}
+
+
+#entirety1{
+  text-align: center;
+  width: 240px;
+  height: 170px;
+  margin-bottom: 7px;
+  margin-right: 5px;
+  overflow: hidden;
+  white-space: nowrap;
+}
+
+
+#entirety1 .row1 {
+  font-weight: bold;
+  height: 30px;
+}
+#entirety1 .row1 span {
+  font-size: 15pt;
+  font-weight: bold;
+}
+#entirety1 .row2 span {
+  font-size: 12pt;
+  font-weight: bold;
+}
+
+#entirety1 .row2 {
+  font-weight: bold;
+  height: 30px;
+}
+
+
+
+#entirety1 .row3 {
+  margin-top: -5px;
+  height: 36px;
+  font-size: 25px;
+  font-weight: bolder;
+}
+
+#entirety1 .row3 span {
+  font-size: 15px;
+}
+
+#entirety1 .row9 {
+  margin-top: -15px;
+  height: 40px;
+  font-size: 18pt;
+  font-weight: bolder;
+}
+
+#entirety1 .row9 span {
+  font-size: 15pt;
+  font-weight: bold;
+}
+
+#entirety1 .row5 {
+  height: 30px;
+  font-weight: bold;
+  font-size: 6pt;
+}
+#entirety1 .row5 span {
+  font-size: 15pt;
+  font-weight: bold;
+}
+
+#entirety1 .row6 {
+  margin-top: -10px;
+  height: 50px;
+  font-weight: bold;
+  font-size: 18px;
+}
+#entirety1 .row6 span {
+  white-space: normal;
+  font-size: 16px;
+  font-weight: bold;
+}
+
+
+
+
+
+
 </style>
\ No newline at end of file

--
Gitblit v1.8.0