@bit-sun/business-component 2.2.46 → 2.2.48

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