Browse Source

🧬更新菜单模块

master
wangxiang 3 years ago
parent
commit
7373fa488f
  1. 3
      src/api/platform/common/controller/org.ts
  2. 19
      src/components/Form/src/components/ApiCascader.vue
  3. 16
      src/views/common/org/OrgModal.vue
  4. 2
      src/views/common/org/org.data.ts

3
src/api/platform/common/controller/org.ts

@ -1,4 +1,5 @@ @@ -1,4 +1,5 @@
import { OrgParams, Org, OrgResult } from '/@/api/platform/common/entity/org';
import { ResultVo } from '/@/api/common/base/entity';
import { defHttp } from '/@/utils/http/axios';
enum Api {
@ -15,6 +16,6 @@ export const addOrg = (params: Partial<Org>) => defHttp.post({ url: Api.save, da @@ -15,6 +16,6 @@ export const addOrg = (params: Partial<Org>) => defHttp.post({ url: Api.save, da
export const editOrg = (params: Partial<Org>) => defHttp.put({ url: Api.edit, data: params });
export const getOrg = (id: string) => defHttp.get<Org>({ url: `${Api.get}/${id}` });
export const getOrg = (id: string) => defHttp.get<ResultVo>({ url: `${Api.get}/${id}` });
export const delOrg = (ids: string) => defHttp.delete({ url: `${Api.del}/${ids}` });

19
src/components/Form/src/components/ApiCascader.vue

@ -1,10 +1,10 @@ @@ -1,10 +1,10 @@
<template>
<a-cascader
v-model:value="state"
v-bind="$attrs"
:options="options"
:load-data="loadData"
change-on-select
:displayRender="handleRenderDisplay"
@change="handleChange"
>
<template v-if="loading" #suffixIcon>
@ -40,6 +40,7 @@ @@ -40,6 +40,7 @@
LoadingOutlined,
[Cascader.name]: Cascader,
},
inheritAttrs: false,
props: {
value: {
type: Array,
@ -64,10 +65,7 @@ @@ -64,10 +65,7 @@
isLeaf: {
type: Function as PropType<(arg: Recordable) => boolean>,
default: null,
},
displayRenderArray: {
type: Array,
},
}
},
emits: ['change', 'defaultChange'],
setup(props, { emit }) {
@ -174,16 +172,6 @@ @@ -174,16 +172,6 @@
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,
@ -191,7 +179,6 @@ @@ -191,7 +179,6 @@
t,
handleChange,
loadData,
handleRenderDisplay,
};
},
});

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

@ -14,7 +14,7 @@ @@ -14,7 +14,7 @@
* Copyright © 2020-2022 <a href="http://www.entfrm.com/">entfrm</a> All rights reserved.
* author entfrm开发团队-王翔
*/
import { ref, unref } from 'vue';
import { ref, unref} from 'vue';
import { BasicForm, useForm } from '/@/components/Form';
import { institutionFormSchema } from './org.data';
import { addOrg, getOrg, editOrg } from '/@/api/platform/common/controller/org';
@ -45,7 +45,19 @@ @@ -45,7 +45,19 @@
break;
case 'edit':
props.title = '编辑机构';
await setFieldsValue(await getOrg(id));
const result = await getOrg(id);
const org = result.result;
if (result?.extend) {
await updateSchema({
field: 'regionIds',
componentProps: {
displayRender: value => {
result?.extend.join(' / ');
}
}
});
}
await setFieldsValue(org);
break;
}
// :

2
src/views/common/org/org.data.ts

@ -173,7 +173,7 @@ export const institutionFormSchema: FormSchema[] = [ @@ -173,7 +173,7 @@ export const institutionFormSchema: FormSchema[] = [
required: true
},
{
field: 'addressIds',
field: 'regionIds',
label: '城市地址',
component: 'ApiCascader',
componentProps: {

Loading…
Cancel
Save