diff --git a/frontend/vben/src/api/sys/upload.ts b/frontend/vben/src/api/sys/upload.ts new file mode 100644 index 0000000..f86b4e5 --- /dev/null +++ b/frontend/vben/src/api/sys/upload.ts @@ -0,0 +1,22 @@ +import { UploadApiResult } from './model/uploadModel' +import { defHttp } from '/@/utils/http/axios' +import { UploadFileParams } from '/#/axios' +import { useGlobSetting } from '/@/hooks/setting' + +const { uploadUrl = '' } = useGlobSetting() + +/** + * @description: Upload interface + */ +export function uploadApi( + params: UploadFileParams, + onUploadProgress: (progressEvent: ProgressEvent) => void, +) { + return defHttp.uploadFile( + { + url: uploadUrl, + onUploadProgress, + }, + params, + ) +} diff --git a/frontend/vben/src/components/Cropper/index.ts b/frontend/vben/src/components/Cropper/index.ts new file mode 100644 index 0000000..78a1073 --- /dev/null +++ b/frontend/vben/src/components/Cropper/index.ts @@ -0,0 +1,7 @@ +import { withInstall } from '/@/utils' +import cropperImage from './src/Cropper.vue' +import avatarCropper from './src/CropperAvatar.vue' + +export * from './src/typing' +export const CropperImage = withInstall(cropperImage) +export const CropperAvatar = withInstall(avatarCropper) diff --git a/frontend/vben/src/components/Cropper/src/CopperModal.vue b/frontend/vben/src/components/Cropper/src/CopperModal.vue new file mode 100644 index 0000000..9adb347 --- /dev/null +++ b/frontend/vben/src/components/Cropper/src/CopperModal.vue @@ -0,0 +1,284 @@ + + + + diff --git a/frontend/vben/src/components/Cropper/src/Cropper.vue b/frontend/vben/src/components/Cropper/src/Cropper.vue new file mode 100644 index 0000000..5fd5623 --- /dev/null +++ b/frontend/vben/src/components/Cropper/src/Cropper.vue @@ -0,0 +1,188 @@ + + + diff --git a/frontend/vben/src/components/Cropper/src/CropperAvatar.vue b/frontend/vben/src/components/Cropper/src/CropperAvatar.vue new file mode 100644 index 0000000..3f27fbb --- /dev/null +++ b/frontend/vben/src/components/Cropper/src/CropperAvatar.vue @@ -0,0 +1,161 @@ + + + + diff --git a/frontend/vben/src/components/Cropper/src/typing.ts b/frontend/vben/src/components/Cropper/src/typing.ts new file mode 100644 index 0000000..bcad3b4 --- /dev/null +++ b/frontend/vben/src/components/Cropper/src/typing.ts @@ -0,0 +1,8 @@ +import type Cropper from 'cropperjs' + +export interface CropendResult { + imgBase64: string + imgInfo: Cropper.Data +} + +export type { Cropper } diff --git a/frontend/vben/src/components/Upload/src/useUpload.ts b/frontend/vben/src/components/Upload/src/useUpload.ts index 033666a..5aefcb5 100644 --- a/frontend/vben/src/components/Upload/src/useUpload.ts +++ b/frontend/vben/src/components/Upload/src/useUpload.ts @@ -42,7 +42,7 @@ export function useUploadType({ const accept = unref(acceptRef) if (accept.length > 0) { - helpTexts.push(t('component.upload.accept', [accept.join(',')])) + helpTexts.push(t('component.upload.accept', ['docx'])) } const maxSize = unref(maxSizeRef) diff --git a/frontend/vben/src/enums/pageEnum.ts b/frontend/vben/src/enums/pageEnum.ts index 3e8ac3a..f8ce445 100644 --- a/frontend/vben/src/enums/pageEnum.ts +++ b/frontend/vben/src/enums/pageEnum.ts @@ -5,6 +5,8 @@ export enum PageEnum { BASE_HOME = '/dashboard', // file list path PAGE_FILELIST = '/filelist', + // personal settings path + PAGE_SETTINGS = '/settings', // error page path ERROR_PAGE = '/exception', // error log page path diff --git a/frontend/vben/src/layouts/default/header/components/index.ts b/frontend/vben/src/layouts/default/header/components/index.ts index c8a6a02..fe630db 100644 --- a/frontend/vben/src/layouts/default/header/components/index.ts +++ b/frontend/vben/src/layouts/default/header/components/index.ts @@ -7,6 +7,6 @@ export const UserDropDown = createAsyncComponent(() => import('./user-dropdown/i export const LayoutBreadcrumb = createAsyncComponent(() => import('./Breadcrumb.vue')) -export const Notify = createAsyncComponent(() => import('./notify/index.vue')) +// export const Notify = createAsyncComponent(() => import('./notify/index.vue')) export { FullScreen } diff --git a/frontend/vben/src/layouts/default/header/components/user-dropdown/index.vue b/frontend/vben/src/layouts/default/header/components/user-dropdown/index.vue index 0473f53..4b0ac9c 100644 --- a/frontend/vben/src/layouts/default/header/components/user-dropdown/index.vue +++ b/frontend/vben/src/layouts/default/header/components/user-dropdown/index.vue @@ -12,12 +12,11 @@ + + diff --git a/frontend/vben/src/views/page/settings/SecureSetting.vue b/frontend/vben/src/views/page/settings/SecureSetting.vue new file mode 100644 index 0000000..b55b8a7 --- /dev/null +++ b/frontend/vben/src/views/page/settings/SecureSetting.vue @@ -0,0 +1,47 @@ + + + diff --git a/frontend/vben/src/views/page/settings/data.ts b/frontend/vben/src/views/page/settings/data.ts new file mode 100644 index 0000000..45d8902 --- /dev/null +++ b/frontend/vben/src/views/page/settings/data.ts @@ -0,0 +1,68 @@ +import { FormSchema } from '/@/components/Form/index' + +export interface ListItem { + key: string + title: string + description: string + extra?: string + avatar?: string + color?: string +} + +// tab的list +export const settingList = [ + { + key: '1', + name: '基本设置', + component: 'BaseSetting', + }, + { + key: '2', + name: '安全设置', + component: 'SecureSetting', + }, +] + +// 基础设置 form +export const baseSetschemas: FormSchema[] = [ + { + field: 'email', + component: 'Input', + label: '邮箱', + colProps: { span: 18 }, + }, + { + field: 'name', + component: 'Input', + label: '昵称', + colProps: { span: 18 }, + }, + { + field: 'introduction', + component: 'InputTextArea', + label: '个人简介', + colProps: { span: 18 }, + }, + { + field: 'address', + component: 'Input', + label: '所在地区', + colProps: { span: 18 }, + }, +] + +// 安全设置 list +export const secureSettingList: ListItem[] = [ + { + key: '1', + title: '账户密码', + description: '当前密码强度::强', + extra: '修改', + }, + { + key: '2', + title: '我的手机', + description: '已绑定手机::138****8293', + extra: '修改', + }, +] diff --git a/frontend/vben/src/views/page/settings/index.vue b/frontend/vben/src/views/page/settings/index.vue new file mode 100644 index 0000000..86bb0ca --- /dev/null +++ b/frontend/vben/src/views/page/settings/index.vue @@ -0,0 +1,57 @@ + + + +