custom-variant-form 2.3.1 → 2.3.3

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 (315) hide show
  1. package/README.md +2 -180
  2. package/dist/VFormDesigner.css +1 -0
  3. package/dist/VFormDesigner.umd.min.js +35 -0
  4. package/dist/VFormRender.css +1 -1
  5. package/dist/VFormRender.umd.min.js +5 -5
  6. package/package.json +7 -32
  7. package/dist/VFormRender.common-report.html +0 -53
  8. package/dist/VFormRender.common.js +0 -47149
  9. package/dist/VFormRender.common.js.map +0 -1
  10. package/dist/VFormRender.umd-report.html +0 -53
  11. package/dist/VFormRender.umd.js +0 -47159
  12. package/dist/VFormRender.umd.js.map +0 -1
  13. package/dist/VFormRender.umd.min-report.html +0 -53
  14. package/dist/demo.html +0 -10
  15. package/install-render.js +0 -29
  16. package/install.js +0 -41
  17. package/license.txt +0 -8
  18. package/src/App.vue +0 -45
  19. package/src/assets/ft-images/t1.png +0 -0
  20. package/src/assets/ft-images/t2.png +0 -0
  21. package/src/assets/ft-images/t3.png +0 -0
  22. package/src/assets/ft-images/t4.png +0 -0
  23. package/src/assets/ft-images/t5.png +0 -0
  24. package/src/assets/ft-images/t6.png +0 -0
  25. package/src/assets/ft-images/t7.png +0 -0
  26. package/src/assets/ft-images/t8.png +0 -0
  27. package/src/assets/vform-logo.png +0 -0
  28. package/src/components/code-editor/index.vue +0 -134
  29. package/src/components/form-designer/designer.js +0 -962
  30. package/src/components/form-designer/form-widget/container-widget/container-wrapper.vue +0 -107
  31. package/src/components/form-designer/form-widget/container-widget/containerMixin.js +0 -93
  32. package/src/components/form-designer/form-widget/container-widget/grid-col-widget.vue +0 -314
  33. package/src/components/form-designer/form-widget/container-widget/grid-widget.vue +0 -93
  34. package/src/components/form-designer/form-widget/container-widget/index.js +0 -24
  35. package/src/components/form-designer/form-widget/container-widget/tab-widget.vue +0 -123
  36. package/src/components/form-designer/form-widget/container-widget/table-cell-widget.vue +0 -347
  37. package/src/components/form-designer/form-widget/container-widget/table-widget.vue +0 -116
  38. package/src/components/form-designer/form-widget/field-widget/button-widget.vue +0 -87
  39. package/src/components/form-designer/form-widget/field-widget/cascader-widget.vue +0 -120
  40. package/src/components/form-designer/form-widget/field-widget/checkbox-widget.vue +0 -105
  41. package/src/components/form-designer/form-widget/field-widget/color-widget.vue +0 -99
  42. package/src/components/form-designer/form-widget/field-widget/date-range-widget.vue +0 -104
  43. package/src/components/form-designer/form-widget/field-widget/date-widget.vue +0 -103
  44. package/src/components/form-designer/form-widget/field-widget/divider-widget.vue +0 -83
  45. package/src/components/form-designer/form-widget/field-widget/fieldMixin.js +0 -613
  46. package/src/components/form-designer/form-widget/field-widget/file-upload-widget.vue +0 -313
  47. package/src/components/form-designer/form-widget/field-widget/form-item-wrapper.vue +0 -331
  48. package/src/components/form-designer/form-widget/field-widget/html-text-widget.vue +0 -82
  49. package/src/components/form-designer/form-widget/field-widget/index.js +0 -10
  50. package/src/components/form-designer/form-widget/field-widget/input-widget.vue +0 -112
  51. package/src/components/form-designer/form-widget/field-widget/number-widget.vue +0 -103
  52. package/src/components/form-designer/form-widget/field-widget/picture-upload-widget.vue +0 -280
  53. package/src/components/form-designer/form-widget/field-widget/radio-widget.vue +0 -105
  54. package/src/components/form-designer/form-widget/field-widget/rate-widget.vue +0 -102
  55. package/src/components/form-designer/form-widget/field-widget/rich-editor-widget.vue +0 -123
  56. package/src/components/form-designer/form-widget/field-widget/select-widget.vue +0 -123
  57. package/src/components/form-designer/form-widget/field-widget/slider-widget.vue +0 -100
  58. package/src/components/form-designer/form-widget/field-widget/slot-widget.vue +0 -102
  59. package/src/components/form-designer/form-widget/field-widget/static-content-wrapper.vue +0 -196
  60. package/src/components/form-designer/form-widget/field-widget/static-text-widget.vue +0 -83
  61. package/src/components/form-designer/form-widget/field-widget/switch-widget.vue +0 -101
  62. package/src/components/form-designer/form-widget/field-widget/textarea-widget.vue +0 -99
  63. package/src/components/form-designer/form-widget/field-widget/time-range-widget.vue +0 -104
  64. package/src/components/form-designer/form-widget/field-widget/time-widget.vue +0 -103
  65. package/src/components/form-designer/form-widget/index.vue +0 -272
  66. package/src/components/form-designer/index.vue +0 -500
  67. package/src/components/form-designer/refMixinDesign.js +0 -28
  68. package/src/components/form-designer/setting-panel/form-setting.vue +0 -354
  69. package/src/components/form-designer/setting-panel/index.vue +0 -367
  70. package/src/components/form-designer/setting-panel/option-items-setting.vue +0 -234
  71. package/src/components/form-designer/setting-panel/property-editor/allowCreate-editor.vue +0 -24
  72. package/src/components/form-designer/setting-panel/property-editor/appendButton-editor.vue +0 -28
  73. package/src/components/form-designer/setting-panel/property-editor/appendButtonDisabled-editor.vue +0 -23
  74. package/src/components/form-designer/setting-panel/property-editor/automaticDropdown-editor.vue +0 -23
  75. package/src/components/form-designer/setting-panel/property-editor/border-editor.vue +0 -23
  76. package/src/components/form-designer/setting-panel/property-editor/buttonIcon-editor.vue +0 -23
  77. package/src/components/form-designer/setting-panel/property-editor/buttonStyle-editor.vue +0 -23
  78. package/src/components/form-designer/setting-panel/property-editor/clearable-editor.vue +0 -23
  79. package/src/components/form-designer/setting-panel/property-editor/columnWidth-editor.vue +0 -26
  80. package/src/components/form-designer/setting-panel/property-editor/container-grid/colHeight-editor.vue +0 -28
  81. package/src/components/form-designer/setting-panel/property-editor/container-grid/gutter-editor.vue +0 -81
  82. package/src/components/form-designer/setting-panel/property-editor/container-grid-col/grid-col-offset-editor.vue +0 -24
  83. package/src/components/form-designer/setting-panel/property-editor/container-grid-col/grid-col-pull-editor.vue +0 -24
  84. package/src/components/form-designer/setting-panel/property-editor/container-grid-col/grid-col-push-editor.vue +0 -24
  85. package/src/components/form-designer/setting-panel/property-editor/container-grid-col/grid-col-responsive-editor.vue +0 -23
  86. package/src/components/form-designer/setting-panel/property-editor/container-grid-col/grid-col-span-editor.vue +0 -48
  87. package/src/components/form-designer/setting-panel/property-editor/container-sub-form/showBlankRow-editor.vue +0 -23
  88. package/src/components/form-designer/setting-panel/property-editor/container-sub-form/showRowNumber-editor.vue +0 -23
  89. package/src/components/form-designer/setting-panel/property-editor/container-sub-form/sub-form-labelAlign-editor.vue +0 -36
  90. package/src/components/form-designer/setting-panel/property-editor/container-tab/tab-customClass-editor.vue +0 -119
  91. package/src/components/form-designer/setting-panel/property-editor/container-table-cell/cellHeight-editor.vue +0 -23
  92. package/src/components/form-designer/setting-panel/property-editor/container-table-cell/cellWidth-editor.vue +0 -23
  93. package/src/components/form-designer/setting-panel/property-editor/container-table-cell/wordBreak-editor.vue +0 -23
  94. package/src/components/form-designer/setting-panel/property-editor/customClass-editor.vue +0 -40
  95. package/src/components/form-designer/setting-panel/property-editor/defaultValue-editor.vue +0 -25
  96. package/src/components/form-designer/setting-panel/property-editor/disabled-editor.vue +0 -23
  97. package/src/components/form-designer/setting-panel/property-editor/displayStyle-editor.vue +0 -26
  98. package/src/components/form-designer/setting-panel/property-editor/editable-editor.vue +0 -24
  99. package/src/components/form-designer/setting-panel/property-editor/endPlaceholder-editor.vue +0 -23
  100. package/src/components/form-designer/setting-panel/property-editor/event-handler/eventMixin.js +0 -12
  101. package/src/components/form-designer/setting-panel/property-editor/event-handler/onAppendButtonClick-editor.vue +0 -30
  102. package/src/components/form-designer/setting-panel/property-editor/event-handler/onBeforeUpload-editor.vue +0 -30
  103. package/src/components/form-designer/setting-panel/property-editor/event-handler/onBlur-editor.vue +0 -30
  104. package/src/components/form-designer/setting-panel/property-editor/event-handler/onChange-editor.vue +0 -30
  105. package/src/components/form-designer/setting-panel/property-editor/event-handler/onClick-editor.vue +0 -30
  106. package/src/components/form-designer/setting-panel/property-editor/event-handler/onCreated-editor.vue +0 -31
  107. package/src/components/form-designer/setting-panel/property-editor/event-handler/onFileRemove.vue +0 -30
  108. package/src/components/form-designer/setting-panel/property-editor/event-handler/onFocus-editor.vue +0 -30
  109. package/src/components/form-designer/setting-panel/property-editor/event-handler/onInput-editor.vue +0 -30
  110. package/src/components/form-designer/setting-panel/property-editor/event-handler/onMounted-editor.vue +0 -30
  111. package/src/components/form-designer/setting-panel/property-editor/event-handler/onRemoteQuery-editor.vue +0 -30
  112. package/src/components/form-designer/setting-panel/property-editor/event-handler/onSubFormRowAdd-editor.vue +0 -30
  113. package/src/components/form-designer/setting-panel/property-editor/event-handler/onSubFormRowChange-editor.vue +0 -30
  114. package/src/components/form-designer/setting-panel/property-editor/event-handler/onSubFormRowDelete-editor.vue +0 -30
  115. package/src/components/form-designer/setting-panel/property-editor/event-handler/onSubFormRowInsert-editor.vue +0 -30
  116. package/src/components/form-designer/setting-panel/property-editor/event-handler/onUploadError-editor.vue +0 -30
  117. package/src/components/form-designer/setting-panel/property-editor/event-handler/onUploadSuccess-editor.vue +0 -30
  118. package/src/components/form-designer/setting-panel/property-editor/event-handler/onValidate-editor.vue +0 -30
  119. package/src/components/form-designer/setting-panel/property-editor/field-button/button-type-editor.vue +0 -32
  120. package/src/components/form-designer/setting-panel/property-editor/field-button/circle-editor.vue +0 -23
  121. package/src/components/form-designer/setting-panel/property-editor/field-button/icon-editor.vue +0 -23
  122. package/src/components/form-designer/setting-panel/property-editor/field-button/plain-editor.vue +0 -24
  123. package/src/components/form-designer/setting-panel/property-editor/field-button/round-editor.vue +0 -23
  124. package/src/components/form-designer/setting-panel/property-editor/field-cascader/cascader-defaultValue-editor.vue +0 -18
  125. package/src/components/form-designer/setting-panel/property-editor/field-cascader/cascader-multiple-editor.vue +0 -24
  126. package/src/components/form-designer/setting-panel/property-editor/field-cascader/checkStrictly-editor.vue +0 -23
  127. package/src/components/form-designer/setting-panel/property-editor/field-cascader/showAllLevels-editor.vue +0 -23
  128. package/src/components/form-designer/setting-panel/property-editor/field-checkbox/checkbox-defaultValue-editor.vue +0 -18
  129. package/src/components/form-designer/setting-panel/property-editor/field-color/color-defaultValue-editor.vue +0 -25
  130. package/src/components/form-designer/setting-panel/property-editor/field-date/date-defaultValue-editor.vue +0 -26
  131. package/src/components/form-designer/setting-panel/property-editor/field-date/date-format-editor.vue +0 -30
  132. package/src/components/form-designer/setting-panel/property-editor/field-date/date-type-editor.vue +0 -30
  133. package/src/components/form-designer/setting-panel/property-editor/field-date/date-valueFormat-editor.vue +0 -26
  134. package/src/components/form-designer/setting-panel/property-editor/field-date-range/date-range-defaultValue-editor.vue +0 -26
  135. package/src/components/form-designer/setting-panel/property-editor/field-date-range/date-range-format-editor.vue +0 -30
  136. package/src/components/form-designer/setting-panel/property-editor/field-date-range/date-range-type-editor.vue +0 -27
  137. package/src/components/form-designer/setting-panel/property-editor/field-date-range/date-range-valueFormat-editor.vue +0 -26
  138. package/src/components/form-designer/setting-panel/property-editor/field-divider/contentPosition-editor.vue +0 -27
  139. package/src/components/form-designer/setting-panel/property-editor/field-file-upload/file-upload-fileTypes-editor.vue +0 -44
  140. package/src/components/form-designer/setting-panel/property-editor/field-html-text/htmlContent-editor.vue +0 -29
  141. package/src/components/form-designer/setting-panel/property-editor/field-number/controlsPosition-editor.vue +0 -27
  142. package/src/components/form-designer/setting-panel/property-editor/field-picture-upload/picture-upload-fileTypes-editor.vue +0 -44
  143. package/src/components/form-designer/setting-panel/property-editor/field-radio/radio-defaultValue-editor.vue +0 -18
  144. package/src/components/form-designer/setting-panel/property-editor/field-rate/allowHalf-editor.vue +0 -23
  145. package/src/components/form-designer/setting-panel/property-editor/field-rate/highThreshold-editor.vue +0 -24
  146. package/src/components/form-designer/setting-panel/property-editor/field-rate/lowThreshold-editor.vue +0 -24
  147. package/src/components/form-designer/setting-panel/property-editor/field-rate/rate-defaultValue-editor.vue +0 -26
  148. package/src/components/form-designer/setting-panel/property-editor/field-rate/rate-max-editor.vue +0 -25
  149. package/src/components/form-designer/setting-panel/property-editor/field-rate/showScore-editor.vue +0 -23
  150. package/src/components/form-designer/setting-panel/property-editor/field-rate/showText-editor.vue +0 -23
  151. package/src/components/form-designer/setting-panel/property-editor/field-select/select-defaultValue-editor.vue +0 -18
  152. package/src/components/form-designer/setting-panel/property-editor/field-slider/range-editor.vue +0 -23
  153. package/src/components/form-designer/setting-panel/property-editor/field-slider/showStops-editor.vue +0 -23
  154. package/src/components/form-designer/setting-panel/property-editor/field-slider/vertical-editor.vue +0 -23
  155. package/src/components/form-designer/setting-panel/property-editor/field-static-text/fontSize-editor.vue +0 -23
  156. package/src/components/form-designer/setting-panel/property-editor/field-static-text/preWrap-editor.vue +0 -23
  157. package/src/components/form-designer/setting-panel/property-editor/field-static-text/textContent-editor.vue +0 -23
  158. package/src/components/form-designer/setting-panel/property-editor/field-switch/activeColor-editor.vue +0 -23
  159. package/src/components/form-designer/setting-panel/property-editor/field-switch/activeText-editor.vue +0 -23
  160. package/src/components/form-designer/setting-panel/property-editor/field-switch/inactiveColor-editor.vue +0 -23
  161. package/src/components/form-designer/setting-panel/property-editor/field-switch/inactiveText-editor.vue +0 -23
  162. package/src/components/form-designer/setting-panel/property-editor/field-switch/switch-defaultValue-editor.vue +0 -25
  163. package/src/components/form-designer/setting-panel/property-editor/field-switch/switchWidth-editor.vue +0 -23
  164. package/src/components/form-designer/setting-panel/property-editor/field-time/time-defaultValue-editor.vue +0 -26
  165. package/src/components/form-designer/setting-panel/property-editor/field-time/time-format-editor.vue +0 -27
  166. package/src/components/form-designer/setting-panel/property-editor/field-time-range/time-range-defaultValue-editor.vue +0 -26
  167. package/src/components/form-designer/setting-panel/property-editor/field-time-range/time-range-format-editor.vue +0 -27
  168. package/src/components/form-designer/setting-panel/property-editor/fileMaxSize-editor.vue +0 -23
  169. package/src/components/form-designer/setting-panel/property-editor/filterable-editor.vue +0 -23
  170. package/src/components/form-designer/setting-panel/property-editor/hidden-editor.vue +0 -23
  171. package/src/components/form-designer/setting-panel/property-editor/index.js +0 -10
  172. package/src/components/form-designer/setting-panel/property-editor/label-editor.vue +0 -30
  173. package/src/components/form-designer/setting-panel/property-editor/labelAlign-editor.vue +0 -42
  174. package/src/components/form-designer/setting-panel/property-editor/labelHidden-editor.vue +0 -23
  175. package/src/components/form-designer/setting-panel/property-editor/labelIconClass-editor.vue +0 -28
  176. package/src/components/form-designer/setting-panel/property-editor/labelIconPosition-editor.vue +0 -37
  177. package/src/components/form-designer/setting-panel/property-editor/labelTooltip-editor.vue +0 -23
  178. package/src/components/form-designer/setting-panel/property-editor/labelWidth-editor.vue +0 -25
  179. package/src/components/form-designer/setting-panel/property-editor/limit-editor.vue +0 -24
  180. package/src/components/form-designer/setting-panel/property-editor/max-editor.vue +0 -39
  181. package/src/components/form-designer/setting-panel/property-editor/maxLength-editor.vue +0 -40
  182. package/src/components/form-designer/setting-panel/property-editor/min-editor.vue +0 -40
  183. package/src/components/form-designer/setting-panel/property-editor/minLength-editor.vue +0 -41
  184. package/src/components/form-designer/setting-panel/property-editor/multiple-editor.vue +0 -24
  185. package/src/components/form-designer/setting-panel/property-editor/multipleLimit-editor.vue +0 -24
  186. package/src/components/form-designer/setting-panel/property-editor/multipleSelect-editor.vue +0 -24
  187. package/src/components/form-designer/setting-panel/property-editor/name-editor.vue +0 -89
  188. package/src/components/form-designer/setting-panel/property-editor/optionItems-editor.vue +0 -28
  189. package/src/components/form-designer/setting-panel/property-editor/placeholder-editor.vue +0 -24
  190. package/src/components/form-designer/setting-panel/property-editor/precision-editor.vue +0 -23
  191. package/src/components/form-designer/setting-panel/property-editor/prefixIcon-editor.vue +0 -23
  192. package/src/components/form-designer/setting-panel/property-editor/propertyMixin.js +0 -55
  193. package/src/components/form-designer/setting-panel/property-editor/readonly-editor.vue +0 -23
  194. package/src/components/form-designer/setting-panel/property-editor/remote-editor.vue +0 -25
  195. package/src/components/form-designer/setting-panel/property-editor/required-editor.vue +0 -23
  196. package/src/components/form-designer/setting-panel/property-editor/requiredHint-editor.vue +0 -24
  197. package/src/components/form-designer/setting-panel/property-editor/rows-editor.vue +0 -24
  198. package/src/components/form-designer/setting-panel/property-editor/showFileList-editor.vue +0 -23
  199. package/src/components/form-designer/setting-panel/property-editor/showPassword-editor.vue +0 -24
  200. package/src/components/form-designer/setting-panel/property-editor/showWordLimit-editor.vue +0 -23
  201. package/src/components/form-designer/setting-panel/property-editor/size-editor.vue +0 -38
  202. package/src/components/form-designer/setting-panel/property-editor/startPlaceholder-editor.vue +0 -23
  203. package/src/components/form-designer/setting-panel/property-editor/step-editor.vue +0 -23
  204. package/src/components/form-designer/setting-panel/property-editor/suffixIcon-editor.vue +0 -23
  205. package/src/components/form-designer/setting-panel/property-editor/textAlign-editor.vue +0 -35
  206. package/src/components/form-designer/setting-panel/property-editor/type-editor.vue +0 -33
  207. package/src/components/form-designer/setting-panel/property-editor/uploadTip-editor.vue +0 -24
  208. package/src/components/form-designer/setting-panel/property-editor/uploadURL-editor.vue +0 -28
  209. package/src/components/form-designer/setting-panel/property-editor/validation-editor.vue +0 -48
  210. package/src/components/form-designer/setting-panel/property-editor/validationHint-editor.vue +0 -23
  211. package/src/components/form-designer/setting-panel/property-editor/withCredentials-editor.vue +0 -23
  212. package/src/components/form-designer/setting-panel/property-editor-factory.js +0 -173
  213. package/src/components/form-designer/setting-panel/propertyRegister.js +0 -215
  214. package/src/components/form-designer/toolbar-panel/index.vue +0 -886
  215. package/src/components/form-designer/widget-panel/index.vue +0 -394
  216. package/src/components/form-designer/widget-panel/templatesConfig.js +0 -58
  217. package/src/components/form-designer/widget-panel/widgetsConfig.js +0 -934
  218. package/src/components/form-render/container-item/container-item-wrapper.vue +0 -37
  219. package/src/components/form-render/container-item/containerItemMixin.js +0 -221
  220. package/src/components/form-render/container-item/grid-col-item.vue +0 -126
  221. package/src/components/form-render/container-item/grid-item.vue +0 -59
  222. package/src/components/form-render/container-item/index.js +0 -24
  223. package/src/components/form-render/container-item/sub-form-item.vue +0 -417
  224. package/src/components/form-render/container-item/tab-item.vue +0 -99
  225. package/src/components/form-render/container-item/table-cell-item.vue +0 -72
  226. package/src/components/form-render/container-item/table-item.vue +0 -70
  227. package/src/components/form-render/index.vue +0 -721
  228. package/src/components/form-render/refMixin.js +0 -30
  229. package/src/components/svg-icon/index.vue +0 -49
  230. package/src/components/v-table/index.vue +0 -106
  231. package/src/extension/components/tag/index.js +0 -9
  232. package/src/extension/components/tag/tag-item.vue +0 -49
  233. package/src/extension/components/tag/tag-schema.js +0 -33
  234. package/src/extension/components/tag/tag-widget.vue +0 -53
  235. package/src/extension/extension-helper.js +0 -23
  236. package/src/extension/extension-loader.js +0 -174
  237. package/src/extension/samples/alert/alert-widget.vue +0 -72
  238. package/src/extension/samples/card/card-item.vue +0 -100
  239. package/src/extension/samples/card/card-widget.vue +0 -132
  240. package/src/extension/samples/extension-schema.js +0 -36
  241. package/src/extension/samples/extension-sfc-generator.js +0 -50
  242. package/src/iconfont/iconfont.css +0 -29
  243. package/src/iconfont/iconfont.eot +0 -0
  244. package/src/iconfont/iconfont.js +0 -1
  245. package/src/iconfont/iconfont.json +0 -37
  246. package/src/iconfont/iconfont.svg +0 -35
  247. package/src/iconfont/iconfont.ttf +0 -0
  248. package/src/iconfont/iconfont.woff +0 -0
  249. package/src/iconfont/iconfont.woff2 +0 -0
  250. package/src/icons/index.js +0 -3
  251. package/src/icons/svg/alert.svg +0 -1
  252. package/src/icons/svg/button.svg +0 -1
  253. package/src/icons/svg/card.svg +0 -1
  254. package/src/icons/svg/cascader-field.svg +0 -1
  255. package/src/icons/svg/checkbox-field.svg +0 -1
  256. package/src/icons/svg/color-field.svg +0 -1
  257. package/src/icons/svg/custom-component.svg +0 -1
  258. package/src/icons/svg/data-table.svg +0 -1
  259. package/src/icons/svg/date-field.svg +0 -1
  260. package/src/icons/svg/date-range-field.svg +0 -1
  261. package/src/icons/svg/divider.svg +0 -1
  262. package/src/icons/svg/document.svg +0 -1
  263. package/src/icons/svg/drag.svg +0 -1
  264. package/src/icons/svg/file-upload-field.svg +0 -1
  265. package/src/icons/svg/github.svg +0 -1
  266. package/src/icons/svg/grid.svg +0 -1
  267. package/src/icons/svg/html-text.svg +0 -1
  268. package/src/icons/svg/node-tree.svg +0 -1
  269. package/src/icons/svg/number-field.svg +0 -1
  270. package/src/icons/svg/picture-upload-field.svg +0 -1
  271. package/src/icons/svg/radio-field.svg +0 -1
  272. package/src/icons/svg/rate-field.svg +0 -1
  273. package/src/icons/svg/redo.svg +0 -1
  274. package/src/icons/svg/rich-editor-field.svg +0 -1
  275. package/src/icons/svg/section.svg +0 -1
  276. package/src/icons/svg/select-field.svg +0 -1
  277. package/src/icons/svg/slider-field.svg +0 -1
  278. package/src/icons/svg/slot-component.svg +0 -1
  279. package/src/icons/svg/slot-field.svg +0 -1
  280. package/src/icons/svg/static-text.svg +0 -1
  281. package/src/icons/svg/sub-form.svg +0 -1
  282. package/src/icons/svg/switch-field.svg +0 -1
  283. package/src/icons/svg/tab.svg +0 -1
  284. package/src/icons/svg/table.svg +0 -1
  285. package/src/icons/svg/tag-field.svg +0 -4
  286. package/src/icons/svg/text-field.svg +0 -1
  287. package/src/icons/svg/textarea-field.svg +0 -1
  288. package/src/icons/svg/time-field.svg +0 -1
  289. package/src/icons/svg/time-range-field.svg +0 -1
  290. package/src/icons/svg/undo.svg +0 -1
  291. package/src/icons/svg/vue-sfc.svg +0 -1
  292. package/src/lang/en-US.js +0 -354
  293. package/src/lang/en-US_extension.js +0 -35
  294. package/src/lang/en-US_render.js +0 -38
  295. package/src/lang/zh-CN.js +0 -354
  296. package/src/lang/zh-CN_extension.js +0 -35
  297. package/src/lang/zh-CN_render.js +0 -38
  298. package/src/main.js +0 -29
  299. package/src/styles/global.scss +0 -108
  300. package/src/styles/index.scss +0 -15
  301. package/src/utils/beautifierLoader.js +0 -77
  302. package/src/utils/code-generator.js +0 -91
  303. package/src/utils/config.js +0 -9
  304. package/src/utils/debug-console.js +0 -7
  305. package/src/utils/directive.js +0 -74
  306. package/src/utils/emitter.js +0 -34
  307. package/src/utils/format.js +0 -214
  308. package/src/utils/i18n.js +0 -95
  309. package/src/utils/sfc-generator.js +0 -583
  310. package/src/utils/smart-vue-i18n/index.js +0 -56
  311. package/src/utils/smart-vue-i18n/utils.js +0 -47
  312. package/src/utils/util.js +0 -376
  313. package/src/utils/validators.js +0 -127
  314. package/src/utils/vue2js-generator.js +0 -144
  315. package/src/utils/vue3js-generator.js +0 -70
@@ -1,721 +0,0 @@
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
- <el-form :label-position="labelPosition" :size="size" :class="[customClass]" class="render-form"
13
- :label-width="labelWidth" :validate-on-rule-change="false"
14
- :model="formDataModel" ref="renderForm"
15
- @submit.native.prevent>
16
- <template v-for="(widget, index) in widgetList">
17
- <template v-if="'container' === widget.category">
18
- <component :is="getContainerWidgetName(widget)" :widget="widget" :key="widget.id" :parent-list="widgetList"
19
- :index-of-parent-list="index" :parent-widget="null">
20
- <!-- 递归传递插槽!!! -->
21
- <template v-for="slot in Object.keys($scopedSlots)" v-slot:[slot]="scope">
22
- <slot :name="slot" v-bind="scope"/>
23
- </template>
24
- </component>
25
- </template>
26
- <template v-else>
27
- <component :is="getWidgetName(widget)" :field="widget" :form-model="formDataModel" :designer="null" :key="widget.id" :parent-list="widgetList"
28
- :index-of-parent-list="index" :parent-widget="null">
29
- <!-- 递归传递插槽!!! -->
30
- <template v-for="slot in Object.keys($scopedSlots)" v-slot:[slot]="scope">
31
- <slot :name="slot" v-bind="scope"/>
32
- </template>
33
- </component>
34
- </template>
35
- </template>
36
- </el-form>
37
- </template>
38
-
39
- <script>
40
- //import ElForm from 'element-ui/packages/form/src/form.vue' /* 用于源码调试Element UI */
41
- import emitter from '@/utils/emitter'
42
- import './container-item/index'
43
- import FieldComponents from '@/components/form-designer/form-widget/field-widget/index'
44
- import {
45
- generateId, deepClone, getAllContainerWidgets, getAllFieldWidgets,
46
- insertCustomCssToHead,
47
- insertGlobalFunctionsToHtml,
48
- traverseFieldWidgets, buildDefaultFormJson
49
- } from "@/utils/util"
50
- import i18n, { changeLocale } from "../../utils/i18n"
51
-
52
- export default {
53
- name: "VFormRender",
54
- componentName: 'VFormRender',
55
- mixins: [emitter, i18n],
56
- components: {
57
- //ElForm,
58
-
59
- ...FieldComponents,
60
- },
61
- props: {
62
- formJson: { //prop传入的表单JSON配置
63
- type: Object,
64
- default: () => buildDefaultFormJson()
65
- },
66
- formData: { //prop传入的表单数据
67
- type: Object,
68
- default: () => ({})
69
- },
70
- optionData: { //prop传入的选项数据
71
- type: Object,
72
- default: () => ({})
73
- },
74
- previewState: { //是否表单预览状态
75
- type: Boolean,
76
- default: false
77
- },
78
- globalDsv: {
79
- type: Object,
80
- default: () => ({})
81
- },
82
- },
83
- provide() {
84
- return {
85
- refList: this.widgetRefList,
86
- sfRefList: this.subFormRefList, //收集SubForm引用
87
- formConfig: this.formConfig,
88
- getGlobalDsv: () => this.globalDsv, // 全局数据源变量
89
- globalOptionData: this.optionData,
90
- getOptionData: () => this.optionData, /* 该方法用于在异步更新option-data之后重新获取到最新值 */
91
- globalModel: {
92
- formModel: this.formDataModel,
93
- },
94
- previewState: this.previewState,
95
- }
96
- },
97
- data() {
98
- return {
99
- formJsonObj: this.formJson,
100
-
101
- formDataModel: {
102
- //
103
- },
104
-
105
- widgetRefList: {},
106
- subFormRefList: {},
107
- formId: null, //表单唯一Id,用于区分页面上的多个v-form-render组件!!
108
-
109
- externalComponents: {}, //外部组件实例集合
110
- }
111
- },
112
- computed: {
113
- formConfig() {
114
- return this.formJsonObj.formConfig
115
- },
116
-
117
- widgetList() {
118
- return this.formJsonObj.widgetList
119
- },
120
-
121
- labelPosition() {
122
- if (!!this.formConfig && !!this.formConfig.labelPosition) {
123
- return this.formConfig.labelPosition
124
- }
125
-
126
- return 'left'
127
- },
128
-
129
- labelWidth() {
130
- if (!!this.formConfig && !!this.formConfig.labelWidth) {
131
- return this.formConfig.labelWidth + 'px'
132
- }
133
-
134
- return '80px'
135
- },
136
-
137
- size() {
138
- if (!!this.formConfig && !!this.formConfig.size) {
139
- return this.formConfig.size
140
- }
141
-
142
- return 'medium'
143
- },
144
-
145
- customClass() {
146
- return !!this.formConfig && !!this.formConfig.customClass ? this.formConfig.customClass : ''
147
- },
148
-
149
- },
150
- watch: {
151
- //
152
- },
153
- created() {
154
- this.buildFormModel(!this.formJsonObj ? null : this.formJsonObj.widgetList)
155
- this.initFormObject()
156
- },
157
- mounted() {
158
- this.initLocale()
159
- this.handleOnMounted()
160
- },
161
- methods: {
162
- initFormObject(insertHtmlCodeFlag = true) {
163
- this.formId = 'vfRender' + generateId()
164
- if (!!insertHtmlCodeFlag) {
165
- this.insertCustomStyleAndScriptNode()
166
- }
167
- this.addFieldChangeEventHandler()
168
- this.addFieldValidateEventHandler()
169
- this.registerFormToRefList()
170
- this.handleOnCreated()
171
- },
172
-
173
- getContainerWidgetName(widget) {
174
- if (widget.type === 'grid') { //grid-item跟VueGridLayout全局注册组件重名,故特殊处理!!
175
- return 'vf-grid-item'
176
- }
177
-
178
- return widget.type + '-item'
179
- },
180
-
181
- getWidgetName(widget) {
182
- return widget.type + '-widget'
183
- },
184
-
185
- initLocale() {
186
- let curLocale = localStorage.getItem('v_form_locale') || 'zh-CN'
187
- this.changeLanguage(curLocale)
188
- },
189
-
190
- insertCustomStyleAndScriptNode() {
191
- if (!!this.formConfig && !!this.formConfig.cssCode) {
192
- insertCustomCssToHead(this.formConfig.cssCode,
193
- !!this.previewState ? '' : this.formId)
194
- }
195
-
196
- if (!!this.formConfig && !!this.formConfig.functions) {
197
- insertGlobalFunctionsToHtml(this.formConfig.functions,
198
- !!this.previewState ? '' : this.formId)
199
- }
200
- },
201
-
202
- buildFormModel(widgetList) {
203
- if (!!widgetList && (widgetList.length > 0)) {
204
- widgetList.forEach((wItem) => {
205
- this.buildDataFromWidget(wItem)
206
- })
207
- }
208
- },
209
-
210
- buildDataFromWidget(wItem) {
211
- if (wItem.category === 'container') {
212
- if (wItem.type === 'grid') {
213
- if (!!wItem.cols && (wItem.cols.length > 0)) {
214
- wItem.cols.forEach((childItem) => {
215
- this.buildDataFromWidget(childItem)
216
- })
217
- }
218
- } else if (wItem.type === 'table') {
219
- if (!!wItem.rows && (wItem.rows.length > 0)) {
220
- wItem.rows.forEach((rowItem) => {
221
- if (!!rowItem.cols && (rowItem.cols.length > 0)) {
222
- rowItem.cols.forEach((colItem) => {
223
- this.buildDataFromWidget(colItem)
224
- })
225
- }
226
- })
227
- }
228
- } else if (wItem.type === 'tab') {
229
- if (!!wItem.tabs && (wItem.tabs.length > 0)) {
230
- wItem.tabs.forEach((tabItem) => {
231
- if (!!tabItem.widgetList && (tabItem.widgetList.length > 0)) {
232
- tabItem.widgetList.forEach((childItem) => {
233
- this.buildDataFromWidget(childItem)
234
- })
235
- }
236
- })
237
- }
238
- } else if (wItem.type === 'sub-form') {
239
- let subFormName = wItem.options.name
240
- if (!this.formData.hasOwnProperty(subFormName)) {
241
- let subFormDataRow = {}
242
- if (wItem.options.showBlankRow) {
243
- wItem.widgetList.forEach(subFormItem => {
244
- if (!!subFormItem.formItemFlag) {
245
- subFormDataRow[subFormItem.options.name] = subFormItem.options.defaultValue
246
- }
247
- })
248
-
249
- this.$set(this.formDataModel, subFormName, [subFormDataRow]) //
250
- } else {
251
- this.$set(this.formDataModel, subFormName, []) //
252
- }
253
- } else {
254
- let initialValue = this.formData[subFormName]
255
- this.$set(this.formDataModel, subFormName, deepClone(initialValue))
256
- }
257
- } else if ((wItem.type === 'grid-col') || (wItem.type === 'table-cell')) {
258
- if (!!wItem.widgetList && (wItem.widgetList.length > 0)) {
259
- wItem.widgetList.forEach((childItem) => {
260
- this.buildDataFromWidget(childItem)
261
- })
262
- }
263
- } else { //自定义容器组件
264
- if (!!wItem.widgetList && (wItem.widgetList.length > 0)) {
265
- wItem.widgetList.forEach((childItem) => {
266
- this.buildDataFromWidget(childItem)
267
- })
268
- }
269
- }
270
- } else if (!!wItem.formItemFlag) {
271
- if (!this.formData.hasOwnProperty(wItem.options.name)) {
272
- //this.formDataModel[wItem.options.name] = '' //这种写法不支持对象属性响应式更新,必须用$set方法!!
273
- this.$set(this.formDataModel, wItem.options.name, wItem.options.defaultValue) //设置字段默认值
274
- } else {
275
- let initialValue = this.formData[wItem.options.name]
276
- this.$set(this.formDataModel, wItem.options.name, deepClone(initialValue))
277
- }
278
- }
279
- },
280
-
281
- addFieldChangeEventHandler() {
282
- this.$off('fieldChange') //移除原有事件监听
283
- this.$on('fieldChange', (fieldName, newValue, oldValue, subFormName, subFormRowIndex) => {
284
- this.handleFieldDataChange(fieldName, newValue, oldValue, subFormName, subFormRowIndex)
285
- this.$emit('formChange', fieldName, newValue, oldValue, this.formDataModel, subFormName, subFormRowIndex)
286
- })
287
- },
288
-
289
- addFieldValidateEventHandler() {
290
- this.$off('fieldValidation') //移除原有事件监听
291
- this.$on('fieldValidation', (fieldName) => {
292
- this.$refs.renderForm.validateField(fieldName)
293
- })
294
- },
295
-
296
- registerFormToRefList() {
297
- this.widgetRefList['v_form_ref'] = this
298
- },
299
-
300
- handleFieldDataChange(fieldName, newValue, oldValue, subFormName, subFormRowIndex) {
301
- if (!!this.formConfig && !!this.formConfig.onFormDataChange) {
302
- let customFunc = new Function('fieldName', 'newValue', 'oldValue', 'formModel', 'subFormName', 'subFormRowIndex',
303
- this.formConfig.onFormDataChange)
304
- customFunc.call(this, fieldName, newValue, oldValue, this.formDataModel, subFormName, subFormRowIndex)
305
- }
306
- },
307
-
308
- handleOnCreated() {
309
- if (!!this.formConfig && !!this.formConfig.onFormCreated) {
310
- let customFunc = new Function(this.formConfig.onFormCreated)
311
- customFunc.call(this)
312
- }
313
- },
314
-
315
- handleOnMounted() {
316
- if (!!this.formConfig && !!this.formConfig.onFormMounted) {
317
- let customFunc = new Function(this.formConfig.onFormMounted)
318
- customFunc.call(this)
319
- }
320
- },
321
-
322
- findWidgetAndSetDisabled(widgetName, disabledFlag) {
323
- let foundW = this.getWidgetRef(widgetName)
324
- if (!!foundW) {
325
- foundW.setDisabled(disabledFlag)
326
- } else { //没找到,可能是子表单中的组件
327
- this.findWidgetOfSubFormAndSetDisabled(widgetName, disabledFlag)
328
- }
329
- },
330
-
331
- findWidgetOfSubFormAndSetDisabled(widgetName, disabledFlag) {
332
- this.findWidgetNameInSubForm(widgetName).forEach(wn => {
333
- let sw = this.getWidgetRef(wn)
334
- if (!!sw) {
335
- sw.setDisabled(disabledFlag)
336
- }
337
- })
338
- },
339
-
340
- findWidgetAndSetHidden(widgetName, hiddenFlag) {
341
- let foundW = this.getWidgetRef(widgetName)
342
- if (!!foundW) {
343
- foundW.setHidden(hiddenFlag)
344
- } else { //没找到,可能是子表单中的组件
345
- this.findWidgetOfSubFormAndSetHidden(widgetName, hiddenFlag)
346
- }
347
- },
348
-
349
- findWidgetOfSubFormAndSetHidden(widgetName, hiddenFlag) {
350
- this.findWidgetNameInSubForm(widgetName).forEach(wn => {
351
- let sw = this.getWidgetRef(wn)
352
- if (!!sw) {
353
- sw.setHidden(hiddenFlag)
354
- }
355
- })
356
- },
357
-
358
- findWidgetNameInSubForm(widgetName) {
359
- let result = []
360
- let subFormName = null
361
- let handlerFn = (field, parent) => {
362
- if (!!field.options && (field.options.name === widgetName)) {
363
- subFormName = parent.options.name
364
- }
365
- }
366
- traverseFieldWidgets(this.widgetList, handlerFn)
367
-
368
- if (!!subFormName) {
369
- let subFormRef = this.getWidgetRef(subFormName)
370
- if (!!subFormRef) {
371
- let rowIds = subFormRef.getRowIdData()
372
- if (!!rowIds && (rowIds.length > 0)) {
373
- rowIds.forEach(rid => {
374
- result.push( widgetName + '@row' + rid)
375
- })
376
- }
377
- }
378
- }
379
-
380
- return result
381
- },
382
-
383
- //--------------------- 以下为组件支持外部调用的API方法 begin ------------------//
384
- /* 提示:用户可自行扩充这些方法!!! */
385
-
386
- changeLanguage(langName) {
387
- changeLocale(langName)
388
- },
389
-
390
- getNativeForm() { //获取原生form引用
391
- return this.$refs['renderForm']
392
- },
393
-
394
- getFormRef() {
395
- return this
396
- },
397
-
398
- getWidgetRef(widgetName, showError = false) {
399
- let foundRef = this.widgetRefList[widgetName]
400
- if (!foundRef && !!showError) {
401
- this.$message.error(this.i18nt('render.hint.refNotFound') + widgetName)
402
- }
403
- return foundRef
404
- },
405
-
406
- clearFormDataModel() {
407
- for (let pkey in this.formDataModel) {
408
- delete this.formDataModel[pkey]
409
- }
410
- },
411
-
412
- /**
413
- * 动态加载表单JSON
414
- * @param newFormJson
415
- */
416
- setFormJson(newFormJson) {
417
- if (!!newFormJson) {
418
- if ((typeof newFormJson === 'string') || (newFormJson.constructor === Object)) {
419
- let newFormJsonObj = null
420
- if (typeof newFormJson === 'string') {
421
- newFormJsonObj = JSON.parse(newFormJson)
422
- } else {
423
- newFormJsonObj = newFormJson
424
- }
425
-
426
- if (!newFormJsonObj.formConfig || !newFormJsonObj.widgetList) {
427
- this.$message.error('Invalid format of form json.')
428
- return
429
- }
430
-
431
- /* formDataModel必须在widgetList赋值完成初始化,因为widgetList赋值意味着子组件开始创建!!! */
432
- //this.formDataModel = {} //清空表单数据对象(有bug,会导致表单校验失败!!)
433
- this.clearFormDataModel() //上行代码有问题,会导致表单校验失败,故保留原对象引用只清空对象属性!!
434
- this.buildFormModel(newFormJsonObj.widgetList)
435
-
436
- this.$set(this.formJsonObj, 'formConfig', newFormJsonObj.formConfig)
437
- this._provided.formConfig = newFormJsonObj.formConfig //强制更新provide的formConfig对象
438
- this.$set(this.formJsonObj, 'widgetList', newFormJsonObj.widgetList)
439
-
440
- this.insertCustomStyleAndScriptNode() /* 必须先插入表单全局函数,否则VForm内部引用全局函数会报错!!! */
441
- this.$nextTick(() => {
442
- this.initFormObject(false)
443
- this.handleOnMounted()
444
- })
445
- } else {
446
- this.$message.error('Set form json failed.')
447
- }
448
- }
449
- },
450
-
451
- /**
452
- * 重新加载选项数据
453
- * @param widgetNames 指定重新加载的组件名称或组件名数组,不传则重新加载所有选项字段
454
- */
455
- reloadOptionData(widgetNames) {
456
- let eventParams = []
457
- if (!!widgetNames && (typeof widgetNames === 'string')) {
458
- eventParams = [widgetNames]
459
- } else if (!!widgetNames && Array.isArray(widgetNames)) {
460
- eventParams = [...widgetNames]
461
- }
462
- this.broadcast('FieldWidget', 'reloadOptionItems', [eventParams])
463
- },
464
-
465
- getFormData(needValidation = true) {
466
- if (!needValidation) {
467
- return this.formDataModel
468
- }
469
-
470
- let callback = function nullFunc() {}
471
- let promise = new window.Promise(function (resolve, reject) {
472
- callback = function(formData, error) {
473
- !error ? resolve(formData) : reject(error);
474
- };
475
- });
476
-
477
- this.$refs['renderForm'].validate((valid) => {
478
- if (valid) {
479
- callback(this.formDataModel)
480
- } else {
481
- callback(this.formDataModel, this.i18nt('render.hint.validationFailed'))
482
- }
483
- })
484
-
485
- return promise
486
- },
487
-
488
- setFormData(formData) { //设置表单数据
489
- Object.keys(this.formDataModel).forEach(propName => {
490
- if (!!formData && formData.hasOwnProperty(propName)) {
491
- this.formDataModel[propName] = deepClone( formData[propName] )
492
- }
493
- })
494
-
495
- // 通知SubForm组件:表单数据更新事件!!
496
- this.broadcast('ContainerItem', 'setFormData', this.formDataModel)
497
- // 通知FieldWidget组件:表单数据更新事件!!
498
- this.broadcast('FieldWidget', 'setFormData', this.formDataModel)
499
- },
500
-
501
- getFieldValue(fieldName) { //单个字段获取值
502
- let fieldRef = this.getWidgetRef(fieldName)
503
- if (!!fieldRef && !!fieldRef.getValue) {
504
- return fieldRef.getValue()
505
- }
506
-
507
- if (!fieldRef) { //如果是子表单字段
508
- let result = []
509
- this.findWidgetNameInSubForm(fieldName).forEach(wn => {
510
- let sw = this.getWidgetRef(wn)
511
- if (!!sw && !!sw.getValue) {
512
- result.push( sw.getValue() )
513
- }
514
- })
515
-
516
- return result
517
- }
518
- },
519
-
520
- setFieldValue(fieldName, fieldValue) { //单个更新字段值
521
- let fieldRef = this.getWidgetRef(fieldName)
522
- if (!!fieldRef && !!fieldRef.setValue) {
523
- fieldRef.setValue(fieldValue)
524
- }
525
-
526
- if (!fieldRef) { //如果是子表单字段
527
- this.findWidgetNameInSubForm(fieldName).forEach(wn => {
528
- let sw = this.getWidgetRef(wn)
529
- if (!!sw && !!sw.setValue) {
530
- sw.setValue(fieldValue)
531
- }
532
- })
533
- }
534
- },
535
-
536
- getSubFormValues(subFormName, needValidation = true) {
537
- let foundSFRef = this.subFormRefList[subFormName]
538
- return foundSFRef.getSubFormValues(needValidation)
539
- },
540
-
541
- setSubFormValues(subFormName, subFormValues) {
542
- //TODO: 待实现!!
543
- },
544
-
545
- disableForm() {
546
- let wNameList = Object.keys(this.widgetRefList)
547
- wNameList.forEach(wName => {
548
- let foundW = this.getWidgetRef(wName)
549
- if (!!foundW) {
550
- if (!!foundW.widget && (foundW.widget.type === 'sub-form')) {
551
- foundW.disableSubForm()
552
- } else {
553
- !!foundW.setDisabled && foundW.setDisabled(true)
554
- }
555
- }
556
- })
557
- },
558
-
559
- enableForm() {
560
- let wNameList = Object.keys(this.widgetRefList)
561
- wNameList.forEach(wName => {
562
- let foundW = this.getWidgetRef(wName)
563
- if (!!foundW) {
564
- if (!!foundW.widget && (foundW.widget.type === 'sub-form')) {
565
- foundW.enableSubForm()
566
- } else {
567
- !!foundW.setDisabled && foundW.setDisabled(false)
568
- }
569
- }
570
- })
571
- },
572
-
573
- resetForm() { //重置表单
574
- let subFormNames = Object.keys(this.subFormRefList)
575
- subFormNames.forEach(sfName => {
576
- if (!!this.subFormRefList[sfName].resetSubForm) {
577
- this.subFormRefList[sfName].resetSubForm()
578
- }
579
- })
580
-
581
- let wNameList = Object.keys(this.widgetRefList)
582
- wNameList.forEach(wName => {
583
- let foundW = this.getWidgetRef(wName)
584
- if (!!foundW && !foundW.subFormItemFlag && !!foundW.resetField) { // 跳过子表单字段!!
585
- foundW.resetField()
586
- }
587
- })
588
-
589
- this.$nextTick(() => {
590
- this.clearValidate() /* 清除resetField方法触发的校验错误提示 */
591
- })
592
- },
593
-
594
- clearValidate(props) {
595
- this.$refs.renderForm.clearValidate(props)
596
- },
597
-
598
- /**
599
- * 校验表单
600
- * @param callback 回调函数
601
- */
602
- validateForm(callback) {
603
- this.$refs['renderForm'].validate((valid) => {
604
- callback(valid)
605
- })
606
- },
607
-
608
- validateFields() {
609
- //
610
- },
611
-
612
- disableWidgets(widgetNames) {
613
- if (!!widgetNames) {
614
- if (typeof widgetNames === 'string') {
615
- this.findWidgetAndSetDisabled(widgetNames, true)
616
- } else if (Array.isArray(widgetNames)) {
617
- widgetNames.forEach(wn => {
618
- this.findWidgetAndSetDisabled(wn, true)
619
- })
620
- }
621
- }
622
- },
623
-
624
- enableWidgets(widgetNames) {
625
- if (!!widgetNames) {
626
- if (typeof widgetNames === 'string') {
627
- this.findWidgetAndSetDisabled(widgetNames, false)
628
- } else if (Array.isArray(widgetNames)) {
629
- widgetNames.forEach(wn => {
630
- this.findWidgetAndSetDisabled(wn, false)
631
- })
632
- }
633
- }
634
- },
635
-
636
- hideWidgets(widgetNames) {
637
- if (!!widgetNames) {
638
- if (typeof widgetNames === 'string') {
639
- this.findWidgetAndSetHidden(widgetNames, true)
640
- } else if (Array.isArray(widgetNames)) {
641
- widgetNames.forEach(wn => {
642
- this.findWidgetAndSetHidden(wn, true)
643
- })
644
- }
645
- }
646
- },
647
-
648
- showWidgets(widgetNames) {
649
- if (!!widgetNames) {
650
- if (typeof widgetNames === 'string') {
651
- this.findWidgetAndSetHidden(widgetNames, false)
652
- } else if (Array.isArray(widgetNames)) {
653
- widgetNames.forEach(wn => {
654
- this.findWidgetAndSetHidden(wn, false)
655
- })
656
- }
657
- }
658
- },
659
-
660
- /**
661
- * 获取所有字段组件
662
- * @returns {*[]}
663
- */
664
- getFieldWidgets(widgetList = null) {
665
- return !!widgetList ? getAllFieldWidgets(widgetList) : getAllFieldWidgets(this.formJsonObj.widgetList)
666
- },
667
-
668
- /**
669
- * 获取所有容器组件
670
- * @returns {*[]}
671
- */
672
- getContainerWidgets(widgetList = null) {
673
- return !!widgetList ? getAllContainerWidgets(widgetList) : getAllContainerWidgets(this.formJsonObj.widgetList)
674
- },
675
-
676
- /**
677
- * 增加外部组件引用,可通过getEC()方法获取外部组件,以便在VForm内部调用外部组件方法
678
- * @param componentName 外部组件名称
679
- * @param externalComponent 外部组件实例
680
- */
681
- addEC(componentName, externalComponent) {
682
- this.externalComponents[componentName] = externalComponent
683
- },
684
-
685
- /**
686
- * 判断外部组件是否可获取
687
- * @param componentName 外部组件名称
688
- * @returns {boolean}
689
- */
690
- hasEC(componentName) {
691
- return this.externalComponents.hasOwnProperty(componentName)
692
- },
693
-
694
- /**
695
- * 获取外部组件实例
696
- * @param componentName
697
- * @returns {*}
698
- */
699
- getEC(componentName) {
700
- return this.externalComponents[componentName]
701
- },
702
-
703
- /**
704
- * 获取globalDsv对象
705
- * @returns {*}
706
- */
707
- getGlobalDsv() {
708
- return this.globalDsv
709
- },
710
-
711
- //--------------------- 以上为组件支持外部调用的API方法 end ------------------//
712
-
713
- },
714
- }
715
- </script>
716
-
717
- <style lang="scss" scoped>
718
- .el-form ::v-deep .el-row {
719
- padding: 8px;
720
- }
721
- </style>