diff --git a/package.json b/package.json index 2b018f9..42b2f1a 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "variant-form3", - "version": "3.0.4", + "version": "3.0.5", "private": false, "scripts": { "serve": "vite", diff --git a/src/components/form-designer/designer.js b/src/components/form-designer/designer.js index e27cd58..e9d6f3f 100644 --- a/src/components/form-designer/designer.js +++ b/src/components/form-designer/designer.js @@ -716,7 +716,7 @@ export function createDesigner(vueInstance) { newWidget.id = newWidget.type.replace(/-/g, '') + tempId //console.log('test id===', newWidget.id) newWidget.options.name = newWidget.id - newWidget.options.label = newWidget.type.toLowerCase() + newWidget.options.label = newWidget.options.label || newWidget.type.toLowerCase() delete newWidget.displayName return newWidget diff --git a/src/components/form-designer/index.vue b/src/components/form-designer/index.vue index 61dfd76..d8ecb98 100644 --- a/src/components/form-designer/index.vue +++ b/src/components/form-designer/index.vue @@ -249,6 +249,7 @@ let labelKey = this.fieldListApi.labelKey || 'label' let nameKey = this.fieldListApi.nameKey || 'name' + this.fieldList.splice(0, this.fieldList.length) //清空已有 res.data.forEach(fieldItem => { this.fieldList.push({ label: fieldItem[labelKey], diff --git a/src/components/form-designer/setting-panel/index.vue b/src/components/form-designer/setting-panel/index.vue index 4b65278..d6e10ce 100644 --- a/src/components/form-designer/setting-panel/index.vue +++ b/src/components/form-designer/setting-panel/index.vue @@ -103,6 +103,7 @@ import i18n from "@/utils/i18n" import eventBus from "@/utils/event-bus" import emitter from "@/utils/emitter"; + import { propertyRegistered } from "@/components/form-designer/setting-panel/propertyRegister"; const {COMMON_PROPERTIES, ADVANCED_PROPERTIES, EVENT_PROPERTIES} = WidgetProperties @@ -218,6 +219,14 @@ return false } + /* alert组件注册了两个type属性编辑器,跳过第一个type属性编辑器,只显示第二个alert-type属性编辑器!! */ + if (propName.indexOf('-') <= -1) { + let uniquePropName = this.selectedWidget.type + '-' + propName + if (propertyRegistered(uniquePropName)) { + return false + } + } + let originalPropName = propName.replace(this.selectedWidget.type + '-', '') //去掉组件名称前缀-,如果有的话!! return this.designer.hasConfig(this.selectedWidget, originalPropName) }, diff --git a/src/components/form-designer/setting-panel/propertyRegister.js b/src/components/form-designer/setting-panel/propertyRegister.js index 303b439..b85e512 100644 --- a/src/components/form-designer/setting-panel/propertyRegister.js +++ b/src/components/form-designer/setting-panel/propertyRegister.js @@ -160,6 +160,14 @@ export function registerEventProperty(uniquePropName, propEditorName) { EVENT_PROPERTIES[uniquePropName] = propEditorName } +/** + * 判断属性是否已注册 + * @param uniquePropName 属性名称(保证名称唯一,不跟其他组件属性冲突) + */ +export function propertyRegistered(uniquePropName) { + return !!COMMON_PROPERTIES[uniquePropName] || !!ADVANCED_PROPERTIES[uniquePropName] || !!EVENT_PROPERTIES[uniquePropName] +} + /** * 注册常见属性对应的属性编辑器 * @param app diff --git a/src/extension/extension-loader.js b/src/extension/extension-loader.js index f80a47d..54055ab 100644 --- a/src/extension/extension-loader.js +++ b/src/extension/extension-loader.js @@ -76,7 +76,7 @@ export const loadExtension = function (app) { {label: 'info', value: 'info'}, {label: 'error', value: 'error'}, ] - PERegister.registerCPEditor(app, 'type', 'alert-type-editor', + PERegister.registerCPEditor(app, 'alert-type', 'alert-type-editor', PEFactory.createSelectEditor('type', 'extension.setting.alertType', {optionItems: typeOptions})) diff --git a/src/extension/samples/card/card-widget.vue b/src/extension/samples/card/card-widget.vue index 8848456..07babd6 100644 --- a/src/extension/samples/card/card-widget.vue +++ b/src/extension/samples/card/card-widget.vue @@ -97,6 +97,14 @@ outline: 2px solid $--color-primary !important; } + .card-container { + margin: 3px; + + .form-widget-list { + min-height: 28px; + } + } + :deep(.el-card__header) { padding: 10px 12px; } diff --git a/src/lang/zh-CN.js b/src/lang/zh-CN.js index 6a9898e..857c5e5 100644 --- a/src/lang/zh-CN.js +++ b/src/lang/zh-CN.js @@ -171,7 +171,7 @@ export default { eventSetting: '事件属性', uniqueName: '唯一名称', editNameHelp: '修改名称后需按回车确认', - label: '字段标签', + label: '标签', displayType: '显示类型', defaultValue: '默认值', placeholder: '占位内容', @@ -301,7 +301,7 @@ export default { widgetName: '组件唯一名称', formSize: '全局组件大小', - labelPosition: '字段标签位置', + labelPosition: '标签位置', topPosition: '顶部', leftPosition: '左边', labelAlign: '字段标签对齐', diff --git a/src/styles/global.scss b/src/styles/global.scss index 6f42492..5e62169 100644 --- a/src/styles/global.scss +++ b/src/styles/global.scss @@ -54,6 +54,11 @@ $--color-primary: #409EFF; } } +.el-card { + margin-top: 3px; + margin-bottom: 3px; +} + input[type="password"]::-ms-reveal { /* 隐藏IE/Edge原生的密码查看按钮 */ display: none; } diff --git a/src/utils/config.js b/src/utils/config.js index 9601034..d3c5f4e 100644 --- a/src/utils/config.js +++ b/src/utils/config.js @@ -8,7 +8,7 @@ export const DESIGNER_OPTIONS = { } -export const VARIANT_FORM_VERSION = '3.0.4' +export const VARIANT_FORM_VERSION = '3.0.5' //export const MOCK_CASE_URL = 'https://www.fastmock.site/mock/2de212e0dc4b8e0885fea44ab9f2e1d0/vform/' export const MOCK_CASE_URL = 'https://ks3-cn-beijing.ksyuncs.com/vform-static/vcase/'