FEMessage / el-data-table

🥘Base on element-ui, makes crud easily
https://femessage.github.io/el-data-table/
MIT License
486 stars 112 forks source link

feat: 兼容 el-table 额外的监听事件 #308

Closed DeepenLau closed 4 years ago

DeepenLau commented 4 years ago

Why

兼容 el-table 额外监听事件 相关 issue

307

How

   /**
     * element table 其他额外的事件监听, 详情配置参考element-ui官网
     *  tableEventListeners: {
     *   // key 值必须和 el-table 文档相同的 - 连接模式
     *   'row-click': rowClick,
     *  },
     * @link https://element.eleme.cn/#/zh-CN/component/table#table-events
     */
    tableEventListeners: {
      type: Object,
      default() {
        return {}
      }
    },
    <el-table
        ref="table"
        v-loading="loading"
        v-bind="tableAttrs"
        :data="data"
        :row-class-name="rowClassName"
        v-on="tableEventListeners"
        @selection-change="selectStrategy.onSelectionChange"
        @select="selectStrategy.onSelect"
        @select-all="selectStrategy.onSelectAll($event, selectable)"
      >
netlify[bot] commented 4 years ago

Deploy preview for el-data-table ready!

Built with commit 7171e2d5c41bfd6367e68e15fe7340abdf187ad9

https://deploy-preview-308--el-data-table.netlify.app

snowlocked commented 4 years ago

直接设置这个 v-on 事件是不是会影响组件已经默认自定义好的 selection-change select select-all事件,是不是应该要做一下防止外部覆盖行为。

DeepenLau commented 4 years ago

直接设置这个 v-on 事件是不是会影响组件已经默认自定义好的 selection-change select select-all事件,是不是应该要做一下防止外部覆盖行为。

测试了一下,看来并不会覆盖,但是会同时生效, 也不冲突 如果用 v-on="$listeners", 就可以避免写重

donaldshen commented 4 years ago
  1. 最好单开一个示例
  2. 其实可以让 tableAttrs 属性支持传事件监听器,规则是 on${EventName}
    {
    tableAttrs: {
    stripe: true,
    onRowClick(row, col, event) {}
    }
    }