实现权限管理页面与功能

This commit is contained in:
2026-03-18 17:13:31 +08:00
parent efe1568ab5
commit c4e1da8912
25 changed files with 2245 additions and 18 deletions

37
src/actions/admin.ts Normal file
View File

@@ -0,0 +1,37 @@
"use server"
import type { PageRecord } from "@/lib/api"
import type { Admin } from "@/models/admin"
import { callByUser } from "./base"
export async function getPageAdmin(params: { page: number; size: number }) {
return callByUser<PageRecord<Admin>>("/api/admin/admin/page", params)
}
export async function createAdmin(data: {
username: string
password: string
name?: string
phone?: string
email?: string
status?: number
roles?: number[]
}) {
return callByUser<Admin>("/api/admin/admin/create", data)
}
export async function updateAdmin(data: {
id: number
password?: string
name?: string
phone?: string
email?: string
status?: number
roles?: number[]
}) {
return callByUser<Admin>("/api/admin/admin/update", data)
}
export async function deleteAdmin(id: number) {
return callByUser<Admin>("/api/admin/admin/remove", { id })
}

19
src/actions/permission.ts Normal file
View File

@@ -0,0 +1,19 @@
"use server"
import type { PageRecord } from "@/lib/api"
import type { Permission } from "@/models/permission"
import { callByUser } from "./base"
export async function getPagePermission(params: {
page: number
size: number
}) {
return callByUser<PageRecord<Permission>>(
"/api/admin/permission/page",
params,
)
}
export async function getAllPermissions() {
return callByUser<Permission[]>("/api/admin/permission/list", {})
}

38
src/actions/role.ts Normal file
View File

@@ -0,0 +1,38 @@
"use server"
import type { PageRecord } from "@/lib/api"
import type { Role } from "@/models/role"
import { callByUser } from "./base"
export async function getAllRoles() {
return callByUser<Role[]>("/api/admin/admin-role/list", {})
}
export async function getPageRole(params: { page: number; size: number }) {
return callByUser<PageRecord<Role>>("/api/admin/admin-role/page", params)
}
export async function createRole(data: {
name: string
description?: string
active?: boolean
sort?: number
permissions?: number[]
}) {
return callByUser<Role>("/api/admin/admin-role/create", data)
}
export async function updateRole(data: {
id: number
name?: string
description?: string
active?: boolean
sort?: number
permissions?: number[]
}) {
return callByUser<Role>("/api/admin/admin-role/update", data)
}
export async function deleteRole(id: number) {
return callByUser<Role>("/api/admin/admin-role/remove", { id })
}