@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,367 @@
1
+ <template>
2
+ <el-container class="panel-container">
3
+ <el-tabs :active-name="activeTab" style="height: 100%; overflow: hidden">
4
+ <el-tab-pane :label="i18nt('designer.hint.widgetSetting')" name="1">
5
+ <el-scrollbar class="setting-scrollbar" :style="{height: scrollerHeight}">
6
+
7
+ <template v-if="!!designer.selectedWidget && !designer.selectedWidget.category">
8
+ <el-form :model="optionModel" size="mini" label-position="left" label-width="120px" class="setting-form"
9
+ @submit.native.prevent>
10
+ <el-collapse v-model="widgetActiveCollapseNames" class="setting-collapse">
11
+ <el-collapse-item name="1" v-if="showCollapse(commonProps)" :title="i18nt('designer.setting.commonSetting')">
12
+ <template v-for="(editorName, propName) in commonProps">
13
+ <component v-if="hasPropEditor(propName, editorName)" :is="getPropEditor(propName, editorName)"
14
+ :designer="designer" :selected-widget="selectedWidget" :option-model="optionModel"></component>
15
+ </template>
16
+ </el-collapse-item>
17
+
18
+ <el-collapse-item name="2" v-if="showCollapse(advProps)" :title="i18nt('designer.setting.advancedSetting')">
19
+ <template v-for="(editorName, propName) in advProps">
20
+ <component v-if="hasPropEditor(propName, editorName)" :is="getPropEditor(propName, editorName)"
21
+ :designer="designer" :selected-widget="selectedWidget" :option-model="optionModel"></component>
22
+ </template>
23
+ </el-collapse-item>
24
+
25
+ <el-collapse-item name="3" v-if="showEventCollapse() && showCollapse(eventProps)" :title="i18nt('designer.setting.eventSetting')">
26
+ <template v-for="(editorName, propName) in eventProps">
27
+ <component v-if="hasPropEditor(propName, editorName)" :is="getPropEditor(propName, editorName)"
28
+ :designer="designer" :selected-widget="selectedWidget" :option-model="optionModel"></component>
29
+ </template>
30
+ </el-collapse-item>
31
+ </el-collapse>
32
+
33
+ </el-form>
34
+ </template>
35
+
36
+ <template v-if="(!!designer.selectedWidget && !!designer.selectedWidget.category)">
37
+ <el-form :model="optionModel" size="mini" label-position="left" label-width="120px" class="setting-form"
38
+ @submit.native.prevent>
39
+ <el-collapse v-model="widgetActiveCollapseNames" class="setting-collapse">
40
+ <el-collapse-item name="1" v-if="showCollapse(commonProps)" :title="i18nt('designer.setting.commonSetting')">
41
+ <template v-for="(editorName, propName) in commonProps">
42
+ <component v-if="hasPropEditor(propName, editorName)" :is="getPropEditor(propName, editorName)"
43
+ :designer="designer" :selected-widget="selectedWidget" :option-model="optionModel"></component>
44
+ </template>
45
+ </el-collapse-item>
46
+
47
+ <el-collapse-item name="2" v-if="showCollapse(advProps)" :title="i18nt('designer.setting.advancedSetting')">
48
+ <template v-for="(editorName, propName) in advProps">
49
+ <component v-if="hasPropEditor(propName, editorName)" :is="getPropEditor(propName, editorName)"
50
+ :designer="designer" :selected-widget="selectedWidget" :option-model="optionModel"></component>
51
+ </template>
52
+ </el-collapse-item>
53
+
54
+ <el-collapse-item name="3" v-if="showEventCollapse() && showCollapse(eventProps)" :title="i18nt('designer.setting.eventSetting')">
55
+ <template v-for="(editorName, propName) in eventProps">
56
+ <component v-if="hasPropEditor(propName, editorName)" :is="getPropEditor(propName, editorName)"
57
+ :designer="designer" :selected-widget="selectedWidget" :option-model="optionModel"></component>
58
+ </template>
59
+ </el-collapse-item>
60
+ </el-collapse>
61
+ </el-form>
62
+ </template>
63
+
64
+ </el-scrollbar>
65
+ </el-tab-pane>
66
+
67
+ <el-tab-pane v-if="!!designer" :label="i18nt('designer.hint.formSetting')" name="2">
68
+ <el-scrollbar class="setting-scrollbar" :style="{height: scrollerHeight}">
69
+ <form-setting :designer="designer" :form-config="formConfig"></form-setting>
70
+ </el-scrollbar>
71
+ </el-tab-pane>
72
+ </el-tabs>
73
+
74
+ <el-dialog :title="i18nt('designer.setting.editWidgetEventHandler')" :visible.sync="showWidgetEventDialogFlag"
75
+ v-if="showWidgetEventDialogFlag" :show-close="true" class="small-padding-dialog" append-to-body v-dialog-drag
76
+ :close-on-click-modal="false" :close-on-press-escape="false" :destroy-on-close="true">
77
+ <el-alert type="info" :closable="false" :title="eventHeader"></el-alert>
78
+ <code-editor :mode="'javascript'" :readonly="false" v-model="eventHandlerCode" ref="ecEditor"></code-editor>
79
+ <el-alert type="info" :closable="false" title="}"></el-alert>
80
+ <div slot="footer" class="dialog-footer">
81
+ <el-button @click="showWidgetEventDialogFlag = false">
82
+ {{i18nt('designer.hint.cancel')}}</el-button>
83
+ <el-button type="primary" @click="saveEventHandler">
84
+ {{i18nt('designer.hint.confirm')}}</el-button>
85
+ </div>
86
+ </el-dialog>
87
+
88
+ </el-container>
89
+ </template>
90
+
91
+ <script>
92
+ import CodeEditor from '@/components/code-editor/index'
93
+ import PropertyEditors from './property-editor/index'
94
+ import FormSetting from './form-setting'
95
+ import WidgetProperties from './propertyRegister'
96
+ import {
97
+ addWindowResizeHandler,
98
+ } from "@/utils/util";
99
+ import i18n from "@/utils/i18n";
100
+ import { propertyRegistered } from "@/components/form-designer/setting-panel/propertyRegister";
101
+
102
+ const {COMMON_PROPERTIES, ADVANCED_PROPERTIES, EVENT_PROPERTIES} = WidgetProperties
103
+
104
+ export default {
105
+ name: "SettingPanel",
106
+ componentName: "SettingPanel",
107
+ mixins: [i18n],
108
+ components: {
109
+ CodeEditor,
110
+ FormSetting,
111
+ ...PropertyEditors,
112
+ },
113
+ props: {
114
+ designer: Object,
115
+ selectedWidget: Object,
116
+ formConfig: Object,
117
+ globalDsv: {
118
+ type: Object,
119
+ default: () => ({})
120
+ },
121
+ },
122
+ provide() {
123
+ return {
124
+ isSubFormChildWidget: () => this.subFormChildWidgetFlag,
125
+ }
126
+ },
127
+ inject: ['getDesignerConfig'],
128
+ data() {
129
+ return {
130
+ designerConfig: this.getDesignerConfig(),
131
+
132
+ scrollerHeight: 0,
133
+
134
+ activeTab: "2",
135
+ widgetActiveCollapseNames: ['1', '3'], //['1', '2', '3'],
136
+ formActiveCollapseNames: ['1', '2'],
137
+
138
+ commonProps: COMMON_PROPERTIES,
139
+ advProps: ADVANCED_PROPERTIES,
140
+ eventProps: EVENT_PROPERTIES,
141
+
142
+ showWidgetEventDialogFlag: false,
143
+ eventHandlerCode: '',
144
+ curEventName: '',
145
+ eventHeader: '',
146
+
147
+ subFormChildWidgetFlag: false,
148
+ }
149
+ },
150
+ computed: {
151
+ optionModel: {
152
+ get() {
153
+ return this.selectedWidget.options
154
+ },
155
+
156
+ set(newValue) {
157
+ this.selectedWidget.options = newValue
158
+ }
159
+ },
160
+
161
+ },
162
+ watch: {
163
+ 'designer.selectedWidget': {
164
+ handler(val) {
165
+ if (!!val) {
166
+ this.activeTab = "1"
167
+ }
168
+ }
169
+ },
170
+
171
+ 'selectedWidget.options': { //组件属性变动后,立即保存表单JSON!!
172
+ deep: true,
173
+ handler() {
174
+ this.designer.saveCurrentHistoryStep()
175
+ }
176
+ },
177
+
178
+ formConfig: {
179
+ deep: true,
180
+ handler() {
181
+ this.designer.saveCurrentHistoryStep()
182
+ }
183
+ },
184
+
185
+ },
186
+ created() {
187
+ this.$on('editEventHandler', function (eventName, eventParams) {
188
+ this.editEventHandler(eventName, eventParams)
189
+ })
190
+
191
+ this.designer.handleEvent('form-css-updated', (cssClassList) => {
192
+ this.designer.setCssClassList(cssClassList)
193
+ })
194
+
195
+ //监听字段组件选中事件
196
+ this.designer.handleEvent('field-selected', (parentWidget) => {
197
+ this.subFormChildWidgetFlag = !!parentWidget && (parentWidget.type === 'sub-form');
198
+ //console.log('subFormChildWidgetFlag', this.subFormChildWidgetFlag)
199
+ })
200
+ },
201
+ mounted() {
202
+ if (!this.designer.selectedWidget) {
203
+ this.activeTab = "2"
204
+ } else {
205
+ this.activeTab = "1"
206
+ }
207
+
208
+ this.scrollerHeight = window.innerHeight - 56 - 48 + 'px'
209
+ addWindowResizeHandler(() => {
210
+ this.$nextTick(() => {
211
+ this.scrollerHeight = window.innerHeight - 56 - 48 + 'px'
212
+ //console.log(this.scrollerHeight)
213
+ })
214
+ })
215
+ },
216
+ methods: {
217
+ showEventCollapse() {
218
+ if (this.designerConfig['eventCollapse'] === undefined) {
219
+ return true
220
+ }
221
+
222
+ return !!this.designerConfig['eventCollapse']
223
+ },
224
+
225
+ hasPropEditor(propName, editorName) {
226
+ if (!editorName) {
227
+ return false
228
+ }
229
+
230
+ /* alert组件注册了两个type属性编辑器,跳过第一个type属性编辑器,只显示第二个alert-type属性编辑器!! */
231
+ if (propName.indexOf('-') <= -1) {
232
+ let uniquePropName = this.selectedWidget.type + '-' + propName
233
+ if (propertyRegistered(uniquePropName)) {
234
+ return false
235
+ }
236
+ }
237
+
238
+ let originalPropName = propName.replace(this.selectedWidget.type + '-', '') //去掉组件名称前缀-,如果有的话!!
239
+ return this.designer.hasConfig(this.selectedWidget, originalPropName)
240
+ },
241
+
242
+ getPropEditor(propName, editorName) {
243
+ let originalPropName = propName.replace(this.selectedWidget.type + '-', '') //去掉组件名称前缀-,如果有的话!!
244
+ let ownPropEditorName = `${this.selectedWidget.type}-${originalPropName}-editor`
245
+ //console.log(ownPropEditorName, this.$options.components[ownPropEditorName])
246
+ if (!!this.$options.components[ownPropEditorName]) { //局部注册的属性编辑器组件
247
+ return ownPropEditorName
248
+ }
249
+
250
+ return !!this.$root.$options.components[ownPropEditorName] ? ownPropEditorName : editorName //全局注册的属性编辑器组件
251
+ },
252
+
253
+ showCollapse(propsObj) {
254
+ let result = false
255
+
256
+ for (let propName in propsObj) {
257
+ if (!propsObj.hasOwnProperty(propName)) {
258
+ continue
259
+ }
260
+
261
+ if (this.hasPropEditor(propName, propsObj[propName])) {
262
+ result = true
263
+ break
264
+ }
265
+ }
266
+
267
+ return result
268
+ },
269
+
270
+ editEventHandler(eventName, eventParams) {
271
+ this.curEventName = eventName
272
+ this.eventHeader = `${this.optionModel.name}.${eventName}(${eventParams.join(', ')}) {`
273
+ this.eventHandlerCode = this.selectedWidget.options[eventName] || ''
274
+
275
+ // 设置字段校验函数示例代码
276
+ if ((eventName === 'onValidate') && (!this.optionModel['onValidate'])) {
277
+ this.eventHandlerCode = " /* sample code */\n /*\n if ((value > 100) || (value < 0)) {\n callback(new Error('error message')) //fail\n } else {\n callback(); //pass\n }\n */"
278
+ }
279
+
280
+ this.showWidgetEventDialogFlag = true
281
+ },
282
+
283
+ saveEventHandler() {
284
+ const codeHints = this.$refs.ecEditor.getEditorAnnotations()
285
+ let syntaxErrorFlag = false
286
+ if (!!codeHints && (codeHints.length > 0)) {
287
+ codeHints.forEach((chItem) => {
288
+ if (chItem.type === 'error') {
289
+ syntaxErrorFlag = true
290
+ }
291
+ })
292
+
293
+ if (syntaxErrorFlag) {
294
+ this.$message.error(this.i18nt('designer.setting.syntaxCheckWarning'))
295
+ return
296
+ }
297
+ }
298
+
299
+ this.selectedWidget.options[this.curEventName] = this.eventHandlerCode
300
+ this.showWidgetEventDialogFlag = false
301
+ },
302
+
303
+ }
304
+ }
305
+ </script>
306
+
307
+ <style lang="scss" scoped>
308
+ .panel-container {
309
+ padding: 0 8px;
310
+ }
311
+
312
+ .setting-scrollbar {
313
+ ::v-deep .el-scrollbar__wrap {
314
+ overflow-x: hidden; /* IE浏览器隐藏水平滚动条箭头!! */
315
+ }
316
+ }
317
+
318
+ .setting-collapse {
319
+ ::v-deep .el-collapse-item__content {
320
+ padding-bottom: 6px;
321
+ }
322
+
323
+ ::v-deep .el-collapse-item__header {
324
+ font-style: italic;
325
+ font-weight: bold;
326
+ }
327
+ }
328
+
329
+ .setting-form {
330
+ ::v-deep .el-form-item__label {
331
+ font-size: 13px;
332
+ //text-overflow: ellipsis;
333
+ overflow: hidden;
334
+ white-space: nowrap;
335
+ }
336
+
337
+ ::v-deep .el-form-item--mini.el-form-item {
338
+ margin-bottom: 6px;
339
+ }
340
+ }
341
+
342
+ /* 隐藏Chrome浏览器中el-input数字输入框右侧的上下调整小箭头 */
343
+ ::v-deep .hide-spin-button input::-webkit-outer-spin-button,
344
+ ::v-deep .hide-spin-button input::-webkit-inner-spin-button {
345
+ -webkit-appearance: none !important;
346
+ }
347
+
348
+ /* 隐藏Firefox浏览器中el-input数字输入框右侧的上下调整小箭头 */
349
+ ::v-deep .hide-spin-button input[type="number"] {
350
+ -moz-appearance: textfield;
351
+ }
352
+
353
+ ::v-deep .custom-divider.el-divider--horizontal {
354
+ margin: 10px 0;
355
+ }
356
+
357
+ ::v-deep .custom-divider-margin-top.el-divider--horizontal {
358
+ margin: 20px 0;
359
+ }
360
+
361
+ .small-padding-dialog {
362
+ ::v-deep .el-dialog__body {
363
+ padding: 6px 15px 12px 15px;
364
+ }
365
+ }
366
+
367
+ </style>
@@ -0,0 +1,234 @@
1
+ <template>
2
+ <div class="option-items-pane">
3
+ <el-radio-group v-if="(selectedWidget.type === 'radio') || ((selectedWidget.type === 'select') && !selectedWidget.options.multiple)"
4
+ v-model="optionModel.defaultValue" @change="emitDefaultValueChange">
5
+ <draggable tag="ul" :list="optionModel.optionItems"
6
+ v-bind="{group:'optionsGroup', ghostClass: 'ghost', handle: '.drag-option'}">
7
+ <li v-for="(option, idx) in optionModel.optionItems" :key="idx">
8
+ <el-radio :label="option.value">
9
+ <el-input v-model="option.value" size="mini" style="width: 100px"></el-input>
10
+ <el-input v-model="option.label" size="mini" style="width: 100px"></el-input>
11
+ <i class="iconfont icon-drag drag-option"></i>
12
+ <el-button circle plain size="mini" type="danger" @click="deleteOption(option, idx)"
13
+ icon="el-icon-minus" class="col-delete-button"></el-button>
14
+ </el-radio>
15
+ </li>
16
+ </draggable>
17
+ </el-radio-group>
18
+ <el-checkbox-group v-else-if="(selectedWidget.type === 'checkbox') || ((selectedWidget.type === 'select') && selectedWidget.options.multiple)"
19
+ v-model="optionModel.defaultValue" @change="emitDefaultValueChange">
20
+ <draggable tag="ul" :list="optionModel.optionItems"
21
+ v-bind="{group:'optionsGroup', ghostClass: 'ghost', handle: '.drag-option'}">
22
+ <li v-for="(option, idx) in optionModel.optionItems" :key="idx">
23
+ <el-checkbox :label="option.value">
24
+ <el-input v-model="option.value" size="mini" style="width: 100px"></el-input>
25
+ <el-input v-model="option.label" size="mini" style="width: 100px"></el-input>
26
+ <i class="iconfont icon-drag drag-option"></i>
27
+ <el-button circle plain size="mini" type="danger" @click="deleteOption(option, idx)"
28
+ icon="el-icon-minus" class="col-delete-button"></el-button>
29
+ </el-checkbox>
30
+ </li>
31
+ </draggable>
32
+ </el-checkbox-group>
33
+ <el-cascader v-else-if="(selectedWidget.type === 'cascader')"
34
+ v-model="optionModel.defaultValue" :options="optionModel.optionItems"
35
+ @change="emitDefaultValueChange"
36
+ :placeholder="i18nt('render.hint.selectPlaceholder')" style="width: 100%">
37
+ </el-cascader>
38
+ <div v-if="(selectedWidget.type === 'cascader')">
39
+ <el-button type="text" @click="importCascaderOptions">{{i18nt('designer.setting.importOptions')}}</el-button>
40
+ <el-button type="text" @click="resetDefault">{{i18nt('designer.setting.resetDefault')}}</el-button>
41
+ </div>
42
+
43
+ <div v-if="(selectedWidget.type === 'radio') || (selectedWidget.type === 'checkbox') || (selectedWidget.type === 'select')">
44
+ <el-button type="text" @click="addOption">{{i18nt('designer.setting.addOption')}}</el-button>
45
+ <el-button type="text" @click="importOptions">{{i18nt('designer.setting.importOptions')}}</el-button>
46
+ <el-button type="text" @click="resetDefault">{{i18nt('designer.setting.resetDefault')}}</el-button>
47
+ </div>
48
+
49
+ <el-dialog :title="i18nt('designer.setting.importOptions')" :visible.sync="showImportDialogFlag"
50
+ v-if="showImportDialogFlag" :show-close="true" class="small-padding-dialog" append-to-body
51
+ :close-on-click-modal="false" :close-on-press-escape="false" :destroy-on-close="true">
52
+ <el-form-item>
53
+ <el-input type="textarea" rows="10" v-model="optionLines"></el-input>
54
+ </el-form-item>
55
+ <div slot="footer" class="dialog-footer">
56
+ <el-button size="large" type="primary" @click="saveOptions">{{i18nt('designer.hint.confirm')}}</el-button>
57
+ <el-button size="large" type="" @click="showImportDialogFlag = false">{{i18nt('designer.hint.cancel')}}</el-button>
58
+ </div>
59
+ </el-dialog>
60
+
61
+ <el-dialog :title="i18nt('designer.setting.importOptions')" :visible.sync="showImportCascaderDialogFlag"
62
+ v-if="showImportCascaderDialogFlag" :show-close="true" class="small-padding-dialog" append-to-body
63
+ :close-on-click-modal="false" :close-on-press-escape="false" :destroy-on-close="true">
64
+ <code-editor v-model="cascaderOptions" mode="json" :readonly="false"></code-editor>
65
+ <div slot="footer" class="dialog-footer">
66
+ <el-button size="large" type="primary" @click="saveCascaderOptions">{{i18nt('designer.hint.confirm')}}</el-button>
67
+ <el-button size="large" type="" @click="showImportCascaderDialogFlag = false">{{i18nt('designer.hint.cancel')}}</el-button>
68
+ </div>
69
+ </el-dialog>
70
+ </div>
71
+ </template>
72
+
73
+ <script>
74
+ import Draggable from 'vuedraggable'
75
+ import CodeEditor from '@/components/code-editor/index'
76
+ import i18n from "@/utils/i18n";
77
+
78
+ export default {
79
+ name: "OptionItemsSetting",
80
+ mixins: [i18n],
81
+ components: {
82
+ Draggable,
83
+ //CodeEditor: () => import('@/components/code-editor/index'),
84
+ CodeEditor,
85
+ },
86
+ props: {
87
+ designer: Object,
88
+ selectedWidget: Object,
89
+ },
90
+ data() {
91
+ return {
92
+ showImportDialogFlag: false,
93
+ optionLines: '',
94
+
95
+ cascaderOptions: '',
96
+ showImportCascaderDialogFlag: false,
97
+
98
+ //separator: '||',
99
+ separator: ',',
100
+ }
101
+ },
102
+ computed: {
103
+ optionModel() {
104
+ return this.selectedWidget.options
105
+ },
106
+
107
+ },
108
+ watch: {
109
+ 'selectedWidget.options': {
110
+ deep: true,
111
+ handler(val) {
112
+ //console.log('888888', 'Options change!')
113
+ }
114
+ },
115
+ },
116
+ methods: {
117
+ emitDefaultValueChange() {
118
+ if (!!this.designer && !!this.designer.formWidget) {
119
+ let fieldWidget = this.designer.formWidget.getWidgetRef(this.selectedWidget.options.name)
120
+ if (!!fieldWidget && !!fieldWidget.refreshDefaultValue) {
121
+ fieldWidget.refreshDefaultValue()
122
+ }
123
+ }
124
+ },
125
+
126
+ deleteOption(option, index) {
127
+ this.optionModel.optionItems.splice(index, 1)
128
+ },
129
+
130
+ addOption() {
131
+ let newValue = this.optionModel.optionItems.length + 1
132
+ this.optionModel.optionItems.push({
133
+ value: newValue,
134
+ label: 'new option'
135
+ })
136
+ },
137
+
138
+ importOptions() {
139
+ this.optionLines = ''
140
+ if (this.optionModel.optionItems.length > 0) {
141
+ this.optionModel.optionItems.forEach((opt) => {
142
+ if (opt.value === opt.label) {
143
+ this.optionLines += opt.value + '\n'
144
+ } else {
145
+ this.optionLines += opt.value + this.separator + opt.label + '\n'
146
+ }
147
+ })
148
+ }
149
+
150
+ this.showImportDialogFlag = true
151
+ },
152
+
153
+ saveOptions() {
154
+ let lineArray = this.optionLines.split('\n')
155
+ //console.log('test', lineArray)
156
+ if (lineArray.length > 0) {
157
+ this.optionModel.optionItems = []
158
+ lineArray.forEach((optLine) => {
159
+ if (!!optLine && !!optLine.trim()) {
160
+ if (optLine.indexOf(this.separator) !== -1) {
161
+ this.optionModel.optionItems.push({
162
+ value: optLine.split(this.separator)[0],
163
+ label: optLine.split(this.separator)[1]
164
+ })
165
+ } else {
166
+ this.optionModel.optionItems.push({
167
+ value: optLine,
168
+ label: optLine
169
+ })
170
+ }
171
+ }
172
+ })
173
+ } else {
174
+ this.optionModel.optionItems = []
175
+ }
176
+
177
+ this.showImportDialogFlag = false
178
+ },
179
+
180
+ resetDefault() {
181
+ if ((this.selectedWidget.type === 'checkbox') ||
182
+ ((this.selectedWidget.type === 'select') && this.selectedWidget.options.multiple)) {
183
+ this.optionModel.defaultValue = []
184
+ } else {
185
+ this.optionModel.defaultValue = ''
186
+ }
187
+
188
+ this.emitDefaultValueChange()
189
+ },
190
+
191
+ importCascaderOptions() {
192
+ this.cascaderOptions = JSON.stringify(this.optionModel.optionItems, null, ' ')
193
+ this.showImportCascaderDialogFlag = true
194
+ },
195
+
196
+ saveCascaderOptions() {
197
+ try {
198
+ let newOptions = JSON.parse(this.cascaderOptions)
199
+ this.optionModel.optionItems = newOptions
200
+ //TODO: 是否需要重置选项默认值??
201
+
202
+ this.showImportCascaderDialogFlag = false
203
+ } catch (ex) {
204
+ this.$message.error(this.i18nt('designer.hint.invalidOptionsData') + ex.message)
205
+ }
206
+ },
207
+
208
+ }
209
+ }
210
+ </script>
211
+
212
+ <style lang="scss" scoped>
213
+ .option-items-pane ul {
214
+ padding-inline-start: 6px;
215
+ padding-left: 6px; /* 重置IE11默认样式 */
216
+ }
217
+
218
+ li.ghost{
219
+ background: #fff;
220
+ border: 2px dotted $--color-primary;
221
+ }
222
+
223
+ .drag-option {
224
+ cursor: move;
225
+ }
226
+
227
+ .small-padding-dialog ::v-deep .el-dialog__body {
228
+ padding: 10px 15px;
229
+ }
230
+
231
+ .dialog-footer .el-button {
232
+ width: 100px;
233
+ }
234
+ </style>
@@ -0,0 +1,24 @@
1
+ <template>
2
+ <el-form-item :label="i18nt('designer.setting.allowCreate')">
3
+ <el-switch v-model="optionModel.allowCreate"></el-switch>
4
+ </el-form-item>
5
+ </template>
6
+
7
+ <script>
8
+ import i18n from "@/utils/i18n"
9
+
10
+ export default {
11
+ name: "allowCreate-editor",
12
+ mixins: [i18n],
13
+ props: {
14
+ designer: Object,
15
+ selectedWidget: Object,
16
+ optionModel: Object,
17
+ },
18
+
19
+ }
20
+ </script>
21
+
22
+ <style scoped>
23
+
24
+ </style>
@@ -0,0 +1,28 @@
1
+ <template>
2
+ <div>
3
+ <el-form-item label-width="0">
4
+ <el-divider class="custom-divider">{{i18nt('designer.setting.inputButton')}}</el-divider>
5
+ </el-form-item>
6
+ <el-form-item :label="i18nt('designer.setting.appendButton')">
7
+ <el-switch v-model="optionModel.appendButton"></el-switch>
8
+ </el-form-item>
9
+ </div>
10
+ </template>
11
+
12
+ <script>
13
+ import i18n from "@/utils/i18n"
14
+
15
+ export default {
16
+ name: "appendButton-editor",
17
+ mixins: [i18n],
18
+ props: {
19
+ designer: Object,
20
+ selectedWidget: Object,
21
+ optionModel: Object,
22
+ },
23
+ }
24
+ </script>
25
+
26
+ <style scoped>
27
+
28
+ </style>
@@ -0,0 +1,23 @@
1
+ <template>
2
+ <el-form-item :label="i18nt('designer.setting.appendButtonDisabled')">
3
+ <el-switch v-model="optionModel.appendButtonDisabled"></el-switch>
4
+ </el-form-item>
5
+ </template>
6
+
7
+ <script>
8
+ import i18n from "@/utils/i18n"
9
+
10
+ export default {
11
+ name: "appendButtonDisabled-editor",
12
+ mixins: [i18n],
13
+ props: {
14
+ designer: Object,
15
+ selectedWidget: Object,
16
+ optionModel: Object,
17
+ },
18
+ }
19
+ </script>
20
+
21
+ <style scoped>
22
+
23
+ </style>