From acba7d6fa58a1fa32a2e471392201c8e7e3415ec Mon Sep 17 00:00:00 2001 From: Yuikill <1191184301@qq.com> Date: Fri, 27 Oct 2023 16:15:29 +0800 Subject: [PATCH] =?UTF-8?q?fix=EF=BC=9A=E4=BF=AE=E5=A4=8D=E4=B8=8A?= =?UTF-8?q?=E7=BA=BF=E7=89=88=E6=9C=AC=E5=AF=B9=E6=AF=94=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../components/modify-group-publish.vue | 32 ++++++++++++++++++- .../components/publish-version/index.vue | 32 ++++++++++++++++++- .../config/components/version-diff/index.vue | 9 ++++-- 3 files changed, 69 insertions(+), 4 deletions(-) diff --git a/bcs-services/bcs-bscp/ui/src/views/space/service/detail/components/modify-group-publish.vue b/bcs-services/bcs-bscp/ui/src/views/space/service/detail/components/modify-group-publish.vue index 2c473e5ee0..536ac76d57 100644 --- a/bcs-services/bcs-bscp/ui/src/views/space/service/detail/components/modify-group-publish.vue +++ b/bcs-services/bcs-bscp/ui/src/views/space/service/detail/components/modify-group-publish.vue @@ -33,7 +33,9 @@ @@ -54,6 +56,7 @@ :base-version-id="baseVersionId" :show-publish-btn="true" @publish="handleOpenPublishDialog" + :version-diff-list="versionList" /> @@ -71,6 +74,9 @@ import VersionLayout from '../config/components/version-layout.vue'; import ConfirmDialog from './publish-version/confirm-dialog.vue'; import SelectGroup from './publish-version/select-group/index.vue'; import VersionDiff from '../config/components/version-diff/index.vue'; +import { useRoute } from 'vue-router'; +import { getConfigVersionList } from '../../../../../api/config'; +import { IConfigVersion } from '../../../../../../types/config'; const { permissionQuery, showApplyPermDialog } = storeToRefs(useGlobalStore()); const serviceStore = useServiceStore(); @@ -87,6 +93,10 @@ const props = defineProps<{ const emit = defineEmits(['confirm']); +const route = useRoute(); +const bkBizId = String(route.params.spaceId); +const appId = Number(route.params.appId); +const versionList = ref([]); const isSelectGroupPanelOpen = ref(false); const isDiffSliderShow = ref(false); const isConfirmDialogShow = ref(false); @@ -107,7 +117,27 @@ const permissionQueryResource = computed(() => [ }, ]); +// 判断是否需要对比上线版本 +const handleDiffOrPublish = () => { + if (versionList.value.length) { + isDiffSliderShow.value = true; + return; + } + handleOpenPublishDialog(); +}; + +// 获取所有对比基准版本 +const getVersionList = async () => { + try { + const res = await getConfigVersionList(bkBizId, appId, { start: 0, all: true }); + versionList.value = res.data.details.filter((item: IConfigVersion) => item.id !== versionData.value.id && item.status.publish_status === 'partial_released'); + } catch (e) { + console.error(e); + } +}; + const handleBtnClick = () => { + getVersionList(); if (props.hasPerm) { openSelectGroupPanel(); } else { diff --git a/bcs-services/bcs-bscp/ui/src/views/space/service/detail/components/publish-version/index.vue b/bcs-services/bcs-bscp/ui/src/views/space/service/detail/components/publish-version/index.vue index cd986f2791..5323bd9339 100644 --- a/bcs-services/bcs-bscp/ui/src/views/space/service/detail/components/publish-version/index.vue +++ b/bcs-services/bcs-bscp/ui/src/views/space/service/detail/components/publish-version/index.vue @@ -31,7 +31,9 @@ /> @@ -52,6 +54,7 @@ :base-version-id="baseVersionId" :show-publish-btn="true" @publish="handleOpenPublishDialog" + :version-diff-list="versionList" /> @@ -70,6 +73,9 @@ import VersionLayout from '../../config/components/version-layout.vue'; import ConfirmDialog from './confirm-dialog.vue'; import SelectGroup from './select-group/index.vue'; import VersionDiff from '../../config/components/version-diff/index.vue'; +import { useRoute } from 'vue-router'; +import { getConfigVersionList } from '../../../../../../api/config'; +import { IConfigVersion } from '../../../../../../../types/config'; const { permissionQuery, showApplyPermDialog } = storeToRefs(useGlobalStore()); const serviceStore = useServiceStore(); @@ -86,6 +92,10 @@ const props = defineProps<{ const emit = defineEmits(['confirm']); +const route = useRoute(); +const bkBizId = String(route.params.spaceId); +const appId = Number(route.params.appId); +const versionList = ref([]); const isSelectGroupPanelOpen = ref(false); const isDiffSliderShow = ref(false); const isConfirmDialogShow = ref(false); @@ -104,7 +114,27 @@ const permissionQueryResource = computed(() => [ }, ]); +// 判断是否需要对比上线版本 +const handleDiffOrPublish = () => { + if (versionList.value.length) { + isDiffSliderShow.value = true; + return; + } + handleOpenPublishDialog(); +}; + +// 获取所有对比基准版本 +const getVersionList = async () => { + try { + const res = await getConfigVersionList(bkBizId, appId, { start: 0, all: true }); + versionList.value = res.data.details.filter((item: IConfigVersion) => item.id !== versionData.value.id && item.status.publish_status === 'partial_released'); + } catch (e) { + console.error(e); + } +}; + const handleBtnClick = () => { + getVersionList(); if (props.hasPerm) { isSelectGroupPanelOpen.value = true; } else { diff --git a/bcs-services/bcs-bscp/ui/src/views/space/service/detail/config/components/version-diff/index.vue b/bcs-services/bcs-bscp/ui/src/views/space/service/detail/config/components/version-diff/index.vue index 5ca39be96f..aee3fe8805 100644 --- a/bcs-services/bcs-bscp/ui/src/views/space/service/detail/config/components/version-diff/index.vue +++ b/bcs-services/bcs-bscp/ui/src/views/space/service/detail/config/components/version-diff/index.vue @@ -81,6 +81,7 @@ const props = defineProps<{ unNamedVersionVariables?: IVariableEditParams[]; baseVersionId?: number; // 默认选中的基准版本id selectedConfig?: IConfigDiffSelected; // 默认选中的配置文件id + versionDiffList?: IConfigVersion[]; }>(); const emits = defineEmits(['update:show', 'publish']); @@ -112,7 +113,7 @@ watch( if (val) { getVersionList(); } - } + }, ); watch( @@ -122,13 +123,17 @@ watch( selectedBaseVersion.value = val; } }, - { immediate: true } + { immediate: true }, ); // 获取所有对比基准版本 const getVersionList = async () => { try { versionListLoading.value = true; + if (props.versionDiffList) { + versionList.value = props.versionDiffList; + return; + } const res = await getConfigVersionList(bkBizId, appId, { start: 0, all: true }); versionList.value = res.data.details.filter((item: IConfigVersion) => item.id !== props.currentVersion.id); } catch (e) {