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