UNPKG

shu-c-view

Version:

rollup 打包vue@2.7组件库框架

278 lines (273 loc) 8.47 kB
/** * @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 };