新增答辩用后台管理系统

This commit is contained in:
2026-06-29 03:08:42 +08:00
parent efd4d03037
commit e61fa6de00
98 changed files with 16022 additions and 420 deletions
+30
View File
@@ -0,0 +1,30 @@
import { post, get } from '@/api/request'
export interface LoginParams {
username: string
password: string
}
export interface AuthResponse {
token: string
userId: number
username: string
roles: string[]
permissions: string[]
}
export function login(params: LoginParams): Promise<AuthResponse> {
return post('/api/auth/login', params)
}
export function register(data: any) {
return post('/api/auth/register', data)
}
export function logout() {
return post('/api/auth/logout')
}
export function getCurrentUser(): Promise<AuthResponse> {
return get('/api/auth/me')
}
@@ -0,0 +1,29 @@
import { get, post } from '@/api/request'
export function getSignInRecords(params: any) {
return get('/api/checkIn/records', params)
}
export function getSignInRecordById(id: number) {
return get(`/api/checkIn/records/${id}`)
}
export function getSignInStatistics(params: any) {
return get('/api/checkIn/statistics', params)
}
export function getDailySignInStats(params: any) {
return get('/api/checkIn/daily-stats', params)
}
export function getAllSignInRecords(params: any) {
return get('/api/checkIn/admin/records', params)
}
export function getAllSignInStatistics(params: any) {
return get('/api/checkIn/admin/statistics', params)
}
export function checkIn(data: any) {
return post('/api/checkIn', data)
}
@@ -0,0 +1,25 @@
import { get } from '@/api/request'
export function getStatisticsSummary(params?: any) {
return get('/api/datacount/summary', params)
}
export function getMemberStatistics(params?: any) {
return get('/api/datacount/member', params)
}
export function getBookingStatistics(params?: any) {
return get('/api/datacount/booking', params)
}
export function getSignInStatistics(params?: any) {
return get('/api/datacount/signin', params)
}
export function getHistoricalStatistics(params?: any) {
return get('/api/datacount/history', params)
}
export function getStatsOverview() {
return get('/api/stats/overview')
}
@@ -0,0 +1,55 @@
import { get, post, put, del } from '@/api/request'
import type { AxiosRequestConfig } from 'axios'
import instance from '@/api/request'
export function uploadImage(file: File) {
const formData = new FormData()
formData.append('file', file)
return instance.post('/api/upload/image', formData, {
headers: { 'Content-Type': 'multipart/form-data' },
}).then((res) => res.data)
}
export function getPresignedUrl(ossKey: string) {
return get<{ code: number; data: { presignedUrl: string } }>('/api/upload/presign', { key: ossKey })
}
export function getGroupCoursesByPage(data: any) {
return post('/api/groupCourse/page', data)
}
export function getAllGroupCourses(includeDeleted?: boolean) {
return get('/api/groupCourse/list', { includeDeleted: includeDeleted ? 'true' : 'false' })
}
export function getGroupCourseById(id: number) {
return get(`/api/groupCourse/${id}`)
}
export function getGroupCourseDetailById(id: number) {
return get(`/api/groupCourse/${id}/detail`)
}
export function createGroupCourse(data: any) {
return post('/api/groupCourse', data)
}
export function updateGroupCourse(id: number, data: any, config?: AxiosRequestConfig) {
return put(`/api/groupCourse/${id}`, data, config)
}
export function deleteGroupCourse(id: number, config?: AxiosRequestConfig) {
return del(`/api/groupCourse/${id}`, config)
}
export function restoreGroupCourse(id: number, config?: AxiosRequestConfig) {
return post(`/api/groupCourse/${id}/restore`, null, config)
}
export function cancelGroupCourse(id: number) {
return post(`/api/groupCourse/${id}/cancel`)
}
export function searchGroupCourses(data: any) {
return post('/api/groupCourse/search', data)
}
@@ -0,0 +1,34 @@
import { get, post, put, del } from '@/api/request'
import type { AxiosRequestConfig } from 'axios'
export function getAllRecommendations(params?: any) {
return get('/api/groupCourse/recommend/list', params)
}
export function getAllActiveRecommendations() {
return get('/api/groupCourse/recommend/active')
}
export function getRecommendationById(id: number) {
return get(`/api/groupCourse/recommend/${id}`)
}
export function createRecommendation(data: any) {
return post('/api/groupCourse/recommend', data)
}
export function updateRecommendation(id: number, data: any, config?: AxiosRequestConfig) {
return put(`/api/groupCourse/recommend/${id}`, data, config)
}
export function deleteRecommendation(id: number, config?: AxiosRequestConfig) {
return del(`/api/groupCourse/recommend/${id}`, config)
}
export function enableRecommendation(id: number) {
return post(`/api/groupCourse/recommend/${id}/enable`)
}
export function disableRecommendation(id: number, config?: AxiosRequestConfig) {
return post(`/api/groupCourse/recommend/${id}/disable`, null, config)
}
@@ -0,0 +1,58 @@
import { get, post, put, del } from '@/api/request'
import type { AxiosRequestConfig } from 'axios'
export function getAllGroupCourseTypes() {
return get('/api/groupCourse/types')
}
export function getGroupCourseTypeById(id: number) {
return get(`/api/groupCourse/types/${id}`)
}
export function createGroupCourseType(data: any) {
return post('/api/groupCourse/types', data)
}
export function updateGroupCourseType(id: number, data: any, config?: AxiosRequestConfig) {
return put(`/api/groupCourse/types/${id}`, data, config)
}
export function deleteGroupCourseType(id: number, config?: AxiosRequestConfig) {
return del(`/api/groupCourse/types/${id}`, config)
}
export function getCategories() {
return get('/api/groupCourse/types/categories')
}
export function getAllLabels() {
return get('/api/groupCourse/labels')
}
export function createLabel(data: any) {
return post('/api/groupCourse/labels', data)
}
export function updateLabel(id: number, data: any) {
return put(`/api/groupCourse/labels/${id}`, data)
}
export function deleteLabel(id: number) {
return del(`/api/groupCourse/labels/${id}`)
}
export function getLabelsByTypeId(typeId: number) {
return get(`/api/groupCourse/types/${typeId}/labels`)
}
export function addLabelsToType(typeId: number, labelIds: number[]) {
return post(`/api/groupCourse/types/${typeId}/labels`, { labelIds })
}
export function removeLabelFromType(typeId: number, labelId: number) {
return del(`/api/groupCourse/types/${typeId}/labels/${labelId}`)
}
export function clearTypeLabels(typeId: number) {
return del(`/api/groupCourse/types/${typeId}/labels`)
}
+21
View File
@@ -0,0 +1,21 @@
import { get, post, put } from '@/api/request'
export function searchMembers(params: any) {
return get('/api/admin/members', params)
}
export function getAllMembers(params?: any) {
return get('/api/admin/members/all', params)
}
export function getMemberDetail(id: number) {
return get(`/api/admin/member/${id}`)
}
export function updateMember(id: number, data: any) {
return put(`/api/admin/member/${id}`, data)
}
export function updateMemberPhone(id: number, data: any) {
return post(`/api/admin/member/${id}/phone`, data)
}
@@ -0,0 +1,49 @@
import { get, post, put, del } from '@/api/request'
export function getAllMemberCards() {
return get('/api/member-cards/active')
}
export function listMemberCards(params?: any) {
return get('/api/member-cards', params)
}
export function getMemberCardById(id: number) {
return get(`/api/member-cards/${id}`)
}
export function createMemberCard(data: any) {
return post('/api/member-cards', data)
}
export function updateMemberCard(id: number, data: any, params?: any) {
return put(`/api/member-cards/${id}`, data, params ? { params } : undefined)
}
export function deleteMemberCard(id: number, params?: any) {
return del(`/api/member-cards/${id}`, params ? { params } : undefined)
}
export function getMemberCardRecords(memberId: number) {
return get(`/api/member-card-records/my-cards/${memberId}`)
}
export function purchaseCard(data: any) {
return post('/api/member-card-records/purchase', data)
}
export function renewCard(recordId: number, data: any) {
return post(`/api/member-card-records/${recordId}/renew`, data)
}
export function useCard(recordId: number, data: any) {
return post(`/api/member-card-records/${recordId}/use`, data)
}
export function refundCard(recordId: number, data: any) {
return post(`/api/member-card-records/${recordId}/refund`, data)
}
export function getMemberCardTransactions(params: any) {
return get('/api/member-card-transactions', params)
}
+25
View File
@@ -0,0 +1,25 @@
import { get, post, put, del } from '@/api/request'
export function getAllMenus() {
return get('/api/menus')
}
export function getMenuTree() {
return get('/api/menus/tree')
}
export function getMenuById(id: number) {
return get(`/api/menus/${id}`)
}
export function createMenu(data: any) {
return post('/api/menus', data)
}
export function updateMenu(id: number, data: any) {
return put(`/api/menus/${id}`, data)
}
export function deleteMenu(id: number) {
return del(`/api/menus/${id}`)
}
@@ -0,0 +1,17 @@
import { get } from '@/api/request'
export function getOperationLogsByPage(params: any) {
return get('/api/logs/operation/page', params)
}
export function getAllOperationLogs() {
return get('/api/logs/operation')
}
export function getOperationLogById(id: number) {
return get(`/api/logs/operation/${id}`)
}
export function exportOperationLogs(params: any) {
return get('/api/logs/operation/export', params)
}
+42
View File
@@ -0,0 +1,42 @@
import { get, post, put, del } from '@/api/request'
import type { AxiosRequestConfig } from 'axios'
export function getRolesByPage(params: any) {
return get('/api/roles/page', params)
}
export function getAllRoles() {
return get('/api/roles')
}
export function getRoleById(id: number) {
return get(`/api/roles/${id}`)
}
export function createRole(data: any) {
return post('/api/roles', data)
}
export function updateRole(id: number, data: any, config?: AxiosRequestConfig) {
return put(`/api/roles/${id}`, data, config)
}
export function deleteRole(id: number, config?: AxiosRequestConfig) {
return del(`/api/roles/${id}`, config)
}
export function checkRoleName(name: string) {
return get('/api/roles/check-name', { name })
}
export function getRolePermissions(id: number) {
return get(`/api/roles/${id}/permissions`)
}
export function assignPermissionsToRole(id: number, permissionIds: number[], config?: AxiosRequestConfig) {
return post(`/api/roles/${id}/permissions`, { permissionIds }, config)
}
export function getAllPermissions() {
return get('/api/permissions')
}
+42
View File
@@ -0,0 +1,42 @@
import { get, post, put, del } from '@/api/request'
import type { AxiosRequestConfig } from 'axios'
export function getUsersByPage(params: any) {
return get('/api/users/page', params)
}
export function getAllUsers(params?: any) {
return get('/api/users', params)
}
export function getUserById(id: number) {
return get(`/api/users/${id}`)
}
export function createUser(data: any) {
return post('/api/users', data)
}
export function updateUser(id: number, data: any, config?: AxiosRequestConfig) {
return put(`/api/users/${id}`, data, config)
}
export function deleteUser(id: number, config?: AxiosRequestConfig) {
return del(`/api/users/${id}`, config)
}
export function changePassword(id: number, data: any) {
return post(`/api/users/${id}/action/change-password`, data)
}
export function getUserRoles(id: number) {
return get(`/api/users/${id}/roles`)
}
export function assignRoles(id: number, roleIds: number[], config?: AxiosRequestConfig) {
return post(`/api/users/${id}/roles`, { roleIds }, config)
}
export function checkUsername(username: string) {
return get('/api/users/check/username', { username })
}