@bit-sun/business-component 2.1.0 → 2.1.1
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/.editorconfig +16 -16
- package/.fatherrc.ts +5 -5
- package/.gitlab-ci.yml +174 -174
- package/.prettierignore +7 -7
- package/.prettierrc +11 -11
- package/.umirc.ts +74 -74
- package/README.md +27 -27
- package/dist/index.d.ts +1 -1
- package/dist/index.esm.js +130 -12
- package/dist/index.js +131 -13
- package/dist/utils/checkUtils.d.ts +3 -0
- package/dist/utils/index.d.ts +2 -0
- package/docs/index.md +21 -21
- package/lib/assets/drag.svg +17 -17
- package/lib/assets/exportFail.svg +37 -37
- package/lib/assets/exportProcessing.svg +28 -28
- package/lib/assets/exportSuccess.svg +34 -34
- package/lib/assets/label_icon_bottom.svg +25 -25
- package/lib/assets/upExport.svg +22 -22
- package/package.json +71 -71
- package/src/assets/32.svg +27 -27
- package/src/assets/addIcon.svg +17 -17
- package/src/assets/allfunc.svg +27 -27
- package/src/assets/arrowRight.svg +24 -24
- package/src/assets/btn-delete.svg +29 -29
- package/src/assets/btn-edit.svg +19 -19
- package/src/assets/btn-more.svg +17 -17
- package/src/assets/btn-submit.svg +19 -19
- package/src/assets/caidan.svg +11 -11
- package/src/assets/close.svg +26 -26
- package/src/assets/drag.svg +17 -17
- package/src/assets/exportFail.svg +37 -37
- package/src/assets/exportProcessing.svg +28 -28
- package/src/assets/exportSuccess.svg +34 -34
- package/src/assets/fixed-left-active.svg +11 -11
- package/src/assets/fixed-left.svg +15 -15
- package/src/assets/fixed-right-active.svg +11 -11
- package/src/assets/fixed-right.svg +15 -15
- package/src/assets/guanbi.svg +15 -15
- package/src/assets/icon-quanping.svg +15 -15
- package/src/assets/icon-shezhi.svg +17 -17
- package/src/assets/label_icon_bottom.svg +25 -25
- package/src/assets/list-no-img.svg +21 -21
- package/src/assets/morentouxiang-32.svg +23 -23
- package/src/assets/scanning.svg +24 -24
- package/src/assets/upExport.svg +22 -22
- package/src/components/Business/AddSelectBusiness/index.md +41 -41
- package/src/components/Business/AddSelectBusiness/index.tsx +290 -290
- package/src/components/Business/BsLayouts/Components/AllFunc/drawContent.tsx +111 -111
- package/src/components/Business/BsLayouts/Components/AllFunc/index.less +153 -153
- package/src/components/Business/BsLayouts/Components/AllFunc/index.tsx +70 -70
- package/src/components/Business/BsLayouts/Components/CustomerMenu/MenuSetting/index.less +90 -90
- package/src/components/Business/BsLayouts/Components/CustomerMenu/MenuSetting/index.tsx +37 -37
- package/src/components/Business/BsLayouts/Components/CustomerMenu/MenuSetting/leftTree.tsx +242 -242
- package/src/components/Business/BsLayouts/Components/CustomerMenu/MenuSetting/rightTree.tsx +384 -384
- package/src/components/Business/BsLayouts/Components/CustomerMenu/globalMenu/DrawContent.tsx +285 -285
- package/src/components/Business/BsLayouts/Components/CustomerMenu/globalMenu/customMenuHeader.tsx +74 -74
- package/src/components/Business/BsLayouts/Components/CustomerMenu/globalMenu/drawContent.less +170 -170
- package/src/components/Business/BsLayouts/Components/CustomerMenu/index.less +64 -64
- package/src/components/Business/BsLayouts/Components/CustomerMenu/index.tsx +153 -153
- package/src/components/Business/BsLayouts/Components/GlobalHeader/index.less +72 -72
- package/src/components/Business/BsLayouts/Components/GlobalHeader/index.tsx +157 -157
- package/src/components/Business/BsLayouts/Components/RightContent/LoginModal.tsx +85 -85
- package/src/components/Business/BsLayouts/Components/RightContent/home.less +218 -218
- package/src/components/Business/BsLayouts/Components/RightContent/index.tsx +156 -156
- package/src/components/Business/BsLayouts/Components/SearchFunc/index.less +160 -160
- package/src/components/Business/BsLayouts/Components/SearchFunc/index.tsx +75 -75
- package/src/components/Business/BsLayouts/index.less +79 -79
- package/src/components/Business/BsLayouts/index.tsx +1465 -1465
- package/src/components/Business/BsLayouts/service.ts +10 -10
- package/src/components/Business/BsLayouts/utils.tsx +210 -210
- package/src/components/Business/BsSulaQueryTable/index.less +219 -219
- package/src/components/Business/BsSulaQueryTable/index.tsx +505 -505
- package/src/components/Business/BsSulaQueryTable/setting.tsx +799 -799
- package/src/components/Business/BsSulaQueryTable/utils.less +65 -65
- package/src/components/Business/BsSulaQueryTable/utils.tsx +688 -688
- package/src/components/Business/CommodityEntry/index.md +70 -70
- package/src/components/Business/CommodityEntry/index.tsx +80 -80
- package/src/components/Business/CommonAlert/index.tsx +23 -23
- package/src/components/Business/CommonGuideWrapper/index.less +111 -111
- package/src/components/Business/CommonGuideWrapper/index.md +39 -39
- package/src/components/Business/CommonGuideWrapper/index.tsx +83 -83
- package/src/components/Business/DetailPageWrapper/index.less +79 -79
- package/src/components/Business/DetailPageWrapper/index.tsx +334 -334
- package/src/components/Business/DetailPageWrapper/utils.tsx +100 -100
- package/src/components/Business/HomePageWrapper/index.less +33 -33
- package/src/components/Business/HomePageWrapper/index.md +45 -45
- package/src/components/Business/HomePageWrapper/index.tsx +162 -162
- package/src/components/Business/SearchSelect/BusinessUtils.ts +1458 -1458
- package/src/components/Business/SearchSelect/common.ts +53 -53
- package/src/components/Business/SearchSelect/index.md +1137 -1137
- package/src/components/Business/SearchSelect/index.tsx +51 -51
- package/src/components/Business/SearchSelect/utils.ts +100 -100
- package/src/components/Business/StateFlow/index.less +130 -130
- package/src/components/Business/StateFlow/index.md +60 -60
- package/src/components/Business/StateFlow/index.tsx +29 -29
- package/src/components/Business/TreeSearchSelect/index.md +126 -126
- package/src/components/Business/TreeSearchSelect/index.tsx +34 -34
- package/src/components/Business/TreeSearchSelect/utils.ts +60 -60
- package/src/components/Business/columnSettingTable/columnSetting.tsx +763 -763
- package/src/components/Business/columnSettingTable/index.less +247 -247
- package/src/components/Business/columnSettingTable/index.md +357 -357
- package/src/components/Business/columnSettingTable/index.tsx +232 -232
- package/src/components/Business/columnSettingTable/sulaSettingTable.tsx +240 -240
- package/src/components/Business/columnSettingTable/utils.tsx +68 -68
- package/src/components/Functional/AddSelect/index.less +367 -367
- package/src/components/Functional/AddSelect/index.md +122 -122
- package/src/components/Functional/AddSelect/index.tsx +992 -962
- package/src/components/Functional/BillEntry/index.less +371 -371
- package/src/components/Functional/BillEntry/index.md +39 -39
- package/src/components/Functional/BillEntry/index.tsx +643 -613
- package/src/components/Functional/DataImport/index.less +63 -63
- package/src/components/Functional/DataImport/index.md +44 -44
- package/src/components/Functional/DataImport/index.tsx +689 -689
- package/src/components/Functional/DataValidation/index.less +63 -63
- package/src/components/Functional/DataValidation/index.md +38 -38
- package/src/components/Functional/DataValidation/index.tsx +681 -681
- package/src/components/Functional/ExportFunctions/ExportIcon/index.md +37 -37
- package/src/components/Functional/ExportFunctions/ExportIcon/index.tsx +59 -59
- package/src/components/Functional/QueryMutipleInput/index.less +37 -37
- package/src/components/Functional/QueryMutipleInput/index.md +33 -33
- package/src/components/Functional/QueryMutipleInput/index.tsx +128 -128
- package/src/components/Functional/SearchSelect/index.less +115 -115
- package/src/components/Functional/SearchSelect/index.md +141 -141
- package/src/components/Functional/SearchSelect/index.tsx +812 -812
- package/src/components/Functional/TreeSearchSelect/index.md +47 -47
- package/src/components/Functional/TreeSearchSelect/index.tsx +149 -149
- package/src/index.ts +31 -31
- package/src/styles/bsDefault.less +1906 -1906
- package/src/utils/CheckOneUser/index.md +39 -39
- package/src/utils/CheckOneUser/index.ts +51 -51
- package/src/utils/checkUtils.ts +39 -0
- package/src/utils/enumConfig.ts +9 -9
- package/src/utils/index.ts +2 -0
- package/src/utils/requestUtils.ts +33 -33
- package/src/utils/utils.ts +51 -51
- package/tsconfig.json +29 -29
- package/typings.d.ts +4 -4
|
@@ -1,39 +1,39 @@
|
|
|
1
|
-
---
|
|
2
|
-
nav:
|
|
3
|
-
title: '工具方法'
|
|
4
|
-
order: 2
|
|
5
|
-
group:
|
|
6
|
-
title: 方法
|
|
7
|
-
order: 0
|
|
8
|
-
title: 确保单用户登录
|
|
9
|
-
order: 1
|
|
10
|
-
---
|
|
11
|
-
|
|
12
|
-
## CheckOneUser
|
|
13
|
-
|
|
14
|
-
Demo:
|
|
15
|
-
|
|
16
|
-
```tsx
|
|
17
|
-
import React, { useRef } from 'react';
|
|
18
|
-
import { message } from 'antd';
|
|
19
|
-
|
|
20
|
-
import { CheckOneUser } from '../../index';
|
|
21
|
-
|
|
22
|
-
CheckOneUser('userInfo.a.information.name', 3, () => {
|
|
23
|
-
message.warning('检测新用户登录,当前页面会在3s之后刷新!');
|
|
24
|
-
})
|
|
25
|
-
|
|
26
|
-
export default () => {
|
|
27
|
-
|
|
28
|
-
const handleOnChange = (value) => {
|
|
29
|
-
console.log(value);
|
|
30
|
-
};
|
|
31
|
-
|
|
32
|
-
return (
|
|
33
|
-
<div>
|
|
34
|
-
</div>
|
|
35
|
-
);
|
|
36
|
-
};
|
|
37
|
-
```
|
|
38
|
-
|
|
39
|
-
More skills for writing demo: https://d.umijs.org/guide/demo-principle
|
|
1
|
+
---
|
|
2
|
+
nav:
|
|
3
|
+
title: '工具方法'
|
|
4
|
+
order: 2
|
|
5
|
+
group:
|
|
6
|
+
title: 方法
|
|
7
|
+
order: 0
|
|
8
|
+
title: 确保单用户登录
|
|
9
|
+
order: 1
|
|
10
|
+
---
|
|
11
|
+
|
|
12
|
+
## CheckOneUser
|
|
13
|
+
|
|
14
|
+
Demo:
|
|
15
|
+
|
|
16
|
+
```tsx
|
|
17
|
+
import React, { useRef } from 'react';
|
|
18
|
+
import { message } from 'antd';
|
|
19
|
+
|
|
20
|
+
import { CheckOneUser } from '../../index';
|
|
21
|
+
|
|
22
|
+
CheckOneUser('userInfo.a.information.name', 3, () => {
|
|
23
|
+
message.warning('检测新用户登录,当前页面会在3s之后刷新!');
|
|
24
|
+
})
|
|
25
|
+
|
|
26
|
+
export default () => {
|
|
27
|
+
|
|
28
|
+
const handleOnChange = (value) => {
|
|
29
|
+
console.log(value);
|
|
30
|
+
};
|
|
31
|
+
|
|
32
|
+
return (
|
|
33
|
+
<div>
|
|
34
|
+
</div>
|
|
35
|
+
);
|
|
36
|
+
};
|
|
37
|
+
```
|
|
38
|
+
|
|
39
|
+
More skills for writing demo: https://d.umijs.org/guide/demo-principle
|
|
@@ -1,52 +1,52 @@
|
|
|
1
|
-
/*
|
|
2
|
-
* @Description:
|
|
3
|
-
* @Author: rodchen
|
|
4
|
-
* @Date: 2022-01-14 14:12:01
|
|
5
|
-
* @LastEditTime: 2022-01-14 17:17:26
|
|
6
|
-
* @LastEditors: rodchen
|
|
7
|
-
*/
|
|
8
|
-
export default (storageKeyString: string, seconds: number = 2, tipsCallFunction?: () =>{}) => {
|
|
9
|
-
if (typeof seconds !== 'number' ) throw new Error('seconds should be number');
|
|
10
|
-
|
|
11
|
-
let cacheValue = getStorageVale(storageKeyString);
|
|
12
|
-
|
|
13
|
-
if (document.hidden !== undefined) {
|
|
14
|
-
document.addEventListener('visibilitychange', () => {
|
|
15
|
-
if (!document.hidden) {
|
|
16
|
-
let currentValue = getStorageVale(storageKeyString);
|
|
17
|
-
if (currentValue !== cacheValue) {
|
|
18
|
-
if (tipsCallFunction && typeof tipsCallFunction === 'function') {
|
|
19
|
-
tipsCallFunction();
|
|
20
|
-
} else {
|
|
21
|
-
window.alert('检测新用户登录,当前页面会在2s之后刷新!');
|
|
22
|
-
}
|
|
23
|
-
|
|
24
|
-
setTimeout(() => {
|
|
25
|
-
window.location.reload();
|
|
26
|
-
}, seconds * 1000)
|
|
27
|
-
}
|
|
28
|
-
}
|
|
29
|
-
})
|
|
30
|
-
}
|
|
31
|
-
}
|
|
32
|
-
|
|
33
|
-
function getStorageVale (storageKeyString: string) {
|
|
34
|
-
var [localstorage, ...restKeyArrays] = storageKeyString.split('.');
|
|
35
|
-
let localStorageInfo = window.localStorage.getItem(localstorage)
|
|
36
|
-
|
|
37
|
-
if (!restKeyArrays.length) return localStorageInfo;
|
|
38
|
-
|
|
39
|
-
let returnVal = JSON.parse(localStorageInfo || '{}');
|
|
40
|
-
|
|
41
|
-
for(let i = 0; i < restKeyArrays.length; i++ ) {
|
|
42
|
-
returnVal = returnVal[restKeyArrays[i]]
|
|
43
|
-
|
|
44
|
-
if (!returnVal) return '';
|
|
45
|
-
|
|
46
|
-
if (typeof returnVal === 'string') {
|
|
47
|
-
return returnVal
|
|
48
|
-
}
|
|
49
|
-
}
|
|
50
|
-
|
|
51
|
-
return ""
|
|
1
|
+
/*
|
|
2
|
+
* @Description:
|
|
3
|
+
* @Author: rodchen
|
|
4
|
+
* @Date: 2022-01-14 14:12:01
|
|
5
|
+
* @LastEditTime: 2022-01-14 17:17:26
|
|
6
|
+
* @LastEditors: rodchen
|
|
7
|
+
*/
|
|
8
|
+
export default (storageKeyString: string, seconds: number = 2, tipsCallFunction?: () =>{}) => {
|
|
9
|
+
if (typeof seconds !== 'number' ) throw new Error('seconds should be number');
|
|
10
|
+
|
|
11
|
+
let cacheValue = getStorageVale(storageKeyString);
|
|
12
|
+
|
|
13
|
+
if (document.hidden !== undefined) {
|
|
14
|
+
document.addEventListener('visibilitychange', () => {
|
|
15
|
+
if (!document.hidden) {
|
|
16
|
+
let currentValue = getStorageVale(storageKeyString);
|
|
17
|
+
if (currentValue !== cacheValue) {
|
|
18
|
+
if (tipsCallFunction && typeof tipsCallFunction === 'function') {
|
|
19
|
+
tipsCallFunction();
|
|
20
|
+
} else {
|
|
21
|
+
window.alert('检测新用户登录,当前页面会在2s之后刷新!');
|
|
22
|
+
}
|
|
23
|
+
|
|
24
|
+
setTimeout(() => {
|
|
25
|
+
window.location.reload();
|
|
26
|
+
}, seconds * 1000)
|
|
27
|
+
}
|
|
28
|
+
}
|
|
29
|
+
})
|
|
30
|
+
}
|
|
31
|
+
}
|
|
32
|
+
|
|
33
|
+
function getStorageVale (storageKeyString: string) {
|
|
34
|
+
var [localstorage, ...restKeyArrays] = storageKeyString.split('.');
|
|
35
|
+
let localStorageInfo = window.localStorage.getItem(localstorage)
|
|
36
|
+
|
|
37
|
+
if (!restKeyArrays.length) return localStorageInfo;
|
|
38
|
+
|
|
39
|
+
let returnVal = JSON.parse(localStorageInfo || '{}');
|
|
40
|
+
|
|
41
|
+
for(let i = 0; i < restKeyArrays.length; i++ ) {
|
|
42
|
+
returnVal = returnVal[restKeyArrays[i]]
|
|
43
|
+
|
|
44
|
+
if (!returnVal) return '';
|
|
45
|
+
|
|
46
|
+
if (typeof returnVal === 'string') {
|
|
47
|
+
return returnVal
|
|
48
|
+
}
|
|
49
|
+
}
|
|
50
|
+
|
|
51
|
+
return ""
|
|
52
52
|
}
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
import { message } from 'antd';
|
|
2
|
+
import _ from 'lodash';
|
|
3
|
+
|
|
4
|
+
const checkQuantityAccuracy = (value: any, accuracy: any, errorInfo?: any) => {
|
|
5
|
+
let errorMessage= {showTips: true, tipsMessage: null,...errorInfo}
|
|
6
|
+
if (_.trim(value)) {
|
|
7
|
+
const target = `${value}`;
|
|
8
|
+
if (target.includes(".")) {
|
|
9
|
+
if (target.split(".")[1].length > accuracy) {
|
|
10
|
+
if(errorMessage?.showTips) {
|
|
11
|
+
message.warning(errorMessage?.tipsMessage || `系统设置数量最大精度为${accuracy}位`)
|
|
12
|
+
}
|
|
13
|
+
return false;
|
|
14
|
+
}
|
|
15
|
+
}
|
|
16
|
+
}
|
|
17
|
+
return true;
|
|
18
|
+
}
|
|
19
|
+
|
|
20
|
+
const precisionQuantity = (num: any, accuracy: any) => {
|
|
21
|
+
if (_.trim(num)) {
|
|
22
|
+
const target = `${num}`;
|
|
23
|
+
if (target.includes(".")) {
|
|
24
|
+
if (target.split(".")[1].length > accuracy) {
|
|
25
|
+
const beforeDot = target.split(".")[0];
|
|
26
|
+
const afterDot = target.split(".")[1]?.slice(0,accuracy)
|
|
27
|
+
const result = accuracy == 0 ? Number(`${beforeDot}`) : Number(`${beforeDot}.${afterDot}`)
|
|
28
|
+
return result
|
|
29
|
+
} else if (target.split(".")[1].length < accuracy) {
|
|
30
|
+
return Number(Number(num).toFixed(Math.abs(accuracy)))
|
|
31
|
+
} else {
|
|
32
|
+
return Number(num)
|
|
33
|
+
}
|
|
34
|
+
}
|
|
35
|
+
}
|
|
36
|
+
return ''
|
|
37
|
+
}
|
|
38
|
+
|
|
39
|
+
export { checkQuantityAccuracy, precisionQuantity }
|
package/src/utils/enumConfig.ts
CHANGED
|
@@ -1,10 +1,10 @@
|
|
|
1
|
-
export default {
|
|
2
|
-
// 浏览器缓存信息
|
|
3
|
-
BROWSER_CACHE: {
|
|
4
|
-
COLUMN_CONDITION: 'columnCondition', //表格列信息缓存
|
|
5
|
-
MAIN_AUTH_CODES: 'menuAuth_mainProject', //按钮资源权限集合
|
|
6
|
-
LIMIT_MENU_DATA: 'limitedMenuData', //权限过滤后的菜单数据
|
|
7
|
-
USER_INFO: 'userInfo', //用户信息
|
|
8
|
-
DICT_CODES: 'dicData', //数据字典数据
|
|
9
|
-
}
|
|
1
|
+
export default {
|
|
2
|
+
// 浏览器缓存信息
|
|
3
|
+
BROWSER_CACHE: {
|
|
4
|
+
COLUMN_CONDITION: 'columnCondition', //表格列信息缓存
|
|
5
|
+
MAIN_AUTH_CODES: 'menuAuth_mainProject', //按钮资源权限集合
|
|
6
|
+
LIMIT_MENU_DATA: 'limitedMenuData', //权限过滤后的菜单数据
|
|
7
|
+
USER_INFO: 'userInfo', //用户信息
|
|
8
|
+
DICT_CODES: 'dicData', //数据字典数据
|
|
9
|
+
}
|
|
10
10
|
}
|
|
@@ -1,33 +1,33 @@
|
|
|
1
|
-
import axios from 'axios';
|
|
2
|
-
import ENUM from './enumConfig';
|
|
3
|
-
|
|
4
|
-
const resposne = JSON.parse(localStorage.getItem(ENUM.BROWSER_CACHE.USER_INFO) || '{}');
|
|
5
|
-
|
|
6
|
-
export function handleRequestAuthHeader(config?: any) {
|
|
7
|
-
// https://www.kdocs.cn/l/coNbPpjamr5v这个表格里面涉及的接口,接口请求头里需要添加参数:x-biz-code 值就是列表里的code
|
|
8
|
-
// 例:x-biz-code=STORE_CODE
|
|
9
|
-
// 物理仓选择组件
|
|
10
|
-
if(config?.url?.indexOf( '/stock/physicalWarehouse?') > -1) {
|
|
11
|
-
config.headers['x-biz-code'] = 'PW_STOCK_CODE';
|
|
12
|
-
}
|
|
13
|
-
// 逻辑仓选择组件
|
|
14
|
-
if(config?.url?.indexOf( '/stock/realWarehouse?') > -1) {
|
|
15
|
-
config.headers['x-biz-code'] = 'RW_STOCK_CODE';
|
|
16
|
-
}
|
|
17
|
-
}
|
|
18
|
-
|
|
19
|
-
// 处理请求头
|
|
20
|
-
const handleRequestHeader = (config: any) => {
|
|
21
|
-
config.headers['sso-sessionid'] = resposne?.sessionId || ''
|
|
22
|
-
config.headers['x-tenant-id'] = resposne?.tenantId || '1'
|
|
23
|
-
if (localStorage.getItem('x-user-auth-context')) {
|
|
24
|
-
config.headers['x-user-auth-context'] = localStorage.getItem('x-user-auth-context');
|
|
25
|
-
}
|
|
26
|
-
handleRequestAuthHeader(config)
|
|
27
|
-
}
|
|
28
|
-
|
|
29
|
-
// 拦截器
|
|
30
|
-
axios.interceptors.request.use((config: any) => {
|
|
31
|
-
handleRequestHeader(config)
|
|
32
|
-
return config
|
|
33
|
-
})
|
|
1
|
+
import axios from 'axios';
|
|
2
|
+
import ENUM from './enumConfig';
|
|
3
|
+
|
|
4
|
+
const resposne = JSON.parse(localStorage.getItem(ENUM.BROWSER_CACHE.USER_INFO) || '{}');
|
|
5
|
+
|
|
6
|
+
export function handleRequestAuthHeader(config?: any) {
|
|
7
|
+
// https://www.kdocs.cn/l/coNbPpjamr5v这个表格里面涉及的接口,接口请求头里需要添加参数:x-biz-code 值就是列表里的code
|
|
8
|
+
// 例:x-biz-code=STORE_CODE
|
|
9
|
+
// 物理仓选择组件
|
|
10
|
+
if(config?.url?.indexOf( '/stock/physicalWarehouse?') > -1) {
|
|
11
|
+
config.headers['x-biz-code'] = 'PW_STOCK_CODE';
|
|
12
|
+
}
|
|
13
|
+
// 逻辑仓选择组件
|
|
14
|
+
if(config?.url?.indexOf( '/stock/realWarehouse?') > -1) {
|
|
15
|
+
config.headers['x-biz-code'] = 'RW_STOCK_CODE';
|
|
16
|
+
}
|
|
17
|
+
}
|
|
18
|
+
|
|
19
|
+
// 处理请求头
|
|
20
|
+
const handleRequestHeader = (config: any) => {
|
|
21
|
+
config.headers['sso-sessionid'] = resposne?.sessionId || ''
|
|
22
|
+
config.headers['x-tenant-id'] = resposne?.tenantId || '1'
|
|
23
|
+
if (localStorage.getItem('x-user-auth-context')) {
|
|
24
|
+
config.headers['x-user-auth-context'] = localStorage.getItem('x-user-auth-context');
|
|
25
|
+
}
|
|
26
|
+
handleRequestAuthHeader(config)
|
|
27
|
+
}
|
|
28
|
+
|
|
29
|
+
// 拦截器
|
|
30
|
+
axios.interceptors.request.use((config: any) => {
|
|
31
|
+
handleRequestHeader(config)
|
|
32
|
+
return config
|
|
33
|
+
})
|
package/src/utils/utils.ts
CHANGED
|
@@ -1,52 +1,52 @@
|
|
|
1
|
-
// @ts-nocheck
|
|
2
|
-
import memoizeOne from 'memoize-one';
|
|
3
|
-
import { formatMessage } from 'umi';
|
|
4
|
-
import isEqual from 'lodash/isEqual';
|
|
5
|
-
|
|
6
|
-
export function downloadExcel(data: any, fileName?: any, isResUrl?: boolean) {
|
|
7
|
-
const resUrl = isResUrl
|
|
8
|
-
? data
|
|
9
|
-
: window.URL.createObjectURL(
|
|
10
|
-
new Blob([data], {
|
|
11
|
-
type: 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet',
|
|
12
|
-
}),
|
|
13
|
-
);
|
|
14
|
-
const save_link = document.createElement('a');
|
|
15
|
-
save_link.href = resUrl;
|
|
16
|
-
if (fileName) {
|
|
17
|
-
save_link.download = fileName; /// 设置下载文件名
|
|
18
|
-
}
|
|
19
|
-
save_link.click();
|
|
20
|
-
}
|
|
21
|
-
|
|
22
|
-
export const formatter = (data, parentAuthority, parentName) => {
|
|
23
|
-
return data
|
|
24
|
-
.map((item) => {
|
|
25
|
-
if (!item.name || !item.path) {
|
|
26
|
-
return null;
|
|
27
|
-
}
|
|
28
|
-
|
|
29
|
-
let locale = 'menu';
|
|
30
|
-
if (parentName) {
|
|
31
|
-
locale = `${parentName}.${item.name}`;
|
|
32
|
-
} else {
|
|
33
|
-
locale = `menu.${item.name}`;
|
|
34
|
-
}
|
|
35
|
-
const result = {
|
|
36
|
-
...item,
|
|
37
|
-
name: formatMessage && formatMessage({ id: locale, defaultMessage: item.name }) || item.name,
|
|
38
|
-
locale,
|
|
39
|
-
authority: item.authority || parentAuthority,
|
|
40
|
-
};
|
|
41
|
-
if (item.routes) {
|
|
42
|
-
const children = formatter(item.routes, item.authority, locale);
|
|
43
|
-
// Reduce memory usage
|
|
44
|
-
result.children = children;
|
|
45
|
-
}
|
|
46
|
-
delete result.routes;
|
|
47
|
-
return result;
|
|
48
|
-
})
|
|
49
|
-
.filter((item) => item);
|
|
50
|
-
};
|
|
51
|
-
|
|
1
|
+
// @ts-nocheck
|
|
2
|
+
import memoizeOne from 'memoize-one';
|
|
3
|
+
import { formatMessage } from 'umi';
|
|
4
|
+
import isEqual from 'lodash/isEqual';
|
|
5
|
+
|
|
6
|
+
export function downloadExcel(data: any, fileName?: any, isResUrl?: boolean) {
|
|
7
|
+
const resUrl = isResUrl
|
|
8
|
+
? data
|
|
9
|
+
: window.URL.createObjectURL(
|
|
10
|
+
new Blob([data], {
|
|
11
|
+
type: 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet',
|
|
12
|
+
}),
|
|
13
|
+
);
|
|
14
|
+
const save_link = document.createElement('a');
|
|
15
|
+
save_link.href = resUrl;
|
|
16
|
+
if (fileName) {
|
|
17
|
+
save_link.download = fileName; /// 设置下载文件名
|
|
18
|
+
}
|
|
19
|
+
save_link.click();
|
|
20
|
+
}
|
|
21
|
+
|
|
22
|
+
export const formatter = (data, parentAuthority, parentName) => {
|
|
23
|
+
return data
|
|
24
|
+
.map((item) => {
|
|
25
|
+
if (!item.name || !item.path) {
|
|
26
|
+
return null;
|
|
27
|
+
}
|
|
28
|
+
|
|
29
|
+
let locale = 'menu';
|
|
30
|
+
if (parentName) {
|
|
31
|
+
locale = `${parentName}.${item.name}`;
|
|
32
|
+
} else {
|
|
33
|
+
locale = `menu.${item.name}`;
|
|
34
|
+
}
|
|
35
|
+
const result = {
|
|
36
|
+
...item,
|
|
37
|
+
name: formatMessage && formatMessage({ id: locale, defaultMessage: item.name }) || item.name,
|
|
38
|
+
locale,
|
|
39
|
+
authority: item.authority || parentAuthority,
|
|
40
|
+
};
|
|
41
|
+
if (item.routes) {
|
|
42
|
+
const children = formatter(item.routes, item.authority, locale);
|
|
43
|
+
// Reduce memory usage
|
|
44
|
+
result.children = children;
|
|
45
|
+
}
|
|
46
|
+
delete result.routes;
|
|
47
|
+
return result;
|
|
48
|
+
})
|
|
49
|
+
.filter((item) => item);
|
|
50
|
+
};
|
|
51
|
+
|
|
52
52
|
export const memoizeOneFormatter = memoizeOne(formatter, isEqual);
|
package/tsconfig.json
CHANGED
|
@@ -1,29 +1,29 @@
|
|
|
1
|
-
{
|
|
2
|
-
"compilerOptions": {
|
|
3
|
-
"target": "esnext",
|
|
4
|
-
"module": "esnext",
|
|
5
|
-
"moduleResolution": "node",
|
|
6
|
-
"importHelpers": true,
|
|
7
|
-
"jsx": "react",
|
|
8
|
-
"esModuleInterop": true,
|
|
9
|
-
"sourceMap": true,
|
|
10
|
-
"baseUrl": "./",
|
|
11
|
-
"strict": true,
|
|
12
|
-
"paths": {
|
|
13
|
-
"@/*": ["src/*"],
|
|
14
|
-
"@@/*": ["src/.umi/*"]
|
|
15
|
-
},
|
|
16
|
-
"allowSyntheticDefaultImports": true
|
|
17
|
-
},
|
|
18
|
-
"exclude": [
|
|
19
|
-
"node_modules",
|
|
20
|
-
"lib",
|
|
21
|
-
"es",
|
|
22
|
-
"dist",
|
|
23
|
-
"typings",
|
|
24
|
-
"**/__test__",
|
|
25
|
-
"test",
|
|
26
|
-
"docs",
|
|
27
|
-
"tests"
|
|
28
|
-
]
|
|
29
|
-
}
|
|
1
|
+
{
|
|
2
|
+
"compilerOptions": {
|
|
3
|
+
"target": "esnext",
|
|
4
|
+
"module": "esnext",
|
|
5
|
+
"moduleResolution": "node",
|
|
6
|
+
"importHelpers": true,
|
|
7
|
+
"jsx": "react",
|
|
8
|
+
"esModuleInterop": true,
|
|
9
|
+
"sourceMap": true,
|
|
10
|
+
"baseUrl": "./",
|
|
11
|
+
"strict": true,
|
|
12
|
+
"paths": {
|
|
13
|
+
"@/*": ["src/*"],
|
|
14
|
+
"@@/*": ["src/.umi/*"]
|
|
15
|
+
},
|
|
16
|
+
"allowSyntheticDefaultImports": true
|
|
17
|
+
},
|
|
18
|
+
"exclude": [
|
|
19
|
+
"node_modules",
|
|
20
|
+
"lib",
|
|
21
|
+
"es",
|
|
22
|
+
"dist",
|
|
23
|
+
"typings",
|
|
24
|
+
"**/__test__",
|
|
25
|
+
"test",
|
|
26
|
+
"docs",
|
|
27
|
+
"tests"
|
|
28
|
+
]
|
|
29
|
+
}
|
package/typings.d.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
declare module '*.css';
|
|
2
|
-
declare module '*.less';
|
|
3
|
-
declare module '*.png';
|
|
4
|
-
declare module '*.svg';
|
|
1
|
+
declare module '*.css';
|
|
2
|
+
declare module '*.less';
|
|
3
|
+
declare module '*.png';
|
|
4
|
+
declare module '*.svg';
|
|
5
5
|
declare module 'bssula';
|