UNPKG

hongluan-ui

Version:
166 lines (161 loc) 6.5 kB
'use strict'; Object.defineProperty(exports, '__esModule', { value: true }); var vue = require('vue'); var cell = require('./cell.js'); var simpleTable = require('../simple-table2.js'); var pluginVue_exportHelper = require('../../../../_virtual/plugin-vue_export-helper.js'); const _sfc_main = vue.defineComponent({ name: "BodyRow", components: { Cell: cell["default"] }, props: { data: simpleTable.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 } = vue.inject(simpleTable.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 = vue.resolveComponent("cell"); const _component_body_row = vue.resolveComponent("body-row"); return vue.openBlock(true), vue.createElementBlock(vue.Fragment, null, vue.renderList(_ctx.data, (row, rowIndex) => { var _a, _b; return vue.openBlock(), vue.createElementBlock(vue.Fragment, { key: _ctx.getRowKey(row) }, [ vue.createElementVNode("tr", { class: vue.normalizeClass([ typeof _ctx.rowClassName === "string" ? _ctx.rowClassName : _ctx.rowClassName({ row, rowIndex }), _ctx.currentSelectedRow === row ? "current-row" : "" ]), style: vue.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) }, [ (vue.openBlock(true), vue.createElementBlock(vue.Fragment, null, vue.renderList(_ctx.realColsInfo.realCols, (column, columnIndex) => { var _a2, _b2, _c; return vue.openBlock(), vue.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: vue.withCtx(() => [ vue.renderSlot(_ctx.$slots, column.slotName, vue.normalizeProps(vue.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"]), (vue.openBlock(true), vue.createElementBlock(vue.Fragment, null, vue.renderList(_ctx.expandSlotNames, (name) => { return vue.openBlock(), vue.createElementBlock(vue.Fragment, { key: name }, [ _ctx.expandedKeyExisted(row, name) ? (vue.openBlock(), vue.createElementBlock("tr", { key: 0, class: vue.normalizeClass(["expand-row", name]) }, [ vue.createElementVNode("td", { colspan: _ctx.realColsInfo.realCols.length }, [ vue.renderSlot(_ctx.$slots, name, { row }) ], 8, ["colspan"]) ], 2)) : vue.createCommentVNode("v-if", true) ], 64); }), 128)), ((_a = _ctx.tableTreeMap[_ctx.getRowKey(row)]) == null ? void 0 : _a.expanded) ? (vue.openBlock(), vue.createBlock(_component_body_row, { key: 0, data: (_b = row == null ? void 0 : row.children) != null ? _b : [], level: _ctx.level + 1 }, vue.createSlots({ _: 2 }, [ vue.renderList(_ctx.slotNames, (name) => { return { name, fn: vue.withCtx((colData) => [ vue.renderSlot(_ctx.$slots, name, vue.normalizeProps(vue.guardReactiveProps(colData))) ]) }; }), vue.renderList(_ctx.expandSlotNames, (name) => { return { name, fn: vue.withCtx((colData) => [ vue.renderSlot(_ctx.$slots, name, vue.normalizeProps(vue.guardReactiveProps(colData))) ]) }; }) ]), 1032, ["data", "level"])) : vue.createCommentVNode("v-if", true) ], 64); }), 128); } var BodyRow = /* @__PURE__ */ pluginVue_exportHelper["default"](_sfc_main, [["render", _sfc_render]]); exports["default"] = BodyRow; //# sourceMappingURL=row.js.map