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/OrderSizeCheck.vue |  160 +++++++++++++++++++++++++++++++++++++++++++++++++++++
 1 files changed, 160 insertions(+), 0 deletions(-)

diff --git a/north-glass-erp/northglass-erp/src/components/sd/order/OrderSizeCheck.vue b/north-glass-erp/northglass-erp/src/components/sd/order/OrderSizeCheck.vue
new file mode 100644
index 0000000..cc5e3d5
--- /dev/null
+++ b/north-glass-erp/northglass-erp/src/components/sd/order/OrderSizeCheck.vue
@@ -0,0 +1,160 @@
+<script setup>
+import {defineEmits, onMounted, reactive, ref, watch} from "vue"
+import {useI18n} from "vue-i18n"
+import {ElMessage} from "element-plus"
+import useOrderInfoStore from "@/stores/sd/order/orderInfo"
+const { t } = useI18n()
+const xGrid = ref()
+const orderInfo = useOrderInfoStore()
+const gridOptions = reactive({
+  loading:false,
+  border:  "full",//琛ㄦ牸鍔犺竟妗�
+  keepSource: true,//淇濇寔婧愭暟鎹�
+  align: 'center',//鏂囧瓧灞呬腑
+  stripe:true,//鏂戦┈绾�
+  showOverflow:true,
+  id:'sizeCheck',
+  toolbarConfig: {
+    buttons: [
+      {'code': 'review', 'name': t('basicData.review'),status: 'primary'},
+    ]
+  },
+
+  rowConfig: {isCurrent: true, isHover: true,height: 30,useKey: true},//榧犳爣绉诲姩鎴栭�夋嫨楂樹寒
+  virtualScroll: true, // 寮�鍚櫄鎷熸粴鍔ㄥ姛鑳�
+  scrollY:{ enabled: true,gt:13 },//寮�鍚櫄鎷熸粴鍔�
+  //scrollX:{ enabled: true,gt:15 },//寮�鍚櫄鎷熸粴鍔�
+
+  columnConfig: {
+    useKey: true
+  },
+  editConfig: {
+    trigger: 'dblclick',
+    mode: 'cell',
+    showStatus: true,
+    showIcon:false
+  },
+  mouseConfig:{selected: true},
+  keyboardConfig:{
+    isArrow: true,
+    isDel: true,
+    isEnter: true,
+    isTab: true,
+    isEdit: true,
+    isChecked: true,
+    enterToTab:true
+  },
+
+  customConfig: {
+    storage: true
+  },
+  columns:[
+    {type: 'seq',fixed:"left", title: t('basicData.Number'), width: 80 },
+    {field: 'width',  title: t('order.width'),editRender: { name: 'input'}},
+    {field: 'height',  title:t('order.height'), editRender: { name: 'input'}},
+    {field: 'quantity', title: t('order.quantity') ,editRender: { name: 'input'}, },
+  ],
+  editRules: {
+    width: [
+      { required: true, message: t('components.inconsistentParameters') }
+    ],
+    height: [
+      { required: true, message:t('components.inconsistentParameters') }
+    ],
+    quantity: [
+      { required: true, message:t('components.inconsistentParameters') }
+    ]
+  }
+})
+
+const gridEvents = {
+  async toolbarButtonClick({code}) {
+    const $grid = xGrid.value
+    if ($grid) {
+      switch (code) {
+        case 'review' :{
+
+          const $table = xGrid.value.getTableData().fullData
+          const $oldTable = props.OrderDetail
+          $table.forEach((item,index)=>{
+            for(let key in item){
+              if(key!=='id' && key!=='_X_ROW_KEY'){
+                const oldVal = $oldTable.getTableData().fullData[index][key]*1
+                if(item[key]*1!==oldVal){
+                  item[key] = null
+                }
+              }
+            }
+
+          })
+
+
+
+          const errMap = await $grid.validate(true)
+          if (errMap) {
+            ElMessage.error(t('basicData.msg.checkoutLose'))
+            return
+          }
+          //emit('getParent')
+          break
+        }
+      }
+    }
+  }
+}
+
+
+const emit = defineEmits(['getParent'])
+
+let props = defineProps({
+  OrderDetail:null,
+  orderId:null
+})
+
+
+onMounted(()=>{
+  const length = props.OrderDetail.getTableData().fullData.length
+  const $grid = xGrid.value
+  if(props.orderId !== orderInfo.orderId || length !== orderInfo.reviewList.length){
+    orderInfo.clearOrderInfo()
+    orderInfo.orderId=props.orderId
+
+    for (let i = 0; i < length; i++) {
+      orderInfo.reviewList.push({})
+    }
+  }
+
+  $grid.reloadData(orderInfo.reviewList)
+
+})
+
+const editClosedEvent = ({ row, column,rowIndex}) => {
+  const $table = props.OrderDetail
+  let checkVal = row[column.property]*1
+  const oldVal = $table.getTableData().fullData[rowIndex][column.property]*1
+  if(checkVal!==oldVal){
+    row[column.property]=null
+  }
+
+
+}
+
+</script>
+
+<template>
+  <div style="width: 100%;height: 100%">
+    <vxe-grid
+        height="100%"
+        class="mytable-scrollbar"
+        ref="xGrid"
+        v-bind="gridOptions"
+        v-on="gridEvents"
+        @edit-closed="editClosedEvent"
+    >
+    </vxe-grid>
+  </div>
+</template>
+
+<style scoped>
+
+</style>
\ No newline at end of file

--
Gitblit v1.8.0