skhj-variant 2.1.12

Sign up to get free protection for your applications and to get access to all the features.
Files changed (346) hide show
  1. package/.idea/inspectionProfiles/Project_Default.xml +6 -0
  2. package/.idea/modules.xml +8 -0
  3. package/.idea/package.iml +12 -0
  4. package/README.md +180 -0
  5. package/babel.config.js +5 -0
  6. package/dist/build/css/app.9b74af27.css +1 -0
  7. package/dist/build/css/chunk-vendors.a16c4353.css +1 -0
  8. package/dist/build/favicon.ico +0 -0
  9. package/dist/build/fonts/element-icons.535877f5.woff +0 -0
  10. package/dist/build/fonts/element-icons.732389de.ttf +0 -0
  11. package/dist/build/img/t1.21b2c158.png +0 -0
  12. package/dist/build/img/t2.6991670f.png +0 -0
  13. package/dist/build/img/t3.49724600.png +0 -0
  14. package/dist/build/img/t4.4acb1808.png +0 -0
  15. package/dist/build/img/t5.e5e1948c.png +0 -0
  16. package/dist/build/img/t6.40836551.png +0 -0
  17. package/dist/build/img/t7.94cf1cc9.png +0 -0
  18. package/dist/build/img/t8.9291e9c1.png +0 -0
  19. package/dist/build/index.html +1 -0
  20. package/dist/build/js/app.dbcf7751.js +1 -0
  21. package/dist/build/js/chunk-1d66e3dd.7d669272.js +23 -0
  22. package/dist/build/js/chunk-vendors.be32fc27.js +24 -0
  23. package/dist/build/report.html +53 -0
  24. package/dist/lib/VFormDesigner.common-report.html +53 -0
  25. package/dist/lib/VFormDesigner.common.1.js +14583 -0
  26. package/dist/lib/VFormDesigner.common.1.js.map +1 -0
  27. package/dist/lib/VFormDesigner.common.js +71232 -0
  28. package/dist/lib/VFormDesigner.common.js.map +1 -0
  29. package/dist/lib/VFormDesigner.css +1 -0
  30. package/dist/lib/VFormDesigner.umd-report.html +53 -0
  31. package/dist/lib/VFormDesigner.umd.1.js +14583 -0
  32. package/dist/lib/VFormDesigner.umd.1.js.map +1 -0
  33. package/dist/lib/VFormDesigner.umd.js +71242 -0
  34. package/dist/lib/VFormDesigner.umd.js.map +1 -0
  35. package/dist/lib/VFormDesigner.umd.min-report.html +53 -0
  36. package/dist/lib/VFormDesigner.umd.min.1.js +23 -0
  37. package/dist/lib/VFormDesigner.umd.min.js +19 -0
  38. package/dist/lib/demo.html +10 -0
  39. package/dist/lib/img/t1.21b2c158.png +0 -0
  40. package/dist/lib/img/t2.6991670f.png +0 -0
  41. package/dist/lib/img/t3.49724600.png +0 -0
  42. package/dist/lib/img/t4.4acb1808.png +0 -0
  43. package/dist/lib/img/t5.e5e1948c.png +0 -0
  44. package/dist/lib/img/t6.40836551.png +0 -0
  45. package/dist/lib/img/t7.94cf1cc9.png +0 -0
  46. package/dist/lib/img/t8.9291e9c1.png +0 -0
  47. package/dist/lib-render/VFormRender.common-report.html +53 -0
  48. package/dist/lib-render/VFormRender.common.1.js +14583 -0
  49. package/dist/lib-render/VFormRender.common.1.js.map +1 -0
  50. package/dist/lib-render/VFormRender.common.js +32421 -0
  51. package/dist/lib-render/VFormRender.common.js.map +1 -0
  52. package/dist/lib-render/VFormRender.css +1 -0
  53. package/dist/lib-render/VFormRender.umd-report.html +53 -0
  54. package/dist/lib-render/VFormRender.umd.1.js +14583 -0
  55. package/dist/lib-render/VFormRender.umd.1.js.map +1 -0
  56. package/dist/lib-render/VFormRender.umd.js +32431 -0
  57. package/dist/lib-render/VFormRender.umd.js.map +1 -0
  58. package/dist/lib-render/VFormRender.umd.min-report.html +53 -0
  59. package/dist/lib-render/VFormRender.umd.min.1.js +23 -0
  60. package/dist/lib-render/VFormRender.umd.min.js +15 -0
  61. package/dist/lib-render/demo.html +10 -0
  62. package/index_template/index_dev.html +19 -0
  63. package/index_template/index_prod.html +28 -0
  64. package/index_template/vform_demo.gif +0 -0
  65. package/install-render.js +29 -0
  66. package/install.js +41 -0
  67. package/jsconfig.json +10 -0
  68. package/license.txt +8 -0
  69. package/package.json +58 -0
  70. package/public/favicon.ico +0 -0
  71. package/public/index.html +28 -0
  72. package/src/App.vue +22 -0
  73. package/src/assets/ft-images/t1.png +0 -0
  74. package/src/assets/ft-images/t2.png +0 -0
  75. package/src/assets/ft-images/t3.png +0 -0
  76. package/src/assets/ft-images/t4.png +0 -0
  77. package/src/assets/ft-images/t5.png +0 -0
  78. package/src/assets/ft-images/t6.png +0 -0
  79. package/src/assets/ft-images/t7.png +0 -0
  80. package/src/assets/ft-images/t8.png +0 -0
  81. package/src/assets/style.scss +92 -0
  82. package/src/assets/vform-logo.png +0 -0
  83. package/src/components/code-editor/index.vue +130 -0
  84. package/src/components/form-designer/designer.js +926 -0
  85. package/src/components/form-designer/form-widget/container-widget/container-wrapper.vue +107 -0
  86. package/src/components/form-designer/form-widget/container-widget/containerMixin.js +85 -0
  87. package/src/components/form-designer/form-widget/container-widget/grid-col-widget.vue +310 -0
  88. package/src/components/form-designer/form-widget/container-widget/grid-widget.vue +89 -0
  89. package/src/components/form-designer/form-widget/container-widget/index.js +24 -0
  90. package/src/components/form-designer/form-widget/container-widget/tab-widget.vue +119 -0
  91. package/src/components/form-designer/form-widget/container-widget/table-cell-widget.vue +341 -0
  92. package/src/components/form-designer/form-widget/container-widget/table-widget.vue +111 -0
  93. package/src/components/form-designer/form-widget/field-widget/button-widget.vue +87 -0
  94. package/src/components/form-designer/form-widget/field-widget/cascader-widget.vue +104 -0
  95. package/src/components/form-designer/form-widget/field-widget/checkbox-widget.vue +105 -0
  96. package/src/components/form-designer/form-widget/field-widget/color-widget.vue +99 -0
  97. package/src/components/form-designer/form-widget/field-widget/date-range-widget.vue +104 -0
  98. package/src/components/form-designer/form-widget/field-widget/date-widget.vue +103 -0
  99. package/src/components/form-designer/form-widget/field-widget/divider-widget.vue +83 -0
  100. package/src/components/form-designer/form-widget/field-widget/fieldMixin.js +535 -0
  101. package/src/components/form-designer/form-widget/field-widget/file-upload-widget.vue +271 -0
  102. package/src/components/form-designer/form-widget/field-widget/form-item-wrapper.vue +331 -0
  103. package/src/components/form-designer/form-widget/field-widget/html-text-widget.vue +82 -0
  104. package/src/components/form-designer/form-widget/field-widget/index.js +10 -0
  105. package/src/components/form-designer/form-widget/field-widget/input-widget.vue +112 -0
  106. package/src/components/form-designer/form-widget/field-widget/number-widget.vue +103 -0
  107. package/src/components/form-designer/form-widget/field-widget/picture-upload-widget.vue +226 -0
  108. package/src/components/form-designer/form-widget/field-widget/radio-widget.vue +105 -0
  109. package/src/components/form-designer/form-widget/field-widget/rate-widget.vue +102 -0
  110. package/src/components/form-designer/form-widget/field-widget/rich-editor-widget.vue +122 -0
  111. package/src/components/form-designer/form-widget/field-widget/select-widget.vue +115 -0
  112. package/src/components/form-designer/form-widget/field-widget/slider-widget.vue +100 -0
  113. package/src/components/form-designer/form-widget/field-widget/static-content-wrapper.vue +189 -0
  114. package/src/components/form-designer/form-widget/field-widget/static-text-widget.vue +82 -0
  115. package/src/components/form-designer/form-widget/field-widget/switch-widget.vue +101 -0
  116. package/src/components/form-designer/form-widget/field-widget/textarea-widget.vue +99 -0
  117. package/src/components/form-designer/form-widget/field-widget/time-range-widget.vue +104 -0
  118. package/src/components/form-designer/form-widget/field-widget/time-widget.vue +103 -0
  119. package/src/components/form-designer/form-widget/index.vue +260 -0
  120. package/src/components/form-designer/index.vue +448 -0
  121. package/src/components/form-designer/setting-panel/form-setting.vue +324 -0
  122. package/src/components/form-designer/setting-panel/index.vue +328 -0
  123. package/src/components/form-designer/setting-panel/option-items-setting.vue +234 -0
  124. package/src/components/form-designer/setting-panel/property-editor/allowCreate-editor.vue +24 -0
  125. package/src/components/form-designer/setting-panel/property-editor/appendButton-editor.vue +28 -0
  126. package/src/components/form-designer/setting-panel/property-editor/appendButtonDisabled-editor.vue +23 -0
  127. package/src/components/form-designer/setting-panel/property-editor/automaticDropdown-editor.vue +23 -0
  128. package/src/components/form-designer/setting-panel/property-editor/border-editor.vue +23 -0
  129. package/src/components/form-designer/setting-panel/property-editor/buttonIcon-editor.vue +23 -0
  130. package/src/components/form-designer/setting-panel/property-editor/buttonStyle-editor.vue +23 -0
  131. package/src/components/form-designer/setting-panel/property-editor/clearable-editor.vue +23 -0
  132. package/src/components/form-designer/setting-panel/property-editor/columnWidth-editor.vue +40 -0
  133. package/src/components/form-designer/setting-panel/property-editor/container-grid/colHeight-editor.vue +28 -0
  134. package/src/components/form-designer/setting-panel/property-editor/container-grid/gutter-editor.vue +81 -0
  135. package/src/components/form-designer/setting-panel/property-editor/container-grid-col/grid-col-offset-editor.vue +24 -0
  136. package/src/components/form-designer/setting-panel/property-editor/container-grid-col/grid-col-pull-editor.vue +24 -0
  137. package/src/components/form-designer/setting-panel/property-editor/container-grid-col/grid-col-push-editor.vue +24 -0
  138. package/src/components/form-designer/setting-panel/property-editor/container-grid-col/grid-col-responsive-editor.vue +23 -0
  139. package/src/components/form-designer/setting-panel/property-editor/container-grid-col/grid-col-span-editor.vue +48 -0
  140. package/src/components/form-designer/setting-panel/property-editor/container-sub-form/showBlankRow-editor.vue +23 -0
  141. package/src/components/form-designer/setting-panel/property-editor/container-sub-form/showRowNumber-editor.vue +23 -0
  142. package/src/components/form-designer/setting-panel/property-editor/container-sub-form/sub-form-labelAlign-editor.vue +36 -0
  143. package/src/components/form-designer/setting-panel/property-editor/container-tab/tab-customClass-editor.vue +119 -0
  144. package/src/components/form-designer/setting-panel/property-editor/container-table-cell/cellHeight-editor.vue +23 -0
  145. package/src/components/form-designer/setting-panel/property-editor/container-table-cell/cellWidth-editor.vue +23 -0
  146. package/src/components/form-designer/setting-panel/property-editor/customClass-editor.vue +40 -0
  147. package/src/components/form-designer/setting-panel/property-editor/defaultValue-editor.vue +25 -0
  148. package/src/components/form-designer/setting-panel/property-editor/disabled-editor.vue +23 -0
  149. package/src/components/form-designer/setting-panel/property-editor/displayStyle-editor.vue +26 -0
  150. package/src/components/form-designer/setting-panel/property-editor/editable-editor.vue +24 -0
  151. package/src/components/form-designer/setting-panel/property-editor/endPlaceholder-editor.vue +23 -0
  152. package/src/components/form-designer/setting-panel/property-editor/event-handler/eventMixin.js +12 -0
  153. package/src/components/form-designer/setting-panel/property-editor/event-handler/onBeforeUpload-editor.vue +30 -0
  154. package/src/components/form-designer/setting-panel/property-editor/event-handler/onBlur-editor.vue +30 -0
  155. package/src/components/form-designer/setting-panel/property-editor/event-handler/onChange-editor.vue +30 -0
  156. package/src/components/form-designer/setting-panel/property-editor/event-handler/onClick-editor.vue +30 -0
  157. package/src/components/form-designer/setting-panel/property-editor/event-handler/onCreated-editor.vue +31 -0
  158. package/src/components/form-designer/setting-panel/property-editor/event-handler/onFocus-editor.vue +30 -0
  159. package/src/components/form-designer/setting-panel/property-editor/event-handler/onInput-editor.vue +30 -0
  160. package/src/components/form-designer/setting-panel/property-editor/event-handler/onMounted-editor.vue +30 -0
  161. package/src/components/form-designer/setting-panel/property-editor/event-handler/onRemoteQuery-editor.vue +30 -0
  162. package/src/components/form-designer/setting-panel/property-editor/event-handler/onSubFormRowAdd-editor.vue +30 -0
  163. package/src/components/form-designer/setting-panel/property-editor/event-handler/onSubFormRowChange-editor.vue +30 -0
  164. package/src/components/form-designer/setting-panel/property-editor/event-handler/onSubFormRowDelete-editor.vue +30 -0
  165. package/src/components/form-designer/setting-panel/property-editor/event-handler/onSubFormRowInsert-editor.vue +30 -0
  166. package/src/components/form-designer/setting-panel/property-editor/event-handler/onUploadError-editor.vue +30 -0
  167. package/src/components/form-designer/setting-panel/property-editor/event-handler/onUploadSuccess-editor.vue +30 -0
  168. package/src/components/form-designer/setting-panel/property-editor/event-handler/onValidate-editor.vue +30 -0
  169. package/src/components/form-designer/setting-panel/property-editor/field-button/button-type-editor.vue +32 -0
  170. package/src/components/form-designer/setting-panel/property-editor/field-button/circle-editor.vue +23 -0
  171. package/src/components/form-designer/setting-panel/property-editor/field-button/icon-editor.vue +23 -0
  172. package/src/components/form-designer/setting-panel/property-editor/field-button/plain-editor.vue +24 -0
  173. package/src/components/form-designer/setting-panel/property-editor/field-button/round-editor.vue +23 -0
  174. package/src/components/form-designer/setting-panel/property-editor/field-color/color-defaultValue-editor.vue +23 -0
  175. package/src/components/form-designer/setting-panel/property-editor/field-date/date-defaultValue-editor.vue +24 -0
  176. package/src/components/form-designer/setting-panel/property-editor/field-date/date-format-editor.vue +30 -0
  177. package/src/components/form-designer/setting-panel/property-editor/field-date/date-type-editor.vue +30 -0
  178. package/src/components/form-designer/setting-panel/property-editor/field-date/date-valueFormat-editor.vue +26 -0
  179. package/src/components/form-designer/setting-panel/property-editor/field-date-range/date-range-defaultValue-editor.vue +24 -0
  180. package/src/components/form-designer/setting-panel/property-editor/field-date-range/date-range-format-editor.vue +30 -0
  181. package/src/components/form-designer/setting-panel/property-editor/field-date-range/date-range-type-editor.vue +27 -0
  182. package/src/components/form-designer/setting-panel/property-editor/field-date-range/date-range-valueFormat-editor.vue +26 -0
  183. package/src/components/form-designer/setting-panel/property-editor/field-divider/contentPosition-editor.vue +27 -0
  184. package/src/components/form-designer/setting-panel/property-editor/field-file-upload/file-upload-fileTypes-editor.vue +44 -0
  185. package/src/components/form-designer/setting-panel/property-editor/field-html-text/htmlContent-editor.vue +23 -0
  186. package/src/components/form-designer/setting-panel/property-editor/field-number/controlsPosition-editor.vue +27 -0
  187. package/src/components/form-designer/setting-panel/property-editor/field-picture-upload/picture-upload-fileTypes-editor.vue +43 -0
  188. package/src/components/form-designer/setting-panel/property-editor/field-rate/allowHalf-editor.vue +23 -0
  189. package/src/components/form-designer/setting-panel/property-editor/field-rate/highThreshold-editor.vue +24 -0
  190. package/src/components/form-designer/setting-panel/property-editor/field-rate/lowThreshold-editor.vue +24 -0
  191. package/src/components/form-designer/setting-panel/property-editor/field-rate/rate-defaultValue-editor.vue +26 -0
  192. package/src/components/form-designer/setting-panel/property-editor/field-rate/rate-max-editor.vue +25 -0
  193. package/src/components/form-designer/setting-panel/property-editor/field-rate/showScore-editor.vue +23 -0
  194. package/src/components/form-designer/setting-panel/property-editor/field-rate/showText-editor.vue +23 -0
  195. package/src/components/form-designer/setting-panel/property-editor/field-slider/range-editor.vue +23 -0
  196. package/src/components/form-designer/setting-panel/property-editor/field-slider/showStops-editor.vue +23 -0
  197. package/src/components/form-designer/setting-panel/property-editor/field-slider/vertical-editor.vue +23 -0
  198. package/src/components/form-designer/setting-panel/property-editor/field-static-text/textContent-editor.vue +23 -0
  199. package/src/components/form-designer/setting-panel/property-editor/field-switch/activeColor-editor.vue +23 -0
  200. package/src/components/form-designer/setting-panel/property-editor/field-switch/activeText-editor.vue +23 -0
  201. package/src/components/form-designer/setting-panel/property-editor/field-switch/inactiveColor-editor.vue +23 -0
  202. package/src/components/form-designer/setting-panel/property-editor/field-switch/inactiveText-editor.vue +23 -0
  203. package/src/components/form-designer/setting-panel/property-editor/field-switch/switch-defaultValue-editor.vue +25 -0
  204. package/src/components/form-designer/setting-panel/property-editor/field-switch/switchWidth-editor.vue +23 -0
  205. package/src/components/form-designer/setting-panel/property-editor/field-time/time-defaultValue-editor.vue +24 -0
  206. package/src/components/form-designer/setting-panel/property-editor/field-time/time-format-editor.vue +27 -0
  207. package/src/components/form-designer/setting-panel/property-editor/field-time-range/time-range-defaultValue-editor.vue +24 -0
  208. package/src/components/form-designer/setting-panel/property-editor/field-time-range/time-range-format-editor.vue +27 -0
  209. package/src/components/form-designer/setting-panel/property-editor/fileMaxSize-editor.vue +23 -0
  210. package/src/components/form-designer/setting-panel/property-editor/filterable-editor.vue +23 -0
  211. package/src/components/form-designer/setting-panel/property-editor/hidden-editor.vue +23 -0
  212. package/src/components/form-designer/setting-panel/property-editor/index.js +10 -0
  213. package/src/components/form-designer/setting-panel/property-editor/label-editor.vue +30 -0
  214. package/src/components/form-designer/setting-panel/property-editor/labelAlign-editor.vue +42 -0
  215. package/src/components/form-designer/setting-panel/property-editor/labelHidden-editor.vue +23 -0
  216. package/src/components/form-designer/setting-panel/property-editor/labelIconClass-editor.vue +28 -0
  217. package/src/components/form-designer/setting-panel/property-editor/labelIconPosition-editor.vue +37 -0
  218. package/src/components/form-designer/setting-panel/property-editor/labelTooltip-editor.vue +23 -0
  219. package/src/components/form-designer/setting-panel/property-editor/labelWidth-editor.vue +25 -0
  220. package/src/components/form-designer/setting-panel/property-editor/limit-editor.vue +24 -0
  221. package/src/components/form-designer/setting-panel/property-editor/max-editor.vue +39 -0
  222. package/src/components/form-designer/setting-panel/property-editor/maxLength-editor.vue +40 -0
  223. package/src/components/form-designer/setting-panel/property-editor/min-editor.vue +40 -0
  224. package/src/components/form-designer/setting-panel/property-editor/minLength-editor.vue +41 -0
  225. package/src/components/form-designer/setting-panel/property-editor/multiple-editor.vue +24 -0
  226. package/src/components/form-designer/setting-panel/property-editor/multipleLimit-editor.vue +24 -0
  227. package/src/components/form-designer/setting-panel/property-editor/multipleSelect-editor.vue +24 -0
  228. package/src/components/form-designer/setting-panel/property-editor/name-editor.vue +80 -0
  229. package/src/components/form-designer/setting-panel/property-editor/optionItems-editor.vue +28 -0
  230. package/src/components/form-designer/setting-panel/property-editor/placeholder-editor.vue +24 -0
  231. package/src/components/form-designer/setting-panel/property-editor/precision-editor.vue +23 -0
  232. package/src/components/form-designer/setting-panel/property-editor/prefixIcon-editor.vue +23 -0
  233. package/src/components/form-designer/setting-panel/property-editor/propertyMixin.js +47 -0
  234. package/src/components/form-designer/setting-panel/property-editor/readonly-editor.vue +23 -0
  235. package/src/components/form-designer/setting-panel/property-editor/remote-editor.vue +25 -0
  236. package/src/components/form-designer/setting-panel/property-editor/required-editor.vue +23 -0
  237. package/src/components/form-designer/setting-panel/property-editor/rows-editor.vue +24 -0
  238. package/src/components/form-designer/setting-panel/property-editor/showFileList-editor.vue +23 -0
  239. package/src/components/form-designer/setting-panel/property-editor/showPassword-editor.vue +24 -0
  240. package/src/components/form-designer/setting-panel/property-editor/showWordLimit-editor.vue +23 -0
  241. package/src/components/form-designer/setting-panel/property-editor/size-editor.vue +38 -0
  242. package/src/components/form-designer/setting-panel/property-editor/startPlaceholder-editor.vue +23 -0
  243. package/src/components/form-designer/setting-panel/property-editor/step-editor.vue +23 -0
  244. package/src/components/form-designer/setting-panel/property-editor/suffixIcon-editor.vue +23 -0
  245. package/src/components/form-designer/setting-panel/property-editor/type-editor.vue +33 -0
  246. package/src/components/form-designer/setting-panel/property-editor/uploadTip-editor.vue +24 -0
  247. package/src/components/form-designer/setting-panel/property-editor/uploadURL-editor.vue +28 -0
  248. package/src/components/form-designer/setting-panel/property-editor/validation-editor.vue +48 -0
  249. package/src/components/form-designer/setting-panel/property-editor/validationHint-editor.vue +23 -0
  250. package/src/components/form-designer/setting-panel/property-editor/withCredentials-editor.vue +23 -0
  251. package/src/components/form-designer/setting-panel/property-editor-factory.js +173 -0
  252. package/src/components/form-designer/setting-panel/propertyRegister.js +198 -0
  253. package/src/components/form-designer/toolbar-panel/index.vue +1070 -0
  254. package/src/components/form-designer/widget-panel/index.vue +530 -0
  255. package/src/components/form-designer/widget-panel/templatesConfig.js +58 -0
  256. package/src/components/form-designer/widget-panel/widgetsConfig.js +966 -0
  257. package/src/components/form-render/container-item/container-item-wrapper.vue +34 -0
  258. package/src/components/form-render/container-item/containerItemMixin.js +136 -0
  259. package/src/components/form-render/container-item/grid-col-item.vue +115 -0
  260. package/src/components/form-render/container-item/grid-item.vue +54 -0
  261. package/src/components/form-render/container-item/index.js +24 -0
  262. package/src/components/form-render/container-item/sub-form-item.vue +405 -0
  263. package/src/components/form-render/container-item/tab-item.vue +89 -0
  264. package/src/components/form-render/container-item/table-cell-item.vue +61 -0
  265. package/src/components/form-render/container-item/table-item.vue +65 -0
  266. package/src/components/form-render/index.vue +712 -0
  267. package/src/components/form-render/refMixin.js +22 -0
  268. package/src/components/svg-icon/index.vue +49 -0
  269. package/src/components/v-table/index.vue +106 -0
  270. package/src/extension/extension-helper.js +23 -0
  271. package/src/extension/extension-loader.js +112 -0
  272. package/src/extension/samples/alert/alert-widget.vue +72 -0
  273. package/src/extension/samples/card/card-item.vue +90 -0
  274. package/src/extension/samples/card/card-widget.vue +119 -0
  275. package/src/extension/samples/extension-schema.js +36 -0
  276. package/src/extension/samples/extension-sfc-generator.js +50 -0
  277. package/src/iconfont/iconfont.css +29 -0
  278. package/src/iconfont/iconfont.eot +0 -0
  279. package/src/iconfont/iconfont.js +1 -0
  280. package/src/iconfont/iconfont.json +37 -0
  281. package/src/iconfont/iconfont.svg +35 -0
  282. package/src/iconfont/iconfont.ttf +0 -0
  283. package/src/iconfont/iconfont.woff +0 -0
  284. package/src/iconfont/iconfont.woff2 +0 -0
  285. package/src/icons/index.js +9 -0
  286. package/src/icons/svg/alert.svg +1 -0
  287. package/src/icons/svg/button.svg +1 -0
  288. package/src/icons/svg/card.svg +1 -0
  289. package/src/icons/svg/cascader-field.svg +1 -0
  290. package/src/icons/svg/checkbox-field.svg +1 -0
  291. package/src/icons/svg/color-field.svg +1 -0
  292. package/src/icons/svg/custom-component.svg +1 -0
  293. package/src/icons/svg/data-table.svg +1 -0
  294. package/src/icons/svg/date-field.svg +1 -0
  295. package/src/icons/svg/date-range-field.svg +1 -0
  296. package/src/icons/svg/divider.svg +1 -0
  297. package/src/icons/svg/document.svg +1 -0
  298. package/src/icons/svg/drag.svg +1 -0
  299. package/src/icons/svg/file-upload-field.svg +1 -0
  300. package/src/icons/svg/github.svg +1 -0
  301. package/src/icons/svg/grid.svg +1 -0
  302. package/src/icons/svg/html-text.svg +1 -0
  303. package/src/icons/svg/node-tree.svg +1 -0
  304. package/src/icons/svg/number-field.svg +1 -0
  305. package/src/icons/svg/picture-upload-field.svg +1 -0
  306. package/src/icons/svg/radio-field.svg +1 -0
  307. package/src/icons/svg/rate-field.svg +1 -0
  308. package/src/icons/svg/redo.svg +1 -0
  309. package/src/icons/svg/rich-editor-field.svg +1 -0
  310. package/src/icons/svg/section.svg +1 -0
  311. package/src/icons/svg/select-field.svg +1 -0
  312. package/src/icons/svg/slider-field.svg +1 -0
  313. package/src/icons/svg/slot-component.svg +1 -0
  314. package/src/icons/svg/static-text.svg +1 -0
  315. package/src/icons/svg/sub-form.svg +1 -0
  316. package/src/icons/svg/switch-field.svg +1 -0
  317. package/src/icons/svg/tab.svg +1 -0
  318. package/src/icons/svg/table.svg +1 -0
  319. package/src/icons/svg/text-field.svg +1 -0
  320. package/src/icons/svg/textarea-field.svg +1 -0
  321. package/src/icons/svg/time-field.svg +1 -0
  322. package/src/icons/svg/time-range-field.svg +1 -0
  323. package/src/icons/svg/undo.svg +1 -0
  324. package/src/icons/svg/vue-sfc.svg +1 -0
  325. package/src/index.js +41 -0
  326. package/src/lang/en-US.js +321 -0
  327. package/src/lang/en-US_extension.js +26 -0
  328. package/src/lang/en-US_render.js +38 -0
  329. package/src/lang/zh-CN.js +321 -0
  330. package/src/lang/zh-CN_extension.js +26 -0
  331. package/src/lang/zh-CN_render.js +38 -0
  332. package/src/main.js +29 -0
  333. package/src/styles/global.scss +103 -0
  334. package/src/styles/index.scss +15 -0
  335. package/src/utils/beautifierLoader.js +77 -0
  336. package/src/utils/code-generator.js +91 -0
  337. package/src/utils/config.js +19 -0
  338. package/src/utils/debug-console.js +7 -0
  339. package/src/utils/directive.js +74 -0
  340. package/src/utils/i18n.js +70 -0
  341. package/src/utils/sfc-generator.js +583 -0
  342. package/src/utils/util.js +232 -0
  343. package/src/utils/validators.js +127 -0
  344. package/src/utils/vue2js-generator.js +144 -0
  345. package/src/utils/vue3js-generator.js +70 -0
  346. package/vue.config.js +92 -0
@@ -0,0 +1,119 @@
1
+ <!--
2
+ /**
3
+ * author: vformAdmin
4
+ * email: vdpadmin@163.com
5
+ * website: https://www.vform666.com
6
+ * date: 2021.08.18
7
+ * remark: 如果要分发VForm源码,需在本文件顶部保留此文件头信息!!
8
+ */
9
+ -->
10
+
11
+ <template>
12
+ <container-wrapper :designer="designer" :widget="widget" :parent-widget="parentWidget" :parent-list="parentList"
13
+ :index-of-parent-list="indexOfParentList">
14
+
15
+ <div :key="widget.id" class="tab-container"
16
+ :class="{'selected': selected}" @click.stop="selectWidget(widget)">
17
+ <el-tabs :type="widget.displayType" v-model="activeTab" @tab-click="onTabClick">
18
+
19
+ <el-tab-pane v-for="(tab, index) in widget.tabs" :key="index" :label="tab.options.label" :name="tab.options.name"
20
+ @click.native.stop="selectWidget(widget)">
21
+ <draggable :list="tab.widgetList" v-bind="{group:'dragGroup', ghostClass: 'ghost',animation: 200}"
22
+ handle=".drag-handler"
23
+ @add="(evt) => onContainerDragAdd(evt, tab.widgetList)"
24
+ @update="onContainerDragUpdate" :move="checkContainerMove">
25
+ <transition-group name="fade" tag="div" class="form-widget-list">
26
+ <template v-for="(subWidget, swIdx) in tab.widgetList">
27
+ <template v-if="'container' === subWidget.category">
28
+ <component :is="subWidget.type + '-widget'" :widget="subWidget" :designer="designer" :key="subWidget.id" :parent-list="tab.widgetList"
29
+ :index-of-parent-list="swIdx" :parent-widget="widget"></component>
30
+ </template>
31
+ <template v-else>
32
+ <component :is="subWidget.type + '-widget'" :field="subWidget" :designer="designer" :key="subWidget.id" :parent-list="tab.widgetList"
33
+ :index-of-parent-list="swIdx" :parent-widget="widget" :design-state="true"></component>
34
+ </template>
35
+ </template>
36
+ </transition-group>
37
+ </draggable>
38
+ </el-tab-pane>
39
+
40
+ </el-tabs>
41
+ </div>
42
+
43
+ </container-wrapper>
44
+ </template>
45
+
46
+ <script>
47
+ import Draggable from 'vuedraggable'
48
+ import i18n from "@/utils/i18n"
49
+ import containerMixin from "@/components/form-designer/form-widget/container-widget/containerMixin"
50
+ import ContainerWrapper from "@/components/form-designer/form-widget/container-widget/container-wrapper"
51
+ import FieldComponents from '@/components/form-designer/form-widget/field-widget/index'
52
+
53
+ export default {
54
+ name: "tab-widget",
55
+ componentName: 'ContainerWidget',
56
+ mixins: [i18n, containerMixin],
57
+ components: {
58
+ ContainerWrapper,
59
+ Draggable,
60
+
61
+ ...FieldComponents,
62
+ },
63
+ props: {
64
+ widget: Object,
65
+ parentWidget: Object,
66
+ parentList: Array,
67
+ indexOfParentList: Number,
68
+ designer: Object,
69
+ },
70
+ data() {
71
+ return {
72
+ activeTab: 'tab1',
73
+ //
74
+ }
75
+ },
76
+ computed: {
77
+ selected() {
78
+ return this.widget.id === this.designer.selectedId
79
+ },
80
+
81
+ customClass() {
82
+ return this.widget.options.customClass || ''
83
+ },
84
+
85
+ },
86
+ watch: {
87
+ //
88
+ },
89
+ mounted() {
90
+ //
91
+ },
92
+ methods: {
93
+ onTabClick(evt) {
94
+ console.log('onTabClick', evt)
95
+ let paneName = evt.name
96
+ this.widget.tabs.forEach((tp) => {
97
+ tp.options.active = tp.options.name === paneName;
98
+ })
99
+ },
100
+
101
+ }
102
+ }
103
+ </script>
104
+
105
+ <style lang="scss" scoped>
106
+ .tab-container {
107
+ //padding: 5px;
108
+ margin: 2px;
109
+
110
+ .form-widget-list {
111
+ min-height: 28px;
112
+ }
113
+ }
114
+
115
+ .tab-container.selected {
116
+ outline: 2px solid $--color-primary !important;
117
+ }
118
+
119
+ </style>
@@ -0,0 +1,341 @@
1
+ <template>
2
+ <td class="table-cell" :class="[selected ? 'selected' : '', customClass]"
3
+ :style="{width: widget.options.cellWidth + '!important' || '', height: widget.options.cellHeight + '!important' || ''}"
4
+ :colspan="widget.options.colspan || 1" :rowspan="widget.options.rowspan || 1"
5
+ @click.stop="selectWidget(widget)">
6
+ <draggable :list="widget.widgetList" class="draggable-div" v-bind="{group:'dragGroup', ghostClass: 'ghost',animation: 200}"
7
+ handle=".drag-handler" @end="(evt) => onTableDragEnd(evt, widget.widgetList)"
8
+ @add="(evt) => onTableDragAdd(evt, widget.widgetList)"
9
+ @update="onTableDragUpdate" :move="checkContainerMove">
10
+ <transition-group name="fade" tag="div" class="form-widget-list">
11
+ <template v-for="(subWidget, swIdx) in widget.widgetList">
12
+ <template v-if="'container' === subWidget.category">
13
+ <component :is="subWidget.type + '-widget'" :widget="subWidget" :designer="designer" :key="subWidget.id" :parent-list="widget.widgetList"
14
+ :index-of-parent-list="swIdx" :parent-widget="widget"></component>
15
+ </template>
16
+ <template v-else>
17
+ <component :is="subWidget.type + '-widget'" :field="subWidget" :designer="designer" :key="subWidget.id" :parent-list="widget.widgetList"
18
+ :index-of-parent-list="swIdx" :parent-widget="widget" :design-state="true"></component>
19
+ </template>
20
+ </template>
21
+ </transition-group>
22
+ </draggable>
23
+
24
+ <div class="table-cell-action" v-if="designer.selectedId === widget.id && widget.type === 'table-cell'">
25
+ <i class="el-icon-back" :title="i18nt('designer.hint.selectParentWidget')"
26
+ @click.stop="selectParentWidget()"></i>
27
+ <el-dropdown trigger="click" @command="handleTableCellCommand" size="small">
28
+ <i class="el-icon-menu" :title="i18nt('designer.hint.cellSetting')"></i>
29
+ <el-dropdown-menu slot="dropdown">
30
+ <el-dropdown-item command="insertLeftCol">{{i18nt('designer.setting.insertColumnToLeft')}}</el-dropdown-item>
31
+ <el-dropdown-item command="insertRightCol">{{i18nt('designer.setting.insertColumnToRight')}}</el-dropdown-item>
32
+ <el-dropdown-item command="insertAboveRow">{{i18nt('designer.setting.insertRowAbove')}}</el-dropdown-item>
33
+ <el-dropdown-item command="insertBelowRow">{{i18nt('designer.setting.insertRowBelow')}}</el-dropdown-item>
34
+ <el-dropdown-item command="mergeLeftCol" :disabled="mergeLeftColDisabled" divided>{{i18nt('designer.setting.mergeLeftColumn')}}</el-dropdown-item>
35
+ <el-dropdown-item command="mergeRightCol" :disabled="mergeRightColDisabled">{{i18nt('designer.setting.mergeRightColumn')}}</el-dropdown-item>
36
+ <el-dropdown-item command="mergeWholeRow" :disabled="mergeWholeRowDisabled">{{i18nt('designer.setting.mergeEntireRow')}}</el-dropdown-item>
37
+ <el-dropdown-item command="mergeAboveRow" :disabled="mergeAboveRowDisabled" divided>{{i18nt('designer.setting.mergeRowAbove')}}</el-dropdown-item>
38
+ <el-dropdown-item command="mergeBelowRow" :disabled="mergeBelowRowDisabled">{{i18nt('designer.setting.mergeRowBelow')}}</el-dropdown-item>
39
+ <el-dropdown-item command="mergeWholeCol" :disabled="mergeWholeColDisabled">{{i18nt('designer.setting.mergeEntireColumn')}}</el-dropdown-item>
40
+ <el-dropdown-item command="undoMergeRow" :disabled="undoMergeRowDisabled" divided>{{i18nt('designer.setting.undoMergeRow')}}</el-dropdown-item>
41
+ <el-dropdown-item command="undoMergeCol" :disabled="undoMergeColDisabled">{{i18nt('designer.setting.undoMergeCol')}}</el-dropdown-item>
42
+ <el-dropdown-item command="deleteWholeCol" :disabled="deleteWholeColDisabled" divided>{{i18nt('designer.setting.deleteEntireCol')}}</el-dropdown-item>
43
+ <el-dropdown-item command="deleteWholeRow" :disabled="deleteWholeRowDisabled">{{i18nt('designer.setting.deleteEntireRow')}}</el-dropdown-item>
44
+ </el-dropdown-menu>
45
+ </el-dropdown>
46
+ </div>
47
+
48
+ <div class="table-cell-handler" v-if="designer.selectedId === widget.id && widget.type === 'table-cell'">
49
+ <i>{{i18nt('designer.widgetLabel.' + widget.type)}}</i>
50
+ </div>
51
+ </td>
52
+ </template>
53
+
54
+ <script>
55
+ import Draggable from 'vuedraggable'
56
+ import i18n from "@/utils/i18n"
57
+ import FieldComponents from '@/components/form-designer/form-widget/field-widget/index'
58
+
59
+ export default {
60
+ name: "TableCellWidget",
61
+ componentName: "TableCellWidget",
62
+ mixins: [i18n],
63
+ components: {
64
+ Draggable,
65
+ ...FieldComponents,
66
+ },
67
+ props: {
68
+ widget: Object,
69
+ parentWidget: Object,
70
+ parentList: Array,
71
+
72
+ rowIndex: Number,
73
+ colIndex: Number,
74
+ rowLength: Number,
75
+ colLength: Number,
76
+ colArray: Array,
77
+ rowArray: Array,
78
+
79
+ designer: Object,
80
+ },
81
+ computed: {
82
+ selected() {
83
+ return this.widget.id === this.designer.selectedId
84
+ },
85
+
86
+ customClass() {
87
+ return this.widget.options.customClass || ''
88
+ },
89
+
90
+ mergeLeftColDisabled() {
91
+ return (this.colIndex <= 0) || (this.colArray[this.colIndex - 1].options.rowspan !== this.widget.options.rowspan)
92
+ },
93
+
94
+ mergeRightColDisabled() {
95
+ let rightColIndex = this.colIndex + this.widget.options.colspan
96
+ return (this.colIndex >= this.colLength - 1) || (rightColIndex > this.colLength -1)
97
+ || (this.colArray[rightColIndex].options.rowspan !== this.widget.options.rowspan)
98
+ },
99
+
100
+ mergeWholeRowDisabled() {
101
+ return (this.colLength <= 1) || (this.colLength === this.widget.options.colspan)
102
+ },
103
+
104
+ mergeAboveRowDisabled() {
105
+ return (this.rowIndex <= 0) || (this.rowArray[this.rowIndex - 1].cols[this.colIndex].options.colspan
106
+ !== this.widget.options.colspan)
107
+
108
+ //return this.rowIndex <= 0
109
+ //return (this.rowIndex <= 0) || (this.widget.options.colspan !== this.rowArray) //TODO
110
+ },
111
+
112
+ mergeBelowRowDisabled() {
113
+ let belowRowIndex = this.rowIndex + this.widget.options.rowspan
114
+ return (this.rowIndex >= this.rowLength - 1) || (belowRowIndex > this.rowLength -1)
115
+ || (this.rowArray[belowRowIndex].cols[this.colIndex].options.colspan !== this.widget.options.colspan)
116
+ },
117
+
118
+ mergeWholeColDisabled() {
119
+ return (this.rowLength <= 1) || (this.rowLength === this.widget.options.rowspan)
120
+ },
121
+
122
+ undoMergeColDisabled() {
123
+ return this.widget.merged || (this.widget.options.colspan <= 1)
124
+ },
125
+
126
+ undoMergeRowDisabled() {
127
+ return this.widget.merged || (this.widget.options.rowspan <= 1)
128
+ },
129
+
130
+ deleteWholeColDisabled() {
131
+ //return this.colLength === 1
132
+ return (this.colLength === 1) || (this.widget.options.colspan === this.colLength)
133
+ },
134
+
135
+ deleteWholeRowDisabled() {
136
+ return (this.rowLength === 1) || (this.widget.options.rowspan === this.rowLength)
137
+ },
138
+
139
+ },
140
+ watch: {
141
+ //
142
+ },
143
+ methods: {
144
+ selectWidget(widget) {
145
+ this.designer.setSelected(widget)
146
+ },
147
+
148
+ checkContainerMove(evt) {
149
+ return this.designer.checkWidgetMove(evt)
150
+ },
151
+
152
+ onTableDragEnd(obj, subList) {
153
+ //
154
+ },
155
+
156
+ onTableDragAdd(evt, subList) { //重复代码,可合并
157
+ const newIndex = evt.newIndex
158
+ if (!!subList[newIndex]) {
159
+ this.designer.setSelected( subList[newIndex] )
160
+ }
161
+
162
+ this.designer.emitHistoryChange()
163
+ },
164
+
165
+ onTableDragUpdate() {
166
+ this.designer.emitHistoryChange()
167
+ },
168
+
169
+ selectParentWidget() {
170
+ if (this.parentWidget) {
171
+ this.designer.setSelected(this.parentWidget)
172
+ } else {
173
+ this.designer.clearSelected()
174
+ }
175
+ },
176
+
177
+ handleTableCellCommand(command) {
178
+ if (command === 'insertLeftCol') {
179
+ this.insertLeftCol()
180
+ } else if (command === 'insertRightCol') {
181
+ this.insertRightCol()
182
+ } else if (command === 'insertAboveRow') {
183
+ this.insertAboveRow()
184
+ } else if (command === 'insertBelowRow') {
185
+ this.insertBelowRow()
186
+ } else if (command === 'mergeLeftCol') {
187
+ this.mergeLeftCol()
188
+ } else if (command === 'mergeRightCol') {
189
+ this.mergeRightCol()
190
+ } else if (command === 'mergeWholeCol') {
191
+ this.mergeWholeCol()
192
+ } else if (command === 'mergeAboveRow') {
193
+ this.mergeAboveRow()
194
+ } else if (command === 'mergeBelowRow') {
195
+ this.mergeBelowRow()
196
+ } else if (command === 'mergeWholeRow') {
197
+ this.mergeWholeRow()
198
+ } else if (command === 'undoMergeCol') {
199
+ this.undoMergeCol()
200
+ } else if (command === 'undoMergeRow') {
201
+ this.undoMergeRow()
202
+ } else if (command === 'deleteWholeCol') {
203
+ this.deleteWholeCol()
204
+ } else if (command === 'deleteWholeRow') {
205
+ this.deleteWholeRow()
206
+ }
207
+ },
208
+
209
+ insertLeftCol() {
210
+ this.designer.insertTableCol(this.parentWidget, this.colIndex, this.rowIndex, true)
211
+ },
212
+
213
+ insertRightCol() {
214
+ this.designer.insertTableCol(this.parentWidget, this.colIndex, this.rowIndex, false)
215
+ },
216
+
217
+ insertAboveRow() {
218
+ this.designer.insertTableRow(this.parentWidget, this.rowIndex, this.rowIndex, this.colIndex, true)
219
+ },
220
+
221
+ insertBelowRow() {
222
+ this.designer.insertTableRow(this.parentWidget, this.rowIndex, this.rowIndex, this.colIndex, false)
223
+ },
224
+
225
+ mergeLeftCol() {
226
+ //this.designer.mergeTableColumn(this.colArray, this.colIndex, true)
227
+ this.designer.mergeTableCol(this.rowArray, this.colArray, this.rowIndex, this.colIndex, true, this.widget)
228
+ },
229
+
230
+ mergeRightCol() {
231
+ //this.designer.mergeTableColumn(this.colArray, this.colIndex, false)
232
+ this.designer.mergeTableCol(this.rowArray, this.colArray, this.rowIndex, this.colIndex, false, this.widget)
233
+ },
234
+
235
+ mergeWholeRow() {
236
+ this.designer.mergeTableWholeRow(this.rowArray, this.colArray, this.rowIndex, this.colIndex)
237
+ },
238
+
239
+ mergeAboveRow() {
240
+ this.designer.mergeTableRow(this.rowArray, this.rowIndex, this.colIndex, true, this.widget)
241
+ },
242
+
243
+ mergeBelowRow() {
244
+ this.designer.mergeTableRow(this.rowArray, this.rowIndex, this.colIndex, false, this.widget)
245
+ },
246
+
247
+ mergeWholeCol() {
248
+ this.designer.mergeTableWholeCol(this.rowArray, this.colArray, this.rowIndex, this.colIndex)
249
+ },
250
+
251
+ undoMergeCol() {
252
+ this.designer.undoMergeTableCol(this.rowArray, this.rowIndex, this.colIndex,
253
+ this.widget.options.colspan, this.widget.options.rowspan)
254
+ },
255
+
256
+ undoMergeRow() {
257
+ this.designer.undoMergeTableRow(this.rowArray, this.rowIndex, this.colIndex,
258
+ this.widget.options.colspan, this.widget.options.rowspan)
259
+ },
260
+
261
+ deleteWholeCol() {
262
+ this.designer.deleteTableWholeCol(this.rowArray, this.colIndex)
263
+ },
264
+
265
+ deleteWholeRow() {
266
+ this.designer.deleteTableWholeRow(this.rowArray, this.rowIndex)
267
+ },
268
+
269
+ }
270
+ }
271
+ </script>
272
+
273
+ <style lang="scss" scoped>
274
+ .table-cell {
275
+ //padding: 3px;
276
+ border: 1px dashed #336699;
277
+ display: table-cell;
278
+ position: relative;
279
+
280
+ .draggable-div {
281
+ position: relative;
282
+ height: 100%;
283
+ }
284
+
285
+ .form-widget-list {
286
+ border: 1px dashed #336699;
287
+ margin: 3px;
288
+
289
+ //min-height: 36px;
290
+ height: 100%;
291
+
292
+ /*position: absolute;*/
293
+ /*top: 0;*/
294
+ /*right: 0;*/
295
+ /*bottom: 0;*/
296
+ /*left: 0;*/
297
+ }
298
+
299
+ .table-cell-action{
300
+ position: absolute;
301
+ //bottom: -30px;
302
+ bottom: 0;
303
+ right: -2px;
304
+ height: 28px;
305
+ line-height: 28px;
306
+ background: $--color-primary;
307
+ z-index: 999;
308
+
309
+ i {
310
+ font-size: 14px;
311
+ color: #fff;
312
+ margin: 0 5px;
313
+ cursor: pointer;
314
+ }
315
+ }
316
+
317
+ .table-cell-handler {
318
+ position: absolute;
319
+ top: -2px;
320
+ //bottom: -24px; /* 拖拽手柄位于组件下方,有时无法正常拖动,原因未明?? */
321
+ left: -2px;
322
+ height: 22px;
323
+ line-height: 22px;
324
+ background: $--color-primary;
325
+ z-index: 9;
326
+
327
+ i {
328
+ font-size: 14px;
329
+ font-style: normal;
330
+ color: #fff;
331
+ margin: 4px;
332
+ cursor: default; //cursor: move;
333
+ }
334
+ }
335
+
336
+ }
337
+
338
+ .table-cell.selected {
339
+ outline: 2px solid $--color-primary !important;
340
+ }
341
+ </style>
@@ -0,0 +1,111 @@
1
+ <!--
2
+ /**
3
+ * author: vformAdmin
4
+ * email: vdpadmin@163.com
5
+ * website: https://www.vform666.com
6
+ * date: 2021.08.18
7
+ * remark: 如果要分发VForm源码,需在本文件顶部保留此文件头信息!!
8
+ */
9
+ -->
10
+
11
+ <template>
12
+ <container-wrapper :designer="designer" :widget="widget" :parent-widget="parentWidget" :parent-list="parentList"
13
+ :index-of-parent-list="indexOfParentList">
14
+
15
+ <div :key="widget.id" class="table-container"
16
+ :class="[selected ? 'selected' : '', customClass]" @click.stop="selectWidget(widget)">
17
+ <table class="table-layout">
18
+ <tbody>
19
+ <tr v-for="(row, rowIdx) in widget.rows" :key="row.id">
20
+ <template v-for="(colWidget, colIdx) in row.cols">
21
+ <table-cell-widget v-if="!colWidget.merged" :widget="colWidget" :designer="designer"
22
+ :key="colWidget.id" :parent-list="widget.cols"
23
+ :row-index="rowIdx" :row-length="widget.rows.length"
24
+ :col-index="colIdx" :col-length="row.cols.length"
25
+ :col-array="row.cols" :row-array="widget.rows"
26
+ :parent-widget="widget"></table-cell-widget>
27
+ </template>
28
+ </tr>
29
+ </tbody>
30
+ </table>
31
+ </div>
32
+
33
+ </container-wrapper>
34
+ </template>
35
+
36
+ <script>
37
+ import i18n from "@/utils/i18n"
38
+ import containerMixin from "@/components/form-designer/form-widget/container-widget/containerMixin"
39
+ import ContainerWrapper from "@/components/form-designer/form-widget/container-widget/container-wrapper"
40
+ import TableCellWidget from "@/components/form-designer/form-widget/container-widget/table-cell-widget"
41
+
42
+ export default {
43
+ name: "table-widget",
44
+ componentName: 'ContainerWidget',
45
+ mixins: [i18n, containerMixin],
46
+ components: {
47
+ ContainerWrapper,
48
+ TableCellWidget,
49
+ },
50
+ props: {
51
+ widget: Object,
52
+ parentWidget: Object,
53
+ parentList: Array,
54
+ indexOfParentList: Number,
55
+ designer: Object,
56
+ },
57
+ computed: {
58
+ selected() {
59
+ return this.widget.id === this.designer.selectedId
60
+ },
61
+
62
+ customClass() {
63
+ return this.widget.options.customClass || ''
64
+ },
65
+
66
+ },
67
+ watch: {
68
+ //
69
+ },
70
+ mounted() {
71
+ //
72
+ },
73
+ methods: {
74
+
75
+
76
+ }
77
+ }
78
+ </script>
79
+
80
+ <style lang="scss" scoped>
81
+ div.table-container {
82
+ padding: 5px;
83
+ border: 1px dashed #336699;
84
+ box-sizing: border-box;
85
+
86
+ table.table-layout {
87
+ width: 100%;
88
+ text-align: center;
89
+ //border: 1px solid #c8ebfb;
90
+ border-collapse: collapse;
91
+ table-layout: fixed;
92
+
93
+ ::v-deep td {
94
+ height: 48px;
95
+ border: 1px dashed #336699;
96
+ padding: 3px;
97
+ display: table-cell;
98
+ }
99
+
100
+ .form-widget-list {
101
+ border: 1px dashed #336699;
102
+ min-height: 36px;
103
+ }
104
+ }
105
+ }
106
+
107
+ .table-container.selected {
108
+ outline: 2px solid $--color-primary !important;
109
+ }
110
+
111
+ </style>
@@ -0,0 +1,87 @@
1
+ <template>
2
+ <static-content-wrapper :designer="designer" :field="field" :design-state="designState"
3
+ :parent-widget="parentWidget" :parent-list="parentList" :index-of-parent-list="indexOfParentList"
4
+ :sub-form-row-index="subFormRowIndex" :sub-form-col-index="subFormColIndex" :sub-form-row-id="subFormRowId">
5
+ <el-button ref="fieldEditor" :type="field.options.type" :size="field.options.size"
6
+ :plain="field.options.plain" :round="field.options.round"
7
+ :circle="field.options.circle" :icon="field.options.icon"
8
+ :disabled="field.options.disabled"
9
+ @click.native="handleButtonWidgetClick">
10
+ {{field.options.label}}</el-button>
11
+ </static-content-wrapper>
12
+ </template>
13
+
14
+ <script>
15
+ import StaticContentWrapper from './static-content-wrapper'
16
+ import emitter from 'element-ui/lib/mixins/emitter'
17
+ import i18n, {translate} from "@/utils/i18n";
18
+ import fieldMixin from "@/components/form-designer/form-widget/field-widget/fieldMixin";
19
+
20
+ export default {
21
+ name: "button-widget",
22
+ componentName: 'FieldWidget', //必须固定为FieldWidget,用于接收父级组件的broadcast事件
23
+ mixins: [emitter, fieldMixin, i18n],
24
+ props: {
25
+ field: Object,
26
+ parentWidget: Object,
27
+ parentList: Array,
28
+ indexOfParentList: Number,
29
+ designer: Object,
30
+
31
+ designState: {
32
+ type: Boolean,
33
+ default: false
34
+ },
35
+
36
+ subFormRowIndex: { /* 子表单组件行索引,从0开始计数 */
37
+ type: Number,
38
+ default: -1
39
+ },
40
+ subFormColIndex: { /* 子表单组件列索引,从0开始计数 */
41
+ type: Number,
42
+ default: -1
43
+ },
44
+ subFormRowId: { /* 子表单组件行Id,唯一id且不可变 */
45
+ type: String,
46
+ default: ''
47
+ },
48
+
49
+ },
50
+ components: {
51
+ StaticContentWrapper,
52
+ },
53
+ computed: {
54
+
55
+ },
56
+ beforeCreate() {
57
+ /* 这里不能访问方法和属性!! */
58
+ },
59
+
60
+ created() {
61
+ /* 注意:子组件mounted在父组件created之后、父组件mounted之前触发,故子组件mounted需要用到的prop
62
+ 需要在父组件created中初始化!! */
63
+ this.registerToRefList()
64
+ this.initEventHandler()
65
+
66
+ this.handleOnCreated()
67
+ },
68
+
69
+ mounted() {
70
+ this.handleOnMounted()
71
+ },
72
+
73
+ beforeDestroy() {
74
+ this.unregisterFromRefList()
75
+ },
76
+
77
+ methods: {
78
+
79
+ }
80
+
81
+ }
82
+ </script>
83
+
84
+ <style lang="scss" scoped>
85
+ @import "../../../../styles/global.scss"; //* static-content-wrapper已引入,还需要重复引入吗? *//
86
+
87
+ </style>