/
index.js
executable file
·117 lines (114 loc) · 3.03 KB
/
index.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
import components from './ui/index';
import { version } from './version'
import axios from 'axios';
import { validatenull } from 'utils/validate.js';
import { randomId, deepClone, dataURLtoFile, findObject, validData, findArray, findNode, setPx, sortArrys, isJson, downFile, loadScript } from 'utils/util';
import contextmenu from 'packages/core/directive/contextmenu';
import $Export from 'plugin/export/';
import $Watermark from 'plugin/watermark/';
import $Log from 'plugin/logs/';
import locale from './locale/';
import $Screenshot from 'plugin/screenshot/';
import $Clipboard from 'plugin/clipboard/';
import $Print from 'plugin/print/';
import $ImagePreview from 'packages/core/components/image-preview/';
import createIcon from './icon';
let plugins = {
$ImagePreview,
$Export,
$Print,
$Clipboard,
$Watermark,
$Log,
$Screenshot,
deepClone,
dataURLtoFile,
isJson,
setPx,
validData,
findArray,
findNode,
validatenull,
downFile,
loadScript,
findObject,
randomId
};
let directive = {
contextmenu
}
const install = function (Vue, opts = {}) {
const defaultOption = {
size: opts.size || 'default',
calcHeight: opts.calcHeight || 0,
menuType: opts.menuType || 'text',
appendToBody: validData(opts.appendToBody, true),
canvas: Object.assign({
text: 'avuejs.com',
fontFamily: 'microsoft yahei',
color: '#999',
fontSize: 16,
opacity: 100,
bottom: 10,
right: 10,
ratio: 1
}, opts.canvas),
qiniu: Object.assign({
AK: '',
SK: '',
scope: '',
url: '',
bucket: 'https://upload.qiniup.com',
deadline: 1
}, (opts.qiniu || {})),
ali: Object.assign({
region: '',
endpoint: '',
stsToken: '',
accessKeyId: '',
accessKeySecret: '',
bucket: ''
}, (opts.ali || {}))
}
Vue.config.globalProperties.$AVUE = Object.assign(opts, defaultOption);
Object.keys(components).forEach(ele => {
const component = components[ele];
Vue.component(component.name, component);
});
createIcon(Vue);
Object.keys(plugins).forEach((key) => {
Vue.config.globalProperties[key] = plugins[key];
});
Object.keys(directive).forEach((key) => {
Vue.directive(key, directive[key]);
});
// 国际化
locale.use(opts.locale);
locale.i18n(opts.i18n);
Vue.config.globalProperties.$uploadFun = function (column = {}, safe) {
safe = safe || this;
let list = ['uploadPreview', 'uploadBefore', 'uploadAfter', 'uploadDelete', 'uploadError', 'uploadExceed'];
let result = {};
if (column.type === 'upload') {
list.forEach(ele => {
if (!column[ele]) {
result[ele] = safe[ele];
}
});
} else {
list.forEach(ele => {
result[ele] = safe[ele];
});
}
return result;
};
Vue.config.globalProperties.$axios = opts.axios || axios
};
export default {
...{
version,
locale,
install
},
...components
}