From 6d0796ae34d5f1e96a713035039ec21926de0b51 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=AB=98=E4=BA=91=E9=B9=8F?= Date: Wed, 26 Jun 2024 00:58:59 +0800 Subject: [PATCH] =?UTF-8?q?=E8=A7=92=E8=89=B2=E7=AE=A1=E7=90=86=E4=B8=8E?= =?UTF-8?q?=E6=9C=BA=E6=9E=84=E7=AE=A1=E7=90=86=E5=9F=BA=E7=A1=80=E5=8A=9F?= =?UTF-8?q?=E8=83=BD=E5=AE=9E=E7=8E=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ui/dasadmin/.env.development | 2 +- ui/dasadmin/package.json | 1 + ui/dasadmin/src/lang/common/en/management.ts | 1 + .../src/lang/common/zh-cn/management.ts | 1 + ui/dasadmin/src/layouts/backend/index.vue | 31 ++ ui/dasadmin/src/stores/adminInfo.ts | 1 + ui/dasadmin/src/stores/interface/index.ts | 1 + .../InstitutionalManagement.vue | 433 +++++++++++++++++- .../InstitutionalManagement/request.ts | 43 ++ .../backend/InstitutionalManagement/type.ts | 107 +++++ .../backend/RoleManagement/RoleManagement.vue | 181 +++++++- .../views/backend/RoleManagement/request.ts | 51 +++ .../src/views/backend/RoleManagement/type.ts | 87 +++- ui/dasadmin/src/views/backend/login.vue | 3 +- 14 files changed, 911 insertions(+), 32 deletions(-) create mode 100644 ui/dasadmin/src/views/backend/InstitutionalManagement/request.ts create mode 100644 ui/dasadmin/src/views/backend/RoleManagement/request.ts diff --git a/ui/dasadmin/.env.development b/ui/dasadmin/.env.development index e5be6802..fc20976f 100644 --- a/ui/dasadmin/.env.development +++ b/ui/dasadmin/.env.development @@ -5,7 +5,7 @@ ENV = 'development' VITE_BASE_PATH = './' # 代理配置(开发使用),必须在一行中 -VITE_APP_PROXY=[["/api","http://192.168.130.12:8080/api"]] +VITE_APP_PROXY=[["/api","http://192.168.109.195:8080/api"]] # 开发环境下跨域代理,请输入要跨域的api地址 - 尾部无需带'/' # VITE_PROXY_URL = 'http://localhost:8000' diff --git a/ui/dasadmin/package.json b/ui/dasadmin/package.json index 8344dd79..88722da6 100644 --- a/ui/dasadmin/package.json +++ b/ui/dasadmin/package.json @@ -16,6 +16,7 @@ "axios": "1.7.2", "countup.js": "2.8.0", "echarts": "5.5.0", + "element-china-area-data": "^6.1.0", "element-plus": "2.7.4", "esno": "4.7.0", "font-awesome": "4.7.0", diff --git a/ui/dasadmin/src/lang/common/en/management.ts b/ui/dasadmin/src/lang/common/en/management.ts index 02caf5bd..3e79f15d 100644 --- a/ui/dasadmin/src/lang/common/en/management.ts +++ b/ui/dasadmin/src/lang/common/en/management.ts @@ -2,4 +2,5 @@ export default{ search:'Search', add:'Add', 'Query roles by name':'Query roles by name', + 'Are you sure to delete this?':'Are you sure to delete this?' } \ No newline at end of file diff --git a/ui/dasadmin/src/lang/common/zh-cn/management.ts b/ui/dasadmin/src/lang/common/zh-cn/management.ts index f19e77c7..0df0c6d4 100644 --- a/ui/dasadmin/src/lang/common/zh-cn/management.ts +++ b/ui/dasadmin/src/lang/common/zh-cn/management.ts @@ -2,4 +2,5 @@ export default{ search:'搜索', add:'新增', 'Query roles by name':'按名称查询角色', + 'Are you sure to delete this?':'确定要删除吗?', } \ No newline at end of file diff --git a/ui/dasadmin/src/layouts/backend/index.vue b/ui/dasadmin/src/layouts/backend/index.vue index 00f853a9..25e87b19 100644 --- a/ui/dasadmin/src/layouts/backend/index.vue +++ b/ui/dasadmin/src/layouts/backend/index.vue @@ -24,6 +24,7 @@ import { useEventListener } from '@vueuse/core' import { BEFORE_RESIZE_LAYOUT } from '/@/stores/constant/cacheKey' import { isEmpty } from 'lodash-es' import { setNavTabsWidth } from '/@/utils/layout' +import { id } from 'element-plus/es/locales.mjs' defineOptions({ components: { Default, Classic, Streamline, Double }, @@ -97,6 +98,36 @@ const menu = [ keepalive: 0, extend: 'none', children: [ + { + id: 99, + pid: 98, + type: 'menu', + title: '角色管理', + name: 'auth\/RoleManagement', + path: 'auth\/RoleManagement', + icon: 'fa fa-group', + menu_type: 'tab', + url: '', + component: '\/src\/views\/backend\/RoleManagement\/RoleManagement.vue', + keepalive: 'auth\/RoleManagement', + extend: 'none', + children: [], + }, + { + id: 97, + pid: 96, + type: 'menu', + title: '机构管理', + name: 'auth\/InstitutionalManagement', + path: 'auth\/InstitutionalManagement', + icon: 'fa fa-group', + menu_type: 'tab', + url: '', + component: '\/src\/views\/backend\/InstitutionalManagement\/InstitutionalManagement.vue', + keepalive: 'auth\/InstitutionalManagement', + extend: 'none', + children: [], + }, { id: 3, pid: 2, diff --git a/ui/dasadmin/src/stores/adminInfo.ts b/ui/dasadmin/src/stores/adminInfo.ts index e0ff9404..73b04382 100644 --- a/ui/dasadmin/src/stores/adminInfo.ts +++ b/ui/dasadmin/src/stores/adminInfo.ts @@ -14,6 +14,7 @@ export const useAdminInfo = defineStore('adminInfo', { refresh_token: '', // 是否是superAdmin,用于判定是否显示终端按钮等,不做任何权限判断 super: false, + orgid:0 } }, actions: { diff --git a/ui/dasadmin/src/stores/interface/index.ts b/ui/dasadmin/src/stores/interface/index.ts index e2757940..681ddf4b 100644 --- a/ui/dasadmin/src/stores/interface/index.ts +++ b/ui/dasadmin/src/stores/interface/index.ts @@ -54,6 +54,7 @@ export interface AdminInfo { token: string refresh_token: string super: boolean + orgid:number } export interface UserInfo { diff --git a/ui/dasadmin/src/views/backend/InstitutionalManagement/InstitutionalManagement.vue b/ui/dasadmin/src/views/backend/InstitutionalManagement/InstitutionalManagement.vue index 2208aecf..6d482ee1 100644 --- a/ui/dasadmin/src/views/backend/InstitutionalManagement/InstitutionalManagement.vue +++ b/ui/dasadmin/src/views/backend/InstitutionalManagement/InstitutionalManagement.vue @@ -1,24 +1,82 @@ diff --git a/ui/dasadmin/src/views/backend/InstitutionalManagement/request.ts b/ui/dasadmin/src/views/backend/InstitutionalManagement/request.ts new file mode 100644 index 00000000..5686334e --- /dev/null +++ b/ui/dasadmin/src/views/backend/InstitutionalManagement/request.ts @@ -0,0 +1,43 @@ +import createAxios from '/@/utils/axios' +import { getDataType, addDataType, changeDataType, delDataType, getDataReturnType, operateDataReturnType, getTreeDataType,getTreeDataReturnType } from './type' + +export const getInstitutionalListReq = (data: getDataType) => { + return createAxios>({ + url: '/api/org/query', + method: 'post', + data: data, + }) +} + +export const addInstitutionalListReq = (data: addDataType) => { + return createAxios({ + url: '/api/org/add', + method: 'post', + data: data, + }) +} + +export const changeInstitutionalListReq = (data: changeDataType) => { + return createAxios({ + url: '/api/org/update', + method: 'post', + data: data, + }) +} + +export const delInstitutionalListReq = (data: delDataType) => { + return createAxios({ + url: '/api/org/delete', + method: 'post', + data: data, + }) +} + +export const getInstitutionalTreeListReq = (data: getTreeDataType) => { + console.log(data); + return createAxios>({ + url: '/api/org/list', + method: 'post', + data: data, + }) +} diff --git a/ui/dasadmin/src/views/backend/InstitutionalManagement/type.ts b/ui/dasadmin/src/views/backend/InstitutionalManagement/type.ts index e69de29b..0097293a 100644 --- a/ui/dasadmin/src/views/backend/InstitutionalManagement/type.ts +++ b/ui/dasadmin/src/views/backend/InstitutionalManagement/type.ts @@ -0,0 +1,107 @@ +export type getDataType = { + name?: string | null + parentOrgId?: string + province?: string + city?: string + county?: string +} +export type getDataReturnType = Promise<{ + code: number + msg: string + rows: T[] + total: number +}> + +export enum addDataEnum { + mrid = '机构编码', + name = '机构名称', + aliasName = '机构简称', + province = '机构省份', + city = '机构城市', + county = '机构区县', + address = '详细地址', + contactPhone = '联系电话', + remarks = '备注', + parentOrgId = '上级机构', +} +export type addDataEnumKeyJointType = keyof typeof addDataEnum +export type formItemListType = { + type: 'input' | 'select' | 'custom' + prop: T + label: (typeof addDataEnum)[T] + placeholder: `请输入${(typeof addDataEnum)[T]}` | `请选择${(typeof addDataEnum)[T]}` + rules: + | [{ required: boolean; message: `请输入${(typeof addDataEnum)[T]}` | `请选择${(typeof addDataEnum)[T]}`; trigger: 'blur' | 'change' }] + | [{ required?: boolean; validator: (rule: any, value: any, callback: any) => void; trigger: 'blur' | 'change' }] +} +export type selectDataType = { + label: string + value: string + children?: selectDataType[] +} +export type addDataType = { + mrid: string + name: string + aliasName: string + province: string + city: string + county: string + address: string + contactPhone: string + remarks: string + parentOrgId: number | null + revision: number +} + +export type changeDataType = { + id: string + mrid: string + name: string + aliasName: string + province: string + city: string + county: string + address: string + contactPhone: string + remarks: string + parentOrgId: number + revision: number +} +export type operateDataReturnType = Promise<{ + code: number + msg: string + success: boolean + data?: T +}> + +export type delDataType = { + id: string +} +export type getTreeDataType = { + parentOrgId: number|string + recursive: boolean +} + +export type tableColumnType = { + key: string + prop: T + label: (typeof addDataEnum)[T] + fixed?: boolean + align?: 'left' | 'center' | 'right' +} + +export type getTreeDataReturnType = { + address: string + children?: getTreeDataReturnType[] + city: string + contactPhone: string + county: string + id: string + mrid: string + name: string + parentOrgId: number + province: string + remarks: string + revision: number + isLeaf?:boolean +} diff --git a/ui/dasadmin/src/views/backend/RoleManagement/RoleManagement.vue b/ui/dasadmin/src/views/backend/RoleManagement/RoleManagement.vue index 64427e65..62d34dfc 100644 --- a/ui/dasadmin/src/views/backend/RoleManagement/RoleManagement.vue +++ b/ui/dasadmin/src/views/backend/RoleManagement/RoleManagement.vue @@ -1,5 +1,32 @@ diff --git a/ui/dasadmin/src/views/backend/RoleManagement/request.ts b/ui/dasadmin/src/views/backend/RoleManagement/request.ts new file mode 100644 index 00000000..4de6d48b --- /dev/null +++ b/ui/dasadmin/src/views/backend/RoleManagement/request.ts @@ -0,0 +1,51 @@ +import createAxios from '/@/utils/axios' +import { + roleListReturnType, + roleListReturnDataType, + getDataType, + getDataReturnType, + changeDataType, + changeDataReturnType, + addDataType, + addDataReturnType, + delDataType, + authorityDataListType +} from './type' +export const getRoleListReq = (params: getDataType) => { + return createAxios>({ + url: '/api/role/query', + method: 'post', + data: params, + }) +} + +export const changeRoleListReq = (params: changeDataType) => { + return createAxios>({ + url: '/api/role/update', + method: 'post', + data: params, + }) +} + +export const addRoleListReq = (params: addDataType) => { + return createAxios>({ + url: '/api/role/add', + method: 'post', + data: params, + }) +} + +export const delRoleListReq = (params: delDataType) => { + return createAxios>({ + url: '/api/role/delete', + method: 'post', + data: params, + }) +} + +export const getAllRoleListReq = () => { + return createAxios>({ + url: '/api/authority/query', + method: 'post', + }) +} diff --git a/ui/dasadmin/src/views/backend/RoleManagement/type.ts b/ui/dasadmin/src/views/backend/RoleManagement/type.ts index bf39ba59..397981bb 100644 --- a/ui/dasadmin/src/views/backend/RoleManagement/type.ts +++ b/ui/dasadmin/src/views/backend/RoleManagement/type.ts @@ -1,19 +1,92 @@ -export enum roleDataEnum { +export enum formDataEnum { + id = '系统角色id', + authList = '角色权限', roleName = '角色名称', roleCode = '角色编码', - remark = '备注', } -export type roleTableDataKeyType = keyof typeof roleDataEnum + +export type formDataType = { + id: string + authList: number[] + roleName: string + roleCode: string +} +export type formDataEnumKeyJointType = keyof typeof formDataEnum + +export type formColumnListType = { + key?: string + label: (typeof formDataEnum)[T] + prop: T + type: 'input' | 'custom' + fixed?: boolean + align?: 'center' | 'left' | 'right' + rule: + | [{ required: true; message: string; trigger: 'blur' | 'change' }] + | [{ validator: (rule: any, value: any, callback: any) => void; trigger: 'blur' | 'change' }] +} export type tableDataType = { - roleName: string + createdTime?: string + id: string + revision: number roleCode: number - remark: string + roleName: string + updatedTime?: string } -export type tableColumnType = { + +export type tableColumnType = { key: string prop: T - label: (typeof roleDataEnum)[T] + label: (typeof formDataEnum)[T] fixed?: boolean align?: 'left' | 'center' | 'right' } + +export type authorityDataListType = { + authorityCode: string + authorityName: string + id: string + revision: number +} + +export type roleListReturnType = Promise<{ + code: number + msg: string + rows: T[] + total: number +}> +export type roleListReturnDataType = Promise<{ + code: number + msg: string + data: T[] + success: boolean +}> +export type getDataType = { + roleName: string +} + +export type getDataReturnType = { + createdTime: string + id: string + revision: number + roleCode: number + roleName: string + updatedTime: string +} + +export type changeDataType = Omit + +export type changeDataReturnType = { + authList: number[] + id: string + roleCode: string + roleName: string +} +export type addDataType = Omit + +export type addDataReturnType = changeDataReturnType + +export type delDataType = { + id: string +} + diff --git a/ui/dasadmin/src/views/backend/login.vue b/ui/dasadmin/src/views/backend/login.vue index efa20464..e8929593 100644 --- a/ui/dasadmin/src/views/backend/login.vue +++ b/ui/dasadmin/src/views/backend/login.vue @@ -183,7 +183,7 @@ const onSubmit = () => { state.submitLoading = true login(form) .then((res) => { - if (res.code == 200) { + if (res.code == 200) { adminInfo.dataFill({ id: res.data.sysUser.id, username: res.data.sysUser.account, @@ -194,6 +194,7 @@ const onSubmit = () => { refresh_token: res.data.refershToken, // 是否是superAdmin,用于判定是否显示终端按钮等,不做任何权限判断 super: false, + orgid:res.data.sysUser.orgId }) router.push({ path: adminBaseRoutePath }) } else {