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