diff --git a/web/.env b/web/.env index 6bc4ce9..1ba2849 100644 --- a/web/.env +++ b/web/.env @@ -1,5 +1,5 @@ # port 端口号 -VITE_PORT = 8080 +VITE_PORT = 8085 # open 运行 npm run dev 时自动打开浏览器 VITE_OPEN = false diff --git a/web/src/App.vue b/web/src/App.vue index 43ac106..83d312a 100644 --- a/web/src/App.vue +++ b/web/src/App.vue @@ -1,5 +1,6 @@ + @@ -9,7 +10,7 @@ diff --git a/web/src/views/system/dept/api.ts b/web/src/views/system/dept/api.ts index 29254ea..3ea5a6e 100644 --- a/web/src/views/system/dept/api.ts +++ b/web/src/views/system/dept/api.ts @@ -1,7 +1,8 @@ import { request } from '/@/utils/service'; -import { UserPageQuery, AddReq, DelReq, EditReq, InfoReq } from '@fast-crud/fast-crud'; +import { UserPageQuery, AddReq, DelReq, EditReq, InfoReq, PageQuery } from '@fast-crud/fast-crud'; export const apiPrefix = '/api/system/dept/'; + export function GetList(query: UserPageQuery) { return request({ url: apiPrefix, @@ -9,6 +10,7 @@ export function GetList(query: UserPageQuery) { params: query, }); } + export function GetObj(id: InfoReq) { return request({ url: apiPrefix + id, @@ -32,11 +34,10 @@ export function UpdateObj(obj: EditReq) { }); } -export function DelObj(obj: DelReq) { +export function DelObj(id: string) { return request({ - url: apiPrefix + obj.id + '/', - method: 'delete', - data: obj, + url: apiPrefix + id + '/', + method: 'delete' }); } @@ -47,3 +48,14 @@ export function lazyLoadDept(query: UserPageQuery) { params: query, }); } + +/** + * 用户相关接口 + */ +export function getUserDeptList(query: PageQuery) { + return request({ + url: "/api/system/dept/dept_lazy_tree/", + method: 'get', + params: query, + }); +} diff --git a/web/src/views/system/dept/components/FormCom.vue b/web/src/views/system/dept/components/FormCom.vue new file mode 100644 index 0000000..3f805db --- /dev/null +++ b/web/src/views/system/dept/components/FormCom.vue @@ -0,0 +1,88 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + 保存 + 取消 + + + + + + + + + \ No newline at end of file diff --git a/web/src/views/system/dept/components/TreeCom.vue b/web/src/views/system/dept/components/TreeCom.vue new file mode 100644 index 0000000..95049b4 --- /dev/null +++ b/web/src/views/system/dept/components/TreeCom.vue @@ -0,0 +1,251 @@ + + + + + + + + 部门架构 + showTotalNum = !showTotalNum" class="tc-head-icon"> + + + + + + + + + + {{ node.label }} + (10人) + + + {{ node.label }} + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/web/src/views/system/dept/index.vue b/web/src/views/system/dept/index.vue index 4b99b95..5bdb014 100644 --- a/web/src/views/system/dept/index.vue +++ b/web/src/views/system/dept/index.vue @@ -1,308 +1,231 @@ - - - - - 部门列表 - - - - {{ node.label }} - {{ node.label }} - - - - - - - - - 部门配置 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + - - - 保存 - 新建 - - 添加子级 - - - 添加同级 - - 删除部门 - - - - - - - - - + + + + + 部门配置 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 保存 + 新建 + + 删除部门 + + + + + + + + + + + + + + \ No newline at end of file diff --git a/web/src/views/system/dept/types.ts b/web/src/views/system/dept/types.ts new file mode 100644 index 0000000..a1ef5c6 --- /dev/null +++ b/web/src/views/system/dept/types.ts @@ -0,0 +1,52 @@ +export interface TreeType { + id: number; + name: string; + status: boolean; + children?: TreeType[]; +} + +export interface APIResponseData { + code?: number; + data: []; + msg?: string; +} + +export interface FormType { + [key: string]: T; +} + +export interface TreeItemType { + id?: number; + modifier_name?: string; + creator_name?: string; + create_datetime?: string; + update_datetime?: string; + parent_name?: string; + status_label?: string; + has_children?: number; + hasChild?: false, + description?: string; + modifier?: string; + dept_belong_id?: string; + name?: string; + key?: string; + sort?: number; + owner?: string; + phone?: string; + email?: string; + status?: boolean; + creator?: number; + parent?: number; +} + +export interface DeptFormDataType { + id: string; + key: string; + parent: string; + name: string; + owner: string; + phone: string; + email: string; + sort: number; + is_catalog?: boolean; +} \ No newline at end of file diff --git a/web/src/views/system/menu/index.vue b/web/src/views/system/menu/index.vue index 8e3c783..8fd3e37 100644 --- a/web/src/views/system/menu/index.vue +++ b/web/src/views/system/menu/index.vue @@ -1,6 +1,6 @@ - + @@ -17,9 +17,9 @@ - + @@ -30,7 +30,6 @@ {{ node.label }} - @@ -146,10 +145,10 @@ import XEUtils from 'xe-utils'; import { ElForm, ElTree, FormRules, ElMessageBox } from 'element-plus'; import { getElementLabelLine } from "element-tree-line"; import * as api from './api'; -import { Search } from '@element-plus/icons-vue' +import { Search } from '@element-plus/icons-vue'; import { errorMessage, successMessage, warningMessage } from '../../../utils/message'; -import { FormTypes, TreeTypes, APIResponseData, ComponentFileItem } from './types' -import type Node from 'element-plus/es/components/tree/src/model/node' +import { FormTypes, TreeTypes, APIResponseData, ComponentFileItem } from './types'; +import type Node from 'element-plus/es/components/tree/src/model/node'; const menuButton = defineAsyncComponent(() => import('./components/menuButton/index.vue')); const IconSelector = defineAsyncComponent(() => import('/@/components/iconSelector/index.vue')); @@ -399,7 +398,7 @@ onMounted(() => {
部门列表