From e7a012f0eb7e9c055bdc7c5f87ee4209c7af8651 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?=E6=9D=8E=E5=BF=97=E5=BC=BA?= <2997723368@qq.com>
Date: Mon, 20 Mar 2023 14:43:23 +0800
Subject: [PATCH] =?UTF-8?q?=E5=8F=AF=E8=A7=86=E5=8C=96=E8=A1=A8=E5=8D=95?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
.gitignore | 28 +
README.md | 195 ++++
babel.config.js | 5 +
index_template/index_dev.html | 19 +
index_template/index_prod.html | 28 +
install-render.js | 29 +
install.js | 41 +
jsconfig.json | 10 +
license.txt | 8 +
package.json | 56 +
public/favicon.ico | Bin 0 -> 4286 bytes
public/index.html | 19 +
src/App.vue | 45 +
src/assets/ft-images/t1.png | Bin 0 -> 33254 bytes
src/assets/ft-images/t2.png | Bin 0 -> 35608 bytes
src/assets/ft-images/t3.png | Bin 0 -> 41621 bytes
src/assets/ft-images/t4.png | Bin 0 -> 30098 bytes
src/assets/ft-images/t5.png | Bin 0 -> 56386 bytes
src/assets/ft-images/t6.png | Bin 0 -> 32704 bytes
src/assets/ft-images/t7.png | Bin 0 -> 68981 bytes
src/assets/ft-images/t8.png | Bin 0 -> 50912 bytes
src/assets/vform-logo.png | Bin 0 -> 453 bytes
src/components/code-editor/index.vue | 134 +++
src/components/form-designer/designer.js | 962 ++++++++++++++++++
.../container-widget/container-wrapper.vue | 107 ++
.../container-widget/containerMixin.js | 93 ++
.../container-widget/grid-col-widget.vue | 314 ++++++
.../container-widget/grid-widget.vue | 93 ++
.../form-widget/container-widget/index.js | 24 +
.../container-widget/tab-widget.vue | 124 +++
.../container-widget/table-cell-widget.vue | 347 +++++++
.../container-widget/table-widget.vue | 116 +++
.../field-widget/button-widget.vue | 87 ++
.../field-widget/cascader-widget.vue | 120 +++
.../field-widget/checkbox-widget.vue | 105 ++
.../form-widget/field-widget/color-widget.vue | 99 ++
.../field-widget/date-range-widget.vue | 104 ++
.../form-widget/field-widget/date-widget.vue | 103 ++
.../field-widget/divider-widget.vue | 83 ++
.../form-widget/field-widget/fieldMixin.js | 613 +++++++++++
.../field-widget/file-upload-widget.vue | 303 ++++++
.../field-widget/form-item-wrapper.vue | 331 ++++++
.../field-widget/html-text-widget.vue | 82 ++
.../form-widget/field-widget/index.js | 10 +
.../form-widget/field-widget/input-widget.vue | 112 ++
.../field-widget/number-widget.vue | 103 ++
.../field-widget/picture-upload-widget.vue | 270 +++++
.../form-widget/field-widget/radio-widget.vue | 105 ++
.../form-widget/field-widget/rate-widget.vue | 102 ++
.../field-widget/rich-editor-widget.vue | 123 +++
.../field-widget/select-widget.vue | 123 +++
.../field-widget/slider-widget.vue | 100 ++
.../form-widget/field-widget/slot-widget.vue | 102 ++
.../field-widget/static-content-wrapper.vue | 196 ++++
.../field-widget/static-text-widget.vue | 83 ++
.../field-widget/switch-widget.vue | 101 ++
.../field-widget/textarea-widget.vue | 99 ++
.../field-widget/time-range-widget.vue | 104 ++
.../form-widget/field-widget/time-widget.vue | 103 ++
.../form-designer/form-widget/index.vue | 272 +++++
src/components/form-designer/index.vue | 500 +++++++++
.../form-designer/refMixinDesign.js | 28 +
.../setting-panel/form-setting.vue | 354 +++++++
.../form-designer/setting-panel/index.vue | 367 +++++++
.../setting-panel/option-items-setting.vue | 234 +++++
.../setting-panel/property-editor-factory.js | 173 ++++
.../property-editor/allowCreate-editor.vue | 24 +
.../property-editor/appendButton-editor.vue | 28 +
.../appendButtonDisabled-editor.vue | 23 +
.../automaticDropdown-editor.vue | 23 +
.../property-editor/border-editor.vue | 23 +
.../property-editor/buttonIcon-editor.vue | 23 +
.../property-editor/buttonStyle-editor.vue | 23 +
.../property-editor/clearable-editor.vue | 23 +
.../property-editor/columnWidth-editor.vue | 26 +
.../grid-col-offset-editor.vue | 24 +
.../grid-col-pull-editor.vue | 24 +
.../grid-col-push-editor.vue | 24 +
.../grid-col-responsive-editor.vue | 23 +
.../grid-col-span-editor.vue | 48 +
.../container-grid/colHeight-editor.vue | 28 +
.../container-grid/gutter-editor.vue | 81 ++
.../showBlankRow-editor.vue | 23 +
.../showRowNumber-editor.vue | 23 +
.../sub-form-labelAlign-editor.vue | 36 +
.../container-tab/tab-customClass-editor.vue | 119 +++
.../cellHeight-editor.vue | 23 +
.../container-table-cell/cellWidth-editor.vue | 23 +
.../container-table-cell/wordBreak-editor.vue | 23 +
.../property-editor/customClass-editor.vue | 40 +
.../property-editor/defaultValue-editor.vue | 25 +
.../property-editor/disabled-editor.vue | 23 +
.../property-editor/displayStyle-editor.vue | 26 +
.../property-editor/editable-editor.vue | 24 +
.../property-editor/endPlaceholder-editor.vue | 23 +
.../event-handler/eventMixin.js | 12 +
.../onAppendButtonClick-editor.vue | 30 +
.../event-handler/onBeforeUpload-editor.vue | 30 +
.../event-handler/onBlur-editor.vue | 30 +
.../event-handler/onChange-editor.vue | 30 +
.../event-handler/onClick-editor.vue | 30 +
.../event-handler/onCreated-editor.vue | 31 +
.../event-handler/onFileRemove.vue | 30 +
.../event-handler/onFocus-editor.vue | 30 +
.../event-handler/onInput-editor.vue | 30 +
.../event-handler/onMounted-editor.vue | 30 +
.../event-handler/onRemoteQuery-editor.vue | 30 +
.../event-handler/onSubFormRowAdd-editor.vue | 30 +
.../onSubFormRowChange-editor.vue | 30 +
.../onSubFormRowDelete-editor.vue | 30 +
.../onSubFormRowInsert-editor.vue | 30 +
.../event-handler/onUploadError-editor.vue | 30 +
.../event-handler/onUploadSuccess-editor.vue | 30 +
.../event-handler/onValidate-editor.vue | 30 +
.../field-button/button-type-editor.vue | 32 +
.../field-button/circle-editor.vue | 23 +
.../field-button/icon-editor.vue | 23 +
.../field-button/plain-editor.vue | 24 +
.../field-button/round-editor.vue | 23 +
.../cascader-defaultValue-editor.vue | 18 +
.../cascader-multiple-editor.vue | 24 +
.../field-cascader/checkStrictly-editor.vue | 23 +
.../field-cascader/showAllLevels-editor.vue | 23 +
.../checkbox-defaultValue-editor.vue | 18 +
.../field-color/color-defaultValue-editor.vue | 25 +
.../date-range-defaultValue-editor.vue | 26 +
.../date-range-format-editor.vue | 30 +
.../date-range-type-editor.vue | 27 +
.../date-range-valueFormat-editor.vue | 26 +
.../field-date/date-defaultValue-editor.vue | 26 +
.../field-date/date-format-editor.vue | 30 +
.../field-date/date-type-editor.vue | 30 +
.../field-date/date-valueFormat-editor.vue | 26 +
.../field-divider/contentPosition-editor.vue | 27 +
.../file-upload-fileTypes-editor.vue | 44 +
.../field-html-text/htmlContent-editor.vue | 29 +
.../field-number/controlsPosition-editor.vue | 27 +
.../picture-upload-fileTypes-editor.vue | 44 +
.../field-radio/radio-defaultValue-editor.vue | 18 +
.../field-rate/allowHalf-editor.vue | 23 +
.../field-rate/highThreshold-editor.vue | 24 +
.../field-rate/lowThreshold-editor.vue | 24 +
.../field-rate/rate-defaultValue-editor.vue | 26 +
.../field-rate/rate-max-editor.vue | 25 +
.../field-rate/showScore-editor.vue | 23 +
.../field-rate/showText-editor.vue | 23 +
.../select-defaultValue-editor.vue | 18 +
.../field-slider/range-editor.vue | 23 +
.../field-slider/showStops-editor.vue | 23 +
.../field-slider/vertical-editor.vue | 23 +
.../field-static-text/fontSize-editor.vue | 23 +
.../field-static-text/preWrap-editor.vue | 23 +
.../field-static-text/textContent-editor.vue | 23 +
.../field-switch/activeColor-editor.vue | 23 +
.../field-switch/activeText-editor.vue | 23 +
.../field-switch/inactiveColor-editor.vue | 23 +
.../field-switch/inactiveText-editor.vue | 23 +
.../switch-defaultValue-editor.vue | 25 +
.../field-switch/switchWidth-editor.vue | 23 +
.../time-range-defaultValue-editor.vue | 26 +
.../time-range-format-editor.vue | 27 +
.../field-time/time-defaultValue-editor.vue | 26 +
.../field-time/time-format-editor.vue | 27 +
.../property-editor/fileMaxSize-editor.vue | 23 +
.../property-editor/filterable-editor.vue | 23 +
.../property-editor/hidden-editor.vue | 23 +
.../setting-panel/property-editor/index.js | 10 +
.../property-editor/label-editor.vue | 30 +
.../property-editor/labelAlign-editor.vue | 42 +
.../property-editor/labelHidden-editor.vue | 23 +
.../property-editor/labelIconClass-editor.vue | 28 +
.../labelIconPosition-editor.vue | 37 +
.../property-editor/labelTooltip-editor.vue | 23 +
.../property-editor/labelWidth-editor.vue | 25 +
.../property-editor/limit-editor.vue | 24 +
.../property-editor/max-editor.vue | 39 +
.../property-editor/maxLength-editor.vue | 40 +
.../property-editor/min-editor.vue | 40 +
.../property-editor/minLength-editor.vue | 41 +
.../property-editor/multiple-editor.vue | 24 +
.../property-editor/multipleLimit-editor.vue | 24 +
.../property-editor/multipleSelect-editor.vue | 24 +
.../property-editor/name-editor.vue | 89 ++
.../property-editor/optionItems-editor.vue | 28 +
.../property-editor/placeholder-editor.vue | 24 +
.../property-editor/precision-editor.vue | 23 +
.../property-editor/prefixIcon-editor.vue | 23 +
.../property-editor/propertyMixin.js | 55 +
.../property-editor/readonly-editor.vue | 23 +
.../property-editor/remote-editor.vue | 25 +
.../property-editor/required-editor.vue | 23 +
.../property-editor/requiredHint-editor.vue | 24 +
.../property-editor/rows-editor.vue | 24 +
.../property-editor/showFileList-editor.vue | 23 +
.../property-editor/showPassword-editor.vue | 24 +
.../property-editor/showWordLimit-editor.vue | 23 +
.../property-editor/size-editor.vue | 38 +
.../startPlaceholder-editor.vue | 23 +
.../property-editor/step-editor.vue | 23 +
.../property-editor/suffixIcon-editor.vue | 23 +
.../property-editor/textAlign-editor.vue | 35 +
.../property-editor/type-editor.vue | 33 +
.../property-editor/uploadTip-editor.vue | 24 +
.../property-editor/uploadURL-editor.vue | 28 +
.../property-editor/validation-editor.vue | 48 +
.../property-editor/validationHint-editor.vue | 23 +
.../withCredentials-editor.vue | 23 +
.../setting-panel/propertyRegister.js | 215 ++++
.../form-designer/toolbar-panel/index.vue | 886 ++++++++++++++++
.../form-designer/widget-panel/index.vue | 386 +++++++
.../widget-panel/templatesConfig.js | 58 ++
.../widget-panel/widgetsConfig.js | 934 +++++++++++++++++
.../container-item/container-item-wrapper.vue | 37 +
.../container-item/containerItemMixin.js | 221 ++++
.../container-item/grid-col-item.vue | 126 +++
.../form-render/container-item/grid-item.vue | 59 ++
.../form-render/container-item/index.js | 24 +
.../container-item/sub-form-item.vue | 417 ++++++++
.../form-render/container-item/tab-item.vue | 99 ++
.../container-item/table-cell-item.vue | 72 ++
.../form-render/container-item/table-item.vue | 70 ++
src/components/form-render/index.vue | 721 +++++++++++++
src/components/form-render/refMixin.js | 30 +
src/components/svg-icon/index.vue | 49 +
src/components/v-table/index.vue | 106 ++
src/extension/extension-helper.js | 23 +
src/extension/extension-loader.js | 116 +++
src/extension/samples/alert/alert-widget.vue | 72 ++
src/extension/samples/card/card-item.vue | 100 ++
src/extension/samples/card/card-widget.vue | 132 +++
src/extension/samples/extension-schema.js | 36 +
.../samples/extension-sfc-generator.js | 50 +
src/iconfont/iconfont.css | 29 +
src/iconfont/iconfont.eot | Bin 0 -> 2388 bytes
src/iconfont/iconfont.js | 1 +
src/iconfont/iconfont.json | 37 +
src/iconfont/iconfont.svg | 35 +
src/iconfont/iconfont.ttf | Bin 0 -> 2468 bytes
src/iconfont/iconfont.woff | Bin 0 -> 1448 bytes
src/iconfont/iconfont.woff2 | Bin 0 -> 1072 bytes
src/icons/index.js | 3 +
src/icons/svg/alert.svg | 1 +
src/icons/svg/button.svg | 1 +
src/icons/svg/card.svg | 1 +
src/icons/svg/cascader-field.svg | 1 +
src/icons/svg/checkbox-field.svg | 1 +
src/icons/svg/color-field.svg | 1 +
src/icons/svg/custom-component.svg | 1 +
src/icons/svg/data-table.svg | 1 +
src/icons/svg/date-field.svg | 1 +
src/icons/svg/date-range-field.svg | 1 +
src/icons/svg/divider.svg | 1 +
src/icons/svg/document.svg | 1 +
src/icons/svg/drag.svg | 1 +
src/icons/svg/file-upload-field.svg | 1 +
src/icons/svg/github.svg | 1 +
src/icons/svg/grid.svg | 1 +
src/icons/svg/html-text.svg | 1 +
src/icons/svg/node-tree.svg | 1 +
src/icons/svg/number-field.svg | 1 +
src/icons/svg/picture-upload-field.svg | 1 +
src/icons/svg/radio-field.svg | 1 +
src/icons/svg/rate-field.svg | 1 +
src/icons/svg/redo.svg | 1 +
src/icons/svg/rich-editor-field.svg | 1 +
src/icons/svg/section.svg | 1 +
src/icons/svg/select-field.svg | 1 +
src/icons/svg/slider-field.svg | 1 +
src/icons/svg/slot-component.svg | 1 +
src/icons/svg/slot-field.svg | 1 +
src/icons/svg/static-text.svg | 1 +
src/icons/svg/sub-form.svg | 1 +
src/icons/svg/switch-field.svg | 1 +
src/icons/svg/tab.svg | 1 +
src/icons/svg/table.svg | 1 +
src/icons/svg/text-field.svg | 1 +
src/icons/svg/textarea-field.svg | 1 +
src/icons/svg/time-field.svg | 1 +
src/icons/svg/time-range-field.svg | 1 +
src/icons/svg/undo.svg | 1 +
src/icons/svg/vue-sfc.svg | 1 +
src/lang/en-US.js | 354 +++++++
src/lang/en-US_extension.js | 26 +
src/lang/en-US_render.js | 38 +
src/lang/zh-CN.js | 354 +++++++
src/lang/zh-CN_extension.js | 26 +
src/lang/zh-CN_render.js | 38 +
src/main.js | 29 +
src/styles/global.scss | 108 ++
src/styles/index.scss | 15 +
src/utils/beautifierLoader.js | 77 ++
src/utils/code-generator.js | 91 ++
src/utils/config.js | 9 +
src/utils/debug-console.js | 7 +
src/utils/directive.js | 74 ++
src/utils/emitter.js | 34 +
src/utils/format.js | 214 ++++
src/utils/i18n.js | 95 ++
src/utils/sfc-generator.js | 583 +++++++++++
src/utils/smart-vue-i18n/index.js | 56 +
src/utils/smart-vue-i18n/utils.js | 47 +
src/utils/util.js | 370 +++++++
src/utils/validators.js | 127 +++
src/utils/vue2js-generator.js | 144 +++
src/utils/vue3js-generator.js | 70 ++
vue.config.js | 93 ++
306 files changed, 20837 insertions(+)
create mode 100644 .gitignore
create mode 100644 README.md
create mode 100644 babel.config.js
create mode 100644 index_template/index_dev.html
create mode 100644 index_template/index_prod.html
create mode 100644 install-render.js
create mode 100644 install.js
create mode 100644 jsconfig.json
create mode 100644 license.txt
create mode 100644 package.json
create mode 100644 public/favicon.ico
create mode 100644 public/index.html
create mode 100644 src/App.vue
create mode 100644 src/assets/ft-images/t1.png
create mode 100644 src/assets/ft-images/t2.png
create mode 100644 src/assets/ft-images/t3.png
create mode 100644 src/assets/ft-images/t4.png
create mode 100644 src/assets/ft-images/t5.png
create mode 100644 src/assets/ft-images/t6.png
create mode 100644 src/assets/ft-images/t7.png
create mode 100644 src/assets/ft-images/t8.png
create mode 100644 src/assets/vform-logo.png
create mode 100644 src/components/code-editor/index.vue
create mode 100644 src/components/form-designer/designer.js
create mode 100644 src/components/form-designer/form-widget/container-widget/container-wrapper.vue
create mode 100644 src/components/form-designer/form-widget/container-widget/containerMixin.js
create mode 100644 src/components/form-designer/form-widget/container-widget/grid-col-widget.vue
create mode 100644 src/components/form-designer/form-widget/container-widget/grid-widget.vue
create mode 100644 src/components/form-designer/form-widget/container-widget/index.js
create mode 100644 src/components/form-designer/form-widget/container-widget/tab-widget.vue
create mode 100644 src/components/form-designer/form-widget/container-widget/table-cell-widget.vue
create mode 100644 src/components/form-designer/form-widget/container-widget/table-widget.vue
create mode 100644 src/components/form-designer/form-widget/field-widget/button-widget.vue
create mode 100644 src/components/form-designer/form-widget/field-widget/cascader-widget.vue
create mode 100644 src/components/form-designer/form-widget/field-widget/checkbox-widget.vue
create mode 100644 src/components/form-designer/form-widget/field-widget/color-widget.vue
create mode 100644 src/components/form-designer/form-widget/field-widget/date-range-widget.vue
create mode 100644 src/components/form-designer/form-widget/field-widget/date-widget.vue
create mode 100644 src/components/form-designer/form-widget/field-widget/divider-widget.vue
create mode 100644 src/components/form-designer/form-widget/field-widget/fieldMixin.js
create mode 100644 src/components/form-designer/form-widget/field-widget/file-upload-widget.vue
create mode 100644 src/components/form-designer/form-widget/field-widget/form-item-wrapper.vue
create mode 100644 src/components/form-designer/form-widget/field-widget/html-text-widget.vue
create mode 100644 src/components/form-designer/form-widget/field-widget/index.js
create mode 100644 src/components/form-designer/form-widget/field-widget/input-widget.vue
create mode 100644 src/components/form-designer/form-widget/field-widget/number-widget.vue
create mode 100644 src/components/form-designer/form-widget/field-widget/picture-upload-widget.vue
create mode 100644 src/components/form-designer/form-widget/field-widget/radio-widget.vue
create mode 100644 src/components/form-designer/form-widget/field-widget/rate-widget.vue
create mode 100644 src/components/form-designer/form-widget/field-widget/rich-editor-widget.vue
create mode 100644 src/components/form-designer/form-widget/field-widget/select-widget.vue
create mode 100644 src/components/form-designer/form-widget/field-widget/slider-widget.vue
create mode 100644 src/components/form-designer/form-widget/field-widget/slot-widget.vue
create mode 100644 src/components/form-designer/form-widget/field-widget/static-content-wrapper.vue
create mode 100644 src/components/form-designer/form-widget/field-widget/static-text-widget.vue
create mode 100644 src/components/form-designer/form-widget/field-widget/switch-widget.vue
create mode 100644 src/components/form-designer/form-widget/field-widget/textarea-widget.vue
create mode 100644 src/components/form-designer/form-widget/field-widget/time-range-widget.vue
create mode 100644 src/components/form-designer/form-widget/field-widget/time-widget.vue
create mode 100644 src/components/form-designer/form-widget/index.vue
create mode 100644 src/components/form-designer/index.vue
create mode 100644 src/components/form-designer/refMixinDesign.js
create mode 100644 src/components/form-designer/setting-panel/form-setting.vue
create mode 100644 src/components/form-designer/setting-panel/index.vue
create mode 100644 src/components/form-designer/setting-panel/option-items-setting.vue
create mode 100644 src/components/form-designer/setting-panel/property-editor-factory.js
create mode 100644 src/components/form-designer/setting-panel/property-editor/allowCreate-editor.vue
create mode 100644 src/components/form-designer/setting-panel/property-editor/appendButton-editor.vue
create mode 100644 src/components/form-designer/setting-panel/property-editor/appendButtonDisabled-editor.vue
create mode 100644 src/components/form-designer/setting-panel/property-editor/automaticDropdown-editor.vue
create mode 100644 src/components/form-designer/setting-panel/property-editor/border-editor.vue
create mode 100644 src/components/form-designer/setting-panel/property-editor/buttonIcon-editor.vue
create mode 100644 src/components/form-designer/setting-panel/property-editor/buttonStyle-editor.vue
create mode 100644 src/components/form-designer/setting-panel/property-editor/clearable-editor.vue
create mode 100644 src/components/form-designer/setting-panel/property-editor/columnWidth-editor.vue
create mode 100644 src/components/form-designer/setting-panel/property-editor/container-grid-col/grid-col-offset-editor.vue
create mode 100644 src/components/form-designer/setting-panel/property-editor/container-grid-col/grid-col-pull-editor.vue
create mode 100644 src/components/form-designer/setting-panel/property-editor/container-grid-col/grid-col-push-editor.vue
create mode 100644 src/components/form-designer/setting-panel/property-editor/container-grid-col/grid-col-responsive-editor.vue
create mode 100644 src/components/form-designer/setting-panel/property-editor/container-grid-col/grid-col-span-editor.vue
create mode 100644 src/components/form-designer/setting-panel/property-editor/container-grid/colHeight-editor.vue
create mode 100644 src/components/form-designer/setting-panel/property-editor/container-grid/gutter-editor.vue
create mode 100644 src/components/form-designer/setting-panel/property-editor/container-sub-form/showBlankRow-editor.vue
create mode 100644 src/components/form-designer/setting-panel/property-editor/container-sub-form/showRowNumber-editor.vue
create mode 100644 src/components/form-designer/setting-panel/property-editor/container-sub-form/sub-form-labelAlign-editor.vue
create mode 100644 src/components/form-designer/setting-panel/property-editor/container-tab/tab-customClass-editor.vue
create mode 100644 src/components/form-designer/setting-panel/property-editor/container-table-cell/cellHeight-editor.vue
create mode 100644 src/components/form-designer/setting-panel/property-editor/container-table-cell/cellWidth-editor.vue
create mode 100644 src/components/form-designer/setting-panel/property-editor/container-table-cell/wordBreak-editor.vue
create mode 100644 src/components/form-designer/setting-panel/property-editor/customClass-editor.vue
create mode 100644 src/components/form-designer/setting-panel/property-editor/defaultValue-editor.vue
create mode 100644 src/components/form-designer/setting-panel/property-editor/disabled-editor.vue
create mode 100644 src/components/form-designer/setting-panel/property-editor/displayStyle-editor.vue
create mode 100644 src/components/form-designer/setting-panel/property-editor/editable-editor.vue
create mode 100644 src/components/form-designer/setting-panel/property-editor/endPlaceholder-editor.vue
create mode 100644 src/components/form-designer/setting-panel/property-editor/event-handler/eventMixin.js
create mode 100644 src/components/form-designer/setting-panel/property-editor/event-handler/onAppendButtonClick-editor.vue
create mode 100644 src/components/form-designer/setting-panel/property-editor/event-handler/onBeforeUpload-editor.vue
create mode 100644 src/components/form-designer/setting-panel/property-editor/event-handler/onBlur-editor.vue
create mode 100644 src/components/form-designer/setting-panel/property-editor/event-handler/onChange-editor.vue
create mode 100644 src/components/form-designer/setting-panel/property-editor/event-handler/onClick-editor.vue
create mode 100644 src/components/form-designer/setting-panel/property-editor/event-handler/onCreated-editor.vue
create mode 100644 src/components/form-designer/setting-panel/property-editor/event-handler/onFileRemove.vue
create mode 100644 src/components/form-designer/setting-panel/property-editor/event-handler/onFocus-editor.vue
create mode 100644 src/components/form-designer/setting-panel/property-editor/event-handler/onInput-editor.vue
create mode 100644 src/components/form-designer/setting-panel/property-editor/event-handler/onMounted-editor.vue
create mode 100644 src/components/form-designer/setting-panel/property-editor/event-handler/onRemoteQuery-editor.vue
create mode 100644 src/components/form-designer/setting-panel/property-editor/event-handler/onSubFormRowAdd-editor.vue
create mode 100644 src/components/form-designer/setting-panel/property-editor/event-handler/onSubFormRowChange-editor.vue
create mode 100644 src/components/form-designer/setting-panel/property-editor/event-handler/onSubFormRowDelete-editor.vue
create mode 100644 src/components/form-designer/setting-panel/property-editor/event-handler/onSubFormRowInsert-editor.vue
create mode 100644 src/components/form-designer/setting-panel/property-editor/event-handler/onUploadError-editor.vue
create mode 100644 src/components/form-designer/setting-panel/property-editor/event-handler/onUploadSuccess-editor.vue
create mode 100644 src/components/form-designer/setting-panel/property-editor/event-handler/onValidate-editor.vue
create mode 100644 src/components/form-designer/setting-panel/property-editor/field-button/button-type-editor.vue
create mode 100644 src/components/form-designer/setting-panel/property-editor/field-button/circle-editor.vue
create mode 100644 src/components/form-designer/setting-panel/property-editor/field-button/icon-editor.vue
create mode 100644 src/components/form-designer/setting-panel/property-editor/field-button/plain-editor.vue
create mode 100644 src/components/form-designer/setting-panel/property-editor/field-button/round-editor.vue
create mode 100644 src/components/form-designer/setting-panel/property-editor/field-cascader/cascader-defaultValue-editor.vue
create mode 100644 src/components/form-designer/setting-panel/property-editor/field-cascader/cascader-multiple-editor.vue
create mode 100644 src/components/form-designer/setting-panel/property-editor/field-cascader/checkStrictly-editor.vue
create mode 100644 src/components/form-designer/setting-panel/property-editor/field-cascader/showAllLevels-editor.vue
create mode 100644 src/components/form-designer/setting-panel/property-editor/field-checkbox/checkbox-defaultValue-editor.vue
create mode 100644 src/components/form-designer/setting-panel/property-editor/field-color/color-defaultValue-editor.vue
create mode 100644 src/components/form-designer/setting-panel/property-editor/field-date-range/date-range-defaultValue-editor.vue
create mode 100644 src/components/form-designer/setting-panel/property-editor/field-date-range/date-range-format-editor.vue
create mode 100644 src/components/form-designer/setting-panel/property-editor/field-date-range/date-range-type-editor.vue
create mode 100644 src/components/form-designer/setting-panel/property-editor/field-date-range/date-range-valueFormat-editor.vue
create mode 100644 src/components/form-designer/setting-panel/property-editor/field-date/date-defaultValue-editor.vue
create mode 100644 src/components/form-designer/setting-panel/property-editor/field-date/date-format-editor.vue
create mode 100644 src/components/form-designer/setting-panel/property-editor/field-date/date-type-editor.vue
create mode 100644 src/components/form-designer/setting-panel/property-editor/field-date/date-valueFormat-editor.vue
create mode 100644 src/components/form-designer/setting-panel/property-editor/field-divider/contentPosition-editor.vue
create mode 100644 src/components/form-designer/setting-panel/property-editor/field-file-upload/file-upload-fileTypes-editor.vue
create mode 100644 src/components/form-designer/setting-panel/property-editor/field-html-text/htmlContent-editor.vue
create mode 100644 src/components/form-designer/setting-panel/property-editor/field-number/controlsPosition-editor.vue
create mode 100644 src/components/form-designer/setting-panel/property-editor/field-picture-upload/picture-upload-fileTypes-editor.vue
create mode 100644 src/components/form-designer/setting-panel/property-editor/field-radio/radio-defaultValue-editor.vue
create mode 100644 src/components/form-designer/setting-panel/property-editor/field-rate/allowHalf-editor.vue
create mode 100644 src/components/form-designer/setting-panel/property-editor/field-rate/highThreshold-editor.vue
create mode 100644 src/components/form-designer/setting-panel/property-editor/field-rate/lowThreshold-editor.vue
create mode 100644 src/components/form-designer/setting-panel/property-editor/field-rate/rate-defaultValue-editor.vue
create mode 100644 src/components/form-designer/setting-panel/property-editor/field-rate/rate-max-editor.vue
create mode 100644 src/components/form-designer/setting-panel/property-editor/field-rate/showScore-editor.vue
create mode 100644 src/components/form-designer/setting-panel/property-editor/field-rate/showText-editor.vue
create mode 100644 src/components/form-designer/setting-panel/property-editor/field-select/select-defaultValue-editor.vue
create mode 100644 src/components/form-designer/setting-panel/property-editor/field-slider/range-editor.vue
create mode 100644 src/components/form-designer/setting-panel/property-editor/field-slider/showStops-editor.vue
create mode 100644 src/components/form-designer/setting-panel/property-editor/field-slider/vertical-editor.vue
create mode 100644 src/components/form-designer/setting-panel/property-editor/field-static-text/fontSize-editor.vue
create mode 100644 src/components/form-designer/setting-panel/property-editor/field-static-text/preWrap-editor.vue
create mode 100644 src/components/form-designer/setting-panel/property-editor/field-static-text/textContent-editor.vue
create mode 100644 src/components/form-designer/setting-panel/property-editor/field-switch/activeColor-editor.vue
create mode 100644 src/components/form-designer/setting-panel/property-editor/field-switch/activeText-editor.vue
create mode 100644 src/components/form-designer/setting-panel/property-editor/field-switch/inactiveColor-editor.vue
create mode 100644 src/components/form-designer/setting-panel/property-editor/field-switch/inactiveText-editor.vue
create mode 100644 src/components/form-designer/setting-panel/property-editor/field-switch/switch-defaultValue-editor.vue
create mode 100644 src/components/form-designer/setting-panel/property-editor/field-switch/switchWidth-editor.vue
create mode 100644 src/components/form-designer/setting-panel/property-editor/field-time-range/time-range-defaultValue-editor.vue
create mode 100644 src/components/form-designer/setting-panel/property-editor/field-time-range/time-range-format-editor.vue
create mode 100644 src/components/form-designer/setting-panel/property-editor/field-time/time-defaultValue-editor.vue
create mode 100644 src/components/form-designer/setting-panel/property-editor/field-time/time-format-editor.vue
create mode 100644 src/components/form-designer/setting-panel/property-editor/fileMaxSize-editor.vue
create mode 100644 src/components/form-designer/setting-panel/property-editor/filterable-editor.vue
create mode 100644 src/components/form-designer/setting-panel/property-editor/hidden-editor.vue
create mode 100644 src/components/form-designer/setting-panel/property-editor/index.js
create mode 100644 src/components/form-designer/setting-panel/property-editor/label-editor.vue
create mode 100644 src/components/form-designer/setting-panel/property-editor/labelAlign-editor.vue
create mode 100644 src/components/form-designer/setting-panel/property-editor/labelHidden-editor.vue
create mode 100644 src/components/form-designer/setting-panel/property-editor/labelIconClass-editor.vue
create mode 100644 src/components/form-designer/setting-panel/property-editor/labelIconPosition-editor.vue
create mode 100644 src/components/form-designer/setting-panel/property-editor/labelTooltip-editor.vue
create mode 100644 src/components/form-designer/setting-panel/property-editor/labelWidth-editor.vue
create mode 100644 src/components/form-designer/setting-panel/property-editor/limit-editor.vue
create mode 100644 src/components/form-designer/setting-panel/property-editor/max-editor.vue
create mode 100644 src/components/form-designer/setting-panel/property-editor/maxLength-editor.vue
create mode 100644 src/components/form-designer/setting-panel/property-editor/min-editor.vue
create mode 100644 src/components/form-designer/setting-panel/property-editor/minLength-editor.vue
create mode 100644 src/components/form-designer/setting-panel/property-editor/multiple-editor.vue
create mode 100644 src/components/form-designer/setting-panel/property-editor/multipleLimit-editor.vue
create mode 100644 src/components/form-designer/setting-panel/property-editor/multipleSelect-editor.vue
create mode 100644 src/components/form-designer/setting-panel/property-editor/name-editor.vue
create mode 100644 src/components/form-designer/setting-panel/property-editor/optionItems-editor.vue
create mode 100644 src/components/form-designer/setting-panel/property-editor/placeholder-editor.vue
create mode 100644 src/components/form-designer/setting-panel/property-editor/precision-editor.vue
create mode 100644 src/components/form-designer/setting-panel/property-editor/prefixIcon-editor.vue
create mode 100644 src/components/form-designer/setting-panel/property-editor/propertyMixin.js
create mode 100644 src/components/form-designer/setting-panel/property-editor/readonly-editor.vue
create mode 100644 src/components/form-designer/setting-panel/property-editor/remote-editor.vue
create mode 100644 src/components/form-designer/setting-panel/property-editor/required-editor.vue
create mode 100644 src/components/form-designer/setting-panel/property-editor/requiredHint-editor.vue
create mode 100644 src/components/form-designer/setting-panel/property-editor/rows-editor.vue
create mode 100644 src/components/form-designer/setting-panel/property-editor/showFileList-editor.vue
create mode 100644 src/components/form-designer/setting-panel/property-editor/showPassword-editor.vue
create mode 100644 src/components/form-designer/setting-panel/property-editor/showWordLimit-editor.vue
create mode 100644 src/components/form-designer/setting-panel/property-editor/size-editor.vue
create mode 100644 src/components/form-designer/setting-panel/property-editor/startPlaceholder-editor.vue
create mode 100644 src/components/form-designer/setting-panel/property-editor/step-editor.vue
create mode 100644 src/components/form-designer/setting-panel/property-editor/suffixIcon-editor.vue
create mode 100644 src/components/form-designer/setting-panel/property-editor/textAlign-editor.vue
create mode 100644 src/components/form-designer/setting-panel/property-editor/type-editor.vue
create mode 100644 src/components/form-designer/setting-panel/property-editor/uploadTip-editor.vue
create mode 100644 src/components/form-designer/setting-panel/property-editor/uploadURL-editor.vue
create mode 100644 src/components/form-designer/setting-panel/property-editor/validation-editor.vue
create mode 100644 src/components/form-designer/setting-panel/property-editor/validationHint-editor.vue
create mode 100644 src/components/form-designer/setting-panel/property-editor/withCredentials-editor.vue
create mode 100644 src/components/form-designer/setting-panel/propertyRegister.js
create mode 100644 src/components/form-designer/toolbar-panel/index.vue
create mode 100644 src/components/form-designer/widget-panel/index.vue
create mode 100644 src/components/form-designer/widget-panel/templatesConfig.js
create mode 100644 src/components/form-designer/widget-panel/widgetsConfig.js
create mode 100644 src/components/form-render/container-item/container-item-wrapper.vue
create mode 100644 src/components/form-render/container-item/containerItemMixin.js
create mode 100644 src/components/form-render/container-item/grid-col-item.vue
create mode 100644 src/components/form-render/container-item/grid-item.vue
create mode 100644 src/components/form-render/container-item/index.js
create mode 100644 src/components/form-render/container-item/sub-form-item.vue
create mode 100644 src/components/form-render/container-item/tab-item.vue
create mode 100644 src/components/form-render/container-item/table-cell-item.vue
create mode 100644 src/components/form-render/container-item/table-item.vue
create mode 100644 src/components/form-render/index.vue
create mode 100644 src/components/form-render/refMixin.js
create mode 100644 src/components/svg-icon/index.vue
create mode 100644 src/components/v-table/index.vue
create mode 100644 src/extension/extension-helper.js
create mode 100644 src/extension/extension-loader.js
create mode 100644 src/extension/samples/alert/alert-widget.vue
create mode 100644 src/extension/samples/card/card-item.vue
create mode 100644 src/extension/samples/card/card-widget.vue
create mode 100644 src/extension/samples/extension-schema.js
create mode 100644 src/extension/samples/extension-sfc-generator.js
create mode 100644 src/iconfont/iconfont.css
create mode 100644 src/iconfont/iconfont.eot
create mode 100644 src/iconfont/iconfont.js
create mode 100644 src/iconfont/iconfont.json
create mode 100644 src/iconfont/iconfont.svg
create mode 100644 src/iconfont/iconfont.ttf
create mode 100644 src/iconfont/iconfont.woff
create mode 100644 src/iconfont/iconfont.woff2
create mode 100644 src/icons/index.js
create mode 100644 src/icons/svg/alert.svg
create mode 100644 src/icons/svg/button.svg
create mode 100644 src/icons/svg/card.svg
create mode 100644 src/icons/svg/cascader-field.svg
create mode 100644 src/icons/svg/checkbox-field.svg
create mode 100644 src/icons/svg/color-field.svg
create mode 100644 src/icons/svg/custom-component.svg
create mode 100644 src/icons/svg/data-table.svg
create mode 100644 src/icons/svg/date-field.svg
create mode 100644 src/icons/svg/date-range-field.svg
create mode 100644 src/icons/svg/divider.svg
create mode 100644 src/icons/svg/document.svg
create mode 100644 src/icons/svg/drag.svg
create mode 100644 src/icons/svg/file-upload-field.svg
create mode 100644 src/icons/svg/github.svg
create mode 100644 src/icons/svg/grid.svg
create mode 100644 src/icons/svg/html-text.svg
create mode 100644 src/icons/svg/node-tree.svg
create mode 100644 src/icons/svg/number-field.svg
create mode 100644 src/icons/svg/picture-upload-field.svg
create mode 100644 src/icons/svg/radio-field.svg
create mode 100644 src/icons/svg/rate-field.svg
create mode 100644 src/icons/svg/redo.svg
create mode 100644 src/icons/svg/rich-editor-field.svg
create mode 100644 src/icons/svg/section.svg
create mode 100644 src/icons/svg/select-field.svg
create mode 100644 src/icons/svg/slider-field.svg
create mode 100644 src/icons/svg/slot-component.svg
create mode 100644 src/icons/svg/slot-field.svg
create mode 100644 src/icons/svg/static-text.svg
create mode 100644 src/icons/svg/sub-form.svg
create mode 100644 src/icons/svg/switch-field.svg
create mode 100644 src/icons/svg/tab.svg
create mode 100644 src/icons/svg/table.svg
create mode 100644 src/icons/svg/text-field.svg
create mode 100644 src/icons/svg/textarea-field.svg
create mode 100644 src/icons/svg/time-field.svg
create mode 100644 src/icons/svg/time-range-field.svg
create mode 100644 src/icons/svg/undo.svg
create mode 100644 src/icons/svg/vue-sfc.svg
create mode 100644 src/lang/en-US.js
create mode 100644 src/lang/en-US_extension.js
create mode 100644 src/lang/en-US_render.js
create mode 100644 src/lang/zh-CN.js
create mode 100644 src/lang/zh-CN_extension.js
create mode 100644 src/lang/zh-CN_render.js
create mode 100644 src/main.js
create mode 100644 src/styles/global.scss
create mode 100644 src/styles/index.scss
create mode 100644 src/utils/beautifierLoader.js
create mode 100644 src/utils/code-generator.js
create mode 100644 src/utils/config.js
create mode 100644 src/utils/debug-console.js
create mode 100644 src/utils/directive.js
create mode 100644 src/utils/emitter.js
create mode 100644 src/utils/format.js
create mode 100644 src/utils/i18n.js
create mode 100644 src/utils/sfc-generator.js
create mode 100644 src/utils/smart-vue-i18n/index.js
create mode 100644 src/utils/smart-vue-i18n/utils.js
create mode 100644 src/utils/util.js
create mode 100644 src/utils/validators.js
create mode 100644 src/utils/vue2js-generator.js
create mode 100644 src/utils/vue3js-generator.js
create mode 100644 vue.config.js
diff --git a/.gitignore b/.gitignore
new file mode 100644
index 0000000..8dcab82
--- /dev/null
+++ b/.gitignore
@@ -0,0 +1,28 @@
+.DS_Store
+node_modules
+/dist
+/dist0/
+/dist2
+.VSCodeCounter
+
+# local env files
+.env.local
+.env.*.local
+
+# Log files
+npm-debug.log*
+yarn-debug.log*
+yarn-error.log*
+pnpm-debug.log*
+
+# Editor directories and files
+.idea
+.vscode
+*.suo
+*.ntvs*
+*.njsproj
+*.sln
+*.sw?
+/package-lock.json
+/VariantForm.iml
+yarn.lock
diff --git a/README.md b/README.md
new file mode 100644
index 0000000..0aaf98f
--- /dev/null
+++ b/README.md
@@ -0,0 +1,195 @@
+# Variant Form
+#### 一款高效的Vue低代码表单,可视化设计,一键生成源码,享受更多摸鱼时间。
+
+
+
+
+
+### 立即体验
+[在线Demo](http://120.92.142.115/)
+
+### 立即体验VForm Pro高级版(提供商业支持)
+[Pro Demo](https://vform666.com/pages/pro/)
+
+### 视频教程集合:
+[B站观看](https://space.bilibili.com/626932375)
+
+### Vue 3正式版已发布
+[立即进入](https://gitee.com/vdpadmin/variant-form3-vite)
+
+### 🎉🎉基于Vant组件库的Mobile版本已发布🎉🎉
+[立即进入](https://vform666.com/vform-mobile.html)
+
+
+### 友情链接
+[Fantastic-admin](https://hooray.gitee.io/fantastic-admin/) —— 一款开箱即用的 Vue 中后台管理系统框架(支持Vue2/Vue3)
+
+[REBUILD](https://getrebuild.com/) —— 高度可定制化的企业管理系统
+
+
+
+### 功能一览
+```
+> 拖拽式可视化表单设计;
+> 支持PC、Pad、H5三种布局;
+> 支持运行时动态加载表单;
+> 支持表单复杂交互控制;
+> 支持自定义CSS样式;
+> 支持自定义校验逻辑;
+> 支持国际化多语言;
+> 兼容IE 11浏览器;
+> 可导出Vue组件、HTML源码;
+> 可导出Vue的SFC单文件组件;
+> 支持开发自定义组件;
+> 支持响应式自适应布局;
+> 支持VS Code插件;
+> 更多功能等你探究...;
+```
+
+### 安装依赖
+```
+npm install --registry=https://registry.npm.taobao.org
+```
+
+### 开发调试
+```
+npm run serve
+```
+
+### 生产打包
+```
+npm run build
+```
+
+### 表单设计器 + 表单渲染器打包
+```
+npm run lib
+```
+
+### 表单渲染器打包
+```
+npm run lib-render
+```
+
+### 浏览器兼容性
+```Chrome(及同内核的浏览器如QQ浏览器、360浏览器等等),Edge, Firefox,Safari,IE 11```
+
+
+
+### 跟Vue项目集成
+
+
+
+#### 1. 安装包
+ ```bash
+ npm i vform-builds
+ ```
+或
+ ```bash
+ yarn add vform-builds
+ ```
+
+
+
+#### 2. 引入并全局注册VForm组件
+```javascript
+import Vue from 'vue'
+import App from './App.vue'
+
+import ElementUI from 'element-ui' //引入element-ui库
+import VForm from 'vform-builds' //引入VForm库
+
+import 'element-ui/lib/theme-chalk/index.css' //引入element-ui样式
+import 'vform-builds/dist/VFormDesigner.css' //引入VForm样式
+
+Vue.config.productionTip = false
+
+Vue.use(ElementUI) //全局注册element-ui
+Vue.use(VForm) //全局注册VForm(同时注册了v-form-designer和v-form-render组件)
+
+new Vue({
+ render: h => h(App),
+}).$mount('#app')
+```
+
+
+
+#### 3. 在Vue模板中使用表单设计器组件
+```html
+
+
+
+#### 4. 在Vue模板中使用表单渲染器组件
+```html
+
+
+
+### 资源链接
+
v=!7QL8Lnk_!J_4r4Q$8 TieeAK@Bgr?iSPz(a+IL9kc_pY8!3DlCoR-4y+O<{$+?o8q}+
z0yr?-RxT0Ho(`|jda`>n>fO%QcOtYJfXT8a9Z=$_f==N5J?uq^jA*aCEL|!O$~_&-
z{^XPsi7#38R4u9B$h>?`cNMC1V&$P{ZZ^4G#}JzW)6+BbD_CUovqeTJkdwf?@7LZ>odT$%^hiUW)dSA@EVWQu%OV=yC@
zOUXZVUpB0H|8r!#&6La3uBAC-uZKBajN3e}vWqg1UZw$FrIC5RO!H`Z{+mB8u02+_
z0p=;#MoMqLy}(@x&{E2DR7it@w&_nX{MQThkIe#*Bu&yIjE4+gmM I!U0{VNTQ4riNqHtxjRM#|2&6_9T~NVmCPPSOe^%_(evWt7v+VR@*@@IeSG9%?qx
zz0wm>Gu&6zXDx1Y!$=0OjrepmW1=3CTKN@VK+n1@hk_-s$*#~T`za;ykHqnjFRQCr
zH+cc^vO3cVk69U4v1j?o*?pOPnoGSPe=E8vGpd3@Sgb??%H)>iK(aAFw+bH&n4I6yX5Cyq0b0j!kEdcuB;k)DV+
z;`cpGTQp|}^a@L9v{K0FP)I8*=d7PWDkP;-a(0pQ!~E3RGmwe~8W$A+Fj%vfzMYFI
z9q&AOU>T+}5zPMhoZ1}4gzFAow_?3xlc6v&q-wo?321)st?N+Rt>;p}wT?v#SEV6p1oN6y?Jh!zFLKt*Bvh!59V$n`1FeZZ!l^Daid~9g
zf2R3Y%nx&gM9K>P*VIO`I_@!MolMx!H(FD0f9U=*f88tqdGoh7UtYZr(i|+y^xE)e
zj!9x8=lG57Bbm)GSr&wH*VntTEpby#w9|Gf{?VNvF?m}m@Rv#oryL^Q)(m;#2bm=V
zN-=QlP7!10b)kQ}u14qYpa9&xEo+mv5bswhaa-;3OtW}ha-n1Mzk^K9a9!zj?hjIY
zFrN5)+7XLkcFyn}3pXUvE<#8Y
I6_fv_N;02Npq?B1h1Ne;CNm?A*
ztU{=%%`>4i9Z%)sgHSAzl8`|)labps+DJu-?L%bJ#$7ZFlH)#2ZijOqWq0vSk(tq3
z7NcV_i($D|IJV_DE9~WnQ%q{0t9-)7V-ymGPd9`K`%Aid^J%_9d>gp~JIa-9Cqz=^
z`StfVX3v<(1|FHQ7tMfe@XreDa@qs^MvwYu@f5rFr1*A_{V5#m!C+m>*#@Rbz~W~U
zlQ3ZqBv;K@2o+J}Oeh^&wlZaq-}yr{4)O{yIvxU5Wtrj_m@(IBKBeb#OWrfCxth5s
z6;I9$$G5PI^BQL?bel&eOvzQqKG7$d7ZmmGJYezOFq>9PAY)BSYe9>R?dL}7q#8nR
z4{lkyRSCdl=eVCgaQw)QJHNX)byu-<(wZGA7C_|lvayV(dc!gB7w$>y^y4wmkx|-$
z1bzSRFdd=rnIh&pM>qHTm)zzOMs?Mc_N{&Wg+J#5s^cCC
zzPWe2wosN+Q#?gJCkj%sLXK!8pNc}wzWaRygyTE-oA6~)2+?OE=d8iLx==Uj``2EU
zSp545z9kXvm1nP21&LdGjuL2YS7p}eu}N8zzz(=RGV<1xIl2hL#6sGe=JgpaBRtNP
z;n@JzAa!t^gamNNn>r==1m>&>ce??zQz|DVj@ZA?F1eu|lRWuSuc&p>3zsQyp7m_D
z2P1J2vy-fNyyJGjj`2joDoHeLegGV>Z;H2)-jo5Z$`*l2hyF=2_(+B5rY5@aIgk^n
z14=
C3_n;+G)B^_
zEyB}