From 78809560f4315777e770acec0e24cb42e2ca97a7 Mon Sep 17 00:00:00 2001
From: 廖井涛 <2265517004@qq.com>
Date: 星期三, 10 七月 2024 08:06:48 +0800
Subject: [PATCH] Merge branch 'master' of http://bore.pub:10439/r/ERP_override

---
 north-glass-erp/northglass-erp/src/components/pp/PrintProcess.vue |  112 ++++++++++++++++++++++++++++---------------------------
 1 files changed, 57 insertions(+), 55 deletions(-)

diff --git a/north-glass-erp/northglass-erp/src/views/pp/processCard/PrintProcess.vue b/north-glass-erp/northglass-erp/src/components/pp/PrintProcess.vue
similarity index 81%
rename from north-glass-erp/northglass-erp/src/views/pp/processCard/PrintProcess.vue
rename to north-glass-erp/northglass-erp/src/components/pp/PrintProcess.vue
index 4b92532..25cf76e 100644
--- a/north-glass-erp/northglass-erp/src/views/pp/processCard/PrintProcess.vue
+++ b/north-glass-erp/northglass-erp/src/components/pp/PrintProcess.vue
@@ -22,10 +22,15 @@
   printList: []
 })
 
+let props = defineProps({
+  printList:null,
+  printMerge:null
+})
+
 const {currentRoute} = useRouter()
 const route = currentRoute.value
-const printMerge = route.query.printMerge
-data.value.printList = JSON.parse(route.query.printList)
+const printMerge = props.printMerge
+data.value.printList = JSON.parse(props.printList)
 let flowCardCount = data.value.printList.length
 onMounted(() => {
       // if (id === null || id === undefined || id === '') {
@@ -35,14 +40,33 @@
       request.post(`/processCard/getSelectPrinting`, data.value).then((res) => {
         if (res.code == 200) {
           produceList.value = deepClone(res.data.data)
+          //澶勭悊鍗曠墖鍘氬害
+
+          for (let j = 0; j <  produceList.value.length; j++) {
+            let sumWeight = 0
+            produceList.value[j].detailList.forEach((item, index) => {
+              // 瑙f瀽 separation 瀛楁鐨� JSON 瀛楃涓�
+              let separationObj = JSON.parse(item.separation);
+
+              // 鑾峰彇 thickness 鐨勫師濮嬪��
+              let thicknessValue = separationObj.thickness;
+
+              // 鍘婚櫎 'mm' 鍗曚綅
+              let thicknessWithoutUnit = thicknessValue.replace('mm', '');
+
+              item.separation=thicknessWithoutUnit
+
+              sumWeight += item.width*item.height*item.quantity/1000000*item.separation*2.5*1;
+
+            });
+            produceList.value[j].detail[0].weight=sumWeight
+          }
           //澶勭悊鍚堝苟鎵撳嵃
           if (printMerge !== null && printMerge !== undefined && printMerge !== "") {
 
             produceList.value.forEach(item => {
               item.detail[0].technologyNumber = printMerge;
             });
-
-
 
             //鍚堝苟鎵撳嵃宸ヨ壓娴佺▼澶勭悊
             let process = produceList.value[0].detail[0].process
@@ -123,66 +147,43 @@
 };
 
 
-// 鎵撳嵃鏂规硶
-const printFlowCard = () => {
-  // 闇�瑕佹墦鍗扮殑灞�閮ㄥ尯鍩熻祴浜�"print-wrap"鐨刬d
-  let el = document.getElementById("printFlowCard");
-  let doc = document;
-  let body = doc.body || doc.getElementsByTagName("body")[0];
-  let printId = "print-" + Date.now();
-
-  // 鍒涘缓鏃犲壇浣滅敤鐨勬墦鍗板鍣�(鍥犱笉纭畾椤甸潰鐨勬墦鍗板厓绱犳湁鏃犲叾瀹冩牱寮�)
-  let content = doc.createElement("div");
-  content.id = printId;
-
-  // 鏍峰紡鎺у埗涓庢墦鍗版棤鍏崇殑鍏冪礌闅愯棌
-  let style = doc.createElement("style");
-  style.innerHTML =
-      "body>#" +
-      printId +
-      "{display:none}@media print{body>:not(#" +
-      printId +
-      "){display:none !important}body>#" +
-      printId +
-      "{display:block;padding-top:1px}}";
-  //
-  content.innerHTML = el.outerHTML;
-  // // console.log("el.outerHTML", el.outerHTML);
-  body.appendChild(style);
-
-  // 涓巗tyle鍏冪礌璁剧疆鐨勬牱寮忕浉閰嶅悎
-  // 鎶婃墦鍗板唴瀹圭殑鍏冪礌娣诲姞鍒癰ody(浣滀负body鐨勫瓙鍏冪礌锛屽彲鐢╞ody鐨勫瓙閫夋嫨鍣� '>' 鎺у埗鎵撳嵃鏍峰紡)
-  body.appendChild(content);
-  setTimeout(() => {
-    window.print();
-    body.removeChild(content);
-    body.removeChild(style);
-  }, 20);
+//鏍规嵁杈撳叆鐨勬暟閲忛噸鏂版眹鎬�
+const handleSummary = () => {
+  for (let i = 0; i < produceList.value.length; i++) {
+    //鏁伴噺
+    let totalQuantity = 0;
+    //闈㈢Н
+    let totalArea = 0;
+    //閲嶉噺
+    let totalWeight = 0;
+    // 瀵规瘡涓泦鍚堜腑鐨� detailList 杩涜璁$畻
+    produceList.value[i].detailList.forEach(collection => {
+      totalQuantity += collection.quantity*1;
+      //姣忎釜搴忓彿闈㈢Н
+      collection.total_area=parseFloat((collection.width*collection.height*collection.quantity/1000000).toFixed(2))
+      totalArea += collection.total_area*1;
+      totalWeight += collection.width*collection.height*collection.quantity/1000000*collection.separation*2.5*1;
+      //姣忎釜搴忓彿鍛ㄩ暱
+      collection.perimeter= (collection.width*2+collection.height*2)*collection.quantity/1000
+    });
+    // 杈撳嚭姣忎釜闆嗗悎涓殑鎬绘暟閲�
+    produceList.value[i].detail[0].quantity=totalQuantity
+    produceList.value[i].detail[0].gross_area=totalArea
+    produceList.value[i].detail[0].weight=totalWeight
+  }
 }
 
 
-// 鐩戝惉鎵撳嵃瀹屾垚浜嬩欢
-window.addEventListener('afterprint', function() {
-  //淇敼鎵撳嵃
-  let printState=1
-  request.post(`/processCard/updatePrintState/${printState}`, data.value).then((res) => {
-    if (res.code == 200 && res.data === true) {
-    } else {
-
-      ElMessage.warning(t('basicData.msg.saveFail'))
-
-    }
-  })
-});
 </script>
 
 <template>
-  <el-button id="printButton" @click="printFlowCard();">{{ $t('basicData.print') }}</el-button>
+<!--  <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">
       <thead>
       <tr v-for="(itemFlow,index) in item.detail" :key="index">
         <td colspan="24">
+          <div style="float: left;"><input style="border: none;font-size: 28px;width: 40px  "/></div>
           <div id="bj" style="float: right;font-size: 28px">{{ id + 1 }}</div>
           <div>{{company.companyName}}</div>
           <div>鐢熶骇娴佺▼鍗�</div>
@@ -249,7 +250,7 @@
         <td>{{ itemDatile.order_number }}</td>
         <td>{{itemDatile.s01Value}}</td>
         <td>{{ itemDatile.child_width }}</td>
-        <td class="item">{{ itemDatile.quantity }}</td>
+        <td class="item" style="width: 5%;height: 100%;"><el-input @keyup="handleSummary()" style="border: none" v-model="itemDatile.quantity"></el-input></td>
         <td>{{ itemDatile.total_area }}</td>
         <td>{{ itemDatile.perimeter }}</td>
         <td>{{ itemDatile.bend_radius }}</td>
@@ -287,7 +288,7 @@
         <td colspan="6" rowspan="6" style="width: 480px;height: 100px ">
 <!--          <div style="width: 100%;height: 100%"><textarea style="height: 99%;width: 99%;font-size: 11px">{{ itemtextarea.processing_note }}</textarea>-->
 <!--          </div>-->
-          <div style="width: 100%;height: 100%"><textarea style="height: 99%;width: 99%;font-size: 11px">{{company.printLabel.printFlowCard.processingNote(itemtextarea)}}</textarea>
+          <div style="width: 100%;height: 100%;"><textarea style="height: 99%;width: 99%;border: none;;font-size: 11px">{{company.printLabel.printFlowCard.processingNote(itemtextarea)}}</textarea>
           </div>
         </td>
         <td>瀹屽伐绛惧悕</td>
@@ -353,6 +354,7 @@
 * {
   margin: 0;
   padding: 0;
+  text-align: center;
 }
 
 #printButton {

--
Gitblit v1.8.0