diff --git a/.vscode/settings.json b/.vscode/settings.json index adc418f..6f17811 100644 --- a/.vscode/settings.json +++ b/.vscode/settings.json @@ -121,6 +121,7 @@ "antv", "brotli", "browserslist", + "Cascader", "codemirror", "commitlint", "cropperjs", diff --git a/src/components/Form/src/components/ApiCascader.vue b/src/components/Form/src/components/ApiCascader.vue index e92ef3e..e93cada 100644 --- a/src/components/Form/src/components/ApiCascader.vue +++ b/src/components/Form/src/components/ApiCascader.vue @@ -11,14 +11,12 @@ import { useI18n } from '@/hooks/web/useI18n' defineOptions({ name: 'ApiCascader' }) const props = defineProps({ - value: { - type: Array, - }, + value: propTypes.array.def([]), api: { type: Function as PropType<(arg?: Recordable) => Promise>, default: null, }, - numberToString: propTypes.bool, + numberToString: propTypes.bool.def(false), resultField: propTypes.string.def(''), labelField: propTypes.string.def('label'), valueField: propTypes.string.def('value'), @@ -55,7 +53,7 @@ const apiData = ref([]) const options = ref([]) const loading = ref(false) const emitData = ref([]) -const isFirstLoad = ref(true) +const isFirstLoad = ref(false) const { t } = useI18n() // Embedded in the form, just use the hook binding to perform form verification const [state]: any = useRuleFormItem(props, 'value', 'change', emitData) @@ -150,10 +148,10 @@ watch( () => props.initFetchParams, () => { if (props.alwaysLoad) - !unref(isFirstLoad) && initialFetch() + initialFetch() else - initialFetch() + !unref(isFirstLoad) && initialFetch() }, { deep: true }, ) @@ -175,8 +173,10 @@ function handleRenderDisplay({ labels, selectedOptions }) {