cloud-web-corejs 1.0.54-dev.742 → 1.0.54-dev.743

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.
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "cloud-web-corejs",
3
3
  "private": false,
4
- "version": "1.0.54-dev.742",
4
+ "version": "1.0.54-dev.743",
5
5
  "scripts": {
6
6
  "dev": "vue-cli-service serve",
7
7
  "lint": "eslint --ext .js,.vue src",
@@ -111,6 +111,28 @@
111
111
  <i class="el-icon-arrow-right"></i>
112
112
  </el-button>
113
113
  </div>
114
+ <div class="base-area-footer">
115
+ <el-button
116
+ type="primary"
117
+ plain
118
+ class="button-sty"
119
+ @mousedown.prevent
120
+ @click="cancelSelection"
121
+ >
122
+ <i class="el-icon-close el-icon"></i>
123
+ {{ cancelText }}
124
+ </el-button>
125
+ <el-button
126
+ type="primary"
127
+ class="button-sty"
128
+ :disabled="!canConfirm"
129
+ @mousedown.prevent
130
+ @click="confirmSelection"
131
+ >
132
+ <i class="el-icon-check el-icon"></i>
133
+ {{ confirmText }}
134
+ </el-button>
135
+ </div>
114
136
  </div>
115
137
  <div slot="reference" class="base-area-trigger">
116
138
  <el-input
@@ -159,6 +181,11 @@ export default {
159
181
  type: Number,
160
182
  default: 4,
161
183
  },
184
+ /** 至少选到该层级才提交值(1-4);分支无下级数据时视为末级 */
185
+ minLevel: {
186
+ type: Number,
187
+ default: 1,
188
+ },
162
189
  locale: {
163
190
  type: String,
164
191
  default: null,
@@ -187,6 +214,14 @@ export default {
187
214
  type: String,
188
215
  default: "暂无匹配地区",
189
216
  },
217
+ confirmText: {
218
+ type: String,
219
+ default: "确 定",
220
+ },
221
+ cancelText: {
222
+ type: String,
223
+ default: "取 消",
224
+ },
190
225
  size: {
191
226
  type: String,
192
227
  default: "small",
@@ -219,6 +254,7 @@ export default {
219
254
  committedBrowseSnapshot: null,
220
255
  committedBoundValue: null,
221
256
  lastSelectionPayload: null,
257
+ pendingLeaf: false,
222
258
  };
223
259
  },
224
260
  computed: {
@@ -268,6 +304,19 @@ export default {
268
304
  browseLevelCount() {
269
305
  return Math.max(this.maxLevel, this.selectedPath.length, 1);
270
306
  },
307
+ effectiveMinLevel() {
308
+ const min = this.minLevel == null ? 1 : this.minLevel;
309
+ return Math.max(1, Math.min(min, this.maxLevel));
310
+ },
311
+ canConfirm() {
312
+ if (!this.selectedPath.length) {
313
+ return false;
314
+ }
315
+ /* 达到最小选择层级,或该地区无下级数据(视为末级) */
316
+ return (
317
+ this.selectedPath.length >= this.effectiveMinLevel || this.pendingLeaf
318
+ );
319
+ },
271
320
  currentLevelLabel() {
272
321
  return LEVEL_LABELS[this.activeLevel - 1] || `第${this.activeLevel}级`;
273
322
  },
@@ -515,6 +564,7 @@ export default {
515
564
  return level === 1 || this.selectedPath.length >= level - 1;
516
565
  },
517
566
  handlePopoverShow() {
567
+ this.pendingLeaf = false;
518
568
  this.saveCommittedBrowseSnapshot();
519
569
  this.$emit("popover-open");
520
570
  this.$nextTick(() => {
@@ -1013,6 +1063,7 @@ export default {
1013
1063
  this.searchKeyword = "";
1014
1064
  this.searchList = [];
1015
1065
  this.searchDropdownVisible = false;
1066
+ this.pendingLeaf = false;
1016
1067
  this.cancelPendingSync();
1017
1068
  this.emitChangeIfCommitted();
1018
1069
  this.restoreBrowseStateIfUncommitted();
@@ -1068,6 +1119,19 @@ export default {
1068
1119
  }
1069
1120
  this.switchLevel(this.activeLevel - 1);
1070
1121
  },
1122
+ confirmSelection() {
1123
+ if (!this.canConfirm) {
1124
+ return;
1125
+ }
1126
+ const last = this.selectedPath[this.selectedPath.length - 1];
1127
+ this.applySelection(last).then(() => {
1128
+ this.popoverVisible = false;
1129
+ });
1130
+ },
1131
+ cancelSelection() {
1132
+ /* 关闭弹层,未确认的浏览状态由 hide 回调恢复 */
1133
+ this.popoverVisible = false;
1134
+ },
1071
1135
  nextLevel() {
1072
1136
  if (!this.canNextLevel) {
1073
1137
  return;
@@ -1080,8 +1144,20 @@ export default {
1080
1144
  this.searchKeyword = "";
1081
1145
  this.searchList = [];
1082
1146
  this.searchDropdownVisible = false;
1083
- this.applySelection(item).then(() => {
1084
- this.popoverVisible = false;
1147
+ this.pendingLeaf = false;
1148
+ if (this.selectedPath.length >= this.effectiveMinLevel) {
1149
+ /* 已达到最小选择层级:等待确认 */
1150
+ return;
1151
+ }
1152
+ /* 搜索结果未达到最小选择层级:有下级只定位下钻,无下级视为末级 */
1153
+ const last = this.selectedPath[this.selectedPath.length - 1] || item;
1154
+ this.fetchChildren(this.getAreaId(last)).then((children) => {
1155
+ if (!children.length) {
1156
+ this.pendingLeaf = true;
1157
+ return;
1158
+ }
1159
+ this.activeLevel = this.selectedPath.length + 1;
1160
+ this.levelItems = children;
1085
1161
  });
1086
1162
  });
1087
1163
  },
@@ -1093,19 +1169,19 @@ export default {
1093
1169
  const level = this.activeLevel;
1094
1170
  this.selectedPath = this.selectedPath.slice(0, level - 1);
1095
1171
  this.selectedPath.push(item);
1096
- this.applySelection(item).then(() => {
1097
- if (level >= this.maxLevel) {
1098
- this.popoverVisible = false;
1172
+ this.pendingLeaf = false;
1173
+ if (level >= this.maxLevel) {
1174
+ /* 已到最大层级:等待确认 */
1175
+ return;
1176
+ }
1177
+ this.fetchChildren(this.getAreaId(item)).then((children) => {
1178
+ if (!children.length) {
1179
+ /* 无下级数据:视为末级,等待确认 */
1180
+ this.pendingLeaf = true;
1099
1181
  return;
1100
1182
  }
1101
- this.fetchChildren(this.getAreaId(item)).then((children) => {
1102
- if (!children.length) {
1103
- this.popoverVisible = false;
1104
- return;
1105
- }
1106
- this.activeLevel = level + 1;
1107
- this.levelItems = children;
1108
- });
1183
+ this.activeLevel = level + 1;
1184
+ this.levelItems = children;
1109
1185
  });
1110
1186
  },
1111
1187
  async clampPathToMaxLevel(path) {
@@ -1450,6 +1526,15 @@ export default {
1450
1526
  user-select: none;
1451
1527
  }
1452
1528
  }
1529
+
1530
+ .base-area-footer {
1531
+ display: flex;
1532
+ align-items: center;
1533
+ justify-content: flex-end;
1534
+ margin-top: 8px;
1535
+ padding-top: 8px;
1536
+ border-top: 1px solid #ebeef5;
1537
+ }
1453
1538
  </style>
1454
1539
 
1455
1540
  <style lang="scss">
@@ -30,6 +30,7 @@
30
30
  :label-value="areaNameLabel"
31
31
  @update:labelValue="handleAreaLabelUpdate"
32
32
  :max-level="maxLevel"
33
+ :min-level="minLevel"
33
34
  :locale="field.options.locale"
34
35
  :disabled="field.options.disabled"
35
36
  :readonly="field.options.readonly"
@@ -111,6 +112,17 @@ export default {
111
112
  }
112
113
  return 4;
113
114
  },
115
+ minLevel() {
116
+ const areaMinLevel = this.field.options.areaMinLevel;
117
+ if (areaMinLevel == null || areaMinLevel === "") {
118
+ return 1;
119
+ }
120
+ const type = areaMinLevel * 1;
121
+ if (type >= 0 && type <= 3) {
122
+ return type + 1;
123
+ }
124
+ return 1;
125
+ },
114
126
  readModeText() {
115
127
  return this.areaNameLabel || "--";
116
128
  },
@@ -0,0 +1,50 @@
1
+ <template>
2
+ <el-form-item>
3
+ <span slot="label"
4
+ >{{ i18nt("designer.setting.areaMinLevel") }}
5
+ <el-tooltip
6
+ effect="light"
7
+ :content="i18nt('designer.setting.areaMinLevelHint')"
8
+ >
9
+ <i class="el-icon-info"></i>
10
+ </el-tooltip>
11
+ </span>
12
+ <el-select v-model="minLevel" style="width: 100%">
13
+ <el-option
14
+ :label="i18nt('designer.setting.areaMinLevelNone')"
15
+ :value="null"
16
+ />
17
+ <el-option :label="i18nt('designer.setting.areaMinLevel0')" :value="0" />
18
+ <el-option :label="i18nt('designer.setting.areaMinLevel1')" :value="1" />
19
+ <el-option :label="i18nt('designer.setting.areaMinLevel2')" :value="2" />
20
+ <el-option :label="i18nt('designer.setting.areaMinLevel3')" :value="3" />
21
+ </el-select>
22
+ </el-form-item>
23
+ </template>
24
+
25
+ <script>
26
+ import i18n from "@base/components/xform/utils/i18n";
27
+ import propertyMixin from "@base/components/xform/form-designer/setting-panel/property-editor/propertyMixin";
28
+
29
+ export default {
30
+ name: "areaMinLevel-editor",
31
+ mixins: [i18n, propertyMixin],
32
+ props: {
33
+ designer: Object,
34
+ selectedWidget: Object,
35
+ optionModel: Object,
36
+ },
37
+ computed: {
38
+ minLevel: {
39
+ get() {
40
+ const val = this.optionModel.areaMinLevel;
41
+ return val == null || val === "" ? null : val;
42
+ },
43
+ set(val) {
44
+ /* 旧表单的 options 上可能没有该 key,需 $set 保证响应式 */
45
+ this.$set(this.optionModel, "areaMinLevel", val);
46
+ },
47
+ },
48
+ },
49
+ };
50
+ </script>
@@ -85,6 +85,7 @@ const COMMON_PROPERTIES = {
85
85
  vabSearchName: "vabSearchName-editor",
86
86
  areaName: "areaName-editor",
87
87
  areaDataType: "areaDataType-editor",
88
+ areaMinLevel: "areaMinLevel-editor",
88
89
  copyButton: "copyButton-editor",
89
90
  tempStorageFlag: "tempStorage-editor",
90
91
  formatType: "formatType-editor",
@@ -5,7 +5,8 @@ import {
5
5
  basicFields,
6
6
  advancedFields,
7
7
  customFields,
8
- businessFields
8
+ businessFields,
9
+ widgetPanelOrder
9
10
  } from "./widgetsConfig"
10
11
  import {
11
12
  formTemplates
@@ -162,14 +163,14 @@ modules = {
162
163
  return true
163
164
  },
164
165
  loadWidgets() {
165
- this.containers = containers.map(con => {
166
+ this.containers = this.sortByPanelOrder(containers.map(con => {
166
167
  return {
167
168
  ...con,
168
169
  displayName: this.i18n2t(`designer.widgetLabel.${con.type}`, `extension.widgetLabel.${con.type}`)
169
170
  };
170
171
  }).filter(con => {
171
172
  return !con.internal && !this.isBanned(con.type) && this.getIsShow(con);
172
- });
173
+ }), widgetPanelOrder.containers);
173
174
 
174
175
  this.commonContainers = this.containers.filter(con => !!con.commonFlag && this.getIsShow(con));
175
176
 
@@ -191,6 +192,16 @@ modules = {
191
192
  return !this.isBanned(fld.type) && this.getIsShow(fld);
192
193
  });
193
194
 
195
+ /* 面板分组归一:表单数据字段(搜索框/自动完成/级联/凭证/状态等)展示在基础字段分组 */
196
+ const moveTypes = widgetPanelOrder.basicFromAdvanced || [];
197
+ const movedFields = this.advancedFields.filter(fld => moveTypes.indexOf(fld.type) > -1);
198
+ this.advancedFields = this.advancedFields.filter(fld => moveTypes.indexOf(fld.type) === -1);
199
+ this.basicFields = this.sortByPanelOrder(
200
+ this.basicFields.concat(movedFields),
201
+ widgetPanelOrder.basicFields
202
+ );
203
+ this.advancedFields = this.sortByPanelOrder(this.advancedFields, widgetPanelOrder.advancedFields);
204
+
194
205
  this.businessFields = this.businessFields.map(fld => {
195
206
  return {
196
207
  ...fld,
@@ -200,14 +211,15 @@ modules = {
200
211
  return !this.isBanned(fld.type) && this.getIsShow(fld);
201
212
  });
202
213
 
203
- this.commonAdvancedFields = advancedFields.map(fld => {
214
+ this.commonAdvancedFields = this.sortByPanelOrder(advancedFields.map(fld => {
204
215
  return {
205
216
  ...fld,
206
217
  displayName: this.i18n2t(`designer.widgetLabel.${fld.type}`, `extension.widgetLabel.${fld.type}`)
207
218
  };
208
219
  }).filter(fld => {
209
- return !this.isBanned(fld.type) && !!fld.commonFlag && this.getIsShow(fld);
210
- });
220
+ return !this.isBanned(fld.type) && !!fld.commonFlag && this.getIsShow(fld)
221
+ && moveTypes.indexOf(fld.type) === -1;
222
+ }), widgetPanelOrder.advancedFields);
211
223
 
212
224
  this.customFields = this.customFields.map(fld => {
213
225
  return {
@@ -239,6 +251,29 @@ modules = {
239
251
 
240
252
  },
241
253
 
254
+ /* 按 widgetPanelOrder 排序面板展示列表;未列出的类型(含扩展组件)排在末尾,保持原有相对顺序 */
255
+ sortByPanelOrder(list, orderList) {
256
+ if (!orderList || !orderList.length) {
257
+ return list;
258
+ }
259
+ const orderMap = {};
260
+ orderList.forEach((type, index) => {
261
+ orderMap[type] = index;
262
+ });
263
+ return list
264
+ .map((widget, index) => ({ widget, index }))
265
+ .sort((a, b) => {
266
+ const oa = orderMap[a.widget.type] !== undefined
267
+ ? orderMap[a.widget.type]
268
+ : orderList.length + a.index;
269
+ const ob = orderMap[b.widget.type] !== undefined
270
+ ? orderMap[b.widget.type]
271
+ : orderList.length + b.index;
272
+ return oa - ob;
273
+ })
274
+ .map(item => item.widget);
275
+ },
276
+
242
277
  handleContainerWidgetClone(origin) {
243
278
  return this.designer.copyNewContainerWidget(origin);
244
279
  },
@@ -434,7 +434,7 @@ export const containers = [
434
434
  {
435
435
  type: "detail",
436
436
  category: "container",
437
- icon: "grid",
437
+ icon: "form",
438
438
  commonFlag: !0,
439
439
  layoutType: "PC",
440
440
  panes: [],
@@ -474,7 +474,7 @@ export const containers = [
474
474
  {
475
475
  type: "detail-h5",
476
476
  category: "container",
477
- icon: "grid",
477
+ icon: "descriptions",
478
478
  commonFlag: !0,
479
479
  layoutType: "H5",
480
480
  panes: [],
@@ -494,7 +494,7 @@ export const containers = [
494
494
  {
495
495
  type: "list-h5",
496
496
  category: "container",
497
- icon: "grid",
497
+ icon: "list",
498
498
  commonFlag: !0,
499
499
  formItemFlag: !0,
500
500
  layoutType: "H5",
@@ -647,7 +647,7 @@ export const containers = [
647
647
  {
648
648
  type: "h5-card",
649
649
  category: "container",
650
- icon: "tab",
650
+ icon: "card",
651
651
  commonFlag: !0,
652
652
  layoutType: "H5",
653
653
  panes: [],
@@ -678,7 +678,7 @@ export const containers = [
678
678
  {
679
679
  type: "h5-table",
680
680
  category: "container",
681
- icon: "table",
681
+ icon: "section",
682
682
  commonFlag: !0,
683
683
  layoutType: "H5",
684
684
  rows: [],
@@ -1188,7 +1188,7 @@ export const basicFields = [
1188
1188
  },
1189
1189
  {
1190
1190
  type: "script-input",
1191
- icon: "textarea-field",
1191
+ icon: "code",
1192
1192
  commonFlag: !0,
1193
1193
  formItemFlag: !0,
1194
1194
  columnFlag: true,
@@ -1531,7 +1531,7 @@ export const basicFields = [
1531
1531
  },
1532
1532
  {
1533
1533
  type: "area-select",
1534
- icon: "select-field",
1534
+ icon: "international",
1535
1535
  commonFlag: !0,
1536
1536
  formItemFlag: !0,
1537
1537
  columnFlag: true,
@@ -1566,6 +1566,7 @@ export const basicFields = [
1566
1566
  labelTooltip: null,
1567
1567
  areaName: "",
1568
1568
  areaDataType: 3,
1569
+ areaMinLevel: null,
1569
1570
  locale: null,
1570
1571
  onCreated: "",
1571
1572
  onMounted: "",
@@ -2153,7 +2154,7 @@ export const basicFields = [
2153
2154
  },
2154
2155
  {
2155
2156
  type: "a-text",
2156
- icon: "text-field",
2157
+ icon: "link",
2157
2158
  commonFlag: !0,
2158
2159
  formItemFlag: !0,
2159
2160
  columnFlag: true,
@@ -2206,7 +2207,7 @@ export const basicFields = [
2206
2207
  },
2207
2208
  {
2208
2209
  type: "a-link",
2209
- icon: "button",
2210
+ icon: "guide",
2210
2211
  commonFlag: !0,
2211
2212
  formItemFlag: !1,
2212
2213
  columnFlag: true,
@@ -3007,7 +3008,7 @@ export const advancedFields = [
3007
3008
  },
3008
3009
  {
3009
3010
  type: "autocomplete",
3010
- icon: "searchbox",
3011
+ icon: "edit",
3011
3012
  commonFlag: !0,
3012
3013
  columnFlag: true,
3013
3014
  formItemFlag: !0,
@@ -3018,7 +3019,7 @@ export const advancedFields = [
3018
3019
  },
3019
3020
  {
3020
3021
  type: "search_button",
3021
- icon: "button",
3022
+ icon: "search",
3022
3023
  commonFlag: !0,
3023
3024
  columnFlag: true,
3024
3025
  formItemFlag: !1,
@@ -3063,7 +3064,7 @@ export const advancedFields = [
3063
3064
  {
3064
3065
  type: "save_button",
3065
3066
  targetType: "button",
3066
- icon: "button",
3067
+ icon: "save",
3067
3068
  commonFlag: !0,
3068
3069
  columnFlag: true,
3069
3070
  formItemFlag: !1,
@@ -3104,7 +3105,7 @@ export const advancedFields = [
3104
3105
  {
3105
3106
  type: "reset_button",
3106
3107
  targetType: "button",
3107
- icon: "button",
3108
+ icon: "redo",
3108
3109
  commonFlag: !0,
3109
3110
  columnFlag: true,
3110
3111
  formItemFlag: !1,
@@ -3169,7 +3170,7 @@ export const advancedFields = [
3169
3170
  },
3170
3171
  {
3171
3172
  type: "select-export-button",
3172
- icon: "list-export",
3173
+ icon: "export",
3173
3174
  formItemFlag: !1,
3174
3175
  commonFlag: !0,
3175
3176
  columnFlag: true,
@@ -3200,7 +3201,7 @@ export const advancedFields = [
3200
3201
  },
3201
3202
  {
3202
3203
  type: "select-export-item-button",
3203
- icon: "list-export",
3204
+ icon: "document",
3204
3205
  formItemFlag: !1,
3205
3206
  commonFlag: !0,
3206
3207
  columnFlag: true,
@@ -3232,7 +3233,7 @@ export const advancedFields = [
3232
3233
  {
3233
3234
  type: "add_button",
3234
3235
  targetType: "button",
3235
- icon: "button",
3236
+ icon: "add",
3236
3237
  commonFlag: !0,
3237
3238
  columnFlag: true,
3238
3239
  formItemFlag: !1,
@@ -3268,7 +3269,7 @@ export const advancedFields = [
3268
3269
  },
3269
3270
  {
3270
3271
  type: "import-button",
3271
- icon: "button",
3272
+ icon: "import",
3272
3273
  commonFlag: !0,
3273
3274
  columnFlag: true,
3274
3275
  formItemFlag: !1,
@@ -3320,7 +3321,7 @@ export const advancedFields = [
3320
3321
  },
3321
3322
  {
3322
3323
  type: "import2-button",
3323
- icon: "button",
3324
+ icon: "excel",
3324
3325
  commonFlag: !0,
3325
3326
  columnFlag: true,
3326
3327
  formItemFlag: !1,
@@ -3368,7 +3369,7 @@ export const advancedFields = [
3368
3369
  },
3369
3370
  {
3370
3371
  type: "print-button",
3371
- icon: "button",
3372
+ icon: "print",
3372
3373
  commonFlag: !0,
3373
3374
  columnFlag: true,
3374
3375
  formItemFlag: !1,
@@ -3409,7 +3410,7 @@ export const advancedFields = [
3409
3410
  },
3410
3411
  {
3411
3412
  type: "print-detail-button",
3412
- icon: "button",
3413
+ icon: "pdf",
3413
3414
  commonFlag: !0,
3414
3415
  columnFlag: false,
3415
3416
  formItemFlag: !1,
@@ -3572,7 +3573,7 @@ export const advancedFields = [
3572
3573
 
3573
3574
  {
3574
3575
  type: "project-tag",
3575
- icon: "uploadbox",
3576
+ icon: "tag",
3576
3577
  commonFlag: !0,
3577
3578
  columnFlag: true,
3578
3579
  formItemFlag: !0,
@@ -3585,7 +3586,7 @@ export const advancedFields = [
3585
3586
  {
3586
3587
  type: "table2",
3587
3588
  category: "container",
3588
- icon: "table",
3589
+ icon: "tree-table",
3589
3590
  commonFlag: !0,
3590
3591
  formItemFlag: !0,
3591
3592
  rows: [],
@@ -3611,7 +3612,7 @@ export const advancedFields = [
3611
3612
  },
3612
3613
  {
3613
3614
  type: "dropdown",
3614
- icon: "tab",
3615
+ icon: "ico-more",
3615
3616
  commonFlag: !0,
3616
3617
  // columnFlag: true,
3617
3618
  widgetList: [],
@@ -3661,7 +3662,7 @@ export const advancedFields = [
3661
3662
  },
3662
3663
  {
3663
3664
  type: "gantt",
3664
- icon: "uploadbox",
3665
+ icon: "chart",
3665
3666
  commonFlag: !0,
3666
3667
  formItemFlag: !1,
3667
3668
  options: {
@@ -3683,7 +3684,7 @@ export const advancedFields = [
3683
3684
 
3684
3685
  {
3685
3686
  type: "download-button",
3686
- icon: "button",
3687
+ icon: "download",
3687
3688
  commonFlag: !0,
3688
3689
  columnFlag: true,
3689
3690
  formItemFlag: !1,
@@ -3721,7 +3722,7 @@ export const advancedFields = [
3721
3722
 
3722
3723
  {
3723
3724
  type: "vue-page",
3724
- icon: "html-text",
3725
+ icon: "vue-sfc",
3725
3726
  commonFlag: !0,
3726
3727
  formItemFlag: !1,
3727
3728
  columnFlag: false,
@@ -3809,7 +3810,7 @@ export const businessFields = [
3809
3810
  {
3810
3811
  type: "create_by-text",
3811
3812
  targetType: "text",
3812
- icon: "text",
3813
+ icon: "people",
3813
3814
  commonFlag: !0,
3814
3815
  formItemFlag: !0,
3815
3816
  columnFlag: true,
@@ -3848,7 +3849,7 @@ export const businessFields = [
3848
3849
  {
3849
3850
  type: "modify_by-text",
3850
3851
  targetType: "text",
3851
- icon: "text",
3852
+ icon: "edit",
3852
3853
  commonFlag: !0,
3853
3854
  formItemFlag: !0,
3854
3855
  columnFlag: true,
@@ -3887,7 +3888,7 @@ export const businessFields = [
3887
3888
  {
3888
3889
  type: "create_date-text",
3889
3890
  targetType: "text",
3890
- icon: "text",
3891
+ icon: "date-field",
3891
3892
  commonFlag: !0,
3892
3893
  formItemFlag: !0,
3893
3894
  columnFlag: true,
@@ -3926,7 +3927,7 @@ export const businessFields = [
3926
3927
  {
3927
3928
  type: "modify_date-text",
3928
3929
  targetType: "text",
3929
- icon: "text",
3930
+ icon: "time-field",
3930
3931
  commonFlag: !0,
3931
3932
  formItemFlag: !0,
3932
3933
  columnFlag: true,
@@ -3966,7 +3967,7 @@ export const businessFields = [
3966
3967
  {
3967
3968
  type: "user-vabsearch",
3968
3969
  targetType: "singerSearch",
3969
- icon: "searchbox",
3970
+ icon: "user",
3970
3971
  commonFlag: !0,
3971
3972
  columnFlag: true,
3972
3973
  formItemFlag: !0,
@@ -3989,7 +3990,7 @@ export const businessFields = [
3989
3990
  {
3990
3991
  type: "saleOrg-vabsearch",
3991
3992
  targetType: "singerSearch",
3992
- icon: "searchbox",
3993
+ icon: "org",
3993
3994
  commonFlag: !0,
3994
3995
  columnFlag: true,
3995
3996
  formItemFlag: !0,
@@ -4013,7 +4014,7 @@ export const businessFields = [
4013
4014
  {
4014
4015
  type: "user-project-tag",
4015
4016
  targetType: "project-tag",
4016
- icon: "uploadbox",
4017
+ icon: "peoples",
4017
4018
  commonFlag: !0,
4018
4019
  columnFlag: true,
4019
4020
  formItemFlag: !0,
@@ -4034,7 +4035,7 @@ export const businessFields = [
4034
4035
  {
4035
4036
  type: "saleOrg-project-tag",
4036
4037
  targetType: "project-tag",
4037
- icon: "uploadbox",
4038
+ icon: "org",
4038
4039
  commonFlag: !0,
4039
4040
  columnFlag: true,
4040
4041
  formItemFlag: !0,
@@ -4055,7 +4056,7 @@ export const businessFields = [
4055
4056
  {
4056
4057
  type: "save_submit_wf_button",
4057
4058
  targetType: "button",
4058
- icon: "button",
4059
+ icon: "node-tree",
4059
4060
  commonFlag: !0,
4060
4061
  columnFlag: true,
4061
4062
  formItemFlag: !1,
@@ -4093,7 +4094,7 @@ export const businessFields = [
4093
4094
  },
4094
4095
  {
4095
4096
  type: "copy_button",
4096
- icon: "button",
4097
+ icon: "clipboard",
4097
4098
  commonFlag: !0,
4098
4099
  columnFlag: true,
4099
4100
  formItemFlag: !1,
@@ -4123,7 +4124,7 @@ export const businessFields = [
4123
4124
  },
4124
4125
  {
4125
4126
  type: "tempStorage",
4126
- icon: "uploadbox",
4127
+ icon: "documentation",
4127
4128
  commonFlag: !0,
4128
4129
  columnFlag: true,
4129
4130
  formItemFlag: !1,
@@ -4147,7 +4148,7 @@ export const businessFields = [
4147
4148
  },
4148
4149
  {
4149
4150
  type: "oplog",
4150
- icon: "uploadbox",
4151
+ icon: "list",
4151
4152
  commonFlag: !0,
4152
4153
  formItemFlag: !1,
4153
4154
  options: {
@@ -4168,7 +4169,7 @@ export const businessFields = [
4168
4169
  },
4169
4170
  {
4170
4171
  type: "vabUpload2",
4171
- icon: "uploadbox",
4172
+ icon: "file-upload-field",
4172
4173
  commonFlag: !0,
4173
4174
  formItemFlag: !0,
4174
4175
  tableField: null,
@@ -4230,7 +4231,7 @@ export const compareFields = [
4230
4231
  {
4231
4232
  type: "compare-change-button",
4232
4233
  targetType: "button",
4233
- icon: "button",
4234
+ icon: "switch-field",
4234
4235
  commonFlag: !0,
4235
4236
  formItemFlag: !1,
4236
4237
  columnFlag: true,
@@ -4276,7 +4277,7 @@ export const compareFields = [
4276
4277
  {
4277
4278
  type: "compare-button",
4278
4279
  targetType: "button",
4279
- icon: "button",
4280
+ icon: "compare",
4280
4281
  commonFlag: !0,
4281
4282
  formItemFlag: !1,
4282
4283
  columnFlag: true,
@@ -4320,7 +4321,7 @@ export const compareFields = [
4320
4321
  {
4321
4322
  type: "compare-close-button",
4322
4323
  targetType: "button",
4323
- icon: "button",
4324
+ icon: "exit-fullscreen",
4324
4325
  commonFlag: !0,
4325
4326
  formItemFlag: !1,
4326
4327
  columnFlag: true,
@@ -4364,7 +4365,7 @@ export const compareFields = [
4364
4365
  {
4365
4366
  type: "compare-del-button",
4366
4367
  targetType: "button",
4367
- icon: "button",
4368
+ icon: "eye",
4368
4369
  commonFlag: !0,
4369
4370
  formItemFlag: !1,
4370
4371
  columnFlag: true,
@@ -4414,6 +4415,105 @@ export const keyNamePrefixMap = {
4414
4415
 
4415
4416
  export const customFields = [];
4416
4417
 
4418
+ /* 组件面板展示顺序与分组归一(仅影响左侧面板展示,不影响按 type 查找与扩展注册):
4419
+ * - 分组规则:基础字段 = 表单数据字段;高级字段 = 图表/特殊展示/功能按钮
4420
+ * - 未列出的类型(含扩展注册的组件)排在已列出类型之后,保持原有相对顺序
4421
+ * - basicFromAdvanced:展示时从「高级字段」归入「基础字段」的类型
4422
+ */
4423
+ export const widgetPanelOrder = {
4424
+ /* 通用布局 → 数据/详情 → 树 → H5 专用;internal 子容器紧随父容器(不展示,仅占位) */
4425
+ containers: [
4426
+ "grid",
4427
+ "grid-col",
4428
+ "table",
4429
+ "table-cell",
4430
+ "tab",
4431
+ "tab-pane",
4432
+ "data-table",
4433
+ "table-column",
4434
+ "detail",
4435
+ "detail-pane",
4436
+ "tree-pane",
4437
+ "tree",
4438
+ "vf-dialog",
4439
+ "detail-h5",
4440
+ "list-h5",
4441
+ "h5-card",
4442
+ "h5-card-pane",
4443
+ "h5-table",
4444
+ "h5-table-cell",
4445
+ ],
4446
+ /* 输入 → 选择 → 日期时间 → 上传 → 状态/文本展示 → 其他 */
4447
+ basicFields: [
4448
+ "input",
4449
+ "input-batch",
4450
+ "textarea",
4451
+ "script-input",
4452
+ "number",
4453
+ "radio",
4454
+ "checkbox",
4455
+ "select",
4456
+ "cascader",
4457
+ "area-select",
4458
+ "vabsearch",
4459
+ "singerSearch",
4460
+ "multiSearch",
4461
+ "autocomplete",
4462
+ "date",
4463
+ "date-range",
4464
+ "time",
4465
+ "time-range",
4466
+ "vabUpload",
4467
+ "baseAttachment",
4468
+ "status",
4469
+ "text",
4470
+ "a-text",
4471
+ "static-text",
4472
+ "html-text",
4473
+ "a-link",
4474
+ "a-link2",
4475
+ "button",
4476
+ "divider",
4477
+ ],
4478
+ /* 图表 → 展示 → 按钮 */
4479
+ advancedFields: [
4480
+ "echart-pie",
4481
+ "echart-bar",
4482
+ "echart-category",
4483
+ "echart",
4484
+ "gantt",
4485
+ "census",
4486
+ "project-tag",
4487
+ "table2",
4488
+ "vue-page",
4489
+ "search_button",
4490
+ "reset_button",
4491
+ "save_button",
4492
+ "add_button",
4493
+ "import-button",
4494
+ "import2-button",
4495
+ "table-export-button",
4496
+ "select-export-button",
4497
+ "select-export-item-button",
4498
+ "print-button",
4499
+ "print-detail-button",
4500
+ "download-button",
4501
+ "dropdown",
4502
+ "dropdown-item",
4503
+ ],
4504
+ /* 表单数据字段归入基础字段展示(隐藏的 singerSearch/multiSearch/baseAttachment 跟随同类) */
4505
+ basicFromAdvanced: [
4506
+ "vabsearch",
4507
+ "singerSearch",
4508
+ "multiSearch",
4509
+ "autocomplete",
4510
+ "cascader",
4511
+ "vabUpload",
4512
+ "baseAttachment",
4513
+ "status",
4514
+ ],
4515
+ };
4516
+
4417
4517
  export function addContainerWidgetSchema(containerSchema) {
4418
4518
  containers.push(containerSchema);
4419
4519
  }
@@ -200,6 +200,14 @@ export default {
200
200
  areaDataType3: "Province/City/District/Town",
201
201
  areaName: "Area Name Field",
202
202
  areaNameHint: "Form field name for area full name",
203
+ areaMinLevel: "Min Area Level",
204
+ areaMinLevelHint:
205
+ "Selection must reach at least this level (unless the area has no children)",
206
+ areaMinLevelNone: "None",
207
+ areaMinLevel0: "Province",
208
+ areaMinLevel1: "City",
209
+ areaMinLevel2: "District",
210
+ areaMinLevel3: "Town",
203
211
  editable: "Editable",
204
212
  format: "Format",
205
213
  valueFormat: "Value Format",
@@ -353,6 +353,14 @@ export default {
353
353
  areaDataType3: "省/市/区/乡镇",
354
354
  areaName: "地区名称字段",
355
355
  areaNameHint: "用于保存地区全称的表单字段名",
356
+ areaMinLevel: "至少选择层级",
357
+ areaMinLevelHint:
358
+ "选择结果至少要到该层级才能选中(该地区无下级数据时除外)",
359
+ areaMinLevelNone: "不限",
360
+ areaMinLevel0: "省",
361
+ areaMinLevel1: "市",
362
+ areaMinLevel2: "区",
363
+ areaMinLevel3: "乡镇",
356
364
  editable: "可输入",
357
365
  format: "显示格式",
358
366
  valueFormat: "绑定值格式",