wetrade-design
Version:
一款多语言支持Vue3的UI框架
47 lines • 1.94 kB
JavaScript
import _objectSpread from "@babel/runtime/helpers/esm/objectSpread2";
import { createVNode as _createVNode } from "vue";
import { defineComponent } from 'vue';
import Cell from '../Cell';
import { useInjectSummary } from '../context/SummaryContext';
import { useInjectTable } from '../context/TableContext';
import { getCellFixedInfo } from '../utils/fixUtil';
export default defineComponent({
name: 'SummaryCell',
props: ['index', 'colSpan', 'rowSpan', 'align'],
setup: function setup(props, _ref) {
var attrs = _ref.attrs,
slots = _ref.slots;
var tableContext = useInjectTable();
var summaryContext = useInjectSummary();
return function () {
var index = props.index,
_props$colSpan = props.colSpan,
colSpan = _props$colSpan === void 0 ? 1 : _props$colSpan,
rowSpan = props.rowSpan,
align = props.align;
var prefixCls = tableContext.prefixCls,
direction = tableContext.direction;
var scrollColumnIndex = summaryContext.scrollColumnIndex,
stickyOffsets = summaryContext.stickyOffsets,
flattenColumns = summaryContext.flattenColumns;
var lastIndex = index + colSpan - 1;
var mergedColSpan = lastIndex + 1 === scrollColumnIndex ? colSpan + 1 : colSpan;
var fixedInfo = getCellFixedInfo(index, index + mergedColSpan - 1, flattenColumns, stickyOffsets, direction);
return _createVNode(Cell, _objectSpread({
"class": attrs.class,
"index": index,
"component": "td",
"prefixCls": prefixCls,
"record": null,
"dataIndex": null,
"align": align,
"colSpan": mergedColSpan,
"rowSpan": rowSpan,
"customRender": function customRender() {
var _slots$default;
return (_slots$default = slots.default) === null || _slots$default === void 0 ? void 0 : _slots$default.call(slots);
}
}, fixedInfo), null);
};
}
});