From 79b057e22e97e7db70faf25b33a5977b06771810 Mon Sep 17 00:00:00 2001
From: 廖井涛 <2265517004@qq.com>
Date: 星期一, 08 十二月 2025 14:52:54 +0800
Subject: [PATCH] 打印加工单修改,新增用户登录日志

---
 north-glass-erp/northglass-erp/src/components/sd/order/PrintSheet4.vue |  109 +++++++++++++++++++++++++++++++++++++++---------------
 1 files changed, 78 insertions(+), 31 deletions(-)

diff --git a/north-glass-erp/northglass-erp/src/components/sd/order/PrintSheet4.vue b/north-glass-erp/northglass-erp/src/components/sd/order/PrintSheet4.vue
index 7d5f960..6100c64 100644
--- a/north-glass-erp/northglass-erp/src/components/sd/order/PrintSheet4.vue
+++ b/north-glass-erp/northglass-erp/src/components/sd/order/PrintSheet4.vue
@@ -1,4 +1,5 @@
 <script setup>
+/*鐢熶骇鍔犲伐鍗曠珫鐗�*/
 import request from "@/utils/request"
 import {computed, onMounted, ref} from "vue"
 import PrintFoot from "@/components/sd/order/PrintFoot.vue"
@@ -14,7 +15,7 @@
 
 
 let props = defineProps({
-  orderId:null
+  orderId:null,
 })
 let productId=ref({
 
@@ -32,23 +33,25 @@
 const grossNum = ref({
   quantity: 0,
   grossArea: 0,
-  perimeter: 0
+  perimeter: 0,
+  weight:0
 })
 const getData = () => {
   request.get(`/order/printOrderProductDetail/${props.orderId}/${selectedValues.value}`).then(res => {
     data.value= res.data
     productIdData.value=data.value.orderProductDetail
     data.value.orderProductDetail.forEach(item => {
-
       grossNum.value.quantity += getQuantity(item.productDetail)
       grossNum.value.grossArea += getArea(item.productDetail)
       grossNum.value.perimeter += getPerimeter(item.productDetail)
+      grossNum.value.weight += getWeight(item.productDetail)
       stringToJson(item.productDetail)
     })
 
     grossNum.value.quantity = parseFloat(grossNum.value.quantity.toFixed(2))
     grossNum.value.grossArea = parseFloat(grossNum.value.grossArea.toFixed(2))
-    grossNum.value.perimeter = parseFloat(grossNum.value.perimeter.toFixed(2))
+    grossNum.value.perimeter = parseFloat(grossNum.value.perimeter.toFixed(3))
+    grossNum.value.weight = parseFloat(grossNum.value.weight.toFixed(2))
 
   })
 }
@@ -59,17 +62,20 @@
     grossNum.value.quantity=0
     grossNum.value.grossArea=0
     grossNum.value.perimeter=0
+    grossNum.value.weight=0
     data.value= res.data
 
     data.value.orderProductDetail.forEach(item => {
       grossNum.value.quantity += getQuantity(item.productDetail)
       grossNum.value.grossArea += getArea(item.productDetail)
       grossNum.value.perimeter += getPerimeter(item.productDetail)
+      grossNum.value.weight += getWeight(item.productDetail)
       stringToJson(item.productDetail)
     })
     grossNum.value.quantity = parseFloat(grossNum.value.quantity.toFixed(2))
     grossNum.value.grossArea = parseFloat(grossNum.value.grossArea.toFixed(2))
-    grossNum.value.perimeter = parseFloat(grossNum.value.perimeter.toFixed(2))
+    grossNum.value.perimeter = parseFloat(grossNum.value.perimeter.toFixed(3))
+    grossNum.value.weight = parseFloat(grossNum.value.weight.toFixed(2))
 
   })
 
@@ -101,7 +107,7 @@
 const getArea = (productList) => {
   let area = 0
   productList.forEach(item => {
-    area += item.computeGrossArea
+    area += item.grossArea
   })
   return parseFloat(area.toFixed(2))
 
@@ -112,8 +118,17 @@
   productList.forEach(item => {
     perimeter += item.perimeter
   })
-  return parseFloat(perimeter.toFixed(2))
+  return parseFloat(perimeter.toFixed(3))
 }
+
+const getWeight = (productList) => {
+  let weight = 0
+  productList.forEach(item => {
+    weight += item.weight*item.quantity
+  })
+  return parseFloat(weight.toFixed(2))
+}
+
 
 const printSheet = () => {
 }
@@ -133,7 +148,7 @@
     <table style="border-style: none;" >
       <thead>
       <tr class="title-s">
-        <th colspan="13">
+        <th colspan="9">
           <h1>
             {{ company.companyName }}
           </h1>
@@ -141,16 +156,20 @@
       </tr>
 
       <tr class="title-s">
-        <th colspan="2"></th>
-        <th colspan="5" >
-          <h3 style="margin-left: 25%">鐢熸垚浠诲姟鍗�(鎴愬搧)</h3>
+        <th colspan="2" style="width: 30%;text-align: left;"><span>鎬婚噸閲�:{{ grossNum.weight }}</span></th>
+        <th colspan="5" style="width: 40%;">
+          <h3 >鐢熶骇浠诲姟鍗�({{data.order.orderType}})</h3>
         </th>
-        <th colspan="2" style="text-align: center;font-weight: bold;">璁㈠崟缂栧彿锛�<span>{{ data.order.orderId }}</span></th>
+        <th colspan="2" style="width: 30%;">璁㈠崟缂栧彿锛�<span>{{ data.order.orderId }}</span>
+          <span v-if="company.companyName==='甯稿窞甯傚悏鍒╃幓鐠冩湁闄愬叕鍙�'&& data.order.batch!==''">(鍘焮{ data.order.batch }})</span>
+        </th>
       </tr>
       <tr>
         <th style="text-align: left;border:none;font-weight: bold;font-size: 17px;" colspan="4">
           瀹㈡埛鍚嶇О锛�<span>{{ data.order.customerName }}</span></th>
-        <th style="text-align: left;border:none;font-weight: bold;font-size: 17px;" colspan="3">
+        <th style="text-align: left;border:none;font-weight: bold;font-size: 17px;" v-if="data.order.batch!==''" colspan="3">
+          椤圭洰鍚嶇О锛�<span>{{ data.order.project }}({{data.order.batch}})</span></th>
+        <th style="text-align: left;border:none;font-weight: bold;font-size: 17px;" v-else colspan="3">
           椤圭洰鍚嶇О锛�<span>{{ data.order.project }}</span></th>
         <th style="text-align: left;border:none;font-weight: bold;font-size: 17px;" colspan="2">
           鍙戣揣鏃ユ湡锛�<span>{{ data.order.deliveryDate }}</span></th>
@@ -159,7 +178,7 @@
         <th style="text-align: left;border:none;font-weight: bold;font-size: 17px;" colspan="7">
           閫佽揣鍦板潃锛�<span>{{ data.order.deliveryAddress }}</span></th>
         <th style="text-align: left;border:none;font-weight: bold;font-size: 17px;" colspan="2">
-          鑱旂郴鐢佃瘽锛�<span>{{ data.order.contactNumber }}</span></th>
+          鑱旂郴鐢佃瘽锛�<span><input class="contactNumber" type="text" v-model="data.order.contactNumber"/></span></th>
       </tr>
 
       </thead>
@@ -171,41 +190,53 @@
               <tr v-if="index===0">
                 <th style="width: 6%;font-weight: bold;">搴�</th>
                 <th style="width: 15%;font-weight: bold;" >妤煎眰缂栧彿</th>
-                <th style="width: 20%;font-weight: bold;" colspan="2">瀹絏楂�</th>
-                <th style="width: 10%;font-weight: bold;">鏁伴噺</th>
-                <th style="width: 10%;font-weight: bold;">闈㈢Н</th>
-                <th style="width: 17%;font-weight: bold;" colspan="3">鍔犲伐瑕佹眰</th>
+                <th style="width: 20%;font-weight: bold;" colspan="3">瀹絏楂�</th>
+                <th style="width: 8%;font-weight: bold;">鏁伴噺</th>
+                <th style="width: 8%;font-weight: bold;">鍛ㄩ暱</th>
+                <th style="width: 12%;font-weight: bold;">闈㈢Н</th>
+                <th style="width: 22%;font-weight: bold;" colspan="2">鍔犲伐瑕佹眰/澶囨敞</th>
               </tr>
 
+
+              </thead>
               <tr style="border-style: none">
                 <td style="font-size: 15px;font-weight: bold;text-align: left" colspan="9">
                   浜у搧鍚嶇О:<span>{{item.productName}}</span>
                 </td>
               </tr>
-              </thead>
 
               <tr class="day-in" v-for="(items, index1) in item.productDetail" :key="index1">
                 <td>{{items.orderNumber}}</td>
                 <td>{{items.buildingNumber}}</td>
-                <td colspan="2" style="font-size: 15px;font-weight: bold;" v-if="items.otherColumns?.S02">{{items.otherColumns?.S02}}</td>
-                <td colspan="2" style="font-size: 15px;font-weight: bold;" v-else>{{items.width}}x{{items.height}}</td>
-                <td>{{items.quantity}}</td>
-                <td>{{items.grossArea.toFixed(2)}}</td>
-                <td colspan="2">{{items.processingNote}}</td>
+                <td colspan="3" style="font-size: 20px;font-weight: bold;" v-if="items.otherColumns?.S02&&company.companyName!='涓婃捣鍖楃幓鐜荤拑鎶�鏈伐涓氭湁闄愬叕鍙�'">{{items.otherColumns?.S02}}</td>
+                <td colspan="3" style="font-size: 17px;white-space:nowrap;font-weight: bold;" v-else-if="items.differentSize===1 && items.bendRadius==null">
+                  <template v-for="(orderGlassDetail, index1) in items.orderGlassDetails" >
+                   ({{orderGlassDetail.childWidth}}x{{orderGlassDetail.childHeight}})
+                  </template>
+                </td>
+                <td colspan="3" style="font-size: 20px;font-weight: bold;" v-else>{{items.width}}x{{items.height}}</td>
+                <td style="font-size: 20px;font-weight: bold;">{{items.quantity}}</td>
+                <td style="font-size: 20px;font-weight: bold;">{{items.perimeter}}</td>
+                <td style="font-size: 20px;font-weight: bold;">{{items.grossArea.toFixed(2)}}</td>
+                <td colspan="2">{{items.processingNote}}
+                  {{items.remarks==null?'':'/'}}
+                  {{items.remarks}}</td>
               </tr>
               <tr class="day-in" >
-                <td style="font-size: 15px;font-weight: bold;" colspan="4">灏忚:</td>
-                <td>{{getQuantity(item.productDetail)}}</td>
-                <td>{{getArea(item.productDetail)}}</td>
+                <td style="font-size: 15px;font-weight: bold;" colspan="5">灏忚:</td>
+                <td style="font-size: 20px;font-weight: bold;">{{getQuantity(item.productDetail)}}</td>
+                <td style="font-size: 20px;font-weight: bold;">{{getPerimeter(item.productDetail)}}</td>
+                <td style="font-size: 20px;font-weight: bold;">{{getArea(item.productDetail)}}</td>
                 <td colspan="2"></td>
               </tr>
 
             </template>
             <tr class="day-in">
-              <td style="font-size: 15px;font-weight: bold;" colspan="4">鍚堣:</td>
-              <td>{{grossNum.quantity}}</td>
-              <td>{{grossNum.grossArea}}</td>
-              <td colspan="3"></td>
+              <td style="font-size: 15px;font-weight: bold;" colspan="5">鍚堣:</td>
+              <td style="font-size: 20px;font-weight: bold;">{{grossNum.quantity}}</td>
+              <td style="font-size: 20px;font-weight: bold;">{{grossNum.perimeter}}</td>
+              <td style="font-size: 20px;font-weight: bold;">{{grossNum.grossArea}}</td>
+              <td colspan="2"></td>
             </tr>
             <tr class="day-in">
               <td style="text-align: left;border-width: 0 0 0 0; border-style: solid; border-color: #d3dce6" colspan="9">
@@ -318,6 +349,22 @@
   margin: 0;
   padding: 0;
 }
+.day-in{
+  height: 30px;
+}
+.contactNumber{
+  width: 125px;
+  height:20px;
+  border: none;
+  box-shadow: none;
+  font-size: 17px;
+}
+
+@media print {
+  @page {
+    margin: 5mm 5mm 10mm 5mm;
+  }
+}
 
 
 

--
Gitblit v1.8.0