更新front的api
This commit is contained in:
parent
476c5e7658
commit
d1ae365964
57
front/src/api/api.ts
Normal file
57
front/src/api/api.ts
Normal file
@ -0,0 +1,57 @@
|
|||||||
|
// API服务统一入口
|
||||||
|
// 重新导出所有API模块,保持向后兼容性
|
||||||
|
|
||||||
|
// 基础API实例
|
||||||
|
export { default as api } from './index'
|
||||||
|
|
||||||
|
// 认证相关API
|
||||||
|
export { authAPI } from './auth'
|
||||||
|
export { default as authAPI } from './auth'
|
||||||
|
|
||||||
|
// 菜单相关API
|
||||||
|
export { menuAPI } from './menu'
|
||||||
|
export { default as menuAPI } from './menu'
|
||||||
|
|
||||||
|
// 用户相关API
|
||||||
|
export { userAPI } from './user'
|
||||||
|
export { default as userAPI } from './user'
|
||||||
|
|
||||||
|
// 文件相关API
|
||||||
|
export { fileAPI } from './file'
|
||||||
|
export { default as fileAPI } from './file'
|
||||||
|
|
||||||
|
// 程序分类相关API
|
||||||
|
export { programCategoryAPI } from './programCategory'
|
||||||
|
export { default as programCategoryAPI } from './programCategory'
|
||||||
|
|
||||||
|
// 程序信息相关API
|
||||||
|
export { programInfoAPI } from './programInfo'
|
||||||
|
export { default as programInfoAPI } from './programInfo'
|
||||||
|
|
||||||
|
// 为了保持向后兼容性,也可以这样导入所有API
|
||||||
|
import authAPI from './auth'
|
||||||
|
import menuAPI from './menu'
|
||||||
|
import userAPI from './user'
|
||||||
|
import fileAPI from './file'
|
||||||
|
import programCategoryAPI from './programCategory'
|
||||||
|
import programInfoAPI from './programInfo'
|
||||||
|
|
||||||
|
// 导出所有API对象
|
||||||
|
export {
|
||||||
|
authAPI,
|
||||||
|
menuAPI,
|
||||||
|
userAPI,
|
||||||
|
fileAPI,
|
||||||
|
programCategoryAPI,
|
||||||
|
programInfoAPI
|
||||||
|
}
|
||||||
|
|
||||||
|
// 默认导出所有API(可选)
|
||||||
|
export default {
|
||||||
|
authAPI,
|
||||||
|
menuAPI,
|
||||||
|
userAPI,
|
||||||
|
fileAPI,
|
||||||
|
programCategoryAPI,
|
||||||
|
programInfoAPI
|
||||||
|
}
|
||||||
32
front/src/api/auth.ts
Normal file
32
front/src/api/auth.ts
Normal file
@ -0,0 +1,32 @@
|
|||||||
|
import api from './index'
|
||||||
|
|
||||||
|
// 认证相关API
|
||||||
|
export const authAPI = {
|
||||||
|
// 用户登录
|
||||||
|
login: (username: string, password: string) => {
|
||||||
|
return api.post('/api/login', {
|
||||||
|
username: username,
|
||||||
|
password: password
|
||||||
|
})
|
||||||
|
},
|
||||||
|
|
||||||
|
// 用户登出
|
||||||
|
logout: () => {
|
||||||
|
return api.post('/api/logout')
|
||||||
|
},
|
||||||
|
|
||||||
|
// 重置密码
|
||||||
|
resetPassword: (username: string, superPassword: string) => {
|
||||||
|
const formData = new URLSearchParams()
|
||||||
|
formData.append('username', username)
|
||||||
|
formData.append('superPassword', superPassword)
|
||||||
|
|
||||||
|
return api.post('/api/reset-password', formData, {
|
||||||
|
headers: {
|
||||||
|
'Content-Type': 'application/x-www-form-urlencoded'
|
||||||
|
}
|
||||||
|
})
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
export default authAPI
|
||||||
45
front/src/api/file.ts
Normal file
45
front/src/api/file.ts
Normal file
@ -0,0 +1,45 @@
|
|||||||
|
import api from './index'
|
||||||
|
|
||||||
|
// 文件相关API
|
||||||
|
export const fileAPI = {
|
||||||
|
// 获取所有文件
|
||||||
|
getAllFiles: () => {
|
||||||
|
return api.get('/api/files')
|
||||||
|
},
|
||||||
|
|
||||||
|
// 获取我的文件
|
||||||
|
getMyFiles: () => {
|
||||||
|
return api.get('/api/files/my')
|
||||||
|
},
|
||||||
|
|
||||||
|
// 根据ID获取文件
|
||||||
|
getFileById: (id: number) => {
|
||||||
|
return api.get(`/api/files/${id}`)
|
||||||
|
},
|
||||||
|
|
||||||
|
// 上传文件
|
||||||
|
uploadFile: (formData: FormData) => {
|
||||||
|
return api.post('/api/files', formData, {
|
||||||
|
headers: {
|
||||||
|
'Content-Type': 'multipart/form-data'
|
||||||
|
}
|
||||||
|
})
|
||||||
|
},
|
||||||
|
|
||||||
|
// 更新文件信息
|
||||||
|
updateFile: (id: number, fileData: any) => {
|
||||||
|
return api.put(`/api/files/${id}`, fileData)
|
||||||
|
},
|
||||||
|
|
||||||
|
// 删除文件
|
||||||
|
deleteFile: (id: number) => {
|
||||||
|
return api.delete(`/api/files/${id}`)
|
||||||
|
},
|
||||||
|
|
||||||
|
// 搜索文件
|
||||||
|
searchFiles: (keyword: string) => {
|
||||||
|
return api.get(`/api/files/search?keyword=${encodeURIComponent(keyword)}`)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
export default fileAPI
|
||||||
47
front/src/api/index.ts
Normal file
47
front/src/api/index.ts
Normal file
@ -0,0 +1,47 @@
|
|||||||
|
// API服务封装
|
||||||
|
import axios from 'axios'
|
||||||
|
|
||||||
|
// 创建axios实例
|
||||||
|
const api = axios.create({
|
||||||
|
baseURL: import.meta.env.VITE_API_BASE_URL,
|
||||||
|
timeout: 10000,
|
||||||
|
headers: {
|
||||||
|
'Content-Type': 'application/json'
|
||||||
|
}
|
||||||
|
})
|
||||||
|
|
||||||
|
// 请求拦截器
|
||||||
|
api.interceptors.request.use(
|
||||||
|
(config) => {
|
||||||
|
// 获取token
|
||||||
|
const token = localStorage.getItem('token')
|
||||||
|
if (token) {
|
||||||
|
// 设置Authorization头
|
||||||
|
config.headers.Authorization = `Bearer ${token}`
|
||||||
|
}
|
||||||
|
return config
|
||||||
|
},
|
||||||
|
(error) => {
|
||||||
|
return Promise.reject(error)
|
||||||
|
}
|
||||||
|
)
|
||||||
|
|
||||||
|
// 响应拦截器
|
||||||
|
api.interceptors.response.use(
|
||||||
|
(response) => {
|
||||||
|
return response.data;
|
||||||
|
},
|
||||||
|
(error) => {
|
||||||
|
if (error.response && error.response.status === 401) {
|
||||||
|
// token过期或无效,清除本地登录状态并跳转到登录页
|
||||||
|
localStorage.removeItem('isAuthenticated');
|
||||||
|
localStorage.removeItem('user');
|
||||||
|
localStorage.removeItem('token');
|
||||||
|
window.location.href = '/login';
|
||||||
|
}
|
||||||
|
console.error('API请求错误:', error);
|
||||||
|
return Promise.reject(error);
|
||||||
|
}
|
||||||
|
);
|
||||||
|
|
||||||
|
export default api
|
||||||
55
front/src/api/menu.ts
Normal file
55
front/src/api/menu.ts
Normal file
@ -0,0 +1,55 @@
|
|||||||
|
import api from './index'
|
||||||
|
|
||||||
|
// 菜单相关API
|
||||||
|
export const menuAPI = {
|
||||||
|
// 获取所有菜单
|
||||||
|
getAllMenus: () => {
|
||||||
|
return api.get('/api/allmenu')
|
||||||
|
},
|
||||||
|
|
||||||
|
// 获取启用的菜单(用于路由生成)
|
||||||
|
getActiveMenus: () => {
|
||||||
|
return api.get('/api/menus/active')
|
||||||
|
},
|
||||||
|
|
||||||
|
//获取顶级菜单
|
||||||
|
getTopLevelMenus: () => {
|
||||||
|
return api.get('/api/menus/top-level')
|
||||||
|
},
|
||||||
|
|
||||||
|
// 根据ID获取菜单
|
||||||
|
getMenusByParentId: (id: number) => {
|
||||||
|
return api.get(`/api/menus/parent/${id}`)
|
||||||
|
},
|
||||||
|
|
||||||
|
// 创建菜单
|
||||||
|
createMenu: (menuData: any) => {
|
||||||
|
return api.request({
|
||||||
|
method: 'POST',
|
||||||
|
url: '/api/menu',
|
||||||
|
data: menuData,
|
||||||
|
headers: {
|
||||||
|
'Content-Type': 'application/json'
|
||||||
|
}
|
||||||
|
})
|
||||||
|
},
|
||||||
|
|
||||||
|
// 更新菜单
|
||||||
|
updateMenu: (id: number, menuData: any) => {
|
||||||
|
return api.request({
|
||||||
|
method: 'PUT',
|
||||||
|
url: `/api/menu/${id}`,
|
||||||
|
data: menuData,
|
||||||
|
headers: {
|
||||||
|
'Content-Type': 'application/json'
|
||||||
|
}
|
||||||
|
})
|
||||||
|
},
|
||||||
|
|
||||||
|
// 删除菜单
|
||||||
|
deleteMenu: (id: number) => {
|
||||||
|
return api.delete(`/api/menu/${id}`)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
export default menuAPI
|
||||||
36
front/src/api/programCategory.ts
Normal file
36
front/src/api/programCategory.ts
Normal file
@ -0,0 +1,36 @@
|
|||||||
|
import api from './index'
|
||||||
|
|
||||||
|
// 程序分类相关API
|
||||||
|
export const programCategoryAPI = {
|
||||||
|
// 获取所有程序分类(需要认证)
|
||||||
|
getAllProgramCategories: () => {
|
||||||
|
return api.get('/api/program-categories')
|
||||||
|
},
|
||||||
|
|
||||||
|
// 获取所有程序分类(不需要认证的公共接口)
|
||||||
|
getAllProgramCategoriesPublic: () => {
|
||||||
|
return api.get('/api/program-categories/public')
|
||||||
|
},
|
||||||
|
|
||||||
|
// 根据ID获取程序分类
|
||||||
|
getProgramCategoryById: (id: number) => {
|
||||||
|
return api.get(`/api/program-categories/${id}`)
|
||||||
|
},
|
||||||
|
|
||||||
|
// 创建程序分类
|
||||||
|
createProgramCategory: (categoryData: any) => {
|
||||||
|
return api.post('/api/program-categories', categoryData)
|
||||||
|
},
|
||||||
|
|
||||||
|
// 更新程序分类
|
||||||
|
updateProgramCategory: (id: number, categoryData: any) => {
|
||||||
|
return api.put(`/api/program-categories/${id}`, categoryData)
|
||||||
|
},
|
||||||
|
|
||||||
|
// 删除程序分类
|
||||||
|
deleteProgramCategory: (id: number) => {
|
||||||
|
return api.delete(`/api/program-categories/${id}`)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
export default programCategoryAPI
|
||||||
@ -1,38 +1,4 @@
|
|||||||
// 程序分类和程序信息API服务
|
import api from './index'
|
||||||
import api from './api'
|
|
||||||
|
|
||||||
// 程序分类相关API
|
|
||||||
export const programCategoryAPI = {
|
|
||||||
// 获取所有程序分类(需要认证)
|
|
||||||
getAllProgramCategories: () => {
|
|
||||||
return api.get('/api/program-categories')
|
|
||||||
},
|
|
||||||
|
|
||||||
// 获取所有程序分类(不需要认证的公共接口)
|
|
||||||
getAllProgramCategoriesPublic: () => {
|
|
||||||
return api.get('/api/program-categories/public')
|
|
||||||
},
|
|
||||||
|
|
||||||
// 根据ID获取程序分类
|
|
||||||
getProgramCategoryById: (id: number) => {
|
|
||||||
return api.get(`/api/program-categories/${id}`)
|
|
||||||
},
|
|
||||||
|
|
||||||
// 创建程序分类
|
|
||||||
createProgramCategory: (categoryData: any) => {
|
|
||||||
return api.post('/api/program-categories', categoryData)
|
|
||||||
},
|
|
||||||
|
|
||||||
// 更新程序分类
|
|
||||||
updateProgramCategory: (id: number, categoryData: any) => {
|
|
||||||
return api.put(`/api/program-categories/${id}`, categoryData)
|
|
||||||
},
|
|
||||||
|
|
||||||
// 删除程序分类
|
|
||||||
deleteProgramCategory: (id: number) => {
|
|
||||||
return api.delete(`/api/program-categories/${id}`)
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
// 程序信息相关API
|
// 程序信息相关API
|
||||||
export const programInfoAPI = {
|
export const programInfoAPI = {
|
||||||
@ -70,4 +36,6 @@ export const programInfoAPI = {
|
|||||||
deleteProgramInfo: (id: number) => {
|
deleteProgramInfo: (id: number) => {
|
||||||
return api.delete(`/api/program-infos/${id}`)
|
return api.delete(`/api/program-infos/${id}`)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
export default programInfoAPI
|
||||||
60
front/src/api/test.ts
Normal file
60
front/src/api/test.ts
Normal file
@ -0,0 +1,60 @@
|
|||||||
|
// API重构测试文件
|
||||||
|
import { authAPI, menuAPI, userAPI, fileAPI, programCategoryAPI, programInfoAPI } from '../services/api'
|
||||||
|
import api from '../api/index'
|
||||||
|
|
||||||
|
// 测试函数
|
||||||
|
export function testAPIImports() {
|
||||||
|
console.log('Testing API imports...')
|
||||||
|
|
||||||
|
// 测试基础API实例
|
||||||
|
console.log('API instance:', api)
|
||||||
|
|
||||||
|
// 测试各个API模块
|
||||||
|
console.log('Auth API:', authAPI)
|
||||||
|
console.log('Menu API:', menuAPI)
|
||||||
|
console.log('User API:', userAPI)
|
||||||
|
console.log('File API:', fileAPI)
|
||||||
|
console.log('Program Category API:', programCategoryAPI)
|
||||||
|
console.log('Program Info API:', programInfoAPI)
|
||||||
|
|
||||||
|
// 测试API方法是否存在
|
||||||
|
console.log('Auth API methods:', {
|
||||||
|
login: typeof authAPI.login,
|
||||||
|
logout: typeof authAPI.logout,
|
||||||
|
resetPassword: typeof authAPI.resetPassword
|
||||||
|
})
|
||||||
|
|
||||||
|
console.log('Menu API methods:', {
|
||||||
|
getAllMenus: typeof menuAPI.getAllMenus,
|
||||||
|
getActiveMenus: typeof menuAPI.getActiveMenus,
|
||||||
|
createMenu: typeof menuAPI.createMenu
|
||||||
|
})
|
||||||
|
|
||||||
|
console.log('User API methods:', {
|
||||||
|
getAllUsers: typeof userAPI.getAllUsers,
|
||||||
|
getUserById: typeof userAPI.getUserById,
|
||||||
|
createUser: typeof userAPI.createUser
|
||||||
|
})
|
||||||
|
|
||||||
|
console.log('File API methods:', {
|
||||||
|
getAllFiles: typeof fileAPI.getAllFiles,
|
||||||
|
uploadFile: typeof fileAPI.uploadFile,
|
||||||
|
searchFiles: typeof fileAPI.searchFiles
|
||||||
|
})
|
||||||
|
|
||||||
|
console.log('Program Category API methods:', {
|
||||||
|
getAllProgramCategories: typeof programCategoryAPI.getAllProgramCategories,
|
||||||
|
createProgramCategory: typeof programCategoryAPI.createProgramCategory
|
||||||
|
})
|
||||||
|
|
||||||
|
console.log('Program Info API methods:', {
|
||||||
|
getAllProgramInfos: typeof programInfoAPI.getAllProgramInfos,
|
||||||
|
createProgramInfo: typeof programInfoAPI.createProgramInfo
|
||||||
|
})
|
||||||
|
|
||||||
|
console.log('All API imports test completed successfully!')
|
||||||
|
return true
|
||||||
|
}
|
||||||
|
|
||||||
|
// 运行测试
|
||||||
|
export default testAPIImports
|
||||||
31
front/src/api/user.ts
Normal file
31
front/src/api/user.ts
Normal file
@ -0,0 +1,31 @@
|
|||||||
|
import api from './index'
|
||||||
|
|
||||||
|
// 用户相关API
|
||||||
|
export const userAPI = {
|
||||||
|
// 获取所有用户
|
||||||
|
getAllUsers: () => {
|
||||||
|
return api.get('/api/users')
|
||||||
|
},
|
||||||
|
|
||||||
|
// 根据ID获取用户
|
||||||
|
getUserById: (id: number) => {
|
||||||
|
return api.get(`/api/users/${id}`)
|
||||||
|
},
|
||||||
|
|
||||||
|
// 创建用户
|
||||||
|
createUser: (userData: any) => {
|
||||||
|
return api.post('/api/users', userData)
|
||||||
|
},
|
||||||
|
|
||||||
|
// 更新用户
|
||||||
|
updateUser: (id: number, userData: any) => {
|
||||||
|
return api.put(`/api/users/${id}`, userData)
|
||||||
|
},
|
||||||
|
|
||||||
|
// 删除用户
|
||||||
|
deleteUser: (id: number) => {
|
||||||
|
return api.delete(`/api/users/${id}`)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
export default userAPI
|
||||||
@ -1,198 +1,23 @@
|
|||||||
// API服务封装
|
// API服务统一入口
|
||||||
import axios from 'axios'
|
// 重新导出所有API模块,保持向后兼容性
|
||||||
|
|
||||||
// 创建axios实例
|
// 基础API实例
|
||||||
const api = axios.create({
|
export { default as api } from '../api/index'
|
||||||
baseURL: import.meta.env.VITE_API_BASE_URL || 'http://localhost:8080',
|
|
||||||
timeout: 10000,
|
|
||||||
headers: {
|
|
||||||
'Content-Type': 'application/json'
|
|
||||||
}
|
|
||||||
})
|
|
||||||
|
|
||||||
// 请求拦截器
|
|
||||||
api.interceptors.request.use(
|
|
||||||
(config) => {
|
|
||||||
// 获取token
|
|
||||||
const token = localStorage.getItem('token')
|
|
||||||
if (token) {
|
|
||||||
// 设置Authorization头
|
|
||||||
config.headers.Authorization = `Bearer ${token}`
|
|
||||||
}
|
|
||||||
return config
|
|
||||||
},
|
|
||||||
(error) => {
|
|
||||||
return Promise.reject(error)
|
|
||||||
}
|
|
||||||
)
|
|
||||||
|
|
||||||
// 响应拦截器
|
|
||||||
api.interceptors.response.use(
|
|
||||||
(response) => {
|
|
||||||
return response.data;
|
|
||||||
},
|
|
||||||
(error) => {
|
|
||||||
if (error.response && error.response.status === 401) {
|
|
||||||
// token过期或无效,清除本地登录状态并跳转到登录页
|
|
||||||
localStorage.removeItem('isAuthenticated');
|
|
||||||
localStorage.removeItem('user');
|
|
||||||
localStorage.removeItem('token');
|
|
||||||
window.location.href = '/login';
|
|
||||||
}
|
|
||||||
console.error('API请求错误:', error);
|
|
||||||
return Promise.reject(error);
|
|
||||||
}
|
|
||||||
);
|
|
||||||
|
|
||||||
// 认证相关API
|
// 认证相关API
|
||||||
export const authAPI = {
|
export { default as authAPI } from '../api/auth'
|
||||||
// 用户登录
|
|
||||||
login: (username: string, password: string) => {
|
|
||||||
return api.post('/api/login', {
|
|
||||||
username: username,
|
|
||||||
password: password
|
|
||||||
})
|
|
||||||
},
|
|
||||||
|
|
||||||
// 用户登出
|
|
||||||
logout: () => {
|
|
||||||
return api.post('/api/logout')
|
|
||||||
},
|
|
||||||
|
|
||||||
// 重置密码
|
|
||||||
resetPassword: (username: string, superPassword: string) => {
|
|
||||||
const formData = new URLSearchParams()
|
|
||||||
formData.append('username', username)
|
|
||||||
formData.append('superPassword', superPassword)
|
|
||||||
|
|
||||||
return api.post('/api/reset-password', formData, {
|
|
||||||
headers: {
|
|
||||||
'Content-Type': 'application/x-www-form-urlencoded'
|
|
||||||
}
|
|
||||||
})
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
// 菜单相关API
|
// 菜单相关API
|
||||||
export const menuAPI = {
|
export { default as menuAPI } from '../api/menu'
|
||||||
// 获取所有菜单
|
|
||||||
getAllMenus: () => {
|
|
||||||
return api.get('/api/allmenu')
|
|
||||||
},
|
|
||||||
|
|
||||||
// 获取启用的菜单(用于路由生成)
|
|
||||||
getActiveMenus: () => {
|
|
||||||
return api.get('/api/menus/active')
|
|
||||||
},
|
|
||||||
|
|
||||||
//获取顶级菜单
|
|
||||||
getTopLevelMenus: () => {
|
|
||||||
return api.get('/api/menus/top-level')
|
|
||||||
},
|
|
||||||
|
|
||||||
// 根据ID获取菜单
|
|
||||||
getMenusByParentId: (id: number) => {
|
|
||||||
return api.get(`/api/menus/parent/${id}`)
|
|
||||||
},
|
|
||||||
|
|
||||||
// 创建菜单
|
|
||||||
createMenu: (menuData: any) => {
|
|
||||||
return api.request({
|
|
||||||
method: 'POST',
|
|
||||||
url: '/api/menu',
|
|
||||||
data: menuData,
|
|
||||||
headers: {
|
|
||||||
'Content-Type': 'application/json'
|
|
||||||
}
|
|
||||||
})
|
|
||||||
},
|
|
||||||
|
|
||||||
// 更新菜单
|
|
||||||
updateMenu: (id: number, menuData: any) => {
|
|
||||||
return api.request({
|
|
||||||
method: 'PUT',
|
|
||||||
url: `/api/menu/${id}`,
|
|
||||||
data: menuData,
|
|
||||||
headers: {
|
|
||||||
'Content-Type': 'application/json'
|
|
||||||
}
|
|
||||||
})
|
|
||||||
},
|
|
||||||
|
|
||||||
// 删除菜单
|
|
||||||
deleteMenu: (id: number) => {
|
|
||||||
return api.delete(`/api/menu/${id}`)
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
// 用户相关API
|
// 用户相关API
|
||||||
export const userAPI = {
|
export { default as userAPI } from '../api/user'
|
||||||
// 获取所有用户
|
|
||||||
getAllUsers: () => {
|
|
||||||
return api.get('/api/users')
|
|
||||||
},
|
|
||||||
|
|
||||||
// 根据ID获取用户
|
|
||||||
getUserById: (id: number) => {
|
|
||||||
return api.get(`/api/users/${id}`)
|
|
||||||
},
|
|
||||||
|
|
||||||
// 创建用户
|
|
||||||
createUser: (userData: any) => {
|
|
||||||
return api.post('/api/users', userData)
|
|
||||||
},
|
|
||||||
|
|
||||||
// 更新用户
|
|
||||||
updateUser: (id: number, userData: any) => {
|
|
||||||
return api.put(`/api/users/${id}`, userData)
|
|
||||||
},
|
|
||||||
|
|
||||||
// 删除用户
|
|
||||||
deleteUser: (id: number) => {
|
|
||||||
return api.delete(`/api/users/${id}`)
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
// 文件相关API
|
// 文件相关API
|
||||||
export const fileAPI = {
|
export { default as fileAPI } from '../api/file'
|
||||||
// 获取所有文件
|
|
||||||
getAllFiles: () => {
|
|
||||||
return api.get('/api/files')
|
|
||||||
},
|
|
||||||
|
|
||||||
// 获取我的文件
|
|
||||||
getMyFiles: () => {
|
|
||||||
return api.get('/api/files/my')
|
|
||||||
},
|
|
||||||
|
|
||||||
// 根据ID获取文件
|
|
||||||
getFileById: (id: number) => {
|
|
||||||
return api.get(`/api/files/${id}`)
|
|
||||||
},
|
|
||||||
|
|
||||||
// 上传文件
|
|
||||||
uploadFile: (formData: FormData) => {
|
|
||||||
return api.post('/api/files', formData, {
|
|
||||||
headers: {
|
|
||||||
'Content-Type': 'multipart/form-data'
|
|
||||||
}
|
|
||||||
})
|
|
||||||
},
|
|
||||||
|
|
||||||
// 更新文件信息
|
|
||||||
updateFile: (id: number, fileData: any) => {
|
|
||||||
return api.put(`/api/files/${id}`, fileData)
|
|
||||||
},
|
|
||||||
|
|
||||||
// 删除文件
|
|
||||||
deleteFile: (id: number) => {
|
|
||||||
return api.delete(`/api/files/${id}`)
|
|
||||||
},
|
|
||||||
|
|
||||||
// 搜索文件
|
|
||||||
searchFiles: (keyword: string) => {
|
|
||||||
return api.get(`/api/files/search?keyword=${encodeURIComponent(keyword)}`)
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
export default api
|
// 程序分类相关API
|
||||||
|
export { default as programCategoryAPI } from '../api/programCategory'
|
||||||
|
|
||||||
|
// 程序信息相关API
|
||||||
|
export { default as programInfoAPI } from '../api/programInfo'
|
||||||
|
|||||||
@ -6,7 +6,7 @@ runmode = dev
|
|||||||
# MySQL - 远程连接配置
|
# MySQL - 远程连接配置
|
||||||
mysqluser = gotest
|
mysqluser = gotest
|
||||||
mysqlpass = 2nZhRdMPCNZrdzsd
|
mysqlpass = 2nZhRdMPCNZrdzsd
|
||||||
mysqlurls = 212.64.112.158:3307
|
mysqlurls = 43.133.71.191:3308
|
||||||
mysqldb = gotest
|
mysqldb = gotest
|
||||||
|
|
||||||
# SQLite
|
# SQLite
|
||||||
|
|||||||
@ -48,8 +48,8 @@ CREATE TABLE yz_menus (
|
|||||||
path VARCHAR(255) NOT NULL COMMENT '菜单路径',
|
path VARCHAR(255) NOT NULL COMMENT '菜单路径',
|
||||||
parent_id INT DEFAULT 0 COMMENT '父菜单ID,0表示顶级菜单',
|
parent_id INT DEFAULT 0 COMMENT '父菜单ID,0表示顶级菜单',
|
||||||
icon VARCHAR(100) DEFAULT NULL COMMENT '菜单图标',
|
icon VARCHAR(100) DEFAULT NULL COMMENT '菜单图标',
|
||||||
order INT DEFAULT 0 COMMENT '排序序号',
|
`order` INT DEFAULT 0 COMMENT '排序序号',
|
||||||
status TINYINT DEFAULT 1 COMMENT '状态:0-禁用,1-启用',
|
`status` TINYINT DEFAULT 1 COMMENT '状态:0-禁用,1-启用',
|
||||||
component_path VARCHAR(500) DEFAULT NULL COMMENT '组件路径',
|
component_path VARCHAR(500) DEFAULT NULL COMMENT '组件路径',
|
||||||
is_external TINYINT DEFAULT 0 COMMENT '是否外部链接:0-内部路由,1-外部链接',
|
is_external TINYINT DEFAULT 0 COMMENT '是否外部链接:0-内部路由,1-外部链接',
|
||||||
external_url VARCHAR(1000) DEFAULT NULL COMMENT '外部链接地址',
|
external_url VARCHAR(1000) DEFAULT NULL COMMENT '外部链接地址',
|
||||||
@ -63,11 +63,9 @@ CREATE TABLE yz_menus (
|
|||||||
|
|
||||||
-- 索引
|
-- 索引
|
||||||
INDEX idx_parent_id (parent_id),
|
INDEX idx_parent_id (parent_id),
|
||||||
INDEX idx_level (level),
|
INDEX idx_status (`status`),
|
||||||
INDEX idx_status (status),
|
INDEX idx_order (`order`),
|
||||||
INDEX idx_order (order_num),
|
INDEX idx_menu_type (menu_type)
|
||||||
INDEX idx_menu_type (menu_type),
|
|
||||||
INDEX idx_full_path (full_path(255))
|
|
||||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='菜单表(增强版)';
|
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='菜单表(增强版)';
|
||||||
|
|
||||||
-- =============================================
|
-- =============================================
|
||||||
@ -168,9 +166,9 @@ INSERT INTO yz_menus (name, path, parent_id, icon, `order`, status, component_pa
|
|||||||
('角色管理', '/system/roles', 2, 'fa-solid fa-user-tag', 2, 1, '@/views/system/roles/index.vue', 1, '角色权限管理'),
|
('角色管理', '/system/roles', 2, 'fa-solid fa-user-tag', 2, 1, '@/views/system/roles/index.vue', 1, '角色权限管理'),
|
||||||
('权限管理', '/system/permissions', 2, 'fa-solid fa-key', 2, 1, '@/views/system/permissions/index.vue', 1, '权限管理'),
|
('权限管理', '/system/permissions', 2, 'fa-solid fa-key', 2, 1, '@/views/system/permissions/index.vue', 1, '权限管理'),
|
||||||
('菜单管理', '/system/menus', 2, 'fa-solid fa-bars-progress', 2, 1, '@/views/system/menus/manager.vue', 1, '菜单权限管理'),
|
('菜单管理', '/system/menus', 2, 'fa-solid fa-bars-progress', 2, 1, '@/views/system/menus/manager.vue', 1, '菜单权限管理'),
|
||||||
('程序管理', '/system/programs', 2, 'fa-solid fa-cpu', 3, 1, '@/views/system/programs/index.vue', 1, '程序功能管理'),
|
('程序管理', '/system/programs', 2, 'fa-solid fa-grip', 3, 1, '@/views/system/programs/index.vue', 1, '程序功能管理'),
|
||||||
('知识库', '/apps/knowledge', 4, 'fa-solid fa-book', 1, 1, '@/views/apps/knowledge/index.vue', 1, '知识库管理');
|
('知识库', '/apps/knowledge', 4, 'fa-solid fa-book', 1, 1, '@/views/apps/knowledge/index.vue', 1, '知识库管理'),
|
||||||
|
('详情', '/apps/knowledge/detail', 11, '', 1, 1, '@/views/apps/knowledge/components/detail.vue', 1, '知识库详情');
|
||||||
-- 插入默认程序分类
|
-- 插入默认程序分类
|
||||||
INSERT INTO yz_program_category (category_name, category_desc, parent_id, sort_order) VALUES
|
INSERT INTO yz_program_category (category_name, category_desc, parent_id, sort_order) VALUES
|
||||||
('办公软件', '办公相关程序', 0, 1),
|
('办公软件', '办公相关程序', 0, 1),
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user