Skip to content

Vben 表格

关于 reloadWithCallback

新版本 antdv4 已经没有这个问题, 也已经移除 可以跳过

除了 reload 函数 还有一个函数reloadWithCallback 该函数非官方提供 主要解决问题为使用 modal 时直接 emit reload 关闭页面会关闭两次

会有关闭两次动画 直接调用 reload 时

vue
// table.vue
<ClientModal @register="registerModal" @reload="reload" />

<script lang="ts">
const [registerTable, { reload, reloadWithCallback }] = useTable(); // modal
closeModal();
emit("reload");
</script>

使用 reloadWithCallback 将 reload 放在回调函数中执行 只会有一次关闭动画

vue
<ClientModal @register="registerModal" @reload="reloadWithCallback" />

<script lang="ts">
const [registerTable, { reload, reloadWithCallback }] = useTable();
// modal
emit("reload", closeModal);
</script>

默认排序

默认实现也是按照后台 PageQuery 的根据字段和正反序来排序, 可以不做修改

ts
defaultSortFn: (sortInfo: SorterResult) => {
  const { field, order } = sortInfo;
  if (field && order) {
    return {
      // 根据哪个字段排序
      orderByColumn: field,
      // 排序方式
      isAsc: 'ascend' === order ? 'asc' : 'desc',
    };
  } else {
    return {};
  }
},

而表格需要排序的 column 只需要添加一行代码即可完成排序功能(相关列会出现排序按钮)

ts
{
  title: '操作日期',
  dataIndex: 'operTime',
  sorter: true, // 添加这个即可排序
},