@bit-sun/business-component 2.1.20 → 2.1.21
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 +179 -179
- package/.prettierignore +7 -7
- package/.prettierrc +11 -11
- package/.umirc.ts +74 -74
- package/README.md +27 -27
- package/dist/components/Business/BsLayouts/Components/AllFunc/drawContent.d.ts +1 -1
- package/dist/components/Business/BsLayouts/Components/AllFunc/index.d.ts +1 -1
- package/dist/components/Business/BsLayouts/Components/RightContent/index.d.ts +2 -2
- package/dist/components/Business/BsLayouts/Components/SearchFunc/index.d.ts +2 -2
- package/dist/components/Business/BsLayouts/index.d.ts +2 -2
- package/dist/components/Business/BsSulaQueryTable/utils.d.ts +2 -2
- package/dist/index.esm.js +14708 -11345
- package/dist/index.js +14705 -11342
- package/dist/utils/TableUtils.d.ts +2 -2
- package/dist/utils/utils.d.ts +11 -1
- 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 +341 -341
- 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 +1479 -1479
- package/src/components/Business/BsLayouts/service.ts +10 -10
- package/src/components/Business/BsLayouts/utils.tsx +230 -230
- package/src/components/Business/BsSulaQueryTable/index.less +219 -219
- package/src/components/Business/BsSulaQueryTable/index.tsx +476 -507
- package/src/components/Business/BsSulaQueryTable/setting.tsx +802 -802
- 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 +335 -335
- 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 +1586 -1586
- package/src/components/Business/SearchSelect/common.ts +53 -53
- package/src/components/Business/SearchSelect/index.md +1254 -1254
- 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 +764 -764
- 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/Business/moreTreeTable/index.less +99 -99
- package/src/components/Business/moreTreeTable/index.md +508 -508
- package/src/components/Business/moreTreeTable/index.tsx +315 -315
- package/src/components/Business/moreTreeTable/utils.ts +126 -126
- package/src/components/Functional/AddSelect/index.less +367 -367
- package/src/components/Functional/AddSelect/index.md +154 -154
- package/src/components/Functional/AddSelect/index.tsx +992 -992
- 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 +671 -671
- 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 +695 -695
- package/src/components/Functional/DataValidation/index.less +63 -63
- package/src/components/Functional/DataValidation/index.md +39 -39
- package/src/components/Functional/DataValidation/index.tsx +687 -687
- 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 +813 -813
- package/src/components/Functional/SearchSelect/utils.ts +6 -6
- package/src/components/Functional/TreeSearchSelect/index.md +47 -47
- package/src/components/Functional/TreeSearchSelect/index.tsx +149 -149
- package/src/index.ts +32 -32
- 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/TableUtils.tsx +18 -18
- package/src/utils/checkUtils.ts +39 -39
- package/src/utils/enumConfig.ts +10 -10
- package/src/utils/index.ts +2 -2
- package/src/utils/requestUtils.ts +33 -33
- package/src/utils/utils.ts +142 -57
- 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
|
}
|
package/src/utils/TableUtils.tsx
CHANGED
|
@@ -1,18 +1,18 @@
|
|
|
1
|
-
|
|
2
|
-
type mediaListType = {
|
|
3
|
-
type: number,
|
|
4
|
-
url: string,
|
|
5
|
-
[key: string]: any;
|
|
6
|
-
}
|
|
7
|
-
type recordType = {
|
|
8
|
-
mediaList?: mediaListType;
|
|
9
|
-
[key: string]: any;
|
|
10
|
-
};
|
|
11
|
-
export const getSkuImg = (
|
|
12
|
-
record: recordType,
|
|
13
|
-
) => {
|
|
14
|
-
// 默认取sku图片、当没有设置时取商品图片,商品图片也没有返回空
|
|
15
|
-
const ImgList = record.mediaList?.length && record.mediaList.filter((i: any) => i.type == 1) || [] // 获取SKU、SPU图片数组集合
|
|
16
|
-
const imgShow = ImgList?.length && ImgList[0].url || null
|
|
17
|
-
return imgShow;
|
|
18
|
-
};
|
|
1
|
+
|
|
2
|
+
type mediaListType = {
|
|
3
|
+
type: number,
|
|
4
|
+
url: string,
|
|
5
|
+
[key: string]: any;
|
|
6
|
+
}
|
|
7
|
+
type recordType = {
|
|
8
|
+
mediaList?: mediaListType;
|
|
9
|
+
[key: string]: any;
|
|
10
|
+
};
|
|
11
|
+
export const getSkuImg = (
|
|
12
|
+
record: recordType,
|
|
13
|
+
) => {
|
|
14
|
+
// 默认取sku图片、当没有设置时取商品图片,商品图片也没有返回空
|
|
15
|
+
const ImgList = record.mediaList?.length && record.mediaList.filter((i: any) => i.type == 1) || [] // 获取SKU、SPU图片数组集合
|
|
16
|
+
const imgShow = ImgList?.length && ImgList[0].url || null
|
|
17
|
+
return imgShow;
|
|
18
|
+
};
|
package/src/utils/checkUtils.ts
CHANGED
|
@@ -1,39 +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 }
|
|
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,11 +1,11 @@
|
|
|
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
|
-
CHILD_APP_BACK: 'child_app_back', //标记子应用goback事件
|
|
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
|
+
CHILD_APP_BACK: 'child_app_back', //标记子应用goback事件
|
|
10
|
+
}
|
|
11
11
|
}
|
package/src/utils/index.ts
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import './requestUtils';
|
|
2
|
-
import './checkUtils';
|
|
1
|
+
import './requestUtils';
|
|
2
|
+
import './checkUtils';
|
|
@@ -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,58 +1,143 @@
|
|
|
1
|
-
// @ts-nocheck
|
|
2
|
-
import memoizeOne from 'memoize-one';
|
|
3
|
-
import { formatMessage, history } from 'umi';
|
|
4
|
-
import isEqual from 'lodash/isEqual';
|
|
5
|
-
import ENUM from './enumConfig';
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
}
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
}
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
1
|
+
// @ts-nocheck
|
|
2
|
+
import memoizeOne from 'memoize-one';
|
|
3
|
+
import { formatMessage, history } from 'umi';
|
|
4
|
+
import isEqual from 'lodash/isEqual';
|
|
5
|
+
import ENUM from './enumConfig';
|
|
6
|
+
import {
|
|
7
|
+
handleTextDouble,
|
|
8
|
+
handleTextLineFeed,
|
|
9
|
+
handleTextOverflow,
|
|
10
|
+
handleTooltip,
|
|
11
|
+
handleTooltipHours,
|
|
12
|
+
tableColumnsImage,
|
|
13
|
+
} from '@/components/Business/BsSulaQueryTable/utils';
|
|
14
|
+
|
|
15
|
+
export function downloadExcel(data: any, fileName?: any, isResUrl?: boolean) {
|
|
16
|
+
const resUrl = isResUrl
|
|
17
|
+
? data
|
|
18
|
+
: window.URL.createObjectURL(
|
|
19
|
+
new Blob([data], {
|
|
20
|
+
type: 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet',
|
|
21
|
+
}),
|
|
22
|
+
);
|
|
23
|
+
const save_link = document.createElement('a');
|
|
24
|
+
save_link.href = resUrl;
|
|
25
|
+
if (fileName) {
|
|
26
|
+
save_link.download = fileName; /// 设置下载文件名
|
|
27
|
+
}
|
|
28
|
+
save_link.click();
|
|
29
|
+
}
|
|
30
|
+
|
|
31
|
+
export const formatter = (data, parentAuthority, parentName) => {
|
|
32
|
+
return data
|
|
33
|
+
.map((item) => {
|
|
34
|
+
if (!item.name || !item.path) {
|
|
35
|
+
return null;
|
|
36
|
+
}
|
|
37
|
+
|
|
38
|
+
let locale = 'menu';
|
|
39
|
+
if (parentName) {
|
|
40
|
+
locale = `${parentName}.${item.name}`;
|
|
41
|
+
} else {
|
|
42
|
+
locale = `menu.${item.name}`;
|
|
43
|
+
}
|
|
44
|
+
const result = {
|
|
45
|
+
...item,
|
|
46
|
+
name: formatMessage && formatMessage({ id: locale, defaultMessage: item.name }) || item.name,
|
|
47
|
+
locale,
|
|
48
|
+
authority: item.authority || parentAuthority,
|
|
49
|
+
};
|
|
50
|
+
if (item.routes) {
|
|
51
|
+
const children = formatter(item.routes, item.authority, locale);
|
|
52
|
+
// Reduce memory usage
|
|
53
|
+
result.children = children;
|
|
54
|
+
}
|
|
55
|
+
delete result.routes;
|
|
56
|
+
return result;
|
|
57
|
+
})
|
|
58
|
+
.filter((item) => item);
|
|
59
|
+
};
|
|
60
|
+
|
|
61
|
+
export const memoizeOneFormatter = memoizeOne(formatter, isEqual);
|
|
62
|
+
|
|
63
|
+
export const go2BackAndClose = () => {
|
|
64
|
+
localStorage.setItem(ENUM.BROWSER_CACHE.CHILD_APP_BACK, 1);
|
|
65
|
+
history.goBack();
|
|
66
|
+
}
|
|
67
|
+
|
|
68
|
+
/**
|
|
69
|
+
* 处理bssulaTable的公共回显样式
|
|
70
|
+
* @param col 每一具体行
|
|
71
|
+
*/
|
|
72
|
+
export const handleBssulaColumnsSpecialParams = (col: any) => {
|
|
73
|
+
if (col.timeRenderHour) {
|
|
74
|
+
col.render = ({ text }: any) =>
|
|
75
|
+
handleTooltipHours(text, col.timeRenderHour);
|
|
76
|
+
}
|
|
77
|
+
// 处理不显示 时分秒的时间
|
|
78
|
+
if (col.timeRender) {
|
|
79
|
+
col.render = ({ text }: any) => handleTooltip(text, col.timeRender);
|
|
80
|
+
}
|
|
81
|
+
// 处理文字太长
|
|
82
|
+
if (col.textOverflow) {
|
|
83
|
+
col.render = ({ text }: any) => handleTextOverflow(text);
|
|
84
|
+
}
|
|
85
|
+
if (col.images) {
|
|
86
|
+
col.render = ({ text }: any) => tableColumnsImage(text);
|
|
87
|
+
}
|
|
88
|
+
if (col.double) {
|
|
89
|
+
col.render = ({ record }: any) =>
|
|
90
|
+
handleTextDouble(record[col.textOne], record[col.textTwo]);
|
|
91
|
+
}
|
|
92
|
+
if (col.lineFeed) {
|
|
93
|
+
col.render = ({ text }: any) => handleTextLineFeed(text);
|
|
94
|
+
}
|
|
95
|
+
|
|
96
|
+
// 处理序号
|
|
97
|
+
if (col.indexNumber) {
|
|
98
|
+
col.render = ({ index }: any) => index + 1;
|
|
99
|
+
}
|
|
100
|
+
// 没有值默认显示 - -
|
|
101
|
+
if (!col.render) {
|
|
102
|
+
// col.render = ({ text }: any) => text || '- -';
|
|
103
|
+
col.render = ({ text }: any) => text || '--';
|
|
104
|
+
}
|
|
105
|
+
};
|
|
106
|
+
/**
|
|
107
|
+
* 处理antdTable的公共回显样式
|
|
108
|
+
* @param col 每一具体行
|
|
109
|
+
*/
|
|
110
|
+
export const handleAntdColumnsSpecialParams = (col: any) => {
|
|
111
|
+
if (col.timeRenderHour) {
|
|
112
|
+
col.render = (text: any) =>
|
|
113
|
+
handleTooltipHours(text, col.timeRenderHour);
|
|
114
|
+
}
|
|
115
|
+
// 处理不显示 时分秒的时间
|
|
116
|
+
if (col.timeRender) {
|
|
117
|
+
col.render = (text: any) => handleTooltip(text, col.timeRender);
|
|
118
|
+
}
|
|
119
|
+
// 处理文字太长
|
|
120
|
+
if (col.textOverflow) {
|
|
121
|
+
col.render = (text: any) => handleTextOverflow(text);
|
|
122
|
+
}
|
|
123
|
+
if (col.images) {
|
|
124
|
+
col.render = (text: any) => tableColumnsImage(text);
|
|
125
|
+
}
|
|
126
|
+
if (col.double) {
|
|
127
|
+
col.render = (_: any, record: any) =>
|
|
128
|
+
handleTextDouble(record[col.textOne], record[col.textTwo]);
|
|
129
|
+
}
|
|
130
|
+
if (col.lineFeed) {
|
|
131
|
+
col.render = (text: any) => handleTextLineFeed(text);
|
|
132
|
+
}
|
|
133
|
+
|
|
134
|
+
// 处理序号
|
|
135
|
+
if (col.indexNumber) {
|
|
136
|
+
col.render = (_: any, __: any, index: any) => index + 1;
|
|
137
|
+
}
|
|
138
|
+
// 没有值默认显示 - -
|
|
139
|
+
if (!col.render) {
|
|
140
|
+
// col.render = ({ text }: any) => text || '- -';
|
|
141
|
+
col.render = (text: any) => text || '--';
|
|
142
|
+
}
|
|
58
143
|
}
|
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';
|