From 2825a02cd810a74b05291701d1c94fa00c128e35 Mon Sep 17 00:00:00 2001 From: wangxiang <1827945911@qq.com> Date: Thu, 28 Apr 2022 01:03:13 +0800 Subject: [PATCH] =?UTF-8?q?=F0=9F=8E=9F=20=E6=A1=86=E6=9E=B6=E5=8D=87?= =?UTF-8?q?=E7=BA=A7?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- docker-cloud/redis/docker-compose.yml | 1 + .../cloud/kicc/system/api/entity/Dept.java | 13 +- .../cloud/kicc/system/api/entity/User.java | 36 +- .../system/controller/DeptController.java | 21 - .../system/controller/UserController.java | 12 +- kicc-ui/.env.production | 5 + kicc-ui/package.json | 2 +- kicc-ui/src/api/system/{depart.ts => dept.ts} | 9 +- kicc-ui/src/api/system/menu.ts | 2 +- .../model/{departModel.ts => deptModel.ts} | 21 +- kicc-ui/src/api/system/model/userModel.ts | 43 +- kicc-ui/src/api/system/user.ts | 36 +- kicc-ui/src/views/system/depart/DeptModal.vue | 2 +- kicc-ui/src/views/system/depart/index.vue | 2 +- kicc-ui/src/views/system/menu/MenuModal.vue | 2 +- kicc-ui/src/views/system/menu/index.vue | 2 +- kicc-ui/src/views/system/user/DeptTree.vue | 23 +- .../src/views/system/user/PasswordModal.vue | 2 +- kicc-ui/src/views/system/user/UserModal.vue | 4 +- kicc-ui/src/views/system/user/index.vue | 14 +- kicc-ui/vite.config.ts | 1 + kicc-ui/yarn.lock | 1034 +++++++++-------- 22 files changed, 666 insertions(+), 621 deletions(-) rename kicc-ui/src/api/system/{depart.ts => dept.ts} (58%) rename kicc-ui/src/api/system/model/{departModel.ts => deptModel.ts} (55%) diff --git a/docker-cloud/redis/docker-compose.yml b/docker-cloud/redis/docker-compose.yml index c25b1e2e..7bae44bc 100644 --- a/docker-cloud/redis/docker-compose.yml +++ b/docker-cloud/redis/docker-compose.yml @@ -14,6 +14,7 @@ services: restart: always ports: - 6379:6379 + command: redis-server --requirepass kanglai@2022 volumes: - redis:/data - /usr/software/dockerDatabase/redis/redis.conf:/usr/local/etc/redis/redis.conf diff --git a/kicc-platform/kicc-platform-api/kicc-system-api/src/main/java/com/cloud/kicc/system/api/entity/Dept.java b/kicc-platform/kicc-platform-api/kicc-system-api/src/main/java/com/cloud/kicc/system/api/entity/Dept.java index 120a902d..8eba5903 100644 --- a/kicc-platform/kicc-platform-api/kicc-system-api/src/main/java/com/cloud/kicc/system/api/entity/Dept.java +++ b/kicc-platform/kicc-platform-api/kicc-system-api/src/main/java/com/cloud/kicc/system/api/entity/Dept.java @@ -48,17 +48,6 @@ public class Dept extends CommonEntity { */ private String parentId; - /** - * 父部门名称 - */ - @TableField(exist = false) - private String parentName; - - /** - * 祖级列表 - */ - private String ancestors; - /** * 显示顺序 */ @@ -80,7 +69,7 @@ public class Dept extends CommonEntity { private String address; /** - * 邮箱 + * 联系邮箱 */ private String email; diff --git a/kicc-platform/kicc-platform-api/kicc-system-api/src/main/java/com/cloud/kicc/system/api/entity/User.java b/kicc-platform/kicc-platform-api/kicc-system-api/src/main/java/com/cloud/kicc/system/api/entity/User.java index 06918feb..764df22d 100644 --- a/kicc-platform/kicc-platform-api/kicc-system-api/src/main/java/com/cloud/kicc/system/api/entity/User.java +++ b/kicc-platform/kicc-platform-api/kicc-system-api/src/main/java/com/cloud/kicc/system/api/entity/User.java @@ -39,11 +39,6 @@ public class User extends CommonEntity { @ExcelProperty("用户名") private String userName; - /** - * 密码 - */ - private String password; - /** * 昵称 */ @@ -51,21 +46,20 @@ public class User extends CommonEntity { private String nickName; /** - * 手机号码 + * 密码 */ - @ExcelProperty("手机号码") - private String phone; + private String password; /** - * 用户性别(0男 1女 2未知) + * 机构ID */ - @ExcelProperty("性别") - private String sex; + private String deptId; /** - * 头像路径 + * 机构名称 */ - private String avatar; + @ExcelProperty("机构名称") + private String deptName; /** * 用户邮箱 @@ -74,15 +68,21 @@ public class User extends CommonEntity { private String email; /** - * 机构ID + * 手机号码 */ - private String deptId; + @ExcelProperty("手机号码") + private String phone; /** - * 机构名称 + * 用户性别(0男 1女 2未知) */ - @ExcelProperty("机构名称") - private String deptName; + @ExcelProperty("性别") + private String sex; + + /** + * 头像路径 + */ + private String avatar; /** * 最后登陆IP diff --git a/kicc-platform/kicc-platform-biz/kicc-system-biz/src/main/java/com/cloud/kicc/system/controller/DeptController.java b/kicc-platform/kicc-platform-biz/kicc-system-biz/src/main/java/com/cloud/kicc/system/controller/DeptController.java index fdd99d87..98235eec 100644 --- a/kicc-platform/kicc-platform-biz/kicc-system-biz/src/main/java/com/cloud/kicc/system/controller/DeptController.java +++ b/kicc-platform/kicc-platform-biz/kicc-system-biz/src/main/java/com/cloud/kicc/system/controller/DeptController.java @@ -48,13 +48,6 @@ public class DeptController { @PreAuthorize("@pms.hasPermission('dept_view')") public R list(Dept dept) { List deptList = deptService.list(getQueryWrapper(dept)); - if (deptList.size() > 0) { - for (Dept dept1 : deptList) { - if (StrUtil.isNotBlank(dept.getName()) || StrUtil.isNotBlank(dept.getCode())) { - dept1.setParentId("0"); - } - } - } return R.ok(deptList, deptList.size()); } @@ -67,13 +60,6 @@ public class DeptController { @PostMapping("/save") @PreAuthorize("@pms.hasPermission('dept_add')") public R save(@RequestBody Dept dept) { - Dept info; - if (!StrUtil.equals(dept.getParentId(),"0")) { - info = deptService.getById(dept.getParentId()); - dept.setAncestors(info.getAncestors() + "," + dept.getParentId()); - } else { - dept.setAncestors("0"); - } deptService.save(dept); return R.ok(); } @@ -82,13 +68,6 @@ public class DeptController { @PutMapping("/update") @PreAuthorize("@pms.hasPermission('dept_edit')") public R update(@RequestBody Dept dept) { - Dept info; - if (!StrUtil.equals(dept.getParentId(),"0")) { - info = deptService.getById(dept.getParentId()); - dept.setAncestors(info.getAncestors() + "," + dept.getParentId()); - } else { - dept.setAncestors("0"); - } deptService.updateById(dept); //更新用户机构名称 new Thread(() -> { diff --git a/kicc-platform/kicc-platform-biz/kicc-system-biz/src/main/java/com/cloud/kicc/system/controller/UserController.java b/kicc-platform/kicc-platform-biz/kicc-system-biz/src/main/java/com/cloud/kicc/system/controller/UserController.java index 626794ee..24f77ba6 100644 --- a/kicc-platform/kicc-platform-biz/kicc-system-biz/src/main/java/com/cloud/kicc/system/controller/UserController.java +++ b/kicc-platform/kicc-platform-biz/kicc-system-biz/src/main/java/com/cloud/kicc/system/controller/UserController.java @@ -3,6 +3,7 @@ package com.cloud.kicc.system.controller; import cn.hutool.core.util.ArrayUtil; import cn.hutool.core.util.ObjectUtil; import cn.hutool.core.util.StrUtil; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper; import com.baomidou.mybatisplus.core.metadata.IPage; @@ -54,13 +55,10 @@ public class UserController { private final FileService fileService; private static final PasswordEncoder ENCODER = new BCryptPasswordEncoder(); - private QueryWrapper getQueryWrapper(User user) { - return new QueryWrapper() - .like(StrUtil.isNotBlank(user.getUserName()), "user_name", user.getUserName()) - .like(StrUtil.isNotBlank(user.getNickName()), "nick_name", user.getNickName()) - .eq(StrUtil.isNotBlank(user.getStatus()), "status", user.getStatus()) - .apply(StrUtil.isNotBlank(user.getSqlFilter()), user.getSqlFilter()) - .eq(ObjectUtil.isNotNull(user.getDeptId()), "dept_id", user.getDeptId()); + private LambdaQueryWrapper getQueryWrapper(User user) { + return new LambdaQueryWrapper() + .like(StrUtil.isNotBlank(user.getUserName()), User::getUserName, user.getUserName()) + .eq(StrUtil.isNotBlank(user.getStatus()), User::getStatus, user.getStatus()); } @GetMapping("/list") diff --git a/kicc-ui/.env.production b/kicc-ui/.env.production index 1d451f69..22b9e3b3 100644 --- a/kicc-ui/.env.production +++ b/kicc-ui/.env.production @@ -1,6 +1,11 @@ # 资源公共路径,需要以 /开头和结尾 VITE_PUBLIC_PATH = / +# 本地开发代理,可以解决跨域及多地址代理 +# 如果接口地址匹配到,则会转发到http://localhost:3000,防止本地出现跨域问题 +# 可以有多个,注意多个不能换行,否则代理将会失效 +VITE_PROXY = [["/prod-api","http://localhost:9999"],["/prod-upload","http://localhost:3300/upload"]] + # 是否删除console.log VITE_DROP_CONSOLE = true diff --git a/kicc-ui/package.json b/kicc-ui/package.json index 4fd34ede..cda869a0 100644 --- a/kicc-ui/package.json +++ b/kicc-ui/package.json @@ -80,7 +80,7 @@ "rimraf": "^3.0.2", "rollup-plugin-visualizer": "5.5.2", "typescript": "4.4.2", - "vite": "^2.5.8", + "vite": "^2.5.10", "vite-plugin-compression": "^0.3.5", "vite-plugin-html": "^2.1.0", "vite-plugin-imagemin": "^0.4.5", diff --git a/kicc-ui/src/api/system/depart.ts b/kicc-ui/src/api/system/dept.ts similarity index 58% rename from kicc-ui/src/api/system/depart.ts rename to kicc-ui/src/api/system/dept.ts index 4684da27..89992aed 100644 --- a/kicc-ui/src/api/system/depart.ts +++ b/kicc-ui/src/api/system/dept.ts @@ -1,7 +1,8 @@ -import { DepartVO, DepartDTO, Depart, DeptListItem, DeptListGetResultModel } from './model/departModel'; +import { DepartVO, DeptDto, Depart, DeptListItem, DeptListGetResultModel } from './model/deptModel'; import { defHttp } from '/@/utils/http/axios'; enum Api { + list = '/system_proxy/system/dept/list', List = '/mate-system/depart/list', Set = '/mate-system/depart/set', Del = '/mate-system/depart/del', @@ -18,5 +19,7 @@ export const departSet = (params: Depart) => defHttp.post({ url: Api.Set export const departDel = (params: { ids: String }) => defHttp.post({ url: Api.Del + `?ids=${params.ids}` }); -export const getDeptList = (params?: DeptListItem) => - defHttp.get({ url: Api.DeptList, params }); +export const getDeptList = (params?: DeptListItem) => defHttp.get({ url: Api.DeptList, params }); + +// 查询部门列表 +export const deptList = (params?: Partial) => defHttp.get({ url: Api.list, params }); diff --git a/kicc-ui/src/api/system/menu.ts b/kicc-ui/src/api/system/menu.ts index 1c3a5ce9..8186d494 100644 --- a/kicc-ui/src/api/system/menu.ts +++ b/kicc-ui/src/api/system/menu.ts @@ -27,4 +27,4 @@ export const getMenu = (id: string) => defHttp.get({ url: `${Api.get}/${id export const delMenu = (id: string) => defHttp.delete({ url: `${Api.del}/${id}` }); // 通过角色编号查询菜单编号 -export const getRoleMenuIds = (roleId : string) => defHttp.get({ url: `${Api.roleMenuIds}/${roleId}`}); +export const getRoleMenuIds = (roleId : string) => defHttp.get>({ url: `${Api.roleMenuIds}/${roleId}`}); diff --git a/kicc-ui/src/api/system/model/departModel.ts b/kicc-ui/src/api/system/model/deptModel.ts similarity index 55% rename from kicc-ui/src/api/system/model/departModel.ts rename to kicc-ui/src/api/system/model/deptModel.ts index a1ff90d3..28c0a953 100644 --- a/kicc-ui/src/api/system/model/departModel.ts +++ b/kicc-ui/src/api/system/model/deptModel.ts @@ -1,5 +1,5 @@ // 引入基础包 -import { Page, R } from '/@/api/model'; +import { Page, R, CommonEntity } from '/@/api/model'; // 定义查询参数 export type DepartVO = Page & { @@ -7,6 +7,25 @@ export type DepartVO = Page & { name?: string; }; +// 查询参数 +export type DeptDto = Page & Dept; + +// 部门对象 +export interface Dept extends CommonEntity { + deptId: string; + code: string; + name: string; + parentId: string; + sort: number; + contacts: string; + phone: string; + address: string; + email: string; + status: string; + children: Dept[]; +} + + // 定义部门对象 export interface Depart { id: string; diff --git a/kicc-ui/src/api/system/model/userModel.ts b/kicc-ui/src/api/system/model/userModel.ts index b13c6b00..4dd9619d 100644 --- a/kicc-ui/src/api/system/model/userModel.ts +++ b/kicc-ui/src/api/system/model/userModel.ts @@ -1,30 +1,27 @@ // 引入基础包 -import { Page, R } from '/@/api/model'; +import { CommonEntity, Page, R } from '/@/api/model'; -// 定义查询参数 -export type UserVO = Page & { - name?: string; - path?: string; -}; +// 查询参数 +export type UserDto = Page & User; -// 定义用户对象 -export interface User { +// 用户对象 +export interface User extends CommonEntity { id: string; - account: string; - password?: string; - name: string; - realName: string; - avatar: string; + userName: string; + nickName: string; + password: string; + deptId: string; + deptName: string; email: string; - telephone: string; - birthday: string; - sex: number; - roleId: string | number; - departId: string | number; - status: number; - departName: string; - roleName: string; + phone: string; + sex: string; + avatar: string; + loginIp: string; + loginTime: string; + status: string; + roleIds: string[]; + permissions: string[]; } -// 根据用户对象生成响应模型 -export type UserDTO = R; +// 响应模型 +export type UserVo = R; diff --git a/kicc-ui/src/api/system/user.ts b/kicc-ui/src/api/system/user.ts index 22ae45ed..709f753f 100644 --- a/kicc-ui/src/api/system/user.ts +++ b/kicc-ui/src/api/system/user.ts @@ -1,23 +1,29 @@ -import { User, UserVO, UserDTO } from './model/userModel'; +import { User, UserDto } from './model/userModel'; import { defHttp } from '/@/utils/http/axios'; enum Api { - Page = '/mate-system/user/page', - Set = '/mate-system/user/set', - Del = '/mate-system/user/del', - SetPassword = '/mate-system/user/set-password', + list = '/system_proxy/system/user/list', + add = '/system_proxy/system/user/save', + get = '/system_proxy/system/user', + edit = '/system_proxy/system/user/update', + del = '/system_proxy/system/user/remove', + updatePwd = '/system_proxy/system/user/updatePwd' } -// 菜单树 -export const page = (params?: UserVO) => defHttp.get({ url: Api.Page, params }); +// 查询用户列表 +export const listUser = (params?: Partial) => defHttp.get({ url: Api.list, params }); -// 保存 -export const set = (params: User) => defHttp.post({ url: Api.Set, params }); +// 新增用户 +export const addUser = (params: Partial) => defHttp.post({ url: Api.add, data: params }); -// 删除 -export const del = (params: { ids: String }) => - defHttp.post({ url: Api.Del + `?ids=${params.ids}` }); +// 修改用户 +export const editUser = (params: Partial) => defHttp.put({ url: Api.edit, data: params }); -// 设置密码 -export const userSetPassword = (params?: User) => - defHttp.post({ url: Api.SetPassword, params }); +// 查询用户详细 +export const getUser = (id: string) => defHttp.get({ url: `${Api.get}/${id}` }); + +// 删除用户 +export const delUser = (id: string) => defHttp.delete({ url: `${Api.del}/${id}` }); + +// 更新密码 +export const updatePwd = (params: Partial) => defHttp.put({ url: Api.updatePwd, params }); diff --git a/kicc-ui/src/views/system/depart/DeptModal.vue b/kicc-ui/src/views/system/depart/DeptModal.vue index b5a3af94..57865e46 100644 --- a/kicc-ui/src/views/system/depart/DeptModal.vue +++ b/kicc-ui/src/views/system/depart/DeptModal.vue @@ -8,7 +8,7 @@ import { BasicModal, useModalInner } from '/@/components/Modal'; import { BasicForm, useForm } from '/@/components/Form/index'; import { formSchema } from './dept.data'; - import { departList, departSet } from '/@/api/system/depart'; + import { departList, departSet } from '/@/api/system/dept'; export default defineComponent({ name: 'DeptModal', diff --git a/kicc-ui/src/views/system/depart/index.vue b/kicc-ui/src/views/system/depart/index.vue index 118dc5fa..bcf51ea4 100644 --- a/kicc-ui/src/views/system/depart/index.vue +++ b/kicc-ui/src/views/system/depart/index.vue @@ -32,7 +32,7 @@ import { useModal } from '/@/components/Modal'; import DeptModal from './DeptModal.vue'; import { columns, searchFormSchema } from './dept.data'; - import { departDel, departList } from '/@/api/system/depart'; + import { departDel, departList } from '/@/api/system/dept'; import { useMessage } from '/@/hooks/web/useMessage'; const { createMessage } = useMessage(); diff --git a/kicc-ui/src/views/system/menu/MenuModal.vue b/kicc-ui/src/views/system/menu/MenuModal.vue index 22fe3dfc..0deafbbd 100644 --- a/kicc-ui/src/views/system/menu/MenuModal.vue +++ b/kicc-ui/src/views/system/menu/MenuModal.vue @@ -52,7 +52,7 @@ break; case 'edit': props.title = '编辑菜单'; - await setFieldsValue(await getMenu({ id: menuId }) || {}); + await setFieldsValue(await getMenu(menuId) || {}); break; } setModalProps(props); diff --git a/kicc-ui/src/views/system/menu/index.vue b/kicc-ui/src/views/system/menu/index.vue index f50efbb0..dcf568a7 100644 --- a/kicc-ui/src/views/system/menu/index.vue +++ b/kicc-ui/src/views/system/menu/index.vue @@ -98,7 +98,7 @@ /** 删除按钮操作,行内删除 */ async function handleDel(record: Recordable) { - await delMenu({ id: record.id }); + await delMenu(record.id); createMessage.success('删除成功!'); handleSuccess(); } diff --git a/kicc-ui/src/views/system/user/DeptTree.vue b/kicc-ui/src/views/system/user/DeptTree.vue index 4eaba8e1..9b434a48 100644 --- a/kicc-ui/src/views/system/user/DeptTree.vue +++ b/kicc-ui/src/views/system/user/DeptTree.vue @@ -1,31 +1,30 @@