@zgfe/modules-settings 1.0.1-a.0
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/README.md +33 -0
- package/dist/esm/components/pageLoading/index.d.ts +3 -0
- package/dist/esm/components/pageLoading/index.js +11 -0
- package/dist/esm/components/pageLoading/index.less +11 -0
- package/dist/esm/constants/api.d.ts +30 -0
- package/dist/esm/constants/api.js +32 -0
- package/dist/esm/constants/icons/demo.css +539 -0
- package/dist/esm/constants/icons/demo_index.html +8537 -0
- package/dist/esm/constants/icons/iconfont.css +1467 -0
- package/dist/esm/constants/icons/iconfont.js +43 -0
- package/dist/esm/constants/icons/iconfont.json +2550 -0
- package/dist/esm/constants/icons/iconfont.ttf +0 -0
- package/dist/esm/constants/icons/iconfont.woff +0 -0
- package/dist/esm/constants/icons/iconfont.woff2 +0 -0
- package/dist/esm/constants/styles/base.sass +9 -0
- package/dist/esm/constants/styles/cleverUI.css +7 -0
- package/dist/esm/constants/styles/constants.sass +60 -0
- package/dist/esm/constants/styles/customUITheme.sass +54 -0
- package/dist/esm/constants/styles/reset.sass +61 -0
- package/dist/esm/global.d.ts +4 -0
- package/dist/esm/index.d.ts +3 -0
- package/dist/esm/index.js +3 -0
- package/dist/esm/modules/appSettings/appInfo/index.d.ts +3 -0
- package/dist/esm/modules/appSettings/appInfo/index.js +45 -0
- package/dist/esm/modules/appSettings/dataAccessFilter/index.d.ts +3 -0
- package/dist/esm/modules/appSettings/dataAccessFilter/index.js +37 -0
- package/dist/esm/modules/appSettings/index.d.ts +3 -0
- package/dist/esm/modules/appSettings/index.js +24 -0
- package/dist/esm/modules/appSettings/member/index.d.ts +3 -0
- package/dist/esm/modules/appSettings/member/index.js +29 -0
- package/dist/esm/modules/appSettings/secretKey/index.d.ts +3 -0
- package/dist/esm/modules/appSettings/secretKey/index.js +8 -0
- package/dist/esm/modules/companySetting/appList/index.d.ts +21 -0
- package/dist/esm/modules/companySetting/appList/index.js +386 -0
- package/dist/esm/modules/companySetting/appList/index.less +72 -0
- package/dist/esm/modules/companySetting/cost/index.d.ts +6 -0
- package/dist/esm/modules/companySetting/cost/index.js +79 -0
- package/dist/esm/modules/companySetting/cost/index.less +31 -0
- package/dist/esm/modules/companySetting/edit/authConfig.d.ts +9 -0
- package/dist/esm/modules/companySetting/edit/authConfig.js +333 -0
- package/dist/esm/modules/companySetting/edit/authConfigCEP.d.ts +10 -0
- package/dist/esm/modules/companySetting/edit/authConfigCEP.js +309 -0
- package/dist/esm/modules/companySetting/edit/authGroup.d.ts +7 -0
- package/dist/esm/modules/companySetting/edit/authGroup.js +89 -0
- package/dist/esm/modules/companySetting/edit/authModule.d.ts +7 -0
- package/dist/esm/modules/companySetting/edit/authModule.js +217 -0
- package/dist/esm/modules/companySetting/edit/multiAuthModule.d.ts +7 -0
- package/dist/esm/modules/companySetting/edit/multiAuthModule.js +150 -0
- package/dist/esm/modules/companySetting/edit/styles/authConfig.less +3 -0
- package/dist/esm/modules/companySetting/edit/styles/authGroup.less +10 -0
- package/dist/esm/modules/companySetting/edit/styles/authModule.less +82 -0
- package/dist/esm/modules/companySetting/edit/styles/user.less +32 -0
- package/dist/esm/modules/companySetting/edit/styles/userGroup.less +44 -0
- package/dist/esm/modules/companySetting/edit/user.d.ts +12 -0
- package/dist/esm/modules/companySetting/edit/user.js +222 -0
- package/dist/esm/modules/companySetting/edit/userGroup.d.ts +14 -0
- package/dist/esm/modules/companySetting/edit/userGroup.js +321 -0
- package/dist/esm/modules/companySetting/index.d.ts +18 -0
- package/dist/esm/modules/companySetting/index.js +492 -0
- package/dist/esm/modules/companySetting/index.less +24 -0
- package/dist/esm/modules/companySetting/info/index.d.ts +6 -0
- package/dist/esm/modules/companySetting/info/index.js +105 -0
- package/dist/esm/modules/companySetting/info/index.less +35 -0
- package/dist/esm/modules/companySetting/style/common.less +68 -0
- package/dist/esm/modules/companySetting/user/index.d.ts +29 -0
- package/dist/esm/modules/companySetting/user/index.js +548 -0
- package/dist/esm/modules/companySetting/user/index.less +161 -0
- package/dist/esm/modules/companySetting/user/invite.d.ts +8 -0
- package/dist/esm/modules/companySetting/user/invite.js +171 -0
- package/dist/esm/modules/companySetting/userGroup/authConfigDetail.d.ts +16 -0
- package/dist/esm/modules/companySetting/userGroup/authConfigDetail.js +379 -0
- package/dist/esm/modules/companySetting/userGroup/groupItem.d.ts +11 -0
- package/dist/esm/modules/companySetting/userGroup/groupItem.js +140 -0
- package/dist/esm/modules/companySetting/userGroup/index.d.ts +13 -0
- package/dist/esm/modules/companySetting/userGroup/index.js +142 -0
- package/dist/esm/modules/companySetting/userGroup/index.less +6 -0
- package/dist/esm/modules/companySetting/userGroup/style/authConfigDetail.less +44 -0
- package/dist/esm/modules/companySetting/userGroup/style/index.less +79 -0
- package/dist/esm/modules/dsfdsf +0 -0
- package/dist/esm/modules/personalSetting/index.d.ts +4 -0
- package/dist/esm/modules/personalSetting/index.js +17 -0
- package/dist/esm/modules/personalSetting/index.less +1 -0
- package/dist/esm/modules/personalSetting/info/index.d.ts +3 -0
- package/dist/esm/modules/personalSetting/info/index.js +83 -0
- package/dist/esm/modules/personalSetting/reset/index.d.ts +3 -0
- package/dist/esm/modules/personalSetting/reset/index.js +93 -0
- package/dist/esm/utils/ajax.d.ts +3 -0
- package/dist/esm/utils/ajax.js +5 -0
- package/dist/esm/utils/base64.d.ts +11 -0
- package/dist/esm/utils/base64.js +128 -0
- package/dist/esm/utils/constants.d.ts +160 -0
- package/dist/esm/utils/constants.js +282 -0
- package/dist/esm/utils/functionalPermissions.d.ts +385 -0
- package/dist/esm/utils/functionalPermissions.js +407 -0
- package/dist/esm/utils/util.d.ts +209 -0
- package/dist/esm/utils/util.js +649 -0
- package/package.json +56 -0
|
@@ -0,0 +1,649 @@
|
|
|
1
|
+
function _typeof(obj) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && "function" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }, _typeof(obj); }
|
|
2
|
+
function _wrapRegExp() { _wrapRegExp = function _wrapRegExp(re, groups) { return new BabelRegExp(re, void 0, groups); }; var _super = RegExp.prototype, _groups = new WeakMap(); function BabelRegExp(re, flags, groups) { var _this = new RegExp(re, flags); return _groups.set(_this, groups || _groups.get(re)), _setPrototypeOf(_this, BabelRegExp.prototype); } function buildGroups(result, re) { var g = _groups.get(re); return Object.keys(g).reduce(function (groups, name) { var i = g[name]; if ("number" == typeof i) groups[name] = result[i];else { for (var k = 0; void 0 === result[i[k]] && k + 1 < i.length;) k++; groups[name] = result[i[k]]; } return groups; }, Object.create(null)); } return _inherits(BabelRegExp, RegExp), BabelRegExp.prototype.exec = function (str) { var result = _super.exec.call(this, str); if (result) { result.groups = buildGroups(result, this); var indices = result.indices; indices && (indices.groups = buildGroups(indices, this)); } return result; }, BabelRegExp.prototype[Symbol.replace] = function (str, substitution) { if ("string" == typeof substitution) { var groups = _groups.get(this); return _super[Symbol.replace].call(this, str, substitution.replace(/\$<([^>]+)>/g, function (_, name) { var group = groups[name]; return "$" + (Array.isArray(group) ? group.join("$") : group); })); } if ("function" == typeof substitution) { var _this = this; return _super[Symbol.replace].call(this, str, function () { var args = arguments; return "object" != _typeof(args[args.length - 1]) && (args = [].slice.call(args)).push(buildGroups(args, _this)), substitution.apply(this, args); }); } return _super[Symbol.replace].call(this, str, substitution); }, _wrapRegExp.apply(this, arguments); }
|
|
3
|
+
function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); Object.defineProperty(subClass, "prototype", { writable: false }); if (superClass) _setPrototypeOf(subClass, superClass); }
|
|
4
|
+
function _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }
|
|
5
|
+
/**
|
|
6
|
+
* Created by yqdong on 2017/5/3.
|
|
7
|
+
* qq: 1013501639
|
|
8
|
+
* @author yqdong
|
|
9
|
+
*
|
|
10
|
+
*/
|
|
11
|
+
var util = {
|
|
12
|
+
type: function type(obj) {
|
|
13
|
+
return Object.prototype.toString.call(obj);
|
|
14
|
+
},
|
|
15
|
+
isObject: function isObject(obj) {
|
|
16
|
+
return this.type(obj) === '[object Object]';
|
|
17
|
+
},
|
|
18
|
+
isArray: function isArray(obj) {
|
|
19
|
+
return this.type(obj) === '[object Array]';
|
|
20
|
+
},
|
|
21
|
+
isString: function isString(obj) {
|
|
22
|
+
return this.type(obj) === '[object String]';
|
|
23
|
+
},
|
|
24
|
+
isNumber: function isNumber(obj) {
|
|
25
|
+
return this.type(obj) === '[object Number]';
|
|
26
|
+
},
|
|
27
|
+
isDate: function isDate(obj) {
|
|
28
|
+
return this.type(obj) === '[object Date]';
|
|
29
|
+
},
|
|
30
|
+
isFunction: function isFunction(obj) {
|
|
31
|
+
return this.type(obj) === '[object Function]';
|
|
32
|
+
},
|
|
33
|
+
/**
|
|
34
|
+
*
|
|
35
|
+
*/
|
|
36
|
+
isEmpty: function isEmpty(obj) {
|
|
37
|
+
for (var p in obj) {
|
|
38
|
+
if (obj.hasOwnProperty(p)) {
|
|
39
|
+
return false;
|
|
40
|
+
}
|
|
41
|
+
}
|
|
42
|
+
return true;
|
|
43
|
+
},
|
|
44
|
+
/**
|
|
45
|
+
* 判断对象是否是null或undefined
|
|
46
|
+
* @param obj
|
|
47
|
+
* @returns {boolean}
|
|
48
|
+
*/
|
|
49
|
+
isValid: function isValid(obj) {
|
|
50
|
+
return obj === null || obj === undefined;
|
|
51
|
+
},
|
|
52
|
+
/**
|
|
53
|
+
* 判断两个对象是否相同
|
|
54
|
+
* @param a
|
|
55
|
+
* @param b
|
|
56
|
+
* @returns {boolean}
|
|
57
|
+
*/
|
|
58
|
+
isEqual: function isEqual() {
|
|
59
|
+
var a = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
|
|
60
|
+
var b = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
|
|
61
|
+
return JSON.stringify(a) === JSON.stringify(b);
|
|
62
|
+
},
|
|
63
|
+
/**
|
|
64
|
+
* 合并对象
|
|
65
|
+
* @param defaults
|
|
66
|
+
* @param extend
|
|
67
|
+
* @returns {*}
|
|
68
|
+
*/
|
|
69
|
+
mergeObject: function mergeObject() {
|
|
70
|
+
var defaults = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
|
|
71
|
+
var extend = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
|
|
72
|
+
for (var key in defaults) {
|
|
73
|
+
var defaultsProp = defaults[key];
|
|
74
|
+
var extendProp = extend[key];
|
|
75
|
+
if (this.isObject(defaultsProp)) {
|
|
76
|
+
this.mergeObject(defaultsProp, extendProp);
|
|
77
|
+
} else if (this.isArray(defaultsProp)) {
|
|
78
|
+
if (this.isArray(extendProp)) {
|
|
79
|
+
for (var i = 0; i < defaultsProp.length && i < extendProp.length; i++) {
|
|
80
|
+
extendProp[i] = this.mergeObject(defaultsProp[i], extendProp[i]);
|
|
81
|
+
}
|
|
82
|
+
} else {
|
|
83
|
+
extend[key] = defaultsProp;
|
|
84
|
+
}
|
|
85
|
+
} else {
|
|
86
|
+
extend[key] = this.isValid(extendProp) ? defaultsProp : extendProp;
|
|
87
|
+
}
|
|
88
|
+
}
|
|
89
|
+
return extend;
|
|
90
|
+
},
|
|
91
|
+
/**
|
|
92
|
+
* 字符串占位符替换
|
|
93
|
+
* @param str
|
|
94
|
+
* @param obj
|
|
95
|
+
* @returns {*}
|
|
96
|
+
*/
|
|
97
|
+
strReplace: function strReplace(str, obj) {
|
|
98
|
+
var matchList = str.match(/\{\S*?\}/g) || [];
|
|
99
|
+
matchList.forEach(function (item) {
|
|
100
|
+
var key = item.replace(/\{|\}/g, '');
|
|
101
|
+
str = str.replace(item, obj[key] || '');
|
|
102
|
+
});
|
|
103
|
+
return str;
|
|
104
|
+
},
|
|
105
|
+
/**
|
|
106
|
+
* 从中间拆分字符串,长度超出的话,解析为xxx...xxx
|
|
107
|
+
* @param str
|
|
108
|
+
* @param config
|
|
109
|
+
* @returns {*}
|
|
110
|
+
*/
|
|
111
|
+
strMiddleSplit: function strMiddleSplit(str) {
|
|
112
|
+
var config = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {
|
|
113
|
+
maxLength: 20,
|
|
114
|
+
beginLength: 8,
|
|
115
|
+
endLength: 8,
|
|
116
|
+
replaceStr: '...'
|
|
117
|
+
};
|
|
118
|
+
str += '';
|
|
119
|
+
/* eslint-disable no-control-regex */
|
|
120
|
+
var reg = {
|
|
121
|
+
fullCharReg: /[^\x00-\xff]/,
|
|
122
|
+
fullCharsReg: /[^\x00-\xff]/g,
|
|
123
|
+
anyChars: /[\S\s]{1}/g
|
|
124
|
+
};
|
|
125
|
+
var fullCharLength = (str.match(reg.fullCharsReg) || []).length;
|
|
126
|
+
var fullLength = str.length + fullCharLength;
|
|
127
|
+
var beginArr = [];
|
|
128
|
+
var beginLength = 0;
|
|
129
|
+
var endArr = [];
|
|
130
|
+
var endLength = 0;
|
|
131
|
+
if (fullLength > config.maxLength) {
|
|
132
|
+
var strArr = str.match(reg.anyChars);
|
|
133
|
+
strArr.forEach(function (char) {
|
|
134
|
+
if (beginLength >= config.beginLength) return;
|
|
135
|
+
var len = reg.fullCharReg.test(char) ? 2 : 1;
|
|
136
|
+
beginLength += len;
|
|
137
|
+
beginArr.push(char);
|
|
138
|
+
});
|
|
139
|
+
strArr.reverse().forEach(function (char) {
|
|
140
|
+
if (endLength >= config.endLength) return;
|
|
141
|
+
var len = reg.fullCharReg.test(char) ? 2 : 1;
|
|
142
|
+
endLength += len;
|
|
143
|
+
endArr.push(char);
|
|
144
|
+
});
|
|
145
|
+
return beginArr.join('') + config.replaceStr + endArr.reverse().join('');
|
|
146
|
+
}
|
|
147
|
+
return str;
|
|
148
|
+
},
|
|
149
|
+
/**
|
|
150
|
+
* 获取字符串长度,区分中英文
|
|
151
|
+
* @param str
|
|
152
|
+
* @returns {number}
|
|
153
|
+
*/
|
|
154
|
+
getStrFullLength: function getStrFullLength(str) {
|
|
155
|
+
/* eslint-disable no-control-regex */
|
|
156
|
+
var reg = {
|
|
157
|
+
fullCharReg: /[^\x00-\xff]/,
|
|
158
|
+
fullCharsReg: /[^\x00-\xff]/g,
|
|
159
|
+
anyChars: /[\S\s]{1}/g
|
|
160
|
+
};
|
|
161
|
+
var fullCharLength = (str.match(reg.fullCharsReg) || []).length;
|
|
162
|
+
var fullLength = str.length + fullCharLength;
|
|
163
|
+
return fullLength;
|
|
164
|
+
},
|
|
165
|
+
getRegExp: function getRegExp(str) {
|
|
166
|
+
var keyWords = /\\|\^|\$|\*|\+|\?|\{|\}|\[|\]|\.|:|=|\||-|\/|<|!|\(|\)/;
|
|
167
|
+
var words = [];
|
|
168
|
+
str.split(/\s{0}/).forEach(function (code) {
|
|
169
|
+
if (keyWords.test(code)) {
|
|
170
|
+
words.push("\\".concat(code));
|
|
171
|
+
} else {
|
|
172
|
+
words.push(code);
|
|
173
|
+
}
|
|
174
|
+
});
|
|
175
|
+
return new RegExp(words.join(''));
|
|
176
|
+
},
|
|
177
|
+
matchArray: function matchArray(reg, str) {
|
|
178
|
+
var result = [];
|
|
179
|
+
var match;
|
|
180
|
+
while (match = reg.exec(str)) {
|
|
181
|
+
result.push(match[0]);
|
|
182
|
+
}
|
|
183
|
+
return result;
|
|
184
|
+
},
|
|
185
|
+
getHrefData: function getHrefData(url) {
|
|
186
|
+
var search = decodeURIComponent(url ? url.replace(/\S*\?/, '') : location.search.replace('?', ''));
|
|
187
|
+
var params = [];
|
|
188
|
+
var data = {};
|
|
189
|
+
// 这个正则用来取筛选条件
|
|
190
|
+
params = this.matchArray(/[^=]+=("{.*}"|[^=&]+)/g, search).map(function (param) {
|
|
191
|
+
if (param.indexOf('&') === 0) {
|
|
192
|
+
return param.replace('&', '');
|
|
193
|
+
} else {
|
|
194
|
+
return param;
|
|
195
|
+
}
|
|
196
|
+
});
|
|
197
|
+
params.forEach(function (item) {
|
|
198
|
+
var index = item.indexOf('=');
|
|
199
|
+
var key = item.slice(0, index);
|
|
200
|
+
var value = item.slice(index + 1);
|
|
201
|
+
data[key] = value;
|
|
202
|
+
});
|
|
203
|
+
return data;
|
|
204
|
+
},
|
|
205
|
+
/**
|
|
206
|
+
* 为单数前补0
|
|
207
|
+
* @param num
|
|
208
|
+
* @returns {string}
|
|
209
|
+
*/
|
|
210
|
+
toDoubleNumber: function toDoubleNumber(num) {
|
|
211
|
+
num += '';
|
|
212
|
+
return num > 9 ? num : '0' + num;
|
|
213
|
+
},
|
|
214
|
+
/**
|
|
215
|
+
* 日期格式化
|
|
216
|
+
* @param date
|
|
217
|
+
* @param formatter
|
|
218
|
+
* @returns {string}
|
|
219
|
+
*/
|
|
220
|
+
dateFormat: function dateFormat() {
|
|
221
|
+
var date = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : new Date();
|
|
222
|
+
var formatter = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 'yyyy-mm-dd';
|
|
223
|
+
return formatter.replace('yyyy', date.getFullYear()).replace('mm', this.toDoubleNumber(date.getMonth() + 1)).replace('dd', this.toDoubleNumber(date.getDate()));
|
|
224
|
+
},
|
|
225
|
+
/**
|
|
226
|
+
* 日期格式化
|
|
227
|
+
* @param date
|
|
228
|
+
* @param formatter
|
|
229
|
+
* @returns {string}
|
|
230
|
+
*/
|
|
231
|
+
timeFormat: function timeFormat() {
|
|
232
|
+
var date = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : new Date();
|
|
233
|
+
var formatter = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 'hh:mm:ss';
|
|
234
|
+
var type = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : '';
|
|
235
|
+
if (this.isDate(date)) {
|
|
236
|
+
return formatter.replace('hh', this.toDoubleNumber(date.getHours())).replace('mm', this.toDoubleNumber(date.getMinutes())).replace('ss', this.toDoubleNumber(date.getSeconds()));
|
|
237
|
+
} else if (this.isNumber(date)) {
|
|
238
|
+
if (date < 10000 && type != 'second') return date + 'ms';
|
|
239
|
+
// formatter 格式化规则 如:{s:'秒', h:'小时', m: '分钟'}
|
|
240
|
+
formatter = this.isObject(formatter) ? formatter : {};
|
|
241
|
+
var s = parseInt((parseFloat(date) / 1000).toFixed(0));
|
|
242
|
+
var m = parseInt(s / 60);
|
|
243
|
+
var h = parseInt(m / 60);
|
|
244
|
+
s = s - m * 60;
|
|
245
|
+
m = m - h * 60;
|
|
246
|
+
var format = {
|
|
247
|
+
s: 's',
|
|
248
|
+
m: 'm',
|
|
249
|
+
h: 'h'
|
|
250
|
+
};
|
|
251
|
+
format = this.mergeObject(format, formatter || {});
|
|
252
|
+
var text = s + format.s;
|
|
253
|
+
text = (m ? m + format.m : '') + text;
|
|
254
|
+
text = (h ? h + format.h : '') + text;
|
|
255
|
+
return text;
|
|
256
|
+
}
|
|
257
|
+
},
|
|
258
|
+
/**
|
|
259
|
+
* 日期时间格式化
|
|
260
|
+
* @param date
|
|
261
|
+
* @param formatter
|
|
262
|
+
* @returns {string}
|
|
263
|
+
*/
|
|
264
|
+
dateTimeFormat: function dateTimeFormat() {
|
|
265
|
+
var date = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : new Date();
|
|
266
|
+
var formatter = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 'yyyy-mm-dd hh:mm:ss';
|
|
267
|
+
formatter = formatter.split('hh');
|
|
268
|
+
return this.dateFormat(date, formatter[0]) + this.timeFormat(date, 'hh' + formatter[1]);
|
|
269
|
+
},
|
|
270
|
+
/**
|
|
271
|
+
* 格式化字符串为时间(例"2017-01-01" 或"20170101")
|
|
272
|
+
* @param {string} str
|
|
273
|
+
* @returns {string}
|
|
274
|
+
*/
|
|
275
|
+
getDate: function getDate(str) {
|
|
276
|
+
var timeArr = str.match(/(\d{4})[^0-9]*(\d{2})[^0-9]*(\d{2})/) || [];
|
|
277
|
+
return new Date(timeArr.slice(1, 4).join('/'));
|
|
278
|
+
},
|
|
279
|
+
/**
|
|
280
|
+
* 获取当前月份有多少天(例"2017-02" 28)
|
|
281
|
+
* @param {Date} str
|
|
282
|
+
* @returns {number}
|
|
283
|
+
*/
|
|
284
|
+
getDays: function getDays(str) {
|
|
285
|
+
var date = new Date(str);
|
|
286
|
+
var year = date.getFullYear();
|
|
287
|
+
var month = date.getMonth() + 1;
|
|
288
|
+
return new Date(year, month, 0).getDate();
|
|
289
|
+
},
|
|
290
|
+
/**
|
|
291
|
+
* xss注入处理
|
|
292
|
+
*/
|
|
293
|
+
xssEncode: function xssEncode(str) {
|
|
294
|
+
return str.replace(/</g, '<').replace(/>/g, '>');
|
|
295
|
+
},
|
|
296
|
+
/**
|
|
297
|
+
* 字符串转为驼峰格式, eg: a_b ==> aB
|
|
298
|
+
* @param str
|
|
299
|
+
* @returns {string}
|
|
300
|
+
*/
|
|
301
|
+
toCamel: function toCamel() {
|
|
302
|
+
var str = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : '';
|
|
303
|
+
var matchArr = str.match(/_\S/g) || [];
|
|
304
|
+
matchArr.forEach(function (item) {
|
|
305
|
+
str = str.replace(item, item.replace('_', '').toUpperCase());
|
|
306
|
+
});
|
|
307
|
+
return str;
|
|
308
|
+
},
|
|
309
|
+
/**
|
|
310
|
+
* 将驼峰格式字符串转化为下划线格式,eg:aB ===> a_b
|
|
311
|
+
* @param str
|
|
312
|
+
* @returns {string}
|
|
313
|
+
*/
|
|
314
|
+
toUnderLine: function toUnderLine() {
|
|
315
|
+
var str = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : '';
|
|
316
|
+
var matchArr = str.match(/[A-Z]/g) || [];
|
|
317
|
+
matchArr.forEach(function (item) {
|
|
318
|
+
str = str.replace(item, '_' + item.toLowerCase());
|
|
319
|
+
});
|
|
320
|
+
return str;
|
|
321
|
+
},
|
|
322
|
+
/**
|
|
323
|
+
* 转为驼峰命名规范对象
|
|
324
|
+
* @param obj
|
|
325
|
+
* @returns {{}}
|
|
326
|
+
*/
|
|
327
|
+
toCamelObj: function toCamelObj() {
|
|
328
|
+
var obj = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
|
|
329
|
+
var result = {};
|
|
330
|
+
for (var key in obj) {
|
|
331
|
+
if (this.isFunction(obj[key])) continue;
|
|
332
|
+
result[this.toCamel(key)] = obj[key];
|
|
333
|
+
}
|
|
334
|
+
return result;
|
|
335
|
+
},
|
|
336
|
+
/**
|
|
337
|
+
* 转为下划线命名规范对象
|
|
338
|
+
* @param obj
|
|
339
|
+
* @returns {{}}
|
|
340
|
+
*/
|
|
341
|
+
toUnderLineObj: function toUnderLineObj() {
|
|
342
|
+
var obj = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
|
|
343
|
+
var result = {};
|
|
344
|
+
for (var key in obj) {
|
|
345
|
+
if (this.isFunction(obj[key])) continue;
|
|
346
|
+
result[this.toUnderLine(key)] = obj[key];
|
|
347
|
+
}
|
|
348
|
+
return result;
|
|
349
|
+
},
|
|
350
|
+
/**
|
|
351
|
+
* 根据指定url和参数对象,转成url格式字符串
|
|
352
|
+
* @param url
|
|
353
|
+
* @param param
|
|
354
|
+
* @returns {string}
|
|
355
|
+
*/
|
|
356
|
+
toUrl: function toUrl() {
|
|
357
|
+
var url = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : '';
|
|
358
|
+
var param = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
|
|
359
|
+
var params = [];
|
|
360
|
+
var prefix = /\?/.test(url) ? '&' : '?';
|
|
361
|
+
for (var key in param) {
|
|
362
|
+
var val = this.isObject(param[key]) ? JSON.stringify(param[key]) : param[key];
|
|
363
|
+
params.push("".concat(key, "=").concat(encodeURIComponent(val)));
|
|
364
|
+
}
|
|
365
|
+
return "".concat(url).concat(prefix).concat(params.join('&'));
|
|
366
|
+
},
|
|
367
|
+
/**
|
|
368
|
+
* 将数字转为千分位分割格式
|
|
369
|
+
* @param num
|
|
370
|
+
* @returns {string}
|
|
371
|
+
*/
|
|
372
|
+
toThousands: function toThousands() {
|
|
373
|
+
var num = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 0;
|
|
374
|
+
var source = String(num).split('.'); // 按小数点分成2部分
|
|
375
|
+
source[0] = source[0].replace(new RegExp('(\\d)(?=(\\d{3})+$)', 'ig'), '$1,');
|
|
376
|
+
return source.join('.'); // 再将小数部分合并进来
|
|
377
|
+
},
|
|
378
|
+
clone: function clone(obj) {
|
|
379
|
+
if (this.isObject(obj)) {
|
|
380
|
+
var result = {};
|
|
381
|
+
for (var key in obj) {
|
|
382
|
+
var prop = obj[key];
|
|
383
|
+
result[key] = this.clone(prop);
|
|
384
|
+
}
|
|
385
|
+
return result;
|
|
386
|
+
} else if (this.isArray(obj)) {
|
|
387
|
+
var _result = [];
|
|
388
|
+
for (var i = 0; i < obj.length; i++) {
|
|
389
|
+
var item = obj[i];
|
|
390
|
+
_result.push(this.clone(item));
|
|
391
|
+
}
|
|
392
|
+
return _result;
|
|
393
|
+
} else {
|
|
394
|
+
return obj;
|
|
395
|
+
}
|
|
396
|
+
},
|
|
397
|
+
isEmptyObj: function isEmptyObj(obj) {
|
|
398
|
+
return JSON.stringify(obj) === '{}';
|
|
399
|
+
},
|
|
400
|
+
/**
|
|
401
|
+
* 除法计算
|
|
402
|
+
* @param {number} numerator 分子
|
|
403
|
+
* @param {number} denominator 分母
|
|
404
|
+
* @param {number} precision 小数精度
|
|
405
|
+
* @returns {string}
|
|
406
|
+
*/
|
|
407
|
+
divisionCalculation: function divisionCalculation(numerator, denominator) {
|
|
408
|
+
var precision = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 2;
|
|
409
|
+
var data = 0;
|
|
410
|
+
if (numerator && denominator) {
|
|
411
|
+
precision = Math.pow(10, precision);
|
|
412
|
+
numerator = numerator * precision;
|
|
413
|
+
data = Math.floor(numerator / denominator) / precision;
|
|
414
|
+
}
|
|
415
|
+
return data;
|
|
416
|
+
},
|
|
417
|
+
/**
|
|
418
|
+
* 计算百分比值
|
|
419
|
+
* @param {number} numerator 分子
|
|
420
|
+
* @param {number} denominator 分母
|
|
421
|
+
* @param {number} precision 小数精度
|
|
422
|
+
* @returns {string}
|
|
423
|
+
*/
|
|
424
|
+
percentCalculate: function percentCalculate(numerator, denominator) {
|
|
425
|
+
var precision = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 2;
|
|
426
|
+
var data = 0;
|
|
427
|
+
if (numerator && denominator) {
|
|
428
|
+
precision = Math.pow(10, precision);
|
|
429
|
+
numerator = numerator * precision * 100;
|
|
430
|
+
data = Math.floor(numerator / denominator) / precision;
|
|
431
|
+
}
|
|
432
|
+
return data + '%';
|
|
433
|
+
},
|
|
434
|
+
copy: function copy(text, onSuccess, onError) {
|
|
435
|
+
var id = 'zgClipboardInput';
|
|
436
|
+
if (!document.getElementById(id)) {
|
|
437
|
+
var _input = document.createElement('input');
|
|
438
|
+
_input.type = 'text';
|
|
439
|
+
_input.id = id;
|
|
440
|
+
_input.style = 'position: fixed; top: -9999999px; z-index: -9999999';
|
|
441
|
+
document.body.appendChild(_input);
|
|
442
|
+
}
|
|
443
|
+
var input = document.getElementById(id);
|
|
444
|
+
input.value = text;
|
|
445
|
+
input.focus();
|
|
446
|
+
input.setSelectionRange(0, text.length);
|
|
447
|
+
var result = false;
|
|
448
|
+
result = document.execCommand('copy', true);
|
|
449
|
+
if (result) {
|
|
450
|
+
if (this.isFunction(onSuccess)) {
|
|
451
|
+
onSuccess();
|
|
452
|
+
}
|
|
453
|
+
} else {
|
|
454
|
+
if (this.isFunction(onError)) {
|
|
455
|
+
onError();
|
|
456
|
+
}
|
|
457
|
+
}
|
|
458
|
+
},
|
|
459
|
+
guid: function guid() {
|
|
460
|
+
function s4() {
|
|
461
|
+
return Math.floor((1 + Math.random()) * 0x10000).toString(16).substring(1);
|
|
462
|
+
}
|
|
463
|
+
return s4() + s4() + '-' + s4() + '-' + s4() + '-' + s4() + '-' + s4() + s4() + s4();
|
|
464
|
+
},
|
|
465
|
+
/**
|
|
466
|
+
* 格式化store中常量的值:actions、getters、mutations
|
|
467
|
+
* @param constant
|
|
468
|
+
* @param prefix
|
|
469
|
+
*/
|
|
470
|
+
initializeConstants: function initializeConstants(constant, prefix) {
|
|
471
|
+
for (var prop in constant) {
|
|
472
|
+
var val = constant[prop];
|
|
473
|
+
if (util.isObject(val)) {
|
|
474
|
+
this.initializeConstants(val, "".concat(prefix, "-").concat(prop));
|
|
475
|
+
} else {
|
|
476
|
+
constant[prop] = "".concat(prefix, "-").concat(prop);
|
|
477
|
+
}
|
|
478
|
+
}
|
|
479
|
+
},
|
|
480
|
+
getDomain: function getDomain(url) {
|
|
481
|
+
var arr = url.match(/https?:\/\/\S*?\//);
|
|
482
|
+
if (arr && arr.length) {
|
|
483
|
+
return arr[0].replace(/\//g, '');
|
|
484
|
+
}
|
|
485
|
+
return '';
|
|
486
|
+
},
|
|
487
|
+
/**
|
|
488
|
+
* 存储信息到sessionStorage
|
|
489
|
+
* 使用方法同sessionStorage.setItem但仅更新已经存在的key
|
|
490
|
+
* 作用:和老平台代码数据同步@完全改版后需删除
|
|
491
|
+
* @param key
|
|
492
|
+
* @param value
|
|
493
|
+
*/
|
|
494
|
+
storageSetItem: function storageSetItem(key, value) {
|
|
495
|
+
try {
|
|
496
|
+
if (sessionStorage.getItem(key)) {
|
|
497
|
+
sessionStorage.setItem(key, value);
|
|
498
|
+
}
|
|
499
|
+
} catch (e) {
|
|
500
|
+
sessionStorage.removeItem(key);
|
|
501
|
+
}
|
|
502
|
+
},
|
|
503
|
+
isPC: function isPC() {
|
|
504
|
+
var userAgent = window.navigator.userAgent.toLowerCase();
|
|
505
|
+
return !userAgent.includes('mobile');
|
|
506
|
+
},
|
|
507
|
+
/**
|
|
508
|
+
* 通过相对时间,获取绝对时间
|
|
509
|
+
* @param unit 相对时间单位,天、周、月
|
|
510
|
+
* @param count 相对多少天、周、月
|
|
511
|
+
* @param maxDate 最大时间(一般是今天或者昨天,即是否支持实时)
|
|
512
|
+
* @returns {{startDate: null, endDate: null}}
|
|
513
|
+
*/
|
|
514
|
+
getAbsoluteDate: function getAbsoluteDate(unit, count, maxDate) {
|
|
515
|
+
var res = {
|
|
516
|
+
startDate: null,
|
|
517
|
+
endDate: null
|
|
518
|
+
};
|
|
519
|
+
var dayTime = 24 * 60 * 60 * 1000;
|
|
520
|
+
var firstOfWeek = null;
|
|
521
|
+
var firstOfMonth = null;
|
|
522
|
+
switch (unit) {
|
|
523
|
+
case 'hour':
|
|
524
|
+
res.endDate = res.startDate = new Date(new Date().getTime() - count * dayTime);
|
|
525
|
+
break;
|
|
526
|
+
case 'day':
|
|
527
|
+
res.startDate = new Date(new Date().getTime() - count * dayTime);
|
|
528
|
+
res.endDate = maxDate;
|
|
529
|
+
break;
|
|
530
|
+
case 'week':
|
|
531
|
+
res.endDate = maxDate;
|
|
532
|
+
// 减一是因为这里以周一为一周的第一天,如果以周日为第一天,则去掉就行
|
|
533
|
+
firstOfWeek = new Date(maxDate.getTime() - (maxDate.getDay() - 1) * dayTime);
|
|
534
|
+
res.startDate = new Date(firstOfWeek.getTime() - count * 7 * dayTime);
|
|
535
|
+
break;
|
|
536
|
+
case 'month':
|
|
537
|
+
res.endDate = maxDate;
|
|
538
|
+
// 这里-1是为了将日期置为一号
|
|
539
|
+
firstOfMonth = new Date(maxDate.getTime() - (maxDate.getDate() - 1) * dayTime);
|
|
540
|
+
firstOfMonth.setMonth(firstOfMonth.getMonth() - count);
|
|
541
|
+
res.startDate = new Date(firstOfMonth);
|
|
542
|
+
break;
|
|
543
|
+
}
|
|
544
|
+
return res;
|
|
545
|
+
},
|
|
546
|
+
/**
|
|
547
|
+
* 区分中英文截取字符串长度
|
|
548
|
+
**/
|
|
549
|
+
splitString: function splitString(str, olength, suffix) {
|
|
550
|
+
var resString = '';
|
|
551
|
+
var len = 0;
|
|
552
|
+
/* eslint-disable no-control-regex */
|
|
553
|
+
var reg = new RegExp(/[^\x00-\xff]/);
|
|
554
|
+
/* eslint-enable no-control-regex */
|
|
555
|
+
var isOverflow = false;
|
|
556
|
+
suffix = suffix || '...';
|
|
557
|
+
for (var i = 0; i < str.length; i++) {
|
|
558
|
+
var char = str.charAt(i);
|
|
559
|
+
len += reg.test(char) ? 2 : 1;
|
|
560
|
+
if (len <= olength) {
|
|
561
|
+
resString += char;
|
|
562
|
+
} else {
|
|
563
|
+
isOverflow = true;
|
|
564
|
+
}
|
|
565
|
+
}
|
|
566
|
+
return {
|
|
567
|
+
str: isOverflow ? resString + suffix : resString,
|
|
568
|
+
len: len
|
|
569
|
+
};
|
|
570
|
+
},
|
|
571
|
+
/**
|
|
572
|
+
* base64图片转二进制
|
|
573
|
+
*/
|
|
574
|
+
dataUrlToFile: function dataUrlToFile(base64Str) {
|
|
575
|
+
var res = base64Str.match( /*#__PURE__*/_wrapRegExp(/^data:image\/(.*);base64,(.*)/, {
|
|
576
|
+
mime: 1,
|
|
577
|
+
data: 2
|
|
578
|
+
}));
|
|
579
|
+
var binaryStr = atob(res.groups.data);
|
|
580
|
+
var binaryArray = new Uint8Array(binaryStr.length);
|
|
581
|
+
for (var i = 0; i < binaryStr.length; i++) {
|
|
582
|
+
binaryArray[i] = binaryStr.charCodeAt(i);
|
|
583
|
+
}
|
|
584
|
+
console.log(binaryArray);
|
|
585
|
+
var blob = new Blob([binaryArray], {
|
|
586
|
+
type: res.groups.mime
|
|
587
|
+
});
|
|
588
|
+
return blob;
|
|
589
|
+
},
|
|
590
|
+
covertSVG2Image: function covertSVG2Image(node, width, height) {
|
|
591
|
+
return new Promise(function (resolve) {
|
|
592
|
+
node.setAttribute('xmlns', 'http://www.w3.org/2000/svg');
|
|
593
|
+
var serializer = new XMLSerializer();
|
|
594
|
+
var source = '<?xml version="1.0" standalone="no"?>' + serializer.serializeToString(node);
|
|
595
|
+
var image = new Image();
|
|
596
|
+
image.src = 'data:image/svg+xml,' + encodeURIComponent(source);
|
|
597
|
+
var canvas = document.createElement('canvas');
|
|
598
|
+
canvas.width = width;
|
|
599
|
+
canvas.height = height;
|
|
600
|
+
var context = canvas.getContext('2d');
|
|
601
|
+
context.fillStyle = '#fff';
|
|
602
|
+
context.fillRect(0, 0, width, height);
|
|
603
|
+
image.onload = function () {
|
|
604
|
+
context.drawImage(image, 0, 0);
|
|
605
|
+
resolve(canvas.toDataURL('png'));
|
|
606
|
+
};
|
|
607
|
+
});
|
|
608
|
+
},
|
|
609
|
+
//数字类型映射为字符串类型
|
|
610
|
+
_getTypeStr: function _getTypeStr(index) {
|
|
611
|
+
var arr = ['cont-list', 'cont-string', 'cont-num', 'cont-date', 'cont-list-lenovo'];
|
|
612
|
+
return arr[index];
|
|
613
|
+
},
|
|
614
|
+
// setting模块用户权限使用
|
|
615
|
+
getMenuRouterByName: function getMenuRouterByName(name) {
|
|
616
|
+
// 默认菜单路由:'router-' + menu.name
|
|
617
|
+
var hash = {
|
|
618
|
+
advertisement: 'router-advertisement-index',
|
|
619
|
+
sem: 'router-advertisement-sem',
|
|
620
|
+
digital: 'router-advertisement-digital',
|
|
621
|
+
landing: 'router-advertisement-landingPage',
|
|
622
|
+
wechat: 'router-wechat-index',
|
|
623
|
+
wxWhole: 'router-wechat-wxWhole',
|
|
624
|
+
wxMini: 'router-wechat-wxMini-index',
|
|
625
|
+
wxMarketing: 'router-wechat-wxMarketing-index',
|
|
626
|
+
wxFlow: 'router-wechat-wxFlow',
|
|
627
|
+
version: 'router-version-index',
|
|
628
|
+
stickiness: 'router-stickinessAnalysis',
|
|
629
|
+
funnel: 'router-funnelAnalysis',
|
|
630
|
+
dataAccess: 'router-dataAccess-index',
|
|
631
|
+
guide: 'router-dataAccess-guide',
|
|
632
|
+
config: 'router-config',
|
|
633
|
+
warning: 'router-warning-index',
|
|
634
|
+
eventTracking: 'router-dataAccess-manage',
|
|
635
|
+
user: 'router-appUser',
|
|
636
|
+
userList: 'router-appUserList',
|
|
637
|
+
userGroup: 'router-appUserGroup',
|
|
638
|
+
userPortrait: 'router-appUserPortrait',
|
|
639
|
+
dataPanel: 'router-panel',
|
|
640
|
+
diypage: 'router-diypage',
|
|
641
|
+
adChannel: 'router-dataAccess-advanced',
|
|
642
|
+
debug: 'router-dataAccess-debug',
|
|
643
|
+
dataset: 'router-cdp-dataset',
|
|
644
|
+
idmapping: 'router-idMapping-list'
|
|
645
|
+
};
|
|
646
|
+
return hash[name] ? hash[name] : 'router-' + name;
|
|
647
|
+
}
|
|
648
|
+
};
|
|
649
|
+
export default util;
|
package/package.json
ADDED
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "@zgfe/modules-settings",
|
|
3
|
+
"version": "1.0.1-a.0",
|
|
4
|
+
"module": "dist/esm/index.js",
|
|
5
|
+
"typings": "dist/esm/index.d.ts",
|
|
6
|
+
"files": [
|
|
7
|
+
"dist"
|
|
8
|
+
],
|
|
9
|
+
"scripts": {
|
|
10
|
+
"build": "father build",
|
|
11
|
+
"deploy": "npm run docs:build && npm run docs:deploy",
|
|
12
|
+
"docs:build": "dumi build",
|
|
13
|
+
"docs:deploy": "gh-pages -d docs-dist",
|
|
14
|
+
"prepublishOnly": "npm run build",
|
|
15
|
+
"prettier": "prettier --write \"**/*.{js,jsx,tsx,ts,less,md,json}\"",
|
|
16
|
+
"pub": "lerna publish",
|
|
17
|
+
"start": "dumi dev",
|
|
18
|
+
"test": "umi-test",
|
|
19
|
+
"test:coverage": "umi-test --coverage"
|
|
20
|
+
},
|
|
21
|
+
"lint-staged": {
|
|
22
|
+
"*.{js,jsx,less,md,json}": [
|
|
23
|
+
"prettier --write"
|
|
24
|
+
],
|
|
25
|
+
"*.ts?(x)": [
|
|
26
|
+
"prettier --parser=typescript --write"
|
|
27
|
+
]
|
|
28
|
+
},
|
|
29
|
+
"dependencies": {
|
|
30
|
+
"react": "^16.12.0 || ^17.0.0",
|
|
31
|
+
"react-router-dom": "^6.8.2"
|
|
32
|
+
},
|
|
33
|
+
"devDependencies": {
|
|
34
|
+
"@testing-library/jest-dom": "^5.15.1",
|
|
35
|
+
"@testing-library/react": "^12.1.2",
|
|
36
|
+
"@types/jest": "^27.0.3",
|
|
37
|
+
"@types/lodash": "^4.14.182",
|
|
38
|
+
"@umijs/fabric": "^2.8.1",
|
|
39
|
+
"@umijs/test": "^3.0.5",
|
|
40
|
+
"@zgfe/business-lib": "1.1.12",
|
|
41
|
+
"antd": "4.22.6",
|
|
42
|
+
"dumi": "^1.1.0",
|
|
43
|
+
"father-build": "^1.17.2",
|
|
44
|
+
"gh-pages": "^3.0.0",
|
|
45
|
+
"lerna": "^5.1.7",
|
|
46
|
+
"lint-staged": "^10.0.7",
|
|
47
|
+
"lodash": "^4.17.21",
|
|
48
|
+
"prettier": "^2.2.1",
|
|
49
|
+
"umi-request": "^1.4.0",
|
|
50
|
+
"yorkie": "^2.0.0"
|
|
51
|
+
},
|
|
52
|
+
"gitHooks": {
|
|
53
|
+
"pre-commit": "lint-staged"
|
|
54
|
+
},
|
|
55
|
+
"gitHead": "f05f0244ff4d25d1c178383157d1c8690a8b2c58"
|
|
56
|
+
}
|