avue框架使用element-ui的dialog引发的问题及解决办法

dialog中的内容多次打开不更新问题

avue框架使用element-ui的dialog引发:
1、avue-form表单的多级联动,编辑时赋值异常。
2、dialog中的表单重置异常(重置为第一次加载的表单内容缓存)
3、dialog中表单的内容不更新问题,如果是子组件加载,会出现无法在created中监听父级传参,需要whatch中监听,才可能正常获取数据,不仅麻烦,而且没必要。
正常编辑每条数据的内容,

解决问题后的demo片段:

<el-dialog :append-to-body="true" :destroy-on-close="true" title="编 辑" :visible.sync="sourceTermEditForm" v-if='sourceTermEditForm' width="60%" >
  <avue-form :option="sourceTermEditList" ref="clearnFun" v-model="sourceTermFormEdit" @submit="editSourceTermSubmit"></avue-form>
</el-dialog>
//数据源编辑
sourceTermEditList: {
    labelWidth: 110,
    emptyText:'重置',
    column:[
        {
            label:'数据源名称',
            prop:'name',
        },
        {
            label:'采集器',
            prop:'collectorId',
            type:'select',
            cascaderItem: ['channelId'],
            cascaderChange:true,
            dicUrl: "/api/collector/list/"+this.proId,
            dicMethod:'get',
            dicFormatter:(res)=>{
                return res.data.list;//返回字典的层级结构
            },
            props: {
                label: "sn",
                value: "id"
            },
            rules: [{
                required: true,
                message: "请填写采集器",
                trigger: "click"
            }]
        },
        {
            label:'通道',
            prop:'channelId',
            type:'select',
            dicUrl: `/api/collector/channel/list/{{key}}`,
            dicFlag:false,
            dicMethod:'get',
            cascaderIndex:0,
            dicFormatter:(res)=>{
                return res.data.list;//返回字典的层级结构
            },
            props: {
                label: "physicalNumber",
                value: "id"
            },
            rules: [{
                required: true,
                message: "请选择通道",
                trigger: "click"
            }]
        }
    ]
},
sourceTermFormEdit:{},

重点解决代码:v-if属性控制渲染

解释:v-if的显隐控制会使内部元素加载的同时重新渲染dom及data
原因:加载v-if之后,在每次加载modal的情况下,会重新渲染一遍页面元素,因此会重新请求数据

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Mr.T's Blog

感谢打赏

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值