vue+elementUi自定义dialog对话框多个组件实例动态设置宽高getElementsByClassName

Posted web半晨

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了vue+elementUi自定义dialog对话框多个组件实例动态设置宽高getElementsByClassName相关的知识,希望对你有一定的参考价值。

目录


1、html

<el-dialog
  custom-class="schedule_task_diaog"
  :show-close="false"
  :center="true"
  :visible.sync="dialogTableVisible"
  :close-on-click-modal="false"
>
  <div>内容... ...</div>
</el-dialog>

2、javascript

export default 
  data() 
    return 
      dialogTableVisible: false,
    ;
  ,

  methods: 
    // 父组件通过ref触发子组件方法(函数)打开本弹窗
    openPanel(obj) 
      // 控制弹窗的显示与隐藏
      this.dialogTableVisible = true;

      this.$nextTick(() => 
        // 获取DOM
        let dialogBox = document.getElementsByClassName("schedule_task_diaog"),
           width, height, borderRadius, top  = obj;

        for (let i = 0; i < dialogBox.length; i++) 
          // 设置width
          dialogBox[i].style.width = width || "360px";
          // 设置height
          dialogBox[i].style.height = height || "360px";
          // 设置top
          dialogBox[i].style.top = top || "152px";
          // 设置border-radius
          dialogBox[i].style.borderRadius = borderRadius || "10px";
        
      );
    ,
  ,
;

3、css

// 重置dialog对话框
/deep/ .schedule_task_diaog 
	padding: 0 !important;


::v-deep .schedule_task_diaog .el-dialog__header 
	width: 100%;
	padding: 0px !important;


/deep/ .schedule_task_diaog .el-dialog__body 
	width: 100%;
	padding: 0 !important;

以上是关于vue+elementUi自定义dialog对话框多个组件实例动态设置宽高getElementsByClassName的主要内容,如果未能解决你的问题,请参考以下文章

Vue.js 学习13 ElementUI项目中使用自定义组件

elementui表单溢出dialog

Vue2 + ElementUI 关于$emit用法总结

Vue3对话框(Dialog)

vue+elementui的el-dialog全局配置拖拽

element-ui dialog设置为点击弹窗以外的区域不关闭弹窗