cloud-web-corejs 1.1.0-dev.5 → 1.1.0-dev.7

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 (52) hide show
  1. package/package.json +1 -1
  2. package/src/components/VabUpload/index.vue +1 -1
  3. package/src/components/VabUpload/view.vue +27 -26
  4. package/src/components/excelImport/index.vue +156 -156
  5. package/src/components/jsonImport/index.vue +1 -1
  6. package/src/components/langImport/index.vue +1 -1
  7. package/src/components/mobile/wf/addTaskUserdialog.vue +23 -3
  8. package/src/components/mobile/wf/content.vue +110 -67
  9. package/src/components/mobile/wf/deleteTaskUserDialog.vue +22 -3
  10. package/src/components/mobile/wf/selectUserDialog.vue +122 -0
  11. package/src/components/mobile/wf/setCandidateDialog.vue +25 -4
  12. package/src/components/mobile/wf/urgingDialog.vue +26 -3
  13. package/src/components/mobile/wf/wfModifyDialog.vue +4 -0
  14. package/src/components/obsUpload/index.vue +1 -1
  15. package/src/components/xform/form-designer/designer.js +36 -52
  16. package/src/components/xform/form-designer/form-widget/dialog/importDialog.vue +185 -185
  17. package/src/components/xform/form-designer/form-widget/field-widget/singleUpload-widget.vue +1 -1
  18. package/src/components/xform/form-designer/form-widget/field-widget/vabUpload-widget.vue +2 -2
  19. package/src/components/xform/form-designer/indexMixin.js +33 -1
  20. package/src/components/xform/form-designer/setting-panel/property-editor/container-list-h5/list-h5-editor.vue +833 -860
  21. package/src/components/xform/form-designer/toolbar-panel/index.vue +874 -874
  22. package/src/components/xform/form-designer/toolbar-panel/indexMixin.js +1 -0
  23. package/src/components/xform/form-designer/widget-panel/index.vue +11 -7
  24. package/src/components/xform/form-designer/widget-panel/indexMixin.js +30 -6
  25. package/src/components/xform/form-designer/widget-panel/widgetsConfig.js +53 -1
  26. package/src/components/xform/form-render/container-item/list-h5-item.vue +154 -27
  27. package/src/components/xform/form-render/indexMixin.js +23 -3
  28. package/src/components/xform/styles/h5.scss +774 -588
  29. package/src/directive/append-to-body/index.js +48 -0
  30. package/src/index.js +4 -0
  31. package/src/layout/components/Sidebar/default.vue +1655 -1655
  32. package/src/router/index.js +48 -48
  33. package/src/utils/assetUrl.js +19 -0
  34. package/src/utils/vab.js +1283 -1279
  35. package/src/views/bd/setting/form_template/edit.vue +378 -356
  36. package/src/views/bd/setting/form_template/formDesignerDialog.vue +6 -0
  37. package/src/views/bd/setting/form_template/formTemplateType.js +43 -0
  38. package/src/views/bd/setting/form_template/list.vue +304 -303
  39. package/src/views/bd/setting/form_template/mixins/edit.js +344 -280
  40. package/src/views/bd/setting/form_template/mixins/list.js +748 -721
  41. package/src/views/user/file_view_ins/list.vue +970 -970
  42. package/src/views/user/form/vform/designer.vue +823 -821
  43. package/src/views/user/home/default.vue +1117 -1117
  44. package/src/views/user/home/index.vue +103 -103
  45. package/src/views/user/notify_message/dialog.vue +139 -139
  46. package/src/views/user/outLink/form_view.vue +202 -202
  47. package/src/views/user/outLink/index.vue +110 -110
  48. package/src/views/user/wf/iframe/index.vue +51 -51
  49. package/src/views/user/wf/iframe/index2.vue +64 -64
  50. package/src/views/user/wf/wf_manage/list2.vue +871 -871
  51. package/src/views/user/wf/wf_manage/wfContentDialog.vue +134 -134
  52. package/src/views/user/wf/wf_obj_config/importItemDialog.vue +1 -1
@@ -354,6 +354,7 @@ modules = {
354
354
  let importObj = JSON.parse(this.importTemplate);
355
355
  this.designer.handleImportJson(importObj);
356
356
  this.designer.loadFormJson(importObj);
357
+ this.$emit("loadWidgets");
357
358
 
358
359
  this.showImportJsonDialogFlag = false;
359
360
  this.$message.success(this.i18nt("designer.hint.importJsonSuccess"));
@@ -6,7 +6,7 @@
6
6
  <el-tab-pane v-if="showComponentLib" name="componentLib">
7
7
  <span slot="label"><i class="el-icon-set-up"></i> {{ i18nt('designer.componentLib') }}</span>
8
8
 
9
- <el-collapse v-model="activeNames" class="widget-collapse">
9
+ <el-collapse v-model="activeNames" class="widget-collapse" :key="currentLayoutType">
10
10
  <el-collapse-item name="1" :title="i18nt('designer.containerTitle')">
11
11
  <draggable tag="ul" :list="containers" :group="{name: 'dragGroup', pull: 'clone', put: false}"
12
12
  :clone="handleContainerWidgetClone" ghost-class="ghost" :sort="false"
@@ -34,6 +34,7 @@
34
34
  </draggable>
35
35
  </el-collapse-item>
36
36
 
37
+ <template v-if="advancedFields.length">
37
38
  <el-collapse-item name="3" :title="i18nt('designer.advancedFieldTitle')">
38
39
  <draggable tag="ul" :list="advancedFields" :group="{name: 'dragGroup', pull: 'clone', put: false}"
39
40
  :move="checkFieldMove"
@@ -47,8 +48,9 @@
47
48
  </li>
48
49
  </draggable>
49
50
  </el-collapse-item>
51
+ </template>
50
52
 
51
- <!-- -->
53
+ <template v-if="customFields.length">
52
54
  <el-collapse-item name="4" :title="i18nt('designer.customFieldTitle')">
53
55
  <draggable tag="ul" :list="customFields" :group="{name: 'dragGroup', pull: 'clone', put: false}"
54
56
  :move="checkFieldMove"
@@ -62,7 +64,7 @@
62
64
  </li>
63
65
  </draggable>
64
66
  </el-collapse-item>
65
- <!-- -->
67
+ </template>
66
68
 
67
69
 
68
70
  </el-collapse>
@@ -71,7 +73,7 @@
71
73
  <el-tab-pane v-if="showMetadataLib" name="metadataLib">
72
74
  <span slot="label"><i class="el-icon-set-up"></i> {{ i18nt('designer.metadataLib') }}</span>
73
75
 
74
- <el-collapse v-model="metadataActiveNames" class="widget-collapse">
76
+ <el-collapse v-model="metadataActiveNames" class="widget-collapse" :key="currentLayoutType">
75
77
  <el-collapse-item name="0" :title="i18nt('designer.containerTitle')">
76
78
  <draggable tag="ul" :list="commonContainers" :group="{name: 'dragGroup', pull: 'clone', put: false}"
77
79
  :clone="handleContainerWidgetClone" ghost-class="ghost" :sort="false"
@@ -97,6 +99,7 @@
97
99
  </li>
98
100
  </draggable>
99
101
  </el-collapse-item>
102
+ <template v-if="commonAdvancedFields.length">
100
103
  <el-collapse-item name="3" :title="i18nt('designer.advancedFieldTitle')">
101
104
  <draggable tag="ul" :list="commonAdvancedFields" :group="{name: 'dragGroup', pull: 'clone', put: false}"
102
105
  :move="checkFieldMove"
@@ -110,6 +113,7 @@
110
113
  </li>
111
114
  </draggable>
112
115
  </el-collapse-item>
116
+ </template>
113
117
 
114
118
 
115
119
 
@@ -160,7 +164,7 @@
160
164
  </li>
161
165
  </draggable>
162
166
  </el-collapse-item>
163
- <el-collapse-item name="compare" :title="i18nt('对比组件')">
167
+ <el-collapse-item v-if="currentLayoutType !== 'H5'" name="compare" :title="i18nt('对比组件')">
164
168
  <draggable tag="ul" :list="compareFields" :group="{name: 'dragGroup', pull: 'clone', put: false}"
165
169
  :move="checkFieldMove"
166
170
  :clone="handleFieldWidgetClone" ghost-class="ghost" :sort="false">
@@ -311,8 +315,8 @@ export default {
311
315
  background: #f1f2f3;
312
316
  font-size: 12px;
313
317
  padding-left: 12px;
314
- > span{
315
- display: flex;align-items: center;white-space: normal;line-height: 1.2;height: 35px;
318
+ > span{
319
+ display: flex;align-items: center;white-space: normal;line-height: 1.2;height: 35px;
316
320
  }
317
321
  svg {
318
322
  display: inline-block;
@@ -6,7 +6,8 @@ import {
6
6
  advancedFields,
7
7
  customFields,
8
8
  businessFields,
9
- widgetPanelOrder
9
+ widgetPanelOrder,
10
+ h5PanelAllowTypes
10
11
  } from "./widgetsConfig"
11
12
  import {
12
13
  formTemplates
@@ -115,6 +116,16 @@ modules = {
115
116
  ? !1
116
117
  : !!this.designerConfig.metadataLib;
117
118
  },
119
+ currentLayoutType() {
120
+ return (this.designer && this.designer.formConfig && this.designer.formConfig.layoutType) || "PC";
121
+ },
122
+ },
123
+ watch: {
124
+ /* 打开 H5 模板是 setFormJson 后才写入 layoutType;面板 mounted 时仍是默认 PC。
125
+ 版式变化后必须按新 layoutType 重筛,否则左侧一直停在 PC 组件列表。 */
126
+ currentLayoutType() {
127
+ this.loadWidgets();
128
+ },
118
129
  },
119
130
  mounted() {
120
131
  this.designerConfig.chartLib && (this.firstTab = "chartLib"),
@@ -181,7 +192,8 @@ modules = {
181
192
 
182
193
  this.commonContainers = this.containers.filter(con => !!con.commonFlag && this.getIsShow(con));
183
194
 
184
- this.basicFields = this.basicFields.map(fld => {
195
+ /* 每次从 widgetsConfig 原表筛,不能拿 this.xxx(已被上次 layoutType 滤过)再滤一遍 */
196
+ this.basicFields = basicFields.map(fld => {
185
197
  return {
186
198
  ...fld,
187
199
  displayName: this.i18n2t(`designer.widgetLabel.${fld.type}`, `extension.widgetLabel.${fld.type}`)
@@ -190,13 +202,13 @@ modules = {
190
202
  return !this.isBanned(fld.type) && this.getIsShow(fld);
191
203
  });
192
204
 
193
- this.advancedFields = this.advancedFields.map(fld => {
205
+ this.advancedFields = advancedFields.map(fld => {
194
206
  return {
195
207
  ...fld,
196
208
  displayName: this.i18n2t(`designer.widgetLabel.${fld.type}`, `extension.widgetLabel.${fld.type}`)
197
209
  };
198
210
  }).filter(fld => {
199
- return !this.isBanned(fld.type) && this.getIsShow(fld);
211
+ return !fld.internal && !this.isBanned(fld.type) && this.getIsShow(fld);
200
212
  });
201
213
 
202
214
  /* 面板分组归一:表单数据字段(搜索框/自动完成/级联/凭证/状态等)展示在基础字段分组 */
@@ -209,7 +221,7 @@ modules = {
209
221
  );
210
222
  this.advancedFields = this.sortByPanelOrder(this.advancedFields, widgetPanelOrder.advancedFields);
211
223
 
212
- this.businessFields = this.businessFields.map(fld => {
224
+ this.businessFields = businessFields.map(fld => {
213
225
  return {
214
226
  ...fld,
215
227
  displayName: this.i18n2t(`designer.widgetLabel.${fld.type}`, `extension.widgetLabel.${fld.type}`)
@@ -229,7 +241,7 @@ modules = {
229
241
  && moveTypes.indexOf(fld.type) === -1;
230
242
  }), widgetPanelOrder.advancedFields);
231
243
 
232
- this.customFields = this.customFields.map(fld => {
244
+ this.customFields = customFields.map(fld => {
233
245
  return {
234
246
  ...fld,
235
247
  displayName: this.i18n2t(`designer.widgetLabel.${fld.type}`, `extension.widgetLabel.${fld.type}`)
@@ -257,6 +269,14 @@ modules = {
257
269
  return !this.isBanned(fld.type) && this.getIsShow(fld);
258
270
  });
259
271
 
272
+ /* 空分组不渲染(见 index.vue 的 v-if),展开项按当前版式重算:
273
+ 不能只做减法,否则从 H5 切回 PC 时分组回来了却是收起状态 */
274
+ this.activeNames = ["1", "2"]
275
+ .concat(this.advancedFields.length ? ["3"] : [])
276
+ .concat(this.customFields.length ? ["4"] : []);
277
+ this.metadataActiveNames = ["0", "1", "2", "4"]
278
+ .concat(this.commonAdvancedFields.length ? ["3"] : []);
279
+
260
280
  },
261
281
 
262
282
  /* 按 widgetPanelOrder 排序面板展示列表;未列出的类型(含扩展组件)排在末尾,保持原有相对顺序 */
@@ -343,6 +363,10 @@ modules = {
343
363
  let flag = !ftd.layoutType || ftd.layoutType === layoutType;
344
364
  let flag2 = this.checkColumnFlag(ftd)
345
365
  let flag3 = !!ftd.commonFlag
366
+ /* H5 面板按白名单收口,PC 不受影响 */
367
+ if (layoutType === "H5") {
368
+ flag = flag && h5PanelAllowTypes.indexOf(ftd.type) > -1;
369
+ }
346
370
  return flag && flag2 && flag3;
347
371
  }
348
372
  }
@@ -51,6 +51,7 @@ export const containers = [
51
51
  category: "container",
52
52
  icon: "table",
53
53
  commonFlag: !0,
54
+ layoutType: "PC",
54
55
  columnFlag: true,
55
56
  rows: [],
56
57
  options: {
@@ -341,6 +342,7 @@ export const containers = [
341
342
  category: "container",
342
343
  icon: "text-field",
343
344
  commonFlag: !0,
345
+ layoutType: "PC",
344
346
  formItemFlag: !0,
345
347
  widgetList: [],
346
348
  options: {
@@ -716,6 +718,7 @@ export const containers = [
716
718
  category: "container",
717
719
  icon: "tree-pane",
718
720
  commonFlag: !0,
721
+ layoutType: "PC",
719
722
  leftWidgetList: [],
720
723
  widgetList: [],
721
724
  options: {
@@ -771,7 +774,7 @@ export const containers = [
771
774
  name: "",
772
775
  hidden: !1,
773
776
  customClass: "",
774
- fullWidth: false,
777
+ fullWidth: true,
775
778
  },
776
779
  },
777
780
  {
@@ -795,6 +798,7 @@ export const containers = [
795
798
  icon: "tree",
796
799
  category: "container",
797
800
  commonFlag: !0,
801
+ layoutType: "PC",
798
802
  widgetList: [],
799
803
  options: {
800
804
  name: "tree",
@@ -1174,6 +1178,7 @@ export const basicFields = [
1174
1178
  type: "input-batch",
1175
1179
  icon: "input-batch",
1176
1180
  commonFlag: !0,
1181
+ layoutType: "PC",
1177
1182
  formItemFlag: !0,
1178
1183
  columnFlag: true,
1179
1184
  tableField: null,
@@ -2071,6 +2076,7 @@ export const basicFields = [
2071
2076
  type: "html-text",
2072
2077
  icon: "html-text",
2073
2078
  commonFlag: !0,
2079
+ layoutType: "PC",
2074
2080
  formItemFlag: !1,
2075
2081
  columnFlag: false,
2076
2082
  options: {
@@ -2397,6 +2403,7 @@ export const advancedFields = [
2397
2403
  type: "echart-pie",
2398
2404
  icon: "echart-pie",
2399
2405
  commonFlag: !0,
2406
+ layoutType: "PC",
2400
2407
  formItemFlag: false,
2401
2408
  options: {
2402
2409
  name: "",
@@ -2501,6 +2508,7 @@ export const advancedFields = [
2501
2508
  type: "echart-bar",
2502
2509
  icon: "echart",
2503
2510
  commonFlag: !0,
2511
+ layoutType: "PC",
2504
2512
  formItemFlag: false,
2505
2513
  options: {
2506
2514
  name: "",
@@ -2691,6 +2699,7 @@ export const advancedFields = [
2691
2699
  type: "echart-category",
2692
2700
  icon: "echart-category",
2693
2701
  commonFlag: !0,
2702
+ layoutType: "PC",
2694
2703
  formItemFlag: false,
2695
2704
  options: {
2696
2705
  name: "",
@@ -3264,6 +3273,7 @@ export const advancedFields = [
3264
3273
  icon: "el-icon-upload",
3265
3274
  formItemFlag: !1,
3266
3275
  commonFlag: !0,
3276
+ layoutType: "PC",
3267
3277
  columnFlag: true,
3268
3278
  tableField: null,
3269
3279
  options: {
@@ -3293,6 +3303,7 @@ export const advancedFields = [
3293
3303
  icon: "el-icon-upload",
3294
3304
  formItemFlag: !1,
3295
3305
  commonFlag: !0,
3306
+ layoutType: "PC",
3296
3307
  columnFlag: true,
3297
3308
  options: {
3298
3309
  name: "",
@@ -3324,6 +3335,7 @@ export const advancedFields = [
3324
3335
  icon: "el-icon-upload",
3325
3336
  formItemFlag: !1,
3326
3337
  commonFlag: !0,
3338
+ layoutType: "PC",
3327
3339
  columnFlag: true,
3328
3340
  options: {
3329
3341
  name: "",
@@ -3396,6 +3408,7 @@ export const advancedFields = [
3396
3408
  type: "import-button",
3397
3409
  icon: "el-icon-download",
3398
3410
  commonFlag: !0,
3411
+ layoutType: "PC",
3399
3412
  columnFlag: true,
3400
3413
  formItemFlag: !1,
3401
3414
  options: {
@@ -3448,6 +3461,7 @@ export const advancedFields = [
3448
3461
  type: "import2-button",
3449
3462
  icon: "el-icon-download",
3450
3463
  commonFlag: !0,
3464
+ layoutType: "PC",
3451
3465
  columnFlag: true,
3452
3466
  formItemFlag: !1,
3453
3467
  options: {
@@ -3496,6 +3510,7 @@ export const advancedFields = [
3496
3510
  type: "print-button",
3497
3511
  icon: "el-icon-printer",
3498
3512
  commonFlag: !0,
3513
+ layoutType: "PC",
3499
3514
  columnFlag: true,
3500
3515
  formItemFlag: !1,
3501
3516
  options: {
@@ -3537,6 +3552,7 @@ export const advancedFields = [
3537
3552
  type: "print-detail-button",
3538
3553
  icon: "el-icon-printer",
3539
3554
  commonFlag: !0,
3555
+ layoutType: "PC",
3540
3556
  columnFlag: false,
3541
3557
  formItemFlag: !1,
3542
3558
  options: {
@@ -3654,6 +3670,7 @@ export const advancedFields = [
3654
3670
  type: "census",
3655
3671
  icon: "census",
3656
3672
  commonFlag: !0,
3673
+ layoutType: "PC",
3657
3674
  formItemFlag: false,
3658
3675
  options: {
3659
3676
  name: "",
@@ -3720,6 +3737,7 @@ export const advancedFields = [
3720
3737
  category: "container",
3721
3738
  icon: "tree-table",
3722
3739
  commonFlag: !0,
3740
+ layoutType: "PC",
3723
3741
  formItemFlag: !0,
3724
3742
  rows: [],
3725
3743
  options: {
@@ -3796,6 +3814,7 @@ export const advancedFields = [
3796
3814
  type: "gantt",
3797
3815
  icon: "chart",
3798
3816
  commonFlag: !0,
3817
+ layoutType: "PC",
3799
3818
  formItemFlag: !1,
3800
3819
  options: {
3801
3820
  name: "",
@@ -3818,6 +3837,7 @@ export const advancedFields = [
3818
3837
  type: "download-button",
3819
3838
  icon: "el-icon-download",
3820
3839
  commonFlag: !0,
3840
+ layoutType: "PC",
3821
3841
  columnFlag: true,
3822
3842
  formItemFlag: !1,
3823
3843
  options: {
@@ -3856,6 +3876,7 @@ export const advancedFields = [
3856
3876
  type: "vue-page",
3857
3877
  icon: "vue-sfc",
3858
3878
  commonFlag: !0,
3879
+ layoutType: "PC",
3859
3880
  formItemFlag: !1,
3860
3881
  columnFlag: false,
3861
3882
  options: {
@@ -4104,6 +4125,8 @@ export const businessFields = [
4104
4125
  commonFlag: !0,
4105
4126
  columnFlag: true,
4106
4127
  formItemFlag: !0,
4128
+ /* H5 业务组件只保留创建人/更新人/创建时间/更新时间 */
4129
+ layoutType: "PC",
4107
4130
  tableField: null,
4108
4131
  options: {
4109
4132
  ...vabsearchConfig,
@@ -4127,6 +4150,7 @@ export const businessFields = [
4127
4150
  commonFlag: !0,
4128
4151
  columnFlag: true,
4129
4152
  formItemFlag: !0,
4153
+ layoutType: "PC",
4130
4154
  tableField: null,
4131
4155
  options: {
4132
4156
  ...vabsearchConfig,
@@ -4151,6 +4175,7 @@ export const businessFields = [
4151
4175
  commonFlag: !0,
4152
4176
  columnFlag: true,
4153
4177
  formItemFlag: !0,
4178
+ layoutType: "PC",
4154
4179
  tableField: null,
4155
4180
  options: {
4156
4181
  ...projectTagConfig,
@@ -4172,6 +4197,7 @@ export const businessFields = [
4172
4197
  commonFlag: !0,
4173
4198
  columnFlag: true,
4174
4199
  formItemFlag: !0,
4200
+ layoutType: "PC",
4175
4201
  tableField: null,
4176
4202
  options: {
4177
4203
  ...projectTagConfig,
@@ -4234,6 +4260,7 @@ export const businessFields = [
4234
4260
  commonFlag: !0,
4235
4261
  columnFlag: true,
4236
4262
  formItemFlag: !1,
4263
+ layoutType: "PC",
4237
4264
  options: {
4238
4265
  name: "",
4239
4266
  label: "复制",
@@ -4264,6 +4291,7 @@ export const businessFields = [
4264
4291
  commonFlag: !0,
4265
4292
  columnFlag: true,
4266
4293
  formItemFlag: !1,
4294
+ layoutType: "PC",
4267
4295
  options: {
4268
4296
  name: "",
4269
4297
  // label: "暂存",
@@ -4286,6 +4314,7 @@ export const businessFields = [
4286
4314
  type: "oplog",
4287
4315
  icon: "list",
4288
4316
  commonFlag: !0,
4317
+ layoutType: "PC",
4289
4318
  formItemFlag: !1,
4290
4319
  options: {
4291
4320
  name: "",
@@ -4308,6 +4337,7 @@ export const businessFields = [
4308
4337
  icon: "file-upload-field",
4309
4338
  commonFlag: !0,
4310
4339
  formItemFlag: !0,
4340
+ layoutType: "PC",
4311
4341
  tableField: null,
4312
4342
  options: {
4313
4343
  name: "",
@@ -4653,6 +4683,28 @@ export const widgetPanelOrder = {
4653
4683
  ],
4654
4684
  };
4655
4685
 
4686
+ /**
4687
+ * H5 版式左侧组件面板白名单(仅影响面板展示,不影响已有模板渲染与按 type 查找)。
4688
+ * 容器:H5详情 / H5列表 / H5卡片 / h5表格
4689
+ * 基础字段:文本、状态、凭证、下拉选项
4690
+ * (status / vabUpload 定义在 advancedFields,面板会归入基础字段)
4691
+ * 业务组件:创建人、更新人、创建时间、更新时间
4692
+ */
4693
+ export const h5PanelAllowTypes = [
4694
+ "detail-h5",
4695
+ "list-h5",
4696
+ "h5-card",
4697
+ "h5-table",
4698
+ "text",
4699
+ "status",
4700
+ "vabUpload",
4701
+ "select",
4702
+ "create_by-text",
4703
+ "modify_by-text",
4704
+ "create_date-text",
4705
+ "modify_date-text",
4706
+ ];
4707
+
4656
4708
  /**
4657
4709
  * H5 版式:所有表单字段统一具备 h5Span(整宽/半宽)。
4658
4710
  *