| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768 |
- // import 'babel-polyfill';
- const config = require('../custom.json');
- const components = {};
- const methods = {};
- const filters = {};
- const directives = {};
- config.packages.map(item=>{
- /* const pkg = require('./package/' + (item.name.toLowerCase()) + '/index.js').default;*/
- const loName = item.name.toLowerCase();
- if (!pkg[loName]) return;
- if (item.type =='component'){
- if (pkg[loName].name) {
- components[item.name] = pkg[loName];
- } else {
- for (let n in pkg[loName]) {
- components[n] = pkg[loName][n];
- }
- }
- } else if (item.type == 'method'){
- methods[item.name] = pkg[loName];
- } else if (item.type == 'filter') {
- filters[item.name] = pkg[loName];
- } else if (item.type == 'directive') {
- directives[item.name] = pkg[loName];
- }
- });
- const install = function(Vue, opts = {}) {
- if (install.installed) return;
- for (let cptName in methods){
- Vue.prototype['$' + cptName.toLowerCase()] = methods[cptName];
- }
- for (let cptName in components) {
- if (components[cptName] && components[cptName].name) {
- Vue.component(components[cptName].name, components[cptName]);
- }
- }
- for (let cptName in filters) {
- if (filters[cptName] && filters[cptName].name) {
- Vue.filter(filters[cptName].name, filters[cptName]);
- }
- }
- for (let cptName in directives) {
- if (directives[cptName] && directives[cptName].name) {
- Vue.directive(directives[cptName].name, directives[cptName]);
- }
- }
- /* Vue.prototype.$dialog = components['Dialog'];
- Vue.prototype.$toast = components['Toast'];
- Vue.prototype.$loading = components['Loading']; */
- };
- if (typeof window !== 'undefined' && window.Vue) {
- install(window.Vue);
- }
- const API = Object.assign({
- //version: version,
- install
- },components,filters,directives,methods);
- export default API;
|