• el-dialog设置高度、使用resetFields清除表单项无效问题


    1. el-dialog设置高度

    el-dialog中里面添加一个div设置固定高度,或者限制最小的高度。

     <el-dialog
        title="选择图标"
        v-model="iconDialogVisible"
        :close-on-click-modal="false"
        :width="480"
        destroy-on-close>
        <div class="system-icon-content">
         
    el-dialog>
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    .system-icon-content {
      min-height: 300px;
      max-height: 400px;
      overflow: auto;
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5

    以下是我尝试过但无效的方法:
    (1)在el-dialog外面包裹一个div,给它设置样式
    (2) 在el-dialog上自定义样式,使用deep去穿透样式
    (3)使用 !important

    2. el-form中表单项对不齐

    在这里插入图片描述

    设置固定的label-width
    在这里插入图片描述

    3. 使用resetFields清除表单项无效

    每次打开表单在 nextTick中调用表单的resetFields方法

    const showEditDialog = async (type: 'add' | 'mod', row?) => {
      await getInterfaceList();
        nextTick(() => {
        ruleFormRef?.value?.resetFields();
      })
      state.editType = type;
      if (type === 'add') {
        state.dialogTitle = '添加策略配置';
      } else {
        state.dialogTitle = '编辑策略配置';
        state.ruleForm = _.cloneDeep(row);//防止编辑时的表单影响这行表格数据
        state.oldCode = row.code;
      }
    };
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14

    如果表单中有非必填项,还是清除不掉:
    因为resetFields方法只对具有校验的表单元素才有效。
    可以将在弹窗关闭时将表单赋值为空,手动重置表单项。
    注意:不要去使用destroy-on-close`,会出现第二次打开表单时上回的值还存在的问题

    <el-drawer v-model="visible" :title="state.dialogTitle" direction="rtl" size="400px" :close-on-click-modal="false"
      @close="handleClose">
     el-drawer>   
    
    • 1
    • 2
    • 3
    const handleClose = () => {
      visible.value = false;
      ruleFormRef.value?.resetFields();// 只会重置必填项表单项(el-form-item有prop那个),并移除校验结果
      state.ruleForm = {} 
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
  • 相关阅读:
    基础架构之Gitlab Runner
    Linux关于gittee的远端仓库的连接和git三板斧
    Kotlin 环境下解决属性初始化问题
    什么是 CI/CD? | 实现更快更好的软件交付
    mellanox在vmware中的切割
    C++数据结构--红黑树
    每个设计师都应该有的五个性格,你具备几个?
    搭建react项目
    SELinux零知识学习十四、SELinux策略语言之客体类别和许可(8)
    python使用NiBabel包加载.nii文件、使用opencv加载jpg原图图像并转化为灰度图、最后比较原图和mask掩码图的形状是否一致
  • 原文地址:https://blog.csdn.net/qq_52395343/article/details/132663634