diff --git a/core/core-frontend/src/components/visualization/DvSidebar.vue b/core/core-frontend/src/components/visualization/DvSidebar.vue index 794780fae2..fc487bd23d 100644 --- a/core/core-frontend/src/components/visualization/DvSidebar.vue +++ b/core/core-frontend/src/components/visualization/DvSidebar.vue @@ -8,7 +8,7 @@ import Icon from '../icon-custom/src/Icon.vue' const dvMainStore = dvMainStoreWithOut() const { canvasCollapse } = storeToRefs(dvMainStore) let componentNameEdit = ref(false) -let inputComponentName = ref('') +let inputComponentName = ref({ id: null, name: null }) let componentNameInputAttr = ref(null) import dvInfoSvg from '@/assets/svg/dv-info.svg' import { useI18n } from '@/hooks/web/useI18n' @@ -75,25 +75,32 @@ const slideStyle = computed(() => { const closeEditComponentName = () => { componentNameEdit.value = false - if (!inputComponentName.value || !inputComponentName.value.trim()) { + if (props.element.id !== inputComponentName.value.id) { return } - if (inputComponentName.value.trim() === view.value.title) { + if (!inputComponentName.value.name || !inputComponentName.value.name.trim()) { return } - if (inputComponentName.value.trim().length > 64 || inputComponentName.value.trim().length < 2) { + if (inputComponentName.value.name.trim() === view.value.title) { + return + } + if ( + inputComponentName.value.name.trim().length > 64 || + inputComponentName.value.name.trim().length < 2 + ) { ElMessage.warning('名称字段长度2-64个字符') editComponentName() return } - view.value.title = inputComponentName.value - inputComponentName.value = '' + view.value.title = inputComponentName.value.name + inputComponentName.value.name = '' } const editComponentName = () => { if (isViewTitle.value) { componentNameEdit.value = true - inputComponentName.value = view.value.title + inputComponentName.value.name = view.value.title + inputComponentName.value.id = view.value.id nextTick(() => { componentNameInputAttr.value.focus() }) @@ -175,7 +182,7 @@ const onComponentNameChange = () => { { const closeEditComponentName = () => { componentNameEdit.value = false - if (!inputComponentName.value || !inputComponentName.value.trim()) { + if (curComponent.value.id !== inputComponentName.value.id) { return } - if (inputComponentName.value.trim() === view.value.title) { + if (!inputComponentName.value.name || !inputComponentName.value.name.trim()) { return } - if (inputComponentName.value.trim().length > 64 || inputComponentName.value.trim().length < 2) { + if (inputComponentName.value.name.trim() === view.value.title) { + return + } + if ( + inputComponentName.value.name.trim().length > 64 || + inputComponentName.value.name.trim().length < 2 + ) { ElMessage.warning('名称字段长度2-64个字符') editComponentName() return } - view.value.title = inputComponentName.value - inputComponentName.value = '' + view.value.title = inputComponentName.value.name + inputComponentName.value.name = '' + inputComponentName.value.id = '' } const editComponentName = () => { componentNameEdit.value = true - inputComponentName.value = view.value.title + inputComponentName.value.name = view.value.title + inputComponentName.value.id = view.value.id nextTick(() => { componentNameInput.value.focus() }) @@ -3873,7 +3881,7 @@ const deleteChartFieldItem = id => {