|
36 | 36 | import type { Dict } from '@/api/type/common' |
37 | 37 | import FormItem from '@/components/dynamics-form/FormItem.vue' |
38 | 38 | import type { FormField } from '@/components/dynamics-form/type' |
39 | | -import { ref, onBeforeMount, watch, type Ref, computed } from 'vue' |
| 39 | +import { ref, onBeforeMount, watch, type Ref, nextTick } from 'vue' |
40 | 40 | import type { FormInstance } from 'element-plus' |
41 | 41 | import type Result from '@/request/Result' |
42 | 42 | import _ from 'lodash' |
@@ -215,31 +215,34 @@ const render = ( |
215 | 215 | | (() => Promise<Result<Array<FormField>>>), |
216 | 216 | data?: Dict<any>, |
217 | 217 | ) => { |
218 | | - if (typeof render_data == 'string') { |
219 | | - get(render_data, {}, loading).then((ok) => { |
220 | | - formFieldList.value = ok.data |
221 | | - }) |
222 | | - } else if (render_data instanceof Array) { |
223 | | - formFieldList.value = render_data |
224 | | - } else if (typeof render_data === 'function') { |
225 | | - render_data().then((ok: any) => { |
226 | | - formFieldList.value = ok.data |
227 | | - const form_data = data ? data : {} |
228 | | - if (form_data) { |
229 | | - const value = getFormDefaultValue(formFieldList.value, form_data) |
230 | | - formValue.value = _.cloneDeep(value) |
231 | | - } |
232 | | - }) |
233 | | - } else { |
234 | | - render_data.then((ok) => { |
235 | | - formFieldList.value = ok.data |
236 | | - }) |
237 | | - } |
238 | | - const form_data = data ? data : {} |
239 | | - if (form_data) { |
240 | | - const value = getFormDefaultValue(formFieldList.value, form_data) |
241 | | - formValue.value = _.cloneDeep(value) |
242 | | - } |
| 218 | + formFieldList.value = [] |
| 219 | + nextTick(() => { |
| 220 | + if (typeof render_data == 'string') { |
| 221 | + get(render_data, {}, loading).then((ok) => { |
| 222 | + formFieldList.value = ok.data |
| 223 | + }) |
| 224 | + } else if (render_data instanceof Array) { |
| 225 | + formFieldList.value = render_data |
| 226 | + } else if (typeof render_data === 'function') { |
| 227 | + render_data().then((ok: any) => { |
| 228 | + formFieldList.value = ok.data |
| 229 | + const form_data = data ? data : {} |
| 230 | + if (form_data) { |
| 231 | + const value = getFormDefaultValue(formFieldList.value, form_data) |
| 232 | + formValue.value = _.cloneDeep(value) |
| 233 | + } |
| 234 | + }) |
| 235 | + } else { |
| 236 | + render_data.then((ok) => { |
| 237 | + formFieldList.value = ok.data |
| 238 | + }) |
| 239 | + } |
| 240 | + const form_data = data ? data : {} |
| 241 | + if (form_data) { |
| 242 | + const value = getFormDefaultValue(formFieldList.value, form_data) |
| 243 | + formValue.value = _.cloneDeep(value) |
| 244 | + } |
| 245 | + }) |
243 | 246 | } |
244 | 247 | const getFormDefaultValue = (fieldList: Array<any>, form_data?: any) => { |
245 | 248 | form_data = form_data ? form_data : {} |
|
0 commit comments