This commit is contained in:
zpc 2026-02-09 00:32:32 +08:00
parent fcf1054707
commit fae900819a
17 changed files with 50 additions and 46 deletions

View File

@ -343,7 +343,7 @@ public class UserController : BusinessControllerBase
"code": 0,
"message": "success",
"data": {
"items": [],
"list": [],
"total": 100,
"page": 1,
"pageSize": 20,
@ -566,7 +566,7 @@ async function fetchData() {
loading.value = true
try {
const res = await getUserList({ status: props.status })
userList.value = res.data.items
userList.value = res.data.list
} finally {
loading.value = false
}

View File

@ -32,7 +32,7 @@ public static class ServiceCollectionExtensions
{
services.AddDbContext<AdminBusinessDbContext>(options =>
{
options.UseSqlServer(configuration.GetConnectionString("DefaultConnection"));
options.UseSqlServer(configuration.GetConnectionString("BusinessConnection"));
});
}

View File

@ -70,47 +70,47 @@ export interface UpdateDictItemRequest {
/** 获取字典类型列表 */
export function getDictTypes() {
return request.get<DictType[]>('/api/admin/dict/types')
return request.get<DictType[]>('/admin/dict/types')
}
/** 根据编码获取字典类型 */
export function getDictTypeByCode(code: string) {
return request.get<DictType>(`/api/admin/dict/types/${code}`)
return request.get<DictType>(`/admin/dict/types/${code}`)
}
/** 创建字典类型 */
export function createDictType(data: CreateDictTypeRequest) {
return request.post<DictType>('/api/admin/dict/types', data)
return request.post<DictType>('/admin/dict/types', data)
}
/** 更新字典类型 */
export function updateDictType(id: number, data: UpdateDictTypeRequest) {
return request.put(`/api/admin/dict/types/${id}`, data)
return request.put(`/admin/dict/types/${id}`, data)
}
/** 删除字典类型 */
export function deleteDictType(id: number) {
return request.delete(`/api/admin/dict/types/${id}`)
return request.delete(`/admin/dict/types/${id}`)
}
// ==================== 字典数据项 API ====================
/** 根据类型编码获取字典数据项 */
export function getDictItemsByTypeCode(typeCode: string) {
return request.get<DictItem[]>(`/api/admin/dict/items/${typeCode}`)
return request.get<DictItem[]>(`/admin/dict/items/${typeCode}`)
}
/** 创建字典数据项 */
export function createDictItem(data: CreateDictItemRequest) {
return request.post<DictItem>('/api/admin/dict/items', data)
return request.post<DictItem>('/admin/dict/items', data)
}
/** 更新字典数据项 */
export function updateDictItem(id: number, data: UpdateDictItemRequest) {
return request.put(`/api/admin/dict/items/${id}`, data)
return request.put(`/admin/dict/items/${id}`, data)
}
/** 删除字典数据项 */
export function deleteDictItem(id: number) {
return request.delete(`/api/admin/dict/items/${id}`)
return request.delete(`/admin/dict/items/${id}`)
}

View File

@ -8,6 +8,10 @@ export { businessRoutes, type RouteMeta, getBusinessPermissions, filterRoutesByP
// 静态路由
const constantRoutes: RouteRecordRaw[] = [
{
path: '/',
redirect: '/dashboard'
},
{
path: '/login',
name: 'Login',

View File

@ -389,7 +389,7 @@ async function loadAssessmentTypes() {
try {
const res = await getAssessmentTypeList({ pageIndex: 1, pageSize: 100 })
if (res.code === 0) {
state.assessmentTypes = res.data?.items || []
state.assessmentTypes = res.data?.list || []
//
if (state.assessmentTypes.length > 0 && !selectedAssessmentTypeId.value) {
selectedAssessmentTypeId.value = state.assessmentTypes[0].id

View File

@ -374,7 +374,7 @@ async function loadAssessmentTypes() {
try {
const res = await getAssessmentTypeList({ pageIndex: 1, pageSize: 100 })
if (res.code === 0) {
state.assessmentTypes = res.data?.items || []
state.assessmentTypes = res.data?.list || []
//
if (state.assessmentTypes.length > 0 && !selectedAssessmentTypeId.value) {
selectedAssessmentTypeId.value = state.assessmentTypes[0].id

View File

@ -522,7 +522,7 @@ async function loadAssessmentTypes() {
try {
const res = await getAssessmentTypeList({ pageIndex: 1, pageSize: 100 })
if (res.code === 0) {
state.assessmentTypes = res.data?.items || []
state.assessmentTypes = res.data?.list || []
}
} catch (error) {
console.error('Failed to load assessment types:', error)
@ -548,7 +548,7 @@ async function loadQuestionList() {
const res = await getQuestionList(params)
if (res.code === 0) {
state.tableData = res.data?.items || []
state.tableData = res.data?.list || []
state.total = res.data?.total || 0
} else {
throw new Error(res.message || '获取题目列表失败')

View File

@ -438,7 +438,7 @@ async function loadAssessmentTypeList() {
const res = await getAssessmentTypeList(params)
if (res.code === 0) {
state.tableData = res.data?.items || []
state.tableData = res.data?.list || []
state.total = res.data?.total || 0
} else {
throw new Error(res.message || '获取测评类型列表失败')

View File

@ -506,7 +506,7 @@ async function loadBannerList() {
const res = await getBannerList(params)
if (res.code === 0) {
state.tableData = res.data?.items || []
state.tableData = res.data?.list || []
state.total = res.data?.total || 0
} else {
throw new Error(res.message || '获取轮播图列表失败')

View File

@ -372,7 +372,7 @@ async function loadPromotionList() {
const res = await getPromotionList(params)
if (res.code === 0) {
state.tableData = res.data?.items || []
state.tableData = res.data?.list || []
state.total = res.data?.total || 0
} else {
throw new Error(res.message || '获取宣传图列表失败')

View File

@ -652,7 +652,7 @@ async function loadOrderList() {
const res = await getOrderList(params)
if (res.code === 0) {
state.tableData = res.data?.items || []
state.tableData = res.data?.list || []
state.total = res.data?.total || 0
} else {
throw new Error(res.message || '获取订单列表失败')

View File

@ -515,7 +515,7 @@ async function loadUserList() {
const res = await getUserList(params)
if (res.code === 0) {
state.tableData = (res.data?.items || []).map(item => ({
state.tableData = (res.data?.list || []).map(item => ({
...item,
statusLoading: false
}))

View File

@ -4,7 +4,7 @@
<template #header>
<div class="card-header">
<span>部门管理</span>
<el-button type="primary" v-permission="'department:create'" @click="handleAdd">
<el-button type="primary" v-permission="'system:dept:add'" @click="handleAdd">
<el-icon><Plus /></el-icon>
</el-button>
</div>
@ -29,10 +29,10 @@
<el-table-column prop="createdAt" label="创建时间" width="170" />
<el-table-column label="操作" width="250" fixed="right">
<template #default="{ row }">
<el-button link type="primary" v-permission="'department:update'" @click="handleEdit(row)">编辑</el-button>
<el-button link type="primary" v-permission="'department:create'" @click="handleAddChild(row)">添加子部门</el-button>
<el-button link type="primary" v-permission="'department:assign_menu'" @click="handleAssignMenu(row)">分配菜单</el-button>
<el-button link type="danger" v-permission="'department:delete'" @click="handleDelete(row)">删除</el-button>
<el-button link type="primary" v-permission="'system:dept:edit'" @click="handleEdit(row)">编辑</el-button>
<el-button link type="primary" v-permission="'system:dept:add'" @click="handleAddChild(row)">添加子部门</el-button>
<el-button link type="primary" v-permission="'system:dept:edit'" @click="handleAssignMenu(row)">分配菜单</el-button>
<el-button link type="danger" v-permission="'system:dept:delete'" @click="handleDelete(row)">删除</el-button>
</template>
</el-table-column>
</el-table>

View File

@ -4,7 +4,7 @@
<template #header>
<div class="card-header">
<span>菜单管理</span>
<el-button type="primary" v-permission="'menu:create'" @click="handleAdd">
<el-button type="primary" v-permission="'system:menu:add'" @click="handleAdd">
<el-icon><Plus /></el-icon>
</el-button>
</div>
@ -42,9 +42,9 @@
</el-table-column>
<el-table-column label="操作" width="200" fixed="right">
<template #default="{ row }">
<el-button link type="primary" v-permission="'menu:update'" @click="handleEdit(row)">编辑</el-button>
<el-button link type="primary" v-permission="'menu:create'" @click="handleAddChild(row)">添加子菜单</el-button>
<el-button link type="danger" v-permission="'menu:delete'" @click="handleDelete(row)">删除</el-button>
<el-button link type="primary" v-permission="'system:menu:edit'" @click="handleEdit(row)">编辑</el-button>
<el-button link type="primary" v-permission="'system:menu:add'" @click="handleAddChild(row)">添加子菜单</el-button>
<el-button link type="danger" v-permission="'system:menu:delete'" @click="handleDelete(row)">删除</el-button>
</template>
</el-table-column>
</el-table>

View File

@ -4,7 +4,7 @@
<template #header>
<div class="card-header">
<span>权限管理</span>
<el-button type="primary" v-permission="'permission:create'" @click="handleAdd">
<el-button type="primary" v-permission="'system:permission:add'" @click="handleAdd">
<el-icon><Plus /></el-icon>
</el-button>
</div>
@ -41,8 +41,8 @@
<el-table-column prop="createdAt" label="创建时间" width="170" />
<el-table-column label="操作" width="150" fixed="right">
<template #default="{ row }">
<el-button link type="primary" v-permission="'permission:update'" @click="handleEdit(row)">编辑</el-button>
<el-button link type="danger" v-permission="'permission:delete'" @click="handleDelete(row)">删除</el-button>
<el-button link type="primary" v-permission="'system:permission:edit'" @click="handleEdit(row)">编辑</el-button>
<el-button link type="danger" v-permission="'system:permission:delete'" @click="handleDelete(row)">删除</el-button>
</template>
</el-table-column>
</el-table>

View File

@ -4,7 +4,7 @@
<template #header>
<div class="card-header">
<span>角色管理</span>
<el-button type="primary" v-permission="'role:create'" @click="handleAdd">
<el-button type="primary" v-permission="'system:role:add'" @click="handleAdd">
<el-icon><Plus /></el-icon>
</el-button>
</div>
@ -43,10 +43,10 @@
<el-table-column prop="createdAt" label="创建时间" width="170" />
<el-table-column label="操作" width="280" fixed="right">
<template #default="{ row }">
<el-button link type="primary" v-permission="'role:update'" @click="handleEdit(row)">编辑</el-button>
<el-button link type="primary" v-permission="'role:assign_menu'" @click="handleAssignMenu(row)">分配菜单</el-button>
<el-button link type="primary" v-permission="'role:assign_permission'" @click="handleAssignPermission(row)">分配权限</el-button>
<el-button link type="danger" v-permission="'role:delete'" @click="handleDelete(row)" :disabled="row.code === 'super_admin'">删除</el-button>
<el-button link type="primary" v-permission="'system:role:edit'" @click="handleEdit(row)">编辑</el-button>
<el-button link type="primary" v-permission="'system:role:edit'" @click="handleAssignMenu(row)">分配菜单</el-button>
<el-button link type="primary" v-permission="'system:role:edit'" @click="handleAssignPermission(row)">分配权限</el-button>
<el-button link type="danger" v-permission="'system:role:delete'" @click="handleDelete(row)" :disabled="row.code === 'super_admin'">删除</el-button>
</template>
</el-table-column>
</el-table>

View File

@ -4,7 +4,7 @@
<template #header>
<div class="card-header">
<span>管理员管理</span>
<el-button type="primary" v-permission="'user:create'" @click="handleAdd">
<el-button type="primary" v-permission="'system:admin:add'" @click="handleAdd">
<el-icon><Plus /></el-icon>
</el-button>
</div>
@ -60,19 +60,19 @@
:inactive-value="0"
:disabled="row.username === 'admin'"
@change="handleStatusChange(row)"
v-permission="'user:update'"
v-permission="'system:admin:edit'"
/>
</template>
</el-table-column>
<el-table-column prop="lastLoginTime" label="最后登录" width="170" />
<el-table-column label="操作" width="320" fixed="right">
<template #default="{ row }">
<el-button link type="primary" v-permission="'user:update'" @click="handleEdit(row)">编辑</el-button>
<el-button link type="primary" v-permission="'user:assign_role'" @click="handleAssignRole(row)">分配角色</el-button>
<el-button link type="primary" v-permission="'user:assign_department'" @click="handleAssignDepartment(row)">分配部门</el-button>
<el-button link type="primary" v-permission="'user:assign_menu'" @click="handleAssignMenu(row)">专属菜单</el-button>
<el-button link type="warning" v-permission="'user:reset_password'" @click="handleResetPassword(row)">重置密码</el-button>
<el-button link type="danger" v-permission="'user:delete'" @click="handleDelete(row)" :disabled="row.username === 'admin'">删除</el-button>
<el-button link type="primary" v-permission="'system:admin:edit'" @click="handleEdit(row)">编辑</el-button>
<el-button link type="primary" v-permission="'system:admin:edit'" @click="handleAssignRole(row)">分配角色</el-button>
<el-button link type="primary" v-permission="'system:admin:edit'" @click="handleAssignDepartment(row)">分配部门</el-button>
<el-button link type="primary" v-permission="'system:admin:edit'" @click="handleAssignMenu(row)">专属菜单</el-button>
<el-button link type="warning" v-permission="'system:admin:edit'" @click="handleResetPassword(row)">重置密码</el-button>
<el-button link type="danger" v-permission="'system:admin:delete'" @click="handleDelete(row)" :disabled="row.username === 'admin'">删除</el-button>
</template>
</el-table-column>
</el-table>