Browse Source

🎨 修复菜单授权bug

master
wangxiang 3 years ago
parent
commit
cf22cbc2e8
  1. 18
      src/components/Form/src/components/ApiCascader.vue
  2. 30
      src/views/common/org/OrgModal.vue

18
src/components/Form/src/components/ApiCascader.vue

@ -5,6 +5,7 @@ @@ -5,6 +5,7 @@
:options="options"
:load-data="loadData"
change-on-select
:displayRender="handleRenderDisplay"
@change="handleChange"
>
<template v-if="loading" #suffixIcon>
@ -65,7 +66,10 @@ @@ -65,7 +66,10 @@
isLeaf: {
type: Function as PropType<(arg: Recordable) => boolean>,
default: null,
}
},
displayRenderArray: {
type: Array,
},
},
emits: ['change', 'defaultChange'],
setup(props, { emit }) {
@ -172,11 +176,23 @@ @@ -172,11 +176,23 @@
emit('defaultChange', keys, args);
}
function handleRenderDisplay({ labels, selectedOptions }) {
if (unref(emitData).length === selectedOptions.length) {
return labels.join(' / ');
}
if (props.displayRenderArray) {
return props.displayRenderArray.join(' / ');
}
return '';
}
return {
state,
options,
loading,
t,
handleRenderDisplay,
handleChange,
loadData,
};

30
src/views/common/org/OrgModal.vue

@ -14,14 +14,16 @@ @@ -14,14 +14,16 @@
* Copyright © 2020-2022 <a href="http://www.entfrm.com/">entfrm</a> All rights reserved.
* author entfrm开发团队-王翔
*/
import { ref, unref} from 'vue';
import { reactive } from 'vue';
import { BasicForm, useForm } from '/@/components/Form';
import { institutionFormSchema } from './org.data';
import { addOrg, getOrg, editOrg } from '/@/api/platform/common/controller/org';
import { BasicModal, ModalProps, useModalInner } from '/@/components/Modal';
/** 通用变量统一声明区域 */
const tag = ref<Nullable<string>>('');
const state = reactive({
tag: ''
});
/** https://v3.cn.vuejs.org/api/options-data.html#emits */
const emit = defineEmits(['success', 'register']);
const [registerForm, { resetFields, setFieldsValue, validate, clearValidate, updateSchema }] = useForm({
@ -35,11 +37,11 @@ @@ -35,11 +37,11 @@
await resetFields();
await clearValidate();
//
tag.value = data._tag;
state.tag = data._tag;
const id = data.record?.id;
const props: Partial<ModalProps> = { confirmLoading: false };
// tag
switch (unref(tag)) {
switch (state.tag) {
case 'add':
props.title = '新增机构';
break;
@ -47,16 +49,13 @@ @@ -47,16 +49,13 @@
props.title = '编辑机构';
const result = await getOrg(id);
const org = result.result;
if (result?.extend) {
await updateSchema({
field: 'regionIds',
componentProps: {
displayRender: value => {
result?.extend.join(' / ');
}
}
});
}
org.regionIds = result.extend;
await updateSchema({
field: 'regionIds',
componentProps: {
displayRenderArray: result.extend
}
});
await setFieldsValue(org);
break;
}
@ -71,8 +70,9 @@ @@ -71,8 +70,9 @@
const formData = await validate();
//
setModalProps({ confirmLoading: true });
formData.regionIds = formData.regionIds.join();
// tag
switch (unref(tag)) {
switch (state.tag) {
case 'add':
await addOrg(formData);
break;

Loading…
Cancel
Save