From 5e38aa11b69adddeda722b0fa6d93eda1ff578cc Mon Sep 17 00:00:00 2001 From: yuhawu <15545526+yuhawu@user.noreply.gitee.com> Date: Fri, 11 Jul 2025 17:46:41 +0800 Subject: [PATCH] =?UTF-8?q?=E5=BA=97=E9=93=BA=E6=A8=A1=E5=9D=97+=E4=B9=A6?= =?UTF-8?q?=E5=93=81=E7=AE=A1=E7=90=86+=E4=BB=93=E5=82=A8=E7=AE=A1?= =?UTF-8?q?=E7=90=86+=E7=94=A8=E6=88=B7=E6=9D=83=E9=99=90=E7=AE=A1?= =?UTF-8?q?=E7=90=86?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- public/templates/depotRule.doc | Bin 0 -> 38454 bytes src/api/index.js | 4 +- src/api/interceptors/request.js | 2 +- src/api/interceptors/response.js | 6 +- src/api/modules/admin.js | 3 +- src/api/modules/baseInfo.js | 21 + src/api/modules/bookBaseInfo.js | 35 + src/api/modules/depot.js | 72 ++ src/api/modules/user.js | 23 + src/api/permission.js | 43 + src/api/role.js | 64 ++ src/api/user.js | 33 + src/layout/Sidebar.vue | 36 +- src/router/index.js | 25 + src/store/Index.js | 34 +- src/views/Login/index.vue | 91 +- src/views/User/List.vue | 443 ++++++++- src/views/User/Permission.vue | 324 +++++++ src/views/User/Role.vue | 275 ++++++ src/views/User/UserRole.vue | 208 ++++ src/views/Warehouse/Depot/List.vue | 676 +++++++++++++ src/views/baseInfo/index.vue | 1457 ++++++++++++++++++++++++++++ 22 files changed, 3825 insertions(+), 50 deletions(-) create mode 100644 public/templates/depotRule.doc create mode 100644 src/api/modules/baseInfo.js create mode 100644 src/api/modules/bookBaseInfo.js create mode 100644 src/api/modules/depot.js create mode 100644 src/api/modules/user.js create mode 100644 src/api/permission.js create mode 100644 src/api/role.js create mode 100644 src/api/user.js create mode 100644 src/views/User/Permission.vue create mode 100644 src/views/User/Role.vue create mode 100644 src/views/User/UserRole.vue create mode 100644 src/views/Warehouse/Depot/List.vue create mode 100644 src/views/baseInfo/index.vue diff --git a/public/templates/depotRule.doc b/public/templates/depotRule.doc new file mode 100644 index 0000000000000000000000000000000000000000..ee5031da3febfaff66c78765ec18a327fa5c9af9 GIT binary patch literal 38454 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�#UedL?Os#VHaB{$~W0r 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 instance.post('/admin/register', data), login: (data) => instance.post('/admin/login', data), - getAdmin: (data) => instance.post('/admin/getAdmin', data), - + getAdmin: () => instance.get('/admin/getAdmin'), }; // 若需要模块导出 diff --git a/src/api/modules/baseInfo.js b/src/api/modules/baseInfo.js new file mode 100644 index 0000000..0fa8ae6 --- /dev/null +++ b/src/api/modules/baseInfo.js @@ -0,0 +1,21 @@ +import request from '@/utils/request' + +/** + * 分页查询书籍基础信息列表 + * @param {Object} query 查询参数 + * @returns {Promise} 请求Promise对象 + */ +export function getBaseInfoList(query) { + return request({ + url: '/baseInfo/list', + method: 'get', + params: { + pageNum: query.pageNum || 1, + pageSize: query.pageSize || 10, + bookName: query.bookName, + isbn: query.isbn, + author: query.author, + publisher: query.publisher + } + }) +} \ No newline at end of file diff --git a/src/api/modules/bookBaseInfo.js b/src/api/modules/bookBaseInfo.js new file mode 100644 index 0000000..aa79660 --- /dev/null +++ b/src/api/modules/bookBaseInfo.js @@ -0,0 +1,35 @@ +import instance from '../../utils/axios.js' + +const bookBaseInfoApi = { + // 获取图书基本信息列表 + getBookBaseInfoList: (params) => instance.get('/baseInfo/list', { params }), + + // 获取图书基本信息详情 + getBookBaseInfoDetail: (id) => instance.get(`/book/baseInfo/detail/${id}`), + + // 添加图书基本信息 + addBookBaseInfo: (data) => instance.post('/book/baseInfo/add', data), + + // 更新图书基本信息 + updateBookBaseInfo: (data) => instance.put('/book/baseInfo/update', data), + + // 删除图书基本信息 + deleteBookBaseInfo: (id) => instance.delete(`/book/baseInfo/delete/${id}`), + + // 批量删除图书基本信息 + batchDeleteBookBaseInfo: (ids) => instance.post('/book/baseInfo/batchDelete', { ids }), + + // 更新图书违规状态 + updateBookViolationStatus: (data) => instance.put('/book/baseInfo/updateViolation', data), + + // 批量设置违规信息 + updateViolationConfig: (data) => instance.put('/baseInfo/batchUpdateIll', data), + + // 图书价格调整 + adjustBookPrice: (data) => instance.put('/book/baseInfo/adjustPrice', data), + + // 统计图书数据 + getBookStatistics: () => instance.get('/book/baseInfo/statistics') +} + +export { bookBaseInfoApi } \ No newline at end of file diff --git a/src/api/modules/depot.js b/src/api/modules/depot.js new file mode 100644 index 0000000..7f98abe --- /dev/null +++ b/src/api/modules/depot.js @@ -0,0 +1,72 @@ +import instance from '../../utils/axios.js' + +/** + * 货区管理相关接口 + */ +const depotApi = { + /** + * 获取货区列表 + * @param {Object} params - 查询参数 + * @returns {Promise} - 请求Promise + */ + getDepotList: (params) => instance.get('/depot/list', { params }), + + /** + * 创建货区 + * @param {Object} data - 货区信息 + * @returns {Promise} - 请求Promise + */ + createDepot: (data) => instance.post('/depot/create', data), + + /** + * 更新货区 + * @param {Object} data - 货区信息 + * @returns {Promise} - 请求Promise + */ + updateDepot: (data) => instance.put('/depot/update', data), + + /** + * 删除货区 + * @param {Number|String} id - 货区ID + * @returns {Promise} - 请求Promise + */ + deleteDepot: (id) => instance.delete(`/depot/delete/${id}`), + + /** + * 获取货区详情 + * @param {Number|String} id - 货区ID + * @returns {Promise} - 请求Promise + */ + getDepotById: (id) => instance.get(`/depot/get/${id}`), + + /** + * 根据用户ID获取货区 + * @param {Number|String} userId - 用户ID + * @returns {Promise} - 请求Promise + */ + getDepotsByUserId: (userId) => instance.get(`/depot/user/${userId}`), + + /** + * 根据货区编码获取货区 + * @param {String} code - 货区编码 + * @returns {Promise} - 请求Promise + */ + getDepotByCode: (code) => instance.get(`/depot/code/${code}`), + + /** + * 根据一级货区ID获取二级货架信息 + * @param {Number|String} id - 一级货区ID + * @returns {Promise} - 请求Promise + */ + getShelvesByDepotId: (id) => instance.get(`/depot/shelves/${id}`), + + /** + * 根据二级货架ID获取三级货位信息 + * @param {Number|String} id - 二级货架ID + * @returns {Promise} - 请求Promise + */ + getFreightByShelveId: (id) => instance.get(`/depot/freight/${id}`) +} + +// 导出模块 +export { depotApi } \ No newline at end of file diff --git a/src/api/modules/user.js b/src/api/modules/user.js new file mode 100644 index 0000000..3d70d3e --- /dev/null +++ b/src/api/modules/user.js @@ -0,0 +1,23 @@ +import instance from '../../utils/axios.js' + +// 用户相关API +const userApi = { + // 获取用户列表 + getUserList: () => instance.get('/user/list'), + + // 获取单个用户信息 + getUserById: (id) => instance.get(`/user/get/${id}`), + + // 注册/添加用户 + register: (data) => instance.post('/user/register', data), + + // 更新用户信息 + updateUser: (data) => instance.put('/user/update', data), + + // 删除用户 + deleteUser: (id) => instance.delete(`/user/delete/${id}`), + +}; + +// 导出模块 +export { userApi }; \ No newline at end of file diff --git a/src/api/permission.js b/src/api/permission.js new file mode 100644 index 0000000..2d75805 --- /dev/null +++ b/src/api/permission.js @@ -0,0 +1,43 @@ +import axios from '@/utils/axios' + +/** + * 获取权限树 + */ +export function getPermissionTree() { + return axios({ + url: '/admin/permission/tree', + method: 'get' + }) +} + +/** + * 添加权限 + */ +export function addPermission(data) { + return axios({ + url: '/admin/permission/add', + method: 'post', + data + }) +} + +/** + * 更新权限 + */ +export function updatePermission(data) { + return axios({ + url: '/admin/permission/update', + method: 'put', + data + }) +} + +/** + * 删除权限 + */ +export function deletePermission(id) { + return axios({ + url: `/admin/permission/delete/${id}`, + method: 'delete' + }) +} \ No newline at end of file diff --git a/src/api/role.js b/src/api/role.js new file mode 100644 index 0000000..71c2877 --- /dev/null +++ b/src/api/role.js @@ -0,0 +1,64 @@ +import axios from '@/utils/axios' + +/** + * 获取角色列表 + */ +export function getRoleList() { + return axios({ + url: '/admin/role/list', + method: 'get' + }) +} + +/** + * 添加角色 + */ +export function addRole(data) { + return axios({ + url: '/admin/role/add', + method: 'post', + data + }) +} + +/** + * 更新角色 + */ +export function updateRole(data) { + return axios({ + url: '/admin/role/update', + method: 'put', + data + }) +} + +/** + * 删除角色 + */ +export function deleteRole(id) { + return axios({ + url: `/admin/role/delete/${id}`, + method: 'delete' + }) +} + +/** + * 获取角色权限 + */ +export function getRolePermissions(roleId) { + return axios({ + url: `/admin/role/permissions/${roleId}`, + method: 'get' + }) +} + +/** + * 更新角色权限 + */ +export function updateRolePermissions(roleId, permissionIds) { + return axios({ + url: `/admin/role/permissions/${roleId}`, + method: 'put', + data: permissionIds + }) +} \ No newline at end of file diff --git a/src/api/user.js b/src/api/user.js new file mode 100644 index 0000000..1a545ac --- /dev/null +++ b/src/api/user.js @@ -0,0 +1,33 @@ +import axios from '@/utils/axios' + +/** + * 获取管理员角色 + */ +export function getAdminRoles(adminId) { + return axios({ + url: `/admin/user/roles/${adminId}`, + method: 'get' + }) +} + +/** + * 更新管理员角色 + */ +export function updateAdminRoles(adminId, roleIds) { + return axios({ + url: `/admin/user/roles/${adminId}`, + method: 'put', + data: roleIds + }) +} + +/** + * 获取用户列表 + */ +export function getUserList(params) { + return axios({ + url: '/admin/user/list', + method: 'get', + params + }) +} \ No newline at end of file diff --git a/src/layout/Sidebar.vue b/src/layout/Sidebar.vue index f606da5..06f232c 100644 --- a/src/layout/Sidebar.vue +++ b/src/layout/Sidebar.vue @@ -24,7 +24,7 @@ \ No newline at end of file + diff --git a/src/views/User/Permission.vue b/src/views/User/Permission.vue new file mode 100644 index 0000000..cb7157e --- /dev/null +++ b/src/views/User/Permission.vue @@ -0,0 +1,324 @@ + + + + + \ No newline at end of file diff --git a/src/views/User/Role.vue b/src/views/User/Role.vue new file mode 100644 index 0000000..143e47d --- /dev/null +++ b/src/views/User/Role.vue @@ -0,0 +1,275 @@ + + + + + \ No newline at end of file diff --git a/src/views/User/UserRole.vue b/src/views/User/UserRole.vue new file mode 100644 index 0000000..70d2c87 --- /dev/null +++ b/src/views/User/UserRole.vue @@ -0,0 +1,208 @@ + + + + + \ No newline at end of file diff --git a/src/views/Warehouse/Depot/List.vue b/src/views/Warehouse/Depot/List.vue new file mode 100644 index 0000000..ea25137 --- /dev/null +++ b/src/views/Warehouse/Depot/List.vue @@ -0,0 +1,676 @@ + + + + + \ No newline at end of file diff --git a/src/views/baseInfo/index.vue b/src/views/baseInfo/index.vue new file mode 100644 index 0000000..f95dfed --- /dev/null +++ b/src/views/baseInfo/index.vue @@ -0,0 +1,1457 @@ + + + + + \ No newline at end of file