elment 遇到的问题

elment ui 组件bug总结 一、.element-ui dialog设置为点击弹窗以外的区域不关闭弹窗 第一种: 在el-dialog标签中添加:close-on-click-modal="false"即可 <el-dialog title="标题" :close-on-click-modal="false" :visible.sync="dialogEnrol" width="30%"> 弹窗内容 </el-dialog> 第二种:全局设置 在mian.js里面: import Elem. 阅读详情

1. 手机端固定列影响列合并问题

  

 如图,固定前两列后,表格标题的列合并失效
 解决方法

 第一步:在el-table中添加 :span-method="objectSpanMethod"

<el-table
          class="uptable"
          :span-method="objectSpanMethod"
          :data="mytableData"

 第二步:在objectSpanMethod 方法中重新设置列合并

  public objectSpanMethod({ row, column, rowIndex, columnIndex }: any) {
    
    $('.uptable .el-table__fixed-header-wrapper .el-table_1_column_1').attr('colspan','2').css("text-align",'center')
    $('.uptable .el-table__fixed-header-wrapper .el-table_1_column_2').css('display','none')

  }


2.手机端合计位于第一行后的列排序问题(排序如何去除合计进行排序)

第一步:在el-table中添加 @sort-change="soltHandle"

<el-table
        class="customTable"
        ref="multipleTable"
        :data="tableData"
        border
        @sort-change="soltHandle"

第二步:在soltHandle 方法中去除合计数据进行排序(数组中第一条数据为合计数据)

  public soltHandle(column: any, prop: any, order: any) {
    //获取需要排序的字段名称和排序类型
    let fieldName = column.prop;
    let sortingType = column.order;
    if (sortingType === 'ascending') {
      let table = this.tableData;
      let table2 = table.slice(1,this.tableData.length);
      let table1 = table.slice(0,1).concat(table2.sort((a: any, b: any) => a[fieldName] - b[fieldName]))
      //升序
      this.tableData = table1;
    } else if (sortingType === 'descending') {
      let table = this.tableData;
      let table2 = table.slice(1,this.tableData.length);
      let table1 = table.slice(0,1).concat(table2.sort((a: any, b: any) => b[fieldName] - a[fieldName]))
      //降序
      this.tableData = table1;
    }
  }

3.el-table-column中嵌套el-form-item并进行校验

                <el-form-item
                  :prop="`tableData.${$index}.input`"
                  :rules="rules.input"
                >

 //html部分
 <el-form :model="form" label-position="left" label-width="100" ref= "form">
        <el-form-item label="其他表单项" prop="name" :rules="rules.name">
          <el-input v-model="form.name"></el-input>
        </el-form-item>
     
          <el-table :data="form.tableData" border stripe>
            <el-table-column label="该列单元格校验">
              <template slot-scope="{ row, $index }">
                <el-form-item
                  :prop="`tableData.${$index}.input`"
                  :rules="rules.input"
                >
                  <el-input v-model="row.input"></el-input>
                </el-form-item>
              </template>
            </el-table-column>
          </el-table>
      </el-form>
 // data部分
  form: {
        name: "",
        tableData: [
          { input: "" },
          { input: "" },
          { input: "" },
          { input: "" },
          { input: "" }
        ]
      },
      rules: {
        name: [
          { required: true, trigger: ["blur", "change"], message: "请选择" }
        ],
        input: [
          { required: true, trigger: ["blur", "change"], message: "请选择" }
        ]
      },

4.el-table添加行或删除行

//添加
 this.allData.companies_list.push({
      contract_name: '',
      contract_number: ''
      ]
 })

//删除
 deleteReinusranceContract(index, row) {
    this.$confirm('确认删除吗', '提示', {
      confirmButtonText: '确定',
      cancelButtonText: '取消',
      center: true
    }).then(() => {
      this.allData.companies_list.splice(index, 1)
    })
  }

5.渲染层级太多造成的页面不刷新问题如何解决

  先delete再$set

changeCheck(index: any, index1: any) {
    var allData = this.allData;
    var checked = !allData.companies_list[index].companies[index1].checked;
    delete this.allData.companies_list[index].companies[index1].checked;
    delete this.allData.companies_list[index].companies[index1].disabled;
    this.$set(this.allData.companies_list[index].companies[index1], 'checked', checked)
    this.$set(this.allData.companies_list[index].companies[index1], 'disabled', !checked)
}

6.渲染层级太多el-checkbox中v-model 失效如何解决
   :value  或 :check

<el-checkbox :disabled="isEdit" :label="radioItem.company_name"
     :value="radioItem.checked">
     {{ radioItem.company_name}}
</el-checkbox>

<el-checkbox :disabled="isEdit" :label="radioItem.company_name"
     :check="radioItem.checked">
     {{ radioItem.company_name}}
</el-checkbox>

7. elment支持多选

<el-tooltip effect="dark" placement="right" :disabled="tooltipShow" v- 
      if="sellChannel=='3'">
  <div v-for="(item, index) in newArr" :key="index">{{ item }}</div>
      <el-select v-model="bankName" multiple 
          @change="bankNameChange" 
          placeholder="请选择" style="width: 396px">
          <el-option v-for="(item, index) in bankNameList" 
                :key="index" 
                :label="item.enum_name" 
                :value="item.enum_code"
             :disabled="item.disabled">
           </el-option>
      </el-select>
</el-tooltip>


 bankName:any = [''];
 bankNameList: any = [];
 newArr: any = [];
 tooltipShow = true;


 bankNameChange(val: any){
    this.newArr = [];
    let tempArr = this.bankName.slice(3);
    if (this.bankName.length > 3) {
      tempArr.map((item: any) => {
        return item;
      });
      this.bankNameList.forEach((k: any) => {
        tempArr.forEach((q: any) => {
          if (q == k.enum_code) {
            this.newArr.push(k.enum_name);
          }
        });
      });
      this.tooltipShow = false;
    } else {
      this.tooltipShow = true;
    }

    if (val[0] == '' && val.length > 1) {
      this.bankName.shift();
    } else {
      val.forEach((item: any, index: number) => {
        if (item === '') {
          this.bankName = [val[val.length - 1]];
          this.tooltipShow = true;
          this.newArr = [];
        }
      });
    }
    if (this.bankName == '') {
      this.bankName = [''];
    }
  }

 
  productManagedApi.getEnum({ enum_type: 'bankName' }).then((res: any) => {
      this.bankNameList = res.data.defmap.reportEnumerates;
      this.bankNameList.unshift({ enum_code: '', enum_name: '全部' });
  });

// 隐藏两个个之后的所有Tag,并在第三个Tag之前展示...
/deep/ .el-tag.el-tag--info:nth-child(n + 3) {
  width: 0;
  padding: 0;
  height: 0;
  margin: 0;
  color: rgba(255, 255, 255, 0);
  border-color: unset;
  background: none;
  i {
    display: none;
  }
}
/deep/ .el-tag.el-tag--info:nth-child(3) {
  position: relative;
  &:before {
    content: '...';
    position: absolute;
    left: 4px;
    top: -12px;
    width: 26px;
    height: 24px;
    padding: 0 8px;
    line-height: 22px;
    font-size: 12px;
    background-color: #f4f4f5;
    color: #909399;
    box-sizing: border-box;
    border: 1px solid #e9e9eb;
    border-radius: 4px;
  }
}

8. el-table 自适应列宽

说到自适应列宽,网友们肯定会想到使用 插件属性 fit,尝试后发现,fit 只针对表头,不能根据数据内容自动撑开

这里提供一个新思路:将需要自适应列的数据(包含表头)进行长度比较,最长的数据的宽度设置为当前列的宽度

  <el-table-column
        prop="piecespremium"
        label="件均保费(元)"
        :formatter="stateFormat"
        header-align="center"
        align="right"
        :width="flexColumnWidth(tableData,'件均保费(元)','piecespremium')"
      >
        <template slot-scope="scope">
          {{ scope.row.piecespremium == '' ? '--' : stateFormat(scope.row.piecespremium) }}
        </template>
 </el-table-column>

 flexColumnWidth(data,label, prop) {
    // 1.获取该列的所有数据
    const arr = data.map(x => x[prop])
    arr.push(label) // 把每列的表头也加进去算
    // 2.计算每列内容最大的宽度 + 表格的内间距(依据实际情况而定)
    return (this.getMaxLength(arr) + 30) + 'px'
  }
  getMaxLength(arr) {
    return arr.reduce((acc, item) => {
      if (item) {
        const calcLen = this.getTextWidth(item)
        if (acc < calcLen) {
          acc = calcLen
        }
      }
      return acc
    }, 0)
  }
  /**
   * 使用span标签包裹内容,然后计算span的宽度 width: px
   */
  getTextWidth(str) {
    let width = 0
    const html = document.createElement('span')
    html.innerText = str
    html.className = 'getTextWidth'
    document.querySelector('body').appendChild(html)
    width = document.querySelector('.getTextWidth').offsetWidth
    document.querySelector('.getTextWidth').remove()
    return width
  }

.getTextWidth{
  font-size: 12px;
}

VUE手写实现移动端el-table组件 最近用vue+vant进行开发,因为涉及到了表格,但vant里没有这个组件,自己就简单的封装了一下 未添加自定义CSS效果图: 使用组件:src/components/layout/table/index.vue <template> <div> <f-table :data="tableData"> <f-table-col prop="name" label="姓名"></f-table-col> 阅读详情

相关推荐

Vue3 二次封装el-table以适配移动端

el-table有两个组件el-table,el-table-column。都对其进行了二次封装,随后在main.js里全局引用即可。使用方法仍然是熟悉的味道

weixin_43029943的博客 2699

初识Vue&ElementUI

Vue是什么?Vue的作用是什么?什么是MVVM?引入vue.js库编写html测试 废话不多说直接上代码: 效果展示:常见Vue指令:和代码演示: 能够实现动态获取url,相比于原生的href显得更加灵活测试结果:代码演示: 效果演示:指令代码演示:和的效果是一样的,只要当v-show中条件满足就会展示标签中的内容两者的主要区别: 效果展示:的代码展示:基本语法: 备注:哪个标签要遍历,就添加在哪个标签上,标签遍历多少次,就会在网页上生成多少个标签 效果展示:生命周期的八个阶段:创建前/后,载入前/后

热爱编程、热爱生活、热爱探索 2482

开发框架Furion之WebApi+SqlSugar (一)

MyFurion.Model项目中,通过Nuget添加Furion、Furion.Extras.DatabaseAccessor.SqlSugar、Furion.Extras.ObjectMapper.Mapster、SqlSugarCore,同时添加对项目MyFurion.Unility的引用。在MyFurion.Start项目中,通过Nuget添加 AspNetCoreRateLimit、System.Linq.Dynamic.Core,同时添加对项目MyFurion.Application的引用。

liwan09的博客 1万+

Elment-UI组件

Element UI是一个基于Vue.js的前端组件库,它提供了丰富的UI组件和工具,用于构建现代化的Web应用程序。大量可定制的UI组件:Element UI提供了众多常用的UI组件,如按钮、表格、表单、弹窗等,每个组件都具有丰富的选项和样式定制能力。Form组件用于收集和验证用户输入的数据。强大的主题定制能力:开发者可以通过自定义主题样式,将Element UI的外观与应用程序的风格保持一致。完善的文档和社区支持:Element UI拥有详尽的文档和示例,以及活跃的开源社区,可以提供帮助和支持。

weixin_53197992的博客 628

Abaqus传热分析HETVAL和USDFLD子程序联合

Hetval子程序常用于定义内部热源,该子程序可以定义材料内部的生热量(如相变、高分子结晶生热),并且能够调用state variable 状态变量,可以与USDFLD子程序联合使用。HETVAL子程序用于计算传热系数并在单元上定义,USDFLD子程序用于在每个时间布更新温度场。

qq_41900477的博客 2664

通达信源码-金牛暴起

趋势1:=3*SMA((CLOSE-LLV(LOW,27))/(HHV(HIGH,27)-LLV(LOW,27))*100,5,1)-2*SMA(SMA((CLOSE-LLV(LOW,27))/(HHV(HIGH,27)-LLV(LOW,27))*100,5,1),3,1) AND SJTJ,DOTLINE,COLORGRAY;谷:=(((DD-LLV(DD,21))/(HHV(DD,21)-LLV(DD,21)))*(4))*(25);{0,25指高度};

qq_57222058的博客 3532

elment单选 遇到的问题

点击事件 http://www.imooc.com/wenda/detail/390801?t=283503 点击不同的单选切换不同的内容 https://blog.csdn.net/qq_33205354/article/details/80293056 转载于:https://www.cnblogs.com/wanqingcui/p/10939102.html...

weixin_30596735的博客 95

深入解析以太网接口中的BOB Smith电路设计

本文深入解析以太网接口中的BOB Smith电路设计,详细介绍了其在共模噪声抑制、浪涌防护和EMI优化中的关键作用。通过实际案例和设计要点,帮助工程师正确选择75Ω电阻和高压电容等元件,优化PCB布局,解决电压型与电流型PHY的设计差异,以及千兆与百兆以太网的特殊考量。

weixin_28339967的博客 689

Elment UI表格校验问题

本文介绍了在ElementUI中使用表格进行表单校验的方法。主要解决大量数据整合时的校验问题,通过表格插槽实现数据隔离(使用scope.$index绑定每行数据),并采用行内rules绑定实现校验隔离。文章提供了完整的代码示例,展示了如何为表格中的每行数据设置独立校验规则。最后推荐将校验规则设为变量,以便根据不同场景动态控制必填校验,提升表单校验的灵活性。

2401_82580981的博客 924

禅道二次开发(一):从零搭建本地开发与调试环境

本文详细介绍了禅道二次开发的第一步:从零搭建本地开发与调试环境。通过部署官方一键安装包、配置端口与防火墙、连接数据库、设置Samba文件共享,并最终在VSCode中配置PHP智能感知与Xdebug调试,手把手教你建立一个隔离、高效的专属开发工作台,为后续的代码修改与功能扩展奠定坚实基础。

weixin_29003437的博客 323

STM32实战开发(66):STM32图像处理开发教程

随着物联网、人工智能和嵌入式技术的不断发展,图像处理技术在嵌入式系统中的应用越来越广泛。图像处理不仅在视觉识别、安防监控、智能家居等领域中发挥着重要作用,也在工业自动化、医疗成像、无人驾驶等高科技领域中占据重要地位。而STM32凭借其强大的硬件性能和丰富的外设支持,成为了许多图像处理应用的理想平台。

2201_76125393的博客 1448

elment表格底部留白问题

elment表格底部留白问题,固定表格height滚动条的底部却在中间底下留白 因为elment .style给了height 所以只能自己改css 首先给table添加class名称:assets-table .assets-table /deep/.el-table__body-wrapper { height: 289px !important; // 自己设定的高度 } 就能解决底部留白问题了 ...

qq_46608252的博客 706

5、硬件工程师笔试面试——上拉电阻、下拉电阻(2025版本)

本文系统介绍了上拉电阻和下拉电阻的原理与应用。上拉电阻通过连接电源确保电路高电平状态,常用于数字电路防抖、OC门驱动等场景;下拉电阻连接地线维持低电平,适用于低电平触发电路。文章详细分析了两种电阻的选择方法、功耗与响应速度的平衡策略,以及在高速信号传输中的影响差异。同时对比了二者的优缺点,并提供了模拟电路中的应用实例。最后给出了电阻值计算的工程方法,为硬件工程师的电路设计提供了实用参考。

XU157303764的博客 2873

elment ui table 白线的bug问题

elment ui table 白线的bug问题 改为和背景色一样 background-color: #202127 这个bug就解决了

weixin_45270158的博客 342

WINCC7.3破解文件

WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!

VC中sqlite的使用

在VC中对sqlite的使用,实现数据库大批数据的快速插入,读取数据库中的数据在ListCtrl中显示

elment以及elementPlus选中组件出现黑框问题解决!!

elment以及elementPlus选中组件出现黑框问题解决!!

夏日漱石的博客 2921

ET2012新版免狗免安装绿色软件

ET2012新版免狗免安祖昂绿色软件。,新界面,新视觉,

Elment-ui常见问题整理

Input事件无法绑定按键事件 原因是el-input被div所包裹,解决办法是在事件后追加native修饰符 &amp;amp;amp;lt;el-input @keyup.enter.native=&amp;amp;quot;save&amp;amp;quot; /&amp;amp;amp;gt;

爪蛙没有爪的博客 404

Probability and Statistics - 4th edition

Probability and Statistics - 4th edition

解决elment-ui表格没有样式的问题

如何解决elment-ui表格没有显示的问题 只需要在main.js里面引入样式即可:import ‘element-ui/lib/theme-chalk/index.css’

Leslie_55的博客 480

elment ui drawer 页面抖动问题

drawer打开之前 页面会抖动一下 甚至右边会有留白 是因为滚动条所致 我们只需要添加一行代码即可。如上所示 在属性里多加一个 :lockScroll="false"即可。

m0_74829310的博客 1340

elment验证无效及表单数据无法赋值问题

最近在element的使用中发现自己对它的了解很粗糙。 首先在表单中我们要注意form的定义 let form = {str:''} //true let form = {} form.str = '' //false 验证: 在写了rule,prop和定义了绑定form之后 是根据rule来进行验证,验证的东西是form[prop]的值,不是你单独绑定的值 &lt...

weixin_39308542的博客 1213

elment ui 图片上传遇到的一些问题

图片上传返回200,message显示请上传图片 注意上图中的name字段要和服务器接受的name相同,这里我们是imgfile,默认name不是这个,所以要在el-upload组件上设置name属性。 返回数据不是json格式 如图,默认Accept是 */*,返回的是字符串。 设置el-upload组件headers属性,修改请求头Accept属性: uploadImgH...

weixin_30883311的博客 182

7-引用elment设置table行高的问题

在使用elment的table时,有一个默认行高,多次试验后发现只有这句代码的确管用 下图是例子,为el-tanble中添加属性 :row-style="{height:'50px'}" // 行样式,注意书写格式!!! <el-table :data="tableData" :row-style="{height:'50px'}"> <el-tab...

sinat_41124751的博客 329

Elment-ui有些组件选中后出现黑框

Elment-ui有些组件选中后出现黑框,例如:el-drawer、el-calendar等。 解决方法就是在出现黑框的标签样式里覆盖以下样式: ::v-deep 样式名:focus { outline: none; }

小锋QQmm~~的香蕉乐园 3018

elment之vue导入失败,原因版本问题

改成下面这个引入 <script src="https://unpkg.com/vue@next"></script> <!-- import CSS --> <link rel="stylesheet" href="https://unpkg.com/element-plus/dist/index.css"> <!-- import JavaScript --> <script src="https://u...

weixin_48570662的博客 1214

常见elment-plus样式问题解决

处理 ElMessageBox遮罩弹窗出现width: calc(100% - 19px)处理。处理input框增加clearable造成的异常宽度处理。

lingwuxula的博客 474

如何解决elment ui 偶发性图标icon乱码问题

一般情况是因为sass版本低导致的我们只需要升级下sass版本就好了。

weixin_52137798的博客 500
上一篇: 移动端开发遇到的兼容问题
下一篇: 一劳永逸之Avue-Crud组件
华而有识
博客等级 码龄10年 4粉丝 20原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

打赏作者

华而有识

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

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

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

打赏作者

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

抵扣说明:

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

余额充值