|
@@ -5,6 +5,7 @@
|
|
v-model.trim="_formModel[handleProp(item.prop)]"
|
|
v-model.trim="_formModel[handleProp(item.prop)]"
|
|
:data="['tree-select'].includes(item.compOptions.elTagName!) ? itemEnum : []"
|
|
:data="['tree-select'].includes(item.compOptions.elTagName!) ? itemEnum : []"
|
|
:options="['cascader', 'select-v2'].includes(item.compOptions.elTagName!) ? itemEnum : []"
|
|
:options="['cascader', 'select-v2'].includes(item.compOptions.elTagName!) ? itemEnum : []"
|
|
|
|
+ @change="handleInputChange(item, formModel)"
|
|
>
|
|
>
|
|
<template v-if="item.compOptions.elTagName === 'cascader'" #default="{ data }">
|
|
<template v-if="item.compOptions.elTagName === 'cascader'" #default="{ data }">
|
|
<span>{{ data[item.compOptions.labelKey || 'label'] }}</span>
|
|
<span>{{ data[item.compOptions.labelKey || 'label'] }}</span>
|
|
@@ -44,10 +45,13 @@
|
|
<script setup lang="ts" name="Item">
|
|
<script setup lang="ts" name="Item">
|
|
import { computed, inject, ref } from 'vue'
|
|
import { computed, inject, ref } from 'vue'
|
|
import { handleProp } from '@/utils'
|
|
import { handleProp } from '@/utils'
|
|
|
|
+
|
|
interface FormItem {
|
|
interface FormItem {
|
|
item: ProForm.ItemsOptions
|
|
item: ProForm.ItemsOptions
|
|
formModel: Record<string, any>
|
|
formModel: Record<string, any>
|
|
|
|
+ change?: (val: any) => void
|
|
}
|
|
}
|
|
|
|
+
|
|
const props = defineProps<FormItem>()
|
|
const props = defineProps<FormItem>()
|
|
const _formModel = computed(() => props.formModel)
|
|
const _formModel = computed(() => props.formModel)
|
|
const elTagNameValue = computed(() => {
|
|
const elTagNameValue = computed(() => {
|
|
@@ -73,4 +77,10 @@ const itemEnum = computed(() => {
|
|
}
|
|
}
|
|
return enumData
|
|
return enumData
|
|
})
|
|
})
|
|
|
|
+
|
|
|
|
+const handleInputChange = (item: ProForm.ItemsOptions, formModel: Record<string, any>) => {
|
|
|
|
+ if (item.change) {
|
|
|
|
+ props.change(item, formModel)
|
|
|
|
+ }
|
|
|
|
+}
|
|
</script>
|
|
</script>
|