From 4d8d2b273222d547e6af5e4178a84e0c77f20c65 Mon Sep 17 00:00:00 2001
From: wangxiang <1827945911@qq.com>
Date: Tue, 3 May 2022 09:17:17 +0800
Subject: [PATCH] =?UTF-8?q?=F0=9F=92=90=20=E8=A7=A3=E5=86=B3=E8=A7=92?=
=?UTF-8?q?=E8=89=B2=E5=A4=9A=E9=80=89=E5=8D=8A=E9=80=89bug?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
kicc-ui/src/views/system/role/RoleDrawer.vue | 23 ++++++++++++++++---
kicc-ui/src/views/system/role/index.vue | 9 +++++++-
.../src/views/system/user/ResetPwdModal.vue | 4 ++--
kicc-ui/src/views/system/user/UserModal.vue | 10 ++++++--
kicc-ui/src/views/system/user/index.vue | 12 ++++++++--
5 files changed, 48 insertions(+), 10 deletions(-)
diff --git a/kicc-ui/src/views/system/role/RoleDrawer.vue b/kicc-ui/src/views/system/role/RoleDrawer.vue
index 3070b082..3ac6cabe 100644
--- a/kicc-ui/src/views/system/role/RoleDrawer.vue
+++ b/kicc-ui/src/views/system/role/RoleDrawer.vue
@@ -13,6 +13,7 @@
checkable
:treeData="state.menuTree"
:replaceFields="{ title: 'name', key: 'id' }"
+ @check="handleHalfCheckedKeysMerge"
/>
@@ -25,7 +26,7 @@
* Copyright © 2020-2022 entfrm All rights reserved.
* author entfrm开发团队-王翔
*/
- import { reactive } from 'vue';
+ import {reactive, toRaw} from 'vue';
import { BasicForm, useForm } from '/@/components/Form/index';
import { formSchema } from './role.data';
import { BasicDrawer, DrawerProps, useDrawerInner } from '/@/components/Drawer';
@@ -34,12 +35,21 @@
import { addRole, editRole, getRole } from '/@/api/controller/system/role';
import { listToTree } from "/@/utils/helper/treeHelper";
+ /** 类型规范统一声明定义区域 */
+ interface WindowState {
+ tag: string;
+ menuTree: TreeItem[];
+ checkedKeys: string[];
+ }
+
/** 通用变量统一声明区域 */
- const state = reactive({
+ const state = reactive({
// 操作标签
tag: '',
// 菜单树形数据
- menuTree: [] as TreeItem[],
+ menuTree: [],
+ // 选中复选框的树节点
+ checkedKeys: []
});
/** https://v3.cn.vuejs.org/api/options-data.html#emits */
const emit = defineEmits(['success', 'register']);
@@ -67,6 +77,7 @@
props.title = '编辑角色';
const result = await getRoleMenuIds(roleId);
const role = await getRole(roleId);
+ state.checkedKeys = result.extend;
await setFieldsValue(Object.assign(role, { menuIds: result.extend }));
break;
}
@@ -74,6 +85,11 @@
setDrawerProps(props);
});
+ /** 处理选中的半复选框合并至勾选数据中 */
+ function handleHalfCheckedKeysMerge (checkedKeys: string[], e) {
+ state.checkedKeys = [...checkedKeys, ...e.halfCheckedKeys];
+ }
+
/** 处理弹出框提交 */
async function handleSubmit() {
try {
@@ -81,6 +97,7 @@
const formData = await validate();
// 处理提交之前逻辑
setDrawerProps({ confirmLoading: true });
+ formData.menuIds = toRaw(state.checkedKeys);
// 采用tag标签区分操作
switch (state.tag) {
case 'add':
diff --git a/kicc-ui/src/views/system/role/index.vue b/kicc-ui/src/views/system/role/index.vue
index a0e01906..57a095ae 100644
--- a/kicc-ui/src/views/system/role/index.vue
+++ b/kicc-ui/src/views/system/role/index.vue
@@ -56,8 +56,15 @@
import { useMessage } from '/@/hooks/web/useMessage';
import { reactive, toRaw } from 'vue';
+ /** 类型规范统一声明定义区域 */
+ interface TableState {
+ ids: string[];
+ single: boolean;
+ multiple: boolean;
+ }
+
/** 通用变量统一声明区域 */
- const state = reactive({
+ const state = reactive({
// 选中数组
ids: [],
// 非单个禁用
diff --git a/kicc-ui/src/views/system/user/ResetPwdModal.vue b/kicc-ui/src/views/system/user/ResetPwdModal.vue
index a092badb..2b13743a 100644
--- a/kicc-ui/src/views/system/user/ResetPwdModal.vue
+++ b/kicc-ui/src/views/system/user/ResetPwdModal.vue
@@ -29,7 +29,7 @@
import { useMessage } from '/@/hooks/web/useMessage';
/** 类型规范统一声明定义区域 */
- interface FormState {
+ interface WindowState {
id: string;
newPassword: string;
}
@@ -40,7 +40,7 @@
const emit = defineEmits(['success', 'register']);
const FormItem = Form.Item;
const useForm = Form.useForm;
- const modelRef = reactive({
+ const modelRef = reactive({
id: '',
newPassword: ''
});
diff --git a/kicc-ui/src/views/system/user/UserModal.vue b/kicc-ui/src/views/system/user/UserModal.vue
index e4bcb028..4c235c09 100644
--- a/kicc-ui/src/views/system/user/UserModal.vue
+++ b/kicc-ui/src/views/system/user/UserModal.vue
@@ -26,6 +26,12 @@
import { TreeItem } from "/@/components/Tree";
import { useMessage } from '/@/hooks/web/useMessage';
+ /** 类型规范统一声明定义区域 */
+ interface WindowState {
+ tag: string;
+ deptTree: TreeItem[];
+ }
+
export default defineComponent({
name: 'UserModal',
components: { BasicModal, BasicForm },
@@ -33,11 +39,11 @@
setup(props, { emit }) {
/** 通用变量统一声明区域 */
- const state = reactive({
+ const state = reactive({
// 操作标签
tag: '',
// 部门树形数据
- deptTree: [] as TreeItem[],
+ deptTree: []
});
const { createMessage } = useMessage();
const [registerForm, { resetFields, setFieldsValue, updateSchema, validate, clearValidate }] = useForm({
diff --git a/kicc-ui/src/views/system/user/index.vue b/kicc-ui/src/views/system/user/index.vue
index c5aa45a1..ebecfe5a 100644
--- a/kicc-ui/src/views/system/user/index.vue
+++ b/kicc-ui/src/views/system/user/index.vue
@@ -73,6 +73,14 @@
import { columns, searchFormSchema } from './user.data';
import { useMessage } from '/@/hooks/web/useMessage';
+ /** 类型规范统一声明定义区域 */
+ interface TableState {
+ ids: string[];
+ single: boolean;
+ multiple: boolean;
+ searchInfo: Recordable;
+ }
+
export default defineComponent({
name: 'UserManagement',
components: {
@@ -86,7 +94,7 @@
setup() {
/** 通用变量统一声明区域 */
- const state = reactive({
+ const state = reactive({
// 选中数组
ids: [],
// 非单个禁用
@@ -94,7 +102,7 @@
// 非多个禁用
multiple: true,
// 搜索信息
- searchInfo: {} as Recordable
+ searchInfo: {}
});
const { createConfirm } = useMessage();
const { createMessage } = useMessage();