在子页面(弹窗)的表单中填写完信息点击提交按钮后,如何将表单中的内容传递给父页面中的table
具体代码如下
父页面
<template>
<div class="card-fill layout-padding">
<el-form ref="formRe" :model="state.vmModel" label-width="100px">
<el-row>
<el-col :xs="24" :lg="24" class="mb20">
<el-form-item ref="Entity_CaseDescription_FormItem" prop="Entity.CaseDescription" label="事件">
<el-input type="textarea" rows=5 v-model="state.vmModel.Entity.CaseDescription"
clearable></el-input>
</el-form-item>
</el-col>
</el-row>
<el-card class="mb20 pcard" shadow="hover">
<template #header>
<div class="cardheader">
<div class="headertitle">
<span>人员</span>
</div>
<div>
<el-button type="primary" text @click="AddPartInfos">添加</el-button>
</div>
</div>
</template>
<el-table v-model="state.vmModel.Entity.PartyInfos" style="width: 100%">
<el-table-column prop="Name" label="名称" width="180" />
<el-table-column prop="Address" label="地址" />
</el-table>
</el-card>
</el-form>
</div>
</template>
<script setup lang="ts" name="新增;false">
import { ElMessageBox, ElMessage } from 'element-plus';
import { defineAsyncComponent, reactive, ref, getCurrentInstance, onMounted, nextTick } from 'vue';
const ci = getCurrentInstance() as any;
const PartyInfoDialog = defineAsyncComponent(() => import('./components/addpartinfo.vue'));
// 定义变量内容
const formRef = ref();
const state = reactive({
vmModel: {
Entity: {
CaseDescription: null,
PartyInfos: [] as any[],
},
},
});
// 添加人员
const AddPartInfos = () => {
other.openDialog('添加当事人', PartyInfoDialog, null, null);
}
// 页面加载时
onMounted(() => {
});
// 定义子组件向父组件传值/事件
const emit = defineEmits(['refresh', 'closeDialog']);
// 关闭弹窗
const closeDialog = () => {
emit('closeDialog');
};
</script>
子页面(点击el-button时弹出的页面)
<template>
<div class="card-fill layout-padding">
<el-card shadow="hover" class="layout-padding-auto">
<el-form ref="formRefInfo" :model="statePartyInfo.vmModel" label-width="100px">
<el-row>
<el-col :xs="24" :lg="12" class="mb20">
<el-form-item ref="Entity_Name_FormItem" prop="Entity.Name" label="姓名)">
<el-input v-model="stateInfo.vmModel.Entity.Name" clearable></el-input>
</el-form-item>
</el-col>
<el-col :xs="24" :lg="12" class="mb20">
<el-form-item ref="Entity_Address_FormItem" prop="Entity.Address" label="居住地">
<el-input v-model="stateInfo.vmModel.Entity.Address" clearable></el-input>
</el-form-item>
</el-col>
</el-row>
<div style="text-align:right;">
<WtmButton @click="onSubmitPartyInfo" type="primary" button-text="提交" style="margin-top:15px;" />
<WtmButton @click="onClosePartyInfo" type="primary" button-text="取消" style="margin-top:15px;" />
</div>
</el-form>
</el-card>
</div>
</template>
<script setup lang="ts" name="添加人员;false">
import { ElMessageBox, ElMessage } from 'element-plus';
import { defineAsyncComponent, reactive, ref, getCurrentInstance, onMounted, nextTick } from 'vue';
const ci = getCurrentInstance() as any;
// 定义变量内容
const formRefInfo = ref();
const stateInfo = reactive({
vmModel: {
Entity: {
Name: null,
Address: null,
},
},
});
// 取消
const onClosePartyInfo = () => {
closeDialog();
};
// 提交
const onSubmitPartyInfo = () => {
};
// 页面加载时
onMounted(() => {
});
</script>