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