From e50fa16b6dbc4e7c50d5fbdbc04d2a556ca01c4e Mon Sep 17 00:00:00 2001
From: chenlu <1320612696@qq.com>
Date: 星期一, 02 十二月 2024 11:26:36 +0800
Subject: [PATCH] 补片流程卡调整
---
north-glass-erp/northglass-erp/src/components/sd/order/OrderProcess.vue | 143 +++++++++++++++++++++++++++++++++++++++++++++++
1 files changed, 143 insertions(+), 0 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
new file mode 100644
index 0000000..281be03
--- /dev/null
+++ b/north-glass-erp/northglass-erp/src/components/sd/order/OrderProcess.vue
@@ -0,0 +1,143 @@
+<script setup>
+import {onMounted, reactive, ref, watch} from "vue";
+import {changeFilterEvent, filterChanged} from "@/hook"
+import {useI18n} from "vue-i18n"
+import request from "@/utils/request"
+import {ElMessage} from "element-plus"
+const { t } = useI18n()
+const xGrid = ref()
+const gridOptions = reactive({
+ loading:false,
+ border: "full",//琛ㄦ牸鍔犺竟妗�
+ keepSource: true,//淇濇寔婧愭暟鎹�
+ align: 'center',//鏂囧瓧灞呬腑
+ stripe:true,//鏂戦┈绾�
+ showOverflow:true,
+ rowConfig: {isCurrent: true, isHover: true,height: 30},//榧犳爣绉诲姩鎴栭�夋嫨楂樹寒
+ virtualScroll: true, // 寮�鍚櫄鎷熸粴鍔ㄥ姛鑳�
+ id: 'OrderProcess',
+ printConfig: {},
+ importConfig: {},
+ exportConfig: {},
+ scrollY:{ enabled: true,gt:13 },//寮�鍚櫄鎷熸粴鍔�
+ //scrollX:{ enabled: true,gt:15 },//寮�鍚櫄鎷熸粴鍔�
+
+ columnConfig: {
+ resizable: true,
+ useKey: true
+ },
+
+ customConfig: {
+ storage: true
+ },
+
+
+ columns:[
+
+ ],
+ mergeCells:[],
+ toolbarConfig: {
+ zoom: true,
+ custom: true
+ }
+
+
+})
+
+let props = defineProps({
+ orderId:null
+})
+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: 'technology_number', width: 90,title: t('processCard.technologyNumber'),showOverflow:"ellipsis"},
+ {field: 'quantity', width: 90,title: t('order.quantity')},
+ {field: 'shippedQuantity',width: 120, title: t('delivery.deliveryQuantity')},
+ {field: 'inventory',width: 120, title: t('productStock.inventoryQuantity')},
+ {field: 'inventoryArea',width: 120, title: t('report.inventoryArea')},
+ {field: 'broken_num',width: 90, title: t('reportingWorks.quantityBroken')},
+]
+let column = [0,1,3,6,7,8,9]
+
+
+onMounted(()=>{
+ getWorkOrder()
+})
+
+watch(()=>props.orderId,(newValue)=>{
+ getWorkOrder()
+})
+
+const getWorkOrder = () => {
+ request.post(`/report/processCardProgress/${props.orderId}`,column).then((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.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)
+ } else {
+ ElMessage.warning(res.msg)
+ }
+ })
+}
+
+const quantitySum = ( row,column )=>{
+ const reportWorkQuantity = row.reportWorkQuantity[column.title] || 0
+ const reportWorkQuantityCount = row.reportWorkQuantityCount[column.title] || 0
+ if(reportWorkQuantity===reportWorkQuantityCount){
+ return reportWorkQuantity
+ }
+
+ return (reportWorkQuantity
+ +'('
+ +reportWorkQuantityCount
+ +')' )
+ //return
+}
+</script>
+
+<template>
+ <div style="width: 100%;height: 100%">
+ <vxe-grid
+ height="100%"
+ size="mini"
+ class="mytable-scrollbar"
+ ref="xGrid"
+ v-bind="gridOptions"
+ >
+ <template #num1_filter="{ column, $panel }">
+ <div>
+ <div v-for="(option, index) in column.filters" :key="index">
+ <input
+ type="type"
+ v-model="option.data"
+ @keyup.enter.native="$panel.confirmFilter()"
+ @input="changeFilterEvent($event, option, $panel)"/>
+ </div>
+ </div>
+ </template>
+
+ <template #quantitySum="{ row,column }">
+ <span>{{ quantitySum(row,column) }} </span>
+ </template>
+
+ </vxe-grid>
+ </div>
+</template>
+
+<style scoped>
+
+</style>
\ No newline at end of file
--
Gitblit v1.8.0