cloud-web-corejs 1.1.0-dev.19 → 1.1.0-dev.21

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 (22) hide show
  1. package/package.json +1 -1
  2. package/src/components/baseInputExport/mixins.js +0 -6
  3. package/src/components/xform/docs/2026-09 /345/212/250/346/200/201/345/255/227/346/256/265/350/247/204/345/210/231/344/270/216/346/265/201/347/250/213/346/216/247/345/210/266/346/211/247/350/241/214/351/241/272/345/272/217/350/220/275/345/234/260/346/226/271/346/241/210.md" +409 -0
  4. package/src/components/xform/form-designer/designer.js +2086 -2084
  5. package/src/components/xform/form-designer/form-widget/dialog/importDialogMixin.js +34 -0
  6. package/src/components/xform/form-designer/form-widget/field-widget/fieldMixin.js +13 -1
  7. package/src/components/xform/form-designer/setting-panel/form-dynamicField-setting.vue +687 -602
  8. package/src/components/xform/form-designer/setting-panel/form-setting.vue +74 -9
  9. package/src/components/xform/form-designer/setting-panel/property-editor/field-import-button/import2-button-editor.vue +8 -0
  10. package/src/components/xform/form-render/container-item/data-table-mixin.js +6304 -6285
  11. package/src/components/xform/form-render/container-item/dynamicFieldMixin.js +55 -1
  12. package/src/components/xform/form-render/container-item/tab-item.vue +138 -129
  13. package/src/components/xform/form-render/fieldControlEngine.js +218 -0
  14. package/src/components/xform/form-render/fieldControlMixin.js +534 -0
  15. package/src/components/xform/form-render/index.vue +164 -153
  16. package/src/components/xform/form-render/indexMixin.js +5415 -5331
  17. package/src/components/xform/mixins/defaultHandle.js +713 -707
  18. package/src/components/xform/utils/util.js +1710 -1708
  19. package/src/views/user/home/default.vue +6 -3
  20. package/src/views/user/home/wjl/content.vue +3 -2
  21. package/src/components/xform/form-render/container-item/dynamicFieldEngine.js +0 -285
  22. package/src/components/xform/form-render/formDynamicFieldMixin.js +0 -131
@@ -1,153 +1,164 @@
1
- <!--
2
- /**
3
- * author: vformAdmin
4
- * email: vdpadmin@163.com
5
- * website: https://www.vform666.com
6
- * date: 2021.08.18
7
- * remark: 如果要分发VForm源码,需在本文件顶部保留此文件头信息!!
8
- */
9
- -->
10
-
11
- <template>
12
- <div>
13
- <el-form
14
- :label-position="labelPosition"
15
- :size="size"
16
- :class="[customClass, h5RootClass]"
17
- class="render-form"
18
- :label-width="labelWidth"
19
- :validate-on-rule-change="false"
20
- :model="formDataModel"
21
- ref="renderForm"
22
- @submit.native.prevent
23
- >
24
- <template v-if="showFormContent">
25
- <template v-for="(widget, index) in widgetList">
26
- <template v-if="'container' === widget.category">
27
- <component
28
- :is="getContainerWidgetName(widget)"
29
- :widget="widget"
30
- :field="widget"
31
- :key="widget.id"
32
- :parent-list="widgetList"
33
- :index-of-parent-list="index"
34
- :parent-widget="null"
35
- >
36
- <!-- 递归传递插槽!!! -->
37
- <template v-for="slot in Object.keys($scopedSlots)" v-slot:[slot]="scope">
38
- <slot :name="slot" v-bind="scope" />
39
- </template>
40
- </component>
41
- </template>
42
- <template v-else>
43
- <component
44
- :is="getWidgetName(widget)"
45
- :field="widget"
46
- :form-model="formDataModel"
47
- :designer="null"
48
- :key="widget.id"
49
- :parent-list="widgetList"
50
- :index-of-parent-list="index"
51
- :parent-widget="null"
52
- >
53
- <!-- 递归传递插槽!!! -->
54
- <template v-for="slot in Object.keys($scopedSlots)" v-slot:[slot]="scope">
55
- <slot :name="slot" v-bind="scope" />
56
- </template>
57
- </component>
58
- </template>
59
- </template>
60
- </template>
61
- </el-form>
62
- <searchFormDialog
63
- v-if="showSearchDialog"
64
- :visiable.sync="showSearchDialog"
65
- ref="searchFormDialog"
66
- :option="searchDialogOption"
67
- ></searchFormDialog>
68
- <formDialog
69
- v-if="showFormDialog"
70
- :visiable.sync="showFormDialog"
71
- ref="formDialog"
72
- :option="formDialogOption"
73
- ></formDialog>
74
- <importDialog
75
- v-if="showImportDialog"
76
- :visiable.sync="showImportDialog"
77
- :param="importDialogOption"
78
- :parentTarget="_self"
79
- ></importDialog>
80
- <fileReferenceDialog
81
- v-if="showFileReferenceDialog"
82
- :visiable.sync="showFileReferenceDialog"
83
- :option="fileReferenceDialogOption"
84
- ></fileReferenceDialog>
85
- <formulaDialog
86
- v-if="formulaDialogVisible"
87
- :visiable.sync="formulaDialogVisible"
88
- :option="formulaDialogOption"
89
- ></formulaDialog>
90
- <baseFormulaDialog
91
- v-if="baseFormulaDialogVisible"
92
- :visiable.sync="baseFormulaDialogVisible"
93
- :option="baseFormulaDialogOption"
94
- ></baseFormulaDialog>
95
- <template v-if="showQrCanvas">
96
- <canvas ref="qrCanvas" v-show="false" :width="qrWidth" :height="qrHeight"></canvas>
97
- </template>
98
- <univerDialog
99
- v-if="showUniverDialog"
100
- :visiable.sync="showUniverDialog"
101
- :option="univerDialogOption"
102
- ></univerDialog>
103
- <compareDelList
104
- v-if="showCompareDelList"
105
- :visiable.sync="showCompareDelList"
106
- :option="compareDelListOption"
107
- ></compareDelList>
108
- </div>
109
- </template>
110
-
111
- <script>
112
- //import ElForm from 'element-ui/packages/form/src/form.vue' /* 用于源码调试Element UI */
113
- import "./container-item/index";
114
- import FieldComponents from "../../../components/xform/form-designer/form-widget/field-widget/index";
115
- import indexMixin from "../../../components/xform/form-render/indexMixin";
116
- import formDynamicFieldMixin from "../../../components/xform/form-render/formDynamicFieldMixin";
117
-
118
- export default {
119
- name: "VFormRender",
120
- components: {
121
- ...FieldComponents,
122
- searchFormDialog: () =>
123
- import(
124
- "../../../components/xform/form-designer/form-widget/dialog/searchFormDialog.vue"
125
- ),
126
- formDialog: () =>
127
- import("../../../components/xform/form-designer/form-widget/dialog/formDialog.vue"),
128
- importDialog: () =>
129
- import(
130
- "../../../components/xform/form-designer/form-widget/dialog/importDialog.vue"
131
- ),
132
- fileReferenceDialog: () =>
133
- import(
134
- "../../../components/xform/form-designer/form-widget/dialog/fileReferenceDialog.vue"
135
- ),
136
- compareDelList: () =>
137
- import("../../../components/xform/form-render/compareDelList.vue"),
138
- },
139
- mixins: [indexMixin, formDynamicFieldMixin],
140
- };
141
- </script>
142
-
143
- <style lang="scss" scoped>
144
- .el-form ::v-deep .el-row {
145
- // padding: 8px;
146
- }
147
- </style>
148
-
149
- <!-- H5 版式样式基线:必须非 scoped,要穿透到各 field-widget 内部的 el-form-item。
150
- 全部规则收在 .xform-h5 下(由上面 el-form 的 h5RootClass 输出),PC 版式不生效。 -->
151
- <style lang="scss">
152
- @import "../styles/h5.scss";
153
- </style>
1
+ <!--
2
+ /**
3
+ * author: vformAdmin
4
+ * email: vdpadmin@163.com
5
+ * website: https://www.vform666.com
6
+ * date: 2021.08.18
7
+ * remark: 如果要分发VForm源码,需在本文件顶部保留此文件头信息!!
8
+ */
9
+ -->
10
+
11
+ <template>
12
+ <div>
13
+ <el-alert v-if="fieldControlError" :title="fieldControlError" type="error" :closable="false" show-icon>
14
+ <el-button type="text" @click="retryFieldControl">重新计算字段规则</el-button>
15
+ </el-alert>
16
+ <div v-if="fieldControlBlocked" role="status">正在准备表单,请稍候…</div>
17
+ <el-form
18
+ :label-position="labelPosition"
19
+ :size="size"
20
+ :class="[customClass, h5RootClass]"
21
+ class="render-form"
22
+ :style="fieldControlBlocked
23
+ ? { visibility: 'hidden' }
24
+ : (fieldControlInteractionBlocked ? { pointerEvents: 'none' } : null)"
25
+ :inert="fieldControlInteractionBlocked ? '' : null"
26
+ :aria-busy="fieldControlBlocked ? 'true' : 'false'"
27
+ :aria-disabled="fieldControlInteractionBlocked ? 'true' : 'false'"
28
+ :label-width="labelWidth"
29
+ :validate-on-rule-change="false"
30
+ :model="formDataModel"
31
+ ref="renderForm"
32
+ @submit.native.prevent
33
+ >
34
+ <template v-if="showFormContent">
35
+ <template v-for="(widget, index) in widgetList">
36
+ <template v-if="'container' === widget.category">
37
+ <component
38
+ :is="getContainerWidgetName(widget)"
39
+ :widget="widget"
40
+ :field="widget"
41
+ :key="widget.id"
42
+ :parent-list="widgetList"
43
+ :index-of-parent-list="index"
44
+ :parent-widget="null"
45
+ >
46
+ <!-- 递归传递插槽!!! -->
47
+ <template v-for="slot in Object.keys($scopedSlots)" v-slot:[slot]="scope">
48
+ <slot :name="slot" v-bind="scope" />
49
+ </template>
50
+ </component>
51
+ </template>
52
+ <template v-else>
53
+ <component
54
+ :is="getWidgetName(widget)"
55
+ :field="widget"
56
+ :form-model="formDataModel"
57
+ :designer="null"
58
+ :key="widget.id"
59
+ :parent-list="widgetList"
60
+ :index-of-parent-list="index"
61
+ :parent-widget="null"
62
+ >
63
+ <!-- 递归传递插槽!!! -->
64
+ <template v-for="slot in Object.keys($scopedSlots)" v-slot:[slot]="scope">
65
+ <slot :name="slot" v-bind="scope" />
66
+ </template>
67
+ </component>
68
+ </template>
69
+ </template>
70
+ </template>
71
+ </el-form>
72
+ <searchFormDialog
73
+ v-if="showSearchDialog"
74
+ :visiable.sync="showSearchDialog"
75
+ ref="searchFormDialog"
76
+ :option="searchDialogOption"
77
+ ></searchFormDialog>
78
+ <formDialog
79
+ v-if="showFormDialog"
80
+ :visiable.sync="showFormDialog"
81
+ ref="formDialog"
82
+ :option="formDialogOption"
83
+ ></formDialog>
84
+ <importDialog
85
+ v-if="showImportDialog"
86
+ :visiable.sync="showImportDialog"
87
+ :param="importDialogOption"
88
+ :parentTarget="_self"
89
+ ></importDialog>
90
+ <fileReferenceDialog
91
+ v-if="showFileReferenceDialog"
92
+ :visiable.sync="showFileReferenceDialog"
93
+ :option="fileReferenceDialogOption"
94
+ ></fileReferenceDialog>
95
+ <formulaDialog
96
+ v-if="formulaDialogVisible"
97
+ :visiable.sync="formulaDialogVisible"
98
+ :option="formulaDialogOption"
99
+ ></formulaDialog>
100
+ <baseFormulaDialog
101
+ v-if="baseFormulaDialogVisible"
102
+ :visiable.sync="baseFormulaDialogVisible"
103
+ :option="baseFormulaDialogOption"
104
+ ></baseFormulaDialog>
105
+ <template v-if="showQrCanvas">
106
+ <canvas ref="qrCanvas" v-show="false" :width="qrWidth" :height="qrHeight"></canvas>
107
+ </template>
108
+ <univerDialog
109
+ v-if="showUniverDialog"
110
+ :visiable.sync="showUniverDialog"
111
+ :option="univerDialogOption"
112
+ ></univerDialog>
113
+ <compareDelList
114
+ v-if="showCompareDelList"
115
+ :visiable.sync="showCompareDelList"
116
+ :option="compareDelListOption"
117
+ ></compareDelList>
118
+ </div>
119
+ </template>
120
+
121
+ <script>
122
+ //import ElForm from 'element-ui/packages/form/src/form.vue' /* 用于源码调试Element UI */
123
+ import "./container-item/index";
124
+ import FieldComponents from "../../../components/xform/form-designer/form-widget/field-widget/index";
125
+ import indexMixin from "../../../components/xform/form-render/indexMixin";
126
+
127
+ import fieldControlMixin from "@base/components/xform/form-render/fieldControlMixin";
128
+
129
+ export default {
130
+ name: "VFormRender",
131
+ components: {
132
+ ...FieldComponents,
133
+ searchFormDialog: () =>
134
+ import(
135
+ "../../../components/xform/form-designer/form-widget/dialog/searchFormDialog.vue"
136
+ ),
137
+ formDialog: () =>
138
+ import("../../../components/xform/form-designer/form-widget/dialog/formDialog.vue"),
139
+ importDialog: () =>
140
+ import(
141
+ "../../../components/xform/form-designer/form-widget/dialog/importDialog.vue"
142
+ ),
143
+ fileReferenceDialog: () =>
144
+ import(
145
+ "../../../components/xform/form-designer/form-widget/dialog/fileReferenceDialog.vue"
146
+ ),
147
+ compareDelList: () =>
148
+ import("../../../components/xform/form-render/compareDelList.vue"),
149
+ },
150
+ mixins: [indexMixin, fieldControlMixin],
151
+ };
152
+ </script>
153
+
154
+ <style lang="scss" scoped>
155
+ .el-form ::v-deep .el-row {
156
+ // padding: 8px;
157
+ }
158
+ </style>
159
+
160
+ <!-- H5 版式样式基线:必须非 scoped,要穿透到各 field-widget 内部的 el-form-item。
161
+ 全部规则收在 .xform-h5 下(由上面 el-form 的 h5RootClass 输出),PC 版式不生效。 -->
162
+ <style lang="scss">
163
+ @import "../styles/h5.scss";
164
+ </style>