From 2e9c878dab8b83a5acbfb2caf934a66394b60d98 Mon Sep 17 00:00:00 2001
From: Ben Lin <maobin001@msn.com>
Date: 星期一, 30 十二月 2024 20:44:20 +0800
Subject: [PATCH] 一些优化

---
 src/views/components/GeneralCrudModal.vue |   84 ++++++++++++++++++++++++++++++++++++++++--
 1 files changed, 80 insertions(+), 4 deletions(-)

diff --git a/src/views/components/GeneralCrudModal.vue b/src/views/components/GeneralCrudModal.vue
index cd60d7c..7eac77c 100644
--- a/src/views/components/GeneralCrudModal.vue
+++ b/src/views/components/GeneralCrudModal.vue
@@ -8,6 +8,13 @@
     @ok="handleSubmit"
   >
     <div>
+      <a-alert
+        v-if="showAlert"
+        :message="message"
+        :description="description"
+        type="info"
+        show-icon
+      />
       <BasicTable @register="registerTable" @edit-change="onEditChange">
         <template #toolbar>
           <a-button @click="openImg" type="primary"> 棰勮 </a-button>
@@ -35,13 +42,15 @@
   } from '/@/components/Table';
   import { useI18n } from '/@/hooks/web/useI18n';
   import { createImgPreview } from '/@/components/Preview';
-  import { getListByPage, SaveEntity } from '/@/api/tigerapi/system';
+  import { DeleteEntity, getListByPage, SaveEntity } from '/@/api/tigerapi/system';
   import { useMessage } from '/@/hooks/web/useMessage';
   import { cloneDeep, isFunction } from 'lodash-es';
-  import { isNullOrUnDef } from '/@/utils/is';
+  import { isNullOrEmpty, isNullOrUnDef } from '/@/utils/is';
   import { CustModalParams } from '/@/api/tigerapi/model/systemModel';
   import { EntityCustFunctionType } from '/@/api/tigerapi/model/basModel';
+  import { Alert } from 'ant-design-vue';
 
+  const AAlert = Alert;
   const { t } = useI18n();
   const title = ref('');
   const tableName = ref('');
@@ -53,6 +62,9 @@
   const entityName = ref('');
   const ctype = ref('');
   const others = ref({});
+  const showAlert = ref(false);
+  const message = ref('');
+  const description = ref('');
 
   //鍒楄〃
   const ItemColumns = ref([] as BasicColumn[]);
@@ -80,7 +92,7 @@
       title: '鎿嶄綔',
       dataIndex: 'action',
       fixed: 'right',
-    }, //鑷畾涔夋搷浣滃垪
+    },
   });
   const { createMessage: msg } = useMessage();
   const currentEditKeyRef = ref('');
@@ -110,7 +122,26 @@
       console.log(`绗�${index + 1}寮犲浘鐗囧凡鍔犺浇锛孶RL涓猴細${url}`, dom);
     };
     // 鍙互浣跨敤createImgPreview杩斿洖鐨� PreviewActions 鏉ユ帶鍒堕瑙堥�昏緫锛屽疄鐜扮被浼煎够鐏墖銆佽嚜鍔ㄦ棆杞箣绫荤殑楠氭搷浣�
-    createImgPreview({ imageList: [dataSource[0].LABEL_VIEW_PATH], defaultWidth: 700, rememberState: true, onImgLoad });
+    const Keys = Object.getOwnPropertyNames(others.value);
+    let path = '';
+    dataSource.map((item) => {
+      for (const k in Keys) {
+        if (item[Keys[k]] == others.value[Keys[k]] && !isNullOrEmpty(others.value[Keys[k]])) {
+          path = item['LABEL_VIEW_PATH'];
+          return;
+        }
+      }
+    });
+    if (isNullOrEmpty(path)) {
+      path = dataSource.filter((q) => isNullOrEmpty(q.WORK_ORDER) || isNullOrEmpty(q.PROD_CODE))[0]
+        .LABEL_VIEW_PATH;
+    }
+    createImgPreview({
+      imageList: [path],
+      defaultWidth: 700,
+      rememberState: true,
+      onImgLoad,
+    });
   }
 
   async function onDataReceive(data) {
@@ -133,6 +164,9 @@
     entityName.value = data?.entityName;
     ctype.value = data?.ctype;
     others.value = data?.others;
+    showAlert.value = data?.alertConfig.showAlert;
+    message.value = data?.alertConfig.message;
+    description.value = data?.alertConfig.description;
     // getForm().resetFields();
     /* 鍔ㄦ�乮mport瀹炰綋鍚�.ts鐨勮嚜瀹氫箟鏂规硶 */
     try {
@@ -151,6 +185,41 @@
   function handleEdit(record: EditRecordRow) {
     currentEditKeyRef.value = record.key;
     record.onEdit?.(true);
+  }
+
+  /**
+   * @description: 鍒犻櫎琛�
+   * @param {*} record
+   * @return {*}
+   */
+  function handleDel(record: EditRecordRow) {
+    if (!isNullOrEmpty(record.WORK_ORDER) || !isNullOrEmpty(record.PROD_CODE)) {
+      //鍒犻櫎
+      DeleteEntity(record, ctype.value).then((action) => {
+        if (action.IsSuccessed) {
+          try {
+            const data = cloneDeep(record.editValueRefs);
+            console.log(data);
+
+            const [{ CustFunc }] = isNullOrUnDef(custImport.value['default'])
+              ? EntityCustFunction.value
+              : custImport.value['default']();
+            if (CustFunc && isFunction(CustFunc)) {
+              CustFunc({
+                others: others.value,
+                ctype: 'delete',
+                values: record,
+              });
+            }
+          } catch (error) {
+            msg.error({ content: t('鍒犻櫎澶辫触'), key: 'saving' });
+          }
+          reload();
+        }
+      });
+    } else {
+      msg.error({ content: t('娌℃湁闇�瑕佸垹闄ょ殑鍙橀噺'), key: 'saving' });
+    }
   }
 
   /**
@@ -177,6 +246,13 @@
           onClick: handleEdit.bind(null, record),
           name: '',
         },
+        {
+          label: '鍒犻櫎',
+          color: 'error',
+          disabled: currentEditKeyRef.value ? currentEditKeyRef.value !== record.key : false,
+          onClick: handleDel.bind(null, record),
+          name: '',
+        },
       ];
     }
     return [

--
Gitblit v1.9.3