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
package/src/utils/util.js DELETED
@@ -1,376 +0,0 @@
1
- import Clipboard from 'clipboard'
2
-
3
- export function isNull(value) {
4
- return (value === null) || (value === undefined);
5
- }
6
-
7
- export function isNotNull(value) {
8
- return (value !== null) && (value !== undefined);
9
- }
10
-
11
- export function isEmptyStr(str) {
12
- //return (str === undefined) || (!str) || (!/[^\s]/.test(str));
13
- return (str === undefined) || (!str && (str !== 0) && (str !== '0')) || (!/[^\s]/.test(str));
14
- }
15
-
16
- export const generateId = function() {
17
- return Math.floor(Math.random() * 100000 + Math.random() * 20000 + Math.random() * 5000);
18
- };
19
-
20
- export const deepClone = function (origin) {
21
- if (origin === undefined) {
22
- return undefined
23
- }
24
-
25
- return JSON.parse(JSON.stringify(origin))
26
- }
27
-
28
- export const overwriteObj = function(obj1, obj2) { /* 浅拷贝对象属性,obj2覆盖obj1 */
29
- // for (let prop in obj2) {
30
- // if (obj2.hasOwnProperty(prop)) {
31
- // obj1[prop] = obj2[prop]
32
- // }
33
- // }
34
-
35
- Object.keys(obj2).forEach(prop => {
36
- obj1[prop] = obj2[prop]
37
- })
38
- }
39
-
40
- /* 用Function对象实现eval函数功能 */
41
- export const evalFn = function (fn, DSV = null, VFR = null) {
42
- let f = new Function('DSV', 'VFR', 'return ' + fn);
43
- return f(DSV, VFR);
44
- };
45
-
46
- export const addWindowResizeHandler = function (handler) {
47
- let oldHandler = window.onresize
48
- if (typeof window.onresize != 'function') {
49
- window.onresize = handler
50
- } else {
51
- window.onresize = function () {
52
- oldHandler()
53
- handler()
54
- }
55
- }
56
- }
57
-
58
- const createStyleSheet = function() {
59
- let head = document.head || document.getElementsByTagName('head')[0];
60
- let style = document.createElement('style');
61
- style.type = 'text/css';
62
- head.appendChild(style);
63
- return style.sheet;
64
- }
65
-
66
- export const insertCustomCssToHead = function (cssCode, formId = '') {
67
- let head = document.getElementsByTagName('head')[0]
68
- let oldStyle = document.getElementById('vform-custom-css')
69
- if (!!oldStyle) {
70
- head.removeChild(oldStyle) //先清除后插入!!
71
- }
72
- if (!!formId) {
73
- oldStyle = document.getElementById('vform-custom-css' + '-' + formId)
74
- !!oldStyle && head.removeChild(oldStyle) //先清除后插入!!
75
- }
76
-
77
- let newStyle = document.createElement('style')
78
- newStyle.type = 'text/css'
79
- newStyle.rel = 'stylesheet'
80
- newStyle.id = !!formId ? 'vform-custom-css' + '-' + formId : 'vform-custom-css'
81
- try {
82
- newStyle.appendChild(document.createTextNode(cssCode))
83
- } catch(ex) {
84
- newStyle.styleSheet.cssText = cssCode
85
- }
86
-
87
- head.appendChild(newStyle)
88
- }
89
-
90
- export const insertGlobalFunctionsToHtml = function (functionsCode, formId = '') {
91
- let bodyEle = document.getElementsByTagName('body')[0]
92
- let oldScriptEle = document.getElementById('v_form_global_functions')
93
- !!oldScriptEle && bodyEle.removeChild(oldScriptEle) //先清除后插入!!
94
- if (!!formId) {
95
- oldScriptEle = document.getElementById('v_form_global_functions' + '-' + formId)
96
- !!oldScriptEle && bodyEle.removeChild(oldScriptEle) //先清除后插入!!
97
- }
98
-
99
- let newScriptEle = document.createElement('script')
100
- newScriptEle.id = !!formId ? 'v_form_global_functions' + '-' + formId : 'v_form_global_functions'
101
- newScriptEle.type = 'text/javascript'
102
- newScriptEle.innerHTML = functionsCode
103
- bodyEle.appendChild(newScriptEle)
104
- }
105
-
106
- export const optionExists = function(optionsObj, optionName) {
107
- if (!optionsObj) {
108
- return false
109
- }
110
-
111
- return Object.keys(optionsObj).indexOf(optionName) > -1
112
- }
113
-
114
- export const loadRemoteScript = function(srcPath, callback) { /*加载远程js,加载成功后执行回调函数*/
115
- let sid = encodeURIComponent(srcPath)
116
- let oldScriptEle = document.getElementById(sid)
117
-
118
- if (!oldScriptEle) {
119
- let s = document.createElement('script')
120
- s.src = srcPath
121
- s.id = sid
122
- document.body.appendChild(s)
123
-
124
- s.onload = s.onreadystatechange = function (_, isAbort) { /* 借鉴自ace.js */
125
- if (isAbort || !s.readyState || s.readyState === "loaded" || s.readyState === "complete") {
126
- s = s.onload = s.onreadystatechange = null
127
- if (!isAbort) {
128
- callback()
129
- }
130
- }
131
- }
132
- }
133
- }
134
-
135
- export function traverseFieldWidgets(widgetList, handler, parent = null) {
136
- if (!widgetList) {
137
- return
138
- }
139
-
140
- widgetList.forEach(w => {
141
- if (w.formItemFlag) {
142
- handler(w, parent)
143
- } else if (w.type === 'grid') {
144
- w.cols.forEach(col => {
145
- traverseFieldWidgets(col.widgetList, handler, w)
146
- })
147
- } else if (w.type === 'table') {
148
- w.rows.forEach(row => {
149
- row.cols.forEach(cell => {
150
- traverseFieldWidgets(cell.widgetList, handler, w)
151
- })
152
- })
153
- } else if (w.type === 'tab') {
154
- w.tabs.forEach(tab => {
155
- traverseFieldWidgets(tab.widgetList, handler, w)
156
- })
157
- } else if (w.type === 'sub-form') {
158
- traverseFieldWidgets(w.widgetList, handler, w)
159
- } else if (w.category === 'container') { //自定义容器
160
- traverseFieldWidgets(w.widgetList, handler, w)
161
- }
162
- })
163
- }
164
-
165
- export function traverseContainerWidgets(widgetList, handler) {
166
- if (!widgetList) {
167
- return
168
- }
169
-
170
- widgetList.forEach(w => {
171
- if (w.category === 'container') {
172
- handler(w)
173
- }
174
-
175
- if (w.type === 'grid') {
176
- w.cols.forEach(col => {
177
- traverseContainerWidgets(col.widgetList, handler)
178
- })
179
- } else if (w.type === 'table') {
180
- w.rows.forEach(row => {
181
- row.cols.forEach(cell => {
182
- traverseContainerWidgets(cell.widgetList, handler)
183
- })
184
- })
185
- } else if (w.type === 'tab') {
186
- w.tabs.forEach(tab => {
187
- traverseContainerWidgets(tab.widgetList, handler)
188
- })
189
- } else if (w.type === 'sub-form') {
190
- traverseContainerWidgets(w.widgetList, handler)
191
- } else if (w.category === 'container') { //自定义容器
192
- traverseContainerWidgets(w.widgetList, handler)
193
- }
194
- })
195
- }
196
-
197
- export function traverseAllWidgets(widgetList, handler) {
198
- if (!widgetList) {
199
- return
200
- }
201
-
202
- widgetList.forEach(w => {
203
- handler(w)
204
-
205
- if (w.type === 'grid') {
206
- w.cols.forEach(col => {
207
- handler(col)
208
- traverseAllWidgets(col.widgetList, handler)
209
- })
210
- } else if (w.type === 'table') {
211
- w.rows.forEach(row => {
212
- row.cols.forEach(cell => {
213
- handler(cell)
214
- traverseAllWidgets(cell.widgetList, handler)
215
- })
216
- })
217
- } else if (w.type === 'tab') {
218
- w.tabs.forEach(tab => {
219
- traverseAllWidgets(tab.widgetList, handler)
220
- })
221
- } else if (w.type === 'sub-form') {
222
- traverseAllWidgets(w.widgetList, handler)
223
- } else if (w.category === 'container') { //自定义容器
224
- traverseAllWidgets(w.widgetList, handler)
225
- }
226
- })
227
- }
228
-
229
- function handleWidgetForTraverse(widget, handler) {
230
- if (!!widget.category) {
231
- traverseFieldWidgetsOfContainer(widget, handler)
232
- } else if (widget.formItemFlag) {
233
- handler(widget)
234
- }
235
- }
236
-
237
- /**
238
- * 遍历容器内的字段组件
239
- * @param con
240
- * @param handler
241
- */
242
- export function traverseFieldWidgetsOfContainer(con, handler) {
243
- if (con.type === 'grid') {
244
- con.cols.forEach(col => {
245
- col.widgetList.forEach(cw => {
246
- handleWidgetForTraverse(cw, handler)
247
- })
248
- })
249
- } else if (con.type === 'table') {
250
- con.rows.forEach(row => {
251
- row.cols.forEach(cell => {
252
- cell.widgetList.forEach(cw => {
253
- handleWidgetForTraverse(cw, handler)
254
- })
255
- })
256
- })
257
- } else if (con.type === 'tab') {
258
- con.tabs.forEach(tab => {
259
- tab.widgetList.forEach(cw => {
260
- handleWidgetForTraverse(cw, handler)
261
- })
262
- })
263
- } else if (con.type === 'sub-form') {
264
- con.widgetList.forEach(cw => {
265
- handleWidgetForTraverse(cw, handler)
266
- })
267
- } else if (con.category === 'container') { //自定义容器
268
- con.widgetList.forEach(cw => {
269
- handleWidgetForTraverse(cw, handler)
270
- })
271
- }
272
- }
273
-
274
- /**
275
- * 获取所有字段组件
276
- * @param widgetList
277
- * @returns {[]}
278
- */
279
- export function getAllFieldWidgets(widgetList) {
280
- if (!widgetList) {
281
- return []
282
- }
283
-
284
- let result = []
285
- let handlerFn = (w) => {
286
- result.push({
287
- type: w.type,
288
- name: w.options.name,
289
- field: w
290
- })
291
- }
292
- traverseFieldWidgets(widgetList, handlerFn)
293
-
294
- return result
295
- }
296
-
297
- /**
298
- * 获取所有容器组件
299
- * @param widgetList
300
- * @returns {[]}
301
- */
302
- export function getAllContainerWidgets(widgetList) {
303
- if (!widgetList) {
304
- return []
305
- }
306
-
307
- let result = []
308
- let handlerFn = (w) => {
309
- result.push({
310
- type: w.type,
311
- name: w.options.name,
312
- container: w
313
- })
314
- }
315
- traverseContainerWidgets(widgetList, handlerFn)
316
-
317
- return result
318
- }
319
-
320
- export function copyToClipboard(content, clickEvent, $message, successMsg, errorMsg) {
321
- const clipboard = new Clipboard(clickEvent.target, {
322
- text: () => content
323
- })
324
-
325
- clipboard.on('success', () => {
326
- $message.success(successMsg)
327
- clipboard.destroy()
328
- })
329
-
330
- clipboard.on('error', () => {
331
- $message.error(errorMsg)
332
- clipboard.destroy()
333
- })
334
-
335
- clipboard.onClick(clickEvent)
336
- }
337
-
338
- export function getQueryParam(variable) {
339
- let query = window.location.search.substring(1);
340
- let vars = query.split("&")
341
- for (let i=0; i<vars.length; i++) {
342
- let pair = vars[i].split("=")
343
- if(pair[0] == variable) {
344
- return pair[1]
345
- }
346
- }
347
-
348
- return undefined;
349
- }
350
-
351
- export function getDefaultFormConfig() {
352
- return {
353
- modelName: 'formData',
354
- refName: 'vForm',
355
- rulesName: 'rules',
356
- labelWidth: 80,
357
- labelPosition: 'left',
358
- size: '',
359
- labelAlign: 'label-left-align',
360
- cssCode: '',
361
- customClass: [],
362
- functions: '',
363
- layoutType: 'PC',
364
-
365
- onFormCreated: '',
366
- onFormMounted: '',
367
- onFormDataChange: '',
368
- }
369
- }
370
-
371
- export function buildDefaultFormJson() {
372
- return {
373
- widgetList: [],
374
- formConfig: deepClone( getDefaultFormConfig() )
375
- }
376
- }
@@ -1,127 +0,0 @@
1
- import {isEmptyStr, isNull} from "./util";
2
-
3
- export const getRegExp = function (validatorName) {
4
- const commonRegExp = {
5
- number: '/^[-]?\\d+(\\.\\d+)?$/',
6
- letter: '/^[A-Za-z]+$/',
7
- letterAndNumber: '/^[A-Za-z0-9]+$/',
8
- mobilePhone: '/^[1][3-9][0-9]{9}$/',
9
- letterStartNumberIncluded: '/^[A-Za-z]+[A-Za-z\\d]*$/',
10
- noChinese: '/^[^\u4e00-\u9fa5]+$/',
11
- chinese: '/^[\u4e00-\u9fa5]+$/',
12
- email: '/^([-_A-Za-z0-9.]+)@([_A-Za-z0-9]+\\.)+[A-Za-z0-9]{2,3}$/',
13
- url: '/^([hH][tT]{2}[pP]:\\/\\/|[hH][tT]{2}[pP][sS]:\\/\\/)(([A-Za-z0-9-~]+)\\.)+([A-Za-z0-9-~\\/])+$/',
14
- }
15
-
16
- return commonRegExp[validatorName]
17
- }
18
-
19
- const validateFn = function (validatorName, rule, value, callback, defaultErrorMsg) {
20
- //空值不校验
21
- if (isNull(value) || (value.length <= 0)) {
22
- callback()
23
- return
24
- }
25
-
26
- const reg = eval(getRegExp(validatorName))
27
-
28
- if (!reg.test(value)) {
29
- let errTxt = rule.errorMsg || defaultErrorMsg
30
- callback(new Error(errTxt))
31
- } else {
32
- callback()
33
- }
34
- }
35
-
36
- const FormValidators = {
37
-
38
- /* 数字 */
39
- number(rule, value, callback) {
40
- validateFn('number', rule, value, callback, '[' + rule.label + ']包含非数字字符')
41
- },
42
-
43
- /* 字母 */
44
- letter(rule, value, callback) {
45
- validateFn('letter', rule, value, callback, '[' + rule.label + ']包含非字母字符')
46
- },
47
-
48
- /* 字母和数字 */
49
- letterAndNumber(rule, value, callback) {
50
- validateFn('letterAndNumber', rule, value, callback, '[' + rule.label + ']只能输入字母或数字')
51
- },
52
-
53
- /* 手机号码 */
54
- mobilePhone(rule, value, callback) {
55
- validateFn('mobilePhone', rule, value, callback, '[' + rule.label + ']手机号码格式有误')
56
- },
57
-
58
- /* 禁止空白字符开头 */
59
- noBlankStart(rule, value, callback) {
60
- //暂未实现
61
- },
62
-
63
- /* 禁止空白字符结尾 */
64
- noBlankEnd(rule, value, callback) {
65
- //暂未实现
66
- },
67
-
68
- /* 字母开头,仅可包含数字 */
69
- letterStartNumberIncluded(rule, value, callback) {
70
- validateFn('letterStartNumberIncluded', rule, value, callback, '[' + rule.label + ']必须以字母开头,可包含数字')
71
- },
72
-
73
- /* 禁止中文输入 */
74
- noChinese(rule, value, callback) {
75
- validateFn('noChinese', rule, value, callback, '[' + rule.label + ']不可输入中文字符')
76
- },
77
-
78
- /* 必须中文输入 */
79
- chinese(rule, value, callback) {
80
- validateFn('chinese', rule, value, callback, '[' + rule.label + ']只能输入中文字符')
81
- },
82
-
83
- /* 电子邮箱 */
84
- email(rule, value, callback) {
85
- validateFn('email', rule, value, callback, '[' + rule.label + ']邮箱格式有误')
86
- },
87
-
88
- /* URL网址 */
89
- url(rule, value, callback) {
90
- validateFn('url', rule, value, callback, '[' + rule.label + ']URL格式有误')
91
- },
92
-
93
- /*测试
94
- test(rule, value, callback, errorMsg) {
95
- //空值不校验
96
- if (isNull(value) || (value.length <= 0)) {
97
- callback()
98
- return
99
- }
100
-
101
- if (value < 100) {
102
- callback(new Error('[' + rule.label + ']不能小于100'))
103
- } else {
104
- callback()
105
- }
106
- },
107
- */
108
-
109
- regExp(rule, value, callback) {
110
- //空值不校验
111
- if (isNull(value) || (value.length <= 0)) {
112
- callback()
113
- return
114
- }
115
-
116
- const pattern = eval(rule.regExp)
117
- if (!pattern.test(value)) {
118
- let errTxt = rule.errorMsg || '[' + rule.label + ']invalid value'
119
- callback(new Error(errTxt))
120
- } else {
121
- callback()
122
- }
123
- },
124
-
125
- }
126
-
127
- export default FormValidators
@@ -1,144 +0,0 @@
1
- import {isNotNull, traverseContainerWidgets, traverseFieldWidgets} from "@/utils/util";
2
- import {translate} from "@/utils/i18n";
3
- import FormValidators, {getRegExp} from "@/utils/validators";
4
-
5
- export function buildDefaultValueListFn(formConfig, widgetList, resultList) {
6
- return function(fieldWidget) {
7
- const fop = fieldWidget.options
8
- const fd = fop.defaultValue
9
- if (isNotNull(fd)) {
10
- resultList.push(`${fop.name}: ${JSON.stringify(fd)},`)
11
- } else {
12
- resultList.push(`${fop.name}: null,`)
13
- }
14
- }
15
- }
16
-
17
- export function buildRulesListFn(formConfig, widgetList, resultList) {
18
- return function(fieldWidget) {
19
- const fop = fieldWidget.options
20
- let fieldRules = []
21
- if (!!fop.required) {
22
- fieldRules.push(`{
23
- required: true,
24
- message: '${translate('render.hint.fieldRequired')}',
25
- }`)
26
- }
27
-
28
- if (!!fop.validation) {
29
- let vldName = fop.validation
30
- if (!!FormValidators[vldName]) {
31
- fieldRules.push(`{
32
- pattern: ${eval( getRegExp(vldName) )},
33
- trigger: ['blur', 'change'],
34
- message: '${fop.validationHint}'
35
- }`)
36
- } else {
37
- fieldRules.push(`{
38
- pattern: '${eval(vldName)}',
39
- trigger: ['blur', 'change'],
40
- message: '${fop.validationHint}'
41
- }`)
42
- }
43
- }
44
-
45
- //TODO: 自定义校验函数
46
-
47
- fieldRules.length > 0 && resultList.push(`${fop.name}: [${fieldRules.join(',')}],`)
48
- }
49
- }
50
-
51
- export function buildFieldOptionsFn(formConfig, widgetList, resultList) {
52
- return function(fieldWidget) {
53
- const fop = fieldWidget.options
54
- const ft = fieldWidget.type
55
- if ((ft === 'radio') || (ft === 'checkbox') || (ft === 'select') || (ft === 'cascader')) {
56
- resultList.push(`${fop.name}Options: ${JSON.stringify(fop.optionItems)},`)
57
- }
58
- }
59
- }
60
-
61
- export function buildUploadDataFn(formConfig, widgetList, resultList) {
62
- return function(fieldWidget) {
63
- const fop = fieldWidget.options
64
- const ft = fieldWidget.type
65
- if ((ft === 'picture-upload') || (ft === 'file-upload')) {
66
- resultList.push(`${fop.name}FileList: [],`)
67
- resultList.push(`${fop.name}UploadHeaders: {},`)
68
- resultList.push(`${fop.name}UploadData: {},`)
69
- }
70
- }
71
- }
72
-
73
- export function buildActiveTabs(formConfig, widgetList) {
74
- let resultList = []
75
- const handlerFn = function (cw) {
76
- const cop = cw.options
77
- const ct = cw.type
78
- if (ct === 'tab') {
79
- cw.tabs.length > 0 && resultList.push(`'${cop.name}ActiveTab': '${cw.tabs[0].options.name}',`)
80
- }
81
- }
82
- traverseContainerWidgets(widgetList, handlerFn)
83
-
84
- return resultList
85
- }
86
-
87
- export const genVue2JS = function (formConfig, widgetList) {
88
- let defaultValueList = []
89
- let rulesList = []
90
- let fieldOptions = []
91
- let uploadData = []
92
- traverseFieldWidgets(widgetList, (widget) => {
93
- buildDefaultValueListFn(formConfig, widgetList, defaultValueList)(widget)
94
- buildRulesListFn(formConfig, widgetList, rulesList)(widget)
95
- buildFieldOptionsFn(formConfig, widgetList, fieldOptions)(widget)
96
- buildUploadDataFn(formConfig, widgetList, uploadData)(widget)
97
- })
98
-
99
- const activeTabs = buildActiveTabs(formConfig, widgetList)
100
-
101
- const v2JSTemplate =
102
- ` export default {
103
- components: {},
104
- props: {},
105
- data() {
106
- return {
107
- ${formConfig.modelName}: {
108
- ${defaultValueList.join('\n')}
109
- },
110
-
111
- ${formConfig.rulesName}: {
112
- ${rulesList.join('\n')}
113
- },
114
-
115
- ${activeTabs.join('\n')}
116
-
117
- ${fieldOptions.join('\n')}
118
-
119
- ${uploadData.join('\n')}
120
- }
121
- },
122
- computed: {},
123
- watch: {},
124
- created() {
125
- },
126
- mounted() {
127
- },
128
- methods: {
129
- submitForm() {
130
- this.$refs['vForm'].validate(valid => {
131
- if (!valid) return
132
-
133
- //TODO: 提交表单
134
- })
135
- },
136
-
137
- resetForm() {
138
- this.$refs['vForm'].resetFields()
139
- }
140
- }
141
- }`
142
-
143
- return v2JSTemplate
144
- }
@@ -1,70 +0,0 @@
1
- import {
2
- buildActiveTabs,
3
- buildDefaultValueListFn,
4
- buildFieldOptionsFn,
5
- buildRulesListFn, buildUploadDataFn
6
- } from "@/utils/vue2js-generator";
7
- import {traverseFieldWidgets} from "@/utils/util";
8
-
9
- export const genVue3JS = function (formConfig, widgetList) {
10
- let defaultValueList = []
11
- let rulesList = []
12
- let fieldOptions = []
13
- let uploadData = []
14
- traverseFieldWidgets(widgetList, (widget) => {
15
- buildDefaultValueListFn(formConfig, widgetList, defaultValueList)(widget)
16
- buildRulesListFn(formConfig, widgetList, rulesList)(widget)
17
- buildFieldOptionsFn(formConfig, widgetList, fieldOptions)(widget)
18
- buildUploadDataFn(formConfig, widgetList, uploadData)(widget)
19
- })
20
-
21
- const activeTabs = buildActiveTabs(formConfig, widgetList)
22
-
23
- const v3JSTemplate =
24
- ` import { defineComponent, toRefs, reactive, getCurrentInstance } from 'vue'
25
-
26
- export default defineComponent({
27
- components: {},
28
- props: {},
29
- setup() {
30
- const state = reactive({
31
- ${formConfig.modelName}: {
32
- ${defaultValueList.join('\n')}
33
- },
34
-
35
- ${formConfig.rulesName}: {
36
- ${rulesList.join('\n')}
37
- },
38
-
39
- ${activeTabs.join('\n')}
40
-
41
- ${fieldOptions.join('\n')}
42
-
43
- ${uploadData.join('\n')}
44
- })
45
-
46
- const instance = getCurrentInstance()
47
-
48
- const submitForm = () => {
49
- instance.proxy.$refs['vForm'].validate(valid => {
50
- if (!valid) return
51
-
52
- //TODO: 提交表单
53
- })
54
- }
55
-
56
- const resetForm = () => {
57
- instance.proxy.$refs['vForm'].resetFields()
58
- }
59
-
60
- return {
61
- ...toRefs(state),
62
- submitForm,
63
- resetForm
64
- }
65
- }
66
- })`
67
-
68
- return v3JSTemplate
69
- }
70
-