# ActionColumn 操作列

为了整体交互统一,提供了一个操作列。(效果见顶部)

你总不想有的页面表格操作是按钮,有的页面表格操作是文本按钮,这样就很奇怪。


提供一个参数,可以控制最多显示的按钮数量,当按钮过多时,会自动放入【更多】按钮下拉菜单中。

# 示例

序号
操作
1
2
3
<script>
import zh_CN from 'ant-design-vue/lib/locale-provider/zh_CN';

export default {
  data () {
    return {
      limit: 0,
      showDivider: true,
    };
  },
  computed: {
    columns () {
      return [
        "#",
        {
          type: "action",
          limit: this.limit,
          showDivider: this.showDivider,
          buttons: [
            {
              text: "查看",
              visible ({ id }) {
                return id > 1;
              },
            },
            {
              text: "编辑",
              visible: (row, index) => {
                return index === 1;
              },
            },
            {
              text: "删除",
              confirm: "确定删除?",
              click () {
                console.log("已删除");
              },
            },
            {
              text: "启用",
              confirm: "确定启用?",
              click (row, index) {
                console.log("已启用", row, index);
              },
            },
            { text: "禁用" },
          ],
        },
      ];
    },
  },
  render (h) {
    const source = [{ id: 1 }, { id: 2 }, { id: 3 }];

    return (
      <a-config-provider locale={zh_CN}>
        <div>
          <erp-form layout="inline">
            <erp-form-item label="最大按钮数量">
              <a-input-number vModel={this.limit} />
            </erp-form-item>
            <erp-form-item label="显示分割线">
              <a-checkbox vModel={this.showDivider} />
            </erp-form-item>
          </erp-form>
          <erp-table row-key="id" columns={this.columns} data-source={source} />
        </div>
      </a-config-provider>
    );
  },
};
</script>

# Column 参数

参数 类型 说明
type string 必须指定为 'action'
buttons Array 按钮列表,详细配置见下文
limit Number 定义一个数字,表示当超过几个按钮后,将剩余的按钮放到【更多】下拉菜单中。设置为 0 表示全部展示
show-divider Boolean 是否在按钮之间显示分割线

# Button 配置

参数 类型 说明
text string 按钮文本
click Function 点击事件,有两个参数依次是当前行的数据,当前行的索引
confirm string 确认提示,如果设置了该值,点击按钮会弹出一个确认框,点击确定之后才会触发 click 事件
visible Function 控制按钮是否可见的回调,返回 true 即表示按钮可见。有两个参数依次是当前行的数据,当前行的索引。

# 配置示例

const columns = [
  {
    type: "action",
    buttons: [
      {
        text: "编辑",
        click(row, index) {},
      },
      {
        text: "删除",
        confirm: "确定要删除吗?",
        visible(row) {
          // 数据没发布,就显示删除按钮
          return !row.published;
        },
        click(row, index) {},
      },
    ],
  },
];