fork-reap-design
Version:
A high quality UI components Library with Vue.js
192 lines (178 loc) • 7.53 kB
JavaScript
// import Vue from 'vue';
// import ViewUI from 'view-design';
// import 'view-design/dist/styles/iview.css';
import './styles/index.less';
// Vue.use(ViewUI);
// *************************** 业务组件 ***************************
// 12k min 4k aui-group-btn 可删
// import ButtonList from './components/button-list';
// 102k min 39k
// 新版 目标:可以给第三方应用使用
import SSOSelector from './components/sso-selector/SSOSelector';
import Selector from './components/selector';
// 旧版 仅基础平台使用
import AuiChosen from './components/chosen';
import AuiArticle from './components/form/aui-article';
import AuiFormCreate from './components/form/aui-form-create';
import AuiFormCreateItem from './components/form/aui-form-create-item';
import AuiGroupBtn from './components/form/aui-group-btn';
import AuiMaxLength from './components/form/aui-max-length';
import AuiSelect from './components/form/aui-select';
import AuiSelectArea from './components/form/aui-select-area';
import AuiSelectIdentity from './components/form/aui-select-identity';
import AuiUploadImage from './components/form/aui-upload-image';
import AuiBreadCrumb from './components/layout/aui-bread-crumb';
import AuiSlideTransition from './components/layout/aui-collapse-transition';
import AuiList from './components/layout/aui-list';
import AuiSplitLayout from './components/layout/aui-split-layout';
import AuiFooter from './components/layout/aui-footer';
import AuiTable from './components/table/index';
import TableSearch from './components/table/table-search';
import AuiTree from './components/tree';
import AuiPhone from './components/layout/aui-phone/index';
import AuiLoading from './components/layout/aui-loading';
import importTemplate from './components/upload-table';
import AuiUpload from './components/upload';
import AuiWatermark from './components/watermark';
// 引入axios & api 80k min 30k
import request from './api/request';
const components = {
// *************************** 业务组件 ***************************
// ButtonList,
Selector,
AuiChosen,
AuiArticle,
AuiFormCreate,
AuiFormCreateItem,
AuiGroupBtn,
AuiMaxLength,
AuiSelect,
AuiSelectArea,
AuiSelectIdentity,
AuiUploadImage,
AuiBreadCrumb,
AuiSlideTransition,
AuiList,
AuiSplitLayout,
AuiFooter,
AuiTable,
TableSearch,
AuiTree,
AuiPhone,
AuiLoading,
importTemplate,
AuiUpload,
AuiWatermark,
SSOSelector,
};
const iview = {
...components,
// iButton: Button,
// iCircle: Circle,
// iCol: Col,
// iContent: Content,
// iForm: Form,
// iFooter: Footer,
// iHeader: Header,
// iInput: Input,
// iMenu: Menu,
// iOption: Option,
// iProgress: Progress,
// iSelect: Select,
// iSwitch: Switch,
// iTable: Table,
// iTime: Time
};
const install = function (Vue, opts = {}) {
if (install.installed) return;
// locale.use(opts.locale);
// locale.i18n(opts.i18n);
window.Reap = window.Reap || {};
request.use(opts.axiosConfig);
Object.assign(window.Reap, request.data, opts);
Vue.component(SSOSelector.name, SSOSelector);
Object.keys(iview).forEach((key) => {
Vue.component(key, iview[key]);
});
// Vue.prototype.$IVIEW = {
// size: opts.size || '',
// transfer: 'transfer' in opts ? opts.transfer : '',
// capture: 'capture' in opts ? opts.capture : true,
// select: {
// arrow: opts.select ? opts.select.arrow ? opts.select.arrow : '' : '',
// customArrow: opts.select ? opts.select.customArrow ? opts.select.customArrow : '' : '',
// arrowSize: opts.select ? opts.select.arrowSize ? opts.select.arrowSize : '' : ''
// },
// cell: {
// arrow: opts.cell ? opts.cell.arrow ? opts.cell.arrow : '' : '',
// customArrow: opts.cell ? opts.cell.customArrow ? opts.cell.customArrow : '' : '',
// arrowSize: opts.cell ? opts.cell.arrowSize ? opts.cell.arrowSize : '' : ''
// },
// menu: {
// arrow: opts.menu ? opts.menu.arrow ? opts.menu.arrow : '' : '',
// customArrow: opts.menu ? opts.menu.customArrow ? opts.menu.customArrow : '' : '',
// arrowSize: opts.menu ? opts.menu.arrowSize ? opts.menu.arrowSize : '' : ''
// },
// tree: {
// arrow: opts.tree ? opts.tree.arrow ? opts.tree.arrow : '' : '',
// customArrow: opts.tree ? opts.tree.customArrow ? opts.tree.customArrow : '' : '',
// arrowSize: opts.tree ? opts.tree.arrowSize ? opts.tree.arrowSize : '' : ''
// },
// cascader: {
// arrow: opts.cascader ? opts.cascader.arrow ? opts.cascader.arrow : '' : '',
// customArrow: opts.cascader ? opts.cascader.customArrow ? opts.cascader.customArrow : '' : '',
// arrowSize: opts.cascader ? opts.cascader.arrowSize ? opts.cascader.arrowSize : '' : '',
// itemArrow: opts.cascader ? opts.cascader.itemArrow ? opts.cascader.itemArrow : '' : '',
// customItemArrow: opts.cascader ? opts.cascader.customItemArrow ? opts.cascader.customItemArrow : '' : '',
// itemArrowSize: opts.cascader ? opts.cascader.itemArrowSize ? opts.cascader.itemArrowSize : '' : ''
// },
// colorPicker: {
// arrow: opts.colorPicker ? opts.colorPicker.arrow ? opts.colorPicker.arrow : '' : '',
// customArrow: opts.colorPicker ? opts.colorPicker.customArrow ? opts.colorPicker.customArrow : '' : '',
// arrowSize: opts.colorPicker ? opts.colorPicker.arrowSize ? opts.colorPicker.arrowSize : '' : ''
// },
// datePicker: {
// icon: opts.datePicker ? opts.datePicker.icon ? opts.datePicker.icon : '' : '',
// customIcon: opts.datePicker ? opts.datePicker.customIcon ? opts.datePicker.customIcon : '' : '',
// iconSize: opts.datePicker ? opts.datePicker.iconSize ? opts.datePicker.iconSize : '' : ''
// },
// timePicker: {
// icon: opts.timePicker ? opts.timePicker.icon ? opts.timePicker.icon : '' : '',
// customIcon: opts.timePicker ? opts.timePicker.customIcon ? opts.timePicker.customIcon : '' : '',
// iconSize: opts.timePicker ? opts.timePicker.iconSize ? opts.timePicker.iconSize : '' : ''
// },
// tabs: {
// closeIcon: opts.tabs ? opts.tabs.closeIcon ? opts.tabs.closeIcon : '' : '',
// customCloseIcon: opts.tabs ? opts.tabs.customCloseIcon ? opts.tabs.customCloseIcon : '' : '',
// closeIconSize: opts.tabs ? opts.tabs.closeIconSize ? opts.tabs.closeIconSize : '' : ''
// },
// modal: {
// maskClosable: opts.modal ? 'maskClosable' in opts.modal ? opts.modal.maskClosable : '' : ''
// }
// };
// Vue.prototype.$Loading = LoadingBar;
// Vue.prototype.$Message = Message;
// Vue.prototype.$Modal = Modal;
// Vue.prototype.$Notice = Notice;
// Vue.prototype.$Spin = Spin;
};
// auto install
if (typeof window !== 'undefined' && window.Vue) {
install(window.Vue);
}
const API = {
version: process.env.VERSION, // eslint-disable-line no-undef
// locale: locale.use,
// i18n: locale.i18n,
install,
// Circle,
// Switch,
...components,
};
// API.lang = (code) => {
// const langObject = window['iview/locale'].default;
// if (code === langObject.i.locale) locale.use(langObject);
// else console.log(`The ${code} language pack is not loaded.`); // eslint-disable-line no-console
// };
module.exports.default = API;
module.exports = API; // eslint-disable-line no-undef