UNPKG

vxe-table

Version:

一个基于 vue 的 PC 端表格组件,支持增删改查、虚拟滚动、懒加载、快捷菜单、数据校验、树形结构、打印导出、表单渲染、数据分页、虚拟列表、模态窗口、自定义模板、渲染器、贼灵活的配置项、扩展接口等...

79 lines (71 loc) 2.31 kB
import VXETable from '../../v-x-e-table' const lineOffsetSizes = { mini: 3, small: 2, medium: 1 } function countTreeExpand (prevRow, params) { const { $table } = params const rowChildren = prevRow[$table.treeOpts.children] let count = 1 if ($table.isTreeExpandByRow(prevRow)) { for (let index = 0; index < rowChildren.length; index++) { count += countTreeExpand(rowChildren[index], params) } } return count } export function getOffsetSize ($xetable) { return lineOffsetSizes[$xetable.vSize] || 0 } export function calcTreeLine (params, items) { const { $table, $rowIndex } = params let expandSize = 1 if ($rowIndex) { expandSize = countTreeExpand(items[$rowIndex - 1], params) } return $table.rowHeight * expandSize - ($rowIndex ? 1 : (12 - getOffsetSize($table))) } export function mergeBodyMethod (mergeList, _rowIndex, _columnIndex) { for (let mIndex = 0; mIndex < mergeList.length; mIndex++) { const { row: mergeRowIndex, col: mergeColIndex, rowspan: mergeRowspan, colspan: mergeColspan } = mergeList[mIndex] if (mergeColIndex > -1 && mergeRowIndex > -1 && mergeRowspan && mergeColspan) { if (mergeRowIndex === _rowIndex && mergeColIndex === _columnIndex) { return { rowspan: mergeRowspan, colspan: mergeColspan } } if (_rowIndex >= mergeRowIndex && _rowIndex < mergeRowIndex + mergeRowspan && _columnIndex >= mergeColIndex && _columnIndex < mergeColIndex + mergeColspan) { return { rowspan: 0, colspan: 0 } } } } } export function clearTableDefaultStatus (_vm) { _vm.inited = false _vm.clearSort() _vm.clearCurrentRow() _vm.clearCurrentColumn() _vm.clearRadioRow() _vm.clearRadioReserve() _vm.clearCheckboxRow() _vm.clearCheckboxReserve() _vm.clearRowExpand() _vm.clearTreeExpand() _vm.clearTreeExpandReserve() if (VXETable._edit) { _vm.clearActived() } if (_vm.keyboardConfig || _vm.mouseConfig) { _vm.clearSelected() } if (_vm.mouseConfig) { _vm.clearCellAreas() _vm.clearCopyCellArea() } return _vm.clearScroll() } export function clearTableAllStatus (_vm) { if (VXETable._filter) { return _vm.clearFilter() } return clearTableDefaultStatus(_vm) }