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,6 +117,10 @@ export const formSchemas: FormSchema[] = [ | ||
117 | paramsOrg: key, //传递组织id到DevicePicker组件里进行组织过滤 | 117 | paramsOrg: key, //传递组织id到DevicePicker组件里进行组织过滤 |
118 | change: true, | 118 | change: true, |
119 | }, | 119 | }, |
120 | + [FormFieldsEnum.DEVICE_PROFILE]: { | ||
121 | + paramsOrg: key, //传递组织id到DevicePicker组件里进行组织过滤 | ||
122 | + change: true, | ||
123 | + }, | ||
120 | }); | 124 | }); |
121 | }, | 125 | }, |
122 | getPopupContainer: () => document.body, | 126 | getPopupContainer: () => document.body, |
@@ -46,6 +46,11 @@ | @@ -46,6 +46,11 @@ | ||
46 | paramsOrg: res.organizationId, //传递组织id到DevicePicker组件里进行组织过滤 | 46 | paramsOrg: res.organizationId, //传递组织id到DevicePicker组件里进行组织过滤 |
47 | change: false, | 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,6 +14,7 @@ | ||
14 | const props = withDefaults( | 14 | const props = withDefaults( |
15 | defineProps<{ | 15 | defineProps<{ |
16 | value?: Recordable; | 16 | value?: Recordable; |
17 | + paramsOrg?: string; | ||
17 | }>(), | 18 | }>(), |
18 | { | 19 | { |
19 | value: () => ({}), | 20 | value: () => ({}), |
@@ -42,7 +43,7 @@ | @@ -42,7 +43,7 @@ | ||
42 | emit('update:value', { ..._value }); | 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 | schemas: [ | 47 | schemas: [ |
47 | { | 48 | { |
48 | field: FormFieldsEnum.DEVICE_TYPE, | 49 | field: FormFieldsEnum.DEVICE_TYPE, |
@@ -135,12 +136,45 @@ | @@ -135,12 +136,45 @@ | ||
135 | watch( | 136 | watch( |
136 | () => props.value, | 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 | setValue(); | 145 | setValue(); |
139 | }, | 146 | }, |
140 | { | 147 | { |
141 | immediate: true, | 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 | </script> | 178 | </script> |
145 | 179 | ||
146 | <template> | 180 | <template> |