From 8fb3ee9eae369f7a5c39da8ed69d0e8cea3ae2f8 Mon Sep 17 00:00:00 2001
From: chenlu <1320612696@qq.com>
Date: 星期三, 24 十二月 2025 16:24:59 +0800
Subject: [PATCH] 生产加工单上显示图纸和图纸尺寸调整功能,流程卡上图纸尺寸调整功能

---
 north-glass-erp/northglass-erp/src/components/pp/PrintProcess.vue |   72 +++++++++++++++++++++++++++++-------
 1 files changed, 58 insertions(+), 14 deletions(-)

diff --git a/north-glass-erp/northglass-erp/src/components/pp/PrintProcess.vue b/north-glass-erp/northglass-erp/src/components/pp/PrintProcess.vue
index 1cff29a..876be06 100644
--- a/north-glass-erp/northglass-erp/src/components/pp/PrintProcess.vue
+++ b/north-glass-erp/northglass-erp/src/components/pp/PrintProcess.vue
@@ -11,6 +11,7 @@
 import companyInfo from "@/stores/sd/companyInfo";
 import userInfo from "@/stores/userInfo"
 import {add} from '@/utils/decimal'
+import ImageSizeEditor from '@/components/ImageSizeEditor.vue'
 //璇█鑾峰彇
 const company = companyInfo()
 const {t} = useI18n()
@@ -19,6 +20,7 @@
 let list = ref()
 const details = ref([])
 const user=userInfo()
+const imgSizeMap = ref({})
 
 let totalQuantity = 0;  // 鐢ㄤ簬璁板綍鎬绘暟閲�
 let totalArea = 0;      // 鐢ㄤ簬璁板綍鎬婚潰绉�
@@ -168,7 +170,19 @@
       //姣忎釜搴忓彿闈㈢Н
       collection.total_area = parseFloat((collection.width * collection.height * collection.quantity / 1000000).toFixed(2))
       totalArea = add(totalArea, collection.total_area)
-      totalWeight += collection.width * collection.height * collection.quantity / 1000000 * collection.separation * 2.5 * 1;
+      //鏍规嵁鏈夊嚑灞傝绠楅噸閲�
+      for (let j = 0; j < produceList.value[i].detail.length; j++) {
+       let ceng = produceList.value[i].detail[j].technologyNumber.length
+        if (produceList.value[i].processName!=""){
+          for (let k = 0; k < produceList.value[i].detail[j].technologyNumber.length; k++) {
+            totalWeight += collection.width * collection.height * collection.quantity / 1000000 * collection.separation * 2.5 * 1;
+          }
+        }else {
+          totalWeight += collection.width * collection.height * collection.quantity / 1000000 * collection.separation * 2.5 * 1;
+        }
+
+      }
+
       //姣忎釜搴忓彿鍛ㄩ暱
       collection.perimeter = parseFloat(((collection.width * 2 + collection.height * 2) * collection.quantity / 1000).toFixed(3))
     });
@@ -307,7 +321,7 @@
   <!--  <el-button id="printButton" @click="printFlowCard();">{{ $t('basicData.print') }}</el-button>-->
   <div id="printFlowCard">
 <div id="contentDiv" v-for="(item,id) in produceList" :key="id">
-  <table  id="contentTable"  style="border-bottom: none">
+  <table  id="contentTable"  style="border-bottom: none;margin-bottom: 20px">
     <thead>
     <tr v-for="(itemFlow,index) in item.detail" :key="index">
       <td  colspan="31">
@@ -316,7 +330,7 @@
         <div id="bj" v-else style="float: right;font-size: 28px"></div>
         <div>{{ company.companyName }}</div>
         <div>
-          鐢熶骇娴佺▼鍗�<span style="font-weight: bold" v-if="printProject!=null">({{ printProject }})</span>
+          ({{itemFlow.order_type}})鐢熶骇娴佺▼鍗�<span style="font-weight: bold" v-if="printProject!=null">({{ printProject }})</span>
           <span style="font-weight: bold" v-if="props.compound!=null">({{ props.compound }}灞傚悓鏋�)</span>
         </div>
         <div  style="font-weight: bolder;display: flex;justify-content:space-between">
@@ -357,9 +371,12 @@
       <td v-if="name=='澶╂触鍖楃幓鐜荤拑宸ヤ笟鎶�鏈湁闄愬叕鍙革紙TJBB-QR7.1-01锛�'"  colspan="4">{{ itemTr.other_remarks }}</td>
       <td v-else colspan="4">{{ itemTr.edging_type }}</td>
       <td class="tdNowrap">鍗曠墖鍚嶇О锛�</td>
-      <td colspan="3">{{ itemTr.glass_child }}</td>
+      <td v-if="!company.processFontSize" colspan="3">{{ itemTr.glass_child }}</td>
+      <td v-else colspan="3" style="font-size: 18px;">{{ itemTr.glass_child }}</td>
       <td class="tdNowrap">浜у搧鍚嶇О锛�</td>
-      <td :colspan="2+item.processList.length*2">{{ itemTr.product_name }}</td>
+
+      <td v-if="!company.processFontSize" :colspan="2+item.processList.length*2">{{ itemTr.product_name }}</td>
+      <td v-else :colspan="2+item.processList.length*2" style="font-size: 18px;">{{ itemTr.product_name }}</td>
     </tr>
     <tr>
       <td rowspan='2'>搴忓彿</td>
@@ -386,7 +403,7 @@
     <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-if="name=='閲戝崕绂忓枩澶╂垚鐜荤拑鏈夐檺鍏徃' || name=='娴欐睙宸ㄦ槦鍢夋嘲鏂版潗鏂欐湁闄愬叕鍙�' ">{{ itemDatile.building_number }}</td>
       <td v-else>{{ itemDatile.s01Value }}</td>
       <td>{{ itemDatile.technology_number }}</td>
       <td>{{ itemDatile.child_width }}</td>
@@ -475,7 +492,9 @@
 
       <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;font-weight: bold;overflow: hidden;text-align: left;vertical-align: middle">{{itemtextareas.processing_note}}</textarea>
+          <div style="width: 100%;height: 100%;text-align: left">
+            <textarea v-if="!company.processFontSize" style="height: 99%;width: 99%;border: none;;font-size: 14px;font-weight: bold;overflow: hidden;text-align: left;vertical-align: middle">{{itemtextareas.processing_note}}</textarea>
+            <textarea v-else style="height: 99%;width: 99%;border: none;;font-size: 36px;font-weight: bold;overflow: hidden;text-align: left;vertical-align: middle">{{itemtextareas.processing_note}}</textarea>
           </div>
         </td>
       </tr>
@@ -489,12 +508,20 @@
       </tr>
       </tfoot>
     </table>
-  <el-image
-      v-for="(img, index) in getPicturesByDetailList(item.detailList)"
-      :key="index"
-      :src="img.imageBase64"
-      fit="contain"
-      style="max-width: 100%;"
+<!--  <el-image-->
+<!--      v-for="(img, index) in getPicturesByDetailList(item.detailList)"-->
+<!--      :key="index"-->
+<!--      :src="img.imageBase64"-->
+<!--      fit="contain"-->
+<!--      style="max-width: 100%;margin: 50px"-->
+<!--  />-->
+  <ImageSizeEditor
+      :images="getPicturesByDetailList(item.detailList)"
+      v-model:sizeMap="imgSizeMap"
+      key-field="orderNumber"
+      src-field="imageBase64"
+      :default-width="300"
+      :default-height="300"
   />
   </div>
   </div>
@@ -565,9 +592,26 @@
 
 
 @media print {
+  /* 绂佺敤 Chrome 鑷姩椤电爜瑙﹀彂鏉′欢 */
+  * {
+    overflow: visible !important;
+    transform: none !important;
+    filter: none !important;
+  }
+
+  [style*="position: fixed"],
+  .fixed,
+  .header-fixed {
+    position: absolute !important;
+  }
+
+
   @page {
     size: auto;  /* auto is the initial value */
-    margin: 4mm 5mm 10mm 5mm  /* this affects the margin in the printer settings */
+    margin: 4mm 5mm 10mm 5mm;  /* this affects the margin in the printer settings */
+    @top-right {
+      content: none !important;
+    }
 
   }
 

--
Gitblit v1.8.0