eoss-ui 0.3.97
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/CHANGELOG.md +929 -0
- package/README.md +30 -0
- package/lib/button-group.js +2857 -0
- package/lib/button.js +2884 -0
- package/lib/card.js +603 -0
- package/lib/cascader.js +373 -0
- package/lib/checkbox-group.js +3099 -0
- package/lib/clients.js +375 -0
- package/lib/config/api.js +205 -0
- package/lib/data-table-form.js +3848 -0
- package/lib/data-table.js +6315 -0
- package/lib/date-picker.js +2821 -0
- package/lib/dialog.js +3730 -0
- package/lib/enterprise.js +372 -0
- package/lib/eoss-ui.common.js +65365 -0
- package/lib/error-page.js +293 -0
- package/lib/flow-group.js +4200 -0
- package/lib/flow-list.js +4350 -0
- package/lib/flow.js +12893 -0
- package/lib/form.js +15635 -0
- package/lib/handle-user.js +2900 -0
- package/lib/handler.js +3118 -0
- package/lib/index.js +1 -0
- package/lib/input-number.js +2743 -0
- package/lib/input.js +2935 -0
- package/lib/label.js +411 -0
- package/lib/login.js +5048 -0
- package/lib/main.js +5816 -0
- package/lib/mainComp.js +6530 -0
- package/lib/menu.js +529 -0
- package/lib/nav.js +3048 -0
- package/lib/notify.js +1079 -0
- package/lib/page.js +3036 -0
- package/lib/pagination.js +354 -0
- package/lib/player.js +2904 -0
- package/lib/qr-code.js +2860 -0
- package/lib/radio-group.js +3091 -0
- package/lib/select-ganged.js +3242 -0
- package/lib/select.js +3295 -0
- package/lib/selector-panel.js +4425 -0
- package/lib/selector.js +3722 -0
- package/lib/sizer.js +3067 -0
- package/lib/steps.js +2943 -0
- package/lib/switch.js +2784 -0
- package/lib/table-form.js +6211 -0
- package/lib/tabs-panel.js +274 -0
- package/lib/tabs.js +4988 -0
- package/lib/theme-chalk/base.css +1 -0
- package/lib/theme-chalk/button-group.css +1 -0
- package/lib/theme-chalk/button.css +0 -0
- package/lib/theme-chalk/card.css +1 -0
- package/lib/theme-chalk/cascader.css +0 -0
- package/lib/theme-chalk/checkbox-group.css +1 -0
- package/lib/theme-chalk/clients.css +1 -0
- package/lib/theme-chalk/data-table-form.css +1 -0
- package/lib/theme-chalk/data-table.css +1 -0
- package/lib/theme-chalk/date-picker.css +1 -0
- package/lib/theme-chalk/dialog.css +1 -0
- package/lib/theme-chalk/enterprise.css +1 -0
- package/lib/theme-chalk/error-page.css +1 -0
- package/lib/theme-chalk/flow-chart.css +0 -0
- package/lib/theme-chalk/flow-group.css +1 -0
- package/lib/theme-chalk/flow-list.css +1 -0
- package/lib/theme-chalk/flow.css +1 -0
- package/lib/theme-chalk/fonts/iconfont.ttf +0 -0
- package/lib/theme-chalk/fonts/iconfont.woff +0 -0
- package/lib/theme-chalk/form.css +1 -0
- package/lib/theme-chalk/handle-user.css +1 -0
- package/lib/theme-chalk/handler.css +1 -0
- package/lib/theme-chalk/icon.css +1 -0
- package/lib/theme-chalk/index.css +1 -0
- package/lib/theme-chalk/input-number.css +0 -0
- package/lib/theme-chalk/input.css +1 -0
- package/lib/theme-chalk/label.css +1 -0
- package/lib/theme-chalk/login.css +1 -0
- package/lib/theme-chalk/main.css +1 -0
- package/lib/theme-chalk/mainComp.css +0 -0
- package/lib/theme-chalk/menu.css +1 -0
- package/lib/theme-chalk/nav.css +1 -0
- package/lib/theme-chalk/notify.css +0 -0
- package/lib/theme-chalk/page.css +1 -0
- package/lib/theme-chalk/pagination.css +1 -0
- package/lib/theme-chalk/player.css +1 -0
- package/lib/theme-chalk/qr-code.css +1 -0
- package/lib/theme-chalk/radio-group.css +1 -0
- package/lib/theme-chalk/radio.css +1 -0
- package/lib/theme-chalk/select-ganged.css +1 -0
- package/lib/theme-chalk/select.css +0 -0
- package/lib/theme-chalk/selector-panel.css +1 -0
- package/lib/theme-chalk/selector.css +1 -0
- package/lib/theme-chalk/sizer.css +1 -0
- package/lib/theme-chalk/steps.css +1 -0
- package/lib/theme-chalk/switch.css +1 -0
- package/lib/theme-chalk/table-form.css +0 -0
- package/lib/theme-chalk/tabs-panel.css +0 -0
- package/lib/theme-chalk/tabs.css +1 -0
- package/lib/theme-chalk/tips.css +1 -0
- package/lib/theme-chalk/toolbar.css +1 -0
- package/lib/theme-chalk/tree-group.css +1 -0
- package/lib/theme-chalk/tree.css +1 -0
- package/lib/theme-chalk/upload.css +1 -0
- package/lib/theme-chalk/wujie.css +0 -0
- package/lib/theme-chalk/wxlogin.css +1 -0
- package/lib/tips.js +2830 -0
- package/lib/toolbar.js +531 -0
- package/lib/tree-group.js +3373 -0
- package/lib/tree.js +3482 -0
- package/lib/upload.js +3913 -0
- package/lib/utils/bus.js +9 -0
- package/lib/utils/date-util.js +318 -0
- package/lib/utils/http.js +58 -0
- package/lib/utils/rules.js +19 -0
- package/lib/utils/store.js +22 -0
- package/lib/utils/util.js +2056 -0
- package/lib/wujie.js +2845 -0
- package/lib/wxlogin.js +2799 -0
- package/package.json +151 -0
- package/packages/button/index.js +5 -0
- package/packages/button/src/main.vue +264 -0
- package/packages/button-group/index.js +5 -0
- package/packages/button-group/src/main.vue +130 -0
- package/packages/card/index.js +5 -0
- package/packages/card/src/main.vue +144 -0
- package/packages/cascader/index.js +5 -0
- package/packages/cascader/src/main.vue +144 -0
- package/packages/checkbox-group/index.js +5 -0
- package/packages/checkbox-group/src/main.vue +285 -0
- package/packages/clients/index.js +5 -0
- package/packages/clients/src/main.vue +50 -0
- package/packages/data-table/index.js +5 -0
- package/packages/data-table/src/children.vue +40 -0
- package/packages/data-table/src/column.vue +796 -0
- package/packages/data-table/src/main copy.vue +1383 -0
- package/packages/data-table/src/main.vue +1229 -0
- package/packages/data-table/src/mixins/table.js +12 -0
- package/packages/data-table/src/sizer.vue +160 -0
- package/packages/data-table-form/index.js +5 -0
- package/packages/data-table-form/src/colgroup.vue +17 -0
- package/packages/data-table-form/src/main.vue +167 -0
- package/packages/data-table-form/src/table.vue +192 -0
- package/packages/data-table-form/src/tbody.vue +219 -0
- package/packages/data-table-form/src/thead.vue +68 -0
- package/packages/date-picker/index.js +5 -0
- package/packages/date-picker/src/main.vue +185 -0
- package/packages/dialog/index.js +5 -0
- package/packages/dialog/src/main.vue +442 -0
- package/packages/enterprise/index.js +5 -0
- package/packages/enterprise/src/main.vue +66 -0
- package/packages/error-page/index.js +5 -0
- package/packages/error-page/src/main.vue +44 -0
- package/packages/flow/index.js +5 -0
- package/packages/flow/src/component/CommonOpinions.vue +290 -0
- package/packages/flow/src/component/CustomPreset.vue +311 -0
- package/packages/flow/src/component/FileList.vue +97 -0
- package/packages/flow/src/component/Preset.vue +253 -0
- package/packages/flow/src/component/SendMsg.vue +221 -0
- package/packages/flow/src/component/TimeLimit.vue +190 -0
- package/packages/flow/src/component/taskUnionExamine.vue +507 -0
- package/packages/flow/src/form.vue +120 -0
- package/packages/flow/src/main.vue +2107 -0
- package/packages/flow/src/processForm.vue +866 -0
- package/packages/flow/src/processReject.vue +262 -0
- package/packages/flow/src/selectUser.vue +425 -0
- package/packages/flow/src/startTaskRead.vue +556 -0
- package/packages/flow/src/table.vue +51 -0
- package/packages/flow-group/index.js +5 -0
- package/packages/flow-group/src/main.vue +540 -0
- package/packages/flow-list/index.js +5 -0
- package/packages/flow-list/src/flow-table.vue +445 -0
- package/packages/flow-list/src/main.vue +456 -0
- package/packages/form/index.js +5 -0
- package/packages/form/src/main.vue +4429 -0
- package/packages/form/src/table.vue +1196 -0
- package/packages/handle-user/index.js +5 -0
- package/packages/handle-user/src/main.vue +122 -0
- package/packages/handler/index.js +5 -0
- package/packages/handler/src/main.vue +306 -0
- package/packages/input/index.js +5 -0
- package/packages/input/src/main.vue +307 -0
- package/packages/input-number/index.js +5 -0
- package/packages/input-number/src/main.vue +106 -0
- package/packages/label/index.js +5 -0
- package/packages/label/src/main.vue +208 -0
- package/packages/login/index.js +5 -0
- package/packages/login/src/main.vue +1193 -0
- package/packages/login/src/resetPassword.vue +332 -0
- package/packages/main/index.js +5 -0
- package/packages/main/src/main.vue +1496 -0
- package/packages/main/src/message.vue +239 -0
- package/packages/main/src/notice.vue +145 -0
- package/packages/main/src/settings.vue +105 -0
- package/packages/main/src/userinfo.vue +430 -0
- package/packages/mainComp/index.js +5 -0
- package/packages/mainComp/src/async-component/index.vue +85 -0
- package/packages/mainComp/src/main.vue +1934 -0
- package/packages/mainComp/src/message.vue +239 -0
- package/packages/mainComp/src/notice.vue +152 -0
- package/packages/mainComp/src/settings.vue +105 -0
- package/packages/mainComp/src/userinfo.vue +423 -0
- package/packages/menu/index.js +5 -0
- package/packages/menu/src/main.vue +401 -0
- package/packages/nav/index.js +5 -0
- package/packages/nav/src/main.vue +250 -0
- package/packages/notify/index.js +5 -0
- package/packages/notify/src/main.vue +538 -0
- package/packages/page/index.js +5 -0
- package/packages/page/src/main.vue +167 -0
- package/packages/pagination/index.js +5 -0
- package/packages/pagination/src/main.vue +77 -0
- package/packages/player/index.js +5 -0
- package/packages/player/src/main.vue +194 -0
- package/packages/qr-code/index.js +5 -0
- package/packages/qr-code/src/main.vue +154 -0
- package/packages/radio/index.js +5 -0
- package/packages/radio/src/main.vue +259 -0
- package/packages/radio-group/index.js +6 -0
- package/packages/radio-group/src/main.vue +267 -0
- package/packages/select/index.js +5 -0
- package/packages/select/src/main.vue +683 -0
- package/packages/select-ganged/index.js +5 -0
- package/packages/select-ganged/src/main.vue +686 -0
- package/packages/selector/index.js +5 -0
- package/packages/selector/src/main.vue +588 -0
- package/packages/selector-panel/index.js +5 -0
- package/packages/selector-panel/src/main.vue +968 -0
- package/packages/selector-panel/src/selection.vue +142 -0
- package/packages/selector-panel/src/tree.vue +129 -0
- package/packages/sizer/index.js +5 -0
- package/packages/sizer/src/main.vue +254 -0
- package/packages/steps/index.js +5 -0
- package/packages/steps/src/main.vue +175 -0
- package/packages/switch/index.js +5 -0
- package/packages/switch/src/main.vue +154 -0
- package/packages/table-form/index.js +5 -0
- package/packages/tabs/index.js +5 -0
- package/packages/tabs/src/main.vue +749 -0
- package/packages/tabs-panel/index.js +5 -0
- package/packages/tabs-panel/src/main.vue +18 -0
- package/packages/theme-chalk/README.md +33 -0
- package/packages/theme-chalk/lib/base.css +1 -0
- package/packages/theme-chalk/lib/button-group.css +1 -0
- package/packages/theme-chalk/lib/button.css +0 -0
- package/packages/theme-chalk/lib/card.css +1 -0
- package/packages/theme-chalk/lib/cascader.css +0 -0
- package/packages/theme-chalk/lib/checkbox-group.css +1 -0
- package/packages/theme-chalk/lib/clients.css +1 -0
- package/packages/theme-chalk/lib/data-table-form.css +1 -0
- package/packages/theme-chalk/lib/data-table.css +1 -0
- package/packages/theme-chalk/lib/date-picker.css +1 -0
- package/packages/theme-chalk/lib/dialog.css +1 -0
- package/packages/theme-chalk/lib/enterprise.css +1 -0
- package/packages/theme-chalk/lib/error-page.css +1 -0
- package/packages/theme-chalk/lib/flow-chart.css +0 -0
- package/packages/theme-chalk/lib/flow-group.css +1 -0
- package/packages/theme-chalk/lib/flow-list.css +1 -0
- package/packages/theme-chalk/lib/flow.css +1 -0
- package/packages/theme-chalk/lib/fonts/iconfont.ttf +0 -0
- package/packages/theme-chalk/lib/fonts/iconfont.woff +0 -0
- package/packages/theme-chalk/lib/form.css +1 -0
- package/packages/theme-chalk/lib/handle-user.css +1 -0
- package/packages/theme-chalk/lib/handler.css +1 -0
- package/packages/theme-chalk/lib/icon.css +1 -0
- package/packages/theme-chalk/lib/index.css +1 -0
- package/packages/theme-chalk/lib/input-number.css +0 -0
- package/packages/theme-chalk/lib/input.css +1 -0
- package/packages/theme-chalk/lib/label.css +1 -0
- package/packages/theme-chalk/lib/login.css +1 -0
- package/packages/theme-chalk/lib/main.css +1 -0
- package/packages/theme-chalk/lib/mainComp.css +0 -0
- package/packages/theme-chalk/lib/menu.css +1 -0
- package/packages/theme-chalk/lib/nav.css +1 -0
- package/packages/theme-chalk/lib/notify.css +0 -0
- package/packages/theme-chalk/lib/page.css +1 -0
- package/packages/theme-chalk/lib/pagination.css +1 -0
- package/packages/theme-chalk/lib/player.css +1 -0
- package/packages/theme-chalk/lib/qr-code.css +1 -0
- package/packages/theme-chalk/lib/radio-group.css +1 -0
- package/packages/theme-chalk/lib/radio.css +1 -0
- package/packages/theme-chalk/lib/select-ganged.css +1 -0
- package/packages/theme-chalk/lib/select.css +0 -0
- package/packages/theme-chalk/lib/selector-panel.css +1 -0
- package/packages/theme-chalk/lib/selector.css +1 -0
- package/packages/theme-chalk/lib/sizer.css +1 -0
- package/packages/theme-chalk/lib/steps.css +1 -0
- package/packages/theme-chalk/lib/switch.css +1 -0
- package/packages/theme-chalk/lib/table-form.css +0 -0
- package/packages/theme-chalk/lib/tabs-panel.css +0 -0
- package/packages/theme-chalk/lib/tabs.css +1 -0
- package/packages/theme-chalk/lib/tips.css +1 -0
- package/packages/theme-chalk/lib/toolbar.css +1 -0
- package/packages/theme-chalk/lib/tree-group.css +1 -0
- package/packages/theme-chalk/lib/tree.css +1 -0
- package/packages/theme-chalk/lib/upload.css +1 -0
- package/packages/theme-chalk/lib/wujie.css +0 -0
- package/packages/theme-chalk/lib/wxlogin.css +1 -0
- package/packages/theme-chalk/package.json +35 -0
- package/packages/theme-chalk/src/base.scss +165 -0
- package/packages/theme-chalk/src/button-group.scss +9 -0
- package/packages/theme-chalk/src/button.scss +0 -0
- package/packages/theme-chalk/src/card.scss +55 -0
- package/packages/theme-chalk/src/cascader.scss +0 -0
- package/packages/theme-chalk/src/checkbox-group.scss +8 -0
- package/packages/theme-chalk/src/clients.scss +72 -0
- package/packages/theme-chalk/src/common/var.scss +1516 -0
- package/packages/theme-chalk/src/data-table-form.scss +55 -0
- package/packages/theme-chalk/src/data-table.scss +202 -0
- package/packages/theme-chalk/src/date-picker.scss +8 -0
- package/packages/theme-chalk/src/dialog.scss +52 -0
- package/packages/theme-chalk/src/enterprise.scss +5 -0
- package/packages/theme-chalk/src/error-page.scss +18 -0
- package/packages/theme-chalk/src/flow-chart.scss +0 -0
- package/packages/theme-chalk/src/flow-group.scss +101 -0
- package/packages/theme-chalk/src/flow-list.scss +41 -0
- package/packages/theme-chalk/src/flow.scss +285 -0
- package/packages/theme-chalk/src/fonts/iconfont.ttf +0 -0
- package/packages/theme-chalk/src/fonts/iconfont.woff +0 -0
- package/packages/theme-chalk/src/form.scss +451 -0
- package/packages/theme-chalk/src/handle-user.scss +40 -0
- package/packages/theme-chalk/src/handler.scss +131 -0
- package/packages/theme-chalk/src/icon.scss +1714 -0
- package/packages/theme-chalk/src/index.scss +50 -0
- package/packages/theme-chalk/src/input-number.scss +0 -0
- package/packages/theme-chalk/src/input.scss +3 -0
- package/packages/theme-chalk/src/label.scss +24 -0
- package/packages/theme-chalk/src/login.scss +490 -0
- package/packages/theme-chalk/src/main.scss +483 -0
- package/packages/theme-chalk/src/mainComp.scss +0 -0
- package/packages/theme-chalk/src/menu.scss +201 -0
- package/packages/theme-chalk/src/mixins/color.scss +117 -0
- package/packages/theme-chalk/src/mixins/mixins.scss +25 -0
- package/packages/theme-chalk/src/nav.scss +73 -0
- package/packages/theme-chalk/src/notify.scss +0 -0
- package/packages/theme-chalk/src/page.scss +3 -0
- package/packages/theme-chalk/src/pagination.scss +14 -0
- package/packages/theme-chalk/src/player.scss +9 -0
- package/packages/theme-chalk/src/qr-code.scss +17 -0
- package/packages/theme-chalk/src/radio-group.scss +9 -0
- package/packages/theme-chalk/src/radio.scss +3 -0
- package/packages/theme-chalk/src/select-ganged.scss +9 -0
- package/packages/theme-chalk/src/select.scss +0 -0
- package/packages/theme-chalk/src/selector-panel.scss +203 -0
- package/packages/theme-chalk/src/selector.scss +85 -0
- package/packages/theme-chalk/src/sizer.scss +36 -0
- package/packages/theme-chalk/src/steps.scss +88 -0
- package/packages/theme-chalk/src/switch.scss +3 -0
- package/packages/theme-chalk/src/table-form.scss +1 -0
- package/packages/theme-chalk/src/tabs-panel.scss +0 -0
- package/packages/theme-chalk/src/tabs.scss +91 -0
- package/packages/theme-chalk/src/tips.scss +7 -0
- package/packages/theme-chalk/src/toolbar.scss +121 -0
- package/packages/theme-chalk/src/tree-group.scss +64 -0
- package/packages/theme-chalk/src/tree.scss +140 -0
- package/packages/theme-chalk/src/upload.scss +131 -0
- package/packages/theme-chalk/src/wujie.scss +0 -0
- package/packages/theme-chalk/src/wxlogin.scss +3 -0
- package/packages/tips/index.js +5 -0
- package/packages/tips/src/main.vue +126 -0
- package/packages/toolbar/index.js +5 -0
- package/packages/toolbar/src/main.vue +377 -0
- package/packages/tree/index.js +5 -0
- package/packages/tree/src/main.vue +636 -0
- package/packages/tree-group/index.js +5 -0
- package/packages/tree-group/src/main.vue +435 -0
- package/packages/upload/index.js +5 -0
- package/packages/upload/src/main.vue +1033 -0
- package/packages/upload/src/picture.js +15 -0
- package/packages/wujie/index.js +5 -0
- package/packages/wujie/src/main.vue +137 -0
- package/packages/wxlogin/index.js +5 -0
- package/packages/wxlogin/src/main.vue +110 -0
- package/src/config/api.js +211 -0
- package/src/index.js +167 -0
- package/src/utils/bus.js +3 -0
- package/src/utils/date-util.js +312 -0
- package/src/utils/http.js +50 -0
- package/src/utils/rules.js +18 -0
- package/src/utils/store.js +21 -0
- package/src/utils/util.js +2105 -0
|
@@ -0,0 +1,2056 @@
|
|
|
1
|
+
exports.__esModule = true;
|
|
2
|
+
|
|
3
|
+
var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; };
|
|
4
|
+
|
|
5
|
+
var _api = require('../config/api');
|
|
6
|
+
|
|
7
|
+
var _axios = require('axios');
|
|
8
|
+
|
|
9
|
+
var _axios2 = _interopRequireDefault(_axios);
|
|
10
|
+
|
|
11
|
+
var _qs = require('qs');
|
|
12
|
+
|
|
13
|
+
var _qs2 = _interopRequireDefault(_qs);
|
|
14
|
+
|
|
15
|
+
var _jsonBigint = require('json-bigint');
|
|
16
|
+
|
|
17
|
+
var _jsonBigint2 = _interopRequireDefault(_jsonBigint);
|
|
18
|
+
|
|
19
|
+
var _eossElement = require('eoss-element');
|
|
20
|
+
|
|
21
|
+
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
22
|
+
|
|
23
|
+
/**
|
|
24
|
+
* 新封装公告方法规范:
|
|
25
|
+
* 1.方法顺序按字母顺序排列
|
|
26
|
+
* 2.参数超过2个且有的参数是非必传的最好用对象形式传参
|
|
27
|
+
*
|
|
28
|
+
**/
|
|
29
|
+
|
|
30
|
+
/* eslint-disable indent */
|
|
31
|
+
var sm2 = require('sm-crypto').sm2;
|
|
32
|
+
|
|
33
|
+
|
|
34
|
+
var win = window.__WUJIE_RAW_WINDOW__ ? window.__WUJIE_RAW_WINDOW__ : window;
|
|
35
|
+
|
|
36
|
+
var $hueStep = 2;
|
|
37
|
+
var $saturationStep1 = 0.16;
|
|
38
|
+
var $saturationStep2 = 0.05;
|
|
39
|
+
var $brightnessStep1 = 0.05;
|
|
40
|
+
var $brightnessStep2 = 0.15;
|
|
41
|
+
var $lightColorCount = 5;
|
|
42
|
+
var $darkColorCount = 4;
|
|
43
|
+
var publicKey = 'abcdefghijklmnopqrstuvwxyz12345678';
|
|
44
|
+
|
|
45
|
+
var JSONbigToString = (0, _jsonBigint2.default)({ storeAsString: true });
|
|
46
|
+
|
|
47
|
+
|
|
48
|
+
/**
|
|
49
|
+
* ajax
|
|
50
|
+
* @desc:ajax请求
|
|
51
|
+
* @author huangbo
|
|
52
|
+
* @date 2022年5月7日
|
|
53
|
+
* @param {Object} [headers] - headers
|
|
54
|
+
* @param {String} [method] - 请求类型
|
|
55
|
+
* @param {String} [url] - 请求地址
|
|
56
|
+
* @param {String} [host] - host
|
|
57
|
+
* @param {Object} [data] - 请求参数
|
|
58
|
+
* @param {Object} [params] - 请求参数
|
|
59
|
+
* @param {Boolean} [format] - post请求是否使用表单类型
|
|
60
|
+
* @param {Boolean} [mix] - 是否混合传参
|
|
61
|
+
* @param {Boolean} [defaults] - 是否传入默认参数userId
|
|
62
|
+
* @param {Object} [loading] - loading加载对象
|
|
63
|
+
**/
|
|
64
|
+
// 请求
|
|
65
|
+
var _timer = null;
|
|
66
|
+
var pendingRequest = new Map();
|
|
67
|
+
function getRequestKey(config) {
|
|
68
|
+
var method = config.method,
|
|
69
|
+
url = config.url,
|
|
70
|
+
params = config.params,
|
|
71
|
+
data = config.data;
|
|
72
|
+
|
|
73
|
+
return [method, url, _qs2.default.stringify(params), _qs2.default.stringify(data)].join('&');
|
|
74
|
+
};
|
|
75
|
+
function delPendingRequest(config) {
|
|
76
|
+
var requestKey = getRequestKey(config);
|
|
77
|
+
if (pendingRequest.has(requestKey)) {
|
|
78
|
+
pendingRequest.delete(requestKey);
|
|
79
|
+
}
|
|
80
|
+
}
|
|
81
|
+
var ajax = function ajax(_ref) {
|
|
82
|
+
var _ref$headers = _ref.headers,
|
|
83
|
+
headers = _ref$headers === undefined ? {} : _ref$headers,
|
|
84
|
+
method = _ref.method,
|
|
85
|
+
url = _ref.url,
|
|
86
|
+
_ref$host = _ref.host,
|
|
87
|
+
host = _ref$host === undefined ? true : _ref$host,
|
|
88
|
+
_ref$data = _ref.data,
|
|
89
|
+
data = _ref$data === undefined ? {} : _ref$data,
|
|
90
|
+
_ref$params = _ref.params,
|
|
91
|
+
params = _ref$params === undefined ? {} : _ref$params,
|
|
92
|
+
_ref$format = _ref.format,
|
|
93
|
+
format = _ref$format === undefined ? true : _ref$format,
|
|
94
|
+
_ref$mix = _ref.mix,
|
|
95
|
+
mix = _ref$mix === undefined ? false : _ref$mix,
|
|
96
|
+
_ref$defaults = _ref.defaults,
|
|
97
|
+
defaults = _ref$defaults === undefined ? false : _ref$defaults,
|
|
98
|
+
loading = _ref.loading;
|
|
99
|
+
|
|
100
|
+
if (!method) {
|
|
101
|
+
if (format) {
|
|
102
|
+
method = 'get';
|
|
103
|
+
} else {
|
|
104
|
+
method = 'post';
|
|
105
|
+
}
|
|
106
|
+
} else {
|
|
107
|
+
method = method.toLowerCase();
|
|
108
|
+
}
|
|
109
|
+
var baseURL = host === true ? getStorage('host') : host === false ? '' : host;
|
|
110
|
+
var http = _axios2.default.create({
|
|
111
|
+
baseURL: baseURL,
|
|
112
|
+
timeout: 99000,
|
|
113
|
+
transformResponse: [function (data) {
|
|
114
|
+
try {
|
|
115
|
+
return JSONbigToString.parse(data);
|
|
116
|
+
} catch (err) {
|
|
117
|
+
return data;
|
|
118
|
+
}
|
|
119
|
+
}]
|
|
120
|
+
});
|
|
121
|
+
// 请求拦截
|
|
122
|
+
http.interceptors.request.use(function (config) {
|
|
123
|
+
config.headers.common = getStorage();
|
|
124
|
+
// 根据请求的信息(请求方式,url,请求get/post数据),产生map的key
|
|
125
|
+
var requestKey = getRequestKey(config);
|
|
126
|
+
// 判断请求是否重复
|
|
127
|
+
if (pendingRequest.has(requestKey)) {
|
|
128
|
+
// 取消上次请求
|
|
129
|
+
var cancel = pendingRequest.get(requestKey);
|
|
130
|
+
cancel();
|
|
131
|
+
// 删除请求信息
|
|
132
|
+
pendingRequest.delete(requestKey);
|
|
133
|
+
}
|
|
134
|
+
// 把请求信息,添加请求到map当中
|
|
135
|
+
// 生成取消方法
|
|
136
|
+
config.cancelToken = config.cancelToken || new _axios2.default.CancelToken(function (cancel) {
|
|
137
|
+
// 把取消方法添加到map
|
|
138
|
+
if (!pendingRequest.has(requestKey)) {
|
|
139
|
+
pendingRequest.set(requestKey, cancel);
|
|
140
|
+
}
|
|
141
|
+
});
|
|
142
|
+
return config;
|
|
143
|
+
}, function (err) {
|
|
144
|
+
return err;
|
|
145
|
+
});
|
|
146
|
+
// 响应拦截
|
|
147
|
+
http.interceptors.response.use(function (response) {
|
|
148
|
+
delPendingRequest(response.config);
|
|
149
|
+
loading && loading.close();
|
|
150
|
+
if (response.headers.authorization && response.headers.authorization !== getStorage('token')) {
|
|
151
|
+
if (localStorage.getItem('storage') === 'localStorage' || localStorage.getItem('ssId') || localStorage.getItem('token') || localStorage.getItem('Authorization')) {
|
|
152
|
+
localStorage.setItem('ssId', response.headers.ssid);
|
|
153
|
+
localStorage.setItem('token', response.headers.authorization);
|
|
154
|
+
localStorage.setItem('Authorization', response.headers.authorization);
|
|
155
|
+
} else {
|
|
156
|
+
sessionStorage.setItem('ssId', response.headers.ssid);
|
|
157
|
+
sessionStorage.setItem('token', response.headers.authorization);
|
|
158
|
+
sessionStorage.setItem('Authorization', response.headers.authorization);
|
|
159
|
+
}
|
|
160
|
+
}
|
|
161
|
+
if (response.status === 200) {
|
|
162
|
+
if (response.data.rCode === 64 || response.data.rCode === 65 || response.data.rCode === 67 || response.data.rCode === 69) {
|
|
163
|
+
removeStorage(['Authorization', 'token', 'ssId', 'userId', 'userName', 'deviceUnique', 'menus', 'menus', 'useCaseCodes', 'mainConfig']);
|
|
164
|
+
|
|
165
|
+
var timer = getStorage('timer') || 0;
|
|
166
|
+
timer = parseInt(timer, 10);
|
|
167
|
+
if (win.top.location.href.indexOf('#/login') === -1 && win.top.location.href.indexOf('/login.html') === -1 && !timer) {
|
|
168
|
+
sessionStorage.setItem('timer', 1);
|
|
169
|
+
_eossElement.MessageBox.confirm(response.data.rCode === 69 ? '该账号在其他地方已登陆!' : '登录已过期,请重新登录!', '提示', response.data.rCode === 69 ? {
|
|
170
|
+
confirmButtonText: '确定',
|
|
171
|
+
closeOnClickModal: false,
|
|
172
|
+
type: 'warning'
|
|
173
|
+
} : {
|
|
174
|
+
confirmButtonText: '确定',
|
|
175
|
+
cancelButtonText: '取消',
|
|
176
|
+
closeOnClickModal: false,
|
|
177
|
+
type: 'warning'
|
|
178
|
+
}).then(function () {
|
|
179
|
+
var loginPage = getStorage('login') || getStorage('loginPage');
|
|
180
|
+
if (loginPage) {
|
|
181
|
+
win.top.location.href = loginPage;
|
|
182
|
+
} else if (win.top.location.href.indexOf('main.html') > -1) {
|
|
183
|
+
win.top.location.href = './login.html';
|
|
184
|
+
} else {
|
|
185
|
+
var hash = win.top.location.hash;
|
|
186
|
+
if (hash || win.top.location.indexOf('model=') && win.top.location.indexOf('view=') && win.top.location.indexOf('render.html')) {
|
|
187
|
+
var len = win.top.location.href.indexOf(hash);
|
|
188
|
+
var href = win.top.location.href.slice(0, len) + '#/login';
|
|
189
|
+
win.top.location.href = href;
|
|
190
|
+
} else {
|
|
191
|
+
win.top.location.href = '/login.html';
|
|
192
|
+
}
|
|
193
|
+
}
|
|
194
|
+
}).catch(function (e) {
|
|
195
|
+
_timer && clearTimeout(_timer);
|
|
196
|
+
_timer = setTimeout(function () {
|
|
197
|
+
removeStorage('timer');
|
|
198
|
+
clearTimeout(_timer);
|
|
199
|
+
_timer = null;
|
|
200
|
+
}, 1000);
|
|
201
|
+
});
|
|
202
|
+
}
|
|
203
|
+
return Promise.reject(response.data);
|
|
204
|
+
} else {
|
|
205
|
+
// eslint-disable-next-line no-undef
|
|
206
|
+
return Promise.resolve(response.data);
|
|
207
|
+
}
|
|
208
|
+
}
|
|
209
|
+
}, function (error) {
|
|
210
|
+
loading && loading.close();
|
|
211
|
+
if (!_axios2.default.isCancel(error)) {
|
|
212
|
+
delPendingRequest(error.config || {});
|
|
213
|
+
}
|
|
214
|
+
if (error && error.response) {
|
|
215
|
+
if (error.response.status) {
|
|
216
|
+
switch (error.response.status) {
|
|
217
|
+
case 400:
|
|
218
|
+
error.message = '错误请求';
|
|
219
|
+
break;
|
|
220
|
+
case 401:
|
|
221
|
+
error.message = '未授权,请重新登录';
|
|
222
|
+
break;
|
|
223
|
+
case 403:
|
|
224
|
+
error.message = '登录过期,请重新登录';
|
|
225
|
+
break;
|
|
226
|
+
case 404:
|
|
227
|
+
error.message = '网络请求不存在';
|
|
228
|
+
break;
|
|
229
|
+
case 405:
|
|
230
|
+
error.message = '请求方法错误';
|
|
231
|
+
break;
|
|
232
|
+
case 408:
|
|
233
|
+
error.message = '请求超时';
|
|
234
|
+
break;
|
|
235
|
+
case 500:
|
|
236
|
+
error.message = '服务器端出错';
|
|
237
|
+
break;
|
|
238
|
+
case 501:
|
|
239
|
+
error.message = '网络未实现';
|
|
240
|
+
break;
|
|
241
|
+
case 502:
|
|
242
|
+
error.message = '网络错误';
|
|
243
|
+
break;
|
|
244
|
+
case 503:
|
|
245
|
+
error.message = '服务不可用';
|
|
246
|
+
break;
|
|
247
|
+
case 504:
|
|
248
|
+
error.message = '网络超时';
|
|
249
|
+
break;
|
|
250
|
+
case 505:
|
|
251
|
+
error.message = 'http版本不支持该请求';
|
|
252
|
+
break;
|
|
253
|
+
default:
|
|
254
|
+
error.message = '\u8FDE\u63A5\u9519\u8BEF' + error.response.status;
|
|
255
|
+
}
|
|
256
|
+
} else {
|
|
257
|
+
error.message = '无法请求,请联系管理员';
|
|
258
|
+
}
|
|
259
|
+
}
|
|
260
|
+
// eslint-disable-next-line no-undef
|
|
261
|
+
return Promise.reject(error);
|
|
262
|
+
});
|
|
263
|
+
var userId = getStorage('userId');
|
|
264
|
+
if (!Object.prototype.hasOwnProperty.call(data, 'userId') && userId && defaults) {
|
|
265
|
+
data.userId = userId;
|
|
266
|
+
}
|
|
267
|
+
if (!Object.prototype.hasOwnProperty.call(params, 'userId') && userId && defaults) {
|
|
268
|
+
params.userId = getStorage('userId');
|
|
269
|
+
}
|
|
270
|
+
if (!mix && method === 'get') {
|
|
271
|
+
data = {};
|
|
272
|
+
}
|
|
273
|
+
if (method === 'post') {
|
|
274
|
+
if (!mix) {
|
|
275
|
+
params = {};
|
|
276
|
+
}
|
|
277
|
+
if (format) {
|
|
278
|
+
data = _qs2.default.stringify(data);
|
|
279
|
+
headers['content-type'] = 'application/x-www-form-urlencoded';
|
|
280
|
+
}
|
|
281
|
+
}
|
|
282
|
+
return http({
|
|
283
|
+
method: method,
|
|
284
|
+
url: url,
|
|
285
|
+
data: data,
|
|
286
|
+
params: params,
|
|
287
|
+
headers: headers
|
|
288
|
+
});
|
|
289
|
+
};
|
|
290
|
+
|
|
291
|
+
/**
|
|
292
|
+
* arrUnique
|
|
293
|
+
* @desc:数组元素对象去重
|
|
294
|
+
* @author huangbo
|
|
295
|
+
* @date 2022年5月7日
|
|
296
|
+
* @param {Object} [data] - 原始数组
|
|
297
|
+
* @param {String} [key] - 对象子元素的属性名
|
|
298
|
+
**/
|
|
299
|
+
var arrUnique = function arrUnique(data, key) {
|
|
300
|
+
var newArr = [];
|
|
301
|
+
if (key === undefined) {
|
|
302
|
+
data.sort();
|
|
303
|
+
newArr = [data[0]];
|
|
304
|
+
for (var i = 1; i < data.length; i++) {
|
|
305
|
+
if (data[i] !== newArr[newArr.length - 1]) {
|
|
306
|
+
newArr.push(data[i]);
|
|
307
|
+
}
|
|
308
|
+
}
|
|
309
|
+
} else {
|
|
310
|
+
var obj = {};
|
|
311
|
+
for (var _i = 0; _i < data.length; _i++) {
|
|
312
|
+
if (!obj[data[_i][key]]) {
|
|
313
|
+
newArr.push(data[_i]);
|
|
314
|
+
obj[data[_i][key]] = true;
|
|
315
|
+
}
|
|
316
|
+
}
|
|
317
|
+
}
|
|
318
|
+
return newArr;
|
|
319
|
+
};
|
|
320
|
+
/**
|
|
321
|
+
* browser
|
|
322
|
+
* @desc:浏览器类型
|
|
323
|
+
* @author huangbo
|
|
324
|
+
* @date 2022年5月7日
|
|
325
|
+
**/
|
|
326
|
+
var browser = function browser() {
|
|
327
|
+
var reg = { ie: /msie/, moz: /gecko/, opera: /opera/, safari: /safari/ };
|
|
328
|
+
for (var i in reg) {
|
|
329
|
+
if (reg[i].test(win.navigator.userAgent.toLowerCase())) {
|
|
330
|
+
return i;
|
|
331
|
+
}
|
|
332
|
+
}
|
|
333
|
+
};
|
|
334
|
+
|
|
335
|
+
/**
|
|
336
|
+
* debounce
|
|
337
|
+
* @desc:添加js内容
|
|
338
|
+
* @author huangbo
|
|
339
|
+
* @date 2022年5月7日
|
|
340
|
+
* @param {Function} [fn] - 函数
|
|
341
|
+
* @param {Number} [wait] - 延迟毫秒数
|
|
342
|
+
* @param {Boolean} [immediate] - 是否首次触发执行
|
|
343
|
+
**/
|
|
344
|
+
|
|
345
|
+
var debounce = function debounce(fn, wait, immediate) {
|
|
346
|
+
var timeout = void 0;
|
|
347
|
+
return function () {
|
|
348
|
+
var self = this;
|
|
349
|
+
var args = arguments;
|
|
350
|
+
|
|
351
|
+
if (timeout) clearTimeout(timeout);
|
|
352
|
+
// 是否在某一批事件中首次执行
|
|
353
|
+
if (immediate) {
|
|
354
|
+
var callNow = !timeout;
|
|
355
|
+
timeout = setTimeout(function () {
|
|
356
|
+
timeout = null;
|
|
357
|
+
fn.apply(self, args);
|
|
358
|
+
immediate = true;
|
|
359
|
+
}, wait);
|
|
360
|
+
if (callNow) {
|
|
361
|
+
fn.apply(self, args);
|
|
362
|
+
}
|
|
363
|
+
immediate = false;
|
|
364
|
+
} else {
|
|
365
|
+
timeout = setTimeout(function () {
|
|
366
|
+
fn.apply(self, args);
|
|
367
|
+
immediate = true;
|
|
368
|
+
}, wait);
|
|
369
|
+
}
|
|
370
|
+
};
|
|
371
|
+
};
|
|
372
|
+
/**
|
|
373
|
+
* delUrlParam
|
|
374
|
+
* @desc:删除url指定参数
|
|
375
|
+
* @author huangbo
|
|
376
|
+
* @date 2022年5月7日
|
|
377
|
+
* @param {String} [url] - url地址
|
|
378
|
+
* @param {String} [key] - 参数名
|
|
379
|
+
**/
|
|
380
|
+
var delUrlParam = function delUrlParam(_ref2) {
|
|
381
|
+
var url = _ref2.url,
|
|
382
|
+
key = _ref2.key;
|
|
383
|
+
|
|
384
|
+
var src = url ? decodeURI(url) : decodeURI(win.top.location.href);
|
|
385
|
+
var param = getParams({ url: src });
|
|
386
|
+
if (param && param.hasOwnProperty(key)) {
|
|
387
|
+
var reg = key + '=' + param[key];
|
|
388
|
+
if (Object.keys(param).length > 1) {
|
|
389
|
+
if (src.indexOf(reg + '&') > -1) {
|
|
390
|
+
src = src.replace(reg + '&', '');
|
|
391
|
+
}
|
|
392
|
+
if (src.indexOf('&' + reg) > -1) {
|
|
393
|
+
src = src.replace('&' + reg, '');
|
|
394
|
+
}
|
|
395
|
+
} else {
|
|
396
|
+
src = src.replace('?' + reg, '');
|
|
397
|
+
}
|
|
398
|
+
}
|
|
399
|
+
return src;
|
|
400
|
+
};
|
|
401
|
+
|
|
402
|
+
/**
|
|
403
|
+
* domEval
|
|
404
|
+
* @desc:添加js内容
|
|
405
|
+
* @author huangbo
|
|
406
|
+
* @date 2022年5月7日
|
|
407
|
+
* @param {String} [code] - js内容
|
|
408
|
+
**/
|
|
409
|
+
var domEval = function domEval(code) {
|
|
410
|
+
var script = document.createElement('script');
|
|
411
|
+
script.text = code;
|
|
412
|
+
document.head.appendChild(script);
|
|
413
|
+
};
|
|
414
|
+
|
|
415
|
+
/**
|
|
416
|
+
* esEncode
|
|
417
|
+
* @desc:加密
|
|
418
|
+
* @author huangbo
|
|
419
|
+
* @date 2022年5月7日
|
|
420
|
+
* @param {string} [data] - 被加密的字符串
|
|
421
|
+
**/
|
|
422
|
+
var esEncode = function esEncode(value) {
|
|
423
|
+
var kleng = publicKey.length;
|
|
424
|
+
var kstr = publicKey.split('');
|
|
425
|
+
var result = '';
|
|
426
|
+
var cat = void 0;
|
|
427
|
+
var cat1 = void 0;
|
|
428
|
+
var cat2 = void 0;
|
|
429
|
+
var cat3 = void 0;
|
|
430
|
+
for (var i = 0; i < value.length; i++) {
|
|
431
|
+
cat = value.charCodeAt(i);
|
|
432
|
+
cat1 = cat % kleng;
|
|
433
|
+
cat = (cat - cat1) / kleng;
|
|
434
|
+
cat2 = cat % kleng;
|
|
435
|
+
cat = (cat - cat2) / kleng;
|
|
436
|
+
cat3 = cat % kleng;
|
|
437
|
+
result += kstr[cat3] + kstr[cat2] + kstr[cat1];
|
|
438
|
+
}
|
|
439
|
+
return result;
|
|
440
|
+
};
|
|
441
|
+
|
|
442
|
+
/**
|
|
443
|
+
* esDecode
|
|
444
|
+
* @desc:解密
|
|
445
|
+
* @author huangbo
|
|
446
|
+
* @date 2022年5月7日
|
|
447
|
+
* @param {string} [value] - 被解密的加密字符串
|
|
448
|
+
* @param {string} [key] - 私钥
|
|
449
|
+
**/
|
|
450
|
+
var esDecode = function esDecode(value) {
|
|
451
|
+
var kleng = publicKey.length;
|
|
452
|
+
var result;
|
|
453
|
+
var cat1 = void 0;
|
|
454
|
+
var cat2 = void 0;
|
|
455
|
+
var cat3 = void 0;
|
|
456
|
+
var num = 0;
|
|
457
|
+
var arr = void 0;
|
|
458
|
+
arr = new Array(Math.floor(value.length / 3));
|
|
459
|
+
result = arr.length;
|
|
460
|
+
for (var i = 0; i < result; i++) {
|
|
461
|
+
cat1 = publicKey.indexOf(value.charAt(num));
|
|
462
|
+
num++;
|
|
463
|
+
cat2 = publicKey.indexOf(value.charAt(num));
|
|
464
|
+
num++;
|
|
465
|
+
cat3 = publicKey.indexOf(value.charAt(num));
|
|
466
|
+
num++;
|
|
467
|
+
arr[i] = cat1 * kleng * kleng + cat2 * kleng + cat3;
|
|
468
|
+
}
|
|
469
|
+
// eslint-disable-next-line no-eval
|
|
470
|
+
result = eval('String.fromCharCode(' + arr.join(',') + ')');
|
|
471
|
+
return result;
|
|
472
|
+
};
|
|
473
|
+
|
|
474
|
+
/**
|
|
475
|
+
* esmEncrypt
|
|
476
|
+
* @desc:sm2加密
|
|
477
|
+
* @author huangbo
|
|
478
|
+
* @date 2022年5月7日
|
|
479
|
+
* @param {string} [data] - 被加密的字符串
|
|
480
|
+
* @param {string} [key] - 公钥
|
|
481
|
+
**/
|
|
482
|
+
var esmEncrypt = function esmEncrypt(_ref3) {
|
|
483
|
+
var data = _ref3.data,
|
|
484
|
+
key = _ref3.key,
|
|
485
|
+
mode = _ref3.mode;
|
|
486
|
+
|
|
487
|
+
var cipherMode = mode ? mode : 1;
|
|
488
|
+
if (!new RegExp('^04').test(key)) {
|
|
489
|
+
key = '04' + key;
|
|
490
|
+
}
|
|
491
|
+
var result = sm2.doEncrypt(data, key, cipherMode);
|
|
492
|
+
return result;
|
|
493
|
+
};
|
|
494
|
+
|
|
495
|
+
/**
|
|
496
|
+
* esmDecode
|
|
497
|
+
* @desc:sm2解密
|
|
498
|
+
* @author huangbo
|
|
499
|
+
* @date 2022年5月7日
|
|
500
|
+
* @param {string} [data] - 被解密的加密字符串
|
|
501
|
+
* @param {string} [key] - 私钥
|
|
502
|
+
**/
|
|
503
|
+
var esmDecode = function esmDecode(_ref4) {
|
|
504
|
+
var data = _ref4.data,
|
|
505
|
+
key = _ref4.key,
|
|
506
|
+
mode = _ref4.mode;
|
|
507
|
+
|
|
508
|
+
var cipherMode = mode ? mode : 1;
|
|
509
|
+
if (new RegExp('^04').test(key)) {
|
|
510
|
+
key = key.slice(2);
|
|
511
|
+
}
|
|
512
|
+
var result = sm2.doDecrypt(data, key, cipherMode);
|
|
513
|
+
return result;
|
|
514
|
+
};
|
|
515
|
+
|
|
516
|
+
/**
|
|
517
|
+
* 排除属性
|
|
518
|
+
* @desc:exclAttribute
|
|
519
|
+
* @author huangbo
|
|
520
|
+
* @date 2022年5月7日
|
|
521
|
+
* @param {String/Array} [attrs] - 要排除的属性
|
|
522
|
+
**/
|
|
523
|
+
var exclAttribute = function exclAttribute(_ref5) {
|
|
524
|
+
var _ref5$attrs = _ref5.attrs,
|
|
525
|
+
attrs = _ref5$attrs === undefined ? 'value' : _ref5$attrs,
|
|
526
|
+
data = _ref5.data;
|
|
527
|
+
|
|
528
|
+
var obj = extend(true, {}, data);
|
|
529
|
+
if (Array.isArray(attrs)) {
|
|
530
|
+
attrs.forEach(function (item) {
|
|
531
|
+
if (obj[item] !== undefined) {
|
|
532
|
+
delete obj[item];
|
|
533
|
+
}
|
|
534
|
+
});
|
|
535
|
+
} else {
|
|
536
|
+
delete obj[attrs];
|
|
537
|
+
}
|
|
538
|
+
return obj;
|
|
539
|
+
};
|
|
540
|
+
|
|
541
|
+
/**
|
|
542
|
+
* exportXls
|
|
543
|
+
* @desc:导出表格数据
|
|
544
|
+
* @author huangbo
|
|
545
|
+
* @date 2022年5月7日
|
|
546
|
+
* @param {thead} [array] - 表单头部
|
|
547
|
+
* @param {data} [array] - 导出的数据
|
|
548
|
+
* @param {name} [string] - 导出文件名
|
|
549
|
+
* @param {numbers} [boolean] - 序号
|
|
550
|
+
**/
|
|
551
|
+
var exportXls = function exportXls(_ref6) {
|
|
552
|
+
var _ref6$thead = _ref6.thead,
|
|
553
|
+
thead = _ref6$thead === undefined ? [] : _ref6$thead,
|
|
554
|
+
_ref6$data = _ref6.data,
|
|
555
|
+
data = _ref6$data === undefined ? [] : _ref6$data,
|
|
556
|
+
name = _ref6.name,
|
|
557
|
+
numbers = _ref6.numbers;
|
|
558
|
+
|
|
559
|
+
var tbody = '';
|
|
560
|
+
var aligns = [];
|
|
561
|
+
var fields = [];
|
|
562
|
+
var others = {};
|
|
563
|
+
var alink = document.createElement('a');
|
|
564
|
+
for (var i = 0; i < thead.length; i++) {
|
|
565
|
+
tbody += '<tr style="text-align: center;">';
|
|
566
|
+
if (numbers) {
|
|
567
|
+
tbody += '<th rowspan="' + thead.length + '"></th>';
|
|
568
|
+
}
|
|
569
|
+
var tr = thead[i];
|
|
570
|
+
var col = 0;
|
|
571
|
+
for (var _x = 0; _x < tr.length; _x++) {
|
|
572
|
+
var td = tr[_x];
|
|
573
|
+
if (td.property) {
|
|
574
|
+
if (col === _x) {
|
|
575
|
+
fields.push(td.property);
|
|
576
|
+
aligns.push(td.align);
|
|
577
|
+
} else {
|
|
578
|
+
others[String(col)] = [td.property, td.align];
|
|
579
|
+
}
|
|
580
|
+
}
|
|
581
|
+
tbody += '<th rowspan="' + td.rowspan + '" colspan="' + td.colspan + '" align="' + td.align + '">' + td.label + '</th>';
|
|
582
|
+
if (td.colspan) {
|
|
583
|
+
col += parseInt(td.colspan, 10);
|
|
584
|
+
} else {
|
|
585
|
+
col++;
|
|
586
|
+
}
|
|
587
|
+
}
|
|
588
|
+
tbody += '</tr>';
|
|
589
|
+
}
|
|
590
|
+
for (var _i2 in others) {
|
|
591
|
+
fields.splice(_i2, 0, others[_i2][0]);
|
|
592
|
+
aligns.splice(_i2, 0, others[_i2][1]);
|
|
593
|
+
}
|
|
594
|
+
for (var _i3 = 0; _i3 < data.length; _i3++) {
|
|
595
|
+
tbody += '<tr>';
|
|
596
|
+
for (var x in fields) {
|
|
597
|
+
tbody += '<td align="' + aligns[x] + '">' + data[_i3][fields[x]] + '</td>';
|
|
598
|
+
}
|
|
599
|
+
tbody += '</tr>';
|
|
600
|
+
}
|
|
601
|
+
if (!name) {
|
|
602
|
+
name = 'table_' + new Date().getTime();
|
|
603
|
+
}
|
|
604
|
+
var uri = 'data:application/vnd.ms-excel;base64,';
|
|
605
|
+
var template = '<html xmlns:o="urn:schemas-microsoft-com:office:office" xmlns:x="urn:schemas-microsoft-com:office:excel" xmlns="http://www.w3.org/TR/REC-html40"><meta charset="UTF-8"><!--[if gte mso 9]><xml><x:ExcelWorkbook><x:ExcelWorksheets><x:ExcelWorksheet><x:Name>{worksheet}</x:Name><x:WorksheetOptions><x:DisplayGridlines/></x:WorksheetOptions></x:ExcelWorksheet></x:ExcelWorksheets></x:ExcelWorkbook></xml><![endif]--></head><body><table style="vnd.ms-excel.numberformat:@">' + tbody + '</table></body></html>';
|
|
606
|
+
alink.href = uri + win.btoa(unescape(encodeURIComponent(template)));
|
|
607
|
+
alink.download = name + '.xls';
|
|
608
|
+
document.body.appendChild(alink);
|
|
609
|
+
alink.click();
|
|
610
|
+
document.body.removeChild(alink);
|
|
611
|
+
};
|
|
612
|
+
|
|
613
|
+
/**
|
|
614
|
+
* extend
|
|
615
|
+
* @desc:对象拷贝
|
|
616
|
+
* @author huangbo
|
|
617
|
+
* @date 2022年5月7日
|
|
618
|
+
* @param {Object} [target] - 被扩展的对象
|
|
619
|
+
* @param {Boolean}} [deep] - 是否深度操作
|
|
620
|
+
**/
|
|
621
|
+
var extend = function extend() {
|
|
622
|
+
var options = void 0;
|
|
623
|
+
var name = void 0;
|
|
624
|
+
var src = void 0;
|
|
625
|
+
var copy = void 0;
|
|
626
|
+
var copyIsArray = void 0;
|
|
627
|
+
var clone = void 0;
|
|
628
|
+
var target = arguments[0] || {};
|
|
629
|
+
var i = 1;
|
|
630
|
+
var length = arguments.length;
|
|
631
|
+
var deep = false;
|
|
632
|
+
if (typeof target === 'boolean') {
|
|
633
|
+
deep = target;
|
|
634
|
+
target = arguments[i] || {};
|
|
635
|
+
i++;
|
|
636
|
+
}
|
|
637
|
+
if ((typeof target === 'undefined' ? 'undefined' : _typeof(target)) !== 'object' && !isFunction(target)) {
|
|
638
|
+
target = {};
|
|
639
|
+
}
|
|
640
|
+
if (i === length) {
|
|
641
|
+
target = this;
|
|
642
|
+
i--;
|
|
643
|
+
}
|
|
644
|
+
for (; i < length; i++) {
|
|
645
|
+
if ((options = arguments[i]) != null) {
|
|
646
|
+
for (name in options) {
|
|
647
|
+
copy = options[name];
|
|
648
|
+
if (name === '__proto__' || target === copy) {
|
|
649
|
+
continue;
|
|
650
|
+
}
|
|
651
|
+
if (deep && copy && (isObject(copy) || (copyIsArray = Array.isArray(copy)))) {
|
|
652
|
+
src = target[name];
|
|
653
|
+
if (copyIsArray && !Array.isArray(src)) {
|
|
654
|
+
clone = [];
|
|
655
|
+
} else if (!copyIsArray && !isObject(src)) {
|
|
656
|
+
clone = {};
|
|
657
|
+
} else {
|
|
658
|
+
clone = src;
|
|
659
|
+
}
|
|
660
|
+
copyIsArray = false;
|
|
661
|
+
target[name] = extend(deep, clone, copy);
|
|
662
|
+
} else if (copy !== undefined) {
|
|
663
|
+
target[name] = copy;
|
|
664
|
+
}
|
|
665
|
+
}
|
|
666
|
+
}
|
|
667
|
+
}
|
|
668
|
+
return target;
|
|
669
|
+
};
|
|
670
|
+
|
|
671
|
+
/**
|
|
672
|
+
* formatDate
|
|
673
|
+
* @desc:格式化时间
|
|
674
|
+
* @author huangbo
|
|
675
|
+
* @date 2022年5月7日
|
|
676
|
+
* @param {String, Number} [date] - 时间字符串或时间戳
|
|
677
|
+
* @param {String} [fmt] - 格式
|
|
678
|
+
**/
|
|
679
|
+
var formatDate = function formatDate(date, fmt) {
|
|
680
|
+
var obj = void 0;
|
|
681
|
+
if (date) {
|
|
682
|
+
obj = new Date(date);
|
|
683
|
+
} else {
|
|
684
|
+
obj = new Date();
|
|
685
|
+
}
|
|
686
|
+
var quarter = ['一', '二', '三', '四'];
|
|
687
|
+
var o = {
|
|
688
|
+
'b+': Math.ceil((obj.getMonth() + 1) / 6), // 半年
|
|
689
|
+
'M+': obj.getMonth() + 1, // 月份
|
|
690
|
+
'd+': obj.getDate(), // 日
|
|
691
|
+
'H+': obj.getHours(), // 小时
|
|
692
|
+
'm+': obj.getMinutes(), // 分
|
|
693
|
+
's+': obj.getSeconds(), // 秒
|
|
694
|
+
'q+': quarter[Math.ceil((obj.getMonth() + 1) / 3) - 1], // 季度
|
|
695
|
+
S: obj.getMilliseconds() // 毫秒
|
|
696
|
+
};
|
|
697
|
+
if (/(y+)/.test(fmt)) {
|
|
698
|
+
fmt = fmt.replace(RegExp.$1, (obj.getFullYear() + '').substr(4 - RegExp.$1.length));
|
|
699
|
+
}
|
|
700
|
+
for (var k in o) {
|
|
701
|
+
if (new RegExp('(' + k + ')').test(fmt)) {
|
|
702
|
+
fmt = fmt.replace(RegExp.$1, RegExp.$1.length === 1 ? o[k] : ('00' + o[k]).substr(('' + o[k]).length));
|
|
703
|
+
}
|
|
704
|
+
}
|
|
705
|
+
return fmt;
|
|
706
|
+
};
|
|
707
|
+
|
|
708
|
+
/**
|
|
709
|
+
* getColor
|
|
710
|
+
* @desc:根据颜色和对应的色板位置,计算出对应的色板颜色
|
|
711
|
+
* @author huangbo
|
|
712
|
+
* @date 2022年5月7日
|
|
713
|
+
**/
|
|
714
|
+
var getColor = function getColor($color, $n) {
|
|
715
|
+
var $isLight = $n < 7;
|
|
716
|
+
var $hsv = rgbToHsv($color);
|
|
717
|
+
// 这里将i转换成以主色为中心,两侧的i值逐渐增大
|
|
718
|
+
var $i = $isLight ? $lightColorCount + 1 - $n : $n - $lightColorCount - 1;
|
|
719
|
+
var color = hsvTorgb(getHue($hsv[0], $i, $isLight), getSaturation($hsv[1], $i, $isLight), getLightness($hsv[2], $i, $isLight));
|
|
720
|
+
return color;
|
|
721
|
+
};
|
|
722
|
+
|
|
723
|
+
/**
|
|
724
|
+
* getHue
|
|
725
|
+
* @desc:转换色相
|
|
726
|
+
* @author huangbo
|
|
727
|
+
* @date 2022年5月7日
|
|
728
|
+
**/
|
|
729
|
+
var getHue = function getHue($h, $i, $isLight) {
|
|
730
|
+
var $hue = void 0;
|
|
731
|
+
if ($h >= 60 && $h <= 240) {
|
|
732
|
+
$hue = $isLight ? $h - $hueStep * $i : $h + $hueStep * $i;
|
|
733
|
+
} else {
|
|
734
|
+
$hue = $isLight ? $h + $hueStep * $i : $h - $hueStep * $i;
|
|
735
|
+
}
|
|
736
|
+
$hue = ($hue + 360) % 360;
|
|
737
|
+
return Math.round($hue);
|
|
738
|
+
};
|
|
739
|
+
|
|
740
|
+
/**
|
|
741
|
+
* getLightness
|
|
742
|
+
* @desc:转换明度
|
|
743
|
+
* @author huangbo
|
|
744
|
+
* @date 2022年5月7日
|
|
745
|
+
**/
|
|
746
|
+
var getLightness = function getLightness($v, $i, $isLight) {
|
|
747
|
+
var $value = $isLight ? $v + $brightnessStep1 * $i : $v - $brightnessStep2 * $i;
|
|
748
|
+
$value = $value < 1 ? $value : 1;
|
|
749
|
+
return toFixed($value, 2);
|
|
750
|
+
};
|
|
751
|
+
|
|
752
|
+
/**
|
|
753
|
+
* getObjectType
|
|
754
|
+
* @desc:获取数据类型
|
|
755
|
+
* @author tangdaibing
|
|
756
|
+
* @date 2022年5月7日
|
|
757
|
+
**/
|
|
758
|
+
var getObjectType = function getObjectType(data) {
|
|
759
|
+
var type = Object.prototype.toString.call(data).toLowerCase();
|
|
760
|
+
var typeFormat = {
|
|
761
|
+
'[object string]': 'string',
|
|
762
|
+
'[object number]': 'number',
|
|
763
|
+
'[object null]': 'null',
|
|
764
|
+
'[object boolean]': 'boolean',
|
|
765
|
+
'[object undefined]': 'undefined',
|
|
766
|
+
'[object object]': 'object',
|
|
767
|
+
'[object array]': 'array',
|
|
768
|
+
'[object function]': 'function',
|
|
769
|
+
'[object date]': 'date'
|
|
770
|
+
};
|
|
771
|
+
return typeFormat[type];
|
|
772
|
+
};
|
|
773
|
+
|
|
774
|
+
/**
|
|
775
|
+
* getParams
|
|
776
|
+
* @desc:获取url地址指定参数
|
|
777
|
+
* @author huangbo
|
|
778
|
+
* @date 2022年5月7日
|
|
779
|
+
* @param {String/Object} [res] - String:参数名称;Object:name参数名称,url:需要查询的地址
|
|
780
|
+
* @param {String/Boolean} [url] - Boolean:是否返回不带参数的url地址,String:返回不带参数的url地址的属性名
|
|
781
|
+
**/
|
|
782
|
+
var getParams = function getParams(res, baseUrl) {
|
|
783
|
+
var name = void 0;
|
|
784
|
+
var url = void 0;
|
|
785
|
+
if (typeof res === 'string') {
|
|
786
|
+
name = res;
|
|
787
|
+
} else if ((typeof res === 'undefined' ? 'undefined' : _typeof(res)) === 'object') {
|
|
788
|
+
name = res.name;
|
|
789
|
+
url = res.url ? decodeURI(res.url) : '';
|
|
790
|
+
}
|
|
791
|
+
var search = void 0;
|
|
792
|
+
var _url = void 0;
|
|
793
|
+
if (url) {
|
|
794
|
+
if (startWith(url, ['/', './'], true) || url.indexOf('html') > -1 || url.indexOf('dhtml') > -1 || url.indexOf('/#/') > -1) {
|
|
795
|
+
if (url.indexOf('?') === -1) {
|
|
796
|
+
_url = url.slice(0);
|
|
797
|
+
} else {
|
|
798
|
+
_url = url.slice(0, url.indexOf('?'));
|
|
799
|
+
search = url.slice(url.indexOf('?') + 1);
|
|
800
|
+
}
|
|
801
|
+
}
|
|
802
|
+
} else if (win.location.search) {
|
|
803
|
+
search = decodeURI(win.location.search).slice(1);
|
|
804
|
+
} else {
|
|
805
|
+
search = decodeURI(win.location.hash);
|
|
806
|
+
if (search.indexOf('?') > -1) {
|
|
807
|
+
search = search.slice(search.indexOf('?') + 1);
|
|
808
|
+
} else {
|
|
809
|
+
search = null;
|
|
810
|
+
}
|
|
811
|
+
}
|
|
812
|
+
if (search) {
|
|
813
|
+
if (name) {
|
|
814
|
+
var reg = new RegExp('(^|&)' + name + '=([^&]*)(&|$)');
|
|
815
|
+
var r = search.match(reg);
|
|
816
|
+
if (r != null) {
|
|
817
|
+
return unescape(r[2]).replace(new RegExp('/+', 'gm'), '&');
|
|
818
|
+
} else {
|
|
819
|
+
return null;
|
|
820
|
+
}
|
|
821
|
+
}
|
|
822
|
+
var obj = {};
|
|
823
|
+
if (baseUrl) {
|
|
824
|
+
if (typeof baseUrl === 'string') {
|
|
825
|
+
obj[baseUrl] = _url;
|
|
826
|
+
} else {
|
|
827
|
+
obj['_baseUrl'] = _url;
|
|
828
|
+
}
|
|
829
|
+
}
|
|
830
|
+
if (search.indexOf('&') > -1) {
|
|
831
|
+
search.split('&').forEach(function (item) {
|
|
832
|
+
var val = item;
|
|
833
|
+
var param = void 0;
|
|
834
|
+
if (val.indexOf('?') > -1) {
|
|
835
|
+
var ary = val.split('?');
|
|
836
|
+
val = ary[0];
|
|
837
|
+
param = ary[1].replace(new RegExp('/+', 'gm'), '&');
|
|
838
|
+
}
|
|
839
|
+
var items = val.split('=');
|
|
840
|
+
obj[items[0]] = items[1] + (param ? '?' + param : '');
|
|
841
|
+
});
|
|
842
|
+
} else {
|
|
843
|
+
var items = search.split('=');
|
|
844
|
+
obj[items[0]] = items[1];
|
|
845
|
+
}
|
|
846
|
+
return obj;
|
|
847
|
+
}
|
|
848
|
+
return null;
|
|
849
|
+
};
|
|
850
|
+
|
|
851
|
+
/**
|
|
852
|
+
* getRgb
|
|
853
|
+
* @desc:获取颜色值的rgb值
|
|
854
|
+
* @author huangbo
|
|
855
|
+
* @date 2022年5月7日
|
|
856
|
+
* @param {string} [$color] - 颜色值
|
|
857
|
+
**/
|
|
858
|
+
var getRgb = function getRgb($color) {
|
|
859
|
+
var rgb = [];
|
|
860
|
+
// 16进制颜色值的正则
|
|
861
|
+
var reg = /^#([0-9a-fA-f]{3}|[0-9a-fA-f]{6})$/;
|
|
862
|
+
// 把颜色值变成小写
|
|
863
|
+
$color = $color.toLowerCase();
|
|
864
|
+
if (reg.test($color)) {
|
|
865
|
+
// 如果只有三位的值,需变成六位,如:#fff => #ffffff
|
|
866
|
+
if ($color.length === 4) {
|
|
867
|
+
var colorNew = '#';
|
|
868
|
+
for (var i = 1; i < 4; i++) {
|
|
869
|
+
colorNew += $color.slice(i, i + 1).concat($color.slice(i, i + 1));
|
|
870
|
+
}
|
|
871
|
+
$color = colorNew;
|
|
872
|
+
}
|
|
873
|
+
// 处理六位的颜色值,转为RGB
|
|
874
|
+
for (var _i4 = 1; _i4 < 7; _i4 += 2) {
|
|
875
|
+
rgb.push(parseInt('0x' + $color.slice(_i4, _i4 + 2), 16));
|
|
876
|
+
}
|
|
877
|
+
} else {
|
|
878
|
+
rgb = $color.replace(/(?:\(|\)|rgb|RGB)*/g, '').split(',');
|
|
879
|
+
}
|
|
880
|
+
return rgb;
|
|
881
|
+
};
|
|
882
|
+
|
|
883
|
+
/**
|
|
884
|
+
* getSaturation
|
|
885
|
+
* @desc:转换饱和度
|
|
886
|
+
* @author huangbo
|
|
887
|
+
* @date 2022年5月7日
|
|
888
|
+
**/
|
|
889
|
+
var getSaturation = function getSaturation($s, $i, $isLight) {
|
|
890
|
+
var $saturation = void 0;
|
|
891
|
+
if ($isLight) {
|
|
892
|
+
$saturation = $s - $saturationStep1 * $i;
|
|
893
|
+
} else if ($i === $darkColorCount) {
|
|
894
|
+
$saturation = $s + $saturationStep1;
|
|
895
|
+
} else {
|
|
896
|
+
$saturation = $s + $saturationStep2 * $i;
|
|
897
|
+
}
|
|
898
|
+
$saturation = $saturation < 1 ? $saturation : 1;
|
|
899
|
+
|
|
900
|
+
if ($isLight && $i === $lightColorCount && $saturation > 0.1) {
|
|
901
|
+
$saturation = 0.1;
|
|
902
|
+
}
|
|
903
|
+
$saturation = $saturation > 0.06 ? $saturation : 0.06;
|
|
904
|
+
return toFixed($saturation, 2);
|
|
905
|
+
};
|
|
906
|
+
|
|
907
|
+
/**
|
|
908
|
+
* getScript
|
|
909
|
+
* @desc:获取js文件并执行
|
|
910
|
+
* @author huangbo
|
|
911
|
+
* @date 2022年5月7日
|
|
912
|
+
* @param {String} [url] - js文件地址
|
|
913
|
+
**/
|
|
914
|
+
var getScript = function getScript(url, callback) {
|
|
915
|
+
// eslint-disable-next-line no-undef
|
|
916
|
+
return new Promise(function (resolve, reject) {
|
|
917
|
+
var xmlHttp = null;
|
|
918
|
+
if (win.XMLHttpRequest) {
|
|
919
|
+
xmlHttp = new XMLHttpRequest();
|
|
920
|
+
} else if (win.ActiveXObject) {
|
|
921
|
+
xmlHttp = new win.ActiveXObject('Microsoft.XMLHTTP');
|
|
922
|
+
}
|
|
923
|
+
if (xmlHttp == null) {
|
|
924
|
+
alert('浏览器不支持xmlHttp');
|
|
925
|
+
return;
|
|
926
|
+
}
|
|
927
|
+
xmlHttp.open('GET', url, false);
|
|
928
|
+
xmlHttp.onreadystatechange = function () {
|
|
929
|
+
if (xmlHttp.readyState === 4 && xmlHttp.status === 200) {
|
|
930
|
+
var res = xmlHttp.responseText;
|
|
931
|
+
if (callback) {
|
|
932
|
+
typeof callback === 'function' && callback(res);
|
|
933
|
+
} else {
|
|
934
|
+
domEval(res);
|
|
935
|
+
}
|
|
936
|
+
resolve(res);
|
|
937
|
+
} else {
|
|
938
|
+
reject(false);
|
|
939
|
+
}
|
|
940
|
+
};
|
|
941
|
+
xmlHttp.send();
|
|
942
|
+
});
|
|
943
|
+
};
|
|
944
|
+
|
|
945
|
+
/**
|
|
946
|
+
* getStorage
|
|
947
|
+
* @desc:获取本地储存数据
|
|
948
|
+
* @author huangbo
|
|
949
|
+
* @date 2022年5月7日
|
|
950
|
+
* @param {String} [key] - 获取的名称
|
|
951
|
+
**/
|
|
952
|
+
var getStorage = function getStorage(key) {
|
|
953
|
+
if (key) {
|
|
954
|
+
var res = sessionStorage.getItem(key) || localStorage.getItem(key) || win[key];
|
|
955
|
+
if (key === 'host' && !res) {
|
|
956
|
+
return win.location.origin;
|
|
957
|
+
}
|
|
958
|
+
return res;
|
|
959
|
+
}
|
|
960
|
+
var defaults = {};
|
|
961
|
+
var token = sessionStorage.getItem('token') || localStorage.getItem('token') || win.token;
|
|
962
|
+
var ssId = sessionStorage.getItem('ssId') || localStorage.getItem('ssId') || win.ssId;
|
|
963
|
+
var deviceUnique = sessionStorage.getItem('deviceUnique') || localStorage.getItem('deviceUnique') || win.deviceUnique;
|
|
964
|
+
if (token) {
|
|
965
|
+
defaults.Authorization = token;
|
|
966
|
+
}
|
|
967
|
+
if (ssId) {
|
|
968
|
+
defaults.ssId = ssId;
|
|
969
|
+
}
|
|
970
|
+
if (deviceUnique) {
|
|
971
|
+
defaults.deviceUnique = deviceUnique;
|
|
972
|
+
}
|
|
973
|
+
return defaults;
|
|
974
|
+
};
|
|
975
|
+
|
|
976
|
+
/**
|
|
977
|
+
* getStyle
|
|
978
|
+
* @desc:获取元素样式(含非行内样式)
|
|
979
|
+
* @author huangbo
|
|
980
|
+
* @date 2022年5月7日
|
|
981
|
+
* @param {String} [dom] - dom元素
|
|
982
|
+
* @param {String} [attr] - 样式属性名
|
|
983
|
+
**/
|
|
984
|
+
|
|
985
|
+
var getStyle = function getStyle(dom, attr) {
|
|
986
|
+
if (dom.style[attr]) {
|
|
987
|
+
return dom.style[attr];
|
|
988
|
+
}
|
|
989
|
+
if (win.getComputedStyle) {
|
|
990
|
+
return getComputedStyle(dom, null)[attr];
|
|
991
|
+
}
|
|
992
|
+
return dom.currentStyle[attr];
|
|
993
|
+
};
|
|
994
|
+
|
|
995
|
+
/**
|
|
996
|
+
* getTypeName
|
|
997
|
+
* @desc:转换类型文本
|
|
998
|
+
* @author huangbo
|
|
999
|
+
* @date 2022年5月7日
|
|
1000
|
+
* @param {string} [type] - 类型
|
|
1001
|
+
**/
|
|
1002
|
+
var getTypeName = function getTypeName(type) {
|
|
1003
|
+
var typeName = '';
|
|
1004
|
+
var sysorgname = getStorage('sysorgname');
|
|
1005
|
+
var sysdepname = getStorage('sysdepname');
|
|
1006
|
+
if (type === 'enterprise') {
|
|
1007
|
+
if (sysorgname) {
|
|
1008
|
+
typeName = '[' + sysorgname + ']';
|
|
1009
|
+
} else {
|
|
1010
|
+
typeName = '[公司]';
|
|
1011
|
+
}
|
|
1012
|
+
} else if (type === 'department') {
|
|
1013
|
+
if (sysdepname) {
|
|
1014
|
+
typeName = '[' + sysdepname + ']';
|
|
1015
|
+
} else {
|
|
1016
|
+
typeName = '[部门]';
|
|
1017
|
+
}
|
|
1018
|
+
} else if (type === 'role') {
|
|
1019
|
+
typeName = '[角色]';
|
|
1020
|
+
} else if (type === 'post') {
|
|
1021
|
+
typeName = '[岗位]';
|
|
1022
|
+
} else if (type === 'otheremployee' || type === 'employee') {
|
|
1023
|
+
if (sysdepname) {
|
|
1024
|
+
typeName = '[' + sysdepname + '员工]';
|
|
1025
|
+
} else {
|
|
1026
|
+
typeName = '[部门员工]';
|
|
1027
|
+
}
|
|
1028
|
+
} else if (type === 'postemployee') {
|
|
1029
|
+
typeName = '[岗位员工]';
|
|
1030
|
+
} else if (type === 'persongroup') {
|
|
1031
|
+
typeName = '[人员群组成员]';
|
|
1032
|
+
} else if (type === 'filgroup') {
|
|
1033
|
+
if (sysorgname) {
|
|
1034
|
+
typeName = '[' + sysorgname + '群组成员]';
|
|
1035
|
+
} else {
|
|
1036
|
+
typeName = '[公司群组成员]';
|
|
1037
|
+
}
|
|
1038
|
+
} else if (type === 'depgroup') {
|
|
1039
|
+
if (sysdepname) {
|
|
1040
|
+
typeName = '[' + sysdepname + '群组成员]';
|
|
1041
|
+
} else {
|
|
1042
|
+
typeName = '[部门群组成员]';
|
|
1043
|
+
}
|
|
1044
|
+
} else if (type === 'persongroupobj') {
|
|
1045
|
+
typeName = '[人员群组]';
|
|
1046
|
+
} else if (type === 'filgroupobj') {
|
|
1047
|
+
if (sysorgname) {
|
|
1048
|
+
typeName = '[' + sysorgname + '群组]';
|
|
1049
|
+
} else {
|
|
1050
|
+
typeName = '[公司群组]';
|
|
1051
|
+
}
|
|
1052
|
+
} else if (type === 'depgroupobj') {
|
|
1053
|
+
if (sysdepname) {
|
|
1054
|
+
typeName = '[' + sysdepname + '群组]';
|
|
1055
|
+
} else {
|
|
1056
|
+
typeName = '[部门群组]';
|
|
1057
|
+
}
|
|
1058
|
+
} else if (type === 'otherperson' || type === 'topcontacts' || type === 'person') {
|
|
1059
|
+
typeName = '[人员]';
|
|
1060
|
+
} else if (type === 'codetable') {
|
|
1061
|
+
typeName = '[代码表]';
|
|
1062
|
+
} else if (type === 'organizecentreobj') {
|
|
1063
|
+
typeName = '[组织中心]';
|
|
1064
|
+
}
|
|
1065
|
+
return typeName;
|
|
1066
|
+
};
|
|
1067
|
+
|
|
1068
|
+
/**
|
|
1069
|
+
* getValues
|
|
1070
|
+
* @desc:获取value值
|
|
1071
|
+
* @author huangbo
|
|
1072
|
+
* @date 2022年5月7日
|
|
1073
|
+
* @param {object} [obj] - json对象
|
|
1074
|
+
* @param {boolean} [flag] - 是否不重复获取
|
|
1075
|
+
**/
|
|
1076
|
+
var getValues = function getValues(obj, flag) {
|
|
1077
|
+
var val = {};
|
|
1078
|
+
obj.forEach(function (items) {
|
|
1079
|
+
if (items.contents) {
|
|
1080
|
+
items.contents.forEach(function (item) {
|
|
1081
|
+
if (item.name && item.type !== 'button' && item.type !== 'submit') {
|
|
1082
|
+
if (item.type === 'table' && item.form) {
|
|
1083
|
+
val[item.name] = item.data;
|
|
1084
|
+
} else if (item.name && !flag && !item.hide) {
|
|
1085
|
+
if (item.value !== undefined && item.value !== '') {
|
|
1086
|
+
if (Array.isArray(val)) {
|
|
1087
|
+
if (val.length) {
|
|
1088
|
+
val[item.name] = item.value;
|
|
1089
|
+
}
|
|
1090
|
+
} else {
|
|
1091
|
+
val[item.name] = item.value;
|
|
1092
|
+
}
|
|
1093
|
+
}
|
|
1094
|
+
}
|
|
1095
|
+
}
|
|
1096
|
+
});
|
|
1097
|
+
} else if (items.name && items.type !== 'button' && items.type !== 'submit') {
|
|
1098
|
+
if (items.value !== undefined && items.value !== '') {
|
|
1099
|
+
if (Array.isArray(val)) {
|
|
1100
|
+
if (val.length) {
|
|
1101
|
+
val[items.name] = items.value;
|
|
1102
|
+
}
|
|
1103
|
+
} else {
|
|
1104
|
+
val[items.name] = items.value;
|
|
1105
|
+
}
|
|
1106
|
+
}
|
|
1107
|
+
} else if (items.type === 'table' && items.form) {
|
|
1108
|
+
val[items.type] = items.data;
|
|
1109
|
+
}
|
|
1110
|
+
});
|
|
1111
|
+
return val;
|
|
1112
|
+
};
|
|
1113
|
+
|
|
1114
|
+
/**
|
|
1115
|
+
* handlerUrl
|
|
1116
|
+
* @desc:更新url参数中的时间戳
|
|
1117
|
+
* @author huangbo
|
|
1118
|
+
* @date 2022年5月7日
|
|
1119
|
+
* @param {String} [url] - url地址
|
|
1120
|
+
**/
|
|
1121
|
+
|
|
1122
|
+
var handlerUrl = function handlerUrl(url, before) {
|
|
1123
|
+
var arry = url.split('?');
|
|
1124
|
+
if (arry.length > 2) {
|
|
1125
|
+
var ary = arry.splice(1, arry.length);
|
|
1126
|
+
arry.push(ary.join('?'));
|
|
1127
|
+
}
|
|
1128
|
+
if (arry.length > 1) {
|
|
1129
|
+
if (arry[1].indexOf('_tt') > -1) {
|
|
1130
|
+
var search = arry[1].split('&');
|
|
1131
|
+
for (var i in search) {
|
|
1132
|
+
if (search[i].indexOf('_tt') > -1) {
|
|
1133
|
+
search[i] = '_tt=' + new Date().getTime();
|
|
1134
|
+
}
|
|
1135
|
+
}
|
|
1136
|
+
arry[1] = search.join('&');
|
|
1137
|
+
} else {
|
|
1138
|
+
arry[1] += '&_tt=' + new Date().getTime();
|
|
1139
|
+
}
|
|
1140
|
+
url = arry.join('?');
|
|
1141
|
+
} else {
|
|
1142
|
+
url += '?_tt=' + new Date().getTime();
|
|
1143
|
+
}
|
|
1144
|
+
if (before && before === arry[0]) {
|
|
1145
|
+
var pathname = win.location.pathname;
|
|
1146
|
+
if (pathname === '/') {
|
|
1147
|
+
url = pathname + url;
|
|
1148
|
+
} else {
|
|
1149
|
+
url = pathname.replace('index.html', url);
|
|
1150
|
+
}
|
|
1151
|
+
}
|
|
1152
|
+
return encodeURI(url);
|
|
1153
|
+
};
|
|
1154
|
+
/**
|
|
1155
|
+
* hasChars
|
|
1156
|
+
* @desc: 检测指定字符串是否含有目标字符
|
|
1157
|
+
* @author huangbo
|
|
1158
|
+
* @date 2022年5月7日
|
|
1159
|
+
* @param {String} [str] - 指定字符
|
|
1160
|
+
* @param {String,Array} [res] - 检测目标
|
|
1161
|
+
**/
|
|
1162
|
+
var hasChars = function hasChars(res, str) {
|
|
1163
|
+
if (typeof res === 'string') {
|
|
1164
|
+
return str.indexOf(res) > -1;
|
|
1165
|
+
}
|
|
1166
|
+
if (Array.isArray(res)) {
|
|
1167
|
+
var flag = true;
|
|
1168
|
+
for (var i = 0; i < res.length; i++) {
|
|
1169
|
+
if (str.indexOf(res[i]) === -1) {
|
|
1170
|
+
flag = false;
|
|
1171
|
+
}
|
|
1172
|
+
}
|
|
1173
|
+
return flag;
|
|
1174
|
+
}
|
|
1175
|
+
return false;
|
|
1176
|
+
};
|
|
1177
|
+
|
|
1178
|
+
var hasClass = function hasClass(element, name) {
|
|
1179
|
+
return element && (' ' + element.className + ' ').indexOf(' ' + name + ' ') > -1;
|
|
1180
|
+
};
|
|
1181
|
+
/**
|
|
1182
|
+
* hsvTorgb
|
|
1183
|
+
* @desc:hsv转化成rgb
|
|
1184
|
+
* @author huangbo
|
|
1185
|
+
* @date 2022年5月7日
|
|
1186
|
+
* @param {string} [$color] - 颜色值
|
|
1187
|
+
**/
|
|
1188
|
+
var hsvTorgb = function hsvTorgb($h, $s, $v) {
|
|
1189
|
+
var $th = Math.floor($h / 60);
|
|
1190
|
+
var $t1 = $h / 60 - $th;
|
|
1191
|
+
var $t2 = $v * (1 - $s);
|
|
1192
|
+
var $t3 = $v * (1 - $t1 * $s);
|
|
1193
|
+
var $t4 = $v * (1 - (1 - $t1) * $s);
|
|
1194
|
+
var $r = [$v, $t3, $t2, $t2, $t4, $v][$th % 6];
|
|
1195
|
+
var $g = [$t4, $v, $v, $t3, $t2, $t2][$th % 6];
|
|
1196
|
+
var $b = [$t2, $t2, $t4, $v, $v, $t3][$th % 6];
|
|
1197
|
+
// return `rgb(${Math.round($r * 255)}, ${Math.round($g * 255)}, ${Math.round($b * 255)})`;
|
|
1198
|
+
var red = Math.round($r * 255);
|
|
1199
|
+
var green = Math.round($g * 255);
|
|
1200
|
+
var blue = Math.round($b * 255);
|
|
1201
|
+
red = red.toString(16);
|
|
1202
|
+
green = green.toString(16);
|
|
1203
|
+
blue = blue.toString(16);
|
|
1204
|
+
red = red.length === 1 ? '0' + red : red;
|
|
1205
|
+
green = green.length === 1 ? '0' + green : green;
|
|
1206
|
+
blue = blue.length === 1 ? '0' + blue : blue;
|
|
1207
|
+
return '#' + red + green + blue;
|
|
1208
|
+
};
|
|
1209
|
+
|
|
1210
|
+
/**
|
|
1211
|
+
* identical
|
|
1212
|
+
* @desc:验证值是否相同
|
|
1213
|
+
* @author huangbo
|
|
1214
|
+
* @date 2022年5月7日
|
|
1215
|
+
* @param {value} [array] - 需要对比的值的数组集合
|
|
1216
|
+
* @param {callback} [function] - 回调函数
|
|
1217
|
+
**/
|
|
1218
|
+
var identical = function identical(_ref7) {
|
|
1219
|
+
var value = _ref7.value,
|
|
1220
|
+
callback = _ref7.callback,
|
|
1221
|
+
_ref7$msg = _ref7.msg,
|
|
1222
|
+
msg = _ref7$msg === undefined ? ['请输入值', '请再次输入', '输入不一致!'] : _ref7$msg;
|
|
1223
|
+
|
|
1224
|
+
if (value && value.length > 1) {
|
|
1225
|
+
var val = value[0];
|
|
1226
|
+
if (val === '' || val === undefined || val === null) {
|
|
1227
|
+
callback(new Error(msg[0]));
|
|
1228
|
+
return false;
|
|
1229
|
+
}
|
|
1230
|
+
for (var i = 1; i < value.length; i++) {
|
|
1231
|
+
if (val === '' || val === undefined || val === null) {
|
|
1232
|
+
callback(new Error(msg[1]));
|
|
1233
|
+
return false;
|
|
1234
|
+
} else if (value[i] !== val) {
|
|
1235
|
+
callback(new Error(msg[2]));
|
|
1236
|
+
return false;
|
|
1237
|
+
}
|
|
1238
|
+
}
|
|
1239
|
+
callback();
|
|
1240
|
+
return true;
|
|
1241
|
+
}
|
|
1242
|
+
return false;
|
|
1243
|
+
};
|
|
1244
|
+
|
|
1245
|
+
/**
|
|
1246
|
+
* indexOfObj
|
|
1247
|
+
* @desc:查找数组对象下标
|
|
1248
|
+
* @author huangbo
|
|
1249
|
+
* @date 2022年5月7日
|
|
1250
|
+
* @param {Array} [arry] - 被查找的数组
|
|
1251
|
+
* @param {Object} [target] - 目标对象
|
|
1252
|
+
* @param {String} [key] - 目标对象的属性名
|
|
1253
|
+
**/
|
|
1254
|
+
var indexOfObj = function indexOfObj(arry, target, key) {
|
|
1255
|
+
for (var i = 0; i < arry.length; i++) {
|
|
1256
|
+
if (key) {
|
|
1257
|
+
if (typeof target === 'string' && arry[i][key] === target) {
|
|
1258
|
+
return i;
|
|
1259
|
+
}
|
|
1260
|
+
if (target[key] === arry[i][key]) {
|
|
1261
|
+
return i;
|
|
1262
|
+
}
|
|
1263
|
+
} else {
|
|
1264
|
+
if (JSON.stringify(target) === JSON.stringify(arry[i])) {
|
|
1265
|
+
return i;
|
|
1266
|
+
}
|
|
1267
|
+
}
|
|
1268
|
+
}
|
|
1269
|
+
return -1;
|
|
1270
|
+
};
|
|
1271
|
+
|
|
1272
|
+
/**
|
|
1273
|
+
* isFunction
|
|
1274
|
+
* @desc:判断是否是函数
|
|
1275
|
+
* @author huangbo
|
|
1276
|
+
* @date 2022年5月7日
|
|
1277
|
+
* @param {Object} [obj] - 对象
|
|
1278
|
+
**/
|
|
1279
|
+
var isFunction = function isFunction(obj) {
|
|
1280
|
+
return typeof obj === 'function' && typeof obj.nodeType !== 'number' && typeof obj.item !== 'function';
|
|
1281
|
+
};
|
|
1282
|
+
|
|
1283
|
+
/**
|
|
1284
|
+
* isLogged
|
|
1285
|
+
* @desc:是否登录(用于路由守卫中)
|
|
1286
|
+
* @author huangbo
|
|
1287
|
+
* @date 2022年5月7日
|
|
1288
|
+
* @param {object} [to] - 路由跳转信息
|
|
1289
|
+
* @param {object} [from] - 路由来源信息
|
|
1290
|
+
* @param {function} [next] - 跳转函数
|
|
1291
|
+
* @param {function} [exclude] - 不拦截的路由
|
|
1292
|
+
* @param {boolean} [open] - 是否新窗口打开
|
|
1293
|
+
* @param {boolean} [cookie] - 是否尝试采用
|
|
1294
|
+
* @param {sting} [loginPage] - 第三方登录页面地址
|
|
1295
|
+
* @param {boolean} [redirect] - 是否重定向(用于新脚手架)
|
|
1296
|
+
**/
|
|
1297
|
+
var isLogged = function isLogged(_ref8) {
|
|
1298
|
+
var to = _ref8.to,
|
|
1299
|
+
from = _ref8.from,
|
|
1300
|
+
next = _ref8.next,
|
|
1301
|
+
exclude = _ref8.exclude,
|
|
1302
|
+
open = _ref8.open,
|
|
1303
|
+
cookie = _ref8.cookie,
|
|
1304
|
+
loginPage = _ref8.loginPage,
|
|
1305
|
+
redirect = _ref8.redirect;
|
|
1306
|
+
|
|
1307
|
+
var logined = getStorage('logined');
|
|
1308
|
+
if (cookie === undefined) {
|
|
1309
|
+
cookie = getParams({ name: 'cookie' });
|
|
1310
|
+
}
|
|
1311
|
+
// eslint-disable-next-line eqeqeq
|
|
1312
|
+
if (logined || cookie == true || cookie == 1) {
|
|
1313
|
+
if (loginPage) {
|
|
1314
|
+
sessionStorage.setItem('loginPage', loginPage);
|
|
1315
|
+
}
|
|
1316
|
+
next();
|
|
1317
|
+
} else {
|
|
1318
|
+
var token = getStorage('token') || getStorage('Authorization');
|
|
1319
|
+
if (Object.prototype.hasOwnProperty.call(to.query, 'serverId') && Object.prototype.hasOwnProperty.call(to.query, 'authType')) {
|
|
1320
|
+
var url = win.top.location.href;
|
|
1321
|
+
ajax({
|
|
1322
|
+
method: 'post',
|
|
1323
|
+
url: _api.authCenter,
|
|
1324
|
+
data: to.query
|
|
1325
|
+
}).then(function (res) {
|
|
1326
|
+
if (res.rCode === 0) {
|
|
1327
|
+
switch (res.results.statusCode) {
|
|
1328
|
+
case 0:
|
|
1329
|
+
var storage = getStorage('storage');
|
|
1330
|
+
setStorage({
|
|
1331
|
+
type: storage,
|
|
1332
|
+
key: {
|
|
1333
|
+
ssId: res.results.ssId,
|
|
1334
|
+
token: res.results.token,
|
|
1335
|
+
Authorization: res.results.token,
|
|
1336
|
+
deviceUnique: res.results.deviceUnique
|
|
1337
|
+
}
|
|
1338
|
+
});
|
|
1339
|
+
next();
|
|
1340
|
+
break;
|
|
1341
|
+
case 1:
|
|
1342
|
+
break;
|
|
1343
|
+
case 2:
|
|
1344
|
+
break;
|
|
1345
|
+
case 3:
|
|
1346
|
+
var href = res.results.authorizeUrl.replace('{redirectUri}', encodeURIComponent(url));
|
|
1347
|
+
if (open) {
|
|
1348
|
+
win.open(href);
|
|
1349
|
+
} else {
|
|
1350
|
+
win.top.location.href = href;
|
|
1351
|
+
}
|
|
1352
|
+
break;
|
|
1353
|
+
}
|
|
1354
|
+
} else {
|
|
1355
|
+
if (token) {
|
|
1356
|
+
next();
|
|
1357
|
+
} else {
|
|
1358
|
+
alert(res.msg);
|
|
1359
|
+
}
|
|
1360
|
+
}
|
|
1361
|
+
}).catch(function (e) {});
|
|
1362
|
+
} else if (token || to.path === '/' || to.path === '/login' || to.path === '/404' || exclude.indexOf(to.path) > -1 || exclude.indexOf(to.name) > -1) {
|
|
1363
|
+
if (redirect && to.name && (to.name === 'login' || to.name === 'main')) {
|
|
1364
|
+
window.location.replace(urlJoinParams({ url: './' + to.name + '.html', param: to.query }));
|
|
1365
|
+
} else {
|
|
1366
|
+
next();
|
|
1367
|
+
}
|
|
1368
|
+
} else {
|
|
1369
|
+
if (loginPage) {
|
|
1370
|
+
win.top.location.replace(loginPage);
|
|
1371
|
+
} else if (document.referrer) {
|
|
1372
|
+
win.top.location.replace(document.referrer);
|
|
1373
|
+
} else if (win.top.location.href.indexOf('main.html') > -1) {
|
|
1374
|
+
win.top.location.href = './login.html';
|
|
1375
|
+
} else {
|
|
1376
|
+
next('/login');
|
|
1377
|
+
}
|
|
1378
|
+
}
|
|
1379
|
+
}
|
|
1380
|
+
};
|
|
1381
|
+
|
|
1382
|
+
/**
|
|
1383
|
+
* isObject
|
|
1384
|
+
* @desc:判断是否是对象
|
|
1385
|
+
* @author huangbo
|
|
1386
|
+
* @date 2022年5月7日
|
|
1387
|
+
* @param {Object} [obj] - 对象
|
|
1388
|
+
**/
|
|
1389
|
+
var isObject = function isObject(obj) {
|
|
1390
|
+
var proto = void 0;
|
|
1391
|
+
var Ctor = void 0;
|
|
1392
|
+
|
|
1393
|
+
if (!obj || {}.toString.call(obj) !== '[object Object]') {
|
|
1394
|
+
return false;
|
|
1395
|
+
}
|
|
1396
|
+
|
|
1397
|
+
proto = Object.getPrototypeOf(obj);
|
|
1398
|
+
if (!proto) {
|
|
1399
|
+
return true;
|
|
1400
|
+
}
|
|
1401
|
+
var ObjectFunctionString = Object.prototype.hasOwnProperty.toString.call(Object);
|
|
1402
|
+
Ctor = Object.prototype.hasOwnProperty.call(proto, 'constructor') && proto.constructor;
|
|
1403
|
+
return typeof Ctor === 'function' && Object.prototype.hasOwnProperty.toString.call(Ctor) === ObjectFunctionString;
|
|
1404
|
+
};
|
|
1405
|
+
|
|
1406
|
+
/**
|
|
1407
|
+
* jointUrl
|
|
1408
|
+
* @desc:判断url地址是否以字符开头,没有则添加
|
|
1409
|
+
* @author huangbo
|
|
1410
|
+
* @date 2022年5月7日
|
|
1411
|
+
* @param {string} [reg] - 域名或者路径
|
|
1412
|
+
* @param {string/array} [url] - 地址
|
|
1413
|
+
* @param {boolean} [single] - 是否做js沙箱隔离
|
|
1414
|
+
**/
|
|
1415
|
+
var jointUrl = function jointUrl(_ref9) {
|
|
1416
|
+
var url = _ref9.url,
|
|
1417
|
+
reg = _ref9.reg;
|
|
1418
|
+
|
|
1419
|
+
if (startWith(url, ['https', 'http', 'blob:'], true) || !reg || !reg.length) {
|
|
1420
|
+
return url;
|
|
1421
|
+
}
|
|
1422
|
+
if (Array.isArray(reg)) {
|
|
1423
|
+
var newUrl = '';
|
|
1424
|
+
reg.forEach(function (item) {
|
|
1425
|
+
newUrl = startWith(url, item) ? url : item + url;
|
|
1426
|
+
});
|
|
1427
|
+
return newUrl;
|
|
1428
|
+
}
|
|
1429
|
+
return startWith(url, reg) ? url : reg + url;
|
|
1430
|
+
};
|
|
1431
|
+
|
|
1432
|
+
var loadJs = function loadJs(_ref10) {
|
|
1433
|
+
var url = _ref10.url,
|
|
1434
|
+
_ref10$type = _ref10.type,
|
|
1435
|
+
type = _ref10$type === undefined ? 'text/javascript' : _ref10$type,
|
|
1436
|
+
id = _ref10.id,
|
|
1437
|
+
_ref10$single = _ref10.single,
|
|
1438
|
+
single = _ref10$single === undefined ? true : _ref10$single;
|
|
1439
|
+
|
|
1440
|
+
return new Promise(function (resolve, reject) {
|
|
1441
|
+
var script = document.getElementById(id) || document.createElement('script');
|
|
1442
|
+
var src = script.getAttribute('src');
|
|
1443
|
+
if (src && src === url) {
|
|
1444
|
+
console.warn(id + '已存在');
|
|
1445
|
+
resolve();
|
|
1446
|
+
} else {
|
|
1447
|
+
id && script.setAttribute('id', id);
|
|
1448
|
+
script.setAttribute('type', type);
|
|
1449
|
+
script.setAttribute('src', url);
|
|
1450
|
+
document.getElementsByTagName('head')[0].appendChild(script);
|
|
1451
|
+
script.onreadystatechange = function () {
|
|
1452
|
+
resolve();
|
|
1453
|
+
};
|
|
1454
|
+
script.onload = function () {
|
|
1455
|
+
resolve();
|
|
1456
|
+
};
|
|
1457
|
+
script.onerror = function () {
|
|
1458
|
+
reject();
|
|
1459
|
+
};
|
|
1460
|
+
}
|
|
1461
|
+
});
|
|
1462
|
+
};
|
|
1463
|
+
|
|
1464
|
+
/**
|
|
1465
|
+
* loading
|
|
1466
|
+
* @desc:loading
|
|
1467
|
+
* @author huangbo
|
|
1468
|
+
* @date 2022年5月7日
|
|
1469
|
+
* @param {String} [text] - 显示的文本内容
|
|
1470
|
+
**/
|
|
1471
|
+
var loading = function loading($loading, res) {
|
|
1472
|
+
if (!$loading) {
|
|
1473
|
+
$loading = _eossElement.Loading.service;
|
|
1474
|
+
}
|
|
1475
|
+
if (isObject(res)) {
|
|
1476
|
+
var config = extend({}, {
|
|
1477
|
+
target: win.top.document.body,
|
|
1478
|
+
fullscreen: true,
|
|
1479
|
+
background: 'rgba(0, 0, 0, 0.65)',
|
|
1480
|
+
spinner: 'el-icon-loading',
|
|
1481
|
+
text: '加载中...'
|
|
1482
|
+
}, res);
|
|
1483
|
+
return $loading(config);
|
|
1484
|
+
} else {
|
|
1485
|
+
var _loading = $loading({
|
|
1486
|
+
target: win.top.document.body,
|
|
1487
|
+
fullscreen: true,
|
|
1488
|
+
background: 'rgba(0, 0, 0, 0.65)',
|
|
1489
|
+
spinner: 'el-icon-loading',
|
|
1490
|
+
text: res ? res : '加载中...'
|
|
1491
|
+
});
|
|
1492
|
+
return _loading;
|
|
1493
|
+
}
|
|
1494
|
+
};
|
|
1495
|
+
|
|
1496
|
+
/**
|
|
1497
|
+
* mixColor
|
|
1498
|
+
* @desc:生成混合色
|
|
1499
|
+
* @author huangbo
|
|
1500
|
+
* @date 2022年5月7日
|
|
1501
|
+
* @param {string} [$color1] - 颜色值
|
|
1502
|
+
* @param {string} [$color2] - 颜色值
|
|
1503
|
+
* @param {string} [$n] - 百分比 0~1
|
|
1504
|
+
**/
|
|
1505
|
+
var mixColor = function mixColor($color1, $color2, $n) {
|
|
1506
|
+
var rgb1 = getRgb($color1);
|
|
1507
|
+
var rgb2 = getRgb($color2);
|
|
1508
|
+
var r = rgb1[0] * $n + rgb2[0] * (1 - $n);
|
|
1509
|
+
var g = rgb1[1] * $n + rgb2[1] * (1 - $n);
|
|
1510
|
+
var b = rgb1[2] * $n + rgb2[2] * (1 - $n);
|
|
1511
|
+
return '#' + ((1 << 24) + (r << 16) + (g << 8) + b).toString(16).slice(1);
|
|
1512
|
+
};
|
|
1513
|
+
|
|
1514
|
+
/**
|
|
1515
|
+
* overbrim
|
|
1516
|
+
* @desc:判断是否文字溢出
|
|
1517
|
+
* @author huangbo
|
|
1518
|
+
* @date 2022年5月7日
|
|
1519
|
+
* @param {String} [el] - 文字所在的dom
|
|
1520
|
+
**/
|
|
1521
|
+
var overbrim = function overbrim(el) {
|
|
1522
|
+
var w = el.offsetWidth;
|
|
1523
|
+
var s = el.scrollWidth;
|
|
1524
|
+
if (s > w) {
|
|
1525
|
+
return true;
|
|
1526
|
+
} else {
|
|
1527
|
+
return false;
|
|
1528
|
+
}
|
|
1529
|
+
};
|
|
1530
|
+
|
|
1531
|
+
/**
|
|
1532
|
+
* queryParams
|
|
1533
|
+
* @desc:对象转url地址的拼接参数
|
|
1534
|
+
* @author huangbo
|
|
1535
|
+
* @date 2022年5月7日
|
|
1536
|
+
* @param {Object} [obj] - 被转换的对象
|
|
1537
|
+
**/
|
|
1538
|
+
var queryParams = function queryParams(obj) {
|
|
1539
|
+
var arry = [];
|
|
1540
|
+
for (var i in obj) {
|
|
1541
|
+
arry.push(i + '=' + obj[i]);
|
|
1542
|
+
}
|
|
1543
|
+
if (arry.length) {
|
|
1544
|
+
return arry.join('&');
|
|
1545
|
+
}
|
|
1546
|
+
return false;
|
|
1547
|
+
};
|
|
1548
|
+
|
|
1549
|
+
/**
|
|
1550
|
+
* receiveMessage
|
|
1551
|
+
* @desc:接收发送信息
|
|
1552
|
+
* @author huangbo
|
|
1553
|
+
* @date 2022年5月7日
|
|
1554
|
+
* @param {object} [data] - 数据---其中type必须表示操作类型
|
|
1555
|
+
* @param {string} [url] - 消息源的 URI
|
|
1556
|
+
* @param {function} [callback] - 回调函数
|
|
1557
|
+
**/
|
|
1558
|
+
var receiveMessage = function receiveMessage(_ref11) {
|
|
1559
|
+
var _ref11$data = _ref11.data,
|
|
1560
|
+
data = _ref11$data === undefined ? {} : _ref11$data,
|
|
1561
|
+
url = _ref11.url,
|
|
1562
|
+
callback = _ref11.callback;
|
|
1563
|
+
|
|
1564
|
+
win.addEventListener('message', function (e) {
|
|
1565
|
+
if (url !== undefined) {
|
|
1566
|
+
var origin = e.origin || e.location.origin;
|
|
1567
|
+
if (origin !== url) {
|
|
1568
|
+
// 验证消息来源地址
|
|
1569
|
+
return;
|
|
1570
|
+
}
|
|
1571
|
+
}
|
|
1572
|
+
callback(e.data);
|
|
1573
|
+
});
|
|
1574
|
+
};
|
|
1575
|
+
|
|
1576
|
+
/**
|
|
1577
|
+
* removeStorage
|
|
1578
|
+
* @desc:删除本地储存数据
|
|
1579
|
+
* @author huangbo
|
|
1580
|
+
* @date 2022年5月7日
|
|
1581
|
+
* @param {String, Array} [key] - 获取的名称
|
|
1582
|
+
**/
|
|
1583
|
+
var removeStorage = function removeStorage(key) {
|
|
1584
|
+
if (Array.isArray(key)) {
|
|
1585
|
+
for (var i = 0; i < key.length; i++) {
|
|
1586
|
+
sessionStorage.removeItem(key[i]);
|
|
1587
|
+
localStorage.removeItem(key[i]);
|
|
1588
|
+
}
|
|
1589
|
+
} else if (key) {
|
|
1590
|
+
sessionStorage.removeItem(key);
|
|
1591
|
+
localStorage.removeItem(key);
|
|
1592
|
+
} else {
|
|
1593
|
+
sessionStorage.clear();
|
|
1594
|
+
localStorage.clear();
|
|
1595
|
+
}
|
|
1596
|
+
};
|
|
1597
|
+
|
|
1598
|
+
/**
|
|
1599
|
+
* replenish
|
|
1600
|
+
* @desc:补全小数位数
|
|
1601
|
+
* @author huangbo
|
|
1602
|
+
* @date 2022年5月7日
|
|
1603
|
+
* @param {string、number} [data] - 数字或字符串型数字
|
|
1604
|
+
* @param {number} [precision] - 需要的小数位数
|
|
1605
|
+
**/
|
|
1606
|
+
var replenish = function replenish(_ref12) {
|
|
1607
|
+
var data = _ref12.data,
|
|
1608
|
+
precision = _ref12.precision;
|
|
1609
|
+
|
|
1610
|
+
if (data && precision && precision > 0) {
|
|
1611
|
+
var power = Math.pow(10, precision);
|
|
1612
|
+
var res = data === 'string' ? Number(data) : data;
|
|
1613
|
+
res = String(Math.round(res * power) / power);
|
|
1614
|
+
var len = res.indexOf('.');
|
|
1615
|
+
if (len < 0) {
|
|
1616
|
+
len = res.length;
|
|
1617
|
+
res += '.';
|
|
1618
|
+
}
|
|
1619
|
+
while (res.length <= len + precision) {
|
|
1620
|
+
res += '0';
|
|
1621
|
+
}
|
|
1622
|
+
return parseFloat(res);
|
|
1623
|
+
}
|
|
1624
|
+
return data;
|
|
1625
|
+
};
|
|
1626
|
+
|
|
1627
|
+
/**
|
|
1628
|
+
* rgbToHsv
|
|
1629
|
+
* @desc:rgb转化成hsv
|
|
1630
|
+
* @author huangbo
|
|
1631
|
+
* @date 2022年5月7日
|
|
1632
|
+
* @param {string} [$color] - 颜色值
|
|
1633
|
+
**/
|
|
1634
|
+
var rgbToHsv = function rgbToHsv($color) {
|
|
1635
|
+
var rgb = getRgb($color);
|
|
1636
|
+
var $red = rgb[0];
|
|
1637
|
+
var $green = rgb[1];
|
|
1638
|
+
var $blue = rgb[2];
|
|
1639
|
+
var $max = Math.max($red, $green, $blue);
|
|
1640
|
+
var $min = Math.min($red, $green, $blue);
|
|
1641
|
+
var $diff = $max - $min;
|
|
1642
|
+
var $h = 0;
|
|
1643
|
+
if ($max === $min) {
|
|
1644
|
+
$h = 0;
|
|
1645
|
+
} else if ($max === $red) {
|
|
1646
|
+
$h = 60 * ($green - $blue) / $diff + ($green > $blue - 1 ? 0 : 360);
|
|
1647
|
+
} else if ($max === $green) {
|
|
1648
|
+
$h = 60 * ($blue - $red) / $diff + 120;
|
|
1649
|
+
} else if ($max === $blue) {
|
|
1650
|
+
$h = 60 * ($red - $green) / $diff + 240;
|
|
1651
|
+
}
|
|
1652
|
+
var $s = $max === 0 ? 0 : $diff / $max;
|
|
1653
|
+
var $v = $max / 255;
|
|
1654
|
+
return [$h, $s, $v];
|
|
1655
|
+
};
|
|
1656
|
+
|
|
1657
|
+
/**
|
|
1658
|
+
* sendMessage
|
|
1659
|
+
* @desc:向iframe发送信息
|
|
1660
|
+
* @author huangbo
|
|
1661
|
+
* @date 2022年5月7日
|
|
1662
|
+
* @param {object} [data] - 数据---其中type必须表示操作类型
|
|
1663
|
+
* @param {string} [url] - 指定的消息发送URI地址
|
|
1664
|
+
**/
|
|
1665
|
+
var sendMessage = function sendMessage(_ref13) {
|
|
1666
|
+
var _ref13$data = _ref13.data,
|
|
1667
|
+
data = _ref13$data === undefined ? {} : _ref13$data,
|
|
1668
|
+
url = _ref13.url;
|
|
1669
|
+
|
|
1670
|
+
var iframes = document.getElementsByTagName('iframe');
|
|
1671
|
+
for (var i = 0; i < iframes.length; i++) {
|
|
1672
|
+
if (url !== undefined) {
|
|
1673
|
+
if (iframes[i].contentWindow.location.href === url) {
|
|
1674
|
+
iframes[i].contentWindow.postMessage(data, url);
|
|
1675
|
+
return;
|
|
1676
|
+
}
|
|
1677
|
+
} else {
|
|
1678
|
+
iframes[i].contentWindow.postMessage(data);
|
|
1679
|
+
}
|
|
1680
|
+
}
|
|
1681
|
+
};
|
|
1682
|
+
|
|
1683
|
+
/**
|
|
1684
|
+
* setFavicon
|
|
1685
|
+
* @desc:设置浏览器页签窗口图标
|
|
1686
|
+
* @author huangbo
|
|
1687
|
+
* @date 2022年5月7日
|
|
1688
|
+
* @param {String} [url] - 图标地址
|
|
1689
|
+
**/
|
|
1690
|
+
var setFavicon = function setFavicon(url) {
|
|
1691
|
+
var link = document.querySelector("link[rel*='icon']");
|
|
1692
|
+
if (link) {
|
|
1693
|
+
link.href = url;
|
|
1694
|
+
} else {
|
|
1695
|
+
link = document.createElement('link');
|
|
1696
|
+
link.type = 'image/x-icon';
|
|
1697
|
+
link.rel = 'shortcut icon';
|
|
1698
|
+
link.href = url;
|
|
1699
|
+
document.getElementsByTagName('head')[0].appendChild(link);
|
|
1700
|
+
}
|
|
1701
|
+
};
|
|
1702
|
+
|
|
1703
|
+
/**
|
|
1704
|
+
* setStorage
|
|
1705
|
+
* @desc:设置本地储存数据
|
|
1706
|
+
* @author huangbo
|
|
1707
|
+
* @date 2022年5月7日
|
|
1708
|
+
* @param {String} [type] - 储存类型
|
|
1709
|
+
* @param {String, Array, Object} [key] - 数据的名称,array类型表示多个key保存同一个value,object类型时对象的属性名称作为key属性值作为value
|
|
1710
|
+
* @param {String} [value] - 数据的值
|
|
1711
|
+
**/
|
|
1712
|
+
var setStorage = function setStorage(_ref14) {
|
|
1713
|
+
var type = _ref14.type,
|
|
1714
|
+
key = _ref14.key,
|
|
1715
|
+
value = _ref14.value;
|
|
1716
|
+
|
|
1717
|
+
if (value && (typeof value === 'undefined' ? 'undefined' : _typeof(value)) === 'object') {
|
|
1718
|
+
value = JSON.stringify(value);
|
|
1719
|
+
}
|
|
1720
|
+
if (type === undefined || type === 'sessionStorage') {
|
|
1721
|
+
if (typeof key === 'string') {
|
|
1722
|
+
sessionStorage.setItem(key, value);
|
|
1723
|
+
} else if (Array.isArray(key)) {
|
|
1724
|
+
for (var i in key) {
|
|
1725
|
+
sessionStorage.setItem(key[i], value);
|
|
1726
|
+
}
|
|
1727
|
+
} else {
|
|
1728
|
+
for (var _i5 in key) {
|
|
1729
|
+
var val = _typeof(key[_i5]) === 'object' ? JSON.stringify(key[_i5]) : key[_i5];
|
|
1730
|
+
sessionStorage.setItem(_i5, val);
|
|
1731
|
+
}
|
|
1732
|
+
}
|
|
1733
|
+
} else {
|
|
1734
|
+
if (typeof key === 'string') {
|
|
1735
|
+
localStorage.setItem(key, value);
|
|
1736
|
+
} else if (Array.isArray(key)) {
|
|
1737
|
+
for (var _i6 in key) {
|
|
1738
|
+
localStorage.setItem(key[_i6], value);
|
|
1739
|
+
}
|
|
1740
|
+
} else {
|
|
1741
|
+
for (var _i7 in key) {
|
|
1742
|
+
var _val = _typeof(key[_i7]) === 'object' ? JSON.stringify(key[_i7]) : key[_i7];
|
|
1743
|
+
localStorage.setItem(_i7, _val);
|
|
1744
|
+
}
|
|
1745
|
+
}
|
|
1746
|
+
}
|
|
1747
|
+
};
|
|
1748
|
+
/**
|
|
1749
|
+
* startWith
|
|
1750
|
+
* @desc:判断值是否以指定字符开头
|
|
1751
|
+
* @author huangbo
|
|
1752
|
+
* @date 2022年5月7日
|
|
1753
|
+
* @param {string} [value] - 被查找的字符串
|
|
1754
|
+
* @param {string,array} [reg] - 指定字符串
|
|
1755
|
+
* @param {boolean} [or] - 或者(等同于||)
|
|
1756
|
+
**/
|
|
1757
|
+
var startWith = function startWith(value, reg) {
|
|
1758
|
+
var or = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;
|
|
1759
|
+
|
|
1760
|
+
if (Array.isArray(reg)) {
|
|
1761
|
+
var flag = true;
|
|
1762
|
+
for (var i = 0; i < reg.length; i++) {
|
|
1763
|
+
var item = reg[i];
|
|
1764
|
+
if (new RegExp('^' + item).test(value)) {
|
|
1765
|
+
if (or) {
|
|
1766
|
+
flag = true;
|
|
1767
|
+
return true;
|
|
1768
|
+
}
|
|
1769
|
+
} else {
|
|
1770
|
+
flag = false;
|
|
1771
|
+
}
|
|
1772
|
+
}
|
|
1773
|
+
return flag;
|
|
1774
|
+
}
|
|
1775
|
+
if (new RegExp('^' + reg).test(value)) {
|
|
1776
|
+
return true;
|
|
1777
|
+
}
|
|
1778
|
+
return false;
|
|
1779
|
+
};
|
|
1780
|
+
|
|
1781
|
+
/**
|
|
1782
|
+
* throttle
|
|
1783
|
+
* @desc:添加js内容
|
|
1784
|
+
* @author huangbo
|
|
1785
|
+
* @date 2022年5月7日
|
|
1786
|
+
* @param {Function} [fn] - 函数
|
|
1787
|
+
* @param {Number} [wait] - 延迟毫秒数
|
|
1788
|
+
**/
|
|
1789
|
+
var throttle = function throttle(fn, wait) {
|
|
1790
|
+
var timer = null;
|
|
1791
|
+
var startTime = Date.now();
|
|
1792
|
+
return function () {
|
|
1793
|
+
var curTime = Date.now();
|
|
1794
|
+
var remaining = wait - (curTime - startTime);
|
|
1795
|
+
var context = this;
|
|
1796
|
+
var args = arguments;
|
|
1797
|
+
clearTimeout(timer);
|
|
1798
|
+
if (remaining <= 0) {
|
|
1799
|
+
fn.apply(context, args);
|
|
1800
|
+
startTime = Date.now();
|
|
1801
|
+
} else {
|
|
1802
|
+
timer = setTimeout(fn, remaining); // 如果小于wait 保证在差值时间后执行
|
|
1803
|
+
}
|
|
1804
|
+
};
|
|
1805
|
+
};
|
|
1806
|
+
|
|
1807
|
+
/**
|
|
1808
|
+
* timeCycle
|
|
1809
|
+
* @desc:时间转换成上午下午晚上
|
|
1810
|
+
* @author huangbo
|
|
1811
|
+
* @date 2022年5月7日
|
|
1812
|
+
* @param {String, Number} [date] - 时间字符串或时间戳
|
|
1813
|
+
**/
|
|
1814
|
+
var timeCycle = function timeCycle(date) {
|
|
1815
|
+
var obj = void 0;
|
|
1816
|
+
if (date) {
|
|
1817
|
+
obj = new Date(date);
|
|
1818
|
+
} else {
|
|
1819
|
+
obj = new Date();
|
|
1820
|
+
}
|
|
1821
|
+
var h = obj.getHours(); // 获取小时
|
|
1822
|
+
var period = '';
|
|
1823
|
+
h < 12 ? period = '上午' : h < 18 ? period = '下午' : period = '晚上';
|
|
1824
|
+
return period;
|
|
1825
|
+
};
|
|
1826
|
+
|
|
1827
|
+
/**
|
|
1828
|
+
* toFixed
|
|
1829
|
+
* @desc:浮点数保留小数位
|
|
1830
|
+
* @author huangbo
|
|
1831
|
+
* @date 2022年5月7日
|
|
1832
|
+
* @param {number} [$float] - 要转换的数值
|
|
1833
|
+
* @param {number} [$digits] - 小数位数
|
|
1834
|
+
**/
|
|
1835
|
+
var toFixed = function toFixed($float, $digits) {
|
|
1836
|
+
var $pow = Math.pow(10, $digits);
|
|
1837
|
+
return Math.round($float * $pow) / $pow;
|
|
1838
|
+
};
|
|
1839
|
+
/**
|
|
1840
|
+
* toFunction
|
|
1841
|
+
* 兼容ie
|
|
1842
|
+
* @desc:函数字符串转函数
|
|
1843
|
+
* @author huangbo
|
|
1844
|
+
* @date 2022年5月7日
|
|
1845
|
+
* @param {string} [str] - 函数字符串
|
|
1846
|
+
**/
|
|
1847
|
+
var toFunction = function toFunction(str) {
|
|
1848
|
+
if (str.indexOf('=>') > -1) {
|
|
1849
|
+
var renders = str.split('=>');
|
|
1850
|
+
var args = renders[0].replace('(', '').replace(')', '').split(',');
|
|
1851
|
+
// eslint-disable-next-line no-control-regex
|
|
1852
|
+
var fnStr = renders[1].trim().replace(new RegExp('\n', 'gm'), '').replace(new RegExp('\t', 'gm'), '').replace(new RegExp('^\\{+|\\}+$', 'g'), '');
|
|
1853
|
+
var fn = void 0;
|
|
1854
|
+
if (args.length) {
|
|
1855
|
+
fn = new (Function.prototype.bind.apply(Function, [null].concat(args, [fnStr])))();
|
|
1856
|
+
} else {
|
|
1857
|
+
fn = new Function(fnStr);
|
|
1858
|
+
}
|
|
1859
|
+
return fn;
|
|
1860
|
+
} else {
|
|
1861
|
+
// eslint-disable-next-line no-eval
|
|
1862
|
+
return eval(str);
|
|
1863
|
+
}
|
|
1864
|
+
};
|
|
1865
|
+
|
|
1866
|
+
/**
|
|
1867
|
+
* updateTheme
|
|
1868
|
+
* @desc:更新主题色
|
|
1869
|
+
* @author huangbo
|
|
1870
|
+
* @date 2022年5月7日
|
|
1871
|
+
* @param {string} [$color] - 颜色值
|
|
1872
|
+
**/
|
|
1873
|
+
var updateTheme = function updateTheme($color, send) {
|
|
1874
|
+
$color = $color ? $color : '#409eff';
|
|
1875
|
+
if (send === undefined) {
|
|
1876
|
+
send = true;
|
|
1877
|
+
}
|
|
1878
|
+
document.documentElement.style.setProperty('--theme-primary', $color);
|
|
1879
|
+
for (var i = 1; i < 11; i++) {
|
|
1880
|
+
if (i === 6) {
|
|
1881
|
+
document.documentElement.style.setProperty('--theme-primary-light-' + i, $color);
|
|
1882
|
+
} else {
|
|
1883
|
+
var light = getColor($color, i);
|
|
1884
|
+
document.documentElement.style.setProperty('--theme-primary-light-' + i, light);
|
|
1885
|
+
}
|
|
1886
|
+
}
|
|
1887
|
+
if (send) {
|
|
1888
|
+
sendMessage({ data: { type: 'setTheme' } });
|
|
1889
|
+
}
|
|
1890
|
+
};
|
|
1891
|
+
|
|
1892
|
+
/**
|
|
1893
|
+
* urlJoinParams
|
|
1894
|
+
* @desc:对象转url拼接参数
|
|
1895
|
+
* @author huangbo
|
|
1896
|
+
* @date 2022年5月7日
|
|
1897
|
+
* @param {Object} [url] - url地址
|
|
1898
|
+
* @param {Object} [param] - 被转换的对象
|
|
1899
|
+
**/
|
|
1900
|
+
var urlJoinParams = function urlJoinParams(_ref15) {
|
|
1901
|
+
var url = _ref15.url,
|
|
1902
|
+
param = _ref15.param,
|
|
1903
|
+
timestamp = _ref15.timestamp;
|
|
1904
|
+
|
|
1905
|
+
var arry = decodeURI(url).split('?');
|
|
1906
|
+
var times = new Date().getTime();
|
|
1907
|
+
var params = timestamp ? { _tt: times } : {};
|
|
1908
|
+
if (arry.length > 1) {
|
|
1909
|
+
var search = arry[1].split('&');
|
|
1910
|
+
search.forEach(function (item) {
|
|
1911
|
+
var items = item.split('=');
|
|
1912
|
+
params[items[0]] = items[1];
|
|
1913
|
+
});
|
|
1914
|
+
}
|
|
1915
|
+
'&_tt=' + new Date().getTime();
|
|
1916
|
+
params = extend(true, params, param);
|
|
1917
|
+
var str = queryParams(params);
|
|
1918
|
+
if (str) {
|
|
1919
|
+
return arry[0] + '?' + str;
|
|
1920
|
+
}
|
|
1921
|
+
return arry[0];
|
|
1922
|
+
};
|
|
1923
|
+
/**
|
|
1924
|
+
* uuid
|
|
1925
|
+
* @desc:唯一id
|
|
1926
|
+
* @author huangbo
|
|
1927
|
+
* @date 2022年5月7日
|
|
1928
|
+
* @param {number} [len] - 长度
|
|
1929
|
+
**/
|
|
1930
|
+
var uuid = function uuid(len) {
|
|
1931
|
+
len = len || 32;
|
|
1932
|
+
var s = 4;
|
|
1933
|
+
var str = '';
|
|
1934
|
+
function S4() {
|
|
1935
|
+
return ((1 + Math.random()) * 0x10000 | 0).toString(16).substring(1);
|
|
1936
|
+
}
|
|
1937
|
+
for (var i = 0; i < Math.ceil(len / s); i++) {
|
|
1938
|
+
str += S4();
|
|
1939
|
+
}
|
|
1940
|
+
return str.substring(0, len);
|
|
1941
|
+
};
|
|
1942
|
+
|
|
1943
|
+
/**
|
|
1944
|
+
* watermark
|
|
1945
|
+
* @desc:水印
|
|
1946
|
+
* @author huangbo
|
|
1947
|
+
* @date 2022年5月7日
|
|
1948
|
+
* @param {object} [option] - 配置参数
|
|
1949
|
+
**/
|
|
1950
|
+
var watermark = function watermark(option) {
|
|
1951
|
+
// 默认设置
|
|
1952
|
+
var config = {
|
|
1953
|
+
rows: 5, // 水印行数
|
|
1954
|
+
cols: 5,
|
|
1955
|
+
html: '水印示例', // 水印文本内容
|
|
1956
|
+
angle: -15, // 旋转角度
|
|
1957
|
+
color: '#000', // 水印文字颜色
|
|
1958
|
+
width: 100, // 水印宽度
|
|
1959
|
+
height: 20, // 水印高度
|
|
1960
|
+
lineHeight: 20, // 水印行高
|
|
1961
|
+
opacity: 0.1, // 水印透明度
|
|
1962
|
+
fontSize: 14, // 水印文字字体大小
|
|
1963
|
+
fontWeight: 400, // 水印字体粗细
|
|
1964
|
+
fontFamily: '微软雅黑', // 水印文字字体类型
|
|
1965
|
+
textAlign: 'center', // 水印文字居中类型
|
|
1966
|
+
zIndex: 999999 // 水印文字的层级
|
|
1967
|
+
};
|
|
1968
|
+
var options = option ? extend(true, config, typeof option === 'string' ? { html: option } : option) : config;
|
|
1969
|
+
var wrap = document.createElement('div');
|
|
1970
|
+
// 禁止选择和复制
|
|
1971
|
+
wrap.onselectstart = wrap.oncontextmenu = function () {
|
|
1972
|
+
return false;
|
|
1973
|
+
};
|
|
1974
|
+
var docFrag = document.createDocumentFragment();
|
|
1975
|
+
var rows = options.rows,
|
|
1976
|
+
cols = options.cols,
|
|
1977
|
+
html = options.html,
|
|
1978
|
+
angle = options.angle,
|
|
1979
|
+
color = options.color,
|
|
1980
|
+
height = options.height,
|
|
1981
|
+
lineHeight = options.lineHeight,
|
|
1982
|
+
opacity = options.opacity,
|
|
1983
|
+
fontSize = options.fontSize,
|
|
1984
|
+
fontWeight = options.fontWeight,
|
|
1985
|
+
fontFamily = options.fontFamily,
|
|
1986
|
+
textAlign = options.textAlign,
|
|
1987
|
+
zIndex = options.zIndex;
|
|
1988
|
+
|
|
1989
|
+
|
|
1990
|
+
wrap.style.cssText = 'display: flex;align-items: center;justify-content: flex-start;flex-wrap: wrap;align-content: space-between;position: fixed;left: 50%;top: 50%;transform: translate(-50%, -50%);height: 100vh;width: 100vw;pointer-events: none;overflow: hidden;background: transparent;z-index: ' + zIndex + ';';
|
|
1991
|
+
var num = rows * cols;
|
|
1992
|
+
for (var i = 0; i < num; i++) {
|
|
1993
|
+
var item = document.createElement('div');
|
|
1994
|
+
item.innerHTML = html;
|
|
1995
|
+
item.style.cssText = 'flex-grow: 1;flex-shrink: 0;color: ' + color + ';text-align: ' + textAlign + ';width: ' + 100 / cols + '%;height: ' + height + 'px;line-height: ' + lineHeight + 'px;font-size:' + fontSize + 'px;font-weight: ' + fontWeight + ';font-family: ' + fontFamily + ';text-align: ' + textAlign + ';transform: rotate(' + angle + 'deg);opacity: ' + opacity + ';';
|
|
1996
|
+
docFrag.appendChild(item);
|
|
1997
|
+
}
|
|
1998
|
+
wrap.appendChild(docFrag);
|
|
1999
|
+
document.body.appendChild(wrap);
|
|
2000
|
+
};
|
|
2001
|
+
exports.default = {
|
|
2002
|
+
ajax: ajax,
|
|
2003
|
+
arrUnique: arrUnique,
|
|
2004
|
+
browser: browser,
|
|
2005
|
+
debounce: debounce,
|
|
2006
|
+
delUrlParam: delUrlParam,
|
|
2007
|
+
domEval: domEval,
|
|
2008
|
+
esDecode: esDecode,
|
|
2009
|
+
esEncode: esEncode,
|
|
2010
|
+
esmEncrypt: esmEncrypt,
|
|
2011
|
+
esmDecode: esmDecode,
|
|
2012
|
+
exclAttribute: exclAttribute,
|
|
2013
|
+
exportXls: exportXls,
|
|
2014
|
+
extend: extend,
|
|
2015
|
+
formatDate: formatDate,
|
|
2016
|
+
getObjectType: getObjectType,
|
|
2017
|
+
getParams: getParams,
|
|
2018
|
+
getRgb: getRgb,
|
|
2019
|
+
getScript: getScript,
|
|
2020
|
+
getStorage: getStorage,
|
|
2021
|
+
getStyle: getStyle,
|
|
2022
|
+
getTypeName: getTypeName,
|
|
2023
|
+
getValues: getValues,
|
|
2024
|
+
handlerUrl: handlerUrl,
|
|
2025
|
+
hasChars: hasChars,
|
|
2026
|
+
hasClass: hasClass,
|
|
2027
|
+
hsvTorgb: hsvTorgb,
|
|
2028
|
+
identical: identical,
|
|
2029
|
+
indexOfObj: indexOfObj,
|
|
2030
|
+
isFunction: isFunction,
|
|
2031
|
+
isLogged: isLogged,
|
|
2032
|
+
isObject: isObject,
|
|
2033
|
+
jointUrl: jointUrl,
|
|
2034
|
+
loadJs: loadJs,
|
|
2035
|
+
loading: loading,
|
|
2036
|
+
mixColor: mixColor,
|
|
2037
|
+
overbrim: overbrim,
|
|
2038
|
+
queryParams: queryParams,
|
|
2039
|
+
receiveMessage: receiveMessage,
|
|
2040
|
+
removeStorage: removeStorage,
|
|
2041
|
+
replenish: replenish,
|
|
2042
|
+
rgbToHsv: rgbToHsv,
|
|
2043
|
+
sendMessage: sendMessage,
|
|
2044
|
+
setFavicon: setFavicon,
|
|
2045
|
+
setStorage: setStorage,
|
|
2046
|
+
startWith: startWith,
|
|
2047
|
+
throttle: throttle,
|
|
2048
|
+
timeCycle: timeCycle,
|
|
2049
|
+
toFixed: toFixed,
|
|
2050
|
+
toFunction: toFunction,
|
|
2051
|
+
updateTheme: updateTheme,
|
|
2052
|
+
urlJoinParams: urlJoinParams,
|
|
2053
|
+
uuid: uuid,
|
|
2054
|
+
watermark: watermark,
|
|
2055
|
+
win: win
|
|
2056
|
+
};
|