import Code from './code' import Confirm from './confirm' import Detail from './detail' import Editor from './editor' import FileUpload from './file-upload' import Form from './form' import ImageUpload from './Image-upload' import ImageUploadMultiple from './Image-upload/multiple' import ImageView from './image-view' import KeywordInput from './keyword-input' import RadioGroup from './radio-group' import Scheme from './scheme' import Search from './search' import Select from './select' import StatusIndicator from './status-indicator' import SwitchButton from './switch-button' import Table from './table' import TreeSelect from './tree-select' const components = { Code, Confirm, Detail, Editor, FileUpload, Form, ImageUpload, ImageUploadMultiple, ImageView, KeywordInput, RadioGroup, Scheme, Search, Select, StatusIndicator, SwitchButton, Table, TreeSelect } // 给组件库配置install方法 const install = function (Vue, opts = {}) { Object.values(components).forEach(component => { // 组件前缀 const prefix = opts.name || 'eagle'; // 配置组件名称 const name = prefix + component.name component.name = name const emptyMethod = () => undefined; if (component.computed) { component.computed.prefix = () => { return prefix }; } else { component.computed = { prefix: () => { return prefix } } } if (component.methods) { component.methods.i18n = opts.i18n || emptyMethod; if (component.name.indexOf('Scheme') > -1) { if (opts.currPageAlias) { component.computed.currPageAlias = () => opts.currPageAlias; } if (opts.pageSizeAlias) { component.computed.pageSizeAlias = () => opts.pageSizeAlias; } if (opts.totalCountAlias) { component.computed.totalCountAlias = () => opts.totalCountAlias; } if (opts.searchMethod) { component.computed.searchMethod = () => opts.searchMethod; } if (opts.getMethod) { component.computed.getMethod = () => opts.getMethod; } if (opts.newMethod) { component.computed.newMethod = () => opts.newMethod; } if (opts.editMethod) { component.computed.editMethod = () => opts.editMethod; } if (opts.deleteMethod) { component.computed.deleteMethod = () => opts.deleteMethod; } if (opts.searchFilter) { component.methods.searchFilter = opts.searchFilter; } if (opts.resultFilter) { component.methods.resultFilter = opts.resultFilter; } if (opts.detailFilter) { component.methods.detailFilter = opts.detailFilter; } if (opts.getFilter) { component.methods.getFilter = opts.getFilter; } if (opts.deleteFilter) { component.methods.deleteFilter = opts.deleteFilter; } if (opts.newFilter) { component.methods.newFilter = opts.newFilter; } if (opts.editFilter) { component.methods.editFilter = opts.editFilter; } if (opts.successFilter) { component.methods.successFilter = opts.successFilter; } } } else { component.methods = { i18n: opts.i18n || emptyMethod } } // 给每个子组件配置install方法 component.install = function (Vue) { Vue.component(name, component) } // 将每个子组件注册为全局组件 Vue.component(name, component) }) } export default { install, ...components }