From 3bfff48245e0eb8affcbf2a16fb2c75eb1cff8bb Mon Sep 17 00:00:00 2001
From: 廖井涛 <2265517004@qq.com>
Date: 星期一, 14 四月 2025 11:10:40 +0800
Subject: [PATCH] 模拟计算发送数据处理

---
 north-glass-erp/northglass-erp/src/components/sd/order/OrderProcess.vue |   77 ++++++++++++++++++++++++++++++--------
 1 files changed, 60 insertions(+), 17 deletions(-)

diff --git a/north-glass-erp/northglass-erp/src/components/sd/order/OrderProcess.vue b/north-glass-erp/northglass-erp/src/components/sd/order/OrderProcess.vue
index e7958e4..6483eab 100644
--- a/north-glass-erp/northglass-erp/src/components/sd/order/OrderProcess.vue
+++ b/north-glass-erp/northglass-erp/src/components/sd/order/OrderProcess.vue
@@ -1,6 +1,7 @@
 <script setup>
-import {onMounted, reactive, ref, watch} from "vue";
+import {computed, onMounted, reactive, ref, watch} from "vue";
 import {changeFilterEvent, filterChanged} from "@/hook"
+import footSum from "@/hook/footSum"
 import {useI18n} from "vue-i18n"
 import request from "@/utils/request"
 import {ElMessage} from "element-plus"
@@ -13,15 +14,18 @@
   align: 'center',//鏂囧瓧灞呬腑
   stripe:true,//鏂戦┈绾�
   showOverflow:true,
+  showFooter: true,//鏄剧ず鑴�
   rowConfig: {isCurrent: true, isHover: true,height: 30},//榧犳爣绉诲姩鎴栭�夋嫨楂樹寒
   virtualScroll: true, // 寮�鍚櫄鎷熸粴鍔ㄥ姛鑳�
-  id: 'OrderProcess',
+  id: 'Order_Process',
   printConfig: {},
   importConfig: {},
   exportConfig: {},
   scrollY:{ enabled: true,gt:13 },//寮�鍚櫄鎷熸粴鍔�
   //scrollX:{ enabled: true,gt:15 },//寮�鍚櫄鎷熸粴鍔�
-
+  filterConfig: {   //绛涢�夐厤缃」
+    // remote: true
+  },
   columnConfig: {
     resizable: true,
     useKey: true
@@ -35,10 +39,32 @@
   columns:[
 
   ],
-  mergeCells:[]
-
-
+  mergeCells:[],
+  toolbarConfig: {
+    zoom: true,
+    custom: true
+  },
+  cellClassName ({ row, column,columnIndex})  {
+    if (columnIndex>10 && row.quantity*1 === row.reportWorkQuantity[column.title]*1){
+        return 'row-green'
+    }
+    return null
+  },
+  footerMethod ({ columns, data }) {//椤佃剼鍑芥暟
+    return[
+      columns.map((column, columnIndex) => {
+        if (columnIndex === 0) {
+          return t('basicData.total')
+        }
+        if (list.value.includes(column.field)) {
+          return footSum(data, column.field)
+        }
+        return ''
+      })
+    ]
+  }
 })
+const list = ref([])
 
 let props = defineProps({
   orderId:null
@@ -46,13 +72,13 @@
 const columns = [
   {field: 'order_number',fixed:"left", width: 90,title: t('order.OrderNum'),showOverflow:"ellipsis"},
   // {type:'expand',fixed:"left",slots: { content:'content' },width: 50},
-  {field: 'product_name', width: 150, title: t('order.product'),filters:[{ data: '' }],slots: { filter: 'num1_filter' },filterMethod: filterChanged},
-  {field: 'glass_child',width: 130, title: t('reportingWorks.glassChild') ,filters:[{ data: '' }],slots: { filter: 'num1_filter' },filterMethod: filterChanged},
-  {field: 'order_type', width: 120,title: t('order.orderType'),filters:[{ data: '' }],slots: { filter: 'num1_filter' },filterMethod: filterChanged},
-  {field: 'process_id',width: 110, title: t('processCard.processId'),filters:[{ data: '' }],slots: { filter: 'num1_filter' },filterMethod: filterChanged},
-
+  {field: 'product_name', width: 150, title: t('order.product'),filters:[{ data: '' }],slots: { filter: 'num1_filter' }},
+  {field: 'glass_child',width: 130, title: t('reportingWorks.glassChild') ,filters:[{ data: '' }],slots: { filter: 'num1_filter' }},
+  {field: 'order_type', width: 120,title: t('order.orderType'),filters:[{ data: '' }],slots: { filter: 'num1_filter' }},
+  {field: 'process_id',width: 110, title: t('processCard.processId'),filters:[{ data: '' }],slots: { filter: 'num1_filter' }},
   {field: 'technology_number', width: 90,title:  t('processCard.technologyNumber'),showOverflow:"ellipsis"},
   {field: 'quantity', width: 90,title: t('order.quantity')},
+  {field: 'gross_area', width: 90,title: t('order.area')},
   {field: 'shippedQuantity',width: 120, title: t('delivery.deliveryQuantity')},
   {field: 'inventory',width: 120, title: t('productStock.inventoryQuantity')},
   {field: 'inventoryArea',width: 120, title: t('report.inventoryArea')},
@@ -69,21 +95,31 @@
   getWorkOrder()
 })
 
+
+
 const getWorkOrder = () => {
-  request.post(`/report/processCardProgress/${props.orderId}`,column).then((res) => {
+  request.post(`/report/processCardProgress/${props.orderId}`,column).then(async (res) => {
     if (res.code == 200) {
 
       gridOptions.columns = JSON.parse(JSON.stringify(columns))
-      res.data.title.forEach(item =>{
-        let column = {slots: { default: 'quantitySum' }, width: 90,title: item.process}
+      gridOptions.columns.forEach(item =>{
+        item.filterMethod = filterChanged
+      })
+      list.value = ['quantity']
+      res.data.title.forEach((item,index) =>{
+        list.value.push('reportWorkQuantity.'+item.process)
+        let column = {slots: { default: 'quantitySum'},
+          width: 90,
+          title: item.process,
+          field:'reportWorkQuantity.'+item.process}
         gridOptions.columns.push(column)
       })
       res.data.data.forEach(item => {
         item.reportWorkQuantity=JSON.parse(item.reportWorkQuantity)
         item.reportWorkQuantityCount=JSON.parse(item.reportWorkQuantityCount)
       })
-      gridOptions.mergeCells= res.data.mergeCells
-      xGrid.value.loadData(res.data.data)
+      //gridOptions.mergeCells= res.data.mergeCells
+      await xGrid.value.loadData(res.data.data)
     } else {
       ElMessage.warning(res.msg)
     }
@@ -117,7 +153,11 @@
       <template #num1_filter="{ column, $panel }">
         <div>
           <div v-for="(option, index) in column.filters" :key="index">
-            <input type="type" v-model="option.data" @input="changeFilterEvent($event, option, $panel)"/>
+            <input
+                type="type"
+                v-model="option.data"
+                @keyup.enter.native="$panel.confirmFilter()"
+                @input="changeFilterEvent($event, option, $panel)"/>
           </div>
         </div>
       </template>
@@ -131,5 +171,8 @@
 </template>
 
 <style scoped>
+::v-deep(.vxe-grid .vxe-body--column.row-green) {
+  background-color: #D5EAFF;
+}
 
 </style>
\ No newline at end of file

--
Gitblit v1.8.0