jeecg v3 modal

<template>
<BasicModal v-bind="$attrs" @register="register" title="地图" @visible-change="handleVisibleChange">
<div class="pt-3px pr-3px">
<BasicForm @register="registerForm" :model="model" />
</div>
<div v-html="model.field2" class="article-content"></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';

const schemas: FormSchema[] = [
{
field: 'field1',
component: 'Input',
label: '字段1',
colProps: {
span: 24,
},
defaultValue: '111',
},
{
field: 'field2',
component: 'Input',
label: '字段2',
colProps: {
span: 24,
},
},
];
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);
console.log( data.record.lat);
// 方式1;
// setFieldsValue({
// field2: data.data,
// field1: data.info,
// });

// // 方式2
modelRef.value = { field2: data.record.lat, field1: data.record.lng };
console.log(modelRef);

// 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 };
},
});
</script>
posted @ 2024-09-19 15:49  meetrice  阅读(10)  评论(0编辑  收藏  举报