点击按钮,弹窗窗体(子组件),确定后在子组件中完成业务逻辑处理(例如添加记录),然后回调父组件刷新以显示最近记录。
<BasicModal v-bind="$attrs" @register="registerModal" title="登录样品" @ok="handleSubmit" :width="700" :helpMessage="['手工登录原辅料、产品、中控样等,通过选择采样点、检测方案等登录']" >// 声明Emits const emit = defineEmits(['success', 'register']); //表单赋值 const [registerModal, {setModalProps, closeModal}] = useModalInner(async (data) => { setModalProps({confirmLoading: false}); }); //表单提交事件 async function handleSubmit() { try { const values = {"loginType":"RawMaterial","SamplingPointid":"1"}; // const values = await validate(); let data = refScheduled.value.getFieldsValue(); // console.log(data); setModalProps({confirmLoading: true}); //提交表单 await login(values); //关闭弹窗 closeModal(); //刷新列表 emit('success'); } finally { setModalProps({confirmLoading: false}); } }import {useModal} from '/@/components/Modal';const [registerLoginManual, {openModal:openLoginManual}] = useModal();<calculation @register="registerCalculation" @success="handleLoginSucc" ref="refCalculation"></calculation>function onLoginManual(){ // refLoginManual.value. openLoginManual(true, { showFooter: true, });}解构的openModal和register在响应函数处调用的和组件@register的要一致。
作者:马洪彪
出处:http://www.cnblogs.com/mahongbiao/
本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。