其他分享
首页 > 其他分享> > jeecgboot-vue3笔记(三)弹窗的使用

jeecgboot-vue3笔记(三)弹窗的使用

作者:互联网

需求描述

点击按钮,弹窗窗体(子组件),确定后在子组件中完成业务逻辑处理(例如添加记录),然后回调父组件刷新以显示最近记录。

实现步骤

子组件

 <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的要一致。

标签:const,register,vue3,表单,jeecgboot,组件,setModalProps,弹窗
来源: https://www.cnblogs.com/mahongbiao/p/16303611.html