From aa0bc81d06736cc1a1bd210dde61f57736585d43 Mon Sep 17 00:00:00 2001
From: Ben Lin <maobin001@msn.com>
Date: 星期五, 07 六月 2024 10:37:05 +0800
Subject: [PATCH] 很多更新

---
 src/views/components/NormalModal.vue |   34 ++++++++++++++++++++++++++++++----
 1 files changed, 30 insertions(+), 4 deletions(-)

diff --git a/src/views/components/NormalModal.vue b/src/views/components/NormalModal.vue
index 863d1c0..ed304a2 100644
--- a/src/views/components/NormalModal.vue
+++ b/src/views/components/NormalModal.vue
@@ -11,7 +11,7 @@
         <BasicForm @register="registerForm" :model="model" />
       </div> -->
     <div>
-      <BasicTable @register="registerTable">
+      <BasicTable @register="registerTable" @row-dbClick="rowDbClick">
         <!-- <template #toolbar>
                   <a-button type="primary" @click="handleCreate"> 鏂板鐩樼偣 </a-button>
                 </template> -->
@@ -31,6 +31,7 @@
   const title = ref('');
   const tableName = ref('');
   const rowKey = ref('');
+  const returnFieldName = ref('');
   const schemas = ref([] as FormSchema[]);
 
   //鍒楄〃
@@ -38,6 +39,7 @@
 
   const emit = defineEmits(['success', 'register']);
   const checkedKeys = ref<Array<string | number>>([]);
+  const checkedIds = ref<Array<string | number>>([]);
   const [registerTable, { reload, getForm }] = useTable({
     title: '鍒楄〃淇℃伅',
     api: getListByPage,
@@ -92,6 +94,7 @@
     ItemColumns.value = data?.ItemColumns;
     tableName.value = data?.tableName;
     rowKey.value = data?.rowKey;
+    returnFieldName.value = data?.returnFieldName;
     checkedKeys.value = [];
     getForm().resetFields();
     reload();
@@ -101,17 +104,33 @@
   //   v && props.userData && nextTick(() => onDataReceive(props.userData));
   // }
 
+  function rowDbClick(record, index, event) {
+    try {
+      closeModal();
+      emit('success', {
+        isUpdate: unref(false),
+        values: { val: record[rowKey.value], id: record['ID'] },
+        returnFieldName: returnFieldName.value,
+      });
+    } finally {
+      setModalProps({ confirmLoading: false });
+    }
+  }
+
   async function handleSubmit() {
     try {
       var values = '';
+      var ids = '';
       // checkedKeys.value.forEach(element => {
       //   values+=element;
       // });
       values = checkedKeys.value.join(',');
+      ids = checkedIds.value.join(',');
       closeModal();
       emit('success', {
         isUpdate: unref(false),
-        values: { values, id: 0 },
+        values: { val: values, id: ids },
+        returnFieldName: returnFieldName.value,
       });
     } finally {
       setModalProps({ confirmLoading: false });
@@ -120,16 +139,23 @@
   function onSelect(record, selected) {
     if (selected) {
       checkedKeys.value = [...checkedKeys.value, record[rowKey.value]];
+      checkedIds.value = [...checkedIds.value, record['ID']];
     } else {
       checkedKeys.value = checkedKeys.value.filter((code) => code !== record[rowKey.value]);
+      checkedIds.value = checkedIds.value.filter((code) => code !== record['ID']);
     }
   }
   function onSelectAll(selected, selectedRows, changeRows) {
-    const changeIds = changeRows.map((item) => item[rowKey.value]);
+    const changeVals = changeRows.map((item) => item[rowKey.value]);
+    const changeIds = changeRows.map((item) => item['ID']);
     if (selected) {
-      checkedKeys.value = [...checkedKeys.value, ...changeIds];
+      checkedKeys.value = [...checkedKeys.value, ...changeVals];
+      checkedIds.value = [...checkedIds.value, ...changeIds];
     } else {
       checkedKeys.value = checkedKeys.value.filter((code) => {
+        return !changeVals.includes(code);
+      });
+      checkedIds.value = checkedIds.value.filter((code) => {
         return !changeIds.includes(code);
       });
     }

--
Gitblit v1.9.3