• el-table-v2 element plus 表格虚拟滚动渲染选择器


    1. <el-table-v2
    2. :data="data"
    3. :columns="Columns"
    4. :width="700"
    5. :height="400"
    6. fixed
    7. :row-class="importRowClass"
    8. border
    9. style="width: 100%"
    10. >

    data中

    1. data:(){
    2. return {
    3. data[{
    4. name:'lihua',
    5. age:18,
    6. isVisible:false,
    7. id:0
    8. },{
    9. name:'lihua',
    10. age:18,
    11. isVisible:false,
    12. id:1
    13. },{
    14. name:'lihua',
    15. age:18,
    16. isVisible:false,
    17. id:2
    18. }],
    19. Columns:[]
    20. }
    21. }

    需要的引入 特殊项中用到的element的其他组件,vue的组件使用vue的引入方法,引入h函数构造vnode

    1. import { ElCheckbox, ElButton } from "element-plus";
    2. import { ref, h } from "vue";

    渲染列

    1. //渲染前函数
    2. //普通列
    3. this.Columns = [
    4. { key: "selection", dataKey: "name", title: "名称", width: 150 },
    5. ];
    6. //需要插入其他组件或dom节点的列依靠于自带的自定义属性cellRenderer 返回的结果需要是vnode(dom)节点,vue中可以使用jxs或h函数构造,构造属性vue3官网有参考
    7. this.importColumns.unshift({
    8. key: "handle",
    9. dataKey: "age",
    10. title: "年龄",
    11. width: 150,
    12. cellRenderer: (isReset) => {
    13. return h(
    14. 'div',
    15. {
    16. style:{color:isReset.cellData>'18'?'green':'red'}
    17. },
    18. isReset.cellData
    19. );
    20. },
    21. });
    22. this.importColumns.unshift({
    23. key: "handle",
    24. dataKey: "isReset",
    25. title: "状态",
    26. width: 50,
    27. //特殊列操作函数此处为选择器
    28. cellRenderer: (value) => {
    29. if (value.cellData !== undefined) {
    30. return h(ElCheckbox, {
    31. modelValue: value.cellData,
    32. "onUpdate:modelValue": (value) => {
    33. this.importConfigDataMessage[value.rowData.id].isReset = value;
    34. },
    35. });
    36. }
    37. },
    38. //特殊列的表头,此为全选。
    39. headerCellRenderer: (value) => {
    40. const _data = unref(this.importConfigDataMessage);
    41. const onChange = (value) => {
    42. this.importConfigDataMessage.value = _data.map((row) => {
    43. row.isReset = value;
    44. return row;
    45. });
    46. };
    47. const allSelected = _data.every((row) => row.isReset);
    48. const containsChecked = _data.some((row) => row.isReset);
    49. return h(ElCheckbox, {
    50. onChange: onChange,
    51. value: allSelected,
    52. intermediate: containsChecked && !allSelected,
    53. });
    54. },
    55. });
    56. });

  • 相关阅读:
    LeetCode 第 307 场周赛 复盘
    Connor学Android - Drawable
    中国五氯化磷市场调研与投资预测报告(2022版)
    L5W1作业1 手把手实现循环神经网络
    Ubuntu 生成ffmpeg安卓全平台so
    centos8stream 编译安装 php-rabbit-mq模块
    jQuery为元素绑定事件
    【Detectron2】代码库学习-2. 环境搭建和demo
    线程与进程
    Github 2024-07-11 开源项目日报 Top10
  • 原文地址:https://blog.csdn.net/qq_51389137/article/details/128079699