Commit ed7a9b0826ea3f30b73143d6a1293194e9f067b5
1 parent
e9015aa1
fix: 任务中心选择组织,再选择产品时,组织也只能在任务中心下进行选择
Showing
3 changed files
with
44 additions
and
1 deletions
... | ... | @@ -117,6 +117,10 @@ export const formSchemas: FormSchema[] = [ |
117 | 117 | paramsOrg: key, //传递组织id到DevicePicker组件里进行组织过滤 |
118 | 118 | change: true, |
119 | 119 | }, |
120 | + [FormFieldsEnum.DEVICE_PROFILE]: { | |
121 | + paramsOrg: key, //传递组织id到DevicePicker组件里进行组织过滤 | |
122 | + change: true, | |
123 | + }, | |
120 | 124 | }); |
121 | 125 | }, |
122 | 126 | getPopupContainer: () => document.body, | ... | ... |
... | ... | @@ -46,6 +46,11 @@ |
46 | 46 | paramsOrg: res.organizationId, //传递组织id到DevicePicker组件里进行组织过滤 |
47 | 47 | change: false, |
48 | 48 | }, |
49 | + [FormFieldsEnum.DEVICE_PROFILE]: { | |
50 | + ...res.executeTargetData, | |
51 | + paramsOrg: res.organizationId, //传递组织id到DevicePicker组件里进行组织过滤 | |
52 | + change: false, | |
53 | + }, | |
49 | 54 | }); |
50 | 55 | } |
51 | 56 | } | ... | ... |
... | ... | @@ -14,6 +14,7 @@ |
14 | 14 | const props = withDefaults( |
15 | 15 | defineProps<{ |
16 | 16 | value?: Recordable; |
17 | + paramsOrg?: string; | |
17 | 18 | }>(), |
18 | 19 | { |
19 | 20 | value: () => ({}), |
... | ... | @@ -42,7 +43,7 @@ |
42 | 43 | emit('update:value', { ..._value }); |
43 | 44 | }; |
44 | 45 | |
45 | - const [register, { setFieldsValue, getFieldsValue, resetFields }] = useForm({ | |
46 | + const [register, { setFieldsValue, getFieldsValue, resetFields, updateSchema }] = useForm({ | |
46 | 47 | schemas: [ |
47 | 48 | { |
48 | 49 | field: FormFieldsEnum.DEVICE_TYPE, |
... | ... | @@ -135,12 +136,45 @@ |
135 | 136 | watch( |
136 | 137 | () => props.value, |
137 | 138 | () => { |
139 | + if (Reflect.has(props.value, 'paramsOrg')) { | |
140 | + nextTick(() => { | |
141 | + const { paramsOrg, change } = props.value; | |
142 | + updateOrgSchema(paramsOrg, change); | |
143 | + }); | |
144 | + } | |
138 | 145 | setValue(); |
139 | 146 | }, |
140 | 147 | { |
141 | 148 | immediate: true, |
142 | 149 | } |
143 | 150 | ); |
151 | + | |
152 | + //更新组织,只能选择层级以下 | |
153 | + const getOrganizationLevelList = async (organizationId) => { | |
154 | + const data = await getOrganizationList({ organizationId }); | |
155 | + copyTransFun(data as any); | |
156 | + return data; | |
157 | + }; | |
158 | + | |
159 | + const updateOrgSchema = async (organizationId: string, change?: boolean) => { | |
160 | + const data = await getOrganizationLevelList(organizationId); | |
161 | + if (change) { | |
162 | + setFieldsValue({ | |
163 | + [FormFieldsEnum.ORGANIZATION]: null, | |
164 | + [FormFieldsEnum.DEVICE_PROFILE]: [], | |
165 | + }); | |
166 | + } | |
167 | + updateSchema({ | |
168 | + field: FormFieldsEnum.ORGANIZATION, | |
169 | + componentProps: { | |
170 | + treeData: data, | |
171 | + onChange(value: string, option: Recordable) { | |
172 | + handleEmit(FormFieldsEnum.ORGANIZATION, value, option); | |
173 | + }, | |
174 | + }, | |
175 | + }); | |
176 | + }; | |
177 | + // | |
144 | 178 | </script> |
145 | 179 | |
146 | 180 | <template> | ... | ... |