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/views/system/role/index.vue |   33 ++++++++++++++++++++++++++++-----
 1 files changed, 28 insertions(+), 5 deletions(-)

diff --git a/zy-asrs-admin/src/views/system/role/index.vue b/zy-asrs-admin/src/views/system/role/index.vue
index d567f88..2f1f6e0 100644
--- a/zy-asrs-admin/src/views/system/role/index.vue
+++ b/zy-asrs-admin/src/views/system/role/index.vue
@@ -6,6 +6,7 @@
 import { globalState, 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();
@@ -24,39 +25,54 @@
 let expandedKeys = ref([]);
 let selectedKeys = ref([]);
 
+const state = reactive({
+  selectedRowKeys: [],
+  loading: false,
+});
+
 let tableData = ref([]);
 getPage();
+
+const {
+  getColumnSearchProps,
+} = useTableSearch();
 
 const columns = [
   {
     title: formatMessage('db.sys_role.name', '鍚嶇О'),
     dataIndex: 'name',
     width: 140,
+    ...getColumnSearchProps('name'),
   },
   {
     title: formatMessage('db.sys_role.code', '鏍囪瘑'),
     dataIndex: 'code',
     width: 140,
+    ...getColumnSearchProps('code'),
   },
   {
     title: formatMessage('db.sys_role.status', '鐘舵��'),
     dataIndex: 'status$',
     width: 140,
+    ...getColumnSearchProps('status$'),
   },
   {
     title: formatMessage('db.sys_role.create_time', '娣诲姞鏃堕棿'),
     dataIndex: 'createTime$',
     width: 140,
+    ...getColumnSearchProps('createTime$'),
   },
   {
     title: formatMessage('db.sys_role.update_time', '淇敼鏃堕棿'),
     dataIndex: 'updateTime$',
     width: 140,
+    ...getColumnSearchProps('updateTime$'),
   },
   {
     title: formatMessage('db.sys_role.memo', '澶囨敞'),
     dataIndex: 'memo',
     width: 140,
+    ...getColumnSearchProps('memo'),
   },
 
   {
@@ -68,10 +84,6 @@
   },
 ];
 
-const state = reactive({
-  selectedRowKeys: [],
-  loading: false,
-});
 const hasSelected = computed(() => state.selectedRowKeys.length > 0);
 const start = () => {
   state.loading = true;
@@ -87,6 +99,8 @@
 };
 
 function getPage() {
+  state.loading = true;
+
   post('/api/role/page', {
     current: currentPage,
     pageSize: pageSize,
@@ -96,6 +110,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()
@@ -193,11 +209,17 @@
 
 }
 
+const treeLoading = ref(false)
 const loadMenuTree = (param) => {
+  treeLoading.value = true;
+  treeData.value = [];
+  checkedKeys.value = [];
   post('/api/menu/tree', {}).then(resp => {
     let result = resp.data;
     let data = result.data;
     treeData.value = data;
+
+    treeLoading.value = false;
   })
 
   get('/api/role/scope/list', {
@@ -235,7 +257,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" :loading="state.loading">
       <template #bodyCell="{ column, text, record }">
         <template v-if="column.dataIndex === 'oper'">
           <div style="display: flex;justify-content: space-evenly;">
@@ -251,6 +273,7 @@
 
     <a-drawer :width="500" :title="formatMessage('page.assign.role', '鍒嗛厤鏉冮檺') + ' - ' + currentDrawerData?.name"
       placement="right" :open="openDrawer" @close="onCloseDrawer">
+      <a-spin v-if="treeLoading" />
       <template #extra>
         <a-button style="margin-right: 8px" @click="onCloseDrawer">{{ formatMessage('common.cancel', '鍙栨秷') }}</a-button>
         <a-button type="primary" @click="onSubmitDrawer">{{ formatMessage('common.submit', '鎻愪氦') }}</a-button>

--
Gitblit v1.9.1