@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.
Files changed (33) hide show
  1. package/dist/components/Business/BsSulaQueryTable/utils.d.ts +1 -1
  2. package/dist/components/Business/PropertyModal/index.d.ts +23 -0
  3. package/dist/components/Business/PropertyModal/mockData.d.ts +10 -0
  4. package/dist/components/Business/PropertyModal/propertyGroup.d.ts +4 -0
  5. package/dist/components/Business/columnSettingTable/components/TableSumComponent.d.ts +4 -0
  6. package/dist/components/Functional/QueryMutipleSelect/index.d.ts +5 -0
  7. package/dist/components/Functional/SearchSelect/utils.d.ts +16 -1
  8. package/dist/index.d.ts +2 -0
  9. package/dist/index.esm.js +1510 -588
  10. package/dist/index.js +1507 -583
  11. package/package.json +3 -3
  12. package/src/components/Business/BsSulaQueryTable/utils.tsx +5 -4
  13. package/src/components/Business/PropertyModal/index.less +58 -0
  14. package/src/components/Business/PropertyModal/index.md +33 -0
  15. package/src/components/Business/PropertyModal/index.tsx +271 -0
  16. package/src/components/Business/PropertyModal/mockData.ts +160 -0
  17. package/src/components/Business/PropertyModal/propertyGroup.tsx +205 -0
  18. package/src/components/Business/SearchSelect/BusinessUtils.tsx +50 -3
  19. package/src/components/Business/SearchSelect/index.md +3 -4
  20. package/src/components/Business/columnSettingTable/columnSetting.tsx +2 -1
  21. package/src/components/Business/columnSettingTable/components/TableSumComponent.tsx +25 -0
  22. package/src/components/Business/columnSettingTable/components/style.less +25 -0
  23. package/src/components/Business/columnSettingTable/index.tsx +3 -28
  24. package/src/components/Business/columnSettingTable/sulaSettingTable.tsx +2 -27
  25. package/src/components/Functional/QueryMutipleSelect/index.less +117 -0
  26. package/src/components/Functional/QueryMutipleSelect/index.md +41 -0
  27. package/src/components/Functional/QueryMutipleSelect/index.tsx +245 -0
  28. package/src/components/Functional/SearchSelect/index.less +33 -1
  29. package/src/components/Functional/SearchSelect/index.tsx +76 -269
  30. package/src/components/Functional/SearchSelect/utils.tsx +401 -0
  31. package/src/components/Solution/RuleComponent/ruleFiled.js +93 -93
  32. package/src/index.ts +2 -0
  33. 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/v3`,
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编码',type:'multipleQueryInput' },
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-like', label: '外部SPU编码' },
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(['1540295745870573570', '1540173160826613762'])
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
- // labelInValue: true,
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: 'realWarehouse',
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
- <div
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
+ }