@lambo-design/variant-form 2.2.9-beta.0

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 (293) hide show
  1. package/index.js +41 -0
  2. package/package.json +64 -0
  3. package/src/assets/ft-images/t1.png +0 -0
  4. package/src/assets/ft-images/t2.png +0 -0
  5. package/src/assets/ft-images/t3.png +0 -0
  6. package/src/assets/ft-images/t4.png +0 -0
  7. package/src/assets/ft-images/t5.png +0 -0
  8. package/src/assets/ft-images/t6.png +0 -0
  9. package/src/assets/ft-images/t7.png +0 -0
  10. package/src/assets/ft-images/t8.png +0 -0
  11. package/src/assets/vform-logo.png +0 -0
  12. package/src/components/code-editor/index.vue +134 -0
  13. package/src/components/form-designer/designer.js +962 -0
  14. package/src/components/form-designer/form-widget/container-widget/container-wrapper.vue +107 -0
  15. package/src/components/form-designer/form-widget/container-widget/containerMixin.js +93 -0
  16. package/src/components/form-designer/form-widget/container-widget/grid-col-widget.vue +314 -0
  17. package/src/components/form-designer/form-widget/container-widget/grid-widget.vue +93 -0
  18. package/src/components/form-designer/form-widget/container-widget/index.js +24 -0
  19. package/src/components/form-designer/form-widget/container-widget/tab-widget.vue +123 -0
  20. package/src/components/form-designer/form-widget/container-widget/table-cell-widget.vue +347 -0
  21. package/src/components/form-designer/form-widget/container-widget/table-widget.vue +116 -0
  22. package/src/components/form-designer/form-widget/field-widget/button-widget.vue +87 -0
  23. package/src/components/form-designer/form-widget/field-widget/cascader-widget.vue +120 -0
  24. package/src/components/form-designer/form-widget/field-widget/checkbox-widget.vue +105 -0
  25. package/src/components/form-designer/form-widget/field-widget/color-widget.vue +99 -0
  26. package/src/components/form-designer/form-widget/field-widget/date-range-widget.vue +104 -0
  27. package/src/components/form-designer/form-widget/field-widget/date-widget.vue +103 -0
  28. package/src/components/form-designer/form-widget/field-widget/divider-widget.vue +83 -0
  29. package/src/components/form-designer/form-widget/field-widget/fieldMixin.js +613 -0
  30. package/src/components/form-designer/form-widget/field-widget/file-upload-widget.vue +313 -0
  31. package/src/components/form-designer/form-widget/field-widget/form-item-wrapper.vue +331 -0
  32. package/src/components/form-designer/form-widget/field-widget/html-text-widget.vue +82 -0
  33. package/src/components/form-designer/form-widget/field-widget/index.js +10 -0
  34. package/src/components/form-designer/form-widget/field-widget/input-widget.vue +112 -0
  35. package/src/components/form-designer/form-widget/field-widget/number-widget.vue +103 -0
  36. package/src/components/form-designer/form-widget/field-widget/picture-upload-widget.vue +280 -0
  37. package/src/components/form-designer/form-widget/field-widget/radio-widget.vue +105 -0
  38. package/src/components/form-designer/form-widget/field-widget/rate-widget.vue +102 -0
  39. package/src/components/form-designer/form-widget/field-widget/rich-editor-widget.vue +123 -0
  40. package/src/components/form-designer/form-widget/field-widget/select-widget.vue +123 -0
  41. package/src/components/form-designer/form-widget/field-widget/slider-widget.vue +100 -0
  42. package/src/components/form-designer/form-widget/field-widget/slot-widget.vue +102 -0
  43. package/src/components/form-designer/form-widget/field-widget/static-content-wrapper.vue +196 -0
  44. package/src/components/form-designer/form-widget/field-widget/static-text-widget.vue +83 -0
  45. package/src/components/form-designer/form-widget/field-widget/switch-widget.vue +101 -0
  46. package/src/components/form-designer/form-widget/field-widget/textarea-widget.vue +99 -0
  47. package/src/components/form-designer/form-widget/field-widget/time-range-widget.vue +104 -0
  48. package/src/components/form-designer/form-widget/field-widget/time-widget.vue +103 -0
  49. package/src/components/form-designer/form-widget/index.vue +272 -0
  50. package/src/components/form-designer/index.vue +500 -0
  51. package/src/components/form-designer/refMixinDesign.js +28 -0
  52. package/src/components/form-designer/setting-panel/form-setting.vue +354 -0
  53. package/src/components/form-designer/setting-panel/index.vue +367 -0
  54. package/src/components/form-designer/setting-panel/option-items-setting.vue +234 -0
  55. package/src/components/form-designer/setting-panel/property-editor/allowCreate-editor.vue +24 -0
  56. package/src/components/form-designer/setting-panel/property-editor/appendButton-editor.vue +28 -0
  57. package/src/components/form-designer/setting-panel/property-editor/appendButtonDisabled-editor.vue +23 -0
  58. package/src/components/form-designer/setting-panel/property-editor/automaticDropdown-editor.vue +23 -0
  59. package/src/components/form-designer/setting-panel/property-editor/border-editor.vue +23 -0
  60. package/src/components/form-designer/setting-panel/property-editor/buttonIcon-editor.vue +23 -0
  61. package/src/components/form-designer/setting-panel/property-editor/buttonStyle-editor.vue +23 -0
  62. package/src/components/form-designer/setting-panel/property-editor/clearable-editor.vue +23 -0
  63. package/src/components/form-designer/setting-panel/property-editor/columnWidth-editor.vue +26 -0
  64. package/src/components/form-designer/setting-panel/property-editor/container-grid/colHeight-editor.vue +28 -0
  65. package/src/components/form-designer/setting-panel/property-editor/container-grid/gutter-editor.vue +81 -0
  66. package/src/components/form-designer/setting-panel/property-editor/container-grid-col/grid-col-offset-editor.vue +24 -0
  67. package/src/components/form-designer/setting-panel/property-editor/container-grid-col/grid-col-pull-editor.vue +24 -0
  68. package/src/components/form-designer/setting-panel/property-editor/container-grid-col/grid-col-push-editor.vue +24 -0
  69. package/src/components/form-designer/setting-panel/property-editor/container-grid-col/grid-col-responsive-editor.vue +23 -0
  70. package/src/components/form-designer/setting-panel/property-editor/container-grid-col/grid-col-span-editor.vue +48 -0
  71. package/src/components/form-designer/setting-panel/property-editor/container-sub-form/showBlankRow-editor.vue +23 -0
  72. package/src/components/form-designer/setting-panel/property-editor/container-sub-form/showRowNumber-editor.vue +23 -0
  73. package/src/components/form-designer/setting-panel/property-editor/container-sub-form/sub-form-labelAlign-editor.vue +36 -0
  74. package/src/components/form-designer/setting-panel/property-editor/container-tab/tab-customClass-editor.vue +119 -0
  75. package/src/components/form-designer/setting-panel/property-editor/container-table-cell/cellHeight-editor.vue +23 -0
  76. package/src/components/form-designer/setting-panel/property-editor/container-table-cell/cellWidth-editor.vue +23 -0
  77. package/src/components/form-designer/setting-panel/property-editor/container-table-cell/wordBreak-editor.vue +23 -0
  78. package/src/components/form-designer/setting-panel/property-editor/customClass-editor.vue +40 -0
  79. package/src/components/form-designer/setting-panel/property-editor/defaultValue-editor.vue +25 -0
  80. package/src/components/form-designer/setting-panel/property-editor/disabled-editor.vue +23 -0
  81. package/src/components/form-designer/setting-panel/property-editor/displayStyle-editor.vue +26 -0
  82. package/src/components/form-designer/setting-panel/property-editor/editable-editor.vue +24 -0
  83. package/src/components/form-designer/setting-panel/property-editor/endPlaceholder-editor.vue +23 -0
  84. package/src/components/form-designer/setting-panel/property-editor/event-handler/eventMixin.js +12 -0
  85. package/src/components/form-designer/setting-panel/property-editor/event-handler/onAppendButtonClick-editor.vue +30 -0
  86. package/src/components/form-designer/setting-panel/property-editor/event-handler/onBeforeUpload-editor.vue +30 -0
  87. package/src/components/form-designer/setting-panel/property-editor/event-handler/onBlur-editor.vue +30 -0
  88. package/src/components/form-designer/setting-panel/property-editor/event-handler/onChange-editor.vue +30 -0
  89. package/src/components/form-designer/setting-panel/property-editor/event-handler/onClick-editor.vue +30 -0
  90. package/src/components/form-designer/setting-panel/property-editor/event-handler/onCreated-editor.vue +31 -0
  91. package/src/components/form-designer/setting-panel/property-editor/event-handler/onFileRemove.vue +30 -0
  92. package/src/components/form-designer/setting-panel/property-editor/event-handler/onFocus-editor.vue +30 -0
  93. package/src/components/form-designer/setting-panel/property-editor/event-handler/onInput-editor.vue +30 -0
  94. package/src/components/form-designer/setting-panel/property-editor/event-handler/onMounted-editor.vue +30 -0
  95. package/src/components/form-designer/setting-panel/property-editor/event-handler/onRemoteQuery-editor.vue +30 -0
  96. package/src/components/form-designer/setting-panel/property-editor/event-handler/onSubFormRowAdd-editor.vue +30 -0
  97. package/src/components/form-designer/setting-panel/property-editor/event-handler/onSubFormRowChange-editor.vue +30 -0
  98. package/src/components/form-designer/setting-panel/property-editor/event-handler/onSubFormRowDelete-editor.vue +30 -0
  99. package/src/components/form-designer/setting-panel/property-editor/event-handler/onSubFormRowInsert-editor.vue +30 -0
  100. package/src/components/form-designer/setting-panel/property-editor/event-handler/onUploadError-editor.vue +30 -0
  101. package/src/components/form-designer/setting-panel/property-editor/event-handler/onUploadSuccess-editor.vue +30 -0
  102. package/src/components/form-designer/setting-panel/property-editor/event-handler/onValidate-editor.vue +30 -0
  103. package/src/components/form-designer/setting-panel/property-editor/field-button/button-type-editor.vue +32 -0
  104. package/src/components/form-designer/setting-panel/property-editor/field-button/circle-editor.vue +23 -0
  105. package/src/components/form-designer/setting-panel/property-editor/field-button/icon-editor.vue +23 -0
  106. package/src/components/form-designer/setting-panel/property-editor/field-button/plain-editor.vue +24 -0
  107. package/src/components/form-designer/setting-panel/property-editor/field-button/round-editor.vue +23 -0
  108. package/src/components/form-designer/setting-panel/property-editor/field-cascader/cascader-defaultValue-editor.vue +18 -0
  109. package/src/components/form-designer/setting-panel/property-editor/field-cascader/cascader-multiple-editor.vue +24 -0
  110. package/src/components/form-designer/setting-panel/property-editor/field-cascader/checkStrictly-editor.vue +23 -0
  111. package/src/components/form-designer/setting-panel/property-editor/field-cascader/showAllLevels-editor.vue +23 -0
  112. package/src/components/form-designer/setting-panel/property-editor/field-checkbox/checkbox-defaultValue-editor.vue +18 -0
  113. package/src/components/form-designer/setting-panel/property-editor/field-color/color-defaultValue-editor.vue +25 -0
  114. package/src/components/form-designer/setting-panel/property-editor/field-date/date-defaultValue-editor.vue +26 -0
  115. package/src/components/form-designer/setting-panel/property-editor/field-date/date-format-editor.vue +30 -0
  116. package/src/components/form-designer/setting-panel/property-editor/field-date/date-type-editor.vue +30 -0
  117. package/src/components/form-designer/setting-panel/property-editor/field-date/date-valueFormat-editor.vue +26 -0
  118. package/src/components/form-designer/setting-panel/property-editor/field-date-range/date-range-defaultValue-editor.vue +26 -0
  119. package/src/components/form-designer/setting-panel/property-editor/field-date-range/date-range-format-editor.vue +30 -0
  120. package/src/components/form-designer/setting-panel/property-editor/field-date-range/date-range-type-editor.vue +27 -0
  121. package/src/components/form-designer/setting-panel/property-editor/field-date-range/date-range-valueFormat-editor.vue +26 -0
  122. package/src/components/form-designer/setting-panel/property-editor/field-divider/contentPosition-editor.vue +27 -0
  123. package/src/components/form-designer/setting-panel/property-editor/field-file-upload/file-upload-fileTypes-editor.vue +44 -0
  124. package/src/components/form-designer/setting-panel/property-editor/field-html-text/htmlContent-editor.vue +29 -0
  125. package/src/components/form-designer/setting-panel/property-editor/field-number/controlsPosition-editor.vue +27 -0
  126. package/src/components/form-designer/setting-panel/property-editor/field-picture-upload/picture-upload-fileTypes-editor.vue +44 -0
  127. package/src/components/form-designer/setting-panel/property-editor/field-radio/radio-defaultValue-editor.vue +18 -0
  128. package/src/components/form-designer/setting-panel/property-editor/field-rate/allowHalf-editor.vue +23 -0
  129. package/src/components/form-designer/setting-panel/property-editor/field-rate/highThreshold-editor.vue +24 -0
  130. package/src/components/form-designer/setting-panel/property-editor/field-rate/lowThreshold-editor.vue +24 -0
  131. package/src/components/form-designer/setting-panel/property-editor/field-rate/rate-defaultValue-editor.vue +26 -0
  132. package/src/components/form-designer/setting-panel/property-editor/field-rate/rate-max-editor.vue +25 -0
  133. package/src/components/form-designer/setting-panel/property-editor/field-rate/showScore-editor.vue +23 -0
  134. package/src/components/form-designer/setting-panel/property-editor/field-rate/showText-editor.vue +23 -0
  135. package/src/components/form-designer/setting-panel/property-editor/field-select/select-defaultValue-editor.vue +18 -0
  136. package/src/components/form-designer/setting-panel/property-editor/field-slider/range-editor.vue +23 -0
  137. package/src/components/form-designer/setting-panel/property-editor/field-slider/showStops-editor.vue +23 -0
  138. package/src/components/form-designer/setting-panel/property-editor/field-slider/vertical-editor.vue +23 -0
  139. package/src/components/form-designer/setting-panel/property-editor/field-static-text/fontSize-editor.vue +23 -0
  140. package/src/components/form-designer/setting-panel/property-editor/field-static-text/preWrap-editor.vue +23 -0
  141. package/src/components/form-designer/setting-panel/property-editor/field-static-text/textContent-editor.vue +23 -0
  142. package/src/components/form-designer/setting-panel/property-editor/field-switch/activeColor-editor.vue +23 -0
  143. package/src/components/form-designer/setting-panel/property-editor/field-switch/activeText-editor.vue +23 -0
  144. package/src/components/form-designer/setting-panel/property-editor/field-switch/inactiveColor-editor.vue +23 -0
  145. package/src/components/form-designer/setting-panel/property-editor/field-switch/inactiveText-editor.vue +23 -0
  146. package/src/components/form-designer/setting-panel/property-editor/field-switch/switch-defaultValue-editor.vue +25 -0
  147. package/src/components/form-designer/setting-panel/property-editor/field-switch/switchWidth-editor.vue +23 -0
  148. package/src/components/form-designer/setting-panel/property-editor/field-time/time-defaultValue-editor.vue +26 -0
  149. package/src/components/form-designer/setting-panel/property-editor/field-time/time-format-editor.vue +27 -0
  150. package/src/components/form-designer/setting-panel/property-editor/field-time-range/time-range-defaultValue-editor.vue +26 -0
  151. package/src/components/form-designer/setting-panel/property-editor/field-time-range/time-range-format-editor.vue +27 -0
  152. package/src/components/form-designer/setting-panel/property-editor/fileMaxSize-editor.vue +23 -0
  153. package/src/components/form-designer/setting-panel/property-editor/filterable-editor.vue +23 -0
  154. package/src/components/form-designer/setting-panel/property-editor/hidden-editor.vue +23 -0
  155. package/src/components/form-designer/setting-panel/property-editor/index.js +10 -0
  156. package/src/components/form-designer/setting-panel/property-editor/label-editor.vue +30 -0
  157. package/src/components/form-designer/setting-panel/property-editor/labelAlign-editor.vue +42 -0
  158. package/src/components/form-designer/setting-panel/property-editor/labelHidden-editor.vue +23 -0
  159. package/src/components/form-designer/setting-panel/property-editor/labelIconClass-editor.vue +28 -0
  160. package/src/components/form-designer/setting-panel/property-editor/labelIconPosition-editor.vue +37 -0
  161. package/src/components/form-designer/setting-panel/property-editor/labelTooltip-editor.vue +23 -0
  162. package/src/components/form-designer/setting-panel/property-editor/labelWidth-editor.vue +25 -0
  163. package/src/components/form-designer/setting-panel/property-editor/limit-editor.vue +24 -0
  164. package/src/components/form-designer/setting-panel/property-editor/max-editor.vue +39 -0
  165. package/src/components/form-designer/setting-panel/property-editor/maxLength-editor.vue +40 -0
  166. package/src/components/form-designer/setting-panel/property-editor/min-editor.vue +40 -0
  167. package/src/components/form-designer/setting-panel/property-editor/minLength-editor.vue +41 -0
  168. package/src/components/form-designer/setting-panel/property-editor/multiple-editor.vue +24 -0
  169. package/src/components/form-designer/setting-panel/property-editor/multipleLimit-editor.vue +24 -0
  170. package/src/components/form-designer/setting-panel/property-editor/multipleSelect-editor.vue +24 -0
  171. package/src/components/form-designer/setting-panel/property-editor/name-editor.vue +89 -0
  172. package/src/components/form-designer/setting-panel/property-editor/optionItems-editor.vue +28 -0
  173. package/src/components/form-designer/setting-panel/property-editor/placeholder-editor.vue +24 -0
  174. package/src/components/form-designer/setting-panel/property-editor/precision-editor.vue +23 -0
  175. package/src/components/form-designer/setting-panel/property-editor/prefixIcon-editor.vue +23 -0
  176. package/src/components/form-designer/setting-panel/property-editor/propertyMixin.js +55 -0
  177. package/src/components/form-designer/setting-panel/property-editor/readonly-editor.vue +23 -0
  178. package/src/components/form-designer/setting-panel/property-editor/remote-editor.vue +25 -0
  179. package/src/components/form-designer/setting-panel/property-editor/required-editor.vue +23 -0
  180. package/src/components/form-designer/setting-panel/property-editor/requiredHint-editor.vue +24 -0
  181. package/src/components/form-designer/setting-panel/property-editor/rows-editor.vue +24 -0
  182. package/src/components/form-designer/setting-panel/property-editor/showFileList-editor.vue +23 -0
  183. package/src/components/form-designer/setting-panel/property-editor/showPassword-editor.vue +24 -0
  184. package/src/components/form-designer/setting-panel/property-editor/showWordLimit-editor.vue +23 -0
  185. package/src/components/form-designer/setting-panel/property-editor/size-editor.vue +38 -0
  186. package/src/components/form-designer/setting-panel/property-editor/startPlaceholder-editor.vue +23 -0
  187. package/src/components/form-designer/setting-panel/property-editor/step-editor.vue +23 -0
  188. package/src/components/form-designer/setting-panel/property-editor/suffixIcon-editor.vue +23 -0
  189. package/src/components/form-designer/setting-panel/property-editor/textAlign-editor.vue +35 -0
  190. package/src/components/form-designer/setting-panel/property-editor/type-editor.vue +33 -0
  191. package/src/components/form-designer/setting-panel/property-editor/uploadTip-editor.vue +24 -0
  192. package/src/components/form-designer/setting-panel/property-editor/uploadURL-editor.vue +28 -0
  193. package/src/components/form-designer/setting-panel/property-editor/validation-editor.vue +48 -0
  194. package/src/components/form-designer/setting-panel/property-editor/validationHint-editor.vue +23 -0
  195. package/src/components/form-designer/setting-panel/property-editor/withCredentials-editor.vue +23 -0
  196. package/src/components/form-designer/setting-panel/property-editor-factory.js +173 -0
  197. package/src/components/form-designer/setting-panel/propertyRegister.js +215 -0
  198. package/src/components/form-designer/toolbar-panel/index.vue +886 -0
  199. package/src/components/form-designer/widget-panel/index.vue +394 -0
  200. package/src/components/form-designer/widget-panel/templatesConfig.js +58 -0
  201. package/src/components/form-designer/widget-panel/widgetsConfig.js +934 -0
  202. package/src/components/form-render/container-item/container-item-wrapper.vue +37 -0
  203. package/src/components/form-render/container-item/containerItemMixin.js +221 -0
  204. package/src/components/form-render/container-item/grid-col-item.vue +126 -0
  205. package/src/components/form-render/container-item/grid-item.vue +59 -0
  206. package/src/components/form-render/container-item/index.js +24 -0
  207. package/src/components/form-render/container-item/sub-form-item.vue +417 -0
  208. package/src/components/form-render/container-item/tab-item.vue +99 -0
  209. package/src/components/form-render/container-item/table-cell-item.vue +72 -0
  210. package/src/components/form-render/container-item/table-item.vue +70 -0
  211. package/src/components/form-render/index.vue +721 -0
  212. package/src/components/form-render/refMixin.js +30 -0
  213. package/src/components/svg-icon/index.vue +49 -0
  214. package/src/components/v-table/index.vue +106 -0
  215. package/src/extension/extension-helper.js +23 -0
  216. package/src/extension/extension-loader.js +116 -0
  217. package/src/extension/samples/alert/alert-widget.vue +72 -0
  218. package/src/extension/samples/card/card-item.vue +100 -0
  219. package/src/extension/samples/card/card-widget.vue +132 -0
  220. package/src/extension/samples/extension-schema.js +36 -0
  221. package/src/extension/samples/extension-sfc-generator.js +50 -0
  222. package/src/iconfont/iconfont.css +29 -0
  223. package/src/iconfont/iconfont.eot +0 -0
  224. package/src/iconfont/iconfont.js +1 -0
  225. package/src/iconfont/iconfont.json +37 -0
  226. package/src/iconfont/iconfont.svg +35 -0
  227. package/src/iconfont/iconfont.ttf +0 -0
  228. package/src/iconfont/iconfont.woff +0 -0
  229. package/src/iconfont/iconfont.woff2 +0 -0
  230. package/src/icons/index.js +3 -0
  231. package/src/icons/svg/alert.svg +1 -0
  232. package/src/icons/svg/button.svg +1 -0
  233. package/src/icons/svg/card.svg +1 -0
  234. package/src/icons/svg/cascader-field.svg +1 -0
  235. package/src/icons/svg/checkbox-field.svg +1 -0
  236. package/src/icons/svg/color-field.svg +1 -0
  237. package/src/icons/svg/custom-component.svg +1 -0
  238. package/src/icons/svg/data-table.svg +1 -0
  239. package/src/icons/svg/date-field.svg +1 -0
  240. package/src/icons/svg/date-range-field.svg +1 -0
  241. package/src/icons/svg/divider.svg +1 -0
  242. package/src/icons/svg/document.svg +1 -0
  243. package/src/icons/svg/drag.svg +1 -0
  244. package/src/icons/svg/file-upload-field.svg +1 -0
  245. package/src/icons/svg/github.svg +1 -0
  246. package/src/icons/svg/grid.svg +1 -0
  247. package/src/icons/svg/html-text.svg +1 -0
  248. package/src/icons/svg/node-tree.svg +1 -0
  249. package/src/icons/svg/number-field.svg +1 -0
  250. package/src/icons/svg/picture-upload-field.svg +1 -0
  251. package/src/icons/svg/radio-field.svg +1 -0
  252. package/src/icons/svg/rate-field.svg +1 -0
  253. package/src/icons/svg/redo.svg +1 -0
  254. package/src/icons/svg/rich-editor-field.svg +1 -0
  255. package/src/icons/svg/section.svg +1 -0
  256. package/src/icons/svg/select-field.svg +1 -0
  257. package/src/icons/svg/slider-field.svg +1 -0
  258. package/src/icons/svg/slot-component.svg +1 -0
  259. package/src/icons/svg/slot-field.svg +1 -0
  260. package/src/icons/svg/static-text.svg +1 -0
  261. package/src/icons/svg/sub-form.svg +1 -0
  262. package/src/icons/svg/switch-field.svg +1 -0
  263. package/src/icons/svg/tab.svg +1 -0
  264. package/src/icons/svg/table.svg +1 -0
  265. package/src/icons/svg/text-field.svg +1 -0
  266. package/src/icons/svg/textarea-field.svg +1 -0
  267. package/src/icons/svg/time-field.svg +1 -0
  268. package/src/icons/svg/time-range-field.svg +1 -0
  269. package/src/icons/svg/undo.svg +1 -0
  270. package/src/icons/svg/vue-sfc.svg +1 -0
  271. package/src/lang/en-US.js +354 -0
  272. package/src/lang/en-US_extension.js +26 -0
  273. package/src/lang/en-US_render.js +38 -0
  274. package/src/lang/zh-CN.js +354 -0
  275. package/src/lang/zh-CN_extension.js +26 -0
  276. package/src/lang/zh-CN_render.js +38 -0
  277. package/src/styles/global.scss +108 -0
  278. package/src/styles/index.scss +15 -0
  279. package/src/utils/beautifierLoader.js +77 -0
  280. package/src/utils/code-generator.js +91 -0
  281. package/src/utils/config.js +9 -0
  282. package/src/utils/debug-console.js +7 -0
  283. package/src/utils/directive.js +74 -0
  284. package/src/utils/emitter.js +34 -0
  285. package/src/utils/format.js +214 -0
  286. package/src/utils/i18n.js +95 -0
  287. package/src/utils/sfc-generator.js +583 -0
  288. package/src/utils/smart-vue-i18n/index.js +56 -0
  289. package/src/utils/smart-vue-i18n/utils.js +47 -0
  290. package/src/utils/util.js +376 -0
  291. package/src/utils/validators.js +127 -0
  292. package/src/utils/vue2js-generator.js +144 -0
  293. package/src/utils/vue3js-generator.js +70 -0
@@ -0,0 +1,313 @@
1
+ <template>
2
+ <form-item-wrapper :designer="designer" :field="field" :rules="rules" :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-upload增加:name="field.options.name"后,会导致又拍云上传失败!故删除之!! -->
6
+ <el-upload ref="fieldEditor" :disabled="field.options.disabled"
7
+ :style="styleVariables" class="dynamicPseudoAfter"
8
+ :action="realUploadURL" :headers="uploadHeaders" :data="uploadData"
9
+ :with-credentials="field.options.withCredentials"
10
+ :multiple="field.options.multipleSelect" :file-list="fileList"
11
+ :show-file-list="field.options.showFileList" :class="{'hideUploadDiv': uploadBtnHidden}"
12
+ :limit="field.options.limit" :on-exceed="handleFileExceed" :before-upload="beforeFileUpload"
13
+ :on-success="handleFileUpload" :on-error="handleUploadError">
14
+ <div slot="tip" class="el-upload__tip"
15
+ v-if="!!field.options.uploadTip">{{field.options.uploadTip}}</div>
16
+ <i slot="default" class="el-icon-plus avatar-uploader-icon"></i>
17
+ <template #file="{ file }">
18
+ <div class="upload-file-list">
19
+ <span class="upload-file-name" :title="file.name">{{file.name}}</span>
20
+ <a :href="file.url" download="" target="_blank">
21
+ <i class="el-icon-download file-action" :title="i18nt('render.hint.downloadFile')"></i></a>
22
+ <i class="el-icon-delete file-action" :title="i18nt('render.hint.removeFile')" v-if="!field.options.disabled"
23
+ @click="removeUploadFile(file.name, file.url, file.uid)"></i>
24
+ </div>
25
+ </template>
26
+ </el-upload>
27
+ </form-item-wrapper>
28
+ </template>
29
+
30
+ <script>
31
+ import FormItemWrapper from './form-item-wrapper'
32
+ import emitter from '@/utils/emitter'
33
+ import i18n, {translate} from "@/utils/i18n";
34
+ import {deepClone, evalFn} from "@/utils/util";
35
+ import fieldMixin from "@/components/form-designer/form-widget/field-widget/fieldMixin";
36
+
37
+ let selectFileText = "'" + translate('render.hint.selectFile') + "'"
38
+
39
+ export default {
40
+ name: "file-upload-widget",
41
+ componentName: 'FieldWidget', //必须固定为FieldWidget,用于接收父级组件的broadcast事件
42
+ mixins: [emitter, fieldMixin, i18n],
43
+ props: {
44
+ field: Object,
45
+ parentWidget: Object,
46
+ parentList: Array,
47
+ indexOfParentList: Number,
48
+ designer: Object,
49
+
50
+ designState: {
51
+ type: Boolean,
52
+ default: false
53
+ },
54
+
55
+ subFormRowIndex: { /* 子表单组件行索引,从0开始计数 */
56
+ type: Number,
57
+ default: -1
58
+ },
59
+ subFormColIndex: { /* 子表单组件列索引,从0开始计数 */
60
+ type: Number,
61
+ default: -1
62
+ },
63
+ subFormRowId: { /* 子表单组件行Id,唯一id且不可变 */
64
+ type: String,
65
+ default: ''
66
+ },
67
+
68
+ },
69
+ components: {
70
+ FormItemWrapper,
71
+ },
72
+ inject: ['refList', 'formConfig', 'globalOptionData', 'globalModel'],
73
+ data() {
74
+ return {
75
+ oldFieldValue: null, //field组件change之前的值
76
+ fieldModel: [],
77
+ rules: [],
78
+
79
+ uploadHeaders: {},
80
+ uploadData: {
81
+ key: '', //七牛云上传文件名
82
+ //token: '', //七牛云上传token
83
+
84
+ //policy: '', //又拍云上传policy
85
+ //authorization: '', //又拍云上传签名
86
+ },
87
+ fileList: [], //上传文件列表
88
+ uploadBtnHidden: false,
89
+
90
+ styleVariables: {
91
+ '--select-file-action': selectFileText,
92
+ },
93
+ }
94
+ },
95
+ computed: {
96
+ realUploadURL() {
97
+ let uploadURL = this.field.options.uploadURL
98
+ if (!!uploadURL && ((uploadURL.indexOf('DSV.') > -1) || (uploadURL.indexOf('DSV[') > -1))) {
99
+ let DSV = this.getGlobalDsv()
100
+ console.log('test DSV: ', DSV) //防止DSV被打包工具优化!!!
101
+ return evalFn(this.field.options.uploadURL, DSV)
102
+ }
103
+
104
+ return this.field.options.uploadURL
105
+ },
106
+
107
+ },
108
+ beforeCreate() {
109
+ /* 这里不能访问方法和属性!! */
110
+ },
111
+
112
+ created() {
113
+ /* 注意:子组件mounted在父组件created之后、父组件mounted之前触发,故子组件mounted需要用到的prop
114
+ 需要在父组件created中初始化!! */
115
+ this.initFieldModel()
116
+ this.registerToRefList()
117
+ this.initEventHandler()
118
+ this.buildFieldRules()
119
+
120
+ this.handleOnCreated()
121
+ },
122
+
123
+ mounted() {
124
+ this.handleOnMounted()
125
+ },
126
+
127
+ beforeDestroy() {
128
+ this.unregisterFromRefList()
129
+ },
130
+
131
+ methods: {
132
+ handleFileExceed() {
133
+ let uploadLimit = this.field.options.limit
134
+ this.$message.warning( this.i18nt('render.hint.uploadExceed').replace('${uploadLimit}', uploadLimit) )
135
+ },
136
+
137
+ beforeFileUpload(file) {
138
+ let fileTypeCheckResult = false
139
+ let extFileName = file.name.substring(file.name.lastIndexOf('.') + 1)
140
+ if (!!this.field.options && !!this.field.options.fileTypes) {
141
+ let uploadFileTypes = this.field.options.fileTypes
142
+ if (uploadFileTypes.length > 0) {
143
+ fileTypeCheckResult = uploadFileTypes.some( (ft) => {
144
+ return extFileName.toLowerCase() === ft.toLowerCase()
145
+ })
146
+ }
147
+ }
148
+ if (!fileTypeCheckResult) {
149
+ this.$message.error(this.i18nt('render.hint.unsupportedFileType') + extFileName)
150
+ return false;
151
+ }
152
+
153
+ let fileSizeCheckResult = false
154
+ let uploadFileMaxSize = 5 //5MB
155
+ if (!!this.field.options && !!this.field.options.fileMaxSize) {
156
+ uploadFileMaxSize = this.field.options.fileMaxSize
157
+ }
158
+ fileSizeCheckResult = file.size / 1024 / 1024 <= uploadFileMaxSize
159
+ if (!fileSizeCheckResult) {
160
+ this.$message.error(this.i18nt('render.hint.fileSizeExceed') + uploadFileMaxSize + 'MB')
161
+ return false;
162
+ }
163
+
164
+ this.uploadData.key = file.name
165
+ return this.handleOnBeforeUpload(file)
166
+ },
167
+
168
+ handleOnBeforeUpload(file) {
169
+ if (!!this.field.options.onBeforeUpload) {
170
+ let bfFunc = new Function('file', this.field.options.onBeforeUpload)
171
+ let result = bfFunc.call(this, file)
172
+ if (typeof result === 'boolean') {
173
+ return result
174
+ } else {
175
+ return true
176
+ }
177
+ }
178
+
179
+ return true
180
+ },
181
+
182
+ updateFieldModelAndEmitDataChangeForUpload(fileList, customResult, defaultResult) {
183
+ let oldValue = deepClone(this.fieldModel)
184
+ if (!!customResult && !!customResult.name && !!customResult.url) {
185
+ this.fieldModel.push({
186
+ name: customResult.name,
187
+ url: customResult.url
188
+ })
189
+ } else if (!!defaultResult && !!defaultResult.name && !!defaultResult.url) {
190
+ this.fieldModel.push({
191
+ name: defaultResult.name,
192
+ url: defaultResult.url
193
+ })
194
+ } else {
195
+ this.fieldModel = deepClone(fileList)
196
+ }
197
+
198
+ this.syncUpdateFormModel(this.fieldModel)
199
+ this.emitFieldDataChange(this.fieldModel, oldValue)
200
+ },
201
+
202
+
203
+ handleFileUpload(res, file, fileList) {
204
+ if (file.status === 'success') {
205
+ let customResult = null
206
+ if (!!this.field.options.onUploadSuccess) {
207
+ let mountFunc = new Function('result', 'file', 'fileList', this.field.options.onUploadSuccess)
208
+ customResult = mountFunc.call(this, res, file, fileList)
209
+ }
210
+
211
+ this.updateFieldModelAndEmitDataChangeForUpload(fileList, customResult, res)
212
+ if (!!customResult && !!customResult.name) {
213
+ file.name = customResult.name
214
+ } else {
215
+ file.name = file.name || res.name || res.fileName || res.filename
216
+ }
217
+ if (!!customResult && !!customResult.url) {
218
+ file.url = customResult.url
219
+ } else {
220
+ file.url = file.url || res.url
221
+ }
222
+ this.fileList = deepClone(fileList)
223
+ this.uploadBtnHidden = fileList.length >= this.field.options.limit
224
+ }
225
+ },
226
+
227
+ updateFieldModelAndEmitDataChangeForRemove(deletedFileIdx, fileList) {
228
+ let oldValue = deepClone(this.fieldModel)
229
+ this.fieldModel.splice(deletedFileIdx, 1)
230
+ this.syncUpdateFormModel(this.fieldModel)
231
+ this.emitFieldDataChange(this.fieldModel, oldValue)
232
+ },
233
+
234
+ removeUploadFile(fileName, fileUrl, fileUid) {
235
+ let foundIdx = -1
236
+ let foundFile = null
237
+ this.fileList.forEach((file, idx) => {
238
+ if ((file.name === fileName) && ((file.url === fileUrl) || (!!fileUid && file.uid === fileUid))) {
239
+ foundIdx = idx
240
+ foundFile = file
241
+ }
242
+ })
243
+
244
+ if (foundIdx >= 0) {
245
+ this.fileList.splice(foundIdx, 1)
246
+ this.updateFieldModelAndEmitDataChangeForRemove(foundIdx, this.fileList)
247
+ this.uploadBtnHidden = this.fileList.length >= this.field.options.limit
248
+
249
+ if (!!this.field.options.onFileRemove) {
250
+ let customFn = new Function('file', 'fileList', this.field.options.onFileRemove)
251
+ customFn.call(this, foundFile, this.fileList)
252
+ }
253
+ }
254
+ },
255
+
256
+ handleUploadError(err, file, fileList) {
257
+ if (!!this.field.options.onUploadError) {
258
+ let customFn = new Function('error', 'file', 'fileList', this.field.options.onUploadError)
259
+ customFn.call(this, err, file, fileList)
260
+ } else {
261
+ this.$message({
262
+ message: this.i18nt('render.hint.uploadError') + err,
263
+ duration: 3000,
264
+ type: 'error',
265
+ })
266
+ }
267
+ },
268
+
269
+ }
270
+ }
271
+ </script>
272
+
273
+ <style lang="scss" scoped>
274
+ @import "../../../../styles/global.scss"; //* form-item-wrapper已引入,还需要重复引入吗? *//
275
+
276
+ .full-width-input {
277
+ width: 100% !important;
278
+ }
279
+
280
+ .dynamicPseudoAfter ::v-deep .el-upload.el-upload--text {
281
+ color: $--color-primary;
282
+ font-size: 12px;
283
+ .el-icon-plus:after {
284
+ content: var(--select-file-action);
285
+ }
286
+ }
287
+
288
+ .hideUploadDiv {
289
+ ::v-deep div.el-upload--picture-card { /* 隐藏最后的图片上传按钮 */
290
+ display: none;
291
+ }
292
+
293
+ ::v-deep div.el-upload--text { /* 隐藏最后的文件上传按钮 */
294
+ display: none;
295
+ }
296
+
297
+ ::v-deep div.el-upload__tip { /* 隐藏最后的文件上传按钮 */
298
+ display: none;
299
+ }
300
+ }
301
+
302
+ .upload-file-list {
303
+ font-size: 12px;
304
+
305
+ .file-action {
306
+ color: $--color-primary;
307
+ margin-left: 5px;
308
+ margin-right: 5px;
309
+ cursor: pointer;
310
+ }
311
+ }
312
+
313
+ </style>
@@ -0,0 +1,331 @@
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
+ <div class="field-wrapper" :class="{'design-time-bottom-margin': !!this.designer}">
13
+ <el-form-item v-if="!!field.formItemFlag && (!field.options.hidden || (designState === true))"
14
+ :label="label" :label-width="labelWidth + 'px'"
15
+ :title="field.options.labelTooltip"
16
+ :rules="rules" :prop="getPropName()"
17
+ :class="[selected ? 'selected' : '', labelAlign, customClass, field.options.required ? 'required' : '']"
18
+ @click.native.stop="selectField(field)">
19
+
20
+ <span v-if="!!field.options.labelIconClass" slot="label" class="custom-label">
21
+ <template v-if="field.options.labelIconPosition === 'front'">
22
+ <template v-if="!!field.options.labelTooltip">
23
+ <el-tooltip :content="field.options.labelTooltip" effect="light">
24
+ <i :class="field.options.labelIconClass"></i></el-tooltip>{{label}}</template>
25
+ <template v-else>
26
+ <i :class="field.options.labelIconClass"></i>{{label}}</template>
27
+ </template>
28
+ <template v-else-if="field.options.labelIconPosition === 'rear'">
29
+ <template v-if="!!field.options.labelTooltip">
30
+ {{label}}<el-tooltip :content="field.options.labelTooltip" effect="light">
31
+ <i :class="field.options.labelIconClass"></i></el-tooltip></template>
32
+ <template v-else>
33
+ {{label}}<i :class="field.options.labelIconClass"></i></template>
34
+ </template>
35
+ </span>
36
+ <slot></slot>
37
+ </el-form-item>
38
+
39
+ <template v-if="!!this.designer">
40
+ <div class="field-action" v-if="designer.selectedId === field.id">
41
+ <i class="el-icon-back" :title="i18nt('designer.hint.selectParentWidget')" @click.stop="selectParentWidget(field)"></i>
42
+ <i class="el-icon-top" v-if="!!parentList && (parentList.length > 1)" :title="i18nt('designer.hint.moveUpWidget')"
43
+ @click.stop="moveUpWidget(field)"></i>
44
+ <i class="el-icon-bottom" v-if="!!parentList && (parentList.length > 1)" :title="i18nt('designer.hint.moveDownWidget')"
45
+ @click.stop="moveDownWidget(field)"></i>
46
+ <i class="el-icon-delete" :title="i18nt('designer.hint.remove')" @click.stop="removeFieldWidget"></i>
47
+ </div>
48
+
49
+ <div class="drag-handler background-opacity" v-if="designer.selectedId === field.id">
50
+ <i class="el-icon-rank" :title="i18nt('designer.hint.dragHandler')"></i>
51
+ <i>{{i18n2t(`designer.widgetLabel.${field.type}`, `extension.widgetLabel.${field.type}`)}}</i>
52
+ <i v-if="field.options.hidden === true" class="iconfont icon-hide"></i>
53
+ </div>
54
+ </template>
55
+ </div>
56
+ </template>
57
+
58
+ <script>
59
+ import i18n from "@/utils/i18n";
60
+
61
+ export default {
62
+ name: "form-item-wrapper",
63
+ mixins: [i18n],
64
+ props: {
65
+ field: Object,
66
+ designer: Object,
67
+ parentWidget: Object,
68
+ parentList: Array,
69
+ indexOfParentList: Number,
70
+
71
+ designState: {
72
+ type: Boolean,
73
+ default: false
74
+ },
75
+
76
+ subFormRowIndex: { /* 子表单组件行索引,从0开始计数 */
77
+ type: Number,
78
+ default: -1
79
+ },
80
+ subFormColIndex: { /* 子表单组件列索引,从0开始计数 */
81
+ type: Number,
82
+ default: -1
83
+ },
84
+ subFormRowId: { /* 子表单组件行Id,唯一id且不可变 */
85
+ type: String,
86
+ default: ''
87
+ },
88
+
89
+ rules: Array,
90
+ },
91
+ inject: ['formConfig'],
92
+ computed: {
93
+ selected() {
94
+ return !!this.designer && this.field.id === this.designer.selectedId
95
+ },
96
+
97
+ label() {
98
+ if (!!this.field.options.labelHidden) {
99
+ return ''
100
+ }
101
+
102
+ return this.field.options.label
103
+ },
104
+
105
+ labelWidth() {
106
+ if (!!this.field.options.labelHidden) {
107
+ return !!this.designState ? 5 : 0 //设计期间标签最小宽度5像素,以便于鼠标点击可选中组件!!
108
+ }
109
+
110
+ if (!!this.field.options.labelWidth) {
111
+ return this.field.options.labelWidth
112
+ }
113
+
114
+ if (!!this.designer) {
115
+ return this.designer.formConfig.labelWidth
116
+ } else {
117
+ return this.formConfig.labelWidth
118
+ }
119
+ },
120
+
121
+ labelAlign() {
122
+ if (!!this.field.options.labelAlign) {
123
+ return this.field.options.labelAlign
124
+ }
125
+
126
+ if (!!this.designer) {
127
+ return this.designer.formConfig.labelAlign || 'label-left-align'
128
+ } else {
129
+ return this.formConfig.labelAlign || 'label-left-align'
130
+ }
131
+ },
132
+
133
+ customClass() {
134
+ return !!this.field.options.customClass ? this.field.options.customClass.join(' ') : ''
135
+ },
136
+
137
+ subFormName() {
138
+ return !!this.parentWidget ? this.parentWidget.options.name : ''
139
+ },
140
+
141
+ subFormItemFlag() {
142
+ return !!this.parentWidget ? this.parentWidget.type === 'sub-form' : false
143
+ },
144
+
145
+ },
146
+ created() {
147
+ //
148
+ },
149
+ methods: {
150
+
151
+ selectField(field) {
152
+ if (!!this.designer) {
153
+ this.designer.setSelected(field)
154
+ this.designer.emitEvent('field-selected', this.parentWidget) //发送选中组件的父组件对象
155
+ }
156
+ },
157
+
158
+ selectParentWidget() {
159
+ if (this.parentWidget) {
160
+ this.designer.setSelected(this.parentWidget)
161
+ } else {
162
+ this.designer.clearSelected()
163
+ }
164
+ },
165
+
166
+ moveUpWidget() {
167
+ this.designer.moveUpWidget(this.parentList, this.indexOfParentList)
168
+ this.designer.emitHistoryChange()
169
+ },
170
+
171
+ moveDownWidget() {
172
+ this.designer.moveDownWidget(this.parentList, this.indexOfParentList)
173
+ this.designer.emitHistoryChange()
174
+ },
175
+
176
+ removeFieldWidget() {
177
+ if (!!this.parentList) {
178
+ const fieldRefName = this.designer.selectedWidgetName
179
+ let nextSelected = null
180
+ if (this.parentList.length === 1) {
181
+ if (!!this.parentWidget) {
182
+ nextSelected = this.parentWidget
183
+ }
184
+ } else if (this.parentList.length === (1 + this.indexOfParentList)) {
185
+ nextSelected = this.parentList[this.indexOfParentList - 1]
186
+ } else {
187
+ nextSelected = this.parentList[this.indexOfParentList + 1]
188
+ }
189
+
190
+ this.$nextTick(() => {
191
+ this.parentList.splice(this.indexOfParentList, 1)
192
+ this.designer.setSelected(nextSelected)
193
+
194
+ this.designer.formWidget.deleteWidgetRef(fieldRefName) //删除组件ref!!!
195
+ this.designer.emitHistoryChange()
196
+ })
197
+ }
198
+ },
199
+
200
+ getPropName() {
201
+ if (this.subFormItemFlag && !this.designState) {
202
+ return this.subFormName + "." + this.subFormRowIndex + "." + this.field.options.name + ""
203
+ } else {
204
+ return this.field.options.name
205
+ }
206
+ },
207
+
208
+
209
+ }
210
+ }
211
+ </script>
212
+
213
+ <style lang="scss" scoped>
214
+ @import "../../../../styles/global.scss";
215
+
216
+ .design-time-bottom-margin {
217
+ margin-bottom: 5px;
218
+ }
219
+
220
+ .field-wrapper {
221
+ position: relative;
222
+
223
+ .field-action{
224
+ position: absolute;
225
+ //bottom: -24px;
226
+ bottom: 0;
227
+ right: -2px;
228
+ height: 22px;
229
+ line-height: 22px;
230
+ background: $--color-primary;
231
+ z-index: 9;
232
+
233
+ i {
234
+ font-size: 14px;
235
+ color: #fff;
236
+ margin: 0 5px;
237
+ cursor: pointer;
238
+ }
239
+ }
240
+
241
+ .drag-handler {
242
+ position: absolute;
243
+ top: 0;
244
+ //bottom: -22px; /* 拖拽手柄位于组件下方,有时无法正常拖动,原因未明?? */
245
+ left: -1px;
246
+ height: 20px;
247
+ line-height: 20px;
248
+ //background: $--color-primary;
249
+ z-index: 9;
250
+
251
+ i {
252
+ font-size: 12px;
253
+ font-style: normal;
254
+ color: #fff;
255
+ margin: 4px;
256
+ cursor: move;
257
+ }
258
+
259
+ &:hover {
260
+ //opacity: 1;
261
+ background: $--color-primary;
262
+ }
263
+ }
264
+ }
265
+
266
+ .el-form-item {
267
+ //margin-bottom: 0 !important;
268
+ //margin-bottom: 6px;
269
+
270
+ //margin-top: 2px;
271
+ position: relative;
272
+
273
+ ::v-deep .el-form-item__label {
274
+ white-space: nowrap;
275
+ text-overflow: ellipsis;
276
+ }
277
+
278
+ ::v-deep .el-form-item__content {
279
+ //position: unset; /* TODO: 忘了这个样式设置是为了解决什么问题?? */
280
+ }
281
+
282
+ span.custom-label i {
283
+ margin: 0 3px;
284
+ }
285
+
286
+ /* 隐藏Chrome浏览器中el-input数字输入框右侧的上下调整小箭头 */
287
+ ::v-deep .hide-spin-button input::-webkit-outer-spin-button,
288
+ ::v-deep .hide-spin-button input::-webkit-inner-spin-button {
289
+ -webkit-appearance: none !important;
290
+ }
291
+
292
+ /* 隐藏Firefox浏览器中el-input数字输入框右侧的上下调整小箭头 */
293
+ ::v-deep .hide-spin-button input[type="number"] {
294
+ -moz-appearance: textfield;
295
+ }
296
+ }
297
+
298
+ .required ::v-deep .el-form-item__label::before {
299
+ content: '*';
300
+ color: #F56C6C;
301
+ margin-right: 4px;
302
+ }
303
+
304
+ .static-content-item {
305
+ min-height: 20px;
306
+ display: flex; /* 垂直居中 */
307
+ align-items: center; /* 垂直居中 */
308
+
309
+ ::v-deep .el-divider--horizontal {
310
+ margin: 0;
311
+ }
312
+ }
313
+
314
+ .el-form-item.selected, .static-content-item.selected {
315
+ outline: 2px solid $--color-primary;
316
+ }
317
+
318
+ ::v-deep .label-left-align .el-form-item__label {
319
+ text-align: left;
320
+ }
321
+
322
+ ::v-deep .label-center-align .el-form-item__label {
323
+ text-align: center;
324
+ }
325
+
326
+ ::v-deep .label-right-align .el-form-item__label {
327
+ text-align: right;
328
+ }
329
+
330
+
331
+ </style>