后台-个人设置

This commit is contained in:
2026-01-26 16:59:52 +08:00
parent c84d4f74a6
commit 535fb734ea
11 changed files with 425 additions and 9 deletions

View File

@@ -0,0 +1,95 @@
import { stringify } from 'qs';
import { useEffect, useState } from 'react';
import { FooterPagination } from '@/components/PaginationPlugin';
import type { ColumnsTypeUltra } from '@/components/TableColumnsFilterPlugin';
import { TablePlugin } from '@/components/TablePlugin';
import { statusObj } from '@/configs/adminLogConfig';
import type { IAjaxDataBase, IParamsBase } from '@/interfaces/common';
import { AdminLogServices } from '@/services/AdminLogServices';
import { tableFixedByPhone, toArray } from '@/utils/common';
import { useRequest } from '@/utils/useRequest';
interface IAjaxData extends IAjaxDataBase {
data: any[];
}
type IParams = IParamsBase & {
create_dateL?: string;
create_dateU?: string;
admin_id?: number;
};
/** 操作日志页面 */
const AdminSysLogForm: React.FC = () => {
const [params] = useState<IParams>({
curr_page: 1,
page_count: 20,
admin_id: Number(localStorage.getItem('admin_id')) || undefined,
});
const [ajaxData, setAjaxData] = useState<IAjaxData>({ count: 0, data: [] });
const { loading: listLoading, request: listRequest } = useRequest(AdminLogServices.getAdminSysLogAjaxList, {
onSuccessCodeZero: (res) => {
setAjaxData({
count: res.count || 0,
data: toArray(res.data),
});
},
});
const columns: ColumnsTypeUltra<any> = [
{
title: '#',
width: 20,
fixed: tableFixedByPhone('left'),
align: 'center',
render(_value, _record, index) {
return index + 1;
},
},
{ title: '操作账号', dataIndex: 'username', width: 50 },
{ title: '操作IP', dataIndex: 'ip', width: 100 },
{ title: '菜单', dataIndex: 'menu_ch_name', width: 80 },
{ title: '权限', dataIndex: 'function_ch_name', width: 60 },
{ title: '操作时间', dataIndex: 'create_date', width: 120 },
{ title: '状态', dataIndex: 'status', width: 60, render: (value) => statusObj[value] },
];
function page(curr: number) {
if (!listLoading) {
params.curr_page = curr;
listRequest(stringify(params));
}
}
useEffect(() => {
page(1);
}, []);
return (
<>
<TablePlugin
loading={listLoading}
onChange={(_p, _f, sort: any) => {
page(1);
}}
dataSource={ajaxData.data}
columns={columns}
scroll={{ x: true }}
rowKey={'sys_id'}
/>
<FooterPagination
current={params.curr_page}
pageSize={params.page_count}
total={ajaxData.count}
onChange={(curr, pageSize) => {
params.page_count = pageSize;
page(curr);
}}
/>
</>
);
};
/** 操作日志页面 */
export default AdminSysLogForm;