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,886 +0,0 @@
1
- <template>
2
- <div class="toolbar-container">
3
- <div class="left-toolbar">
4
- <el-button type="text" :disabled="undoDisabled" :title="i18nt('designer.toolbar.undoHint')" @click="undoHistory">
5
- <svg-icon icon-class="undo" /></el-button>
6
- <el-button type="text" :disabled="redoDisabled" :title="i18nt('designer.toolbar.redoHint')" @click="redoHistory">
7
- <svg-icon icon-class="redo" /></el-button>
8
- <el-button-group style="margin-left: 20px">
9
- <el-button :type="layoutType === 'PC' ? 'info': ''" @click="changeLayoutType('PC')">
10
- {{i18nt('designer.toolbar.pcLayout')}}</el-button>
11
- <el-button :type="layoutType === 'Pad' ? 'info': ''" @click="changeLayoutType('Pad')">
12
- {{i18nt('designer.toolbar.padLayout')}}</el-button>
13
- <el-button :type="layoutType === 'H5' ? 'info': ''" @click="changeLayoutType('H5')">
14
- {{i18nt('designer.toolbar.mobileLayout')}}</el-button>
15
- </el-button-group>
16
- <el-button type="" style="margin-left: 20px" :title="i18nt('designer.toolbar.nodeTreeHint')" @click="showNodeTreeDrawer">
17
- <svg-icon icon-class="node-tree" /></el-button>
18
- </div>
19
-
20
- <el-drawer :title="i18nt('designer.toolbar.nodeTreeTitle')" direction="ltr" :visible.sync="showNodeTreeDrawerFlag" :modal="false" :size="280"
21
- :destroy-on-close="true" class="node-tree-drawer">
22
- <el-tree ref="nodeTree" :data="nodeTreeData" node-key="id" default-expand-all highlight-current class="node-tree"
23
- icon-class="el-icon-arrow-right" @node-click="onNodeTreeClick"></el-tree>
24
- </el-drawer>
25
-
26
- <div class="right-toolbar" :style="{width: toolbarWidth + 'px'}">
27
- <div class="right-toolbar-con">
28
- <el-button v-if="showToolButton('clearDesignerButton')" type="text" @click="clearFormWidget">
29
- <i class="el-icon-delete" />{{i18nt('designer.toolbar.clear')}}</el-button>
30
- <el-button v-if="showToolButton('previewFormButton')" type="text" @click="previewForm">
31
- <i class="el-icon-view" />{{i18nt('designer.toolbar.preview')}}</el-button>
32
- <el-button v-if="showToolButton('importJsonButton')" type="text" @click="importJson">
33
- {{i18nt('designer.toolbar.importJson')}}</el-button>
34
- <el-button v-if="showToolButton('exportJsonButton')" type="text" @click="exportJson">
35
- {{i18nt('designer.toolbar.exportJson')}}</el-button>
36
- <el-button v-if="showToolButton('exportCodeButton')" type="text" @click="exportCode">
37
- {{i18nt('designer.toolbar.exportCode')}}</el-button>
38
- <el-button v-if="showToolButton('generateSFCButton')" type="text" @click="generateSFC">
39
- <svg-icon icon-class="vue-sfc" />{{i18nt('designer.toolbar.generateSFC')}}</el-button>
40
- <template v-for="(idx, slotName) in $slots">
41
- <slot :name="slotName"></slot>
42
- </template>
43
- </div>
44
- </div>
45
-
46
- <el-dialog :title="i18nt('designer.toolbar.preview')" :visible.sync="showPreviewDialogFlag" v-if="showPreviewDialogFlag"
47
- :show-close="true" :close-on-click-modal="false" :close-on-press-escape="false" center v-dialog-drag
48
- :destroy-on-close="true" :append-to-body="true" class="small-padding-dialog" width="75%"
49
- :fullscreen="(layoutType === 'H5') || (layoutType === 'Pad')">
50
- <div>
51
- <div class="form-render-wrapper" :class="[layoutType === 'H5' ? 'h5-layout' : (layoutType === 'Pad' ? 'pad-layout' : '')]">
52
- <VFormRender ref="preForm" :form-json="formJson" :form-data="testFormData" :preview-state="true"
53
- :option-data="testOptionData" :global-dsv="designerDsv"
54
- @appendButtonClick="testOnAppendButtonClick" @buttonClick="testOnButtonClick"
55
- @formChange="handleFormChange">
56
- <!--
57
- <div slot="testSlot">aaaa</div>
58
- -->
59
- </VFormRender>
60
- </div>
61
- </div>
62
- <code-editor v-model="testFunc" style="display: none"></code-editor>
63
- <div slot="footer" class="dialog-footer">
64
- <el-button type="primary" @click="getFormData">{{i18nt('designer.hint.getFormData')}}</el-button>
65
- <el-button type="primary" @click="resetForm">{{i18nt('designer.hint.resetForm')}}</el-button>
66
- <el-button type="primary" @click="setFormDisabled">{{i18nt('designer.hint.disableForm')}}</el-button>
67
- <el-button type="primary" @click="setFormEnabled">{{i18nt('designer.hint.enableForm')}}</el-button>
68
- <el-button type="" @click="showPreviewDialogFlag = false">{{i18nt('designer.hint.closePreview')}}</el-button>
69
- <el-button v-if="false" @click="printFormJson">PrintFormJson</el-button>
70
- <el-button v-if="false" @click="testValidate">TestValidate</el-button>
71
- <el-button v-if="false" @click="testSetFormData">TestSF</el-button>
72
- <el-button v-if="false" @click="testReloadOptionData">Test ROD</el-button>
73
- </div>
74
- </el-dialog>
75
-
76
- <el-dialog :title="i18nt('designer.toolbar.importJson')" :visible.sync="showImportJsonDialogFlag"
77
- v-if="showImportJsonDialogFlag" :show-close="true" class="small-padding-dialog" center append-to-body v-dialog-drag
78
- :close-on-click-modal="false" :close-on-press-escape="false" :destroy-on-close="true">
79
- <el-alert type="info" :title="i18nt('designer.hint.importJsonHint')" show-icon class="alert-padding"></el-alert>
80
- <code-editor :mode="'json'" :readonly="false" v-model="importTemplate"></code-editor>
81
- <div slot="footer" class="dialog-footer">
82
- <el-button type="primary" @click="doJsonImport">
83
- {{i18nt('designer.hint.import')}}</el-button>
84
- <el-button @click="showImportJsonDialogFlag = false">
85
- {{i18nt('designer.hint.cancel')}}</el-button>
86
- </div>
87
- </el-dialog>
88
-
89
- <el-dialog :title="i18nt('designer.toolbar.exportJson')" :visible.sync="showExportJsonDialogFlag"
90
- v-if="showExportJsonDialogFlag" :show-close="true" class="small-padding-dialog" center append-to-body v-dialog-drag
91
- :close-on-click-modal="false" :close-on-press-escape="false" :destroy-on-close="true">
92
- <code-editor :mode="'json'" :readonly="true" v-model="jsonContent"></code-editor>
93
- <div slot="footer" class="dialog-footer">
94
- <el-button type="primary" class="copy-json-btn" :data-clipboard-text="jsonRawContent" @click="copyFormJson">
95
- {{i18nt('designer.hint.copyJson')}}</el-button>
96
- <el-button @click="saveFormJson">{{i18nt('designer.hint.saveFormJson')}}</el-button>
97
- <el-button type="" @click="showExportJsonDialogFlag = false">
98
- {{i18nt('designer.hint.closePreview')}}</el-button>
99
- </div>
100
- </el-dialog>
101
-
102
- <el-dialog :title="i18nt('designer.toolbar.exportCode')" :visible.sync="showExportCodeDialogFlag"
103
- v-if="showExportCodeDialogFlag" :show-close="true" class="small-padding-dialog" center append-to-body v-dialog-drag
104
- width="65%" :close-on-click-modal="false" :close-on-press-escape="false" :destroy-on-close="true">
105
- <el-tabs type="border-card" class="no-box-shadow no-padding" v-model="activeCodeTab">
106
- <el-tab-pane label="Vue" name="vue">
107
- <code-editor :mode="'html'" :readonly="true" v-model="vueCode" :user-worker="false"></code-editor>
108
- </el-tab-pane>
109
- <el-tab-pane label="HTML" name="html">
110
- <code-editor :mode="'html'" :readonly="true" v-model="htmlCode" :user-worker="false"></code-editor>
111
- </el-tab-pane>
112
- </el-tabs>
113
- <div slot="footer" class="dialog-footer">
114
- <el-button type="primary" class="copy-vue-btn" :data-clipboard-text="vueCode" @click="copyVueCode">
115
- {{i18nt('designer.hint.copyVueCode')}}</el-button>
116
- <el-button type="primary" class="copy-html-btn" :data-clipboard-text="htmlCode" @click="copyHtmlCode">
117
- {{i18nt('designer.hint.copyHtmlCode')}}</el-button>
118
- <el-button @click="saveVueCode">{{i18nt('designer.hint.saveVueCode')}}</el-button>
119
- <el-button @click="saveHtmlCode">{{i18nt('designer.hint.saveHtmlCode')}}</el-button>
120
- <el-button type="" @click="showExportCodeDialogFlag = false">
121
- {{i18nt('designer.hint.closePreview')}}</el-button>
122
- </div>
123
- </el-dialog>
124
-
125
- <el-dialog :title="i18nt('designer.hint.exportFormData')" :visible.sync="showFormDataDialogFlag"
126
- v-if="showFormDataDialogFlag" :show-close="true" class="dialog-title-light-bg" center v-dialog-drag
127
- :close-on-click-modal="false" :close-on-press-escape="false" :destroy-on-close="true"
128
- :append-to-body="true">
129
- <div style="border: 1px solid #DCDFE6">
130
- <code-editor :mode="'json'" :readonly="true" v-model="formDataJson"></code-editor>
131
- </div>
132
- <div slot="footer" class="dialog-footer">
133
- <el-button type="primary" class="copy-form-data-json-btn" :data-clipboard-text="formDataRawJson" @click="copyFormDataJson">
134
- {{i18nt('designer.hint.copyFormData')}}</el-button>
135
- <el-button @click="saveFormData">{{i18nt('designer.hint.saveFormData')}}</el-button>
136
- <el-button type="" @click="showFormDataDialogFlag = false">
137
- {{i18nt('designer.hint.closePreview')}}</el-button>
138
- </div>
139
- </el-dialog>
140
-
141
- <el-dialog :title="i18nt('designer.toolbar.generateSFC')" :visible.sync="showExportSFCDialogFlag"
142
- v-if="showExportSFCDialogFlag" :show-close="true" class="small-padding-dialog" center append-to-body v-dialog-drag
143
- width="65%" :close-on-click-modal="false" :close-on-press-escape="false" :destroy-on-close="true">
144
- <el-tabs type="border-card" class="no-box-shadow no-padding" v-model="activeSFCTab">
145
- <el-tab-pane label="Vue2" name="vue2">
146
- <code-editor :mode="'html'" :readonly="true" v-model="sfcCode" :user-worker="false"></code-editor>
147
- </el-tab-pane>
148
- <el-tab-pane label="Vue3" name="vue3">
149
- <code-editor :mode="'html'" :readonly="true" v-model="sfcCodeV3" :user-worker="false"></code-editor>
150
- </el-tab-pane>
151
- </el-tabs>
152
- <div slot="footer" class="dialog-footer">
153
- <el-button type="primary" class="copy-vue2-sfc-btn" :data-clipboard-text="sfcCode" @click="copyV2SFC">
154
- {{i18nt('designer.hint.copyVue2SFC')}}</el-button>
155
- <el-button type="primary" class="copy-vue3-sfc-btn" :data-clipboard-text="sfcCodeV3" @click="copyV3SFC">
156
- {{i18nt('designer.hint.copyVue3SFC')}}</el-button>
157
- <el-button @click="saveV2SFC">{{i18nt('designer.hint.saveVue2SFC')}}</el-button>
158
- <el-button @click="saveV3SFC">{{i18nt('designer.hint.saveVue3SFC')}}</el-button>
159
- <el-button type="" @click="showExportSFCDialogFlag = false">
160
- {{i18nt('designer.hint.closePreview')}}</el-button>
161
- </div>
162
- </el-dialog>
163
- </div>
164
- </template>
165
-
166
- <script>
167
- import VFormRender from '@/components/form-render/index'
168
- import CodeEditor from '@/components/code-editor/index'
169
- import Clipboard from 'clipboard'
170
- import {
171
- deepClone,
172
- copyToClipboard,
173
- generateId,
174
- getQueryParam,
175
- traverseAllWidgets, addWindowResizeHandler
176
- } from "@/utils/util"
177
- import i18n from '@/utils/i18n'
178
- import {generateCode} from "@/utils/code-generator";
179
- import {genSFC} from "@/utils/sfc-generator";
180
- import loadBeautifier from "@/utils/beautifierLoader";
181
- import { saveAs } from 'file-saver'
182
- import SvgIcon from '@/components/svg-icon'
183
-
184
- export default {
185
- name: "ToolbarPanel",
186
- mixins: [i18n],
187
- components: {
188
- VFormRender,
189
- CodeEditor,
190
- Clipboard,
191
- SvgIcon,
192
- },
193
- props: {
194
- designer: Object,
195
- globalDsv: {
196
- type: Object,
197
- default: () => ({})
198
- },
199
- },
200
- inject: ['getDesignerConfig'],
201
- data() {
202
- return {
203
- designerConfig: this.getDesignerConfig(),
204
-
205
- toolbarWidth: 420,
206
- showPreviewDialogFlag: false,
207
- showImportJsonDialogFlag: false,
208
- showExportJsonDialogFlag: false,
209
- showExportCodeDialogFlag: false,
210
- showFormDataDialogFlag: false,
211
- showExportSFCDialogFlag: false,
212
- showNodeTreeDrawerFlag: false,
213
-
214
- nodeTreeData: [],
215
-
216
- testFunc: '',
217
- importTemplate: '',
218
- jsonContent: '',
219
- jsonRawContent: '',
220
-
221
- formDataJson: '',
222
- formDataRawJson: '',
223
-
224
- vueCode: '',
225
- htmlCode: '',
226
-
227
- sfcCode: '',
228
- sfcCodeV3: '',
229
-
230
- activeCodeTab: 'vue',
231
- activeSFCTab: 'vue2',
232
-
233
- testFormData: {
234
- // 'userName': '666888',
235
- // 'productItems': [
236
- // {'pName': 'iPhone12', 'pNum': 10},
237
- // {'pName': 'P50', 'pNum': 16},
238
- // ]
239
-
240
- 'select62173': 2,
241
- },
242
- testOptionData: {
243
- 'select62173': [
244
- {label: '01', value: 1},
245
- {label: '22', value: 2},
246
- {label: '333', value: 3},
247
- ],
248
-
249
- 'select001': [
250
- {label: '辣椒', value: 1},
251
- {label: '菠萝', value: 2},
252
- {label: '丑橘子', value: 3},
253
- ],
254
- },
255
-
256
- }
257
- },
258
- computed: {
259
- formJson() {
260
- return {
261
- // widgetList: this.designer.widgetList,
262
- // formConfig: this.designer.formConfig
263
-
264
- widgetList: deepClone(this.designer.widgetList),
265
- formConfig: deepClone(this.designer.formConfig)
266
- }
267
- },
268
-
269
- undoDisabled() {
270
- return !this.designer.undoEnabled()
271
- },
272
-
273
- redoDisabled() {
274
- return !this.designer.redoEnabled()
275
- },
276
-
277
- layoutType() {
278
- return this.designer.getLayoutType()
279
- },
280
-
281
- designerDsv() {
282
- return this.globalDsv
283
- }
284
-
285
- },
286
- watch: {
287
- 'designer.widgetList': {
288
- deep: true,
289
- handler(val) {
290
- //console.log('test-----', val)
291
- //this.refreshNodeTree()
292
- }
293
- },
294
-
295
-
296
- },
297
- mounted() {
298
- let maxTBWidth = this.designerConfig.toolbarMaxWidth || 420
299
- let minTBWidth = this.designerConfig.toolbarMinWidth || 300
300
- let newTBWidth = window.innerWidth - 260 - 300 - 320 - 80
301
- this.toolbarWidth = newTBWidth >= maxTBWidth ? maxTBWidth : (newTBWidth <= minTBWidth ? minTBWidth : newTBWidth)
302
- addWindowResizeHandler(() => {
303
- this.$nextTick(() => {
304
- let newTBWidth2 = window.innerWidth - 260 - 300 - 320 - 80
305
- this.toolbarWidth = newTBWidth2 >= maxTBWidth ? maxTBWidth : (newTBWidth2 <= minTBWidth ? minTBWidth : newTBWidth2)
306
- })
307
- })
308
- },
309
- methods: {
310
- showToolButton(configName) {
311
- if (this.designerConfig[configName] === undefined) {
312
- return true
313
- }
314
-
315
- return !!this.designerConfig[configName]
316
- },
317
-
318
- buildTreeNodeOfWidget(widget, treeNode) {
319
- let curNode = {
320
- id: widget.id,
321
- label: widget.options.label || widget.type,
322
- //selectable: true,
323
- }
324
- treeNode.push(curNode)
325
-
326
- if (widget.category === undefined) {
327
- return
328
- }
329
-
330
- curNode.children = []
331
- if (widget.type === 'grid') {
332
- widget.cols.map(col => {
333
- let colNode = {
334
- id: col.id,
335
- label: col.options.name || widget.type,
336
- children: []
337
- }
338
- curNode.children.push(colNode)
339
- col.widgetList.map(wChild => {
340
- this.buildTreeNodeOfWidget(wChild, colNode.children)
341
- })
342
- })
343
- } else if (widget.type === 'table') {
344
- //TODO: 需要考虑合并单元格!!
345
- widget.rows.map(row => {
346
- let rowNode = {
347
- id: row.id,
348
- label: 'table-row',
349
- selectable: false,
350
- children: [],
351
- }
352
- curNode.children.push(rowNode)
353
-
354
- row.cols.map(cell => {
355
- if (!!cell.merged) { //跳过合并单元格!!
356
- return
357
- }
358
-
359
- let rowChildren = rowNode.children
360
- let cellNode = {
361
- id: cell.id,
362
- label: 'table-cell',
363
- children: []
364
- }
365
- rowChildren.push(cellNode)
366
-
367
- cell.widgetList.map(wChild => {
368
- this.buildTreeNodeOfWidget(wChild, cellNode.children)
369
- })
370
- })
371
- })
372
- } else if (widget.type === 'tab') {
373
- widget.tabs.map(tab => {
374
- let tabNode = {
375
- id: tab.id,
376
- label: tab.options.name || widget.type,
377
- selectable: false,
378
- children: []
379
- }
380
- curNode.children.push(tabNode)
381
- tab.widgetList.map(wChild => {
382
- this.buildTreeNodeOfWidget(wChild, tabNode.children)
383
- })
384
- })
385
- } else if (widget.type === 'sub-form') {
386
- widget.widgetList.map(wChild => {
387
- this.buildTreeNodeOfWidget(wChild, curNode.children)
388
- })
389
- } else if (widget.category === 'container') { //自定义容器
390
- widget.widgetList.map(wChild => {
391
- this.buildTreeNodeOfWidget(wChild, curNode.children)
392
- })
393
- }
394
- },
395
-
396
- refreshNodeTree() {
397
- this.nodeTreeData.length = 0
398
- this.designer.widgetList.forEach(wItem => {
399
- this.buildTreeNodeOfWidget(wItem, this.nodeTreeData)
400
- })
401
- },
402
-
403
- showNodeTreeDrawer() {
404
- this.refreshNodeTree()
405
- this.showNodeTreeDrawerFlag = true
406
- this.$nextTick(() => {
407
- if (!!this.designer.selectedId) { //同步当前选中组件到节点树!!!
408
- this.$refs.nodeTree.setCurrentKey(this.designer.selectedId)
409
- }
410
- })
411
- },
412
-
413
- undoHistory() {
414
- this.designer.undoHistoryStep()
415
- },
416
-
417
- redoHistory() {
418
- this.designer.redoHistoryStep()
419
- },
420
-
421
- changeLayoutType(newType) {
422
- this.designer.changeLayoutType(newType)
423
- },
424
-
425
- clearFormWidget() {
426
- this.designer.clearDesigner()
427
- this.designer.formWidget.clearWidgetRefList()
428
- },
429
-
430
- previewForm() {
431
- this.showPreviewDialogFlag = true
432
- },
433
-
434
- saveAsFile(fileContent, defaultFileName) {
435
- this.$prompt(this.i18nt('designer.hint.fileNameForSave'), this.i18nt('designer.hint.saveFileTitle'), {
436
- inputValue: defaultFileName,
437
- closeOnClickModal: false,
438
- inputPlaceholder: this.i18nt('designer.hint.fileNameInputPlaceholder')
439
- }).then(({ value }) => {
440
- if (!value) {
441
- value = defaultFileName
442
- }
443
-
444
- if (getQueryParam('vscode') == 1) {
445
- this.vsSaveFile(value, fileContent)
446
- return
447
- }
448
-
449
- const fileBlob = new Blob([fileContent], { type: 'text/plain;charset=utf-8' })
450
- saveAs(fileBlob ,value)
451
- }).catch(() => {
452
- //
453
- })
454
- },
455
-
456
- vsSaveFile(fileName, fileContent) {
457
- const msgObj = {
458
- cmd: 'writeFile',
459
- data: {
460
- fileName,
461
- code: fileContent
462
- }
463
- }
464
- window.parent.postMessage(msgObj, '*')
465
- },
466
-
467
- importJson() {
468
- this.importTemplate = JSON.stringify(this.designer.getImportTemplate(), null, ' ')
469
- this.showImportJsonDialogFlag = true
470
- },
471
-
472
- doJsonImport() {
473
- try {
474
- let importObj = JSON.parse(this.importTemplate)
475
- this.designer.loadFormJson(importObj)
476
-
477
- this.showImportJsonDialogFlag = false
478
- this.$message.success(this.i18nt('designer.hint.importJsonSuccess'))
479
-
480
- this.designer.emitHistoryChange()
481
-
482
- this.designer.emitEvent('form-json-imported', [])
483
- } catch(ex) {
484
- this.$message.error(ex + '')
485
- }
486
- },
487
-
488
- exportJson() {
489
- let widgetList = deepClone(this.designer.widgetList)
490
- let formConfig = deepClone(this.designer.formConfig)
491
- this.jsonContent = JSON.stringify({widgetList, formConfig}, null, ' ')
492
- this.jsonRawContent = JSON.stringify({widgetList, formConfig})
493
- this.showExportJsonDialogFlag = true
494
- },
495
-
496
- copyFormJson(e) {
497
- copyToClipboard(this.jsonRawContent, e,
498
- this.$message,
499
- this.i18nt('designer.hint.copyJsonSuccess'),
500
- this.i18nt('designer.hint.copyJsonFail')
501
- )
502
- },
503
-
504
- saveFormJson() {
505
- this.saveAsFile(this.jsonContent, `vform${generateId()}.json`)
506
- },
507
-
508
- exportCode() {
509
- this.vueCode = generateCode(this.formJson)
510
- this.htmlCode = generateCode(this.formJson, 'html')
511
- this.showExportCodeDialogFlag = true
512
- },
513
-
514
- copyVueCode(e) {
515
- copyToClipboard(this.vueCode, e,
516
- this.$message,
517
- this.i18nt('designer.hint.copyVueCodeSuccess'),
518
- this.i18nt('designer.hint.copyVueCodeFail')
519
- )
520
- },
521
-
522
- copyHtmlCode(e) {
523
- copyToClipboard(this.htmlCode, e,
524
- this.$message,
525
- this.i18nt('designer.hint.copyHtmlCodeSuccess'),
526
- this.i18nt('designer.hint.copyHtmlCodeFail')
527
- )
528
- },
529
-
530
- saveVueCode() {
531
- this.saveAsFile(this.vueCode, `vform${generateId()}.vue`)
532
- },
533
-
534
- saveHtmlCode() {
535
- this.saveAsFile(this.htmlCode, `vform${generateId()}.html`)
536
- },
537
-
538
- generateSFC() {
539
- loadBeautifier(beautifier => {
540
- this.sfcCode = genSFC(this.designer.formConfig, this.designer.widgetList, beautifier)
541
- this.sfcCodeV3 = genSFC(this.designer.formConfig, this.designer.widgetList, beautifier, true)
542
- this.showExportSFCDialogFlag = true
543
- })
544
- },
545
-
546
- copyV2SFC(e) {
547
- copyToClipboard(this.sfcCode, e,
548
- this.$message,
549
- this.i18nt('designer.hint.copySFCSuccess'),
550
- this.i18nt('designer.hint.copySFCFail')
551
- )
552
- },
553
-
554
- copyV3SFC(e) {
555
- copyToClipboard(this.sfcCodeV3, e,
556
- this.$message,
557
- this.i18nt('designer.hint.copySFCSuccess'),
558
- this.i18nt('designer.hint.copySFCFail')
559
- )
560
- },
561
-
562
- saveV2SFC() {
563
- this.saveAsFile(this.sfcCode, `vformV2-${generateId()}.vue`)
564
- },
565
-
566
- saveV3SFC() {
567
- this.saveAsFile(this.sfcCodeV3, `vformV3-${generateId()}.vue`)
568
- },
569
-
570
- getFormData() {
571
- this.$refs['preForm'].getFormData().then(formData => {
572
- this.formDataJson = JSON.stringify(formData, null, ' ')
573
- this.formDataRawJson = JSON.stringify(formData)
574
-
575
- this.showFormDataDialogFlag = true
576
- }).catch(error => {
577
- this.$message.error(error)
578
- })
579
- },
580
-
581
- copyFormDataJson(e) {
582
- copyToClipboard(this.formDataRawJson, e,
583
- this.$message,
584
- this.i18nt('designer.hint.copyJsonSuccess'),
585
- this.i18nt('designer.hint.copyJsonFail')
586
- )
587
- },
588
-
589
- saveFormData() {
590
- this.saveAsFile(this.htmlCode, `formData${generateId()}.json`)
591
- },
592
-
593
- resetForm() {
594
- this.$refs['preForm'].resetForm()
595
- },
596
-
597
- setFormDisabled() {
598
- this.$refs['preForm'].disableForm()
599
- },
600
-
601
- setFormEnabled() {
602
- this.$refs['preForm'].enableForm()
603
- },
604
-
605
- printFormJson() {
606
- let tmpFS = {
607
- widgetList: deepClone(this.designer.widgetList),
608
- formConfig: deepClone(this.designer.formConfig)
609
- }
610
-
611
- console.log(tmpFS)
612
- },
613
-
614
- testValidate() {
615
- console.log('test===', this.$refs['preForm'].validateForm())
616
- },
617
-
618
- testSetFormData() {
619
- // let fData = {
620
- // 'fuTest': [
621
- // {
622
- // name: '上传文件测试.xlsx',
623
- // url: 'https://www.vform666.com/123.xlsx'
624
- // }
625
- // ]
626
- // }
627
- // this.$refs['preForm'].setFormData(fData)
628
-
629
- let nfData = {
630
- "checkbox45524": [
631
- 1,
632
- 2
633
- ]
634
- }
635
- this.$refs['preForm'].setFormData(nfData)
636
- },
637
-
638
- testReloadOptionData() {
639
- this.testOptionData['select001'].push({
640
- label: 'aaa',
641
- value: 888
642
- })
643
-
644
- //this.$refs.preForm.reloadOptionData()
645
- this.$refs.preForm.reloadOptionData('select001')
646
- },
647
-
648
- handleFormChange(fieldName, newValue, oldValue, formModel) {
649
- /*
650
- console.log('---formChange start---')
651
- console.log('fieldName', fieldName)
652
- console.log('newValue', newValue)
653
- console.log('oldValue', oldValue)
654
- console.log('formModel', formModel)
655
- console.log('---formChange end---')
656
- */
657
- },
658
-
659
- testOnAppendButtonClick(clickedWidget) {
660
- console.log('test', clickedWidget)
661
- },
662
-
663
- testOnButtonClick(button) {
664
- console.log('test', button)
665
- },
666
-
667
- findWidgetById(wId) {
668
- let foundW = null
669
- traverseAllWidgets(this.designer.widgetList, (w) => {
670
- if (w.id === wId) {
671
- foundW = w
672
- }
673
- })
674
-
675
- return foundW
676
- },
677
-
678
- onNodeTreeClick(nodeData, node, nodeEl) {
679
- //console.log('test', JSON.stringify(nodeData))
680
-
681
- if ((nodeData.selectable !== undefined) && !nodeData.selectable) {
682
- this.$message.info(this.i18nt('designer.hint.currentNodeCannotBeSelected'))
683
- } else {
684
- const selectedId = nodeData.id
685
- const foundW = this.findWidgetById(selectedId)
686
- if (!!foundW) {
687
- this.designer.setSelected(foundW)
688
- }
689
- }
690
- },
691
-
692
- }
693
- }
694
- </script>
695
-
696
- <style lang="scss" scoped>
697
- div.toolbar-container {
698
- //min-width: 728px; /* 解决工具按钮栏换行的问题 */
699
- /* 上一行css有问题,当窗口宽度不足时会把按钮挤出到右边的属性设置区,弃之! */
700
- }
701
-
702
- .left-toolbar {
703
- float: left;
704
- font-size: 16px;
705
- }
706
-
707
- .right-toolbar {
708
- float: right;
709
- //width: 420px;
710
- text-align: right;
711
- overflow: hidden;
712
-
713
- .right-toolbar-con {
714
- text-align: left;
715
- width: 600px;
716
- }
717
-
718
- ::v-deep .el-button--text {
719
- font-size: 14px !important;
720
- }
721
- }
722
-
723
- .el-button i {
724
- margin-right: 3px;
725
- }
726
-
727
- .small-padding-dialog {
728
- ::v-deep .el-dialog__header {
729
- //padding-top: 3px;
730
- //padding-bottom: 3px;
731
- background: #f1f2f3;
732
- }
733
-
734
- ::v-deep .el-dialog__body {
735
- padding: 12px 15px 12px 15px;
736
-
737
- .el-alert.alert-padding {
738
- padding: 0 10px;
739
- }
740
- }
741
-
742
- ::v-deep .ace-container {
743
- border: 1px solid #DCDFE6;
744
- }
745
- }
746
-
747
- .dialog-title-light-bg {
748
- ::v-deep .el-dialog__header {
749
- background: #f1f2f3;
750
- }
751
- }
752
-
753
- .no-box-shadow {
754
- box-shadow: none;
755
- }
756
-
757
- .no-padding.el-tabs--border-card {
758
- ::v-deep .el-tabs__content {
759
- padding: 0;
760
- }
761
- }
762
-
763
- .form-render-wrapper {
764
- //height: calc(100vh - 142px);
765
- //all: revert !important; /* 防止表单继承el-dialog等外部样式,未生效,原因不明?? */
766
- }
767
-
768
- .form-render-wrapper.h5-layout {
769
- margin: 0 auto;
770
- width: 420px;
771
- border-radius: 15px;
772
- //border-width: 10px;
773
- box-shadow: 0 0 1px 10px #495060;
774
- height: calc(100vh - 142px);
775
- overflow-y: auto;
776
- overflow-x: hidden;
777
- }
778
-
779
- .form-render-wrapper.pad-layout {
780
- margin: 0 auto;
781
- width: 960px;
782
- border-radius: 15px;
783
- //border-width: 10px;
784
- box-shadow: 0 0 1px 10px #495060;
785
- height: calc(100vh - 142px);
786
- overflow-y: auto;
787
- overflow-x: hidden;
788
- }
789
-
790
- .node-tree-drawer ::v-deep {
791
- .el-drawer {
792
- padding: 10px;
793
- overflow: auto;
794
- }
795
-
796
- .el-drawer__header {
797
- margin-bottom: 12px;
798
- padding: 5px 5px 0;
799
- }
800
-
801
- .el-drawer__body {
802
- padding-left: 5px;
803
- }
804
- }
805
-
806
- /*.node-tree-scroll-bar {*/
807
- /* height: 100%;*/
808
- /* overflow: auto;*/
809
- /*}*/
810
-
811
- .node-tree ::v-deep {
812
- .el-tree > .el-tree-node:after {
813
- border-top: none;
814
- }
815
- .el-tree-node {
816
- position: relative;
817
- padding-left: 12px;
818
- }
819
-
820
- .el-tree-node__content {
821
- padding-left: 0 !important;
822
- }
823
-
824
- .el-tree-node__expand-icon.is-leaf{
825
- display: none;
826
- }
827
- .el-tree-node__children {
828
- padding-left: 12px;
829
- overflow: visible !important; /* 加入此行让el-tree宽度自动撑开,超出宽度el-draw自动出现水平滚动条! */
830
- }
831
-
832
- .el-tree-node :last-child:before {
833
- height: 38px;
834
- }
835
-
836
- .el-tree > .el-tree-node:before {
837
- border-left: none;
838
- }
839
-
840
- .el-tree > .el-tree-node:after {
841
- border-top: none;
842
- }
843
-
844
- .el-tree-node:before {
845
- content: "";
846
- left: -4px;
847
- position: absolute;
848
- right: auto;
849
- border-width: 1px;
850
- }
851
-
852
- .el-tree-node:after {
853
- content: "";
854
- left: -4px;
855
- position: absolute;
856
- right: auto;
857
- border-width: 1px;
858
- }
859
-
860
- .el-tree-node:before {
861
- border-left: 1px dashed #4386c6;
862
- bottom: 0px;
863
- height: 100%;
864
- top: -10px;
865
- width: 1px;
866
- }
867
-
868
- .el-tree-node:after {
869
- border-top: 1px dashed #4386c6;
870
- height: 20px;
871
- top: 12px;
872
- width: 16px;
873
- }
874
-
875
- .el-tree-node.is-current > .el-tree-node__content {
876
- background: #c2d6ea !important;
877
- }
878
-
879
- .el-tree-node__expand-icon {
880
- margin-left: -3px;
881
- padding: 6px 6px 6px 0px;
882
- font-size: 16px;
883
- }
884
-
885
- }
886
- </style>