Commit ed849db8a184f08e085b7f3fad8f79676085d670
1 parent
263238de
fix: 任务中心所属组织选择后,下面的设备组织就只能选择所属组织及以下
Showing
2 changed files
with
44 additions
and
1 deletions
| ... | ... | @@ -108,6 +108,19 @@ export const formSchemas: FormSchema[] = [ |
| 108 | 108 | label: '所属组织', |
| 109 | 109 | colProps: { span: 24 }, |
| 110 | 110 | component: 'OrgTreeSelect', |
| 111 | + componentProps: ({ formActionType }) => { | |
| 112 | + const { setFieldsValue } = formActionType; | |
| 113 | + return { | |
| 114 | + onChange(key: string) { | |
| 115 | + setFieldsValue({ | |
| 116 | + [FormFieldsEnum.EXECUTE_TARGET_DATA]: { | |
| 117 | + paramsOrg: key, //传递组织id到DevicePicker组件里进行组织过滤 | |
| 118 | + }, | |
| 119 | + }); | |
| 120 | + }, | |
| 121 | + getPopupContainer: () => document.body, | |
| 122 | + }; | |
| 123 | + }, | |
| 111 | 124 | }, |
| 112 | 125 | { |
| 113 | 126 | field: FormFieldsEnum.TARGET_TYPE, | ... | ... |
| ... | ... | @@ -19,6 +19,7 @@ |
| 19 | 19 | value?: Recordable; |
| 20 | 20 | multiple?: boolean; |
| 21 | 21 | max?: 3; |
| 22 | + paramsOrg?: string; | |
| 22 | 23 | }>(), |
| 23 | 24 | { |
| 24 | 25 | value: () => ({}), |
| ... | ... | @@ -74,7 +75,7 @@ |
| 74 | 75 | handleChange(key, value, option); |
| 75 | 76 | emit('update:value', { ..._value }); |
| 76 | 77 | }; |
| 77 | - const [register, { setFieldsValue, getFieldsValue, resetFields }] = useForm({ | |
| 78 | + const [register, { setFieldsValue, getFieldsValue, resetFields, updateSchema }] = useForm({ | |
| 78 | 79 | schemas: [ |
| 79 | 80 | { |
| 80 | 81 | field: FormFieldsEnum.DEVICE_TYPE, |
| ... | ... | @@ -206,12 +207,41 @@ |
| 206 | 207 | watch( |
| 207 | 208 | () => props.value, |
| 208 | 209 | () => { |
| 210 | + if (Reflect.has(props.value, 'paramsOrg')) { | |
| 211 | + const { paramsOrg } = props.value; | |
| 212 | + updateOrgSchema(paramsOrg); | |
| 213 | + } | |
| 209 | 214 | setValue(); |
| 210 | 215 | }, |
| 211 | 216 | { |
| 212 | 217 | immediate: true, |
| 213 | 218 | } |
| 214 | 219 | ); |
| 220 | + | |
| 221 | + //更新组织,只能选择层级以下 | |
| 222 | + const getOrganizationLevelList = async (organizationId) => { | |
| 223 | + const data = await getOrganizationList({ organizationId }); | |
| 224 | + copyTransFun(data as any); | |
| 225 | + return data; | |
| 226 | + }; | |
| 227 | + | |
| 228 | + const updateOrgSchema = async (organizationId: string) => { | |
| 229 | + const data = await getOrganizationLevelList(organizationId); | |
| 230 | + setFieldsValue({ | |
| 231 | + [FormFieldsEnum.ORGANIZATION]: null, | |
| 232 | + [FormFieldsEnum.DEVICE]: [], | |
| 233 | + }); | |
| 234 | + updateSchema({ | |
| 235 | + field: FormFieldsEnum.ORGANIZATION, | |
| 236 | + componentProps: { | |
| 237 | + treeData: data, | |
| 238 | + onChange(value: string, option: Recordable) { | |
| 239 | + handleEmit(FormFieldsEnum.ORGANIZATION, value, option); | |
| 240 | + }, | |
| 241 | + }, | |
| 242 | + }); | |
| 243 | + }; | |
| 244 | + // | |
| 215 | 245 | </script> |
| 216 | 246 | |
| 217 | 247 | <template> | ... | ... |