util.ts 908 B

1234567891011121314151617181920212223242526272829303132333435
  1. import type { TableColumnType } from 'antd'
  2. export const delay = (ms?: number | undefined) => new Promise(res => setTimeout(res, ms))
  3. /**
  4. *
  5. * @param c 表格columns
  6. * @param s schema
  7. * @param f 需要过滤掉的colmun
  8. * @returns
  9. */
  10. export function generateColumns(c: TableColumnType, s: any, f?: string | string[]) {
  11. if (!s) return c
  12. // 新的列
  13. const nC = [...c]
  14. if (s) {
  15. const { properties } = s
  16. const keys = Object.keys(properties)
  17. keys.forEach(item => {
  18. const isExist = c.some(column => column.dataIndex === item)
  19. // 该列在columns中未定义且不需要过滤
  20. if ((Array.isArray(f) && !f.includes(item)) || f !== item) {
  21. return
  22. }
  23. if (!isExist) {
  24. nC.splice(-2, 0, {
  25. dataIndex: item,
  26. title: properties[item].title,
  27. hideInTable: properties[item].hidden
  28. })
  29. }
  30. })
  31. }
  32. return nC
  33. }