element-ui table组件 自定义单元格内容 ; 单元格关键字(支持多个)飘红

一、自定义单元格内容

1.原理:slot自定义单元格内展示内容

2.通过scope拿到表格内容

拿到每一行的index----------scope.$index

拿到每一行的数据-----------scope.row

template:

<el-table :data="tableData" style="width: 100%">
  <el-table-column
    v-for="(item,k) in config"
    :key="k"
    :prop="item.props"
    :label="item.label"
    width="180"
  >
    <template slot-scope="scope">
      {{ scope.row[`${item.props}`] }}
    </template>
  </el-table-column>
</el-table>

script:

export default {
  data() {
    return {
      config: [
        {
          props: "date",
          label: "日期",
        },
        {
          props: "name",
          label: "姓名"
        }
      ],
      tableData: [
        {
          date: "2016-05-02",
          name: "王小虎",
          address: "上海市普陀区金沙江路 1518 弄"
        },
        {
          date: "2016-05-04",
          name: "王小虎",
          address: "上海市普陀区金沙江路 1517 弄"
        },
        {
          date: "2016-05-01",
          name: "王小虎",
          address: "上海市普陀区金沙江路 1519 弄"
        },
        {
          date: "2016-05-03",
          name: "王小虎",
          address: "上海市普陀区金沙江路 1516 弄"
        }
      ]
    };
  },
};
二、高亮单元格内关键词
<el-table :data="tableData" style="width: 100%">
  <el-table-column
    v-for="(item,k) in config"
    :key="k"
    :prop="item.props"
    :label="item.label"
    width="180"
  >
    <template slot-scope="scope">
      <div v-html="markKeyWord(scope.row[`${item.props}`])"></div>
    </template>
  </el-table-column>
</el-table>

scripts中methods里,添加函数:

markKeyWord(cellText) {
  // 1.传入关键词数组keyWordArr
  let keyWordArr = ["王","0"];
  // 2.定制关键词对应正则
  let regStr = '';
  keyWordArr.map((val,idx)=>{
    if(idx !== keyWordArr.length -1 ){
      regStr += `(${val})|`;
    }else{
      regStr += `(${val})`;
    }
  })
  console.log(regStr);
  let reg = new RegExp(regStr,"g");
  // 3.正则替换,关键词飘红
  let str = cellText.replace(reg, function($0,$1) {
    return  `<span style="color:red;">${$0}</span>`;
  });
  return str;
}

参考博客:https://blog.csdn.net/bright2017/article/details/77452648

最后吐槽一下vue体验:

  • element-ui 易上手,文档齐全。表格自定义不友好,非响应式。窄屏头部导航换行。

  • iview 表格友好(类似jsx),支持响应式。

  • vue-cli2 配置外显,config文件夹,方便自配置。(个人倾向使用)

  • vue-cli3 目录更简洁友好,config文件夹隐藏,自定义配置方式:
    新建文件src/vue.config.js; 配置环境变量:新建对应环境的文件,如.env, .env.prod, .env.test。
    美中不足:比如自定义资源路径,不同环境变量下,引入不同包,此时需要在vue.config.js修改相关配置。此时vue-cli3 相关文档不齐全,官网也没找到demo…

——————————————————

加油,每天成长一点点,祝好~

  • 0
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
回答: elementui自定义表格可以通过使用element-ui提供的组件和属性来实现。在你提供的引用中,可以看到一些element-ui组件和属性的使用示例。 例如,你可以使用el-form-item组件来创建一个表单项,通过设置label和prop属性来指定标签和数据绑定的字段。\[1\] 另外,你可以使用el-table-column组件来定义表格的列,通过设置prop属性来指定数据绑定的字段。在模板中,你可以使用条件判断来决定是否显示表单元素或者默认展示文字。\[3\] 此外,你还可以使用el-input组件来创建一个输入框,通过v-model指令来实现数据的双向绑定。\[3\] 在实现自定义表格的过程中,你还可以使用一些element-ui提供的方法和事件来实现一些特定的功能。例如,你可以使用$refs来获取表格的引用,然后使用clearSelection方法来清除表格的选中状态,使用toggleRowSelection方法来切换行的选中状态。\[2\] 总之,element-ui提供了丰富的组件和属性,可以帮助你实现自定义的表格功能。你可以根据具体的需求,结合这些组件和属性来创建你想要的表格样式和功能。 #### 引用[.reference_title] - *1* *2* *3* [elementui 表格中单元格自定义功能](https://blog.csdn.net/qq_60035188/article/details/124899254)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^control,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值