From 07206576a8d9e5278d2d20640581dc2b88ece173 Mon Sep 17 00:00:00 2001 From: "Ray.Hao" <1490493387@qq.com> Date: Thu, 21 Aug 2025 18:28:38 +0800 Subject: [PATCH] =?UTF-8?q?feat(codegen):=20:sparkles:=20=E4=BB=A3?= =?UTF-8?q?=E7=A0=81=E7=94=9F=E6=88=90=E6=94=AF=E6=8C=81=E6=9C=AC=E5=9C=B0?= =?UTF-8?q?=E5=86=99=E5=85=A5=E5=92=8C=E4=BB=A3=E7=A0=81=E4=BC=98=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- package.json | 2 +- src/api/{auth.api.ts => auth-api.ts} | 0 src/api/{codegen.api.ts => codegen-api.ts} | 12 +- src/api/{file.api.ts => file-api.ts} | 41 +- .../system/{config.api.ts => config-api.ts} | 45 +- src/api/system/dept-api.ts | 75 +++ src/api/system/dept.api.ts | 130 ---- src/api/system/dict-api.ts | 145 +++++ src/api/system/dict.api.ts | 310 ---------- src/api/system/{log.api.ts => log-api.ts} | 40 +- src/api/system/{menu.api.ts => menu-api.ts} | 112 +--- src/api/system/notice-api.ts | 121 ++++ src/api/system/notice.api.ts | 199 ------- src/api/system/role-api.ts | 79 +++ src/api/system/role.api.ts | 138 ----- src/api/system/{user.api.ts => user-api.ts} | 0 src/components/LangSelect/index.vue | 2 +- src/components/Notification/index.vue | 2 +- src/components/SizeSelect/index.vue | 2 +- src/components/Upload/FileUpload.vue | 2 +- src/components/Upload/MultiImageUpload.vue | 2 +- src/components/Upload/SingleImageUpload.vue | 2 +- src/components/WangEditor/index.vue | 2 +- src/composables/useDictSync.ts | 2 +- src/lang/index.ts | 2 +- src/store/index.ts | 12 +- .../modules/{app.store.ts => app-store.ts} | 0 .../modules/{dict.store.ts => dict-store.ts} | 2 +- ...ermission.store.ts => permission-store.ts} | 2 +- .../{settings.store.ts => settings-store.ts} | 0 ...{tags-view.store.ts => tags-view-store.ts} | 0 .../modules/{user.store.ts => user-store.ts} | 8 +- src/utils/request.ts | 2 +- src/views/codegen/index.vue | 559 ++++++++++++++++-- src/views/dashboard/index.vue | 4 +- src/views/demo/curd/config/add.ts | 2 +- src/views/demo/curd/config/content.ts | 6 +- src/views/demo/curd/config/edit.ts | 2 +- src/views/demo/curd/config/options.ts | 4 +- src/views/demo/curd/config2/add.ts | 2 +- src/views/demo/curd/index.vue | 2 +- src/views/demo/dict-sync.vue | 4 +- src/views/demo/signature.vue | 2 +- src/views/demo/table-select/config/select.ts | 2 +- src/views/demo/websocket.vue | 2 +- src/views/login/components/Login.vue | 2 +- src/views/login/components/Register.vue | 2 +- src/views/profile/index.vue | 4 +- src/views/system/config/index.vue | 2 +- src/views/system/dept/index.vue | 2 +- src/views/system/dict/dict-item.vue | 2 +- src/views/system/dict/index.vue | 2 +- src/views/system/log/index.vue | 2 +- src/views/system/menu/index.vue | 4 +- .../system/notice/components/MyNotice.vue | 2 +- src/views/system/notice/index.vue | 4 +- src/views/system/role/index.vue | 6 +- src/views/system/user/components/DeptTree.vue | 2 +- .../system/user/components/UserImport.vue | 2 +- src/views/system/user/index.vue | 8 +- vite.config.ts | 2 + 61 files changed, 1045 insertions(+), 1087 deletions(-) rename src/api/{auth.api.ts => auth-api.ts} (100%) rename src/api/{codegen.api.ts => codegen-api.ts} (90%) rename src/api/{file.api.ts => file-api.ts} (63%) rename src/api/system/{config.api.ts => config-api.ts} (62%) create mode 100644 src/api/system/dept-api.ts delete mode 100644 src/api/system/dept.api.ts create mode 100644 src/api/system/dict-api.ts delete mode 100644 src/api/system/dict.api.ts rename src/api/system/{log.api.ts => log-api.ts} (78%) rename src/api/system/{menu.api.ts => menu-api.ts} (58%) create mode 100644 src/api/system/notice-api.ts delete mode 100644 src/api/system/notice.api.ts create mode 100644 src/api/system/role-api.ts delete mode 100644 src/api/system/role.api.ts rename src/api/system/{user.api.ts => user-api.ts} (100%) rename src/store/modules/{app.store.ts => app-store.ts} (100%) rename src/store/modules/{dict.store.ts => dict-store.ts} (96%) rename src/store/modules/{permission.store.ts => permission-store.ts} (98%) rename src/store/modules/{settings.store.ts => settings-store.ts} (100%) rename src/store/modules/{tags-view.store.ts => tags-view-store.ts} (100%) rename src/store/modules/{user.store.ts => user-store.ts} (94%) diff --git a/package.json b/package.json index 2da53666..79eb427e 100644 --- a/package.json +++ b/package.json @@ -1,7 +1,7 @@ { "name": "vue3-element-admin", "description": "Vue3 + Vite + TypeScript + Element-Plus 的后台管理模板,vue-element-admin 的 Vue3 版本", - "version": "3.2.2", + "version": "3.3.0", "private": true, "type": "module", "scripts": { diff --git a/src/api/auth.api.ts b/src/api/auth-api.ts similarity index 100% rename from src/api/auth.api.ts rename to src/api/auth-api.ts diff --git a/src/api/codegen.api.ts b/src/api/codegen-api.ts similarity index 90% rename from src/api/codegen.api.ts rename to src/api/codegen-api.ts index cddee813..e9863d39 100644 --- a/src/api/codegen.api.ts +++ b/src/api/codegen-api.ts @@ -30,10 +30,11 @@ const GeneratorAPI = { }, /** 获取代码生成预览数据 */ - getPreviewData(tableName: string) { + getPreviewData(tableName: string, pageType?: "classic" | "curd") { return request({ url: `${GENERATOR_BASE_URL}/${tableName}/preview`, method: "get", + params: pageType ? { pageType } : undefined, }); }, @@ -50,10 +51,11 @@ const GeneratorAPI = { * @param url * @param fileName */ - download(tableName: string) { + download(tableName: string, pageType?: "classic" | "curd") { return request({ url: `${GENERATOR_BASE_URL}/${tableName}/download`, method: "get", + params: pageType ? { pageType } : undefined, responseType: "blob", }).then((response) => { const fileName = decodeURI( @@ -140,6 +142,12 @@ export interface GenConfigForm { /** 字段配置列表 */ fieldConfigs?: FieldConfig[]; + + /** 页面类型 classic|curd */ + pageType?: "classic" | "curd"; + + /** 要移除的表前缀,如 sys_ */ + removeTablePrefix?: string; } /** 字段配置 */ diff --git a/src/api/file.api.ts b/src/api/file-api.ts similarity index 63% rename from src/api/file.api.ts rename to src/api/file-api.ts index 504d916e..826698ef 100644 --- a/src/api/file.api.ts +++ b/src/api/file-api.ts @@ -1,25 +1,17 @@ import request from "@/utils/request"; const FileAPI = { - /** - * 上传文件 - * - * @param formData - */ + /** 上传文件 */ upload(formData: FormData) { return request({ url: "/api/v1/files", method: "post", data: formData, - headers: { - "Content-Type": "multipart/form-data", - }, + headers: { "Content-Type": "multipart/form-data" }, }); }, - /** - * 上传文件 - */ + /** 上传文件(传入 File) */ uploadFile(file: File) { const formData = new FormData(); formData.append("file", file); @@ -27,17 +19,11 @@ const FileAPI = { url: "/api/v1/files", method: "post", data: formData, - headers: { - "Content-Type": "multipart/form-data", - }, + headers: { "Content-Type": "multipart/form-data" }, }); }, - /** - * 删除文件 - * - * @param filePath 文件完整路径 - */ + /** 删除文件 */ delete(filePath?: string) { return request({ url: "/api/v1/files", @@ -46,11 +32,7 @@ const FileAPI = { }); }, - /** - * 下载文件 - * @param url - * @param fileName - */ + /** 下载文件 */ download(url: string, fileName?: string) { return request({ url, @@ -59,23 +41,18 @@ const FileAPI = { }).then((res) => { const blob = new Blob([res.data]); const a = document.createElement("a"); - const url = window.URL.createObjectURL(blob); - a.href = url; + const urlObject = window.URL.createObjectURL(blob); + a.href = urlObject; a.download = fileName || "下载文件"; a.click(); - window.URL.revokeObjectURL(url); + window.URL.revokeObjectURL(urlObject); }); }, }; export default FileAPI; -/** - * 文件API类型声明 - */ export interface FileInfo { - /** 文件名 */ name: string; - /** 文件路径 */ url: string; } diff --git a/src/api/system/config.api.ts b/src/api/system/config-api.ts similarity index 62% rename from src/api/system/config.api.ts rename to src/api/system/config-api.ts index 27327885..39437691 100644 --- a/src/api/system/config.api.ts +++ b/src/api/system/config-api.ts @@ -3,7 +3,7 @@ import request from "@/utils/request"; const CONFIG_BASE_URL = "/api/v1/config"; const ConfigAPI = { - /** 系统配置分页 */ + /** 获取配置分页数据 */ getPage(queryParams?: ConfigPageQuery) { return request>({ url: `${CONFIG_BASE_URL}/page`, @@ -11,62 +11,38 @@ const ConfigAPI = { params: queryParams, }); }, - - /** 系统配置表单数据 */ + /** 获取配置表单数据 */ getFormData(id: string) { return request({ url: `${CONFIG_BASE_URL}/${id}/form`, method: "get", }); }, - - /** 新增系统配置 */ + /** 新增配置 */ create(data: ConfigForm) { - return request({ - url: `${CONFIG_BASE_URL}`, - method: "post", - data, - }); + return request({ url: `${CONFIG_BASE_URL}`, method: "post", data }); }, - - /** 更新系统配置 */ + /** 修改配置 */ update(id: string, data: ConfigForm) { - return request({ - url: `${CONFIG_BASE_URL}/${id}`, - method: "put", - data, - }); + return request({ url: `${CONFIG_BASE_URL}/${id}`, method: "put", data }); }, - - /** - * 删除系统配置 - * - * @param ids 系统配置ID - */ + /** 删除配置 */ deleteById(id: string) { - return request({ - url: `${CONFIG_BASE_URL}/${id}`, - method: "delete", - }); + return request({ url: `${CONFIG_BASE_URL}/${id}`, method: "delete" }); }, - /** 刷新系统配置缓存 */ + /** 刷新配置缓存 */ refreshCache() { - return request({ - url: `${CONFIG_BASE_URL}/refresh`, - method: "PUT", - }); + return request({ url: `${CONFIG_BASE_URL}/refresh`, method: "PUT" }); }, }; export default ConfigAPI; -/** $系统配置分页查询参数 */ export interface ConfigPageQuery extends PageQuery { /** 搜索关键字 */ keywords?: string; } -/** 系统配置表单对象 */ export interface ConfigForm { /** 主键 */ id?: string; @@ -80,7 +56,6 @@ export interface ConfigForm { remark?: string; } -/** 系统配置分页对象 */ export interface ConfigPageVO { /** 主键 */ id?: string; diff --git a/src/api/system/dept-api.ts b/src/api/system/dept-api.ts new file mode 100644 index 00000000..fcd6608d --- /dev/null +++ b/src/api/system/dept-api.ts @@ -0,0 +1,75 @@ +import request from "@/utils/request"; + +const DEPT_BASE_URL = "/api/v1/dept"; + +const DeptAPI = { + /** 获取部门树形列表 */ + getList(queryParams?: DeptQuery) { + return request({ url: `${DEPT_BASE_URL}`, method: "get", params: queryParams }); + }, + /** 获取部门下拉数据源 */ + getOptions() { + return request({ url: `${DEPT_BASE_URL}/options`, method: "get" }); + }, + /** 获取部门表单数据 */ + getFormData(id: string) { + return request({ url: `${DEPT_BASE_URL}/${id}/form`, method: "get" }); + }, + /** 新增部门 */ + create(data: DeptForm) { + return request({ url: `${DEPT_BASE_URL}`, method: "post", data }); + }, + /** 修改部门 */ + update(id: string, data: DeptForm) { + return request({ url: `${DEPT_BASE_URL}/${id}`, method: "put", data }); + }, + /** 批量删除部门,多个以英文逗号(,)分割 */ + deleteByIds(ids: string) { + return request({ url: `${DEPT_BASE_URL}/${ids}`, method: "delete" }); + }, +}; + +export default DeptAPI; + +export interface DeptQuery { + /** 搜索关键字 */ + keywords?: string; + /** 状态 */ + status?: number; +} + +export interface DeptVO { + /** 子部门 */ + children?: DeptVO[]; + /** 创建时间 */ + createTime?: Date; + /** 部门ID */ + id?: string; + /** 部门名称 */ + name?: string; + /** 部门编号 */ + code?: string; + /** 父部门ID */ + parentid?: string; + /** 排序 */ + sort?: number; + /** 状态(1:启用;0:禁用) */ + status?: number; + /** 修改时间 */ + updateTime?: Date; +} + +export interface DeptForm { + /** 部门ID(新增不填) */ + id?: string; + /** 部门名称 */ + name?: string; + /** 部门编号 */ + code?: string; + /** 父部门ID */ + parentId: string; + /** 排序 */ + sort?: number; + /** 状态(1:启用;0:禁用) */ + status?: number; +} diff --git a/src/api/system/dept.api.ts b/src/api/system/dept.api.ts deleted file mode 100644 index 6182a555..00000000 --- a/src/api/system/dept.api.ts +++ /dev/null @@ -1,130 +0,0 @@ -import request from "@/utils/request"; - -const DEPT_BASE_URL = "/api/v1/dept"; - -const DeptAPI = { - /** - * 获取部门列表 - * - * @param queryParams 查询参数(可选) - * @returns 部门树形表格数据 - */ - getList(queryParams?: DeptQuery) { - return request({ - url: `${DEPT_BASE_URL}`, - method: "get", - params: queryParams, - }); - }, - - /** 获取部门下拉列表 */ - getOptions() { - return request({ - url: `${DEPT_BASE_URL}/options`, - method: "get", - }); - }, - - /** - * 获取部门表单数据 - * - * @param id 部门ID - * @returns 部门表单数据 - */ - getFormData(id: string) { - return request({ - url: `${DEPT_BASE_URL}/${id}/form`, - method: "get", - }); - }, - - /** - * 新增部门 - * - * @param data 部门表单数据 - * @returns 请求结果 - */ - create(data: DeptForm) { - return request({ - url: `${DEPT_BASE_URL}`, - method: "post", - data, - }); - }, - - /** - * 修改部门 - * - * @param id 部门ID - * @param data 部门表单数据 - * @returns 请求结果 - */ - update(id: string, data: DeptForm) { - return request({ - url: `${DEPT_BASE_URL}/${id}`, - method: "put", - data, - }); - }, - - /** - * 删除部门 - * - * @param ids 部门ID,多个以英文逗号(,)分隔 - * @returns 请求结果 - */ - deleteByIds(ids: string) { - return request({ - url: `${DEPT_BASE_URL}/${ids}`, - method: "delete", - }); - }, -}; - -export default DeptAPI; - -/** 部门查询参数 */ -export interface DeptQuery { - /** 搜索关键字 */ - keywords?: string; - /** 状态 */ - status?: number; -} - -/** 部门类型 */ -export interface DeptVO { - /** 子部门 */ - children?: DeptVO[]; - /** 创建时间 */ - createTime?: Date; - /** 部门ID */ - id?: string; - /** 部门名称 */ - name?: string; - /** 部门编号 */ - code?: string; - /** 父部门ID */ - parentid?: string; - /** 排序 */ - sort?: number; - /** 状态(1:启用;0:禁用) */ - status?: number; - /** 修改时间 */ - updateTime?: Date; -} - -/** 部门表单类型 */ -export interface DeptForm { - /** 部门ID(新增不填) */ - id?: string; - /** 部门名称 */ - name?: string; - /** 部门编号 */ - code?: string; - /** 父部门ID */ - parentId: string; - /** 排序 */ - sort?: number; - /** 状态(1:启用;0:禁用) */ - status?: number; -} diff --git a/src/api/system/dict-api.ts b/src/api/system/dict-api.ts new file mode 100644 index 00000000..3976b8d4 --- /dev/null +++ b/src/api/system/dict-api.ts @@ -0,0 +1,145 @@ +import request from "@/utils/request"; + +const DICT_BASE_URL = "/api/v1/dicts"; + +const DictAPI = { + /** 字典分页列表 */ + getPage(queryParams: DictPageQuery) { + return request>({ + url: `${DICT_BASE_URL}/page`, + method: "get", + params: queryParams, + }); + }, + /** 字典列表 */ + getList() { + return request({ url: `${DICT_BASE_URL}`, method: "get" }); + }, + /** 字典表单数据 */ + getFormData(id: string) { + return request({ url: `${DICT_BASE_URL}/${id}/form`, method: "get" }); + }, + /** 新增字典 */ + create(data: DictForm) { + return request({ url: `${DICT_BASE_URL}`, method: "post", data }); + }, + /** 修改字典 */ + update(id: string, data: DictForm) { + return request({ url: `${DICT_BASE_URL}/${id}`, method: "put", data }); + }, + /** 删除字典 */ + deleteByIds(ids: string) { + return request({ url: `${DICT_BASE_URL}/${ids}`, method: "delete" }); + }, + + /** 获取字典项分页列表 */ + getDictItemPage(dictCode: string, queryParams: DictItemPageQuery) { + return request>({ + url: `${DICT_BASE_URL}/${dictCode}/items/page`, + method: "get", + params: queryParams, + }); + }, + /** 获取字典项列表 */ + getDictItems(dictCode: string) { + return request({ + url: `${DICT_BASE_URL}/${dictCode}/items`, + method: "get", + }); + }, + /** 新增字典项 */ + createDictItem(dictCode: string, data: DictItemForm) { + return request({ url: `${DICT_BASE_URL}/${dictCode}/items`, method: "post", data }); + }, + /** 获取字典项表单数据 */ + getDictItemFormData(dictCode: string, id: string) { + return request({ + url: `${DICT_BASE_URL}/${dictCode}/items/${id}/form`, + method: "get", + }); + }, + /** 修改字典项 */ + updateDictItem(dictCode: string, id: string, data: DictItemForm) { + return request({ url: `${DICT_BASE_URL}/${dictCode}/items/${id}`, method: "put", data }); + }, + /** 删除字典项 */ + deleteDictItems(dictCode: string, ids: string) { + return request({ url: `${DICT_BASE_URL}/${dictCode}/items/${ids}`, method: "delete" }); + }, +}; + +export default DictAPI; + +export interface DictPageQuery extends PageQuery { + /** 搜索关键字 */ + keywords?: string; + /** 状态(1:启用;0:禁用) */ + status?: number; +} +export interface DictPageVO { + /** 字典ID */ + id: string; + /** 字典名称 */ + name: string; + /** 字典编码 */ + dictCode: string; + /** 状态(1:启用;0:禁用) */ + status: number; +} +export interface DictForm { + /** 字典ID(新增不填) */ + id?: string; + /** 字典名称 */ + name?: string; + /** 字典编码 */ + dictCode?: string; + /** 状态(1:启用;0:禁用) */ + status?: number; + /** 备注 */ + remark?: string; +} +export interface DictItemPageQuery extends PageQuery { + /** 搜索关键字 */ + keywords?: string; + /** 字典编码 */ + dictCode?: string; +} +export interface DictItemPageVO { + /** 字典项ID */ + id: string; + /** 字典编码 */ + dictCode: string; + /** 字典项值 */ + value: string; + /** 字典项标签 */ + label: string; + /** 状态(1:启用;0:禁用) */ + status: number; + /** 排序 */ + sort?: number; +} +export interface DictItemForm { + /** 字典项ID(新增不填) */ + id?: string; + /** 字典编码 */ + dictCode?: string; + /** 字典项值 */ + value?: string; + /** 字典项标签 */ + label?: string; + /** 状态(1:启用;0:禁用) */ + status?: number; + /** 排序 */ + sort?: number; + /** 标签类型 */ + tagType?: "success" | "warning" | "info" | "primary" | "danger" | ""; +} +export interface DictItemOption { + /** 值 */ + value: number | string; + /** 标签 */ + label: string; + /** 标签类型 */ + tagType?: "" | "success" | "info" | "warning" | "danger"; + [key: string]: any; +} diff --git a/src/api/system/dict.api.ts b/src/api/system/dict.api.ts deleted file mode 100644 index 0f8a4fd5..00000000 --- a/src/api/system/dict.api.ts +++ /dev/null @@ -1,310 +0,0 @@ -import request from "@/utils/request"; - -const DICT_BASE_URL = "/api/v1/dicts"; - -const DictAPI = { - //--------------------------------------------------- - // 字典相关接口 - //--------------------------------------------------- - - /** - * 字典分页列表 - * - * @param queryParams 查询参数 - * @returns 字典分页结果 - */ - getPage(queryParams: DictPageQuery) { - return request>({ - url: `${DICT_BASE_URL}/page`, - method: "get", - params: queryParams, - }); - }, - - /** - * 字典列表 - * - * @returns 字典列表 - */ - getList() { - return request({ - url: `${DICT_BASE_URL}`, - method: "get", - }); - }, - - /** - * 字典表单数据 - * - * @param id 字典ID - * @returns 字典表单数据 - */ - getFormData(id: string) { - return request({ - url: `${DICT_BASE_URL}/${id}/form`, - method: "get", - }); - }, - - /** - * 新增字典 - * - * @param data 字典表单数据 - */ - create(data: DictForm) { - return request({ - url: `${DICT_BASE_URL}`, - method: "post", - data, - }); - }, - - /** - * 修改字典 - * - * @param id 字典ID - * @param data 字典表单数据 - */ - update(id: string, data: DictForm) { - return request({ - url: `${DICT_BASE_URL}/${id}`, - method: "put", - data, - }); - }, - - /** - * 删除字典 - * - * @param ids 字典ID,多个以英文逗号(,)分隔 - */ - deleteByIds(ids: string) { - return request({ - url: `${DICT_BASE_URL}/${ids}`, - method: "delete", - }); - }, - - //--------------------------------------------------- - // 字典项相关接口 - //--------------------------------------------------- - /** - * 获取字典分页列表 - * - * @param queryParams 查询参数 - * @returns 字典分页结果 - */ - getDictItemPage(dictCode: string, queryParams: DictItemPageQuery) { - return request>({ - url: `${DICT_BASE_URL}/${dictCode}/items/page`, - method: "get", - params: queryParams, - }); - }, - - /** - * 获取字典项列表 - */ - getDictItems(dictCode: string) { - return request({ - url: `${DICT_BASE_URL}/${dictCode}/items`, - method: "get", - }); - }, - - /** - * 新增字典项 - */ - createDictItem(dictCode: string, data: DictItemForm) { - return request({ - url: `${DICT_BASE_URL}/${dictCode}/items`, - method: "post", - data, - }); - }, - - /** - * 获取字典项表单数据 - * - * @param id 字典项ID - * @returns 字典项表单数据 - */ - getDictItemFormData(dictCode: string, id: string) { - return request({ - url: `${DICT_BASE_URL}/${dictCode}/items/${id}/form`, - method: "get", - }); - }, - - /** - * 修改字典项 - */ - updateDictItem(dictCode: string, id: string, data: DictItemForm) { - return request({ - url: `${DICT_BASE_URL}/${dictCode}/items/${id}`, - method: "put", - data, - }); - }, - - /** - * 删除字典项 - */ - deleteDictItems(dictCode: string, ids: string) { - return request({ - url: `${DICT_BASE_URL}/${dictCode}/items/${ids}`, - method: "delete", - }); - }, -}; - -export default DictAPI; - -/** - * 字典查询参数 - */ -export interface DictPageQuery extends PageQuery { - /** - * 关键字(字典名称/编码) - */ - keywords?: string; - - /** - * 字典状态(1:启用,0:禁用) - */ - status?: number; -} - -/** - * 字典分页对象 - */ -export interface DictPageVO { - /** - * 字典ID - */ - id: string; - /** - * 字典名称 - */ - name: string; - /** - * 字典编码 - */ - dictCode: string; - /** - * 字典状态(1:启用,0:禁用) - */ - status: number; -} - -/** - * 字典 - */ -export interface DictForm { - /** - * 字典ID - */ - id?: string; - /** - * 字典名称 - */ - name?: string; - /** - * 字典编码 - */ - dictCode?: string; - /** - * 字典状态(1-启用,0-禁用) - */ - status?: number; - /** - * 备注 - */ - remark?: string; -} - -/** - * 字典查询参数 - */ -export interface DictItemPageQuery extends PageQuery { - /** 关键字(字典数据值/标签) */ - keywords?: string; - - /** 字典编码 */ - dictCode?: string; -} - -/** - * 字典分页对象 - */ -export interface DictItemPageVO { - /** - * 字典ID - */ - id: string; - /** - * 字典编码 - */ - dictCode: string; - /** - * 字典数据值 - */ - value: string; - /** - * 字典数据标签 - */ - label: string; - /** - * 状态(1:启用,0:禁用) - */ - status: number; - /** - * 字典排序 - */ - sort?: number; -} - -/** - * 字典 - */ -export interface DictItemForm { - /** - * 字典ID - */ - id?: string; - /** - * 字典编码 - */ - dictCode?: string; - /** - * 字典数据值 - */ - value?: string; - /** - * 字典数据标签 - */ - label?: string; - /** - * 状态(1:启用,0:禁用) - */ - status?: number; - /** - * 字典排序 - */ - sort?: number; - - /** - * 标签类型 - */ - tagType?: "success" | "warning" | "info" | "primary" | "danger" | ""; -} - -/** - * 字典项下拉选项 - */ -export interface DictItemOption { - value: number | string; - label: string; - tagType?: "" | "success" | "info" | "warning" | "danger"; - [key: string]: any; -} diff --git a/src/api/system/log.api.ts b/src/api/system/log-api.ts similarity index 78% rename from src/api/system/log.api.ts rename to src/api/system/log-api.ts index 402478ad..3e98698e 100644 --- a/src/api/system/log.api.ts +++ b/src/api/system/log-api.ts @@ -3,11 +3,7 @@ import request from "@/utils/request"; const LOG_BASE_URL = "/api/v1/logs"; const LogAPI = { - /** - * 获取日志分页列表 - * - * @param queryParams 查询参数 - */ + /** 获取日志分页列表 */ getPage(queryParams: LogPageQuery) { return request>({ url: `${LOG_BASE_URL}/page`, @@ -15,13 +11,7 @@ const LogAPI = { params: queryParams, }); }, - - /** - * 获取访问趋势 - * - * @param queryParams - * @returns - */ + /** 获取访问趋势 */ getVisitTrend(queryParams: VisitTrendQuery) { return request({ url: `${LOG_BASE_URL}/visit-trend`, @@ -29,36 +19,20 @@ const LogAPI = { params: queryParams, }); }, - - /** - * 获取访问统计 - * - * @param queryParams - * @returns - */ + /** 获取访问统计 */ getVisitStats() { - return request({ - url: `${LOG_BASE_URL}/visit-stats`, - method: "get", - }); + return request({ url: `${LOG_BASE_URL}/visit-stats`, method: "get" }); }, }; export default LogAPI; -/** - * 日志分页查询对象 - */ export interface LogPageQuery extends PageQuery { /** 搜索关键字 */ keywords?: string; /** 操作时间 */ createTime?: [string, string]; } - -/** - * 系统日志分页VO - */ export interface LogPageVO { /** 主键 */ id: string; @@ -83,8 +57,6 @@ export interface LogPageVO { /** 操作人 */ operator: string; } - -/** 访问趋势视图对象 */ export interface VisitTrendVO { /** 日期列表 */ dates: string[]; @@ -95,16 +67,12 @@ export interface VisitTrendVO { /** IP数 */ ipList: number[]; } - -/** 访问趋势查询参数 */ export interface VisitTrendQuery { /** 开始日期 */ startDate: string; /** 结束日期 */ endDate: string; } - -/** 访问统计 */ export interface VisitStatsVO { /** 今日访客数(UV) */ todayUvCount: number; diff --git a/src/api/system/menu.api.ts b/src/api/system/menu-api.ts similarity index 58% rename from src/api/system/menu.api.ts rename to src/api/system/menu-api.ts index 45f95b3c..4e55d077 100644 --- a/src/api/system/menu.api.ts +++ b/src/api/system/menu-api.ts @@ -1,41 +1,16 @@ import request from "@/utils/request"; -// 菜单基础URL const MENU_BASE_URL = "/api/v1/menus"; const MenuAPI = { - /** - * 获取当前用户的路由列表 - *

- * 无需传入角色,后端解析token获取角色自行判断是否拥有路由的权限 - * - * @returns 路由列表 - */ + /** 获取当前用户的路由列表 */ getRoutes() { - return request({ - url: `${MENU_BASE_URL}/routes`, - method: "get", - }); + return request({ url: `${MENU_BASE_URL}/routes`, method: "get" }); }, - - /** - * 获取菜单树形列表 - * - * @param queryParams 查询参数 - * @returns 菜单树形列表 - */ + /** 获取菜单树形列表 */ getList(queryParams: MenuQuery) { - return request({ - url: `${MENU_BASE_URL}`, - method: "get", - params: queryParams, - }); + return request({ url: `${MENU_BASE_URL}`, method: "get", params: queryParams }); }, - - /** - * 获取菜单下拉数据源 - * - * @returns 菜单下拉数据源 - */ + /** 获取菜单下拉数据源 */ getOptions(onlyParent?: boolean) { return request({ url: `${MENU_BASE_URL}/options`, @@ -43,73 +18,31 @@ const MenuAPI = { params: { onlyParent }, }); }, - - /** - * 获取菜单表单数据 - * - * @param id 菜单ID - */ + /** 获取菜单表单数据 */ getFormData(id: string) { - return request({ - url: `${MENU_BASE_URL}/${id}/form`, - method: "get", - }); + return request({ url: `${MENU_BASE_URL}/${id}/form`, method: "get" }); }, - - /** - * 添加菜单 - * - * @param data 菜单表单数据 - * @returns 请求结果 - */ + /** 新增菜单 */ create(data: MenuForm) { - return request({ - url: `${MENU_BASE_URL}`, - method: "post", - data, - }); + return request({ url: `${MENU_BASE_URL}`, method: "post", data }); }, - - /** - * 修改菜单 - * - * @param id 菜单ID - * @param data 菜单表单数据 - * @returns 请求结果 - */ + /** 修改菜单 */ update(id: string, data: MenuForm) { - return request({ - url: `${MENU_BASE_URL}/${id}`, - method: "put", - data, - }); + return request({ url: `${MENU_BASE_URL}/${id}`, method: "put", data }); }, - - /** - * 删除菜单 - * - * @param id 菜单ID - * @returns 请求结果 - */ + /** 删除菜单 */ deleteById(id: string) { - return request({ - url: `${MENU_BASE_URL}/${id}`, - method: "delete", - }); + return request({ url: `${MENU_BASE_URL}/${id}`, method: "delete" }); }, }; export default MenuAPI; -import type { MenuTypeEnum } from "@/enums/system/menu.enum"; - -/** 菜单查询参数 */ export interface MenuQuery { /** 搜索关键字 */ keywords?: string; } - -/** 菜单视图对象 */ +export type MenuTypeEnum = 0 | 1 | 2; export interface MenuVO { /** 子菜单 */ children?: MenuVO[]; @@ -133,13 +66,11 @@ export interface MenuVO { routePath?: string; /** 菜单排序(数字越小排名越靠前) */ sort?: number; - /** 菜单 */ + /** 菜单类型 */ type?: MenuTypeEnum; - /** 菜单是否可见(1:显示;0:隐藏) */ + /** 是否可见(1:显示;0:隐藏) */ visible?: number; } - -/** 菜单表单对象 */ export interface MenuForm { /** 菜单ID */ id?: string; @@ -147,7 +78,7 @@ export interface MenuForm { parentId?: string; /** 菜单名称 */ name?: string; - /** 菜单是否可见(1-是 0-否) */ + /** 是否可见(1-是 0-否) */ visible: number; /** ICON */ icon?: string; @@ -161,7 +92,7 @@ export interface MenuForm { component?: string; /** 跳转路由路径 */ redirect?: string; - /** 菜单 */ + /** 菜单类型 */ type?: MenuTypeEnum; /** 权限标识 */ perm?: string; @@ -169,16 +100,13 @@ export interface MenuForm { keepAlive?: number; /** 【目录】只有一个子路由是否始终显示 */ alwaysShow?: number; - /** 参数 */ + /** 其他参数 */ params?: KeyValue[]; } - interface KeyValue { key: string; value: string; } - -/** RouteVO,路由对象 */ export interface RouteVO { /** 子路由列表 */ children: RouteVO[]; @@ -193,8 +121,6 @@ export interface RouteVO { /** 跳转链接 */ redirect?: string; } - -/** Meta,路由属性 */ export interface Meta { /** 【目录】只有一个子路由是否始终显示 */ alwaysShow?: boolean; diff --git a/src/api/system/notice-api.ts b/src/api/system/notice-api.ts new file mode 100644 index 00000000..fbac939e --- /dev/null +++ b/src/api/system/notice-api.ts @@ -0,0 +1,121 @@ +import request from "@/utils/request"; + +const NOTICE_BASE_URL = "/api/v1/notices"; + +const NoticeAPI = { + /** 获取通知公告分页数据 */ + getPage(queryParams?: NoticePageQuery) { + return request>({ + url: `${NOTICE_BASE_URL}/page`, + method: "get", + params: queryParams, + }); + }, + /** 获取通知公告表单数据 */ + getFormData(id: string) { + return request({ url: `${NOTICE_BASE_URL}/${id}/form`, method: "get" }); + }, + /** 添加通知公告 */ + create(data: NoticeForm) { + return request({ url: `${NOTICE_BASE_URL}`, method: "post", data }); + }, + /** 更新通知公告 */ + update(id: string, data: NoticeForm) { + return request({ url: `${NOTICE_BASE_URL}/${id}`, method: "put", data }); + }, + /** 批量删除通知公告,多个以英文逗号(,)分割 */ + deleteByIds(ids: string) { + return request({ url: `${NOTICE_BASE_URL}/${ids}`, method: "delete" }); + }, + /** 发布通知 */ + publish(id: string) { + return request({ url: `${NOTICE_BASE_URL}/${id}/publish`, method: "put" }); + }, + /** 撤回通知 */ + revoke(id: string) { + return request({ url: `${NOTICE_BASE_URL}/${id}/revoke`, method: "put" }); + }, + /** 查看通知 */ + getDetail(id: string) { + return request({ url: `${NOTICE_BASE_URL}/${id}/detail`, method: "get" }); + }, + /** 全部已读 */ + readAll() { + return request({ url: `${NOTICE_BASE_URL}/read-all`, method: "put" }); + }, + /** 获取我的通知分页列表 */ + getMyNoticePage(queryParams?: NoticePageQuery) { + return request>({ + url: `${NOTICE_BASE_URL}/my-page`, + method: "get", + params: queryParams, + }); + }, +}; + +export default NoticeAPI; + +export interface NoticePageQuery extends PageQuery { + /** 标题 */ + title?: string; + /** 发布状态(0:草稿;1:已发布;2:已撤回) */ + publishStatus?: number; + /** 是否已读(1:是;0:否) */ + isRead?: number; +} +export interface NoticeForm { + /** 通知ID(新增不填) */ + id?: string; + /** 标题 */ + title?: string; + /** 内容 */ + content?: string; + /** 类型 */ + type?: number; + /** 优先级/级别 */ + level?: string; + /** 目标类型 */ + targetType?: number; + /** 目标用户ID(多个以英文逗号(,)分割) */ + targetUserIds?: string; +} +export interface NoticePageVO { + /** 通知ID */ + id: string; + /** 标题 */ + title?: string; + /** 内容 */ + content?: string; + /** 类型 */ + type?: number; + /** 发布人ID */ + publisherId?: bigint; + /** 优先级 */ + priority?: number; + /** 目标类型 */ + targetType?: number; + /** 发布状态 */ + publishStatus?: number; + /** 发布时间 */ + publishTime?: Date; + /** 撤回时间 */ + revokeTime?: Date; +} +export interface NoticeDetailVO { + /** 通知ID */ + id?: string; + /** 标题 */ + title?: string; + /** 内容 */ + content?: string; + /** 类型 */ + type?: number; + /** 发布人名称 */ + publisherName?: string; + /** 优先级/级别 */ + level?: string; + /** 发布时间 */ + publishTime?: Date; + /** 发布状态 */ + publishStatus?: number; +} diff --git a/src/api/system/notice.api.ts b/src/api/system/notice.api.ts deleted file mode 100644 index 471c5e7b..00000000 --- a/src/api/system/notice.api.ts +++ /dev/null @@ -1,199 +0,0 @@ -import request from "@/utils/request"; - -const NOTICE_BASE_URL = "/api/v1/notices"; - -const NoticeAPI = { - /** 获取通知公告分页数据 */ - getPage(queryParams?: NoticePageQuery) { - return request>({ - url: `${NOTICE_BASE_URL}/page`, - method: "get", - params: queryParams, - }); - }, - - /** - * 获取通知公告表单数据 - * - * @param id 通知 - * @returns 通知表单数据 - */ - getFormData(id: string) { - return request({ - url: `${NOTICE_BASE_URL}/${id}/form`, - method: "get", - }); - }, - - /** - * 添加通知公告 - * - * @param data 通知表单数据 - * @returns - */ - create(data: NoticeForm) { - return request({ - url: `${NOTICE_BASE_URL}`, - method: "post", - data, - }); - }, - - /** - * 更新通知公告 - * - * @param id 通知ID - * @param data 通知表单数据 - */ - update(id: string, data: NoticeForm) { - return request({ - url: `${NOTICE_BASE_URL}/${id}`, - method: "put", - data, - }); - }, - - /** - * 批量删除通知公告,多个以英文逗号(,)分割 - * - * @param ids 通知公告ID字符串,多个以英文逗号(,)分割 - */ - deleteByIds(ids: string) { - return request({ - url: `${NOTICE_BASE_URL}/${ids}`, - method: "delete", - }); - }, - - /** - * 发布通知 - * - * @param id 被发布的通知公告id - * @returns - */ - publish(id: string) { - return request({ - url: `${NOTICE_BASE_URL}/${id}/publish`, - method: "put", - }); - }, - - /** - * 撤回通知 - * - * @param id 撤回的通知id - * @returns - */ - revoke(id: string) { - return request({ - url: `${NOTICE_BASE_URL}/${id}/revoke`, - method: "put", - }); - }, - /** - * 查看通知 - * - * @param id - */ - getDetail(id: string) { - return request({ - url: `${NOTICE_BASE_URL}/${id}/detail`, - method: "get", - }); - }, - - /* 全部已读 */ - readAll() { - return request({ - url: `${NOTICE_BASE_URL}/read-all`, - method: "put", - }); - }, - - /** 获取我的通知分页列表 */ - getMyNoticePage(queryParams?: NoticePageQuery) { - return request>({ - url: `${NOTICE_BASE_URL}/my-page`, - method: "get", - params: queryParams, - }); - }, -}; - -export default NoticeAPI; - -/** 通知公告分页查询参数 */ -export interface NoticePageQuery extends PageQuery { - /** 标题 */ - title?: string; - /** 发布状态(0:未发布,1:已发布,-1:已撤回) */ - publishStatus?: number; - - isRead?: number; -} - -/** 通知公告表单对象 */ -export interface NoticeForm { - id?: string; - /** 通知标题 */ - title?: string; - /** 通知内容 */ - content?: string; - /** 通知类型 */ - type?: number; - /** 优先级(L:低,M:中,H:高) */ - level?: string; - /** 目标类型(1-全体 2-指定) */ - targetType?: number; - /** 目标ID合集,以,分割 */ - targetUserIds?: string; -} - -/** 通知公告分页对象 */ -export interface NoticePageVO { - id: string; - /** 通知标题 */ - title?: string; - /** 通知内容 */ - content?: string; - /** 通知类型 */ - type?: number; - /** 发布人 */ - publisherId?: bigint; - /** 优先级(0-低 1-中 2-高) */ - priority?: number; - /** 目标类型(0-全体 1-指定) */ - targetType?: number; - /** 发布状态(0-未发布 1已发布 2已撤回) */ - publishStatus?: number; - /** 发布时间 */ - publishTime?: Date; - /** 撤回时间 */ - revokeTime?: Date; -} - -export interface NoticeDetailVO { - /** 通知ID */ - id?: string; - - /** 通知标题 */ - title?: string; - - /** 通知内容 */ - content?: string; - - /** 通知类型 */ - type?: number; - - /** 发布人 */ - publisherName?: string; - - /** 优先级(L-低 M-中 H-高) */ - level?: string; - - /** 发布时间 */ - publishTime?: Date; - - /** 发布状态 */ - publishStatus?: number; -} diff --git a/src/api/system/role-api.ts b/src/api/system/role-api.ts new file mode 100644 index 00000000..bf713b99 --- /dev/null +++ b/src/api/system/role-api.ts @@ -0,0 +1,79 @@ +import request from "@/utils/request"; + +const ROLE_BASE_URL = "/api/v1/roles"; + +const RoleAPI = { + /** 获取角色分页数据 */ + getPage(queryParams?: RolePageQuery) { + return request>({ + url: `${ROLE_BASE_URL}/page`, + method: "get", + params: queryParams, + }); + }, + /** 获取角色下拉数据源 */ + getOptions() { + return request({ url: `${ROLE_BASE_URL}/options`, method: "get" }); + }, + /** 获取角色的菜单ID集合 */ + getRoleMenuIds(roleId: string) { + return request({ url: `${ROLE_BASE_URL}/${roleId}/menuIds`, method: "get" }); + }, + /** 分配菜单权限 */ + updateRoleMenus(roleId: string, data: number[]) { + return request({ url: `${ROLE_BASE_URL}/${roleId}/menus`, method: "put", data }); + }, + /** 获取角色表单数据 */ + getFormData(id: string) { + return request({ url: `${ROLE_BASE_URL}/${id}/form`, method: "get" }); + }, + /** 新增角色 */ + create(data: RoleForm) { + return request({ url: `${ROLE_BASE_URL}`, method: "post", data }); + }, + /** 更新角色 */ + update(id: string, data: RoleForm) { + return request({ url: `${ROLE_BASE_URL}/${id}`, method: "put", data }); + }, + /** 批量删除角色,多个以英文逗号(,)分割 */ + deleteByIds(ids: string) { + return request({ url: `${ROLE_BASE_URL}/${ids}`, method: "delete" }); + }, +}; + +export default RoleAPI; + +export interface RolePageQuery extends PageQuery { + /** 搜索关键字 */ + keywords?: string; +} +export interface RolePageVO { + /** 角色ID */ + id?: string; + /** 角色编码 */ + code?: string; + /** 角色名称 */ + name?: string; + /** 排序 */ + sort?: number; + /** 角色状态 */ + status?: number; + /** 创建时间 */ + createTime?: Date; + /** 修改时间 */ + updateTime?: Date; +} +export interface RoleForm { + /** 角色ID */ + id?: string; + /** 角色编码 */ + code?: string; + /** 数据权限 */ + dataScope?: number; + /** 角色名称 */ + name?: string; + /** 排序 */ + sort?: number; + /** 角色状态(1-正常;0-停用) */ + status?: number; +} diff --git a/src/api/system/role.api.ts b/src/api/system/role.api.ts deleted file mode 100644 index 6a822efb..00000000 --- a/src/api/system/role.api.ts +++ /dev/null @@ -1,138 +0,0 @@ -import request from "@/utils/request"; - -const ROLE_BASE_URL = "/api/v1/roles"; - -const RoleAPI = { - /** 获取角色分页数据 */ - getPage(queryParams?: RolePageQuery) { - return request>({ - url: `${ROLE_BASE_URL}/page`, - method: "get", - params: queryParams, - }); - }, - - /** 获取角色下拉数据源 */ - getOptions() { - return request({ - url: `${ROLE_BASE_URL}/options`, - method: "get", - }); - }, - /** - * 获取角色的菜单ID集合 - * - * @param roleId 角色ID - * @returns 角色的菜单ID集合 - */ - getRoleMenuIds(roleId: string) { - return request({ - url: `${ROLE_BASE_URL}/${roleId}/menuIds`, - method: "get", - }); - }, - - /** - * 分配菜单权限 - * - * @param roleId 角色ID - * @param data 菜单ID集合 - */ - updateRoleMenus(roleId: string, data: number[]) { - return request({ - url: `${ROLE_BASE_URL}/${roleId}/menus`, - method: "put", - data, - }); - }, - - /** - * 获取角色表单数据 - * - * @param id 角色ID - * @returns 角色表单数据 - */ - getFormData(id: string) { - return request({ - url: `${ROLE_BASE_URL}/${id}/form`, - method: "get", - }); - }, - - /** 添加角色 */ - create(data: RoleForm) { - return request({ - url: `${ROLE_BASE_URL}`, - method: "post", - data, - }); - }, - - /** - * 更新角色 - * - * @param id 角色ID - * @param data 角色表单数据 - */ - update(id: string, data: RoleForm) { - return request({ - url: `${ROLE_BASE_URL}/${id}`, - method: "put", - data, - }); - }, - - /** - * 批量删除角色,多个以英文逗号(,)分割 - * - * @param ids 角色ID字符串,多个以英文逗号(,)分割 - */ - deleteByIds(ids: string) { - return request({ - url: `${ROLE_BASE_URL}/${ids}`, - method: "delete", - }); - }, -}; - -export default RoleAPI; - -/** 角色分页查询参数 */ -export interface RolePageQuery extends PageQuery { - /** 搜索关键字 */ - keywords?: string; -} - -/** 角色分页对象 */ -export interface RolePageVO { - /** 角色ID */ - id?: string; - /** 角色编码 */ - code?: string; - /** 角色名称 */ - name?: string; - /** 排序 */ - sort?: number; - /** 角色状态 */ - status?: number; - /** 创建时间 */ - createTime?: Date; - /** 修改时间 */ - updateTime?: Date; -} - -/** 角色表单对象 */ -export interface RoleForm { - /** 角色ID */ - id?: string; - /** 角色编码 */ - code?: string; - /** 数据权限 */ - dataScope?: number; - /** 角色名称 */ - name?: string; - /** 排序 */ - sort?: number; - /** 角色状态(1-正常;0-停用) */ - status?: number; -} diff --git a/src/api/system/user.api.ts b/src/api/system/user-api.ts similarity index 100% rename from src/api/system/user.api.ts rename to src/api/system/user-api.ts diff --git a/src/components/LangSelect/index.vue b/src/components/LangSelect/index.vue index fab9e71c..3c366bcb 100644 --- a/src/components/LangSelect/index.vue +++ b/src/components/LangSelect/index.vue @@ -17,7 +17,7 @@