@bit-sun/business-component 4.0.12-alpha.9 → 4.0.13-alpha.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/dist/components/Business/BsSulaQueryTable/utils.d.ts +1 -1
- package/dist/components/Business/PropertyModal/index.d.ts +23 -0
- package/dist/components/Business/PropertyModal/mockData.d.ts +10 -0
- package/dist/components/Business/PropertyModal/propertyGroup.d.ts +4 -0
- package/dist/components/Business/columnSettingTable/components/TableSumComponent.d.ts +4 -0
- package/dist/components/Functional/QueryMutipleSelect/index.d.ts +5 -0
- package/dist/components/Functional/SearchSelect/utils.d.ts +16 -1
- package/dist/index.d.ts +2 -0
- package/dist/index.esm.js +1510 -588
- package/dist/index.js +1507 -583
- package/package.json +3 -3
- package/src/components/Business/BsSulaQueryTable/utils.tsx +5 -4
- package/src/components/Business/PropertyModal/index.less +58 -0
- package/src/components/Business/PropertyModal/index.md +33 -0
- package/src/components/Business/PropertyModal/index.tsx +271 -0
- package/src/components/Business/PropertyModal/mockData.ts +160 -0
- package/src/components/Business/PropertyModal/propertyGroup.tsx +205 -0
- package/src/components/Business/SearchSelect/BusinessUtils.tsx +50 -3
- package/src/components/Business/SearchSelect/index.md +3 -4
- package/src/components/Business/columnSettingTable/columnSetting.tsx +2 -1
- package/src/components/Business/columnSettingTable/components/TableSumComponent.tsx +25 -0
- package/src/components/Business/columnSettingTable/components/style.less +25 -0
- package/src/components/Business/columnSettingTable/index.tsx +3 -28
- package/src/components/Business/columnSettingTable/sulaSettingTable.tsx +2 -27
- package/src/components/Functional/QueryMutipleSelect/index.less +117 -0
- package/src/components/Functional/QueryMutipleSelect/index.md +41 -0
- package/src/components/Functional/QueryMutipleSelect/index.tsx +245 -0
- package/src/components/Functional/SearchSelect/index.less +33 -1
- package/src/components/Functional/SearchSelect/index.tsx +76 -269
- package/src/components/Functional/SearchSelect/utils.tsx +401 -0
- package/src/components/Solution/RuleComponent/ruleFiled.js +93 -93
- package/src/index.ts +2 -0
- package/src/components/Functional/SearchSelect/utils.ts +0 -38
|
@@ -0,0 +1,205 @@
|
|
|
1
|
+
import React, { useEffect, useState } from "react";
|
|
2
|
+
import { Checkbox } from 'antd';
|
|
3
|
+
import { CaretUpOutlined, CaretDownOutlined } from '@ant-design/icons';
|
|
4
|
+
import './index.less';
|
|
5
|
+
import { set } from "lodash";
|
|
6
|
+
|
|
7
|
+
interface PropertyItem {
|
|
8
|
+
name: string;
|
|
9
|
+
value: string;
|
|
10
|
+
isChecked: boolean;
|
|
11
|
+
isCommonUse: boolean;
|
|
12
|
+
}
|
|
13
|
+
|
|
14
|
+
interface propertyInfoProps {
|
|
15
|
+
propertyName: string;
|
|
16
|
+
propertyCode: string;
|
|
17
|
+
detailList: Array<PropertyItem>;
|
|
18
|
+
}
|
|
19
|
+
|
|
20
|
+
const PropertyGroup = (props: any) => {
|
|
21
|
+
|
|
22
|
+
const {
|
|
23
|
+
propertyData,
|
|
24
|
+
handleProperyItemChange,
|
|
25
|
+
modalVisilbe,
|
|
26
|
+
itemValue,
|
|
27
|
+
} = props;
|
|
28
|
+
const [commonUseProperty, setCommonUseProperty] = useState<Array<PropertyItem> | any>([]); // 常用属性值
|
|
29
|
+
const [notCommonUseProperty, setNotCommonUseProperty] = useState<Array<PropertyItem> | any>([]); // 非常用属性值
|
|
30
|
+
const [indeterminate, setIndeterminate] = useState(false);
|
|
31
|
+
const [showNotCommon, setShowNotCommon] = useState(false);
|
|
32
|
+
|
|
33
|
+
useEffect(() => {
|
|
34
|
+
const proItemValue = (itemValue.propertyList || []).find((item: any) => item.propertyCode === propertyData.propertyCode);
|
|
35
|
+
const checkedList = proItemValue?.detailList || [];
|
|
36
|
+
|
|
37
|
+
const proDetailList = JSON.parse(JSON.stringify( propertyData?.detailList || []));
|
|
38
|
+
proDetailList.forEach((item: any) => {
|
|
39
|
+
if (checkedList.some((checkItem: any) => checkItem.value === item.value)){
|
|
40
|
+
item.isChecked = true;
|
|
41
|
+
}
|
|
42
|
+
});
|
|
43
|
+
const commonUseProperty = (proDetailList).filter((item: any) => item.isCommonUse);
|
|
44
|
+
|
|
45
|
+
const notCommonUseProperty = (proDetailList).filter((item: any) => !item.isCommonUse);
|
|
46
|
+
if (checkedList.some((item: any) => !item.isCommonUse)) {
|
|
47
|
+
setShowNotCommon(true)
|
|
48
|
+
}
|
|
49
|
+
setCommonUseProperty(commonUseProperty);
|
|
50
|
+
setNotCommonUseProperty(notCommonUseProperty);
|
|
51
|
+
}, [modalVisilbe])
|
|
52
|
+
|
|
53
|
+
const parseDataToParent = (comUse: any[], notComUse: any[]) => {
|
|
54
|
+
let choosedPropertyList = (comUse|| []).filter(item => item.isChecked);
|
|
55
|
+
if (showNotCommon) {
|
|
56
|
+
choosedPropertyList = [...choosedPropertyList, ...((notComUse|| []).filter(item => item.isChecked))]
|
|
57
|
+
}
|
|
58
|
+
handleProperyItemChange({
|
|
59
|
+
propertyCode: propertyData?.propertyCode,
|
|
60
|
+
propertyName: propertyData?.propertyName,
|
|
61
|
+
propertyId: propertyData?.propertyId,
|
|
62
|
+
isCommonUse: propertyData?.isCommonUse,
|
|
63
|
+
detailList: choosedPropertyList
|
|
64
|
+
});
|
|
65
|
+
}
|
|
66
|
+
|
|
67
|
+
|
|
68
|
+
const handleChangeAll = (e: any) => {
|
|
69
|
+
if (showNotCommon) {
|
|
70
|
+
notCommonUseProperty.map((item: any) => item.isChecked = e.target.checked);
|
|
71
|
+
setNotCommonUseProperty([...notCommonUseProperty])
|
|
72
|
+
}
|
|
73
|
+
commonUseProperty.map((item: any) => item.isChecked = e.target.checked);
|
|
74
|
+
parseDataToParent(commonUseProperty, notCommonUseProperty)
|
|
75
|
+
setCommonUseProperty([...commonUseProperty])
|
|
76
|
+
setIndeterminate(false)
|
|
77
|
+
}
|
|
78
|
+
|
|
79
|
+
const handleIndeterminate = (commonUseProperty: any[], notCommonUseProperty: any[]) => {
|
|
80
|
+
let checkList = [...commonUseProperty];
|
|
81
|
+
if (showNotCommon) {
|
|
82
|
+
checkList = [...checkList, ...notCommonUseProperty]
|
|
83
|
+
}
|
|
84
|
+
const indeterminate = !!checkList.filter(item => item.isChecked).length && checkList.filter(item => item.isChecked).length !== checkList.length;
|
|
85
|
+
setIndeterminate(indeterminate);
|
|
86
|
+
}
|
|
87
|
+
|
|
88
|
+
const handleItemChecked = (e: any, item: any, type: number) => {
|
|
89
|
+
if (type === 1) { // 常用属性
|
|
90
|
+
(commonUseProperty || []).forEach((info: any) => {
|
|
91
|
+
if (info.value === item.value) {
|
|
92
|
+
info.isChecked = e.target.checked;
|
|
93
|
+
}
|
|
94
|
+
})
|
|
95
|
+
handleIndeterminate(commonUseProperty, notCommonUseProperty)
|
|
96
|
+
parseDataToParent(commonUseProperty, notCommonUseProperty)
|
|
97
|
+
setCommonUseProperty([...commonUseProperty])
|
|
98
|
+
}
|
|
99
|
+
|
|
100
|
+
if (type === 2) { // 非常用属性
|
|
101
|
+
(notCommonUseProperty || []).forEach((info: any) => {
|
|
102
|
+
if (info.value === item.value) {
|
|
103
|
+
info.isChecked = e.target.checked;
|
|
104
|
+
}
|
|
105
|
+
})
|
|
106
|
+
handleIndeterminate(commonUseProperty, notCommonUseProperty)
|
|
107
|
+
parseDataToParent(commonUseProperty, notCommonUseProperty)
|
|
108
|
+
setNotCommonUseProperty([...notCommonUseProperty])
|
|
109
|
+
}
|
|
110
|
+
}
|
|
111
|
+
|
|
112
|
+
const checkAllChecked = () => {
|
|
113
|
+
const checkData = showNotCommon ? [...commonUseProperty, ...notCommonUseProperty] : [...commonUseProperty];
|
|
114
|
+
return checkData.length && checkData.every(item => item.isChecked) ? true : false;
|
|
115
|
+
}
|
|
116
|
+
|
|
117
|
+
|
|
118
|
+
return (
|
|
119
|
+
<div className={'propertyGroup_container'}>
|
|
120
|
+
<div className={'propertyGroup_container_left'}>
|
|
121
|
+
<Checkbox
|
|
122
|
+
checked={checkAllChecked()}
|
|
123
|
+
indeterminate={indeterminate}
|
|
124
|
+
onChange={handleChangeAll}
|
|
125
|
+
>
|
|
126
|
+
<div title={propertyData.name} className="propertyGroup_checkbox_container">{propertyData.propertyName}</div>
|
|
127
|
+
</Checkbox>
|
|
128
|
+
</div>
|
|
129
|
+
<div className={'propertyGroup_container_right'}>
|
|
130
|
+
{
|
|
131
|
+
(commonUseProperty || []).map((item: any) => (
|
|
132
|
+
<Checkbox
|
|
133
|
+
checked={item.isChecked}
|
|
134
|
+
key={item.value}
|
|
135
|
+
onChange={(e) => {
|
|
136
|
+
handleItemChecked(e, item, 1)
|
|
137
|
+
}}
|
|
138
|
+
>
|
|
139
|
+
<div title={item.name} className="propertyGroup_checkbox_container">
|
|
140
|
+
{item.name}
|
|
141
|
+
</div>
|
|
142
|
+
</Checkbox>
|
|
143
|
+
))
|
|
144
|
+
|
|
145
|
+
}
|
|
146
|
+
{
|
|
147
|
+
showNotCommon && (notCommonUseProperty || []).map((item: any) => (
|
|
148
|
+
<Checkbox
|
|
149
|
+
checked={item.isChecked}
|
|
150
|
+
key={item.value}
|
|
151
|
+
onChange={(e) => {
|
|
152
|
+
handleItemChecked(e, item, 2)
|
|
153
|
+
}}
|
|
154
|
+
>
|
|
155
|
+
<div title={item.name} className="propertyGroup_checkbox_container">
|
|
156
|
+
{item.name}
|
|
157
|
+
</div>
|
|
158
|
+
</Checkbox>
|
|
159
|
+
))
|
|
160
|
+
|
|
161
|
+
}
|
|
162
|
+
{
|
|
163
|
+
!!notCommonUseProperty.length && (
|
|
164
|
+
<div
|
|
165
|
+
style={{
|
|
166
|
+
width: '50px',
|
|
167
|
+
cursor: 'pointer',
|
|
168
|
+
color: '#005cff',
|
|
169
|
+
fontSize: '10px',
|
|
170
|
+
display: 'flex',
|
|
171
|
+
alignItems: 'center',
|
|
172
|
+
}}
|
|
173
|
+
onClick={() => {
|
|
174
|
+
setShowNotCommon(!showNotCommon);
|
|
175
|
+
handleIndeterminate(commonUseProperty, notCommonUseProperty)
|
|
176
|
+
}}
|
|
177
|
+
>
|
|
178
|
+
{
|
|
179
|
+
showNotCommon && (
|
|
180
|
+
<>
|
|
181
|
+
<CaretUpOutlined />
|
|
182
|
+
收起
|
|
183
|
+
</>
|
|
184
|
+
)
|
|
185
|
+
}
|
|
186
|
+
{
|
|
187
|
+
!showNotCommon && (
|
|
188
|
+
<>
|
|
189
|
+
<CaretDownOutlined />
|
|
190
|
+
展开
|
|
191
|
+
</>
|
|
192
|
+
)
|
|
193
|
+
}
|
|
194
|
+
</div>
|
|
195
|
+
)
|
|
196
|
+
}
|
|
197
|
+
</div>
|
|
198
|
+
</div>
|
|
199
|
+
);
|
|
200
|
+
};
|
|
201
|
+
|
|
202
|
+
export default React.memo(PropertyGroup, (props, nextProps) => {
|
|
203
|
+
if (props.modalVisilbe !== nextProps.modalVisilbe) return false;
|
|
204
|
+
return true;
|
|
205
|
+
});
|
|
@@ -15,6 +15,7 @@ export function commonFun (type?: string, prefixUrl: any, parentProps?:any) {
|
|
|
15
15
|
|
|
16
16
|
// 默认type === 'supplier' 供应商选择器
|
|
17
17
|
let requestConfig = {
|
|
18
|
+
init: true,
|
|
18
19
|
url: `${prefixUrl.selectPrefix}/supplier`,
|
|
19
20
|
filter: 'qp-name,code-orGroup,like', // 过滤参数
|
|
20
21
|
otherParams: {
|
|
@@ -295,7 +296,8 @@ export function commonFun (type?: string, prefixUrl: any, parentProps?:any) {
|
|
|
295
296
|
// 商品选择器sku
|
|
296
297
|
if(type === 'skuCommodity') {
|
|
297
298
|
requestConfig = {
|
|
298
|
-
url: `${prefixUrl.selectPrefix}/sku/doPageBySelect/
|
|
299
|
+
url: `${prefixUrl.selectPrefix}/sku/doPageBySelect/v4`,
|
|
300
|
+
method: 'post',
|
|
299
301
|
filter: 'skuCodeAndSkuName', // 过滤参数
|
|
300
302
|
searchStartLength: 4,
|
|
301
303
|
mappingTextField: 'name',
|
|
@@ -324,9 +326,38 @@ export function commonFun (type?: string, prefixUrl: any, parentProps?:any) {
|
|
|
324
326
|
...selectConfigProps,
|
|
325
327
|
}
|
|
326
328
|
tableSearchForm = [
|
|
327
|
-
{ name: 'qp-skuCode-in', label: 'SKU编码',
|
|
329
|
+
{ name: 'qp-skuCode-in', label: 'SKU编码', field: {
|
|
330
|
+
type:'multipleQuerySearchSelect',
|
|
331
|
+
props: {
|
|
332
|
+
selectProps: {
|
|
333
|
+
mode: "multiple",
|
|
334
|
+
},
|
|
335
|
+
requestConfig: {
|
|
336
|
+
url: '/items/sku//listNoPage/Simple',
|
|
337
|
+
filter: 'qp-name-like', // qp-skuCode-like
|
|
338
|
+
// filter: 'qp-itemCode,name-orGroup,like',
|
|
339
|
+
mappingTextField: 'name',
|
|
340
|
+
mappingValueField: 'skuCode',
|
|
341
|
+
sourceName: 'qp-skuCode-in',
|
|
342
|
+
specialBracket: true,
|
|
343
|
+
},
|
|
344
|
+
}
|
|
345
|
+
} },
|
|
328
346
|
{ name: 'qp-skuName-like', label: 'SKU名称' },
|
|
329
|
-
{ name: 'qp-itemCode-
|
|
347
|
+
{ name: 'qp-itemCode-in', label: 'SPU编码', field: {
|
|
348
|
+
type:'multipleQuerySearchSelect',
|
|
349
|
+
props: {
|
|
350
|
+
requestConfig: {
|
|
351
|
+
url: '/items/item/listNoPage/Simple',
|
|
352
|
+
filter: 'qp-name-like', // qp-itemCode-like
|
|
353
|
+
// filter: 'qp-skuCode,name-orGroup,like',
|
|
354
|
+
mappingTextField: 'name',
|
|
355
|
+
mappingValueField: 'itemCode',
|
|
356
|
+
sourceName: 'qp-itemCode-in',
|
|
357
|
+
specialBracket: true,
|
|
358
|
+
},
|
|
359
|
+
}
|
|
360
|
+
} },
|
|
330
361
|
{ name: 'qp-eancode-in', label: '商品条码', field: {
|
|
331
362
|
type: 'multipleQueryInput',
|
|
332
363
|
props: {
|
|
@@ -365,6 +396,9 @@ export function commonFun (type?: string, prefixUrl: any, parentProps?:any) {
|
|
|
365
396
|
dropdownStyle: { maxHeight: 400, maxWidth: 100, overflow: 'auto' }
|
|
366
397
|
},
|
|
367
398
|
} },
|
|
399
|
+
{ name: 'UNIQUE_SPEC', label: '属性', field: {
|
|
400
|
+
type: 'proppertySelector',
|
|
401
|
+
} },
|
|
368
402
|
]
|
|
369
403
|
Promise.all([
|
|
370
404
|
loadSelectSource(`${prefixUrl.formSelectFix}/brand/queryBrandList`, {
|
|
@@ -784,6 +818,7 @@ export function commonFun (type?: string, prefixUrl: any, parentProps?:any) {
|
|
|
784
818
|
...selectConfigProps,
|
|
785
819
|
}
|
|
786
820
|
requestConfig = {
|
|
821
|
+
init: true,
|
|
787
822
|
url: `${prefixUrl.selectPrefix}/skuPropertyValue/list`,
|
|
788
823
|
filter: 'qp-value-like', // 过滤参数
|
|
789
824
|
mappingTextField: 'value',
|
|
@@ -1694,6 +1729,7 @@ export function commonFun (type?: string, prefixUrl: any, parentProps?:any) {
|
|
|
1694
1729
|
...selectConfigProps,
|
|
1695
1730
|
}
|
|
1696
1731
|
requestConfig = {
|
|
1732
|
+
init: true,
|
|
1697
1733
|
url: `${prefixUrl.selectPrefix}/inventoryOrg`,
|
|
1698
1734
|
filter: 'qp-name,code-orGroup,like', // 过滤参数
|
|
1699
1735
|
mappingTextField: 'name',
|
|
@@ -1726,6 +1762,7 @@ export function commonFun (type?: string, prefixUrl: any, parentProps?:any) {
|
|
|
1726
1762
|
...selectConfigProps,
|
|
1727
1763
|
}
|
|
1728
1764
|
requestConfig = {
|
|
1765
|
+
init: true,
|
|
1729
1766
|
url: `${prefixUrl.selectPrefix}/company`,
|
|
1730
1767
|
filter: 'qp-name,code-orGroup,like', // 过滤参数
|
|
1731
1768
|
mappingTextField: 'name',
|
|
@@ -1758,6 +1795,7 @@ export function commonFun (type?: string, prefixUrl: any, parentProps?:any) {
|
|
|
1758
1795
|
...selectConfigProps,
|
|
1759
1796
|
}
|
|
1760
1797
|
requestConfig = {
|
|
1798
|
+
init: true,
|
|
1761
1799
|
url: `${prefixUrl.selectPrefix}/platCompany`,
|
|
1762
1800
|
filter: 'qp-name,socialCreditCode-orGroup,like', // 过滤参数
|
|
1763
1801
|
mappingTextField: 'name',
|
|
@@ -1790,6 +1828,7 @@ export function commonFun (type?: string, prefixUrl: any, parentProps?:any) {
|
|
|
1790
1828
|
...selectConfigProps,
|
|
1791
1829
|
}
|
|
1792
1830
|
requestConfig = {
|
|
1831
|
+
init: true,
|
|
1793
1832
|
url: `${prefixUrl.selectPrefix}/employee/v2`,
|
|
1794
1833
|
filter: 'qp-employeeNumber,name-orGroup,like', // 过滤参数
|
|
1795
1834
|
mappingTextField: 'name',
|
|
@@ -1887,6 +1926,7 @@ export function commonFun (type?: string, prefixUrl: any, parentProps?:any) {
|
|
|
1887
1926
|
...selectConfigProps,
|
|
1888
1927
|
}
|
|
1889
1928
|
requestConfig = {
|
|
1929
|
+
init: true,
|
|
1890
1930
|
url: `${prefixUrl.selectPrefix}/employee/pageList/v2`,
|
|
1891
1931
|
filter: 'qp-username,name-orGroup,like', // 过滤参数
|
|
1892
1932
|
mappingTextField: 'name',
|
|
@@ -2008,6 +2048,7 @@ export function commonFun (type?: string, prefixUrl: any, parentProps?:any) {
|
|
|
2008
2048
|
const isLogisCompanyCodeSingleSearch = requestConfigProp?.fixedparameter?.some((i: any) => i == 'qp-logisCompanyCode-eq');
|
|
2009
2049
|
const logisCompanyCodeSingleSearchName = isLogisCompanyCodeSingleSearch ? 'qp-logisCompanyCode-eq' : 'qp-logisCompanyCode-in';
|
|
2010
2050
|
requestConfig = {
|
|
2051
|
+
init: true,
|
|
2011
2052
|
url: `${prefixUrl.selectPrefix}/deliveryMode`,
|
|
2012
2053
|
filter: 'qp-name,code-orGroup,like', // 过滤参数
|
|
2013
2054
|
mappingTextField: 'name',
|
|
@@ -2135,6 +2176,7 @@ export function commonFun (type?: string, prefixUrl: any, parentProps?:any) {
|
|
|
2135
2176
|
...selectConfigProps,
|
|
2136
2177
|
}
|
|
2137
2178
|
requestConfig = {
|
|
2179
|
+
init: true,
|
|
2138
2180
|
url: `${prefixUrl.selectPrefix}/ruleTemplate`,
|
|
2139
2181
|
filter: 'qp-name,code-orGroup,like', // 过滤参数
|
|
2140
2182
|
mappingTextField: 'name',
|
|
@@ -2210,6 +2252,7 @@ export function commonFun (type?: string, prefixUrl: any, parentProps?:any) {
|
|
|
2210
2252
|
...selectConfigProps,
|
|
2211
2253
|
}
|
|
2212
2254
|
requestConfig = {
|
|
2255
|
+
init: true,
|
|
2213
2256
|
url: `${prefixUrl.selectPrefix}/role`,
|
|
2214
2257
|
filter: 'qp-name,code-orGroup,like', // 过滤参数
|
|
2215
2258
|
mappingTextField: 'name',
|
|
@@ -2308,6 +2351,7 @@ export function commonFun (type?: string, prefixUrl: any, parentProps?:any) {
|
|
|
2308
2351
|
...selectConfigProps,
|
|
2309
2352
|
}
|
|
2310
2353
|
requestConfig = {
|
|
2354
|
+
init: true,
|
|
2311
2355
|
url: `${prefixUrl.selectPrefix}/channelInfo`,
|
|
2312
2356
|
filter: 'qp-name,code-orGroup,like', // 过滤参数
|
|
2313
2357
|
mappingTextField: 'name',
|
|
@@ -2398,6 +2442,7 @@ export function commonFun (type?: string, prefixUrl: any, parentProps?:any) {
|
|
|
2398
2442
|
...selectConfigProps,
|
|
2399
2443
|
}
|
|
2400
2444
|
requestConfig = {
|
|
2445
|
+
init: true,
|
|
2401
2446
|
url: `${prefixUrl.selectPrefix}/orgViewNode/common/pageList`,
|
|
2402
2447
|
filter: 'qp-name-like', // 过滤参数
|
|
2403
2448
|
mappingTextField: 'name',
|
|
@@ -2531,6 +2576,7 @@ export function commonFun (type?: string, prefixUrl: any, parentProps?:any) {
|
|
|
2531
2576
|
...selectConfigProps,
|
|
2532
2577
|
}
|
|
2533
2578
|
requestConfig = {
|
|
2579
|
+
init: true,
|
|
2534
2580
|
url: `${prefixUrl.selectPrefix}/person`,
|
|
2535
2581
|
filter: 'qp-code,name-orGroup,like', // 过滤参数
|
|
2536
2582
|
mappingTextField: 'name',
|
|
@@ -2687,6 +2733,7 @@ export function commonFun (type?: string, prefixUrl: any, parentProps?:any) {
|
|
|
2687
2733
|
...selectConfigProps,
|
|
2688
2734
|
}
|
|
2689
2735
|
requestConfig = {
|
|
2736
|
+
init: true,
|
|
2690
2737
|
url: `${prefixUrl.selectPrefix}/priceType`,
|
|
2691
2738
|
filter: 'qp-code,name-orGroup,like', // 过滤参数
|
|
2692
2739
|
mappingTextField: 'name',
|
|
@@ -426,7 +426,7 @@ export default () => {
|
|
|
426
426
|
|
|
427
427
|
useEffect(() => {
|
|
428
428
|
if(tabKey === 'multiple') {
|
|
429
|
-
setValue([
|
|
429
|
+
setValue([])
|
|
430
430
|
}
|
|
431
431
|
},[tabKey])
|
|
432
432
|
|
|
@@ -448,7 +448,7 @@ export default () => {
|
|
|
448
448
|
// },
|
|
449
449
|
// prefixUrl: { selectPrefix: '/bop/api', formSelectFix: '/bop/api' },
|
|
450
450
|
selectProps,
|
|
451
|
-
|
|
451
|
+
labelInValue: true,
|
|
452
452
|
selectBusinessType: 'physicalWarehouse',
|
|
453
453
|
};
|
|
454
454
|
|
|
@@ -520,7 +520,7 @@ export default () => {
|
|
|
520
520
|
// needStatusSearch: true
|
|
521
521
|
// },
|
|
522
522
|
selectProps,
|
|
523
|
-
selectBusinessType: '
|
|
523
|
+
selectBusinessType: 'brand',
|
|
524
524
|
};
|
|
525
525
|
|
|
526
526
|
const onTabChange = (key) => {
|
|
@@ -1707,7 +1707,6 @@ export default () => {
|
|
|
1707
1707
|
}
|
|
1708
1708
|
const selectPropsMultiple = {
|
|
1709
1709
|
mode: 'multiple',
|
|
1710
|
-
maxTagCount: 1,
|
|
1711
1710
|
}
|
|
1712
1711
|
|
|
1713
1712
|
const [ tabKey, setTabKey ] = useState('single')
|
|
@@ -20,6 +20,7 @@ import request from '@/utils/request';
|
|
|
20
20
|
import './index.less';
|
|
21
21
|
import ENUM from '@/utils/enumConfig';
|
|
22
22
|
import { handleRequestUrl, judgeIsRequestSuccess } from '@/utils/requestUtils';
|
|
23
|
+
import { renderToString } from '../BsSulaQueryTable/utils';
|
|
23
24
|
|
|
24
25
|
interface SortTableProps {
|
|
25
26
|
[propName: string]: any;
|
|
@@ -644,7 +645,7 @@ class SortableTable extends React.Component<SortTableProps> {
|
|
|
644
645
|
}: any = this.state;
|
|
645
646
|
|
|
646
647
|
let seatchDataSource = dataSource.filter(
|
|
647
|
-
(item: any) => item?.title?.indexOf(searchDataSource || '') > -1,
|
|
648
|
+
(item: any) => renderToString(item?.title)?.indexOf(searchDataSource || '') > -1,
|
|
648
649
|
);
|
|
649
650
|
|
|
650
651
|
return (
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
import React, { Fragment } from "react";
|
|
2
|
+
import { Typography } from 'antd';
|
|
3
|
+
import './style.less';
|
|
4
|
+
|
|
5
|
+
//表格底部 金额总计
|
|
6
|
+
export default ({
|
|
7
|
+
summary
|
|
8
|
+
}: any) => {
|
|
9
|
+
const { Text } = Typography;
|
|
10
|
+
|
|
11
|
+
return (
|
|
12
|
+
<Fragment>
|
|
13
|
+
<div className="table_sum_wrapper">
|
|
14
|
+
<div className='table-bssula-summary'>
|
|
15
|
+
{summary.map((item: any) => (
|
|
16
|
+
<Text type='danger'>
|
|
17
|
+
{item.label}: <span className='table-bssula-summary-count'>{item.count || 0}</span>
|
|
18
|
+
</Text>
|
|
19
|
+
))}
|
|
20
|
+
</div>
|
|
21
|
+
</div>
|
|
22
|
+
<div className="sum_right_line"></div>
|
|
23
|
+
</Fragment>
|
|
24
|
+
)
|
|
25
|
+
}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
|
|
2
|
+
.table_sum_wrapper{
|
|
3
|
+
position: absolute;
|
|
4
|
+
overflow: hidden;
|
|
5
|
+
width: 80%;
|
|
6
|
+
height: 26px;
|
|
7
|
+
bottom: 0;
|
|
8
|
+
.table-bssula-summary{
|
|
9
|
+
height: 40px;
|
|
10
|
+
right: 0;
|
|
11
|
+
bottom: -20px;
|
|
12
|
+
white-space: nowrap;
|
|
13
|
+
overflow-x: auto;
|
|
14
|
+
}
|
|
15
|
+
}
|
|
16
|
+
.sum_right_line {
|
|
17
|
+
position: absolute;
|
|
18
|
+
right: 20%;
|
|
19
|
+
bottom: 0;
|
|
20
|
+
width: 16px;
|
|
21
|
+
height: 26px;
|
|
22
|
+
opacity: 0.32;
|
|
23
|
+
transform: scaleX(-1);
|
|
24
|
+
background-image: linear-gradient(270deg, #ffffff00 0%, #A4A4A4 100%);
|
|
25
|
+
}
|
|
@@ -6,6 +6,7 @@ import { getItemDefaultWidth, getShowColumns, handleTextOverflow } from './utils
|
|
|
6
6
|
import { noEmptyArray } from './utils';
|
|
7
7
|
import ENUM from '@/utils/enumConfig';
|
|
8
8
|
import { handleAntdColumnsSpecialParams } from '@/utils/utils';
|
|
9
|
+
import TableSumComponent from './components/TableSumComponent';
|
|
9
10
|
const { Text } = Typography;
|
|
10
11
|
export default class ColumnSettingTable extends React.Component {
|
|
11
12
|
state: any;
|
|
@@ -230,34 +231,8 @@ export default class ColumnSettingTable extends React.Component {
|
|
|
230
231
|
}
|
|
231
232
|
/>
|
|
232
233
|
{Array.isArray(summary) && (
|
|
233
|
-
|
|
234
|
-
|
|
235
|
-
className='table-bssula-summary'
|
|
236
|
-
style={{
|
|
237
|
-
right: '20%',
|
|
238
|
-
bottom: 0,
|
|
239
|
-
whiteSpace: 'nowrap',
|
|
240
|
-
overflowX: 'auto',
|
|
241
|
-
}}
|
|
242
|
-
>
|
|
243
|
-
{summary.map(item => (
|
|
244
|
-
<Text type='danger'>
|
|
245
|
-
{item.label}: <span className='table-bssula-summary-count'>{item.count || 0}</span>
|
|
246
|
-
</Text>
|
|
247
|
-
))}
|
|
248
|
-
</div>
|
|
249
|
-
<div style={{
|
|
250
|
-
width: '16px',
|
|
251
|
-
height: '26px',
|
|
252
|
-
opacity: 0.32,
|
|
253
|
-
transform: 'scaleX(-1)',
|
|
254
|
-
backgroundImage:'linear-gradient(270deg, #ffffff00 0%, #A4A4A4 100%)',
|
|
255
|
-
right: '20%',
|
|
256
|
-
position: 'absolute',
|
|
257
|
-
bottom: 0,
|
|
258
|
-
}}></div>
|
|
259
|
-
</>
|
|
260
|
-
)}
|
|
234
|
+
<TableSumComponent summary={summary} />
|
|
235
|
+
)}
|
|
261
236
|
</div >
|
|
262
237
|
)
|
|
263
238
|
}
|
|
@@ -10,6 +10,7 @@ import {
|
|
|
10
10
|
} from 'antd';
|
|
11
11
|
import ENUM from '@/utils/enumConfig';
|
|
12
12
|
import { handleBssulaColumnsSpecialParams, parseWidth, uuid } from '@/utils/utils';
|
|
13
|
+
import TableSumComponent from './components/TableSumComponent';
|
|
13
14
|
const { Text } = Typography;
|
|
14
15
|
|
|
15
16
|
export default class ColumnSettingSulaTable extends React.Component {
|
|
@@ -330,33 +331,7 @@ export default class ColumnSettingSulaTable extends React.Component {
|
|
|
330
331
|
}
|
|
331
332
|
/>
|
|
332
333
|
{Array.isArray(summary) && (
|
|
333
|
-
|
|
334
|
-
<div
|
|
335
|
-
className='table-bssula-summary'
|
|
336
|
-
style={{
|
|
337
|
-
right: '20%',
|
|
338
|
-
bottom: 0,
|
|
339
|
-
whiteSpace: 'nowrap',
|
|
340
|
-
overflowX: 'auto',
|
|
341
|
-
}}
|
|
342
|
-
>
|
|
343
|
-
{summary.map(item => (
|
|
344
|
-
<Text type='danger'>
|
|
345
|
-
{item.label}: <span className='table-bssula-summary-count'>{item.count || 0}</span>
|
|
346
|
-
</Text>
|
|
347
|
-
))}
|
|
348
|
-
</div>
|
|
349
|
-
<div style={{
|
|
350
|
-
width: '16px',
|
|
351
|
-
height: '26px',
|
|
352
|
-
opacity: 0.32,
|
|
353
|
-
transform: 'scaleX(-1)',
|
|
354
|
-
backgroundImage:'linear-gradient(270deg, #ffffff00 0%, #A4A4A4 100%)',
|
|
355
|
-
right: '20%',
|
|
356
|
-
position: 'absolute',
|
|
357
|
-
bottom: 0,
|
|
358
|
-
}}></div>
|
|
359
|
-
</>
|
|
334
|
+
<TableSumComponent summary={summary} />
|
|
360
335
|
)}
|
|
361
336
|
</div >
|
|
362
337
|
)
|
|
@@ -0,0 +1,117 @@
|
|
|
1
|
+
@border-color: #d9d9d9;
|
|
2
|
+
@primary-color: #005cff;
|
|
3
|
+
|
|
4
|
+
.query_select {
|
|
5
|
+
// 选择器 隐藏滚动条 横向滑动
|
|
6
|
+
.ant-select-selector{
|
|
7
|
+
height: 24px;
|
|
8
|
+
overflow: hidden;
|
|
9
|
+
.ant-select-selection-overflow{
|
|
10
|
+
height: 40px;
|
|
11
|
+
flex-wrap: nowrap;
|
|
12
|
+
overflow-x: auto;
|
|
13
|
+
}
|
|
14
|
+
.ant-select-selection-overflow-item {
|
|
15
|
+
align-self: auto;
|
|
16
|
+
}
|
|
17
|
+
}
|
|
18
|
+
&_show {
|
|
19
|
+
display: flex;
|
|
20
|
+
|
|
21
|
+
// 下拉框清除图标位置调整
|
|
22
|
+
.ant-select-clear {
|
|
23
|
+
right: 33px;
|
|
24
|
+
}
|
|
25
|
+
|
|
26
|
+
// 解决多选宽度不够 滑动会白一块的问题
|
|
27
|
+
.ant-select-multiple.ant-select-show-arrow .ant-select-selector, .ant-select-multiple.ant-select-allow-clear .ant-select-selector {
|
|
28
|
+
padding-right: 28px;
|
|
29
|
+
}
|
|
30
|
+
|
|
31
|
+
.ant-select-dropdown {
|
|
32
|
+
top: 24px !important;
|
|
33
|
+
left: -110px !important;
|
|
34
|
+
width: calc(100% + 110px) !important;
|
|
35
|
+
}
|
|
36
|
+
}
|
|
37
|
+
|
|
38
|
+
&_expand_button {
|
|
39
|
+
position: relative;
|
|
40
|
+
right: -11px;
|
|
41
|
+
width: 30px;
|
|
42
|
+
border-left: 1px solid @border-color;
|
|
43
|
+
height: 24px;
|
|
44
|
+
cursor: pointer;
|
|
45
|
+
font-size: 12px;
|
|
46
|
+
color: rgba(0, 0, 0, 0.85);
|
|
47
|
+
span {
|
|
48
|
+
position: absolute;
|
|
49
|
+
left: 50%;
|
|
50
|
+
top: 50%;
|
|
51
|
+
transform: translate(-50%, -50%);
|
|
52
|
+
}
|
|
53
|
+
}
|
|
54
|
+
&_expand_button:hover {
|
|
55
|
+
background-color: @primary-color;
|
|
56
|
+
color: #fff;
|
|
57
|
+
border-top-right-radius: 2px;
|
|
58
|
+
border-bottom-right-radius: 2px;
|
|
59
|
+
}
|
|
60
|
+
|
|
61
|
+
&_wrapper {
|
|
62
|
+
&_top {
|
|
63
|
+
color: #8E8E8E;
|
|
64
|
+
}
|
|
65
|
+
}
|
|
66
|
+
|
|
67
|
+
&_textArea {
|
|
68
|
+
margin-top: 10px;
|
|
69
|
+
.ant-input {
|
|
70
|
+
height: 300px;
|
|
71
|
+
background: #FAFAFA;
|
|
72
|
+
border: 0.8px solid #E0E0E0;
|
|
73
|
+
resize: none;
|
|
74
|
+
border-radius: 0;
|
|
75
|
+
}
|
|
76
|
+
}
|
|
77
|
+
}
|
|
78
|
+
|
|
79
|
+
.multiInput_modal{
|
|
80
|
+
.ant-modal-header{
|
|
81
|
+
height: 32px;
|
|
82
|
+
padding: 0 16px;
|
|
83
|
+
font-size: 12px;
|
|
84
|
+
}
|
|
85
|
+
.ant-modal-title{
|
|
86
|
+
line-height: 32px;
|
|
87
|
+
}
|
|
88
|
+
.ant-modal-close-x{
|
|
89
|
+
width: 32px;
|
|
90
|
+
height: 32px;
|
|
91
|
+
line-height: 32px;
|
|
92
|
+
}
|
|
93
|
+
.ant-modal-footer{
|
|
94
|
+
padding-right: 8px;
|
|
95
|
+
height: 44px;
|
|
96
|
+
.ant-btn + .ant-btn:not(.ant-dropdown-trigger) {
|
|
97
|
+
margin-left: 6px;
|
|
98
|
+
}
|
|
99
|
+
.ant-btn {
|
|
100
|
+
width: 56px;
|
|
101
|
+
height: 28px;
|
|
102
|
+
font-weight: 500;
|
|
103
|
+
}
|
|
104
|
+
}
|
|
105
|
+
}
|
|
106
|
+
|
|
107
|
+
.searchSelectMaxTagToolTip {
|
|
108
|
+
.ant-tooltip-inner {
|
|
109
|
+
max-height: 72px;
|
|
110
|
+
overflow-x: auto;
|
|
111
|
+
padding: 0px;
|
|
112
|
+
}
|
|
113
|
+
.ant-tag {
|
|
114
|
+
display: flex;
|
|
115
|
+
width: fit-content;
|
|
116
|
+
}
|
|
117
|
+
}
|