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-framework/src/main/resources/templates/vue/Index.txt |   69 ++++++++++++++++++++++------------
 1 files changed, 44 insertions(+), 25 deletions(-)

diff --git a/zy-asrs-framework/src/main/resources/templates/vue/Index.txt b/zy-asrs-framework/src/main/resources/templates/vue/Index.txt
index 7c77fea..1bd5260 100644
--- a/zy-asrs-framework/src/main/resources/templates/vue/Index.txt
+++ b/zy-asrs-framework/src/main/resources/templates/vue/Index.txt
@@ -6,6 +6,7 @@
 import { logout } from '@/config.js';
 import EditView from './edit.vue'
 import { formatMessage } from '@/utils/localeUtils.js';
+import useTableSearch from '@/utils/tableUtils.jsx';
 const context = getCurrentInstance()?.appContext.config.globalProperties;
 
 const router = useRouter();
@@ -16,24 +17,31 @@
 const searchInput = ref("")
 const editChild = ref(null)
 
-let tableData = ref([]);
-getPage();
-
-const columns = [
-@{TABLECOLUMNS}
-  {
-    title: '鎿嶄綔',
-    name: 'oper',
-    dataIndex: 'oper',
-    key: 'oper',
-    width: 140,
-  },
-];
-
 const state = reactive({
   selectedRowKeys: [],
   loading: false,
 });
+
+let tableData = ref([]);
+getPage();
+
+const {
+  getColumnSearchProps,
+  handleResizeColumn,
+} = useTableSearch();
+
+const columns = [
+@{TABLECOLUMNS}
+  {
+    title: formatMessage('common.operation', '鎿嶄綔'),
+    name: 'oper',
+    dataIndex: 'oper',
+    key: 'oper',
+    width: 140,
+    fixed: 'right',
+  },
+];
+
 const hasSelected = computed(() => state.selectedRowKeys.length > 0);
 const start = () => {
   state.loading = true;
@@ -49,6 +57,7 @@
 };
 
 function getPage() {
+  state.loading = true;
   post('/api/@{SIMPLEENTITYNAME}/page', {
     current: currentPage,
     pageSize: pageSize,
@@ -58,6 +67,8 @@
     if (result.code == 200) {
       let data = result.data;
       tableData.value = data;
+
+      state.loading = false;
     } else if (result.code === 401) {
       message.error(result.msg);
       logout()
@@ -79,21 +90,29 @@
     content: formatMessage('page.delete.confirm', '纭畾鍒犻櫎璇ラ」鍚楋紵'),
     maskClosable: true,
     onOk: async () => {
-      post('/api/@{SIMPLEENTITYNAME}/remove/' + rows.map((row) => row.id).join(','), {}).then(resp => {
-        let result = resp.data;
-        if (result.code === 200) {
-          message.success(result.msg);
-        } else {
-          message.error(result.msg);
-        }
-        getPage()
-      })
+      const hide = message.loading(formatMessage('common.loading', '璇锋眰涓�'));
+      try {
+        post('/api/@{SIMPLEENTITYNAME}/remove/' + rows.map((row) => row.id).join(','), {}).then(resp => {
+          let result = resp.data;
+          if (result.code === 200) {
+            message.success(result.msg);
+          } else {
+            message.error(result.msg);
+          }
+          getPage()
+          hide()
+        })
+      } catch (error) {
+        message.error(formatMessage('common.fail', '璇锋眰澶辫触'));
+      }
     },
   });
 }
 
 const handleExport = async (intl) => {
-  postBlob('/api/@{SIMPLEENTITYNAME}/export', {}).then(result => {
+  postBlob('/api/@{SIMPLEENTITYNAME}/export', {
+    condition: searchInput.value
+  }).then(result => {
     const blob = new Blob([result.data], { type: 'application/vnd.ms-excel' });
     window.location.href = window.URL.createObjectURL(blob);
     return true;
@@ -137,7 +156,7 @@
     <a-table :row-selection="{ selectedRowKeys: state.selectedRowKeys, onChange: onSelectChange }"
       :data-source="tableData.records" :defaultExpandAllRows="false" :key="TABLE_KEY" rowKey="id"
       :pagination="{ total: tableData.total, onChange: onPageChange }"
-      :scroll="{ y: 768, scrollToFirstRowOnChange: true }" :columns="columns">
+      :scroll="{ y: 768, scrollToFirstRowOnChange: true }" :columns="columns" @resizeColumn="handleResizeColumn" :loading="state.loading">
       <template #bodyCell="{ column, text, record }">
         <template v-if="column.dataIndex === 'oper'">
           <div style="display: flex;justify-content: space-evenly;">

--
Gitblit v1.9.1