table.js 1.9 KB

123456789101112131415161718192021222324252627282930313233343536373839
  1. // 数据表格配置
  2. const XEUtils = require("xe-utils")
  3. export default {
  4. pageSize: 20, // 表格每一页条数
  5. pageSizes: [5, 10, 15, 20, 50, 100, 200, 500, 1000], // 表格可设置的一页条数
  6. layouts: ["PrevJump", "PrevPage", "Jump", "PageCount", "NextPage", "NextJump", "Sizes", "Total"], // 表格分页布局
  7. exportExcludeFields: ["checkbox", "radio"],
  8. queryData: function ({ formConfig: { data }, pagerConfig: { enabled, currentPage, pageSize } }, paramsColumns) {
  9. const query = enabled === false ? {} : { current: currentPage, size: pageSize }
  10. XEUtils.arrayEach(paramsColumns, item => {
  11. if (item.defaultValue) XEUtils.set(query, item.column, item.defaultValue)
  12. if (!valueIsNull(data, item.field || item.column)) XEUtils.set(query, item.column, XEUtils.get(data, item.field || item.column))
  13. })
  14. return query
  15. },
  16. queryExport: function ({ formConfig: { data }, pagerConfig: { total } }, paramsColumns) {
  17. // 判断total
  18. const query = { current: 1, size: total }
  19. XEUtils.arrayEach(paramsColumns, item => {
  20. if (item.defaultValue) XEUtils.set(query, item.column, item.defaultValue)
  21. else if (!valueIsNull(data, item.field || item.column)) XEUtils.set(query, item.column, XEUtils.get(data, item.field || item.column))
  22. })
  23. return query
  24. },
  25. parseData: function (res) {
  26. return {
  27. data: res.records || res, // 分析数据字段结构
  28. total: res.total // 分析总数字段结构
  29. }
  30. }
  31. }
  32. function valueIsNull(obj, key) {
  33. return XEUtils.get(obj, key) === "" || XEUtils.isNull(XEUtils.get(obj, key)) || XEUtils.isUndefined(XEUtils.get(obj, key)) || XEUtils.isEmpty(XEUtils.get(obj, key))
  34. }