From ac4341ea6b66ae02427d39d35f41d42d78b2eb2e Mon Sep 17 00:00:00 2001
From: Junjie <fallin.jie@qq.com>
Date: 星期五, 14 二月 2025 10:08:32 +0800
Subject: [PATCH] #

---
 zy-asrs-admin/src/components/orderDetl/edit.vue |  102 +++++++++++++++++++++++++++++++++-----------------
 1 files changed, 67 insertions(+), 35 deletions(-)

diff --git a/zy-asrs-admin/src/components/orderDetl/edit.vue b/zy-asrs-admin/src/components/orderDetl/edit.vue
index 5439b8a..291aafc 100644
--- a/zy-asrs-admin/src/components/orderDetl/edit.vue
+++ b/zy-asrs-admin/src/components/orderDetl/edit.vue
@@ -6,6 +6,7 @@
 import { logout } from '@/config.js';
 import { formatMessage } from '@/utils/localeUtils.js';
 import useTableSearch from '@/utils/tableUtils.jsx';
+import { debounce } from 'lodash-es';
 const context = getCurrentInstance()?.appContext.config.globalProperties;
 
 const router = useRouter();
@@ -15,6 +16,7 @@
 let tableData = ref([]);
 let deleteDetlId = ref([]);
 let orderId = ref(null);
+let isAdd = ref(false);
 getColumns();
 
 const {
@@ -27,7 +29,7 @@
     columns: [],
 });
 
-state.columns = [
+let defaultColumns = [
     {
         title: '#',
         dataIndex: '_id',
@@ -35,13 +37,13 @@
         ellipsis: true,
     },
     {
-        title: formatMessage('db.man_loc_detl.matnr', '鐗╂枡鍙�'),
+        title: formatMessage('db.man_loc_detl.matnr', '鍟嗗搧缂栧彿'),
         dataIndex: 'matnr',
         width: 140,
         ellipsis: true,
     },
     {
-        title: formatMessage('db.man_loc_detl.maktx', '鐗╂枡鍚�'),
+        title: formatMessage('db.man_loc_detl.maktx', '鍟嗗搧鍚嶇О'),
         dataIndex: 'maktx',
         width: 140,
         ellipsis: true,
@@ -60,27 +62,27 @@
         ellipsis: true,
         editable: true,
     },
-    {
-        title: formatMessage('db.man_loc_detl.qty', '宸插畬鎴愭暟閲�'),
-        dataIndex: 'qty',
-        width: 140,
-        ellipsis: true,
-        editable: true,
-    },
-    {
-        title: formatMessage('db.man_loc_detl.workQty', '浣滀笟涓暟閲�'),
-        dataIndex: 'workQty',
-        width: 140,
-        ellipsis: true,
-        editable: true,
-    },
-    {
-        title: formatMessage('db.man_loc_detl.memo', '澶囨敞'),
-        dataIndex: 'memo',
-        width: 140,
-        ellipsis: true,
-        editable: true,
-    },
+    // {
+    //     title: formatMessage('db.man_loc_detl.qty', '宸插畬鎴愭暟閲�'),
+    //     dataIndex: 'qty',
+    //     width: 140,
+    //     ellipsis: true,
+    //     editable: true,
+    // },
+    // {
+    //     title: formatMessage('db.man_loc_detl.workQty', '浣滀笟涓暟閲�'),
+    //     dataIndex: 'workQty',
+    //     width: 140,
+    //     ellipsis: true,
+    //     editable: true,
+    // },
+    // {
+    //     title: formatMessage('db.man_loc_detl.memo', '澶囨敞'),
+    //     dataIndex: 'memo',
+    //     width: 140,
+    //     ellipsis: true,
+    //     editable: true,
+    // },
 ];
 
 const fieldList = [];
@@ -90,9 +92,27 @@
         fieldType: 1
     })
     let fieldResult = fieldResp.data;
-    let tmp = state.columns;
+    let tmp = defaultColumns;
     if (fieldResult.code == 200) {
         let data = fieldResult.data;
+
+        if (!isAdd.value) {
+            tmp.push({
+                title: formatMessage('db.man_loc_detl.qty', '宸插畬鎴愭暟閲�'),
+                dataIndex: 'qty',
+                width: 140,
+                ellipsis: true,
+                editable: true,
+            })
+
+            tmp.push({
+                title: formatMessage('db.man_loc_detl.workQty', '浣滀笟涓暟閲�'),
+                dataIndex: 'workQty',
+                width: 140,
+                ellipsis: true,
+                editable: true,
+            })
+        }
 
         data.forEach((item) => {
             tmp.push({
@@ -105,6 +125,14 @@
             })
 
             fieldList.push(item.name);
+        })
+
+        tmp.push({
+            title: formatMessage('db.man_loc_detl.memo', '澶囨敞'),
+            dataIndex: 'memo',
+            width: 140,
+            ellipsis: true,
+            editable: true,
         })
 
         tmp.push({
@@ -127,6 +155,7 @@
 const openAddDetl = ref(false);
 const matChecked = ref([]);
 const matQueryList = ref(null);
+const matFetching = ref(false);
 const matSelectList = ref([]);
 const addDetl = () => {
     openAddDetl.value = true;
@@ -163,9 +192,9 @@
     matChecked.value = [];
 }
 
-const handleSearch = val => {
+const handleSearch = debounce(val => {
     matQuery(val);
-}
+}, 600)
 
 const handleSelect = (value, option) => {
     let flag = true;
@@ -193,9 +222,10 @@
 
 matQuery(null);
 function matQuery(condition) {
+    matFetching.value = true;
     post('/api/mat/page', {
         current: 1,
-        pageSize: 100,
+        pageSize: 10,
         condition: condition
     }).then((resp) => {
         let result = resp.data;
@@ -203,11 +233,12 @@
         result.data.records.forEach((item) => {
             tmp.push({
                 value: item.matnr,
-                label: item.matnr,
+                label: item.matnr + '_' + item.maktx,
                 data: item
             })
         })
         matQueryList.value = tmp;
+        matFetching.value = false;
     })
 }
 
@@ -233,8 +264,9 @@
 }
 
 watch(orderId, (newVal, oldVal) => {
-    if(newVal == undefined || newVal == null) {
+    if (newVal == undefined || newVal == null) {
         tableData.value = [];
+        getColumns()
         return;
     }
 
@@ -261,13 +293,14 @@
         })
         tableData.value = tmp;
     })
-    
+
 })
 
 defineExpose({
     tableData,
     orderId,
     deleteDetlId,
+    isAdd,
 })
 
 </script>
@@ -294,9 +327,7 @@
                 </template>
 
                 <template v-if="column.editable">
-                    <div>
-                        <a-input v-model:value="record[column.dataIndex]" />
-                    </div>
+                    <a-input v-model:value="record[column.dataIndex]" />
                 </template>
             </template>
         </a-table>
@@ -305,7 +336,8 @@
             @ok="handleAddDetlOk" @cancel="handleAddDetlCancel">
             <a-select v-model:value="matChecked" :options="matQueryList" mode="multiple"
                 :placeholder="formatMessage('component.orderDetl.edit.selectMat', '璇烽�夋嫨鐗╂枡')" @search="handleSearch"
-                @select="handleSelect" @deselect="handleDeselect"></a-select>
+                :filter-option="false" :not-found-content="matFetching ? undefined : null" @select="handleSelect"
+                @deselect="handleDeselect"></a-select>
         </a-modal>
     </div>
 </template>

--
Gitblit v1.9.1