From a660db06773007b1be690e0674829c00a57aeb7b Mon Sep 17 00:00:00 2001
From: 廖井涛 <2265517004@qq.com>
Date: 星期三, 24 十二月 2025 16:21:23 +0800
Subject: [PATCH] 订单首页流程卡新增楼层编号显示
---
north-glass-erp/northglass-erp/src/components/sd/order/OrderSizeCheck.vue | 101 +++++++++++++++++++++++++++++++++++++-------------
1 files changed, 74 insertions(+), 27 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
index ca27479..b9853c9 100644
--- a/north-glass-erp/northglass-erp/src/components/sd/order/OrderSizeCheck.vue
+++ b/north-glass-erp/northglass-erp/src/components/sd/order/OrderSizeCheck.vue
@@ -1,11 +1,11 @@
<script setup>
-import {defineEmits, onMounted, reactive, ref, watch} from "vue";
-import {changeFilterEvent, filterChanged} from "@/hook"
+import {defineEmits, onMounted, reactive, ref, watch} from "vue"
import {useI18n} from "vue-i18n"
-import request from "@/utils/request"
-import {ElMessage} from "element-plus";
+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",//琛ㄦ牸鍔犺竟妗�
@@ -16,11 +16,11 @@
id:'sizeCheck',
toolbarConfig: {
buttons: [
- {'code': 'review', 'name': '瀹℃牳',status: 'primary'},
+ {'code': 'review', 'name': t('basicData.review'),status: 'primary'},
]
},
- rowConfig: {isCurrent: true, isHover: true,height: 30},//榧犳爣绉诲姩鎴栭�夋嫨楂樹寒
+ rowConfig: {isCurrent: true, isHover: true,height: 30,useKey: true},//榧犳爣绉诲姩鎴栭�夋嫨楂樹寒
virtualScroll: true, // 寮�鍚櫄鎷熸粴鍔ㄥ姛鑳�
scrollY:{ enabled: true,gt:13 },//寮�鍚櫄鎷熸粴鍔�
//scrollX:{ enabled: true,gt:15 },//寮�鍚櫄鎷熸粴鍔�
@@ -38,30 +38,31 @@
keyboardConfig:{
isArrow: true,
isDel: true,
- isEnter: true,
isTab: true,
isEdit: true,
isChecked: true,
- enterToTab:true
+ // enterToTab:true,
+ //isEnter: true,
},
customConfig: {
storage: true
},
columns:[
- {field: 'width', title: '瀹�',editRender: { name: 'input'}},
- {field: 'height', title:'楂�', editRender: { name: 'input'}},
- {field: 'quantity', title: '鏁伴噺' ,editRender: { name: 'input'}, },
+ {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: '蹇呭~,鍙傛暟涓嶄竴鑷�' }
+ { required: true, message: t('components.inconsistentParameters') }
],
height: [
- { required: true, message: '蹇呭~,鍙傛暟涓嶄竴鑷�' }
+ { required: true, message:t('components.inconsistentParameters') }
],
quantity: [
- { required: true, message: '蹇呭~,鍙傛暟涓嶄竴鑷�' }
+ { required: true, message:t('components.inconsistentParameters') }
]
}
})
@@ -72,17 +73,26 @@
if ($grid) {
switch (code) {
case 'review' :{
+ $grid.clearEdit()
+ 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
}
- // const $table = props.OrderDetail
- // $table.getTableData().fullData.forEach((row)=>{
- // if()row.computeGrossArea
- // })
-
-
emit('getParent')
break
}
@@ -95,25 +105,61 @@
const emit = defineEmits(['getParent'])
let props = defineProps({
- OrderDetail:null
+ OrderDetail:null,
+ orderId:null
})
+
+
onMounted(()=>{
const length = props.OrderDetail.getTableData().fullData.length
const $grid = xGrid.value
- let list = []
- for (let i = 0; i < length; i++) {
- list.push({})
+ 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({})
+ }
}
- xGrid.value.reloadData(list)
+
+ $grid.reloadData(orderInfo.reviewList)
})
-const editClosedEvent = ({ row, column,rowIndex}) => {
+const editClosedEvent = ({ row, column,rowIndex,columnIndex}) => {
const $table = props.OrderDetail
let checkVal = row[column.property]*1
const oldVal = $table.getTableData().fullData[rowIndex][column.property]*1
- if(checkVal!=oldVal){
+ if(checkVal!==oldVal){
row[column.property]=null
+ }
+}
+
+const handleKeyDown = (evnt) =>{
+ const length = xGrid.value.getTableData().fullData.length
+ if(evnt.$event.keyCode === 13 ){
+ const { rowIndex,row,column } = xGrid.value.getSelectedCell() || xGrid.value.getEditRecord()
+ let nextRowIndex = xGrid.value.getRowIndex(row) + 1
+
+
+ switch (column.field){
+ case 'width':
+ xGrid.value.setSelectCell(row, 'height')
+ break;
+ case 'height':
+ xGrid.value.setSelectCell(row, 'quantity')
+ break;
+ case 'quantity':
+ if(nextRowIndex === length){
+ return
+ }
+ const nextRow = xGrid.value.getTableData().fullData[nextRowIndex]
+ xGrid.value.setCurrentRow(nextRow)
+ xGrid.value.scrollToRow(nextRow)
+ xGrid.value.setSelectCell(nextRow, 'width')
+ break;
+ }
+
}
}
@@ -128,6 +174,7 @@
v-bind="gridOptions"
v-on="gridEvents"
@edit-closed="editClosedEvent"
+ @keydown="handleKeyDown"
>
</vxe-grid>
</div>
--
Gitblit v1.8.0