@bit-sun/business-component 2.2.24 → 2.2.26

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