UNPKG

vhb-table

Version:

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

53 lines (45 loc) 1.45 kB
import XEUtils from 'xe-utils' class OptionConfig { constructor ($xeselect, _vm) { Object.assign(this, { value: _vm.value, label: _vm.label, visible: _vm.visible, className: _vm.className, disabled: _vm.disabled }) } update (name, value) { this[name] = value } } export function isOption (option) { return option instanceof OptionConfig } export function getOptionConfig ($xeselect, _vm, options) { return isOption(_vm) ? _vm : new OptionConfig($xeselect, _vm, options) } export function createOption ($xeselect, _vm) { return getOptionConfig($xeselect, _vm) } export function destroyOption (_vm) { const { $xeselect, optionConfig } = _vm const matchObj = XEUtils.findTree($xeselect.collectOption, option => option === optionConfig, { children: 'options' }) if (matchObj) { matchObj.items.splice(matchObj.index, 1) } } export function assemOption (_vm) { const { $el, $xeselect, $xeoptgroup, optionConfig } = _vm const groupConfig = $xeoptgroup ? $xeoptgroup.optionConfig : null if (groupConfig) { // 子选项才允许自定义插槽 optionConfig.slots = _vm.$slots if (!groupConfig.options) { groupConfig.options = [] } groupConfig.options.splice([].indexOf.call($xeoptgroup.$el.children, $el), 0, optionConfig) } else { $xeselect.collectOption.splice([].indexOf.call($xeselect.$refs.hideOption.children, $el), 0, optionConfig) } }