cloud-web-corejs 1.0.54-dev.20 → 1.0.54-dev.201

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 (247) hide show
  1. package/package.json +13 -4
  2. package/src/components/Qrcode/fileParse.vue +0 -1
  3. package/src/components/VabUpload/index.vue +2 -1
  4. package/src/components/VabUpload/mixins.js +1 -1
  5. package/src/components/VabUpload/view.vue +22 -6
  6. package/src/components/advancedSearchDialog/mixins.js +1 -1
  7. package/src/components/baseAttachment/index.vue +22 -13
  8. package/src/components/baseAttachment/mixins.js +1 -1
  9. package/src/components/excelExport/exportFieldDialog.vue +16 -6
  10. package/src/components/excelExport/index.js +2 -1
  11. package/src/components/excelExport/index.vue +8 -6
  12. package/src/components/excelExport/mixins.js +3 -2
  13. package/src/components/excelImport/mixins.js +1 -1
  14. package/src/components/fileLibrary/fileObjAuthDialog.vue +1 -1
  15. package/src/components/fileLibrary/fileObjAuthEditDialog.vue +7 -1
  16. package/src/components/fileLibrary/fileObjNotifyEdit.vue +90 -68
  17. package/src/components/fileLibrary/filterDialog.vue +383 -0
  18. package/src/components/fileLibrary/index.vue +23 -24
  19. package/src/components/fileLibrary/mixins/categoryMoveDialogMixins.js +1 -1
  20. package/src/components/fileLibrary/mixins/fileCategoryDialogMixins.js +1 -1
  21. package/src/components/fileLibrary/mixins/fileHistoryDialogMixins.js +2 -2
  22. package/src/components/fileLibrary/mixins/fileObjAuthDialogMixin.js +337 -207
  23. package/src/components/fileLibrary/mixins/fileObjAuthEditDialogMixin.js +33 -26
  24. package/src/components/fileLibrary/mixins/fileObjAuthEditMixin.js +5 -5
  25. package/src/components/fileLibrary/mixins/indexMixins.js +77 -27
  26. package/src/components/fileLibrary/mixins/propertiesDialogMixins.js +63 -3
  27. package/src/components/fileLibrary/mixins/recycleBinDialogMixins.js +1 -1
  28. package/src/components/fileLibrary/propertiesDialog.vue +18 -0
  29. package/src/components/fileLibrary/shareDialog.vue +1 -1
  30. package/src/components/jsonImport/index.js +171 -1
  31. package/src/components/jsonImport/mixins.js +1 -1
  32. package/src/components/onlineTalk/index.vue +327 -5
  33. package/src/components/onlineTalk/mixins.js +1 -1
  34. package/src/components/table/CellSlot.vue +1 -0
  35. package/src/components/table/index.js +12 -10
  36. package/src/components/table/tableForm.vue +99 -63
  37. package/src/components/table/tableFormMixin.js +1 -1
  38. package/src/components/table/util/index.js +328 -0
  39. package/src/components/table/vxeFilter/mixin.js +1 -1
  40. package/src/components/vb-tabs/x-tabs.vue +3 -2
  41. package/src/components/wf/content.vue +2 -0
  42. package/src/components/wf/setCandidateDialog.vue +1 -0
  43. package/src/components/wf/wf.js +1 -1
  44. package/src/components/wf/wfStartDialog.vue +1 -1
  45. package/src/components/wf/wfUtil.js +1 -1
  46. package/src/components/xform/form-designer/designer.js +1528 -1
  47. package/src/components/xform/form-designer/form-widget/dialog/formDialog.vue +16 -4
  48. package/src/components/xform/form-designer/form-widget/dialog/formDrawer.vue +5 -1
  49. package/src/components/xform/form-designer/form-widget/dialog/importDialog.vue +37 -6
  50. package/src/components/xform/form-designer/form-widget/dialog/importDialogMixin.js +3 -1
  51. package/src/components/xform/form-designer/form-widget/dialog/searchFormDialog.vue +26 -7
  52. package/src/components/xform/form-designer/form-widget/field-widget/baseAttachment-widget.vue +34 -5
  53. package/src/components/xform/form-designer/form-widget/field-widget/button-widget.vue +1 -1
  54. package/src/components/xform/form-designer/form-widget/field-widget/checkbox-widget.vue +14 -6
  55. package/src/components/xform/form-designer/form-widget/field-widget/date-range-widget.vue +1 -0
  56. package/src/components/xform/form-designer/form-widget/field-widget/dropdown-item-widget.vue +77 -0
  57. package/src/components/xform/form-designer/form-widget/field-widget/dropdown-menu-widget.vue +106 -0
  58. package/src/components/xform/form-designer/form-widget/field-widget/echart-bar-widget.vue +1 -1
  59. package/src/components/xform/form-designer/form-widget/field-widget/echart-category-widget.vue +1 -1
  60. package/src/components/xform/form-designer/form-widget/field-widget/echart-pie-widget.vue +1 -1
  61. package/src/components/xform/form-designer/form-widget/field-widget/fieldMixin.js +1402 -16
  62. package/src/components/xform/form-designer/form-widget/field-widget/form-item-wrapper.vue +200 -6
  63. package/src/components/xform/form-designer/form-widget/field-widget/import-button-widget.vue +6 -8
  64. package/src/components/xform/form-designer/form-widget/field-widget/import2-button-widget.vue +81 -0
  65. package/src/components/xform/form-designer/form-widget/field-widget/mixins/echart-bar-mixin.js +49 -8
  66. package/src/components/xform/form-designer/form-widget/field-widget/mixins/echart-category-mixin.js +61 -88
  67. package/src/components/xform/form-designer/form-widget/field-widget/mixins/echart-pie-mixin.js +13 -0
  68. package/src/components/xform/form-designer/form-widget/field-widget/mixins/vabsearch-mixin.js +176 -0
  69. package/src/components/xform/form-designer/form-widget/field-widget/multiSearch-widget.vue +53 -0
  70. package/src/components/xform/form-designer/form-widget/field-widget/project-tag-widget.vue +70 -3
  71. package/src/components/xform/form-designer/form-widget/field-widget/radio-widget.vue +13 -5
  72. package/src/components/xform/form-designer/form-widget/field-widget/search_button-widget.vue +1 -1
  73. package/src/components/xform/form-designer/form-widget/field-widget/select-widget.vue +13 -3
  74. package/src/components/xform/form-designer/form-widget/field-widget/singerSearch-widget.vue +53 -0
  75. package/src/components/xform/form-designer/form-widget/field-widget/status-widget.vue +3 -2
  76. package/src/components/xform/form-designer/form-widget/field-widget/table-export-button-widget.vue +6 -1
  77. package/src/components/xform/form-designer/form-widget/field-widget/text-widget.vue +46 -34
  78. package/src/components/xform/form-designer/form-widget/field-widget/time-range-widget.vue +2 -2
  79. package/src/components/xform/form-designer/form-widget/field-widget/vabSearch-widget.vue +2 -170
  80. package/src/components/xform/form-designer/form-widget/field-widget/vabUpload-widget.vue +88 -8
  81. package/src/components/xform/form-designer/indexMixin.js +870 -1
  82. package/src/components/xform/form-designer/setting-panel/form-setting.vue +67 -36
  83. package/src/components/xform/form-designer/setting-panel/indexMixin.js +322 -1
  84. package/src/components/xform/form-designer/setting-panel/option-items-setting.vue +8 -3
  85. package/src/components/xform/form-designer/setting-panel/property-editor/a-link-editor.vue +1 -1
  86. package/src/components/xform/form-designer/setting-panel/property-editor/autoValueEnabled-editor.vue +38 -0
  87. package/src/components/xform/form-designer/setting-panel/property-editor/censusClass-editor.vue +6 -0
  88. package/src/components/xform/form-designer/setting-panel/property-editor/commonAttributeEnabled-editor.vue +41 -0
  89. package/src/components/xform/form-designer/setting-panel/property-editor/container-data-table/columnRenderDialog.vue +125 -0
  90. package/src/components/xform/form-designer/setting-panel/property-editor/container-data-table/data-table-editor.vue +1046 -1042
  91. package/src/components/xform/form-designer/setting-panel/property-editor/container-data-table/onCheckboxChange-editor.vue +1 -1
  92. package/src/components/xform/form-designer/setting-panel/property-editor/container-data-table/table-column-dialog.vue +850 -463
  93. package/src/components/xform/form-designer/setting-panel/property-editor/container-detail/detail-editor.vue +2 -2
  94. package/src/components/xform/form-designer/setting-panel/property-editor/container-grid-col/grid-col-offset-editor.vue +1 -1
  95. package/src/components/xform/form-designer/setting-panel/property-editor/container-grid-col/grid-col-pull-editor.vue +1 -1
  96. package/src/components/xform/form-designer/setting-panel/property-editor/container-grid-col/grid-col-push-editor.vue +1 -1
  97. package/src/components/xform/form-designer/setting-panel/property-editor/container-list-h5/list-h5-editor.vue +0 -8
  98. package/src/components/xform/form-designer/setting-panel/property-editor/event-handler/eventMixin.js +2 -2
  99. package/src/components/xform/form-designer/setting-panel/property-editor/event-handler/onAfterConfirmFile-editor.vue +32 -0
  100. package/src/components/xform/form-designer/setting-panel/property-editor/event-handler/onClick-editor.vue +2 -2
  101. package/src/components/xform/form-designer/setting-panel/property-editor/field-button/search-dialog-event-editor.vue +48 -5
  102. package/src/components/xform/form-designer/setting-panel/property-editor/field-date-range/date-range-defaultTime-editor.vue +27 -0
  103. package/src/components/xform/form-designer/setting-panel/property-editor/field-dropdown-menu/dropdown-item-editor.vue +21 -0
  104. package/src/components/xform/form-designer/setting-panel/property-editor/field-dropdown-menu/dropdown-menu-editor.vue +59 -0
  105. package/src/components/xform/form-designer/setting-panel/property-editor/field-echart/echart-bar-editor.vue +185 -69
  106. package/src/components/xform/form-designer/setting-panel/property-editor/field-echart/echart-category-editor.vue +188 -86
  107. package/src/components/xform/form-designer/setting-panel/property-editor/field-echart/echart-pie-editor.vue +84 -39
  108. package/src/components/xform/form-designer/setting-panel/property-editor/field-import-button/import-button-editor.vue +26 -10
  109. package/src/components/xform/form-designer/setting-panel/property-editor/field-import-button/import2-button-editor.vue +86 -0
  110. package/src/components/xform/form-designer/setting-panel/property-editor/field-rate/rate-defaultValue-editor.vue +1 -1
  111. package/src/components/xform/form-designer/setting-panel/property-editor/field-status/field-status-editor.vue +47 -28
  112. package/src/components/xform/form-designer/setting-panel/property-editor/field-table-export-button/table-export-button-editor.vue +26 -7
  113. package/src/components/xform/form-designer/setting-panel/property-editor/field-vabSearch/vabSearchName-editor.vue +13 -1
  114. package/src/components/xform/form-designer/setting-panel/property-editor/field-vabUpload/field-vabUpload-editor.vue +30 -1
  115. package/src/components/xform/form-designer/setting-panel/property-editor/formScriptEnabled-editor.vue +42 -4
  116. package/src/components/xform/form-designer/setting-panel/property-editor/formula-editor.vue +630 -478
  117. package/src/components/xform/form-designer/setting-panel/property-editor/limit-editor.vue +1 -1
  118. package/src/components/xform/form-designer/setting-panel/property-editor/multiple-editor.vue +11 -11
  119. package/src/components/xform/form-designer/setting-panel/property-editor/multipleLimit-editor.vue +1 -1
  120. package/src/components/xform/form-designer/setting-panel/property-editor/placeholder-editor.vue +1 -1
  121. package/src/components/xform/form-designer/setting-panel/property-editor/precision-editor.vue +1 -1
  122. package/src/components/xform/form-designer/setting-panel/property-editor/project-tag-editor.vue +178 -0
  123. package/src/components/xform/form-designer/setting-panel/property-editor/required-editor.vue +22 -18
  124. package/src/components/xform/form-designer/setting-panel/property-editor/showRuleFlag-editor.vue +1 -1
  125. package/src/components/xform/form-designer/setting-panel/property-editor/textFlag-editor.vue +216 -17
  126. package/src/components/xform/form-designer/setting-panel/property-editor/wfFlag-editor.vue +242 -27
  127. package/src/components/xform/form-designer/setting-panel/property-editor/widgetShowRuleFlag-editor.vue +220 -0
  128. package/src/components/xform/form-designer/setting-panel/propertyRegister.js +11 -0
  129. package/src/components/xform/form-designer/toolbar-panel/index.vue +12 -11
  130. package/src/components/xform/form-designer/toolbar-panel/indexMixin.js +1 -1
  131. package/src/components/xform/form-designer/widget-panel/index.vue +21 -1
  132. package/src/components/xform/form-designer/widget-panel/indexMixin.js +292 -2
  133. package/src/components/xform/form-designer/widget-panel/widgetsConfig.js +707 -334
  134. package/src/components/xform/form-render/container-item/containerItemMixin.js +1 -1
  135. package/src/components/xform/form-render/container-item/data-table-item.vue +37 -15
  136. package/src/components/xform/form-render/container-item/data-table-mixin.js +2169 -18
  137. package/src/components/xform/form-render/container-item/grid-col-item.vue +10 -3
  138. package/src/components/xform/form-render/container-item/grid-item.vue +1 -1
  139. package/src/components/xform/form-render/container-item/list-h5-item.vue +1 -9
  140. package/src/components/xform/form-render/container-item/list-h5-item2.vue +1 -8
  141. package/src/components/xform/form-render/container-item/tab-item.vue +11 -6
  142. package/src/components/xform/form-render/container-item/table-cell-item.vue +38 -32
  143. package/src/components/xform/form-render/container-item/table-item.vue +4 -2
  144. package/src/components/xform/form-render/indexMixin.js +2148 -1
  145. package/src/components/xform/lang/zh-CN.js +14 -3
  146. package/src/components/xform/mixins/defaultHandle.js +120 -1
  147. package/src/components/xform/mixins/scriptHttp.js +164 -1
  148. package/src/components/xform/utils/emitter.js +4 -4
  149. package/src/components/xform/utils/format.js +21 -30
  150. package/src/components/xform/utils/formula-util.js +649 -0
  151. package/src/components/xform/utils/util.js +1631 -1
  152. package/src/layout/components/AppMain.vue +5 -1
  153. package/src/layout/components/Sidebar/default.vue +50 -6
  154. package/src/layout/components/TagsView/index.vue +0 -1
  155. package/src/layout/components/extractedCode/createDialog.vue +92 -0
  156. package/src/layout/components/extractedCode/queryDialog.vue +96 -0
  157. package/src/layout/components/extractedCode/viewDialog.vue +192 -0
  158. package/src/layout/components/watermark/index.vue +77 -0
  159. package/src/mixins/selectDialog/index.js +241 -1
  160. package/src/mixins/tableTree/index.js +1 -1
  161. package/src/router/modules/customer.js +15 -0
  162. package/src/store/config/index.js +1 -1
  163. package/src/store/modules/permission.js +1 -1
  164. package/src/store/modules/settings.js +1 -1
  165. package/src/store/modules/user.js +1 -1
  166. package/src/utils/index.js +4 -2
  167. package/src/utils/pddLog.js +103 -0
  168. package/src/utils/request.js +28 -28
  169. package/src/utils/vab.js +19 -27
  170. package/src/views/bd/setting/bd_attach_setting/edit.vue +7 -7
  171. package/src/views/bd/setting/bd_attach_setting/list.vue +28 -55
  172. package/src/views/bd/setting/bd_attach_setting/mixins/edit.js +4 -5
  173. package/src/views/bd/setting/bd_attach_setting/mixins/list.js +219 -1
  174. package/src/views/bd/setting/form_import_log/edit.vue +127 -0
  175. package/src/views/bd/setting/form_import_log/list.vue +205 -0
  176. package/src/views/bd/setting/form_script/edit.vue +2 -2
  177. package/src/views/bd/setting/form_script/edit1.vue +3 -3
  178. package/src/views/bd/setting/form_script/form_list.vue +1 -1
  179. package/src/views/bd/setting/form_script/mixins/edit.js +3 -1
  180. package/src/views/bd/setting/form_script/mixins/edit1.js +1 -1
  181. package/src/views/bd/setting/form_script/mixins/form_list.js +283 -1
  182. package/src/views/bd/setting/form_script/mixins/list.js +192 -1
  183. package/src/views/bd/setting/form_script/mixins/list1.js +361 -14
  184. package/src/views/bd/setting/form_template/batchWfObjConfigDialog.vue +105 -0
  185. package/src/views/bd/setting/form_template/edit.vue +11 -3
  186. package/src/views/bd/setting/form_template/editWfObjConfigDialog.vue +2 -2
  187. package/src/views/bd/setting/form_template/mixins/batchWfObjConfigDialog.js +4 -0
  188. package/src/views/bd/setting/form_template/mixins/edit.js +1 -1
  189. package/src/views/bd/setting/form_template/mixins/list.js +625 -22
  190. package/src/views/bd/setting/form_template/mixins/wf_list.js +12 -0
  191. package/src/views/bd/setting/form_template/wfObjConfigDialog.vue +254 -0
  192. package/src/views/bd/setting/form_template/wf_list.vue +127 -0
  193. package/src/views/bd/setting/menu_kind/list.vue +4 -0
  194. package/src/views/bd/setting/menu_kind/mixins/list.js +201 -1
  195. package/src/views/bd/setting/table_model/edit.vue +834 -426
  196. package/src/views/bd/setting/table_model/mixins/dialog.js +72 -1
  197. package/src/views/bd/setting/table_model/mixins/edit.js +1117 -13
  198. package/src/views/bd/setting/table_model/mixins/list.js +379 -14
  199. package/src/views/user/area/dialog.vue +21 -9
  200. package/src/views/user/bill_setting/edit.vue +1 -1
  201. package/src/views/user/bill_setting/list.vue +1 -1
  202. package/src/views/user/common_attribute/itemEdit.vue +2 -2
  203. package/src/views/user/common_attribute/list.vue +1 -1
  204. package/src/views/user/common_script/edit.vue +1 -1
  205. package/src/views/user/common_script/list.vue +1 -1
  206. package/src/views/user/company_info/dialog.vue +164 -154
  207. package/src/views/user/company_info/edit.vue +1 -1
  208. package/src/views/user/extend_datasource/dialog.vue +1 -0
  209. package/src/views/user/extend_datasource/edit.vue +3 -0
  210. package/src/views/user/extend_datasource/list.vue +2 -1
  211. package/src/views/user/file_type/edit.vue +30 -1
  212. package/src/views/user/file_type/list.vue +28 -0
  213. package/src/views/user/form/vform/designer.vue +772 -749
  214. package/src/views/user/form/view/list.vue +27 -9
  215. package/src/views/user/groups/edit.vue +2 -0
  216. package/src/views/user/groups/list.vue +1 -0
  217. package/src/views/user/home/default.vue +1022 -979
  218. package/src/views/user/home/dev.vue +29 -0
  219. package/src/views/user/home/index.vue +16 -6
  220. package/src/views/user/login/default.vue +35 -4
  221. package/src/views/user/login/indexMixin.js +117 -3
  222. package/src/views/user/notify_message/dialog.vue +1 -1
  223. package/src/views/user/notify_template/edit.vue +188 -187
  224. package/src/views/user/notify_template/edit2.vue +176 -0
  225. package/src/views/user/notify_template/list.vue +4 -1
  226. package/src/views/user/notify_template/list2.vue +190 -0
  227. package/src/views/user/outLink/form_view.vue +39 -12
  228. package/src/views/user/outLink/index.vue +17 -0
  229. package/src/views/user/outLink/view.vue +39 -13
  230. package/src/views/user/position/list.vue +4 -4
  231. package/src/views/user/project_tag/list.vue +9 -4
  232. package/src/views/user/push_setting/list.vue +2 -2
  233. package/src/views/user/role/dialog.vue +1 -1
  234. package/src/views/user/role/list.vue +4 -4
  235. package/src/views/user/sale_org/dialog.vue +1 -1
  236. package/src/views/user/sale_org/list.vue +4 -1
  237. package/src/views/user/user/dialog.vue +1 -1
  238. package/src/views/user/user/edit.vue +39 -19
  239. package/src/views/user/user/form_edit.vue +63 -2
  240. package/src/views/user/user/form_info.vue +210 -0
  241. package/src/views/user/user/form_list.vue +1 -0
  242. package/src/views/user/user/list.vue +4 -11
  243. package/src/views/user/wf/wf_manage/list.vue +1 -1
  244. package/src/views/user/wf/wf_manage/wfContentDialog.vue +1 -1
  245. package/src/views/user/wf/wf_obj_config/importItemDialog.vue +109 -0
  246. package/src/views/user/wf/wf_obj_config/list.vue +94 -8
  247. package/src/views/user/wf/wf_obj_config/wfBizDataSettingDialog.vue +2 -2
@@ -1,749 +1,772 @@
1
- <template>
2
- <div>
3
- <!-- <el-button type="primary" @click="test">Submit</el-button> -->
4
- <div class="designer-box" id="containt" style="margin-bottom: 0;">
5
- <v-form-designer
6
- ref="designer"
7
- :reportTemplate.sync="reportTemplate"
8
- :designer-config="designerConfig"
9
- :field-list-data="fieldListData"
10
- @field-widget-used="handleFWU"
11
- @field-widget-removed="handleFWR"
12
- @form-json-updated="handleFJU"
13
- @reflushTemplateList="reflushTemplateList"
14
- v-if="showDesinger"
15
- />
16
- </div><!--
17
- <el-tabs v-model="activeName" class="tab-boxCard tabCard-sty1" v-if="showDesinger">
18
- <el-tab-pane label="设计器" name="first">
19
-
20
- </el-tab-pane>
21
- </el-tabs> -->
22
- </div>
23
- </template>
24
-
25
- <script>
26
- import {loadExtension} from '@base/components/xform/extension/extension-loader'
27
-
28
- loadExtension()
29
- import VFormDesigner from '@base/components/xform/form-designer/index.vue'
30
- import {deepClone, overwriteObj} from "@base/components/xform/utils/util";
31
- import {formFieldMapping} from "../../../../views/user/form/vform/formFieldMapping";
32
-
33
- export default {
34
- name: 'vform-designer:edit',
35
- props: ['formCode'],
36
- components: {
37
- VFormDesigner
38
- },
39
- data() {
40
- return {
41
- formJson: {},
42
- formData: {},
43
- optionData: {},
44
- reportTemplate: {},
45
- showDesinger: false,
46
- activeName: 'first',
47
- showRequestaccessList: false,
48
- showFunctionScriptList: false,
49
- designerConfig: {
50
- componentLib: false,
51
- formTemplates: false,
52
- eventCollapse: true,
53
- metadataLib: true,
54
- logoHeader: false,
55
- exportCodeButton: false,
56
- generateSFCButton: false,
57
- toolbarMaxWidth: 300,
58
- },
59
- fieldListData: {},
60
- layoutId: null,
61
- formOptionData: {},
62
-
63
- meteFieldsResult: null,
64
- usedFieldNames: {},
65
- entity: null,
66
- entityLabel: null
67
- };
68
- },
69
- computed: {},
70
- watch: {
71
- activeName(val) {
72
- if (this.showRequestaccessList === false && val == "second") {
73
- this.showRequestaccessList = true;
74
- }
75
- }
76
- },
77
- mounted() {
78
- this.getTemplate();
79
- },
80
- methods: {
81
- test() {
82
- let that = this;
83
- let designer = this.$refs.designer;
84
- let json = designer.getFormJson();
85
- designer.setFormJson(this.formJson);
86
- },
87
- getTemplate() {
88
- /* this.showDesinger = true;
89
- return */
90
- this.$http({
91
- aes: true,
92
- url: USER_PREFIX + `/formTemplate/getByFormCode`,
93
- method: `post`,
94
- data: {
95
- stringOne: this.formCode
96
- },
97
- isLoading: true,
98
- modalStrictly: true,
99
- success: res => {
100
- let reportTemplate = res.objx || {};
101
- this.reportTemplate = reportTemplate;
102
- this.showDesinger = true;
103
- this.$nextTick(() => {
104
- this.$refs.designer.setFormJson(reportTemplate.formViewContent);
105
-
106
- // this.loadFieldListData();
107
-
108
- })
109
- }
110
- });
111
- },
112
- loadFieldListData(res) {
113
- this.entity = "User";
114
- this.entityLabel = "用户";
115
- /*res = {
116
- "code": 200, "error": null, "message": "success", "data": {
117
- "subFormList": [],
118
- "storageSetting": [{"cloudStorage": "false"}],
119
- "fieldList": [
120
- /!*{
121
- "name": "userId",
122
- "label": "用户Id主键",
123
- "type": "PrimaryKey",
124
- "required": "1"
125
- }, {"name": "createdOn", "label": "创建时间", "type": "DateTime", "required": "1"}, {
126
- "searchDialogWidth": "520px",
127
- "name": "createdBy",
128
- "label": "创建用户",
129
- "type": "Reference",
130
- "required": "1"
131
- },*!/ {
132
- "name": "modifiedOn",
133
- "label": "最近修改时间",
134
- "type": "DateTime",
135
- "required": "0"
136
- }, /!*{
137
- "searchDialogWidth": "520px",
138
- "name": "modifiedBy",
139
- "label": "修改用户",
140
- "type": "Reference",
141
- "required": "0"
142
- }, {
143
- "searchDialogWidth": "520px",
144
- "name": "ownerUser",
145
- "label": "所属用户",
146
- "type": "Reference",
147
- "required": "1"
148
- }, {
149
- "searchDialogWidth": "520px",
150
- "name": "ownerDepartment",
151
- "label": "所属部门",
152
- "type": "Reference",
153
- "required": "1"
154
- }, {
155
- "searchDialogWidth": "510px",
156
- "name": "departmentId",
157
- "label": "部门",
158
- "type": "Reference",
159
- "required": "1"
160
- },*!/ {"name": "userName", "label": "用户名称", "type": "Text", "required": "1"}, {
161
- "name": "loginPwd",
162
- "label": "登录密码",
163
- "type": "Password",
164
- "required": "1"
165
- }, {"name": "loginName", "label": "登录账号名", "type": "Text", "required": "1"}, {
166
- "name": "jobTitle",
167
- "label": "职务",
168
- "type": "Option",
169
- "required": "1"
170
- }, {"name": "roles", "label": "权限角色", "type": "ReferenceList", "required": "0"}, {
171
- "name": "disabled",
172
- "label": "是否禁用",
173
- "type": "Boolean",
174
- "required": "1"
175
- }, {"name": "mobilePhone", "label": "手机号", "type": "Text", "required": "0"}, {
176
- "name": "email",
177
- "label": "邮箱",
178
- "type": "Text",
179
- "required": "0"
180
- },/!* {"name": "ownerTeam", "label": "所属团队", "type": "ReferenceList", "required": "0"}, {
181
- "name": "avatar",
182
- "label": "头像",
183
- "type": "Picture",
184
- "required": "0"
185
- },*!/ {"name": "dingTalkUserId", "label": "钉钉用户ID", "type": "Text", "required": "0"}]
186
- }
187
- };*/
188
- res = {
189
- "code": 200, "error": null, "message": "success", "data": {
190
- "subFormList": [{"name": "Jinjilianxiren", "label": "员工-紧急联系人"}],
191
- "storageSetting": [{"cloudStorage": "false"}],
192
- "fieldList": [
193
- /*{
194
- "name": "yuangongdanganId",
195
- "label": "id主键",
196
- "type": "PrimaryKey",
197
- "required": "1"
198
- },*/ {"name": "createdOn", "label": "创建时间", "type": "DateTime", "required": "1"}, /*{
199
- "searchDialogWidth": "520px",
200
- "name": "createdBy",
201
- "label": "创建用户",
202
- "type": "Reference",
203
- "required": "1"
204
- },*/ {
205
- "name": "modifiedOn",
206
- "label": "最近修改时间",
207
- "type": "DateTime",
208
- "required": "0"
209
- }, /*{
210
- "searchDialogWidth": "520px",
211
- "name": "modifiedBy",
212
- "label": "修改用户",
213
- "type": "Reference",
214
- "required": "0"
215
- }, {
216
- "searchDialogWidth": "520px",
217
- "name": "ownerUser",
218
- "label": "所属用户",
219
- "type": "Reference",
220
- "required": "1"
221
- }, {
222
- "searchDialogWidth": "520px",
223
- "name": "ownerDepartment",
224
- "label": "所属部门",
225
- "type": "Reference",
226
- "required": "1"
227
- },*/ {
228
- "name": "gonghao",
229
- "label": "工号",
230
- "type": "Text",
231
- "required": "0",
232
- "maxLength": "200"
233
- }, {
234
- "name": "xingming",
235
- "label": "姓名",
236
- "type": "Text",
237
- "required": "1",
238
- "maxLength": "200"
239
- }, /*{
240
- "searchDialogWidth": "520px",
241
- "name": "bumen",
242
- "label": "部门",
243
- "type": "Reference",
244
- "required": "1"
245
- },*/ {
246
- "name": "gangwei",
247
- "label": "岗位",
248
- "type": "Text",
249
- "required": "1",
250
- "maxLength": "200"
251
- }, /*{
252
- "searchDialogWidth": "520px",
253
- "name": "yuangongchengyuan",
254
- "label": "员工成员",
255
- "type": "Reference",
256
- "required": "0"
257
- },*/ {
258
- "name": "shenfenzhenghao",
259
- "label": "身份证号",
260
- "type": "Text",
261
- "required": "0",
262
- "maxLength": "200"
263
- }, {"name": "xingbie", "label": "性别", "type": "Option", "required": "1"}, {
264
- "name": "chushengriqi",
265
- "label": "出生日期",
266
- "type": "Date",
267
- "required": "0"
268
- }, /*{
269
- "name": "jiguan",
270
- "label": "籍贯",
271
- "type": "AreaSelect",
272
- "areaDataType": "2",
273
- "required": "0"
274
- },*/ {
275
- "name": "hujisuozaidi",
276
- "label": "户籍所在地",
277
- "type": "Text",
278
- "required": "0",
279
- "maxLength": "200"
280
- }, {"name": "hujileixing", "label": "户籍类型", "type": "Option", "required": "0"}, {
281
- "name": "minzu",
282
- "label": "民族",
283
- "type": "Text",
284
- "required": "0",
285
- "maxLength": "200"
286
- }, {
287
- "name": "hunyinzhuangtai",
288
- "label": "婚姻状态",
289
- "type": "Option",
290
- "required": "0"
291
- }, {
292
- "name": "zhengzhimianmao",
293
- "label": "政治面貌",
294
- "type": "Option",
295
- "required": "0"
296
- }, /*{
297
- "name": "yuangongzhaopian",
298
- "label": "员工照片",
299
- "type": "Picture",
300
- "required": "0"
301
- },*/ {
302
- "name": "pinyongxingshi",
303
- "label": "聘用形式",
304
- "type": "Option",
305
- "required": "0"
306
- }, {
307
- "name": "yuangongzhuangtai",
308
- "label": "员工状态",
309
- "type": "Option",
310
- "required": "1"
311
- }, {"name": "canjiagongzuoriqi", "label": "参加工作日期", "type": "Date", "required": "0"}, {
312
- "name": "ruzhiriqi",
313
- "label": "入职日期",
314
- "type": "Date",
315
- "required": "1"
316
- }, {
317
- "name": "shiyongqitianshu",
318
- "label": "试用期天数(天)",
319
- "type": "Integer",
320
- "required": "1"
321
- }, {"name": "zhuanzhengriqi", "label": "转正日期", "type": "Date", "required": "0"}, {
322
- "min": "-999999999",
323
- "max": "999999999",
324
- "precision": "2",
325
- "name": "shiyongqixinzi",
326
- "label": "试用期薪资",
327
- "type": "Money",
328
- "required": "0"
329
- }, {
330
- "min": "-999999999",
331
- "max": "999999999",
332
- "precision": "2",
333
- "name": "zhengshixinzi",
334
- "label": "正式薪资",
335
- "type": "Money",
336
- "required": "0"
337
- }, /*{
338
- "searchDialogWidth": "520px",
339
- "name": "zhijieshangji",
340
- "label": "直接上级",
341
- "type": "Reference",
342
- "required": "0"
343
- }, {
344
- "searchDialogWidth": "520px",
345
- "name": "fuzeHR",
346
- "label": "负责HR",
347
- "type": "Reference",
348
- "required": "0"
349
- },*/ {
350
- "name": "shebaozhanghao",
351
- "label": "社保账号",
352
- "type": "Text",
353
- "required": "0",
354
- "maxLength": "200"
355
- }, {
356
- "name": "gongjijinzhanghao",
357
- "label": "公积金账号",
358
- "type": "Text",
359
- "required": "0",
360
- "maxLength": "200"
361
- }, {
362
- "name": "yinhangkahao",
363
- "label": "银行卡号",
364
- "type": "Text",
365
- "required": "0",
366
- "maxLength": "200"
367
- }, {
368
- "name": "kaihuxing",
369
- "label": "开户行",
370
- "type": "Text",
371
- "required": "0",
372
- "maxLength": "200"
373
- }, {
374
- "name": "shoujihao",
375
- "label": "手机号",
376
- "type": "Text",
377
- "required": "0",
378
- "maxLength": "200"
379
- }, /*{
380
- "name": "changzhudizhi",
381
- "label": "常住地址",
382
- "type": "AreaSelect",
383
- "areaDataType": "2",
384
- "required": "0"
385
- },*/ {
386
- "name": "jutidizhi",
387
- "label": "具体地址",
388
- "type": "Text",
389
- "required": "0",
390
- "maxLength": "200"
391
- }, {"name": "zuigaoxueli", "label": "最高学历", "type": "Option", "required": "0"}, {
392
- "name": "biyeshijian",
393
- "label": "毕业时间",
394
- "type": "Date",
395
- "required": "0"
396
- }, {"name": "aa", "label": "aa", "type": "Integer", "required": "1"}, /*{
397
- "detailEntity": "Jinjilianxiren",
398
- "name": "jinjilianxirenId",
399
- "label": "员工-紧急联系人.id主键",
400
- "type": "PrimaryKey",
401
- "required": "1"
402
- },*/ {
403
- "detailEntity": "Jinjilianxiren",
404
- "name": "createdOn",
405
- "label": "员工-紧急联系人.创建时间",
406
- "type": "DateTime",
407
- "required": "1"
408
- }, /*{
409
- "searchDialogWidth": "520px",
410
- "detailEntity": "Jinjilianxiren",
411
- "name": "createdBy",
412
- "label": "员工-紧急联系人.创建用户",
413
- "type": "Reference",
414
- "required": "1"
415
- },*/ {
416
- "detailEntity": "Jinjilianxiren",
417
- "name": "modifiedOn",
418
- "label": "员工-紧急联系人.最近修改时间",
419
- "type": "DateTime",
420
- "required": "0"
421
- }, /*{
422
- "searchDialogWidth": "520px",
423
- "detailEntity": "Jinjilianxiren",
424
- "name": "modifiedBy",
425
- "label": "员工-紧急联系人.修改用户",
426
- "type": "Reference",
427
- "required": "0"
428
- }, {
429
- "searchDialogWidth": "520px",
430
- "detailEntity": "Jinjilianxiren",
431
- "name": "mdYuangongdanganId",
432
- "label": "员工-紧急联系人.主从关联Id",
433
- "type": "Reference",
434
- "required": "1"
435
- },*/ {
436
- "detailEntity": "Jinjilianxiren",
437
- "name": "shouji",
438
- "label": "员工-紧急联系人.手机",
439
- "type": "Text",
440
- "required": "0",
441
- "maxLength": "200"
442
- }, {
443
- "detailEntity": "Jinjilianxiren",
444
- "name": "jinjilianxirenxingming",
445
- "label": "员工-紧急联系人.紧急联系人姓名",
446
- "type": "Text",
447
- "required": "0",
448
- "maxLength": "200"
449
- }]
450
- }
451
- };
452
- if (res.data.fieldList) {
453
- this.fieldListData.fieldList = res.data.fieldList;
454
- if (res.data.subFormList) {
455
- this.fieldListData.subFormList =
456
- res.data.subFormList;
457
- }
458
- this.meteFieldsResult = res;
459
- const metaFields = this.buildMetaFields(
460
- this.meteFieldsResult
461
- );
462
- this.$refs.designer.setFieldListData(
463
- this.fieldListData
464
- );
465
- this.$refs.designer.setMetaFields(metaFields);
466
- }
467
-
468
- },
469
-
470
- buildMetaFields(mdResult) {
471
- const result = {
472
- main: {
473
- entityName: this.entity,
474
- entityLabel: this.entityLabel,
475
- fieldList: [],
476
- },
477
- detail: [],
478
- };
479
-
480
- if (mdResult && mdResult.data?.fieldList) {
481
- mdResult.data.fieldList.forEach((fld) => {
482
- if (!fld.detailEntity && fld.type !== "PrimaryKey") {
483
- //跳过id主键
484
- if (fld.name === "loginPwd") {
485
- return;
486
- }
487
-
488
- if (
489
- fld.type === "AnyReference" ||
490
- fld.type === "ReferenceList"
491
- ) {
492
- return;
493
- }
494
-
495
- if (this.usedFieldNames.hasOwnProperty(fld.name)) {
496
- return; //跳过本次循环
497
- }
498
-
499
- const fieldNewProps = deepClone(
500
- formFieldMapping[fld.type]
501
- );
502
- const fieldSchema = deepClone(
503
- this.$refs.designer.designer.getFieldWidgetByType(
504
- fieldNewProps.type
505
- )
506
- );
507
- overwriteObj(
508
- fieldSchema.options,
509
- fieldNewProps.options
510
- );
511
-
512
- fieldSchema.displayName = fld.label;
513
- fieldSchema.nameReadonly = true;
514
- fieldSchema.options.name = fld.name;
515
- fieldSchema.options.label = fld.label;
516
- this.adjustFieldSchema(fieldSchema, fld, mdResult);
517
- result.main.fieldList.push(fieldSchema);
518
- }
519
- });
520
- }
521
-
522
- if (mdResult && mdResult.data?.subFormList) {
523
- mdResult.data.subFormList.forEach((sf) => {
524
- const deName = sf.name;
525
- const deLabel = sf.label;
526
- const detailDataItem = {
527
- entityName: deName,
528
- entityLabel: deLabel,
529
- fieldList: [],
530
- };
531
-
532
- mdResult.data.fieldList.forEach((fld) => {
533
- if (
534
- fld.detailEntity &&
535
- fld.detailEntity === deName &&
536
- fld.type !== "PrimaryKey"
537
- ) {
538
- //跳过id主键
539
- if (
540
- fld.type === "AnyReference" ||
541
- fld.type === "ReferenceList"
542
- ) {
543
- return;
544
- }
545
-
546
- if (this.usedFieldNames.hasOwnProperty(fld.name)) {
547
- return; //跳过本次循环
548
- }
549
-
550
- const fieldNewProps = deepClone(
551
- formFieldMapping[fld.type]
552
- );
553
- const fieldSchema = deepClone(
554
- this.$refs.designer.designer.getFieldWidgetByType(
555
- fieldNewProps.type
556
- )
557
- );
558
- overwriteObj(
559
- fieldSchema.options,
560
- fieldNewProps.options
561
- );
562
-
563
- fieldSchema.displayName = fld.label;
564
- fieldSchema.nameReadonly = true;
565
- fieldSchema.options.name = fld.name;
566
- fieldSchema.options.label = fld.label;
567
- this.adjustFieldSchema(fieldSchema, fld, mdResult);
568
- detailDataItem.fieldList.push(fieldSchema);
569
- }
570
- });
571
-
572
- result.detail.push(detailDataItem);
573
- });
574
- }
575
-
576
- return result;
577
- },
578
-
579
- adjustFieldSchema(fieldSchema, fldObj, mdResult) {
580
- // 处理图片、文件上传字段!!
581
- let cloudStorageFlag = false;
582
- let cloudStorageType = "";
583
- if (mdResult.data.storageSetting) {
584
- cloudStorageFlag =
585
- mdResult.data.storageSetting[0].cloudStorage === "true";
586
- if (cloudStorageFlag) {
587
- cloudStorageType =
588
- mdResult.data.storageSetting[0].cloudStorageType;
589
- }
590
- }
591
-
592
- if (fldObj.type === "Picture" || fldObj.type === "File") {
593
- if (cloudStorageFlag) {
594
- //设置withCredentials
595
- fieldSchema.options.withCredentials = false;
596
-
597
- //设置onBeforeUpload事件代码(还需要生成uuid新文件名)
598
- fieldSchema.options.onBeforeUpload =
599
- "const gDSV = this.getGlobalDsv();\nconst wType = this.field.type;\nif (wType === 'picture-upload') {\n this.field.options.uploadURL = gDSV.picUploadURL;\n} else if (wType === 'file-upload') {\n this.field.options.uploadURL = gDSV.fileUploadURL;\n}\n\nconst cloudStorage = gDSV.cloudStorage;\nif (cloudStorage === \"true\") {\n this.field.options.withCredentials = false\n const token = gDSV.cloudUploadToken;\n this.setUploadData('token', token);\n \n const randomNum = Math.floor(Math.random() * 100);\n const newFileName = new Date().getTime() + randomNum+ '_' + file.name;\n this.setUploadData('key', newFileName);\n} else {\n //this.field.options.withCredentials = true\n}\n";
600
-
601
- //设置onUploadSuccess事件代码(上传返回结果需要设置QiNiu=前缀)
602
- fieldSchema.options.onUploadSuccess =
603
- "const gDSV = this.getGlobalDsv();\nconst cloudStorage = gDSV.cloudStorage;\nif (cloudStorage === \"true\") {\n const wType = this.field.type;\n let downloadPrefix = \"\"\n if (wType === 'picture-upload') {\n downloadPrefix = gDSV.picDownloadPrefix;\n } else if (wType === 'file-upload') {\n downloadPrefix = gDSV.fileDownloadPrefix;\n }\n \n let downUrl = downloadPrefix + result.key;\n const paramName = (downUrl.indexOf(\"?\") === -1) ? '?fileName=' : '&fileName=';\n return {\n name: file.name,\n url: downUrl + paramName + file.name\n }\n} else {\n const paramName = (result.url.indexOf(\"?\") === -1) ? '?fileName=' : '&fileName=';\n return {\n name: file.name,\n url: result.url + paramName + file.name\n }\n}\n";
604
- }
605
- }
606
- // 处理图片、文件上传字段 -- 结束
607
-
608
- /* 处理文本、长文本字段 */
609
- if (fldObj.type === "Text" || fldObj.type === "TextArea") {
610
- fieldSchema.options.maxLength = !fldObj.maxLength
611
- ? fieldSchema.options.maxLength
612
- : fldObj.maxLength * 1;
613
- }
614
-
615
- /* 处理精度小数字段 */
616
- if (
617
- fldObj.type === "Integer" ||
618
- fldObj.type === "Percent" ||
619
- fldObj.type === "Money" ||
620
- fldObj.type === "Decimal"
621
- ) {
622
- fieldSchema.options.precision = !fldObj.precision
623
- ? fieldSchema.options.precision
624
- : fldObj.precision * 1;
625
- fieldSchema.options.min = !fldObj.min
626
- ? fieldSchema.options.min
627
- : fldObj.min * 1;
628
- fieldSchema.options.max = !fldObj.max
629
- ? fieldSchema.options.max
630
- : fldObj.max * 1;
631
- }
632
-
633
- /* 处理地区选择字段 */
634
- if (fldObj.type === "AreaSelect") {
635
- fieldSchema.optionItemsReadonly = true;
636
- fieldSchema.options.areaDataType = !fldObj.areaDataType
637
- ? fieldSchema.options.areaDataType
638
- : fldObj.areaDataType * 1;
639
- }
640
-
641
- /* 处理一对一字段 */
642
- if (fldObj.type === "Reference") {
643
- fieldSchema.options.searchDialogWidth =
644
- !fldObj.searchDialogWidth
645
- ? fieldSchema.options.searchDialogWidth
646
- : fldObj.searchDialogWidth;
647
- }
648
-
649
- /* 处理单选项字段 */
650
- if (fieldSchema.options.hasOwnProperty("optionItems")) {
651
- if (
652
- this.formOptionData.hasOwnProperty(fieldSchema.options.name)
653
- ) {
654
- fieldSchema.options.optionItems = deepClone(
655
- this.formOptionData[fieldSchema.options.name]
656
- );
657
- }
658
-
659
- if (fldObj.type === "Boolean") {
660
- fieldSchema.options.optionItems = [
661
- {value: true, label: "是"},
662
- {value: false, label: ""},
663
- ];
664
- }
665
-
666
- fieldSchema.optionItemsReadonly = true;
667
- }
668
-
669
- /* 设置字段必填校验 */
670
- if (fldObj.hasOwnProperty("required")) {
671
- fieldSchema.options.required = fldObj["required"] === "1";
672
- }
673
-
674
- /* 取消系统字段的必填校验 */
675
- if (fieldSchema.options.name === "createdOn" || fieldSchema.options.name === "createdBy"
676
- || fieldSchema.options.name === "modifiedOn" || fieldSchema.options.name === "modifiedBy"
677
- || fieldSchema.options.name === "ownerUser" || fieldSchema.options.name === "ownerDepartment"
678
- || fieldSchema.options.name === "approvalConfigId" || fieldSchema.options.name === "approvalStatus"
679
- || fieldSchema.options.name === "lastApprovedBy" || fieldSchema.options.name === "lastApprovedOn") {
680
- fieldSchema.options.required = false;
681
- }
682
-
683
- //
684
- },
685
-
686
- handleFWU(fwName) {
687
- this.usedFieldNames[fwName] = 1;
688
-
689
- /* 必须延时处理,否则draggable会报错 */
690
- setTimeout(() => {
691
- const metaFields = this.buildMetaFields(this.meteFieldsResult);
692
- this.$refs.designer.setMetaFields(metaFields);
693
- }, 800);
694
- },
695
-
696
- handleFWR(fwName) {
697
- delete this.usedFieldNames[fwName];
698
-
699
- /* 必须延时处理,否则draggable会报错 */
700
- setTimeout(() => {
701
- const metaFields = this.buildMetaFields(this.meteFieldsResult);
702
- this.$refs.designer.setMetaFields(metaFields);
703
- }, 800);
704
- },
705
-
706
- handleFJU() {
707
- this.handleUsedFields();
708
- setTimeout(() => {
709
- const metaFields = this.buildMetaFields(this.meteFieldsResult);
710
- this.$refs.designer.setMetaFields(metaFields);
711
- }, 300);
712
- },
713
-
714
- /**
715
- * 过滤已使用字段组件
716
- */
717
- handleUsedFields() {
718
- this.usedFieldNames = {};
719
- const allFieldWidgets = this.$refs.designer.getFieldWidgets();
720
- allFieldWidgets.forEach((fwItem) => {
721
- this.usedFieldNames[fwItem.name] = 1;
722
- });
723
- },
724
- initField() {
725
- this.$http({
726
- aes: true,
727
- url: USER_PREFIX + "/szTaMb/listPage",
728
- data: {},
729
- success: res => {
730
-
731
- }
732
- });
733
- },
734
- reflushTemplateList() {
735
- this.$emit("reflushTemplateList");
736
- }
737
- }
738
- };
739
- </script>
740
-
741
- <style lang="scss" scoped>
742
- body {
743
- margin: 0; /* 如果页面出现垂直滚动条,则加入此行CSS以消除之 */
744
- }
745
-
746
- #app .main-container {
747
- margin-left: 0px;
748
- }
749
- </style>
1
+ <template>
2
+ <div>
3
+ <!-- <el-button type="primary" @click="test">Submit</el-button> -->
4
+ <div class="designer-box" id="containt" style="margin-bottom: 0;">
5
+ <v-form-designer
6
+ ref="designer"
7
+ :reportTemplate.sync="reportTemplate"
8
+ :designer-config="designerConfig"
9
+ :field-list-data="fieldListData"
10
+ @field-widget-used="handleFWU"
11
+ @field-widget-removed="handleFWR"
12
+ @form-json-updated="handleFJU"
13
+ @reflushTemplateList="reflushTemplateList"
14
+ v-if="showDesinger"
15
+ :readonly="readonly"
16
+ :columnFlag="columnFlag"
17
+ @customConfirm="customConfirm"
18
+ />
19
+ </div><!--
20
+ <el-tabs v-model="activeName" class="tab-boxCard tabCard-sty1" v-if="showDesinger">
21
+ <el-tab-pane label="设计器" name="first">
22
+
23
+ </el-tab-pane>
24
+ </el-tabs> -->
25
+ </div>
26
+ </template>
27
+
28
+ <script>
29
+ import {loadExtension} from '@base/components/xform/extension/extension-loader'
30
+
31
+ loadExtension()
32
+ import VFormDesigner from '@base/components/xform/form-designer/index.vue'
33
+ import {deepClone, overwriteObj} from "@base/components/xform/utils/util";
34
+ import {formFieldMapping} from "./formFieldMapping";
35
+
36
+ export default {
37
+ name: 'vform-designer:edit',
38
+ props: {
39
+ formCode: String,
40
+ readonly: Boolean,
41
+ formTemplate: Object,
42
+ widgetList: Array,
43
+ columnFlag: Boolean,
44
+ },
45
+ components: {
46
+ VFormDesigner
47
+ },
48
+ data() {
49
+ return {
50
+ formJson: {},
51
+ formData: {},
52
+ optionData: {},
53
+ reportTemplate: {},
54
+ showDesinger: false,
55
+ activeName: 'first',
56
+ showRequestaccessList: false,
57
+ showFunctionScriptList: false,
58
+ designerConfig: {
59
+ componentLib: false,
60
+ formTemplates: false,
61
+ eventCollapse: true,
62
+ metadataLib: true,
63
+ logoHeader: false,
64
+ exportCodeButton: false,
65
+ generateSFCButton: false,
66
+ toolbarMaxWidth: 300,
67
+ },
68
+ fieldListData: {},
69
+ layoutId: null,
70
+ formOptionData: {},
71
+
72
+ meteFieldsResult: null,
73
+ usedFieldNames: {},
74
+ entity: null,
75
+ entityLabel: null
76
+ };
77
+ },
78
+ computed: {},
79
+ watch: {
80
+ activeName(val) {
81
+ if (this.showRequestaccessList === false && val == "second") {
82
+ this.showRequestaccessList = true;
83
+ }
84
+ }
85
+ },
86
+ mounted() {
87
+ this.getTemplate();
88
+ },
89
+ methods: {
90
+ test() {
91
+ let that = this;
92
+ let designer = this.$refs.designer;
93
+ let json = designer.getFormJson();
94
+ designer.setFormJson(this.formJson);
95
+ },
96
+ getTemplate() {
97
+ /* this.showDesinger = true;
98
+ return */
99
+ if (this.columnFlag) {
100
+ this.reportTemplate = this.formTemplate;
101
+ this.showDesinger = true;
102
+ this.$nextTick(() => {
103
+ let formJson = this.$baseLodash.cloneDeep({
104
+ widgetList: this.widgetList
105
+ });
106
+ this.$refs.designer.setFormJson(formJson);
107
+ })
108
+ return
109
+ }
110
+ this.$http({
111
+ aes: true,
112
+ url: USER_PREFIX + `/formTemplate/getByFormCode`,
113
+ method: `post`,
114
+ data: {
115
+ stringOne: this.formCode
116
+ },
117
+ isLoading: true,
118
+ modalStrictly: true,
119
+ success: res => {
120
+ let reportTemplate = res.objx || {};
121
+ this.reportTemplate = reportTemplate;
122
+ this.showDesinger = true;
123
+ this.$nextTick(() => {
124
+ this.$refs.designer.setFormJson(reportTemplate.formViewContent);
125
+
126
+ // this.loadFieldListData();
127
+
128
+ })
129
+ }
130
+ });
131
+ },
132
+ loadFieldListData(res) {
133
+ this.entity = "User";
134
+ this.entityLabel = "用户";
135
+ /*res = {
136
+ "code": 200, "error": null, "message": "success", "data": {
137
+ "subFormList": [],
138
+ "storageSetting": [{"cloudStorage": "false"}],
139
+ "fieldList": [
140
+ /!*{
141
+ "name": "userId",
142
+ "label": "用户Id主键",
143
+ "type": "PrimaryKey",
144
+ "required": "1"
145
+ }, {"name": "createdOn", "label": "创建时间", "type": "DateTime", "required": "1"}, {
146
+ "searchDialogWidth": "520px",
147
+ "name": "createdBy",
148
+ "label": "创建用户",
149
+ "type": "Reference",
150
+ "required": "1"
151
+ },*!/ {
152
+ "name": "modifiedOn",
153
+ "label": "最近修改时间",
154
+ "type": "DateTime",
155
+ "required": "0"
156
+ }, /!*{
157
+ "searchDialogWidth": "520px",
158
+ "name": "modifiedBy",
159
+ "label": "修改用户",
160
+ "type": "Reference",
161
+ "required": "0"
162
+ }, {
163
+ "searchDialogWidth": "520px",
164
+ "name": "ownerUser",
165
+ "label": "所属用户",
166
+ "type": "Reference",
167
+ "required": "1"
168
+ }, {
169
+ "searchDialogWidth": "520px",
170
+ "name": "ownerDepartment",
171
+ "label": "所属部门",
172
+ "type": "Reference",
173
+ "required": "1"
174
+ }, {
175
+ "searchDialogWidth": "510px",
176
+ "name": "departmentId",
177
+ "label": "部门",
178
+ "type": "Reference",
179
+ "required": "1"
180
+ },*!/ {"name": "userName", "label": "用户名称", "type": "Text", "required": "1"}, {
181
+ "name": "loginPwd",
182
+ "label": "登录密码",
183
+ "type": "Password",
184
+ "required": "1"
185
+ }, {"name": "loginName", "label": "登录账号名", "type": "Text", "required": "1"}, {
186
+ "name": "jobTitle",
187
+ "label": "职务",
188
+ "type": "Option",
189
+ "required": "1"
190
+ }, {"name": "roles", "label": "权限角色", "type": "ReferenceList", "required": "0"}, {
191
+ "name": "disabled",
192
+ "label": "是否禁用",
193
+ "type": "Boolean",
194
+ "required": "1"
195
+ }, {"name": "mobilePhone", "label": "手机号", "type": "Text", "required": "0"}, {
196
+ "name": "email",
197
+ "label": "邮箱",
198
+ "type": "Text",
199
+ "required": "0"
200
+ },/!* {"name": "ownerTeam", "label": "所属团队", "type": "ReferenceList", "required": "0"}, {
201
+ "name": "avatar",
202
+ "label": "头像",
203
+ "type": "Picture",
204
+ "required": "0"
205
+ },*!/ {"name": "dingTalkUserId", "label": "钉钉用户ID", "type": "Text", "required": "0"}]
206
+ }
207
+ };*/
208
+ res = {
209
+ "code": 200, "error": null, "message": "success", "data": {
210
+ "subFormList": [{"name": "Jinjilianxiren", "label": "员工-紧急联系人"}],
211
+ "storageSetting": [{"cloudStorage": "false"}],
212
+ "fieldList": [
213
+ /*{
214
+ "name": "yuangongdanganId",
215
+ "label": "id主键",
216
+ "type": "PrimaryKey",
217
+ "required": "1"
218
+ },*/ {"name": "createdOn", "label": "创建时间", "type": "DateTime", "required": "1"}, /*{
219
+ "searchDialogWidth": "520px",
220
+ "name": "createdBy",
221
+ "label": "创建用户",
222
+ "type": "Reference",
223
+ "required": "1"
224
+ },*/ {
225
+ "name": "modifiedOn",
226
+ "label": "最近修改时间",
227
+ "type": "DateTime",
228
+ "required": "0"
229
+ }, /*{
230
+ "searchDialogWidth": "520px",
231
+ "name": "modifiedBy",
232
+ "label": "修改用户",
233
+ "type": "Reference",
234
+ "required": "0"
235
+ }, {
236
+ "searchDialogWidth": "520px",
237
+ "name": "ownerUser",
238
+ "label": "所属用户",
239
+ "type": "Reference",
240
+ "required": "1"
241
+ }, {
242
+ "searchDialogWidth": "520px",
243
+ "name": "ownerDepartment",
244
+ "label": "所属部门",
245
+ "type": "Reference",
246
+ "required": "1"
247
+ },*/ {
248
+ "name": "gonghao",
249
+ "label": "工号",
250
+ "type": "Text",
251
+ "required": "0",
252
+ "maxLength": "200"
253
+ }, {
254
+ "name": "xingming",
255
+ "label": "姓名",
256
+ "type": "Text",
257
+ "required": "1",
258
+ "maxLength": "200"
259
+ }, /*{
260
+ "searchDialogWidth": "520px",
261
+ "name": "bumen",
262
+ "label": "部门",
263
+ "type": "Reference",
264
+ "required": "1"
265
+ },*/ {
266
+ "name": "gangwei",
267
+ "label": "岗位",
268
+ "type": "Text",
269
+ "required": "1",
270
+ "maxLength": "200"
271
+ }, /*{
272
+ "searchDialogWidth": "520px",
273
+ "name": "yuangongchengyuan",
274
+ "label": "员工成员",
275
+ "type": "Reference",
276
+ "required": "0"
277
+ },*/ {
278
+ "name": "shenfenzhenghao",
279
+ "label": "身份证号",
280
+ "type": "Text",
281
+ "required": "0",
282
+ "maxLength": "200"
283
+ }, {"name": "xingbie", "label": "性别", "type": "Option", "required": "1"}, {
284
+ "name": "chushengriqi",
285
+ "label": "出生日期",
286
+ "type": "Date",
287
+ "required": "0"
288
+ }, /*{
289
+ "name": "jiguan",
290
+ "label": "籍贯",
291
+ "type": "AreaSelect",
292
+ "areaDataType": "2",
293
+ "required": "0"
294
+ },*/ {
295
+ "name": "hujisuozaidi",
296
+ "label": "户籍所在地",
297
+ "type": "Text",
298
+ "required": "0",
299
+ "maxLength": "200"
300
+ }, {"name": "hujileixing", "label": "户籍类型", "type": "Option", "required": "0"}, {
301
+ "name": "minzu",
302
+ "label": "民族",
303
+ "type": "Text",
304
+ "required": "0",
305
+ "maxLength": "200"
306
+ }, {
307
+ "name": "hunyinzhuangtai",
308
+ "label": "婚姻状态",
309
+ "type": "Option",
310
+ "required": "0"
311
+ }, {
312
+ "name": "zhengzhimianmao",
313
+ "label": "政治面貌",
314
+ "type": "Option",
315
+ "required": "0"
316
+ }, /*{
317
+ "name": "yuangongzhaopian",
318
+ "label": "员工照片",
319
+ "type": "Picture",
320
+ "required": "0"
321
+ },*/ {
322
+ "name": "pinyongxingshi",
323
+ "label": "聘用形式",
324
+ "type": "Option",
325
+ "required": "0"
326
+ }, {
327
+ "name": "yuangongzhuangtai",
328
+ "label": "员工状态",
329
+ "type": "Option",
330
+ "required": "1"
331
+ }, {"name": "canjiagongzuoriqi", "label": "参加工作日期", "type": "Date", "required": "0"}, {
332
+ "name": "ruzhiriqi",
333
+ "label": "入职日期",
334
+ "type": "Date",
335
+ "required": "1"
336
+ }, {
337
+ "name": "shiyongqitianshu",
338
+ "label": "试用期天数(天)",
339
+ "type": "Integer",
340
+ "required": "1"
341
+ }, {"name": "zhuanzhengriqi", "label": "转正日期", "type": "Date", "required": "0"}, {
342
+ "min": "-999999999",
343
+ "max": "999999999",
344
+ "precision": "2",
345
+ "name": "shiyongqixinzi",
346
+ "label": "试用期薪资",
347
+ "type": "Money",
348
+ "required": "0"
349
+ }, {
350
+ "min": "-999999999",
351
+ "max": "999999999",
352
+ "precision": "2",
353
+ "name": "zhengshixinzi",
354
+ "label": "正式薪资",
355
+ "type": "Money",
356
+ "required": "0"
357
+ }, /*{
358
+ "searchDialogWidth": "520px",
359
+ "name": "zhijieshangji",
360
+ "label": "直接上级",
361
+ "type": "Reference",
362
+ "required": "0"
363
+ }, {
364
+ "searchDialogWidth": "520px",
365
+ "name": "fuzeHR",
366
+ "label": "负责HR",
367
+ "type": "Reference",
368
+ "required": "0"
369
+ },*/ {
370
+ "name": "shebaozhanghao",
371
+ "label": "社保账号",
372
+ "type": "Text",
373
+ "required": "0",
374
+ "maxLength": "200"
375
+ }, {
376
+ "name": "gongjijinzhanghao",
377
+ "label": "公积金账号",
378
+ "type": "Text",
379
+ "required": "0",
380
+ "maxLength": "200"
381
+ }, {
382
+ "name": "yinhangkahao",
383
+ "label": "银行卡号",
384
+ "type": "Text",
385
+ "required": "0",
386
+ "maxLength": "200"
387
+ }, {
388
+ "name": "kaihuxing",
389
+ "label": "开户行",
390
+ "type": "Text",
391
+ "required": "0",
392
+ "maxLength": "200"
393
+ }, {
394
+ "name": "shoujihao",
395
+ "label": "手机号",
396
+ "type": "Text",
397
+ "required": "0",
398
+ "maxLength": "200"
399
+ }, /*{
400
+ "name": "changzhudizhi",
401
+ "label": "常住地址",
402
+ "type": "AreaSelect",
403
+ "areaDataType": "2",
404
+ "required": "0"
405
+ },*/ {
406
+ "name": "jutidizhi",
407
+ "label": "具体地址",
408
+ "type": "Text",
409
+ "required": "0",
410
+ "maxLength": "200"
411
+ }, {"name": "zuigaoxueli", "label": "最高学历", "type": "Option", "required": "0"}, {
412
+ "name": "biyeshijian",
413
+ "label": "毕业时间",
414
+ "type": "Date",
415
+ "required": "0"
416
+ }, {"name": "aa", "label": "aa", "type": "Integer", "required": "1"}, /*{
417
+ "detailEntity": "Jinjilianxiren",
418
+ "name": "jinjilianxirenId",
419
+ "label": "员工-紧急联系人.id主键",
420
+ "type": "PrimaryKey",
421
+ "required": "1"
422
+ },*/ {
423
+ "detailEntity": "Jinjilianxiren",
424
+ "name": "createdOn",
425
+ "label": "员工-紧急联系人.创建时间",
426
+ "type": "DateTime",
427
+ "required": "1"
428
+ }, /*{
429
+ "searchDialogWidth": "520px",
430
+ "detailEntity": "Jinjilianxiren",
431
+ "name": "createdBy",
432
+ "label": "员工-紧急联系人.创建用户",
433
+ "type": "Reference",
434
+ "required": "1"
435
+ },*/ {
436
+ "detailEntity": "Jinjilianxiren",
437
+ "name": "modifiedOn",
438
+ "label": "员工-紧急联系人.最近修改时间",
439
+ "type": "DateTime",
440
+ "required": "0"
441
+ }, /*{
442
+ "searchDialogWidth": "520px",
443
+ "detailEntity": "Jinjilianxiren",
444
+ "name": "modifiedBy",
445
+ "label": "员工-紧急联系人.修改用户",
446
+ "type": "Reference",
447
+ "required": "0"
448
+ }, {
449
+ "searchDialogWidth": "520px",
450
+ "detailEntity": "Jinjilianxiren",
451
+ "name": "mdYuangongdanganId",
452
+ "label": "员工-紧急联系人.主从关联Id",
453
+ "type": "Reference",
454
+ "required": "1"
455
+ },*/ {
456
+ "detailEntity": "Jinjilianxiren",
457
+ "name": "shouji",
458
+ "label": "员工-紧急联系人.手机",
459
+ "type": "Text",
460
+ "required": "0",
461
+ "maxLength": "200"
462
+ }, {
463
+ "detailEntity": "Jinjilianxiren",
464
+ "name": "jinjilianxirenxingming",
465
+ "label": "员工-紧急联系人.紧急联系人姓名",
466
+ "type": "Text",
467
+ "required": "0",
468
+ "maxLength": "200"
469
+ }]
470
+ }
471
+ };
472
+ if (res.data.fieldList) {
473
+ this.fieldListData.fieldList = res.data.fieldList;
474
+ if (res.data.subFormList) {
475
+ this.fieldListData.subFormList =
476
+ res.data.subFormList;
477
+ }
478
+ this.meteFieldsResult = res;
479
+ const metaFields = this.buildMetaFields(
480
+ this.meteFieldsResult
481
+ );
482
+ this.$refs.designer.setFieldListData(
483
+ this.fieldListData
484
+ );
485
+ this.$refs.designer.setMetaFields(metaFields);
486
+ }
487
+
488
+ },
489
+
490
+ buildMetaFields(mdResult) {
491
+ const result = {
492
+ main: {
493
+ entityName: this.entity,
494
+ entityLabel: this.entityLabel,
495
+ fieldList: [],
496
+ },
497
+ detail: [],
498
+ };
499
+
500
+ if (mdResult && mdResult.data?.fieldList) {
501
+ mdResult.data.fieldList.forEach((fld) => {
502
+ if (!fld.detailEntity && fld.type !== "PrimaryKey") {
503
+ //跳过id主键
504
+ if (fld.name === "loginPwd") {
505
+ return;
506
+ }
507
+
508
+ if (
509
+ fld.type === "AnyReference" ||
510
+ fld.type === "ReferenceList"
511
+ ) {
512
+ return;
513
+ }
514
+
515
+ if (this.usedFieldNames.hasOwnProperty(fld.name)) {
516
+ return; //跳过本次循环
517
+ }
518
+
519
+ const fieldNewProps = deepClone(
520
+ formFieldMapping[fld.type]
521
+ );
522
+ const fieldSchema = deepClone(
523
+ this.$refs.designer.designer.getFieldWidgetByType(
524
+ fieldNewProps.type
525
+ )
526
+ );
527
+ overwriteObj(
528
+ fieldSchema.options,
529
+ fieldNewProps.options
530
+ );
531
+
532
+ fieldSchema.displayName = fld.label;
533
+ fieldSchema.nameReadonly = true;
534
+ fieldSchema.options.name = fld.name;
535
+ fieldSchema.options.label = fld.label;
536
+ this.adjustFieldSchema(fieldSchema, fld, mdResult);
537
+ result.main.fieldList.push(fieldSchema);
538
+ }
539
+ });
540
+ }
541
+
542
+ if (mdResult && mdResult.data?.subFormList) {
543
+ mdResult.data.subFormList.forEach((sf) => {
544
+ const deName = sf.name;
545
+ const deLabel = sf.label;
546
+ const detailDataItem = {
547
+ entityName: deName,
548
+ entityLabel: deLabel,
549
+ fieldList: [],
550
+ };
551
+
552
+ mdResult.data.fieldList.forEach((fld) => {
553
+ if (
554
+ fld.detailEntity &&
555
+ fld.detailEntity === deName &&
556
+ fld.type !== "PrimaryKey"
557
+ ) {
558
+ //跳过id主键
559
+ if (
560
+ fld.type === "AnyReference" ||
561
+ fld.type === "ReferenceList"
562
+ ) {
563
+ return;
564
+ }
565
+
566
+ if (this.usedFieldNames.hasOwnProperty(fld.name)) {
567
+ return; //跳过本次循环
568
+ }
569
+
570
+ const fieldNewProps = deepClone(
571
+ formFieldMapping[fld.type]
572
+ );
573
+ const fieldSchema = deepClone(
574
+ this.$refs.designer.designer.getFieldWidgetByType(
575
+ fieldNewProps.type
576
+ )
577
+ );
578
+ overwriteObj(
579
+ fieldSchema.options,
580
+ fieldNewProps.options
581
+ );
582
+
583
+ fieldSchema.displayName = fld.label;
584
+ fieldSchema.nameReadonly = true;
585
+ fieldSchema.options.name = fld.name;
586
+ fieldSchema.options.label = fld.label;
587
+ this.adjustFieldSchema(fieldSchema, fld, mdResult);
588
+ detailDataItem.fieldList.push(fieldSchema);
589
+ }
590
+ });
591
+
592
+ result.detail.push(detailDataItem);
593
+ });
594
+ }
595
+
596
+ return result;
597
+ },
598
+
599
+ adjustFieldSchema(fieldSchema, fldObj, mdResult) {
600
+ // 处理图片、文件上传字段!!
601
+ let cloudStorageFlag = false;
602
+ let cloudStorageType = "";
603
+ if (mdResult.data.storageSetting) {
604
+ cloudStorageFlag =
605
+ mdResult.data.storageSetting[0].cloudStorage === "true";
606
+ if (cloudStorageFlag) {
607
+ cloudStorageType =
608
+ mdResult.data.storageSetting[0].cloudStorageType;
609
+ }
610
+ }
611
+
612
+ if (fldObj.type === "Picture" || fldObj.type === "File") {
613
+ if (cloudStorageFlag) {
614
+ //设置withCredentials
615
+ fieldSchema.options.withCredentials = false;
616
+
617
+ //设置onBeforeUpload事件代码(还需要生成uuid新文件名)
618
+ fieldSchema.options.onBeforeUpload =
619
+ "const gDSV = this.getGlobalDsv();\nconst wType = this.field.type;\nif (wType === 'picture-upload') {\n this.field.options.uploadURL = gDSV.picUploadURL;\n} else if (wType === 'file-upload') {\n this.field.options.uploadURL = gDSV.fileUploadURL;\n}\n\nconst cloudStorage = gDSV.cloudStorage;\nif (cloudStorage === \"true\") {\n this.field.options.withCredentials = false\n const token = gDSV.cloudUploadToken;\n this.setUploadData('token', token);\n \n const randomNum = Math.floor(Math.random() * 100);\n const newFileName = new Date().getTime() + randomNum+ '_' + file.name;\n this.setUploadData('key', newFileName);\n} else {\n //this.field.options.withCredentials = true\n}\n";
620
+
621
+ //设置onUploadSuccess事件代码(上传返回结果需要设置QiNiu=前缀)
622
+ fieldSchema.options.onUploadSuccess =
623
+ "const gDSV = this.getGlobalDsv();\nconst cloudStorage = gDSV.cloudStorage;\nif (cloudStorage === \"true\") {\n const wType = this.field.type;\n let downloadPrefix = \"\"\n if (wType === 'picture-upload') {\n downloadPrefix = gDSV.picDownloadPrefix;\n } else if (wType === 'file-upload') {\n downloadPrefix = gDSV.fileDownloadPrefix;\n }\n \n let downUrl = downloadPrefix + result.key;\n const paramName = (downUrl.indexOf(\"?\") === -1) ? '?fileName=' : '&fileName=';\n return {\n name: file.name,\n url: downUrl + paramName + file.name\n }\n} else {\n const paramName = (result.url.indexOf(\"?\") === -1) ? '?fileName=' : '&fileName=';\n return {\n name: file.name,\n url: result.url + paramName + file.name\n }\n}\n";
624
+ }
625
+ }
626
+ // 处理图片、文件上传字段 -- 结束
627
+
628
+ /* 处理文本、长文本字段 */
629
+ if (fldObj.type === "Text" || fldObj.type === "TextArea") {
630
+ fieldSchema.options.maxLength = !fldObj.maxLength
631
+ ? fieldSchema.options.maxLength
632
+ : fldObj.maxLength * 1;
633
+ }
634
+
635
+ /* 处理精度小数字段 */
636
+ if (
637
+ fldObj.type === "Integer" ||
638
+ fldObj.type === "Percent" ||
639
+ fldObj.type === "Money" ||
640
+ fldObj.type === "Decimal"
641
+ ) {
642
+ fieldSchema.options.precision = !fldObj.precision
643
+ ? fieldSchema.options.precision
644
+ : fldObj.precision * 1;
645
+ fieldSchema.options.min = !fldObj.min
646
+ ? fieldSchema.options.min
647
+ : fldObj.min * 1;
648
+ fieldSchema.options.max = !fldObj.max
649
+ ? fieldSchema.options.max
650
+ : fldObj.max * 1;
651
+ }
652
+
653
+ /* 处理地区选择字段 */
654
+ if (fldObj.type === "AreaSelect") {
655
+ fieldSchema.optionItemsReadonly = true;
656
+ fieldSchema.options.areaDataType = !fldObj.areaDataType
657
+ ? fieldSchema.options.areaDataType
658
+ : fldObj.areaDataType * 1;
659
+ }
660
+
661
+ /* 处理一对一字段 */
662
+ if (fldObj.type === "Reference") {
663
+ fieldSchema.options.searchDialogWidth =
664
+ !fldObj.searchDialogWidth
665
+ ? fieldSchema.options.searchDialogWidth
666
+ : fldObj.searchDialogWidth;
667
+ }
668
+
669
+ /* 处理单选项字段 */
670
+ if (fieldSchema.options.hasOwnProperty("optionItems")) {
671
+ if (
672
+ this.formOptionData.hasOwnProperty(fieldSchema.options.name)
673
+ ) {
674
+ fieldSchema.options.optionItems = deepClone(
675
+ this.formOptionData[fieldSchema.options.name]
676
+ );
677
+ }
678
+
679
+ if (fldObj.type === "Boolean") {
680
+ fieldSchema.options.optionItems = [
681
+ {value: true, label: "是"},
682
+ {value: false, label: "否"},
683
+ ];
684
+ }
685
+
686
+ fieldSchema.optionItemsReadonly = true;
687
+ }
688
+
689
+ /* 设置字段必填校验 */
690
+ if (fldObj.hasOwnProperty("required")) {
691
+ fieldSchema.options.required = fldObj["required"] === "1";
692
+ }
693
+
694
+ /* 取消系统字段的必填校验 */
695
+ if (fieldSchema.options.name === "createdOn" || fieldSchema.options.name === "createdBy"
696
+ || fieldSchema.options.name === "modifiedOn" || fieldSchema.options.name === "modifiedBy"
697
+ || fieldSchema.options.name === "ownerUser" || fieldSchema.options.name === "ownerDepartment"
698
+ || fieldSchema.options.name === "approvalConfigId" || fieldSchema.options.name === "approvalStatus"
699
+ || fieldSchema.options.name === "lastApprovedBy" || fieldSchema.options.name === "lastApprovedOn") {
700
+ fieldSchema.options.required = false;
701
+ }
702
+
703
+ //
704
+ },
705
+
706
+ handleFWU(fwName) {
707
+ this.usedFieldNames[fwName] = 1;
708
+
709
+ /* 必须延时处理,否则draggable会报错 */
710
+ setTimeout(() => {
711
+ const metaFields = this.buildMetaFields(this.meteFieldsResult);
712
+ this.$refs.designer.setMetaFields(metaFields);
713
+ }, 800);
714
+ },
715
+
716
+ handleFWR(fwName) {
717
+ delete this.usedFieldNames[fwName];
718
+
719
+ /* 必须延时处理,否则draggable会报错 */
720
+ setTimeout(() => {
721
+ const metaFields = this.buildMetaFields(this.meteFieldsResult);
722
+ this.$refs.designer.setMetaFields(metaFields);
723
+ }, 800);
724
+ },
725
+
726
+ handleFJU() {
727
+ this.handleUsedFields();
728
+ setTimeout(() => {
729
+ const metaFields = this.buildMetaFields(this.meteFieldsResult);
730
+ this.$refs.designer.setMetaFields(metaFields);
731
+ }, 300);
732
+ },
733
+
734
+ /**
735
+ * 过滤已使用字段组件
736
+ */
737
+ handleUsedFields() {
738
+ this.usedFieldNames = {};
739
+ const allFieldWidgets = this.$refs.designer.getFieldWidgets();
740
+ allFieldWidgets.forEach((fwItem) => {
741
+ this.usedFieldNames[fwItem.name] = 1;
742
+ });
743
+ },
744
+ initField() {
745
+ this.$http({
746
+ aes: true,
747
+ url: USER_PREFIX + "/szTaMb/listPage",
748
+ data: {},
749
+ success: res => {
750
+
751
+ }
752
+ });
753
+ },
754
+ reflushTemplateList() {
755
+ this.$emit("reflushTemplateList");
756
+ },
757
+ customConfirm(json) {
758
+ this.$emit("customConfirm", json);
759
+ }
760
+ }
761
+ };
762
+ </script>
763
+
764
+ <style lang="scss" scoped>
765
+ body {
766
+ margin: 0; /* 如果页面出现垂直滚动条,则加入此行CSS以消除之 */
767
+ }
768
+
769
+ #app .main-container {
770
+ margin-left: 0px;
771
+ }
772
+ </style>