comic-plus
Version:
<p align="center"> <img width="200px" src="./logo.png"/> </p>
73 lines (72 loc) • 2.37 kB
JavaScript
;
Object.defineProperties(exports, { __esModule: { value: true }, [Symbol.toStringTag]: { value: "Module" } });
const vue = require("vue");
const type = require("../type.js");
const tableColgroup = require("../components/table-colgroup.js");
const TableFooter = vue.defineComponent({
name: "TableFooter",
setup() {
var _a;
const { props, columns, getFixedIndex, getCellClass } = vue.inject(type.TABLE_PROVIDE);
const defaultSummaryMethod = ({ columns: columns2, datas }) => {
const sum = columns2.map((col, idx) => {
if (idx === 0) return props.sumText;
return datas.reduce((result, row) => {
if (isNaN(result + Number(row[col.prop]))) {
return "";
} else {
return result + Number(row[col.prop]);
}
}, 0);
});
return sum;
};
const params = vue.ref({
columns: columns.value.map((v) => v.props),
datas: props.data
});
const footerCols = ((_a = props.summaryMethod) == null ? void 0 : _a.call(props, params.value)) || defaultSummaryMethod(params.value);
return () => {
return vue.h(
"div",
{
class: "cu-table__footer"
},
vue.h(
"table",
{
cellspacing: 0,
cellpadding: 0
},
[
vue.h(tableColgroup.default),
vue.h(
"tfoot",
vue.h("tr", { class: "cu-table__row" }, [
columns.value.map((col, colIdx) => {
return vue.h(
"th",
{
key: col.uid,
class: [
"cu-table__th",
col.fixed ? "fixed-" + col.fixed : void 0,
{ "fixed-shadow-left": getFixedIndex.value.left == colIdx },
{ "fixed-shadow-right": getFixedIndex.value.right == colIdx }
],
style: col.style,
rowspan: 1,
colspan: 1
},
vue.h("div", { class: ["cu-table__cell", ...getCellClass(col)] }, footerCols[colIdx])
);
})
])
)
]
)
);
};
}
});
exports.default = TableFooter;