Commit 0de36dc037cfaadbb69d5c9ca6356a2091d2a29e
Merge branch 'dev-fix-ww' into 'main_dev'
fix(动态请求/公共接口): DEFECT-1269修复动态请求切换公共接口为清空表单 See merge request yunteng/thingskit-view!54
Showing
2 changed files
with
15 additions
and
9 deletions
src/views/chart/ContentConfigurations/components/ChartData/external/components/DynamicForm/index.vue
| ... | ... | @@ -4,7 +4,7 @@ import { FormItemInst, NDatePicker, NForm, NFormItem, NInput, NSelect, NTreeSele |
| 4 | 4 | import { computed, nextTick, ref, unref, watch } from 'vue'; |
| 5 | 5 | import { ComponentType, useDynamicPublicForm } from './useDynamicPublicForm'; |
| 6 | 6 | import { Help } from '@vicons/ionicons5' |
| 7 | -import { SelectTimeAggregation } from '../SelectTImeAggregation'; | |
| 7 | +import { SelectTimeAggregation } from '../SelectTImeAggregation'; | |
| 8 | 8 | |
| 9 | 9 | const props = defineProps<{ |
| 10 | 10 | paramsItemList: ParamsItemType[] |
| ... | ... | @@ -41,12 +41,16 @@ const setConfigurationData = async (params: Recordable) => { |
| 41 | 41 | setDynamicFormValue(params) |
| 42 | 42 | } |
| 43 | 43 | |
| 44 | +const recreate = ref(false) | |
| 45 | + | |
| 44 | 46 | watch( |
| 45 | 47 | () => props.paramsItemList, |
| 46 | 48 | (newValue) => { |
| 47 | 49 | if (newValue) { |
| 50 | + recreate.value = true | |
| 48 | 51 | clearParams() |
| 49 | 52 | createForm() |
| 53 | + recreate.value = false | |
| 50 | 54 | } |
| 51 | 55 | } |
| 52 | 56 | ) |
| ... | ... | @@ -61,8 +65,8 @@ defineExpose({ |
| 61 | 65 | |
| 62 | 66 | <template> |
| 63 | 67 | <NForm> |
| 64 | - <template v-for="item in getDynamicFormSchemas" :key="item.key"> | |
| 65 | - <NFormItem ref="dynamicFormItemEl" :required="item.required" :rule="item.rules"> | |
| 68 | + <template v-for="item in getDynamicFormSchemas" :key="item.uuid"> | |
| 69 | + <NFormItem v-if="!recreate" ref="dynamicFormItemEl" :required="item.required" :rule="item.rules"> | |
| 66 | 70 | <template #label> |
| 67 | 71 | <div class="label-container"> |
| 68 | 72 | <span>{{ item.name }}</span> | ... | ... |
| ... | ... | @@ -31,6 +31,7 @@ export enum ComponentType { |
| 31 | 31 | |
| 32 | 32 | |
| 33 | 33 | export interface DynamicFormSchema { |
| 34 | + uuid?: string | |
| 34 | 35 | key: string |
| 35 | 36 | name?: string |
| 36 | 37 | component: ComponentType, |
| ... | ... | @@ -336,6 +337,7 @@ export const useDynamicPublicForm = (paramsItemList: Ref<ParamsItemType[]>) => { |
| 336 | 337 | }] as FormItemRule |
| 337 | 338 | } |
| 338 | 339 | |
| 340 | + const uuid = () => Number(Math.random().toString().substring(2)).toString(32) | |
| 339 | 341 | const toFormSchemas = (builtInVariableKey: string, required: boolean, value: any, mores: boolean) => { |
| 340 | 342 | const groupList = (builtInVariableKey || '').split(GROUP_SEPARATOR) |
| 341 | 343 | return groupList.reduce((prev, next) => { |
| ... | ... | @@ -351,6 +353,7 @@ export const useDynamicPublicForm = (paramsItemList: Ref<ParamsItemType[]>) => { |
| 351 | 353 | |
| 352 | 354 | schema = { |
| 353 | 355 | ...result, |
| 356 | + // uuid: uuid(), | |
| 354 | 357 | props, |
| 355 | 358 | name, |
| 356 | 359 | required, |
| ... | ... | @@ -358,6 +361,7 @@ export const useDynamicPublicForm = (paramsItemList: Ref<ParamsItemType[]>) => { |
| 358 | 361 | } as DynamicFormSchema |
| 359 | 362 | } else { |
| 360 | 363 | schema = { |
| 364 | + // uuid: uuid(), | |
| 361 | 365 | key: value, |
| 362 | 366 | name: value, |
| 363 | 367 | component: ComponentType.INPUT, |
| ... | ... | @@ -377,22 +381,19 @@ export const useDynamicPublicForm = (paramsItemList: Ref<ParamsItemType[]>) => { |
| 377 | 381 | const schemas = toFormSchemas(key, required, value, mores) |
| 378 | 382 | return [...prev, ...schemas] |
| 379 | 383 | }, [] as DynamicFormSchema[]) |
| 380 | - console.log(result) | |
| 381 | 384 | return result |
| 382 | 385 | }) |
| 383 | 386 | |
| 384 | 387 | const createForm = async () => { |
| 385 | - console.log('enter') | |
| 386 | 388 | await getBuiltInVariable() |
| 387 | 389 | await getOrgOption() |
| 388 | 390 | getDeviceProfileOption() |
| 389 | 391 | getDeviceOption() |
| 390 | - clearParams() | |
| 391 | 392 | } |
| 392 | 393 | |
| 393 | 394 | const setParams = (Params: Recordable = {}) => { |
| 394 | 395 | for (const { key, value, mores } of unref(getParams)) { |
| 395 | - const splitKeys = value ? value.split(GROUP_SEPARATOR) : key.split(GROUP_SEPARATOR) | |
| 396 | + const splitKeys = value ? value.split(GROUP_SEPARATOR) : (key || '').split(GROUP_SEPARATOR) | |
| 396 | 397 | if (isDateComponent(key as BuiltInVariable)) { |
| 397 | 398 | if (key as BuiltInVariable === BuiltInVariable.DATE_FIXED) { |
| 398 | 399 | params[key] = Params[splitKeys[0]] || null |
| ... | ... | @@ -417,9 +418,10 @@ export const useDynamicPublicForm = (paramsItemList: Ref<ParamsItemType[]>) => { |
| 417 | 418 | |
| 418 | 419 | const clearParams = () => { |
| 419 | 420 | Object.keys(params).forEach(key => { |
| 420 | - // Reflect.deleteProperty(params, key) | |
| 421 | - params[key] = null | |
| 421 | + Reflect.deleteProperty(params, key) | |
| 422 | + // params[key] = null | |
| 422 | 423 | }) |
| 424 | + // params[BuiltInVariable.SELECT_TIME_AGGREGATION] = { startTs: null, endTs: null, limit: null, interval: null } | |
| 423 | 425 | params[BuiltInVariable.SELECT_TIME_AGGREGATION] = {} |
| 424 | 426 | } |
| 425 | 427 | ... | ... |