const sdDataTableMixin = {
  props: {
    /**
     * <p>列定义信息，在<a href='https://1x.antdv.com/components/table-cn/#Column'>a-table列定义</a>的基础上增加了如下属性：</p>
     * <ul>
     * <li>sdClickable - boolean(默认false) : 列是否可点击</li>
     * <li>sdHidden - boolean(默认false) : 隐藏列。用户不需要看到，但是数据需要拉到前台 或 需要按此列排序</li>
     * <li>sdCandidate - boolean(默认false) : 候选列。默认不显示，但用户可以从列表中选择显示此列</li>
     * <li>sdRender : 列特殊格式，如日期、红绿灯</li>
     * </ul>
     */
    columns: {
      type: Array,
      required: true,
    },
    /**
     * 是否显示表格标题行
     */
    showHeader: {
      type: Boolean,
      // 保持和antd一致
      // eslint-disable-next-line vue/no-boolean-default
      default: true,
    },
    /**
     * 是否显示复选框列，如果是function，其参数为当前记录
     */
    showSelection: {
      type: [Boolean, Function],
      default: false,
    },
    /**
     * <p>表格的各种操作按钮，每个action的结构如下：</p>
     * <ul>
     * <li>label - string(必填) : 按钮显示名称</li>
     * <li>id - string(必填) : 按钮唯一标识</li>
     * <li>type - TableActionTypes(默认一般按钮) : 按钮类型 一般/批量/行内/主按钮/删除(仅data-table-ex可用)/新建(仅data-table-ex可用)</li>
     * <li>permission - string : 控制按钮显示隐藏的权限点，即当前按钮需要的权限,判断当前用户是否具有该权限见接口framework/v1/form-perm/my-authed-perms</li>
     * <li>callback - function(keys, records) : 点击按钮的回调，keys=选中的记录key，records=选中的记录</li>
     * <li>hidden - function(record, rowIndex) : 根据不同的行隐藏按钮，仅支持行内按钮，record=当前记录，rowIndex=当前行数</li>
     * <li>children - action数组: 按钮的子操作，格式和action相同（0.22新增）</li>
     * <li>title - string: 鼠标悬停提示信息（8.1.0.29新增）</li>
     * </ul>
     */
    actions: {
      type: Array,
      default: () => [],
    },
    /**
     * 搜索框对应哪些字段进行搜索
     */
    searchFields: {
      type: Array,
      default: () => [],
    },
    /**
     * 用表达式过滤表格中的数据
     */
    filterExpressions: {
      type: Array,
      default: () => [],
    },

    /**
     * ant design vue 的翻页器配置，如每页显示几条等
     */
    pagination: {
      type: Object,
      default: () => {},
    },
    /**
     * 隐藏翻页器，但还是可以通过 pagination 设置每页多少条、当前第几页等
     * @since 8.0.12
     */
    hidePagination: {
      type: Boolean,
      default: false,
    },
    /**
     * <p>ant design vue <a href='https://1x.antdv.com/components/table-cn/#scroll'>a-table的滚动设置</a></p>
     * @since 8.1.0.30
     */
    scroll: {
      type: Object,
      default: () => {},
    },
    /**
     * 最多显示几个行内按钮，超出的点更多显示出来
     * @since 8.1.0.30
     */
    maxInlineActions: {
      type: Number,
      default: 2,
    },
  },
}
export default sdDataTableMixin
