comic-plus
Version:
<p align="center"> <img width="200px" src="./logo.png"/> </p>
80 lines (79 loc) • 2.75 kB
JavaScript
"use strict";
Object.defineProperties(exports, { __esModule: { value: true }, [Symbol.toStringTag]: { value: "Module" } });
const vue = require("vue");
const type = require("../type.js");
const index = require("../../../checkbox/index.js");
const tableColgroup = require("../components/table-colgroup.js");
require("../../../../utils/config.js");
const typescript = require("../../../../utils/typescript.js");
require("@vueuse/core");
const TableHeader = vue.defineComponent({
name: "TableHeader",
setup() {
const { props, columns, isAllSelected, indeterminate, getFixedIndex, selectAll, getCellClass } = vue.inject(type.TABLE_PROVIDE);
const helpRender = (col) => {
const type2 = col.props.type;
if (type2 === "selection") {
return vue.h(index.CuCheckbox, {
modelValue: isAllSelected.value,
indeterminate: indeterminate.value,
onChange: selectAll
});
} else if (type2 === "index") {
return col.props.label;
} else if (type2 === "default") {
return col.header ? col.header({ column: "内容待定" }) : col.props.label;
}
};
return () => {
return vue.h(
"div",
{
class: "cu-table__header"
},
vue.h(
"table",
{
cellspacing: 0,
cellpadding: 0
},
[
vue.h(tableColgroup.default),
vue.h(
"thead",
vue.h(
"tr",
{
class: ["cu-table__row", props.headerRowClass],
style: props.headerRowStyle
},
[
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 },
typescript.isFunction(props.headerCellClass) ? props.headerCellClass({ col, colIndex: colIdx }) : props.headerCellClass
],
style: col.style,
rowspan: 1,
colspan: 1
},
vue.h("div", { class: ["cu-table__cell", ...getCellClass(col)] }, helpRender(col))
);
})
]
)
)
]
)
);
};
}
});
exports.default = TableHeader;