From cf24d080e520fcb56738215a846519bc70c39ba9 Mon Sep 17 00:00:00 2001 From: horizons <1490493387@qq.com> Date: Fri, 21 Oct 2022 00:59:49 +0800 Subject: [PATCH] =?UTF-8?q?refactor:=20=E6=9D=83=E9=99=90=E7=B3=BB?= =?UTF-8?q?=E7=BB=9F=E6=A8=A1=E5=9D=97=E9=87=8D=E6=9E=84=E5=AE=8C=E6=88=90?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Former-commit-id: b33078bfbfea309af518cfab41080d0fea819491 --- src/api/dept.ts | 14 +- src/api/dict.ts | 75 ++- src/main.ts | 4 +- src/permission.ts | 2 +- src/store/modules/user.ts | 7 +- src/types/api/dept.d.ts | 2 +- src/types/api/dict.d.ts | 2 +- src/views/system/dept/index.vue | 17 +- src/views/system/dict/components/DictItem.vue | 8 +- src/views/system/dict/components/DictType.vue | 16 +- src/views/system/dict/index.vue | 6 +- src/views/system/menu/components/Menu.vue | 465 ---------------- src/views/system/menu/components/Perm.vue | 403 -------------- src/views/system/menu/index.vue | 526 ++++++++++++++++-- src/views/system/role/index.vue | 16 +- src/views/system/user/index.vue | 3 +- 16 files changed, 576 insertions(+), 990 deletions(-) delete mode 100644 src/views/system/menu/components/Menu.vue delete mode 100644 src/views/system/menu/components/Perm.vue diff --git a/src/api/dept.ts b/src/api/dept.ts index 61f1dee1..d047c0c3 100644 --- a/src/api/dept.ts +++ b/src/api/dept.ts @@ -12,7 +12,7 @@ export function listDepartments( queryParams?: DeptQueryParam ): AxiosPromise { return request({ - url: '/youlai-system/api/v1/depts', + url: '/youlai-system/api/v1/dept', method: 'get', params: queryParams }); @@ -23,7 +23,7 @@ export function listDepartments( */ export function listDeptOptions(): AxiosPromise { return request({ - url: '/youlai-system/api/v1/depts/options', + url: '/youlai-system/api/v1/dept/options', method: 'get' }); } @@ -33,9 +33,9 @@ export function listDeptOptions(): AxiosPromise { * * @param id */ -export function getDeptDetail(id: string): AxiosPromise { +export function getDeptForm(id: string): AxiosPromise { return request({ - url: '/youlai-system/api/v1/depts/' + id, + url: '/youlai-system/api/v1/dept/' + id + '/form', method: 'get' }); } @@ -47,7 +47,7 @@ export function getDeptDetail(id: string): AxiosPromise { */ export function addDept(data: DeptFormData) { return request({ - url: '/youlai-system/api/v1/depts', + url: '/youlai-system/api/v1/dept', method: 'post', data: data }); @@ -61,7 +61,7 @@ export function addDept(data: DeptFormData) { */ export function updateDept(id: string, data: DeptFormData) { return request({ - url: '/youlai-system/api/v1/depts/' + id, + url: '/youlai-system/api/v1/dept/' + id, method: 'put', data: data }); @@ -74,7 +74,7 @@ export function updateDept(id: string, data: DeptFormData) { */ export function deleteDept(ids: string) { return request({ - url: '/youlai-system/api/v1/depts/' + ids, + url: '/youlai-system/api/v1/dept/' + ids, method: 'delete' }); } diff --git a/src/api/dict.ts b/src/api/dict.ts index dbcf5bec..4dccbcf0 100644 --- a/src/api/dict.ts +++ b/src/api/dict.ts @@ -1,6 +1,6 @@ import { Option } from '@/types/common'; import { - DictFormTypeData, + DictTypeFormData, DictItemFormData, DictItemPageResult, DictItemQueryParam, @@ -11,28 +11,28 @@ import request from '@/utils/request'; import { AxiosPromise } from 'axios'; /** - * 获取字典分页列表 + * 获取字典类型分页列表 * * @param queryParams */ -export function listPageDictTypes( +export function listDictTypePages( queryParams: DictQueryParam ): AxiosPromise { return request({ - url: '/youlai-system/api/v1/dict-types', + url: '/youlai-system/api/v1/dict/types/pages', method: 'get', params: queryParams }); } /** - * 获取字典详情 + * 获取字典类型表单数据 * * @param id */ -export function getDictFormData(id: number): AxiosPromise { +export function getDictTypeForm(id: number): AxiosPromise { return request({ - url: '/youlai-system/api/v1/dict-types/' + id + '/form_data', + url: '/youlai-system/api/v1/dict/types/' + id + '/form', method: 'get' }); } @@ -42,9 +42,9 @@ export function getDictFormData(id: number): AxiosPromise { * * @param data */ -export function addDictType(data: DictFormTypeData) { +export function addDictType(data: DictTypeFormData) { return request({ - url: '/youlai-system/api/v1/dict-types', + url: '/youlai-system/api/v1/dict/types', method: 'post', data: data }); @@ -56,64 +56,59 @@ export function addDictType(data: DictFormTypeData) { * @param id * @param data */ -export function updateDictType(id: number, data: DictFormTypeData) { +export function updateDictType(id: number, data: DictTypeFormData) { return request({ - url: '/youlai-system/api/v1/dict-types/' + id, + url: '/youlai-system/api/v1/dict/types/' + id, method: 'put', data: data }); } /** - * 批量删除字典类型 - * - * @param ids 字典类型ID,多个以英文逗号(,)分割 + * 删除字典类型 */ export function deleteDictTypes(ids: string) { return request({ - url: '/youlai-system/api/v1/dict-types/' + ids, + url: '/youlai-system/api/v1/dict/types/' + ids, method: 'delete' }); } /** - * 获取字典项分页列表 + * 获取字典类型的数据项 * - * @param queryParams + * @param typeCode 字典类型编码 */ -export function listPageDictItems( +export function listDictItemsByTypeCode( + typeCode: string +): AxiosPromise { + return request({ + url: '/youlai-system/api/v1/dict/types/' + typeCode + '/items', + method: 'get' + }); +} + +/** + * 获取字典项分页列表 + */ +export function listDictItemPages( queryParams: DictItemQueryParam ): AxiosPromise { return request({ - url: '/youlai-system/api/v1/dict-items', + url: '/youlai-system/api/v1/dict/items/pages', method: 'get', params: queryParams }); } /** - * 根据字典类型编码获取字典数据项 - * - * @param typeCode 字典类型编码 - */ -export function getDictItemsByTypeCode( - typeCode: string -): AxiosPromise { - return request({ - url: '/youlai-system/api/v1/dict-items/select_list', - method: 'get', - params: { typeCode: typeCode } - }); -} - -/** - * 获取字典数据项表单 + * 获取字典数据项表单数据 * * @param id */ export function getDictItemData(id: number): AxiosPromise { return request({ - url: '/youlai-system/api/v1/dict-items/' + id + '/form_data', + url: '/youlai-system/api/v1/dict/items/' + id + '/form', method: 'get' }); } @@ -123,9 +118,9 @@ export function getDictItemData(id: number): AxiosPromise { * * @param data */ -export function addDictItem(data: DictItemFormData) { +export function saveDictItem(data: DictItemFormData) { return request({ - url: '/youlai-system/api/v1/dict-items', + url: '/youlai-system/api/v1/dict/items', method: 'post', data: data }); @@ -139,7 +134,7 @@ export function addDictItem(data: DictItemFormData) { */ export function updateDictItem(id: number, data: DictItemFormData) { return request({ - url: '/youlai-system/api/v1/dict-items/' + id, + url: '/youlai-system/api/v1/dict/items/' + id, method: 'put', data: data }); @@ -152,7 +147,7 @@ export function updateDictItem(id: number, data: DictItemFormData) { */ export function deleteDictItems(ids: string) { return request({ - url: '/youlai-system/api/v1/dict-items/' + ids, + url: '/youlai-system/api/v1/dict/items/' + ids, method: 'delete' }); } diff --git a/src/main.ts b/src/main.ts index 56afc412..30cbd753 100644 --- a/src/main.ts +++ b/src/main.ts @@ -21,7 +21,7 @@ import i18n from '@/lang/index'; import '@/styles/index.scss'; // 根据字典编码获取字典列表全局方法 -import { getDictItemsByTypeCode } from '@/api/dict'; +import { listDictItemsByTypeCode } from '@/api/dict'; const app = createApp(App); @@ -33,7 +33,7 @@ Object.keys(directive).forEach(key => { }); // 全局方法 -app.config.globalProperties.$getDictItemsByTypeCode = getDictItemsByTypeCode; +app.config.globalProperties.$listDictItemsByTypeCode = listDictItemsByTypeCode; // 注册全局组件 app diff --git a/src/permission.ts b/src/permission.ts index cc783240..c0d078af 100644 --- a/src/permission.ts +++ b/src/permission.ts @@ -28,7 +28,7 @@ router.beforeEach(async (to, from, next) => { } else { try { await user.getUserInfo(); - const roles = user.roles || ['ROOT']; + const roles = user.roles; const accessRoutes: any = await permission.generateRoutes(roles); accessRoutes.forEach((route: any) => { router.addRoute(route); diff --git a/src/store/modules/user.ts b/src/store/modules/user.ts index f87e7685..ecdc3ca6 100644 --- a/src/store/modules/user.ts +++ b/src/store/modules/user.ts @@ -74,7 +74,10 @@ const useUserStore = defineStore({ * 注销 */ logout() { - return new Promise((resolve, reject) => { + localStorage.remove('token'); + this.RESET_STATE(); + + /* return new Promise((resolve, reject) => { logout() .then(() => { localStorage.remove('token'); @@ -85,7 +88,7 @@ const useUserStore = defineStore({ .catch(error => { reject(error); }); - }); + }); */ }, /** diff --git a/src/types/api/dept.d.ts b/src/types/api/dept.d.ts index cd19d867..82e7cd11 100644 --- a/src/types/api/dept.d.ts +++ b/src/types/api/dept.d.ts @@ -2,7 +2,7 @@ * 部门查询参数类型声明 */ export interface DeptQueryParam { - name: string | undefined; + keywords: string | undefined; status: number | undefined; } diff --git a/src/types/api/dict.d.ts b/src/types/api/dict.d.ts index 6362bd37..3f781b60 100644 --- a/src/types/api/dict.d.ts +++ b/src/types/api/dict.d.ts @@ -29,7 +29,7 @@ export type DictPageResult = PageResult; /** * 字典表单类型声明 */ -export interface DictFormTypeData { +export interface DictTypeFormData { id: number | undefined; name: string; code: string; diff --git a/src/views/system/dept/index.vue b/src/views/system/dept/index.vue index 2e408c43..2f0e4da8 100644 --- a/src/views/system/dept/index.vue +++ b/src/views/system/dept/index.vue @@ -10,7 +10,7 @@ import { onMounted, reactive, ref, toRefs } from 'vue'; // API依赖 import { - getDeptDetail, + getDeptForm, deleteDept, updateDept, addDept, @@ -131,7 +131,7 @@ async function handleUpdate(row: any) { title: '修改部门', visible: true }; - getDeptDetail(deptId).then((response: any) => { + getDeptForm(deptId).then((response: any) => { state.formData = response.data; }); } @@ -214,9 +214,9 @@ onMounted(() => { - + @@ -254,15 +254,18 @@ onMounted(() => { @selection-change="handleSelectionChange" > - - + + - + + + +