Skip to content

Commit 84ab75b

Browse files
committed
REVIEW 租户套餐
1 parent 216ad84 commit 84ab75b

File tree

1 file changed

+11
-12
lines changed

1 file changed

+11
-12
lines changed

src/views/system/tenantPackage/TenantPackageForm.vue

Lines changed: 11 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -33,7 +33,6 @@
3333
<el-tree
3434
ref="treeRef"
3535
node-key="id"
36-
:check-strictly="!menuCheckStrictly"
3736
show-checkbox
3837
:props="defaultProps"
3938
:data="menuOptions"
@@ -91,7 +90,6 @@ const formRules = reactive({
9190
})
9291
const formRef = ref() // 表单 Ref
9392
const menuOptions = ref<any[]>([]) // 树形结构数据
94-
const menuCheckStrictly = ref(false) // 在显示复选框的情况下,是否严格的遵循父子不互相关联的做法,默认为 true
9593
const menuExpand = ref(false) // 展开/折叠
9694
const treeRef = ref<InstanceType<typeof ElTree>>() // 树组件Ref
9795
const treeNodeAll = ref(false) // 全选/全不选
@@ -102,6 +100,8 @@ const open = async (type: string, id?: number) => {
102100
modelTitle.value = t('action.' + type)
103101
formType.value = type
104102
resetForm()
103+
// 加载 Menu 列表。注意,必须放在前面,不然下面 setChecked 没数据节点
104+
menuOptions.value = handleTree(await MenuApi.getSimpleMenusList())
105105
// 修改时,设置数据
106106
if (id) {
107107
formLoading.value = true
@@ -110,15 +110,13 @@ const open = async (type: string, id?: number) => {
110110
// 设置选中
111111
formData.value = res
112112
// 设置选中
113-
res.menuIds?.forEach((item: any) => {
114-
treeRef.value?.setChecked(item, true, false)
113+
res.menuIds.forEach((menuId: number) => {
114+
treeRef.value.setChecked(menuId, true, false)
115115
})
116116
} finally {
117117
formLoading.value = false
118118
}
119119
}
120-
// 加载Menu列表
121-
menuOptions.value = handleTree(await MenuApi.getSimpleMenusList())
122120
}
123121
defineExpose({ open }) // 提供 open 方法,用于打开弹窗
124122
@@ -134,8 +132,8 @@ const submitForm = async () => {
134132
try {
135133
const data = formData.value as unknown as TenantPackageApi.TenantPackageVO
136134
data.menuIds = [
137-
...(treeRef.value!.getCheckedKeys(false) as unknown as Array<number>),
138-
...(treeRef.value!.getHalfCheckedKeys() as unknown as Array<number>)
135+
...(treeRef.value!.getCheckedKeys(false) as unknown as Array<number>), // 获得当前选中节点
136+
...(treeRef.value!.getHalfCheckedKeys() as unknown as Array<number>) // 获得半选中的父节点
139137
]
140138
if (formType.value === 'create') {
141139
await TenantPackageApi.createTenantPackage(data)
@@ -154,6 +152,10 @@ const submitForm = async () => {
154152
155153
/** 重置表单 */
156154
const resetForm = () => {
155+
// 重置选项
156+
treeNodeAll.value = false
157+
menuExpand.value = false
158+
// 重置表单
157159
formData.value = {
158160
id: null,
159161
name: null,
@@ -162,17 +164,14 @@ const resetForm = () => {
162164
status: CommonStatusEnum.ENABLE
163165
}
164166
treeRef.value?.setCheckedNodes([])
165-
treeNodeAll.value = false
166-
menuExpand.value = false
167-
// 设置为非严格,继续使用半选中
168-
menuCheckStrictly.value = false
169167
formRef.value?.resetFields()
170168
}
171169
172170
// 全选/全不选
173171
const handleCheckedTreeNodeAll = () => {
174172
treeRef.value!.setCheckedNodes(treeNodeAll.value ? menuOptions.value : [])
175173
}
174+
176175
// 全部(展开/折叠)TODO:for循环全部展开和折叠树组件数据
177176
const handleCheckedTreeExpand = () => {
178177
const nodes = treeRef.value?.store.nodesMap

0 commit comments

Comments
 (0)