From e349bdbecfa1faf853c82542f71b695d9504e031 Mon Sep 17 00:00:00 2001 From: zhaoyz <11@22.com> Date: Thu, 25 Apr 2024 19:06:30 +0800 Subject: [PATCH] =?UTF-8?q?=E8=A7=92=E8=89=B2=E7=AE=A1=E7=90=86=E5=92=8C?= =?UTF-8?q?=E8=BF=9C=E7=A8=8B=E8=BF=9E=E6=8E=A5=E6=97=B6=E9=97=B4=E6=A0=BC?= =?UTF-8?q?=E5=BC=8F=E9=94=99=E8=AF=AF=E4=BF=AE=E5=A4=8D?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/api/role.ts | 26 ++- .../permissions-manage/form/role-form.vue | 78 ++++--- src/views/permissions-manage/menu-manage.vue | 39 ++-- src/views/permissions-manage/role-manage.vue | 204 ++++++++++-------- .../remote-manage/part/remote-dialog.vue | 2 +- 5 files changed, 197 insertions(+), 152 deletions(-) diff --git a/src/api/role.ts b/src/api/role.ts index 592092f..61b1530 100644 --- a/src/api/role.ts +++ b/src/api/role.ts @@ -1,13 +1,27 @@ -import {getData} from "@/utils/request"; +import request, {getData} from "@/utils/request"; -const getRoleListUrl = '/admin/role/list' +const getRoleListUrl = '/admin/role/page'; +const roleUrl = "/admin/role"; -export function getRoleList() { +export function getRoleList(current: number, size: number, name?: string) { return new Promise((resolve, reject) => { - getData(getRoleListUrl).then((res: any) => { + const params: any[] = ["current=" + current, "size=" + size]; + if (name) params.push("roleName=" + name); + getData(getRoleListUrl + "?" + params.join("&")).then((res: any) => { resolve(res.data) }).catch(error => { - reject(error) + resolve(error) }) }) -} \ No newline at end of file +} + +export function addRole(role: any) { + return new Promise((resolve, reject) => { + request.postForm(roleUrl, role).then((res: any) => { + resolve(res.data); + }).catch(err => { + resolve(err); + }) + }) +} + diff --git a/src/views/permissions-manage/form/role-form.vue b/src/views/permissions-manage/form/role-form.vue index b682097..ebb3790 100644 --- a/src/views/permissions-manage/form/role-form.vue +++ b/src/views/permissions-manage/form/role-form.vue @@ -3,19 +3,16 @@ - - + + - - + + - - +
-
@@ -32,49 +29,51 @@ import {onMounted, reactive, ref} from 'vue' import {ElMessage} from 'element-plus' import {getMenuData} from '@/static-data/menu' +import * as roleApi from "@/api/role"; +import * as menuApi from "@/api/menu"; const emit = defineEmits(['close']) const props = defineProps({ type: String }) -const dataPermissionsOption = [ - {label: '全部', value: '全部'}, -] +defineExpose({ + resetData, +}) const rules = reactive({ roleName: [ {required: true, message: '请输入角色名称', trigger: ['blur', 'change']}, ], - roleMark: [ + roleCode: [ {required: true, message: '请输入角色标识', trigger: ['blur', 'change']}, - ], - dataPermissions: [ - {required: true, message: '请选择数据权限', trigger: ['blur', 'change']}, ] }) const formRef = ref() const formData = ref({ - id: '', + roleId: '', roleName: '', - roleMark: '', - roleRemark: '', - dataPermissions: '', + roleCode: '', + roleDesc: '', + menuIds: [] } as any) +const treeRef = ref(); const treeProps = { - label: 'menuName', + label: 'name', children: 'children' } +const expandedKey = ref([]) const treeData = ref() - onMounted(() => { resetData() treeData.value = getMenuData() + getMenuTree(); }) -defineExpose({ - formData, - resetData, -}) +const getMenuTree = () => { + menuApi.getMenuTree().then((res: any) => { + treeData.value = res.data; + }) +} function close() { emit('close') @@ -83,10 +82,10 @@ function close() { function resetData() { formRef.value.resetFields() formData.value = { - id: '', + roleId: '', roleName: '', - roleMark: '', - roleRemark: '', + roleCode: '', + roleDesc: '', dataPermissions: '', } } @@ -94,13 +93,24 @@ function resetData() { const saveData = async () => { await formRef.value.validate((valid: any, fields: any) => { if (valid) { - ElMessage.success('保存成功!') - close() - } else { - // console.log('error submit!', fields) + const form = Object.assign({}, formData.value); + form.menuIds = form.menuIds.join(","); + roleApi.addRole(form).then((res: any) => { + if (res.code == 0) { + ElMessage.success('保存成功!'); + close(); + } else { + ElMessage.error(res.msg ? res.msg : "保存失败"); + } + }); } }) } + +const checkChange = () => { + formData.value.menuIds = treeRef.value.getCheckedKeys(); +} +