UNPKG

hongluan-ui

Version:
162 lines (159 loc) 6.42 kB
import { defineComponent, inject, resolveComponent, openBlock, createElementBlock, Fragment, renderList, createElementVNode, normalizeClass, normalizeStyle, createBlock, withCtx, renderSlot, normalizeProps, guardReactiveProps, createCommentVNode, createSlots } from 'vue'; import Cell from './cell.mjs'; import { simpleTableProps, simpleTableContextKey } from '../simple-table2.mjs'; import _export_sfc from '../../../../_virtual/plugin-vue_export-helper.mjs'; const _sfc_main = defineComponent({ name: "BodyRow", components: { Cell }, props: { data: simpleTableProps.data, level: { type: Number, default: 0 } }, emits: ["row-click", "cell-click"], setup() { const { rowClassName, rowStyle, cellClassName, cellStyle, firstColumnIndex, load, getSpan, currentSelectedRow, slotNames, expandSlotNames, realColsInfo, getRowKey, toggleExpandRow, expandedKeyExisted, isShowTooltipMap, tdMouseover, tdMouseleave, tableTreeMap, hasChildren, hasTreeData, toggleExpandTree } = inject(simpleTableContextKey); return { rowClassName, rowStyle, cellClassName, cellStyle, firstColumnIndex, load, getSpan, currentSelectedRow, slotNames, expandSlotNames, realColsInfo, getRowKey, toggleExpandRow, expandedKeyExisted, isShowTooltipMap, tdMouseover, tdMouseleave, tableTreeMap, hasChildren, hasTreeData, toggleExpandTree }; } }); function _sfc_render(_ctx, _cache, $props, $setup, $data, $options) { const _component_cell = resolveComponent("cell"); const _component_body_row = resolveComponent("body-row"); return openBlock(true), createElementBlock(Fragment, null, renderList(_ctx.data, (row, rowIndex) => { var _a, _b; return openBlock(), createElementBlock(Fragment, { key: _ctx.getRowKey(row) }, [ createElementVNode("tr", { class: normalizeClass([ typeof _ctx.rowClassName === "string" ? _ctx.rowClassName : _ctx.rowClassName({ row, rowIndex }), _ctx.currentSelectedRow === row ? "current-row" : "" ]), style: normalizeStyle([ typeof _ctx.rowStyle === "function" ? _ctx.rowStyle({ row, rowIndex }) : _ctx.rowStyle, _ctx.level && `--tree-level:${_ctx.level}` ]), onClick: ($event) => _ctx.$emit("row-click", row, rowIndex, $event) }, [ (openBlock(true), createElementBlock(Fragment, null, renderList(_ctx.realColsInfo.realCols, (column, columnIndex) => { var _a2, _b2, _c; return openBlock(), createBlock(_component_cell, { key: `${column.columnKey || ""}${_ctx.getRowKey(row)},${columnIndex}`, column, "column-index": columnIndex, row, "row-index": rowIndex, "cell-class-name": _ctx.cellClassName, "cell-style": _ctx.cellStyle, span: _ctx.getSpan({ row, column, rowIndex, columnIndex }), expanded: _ctx.expandedKeyExisted(row, (_a2 = column.expand) == null ? void 0 : _a2.slotName), "tree-expanded": (_b2 = _ctx.tableTreeMap[_ctx.getRowKey(row)]) == null ? void 0 : _b2.expanded, "show-tooltip": column.showTooltip && _ctx.isShowTooltipMap[rowIndex + "/" + columnIndex], "has-children": _ctx.hasChildren(row), "is-loading": (_c = _ctx.tableTreeMap[_ctx.getRowKey(row)]) == null ? void 0 : _c.isLoading, "first-column-index": _ctx.firstColumnIndex, "has-tree-data": _ctx.hasTreeData, onCellClick: ($event) => _ctx.$emit("cell-click", row, column, rowIndex, columnIndex, $event), onExpand: ($event) => { var _a3; return _ctx.toggleExpandRow(row, (_a3 = column.expand) == null ? void 0 : _a3.slotName); }, onTreeExpand: ($event) => _ctx.toggleExpandTree(row), onMouseover: ($event) => _ctx.tdMouseover($event, rowIndex, columnIndex), onMouseleave: _ctx.tdMouseleave }, { default: withCtx(() => [ renderSlot(_ctx.$slots, column.slotName, normalizeProps(guardReactiveProps({ row, rowIndex, column, columnIndex }))) ]), _: 2 }, 1032, ["column", "column-index", "row", "row-index", "cell-class-name", "cell-style", "span", "expanded", "tree-expanded", "show-tooltip", "has-children", "is-loading", "first-column-index", "has-tree-data", "onCellClick", "onExpand", "onTreeExpand", "onMouseover", "onMouseleave"]); }), 128)) ], 14, ["onClick"]), (openBlock(true), createElementBlock(Fragment, null, renderList(_ctx.expandSlotNames, (name) => { return openBlock(), createElementBlock(Fragment, { key: name }, [ _ctx.expandedKeyExisted(row, name) ? (openBlock(), createElementBlock("tr", { key: 0, class: normalizeClass(["expand-row", name]) }, [ createElementVNode("td", { colspan: _ctx.realColsInfo.realCols.length }, [ renderSlot(_ctx.$slots, name, { row }) ], 8, ["colspan"]) ], 2)) : createCommentVNode("v-if", true) ], 64); }), 128)), ((_a = _ctx.tableTreeMap[_ctx.getRowKey(row)]) == null ? void 0 : _a.expanded) ? (openBlock(), createBlock(_component_body_row, { key: 0, data: (_b = row == null ? void 0 : row.children) != null ? _b : [], level: _ctx.level + 1 }, createSlots({ _: 2 }, [ renderList(_ctx.slotNames, (name) => { return { name, fn: withCtx((colData) => [ renderSlot(_ctx.$slots, name, normalizeProps(guardReactiveProps(colData))) ]) }; }), renderList(_ctx.expandSlotNames, (name) => { return { name, fn: withCtx((colData) => [ renderSlot(_ctx.$slots, name, normalizeProps(guardReactiveProps(colData))) ]) }; }) ]), 1032, ["data", "level"])) : createCommentVNode("v-if", true) ], 64); }), 128); } var BodyRow = /* @__PURE__ */ _export_sfc(_sfc_main, [["render", _sfc_render]]); export { BodyRow as default }; //# sourceMappingURL=row.mjs.map