From 38fe46c3f1134b7fabb78b31382b89fd092790e4 Mon Sep 17 00:00:00 2001 From: vdpAdmin Date: Fri, 9 Sep 2022 15:09:29 +0800 Subject: [PATCH] =?UTF-8?q?=E7=BA=A7=E8=81=94=E9=80=89=E6=8B=A9=E7=BB=84?= =?UTF-8?q?=E4=BB=B6=E5=A2=9E=E5=8A=A0showAllLevels=E5=B1=9E=E6=80=A7?= =?UTF-8?q?=E5=8F=8A=E5=B1=9E=E6=80=A7=E7=BC=96=E8=BE=91=E5=99=A8=E3=80=82?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../field-widget/cascader-widget.vue | 5 ++++ .../setting-panel/option-items-setting.vue | 4 +--- .../cascader-multiple-editor.vue | 24 +++++++++++++++++++ .../field-cascader/checkStrictly-editor.vue | 23 ++++++++++++++++++ .../field-cascader/showAllLevels-editor.vue | 23 ++++++++++++++++++ .../setting-panel/propertyRegister.js | 2 ++ .../widget-panel/widgetsConfig.js | 3 +++ src/lang/en-US.js | 2 ++ src/lang/zh-CN.js | 2 ++ src/utils/code-generator.js | 4 ++-- src/utils/validators.js | 2 +- 11 files changed, 88 insertions(+), 6 deletions(-) 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 diff --git a/src/components/form-designer/form-widget/field-widget/cascader-widget.vue b/src/components/form-designer/form-widget/field-widget/cascader-widget.vue index d307202..03d8797 100644 --- a/src/components/form-designer/form-widget/field-widget/cascader-widget.vue +++ b/src/components/form-designer/form-widget/field-widget/cascader-widget.vue @@ -9,6 +9,8 @@ :clearable="field.options.clearable" :filterable="field.options.filterable" :placeholder="field.options.placeholder || i18nt('render.hint.selectPlaceholder')" + :show-all-levels="showFullPath" + :props="{ checkStrictly: field.options.checkStrictly, multiple: field.options.multiple, expandTrigger: 'hover' }" @focus="handleFocusCustomEvent" @blur="handleBlurCustomEvent" @change="handleChangeEvent"> @@ -63,6 +65,9 @@ } }, computed: { + showFullPath() { + return (this.field.options.showAllLevels === undefined) || !!this.field.options.showAllLevels + }, }, beforeCreate() { diff --git a/src/components/form-designer/setting-panel/option-items-setting.vue b/src/components/form-designer/setting-panel/option-items-setting.vue index 0eab02a..6407181 100644 --- a/src/components/form-designer/setting-panel/option-items-setting.vue +++ b/src/components/form-designer/setting-panel/option-items-setting.vue @@ -19,7 +19,7 @@ - + + diff --git a/src/components/form-designer/setting-panel/property-editor/field-cascader/checkStrictly-editor.vue b/src/components/form-designer/setting-panel/property-editor/field-cascader/checkStrictly-editor.vue new file mode 100644 index 0000000..3216dad --- /dev/null +++ b/src/components/form-designer/setting-panel/property-editor/field-cascader/checkStrictly-editor.vue @@ -0,0 +1,23 @@ + + + + + diff --git a/src/components/form-designer/setting-panel/property-editor/field-cascader/showAllLevels-editor.vue b/src/components/form-designer/setting-panel/property-editor/field-cascader/showAllLevels-editor.vue new file mode 100644 index 0000000..68c91fc --- /dev/null +++ b/src/components/form-designer/setting-panel/property-editor/field-cascader/showAllLevels-editor.vue @@ -0,0 +1,23 @@ + + + + + diff --git a/src/components/form-designer/setting-panel/propertyRegister.js b/src/components/form-designer/setting-panel/propertyRegister.js index 1d15ae4..af71756 100644 --- a/src/components/form-designer/setting-panel/propertyRegister.js +++ b/src/components/form-designer/setting-panel/propertyRegister.js @@ -41,6 +41,8 @@ const COMMON_PROPERTIES = { 'allowCreate' : 'allowCreate-editor', 'remote' : 'remote-editor', 'automaticDropdown' : 'automaticDropdown-editor', + 'checkStrictly' : 'checkStrictly-editor', + 'showAllLevels' : 'showAllLevels-editor', 'multiple' : 'multiple-editor', 'multipleLimit' : 'multipleLimit-editor', 'contentPosition' : 'contentPosition-editor', diff --git a/src/components/form-designer/widget-panel/widgetsConfig.js b/src/components/form-designer/widget-panel/widgetsConfig.js index 2517eb7..5e77076 100644 --- a/src/components/form-designer/widget-panel/widgetsConfig.js +++ b/src/components/form-designer/widget-panel/widgetsConfig.js @@ -885,6 +885,9 @@ export const advancedFields = [ hidden: false, clearable: true, filterable: false, + multiple: false, + checkStrictly: false, //可选择任意一级选项,默认不开启 + showAllLevels: true, //显示完整路径 optionItems: [ {label: 'select 1', value: 1, children: [{label: 'child 1', value: 11}]}, {label: 'select 2', value: 2}, diff --git a/src/lang/en-US.js b/src/lang/en-US.js index 98de7cd..3c0e131 100644 --- a/src/lang/en-US.js +++ b/src/lang/en-US.js @@ -210,6 +210,8 @@ export default { automaticDropdown: 'Automatic Dropdown', multiple: 'Multiple', multipleLimit: 'Multiple Limit', + checkStrictly: 'Any Level Selectable', + showAllLevels: 'Show All Levels', contentPosition: 'Content Position', plain: 'Plain', round: 'Round', diff --git a/src/lang/zh-CN.js b/src/lang/zh-CN.js index 948d557..260a834 100644 --- a/src/lang/zh-CN.js +++ b/src/lang/zh-CN.js @@ -210,6 +210,8 @@ export default { automaticDropdown: '自动弹出选项', multiple: '选项可多选', multipleLimit: '多选数量限制', + checkStrictly: '任意级节点可选', + showAllLevels: '显示完整路径', contentPosition: '文字位置', plain: '朴素按钮', round: '圆角按钮', diff --git a/src/utils/code-generator.js b/src/utils/code-generator.js index 02d6215..b1ce338 100644 --- a/src/utils/code-generator.js +++ b/src/utils/code-generator.js @@ -35,8 +35,8 @@ export const generateCode = function(formJson, codeType= 'vue') { } }, methods: { - submitForm: function() { - this.$refs.vFormRef.getFormData().then( function(formData) { + submitForm() { + this.$refs.vFormRef.getFormData().then( (formData) => { // Form Validation OK alert( JSON.stringify(formData) ) }).catch( function(error) { diff --git a/src/utils/validators.js b/src/utils/validators.js index 1d67a10..7d06287 100644 --- a/src/utils/validators.js +++ b/src/utils/validators.js @@ -2,7 +2,7 @@ import {isEmptyStr, isNull} from "./util"; export const getRegExp = function (validatorName) { const commonRegExp = { - number: '/^\\d+(\\.\\d+)?$/', + number: '/^[-]?\\d+(\\.\\d+)?$/', letter: '/^[A-Za-z]+$/', letterAndNumber: '/^[A-Za-z0-9]+$/', mobilePhone: '/^[1][3-9][0-9]{9}$/',