shu-c-view
Version:
rollup 打包vue@2.7组件库框架
278 lines (273 loc) • 8.47 kB
JavaScript
/**
* @desc 全局组件库
*/
import _has from 'lodash/has';
import _merge from 'lodash/merge';
import _join from 'lodash/join';
import _get from 'lodash/get';
import pkg from '../package.json';
import { BaseSelect } from './select/index.js';
import { BasePermissionBox } from './permission-box/index.js';
import { BaseBorderLayout } from './border-layout/index.js';
import { BaseDoubleWing } from './double-wing/index.js';
import { BaseNavMenu } from './nav-menu/index.js';
import { BaseDropDown } from './drop-down/index.js';
import { BaseBreadCrumb } from './bread-crumb/index.js';
import { BaseGrid } from './grid/index.js';
import { BaseDialog } from './dialog/index.js';
import { BaseTree } from './tree/index.js';
import { BaseBlockGroup } from './block-group/index.js';
import { BaseDropColumnDown } from './drop-column-down/index.js';
import { BaseRollTable } from './roll-grid/index.js';
import { BaseDrawer } from './drawer/index.js';
import { BaseIconPicker } from './icon-picker/index.js';
import { BaseSelectTree } from './select-tree/index.js';
import { BaseTempVar } from './temp-var/index.js';
import { BaseSelectInput } from './select-input/index.js';
import { BaseCheckboxGroup } from './checkbox-group/index.js';
import { BaseViewCollapse } from './view-collapse/index.js';
import { BaseDeferInput } from './defer-input/index.js';
import { BaseLabel } from './label/index.js';
import { BaseButton } from './button/index.js';
import { BasePasswordCheck } from './password-check/index.js';
import { BaseSelectGrid } from './select-grid/index.js';
import { BaseTableSelectCondition } from './condition/index.js';
import { BaseNestingGrid } from './nesting-grid/index.js';
import { BaseEditGrid } from './edit-grid/index.js';
import { Steps as BaseSteps, Step as BaseStep } from './steps/index.js';
import { BaseIframe } from './iframe/index.js';
import { BaseDragGrid } from './drag-grid/index.js';
import { BaseSelectInputTable } from './select-input-table/index.js';
import { BaseCarouselProgress } from './carousel-progress/index.js';
import { BaseTransferTree } from './transfer-tree/index.js';
import { BaseTreeAnchor } from './tree-anchor/index.js';
import { BaseSvgIcon } from './svg-icon/index.js';
import { BaseTransferGrid } from './transfer-table/index.js';
import { BaseDragDialog } from './dialog/drag.js';
import { BaseVBoxLayout } from './v-box-layout/index.js';
import { BaseHBoxLayout } from './h-box-layout/index.js';
import { BaseColumnLayout } from './column-layout/index.js';
import { BaseSelectIconPicker } from './select-icon-picker/index.js';
import { BaseTabs } from './tabs/index.js';
import { BaseAbsoluteLayout } from './absolute-layout/index.js';
import { BaseFitLayout } from './fit-layout/index.js';
import { BaseCascaderTree } from './cascader-tree/index.js';
import { BaseScrollbar } from './scrollbar/index.js';
import { BaseForm } from './form-layout/index.js';
import { BaseElForm } from './el-form-layout/index.js';
import { BasePropertyGrid } from './property-grid/index.js';
import { BaseMenuButton } from './menu-button/index.js';
import { BaseRenderSelf } from './render-self/index.js';
import { BaseSelectCollapseCheckbox } from './select-collapse-checkbox/index.js';
import { BaseCascader } from './cascader/index.js';
import { BasePanel } from './panel/index.js';
import { BaseHorizontalMenu } from './horizontal-menu/index.js';
import { BaseSwitchButton } from './base-switch-button/index.js';
import { BaseColorCard } from './color-card/index.js';
import { BaseInnerProgress } from './inner-progress';
import { BaseControlProgress } from './control-progress/index.js';
import { BaseEntNumLine } from './ent-num-line/index.js';
import { BaseCustomSteps, BaseCustomStep } from './custom-steps/index.js';
import { BaseAnchor, BaseAnchorLink, BaseAffix } from './anchor/index.js';
import { BaseSelectPopover } from './select-popover/index.js';
import { BaseQuarterPicker } from './quarter-picker/index.js';
import { BasePriceInput } from './price-input/index.js';
import { BaseCountDown } from './count-down/index.js';
// 所有的组件,在下面的 export 中也需要
const allComponents = {
BaseSelect,
BasePermissionBox,
BaseBorderLayout,
BaseDoubleWing,
BaseNavMenu,
BaseDropDown,
BaseBreadCrumb,
BaseGrid,
BaseTree,
BaseBlockGroup,
BaseDropColumnDown,
BaseRollTable,
BaseIconPicker,
BaseSelectTree,
BaseTempVar,
BaseSelectInput,
BaseCheckboxGroup,
BaseViewCollapse,
BaseDeferInput,
BaseLabel,
BaseButton,
BasePasswordCheck,
BaseSelectGrid,
BaseTableSelectCondition,
BaseNestingGrid,
BaseEditGrid,
BaseSteps,
BaseStep,
BaseIframe,
BaseDragGrid,
BaseSelectInputTable,
BaseCarouselProgress,
BaseTransferTree,
BaseTreeAnchor,
BaseSvgIcon,
BaseTransferGrid,
BaseVBoxLayout,
BaseHBoxLayout,
BaseColumnLayout,
BaseSelectIconPicker,
BaseTabs,
BaseAbsoluteLayout,
BaseFitLayout,
BaseCascaderTree,
BaseScrollbar,
BaseForm,
BaseElForm,
BasePropertyGrid,
BaseMenuButton,
BaseRenderSelf,
BaseSelectCollapseCheckbox,
BaseCascader,
BasePanel,
BaseHorizontalMenu,
BaseSwitchButton,
BaseInnerProgress,
BaseColorCard,
BaseControlProgress,
BaseEntNumLine,
BaseCustomSteps,
BaseCustomStep,
BaseAnchor,
BaseAnchorLink,
BaseAffix,
BaseSelectPopover,
BaseQuarterPicker,
BasePriceInput,
BaseCountDown
};
/**
* @desc 插件入口
* @param {Object} Vue
* @param {options} [options={globalOptions: {}}] - 选项配置
*/
function install(Vue, options = { globalOptions: {} }) {
// 组件
const strComponentNames = [];
for (const key in allComponents) {
strComponentNames.push(key);
Vue.component(key, allComponents[key]);
}
// Vue.use(Steps);
console.warn('全局组件:', _join(strComponentNames, ' '));
// 全局配置参数
const defaultGlobalOptions = {
grid: {
paginationAttributes: {
currentPage: 1,
pageSize: 10
},
page: 'page',
size: 'size',
total: 'data.totalRecord',
data: 'data.results',
pageNum: 'pageNum',
pageSize: 'pageSize'
},
checkboxGroup: {
data: 'data'
}
};
Object.defineProperty(Vue.prototype, '$base-global-options', {
value: _merge({}, defaultGlobalOptions, _get(options, 'globalOptions', {}))
});
// 弹出框
if (!_has(Vue.prototype, '$baseDialog')) {
Object.defineProperty(Vue.prototype, '$baseDialog', {
value: BaseDialog(Vue)
});
}
// 弹出框-拖拽
if (!_has(Vue.prototype, '$BaseDragDialog')) {
Object.defineProperty(Vue.prototype, '$BaseDragDialog', {
value: BaseDragDialog(Vue)
});
}
// 弹出抽屉
if (!_has(Vue.prototype, '$baseDrawer')) {
Object.defineProperty(Vue.prototype, '$baseDrawer', {
value: BaseDrawer(Vue)
});
}
}
if (typeof window !== 'undefined' && window.Vue) {
install(window.Vue);
}
export default { install, version: pkg.version }; // shuCView
export {
BaseSelect,
BasePermissionBox,
BaseBorderLayout,
BaseDoubleWing,
BaseNavMenu,
BaseDropDown,
BaseBreadCrumb,
BaseGrid,
BaseTree,
BaseBlockGroup,
BaseDropColumnDown,
BaseRollTable,
BaseIconPicker,
BaseSelectTree,
BaseTempVar,
BaseSelectInput,
BaseCheckboxGroup,
BaseViewCollapse,
BaseDeferInput,
BaseLabel,
BaseButton,
BasePasswordCheck,
BaseSelectGrid,
BaseTableSelectCondition,
BaseNestingGrid,
BaseEditGrid,
BaseSteps,
BaseStep,
BaseIframe,
BaseDragGrid,
BaseSelectInputTable,
BaseCarouselProgress,
BaseTransferTree,
BaseTreeAnchor,
BaseSvgIcon,
BaseTransferGrid,
BaseVBoxLayout,
BaseHBoxLayout,
BaseColumnLayout,
BaseSelectIconPicker,
BaseTabs,
BaseAbsoluteLayout,
BaseFitLayout,
BaseCascaderTree,
BaseScrollbar,
BaseForm,
BaseElForm,
BasePropertyGrid,
BaseMenuButton,
BaseRenderSelf,
BaseSelectCollapseCheckbox,
BaseCascader,
BasePanel,
BaseHorizontalMenu,
BaseSwitchButton,
BaseInnerProgress,
BaseColorCard,
BaseControlProgress,
BaseEntNumLine,
BaseCustomSteps,
BaseCustomStep,
BaseAnchor,
BaseAnchorLink,
BaseSelectPopover,
BaseQuarterPicker,
BasePriceInput,
BaseCountDown
};