Cell.js 1.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354
  1. import _objectSpread from "@babel/runtime/helpers/esm/objectSpread2";
  2. import { createVNode as _createVNode } from "vue";
  3. import { defineComponent } from 'vue';
  4. import Cell from '../Cell';
  5. import { useInjectSummary } from '../context/SummaryContext';
  6. import { useInjectTable } from '../context/TableContext';
  7. import { getCellFixedInfo } from '../utils/fixUtil';
  8. export default defineComponent({
  9. name: 'ATableSummaryCell',
  10. props: ['index', 'colSpan', 'rowSpan', 'align'],
  11. setup(props, _ref) {
  12. let {
  13. attrs,
  14. slots
  15. } = _ref;
  16. const tableContext = useInjectTable();
  17. const summaryContext = useInjectSummary();
  18. return () => {
  19. const {
  20. index,
  21. colSpan = 1,
  22. rowSpan,
  23. align
  24. } = props;
  25. const {
  26. prefixCls,
  27. direction
  28. } = tableContext;
  29. const {
  30. scrollColumnIndex,
  31. stickyOffsets,
  32. flattenColumns
  33. } = summaryContext;
  34. const lastIndex = index + colSpan - 1;
  35. const mergedColSpan = lastIndex + 1 === scrollColumnIndex ? colSpan + 1 : colSpan;
  36. const fixedInfo = getCellFixedInfo(index, index + mergedColSpan - 1, flattenColumns, stickyOffsets, direction);
  37. return _createVNode(Cell, _objectSpread({
  38. "class": attrs.class,
  39. "index": index,
  40. "component": "td",
  41. "prefixCls": prefixCls,
  42. "record": null,
  43. "dataIndex": null,
  44. "align": align,
  45. "colSpan": mergedColSpan,
  46. "rowSpan": rowSpan,
  47. "customRender": () => {
  48. var _a;
  49. return (_a = slots.default) === null || _a === void 0 ? void 0 : _a.call(slots);
  50. }
  51. }, fixedInfo), null);
  52. };
  53. }
  54. });