neo-cmp-cli 1.12.7 → 1.12.9

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 (144) hide show
  1. package/README.md +204 -6
  2. package/dist/index2.js +1 -1
  3. package/dist/neo/env.js +1 -1
  4. package/dist/package.json.js +1 -1
  5. package/package.json +1 -1
  6. package/template/antd-custom-cmp-template/package.json +1 -1
  7. package/template/{neo-bi-cmps → asset-manage-template}/README.md +65 -10
  8. package/template/asset-manage-template/docs/README.md +244 -0
  9. package/template/asset-manage-template/neo.config.js +60 -0
  10. package/template/{neo-bi-cmps → asset-manage-template}/package.json +28 -16
  11. package/template/asset-manage-template/src/assets/img/chart.svg +1 -0
  12. package/template/asset-manage-template/src/components/README.md +3 -0
  13. package/template/asset-manage-template/src/components/assetManage__c/assetApi.ts +70 -0
  14. package/template/asset-manage-template/src/components/assetManage__c/cmps/AssetCreateModal.tsx +260 -0
  15. package/template/asset-manage-template/src/components/assetManage__c/cmps/AssetGrid.tsx +48 -0
  16. package/template/asset-manage-template/src/components/assetManage__c/cmps/AssetSidebar.tsx +74 -0
  17. package/template/asset-manage-template/src/components/assetManage__c/cmps/AssetToolbar.tsx +79 -0
  18. package/template/asset-manage-template/src/components/assetManage__c/cmps/assetDisplay.tsx +72 -0
  19. package/template/asset-manage-template/src/components/assetManage__c/constants.ts +28 -0
  20. package/template/asset-manage-template/src/components/assetManage__c/index.tsx +258 -0
  21. package/template/asset-manage-template/src/components/assetManage__c/model.ts +75 -0
  22. package/template/asset-manage-template/src/components/assetManage__c/style.scss +425 -0
  23. package/template/asset-manage-template/src/components/assetManage__c/types.ts +60 -0
  24. package/template/asset-manage-template/src/components/bidList__c/cmps/BidCard.tsx +47 -0
  25. package/template/asset-manage-template/src/components/bidList__c/constants.ts +6 -0
  26. package/template/asset-manage-template/src/components/bidList__c/formatUtils.ts +14 -0
  27. package/template/asset-manage-template/src/components/bidList__c/index.tsx +194 -0
  28. package/template/asset-manage-template/src/components/bidList__c/model.ts +57 -0
  29. package/template/asset-manage-template/src/components/bidList__c/style.scss +179 -0
  30. package/template/asset-manage-template/src/components/bidList__c/types.ts +10 -0
  31. package/template/asset-manage-template/src/components/bidPackage__c/cmps/BidPackageHeader.tsx +140 -0
  32. package/template/asset-manage-template/src/components/bidPackage__c/cmps/PackageItemTable.tsx +148 -0
  33. package/template/asset-manage-template/src/components/bidPackage__c/index.tsx +394 -0
  34. package/template/asset-manage-template/src/components/bidPackage__c/mainTableColumns.tsx +57 -0
  35. package/template/asset-manage-template/src/components/bidPackage__c/model.ts +86 -0
  36. package/template/asset-manage-template/src/components/bidPackage__c/style.scss +256 -0
  37. package/template/asset-manage-template/src/components/bidPackage__c/types.ts +35 -0
  38. package/template/asset-manage-template/src/components/bidPackage__c/utils.ts +19 -0
  39. package/template/{neo-bi-cmps → asset-manage-template}/src/utils/axiosFetcher.ts +0 -0
  40. package/template/{neo-bi-cmps → asset-manage-template}/src/utils/queryObjectData.ts +0 -0
  41. package/template/asset-manage-template/src/utils/url.ts +82 -0
  42. package/template/{neo-bi-cmps → asset-manage-template}/src/utils/xobjects.ts +0 -0
  43. package/template/{neo-bi-cmps → asset-manage-template}/tsconfig.json +1 -1
  44. package/template/echarts-custom-cmp-template/package.json +1 -1
  45. package/template/empty-custom-cmp-template/package.json +2 -2
  46. package/template/neo-custom-cmp-template/package.json +2 -2
  47. package/template/neo-custom-cmp-template/src/components/entityTable__c/index.tsx +62 -6
  48. package/template/neo-h5-cmps/neo.config.js +34 -76
  49. package/template/neo-h5-cmps/package.json +7 -3
  50. package/template/neo-h5-cmps/src/components/entityList__c/index.tsx +0 -4
  51. package/template/neo-h5-cmps/src/components/entityList__c/model.ts +10 -5
  52. package/template/neo-h5-cmps/src/components/entityTabs__c/index.tsx +29 -17
  53. package/template/neo-h5-cmps/src/components/entityTabs__c/model.ts +25 -5
  54. package/template/neo-h5-cmps/src/components/entityTabs__c/style.scss +11 -22
  55. package/template/neo-h5-cmps/src/components/openChatPageBtn__c/index.tsx +3 -1
  56. package/template/neo-h5-cmps/src/utils/xobjects.ts +8 -3
  57. package/template/neo-h5-cmps/tsconfig.json +1 -1
  58. package/template/neo-order-cmps/package.json +2 -2
  59. package/template/react-custom-cmp-template/package.json +1 -1
  60. package/template/react-ts-custom-cmp-template/package.json +1 -1
  61. package/template/vue2-custom-cmp-template/package.json +1 -1
  62. package/template/develop/BI /351/241/271/347/233/256/345/210/206/346/236/220/346/212/245/345/221/212.md" +0 -562
  63. package/template/develop/ChatPage /347/273/204/344/273/266/344/275/277/347/224/250/350/257/264/346/230/216/346/226/207/346/241/243.md" +0 -507
  64. package/template/develop/EntityGrid Web /347/273/204/344/273/266/347/232/204/350/257/246/347/273/206/345/210/206/346/236/220/346/226/207/346/241/243.md" +0 -868
  65. package/template/develop/EntityList H5 /347/273/204/344/273/266/347/232/204/350/257/246/347/273/206/345/210/206/346/236/220/346/226/207/346/241/243.md" +0 -1386
  66. package/template/develop/GlobalSearch/347/273/204/344/273/266/345/257/271/346/257/224/345/210/206/346/236/220.md +0 -866
  67. package/template/develop/Neo /344/270/255/345/217/257/347/224/250 amis /347/273/204/344/273/266.md" +0 -1490
  68. package/template/develop/cmpEventFunctions.ts +0 -257
  69. package/template/develop/cmpEvents.ts +0 -864
  70. package/template/develop/comTree/347/224/237/346/210/220/350/277/207/347/250/213/345/210/206/346/236/220.md +0 -469
  71. package/template/develop/commonModules.js +0 -55
  72. package/template/develop/components-table.md +0 -50
  73. package/template/develop/neo-custom-cmp-template/README.md +0 -48
  74. package/template/develop/neo-custom-cmp-template/docs/README.md +0 -13
  75. package/template/develop/neo-custom-cmp-template/neo.config.js +0 -121
  76. package/template/develop/neo-custom-cmp-template/package.json +0 -63
  77. package/template/develop/neo-custom-cmp-template/src/components/contactCardList/README.md +0 -65
  78. package/template/develop/neo-custom-cmp-template/src/components/contactCardList/index.tsx +0 -180
  79. package/template/develop/neo-custom-cmp-template/src/components/contactCardList/model.ts +0 -50
  80. package/template/develop/neo-custom-cmp-template/src/components/contactCardList/style.scss +0 -260
  81. package/template/develop/neo-custom-cmp-template/src/components/contactForm/README.md +0 -94
  82. package/template/develop/neo-custom-cmp-template/src/components/contactForm/index.tsx +0 -252
  83. package/template/develop/neo-custom-cmp-template/src/components/contactForm/model.ts +0 -56
  84. package/template/develop/neo-custom-cmp-template/src/components/contactForm/style.scss +0 -120
  85. package/template/develop/neo-custom-cmp-template/src/components/neoEntityGrid/README.md +0 -115
  86. package/template/develop/neo-custom-cmp-template/src/components/neoEntityGrid/index.tsx +0 -304
  87. package/template/develop/neo-custom-cmp-template/src/components/neoEntityGrid/model.ts +0 -87
  88. package/template/develop/neo-custom-cmp-template/src/components/neoEntityGrid/style.scss +0 -127
  89. package/template/develop/neo-custom-cmp-template/src/utils/axiosFetcher.ts +0 -29
  90. package/template/develop/neo-custom-cmp-template/src/utils/queryObjectData.ts +0 -39
  91. package/template/develop/neo-custom-cmp-template/src/utils/xobjects.ts +0 -203
  92. package/template/develop/neo-custom-cmp-template/tsconfig.json +0 -68
  93. package/template/develop/neo-ui-component-h5.md +0 -105
  94. package/template/develop/neo-ui-component-web-xregister.md +0 -31
  95. package/template/develop/neo-ui-component-web.md +0 -292
  96. package/template/develop/neoCmps.ts +0 -7508
  97. package/template/develop/neoGlobalSearchInput /347/273/204/344/273/266/347/232/204/350/257/246/347/273/206/345/210/206/346/236/220/346/226/207/346/241/243.md" +0 -497
  98. package/template/develop/pageSchema1.json +0 -744
  99. package/template/develop//344/272/213/344/273/266/345/212/250/344/275/234/344/277/235/345/255/230/346/265/201/347/250/213/345/210/206/346/236/220.md +0 -390
  100. package/template/develop//345/215/225/345/205/203/346/265/213/350/257/225/344/275/277/347/224/250/350/257/264/346/230/216.md +0 -1139
  101. package/template/neo-bi-cmps/.prettierrc.js +0 -12
  102. package/template/neo-bi-cmps/commitlint.config.js +0 -59
  103. package/template/neo-bi-cmps/neo.config.js +0 -124
  104. package/template/neo-bi-cmps/public/css/base.css +0 -283
  105. package/template/neo-bi-cmps/public/scripts/app/bluebird.js +0 -6679
  106. package/template/neo-bi-cmps/public/template.html +0 -13
  107. package/template/neo-bi-cmps/src/assets/css/common.scss +0 -127
  108. package/template/neo-bi-cmps/src/assets/css/mixin.scss +0 -47
  109. package/template/neo-bi-cmps/src/assets/img/NeoCRM.jpg +0 -0
  110. package/template/neo-bi-cmps/src/assets/img/custom-widget.svg +0 -1
  111. package/template/neo-bi-cmps/src/assets/img/favicon.png +0 -0
  112. package/template/neo-bi-cmps/src/assets/img/table.svg +0 -1
  113. package/template/neo-bi-cmps/src/components/targetNumber__c/README.md +0 -100
  114. package/template/neo-bi-cmps/src/components/targetNumber__c/customStyleConfig/configSchema.ts +0 -253
  115. package/template/neo-bi-cmps/src/components/targetNumber__c/customStyleConfig/index.scss +0 -76
  116. package/template/neo-bi-cmps/src/components/targetNumber__c/customStyleConfig/index.tsx +0 -148
  117. package/template/neo-bi-cmps/src/components/targetNumber__c/index.tsx +0 -440
  118. package/template/neo-bi-cmps/src/components/targetNumber__c/model.ts +0 -128
  119. package/template/neo-bi-cmps/src/components/targetNumber__c/style.scss +0 -173
  120. package/template/neo-h5-cmps/src/components/simpleTable__c/README.md +0 -90
  121. package/template/neo-h5-cmps/src/components/simpleTable__c/index.tsx +0 -277
  122. package/template/neo-h5-cmps/src/components/simpleTable__c/model.ts +0 -91
  123. package/template/neo-h5-cmps/src/components/simpleTable__c/style.scss +0 -116
  124. /package/template/{develop/neo-custom-cmp-template → asset-manage-template}/.prettierrc.js +0 -0
  125. /package/template/{neo-bi-cmps → asset-manage-template}/@types/neo-ui-common.d.ts +0 -0
  126. /package/template/{develop/neo-custom-cmp-template → asset-manage-template}/commitlint.config.js +0 -0
  127. /package/template/{develop/neo-custom-cmp-template → asset-manage-template}/public/css/base.css +0 -0
  128. /package/template/{develop/neo-custom-cmp-template → asset-manage-template}/public/scripts/app/bluebird.js +0 -0
  129. /package/template/{develop/neo-custom-cmp-template → asset-manage-template}/public/template.html +0 -0
  130. /package/template/{develop/neo-custom-cmp-template → asset-manage-template}/src/assets/css/common.scss +0 -0
  131. /package/template/{develop/neo-custom-cmp-template → asset-manage-template}/src/assets/css/mixin.scss +0 -0
  132. /package/template/{neo-bi-cmps → asset-manage-template}/src/assets/img/AIBtn.gif +0 -0
  133. /package/template/{develop/neo-custom-cmp-template → asset-manage-template}/src/assets/img/NeoCRM.jpg +0 -0
  134. /package/template/{neo-bi-cmps → asset-manage-template}/src/assets/img/aiLogo.png +0 -0
  135. /package/template/{neo-bi-cmps → asset-manage-template}/src/assets/img/card-list.svg +0 -0
  136. /package/template/{neo-bi-cmps → asset-manage-template}/src/assets/img/contact-form.svg +0 -0
  137. /package/template/{neo-bi-cmps → asset-manage-template}/src/assets/img/custom-form.svg +0 -0
  138. /package/template/{develop/neo-custom-cmp-template → asset-manage-template}/src/assets/img/custom-widget.svg +0 -0
  139. /package/template/{neo-bi-cmps → asset-manage-template}/src/assets/img/data-list.svg +0 -0
  140. /package/template/{neo-bi-cmps → asset-manage-template}/src/assets/img/detail.svg +0 -0
  141. /package/template/{develop/neo-custom-cmp-template → asset-manage-template}/src/assets/img/favicon.png +0 -0
  142. /package/template/{neo-bi-cmps → asset-manage-template}/src/assets/img/map.svg +0 -0
  143. /package/template/{neo-bi-cmps → asset-manage-template}/src/assets/img/search.svg +0 -0
  144. /package/template/{develop/neo-custom-cmp-template → asset-manage-template}/src/assets/img/table.svg +0 -0
@@ -0,0 +1,425 @@
1
+ .AssetManage__c {
2
+ display: flex;
3
+ flex-direction: column;
4
+ height: 100%;
5
+ min-height: 500px;
6
+ background: #f5f6fa;
7
+ border-radius: 8px;
8
+ overflow: hidden;
9
+ box-shadow: 0 2px 8px rgba(0, 0, 0, 0.08);
10
+
11
+ /* ========== 顶部标题栏 ========== */
12
+ .asset-header {
13
+ display: flex;
14
+ align-items: center;
15
+ justify-content: space-between;
16
+ height: 48px;
17
+ padding: 0 20px;
18
+ background: #fff;
19
+ border-bottom: 1px solid #e8e8e8;
20
+ flex-shrink: 0;
21
+
22
+ .header-left {
23
+ display: flex;
24
+ align-items: center;
25
+ gap: 10px;
26
+
27
+ .header-logo {
28
+ display: flex;
29
+ align-items: center;
30
+ justify-content: center;
31
+ width: 28px;
32
+ height: 28px;
33
+ border-radius: 6px;
34
+ background: #1890ff;
35
+ color: #fff;
36
+ font-size: 14px;
37
+ }
38
+
39
+ .header-title {
40
+ font-size: 16px;
41
+ font-weight: 600;
42
+ color: #262626;
43
+ }
44
+ }
45
+
46
+ .header-version {
47
+ font-size: 12px;
48
+ color: #bfbfbf;
49
+ font-style: italic;
50
+ }
51
+ }
52
+
53
+ /* ========== 主体区域 ========== */
54
+ .asset-main {
55
+ display: flex;
56
+ flex: 1;
57
+ overflow: hidden;
58
+ }
59
+
60
+ /* ========== 左侧分类导航 ========== */
61
+ .asset-sidebar {
62
+ width: 200px;
63
+ background: #fff;
64
+ border-right: 1px solid #e8e8e8;
65
+ display: flex;
66
+ flex-direction: column;
67
+ flex-shrink: 0;
68
+
69
+ .sidebar-header {
70
+ padding: 14px 16px 10px;
71
+ border-bottom: 1px solid #f0f0f0;
72
+
73
+ .sidebar-label {
74
+ font-size: 11px;
75
+ font-weight: 600;
76
+ color: #bfbfbf;
77
+ text-transform: uppercase;
78
+ letter-spacing: 1px;
79
+ }
80
+ }
81
+
82
+ .sidebar-nav {
83
+ flex: 1;
84
+ overflow-y: auto;
85
+ padding: 6px 0;
86
+ }
87
+
88
+ .sidebar-item {
89
+ display: flex;
90
+ align-items: center;
91
+ gap: 10px;
92
+ padding: 10px 20px;
93
+ cursor: pointer;
94
+ color: #595959;
95
+ font-size: 14px;
96
+ transition: all 0.2s;
97
+ border-right: 3px solid transparent;
98
+
99
+ &:hover {
100
+ background: #f5f5f5;
101
+ }
102
+
103
+ &.active {
104
+ background: #e6f7ff;
105
+ color: #1890ff;
106
+ border-right-color: #1890ff;
107
+ font-weight: 500;
108
+
109
+ .sidebar-icon {
110
+ color: #1890ff;
111
+ }
112
+ }
113
+
114
+ .sidebar-icon {
115
+ font-size: 15px;
116
+ color: #8c8c8c;
117
+ width: 18px;
118
+ text-align: center;
119
+ flex-shrink: 0;
120
+ }
121
+
122
+ .sidebar-text {
123
+ flex: 1;
124
+ @include ellipsis1;
125
+ }
126
+
127
+ .sidebar-count {
128
+ font-size: 12px;
129
+ color: #bfbfbf;
130
+ background: #f0f0f0;
131
+ padding: 1px 8px;
132
+ border-radius: 10px;
133
+ min-width: 20px;
134
+ text-align: center;
135
+ }
136
+ }
137
+
138
+ .sidebar-footer {
139
+ padding: 10px 16px;
140
+ border-top: 1px solid #f0f0f0;
141
+ background: #fafafa;
142
+ font-size: 11px;
143
+ color: #bfbfbf;
144
+ }
145
+
146
+ .sidebar-placeholder {
147
+ flex: 1;
148
+ display: flex;
149
+ align-items: center;
150
+ justify-content: center;
151
+ min-height: 220px;
152
+ padding: 16px;
153
+ }
154
+ }
155
+
156
+ /* ========== 右侧内容区 ========== */
157
+ .asset-content {
158
+ flex: 1;
159
+ display: flex;
160
+ flex-direction: column;
161
+ overflow: hidden;
162
+ }
163
+
164
+ /* ========== 搜索工具条 ========== */
165
+ .asset-toolbar {
166
+ display: flex;
167
+ align-items: center;
168
+ justify-content: space-between;
169
+ padding: 12px 20px;
170
+ background: #fff;
171
+ border-bottom: 1px solid #e8e8e8;
172
+ flex-shrink: 0;
173
+ gap: 12px;
174
+
175
+ .toolbar-left {
176
+ display: flex;
177
+ gap: 10px;
178
+ flex: 1;
179
+ max-width: 560px;
180
+
181
+ .search-input {
182
+ flex: 1;
183
+ border-radius: 6px;
184
+
185
+ .ant-input {
186
+ background: #f5f5f5;
187
+ }
188
+ }
189
+
190
+ .status-select {
191
+ min-width: 160px;
192
+ }
193
+ }
194
+
195
+ .toolbar-right {
196
+ display: flex;
197
+ gap: 8px;
198
+ flex-shrink: 0;
199
+ }
200
+ }
201
+
202
+ /* ========== 资产网格 ========== */
203
+ .asset-grid-wrapper {
204
+ flex: 1;
205
+ overflow-y: auto;
206
+ padding: 20px;
207
+
208
+ .grid-empty {
209
+ padding: 80px 0;
210
+ }
211
+
212
+ &.content-placeholder {
213
+ display: flex;
214
+ align-items: center;
215
+ justify-content: center;
216
+ }
217
+ }
218
+
219
+ /* ========== 资产卡片 ========== */
220
+ .asset-card {
221
+ background: #fff;
222
+ border: 1px solid #e8e8e8;
223
+ border-radius: 12px;
224
+ overflow: hidden;
225
+ cursor: pointer;
226
+ transition: all 0.25s ease;
227
+
228
+ &:hover {
229
+ transform: translateY(-4px);
230
+ box-shadow: 0 10px 24px rgba(0, 0, 0, 0.1);
231
+ border-color: #d9d9d9;
232
+ }
233
+
234
+ .card-image {
235
+ height: 140px;
236
+ background: #f5f7fa;
237
+ display: flex;
238
+ align-items: center;
239
+ justify-content: center;
240
+ border-bottom: 1px solid #f0f0f0;
241
+ overflow: hidden;
242
+
243
+ img {
244
+ width: 100%;
245
+ height: 100%;
246
+ object-fit: cover;
247
+ }
248
+
249
+ .card-image-placeholder {
250
+ font-size: 48px;
251
+ color: #d9d9d9;
252
+ }
253
+ }
254
+
255
+ .card-body {
256
+ padding: 14px 16px;
257
+
258
+ .card-title-row {
259
+ display: flex;
260
+ justify-content: space-between;
261
+ align-items: flex-start;
262
+ gap: 8px;
263
+ margin-bottom: 6px;
264
+
265
+ .card-name {
266
+ margin: 0;
267
+ font-size: 15px;
268
+ font-weight: 600;
269
+ color: #262626;
270
+ flex: 1;
271
+ overflow: hidden;
272
+ text-overflow: ellipsis;
273
+ white-space: nowrap;
274
+ }
275
+ }
276
+
277
+ .card-serial {
278
+ margin: 0 0 14px;
279
+ font-size: 13px;
280
+ color: #8c8c8c;
281
+ font-family: 'SFMono-Regular', Consolas, 'Liberation Mono', Menlo,
282
+ monospace;
283
+ }
284
+
285
+ .card-footer {
286
+ display: flex;
287
+ justify-content: space-between;
288
+ align-items: center;
289
+ padding-top: 12px;
290
+ border-top: 1px solid #f0f0f0;
291
+
292
+ .card-date {
293
+ font-size: 12px;
294
+ color: #bfbfbf;
295
+ }
296
+
297
+ .card-detail-link {
298
+ font-size: 13px;
299
+ color: #1890ff;
300
+ font-weight: 500;
301
+ cursor: pointer;
302
+
303
+ &:hover {
304
+ text-decoration: underline;
305
+ }
306
+ }
307
+ }
308
+ }
309
+ }
310
+
311
+ /* ========== 状态标签 ========== */
312
+ .status-badge {
313
+ display: inline-block;
314
+ padding: 2px 10px;
315
+ border-radius: 10px;
316
+ font-size: 11px;
317
+ font-weight: 600;
318
+ white-space: nowrap;
319
+ flex-shrink: 0;
320
+ }
321
+
322
+ /* ========== 响应式 ========== */
323
+ @media (max-width: 768px) {
324
+ min-height: 400px;
325
+
326
+ .asset-header {
327
+ height: 42px;
328
+ padding: 0 12px;
329
+
330
+ .header-left {
331
+ .header-title {
332
+ font-size: 14px;
333
+ }
334
+ }
335
+
336
+ .header-version {
337
+ display: none;
338
+ }
339
+ }
340
+
341
+ .asset-main {
342
+ flex-direction: column;
343
+ }
344
+
345
+ .asset-sidebar {
346
+ width: 100%;
347
+ border-right: none;
348
+ border-bottom: 1px solid #e8e8e8;
349
+ max-height: 120px;
350
+
351
+ .sidebar-header {
352
+ display: none;
353
+ }
354
+
355
+ .sidebar-nav {
356
+ display: flex;
357
+ overflow-x: auto;
358
+ overflow-y: hidden;
359
+ padding: 8px 12px;
360
+ gap: 6px;
361
+ }
362
+
363
+ .sidebar-item {
364
+ flex-shrink: 0;
365
+ padding: 6px 14px;
366
+ border-right: none;
367
+ border-radius: 16px;
368
+ font-size: 13px;
369
+
370
+ &.active {
371
+ background: #1890ff;
372
+ color: #fff;
373
+
374
+ .sidebar-icon {
375
+ color: #fff;
376
+ }
377
+ }
378
+
379
+ .sidebar-count {
380
+ display: none;
381
+ }
382
+ }
383
+
384
+ .sidebar-footer {
385
+ display: none;
386
+ }
387
+ }
388
+
389
+ .asset-toolbar {
390
+ padding: 10px 12px;
391
+ flex-wrap: wrap;
392
+
393
+ .toolbar-left {
394
+ max-width: 100%;
395
+ flex-wrap: wrap;
396
+
397
+ .search-input {
398
+ min-width: 0;
399
+ }
400
+
401
+ .status-select {
402
+ min-width: 120px;
403
+ }
404
+ }
405
+ }
406
+
407
+ .asset-grid-wrapper {
408
+ padding: 12px;
409
+ }
410
+
411
+ .asset-card {
412
+ .card-image {
413
+ height: 110px;
414
+ }
415
+
416
+ .card-body {
417
+ padding: 10px 12px;
418
+
419
+ .card-name {
420
+ font-size: 14px;
421
+ }
422
+ }
423
+ }
424
+ }
425
+ }
@@ -0,0 +1,60 @@
1
+ /**
2
+ * 资产浏览器组件类型定义
3
+ */
4
+ export interface CategoryItem {
5
+ id: string;
6
+ name: string;
7
+ }
8
+
9
+ export interface AssetItem {
10
+ id: string;
11
+ name: string;
12
+ categoryId__c?: string;
13
+ status__c?: string | number;
14
+ serialNumber__c?: string;
15
+ purchaseDate__c?: string | number;
16
+ productIMG__c?: any;
17
+ [key: string]: any;
18
+ }
19
+
20
+ export interface FilterParams {
21
+ categoryId: string | null;
22
+ keyword: string;
23
+ status: number | undefined;
24
+ }
25
+
26
+ export interface AssetManageProps {
27
+ assetApiKey?: string;
28
+ categoryApiKey?: string;
29
+ assetFields?: string[];
30
+ title?: string;
31
+ pageSize?: number;
32
+ data?: any;
33
+ className?: string;
34
+ /** Neo 平台注入的环境对象,包含 ctx.api 等能力 */
35
+ env?: any;
36
+ }
37
+
38
+ export interface AssetManageState {
39
+ categories: CategoryItem[];
40
+ assets: AssetItem[];
41
+ activeCategoryId: string | null;
42
+ searchKeyword: string;
43
+ statusFilter: number | undefined;
44
+ loadingCategories: boolean;
45
+ loadingAssets: boolean;
46
+ totalAssets: number;
47
+ createModalVisible: boolean;
48
+ }
49
+
50
+ /** 实体字段描述(与 entityTable / getDesc 返回结构对齐的最小集) */
51
+ export interface FieldDesc {
52
+ name: string;
53
+ label: string;
54
+ apiKey: string;
55
+ type: string;
56
+ itemType: string;
57
+ checkitem: any[];
58
+ selectitem?: any[];
59
+ required: boolean;
60
+ }
@@ -0,0 +1,47 @@
1
+ import * as React from 'react';
2
+ import { Tag } from 'antd';
3
+ import { ClockCircleOutlined } from '@ant-design/icons';
4
+ import type { BidItem } from '../types';
5
+ import { STATUS_MAP } from '../constants';
6
+ import { formatMoney, formatDate } from '../formatUtils';
7
+
8
+ export interface BidCardProps {
9
+ bid: BidItem;
10
+ active: boolean;
11
+ onSelect: (bid: BidItem) => void;
12
+ }
13
+
14
+ export function BidCard({ bid, active, onSelect }: BidCardProps) {
15
+ const statusInfo = STATUS_MAP[bid.status__c || ''] || {
16
+ label: bid.status__c || '未知',
17
+ color: 'default',
18
+ };
19
+
20
+ return (
21
+ <div
22
+ className={`bid-card ${active ? 'active' : ''}`}
23
+ onClick={() => onSelect(bid)}
24
+ >
25
+ <div className="bid-card-top">
26
+ <span className="bid-no">{bid.bidNo__c || '-'}</span>
27
+ <Tag color={statusInfo.color}>{statusInfo.label}</Tag>
28
+ </div>
29
+ <div className="bid-card-name" title={bid.name}>
30
+ {bid.name}
31
+ </div>
32
+ <div className="bid-card-meta">
33
+ <span className="meta-budget">{formatMoney(bid.totalBudget__c)}</span>
34
+ {bid.deadline__c && (
35
+ <span className="meta-deadline">
36
+ <ClockCircleOutlined /> {formatDate(bid.deadline__c)}
37
+ </span>
38
+ )}
39
+ </div>
40
+ {bid.purchaser__c && (
41
+ <div className="bid-card-purchaser" title={bid.purchaser__c}>
42
+ {bid.purchaser__c}
43
+ </div>
44
+ )}
45
+ </div>
46
+ );
47
+ }
@@ -0,0 +1,6 @@
1
+ export const STATUS_MAP: Record<string, { label: string; color: string }> = {
2
+ 草稿: { label: '草稿', color: 'default' },
3
+ 已校验: { label: '已校验', color: 'processing' },
4
+ 已提交: { label: '已提交', color: 'success' },
5
+ 退回: { label: '退回', color: 'error' },
6
+ };
@@ -0,0 +1,14 @@
1
+ export function formatMoney(val: number | undefined): string {
2
+ if (val == null) return '-';
3
+ return `¥${val.toLocaleString()}`;
4
+ }
5
+
6
+ export function formatDate(val: string | number | undefined): string {
7
+ if (!val) return '-';
8
+ const d = new Date(typeof val === 'string' ? val : Number(val));
9
+ if (isNaN(d.getTime())) return '-';
10
+ return `${d.getFullYear()}-${String(d.getMonth() + 1).padStart(
11
+ 2,
12
+ '0',
13
+ )}-${String(d.getDate()).padStart(2, '0')}`;
14
+ }