dialog组件的封装

1、新建一个Vue文件
关键点:
① :visible.sync=“dialogVisible”
② props:[‘row’,‘value’]
③ watch监听

<template>
	<div>
		<el-dialog title="提醒详情" :visible.sync="dialogVisible" class="qc-config-dialog">
			<div v-loading="detailLoading">
        		我是Dialog组件
      		</div>
			<div class="textR mt20" style="display: flex;justify-content: end;align-items: end;">
		        <div>
		          <el-button class="btn-primary-cancel" @click="dialogVisible = false">关 闭</el-button>
		        </div>
			</div>
		</el-dialog>
	</div>
</template>
<script>
	export default {
		props:['row','value'],//
		data(){
      return {
        dialogVisible: false,
        detailLoading:false,
        form: {},
        detailData:[],
			}
    },
    created() {
      
    },
    methods: {
      
    },
	watch: {
      value: {
        handler(val) {
          this.dialogVisible = val;
          if (val) {
            this.form = {...this.row};//父组件传来的值
          }
        },
        immediate: true,
      },
      dialogVisible(val) {
        this.$emit("input", val);//关键input
      },
	},
}
</script>
<style scoped lang="scss">
.qc-config-dialog{
  /deep/ .el-form-item {
    margin-bottom: 20px;
  }
}
</style>

2、父组件引入子组件

import DialogDetail from "./DialogDetail.vue"//引入

components: {
  DialogDetail //注册
}

//使用 ①v-if为了每次打开弹窗都会刷新页面接口;②v-model="zkLogDetailDialog"在子组件用value接收;③:row="ListData"传父组件数据;
<DialogDetail v-if="zkLogDetailDialog" v-model="zkLogDetailDialog" :row="ListData"></DialogDetail>
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

Spring_z7

你的鼓励将是我创作的最大动力

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

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

打赏作者

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

抵扣说明:

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

余额充值