birdpaper-ui
Version:
一个通用的 vue3 UI组件库。A common vue3 UI component library.
58 lines (57 loc) • 2.25 kB
JavaScript
import { defineComponent, ref, resolveComponent, openBlock, createElementBlock, Fragment, createVNode, createElementVNode, renderList, normalizeClass, toDisplayString } from "vue";
import _sfc_main$1 from "./col-group.vue.js";
const _hoisted_1 = { class: "bp-table-header-thead" };
const __default__ = defineComponent({
name: "TableHeader"
});
const _sfc_main = /* @__PURE__ */ defineComponent({
...__default__,
props: {
headerList: { type: Array, default: () => [] }
},
emits: ["on-select-all"],
setup(__props, { expose: __expose, emit: emits }) {
const thClass = (item) => {
let align = `text-${item["headerAlign"] || item["align"] || "left"}`;
let name = ["bp-table-th", align];
return name;
};
const isSelectAll = ref(false);
const onSelectChange = () => {
emits("on-select-all", isSelectAll.value);
};
__expose({
isSelectAll
});
return (_ctx, _cache) => {
const _component_bp_checkbox = resolveComponent("bp-checkbox");
return openBlock(), createElementBlock(Fragment, null, [
createVNode(_sfc_main$1, { cols: __props.headerList }, null, 8, ["cols"]),
createElementVNode("thead", _hoisted_1, [
createElementVNode("tr", null, [
(openBlock(true), createElementBlock(Fragment, null, renderList(__props.headerList, (item) => {
return openBlock(), createElementBlock(Fragment, null, [
item.type === "checkbox" ? (openBlock(), createElementBlock("th", {
key: 0,
class: normalizeClass(thClass(item))
}, [
createVNode(_component_bp_checkbox, {
modelValue: isSelectAll.value,
"onUpdate:modelValue": _cache[0] || (_cache[0] = ($event) => isSelectAll.value = $event),
onChange: onSelectChange
}, null, 8, ["modelValue"])
], 2)) : (openBlock(), createElementBlock("th", {
key: 1,
class: normalizeClass(thClass(item))
}, toDisplayString(item.title), 3))
], 64);
}), 256))
])
])
], 64);
};
}
});
export {
_sfc_main as default
};