| | |
| | | @visible-change="handleVisibleChange" |
| | | > |
| | | <div class="pt-3px pr-3px"> |
| | | <BasicForm @register="registerForm" :model="model" /> |
| | | <BasicForm @register="registerForm" :model="modelRef" /> |
| | | </div> |
| | | </BasicModal> |
| | | </template> |
| | | <script lang="ts"> |
| | | import { defineComponent, ref, nextTick } from 'vue'; |
| | | import { BasicModal, useModalInner } from '/@/components/Modal'; |
| | | import { BasicForm, FormSchema, useForm } from '/@/components/Form/index'; |
| | | <script lang="ts" setup> |
| | | import { ref, nextTick } from 'vue'; |
| | | import { BasicModal, useModalInner } from '@/components/Modal'; |
| | | import { BasicForm, FormSchema, useForm } from '@/components/Form'; |
| | | |
| | | const schemas: FormSchema[] = [ |
| | | { |
| | | field: 'field1', |
| | |
| | | }, |
| | | }, |
| | | ]; |
| | | export default defineComponent({ |
| | | components: { BasicModal, BasicForm }, |
| | | props: { |
| | | userData: { type: Object }, |
| | | }, |
| | | setup(props) { |
| | | const modelRef = ref({}); |
| | | const [ |
| | | registerForm, |
| | | { |
| | | // setFieldsValue, |
| | | // setProps |
| | | }, |
| | | ] = useForm({ |
| | | labelWidth: 120, |
| | | schemas, |
| | | showActionButtonGroup: false, |
| | | actionColOptions: { |
| | | span: 24, |
| | | }, |
| | | }); |
| | | |
| | | const [register] = useModalInner((data) => { |
| | | data && onDataReceive(data); |
| | | }); |
| | | |
| | | function onDataReceive(data) { |
| | | console.log('Data Received', data); |
| | | // 方式1; |
| | | // setFieldsValue({ |
| | | // field2: data.data, |
| | | // field1: data.info, |
| | | // }); |
| | | |
| | | // // 方式2 |
| | | modelRef.value = { field2: data.data, field1: data.info }; |
| | | |
| | | // setProps({ |
| | | // model:{ field2: data.data, field1: data.info } |
| | | // }) |
| | | } |
| | | |
| | | function handleVisibleChange(v) { |
| | | v && props.userData && nextTick(() => onDataReceive(props.userData)); |
| | | } |
| | | |
| | | return { register, schemas, registerForm, model: modelRef, handleVisibleChange }; |
| | | const props = defineProps({ |
| | | userData: { type: Object }, |
| | | }); |
| | | const modelRef = ref({}); |
| | | const [ |
| | | registerForm, |
| | | // { |
| | | // // setFieldsValue, |
| | | // // setProps |
| | | // }, |
| | | ] = useForm({ |
| | | labelWidth: 120, |
| | | schemas, |
| | | showActionButtonGroup: false, |
| | | actionColOptions: { |
| | | span: 24, |
| | | }, |
| | | }); |
| | | |
| | | const [register] = useModalInner((data) => { |
| | | data && onDataReceive(data); |
| | | }); |
| | | |
| | | function onDataReceive(data) { |
| | | console.log('Data Received', data); |
| | | // 方式1; |
| | | // setFieldsValue({ |
| | | // field2: data.data, |
| | | // field1: data.info, |
| | | // }); |
| | | |
| | | // // 方式2 |
| | | modelRef.value = { field2: data.data, field1: data.info }; |
| | | |
| | | // setProps({ |
| | | // model:{ field2: data.data, field1: data.info } |
| | | // }) |
| | | } |
| | | |
| | | function handleVisibleChange(v) { |
| | | v && props.userData && nextTick(() => onDataReceive(props.userData)); |
| | | } |
| | | </script> |