@bit-sun/business-component 2.2.13 → 2.2.15

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 (181) hide show
  1. package/.editorconfig +16 -16
  2. package/.fatherrc.ts +5 -5
  3. package/.gitlab-ci.yml +179 -179
  4. package/.prettierignore +7 -7
  5. package/.prettierrc +11 -11
  6. package/.umirc.ts +74 -74
  7. package/README.md +27 -27
  8. package/dist/components/Business/AddSelectBusiness/index.d.ts +1 -0
  9. package/dist/components/Business/BsLayouts/utils.d.ts +0 -4
  10. package/dist/index.esm.js +329 -44
  11. package/dist/index.js +329 -43
  12. package/dist/utils/LocalstorageUtils.d.ts +9 -1
  13. package/dist/utils/index.d.ts +1 -0
  14. package/docs/index.md +21 -21
  15. package/lib/assets/drag.svg +17 -17
  16. package/lib/assets/exportFail.svg +37 -37
  17. package/lib/assets/exportProcessing.svg +28 -28
  18. package/lib/assets/exportSuccess.svg +34 -34
  19. package/lib/assets/label_icon_bottom.svg +25 -25
  20. package/lib/assets/upExport.svg +22 -22
  21. package/package.json +77 -77
  22. package/src/assets/32.svg +27 -27
  23. package/src/assets/addIcon.svg +17 -17
  24. package/src/assets/allfunc.svg +27 -27
  25. package/src/assets/arrowRight.svg +24 -24
  26. package/src/assets/btn-delete.svg +29 -29
  27. package/src/assets/btn-edit.svg +19 -19
  28. package/src/assets/btn-more.svg +17 -17
  29. package/src/assets/btn-submit.svg +19 -19
  30. package/src/assets/caidan.svg +11 -11
  31. package/src/assets/close.svg +26 -26
  32. package/src/assets/drag.svg +17 -17
  33. package/src/assets/exportFail.svg +37 -37
  34. package/src/assets/exportProcessing.svg +28 -28
  35. package/src/assets/exportSuccess.svg +34 -34
  36. package/src/assets/fixed-left-active.svg +11 -11
  37. package/src/assets/fixed-left.svg +15 -15
  38. package/src/assets/fixed-right-active.svg +11 -11
  39. package/src/assets/fixed-right.svg +15 -15
  40. package/src/assets/guanbi.svg +15 -15
  41. package/src/assets/icon-quanping.svg +15 -15
  42. package/src/assets/icon-shezhi.svg +17 -17
  43. package/src/assets/label_icon_bottom.svg +25 -25
  44. package/src/assets/list-no-img.svg +21 -21
  45. package/src/assets/morentouxiang-32.svg +23 -23
  46. package/src/assets/scanning.svg +24 -24
  47. package/src/assets/upExport.svg +22 -22
  48. package/src/components/Business/AddSelectBusiness/index.md +129 -93
  49. package/src/components/Business/AddSelectBusiness/index.tsx +835 -601
  50. package/src/components/Business/BsLayouts/Components/AllFunc/drawContent.tsx +111 -111
  51. package/src/components/Business/BsLayouts/Components/AllFunc/index.less +153 -153
  52. package/src/components/Business/BsLayouts/Components/AllFunc/index.tsx +70 -70
  53. package/src/components/Business/BsLayouts/Components/CustomerMenu/MenuSetting/index.less +90 -90
  54. package/src/components/Business/BsLayouts/Components/CustomerMenu/MenuSetting/index.tsx +37 -37
  55. package/src/components/Business/BsLayouts/Components/CustomerMenu/MenuSetting/leftTree.tsx +242 -242
  56. package/src/components/Business/BsLayouts/Components/CustomerMenu/MenuSetting/rightTree.tsx +384 -384
  57. package/src/components/Business/BsLayouts/Components/CustomerMenu/globalMenu/DrawContent.tsx +285 -285
  58. package/src/components/Business/BsLayouts/Components/CustomerMenu/globalMenu/customMenuHeader.tsx +74 -74
  59. package/src/components/Business/BsLayouts/Components/CustomerMenu/globalMenu/drawContent.less +170 -170
  60. package/src/components/Business/BsLayouts/Components/CustomerMenu/index.less +64 -64
  61. package/src/components/Business/BsLayouts/Components/CustomerMenu/index.tsx +153 -153
  62. package/src/components/Business/BsLayouts/Components/GlobalHeader/index.less +72 -72
  63. package/src/components/Business/BsLayouts/Components/GlobalHeader/index.tsx +157 -157
  64. package/src/components/Business/BsLayouts/Components/RightContent/LoginModal.tsx +85 -85
  65. package/src/components/Business/BsLayouts/Components/RightContent/home.less +218 -218
  66. package/src/components/Business/BsLayouts/Components/RightContent/index.tsx +155 -156
  67. package/src/components/Business/BsLayouts/Components/SearchFunc/index.less +160 -160
  68. package/src/components/Business/BsLayouts/Components/SearchFunc/index.tsx +75 -75
  69. package/src/components/Business/BsLayouts/index.less +79 -79
  70. package/src/components/Business/BsLayouts/index.tsx +1479 -1479
  71. package/src/components/Business/BsLayouts/service.ts +10 -10
  72. package/src/components/Business/BsLayouts/utils.tsx +203 -226
  73. package/src/components/Business/BsSulaQueryTable/SearchItemSetting.tsx +538 -538
  74. package/src/components/Business/BsSulaQueryTable/index.less +219 -219
  75. package/src/components/Business/BsSulaQueryTable/index.tsx +527 -527
  76. package/src/components/Business/BsSulaQueryTable/setting.tsx +802 -802
  77. package/src/components/Business/BsSulaQueryTable/utils.less +65 -65
  78. package/src/components/Business/BsSulaQueryTable/utils.tsx +688 -688
  79. package/src/components/Business/CommodityEntry/index.md +70 -70
  80. package/src/components/Business/CommodityEntry/index.tsx +80 -80
  81. package/src/components/Business/CommonAlert/index.tsx +23 -23
  82. package/src/components/Business/CommonGuideWrapper/index.less +111 -111
  83. package/src/components/Business/CommonGuideWrapper/index.md +39 -39
  84. package/src/components/Business/CommonGuideWrapper/index.tsx +83 -83
  85. package/src/components/Business/DetailPageWrapper/index.less +79 -79
  86. package/src/components/Business/DetailPageWrapper/index.tsx +313 -313
  87. package/src/components/Business/DetailPageWrapper/utils.tsx +100 -100
  88. package/src/components/Business/HomePageWrapper/index.less +33 -33
  89. package/src/components/Business/HomePageWrapper/index.md +45 -45
  90. package/src/components/Business/HomePageWrapper/index.tsx +162 -162
  91. package/src/components/Business/JsonQueryTable/components/FieldsModifyModal.tsx +824 -824
  92. package/src/components/Business/JsonQueryTable/components/FieldsSettingsTable.tsx +201 -201
  93. package/src/components/Business/JsonQueryTable/components/Formula.tsx +205 -205
  94. package/src/components/Business/JsonQueryTable/components/MaintainOptions.tsx +127 -127
  95. package/src/components/Business/JsonQueryTable/configButton/index.js +20 -20
  96. package/src/components/Business/JsonQueryTable/configTree/component/compactArrayView.js +25 -25
  97. package/src/components/Business/JsonQueryTable/configTree/component/compactObjectView.js +30 -30
  98. package/src/components/Business/JsonQueryTable/configTree/index.js +82 -82
  99. package/src/components/Business/JsonQueryTable/configTree/index.less +44 -44
  100. package/src/components/Business/JsonQueryTable/configTree/parser/highlight.js +57 -57
  101. package/src/components/Business/JsonQueryTable/configTree/parser/index.js +124 -124
  102. package/src/components/Business/JsonQueryTable/configTree/render/iconRender.js +29 -29
  103. package/src/components/Business/JsonQueryTable/configTree/render/nameRender.js +22 -22
  104. package/src/components/Business/JsonQueryTable/configTree/treeNode.js +116 -116
  105. package/src/components/Business/JsonQueryTable/drawer/index.tsx +12 -12
  106. package/src/components/Business/JsonQueryTable/function.ts +62 -62
  107. package/src/components/Business/JsonQueryTable/index.less +16 -16
  108. package/src/components/Business/JsonQueryTable/index.md +328 -328
  109. package/src/components/Business/JsonQueryTable/index.tsx +320 -320
  110. package/src/components/Business/JsonQueryTable/jsonEditor/index.js +346 -346
  111. package/src/components/Business/JsonQueryTable/jsonEditor/index.less +22 -22
  112. package/src/components/Business/JsonQueryTable/jsonEditor/lint/basicType.js +147 -147
  113. package/src/components/Business/JsonQueryTable/jsonEditor/lint/index.js +389 -389
  114. package/src/components/Business/JsonQueryTable/jsonEditor/suggestions/actions.js +118 -118
  115. package/src/components/Business/JsonQueryTable/jsonEditor/suggestions/dependency.js +22 -22
  116. package/src/components/Business/JsonQueryTable/jsonEditor/suggestions/index.js +21 -21
  117. package/src/components/Business/JsonQueryTable/jsonEditor/suggestions/request.js +65 -65
  118. package/src/components/Business/JsonQueryTable/static.ts +356 -356
  119. package/src/components/Business/SearchSelect/BusinessUtils.ts +1723 -1723
  120. package/src/components/Business/SearchSelect/common.ts +53 -53
  121. package/src/components/Business/SearchSelect/index.md +1310 -1310
  122. package/src/components/Business/SearchSelect/index.tsx +51 -51
  123. package/src/components/Business/SearchSelect/utils.ts +100 -100
  124. package/src/components/Business/StateFlow/index.less +130 -130
  125. package/src/components/Business/StateFlow/index.md +60 -60
  126. package/src/components/Business/StateFlow/index.tsx +29 -29
  127. package/src/components/Business/TreeSearchSelect/index.md +126 -126
  128. package/src/components/Business/TreeSearchSelect/index.tsx +34 -34
  129. package/src/components/Business/TreeSearchSelect/utils.ts +60 -60
  130. package/src/components/Business/columnSettingTable/columnSetting.tsx +764 -764
  131. package/src/components/Business/columnSettingTable/index.less +247 -247
  132. package/src/components/Business/columnSettingTable/index.md +357 -357
  133. package/src/components/Business/columnSettingTable/index.tsx +232 -232
  134. package/src/components/Business/columnSettingTable/sulaSettingTable.tsx +240 -240
  135. package/src/components/Business/columnSettingTable/utils.tsx +68 -68
  136. package/src/components/Business/moreTreeTable/index.less +99 -99
  137. package/src/components/Business/moreTreeTable/index.md +508 -508
  138. package/src/components/Business/moreTreeTable/index.tsx +315 -315
  139. package/src/components/Business/moreTreeTable/utils.ts +126 -126
  140. package/src/components/Functional/AddSelect/index.less +367 -367
  141. package/src/components/Functional/AddSelect/index.md +155 -155
  142. package/src/components/Functional/AddSelect/index.tsx +1199 -1165
  143. package/src/components/Functional/BillEntry/index.less +371 -371
  144. package/src/components/Functional/BillEntry/index.md +39 -39
  145. package/src/components/Functional/BillEntry/index.tsx +766 -766
  146. package/src/components/Functional/DataImport/index.less +63 -63
  147. package/src/components/Functional/DataImport/index.md +44 -44
  148. package/src/components/Functional/DataImport/index.tsx +695 -695
  149. package/src/components/Functional/DataValidation/index.less +63 -63
  150. package/src/components/Functional/DataValidation/index.md +39 -39
  151. package/src/components/Functional/DataValidation/index.tsx +687 -687
  152. package/src/components/Functional/ExportFunctions/ExportIcon/index.md +37 -37
  153. package/src/components/Functional/ExportFunctions/ExportIcon/index.tsx +59 -59
  154. package/src/components/Functional/QueryMutipleInput/index.less +37 -37
  155. package/src/components/Functional/QueryMutipleInput/index.md +33 -33
  156. package/src/components/Functional/QueryMutipleInput/index.tsx +128 -128
  157. package/src/components/Functional/SearchSelect/index.less +115 -115
  158. package/src/components/Functional/SearchSelect/index.md +141 -141
  159. package/src/components/Functional/SearchSelect/index.tsx +813 -813
  160. package/src/components/Functional/SearchSelect/utils.ts +3 -3
  161. package/src/components/Functional/TreeSearchSelect/index.md +47 -47
  162. package/src/components/Functional/TreeSearchSelect/index.tsx +160 -160
  163. package/src/index.ts +34 -34
  164. package/src/plugin/TableColumnSetting/index.less +247 -247
  165. package/src/plugin/TableColumnSetting/index.md +50 -50
  166. package/src/plugin/TableColumnSetting/index.tsx +724 -724
  167. package/src/plugin/TableColumnSetting/utils.ts +19 -19
  168. package/src/styles/bsDefault.less +1912 -1912
  169. package/src/utils/CheckOneUser/index.md +39 -39
  170. package/src/utils/CheckOneUser/index.ts +51 -51
  171. package/src/utils/LocalstorageUtils.ts +90 -58
  172. package/src/utils/TableUtils.tsx +18 -18
  173. package/src/utils/checkUtils.ts +39 -39
  174. package/src/utils/enumConfig.ts +11 -11
  175. package/src/utils/getFormMode.js +12 -12
  176. package/src/utils/index.ts +3 -2
  177. package/src/utils/requestUtils.ts +34 -36
  178. package/src/utils/serialize.js +7 -7
  179. package/src/utils/utils.ts +183 -183
  180. package/tsconfig.json +29 -29
  181. package/typings.d.ts +4 -4
@@ -1,601 +1,835 @@
1
- /*
2
- * @Description:
3
- * @Author: rodchen
4
- * @Date: 2022-05-07 15:17:28
5
- * @LastEditTime: 2022-05-08 21:01:21
6
- * @LastEditors: rodchen
7
- */
8
- import React, { useState, useEffect } from 'react';
9
- import { Tooltip, Select, message } from 'antd';
10
- import axios from 'axios';
11
- import { AddSelect } from '../../../index';
12
- import { tableColumnsImage } from '@/components/Business/BsSulaQueryTable/utils';
13
- import { getSkuImg } from '@/utils/TableUtils';
14
-
15
- function handleSelectColumn(c: any, parentProps: any) {
16
- let result = c;
17
- const exceptColumns = parentProps?.exceptColumns || [];
18
- const coverColumns = parentProps?.coverColumns || [];
19
- const additionColumns = parentProps?.additionColumns || [];
20
- // 过滤不需要展示内容
21
- if(exceptColumns?.length) {
22
- result = result.filter((i: any) => !exceptColumns.includes(i.dataIndex))
23
- }
24
- // 追加
25
- if(additionColumns?.length) {
26
- additionColumns.forEach((i: any) => {
27
- result.splice(i.position,0,i.column)
28
- })
29
- }
30
- // 覆盖内容
31
- if(coverColumns?.length) {
32
- result = coverColumns;
33
- }
34
- return result
35
- }
36
-
37
- export const AddSkuSelect = (parProps: any) => {
38
- const selectProps = {
39
- mode: 'multiple',
40
- }
41
- const [value, setValue] = useState(selectProps?.mode ? [] : null);
42
- const initialSelectColumn = [
43
- {
44
- title: 'SKU编码',
45
- width: 150,
46
- dataIndex: 'skuCode',
47
- },
48
- {
49
- title: 'SKU名称',
50
- width: 200,
51
- ellipsis: {
52
- showTitle: false,
53
- },
54
- render: (text: any) => (
55
- <Tooltip placement="topLeft" title={text}>
56
- {text}
57
- </Tooltip>
58
- ),
59
- dataIndex: 'name',
60
- },
61
- {
62
- title: '图片',
63
- dataIndex: 'itemUrl',
64
- width: 200,
65
- ellipsis: {
66
- showTitle: false,
67
- },
68
- render: (text: any,record: any) => (
69
- <Tooltip placement="topLeft" title={text}>
70
- {tableColumnsImage(getSkuImg(record),{ width: 28, height: 28 })}
71
- </Tooltip>
72
- ),
73
- },
74
- {
75
- title: '数量',
76
- width: 100,
77
- isInputItem: true,
78
- dataIndex: 'count',
79
- },
80
- {
81
- title: '单位',
82
- dataIndex: 'selectUnitCode',
83
- width: 80,
84
- ellipsis: {
85
- showTitle: false,
86
- },
87
- render: (text: any, record: any) => {
88
- if (record?.packingUnitList?.length) {
89
- const basePackUnit = record?.packingUnitList[0]
90
- record.selectUnitCode = basePackUnit.unitCode
91
- return basePackUnit.name || basePackUnit.unitCode
92
- }
93
-
94
-
95
- return <></>
96
- },
97
- },
98
- {
99
- title: '所属SPU编码',
100
- width: 150,
101
- ellipsis: {
102
- showTitle: false,
103
- },
104
- dataIndex: 'itemCode',
105
- render: (text: any) => (
106
- <Tooltip placement="topLeft" title={text}>
107
- {text}
108
- </Tooltip>
109
- ),
110
- },
111
- {
112
- title: '规格',
113
- width: 200,
114
- ellipsis: {
115
- showTitle: false,
116
- },
117
- render: (text: any) => (
118
- <Tooltip placement="topLeft" title={text}>
119
- {text}
120
- </Tooltip>
121
- ),
122
- dataIndex: 'propertyNameAndValue',
123
- }
124
- ]
125
- const mTpSelectColumn = handleSelectColumn(initialSelectColumn, parProps)
126
- const props = {
127
- buttonText: parProps.buttonText || '新增',
128
- buttonProps: parProps.buttonProps || {},
129
- tableCodeList: parProps.tableCodeList || [],
130
- value,
131
- // labelInValue: true, // 非必填 默认为false
132
- requestConfig: {
133
- url: `/items/sku/pager/v2`,
134
- filter: 'qp-name-like', // 过滤参数 支持'qp-name-like'和['qp-name-like', 'qp-code-like']两种结构
135
- otherParams: {
136
- 'qp-combination-eq': false,
137
- 'qp-approveStatus-eq': 1,
138
- 'qp-status-eq': 1,
139
- }, // 默认参数
140
- mappingTextField: 'name',
141
- mappingValueField: 'skuCode',
142
- ...parProps.requestConfig
143
- },
144
- selectProps,
145
- onChange: (value: any) => {
146
- console.log(value)
147
- setValue(value)
148
- },
149
- beforeShowModal: parProps?.beforeShowModal,
150
- onSaveCallback: parProps.onSaveCallback,
151
- businessType: 'sku'
152
- // onSaveCallback: (rows) => {
153
- // console.log('save call', rows);
154
- // // return Promise.resolve(true);
155
- // // return Promise.reject('FAILE')
156
- // }
157
- };
158
- const modalTableProps = {
159
- modalTableTitle: '选择商品',
160
- tableSearchForm: [
161
- {
162
- name: 'qp-skuCode-like', label: 'SKU编码'
163
- },
164
- { name: 'qp-skuName-like', label: 'SKU名称' },
165
- { name: 'qp-brandId-in', type: 'select', label: '品牌', field: {
166
- type: 'select',
167
- props: {
168
- mode: 'multiple',
169
- notFoundContent: '暂无数据',
170
- allowClear: true,
171
- showSearch: true,
172
- showArrow: true,
173
- maxTagCount: 1,
174
- optionFilterProp: 'children',
175
- filterOption: (input: string, option: { props: { children: string } }) =>
176
- option.props.children.toLowerCase().indexOf(input.toLowerCase()) >= 0,
177
- },
178
- } },
179
- { name: 'qp-categoryId-in', type: 'treeSelect', label: '类目', field: {
180
- type: 'treeSelect',
181
- props: {
182
- treeData: [],
183
- treeCheckable: true,
184
- showSearch: true,
185
- allowClear: true,
186
- showArrow: true,
187
- treeNodeFilterProp: 'title',
188
- treeDefaultExpandAll: true,
189
- maxTagCount: 1,
190
- placeholder: '请选择',
191
- style: {
192
- width: '100%',
193
- },
194
- dropdownStyle: { maxHeight: 400, maxWidth: 100, overflow: 'auto' }
195
- },
196
- } }
197
- ],
198
- tableColumns: [
199
- {
200
- title: 'SKU编码',
201
- width: 150,
202
- dataIndex: 'skuCode',
203
- },
204
- {
205
- title: 'SKU名称',
206
- width: 200,
207
- ellipsis: {
208
- showTitle: false,
209
- },
210
- render: (text: any) => (
211
- <Tooltip placement="topLeft" title={text}>
212
- {text}
213
- </Tooltip>
214
- ),
215
- dataIndex: 'name',
216
- },
217
- {
218
- title: '图片',
219
- dataIndex: 'itemUrl',
220
- width: 200,
221
- ellipsis: {
222
- showTitle: false,
223
- },
224
- render: (text: any,record: any) => (
225
- <Tooltip placement="topLeft" title={text}>
226
- {tableColumnsImage(getSkuImg(record),{ width: 20, height: 20 })}
227
- </Tooltip>
228
- ),
229
- },
230
- {
231
- title: '国际条码',
232
- width: 100,
233
- ellipsis: {
234
- showTitle: false,
235
- },
236
- dataIndex: 'barCode',
237
- render: (text: any) => (
238
- <Tooltip placement="topLeft" title={text}>
239
- {text}
240
- </Tooltip>
241
- ),
242
- },
243
- {
244
- title: '所属SPU名称',
245
- width: 100,
246
- ellipsis: {
247
- showTitle: false,
248
- },
249
- dataIndex: 'itemName',
250
- render: (text: any) => (
251
- <Tooltip placement="topLeft" title={text}>
252
- {text}
253
- </Tooltip>
254
- ),
255
- },
256
- {
257
- title: '所属SPU编码',
258
- width: 100,
259
- ellipsis: {
260
- showTitle: false,
261
- },
262
- dataIndex: 'itemCode',
263
- render: (text: any) => (
264
- <Tooltip placement="topLeft" title={text}>
265
- {text}
266
- </Tooltip>
267
- ),
268
- },
269
- {
270
- title: '外部编码',
271
- width: 100,
272
- ellipsis: {
273
- showTitle: false,
274
- },
275
- render: (text: any) => (
276
- <Tooltip placement="topLeft" title={text}>
277
- {text}
278
- </Tooltip>
279
- ),
280
- dataIndex: 'externalCode',
281
- },
282
- {
283
- title: '规格',
284
- width: 100,
285
- ellipsis: {
286
- showTitle: false,
287
- },
288
- render: (text: any) => (
289
- <Tooltip placement="topLeft" title={text}>
290
- {text}
291
- </Tooltip>
292
- ),
293
- dataIndex: 'propertyNameAndValue',
294
- },
295
- {
296
- title: '类目',
297
- width: 100,
298
- ellipsis: {
299
- showTitle: false,
300
- },
301
- render: (text: any) => (
302
- <Tooltip placement="topLeft" title={text}>
303
- {text}
304
- </Tooltip>
305
- ),
306
- dataIndex: 'categoryName',
307
- },
308
- {
309
- title: '品类',
310
- width: 100,
311
- ellipsis: {
312
- showTitle: false,
313
- },
314
- render: (text: any) => (
315
- <Tooltip placement="topLeft" title={text}>
316
- {text}
317
- </Tooltip>
318
- ),
319
- dataIndex: 'className',
320
- },
321
- {
322
- title: '品牌',
323
- width: 100,
324
- ellipsis: {
325
- showTitle: false,
326
- },
327
- render: (text: any) => (
328
- <Tooltip placement="topLeft" title={text}>
329
- {text}
330
- </Tooltip>
331
- ),
332
- dataIndex: 'brandName',
333
- },
334
- ],
335
- selectColumn: mTpSelectColumn
336
- }
337
-
338
- return (
339
- <div>
340
- <AddSelect
341
- {...props}
342
- modalTableProps={modalTableProps}
343
- />
344
- </div>
345
- );
346
- };
347
-
348
- export const AddSkcSelect = (parProps: any) => {
349
- const selectProps = {
350
- mode: 'multiple',
351
- }
352
- const [value, setValue] = useState(selectProps?.mode ? [] : null);
353
- const [propertyList, setPropertyList] = useState([]);
354
-
355
- useEffect(() => {
356
- axios.get(`/items/itemPropertyValueGroup/listNoPage`).then((result: any) => {
357
- result = result.data;
358
- if ((result?.status && result.status !== '0') || (result?.code && result.code !== '000000')) {
359
- message.error(result.msg);
360
- return;
361
- }
362
- const data = result.data || [];
363
- setPropertyList(data)
364
- }).catch((err) => {});
365
- },[])
366
-
367
- const initialSelectColumn = [
368
- {
369
- title: 'SKC编码',
370
- width: 150,
371
- dataIndex: 'code',
372
- },
373
- {
374
- title: 'SKC名称',
375
- width: 200,
376
- ellipsis: {
377
- showTitle: false,
378
- },
379
- render: (text: any) => (
380
- <Tooltip placement="topLeft" title={text}>
381
- {text}
382
- </Tooltip>
383
- ),
384
- dataIndex: 'name',
385
- },
386
- {
387
- title: '颜色',
388
- width: 200,
389
- ellipsis: {
390
- showTitle: false,
391
- },
392
- render: (text: any) => (
393
- <Tooltip placement="topLeft" title={text}>
394
- {text}
395
- </Tooltip>
396
- ),
397
- dataIndex: 'colorName',
398
- },
399
- {
400
- title: '配码',
401
- dataIndex: 'selectPropertyGroupCode',
402
- width: 160,
403
- isSelectItem: true,
404
- dataSource: propertyList,
405
- },
406
- {
407
- title: '数量',
408
- width: 100,
409
- isInputItem: true,
410
- dataIndex: 'count',
411
- },
412
- ]
413
- const mTpSelectColumn = handleSelectColumn(initialSelectColumn, parProps)
414
- const props = {
415
- buttonText: parProps.buttonText || '新增',
416
- buttonProps: parProps.buttonProps || {},
417
- tableCodeList: parProps.tableCodeList || ['skcSelect-tableOptionsToChoosePartCode','skcSelect-tableSelectedItemPartCode'],
418
- value,
419
- // labelInValue: true, // 非必填 默认为false
420
- requestConfig: {
421
- url: `/items/skc/skcSelect`,
422
- filter: 'qp-name-like', // 过滤参数 支持'qp-name-like'和['qp-name-like', 'qp-code-like']两种结构
423
- otherParams: {}, // 默认参数
424
- mappingTextField: 'name',
425
- mappingValueField: 'code',
426
- ...parProps.requestConfig
427
- },
428
- selectProps,
429
- onChange: (value: any) => {
430
- console.log(value)
431
- setValue(value)
432
- },
433
- beforeShowModal: parProps?.beforeShowModal,
434
- onSaveCallback: parProps.onSaveCallback,
435
- businessType: 'skc',
436
- isAllowRepeatedSelect: true
437
- };
438
- const modalTableProps = {
439
- modalTableTitle: '选择商品',
440
- tableSearchForm: [
441
- { name: 'qp-code-like', label: 'SKC编码' },
442
- { name: 'qp-skcName-like', label: 'SKC名称' },
443
- { name: 'qp-itemName-like', label: '商品名称' },
444
- { name: 'qp-colorName-in', type: 'select', label: '颜色', field: {
445
- type: 'select',
446
- props: {
447
- mode: 'multiple',
448
- notFoundContent: '暂无数据',
449
- allowClear: true,
450
- showSearch: true,
451
- showArrow: true,
452
- maxTagCount: 1,
453
- optionFilterProp: 'children',
454
- filterOption: (input: string, option: { props: { children: string } }) =>
455
- option.props.children.toLowerCase().indexOf(input.toLowerCase()) >= 0,
456
- },
457
- } },
458
- { name: 'qp-categoryId-in', type: 'treeSelect', label: '类目', field: {
459
- type: 'treeSelect',
460
- props: {
461
- treeData: [],
462
- treeCheckable: true,
463
- showSearch: true,
464
- allowClear: true,
465
- showArrow: true,
466
- treeNodeFilterProp: 'title',
467
- treeDefaultExpandAll: true,
468
- maxTagCount: 1,
469
- placeholder: '请选择',
470
- style: {
471
- width: '100%',
472
- },
473
- dropdownStyle: { maxHeight: 400, maxWidth: 100, overflow: 'auto' }
474
- },
475
- } },
476
- { name: 'qp-classId-in', type: 'select', label: '品类', field: {
477
- type: 'select',
478
- props: {
479
- mode: 'multiple',
480
- notFoundContent: '暂无数据',
481
- allowClear: true,
482
- showSearch: true,
483
- showArrow: true,
484
- maxTagCount: 1,
485
- optionFilterProp: 'children',
486
- filterOption: (input: string, option: { props: { children: string } }) =>
487
- option.props.children.toLowerCase().indexOf(input.toLowerCase()) >= 0,
488
- },
489
- } },
490
- { name: 'qp-brandId-in', type: 'select', label: '品牌', field: {
491
- type: 'select',
492
- props: {
493
- mode: 'multiple',
494
- notFoundContent: '暂无数据',
495
- allowClear: true,
496
- showSearch: true,
497
- showArrow: true,
498
- maxTagCount: 1,
499
- optionFilterProp: 'children',
500
- filterOption: (input: string, option: { props: { children: string } }) =>
501
- option.props.children.toLowerCase().indexOf(input.toLowerCase()) >= 0,
502
- },
503
- } },
504
- ],
505
- tableColumns: [
506
- {
507
- title: 'SKC编码',
508
- width: 150,
509
- dataIndex: 'code',
510
- },
511
- {
512
- title: 'SKC名称',
513
- width: 200,
514
- ellipsis: {
515
- showTitle: false,
516
- },
517
- render: (text: any) => (
518
- <Tooltip placement="topLeft" title={text}>
519
- {text}
520
- </Tooltip>
521
- ),
522
- dataIndex: 'name',
523
- },
524
- {
525
- title: '商品名称',
526
- width: 100,
527
- ellipsis: {
528
- showTitle: false,
529
- },
530
- dataIndex: 'itemName',
531
- render: (text: any) => (
532
- <Tooltip placement="topLeft" title={text}>
533
- {text}
534
- </Tooltip>
535
- ),
536
- },
537
- {
538
- title: '颜色',
539
- width: 100,
540
- ellipsis: {
541
- showTitle: false,
542
- },
543
- render: (text: any) => (
544
- <Tooltip placement="topLeft" title={text}>
545
- {text}
546
- </Tooltip>
547
- ),
548
- dataIndex: 'colorName',
549
- },
550
- {
551
- title: '类目',
552
- width: 100,
553
- ellipsis: {
554
- showTitle: false,
555
- },
556
- render: (text: any) => (
557
- <Tooltip placement="topLeft" title={text}>
558
- {text}
559
- </Tooltip>
560
- ),
561
- dataIndex: 'categoryName',
562
- },
563
- {
564
- title: '品类',
565
- width: 100,
566
- ellipsis: {
567
- showTitle: false,
568
- },
569
- render: (text: any) => (
570
- <Tooltip placement="topLeft" title={text}>
571
- {text}
572
- </Tooltip>
573
- ),
574
- dataIndex: 'className',
575
- },
576
- {
577
- title: '品牌',
578
- width: 100,
579
- ellipsis: {
580
- showTitle: false,
581
- },
582
- render: (text: any) => (
583
- <Tooltip placement="topLeft" title={text}>
584
- {text}
585
- </Tooltip>
586
- ),
587
- dataIndex: 'brandName',
588
- },
589
- ],
590
- selectColumn: mTpSelectColumn,
591
- }
592
-
593
- return (
594
- <div>
595
- <AddSelect
596
- {...props}
597
- modalTableProps={modalTableProps}
598
- />
599
- </div>
600
- );
601
- };
1
+ /*
2
+ * @Description:
3
+ * @Author: rodchen
4
+ * @Date: 2022-05-07 15:17:28
5
+ * @LastEditTime: 2022-05-08 21:01:21
6
+ * @LastEditors: rodchen
7
+ */
8
+ import React, { useState, useEffect } from 'react';
9
+ import { Tooltip, Select, message } from 'antd';
10
+ import axios from 'axios';
11
+ import { AddSelect } from '../../../index';
12
+ import { tableColumnsImage } from '@/components/Business/BsSulaQueryTable/utils';
13
+ import { getSkuImg } from '@/utils/TableUtils';
14
+
15
+ function handleSelectColumn(c: any, parentProps: any) {
16
+ let result = c;
17
+ const exceptColumns = parentProps?.exceptColumns || [];
18
+ const coverColumns = parentProps?.coverColumns || [];
19
+ const additionColumns = parentProps?.additionColumns || [];
20
+ // 过滤不需要展示内容
21
+ if(exceptColumns?.length) {
22
+ result = result.filter((i: any) => !exceptColumns.includes(i.dataIndex))
23
+ }
24
+ // 追加
25
+ if(additionColumns?.length) {
26
+ additionColumns.forEach((i: any) => {
27
+ result.splice(i.position,0,i.column)
28
+ })
29
+ }
30
+ // 覆盖内容
31
+ if(coverColumns?.length) {
32
+ result = coverColumns;
33
+ }
34
+ return result
35
+ }
36
+
37
+ export const AddSkuSelect = (parProps: any) => {
38
+ const selectProps = {
39
+ mode: 'multiple',
40
+ }
41
+ const [value, setValue] = useState(selectProps?.mode ? [] : null);
42
+ //注⚠️:自定义过表头的请记得传tableCodeList参数
43
+ const initialSelectColumn = [
44
+ {
45
+ title: 'SKU编码',
46
+ width: 150,
47
+ dataIndex: 'skuCode',
48
+ },
49
+ {
50
+ title: 'SKU名称',
51
+ width: 200,
52
+ ellipsis: {
53
+ showTitle: false,
54
+ },
55
+ render: (text: any) => (
56
+ <Tooltip placement="topLeft" title={text}>
57
+ {text}
58
+ </Tooltip>
59
+ ),
60
+ dataIndex: 'name',
61
+ },
62
+ {
63
+ title: '图片',
64
+ dataIndex: 'itemUrl',
65
+ width: 200,
66
+ ellipsis: {
67
+ showTitle: false,
68
+ },
69
+ render: (text: any,record: any) => (
70
+ <Tooltip placement="topLeft" title={text}>
71
+ {tableColumnsImage(getSkuImg(record),{ width: 28, height: 28 })}
72
+ </Tooltip>
73
+ ),
74
+ },
75
+ {
76
+ title: '数量',
77
+ width: 100,
78
+ isInputItem: true,
79
+ dataIndex: 'count',
80
+ },
81
+ {
82
+ title: '单位',
83
+ dataIndex: 'selectUnitCode',
84
+ width: 80,
85
+ ellipsis: {
86
+ showTitle: false,
87
+ },
88
+ render: (text: any, record: any) => {
89
+ if (record?.packingUnitList?.length) {
90
+ const basePackUnit = record?.packingUnitList[0]
91
+ record.selectUnitCode = basePackUnit.unitCode
92
+ return basePackUnit.name || basePackUnit.unitCode
93
+ }
94
+
95
+
96
+ return <></>
97
+ },
98
+ },
99
+ {
100
+ title: '所属SPU编码',
101
+ width: 150,
102
+ ellipsis: {
103
+ showTitle: false,
104
+ },
105
+ dataIndex: 'itemCode',
106
+ render: (text: any) => (
107
+ <Tooltip placement="topLeft" title={text}>
108
+ {text}
109
+ </Tooltip>
110
+ ),
111
+ },
112
+ {
113
+ title: '规格',
114
+ width: 200,
115
+ ellipsis: {
116
+ showTitle: false,
117
+ },
118
+ render: (text: any) => (
119
+ <Tooltip placement="topLeft" title={text}>
120
+ {text}
121
+ </Tooltip>
122
+ ),
123
+ dataIndex: 'propertyNameAndValue',
124
+ }
125
+ ]
126
+ const mTpSelectColumn = handleSelectColumn(initialSelectColumn, parProps)
127
+ const props = {
128
+ buttonText: parProps.buttonText || '新增',
129
+ buttonProps: parProps.buttonProps || {},
130
+ tableCodeList: parProps.tableCodeList || [],
131
+ value,
132
+ // labelInValue: true, // 非必填 默认为false
133
+ requestConfig: {
134
+ url: `/items/sku/pager/v2`,
135
+ filter: 'qp-name-like', // 过滤参数 支持'qp-name-like'和['qp-name-like', 'qp-code-like']两种结构
136
+ otherParams: {
137
+ 'qp-combination-eq': false,
138
+ 'qp-approveStatus-eq': 1,
139
+ 'qp-status-eq': 1,
140
+ }, // 默认参数
141
+ mappingTextField: 'name',
142
+ mappingValueField: 'skuCode',
143
+ ...parProps.requestConfig
144
+ },
145
+ selectProps,
146
+ onChange: (value: any) => {
147
+ console.log(value)
148
+ setValue(value)
149
+ },
150
+ beforeShowModal: parProps?.beforeShowModal,
151
+ onSaveCallback: parProps.onSaveCallback,
152
+ businessType: 'sku'
153
+ // onSaveCallback: (rows) => {
154
+ // console.log('save call', rows);
155
+ // // return Promise.resolve(true);
156
+ // // return Promise.reject('FAILE')
157
+ // }
158
+ };
159
+ const modalTableProps = {
160
+ modalTableTitle: '选择商品',
161
+ tableSearchForm: [
162
+ {
163
+ name: 'qp-skuCode-like', label: 'SKU编码'
164
+ },
165
+ { name: 'qp-skuName-like', label: 'SKU名称' },
166
+ { name: 'qp-brandId-in', type: 'select', label: '品牌', field: {
167
+ type: 'select',
168
+ props: {
169
+ mode: 'multiple',
170
+ notFoundContent: '暂无数据',
171
+ allowClear: true,
172
+ showSearch: true,
173
+ showArrow: true,
174
+ maxTagCount: 1,
175
+ optionFilterProp: 'children',
176
+ filterOption: (input: string, option: { props: { children: string } }) =>
177
+ option.props.children.toLowerCase().indexOf(input.toLowerCase()) >= 0,
178
+ },
179
+ } },
180
+ { name: 'qp-categoryId-in', type: 'treeSelect', label: '类目', field: {
181
+ type: 'treeSelect',
182
+ props: {
183
+ treeData: [],
184
+ treeCheckable: true,
185
+ showSearch: true,
186
+ allowClear: true,
187
+ showArrow: true,
188
+ treeNodeFilterProp: 'title',
189
+ treeDefaultExpandAll: true,
190
+ maxTagCount: 1,
191
+ placeholder: '请选择',
192
+ style: {
193
+ width: '100%',
194
+ },
195
+ dropdownStyle: { maxHeight: 400, maxWidth: 100, overflow: 'auto' }
196
+ },
197
+ } }
198
+ ],
199
+ tableColumns: [
200
+ {
201
+ title: 'SKU编码',
202
+ width: 150,
203
+ dataIndex: 'skuCode',
204
+ },
205
+ {
206
+ title: 'SKU名称',
207
+ width: 200,
208
+ ellipsis: {
209
+ showTitle: false,
210
+ },
211
+ render: (text: any) => (
212
+ <Tooltip placement="topLeft" title={text}>
213
+ {text}
214
+ </Tooltip>
215
+ ),
216
+ dataIndex: 'name',
217
+ },
218
+ {
219
+ title: '图片',
220
+ dataIndex: 'itemUrl',
221
+ width: 200,
222
+ ellipsis: {
223
+ showTitle: false,
224
+ },
225
+ render: (text: any,record: any) => (
226
+ <Tooltip placement="topLeft" title={text}>
227
+ {tableColumnsImage(getSkuImg(record),{ width: 20, height: 20 })}
228
+ </Tooltip>
229
+ ),
230
+ },
231
+ {
232
+ title: '国际条码',
233
+ width: 100,
234
+ ellipsis: {
235
+ showTitle: false,
236
+ },
237
+ dataIndex: 'barCode',
238
+ render: (text: any) => (
239
+ <Tooltip placement="topLeft" title={text}>
240
+ {text}
241
+ </Tooltip>
242
+ ),
243
+ },
244
+ {
245
+ title: '所属SPU名称',
246
+ width: 100,
247
+ ellipsis: {
248
+ showTitle: false,
249
+ },
250
+ dataIndex: 'itemName',
251
+ render: (text: any) => (
252
+ <Tooltip placement="topLeft" title={text}>
253
+ {text}
254
+ </Tooltip>
255
+ ),
256
+ },
257
+ {
258
+ title: '所属SPU编码',
259
+ width: 100,
260
+ ellipsis: {
261
+ showTitle: false,
262
+ },
263
+ dataIndex: 'itemCode',
264
+ render: (text: any) => (
265
+ <Tooltip placement="topLeft" title={text}>
266
+ {text}
267
+ </Tooltip>
268
+ ),
269
+ },
270
+ {
271
+ title: '外部编码',
272
+ width: 100,
273
+ ellipsis: {
274
+ showTitle: false,
275
+ },
276
+ render: (text: any) => (
277
+ <Tooltip placement="topLeft" title={text}>
278
+ {text}
279
+ </Tooltip>
280
+ ),
281
+ dataIndex: 'externalCode',
282
+ },
283
+ {
284
+ title: '规格',
285
+ width: 100,
286
+ ellipsis: {
287
+ showTitle: false,
288
+ },
289
+ render: (text: any) => (
290
+ <Tooltip placement="topLeft" title={text}>
291
+ {text}
292
+ </Tooltip>
293
+ ),
294
+ dataIndex: 'propertyNameAndValue',
295
+ },
296
+ {
297
+ title: '类目',
298
+ width: 100,
299
+ ellipsis: {
300
+ showTitle: false,
301
+ },
302
+ render: (text: any) => (
303
+ <Tooltip placement="topLeft" title={text}>
304
+ {text}
305
+ </Tooltip>
306
+ ),
307
+ dataIndex: 'categoryName',
308
+ },
309
+ {
310
+ title: '品类',
311
+ width: 100,
312
+ ellipsis: {
313
+ showTitle: false,
314
+ },
315
+ render: (text: any) => (
316
+ <Tooltip placement="topLeft" title={text}>
317
+ {text}
318
+ </Tooltip>
319
+ ),
320
+ dataIndex: 'className',
321
+ },
322
+ {
323
+ title: '品牌',
324
+ width: 100,
325
+ ellipsis: {
326
+ showTitle: false,
327
+ },
328
+ render: (text: any) => (
329
+ <Tooltip placement="topLeft" title={text}>
330
+ {text}
331
+ </Tooltip>
332
+ ),
333
+ dataIndex: 'brandName',
334
+ },
335
+ ],
336
+ selectColumn: mTpSelectColumn
337
+ }
338
+
339
+ return (
340
+ <div>
341
+ <AddSelect
342
+ {...props}
343
+ modalTableProps={modalTableProps}
344
+ />
345
+ </div>
346
+ );
347
+ };
348
+
349
+ export const AddSkcSelect = (parProps: any) => {
350
+ const selectProps = {
351
+ mode: 'multiple',
352
+ }
353
+ const [value, setValue] = useState(selectProps?.mode ? [] : null);
354
+ const [propertyList, setPropertyList] = useState([]);
355
+
356
+ useEffect(() => {
357
+ // type: 1 尺码组; 2 配码组
358
+ axios.get(`/items/itemPropertyValueGroup/listNoPage?qp-type-eq=2`).then((result: any) => {
359
+ result = result.data;
360
+ if ((result?.status && result.status !== '0') || (result?.code && result.code !== '000000')) {
361
+ message.error(result.msg);
362
+ return;
363
+ }
364
+ const data = result.data || [];
365
+ setPropertyList(data)
366
+ }).catch((err) => {});
367
+ },[])
368
+
369
+ //注⚠️:自定义过表头的请记得传tableCodeList参数
370
+ const initialSelectColumn = [
371
+ {
372
+ title: 'SKC编码',
373
+ width: 150,
374
+ dataIndex: 'code',
375
+ },
376
+ {
377
+ title: 'SKC名称',
378
+ width: 200,
379
+ ellipsis: {
380
+ showTitle: false,
381
+ },
382
+ render: (text: any) => (
383
+ <Tooltip placement="topLeft" title={text}>
384
+ {text}
385
+ </Tooltip>
386
+ ),
387
+ dataIndex: 'name',
388
+ },
389
+ {
390
+ title: '颜色',
391
+ width: 200,
392
+ ellipsis: {
393
+ showTitle: false,
394
+ },
395
+ render: (text: any) => (
396
+ <Tooltip placement="topLeft" title={text}>
397
+ {text}
398
+ </Tooltip>
399
+ ),
400
+ dataIndex: 'colorName',
401
+ },
402
+ {
403
+ title: '配码',
404
+ dataIndex: 'selectPropertyGroupCode',
405
+ width: 160,
406
+ isSelectItem: true,
407
+ dataSource: propertyList,
408
+ },
409
+ {
410
+ title: '数量',
411
+ width: 100,
412
+ isInputItem: true,
413
+ dataIndex: 'count',
414
+ },
415
+ ]
416
+ const mTpSelectColumn = handleSelectColumn(initialSelectColumn, parProps)
417
+ const props = {
418
+ buttonText: parProps.buttonText || '新增',
419
+ buttonProps: parProps.buttonProps || {},
420
+ tableCodeList: parProps.tableCodeList || ['skcSelect-tableOptionsToChoosePartCode','skcSelect-tableSelectedItemPartCode'],
421
+ value,
422
+ // labelInValue: true, // 非必填 默认为false
423
+ requestConfig: {
424
+ url: `/items/skc/skcSelect`,
425
+ filter: 'qp-name-like', // 过滤参数 支持'qp-name-like'和['qp-name-like', 'qp-code-like']两种结构
426
+ otherParams: {}, // 默认参数
427
+ mappingTextField: 'name',
428
+ mappingValueField: 'code',
429
+ ...parProps.requestConfig
430
+ },
431
+ selectProps,
432
+ onChange: (value: any) => {
433
+ console.log(value)
434
+ setValue(value)
435
+ },
436
+ beforeShowModal: parProps?.beforeShowModal,
437
+ onSaveCallback: parProps.onSaveCallback,
438
+ businessType: 'skc',
439
+ isAllowRepeatedSelect: true
440
+ };
441
+ const modalTableProps = {
442
+ modalTableTitle: '选择商品',
443
+ tableSearchForm: [
444
+ { name: 'qp-code-like', label: 'SKC编码' },
445
+ { name: 'qp-skcName-like', label: 'SKC名称' },
446
+ { name: 'qp-itemName-like', label: '商品名称' },
447
+ { name: 'qp-colorName-in', type: 'select', label: '颜色', field: {
448
+ type: 'select',
449
+ props: {
450
+ mode: 'multiple',
451
+ notFoundContent: '暂无数据',
452
+ allowClear: true,
453
+ showSearch: true,
454
+ showArrow: true,
455
+ maxTagCount: 1,
456
+ optionFilterProp: 'children',
457
+ filterOption: (input: string, option: { props: { children: string } }) =>
458
+ option.props.children.toLowerCase().indexOf(input.toLowerCase()) >= 0,
459
+ },
460
+ } },
461
+ { name: 'qp-categoryId-in', type: 'treeSelect', label: '类目', field: {
462
+ type: 'treeSelect',
463
+ props: {
464
+ treeData: [],
465
+ treeCheckable: true,
466
+ showSearch: true,
467
+ allowClear: true,
468
+ showArrow: true,
469
+ treeNodeFilterProp: 'title',
470
+ treeDefaultExpandAll: true,
471
+ maxTagCount: 1,
472
+ placeholder: '请选择',
473
+ style: {
474
+ width: '100%',
475
+ },
476
+ dropdownStyle: { maxHeight: 400, maxWidth: 100, overflow: 'auto' }
477
+ },
478
+ } },
479
+ { name: 'qp-classId-in', type: 'select', label: '品类', field: {
480
+ type: 'select',
481
+ props: {
482
+ mode: 'multiple',
483
+ notFoundContent: '暂无数据',
484
+ allowClear: true,
485
+ showSearch: true,
486
+ showArrow: true,
487
+ maxTagCount: 1,
488
+ optionFilterProp: 'children',
489
+ filterOption: (input: string, option: { props: { children: string } }) =>
490
+ option.props.children.toLowerCase().indexOf(input.toLowerCase()) >= 0,
491
+ },
492
+ } },
493
+ { name: 'qp-brandId-in', type: 'select', label: '品牌', field: {
494
+ type: 'select',
495
+ props: {
496
+ mode: 'multiple',
497
+ notFoundContent: '暂无数据',
498
+ allowClear: true,
499
+ showSearch: true,
500
+ showArrow: true,
501
+ maxTagCount: 1,
502
+ optionFilterProp: 'children',
503
+ filterOption: (input: string, option: { props: { children: string } }) =>
504
+ option.props.children.toLowerCase().indexOf(input.toLowerCase()) >= 0,
505
+ },
506
+ } },
507
+ ],
508
+ tableColumns: [
509
+ {
510
+ title: 'SKC编码',
511
+ width: 150,
512
+ dataIndex: 'code',
513
+ },
514
+ {
515
+ title: 'SKC名称',
516
+ width: 200,
517
+ ellipsis: {
518
+ showTitle: false,
519
+ },
520
+ render: (text: any) => (
521
+ <Tooltip placement="topLeft" title={text}>
522
+ {text}
523
+ </Tooltip>
524
+ ),
525
+ dataIndex: 'name',
526
+ },
527
+ {
528
+ title: '商品名称',
529
+ width: 100,
530
+ ellipsis: {
531
+ showTitle: false,
532
+ },
533
+ dataIndex: 'itemName',
534
+ render: (text: any) => (
535
+ <Tooltip placement="topLeft" title={text}>
536
+ {text}
537
+ </Tooltip>
538
+ ),
539
+ },
540
+ {
541
+ title: '颜色',
542
+ width: 100,
543
+ ellipsis: {
544
+ showTitle: false,
545
+ },
546
+ render: (text: any) => (
547
+ <Tooltip placement="topLeft" title={text}>
548
+ {text}
549
+ </Tooltip>
550
+ ),
551
+ dataIndex: 'colorName',
552
+ },
553
+ {
554
+ title: '类目',
555
+ width: 100,
556
+ ellipsis: {
557
+ showTitle: false,
558
+ },
559
+ render: (text: any) => (
560
+ <Tooltip placement="topLeft" title={text}>
561
+ {text}
562
+ </Tooltip>
563
+ ),
564
+ dataIndex: 'categoryName',
565
+ },
566
+ {
567
+ title: '品类',
568
+ width: 100,
569
+ ellipsis: {
570
+ showTitle: false,
571
+ },
572
+ render: (text: any) => (
573
+ <Tooltip placement="topLeft" title={text}>
574
+ {text}
575
+ </Tooltip>
576
+ ),
577
+ dataIndex: 'className',
578
+ },
579
+ {
580
+ title: '品牌',
581
+ width: 100,
582
+ ellipsis: {
583
+ showTitle: false,
584
+ },
585
+ render: (text: any) => (
586
+ <Tooltip placement="topLeft" title={text}>
587
+ {text}
588
+ </Tooltip>
589
+ ),
590
+ dataIndex: 'brandName',
591
+ },
592
+ ],
593
+ selectColumn: mTpSelectColumn,
594
+ }
595
+
596
+ return (
597
+ <div>
598
+ <AddSelect
599
+ {...props}
600
+ modalTableProps={modalTableProps}
601
+ />
602
+ </div>
603
+ );
604
+ };
605
+
606
+ export const AddSpuSelect = (parProps: any) => {
607
+ const selectProps = {
608
+ mode: 'multiple',
609
+ }
610
+ const [value, setValue] = useState(selectProps?.mode ? [] : null);
611
+ //注⚠️:自定义过表头的请记得传tableCodeList参数
612
+ const initialSelectColumn = [
613
+ {
614
+ title: '商品编码',
615
+ width: 150,
616
+ dataIndex: 'itemCode',
617
+ },
618
+ {
619
+ title: '商品名称',
620
+ width: 200,
621
+ ellipsis: {
622
+ showTitle: false,
623
+ },
624
+ render: (text: any) => (
625
+ <Tooltip placement="topLeft" title={text}>
626
+ {text}
627
+ </Tooltip>
628
+ ),
629
+ dataIndex: 'name',
630
+ },
631
+ {
632
+ title: '数量',
633
+ width: 100,
634
+ isInputItem: true,
635
+ dataIndex: 'count',
636
+ },
637
+ {
638
+ title: '所属组织',
639
+ dataIndex: 'ownOrgSignName',
640
+ },
641
+ {
642
+ title: '品牌',
643
+ dataIndex: 'brandName',
644
+ },
645
+ {
646
+ title: '类目',
647
+ dataIndex: 'categoryText',
648
+ },
649
+ {
650
+ title: '品类',
651
+ dataIndex: 'className',
652
+ },
653
+ ]
654
+ const mTpSelectColumn = handleSelectColumn(initialSelectColumn, parProps)
655
+ const props = {
656
+ buttonText: parProps.buttonText || '新增',
657
+ buttonProps: parProps.buttonProps || {},
658
+ tableCodeList: parProps.tableCodeList || [],
659
+ value,
660
+ // labelInValue: true, // 非必填 默认为false
661
+ requestConfig: {
662
+ url: `/items/item`,
663
+ filter: 'qp-itemCode,name-orGroup,like', // 过滤参数
664
+ otherParams: {
665
+ 'qp-approveStatus-eq': 1, // 审核状态(0.待审批;1.审批通过;2.驳回;3.审批未通过)
666
+ sorter: 'desc-id'
667
+ }, // 默认参数
668
+ mappingTextField: 'name',
669
+ mappingValueField: 'itemCode',
670
+ ...parProps.requestConfig
671
+ },
672
+ selectProps,
673
+ onChange: (value: any) => {
674
+ console.log(value)
675
+ setValue(value)
676
+ },
677
+ beforeShowModal: parProps?.beforeShowModal,
678
+ onSaveCallback: parProps.onSaveCallback,
679
+ businessType: 'spu',
680
+ // onSaveCallback: (rows) => {
681
+ // console.log('save call', rows);
682
+ // // return Promise.resolve(true);
683
+ // // return Promise.reject('FAILE')
684
+ // }
685
+ };
686
+ const modalTableProps = {
687
+ modalTableTitle: '选择商品',
688
+ tableSearchForm: [
689
+ { name: 'qp-itemCode-like', label: '商品编码' },
690
+ { name: 'qp-name-like', label: '商品名称' },
691
+ { name: 'qp-ownOrgSign-in', type: 'select', label: '所属组织', field: {
692
+ type: 'select',
693
+ props: {
694
+ mode: 'multiple',
695
+ notFoundContent: '暂无数据',
696
+ allowClear: true,
697
+ showSearch: true,
698
+ showArrow: true,
699
+ maxTagCount: 1,
700
+ optionFilterProp: 'children',
701
+ filterOption: (input: string, option: { props: { children: string } }) =>
702
+ option.props.children.toLowerCase().indexOf(input.toLowerCase()) >= 0,
703
+ },
704
+ } },
705
+ { name: 'qp-brandId-in', type: 'select', label: '品牌', field: {
706
+ type: 'select',
707
+ props: {
708
+ mode: 'multiple',
709
+ notFoundContent: '暂无数据',
710
+ allowClear: true,
711
+ showSearch: true,
712
+ showArrow: true,
713
+ maxTagCount: 1,
714
+ optionFilterProp: 'children',
715
+ filterOption: (input: string, option: { props: { children: string } }) =>
716
+ option.props.children.toLowerCase().indexOf(input.toLowerCase()) >= 0,
717
+ },
718
+ } },
719
+ { name: 'qp-categoryId-in', type: 'treeSelect', label: '类目', field: {
720
+ type: 'treeSelect',
721
+ props: {
722
+ treeData: [],
723
+ treeCheckable: true,
724
+ showSearch: true,
725
+ allowClear: true,
726
+ showArrow: true,
727
+ treeNodeFilterProp: 'title',
728
+ treeDefaultExpandAll: true,
729
+ maxTagCount: 1,
730
+ placeholder: '请选择',
731
+ style: {
732
+ width: '100%',
733
+ },
734
+ dropdownStyle: { maxHeight: 400, maxWidth: 100, overflow: 'auto' }
735
+ },
736
+ } },
737
+ { name: 'qp-classId-in', type: 'select', label: '品类', field: {
738
+ type: 'select',
739
+ props: {
740
+ mode: 'multiple',
741
+ notFoundContent: '暂无数据',
742
+ allowClear: true,
743
+ showSearch: true,
744
+ showArrow: true,
745
+ maxTagCount: 1,
746
+ optionFilterProp: 'children',
747
+ filterOption: (input: string, option: { props: { children: string } }) =>
748
+ option.props.children.toLowerCase().indexOf(input.toLowerCase()) >= 0,
749
+ },
750
+ } },
751
+ ],
752
+ tableColumns: [
753
+ {
754
+ title: '商品编码',
755
+ width: 150,
756
+ dataIndex: 'itemCode',
757
+ },
758
+ {
759
+ title: '商品名称',
760
+ width: 200,
761
+ ellipsis: {
762
+ showTitle: false,
763
+ },
764
+ render: (text: any) => (
765
+ <Tooltip placement="topLeft" title={text}>
766
+ {text}
767
+ </Tooltip>
768
+ ),
769
+ dataIndex: 'name',
770
+ },
771
+ {
772
+ title: '所属组织',
773
+ width: 100,
774
+ ellipsis: {
775
+ showTitle: false,
776
+ },
777
+ render: (text: any) => (
778
+ <Tooltip placement="topLeft" title={text}>
779
+ {text}
780
+ </Tooltip>
781
+ ),
782
+ dataIndex: 'ownOrgSignName',
783
+ },
784
+ {
785
+ title: '品牌',
786
+ width: 100,
787
+ ellipsis: {
788
+ showTitle: false,
789
+ },
790
+ render: (text: any) => (
791
+ <Tooltip placement="topLeft" title={text}>
792
+ {text}
793
+ </Tooltip>
794
+ ),
795
+ dataIndex: 'brandName',
796
+ },
797
+ {
798
+ title: '类目',
799
+ width: 100,
800
+ ellipsis: {
801
+ showTitle: false,
802
+ },
803
+ render: (text: any) => (
804
+ <Tooltip placement="topLeft" title={text}>
805
+ {text}
806
+ </Tooltip>
807
+ ),
808
+ dataIndex: 'categoryName',
809
+ },
810
+ {
811
+ title: '品类',
812
+ width: 100,
813
+ ellipsis: {
814
+ showTitle: false,
815
+ },
816
+ render: (text: any) => (
817
+ <Tooltip placement="topLeft" title={text}>
818
+ {text}
819
+ </Tooltip>
820
+ ),
821
+ dataIndex: 'className',
822
+ },
823
+ ],
824
+ selectColumn: mTpSelectColumn
825
+ }
826
+
827
+ return (
828
+ <div>
829
+ <AddSelect
830
+ {...props}
831
+ modalTableProps={modalTableProps}
832
+ />
833
+ </div>
834
+ );
835
+ };