@lambo-design/shared 1.0.0-beta.242 → 1.0.0-beta.243
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/config/config.js +51 -51
- package/config/env.js +4 -4
- package/config/index.js +7 -7
- package/config/themes/atrovirens/atrovirens.less +667 -667
- package/config/themes/atrovirens/var.less +674 -674
- package/config/themes/blue/blue.less +669 -669
- package/config/themes/blue/var.less +677 -677
- package/config/themes/blue-white/blue-white.less +669 -669
- package/config/themes/blue-white/var.less +676 -676
- package/config/themes/blue-white-tight/blue-white-tight.less +672 -672
- package/config/themes/blue-white-tight/var.less +677 -677
- package/config/themes/danqing/danqing.less +668 -668
- package/config/themes/danqing/danqing.wxss +572 -572
- package/config/themes/danqing/var.less +679 -679
- package/config/themes/deep/deep.less +669 -669
- package/config/themes/deep/var.less +677 -677
- package/config/themes/default/default.less +671 -671
- package/config/themes/default/var.less +677 -677
- package/config/themes/eap/eap.less +671 -671
- package/config/themes/eap/var.less +677 -677
- package/config/themes/gold/gold.less +671 -671
- package/config/themes/gold/var.less +677 -677
- package/config/themes/index.js +28 -28
- package/config/themes/lime/lime.less +671 -671
- package/config/themes/lime/var.less +678 -678
- package/config/themes/orange/orange.less +671 -671
- package/config/themes/orange/var.less +678 -678
- package/config/themes/red/red.less +671 -671
- package/config/themes/red/var.less +677 -677
- package/config/themes/theme-atrovirens.js +558 -558
- package/config/themes/theme-blue.js +558 -558
- package/config/themes/theme-bw.js +558 -558
- package/config/themes/theme-bwt.js +559 -559
- package/config/themes/theme-danqing.js +558 -558
- package/config/themes/theme-deep.js +558 -558
- package/config/themes/theme-default.js +558 -558
- package/config/themes/theme-eap.js +558 -558
- package/config/themes/theme-gold.js +558 -558
- package/config/themes/theme-lime.js +558 -558
- package/config/themes/theme-orange.js +559 -559
- package/config/themes/theme-red.js +558 -558
- package/config/themes/theme-white.js +557 -557
- package/config/themes/white/var.less +675 -675
- package/config/themes/white/white.less +668 -668
- package/directives/index.js +23 -23
- package/directives/module/draggable.js +56 -56
- package/directives/module/permission.js +49 -49
- package/directives/module/print.js +1 -1
- package/directives/module/vue-print-nb/README.md +63 -63
- package/directives/module/vue-print-nb/print.js +94 -94
- package/directives/module/vue-print-nb/printarea.js +532 -532
- package/index.js +10 -10
- package/nstyles/common.less +197 -197
- package/nstyles/components/404.less +46 -46
- package/nstyles/components/button.less +34 -34
- package/nstyles/components/date-picker.less +37 -37
- package/nstyles/components/drawer.less +20 -20
- package/nstyles/components/dropdown.less +18 -18
- package/nstyles/components/excel-flow.less +72 -72
- package/nstyles/components/form.less +313 -313
- package/nstyles/components/index.less +23 -23
- package/nstyles/components/layout/collect.less +10 -10
- package/nstyles/components/layout/detail-view.less +107 -107
- package/nstyles/components/layout/full-screen.less +7 -7
- package/nstyles/components/layout/index.less +7 -7
- package/nstyles/components/layout/other-menu.less +142 -142
- package/nstyles/components/layout/page-view.less +101 -101
- package/nstyles/components/layout/sider-trigger.less +41 -41
- package/nstyles/components/layout/tags-nav.less +113 -113
- package/nstyles/components/modal.less +85 -85
- package/nstyles/components/n-button.less +131 -131
- package/nstyles/components/n-image-preview.less +131 -131
- package/nstyles/components/n-model/index.less +19 -19
- package/nstyles/components/n-model/report-index.less +43 -43
- package/nstyles/components/n-panel.less +40 -40
- package/nstyles/components/n-picker.less +37 -37
- package/nstyles/components/n-sign.less +17 -17
- package/nstyles/components/n-tooltip.less +10 -10
- package/nstyles/components/panel.less +31 -31
- package/nstyles/components/select.less +3 -3
- package/nstyles/components/sign.less +27 -27
- package/nstyles/components/table.less +315 -315
- package/nstyles/components/tree.less +158 -158
- package/nstyles/components/upload.less +164 -164
- package/nstyles/index.less +5 -5
- package/nstyles/reset.less +65 -65
- package/nstyles/third/ag.less +174 -174
- package/nstyles/third/index.less +11 -11
- package/nstyles/third/view-design.less +366 -366
- package/nstyles/variables/base.less +143 -143
- package/nstyles/variables/index.less +4 -4
- package/nstyles/variables/theme/default/button.less +7 -7
- package/nstyles/variables/theme/default/common.less +57 -57
- package/nstyles/variables/theme/default/index.less +7 -7
- package/nstyles/variables/theme/default/layout.less +40 -40
- package/nstyles/variables/theme/default/table.less +37 -37
- package/nstyles/variables/theme/default/tag.less +3 -3
- package/nstyles/variables/theme/default/upload.less +3 -3
- package/nstyles/variables/theme/index.less +13 -13
- package/nstyles/variables/theme/small/button.less +7 -7
- package/nstyles/variables/theme/small/common.less +39 -39
- package/nstyles/variables/theme/small/index.less +5 -5
- package/nstyles/variables/theme/small/layout.less +21 -21
- package/nstyles/variables/theme/small/table.less +17 -17
- package/nstyles/variables/theme/small/tag.less +3 -3
- package/package.json +1 -1
- package/plugin/index.js +12 -12
- package/plugin/module/date-format.js +30 -30
- package/plugin/module/loading.js +26 -26
- package/plugin/module/warn-handler.js +11 -11
- package/styles/variables.less +21 -21
- package/utils/ajax/cacheconf.js +19 -19
- package/utils/ajax/content-type.js +30 -30
- package/utils/ajax/index.js +12 -12
- package/utils/ajax/interceptors.js +97 -97
- package/utils/assist.js +147 -147
- package/utils/base64.js +126 -126
- package/utils/blob.js +47 -47
- package/utils/bus.js +3 -3
- package/utils/crypto/index.js +48 -48
- package/utils/crypto/md5.js +152 -152
- package/utils/crypto/sm3.js +235 -235
- package/utils/date.js +381 -381
- package/utils/dict/built-in-dict.js +20 -20
- package/utils/dict/index.js +167 -167
- package/utils/dom.js +38 -38
- package/utils/event.js +72 -72
- package/utils/excel.js +655 -655
- package/utils/file.js +19 -19
- package/utils/form/validate.js +29 -29
- package/utils/half-year.js +68 -68
- package/utils/index.js +41 -41
- package/utils/json.js +29 -29
- package/utils/lodop.js +165 -165
- package/utils/menu/before-close.js +17 -17
- package/utils/menu/index.js +395 -395
- package/utils/mime_type.js +67 -67
- package/utils/modelerUtil.js +227 -227
- package/utils/n/api.js +22 -22
- package/utils/n/date.js +57 -57
- package/utils/n/index.js +9 -9
- package/utils/n/is-type.js +176 -176
- package/utils/n/number.js +144 -144
- package/utils/n/permission-cache.js +11 -11
- package/utils/n/reuqest/axiosN.js +17 -17
- package/utils/n/reuqest/content-type.js +19 -19
- package/utils/n/reuqest/interceptors.js +95 -95
- package/utils/n/reuqest/url-params.js +12 -12
- package/utils/n/storage.js +51 -51
- package/utils/n/token.js +51 -51
- package/utils/n/user-cache.js +11 -11
- package/utils/n/user.js +34 -34
- package/utils/n/uuid.js +16 -16
- package/utils/n-generator-routers.js +208 -208
- package/utils/n-router.js +205 -205
- package/utils/n-theme.js +30 -30
- package/utils/number.js +180 -180
- package/utils/oss.js +57 -57
- package/utils/platform.js +1334 -1334
- package/utils/quarter.js +58 -58
- package/utils/storage.js +198 -198
- package/utils/style.js +24 -24
- package/utils/theme.js +138 -138
- package/utils/transfer-queue.js +7 -7
- package/utils/transform.js +204 -204
- package/utils/type.js +102 -102
- package/utils/util.js +795 -795
- package/utils/validator.js +181 -181
- package/utils/vxetable/index.js +25 -25
- package/utils/zoomScroll.js +9 -9
|
@@ -1,97 +1,97 @@
|
|
|
1
|
-
import qs from 'qs'
|
|
2
|
-
import cacheRules from "./cacheconf";
|
|
3
|
-
import {getToken,getUrlParams} from '../platform'
|
|
4
|
-
import Bus from '../bus';
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
let timer1, timer2;
|
|
8
|
-
let hasDialog = false;
|
|
9
|
-
|
|
10
|
-
function requestInterceptors(config) {
|
|
11
|
-
const params = getUrlParams();
|
|
12
|
-
|
|
13
|
-
let token = getToken();
|
|
14
|
-
if (token) {
|
|
15
|
-
config.headers.token = token;
|
|
16
|
-
}
|
|
17
|
-
|
|
18
|
-
//sso_token认证
|
|
19
|
-
if (params.hasOwnProperty('sso_token')||sessionStorage.getItem('sso_token')) {
|
|
20
|
-
config.params = Object.assign({
|
|
21
|
-
sso_token: params.sso_token||sessionStorage.getItem('sso_token') ,
|
|
22
|
-
sso_id: params.sso_id
|
|
23
|
-
}, config.params)
|
|
24
|
-
}
|
|
25
|
-
|
|
26
|
-
//oauth认证
|
|
27
|
-
if (params.hasOwnProperty('token')) {
|
|
28
|
-
if (config.url.indexOf('?') === -1) {
|
|
29
|
-
config.url = config.url + "?token=" + params.token + "&ssoid=" + params.ssoid;
|
|
30
|
-
} else {
|
|
31
|
-
config.url = config.url + "&token=" + params.token + "&ssoid=" + params.ssoid;
|
|
32
|
-
}
|
|
33
|
-
}
|
|
34
|
-
|
|
35
|
-
if (config.method === 'post') {
|
|
36
|
-
// payload为自定义不使用qs.stringify序列化的标记,默认config.payload == undefined;
|
|
37
|
-
// 为true时用于匹配@requestBody定义参数的接口
|
|
38
|
-
// 使用方式:post(config.AAAServerContext + '/AAA/BBB/CCC', { ...paramRequestBody }, { payload: true })
|
|
39
|
-
if (!config.payload) {
|
|
40
|
-
config.data = qs.stringify(config.data)
|
|
41
|
-
}
|
|
42
|
-
} else if (config.method === 'get') {
|
|
43
|
-
for (let rule of cacheRules) {
|
|
44
|
-
if (rule.test(config.url)) {
|
|
45
|
-
return config;
|
|
46
|
-
}
|
|
47
|
-
}
|
|
48
|
-
if (config.url.indexOf('?') === -1) {
|
|
49
|
-
config.url = config.url + "?t=" + new Date().getTime();
|
|
50
|
-
} else {
|
|
51
|
-
config.url = config.url + "&t=" + new Date().getTime();
|
|
52
|
-
}
|
|
53
|
-
}
|
|
54
|
-
return config;
|
|
55
|
-
}
|
|
56
|
-
|
|
57
|
-
function requestError(error) {
|
|
58
|
-
console.error("服务器内部异常,请稍候再试",error);
|
|
59
|
-
return Promise.reject(error);
|
|
60
|
-
}
|
|
61
|
-
|
|
62
|
-
function responseInterceptors(response) {
|
|
63
|
-
const data = response.data;
|
|
64
|
-
if (data instanceof Object) {
|
|
65
|
-
const code = data["code"];
|
|
66
|
-
if (code === 10106) {
|
|
67
|
-
if (!hasDialog) {
|
|
68
|
-
clearTimeout(timer1);
|
|
69
|
-
timer1 = setTimeout(function () {
|
|
70
|
-
hasDialog = true;
|
|
71
|
-
if (confirm("会话已失效,是否重新登录")) {
|
|
72
|
-
hasDialog = false;
|
|
73
|
-
Bus.$emit("needLogin");
|
|
74
|
-
} else {
|
|
75
|
-
hasDialog = false;
|
|
76
|
-
}
|
|
77
|
-
}, 500)
|
|
78
|
-
}
|
|
79
|
-
}
|
|
80
|
-
}
|
|
81
|
-
return response;
|
|
82
|
-
}
|
|
83
|
-
|
|
84
|
-
function responseError(error) {
|
|
85
|
-
clearTimeout(timer2);
|
|
86
|
-
timer2 = setTimeout(function () {
|
|
87
|
-
console.error("服务器内部异常,请稍候再试");
|
|
88
|
-
}, 500)
|
|
89
|
-
return Promise.reject(error);
|
|
90
|
-
}
|
|
91
|
-
|
|
92
|
-
export default {
|
|
93
|
-
requestInterceptors,
|
|
94
|
-
responseInterceptors,
|
|
95
|
-
requestError,
|
|
96
|
-
responseError
|
|
97
|
-
}
|
|
1
|
+
import qs from 'qs'
|
|
2
|
+
import cacheRules from "./cacheconf";
|
|
3
|
+
import {getToken,getUrlParams} from '../platform'
|
|
4
|
+
import Bus from '../bus';
|
|
5
|
+
|
|
6
|
+
|
|
7
|
+
let timer1, timer2;
|
|
8
|
+
let hasDialog = false;
|
|
9
|
+
|
|
10
|
+
function requestInterceptors(config) {
|
|
11
|
+
const params = getUrlParams();
|
|
12
|
+
|
|
13
|
+
let token = getToken();
|
|
14
|
+
if (token) {
|
|
15
|
+
config.headers.token = token;
|
|
16
|
+
}
|
|
17
|
+
|
|
18
|
+
//sso_token认证
|
|
19
|
+
if (params.hasOwnProperty('sso_token')||sessionStorage.getItem('sso_token')) {
|
|
20
|
+
config.params = Object.assign({
|
|
21
|
+
sso_token: params.sso_token||sessionStorage.getItem('sso_token') ,
|
|
22
|
+
sso_id: params.sso_id
|
|
23
|
+
}, config.params)
|
|
24
|
+
}
|
|
25
|
+
|
|
26
|
+
//oauth认证
|
|
27
|
+
if (params.hasOwnProperty('token')) {
|
|
28
|
+
if (config.url.indexOf('?') === -1) {
|
|
29
|
+
config.url = config.url + "?token=" + params.token + "&ssoid=" + params.ssoid;
|
|
30
|
+
} else {
|
|
31
|
+
config.url = config.url + "&token=" + params.token + "&ssoid=" + params.ssoid;
|
|
32
|
+
}
|
|
33
|
+
}
|
|
34
|
+
|
|
35
|
+
if (config.method === 'post') {
|
|
36
|
+
// payload为自定义不使用qs.stringify序列化的标记,默认config.payload == undefined;
|
|
37
|
+
// 为true时用于匹配@requestBody定义参数的接口
|
|
38
|
+
// 使用方式:post(config.AAAServerContext + '/AAA/BBB/CCC', { ...paramRequestBody }, { payload: true })
|
|
39
|
+
if (!config.payload) {
|
|
40
|
+
config.data = qs.stringify(config.data)
|
|
41
|
+
}
|
|
42
|
+
} else if (config.method === 'get') {
|
|
43
|
+
for (let rule of cacheRules) {
|
|
44
|
+
if (rule.test(config.url)) {
|
|
45
|
+
return config;
|
|
46
|
+
}
|
|
47
|
+
}
|
|
48
|
+
if (config.url.indexOf('?') === -1) {
|
|
49
|
+
config.url = config.url + "?t=" + new Date().getTime();
|
|
50
|
+
} else {
|
|
51
|
+
config.url = config.url + "&t=" + new Date().getTime();
|
|
52
|
+
}
|
|
53
|
+
}
|
|
54
|
+
return config;
|
|
55
|
+
}
|
|
56
|
+
|
|
57
|
+
function requestError(error) {
|
|
58
|
+
console.error("服务器内部异常,请稍候再试",error);
|
|
59
|
+
return Promise.reject(error);
|
|
60
|
+
}
|
|
61
|
+
|
|
62
|
+
function responseInterceptors(response) {
|
|
63
|
+
const data = response.data;
|
|
64
|
+
if (data instanceof Object) {
|
|
65
|
+
const code = data["code"];
|
|
66
|
+
if (code === 10106) {
|
|
67
|
+
if (!hasDialog) {
|
|
68
|
+
clearTimeout(timer1);
|
|
69
|
+
timer1 = setTimeout(function () {
|
|
70
|
+
hasDialog = true;
|
|
71
|
+
if (confirm("会话已失效,是否重新登录")) {
|
|
72
|
+
hasDialog = false;
|
|
73
|
+
Bus.$emit("needLogin");
|
|
74
|
+
} else {
|
|
75
|
+
hasDialog = false;
|
|
76
|
+
}
|
|
77
|
+
}, 500)
|
|
78
|
+
}
|
|
79
|
+
}
|
|
80
|
+
}
|
|
81
|
+
return response;
|
|
82
|
+
}
|
|
83
|
+
|
|
84
|
+
function responseError(error) {
|
|
85
|
+
clearTimeout(timer2);
|
|
86
|
+
timer2 = setTimeout(function () {
|
|
87
|
+
console.error("服务器内部异常,请稍候再试");
|
|
88
|
+
}, 500)
|
|
89
|
+
return Promise.reject(error);
|
|
90
|
+
}
|
|
91
|
+
|
|
92
|
+
export default {
|
|
93
|
+
requestInterceptors,
|
|
94
|
+
responseInterceptors,
|
|
95
|
+
requestError,
|
|
96
|
+
responseError
|
|
97
|
+
}
|
package/utils/assist.js
CHANGED
|
@@ -1,147 +1,147 @@
|
|
|
1
|
-
// deepCopy
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
export function deepCopy(data) {
|
|
5
|
-
let i;
|
|
6
|
-
const t = typeOf(data);
|
|
7
|
-
let o;
|
|
8
|
-
|
|
9
|
-
if (t === 'array') {
|
|
10
|
-
o = [];
|
|
11
|
-
} else if (t === 'object') {
|
|
12
|
-
o = {};
|
|
13
|
-
} else {
|
|
14
|
-
return data;
|
|
15
|
-
}
|
|
16
|
-
|
|
17
|
-
if (t === 'array') {
|
|
18
|
-
for (i = 0; i < data.length; i++) {
|
|
19
|
-
o.push(deepCopy(data[i]));
|
|
20
|
-
}
|
|
21
|
-
} else if (t === 'object') {
|
|
22
|
-
for (i in data) {
|
|
23
|
-
o[i] = deepCopy(data[i]);
|
|
24
|
-
}
|
|
25
|
-
}
|
|
26
|
-
return o;
|
|
27
|
-
}
|
|
28
|
-
export function deepMerge(target, ...sources) {
|
|
29
|
-
if (!sources.length) return target;
|
|
30
|
-
const source = sources.shift();
|
|
31
|
-
|
|
32
|
-
if (isObject(target) && isObject(source)) {
|
|
33
|
-
for (const key in source) {
|
|
34
|
-
if (isObject(source[key])) {
|
|
35
|
-
if (!target[key]) Object.assign(target, { [key]: {} });
|
|
36
|
-
deepMerge(target[key], source[key]);
|
|
37
|
-
} else {
|
|
38
|
-
Object.assign(target, { [key]: source[key] });
|
|
39
|
-
}
|
|
40
|
-
}
|
|
41
|
-
}
|
|
42
|
-
|
|
43
|
-
return deepMerge(target, ...sources);
|
|
44
|
-
}
|
|
45
|
-
|
|
46
|
-
export function typeOf(obj) {
|
|
47
|
-
const toString = Object.prototype.toString;
|
|
48
|
-
const map = {
|
|
49
|
-
'[object Boolean]': 'boolean',
|
|
50
|
-
'[object Number]': 'number',
|
|
51
|
-
'[object String]': 'string',
|
|
52
|
-
'[object Function]': 'function',
|
|
53
|
-
'[object Array]': 'array',
|
|
54
|
-
'[object Date]': 'date',
|
|
55
|
-
'[object RegExp]': 'regExp',
|
|
56
|
-
'[object Undefined]': 'undefined',
|
|
57
|
-
'[object Null]': 'null',
|
|
58
|
-
'[object Object]': 'object'
|
|
59
|
-
};
|
|
60
|
-
return map[toString.call(obj)];
|
|
61
|
-
}
|
|
62
|
-
|
|
63
|
-
export function operateBtn(vm, h, currentRow, operationName, operation, type, permission, disabled = false) {
|
|
64
|
-
let renderOption = {
|
|
65
|
-
props: {
|
|
66
|
-
type: type,
|
|
67
|
-
size: "small",
|
|
68
|
-
ghost: true,
|
|
69
|
-
disabled: disabled
|
|
70
|
-
},
|
|
71
|
-
style: {
|
|
72
|
-
margin: '0 2px'
|
|
73
|
-
},
|
|
74
|
-
on: {
|
|
75
|
-
'click': () => {
|
|
76
|
-
operation(vm, currentRow);
|
|
77
|
-
}
|
|
78
|
-
}
|
|
79
|
-
}
|
|
80
|
-
if(permission){
|
|
81
|
-
renderOption['directives'] = [{
|
|
82
|
-
name: "permission",
|
|
83
|
-
value: permission
|
|
84
|
-
}]
|
|
85
|
-
}
|
|
86
|
-
|
|
87
|
-
return h('Button', renderOption, operationName);
|
|
88
|
-
|
|
89
|
-
}
|
|
90
|
-
|
|
91
|
-
export function operateHref(vm, h, currentRow, operationName, operation, type, permission) {
|
|
92
|
-
let renderOption = {
|
|
93
|
-
style: {
|
|
94
|
-
margin: '0 4px'
|
|
95
|
-
},
|
|
96
|
-
on: {
|
|
97
|
-
'click': () => {
|
|
98
|
-
operation(vm, currentRow);
|
|
99
|
-
}
|
|
100
|
-
}
|
|
101
|
-
}
|
|
102
|
-
if(permission){
|
|
103
|
-
renderOption['directives'] = [{
|
|
104
|
-
name: "permission",
|
|
105
|
-
value: permission
|
|
106
|
-
}]
|
|
107
|
-
}
|
|
108
|
-
|
|
109
|
-
return h('a', renderOption, operationName);
|
|
110
|
-
}
|
|
111
|
-
|
|
112
|
-
export function operateMore(vm, h, operation) {
|
|
113
|
-
return h("Dropdown", {
|
|
114
|
-
style: {
|
|
115
|
-
marginLeft: "4px",
|
|
116
|
-
},
|
|
117
|
-
props: {
|
|
118
|
-
transfer: true,
|
|
119
|
-
}
|
|
120
|
-
}, [
|
|
121
|
-
h("a", {
|
|
122
|
-
style: {
|
|
123
|
-
margin: '0 4px',
|
|
124
|
-
borderBottom: '0px solid #CC9900',
|
|
125
|
-
}
|
|
126
|
-
}, [
|
|
127
|
-
h("span", "更多"),
|
|
128
|
-
h("Icon", {
|
|
129
|
-
props: {
|
|
130
|
-
type: "ios-arrow-down"
|
|
131
|
-
},
|
|
132
|
-
})
|
|
133
|
-
]),
|
|
134
|
-
h('DropdownMenu', {
|
|
135
|
-
slot: "list",
|
|
136
|
-
}, operation)
|
|
137
|
-
]);
|
|
138
|
-
}
|
|
139
|
-
|
|
140
|
-
export function isJson(arg) {
|
|
141
|
-
return typeof (arg) == "object" && Object.prototype.toString.call(arg).toLowerCase() == "[object object]" && !arg.length
|
|
142
|
-
};
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
export function isObject(item) {
|
|
146
|
-
return (item && typeof item === 'object' && !Array.isArray(item));
|
|
147
|
-
}
|
|
1
|
+
// deepCopy
|
|
2
|
+
|
|
3
|
+
|
|
4
|
+
export function deepCopy(data) {
|
|
5
|
+
let i;
|
|
6
|
+
const t = typeOf(data);
|
|
7
|
+
let o;
|
|
8
|
+
|
|
9
|
+
if (t === 'array') {
|
|
10
|
+
o = [];
|
|
11
|
+
} else if (t === 'object') {
|
|
12
|
+
o = {};
|
|
13
|
+
} else {
|
|
14
|
+
return data;
|
|
15
|
+
}
|
|
16
|
+
|
|
17
|
+
if (t === 'array') {
|
|
18
|
+
for (i = 0; i < data.length; i++) {
|
|
19
|
+
o.push(deepCopy(data[i]));
|
|
20
|
+
}
|
|
21
|
+
} else if (t === 'object') {
|
|
22
|
+
for (i in data) {
|
|
23
|
+
o[i] = deepCopy(data[i]);
|
|
24
|
+
}
|
|
25
|
+
}
|
|
26
|
+
return o;
|
|
27
|
+
}
|
|
28
|
+
export function deepMerge(target, ...sources) {
|
|
29
|
+
if (!sources.length) return target;
|
|
30
|
+
const source = sources.shift();
|
|
31
|
+
|
|
32
|
+
if (isObject(target) && isObject(source)) {
|
|
33
|
+
for (const key in source) {
|
|
34
|
+
if (isObject(source[key])) {
|
|
35
|
+
if (!target[key]) Object.assign(target, { [key]: {} });
|
|
36
|
+
deepMerge(target[key], source[key]);
|
|
37
|
+
} else {
|
|
38
|
+
Object.assign(target, { [key]: source[key] });
|
|
39
|
+
}
|
|
40
|
+
}
|
|
41
|
+
}
|
|
42
|
+
|
|
43
|
+
return deepMerge(target, ...sources);
|
|
44
|
+
}
|
|
45
|
+
|
|
46
|
+
export function typeOf(obj) {
|
|
47
|
+
const toString = Object.prototype.toString;
|
|
48
|
+
const map = {
|
|
49
|
+
'[object Boolean]': 'boolean',
|
|
50
|
+
'[object Number]': 'number',
|
|
51
|
+
'[object String]': 'string',
|
|
52
|
+
'[object Function]': 'function',
|
|
53
|
+
'[object Array]': 'array',
|
|
54
|
+
'[object Date]': 'date',
|
|
55
|
+
'[object RegExp]': 'regExp',
|
|
56
|
+
'[object Undefined]': 'undefined',
|
|
57
|
+
'[object Null]': 'null',
|
|
58
|
+
'[object Object]': 'object'
|
|
59
|
+
};
|
|
60
|
+
return map[toString.call(obj)];
|
|
61
|
+
}
|
|
62
|
+
|
|
63
|
+
export function operateBtn(vm, h, currentRow, operationName, operation, type, permission, disabled = false) {
|
|
64
|
+
let renderOption = {
|
|
65
|
+
props: {
|
|
66
|
+
type: type,
|
|
67
|
+
size: "small",
|
|
68
|
+
ghost: true,
|
|
69
|
+
disabled: disabled
|
|
70
|
+
},
|
|
71
|
+
style: {
|
|
72
|
+
margin: '0 2px'
|
|
73
|
+
},
|
|
74
|
+
on: {
|
|
75
|
+
'click': () => {
|
|
76
|
+
operation(vm, currentRow);
|
|
77
|
+
}
|
|
78
|
+
}
|
|
79
|
+
}
|
|
80
|
+
if(permission){
|
|
81
|
+
renderOption['directives'] = [{
|
|
82
|
+
name: "permission",
|
|
83
|
+
value: permission
|
|
84
|
+
}]
|
|
85
|
+
}
|
|
86
|
+
|
|
87
|
+
return h('Button', renderOption, operationName);
|
|
88
|
+
|
|
89
|
+
}
|
|
90
|
+
|
|
91
|
+
export function operateHref(vm, h, currentRow, operationName, operation, type, permission) {
|
|
92
|
+
let renderOption = {
|
|
93
|
+
style: {
|
|
94
|
+
margin: '0 4px'
|
|
95
|
+
},
|
|
96
|
+
on: {
|
|
97
|
+
'click': () => {
|
|
98
|
+
operation(vm, currentRow);
|
|
99
|
+
}
|
|
100
|
+
}
|
|
101
|
+
}
|
|
102
|
+
if(permission){
|
|
103
|
+
renderOption['directives'] = [{
|
|
104
|
+
name: "permission",
|
|
105
|
+
value: permission
|
|
106
|
+
}]
|
|
107
|
+
}
|
|
108
|
+
|
|
109
|
+
return h('a', renderOption, operationName);
|
|
110
|
+
}
|
|
111
|
+
|
|
112
|
+
export function operateMore(vm, h, operation) {
|
|
113
|
+
return h("Dropdown", {
|
|
114
|
+
style: {
|
|
115
|
+
marginLeft: "4px",
|
|
116
|
+
},
|
|
117
|
+
props: {
|
|
118
|
+
transfer: true,
|
|
119
|
+
}
|
|
120
|
+
}, [
|
|
121
|
+
h("a", {
|
|
122
|
+
style: {
|
|
123
|
+
margin: '0 4px',
|
|
124
|
+
borderBottom: '0px solid #CC9900',
|
|
125
|
+
}
|
|
126
|
+
}, [
|
|
127
|
+
h("span", "更多"),
|
|
128
|
+
h("Icon", {
|
|
129
|
+
props: {
|
|
130
|
+
type: "ios-arrow-down"
|
|
131
|
+
},
|
|
132
|
+
})
|
|
133
|
+
]),
|
|
134
|
+
h('DropdownMenu', {
|
|
135
|
+
slot: "list",
|
|
136
|
+
}, operation)
|
|
137
|
+
]);
|
|
138
|
+
}
|
|
139
|
+
|
|
140
|
+
export function isJson(arg) {
|
|
141
|
+
return typeof (arg) == "object" && Object.prototype.toString.call(arg).toLowerCase() == "[object object]" && !arg.length
|
|
142
|
+
};
|
|
143
|
+
|
|
144
|
+
|
|
145
|
+
export function isObject(item) {
|
|
146
|
+
return (item && typeof item === 'object' && !Array.isArray(item));
|
|
147
|
+
}
|