@dckj-npm/dc-material 0.1.375 → 0.1.377

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 (42) hide show
  1. package/build/docs/colorful-button.html +3 -3
  2. package/build/docs/colorful-input.html +3 -3
  3. package/build/docs/index.html +3 -3
  4. package/build/docs/teletext-list.html +3 -3
  5. package/build/docs/umi.6f6bf535.js +1 -0
  6. package/build/docs/{umi.6743fcd4.css → umi.9770df27.css} +1 -1
  7. package/build/docs/~demos/colorful-button-demo.html +3 -3
  8. package/build/docs/~demos/colorful-input-demo.html +3 -3
  9. package/build/docs/~demos/teletext-list-demo-1.html +3 -3
  10. package/build/docs/~demos/teletext-list-demo.html +3 -3
  11. package/build/lowcode/assets-daily.json +13 -13
  12. package/build/lowcode/assets-dev.json +2 -2
  13. package/build/lowcode/assets-prod.json +13 -13
  14. package/build/lowcode/meta.design.js +1 -1
  15. package/build/lowcode/meta.js +1 -1
  16. package/build/lowcode/render/default/view.css +1 -1
  17. package/build/lowcode/render/default/view.js +1 -1
  18. package/build/lowcode/view.css +1 -1
  19. package/build/lowcode/view.js +1 -1
  20. package/dist/BizComps.css +1 -1
  21. package/dist/BizComps.js +2 -2
  22. package/dist/BizComps.js.map +1 -1
  23. package/es/components/teletext-list/teletext-list-item.d.ts +14 -77
  24. package/es/components/teletext-list/teletext-list-item.js +153 -157
  25. package/es/components/teletext-list/teletext-list-item.scss +53 -4
  26. package/es/components/teletext-list/teletext-list.d.ts +60 -4
  27. package/es/components/teletext-list/teletext-list.js +55 -37
  28. package/lib/components/teletext-list/teletext-list-item.d.ts +14 -77
  29. package/lib/components/teletext-list/teletext-list-item.js +153 -156
  30. package/lib/components/teletext-list/teletext-list-item.scss +53 -4
  31. package/lib/components/teletext-list/teletext-list.d.ts +60 -4
  32. package/lib/components/teletext-list/teletext-list.js +55 -37
  33. package/lowcode/teletext-list/meta.ts +460 -760
  34. package/lowcode/teletext-list/meta.ts.bak +821 -0
  35. package/lowcode_es/meta.js +1 -1
  36. package/lowcode_es/teletext-list/meta.js +686 -646
  37. package/lowcode_es/teletext-list/meta.ts.bak +821 -0
  38. package/lowcode_lib/meta.js +1 -1
  39. package/lowcode_lib/teletext-list/meta.js +688 -648
  40. package/lowcode_lib/teletext-list/meta.ts.bak +821 -0
  41. package/package.json +3 -3
  42. package/build/docs/umi.04debc3c.js +0 -1
@@ -1,9 +1,4 @@
1
1
  import _extends from "@babel/runtime/helpers/extends";
2
- var IMAGE_KEY = 'image';
3
- var normalizeNodeKey = function normalizeNodeKey(rawKey) {
4
- if (rawKey === undefined || rawKey === null) return '';
5
- return String(rawKey).replace(/^\.?\$?/, '');
6
- };
7
2
  var parsePxNumber = function parsePxNumber(value) {
8
3
  if (typeof value === 'number' && Number.isFinite(value)) {
9
4
  return value;
@@ -20,49 +15,6 @@ var parsePxNumber = function parsePxNumber(value) {
20
15
  }
21
16
  return undefined;
22
17
  };
23
- var findImageChildNode = function findImageChildNode(target) {
24
- var _target$node;
25
- var children = target === null || target === void 0 ? void 0 : (_target$node = target.node) === null || _target$node === void 0 ? void 0 : _target$node.children;
26
- if (!children) return undefined;
27
- if (typeof children.find === 'function') {
28
- return children.find(function (child) {
29
- var _child$getPropValue;
30
- return normalizeNodeKey(child === null || child === void 0 ? void 0 : (_child$getPropValue = child.getPropValue) === null || _child$getPropValue === void 0 ? void 0 : _child$getPropValue.call(child, 'key')) === IMAGE_KEY;
31
- });
32
- }
33
- return undefined;
34
- };
35
- var getImageStyleNumber = function getImageStyleNumber(target, styleKey) {
36
- var imageChildNode = findImageChildNode(target);
37
- if (imageChildNode) {
38
- var _imageChildNode$getPr, _imageChildNode$getPr2;
39
- return parsePxNumber((_imageChildNode$getPr = imageChildNode.getPropValue) === null || _imageChildNode$getPr === void 0 ? void 0 : (_imageChildNode$getPr2 = _imageChildNode$getPr.call(imageChildNode, 'style')) === null || _imageChildNode$getPr2 === void 0 ? void 0 : _imageChildNode$getPr2[styleKey]);
40
- }
41
- return undefined;
42
- };
43
-
44
- /**
45
- * 同步 Image 子节点的 style.width / style.height。
46
- * 使用 Promise.resolve().then() 异步执行,避免在父节点 setPropValue
47
- * 的 MobX 同步响应链中触发子节点变更(可能导致 SettingField 重建)。
48
- */
49
- var syncImageStyleValue = function syncImageStyleValue(target, styleKey, value) {
50
- Promise.resolve().then(function () {
51
- var _imageChildNode$getPr3, _extends2, _imageChildNode$setPr;
52
- var imageChildNode = findImageChildNode(target);
53
- if (!imageChildNode) return;
54
- var currentStyle = ((_imageChildNode$getPr3 = imageChildNode.getPropValue) === null || _imageChildNode$getPr3 === void 0 ? void 0 : _imageChildNode$getPr3.call(imageChildNode, 'style')) || {};
55
- var updatedStyle = _extends({}, currentStyle, (_extends2 = {}, _extends2[styleKey] = value + "px", _extends2));
56
- var otherKey = styleKey === 'width' ? 'height' : 'width';
57
- if (!updatedStyle[otherKey]) {
58
- var _target$getProps, _target$getProps$call, _target$getProps$call2;
59
- var otherPropKey = otherKey === 'width' ? 'imgWidth' : 'imgHeight';
60
- var otherPropValue = parsePxNumber(target === null || target === void 0 ? void 0 : (_target$getProps = target.getProps) === null || _target$getProps === void 0 ? void 0 : (_target$getProps$call = _target$getProps.call(target)) === null || _target$getProps$call === void 0 ? void 0 : (_target$getProps$call2 = _target$getProps$call.getPropValue) === null || _target$getProps$call2 === void 0 ? void 0 : _target$getProps$call2.call(_target$getProps$call, otherPropKey));
61
- updatedStyle[otherKey] = (otherPropValue !== null && otherPropValue !== void 0 ? otherPropValue : 100) + "px";
62
- }
63
- (_imageChildNode$setPr = imageChildNode.setPropValue) === null || _imageChildNode$setPr === void 0 ? void 0 : _imageChildNode$setPr.call(imageChildNode, 'style', updatedStyle);
64
- });
65
- };
66
18
  var TeletextListMeta = {
67
19
  group: '低代码组件',
68
20
  componentName: 'TeletextList',
@@ -80,400 +32,717 @@ var TeletextListMeta = {
80
32
  subName: ''
81
33
  },
82
34
  configure: {
83
- props: [{
84
- title: {
85
- label: {
86
- type: 'i18n',
87
- 'en-US': 'type',
88
- 'zh-CN': '类型'
35
+ props: [
36
+ // ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
37
+ // 分组一:数据与内容
38
+ // ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
39
+ {
40
+ type: 'group',
41
+ title: '数据与内容',
42
+ display: 'accordion',
43
+ items: [{
44
+ title: '标题',
45
+ name: 'title',
46
+ description: '列表头部标题文本',
47
+ setter: {
48
+ componentName: 'StringSetter',
49
+ isRequired: false,
50
+ initialValue: ''
89
51
  }
90
- },
91
- name: 'type',
92
- description: '类型',
93
- setter: {
94
- componentName: 'RadioGroupSetter',
95
- props: {
96
- dataSource: [{
97
- label: '图文',
98
- value: 'textAndImg'
99
- }, {
100
- label: '仅有图片',
101
- value: 'imgOnly'
102
- }, {
103
- label: '仅有文字',
104
- value: 'textOnly'
105
- }],
106
- options: [{
107
- label: '图文',
108
- value: 'textAndImg'
109
- }, {
110
- label: '仅有图片',
111
- value: 'imgOnly'
112
- }, {
113
- label: '仅有文字',
114
- value: 'textOnly'
115
- }]
52
+ }, {
53
+ title: '更多文字',
54
+ name: 'moreText',
55
+ description: '更多按钮文字,为空时不显示',
56
+ setter: {
57
+ componentName: 'StringSetter',
58
+ isRequired: false,
59
+ initialValue: ''
60
+ }
61
+ }, {
62
+ title: '文本槽位数',
63
+ name: 'textLines',
64
+ description: '每项渲染几个文本字段:2=标题+说明,3=加text3,4=加text3+text4。这是"显示几格",不是"每格显示几行"——行数截断请到"标题/说明文字样式"分组修改"最大行数"。',
65
+ setter: {
66
+ componentName: 'NumberSetter',
67
+ isRequired: false,
68
+ initialValue: 2,
69
+ defaultValue: 2,
70
+ props: {
71
+ min: 2,
72
+ max: 4
73
+ }
116
74
  },
117
- initialValue: 'textAndImg'
118
- }
119
- }, {
120
- title: {
121
- label: {
122
- type: 'i18n',
123
- 'en-US': 'imagePlacement',
124
- 'zh-CN': '图片位置'
75
+ extraProps: {
76
+ setValue: function setValue(target, value) {
77
+ var _target$parent, _target$parent$items;
78
+ target.getProps().setPropValue('textLines', value);
79
+ var dataListBindProp = target === null || target === void 0 ? void 0 : (_target$parent = target.parent) === null || _target$parent === void 0 ? void 0 : (_target$parent$items = _target$parent.items) === null || _target$parent$items === void 0 ? void 0 : _target$parent$items.find(function (item) {
80
+ return item.name === 'dataListBind';
81
+ });
82
+ if (dataListBindProp !== null && dataListBindProp !== void 0 && dataListBindProp.setter) {
83
+ var baseChildren = [{
84
+ label: '图片链接',
85
+ value: 'image'
86
+ }, {
87
+ label: '类型',
88
+ value: 'itemType'
89
+ }, {
90
+ label: '标题',
91
+ value: 'title'
92
+ }, {
93
+ label: '说明',
94
+ value: 'description'
95
+ }];
96
+ var textChildren = value > 2 ? Array.from({
97
+ length: value - 2
98
+ }).map(function (_, i) {
99
+ return {
100
+ label: "\u6587\u672C" + (i + 3),
101
+ value: "text" + (i + 3)
102
+ };
103
+ }) : [];
104
+ dataListBindProp.setter.props.attributes[0].children = [].concat(baseChildren, textChildren);
105
+ }
106
+ }
125
107
  }
126
- },
127
- name: 'imagePlacement',
128
- description: '图片位置',
129
- setter: {
130
- componentName: 'RadioGroupSetter',
131
- props: {
132
- dataSource: [{
133
- label: '',
134
- value: 'left'
135
- }, {
136
- label: '',
137
- value: 'right'
138
- }, {
139
- label: '',
140
- value: 'top'
141
- }, {
142
- label: '',
143
- value: 'bottom'
144
- }, {
145
- label: '',
146
- value: 'none'
147
- }],
148
- options: [{
149
- label: '左',
150
- value: 'left'
151
- }, {
152
- label: '右',
153
- value: 'right'
154
- }, {
155
- label: '上',
156
- value: 'top'
157
- }, {
158
- label: '下',
159
- value: 'bottom'
160
- }, {
161
- label: '无',
162
- value: 'none'
163
- }]
108
+ }, {
109
+ title: '数据源绑定',
110
+ name: 'dataListBind',
111
+ setter: {
112
+ componentName: 'SetterFormVariable',
113
+ props: {
114
+ attributes: [{
115
+ label: '图文数据',
116
+ value: 'dataList',
117
+ children: [{
118
+ label: '图片链接',
119
+ value: 'image'
120
+ }, {
121
+ label: '行类型(值为"开关"时该行显示开关控件)',
122
+ value: 'itemType'
123
+ }, {
124
+ label: '标题',
125
+ value: 'title'
126
+ }, {
127
+ label: '说明',
128
+ value: 'description'
129
+ }]
130
+ }]
131
+ }
164
132
  },
165
- initialValue: 'left'
166
- },
167
- extraProps: {
168
- // 引擎已自动 setPropValue('imagePlacement', value),无需再做任何额外写入
169
- // 之前的快照-还原逻辑反而触发多余的 MobX 响应链,导致 dataList 被覆盖
170
- }
171
- }, {
172
- title: '图片宽度',
173
- name: 'imgWidth',
174
- description: '图片宽度',
175
- setter: {
176
- componentName: 'NumberSetter',
177
- isRequired: false,
178
- initialValue: 100
179
- },
180
- extraProps: {
181
- getValue: function getValue(target, value) {
182
- var _parsePxNumber;
183
- if (value !== undefined) return (_parsePxNumber = parsePxNumber(value)) !== null && _parsePxNumber !== void 0 ? _parsePxNumber : 100;
184
- var styleWidth = getImageStyleNumber(target, 'width');
185
- if (styleWidth !== undefined) return styleWidth;
186
- return 100;
133
+ extraProps: {}
134
+ }, {
135
+ title: {
136
+ label: {
137
+ type: 'i18n',
138
+ 'en-US': 'dataList',
139
+ 'zh-CN': '静态数据'
140
+ },
141
+ tip: 'dataList | 静态数据'
187
142
  },
188
- setValue: function setValue(target, value) {
189
- // 引擎已自动 setPropValue('imgWidth', value)
190
- // 只需同步到 Image 子节点的 style
191
- var parsedValue = parsePxNumber(value);
192
- if (parsedValue !== undefined) {
193
- syncImageStyleValue(target, 'width', parsedValue);
143
+ name: 'dataList',
144
+ description: '列表静态数据,绑定数据源后此项被覆盖',
145
+ setter: {
146
+ componentName: 'ArraySetter',
147
+ props: {
148
+ itemSetter: {
149
+ componentName: 'ObjectSetter',
150
+ props: {
151
+ config: {
152
+ items: [{
153
+ title: {
154
+ label: {
155
+ type: 'i18n',
156
+ 'en-US': 'title',
157
+ 'zh-CN': '标题'
158
+ }
159
+ },
160
+ name: 'title',
161
+ setter: {
162
+ componentName: 'StringSetter',
163
+ isRequired: false,
164
+ initialValue: ''
165
+ }
166
+ }, {
167
+ title: {
168
+ label: {
169
+ type: 'i18n',
170
+ 'en-US': 'image',
171
+ 'zh-CN': '图片地址'
172
+ }
173
+ },
174
+ name: 'image',
175
+ setter: {
176
+ componentName: 'CustomImageSetter',
177
+ isRequired: false,
178
+ initialValue: ''
179
+ }
180
+ }, {
181
+ title: {
182
+ label: {
183
+ type: 'i18n',
184
+ 'en-US': 'description',
185
+ 'zh-CN': '描述'
186
+ }
187
+ },
188
+ name: 'description',
189
+ setter: {
190
+ componentName: 'StringSetter',
191
+ isRequired: false,
192
+ initialValue: ''
193
+ }
194
+ }, {
195
+ title: {
196
+ label: {
197
+ type: 'i18n',
198
+ 'en-US': 'text3',
199
+ 'zh-CN': '文本3'
200
+ }
201
+ },
202
+ name: 'text3',
203
+ description: '文本槽位数 ≥ 3 时显示',
204
+ setter: {
205
+ componentName: 'StringSetter',
206
+ isRequired: false,
207
+ initialValue: ''
208
+ }
209
+ }, {
210
+ title: {
211
+ label: {
212
+ type: 'i18n',
213
+ 'en-US': 'text4',
214
+ 'zh-CN': '文本4'
215
+ }
216
+ },
217
+ name: 'text4',
218
+ description: '文本槽位数 = 4 时显示',
219
+ setter: {
220
+ componentName: 'StringSetter',
221
+ isRequired: false,
222
+ initialValue: ''
223
+ }
224
+ }, {
225
+ title: {
226
+ label: {
227
+ type: 'i18n',
228
+ 'en-US': 'itemType',
229
+ 'zh-CN': '行类型'
230
+ }
231
+ },
232
+ name: 'itemType',
233
+ description: '值为"开关"时该行显示开关控件,留空为默认文字行',
234
+ setter: {
235
+ componentName: 'SelectSetter',
236
+ props: {
237
+ options: [{
238
+ label: '默认(文字行)',
239
+ value: ''
240
+ }, {
241
+ label: '开关',
242
+ value: '开关'
243
+ }]
244
+ },
245
+ initialValue: ''
246
+ }
247
+ }],
248
+ extraSetter: {
249
+ componentName: 'MixedSetter',
250
+ isRequired: false,
251
+ props: {}
252
+ }
253
+ }
254
+ }
255
+ }
256
+ },
257
+ initialValue: function initialValue(target) {
258
+ var _target$node$schema$p, _target$node, _target$node$schema, _target$node$schema$p2, _target$getProps, _target$getProps$call, _target$getProps$call2;
259
+ var existing = (_target$node$schema$p = target === null || target === void 0 ? void 0 : (_target$node = target.node) === null || _target$node === void 0 ? void 0 : (_target$node$schema = _target$node.schema) === null || _target$node$schema === void 0 ? void 0 : (_target$node$schema$p2 = _target$node$schema.props) === null || _target$node$schema$p2 === void 0 ? void 0 : _target$node$schema$p2.dataList) !== null && _target$node$schema$p !== void 0 ? _target$node$schema$p : target === null || target === void 0 ? void 0 : (_target$getProps = target.getProps) === null || _target$getProps === void 0 ? void 0 : (_target$getProps$call = _target$getProps.call(target)) === null || _target$getProps$call === void 0 ? void 0 : (_target$getProps$call2 = _target$getProps$call.getPropValue) === null || _target$getProps$call2 === void 0 ? void 0 : _target$getProps$call2.call(_target$getProps$call, 'dataList');
260
+ if (existing !== undefined) return existing;
261
+ return DEFAULT_DATA_LIST;
194
262
  }
195
- }
196
- }
197
- }, {
198
- title: '图片高度',
199
- name: 'imgHeight',
200
- description: '图片高度',
201
- setter: {
202
- componentName: 'NumberSetter',
203
- isRequired: false,
204
- initialValue: 100
205
- },
206
- extraProps: {
207
- getValue: function getValue(target, value) {
208
- var _parsePxNumber2;
209
- if (value !== undefined) return (_parsePxNumber2 = parsePxNumber(value)) !== null && _parsePxNumber2 !== void 0 ? _parsePxNumber2 : 100;
210
- var styleHeight = getImageStyleNumber(target, 'height');
211
- if (styleHeight !== undefined) return styleHeight;
212
- return 100;
213
263
  },
214
- setValue: function setValue(target, value) {
215
- // 引擎已自动 setPropValue('imgHeight', value)
216
- // 只需同步到 Image 子节点的 style
217
- var parsedValue = parsePxNumber(value);
218
- if (parsedValue !== undefined) {
219
- syncImageStyleValue(target, 'height', parsedValue);
264
+ extraProps: {
265
+ ignoreDefaultValue: function ignoreDefaultValue() {
266
+ return true;
267
+ },
268
+ getValue: function getValue(target, currentValue) {
269
+ var _target$node2, _target$node2$schema, _target$node2$schema$;
270
+ if (currentValue !== undefined) return currentValue;
271
+ var fromSchema = target === null || target === void 0 ? void 0 : (_target$node2 = target.node) === null || _target$node2 === void 0 ? void 0 : (_target$node2$schema = _target$node2.schema) === null || _target$node2$schema === void 0 ? void 0 : (_target$node2$schema$ = _target$node2$schema.props) === null || _target$node2$schema$ === void 0 ? void 0 : _target$node2$schema$.dataList;
272
+ if (fromSchema !== undefined) return fromSchema;
273
+ return undefined;
220
274
  }
221
275
  }
222
- }
223
- }, {
224
- title: '数据源绑定',
225
- name: 'dataListBind',
226
- setter: {
227
- componentName: 'SetterFormVariable',
228
- props: {
229
- attributes: [{
230
- label: '图文数据',
231
- value: 'dataList',
232
- children: [{
233
- label: '图片链接',
234
- value: 'image'
276
+ }, {
277
+ title: '类型',
278
+ name: 'type',
279
+ description: '列表类型',
280
+ setter: {
281
+ componentName: 'RadioGroupSetter',
282
+ props: {
283
+ options: [{
284
+ label: '图文',
285
+ value: 'textAndImg'
235
286
  }, {
236
- label: '类型',
237
- value: 'itemType'
287
+ label: '仅图片',
288
+ value: 'imgOnly'
238
289
  }, {
239
- label: '标题',
240
- value: 'title'
290
+ label: '仅文字',
291
+ value: 'textOnly'
292
+ }]
293
+ },
294
+ initialValue: 'textAndImg'
295
+ }
296
+ }, {
297
+ title: '是否购物车列表',
298
+ name: 'isShoppingCart',
299
+ setter: {
300
+ componentName: 'BoolSetter',
301
+ isRequired: true,
302
+ initialValue: false
303
+ }
304
+ }, {
305
+ title: '是否愿望单列表',
306
+ name: 'isWishList',
307
+ setter: {
308
+ componentName: 'BoolSetter',
309
+ isRequired: true,
310
+ initialValue: false
311
+ }
312
+ }, {
313
+ title: '是否用户菜单列表',
314
+ name: 'isUserMenu',
315
+ setter: {
316
+ componentName: 'BoolSetter',
317
+ isRequired: true,
318
+ initialValue: false
319
+ }
320
+ }]
321
+ },
322
+ // ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
323
+ // 分组二:列表布局
324
+ // ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
325
+ {
326
+ type: 'group',
327
+ title: '列表布局',
328
+ display: 'accordion',
329
+ items: [{
330
+ title: '子项分布',
331
+ name: 'itemRowAlign',
332
+ description: '列方向或横向一行滚动',
333
+ setter: {
334
+ componentName: 'RadioGroupSetter',
335
+ props: {
336
+ options: [{
337
+ label: '纵向列表',
338
+ value: 'column'
241
339
  }, {
242
- label: '说明',
243
- value: 'description'
340
+ label: '横向滚动',
341
+ value: 'row'
244
342
  }]
245
- }]
343
+ },
344
+ initialValue: 'column'
246
345
  }
247
- },
248
- extraProps: {
249
- setValue: function setValue(target, value) {
250
- target.getProps().setPropValue('dataListBind', value);
346
+ }, {
347
+ title: '子项列数',
348
+ name: 'itemColumns',
349
+ description: '纵向模式时的列数(1-4)',
350
+ setter: {
351
+ componentName: 'NumberSetter',
352
+ isRequired: false,
353
+ initialValue: function initialValue(target) {
354
+ var p = target.getProps().getPropValue('imagePlacement');
355
+ return p === 'top' || p === 'bottom' ? 2 : 1;
356
+ },
357
+ defaultValue: function defaultValue(target) {
358
+ var p = target.getProps().getPropValue('imagePlacement');
359
+ return p === 'top' || p === 'bottom' ? 2 : 1;
360
+ },
361
+ props: {
362
+ min: 1,
363
+ max: 4
364
+ }
251
365
  }
252
- }
253
- }, {
254
- title: '标题',
255
- name: 'title',
256
- description: '标题',
257
- setter: {
258
- componentName: 'StringSetter',
259
- isRequired: false,
260
- initialValue: ''
261
- }
262
- }, {
263
- title: {
264
- label: {
265
- type: 'i18n',
266
- 'en-US': 'moreText',
267
- 'zh-CN': '更多文字'
268
- },
269
- tip: 'moreText | 更多文字'
270
- },
271
- name: 'moreText',
272
- description: '更多文字',
273
- setter: {
274
- componentName: 'StringSetter',
275
- isRequired: false,
276
- initialValue: ''
277
- }
278
- }, {
279
- title: '文字行数',
280
- name: 'textLines',
281
- description: '文字行数',
282
- setter: {
283
- componentName: 'NumberSetter',
284
- isRequired: false,
285
- initialValue: 2,
286
- defaultValue: 2,
287
- props: {
288
- min: 2,
289
- max: 4
366
+ }, {
367
+ title: '子项间距',
368
+ name: 'itemGap',
369
+ description: '子项之间的间距(px)',
370
+ setter: {
371
+ componentName: 'NumberSetter',
372
+ isRequired: false,
373
+ initialValue: 10,
374
+ defaultValue: 10,
375
+ props: {
376
+ min: 0
377
+ }
290
378
  }
291
- },
292
- extraProps: {
293
- setValue: function setValue(target, value) {
294
- var _target$node2, _schemaChildren$filte, _target$parent, _target$parent$items;
295
- target.getProps().setPropValue('textLines', value);
296
- var schema = target === null || target === void 0 ? void 0 : (_target$node2 = target.node) === null || _target$node2 === void 0 ? void 0 : _target$node2.schema;
297
- var node = target === null || target === void 0 ? void 0 : target.node;
298
- var schemaChildren = Array.isArray(schema === null || schema === void 0 ? void 0 : schema.children) ? schema.children : [];
299
-
300
- // 获取当前文本组件数量
301
- var currentLength = ((_schemaChildren$filte = schemaChildren.filter(function (child) {
302
- var _child$props, _child$props$key;
303
- return child.componentName === 'NextText' && (child === null || child === void 0 ? void 0 : (_child$props = child.props) === null || _child$props === void 0 ? void 0 : (_child$props$key = _child$props.key) === null || _child$props$key === void 0 ? void 0 : _child$props$key.startsWith('text-'));
304
- })) === null || _schemaChildren$filte === void 0 ? void 0 : _schemaChildren$filte.length) || 0;
305
- if (value > currentLength) {
306
- // 需要添加新的文本组件
307
- for (var i = currentLength + 1; i <= value; i++) {
308
- var _node$children;
309
- var newChild = {
310
- componentName: 'NextText',
311
- props: {
312
- type: 'inherit',
313
- children: '基于 Ali-Lowcode-Engine 快速打造高生产力的低代码研发平台',
314
- key: "text-" + i
315
- }
316
- };
317
- node === null || node === void 0 ? void 0 : (_node$children = node.children) === null || _node$children === void 0 ? void 0 : _node$children.push(newChild);
318
- }
319
- } else if (value < currentLength) {
320
- var _node$children2, _node$children2$forEa;
321
- // 收集需要移除的节点,再调用 child.remove() 通过引擎 API 逐个删除
322
- // 避免 node.children = [...] 直接赋值(IPublicModelNodeChildren 不支持重新赋值)
323
- var nodesToRemove = [];
324
- node === null || node === void 0 ? void 0 : (_node$children2 = node.children) === null || _node$children2 === void 0 ? void 0 : (_node$children2$forEa = _node$children2.forEach) === null || _node$children2$forEa === void 0 ? void 0 : _node$children2$forEa.call(_node$children2, function (child) {
325
- var _child$schema, _child$schema$props;
326
- var key = child === null || child === void 0 ? void 0 : (_child$schema = child.schema) === null || _child$schema === void 0 ? void 0 : (_child$schema$props = _child$schema.props) === null || _child$schema$props === void 0 ? void 0 : _child$schema$props.key;
327
- if ((child === null || child === void 0 ? void 0 : child.componentName) === 'NextText' && typeof key === 'string' && key.startsWith('text-')) {
328
- var order = Number(key.split('-')[1]);
329
- if (!Number.isNaN(order) && order > value) {
330
- nodesToRemove.push(child);
331
- }
332
- }
333
- });
334
- nodesToRemove.forEach(function (child) {
335
- var _child$remove;
336
- return child === null || child === void 0 ? void 0 : (_child$remove = child.remove) === null || _child$remove === void 0 ? void 0 : _child$remove.call(child);
337
- });
379
+ }]
380
+ },
381
+ // ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
382
+ // 分组三:列表项样式
383
+ // ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
384
+ {
385
+ type: 'group',
386
+ title: '子项样式',
387
+ display: 'accordion',
388
+ items: [{
389
+ title: '内边距',
390
+ name: 'itemPadding',
391
+ description: '列表项内边距(px)',
392
+ setter: {
393
+ componentName: 'NumberSetter',
394
+ isRequired: false,
395
+ initialValue: 0,
396
+ defaultValue: 0,
397
+ props: {
398
+ min: 0
399
+ }
400
+ }
401
+ }, {
402
+ title: '背景颜色',
403
+ name: 'itemBgColor',
404
+ description: '列表项背景颜色',
405
+ setter: {
406
+ componentName: 'ColorSetter',
407
+ isRequired: false,
408
+ initialValue: '#ffffff'
409
+ }
410
+ }, {
411
+ title: '圆角',
412
+ name: 'itemBorderRadius',
413
+ description: '列表项圆角(px)',
414
+ setter: {
415
+ componentName: 'NumberSetter',
416
+ isRequired: false,
417
+ initialValue: 0,
418
+ defaultValue: 0,
419
+ props: {
420
+ min: 0
338
421
  }
339
-
340
- // 更新数据源绑定的配置
341
- var dataListBindProp = target === null || target === void 0 ? void 0 : (_target$parent = target.parent) === null || _target$parent === void 0 ? void 0 : (_target$parent$items = _target$parent.items) === null || _target$parent$items === void 0 ? void 0 : _target$parent$items.find(function (item) {
342
- return item.name === 'dataListBind';
343
- });
344
- if (dataListBindProp && dataListBindProp.setter) {
345
- var baseChildren = [{
346
- label: '图片链接',
347
- value: 'image'
422
+ }
423
+ }, {
424
+ title: '边框颜色',
425
+ name: 'itemBorderColor',
426
+ description: '列表项边框颜色',
427
+ setter: {
428
+ componentName: 'ColorSetter',
429
+ isRequired: false,
430
+ initialValue: ''
431
+ }
432
+ }, {
433
+ title: '边框宽度',
434
+ name: 'itemBorderWidth',
435
+ description: '列表项边框宽度(px),设置边框颜色后生效',
436
+ setter: {
437
+ componentName: 'NumberSetter',
438
+ isRequired: false,
439
+ initialValue: 0,
440
+ defaultValue: 0,
441
+ props: {
442
+ min: 0,
443
+ max: 10
444
+ }
445
+ }
446
+ }]
447
+ },
448
+ // ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
449
+ // 分组四:图片样式
450
+ // ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
451
+ {
452
+ type: 'group',
453
+ title: '图片样式',
454
+ display: 'accordion',
455
+ items: [{
456
+ title: '图片位置',
457
+ name: 'imagePlacement',
458
+ setter: {
459
+ componentName: 'RadioGroupSetter',
460
+ props: {
461
+ options: [{
462
+ label: '左',
463
+ value: 'left'
464
+ }, {
465
+ label: '右',
466
+ value: 'right'
467
+ }, {
468
+ label: '上',
469
+ value: 'top'
348
470
  }, {
349
- label: '类型',
350
- value: 'itemType'
471
+ label: '',
472
+ value: 'bottom'
351
473
  }, {
352
- label: '标题',
353
- value: 'title'
474
+ label: '',
475
+ value: 'none'
476
+ }]
477
+ },
478
+ initialValue: 'left'
479
+ },
480
+ extraProps: {}
481
+ }, {
482
+ title: '图文对齐',
483
+ name: 'textAlign',
484
+ description: '图片与文字的交叉轴对齐方式',
485
+ setter: {
486
+ componentName: 'RadioGroupSetter',
487
+ props: {
488
+ options: [{
489
+ label: '顶对齐',
490
+ value: 'flex-start'
491
+ }, {
492
+ label: '居中',
493
+ value: 'center'
354
494
  }, {
355
- label: '说明',
356
- value: 'description'
357
- }];
358
-
359
- // 只有当value大于2时才添加额外的文本字段
360
- var textChildren = value > 2 ? Array.from({
361
- length: value - 2
362
- }).map(function (_, index) {
363
- return {
364
- label: "\u6587\u672C" + (index + 3),
365
- value: "text" + (index + 3)
366
- };
367
- }) : [];
368
-
369
- // 更新setter的attributes
370
- dataListBindProp.setter.props.attributes[0].children = [].concat(baseChildren, textChildren);
495
+ label: '底对齐',
496
+ value: 'flex-end'
497
+ }]
498
+ },
499
+ initialValue: 'flex-start'
500
+ }
501
+ }, {
502
+ title: '图文间距',
503
+ name: 'textImgGap',
504
+ description: '图片与文字区域之间的间距(px)',
505
+ setter: {
506
+ componentName: 'NumberSetter',
507
+ isRequired: false,
508
+ initialValue: 16,
509
+ defaultValue: 16,
510
+ props: {
511
+ min: 0
371
512
  }
372
513
  }
373
- }
374
- }, {
375
- title: '子项列数',
376
- name: 'itemColumns',
377
- description: '子项列数',
378
- setter: {
379
- componentName: 'NumberSetter',
380
- isRequired: false,
381
- initialValue: function initialValue(target) {
382
- var isTwoColumns = target.getProps().getPropValue('imagePlacement') === 'top' || target.getProps().getPropValue('imagePlacement') === 'bottom';
383
- return isTwoColumns ? 2 : 1;
384
- },
385
- defaultValue: function defaultValue(target) {
386
- var isTwoColumns = target.getProps().getPropValue('imagePlacement') === 'top' || target.getProps().getPropValue('imagePlacement') === 'bottom';
387
- return isTwoColumns ? 2 : 1;
514
+ }, {
515
+ title: '宽度',
516
+ name: 'imgWidth',
517
+ description: '图片宽度(px)',
518
+ setter: {
519
+ componentName: 'NumberSetter',
520
+ isRequired: false,
521
+ initialValue: 100,
522
+ props: {
523
+ min: 10
524
+ }
388
525
  },
389
- props: {
390
- min: 1,
391
- max: 2
526
+ extraProps: {
527
+ ignoreDefaultValue: function ignoreDefaultValue() {
528
+ return true;
529
+ },
530
+ getValue: function getValue(target, value) {
531
+ var _target$node3, _target$node3$schema, _target$node3$schema$;
532
+ var parsed = parsePxNumber(value);
533
+ if (parsed !== undefined) return parsed;
534
+ var fromSchema = parsePxNumber(target === null || target === void 0 ? void 0 : (_target$node3 = target.node) === null || _target$node3 === void 0 ? void 0 : (_target$node3$schema = _target$node3.schema) === null || _target$node3$schema === void 0 ? void 0 : (_target$node3$schema$ = _target$node3$schema.props) === null || _target$node3$schema$ === void 0 ? void 0 : _target$node3$schema$.imgWidth);
535
+ if (fromSchema !== undefined) return fromSchema;
536
+ return 100;
537
+ }
392
538
  }
393
- }
394
- }, {
395
- title: '子项间距',
396
- name: 'itemGap',
397
- description: '子项间距',
398
- setter: {
399
- componentName: 'NumberSetter',
400
- isRequired: false,
401
- initialValue: 10,
402
- defaultValue: 10
403
- }
404
- }, {
405
- title: '子项内边距',
406
- name: 'itemPadding',
407
- description: '子项内边距',
408
- setter: {
409
- componentName: 'NumberSetter',
410
- isRequired: false,
411
- initialValue: 0,
412
- defaultValue: 0
413
- }
414
- }, {
415
- title: '子项背景颜色',
416
- name: 'itemBgColor',
417
- description: '子项背景颜色',
418
- setter: {
419
- componentName: 'ColorSetter',
420
- isRequired: false,
421
- initialValue: '#fff',
422
- defaultValue: '#fff'
423
- }
424
- }, {
425
- title: '子项分布',
426
- name: 'itemRowAlign',
427
- description: '子项分布',
428
- setter: {
429
- componentName: 'SelectSetter',
430
- props: {
431
- options: [{
432
- label: '列分布',
433
- value: 'column'
434
- }, {
435
- label: '一行显示',
436
- value: 'row'
437
- }]
438
- },
439
- initialValue: 'column'
440
- }
441
- }, {
442
- title: '图文对齐方式',
443
- name: 'textAlign',
444
- description: '图文对齐方式',
445
- setter: {
446
- componentName: 'SelectSetter',
447
- props: {
448
- options: [{
449
- label: '左对齐',
450
- value: 'flex-start'
451
- }, {
452
- label: '右对齐',
453
- value: 'flex-end'
454
- }, {
455
- label: '居中对齐',
456
- value: 'center'
457
- }]
539
+ }, {
540
+ title: '高度',
541
+ name: 'imgHeight',
542
+ description: '图片高度(px)',
543
+ setter: {
544
+ componentName: 'NumberSetter',
545
+ isRequired: false,
546
+ initialValue: 100,
547
+ props: {
548
+ min: 10
549
+ }
458
550
  },
459
- initialValue: 'flex-start'
460
- }
461
- }, {
462
- title: '图文间距',
463
- name: 'textImgGap',
464
- description: '图文间距',
465
- setter: {
466
- componentName: 'NumberSetter',
467
- isRequired: false,
468
- initialValue: 0,
469
- defaultValue: 0
470
- }
471
- }, {
472
- title: '图标配置',
551
+ extraProps: {
552
+ ignoreDefaultValue: function ignoreDefaultValue() {
553
+ return true;
554
+ },
555
+ getValue: function getValue(target, value) {
556
+ var _target$node4, _target$node4$schema, _target$node4$schema$;
557
+ var parsed = parsePxNumber(value);
558
+ if (parsed !== undefined) return parsed;
559
+ var fromSchema = parsePxNumber(target === null || target === void 0 ? void 0 : (_target$node4 = target.node) === null || _target$node4 === void 0 ? void 0 : (_target$node4$schema = _target$node4.schema) === null || _target$node4$schema === void 0 ? void 0 : (_target$node4$schema$ = _target$node4$schema.props) === null || _target$node4$schema$ === void 0 ? void 0 : _target$node4$schema$.imgHeight);
560
+ if (fromSchema !== undefined) return fromSchema;
561
+ return 100;
562
+ }
563
+ }
564
+ }, {
565
+ title: '圆角',
566
+ name: 'imgBorderRadius',
567
+ description: '图片圆角(px),设为 999 可得到圆形',
568
+ setter: {
569
+ componentName: 'NumberSetter',
570
+ isRequired: false,
571
+ initialValue: 0,
572
+ defaultValue: 0,
573
+ props: {
574
+ min: 0
575
+ }
576
+ }
577
+ }, {
578
+ title: '填充方式',
579
+ name: 'imgObjectFit',
580
+ description: '图片在容器内的填充方式',
581
+ setter: {
582
+ componentName: 'RadioGroupSetter',
583
+ props: {
584
+ options: [{
585
+ label: '覆盖',
586
+ value: 'cover'
587
+ }, {
588
+ label: '适应',
589
+ value: 'contain'
590
+ }, {
591
+ label: '拉伸',
592
+ value: 'fill'
593
+ }, {
594
+ label: '原始',
595
+ value: 'none'
596
+ }]
597
+ },
598
+ initialValue: 'cover'
599
+ }
600
+ }]
601
+ },
602
+ // ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
603
+ // 分组五:标题文字样式
604
+ // ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
605
+ {
606
+ type: 'group',
607
+ title: '标题文字样式',
608
+ display: 'accordion',
609
+ items: [{
610
+ title: '颜色',
611
+ name: 'titleColor',
612
+ setter: {
613
+ componentName: 'ColorSetter',
614
+ isRequired: false,
615
+ initialValue: ''
616
+ }
617
+ }, {
618
+ title: '字体大小',
619
+ name: 'titleFontSize',
620
+ description: '标题字体大小(px)',
621
+ setter: {
622
+ componentName: 'NumberSetter',
623
+ isRequired: false,
624
+ initialValue: 14,
625
+ defaultValue: 14,
626
+ props: {
627
+ min: 10,
628
+ max: 60
629
+ }
630
+ }
631
+ }, {
632
+ title: '字重',
633
+ name: 'titleFontWeight',
634
+ setter: {
635
+ componentName: 'RadioGroupSetter',
636
+ props: {
637
+ options: [{
638
+ label: '常规',
639
+ value: 'normal'
640
+ }, {
641
+ label: '中等',
642
+ value: '500'
643
+ }, {
644
+ label: '半粗',
645
+ value: '600'
646
+ }, {
647
+ label: '粗体',
648
+ value: 'bold'
649
+ }]
650
+ },
651
+ initialValue: '600'
652
+ }
653
+ }, {
654
+ title: '最大行数',
655
+ name: 'titleLineClamp',
656
+ description: '超出后显示省略号,0 表示不限制',
657
+ setter: {
658
+ componentName: 'NumberSetter',
659
+ isRequired: false,
660
+ initialValue: 1,
661
+ defaultValue: 1,
662
+ props: {
663
+ min: 0,
664
+ max: 10
665
+ }
666
+ }
667
+ }]
668
+ },
669
+ // ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
670
+ // 分组六:说明文字样式
671
+ // ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
672
+ {
673
+ type: 'group',
674
+ title: '说明文字样式',
675
+ display: 'accordion',
676
+ items: [{
677
+ title: '颜色',
678
+ name: 'descriptionColor',
679
+ setter: {
680
+ componentName: 'ColorSetter',
681
+ isRequired: false,
682
+ initialValue: ''
683
+ }
684
+ }, {
685
+ title: '字体大小',
686
+ name: 'descriptionFontSize',
687
+ description: '说明字体大小(px)',
688
+ setter: {
689
+ componentName: 'NumberSetter',
690
+ isRequired: false,
691
+ initialValue: 13,
692
+ defaultValue: 13,
693
+ props: {
694
+ min: 10,
695
+ max: 60
696
+ }
697
+ }
698
+ }, {
699
+ title: '字重',
700
+ name: 'descriptionFontWeight',
701
+ setter: {
702
+ componentName: 'RadioGroupSetter',
703
+ props: {
704
+ options: [{
705
+ label: '常规',
706
+ value: 'normal'
707
+ }, {
708
+ label: '中等',
709
+ value: '500'
710
+ }, {
711
+ label: '半粗',
712
+ value: '600'
713
+ }, {
714
+ label: '粗体',
715
+ value: 'bold'
716
+ }]
717
+ },
718
+ initialValue: 'normal'
719
+ }
720
+ }, {
721
+ title: '最大行数',
722
+ name: 'descriptionLineClamp',
723
+ description: '超出后显示省略号,0 表示不限制',
724
+ setter: {
725
+ componentName: 'NumberSetter',
726
+ isRequired: false,
727
+ initialValue: 1,
728
+ defaultValue: 1,
729
+ props: {
730
+ min: 0,
731
+ max: 10
732
+ }
733
+ }
734
+ }]
735
+ },
736
+ // ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
737
+ // 浮层图标
738
+ // ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
739
+ {
740
+ title: '浮层图标',
473
741
  name: 'iconList',
742
+ description: '在每个列表项上叠加绝对定位图标(如角标、标签等)',
474
743
  extraProps: {
475
744
  display: 'accordion',
476
- defaultCollapsed: false
745
+ defaultCollapsed: true
477
746
  },
478
747
  setter: {
479
748
  componentName: 'ArraySetter',
@@ -586,138 +855,6 @@ var TeletextListMeta = {
586
855
  }
587
856
  }
588
857
  }
589
- }, {
590
- title: '是否为购物车列表',
591
- name: 'isShoppingCart',
592
- description: '是否为购物车列表',
593
- setter: {
594
- componentName: 'BoolSetter',
595
- isRequired: true,
596
- initialValue: false
597
- }
598
- }, {
599
- title: '是否为愿望单列表',
600
- name: 'isWishList',
601
- description: '是否为愿望单列表',
602
- setter: {
603
- componentName: 'BoolSetter',
604
- isRequired: true,
605
- initialValue: false
606
- }
607
- }, {
608
- title: '是否为用户菜单列表',
609
- name: 'isUserMenu',
610
- description: '是否为用户菜单列表',
611
- setter: {
612
- componentName: 'BoolSetter',
613
- isRequired: true,
614
- initialValue: false
615
- }
616
- }, {
617
- title: {
618
- label: {
619
- type: 'i18n',
620
- 'en-US': 'dataList',
621
- 'zh-CN': '数据'
622
- },
623
- tip: 'dataList | 数据'
624
- },
625
- name: 'dataList',
626
- description: '数据',
627
- setter: {
628
- componentName: 'ArraySetter',
629
- props: {
630
- itemSetter: {
631
- componentName: 'ObjectSetter',
632
- props: {
633
- config: {
634
- items: [{
635
- title: {
636
- label: {
637
- type: 'i18n',
638
- 'en-US': 'title',
639
- 'zh-CN': '标题'
640
- }
641
- },
642
- name: 'title',
643
- description: '标题',
644
- setter: {
645
- componentName: 'StringSetter',
646
- isRequired: false,
647
- initialValue: ''
648
- }
649
- }, {
650
- title: {
651
- label: {
652
- type: 'i18n',
653
- 'en-US': 'image',
654
- 'zh-CN': '图片地址'
655
- }
656
- },
657
- name: 'image',
658
- description: '图片地址',
659
- setter: {
660
- componentName: 'CustomImageSetter',
661
- isRequired: false,
662
- initialValue: ''
663
- }
664
- }, {
665
- title: {
666
- label: {
667
- type: 'i18n',
668
- 'en-US': 'description',
669
- 'zh-CN': '描述'
670
- }
671
- },
672
- name: 'description',
673
- description: '描述',
674
- setter: {
675
- componentName: 'StringSetter',
676
- isRequired: false,
677
- initialValue: ''
678
- }
679
- }],
680
- extraSetter: {
681
- componentName: 'MixedSetter',
682
- isRequired: false,
683
- props: {}
684
- }
685
- }
686
- }
687
- }
688
- },
689
- initialValue: function initialValue(target) {
690
- var _target$node$schema$p, _target$node3, _target$node3$schema, _target$node3$schema$, _target$getProps2, _target$getProps2$cal, _target$getProps2$cal2;
691
- // ignoreDefaultValue: () => true 保证此函数在 SettingFieldView remount 时
692
- // 永远不会被 initDefaultValue 调用,仅作为安全兜底保留。
693
- // 正常的首次创建数据由 snippet.props.dataList 提供。
694
- var existing = (_target$node$schema$p = target === null || target === void 0 ? void 0 : (_target$node3 = target.node) === null || _target$node3 === void 0 ? void 0 : (_target$node3$schema = _target$node3.schema) === null || _target$node3$schema === void 0 ? void 0 : (_target$node3$schema$ = _target$node3$schema.props) === null || _target$node3$schema$ === void 0 ? void 0 : _target$node3$schema$.dataList) !== null && _target$node$schema$p !== void 0 ? _target$node$schema$p : target === null || target === void 0 ? void 0 : (_target$getProps2 = target.getProps) === null || _target$getProps2 === void 0 ? void 0 : (_target$getProps2$cal = _target$getProps2.call(target)) === null || _target$getProps2$cal === void 0 ? void 0 : (_target$getProps2$cal2 = _target$getProps2$cal.getPropValue) === null || _target$getProps2$cal2 === void 0 ? void 0 : _target$getProps2$cal2.call(_target$getProps2$cal, 'dataList');
695
- if (existing !== undefined) return existing;
696
- return DEFAULT_DATA_LIST;
697
- }
698
- },
699
- extraProps: {
700
- /**
701
- * ignoreDefaultValue: 彻底阻止引擎在 SettingFieldView remount 时
702
- * 调用 initDefaultValue → 把 initialValue(默认数据数组)通过 field.setValue
703
- * 写入 dataList prop,覆盖已绑定的 JSExpression。
704
- *
705
- * 这是根本性解决方案:在引擎层面阻断 initDefaultValue 的执行,
706
- * 而不是试图在 initialValue/getValue/setValue 中做缓存和还原来补救。
707
- */
708
- ignoreDefaultValue: function ignoreDefaultValue() {
709
- return true;
710
- },
711
- getValue: function getValue(target, currentValue) {
712
- var _target$node4, _target$node4$schema, _target$node4$schema$;
713
- // currentValue 已有值时直接返回
714
- if (currentValue !== undefined) return currentValue;
715
- // 从 schema 快照兜底读取(最可靠的源头数据,始终反映持久化状态)
716
- var fromSchema = target === null || target === void 0 ? void 0 : (_target$node4 = target.node) === null || _target$node4 === void 0 ? void 0 : (_target$node4$schema = _target$node4.schema) === null || _target$node4$schema === void 0 ? void 0 : (_target$node4$schema$ = _target$node4$schema.props) === null || _target$node4$schema$ === void 0 ? void 0 : _target$node4$schema$.dataList;
717
- if (fromSchema !== undefined) return fromSchema;
718
- return undefined;
719
- }
720
- }
721
858
  }],
722
859
  supports: {
723
860
  style: true,
@@ -757,106 +894,9 @@ var getSnippets = function getSnippets(textLines) {
757
894
  // 因为 dataList 使用了 ignoreDefaultValue:()=>true 来阻止引擎在
758
895
  // SettingFieldView remount 时覆盖已绑定的 JSExpression,
759
896
  // 所以 initDefaultValue 永远不会运行,首次拖入的初始数据必须由 snippet 提供。
760
- dataList: DEFAULT_DATA_LIST
761
- },
762
- children: [{
763
- componentName: 'NextText',
764
- props: {
765
- type: 'h5',
766
- children: '列表标题',
767
- key: 'box-title',
768
- style: {
769
- fontSize: '16px',
770
- fontWeight: 'bold'
771
- }
772
- }
773
- }, {
774
- componentName: 'Image',
775
- props: {
776
- imgSrc: 'https://img.alicdn.com/tps/TB16TQvOXXXXXbiaFXXXXXXXXXX-120-120.svg',
777
- key: 'image'
778
- }
779
- },
780
- // 动态生成文本组件
781
- // ...Array.from({ length: textLines }).map((_, index) => ({
782
- // componentName: 'NextText',
783
- // props: {
784
- // type: index === 0 ? 'h5' : 'inherit',
785
- // children:
786
- // index === 0
787
- // ? '标题标题'
788
- // : '基于1 Ali-Lowcode-Engine 快速打造高生产力的低代码研发平台, 基于自然布局体系快速搭建页面',
789
- // key: `text-${index + 1}`,
790
- // },
791
- // })),
792
- {
793
- componentName: 'NextText',
794
- props: {
795
- type: 'h5',
796
- children: '标题标题',
797
- key: "text-1"
798
- }
799
- }, {
800
- componentName: 'NextText',
801
- props: {
802
- type: 'inherit',
803
- children: '基于1 Ali-Lowcode-Engine 快速打造高生产力的低代码研发平台, 基于自然布局体系快速搭建页面',
804
- key: "text-2"
805
- }
806
- }, {
807
- componentName: 'NextText',
808
- props: {
809
- type: 'inherit',
810
- children: '基于1 Ali-Lowcode-Engine 快速打造高生产力的低代码研发平台, 基于自然布局体系快速搭建页面',
811
- key: "text-3"
812
- }
813
- }, {
814
- componentName: 'NextText',
815
- props: {
816
- type: 'inherit',
817
- children: '基于1 Ali-Lowcode-Engine 快速打造高生产力的低代码研发平台, 基于自然布局体系快速搭建页面',
818
- key: "text-4"
819
- }
820
- }, {
821
- componentName: 'Select',
822
- props: {
823
- popType: 'dialog',
824
- selectType: 'number',
825
- value: 1,
826
- prefix: '数量: ',
827
- dialogTitle: '选择数量',
828
- btnText: '确定',
829
- key: 'select-box-1'
830
- }
831
- }, {
832
- componentName: 'Select',
833
- props: {
834
- popType: 'dialog',
835
- selectType: 'string',
836
- dataList: [{
837
- label: 'M',
838
- value: 'M'
839
- }, {
840
- label: 'X',
841
- value: 'X'
842
- }, {
843
- label: 'XL',
844
- value: 'XL'
845
- }],
846
- value: 'X',
847
- prefix: '尺码: ',
848
- dialogTitle: '选择尺码',
849
- btnText: '确定',
850
- key: 'select-box-2'
851
- }
852
- }, {
853
- componentName: 'Switch',
854
- props: {
855
- size: 'small',
856
- disabled: false,
857
- key: 'switch-1'
858
- }
859
- }]
897
+ dataList: DEFAULT_DATA_LIST,
898
+ title: '列表标题'
899
+ }
860
900
  }
861
901
  }];
862
902
  };