From 9ca8e18f0e285a79a72c8cfa1b76aa07b2cba855 Mon Sep 17 00:00:00 2001 From: xxm Date: Mon, 31 Oct 2022 14:13:23 +0800 Subject: [PATCH] =?UTF-8?q?feat=20=E7=94=A8=E6=88=B7=E5=9F=BA=E7=A1=80?= =?UTF-8?q?=E6=B6=88=E6=81=AF=E4=BF=AE=E6=94=B9,=20=E4=B8=80=E4=BA=9B?= =?UTF-8?q?=E6=8A=A5=E9=94=99=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .env.development | 2 +- src/api/common/FileUpload.ts | 36 +++- src/api/sys/menu.ts | 6 +- src/api/sys/model/userModel.ts | 29 +++- src/api/sys/user.ts | 55 +++--- src/components/Cropper/src/CropperAvatar.vue | 11 +- .../header/components/lock/LockModal.vue | 8 +- src/router/guard/permissionGuard.ts | 2 +- src/store/modules/user.ts | 15 +- src/utils/http/axios/index.ts | 1 - src/views/demo/feat/request-demo/index.vue | 5 +- src/views/demo/permission/back/Btn.vue | 2 +- src/views/demo/permission/back/index.vue | 2 +- .../modules/account/setting/BaseSetting.vue | 162 +++++++++++------- .../modules/system/dict/DictItemList.vue | 3 +- .../system/quartz/QuartzJobLogList.vue | 14 +- types/store.d.ts | 3 +- 17 files changed, 215 insertions(+), 141 deletions(-) diff --git a/.env.development b/.env.development index e536770e..02b4fc6f 100644 --- a/.env.development +++ b/.env.development @@ -5,7 +5,7 @@ VITE_USE_MOCK=true VITE_PUBLIC_PATH=/ # 跨域代理,您可以配置多个 ,请注意,没有换行符 -VITE_PROXY=[["/api","http://localhost:9999"],["/upload","http://localhost:3300/upload"]] +VITE_PROXY=[["/api","http://localhost:9999"],["/upload","http://localhost:9999/file/upload"]] # 控制台不输出console VITE_DROP_CONSOLE=false diff --git a/src/api/common/FileUpload.ts b/src/api/common/FileUpload.ts index b28b99de..e596cbda 100644 --- a/src/api/common/FileUpload.ts +++ b/src/api/common/FileUpload.ts @@ -1,5 +1,8 @@ import { defHttp } from '/@/utils/http/axios' -import { Result } from '/#/axios' +import { Result, UploadFileParams } from '/#/axios' +import { UploadApiResult } from '/@/api/sys/model/uploadModel' +import { getAppEnvConfig } from '/@/utils/env' +const { VITE_GLOB_API_URL } = getAppEnvConfig() /** * 获取文件预览地址 @@ -29,3 +32,34 @@ export const getFileDownloadUrl = (id) => { params: { id }, }) } + +/** + * 上传文件 + * @param params + * @param onUploadProgress + */ +export function uploadFile(params: UploadFileParams, onUploadProgress: (progressEvent: ProgressEvent) => void) { + return defHttp.uploadFile( + { + url: VITE_GLOB_API_URL + '/file/upload', + onUploadProgress, + }, + params, + ) +} + +/** + * 上传文件信息 + */ +export interface UpdateFileInfo { + // 文件id + id: string + // 文件名称 + fileName: string + // 文件后缀 + fileSuffix: string + // 文件类型 + fileType: string + // 文件大小 + fileSize: number +} diff --git a/src/api/sys/menu.ts b/src/api/sys/menu.ts index 2fc0fbb9..33873eb1 100644 --- a/src/api/sys/menu.ts +++ b/src/api/sys/menu.ts @@ -1,11 +1,7 @@ import { defHttp } from '/@/utils/http/axios' -import { getMenuListResultModel, MenuAndResource } from './model/menuModel' +import { MenuAndResource } from './model/menuModel' import { Result } from '/#/axios' -enum Api { - GetMenuList = '/getMenuList', -} - /** * 获取菜单和权限码 */ diff --git a/src/api/sys/model/userModel.ts b/src/api/sys/model/userModel.ts index a0743581..6466f2b1 100644 --- a/src/api/sys/model/userModel.ts +++ b/src/api/sys/model/userModel.ts @@ -16,9 +16,16 @@ export interface LoginParams { captcha: string } -export interface RoleInfo { - roleName: string - value: string +/** + * 用户信息(用户详情) + */ +export interface UserDetails { + // 用户id + id: number + // 名称 + name: string + // 账号 + username: string } /** @@ -34,3 +41,19 @@ export interface GetUserInfoModel { // 头像 avatar: string } + +/** + * 用户基础消息 + */ +export interface UserBaseInfo { + // 用户id + id: number + // 名称 + name: string + // 性别 + sex: number + // 头像 + avatar: string + // 生日 + birthday: string +} diff --git a/src/api/sys/user.ts b/src/api/sys/user.ts index cbd5e573..380f4dbf 100644 --- a/src/api/sys/user.ts +++ b/src/api/sys/user.ts @@ -1,13 +1,6 @@ import { defHttp } from '/@/utils/http/axios' -import { LoginParams, GetUserInfoModel } from './model/userModel' - -import { ErrorMessageMode, Result } from '/#/axios' - -enum Api { - Logout = '/logout', - GetPermCode = '/getPermCode', - TestRetry = '/testRetry', -} +import { LoginParams, GetUserInfoModel, UserBaseInfo, UserDetails } from './model/userModel' +import { Result } from '/#/axios' /** * 登录接口 返回token @@ -18,6 +11,7 @@ export function loginApi(params: LoginParams) { params, }) } + /** * 登录后获取用户信息 */ @@ -26,14 +20,31 @@ export function getUserInfo() { } /** - * 获取用户菜单和资源权限 + * 获取用户安全信息 */ -export function getPermissions(clientCode: string) { - return defHttp.get>({ url: '/role/menu/getPermissions', params: { clientCode } }) +export function getUserSecurityInfo() { + return defHttp.get>({ + url: `/user/getUserSecurityInfo`, + }) } -export function getPermCode() { - return defHttp.get({ url: Api.GetPermCode }) +/** + * 获取用户基础信息 + */ +export function getUserBaseInfo() { + return defHttp.get>({ + url: `/user/getUserBaseInfo`, + }) +} + +/** + * 更新用户基础信息 + */ +export function updateBaseInfo(data) { + return defHttp.post({ + url: '/user/updateBaseInfo', + data: data, + }) } /** @@ -42,19 +53,3 @@ export function getPermCode() { export function doLogout() { return defHttp.post({ url: '/token/logout' }) } - -/** - * 测试重试 - */ -export function testRetry() { - return defHttp.get( - { url: Api.TestRetry }, - { - retryRequest: { - isOpenRetry: true, - count: 5, - waitTime: 1000, - }, - }, - ) -} diff --git a/src/components/Cropper/src/CropperAvatar.vue b/src/components/Cropper/src/CropperAvatar.vue index b2c4b353..1dd46813 100644 --- a/src/components/Cropper/src/CropperAvatar.vue +++ b/src/components/Cropper/src/CropperAvatar.vue @@ -65,10 +65,15 @@ }, ) - function handleUploadSuccess({ source }) { + /** + * 响应 + * @param source 文件bold内容 + * @param data 上传成功后的文件信息 见 UpdateFileInfo + */ + function handleUploadSuccess({ source, data: { data } }) { sourceValue.value = source - emit('change', source) - createMessage.success(t('component.cropper.uploadSuccess')) + emit('change', data, source) + createMessage.success('上传成功') } expose({ openModal: openModal.bind(null, true), closeModal }) diff --git a/src/layouts/default/header/components/lock/LockModal.vue b/src/layouts/default/header/components/lock/LockModal.vue index 9f181691..c5e077fd 100644 --- a/src/layouts/default/header/components/lock/LockModal.vue +++ b/src/layouts/default/header/components/lock/LockModal.vue @@ -1,5 +1,5 @@