cloud-web-corejs 1.1.0-dev.6 → 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.
- package/package.json +1 -1
- package/src/components/VabUpload/view.vue +27 -26
- package/src/components/excelImport/index.vue +156 -156
- package/src/components/mobile/wf/addTaskUserdialog.vue +23 -3
- package/src/components/mobile/wf/content.vue +110 -67
- package/src/components/mobile/wf/deleteTaskUserDialog.vue +22 -3
- package/src/components/mobile/wf/selectUserDialog.vue +122 -0
- package/src/components/mobile/wf/setCandidateDialog.vue +25 -4
- package/src/components/mobile/wf/urgingDialog.vue +26 -3
- package/src/components/mobile/wf/wfModifyDialog.vue +4 -0
- package/src/components/xform/form-designer/designer.js +36 -52
- package/src/components/xform/form-designer/form-widget/dialog/importDialog.vue +185 -185
- package/src/components/xform/form-designer/form-widget/field-widget/singleUpload-widget.vue +1 -1
- package/src/components/xform/form-designer/form-widget/field-widget/vabUpload-widget.vue +2 -2
- package/src/components/xform/form-designer/indexMixin.js +25 -0
- package/src/components/xform/form-designer/setting-panel/property-editor/container-list-h5/list-h5-editor.vue +833 -860
- package/src/components/xform/form-designer/toolbar-panel/index.vue +874 -874
- package/src/components/xform/form-designer/widget-panel/index.vue +11 -7
- package/src/components/xform/form-designer/widget-panel/indexMixin.js +15 -2
- package/src/components/xform/form-designer/widget-panel/widgetsConfig.js +53 -1
- package/src/components/xform/form-render/container-item/list-h5-item.vue +154 -27
- package/src/components/xform/form-render/indexMixin.js +23 -3
- package/src/components/xform/styles/h5.scss +774 -588
- package/src/directive/append-to-body/index.js +48 -0
- package/src/index.js +4 -0
- package/src/layout/components/Sidebar/default.vue +1655 -1655
- package/src/router/index.js +48 -48
- package/src/utils/vab.js +1283 -1283
- package/src/views/bd/setting/form_template/edit.vue +378 -356
- package/src/views/bd/setting/form_template/formDesignerDialog.vue +6 -0
- package/src/views/bd/setting/form_template/formTemplateType.js +43 -0
- package/src/views/bd/setting/form_template/list.vue +304 -303
- package/src/views/bd/setting/form_template/mixins/edit.js +344 -280
- package/src/views/bd/setting/form_template/mixins/list.js +748 -721
- package/src/views/user/file_view_ins/list.vue +970 -970
- package/src/views/user/form/vform/designer.vue +823 -821
- package/src/views/user/home/default.vue +1117 -1117
- package/src/views/user/home/index.vue +103 -103
- package/src/views/user/notify_message/dialog.vue +139 -139
- package/src/views/user/outLink/form_view.vue +202 -202
- package/src/views/user/outLink/index.vue +110 -110
- package/src/views/user/wf/iframe/index.vue +51 -51
- package/src/views/user/wf/iframe/index2.vue +64 -64
- package/src/views/user/wf/wf_manage/list2.vue +871 -871
- package/src/views/user/wf/wf_manage/wfContentDialog.vue +134 -134
|
@@ -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
|
|
@@ -207,7 +208,7 @@ modules = {
|
|
|
207
208
|
displayName: this.i18n2t(`designer.widgetLabel.${fld.type}`, `extension.widgetLabel.${fld.type}`)
|
|
208
209
|
};
|
|
209
210
|
}).filter(fld => {
|
|
210
|
-
return !this.isBanned(fld.type) && this.getIsShow(fld);
|
|
211
|
+
return !fld.internal && !this.isBanned(fld.type) && this.getIsShow(fld);
|
|
211
212
|
});
|
|
212
213
|
|
|
213
214
|
/* 面板分组归一:表单数据字段(搜索框/自动完成/级联/凭证/状态等)展示在基础字段分组 */
|
|
@@ -268,6 +269,14 @@ modules = {
|
|
|
268
269
|
return !this.isBanned(fld.type) && this.getIsShow(fld);
|
|
269
270
|
});
|
|
270
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
|
+
|
|
271
280
|
},
|
|
272
281
|
|
|
273
282
|
/* 按 widgetPanelOrder 排序面板展示列表;未列出的类型(含扩展组件)排在末尾,保持原有相对顺序 */
|
|
@@ -354,6 +363,10 @@ modules = {
|
|
|
354
363
|
let flag = !ftd.layoutType || ftd.layoutType === layoutType;
|
|
355
364
|
let flag2 = this.checkColumnFlag(ftd)
|
|
356
365
|
let flag3 = !!ftd.commonFlag
|
|
366
|
+
/* H5 面板按白名单收口,PC 不受影响 */
|
|
367
|
+
if (layoutType === "H5") {
|
|
368
|
+
flag = flag && h5PanelAllowTypes.indexOf(ftd.type) > -1;
|
|
369
|
+
}
|
|
357
370
|
return flag && flag2 && flag3;
|
|
358
371
|
}
|
|
359
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:
|
|
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
|
*
|
|
@@ -111,7 +111,12 @@
|
|
|
111
111
|
<template
|
|
112
112
|
v-else-if="column.slots && column.slots.default == 'widget'"
|
|
113
113
|
>
|
|
114
|
+
<!-- 临时只读:只出选中文本;关掉 H5_TEMP_READ_ONLY 后仍走下面的控件 -->
|
|
115
|
+
<template v-if="getReadMode()">
|
|
116
|
+
{{ getColumnDisplayText(column, row, rowIndex) }}
|
|
117
|
+
</template>
|
|
114
118
|
<component
|
|
119
|
+
v-else
|
|
115
120
|
:is="getColumnWidgetName(column.params.widget)"
|
|
116
121
|
:field="column.params.widget"
|
|
117
122
|
:form-model="globalModel.formModel"
|
|
@@ -230,12 +235,90 @@
|
|
|
230
235
|
}}
|
|
231
236
|
</template>
|
|
232
237
|
|
|
233
|
-
<!--
|
|
234
|
-
|
|
235
|
-
|
|
236
|
-
<template v-else>
|
|
238
|
+
<!-- 临时只读:行上只出选中文本。控件/操作链接不能删,
|
|
239
|
+
关掉 H5_TEMP_READ_ONLY 后仍要能编辑。 -->
|
|
240
|
+
<template v-else-if="getReadMode()">
|
|
237
241
|
{{ getColumnDisplayText(column, row, rowIndex) }}
|
|
238
242
|
</template>
|
|
243
|
+
<template
|
|
244
|
+
v-else-if="
|
|
245
|
+
column.slots && column.slots.default == 'widget'
|
|
246
|
+
"
|
|
247
|
+
>
|
|
248
|
+
<component
|
|
249
|
+
:is="getColumnWidgetName(column.params.widget)"
|
|
250
|
+
:field="column.params.widget"
|
|
251
|
+
:form-model="globalModel.formModel"
|
|
252
|
+
:designer="null"
|
|
253
|
+
:key="rowIndex + '-' + columnIndex"
|
|
254
|
+
:parent-widget="widget"
|
|
255
|
+
:columnConfig="column.params.columnConfig"
|
|
256
|
+
:subFormRowIndex="rowIndex"
|
|
257
|
+
:formItemProp="
|
|
258
|
+
getColumnProp(widget, {
|
|
259
|
+
column: column,
|
|
260
|
+
rowIndex: rowIndex,
|
|
261
|
+
row: row,
|
|
262
|
+
items: fieldModel,
|
|
263
|
+
})
|
|
264
|
+
"
|
|
265
|
+
:tableParam="{
|
|
266
|
+
column: column,
|
|
267
|
+
rowIndex: rowIndex,
|
|
268
|
+
row: row,
|
|
269
|
+
items: fieldModel,
|
|
270
|
+
}"
|
|
271
|
+
></component>
|
|
272
|
+
</template>
|
|
273
|
+
<template
|
|
274
|
+
v-else-if="column.params.formatS == 'editDelete'"
|
|
275
|
+
>
|
|
276
|
+
<a
|
|
277
|
+
href="javascript:void(0);"
|
|
278
|
+
class="a-link"
|
|
279
|
+
@click="deleteRow(row, rowIndex)"
|
|
280
|
+
>
|
|
281
|
+
<el-tooltip
|
|
282
|
+
:enterable="false"
|
|
283
|
+
effect="dark"
|
|
284
|
+
content="删除"
|
|
285
|
+
placement="top"
|
|
286
|
+
popper-class="tooltip-skin"
|
|
287
|
+
>
|
|
288
|
+
<i class="el-icon-delete" />
|
|
289
|
+
</el-tooltip>
|
|
290
|
+
</a>
|
|
291
|
+
</template>
|
|
292
|
+
<template
|
|
293
|
+
v-else-if="column.params.formatS == 'editButton'"
|
|
294
|
+
>
|
|
295
|
+
<a
|
|
296
|
+
href="javascript:void(0);"
|
|
297
|
+
class="a-link"
|
|
298
|
+
@click.stop="openEditDialog(row)"
|
|
299
|
+
>
|
|
300
|
+
<el-tooltip
|
|
301
|
+
:enterable="false"
|
|
302
|
+
effect="dark"
|
|
303
|
+
content="查看"
|
|
304
|
+
placement="top"
|
|
305
|
+
popper-class="tooltip-skin"
|
|
306
|
+
>
|
|
307
|
+
<i class="el-icon-edit" />
|
|
308
|
+
</el-tooltip>
|
|
309
|
+
</a>
|
|
310
|
+
</template>
|
|
311
|
+
<template v-else>
|
|
312
|
+
{{
|
|
313
|
+
column.formatter({
|
|
314
|
+
cellValue: row[column.field],
|
|
315
|
+
column: column,
|
|
316
|
+
rowIndex: rowIndex,
|
|
317
|
+
row: row,
|
|
318
|
+
items: fieldModel,
|
|
319
|
+
})
|
|
320
|
+
}}
|
|
321
|
+
</template>
|
|
239
322
|
</dd>
|
|
240
323
|
</div>
|
|
241
324
|
</dl>
|
|
@@ -377,7 +460,8 @@
|
|
|
377
460
|
width="100%"
|
|
378
461
|
top="0px"
|
|
379
462
|
v-el-drag-dialog
|
|
380
|
-
v-el-dialog-center
|
|
463
|
+
v-el-dialog-center
|
|
464
|
+
:append-to-body ="true"
|
|
381
465
|
:destroy-on-close="true"
|
|
382
466
|
>
|
|
383
467
|
<div class="cont" style="height: calc(100vh - 73px)">
|
|
@@ -699,6 +783,7 @@ export default {
|
|
|
699
783
|
"globalModel",
|
|
700
784
|
"getFormConfig",
|
|
701
785
|
"getGlobalDsv",
|
|
786
|
+
"getReadMode",
|
|
702
787
|
],
|
|
703
788
|
data: function () {
|
|
704
789
|
let that = this;
|
|
@@ -1466,6 +1551,9 @@ export default {
|
|
|
1466
1551
|
return newData;
|
|
1467
1552
|
},
|
|
1468
1553
|
addTableData(rows, field) {
|
|
1554
|
+
if (this.getReadMode && this.getReadMode()) {
|
|
1555
|
+
return;
|
|
1556
|
+
}
|
|
1469
1557
|
let formDataModel = this.formModel;
|
|
1470
1558
|
let tableRows = this.fieldModel;
|
|
1471
1559
|
let fullData = this.fieldModel;
|
|
@@ -1500,30 +1588,33 @@ export default {
|
|
|
1500
1588
|
},
|
|
1501
1589
|
getColumnWidgetConfig(row) {
|
|
1502
1590
|
let formRef = this.getFormRef();
|
|
1503
|
-
let formatS = row.formatS;
|
|
1504
1591
|
let columnSelectedWidget = null;
|
|
1505
1592
|
let columnEditFields = null;
|
|
1506
|
-
|
|
1507
1593
|
let type = this.columnFormatMap[row.formatS];
|
|
1508
1594
|
|
|
1509
1595
|
if (type) {
|
|
1510
|
-
|
|
1511
|
-
|
|
1512
|
-
)
|
|
1513
|
-
|
|
1514
|
-
let idVal = row.prop ? row.prop : type + tmpId;
|
|
1515
|
-
columnSelectedWidget.id = idVal;
|
|
1516
|
-
columnSelectedWidget.options.name = idVal;
|
|
1517
|
-
if (row.columnOption && Object.keys(row.columnOption).length) {
|
|
1518
|
-
row.columnOption.required = row.required || false;
|
|
1519
|
-
columnSelectedWidget.options = row.columnOption;
|
|
1596
|
+
// 格式化配置写在 row.widget(含 optionItems);老数据才落在 columnOption。
|
|
1597
|
+
// 不能每次从字段模板重建,否则下拉选项丢失,行上只能看到 value。
|
|
1598
|
+
if (row.widget && row.widget.type) {
|
|
1599
|
+
columnSelectedWidget = this.$baseLodash.cloneDeep(row.widget);
|
|
1520
1600
|
} else {
|
|
1521
|
-
columnSelectedWidget
|
|
1522
|
-
|
|
1601
|
+
columnSelectedWidget = this.$baseLodash.cloneDeep(
|
|
1602
|
+
formRef.getFieldWidgetByType(type)
|
|
1603
|
+
);
|
|
1604
|
+
let tmpId = generateId();
|
|
1605
|
+
let idVal = row.prop ? row.prop : type + tmpId;
|
|
1606
|
+
columnSelectedWidget.id = idVal;
|
|
1607
|
+
if (row.columnOption && Object.keys(row.columnOption).length) {
|
|
1608
|
+
columnSelectedWidget.options = row.columnOption;
|
|
1609
|
+
}
|
|
1610
|
+
}
|
|
1611
|
+
if (!columnSelectedWidget.options) {
|
|
1612
|
+
columnSelectedWidget.options = {};
|
|
1523
1613
|
}
|
|
1524
1614
|
columnSelectedWidget.options.name = row.prop;
|
|
1525
1615
|
columnSelectedWidget.options.label = row.label;
|
|
1526
1616
|
columnSelectedWidget.options.labelHidden = true;
|
|
1617
|
+
columnSelectedWidget.options.required = row.required || false;
|
|
1527
1618
|
}
|
|
1528
1619
|
return { columnSelectedWidget, columnEditFields };
|
|
1529
1620
|
},
|
|
@@ -1631,18 +1722,17 @@ export default {
|
|
|
1631
1722
|
/**
|
|
1632
1723
|
* 明细行的显示文本。
|
|
1633
1724
|
*
|
|
1634
|
-
*
|
|
1635
|
-
* value 换成 label
|
|
1636
|
-
* 因为 formatterValue 只做日期与数字格式化,不查选项表。
|
|
1725
|
+
* H5 只读:行上不渲染下拉框,只出选中项文本。
|
|
1726
|
+
* 有选项的列必须自己把 value 换成 label,formatterValue 不做选项映射。
|
|
1637
1727
|
*/
|
|
1638
1728
|
getColumnDisplayText(column, row, rowIndex) {
|
|
1639
1729
|
let value = row[column.field];
|
|
1640
1730
|
let columnWidget = column.params ? column.params.widget : null;
|
|
1641
|
-
|
|
1642
|
-
|
|
1643
|
-
|
|
1644
|
-
|
|
1645
|
-
|
|
1731
|
+
if (columnWidget) {
|
|
1732
|
+
let mapped = this.getWidgetOptionLabel(columnWidget, value);
|
|
1733
|
+
if (mapped != null && mapped !== "") {
|
|
1734
|
+
return mapped;
|
|
1735
|
+
}
|
|
1646
1736
|
}
|
|
1647
1737
|
return column.formatter({
|
|
1648
1738
|
cellValue: value,
|
|
@@ -1652,6 +1742,43 @@ export default {
|
|
|
1652
1742
|
items: this.fieldModel,
|
|
1653
1743
|
});
|
|
1654
1744
|
},
|
|
1745
|
+
getOptionItemValueKey(widget) {
|
|
1746
|
+
let options = (widget && widget.options) || {};
|
|
1747
|
+
if (options.commonAttributeEnabled) {
|
|
1748
|
+
return options.valueKey || "sn";
|
|
1749
|
+
}
|
|
1750
|
+
return options.valueKey || "value";
|
|
1751
|
+
},
|
|
1752
|
+
getOptionItemLabelKey(widget) {
|
|
1753
|
+
let options = (widget && widget.options) || {};
|
|
1754
|
+
if (options.commonAttributeEnabled) {
|
|
1755
|
+
return options.labelKey || "value";
|
|
1756
|
+
}
|
|
1757
|
+
return options.labelKey || "label";
|
|
1758
|
+
},
|
|
1759
|
+
getWidgetOptionLabel(fieldWidget, fieldModel) {
|
|
1760
|
+
if (fieldModel === null || fieldModel === undefined || fieldModel === "") {
|
|
1761
|
+
return fieldModel;
|
|
1762
|
+
}
|
|
1763
|
+
let options = (fieldWidget && fieldWidget.options) || {};
|
|
1764
|
+
let optionList = options.optionItems || options.statusParam;
|
|
1765
|
+
if (!Array.isArray(optionList) || !optionList.length) {
|
|
1766
|
+
return null;
|
|
1767
|
+
}
|
|
1768
|
+
let labelField = this.getOptionItemLabelKey(fieldWidget);
|
|
1769
|
+
let valueField = this.getOptionItemValueKey(fieldWidget);
|
|
1770
|
+
let values = Array.isArray(fieldModel) ? fieldModel : [fieldModel];
|
|
1771
|
+
let labels = values.map((val) => {
|
|
1772
|
+
let item = optionList.find(
|
|
1773
|
+
(o) => o[valueField] === val || String(o[valueField]) === String(val)
|
|
1774
|
+
);
|
|
1775
|
+
if (!item) return null;
|
|
1776
|
+
let label = item[labelField];
|
|
1777
|
+
return this.$t1 ? this.$t1(label) : label;
|
|
1778
|
+
});
|
|
1779
|
+
let hit = labels.filter((x) => x != null && x !== "");
|
|
1780
|
+
return hit.length ? hit.join(",") : null;
|
|
1781
|
+
},
|
|
1655
1782
|
/**
|
|
1656
1783
|
* 行点击:
|
|
1657
1784
|
* - 查询选择场景(isQueryTable):点行是勾选,保持原行为;
|