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 @@
- 对比并上线
+ {{
+ versionList.length ? '对比并上线' : '上线版本'
+ }}
取消
@@ -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 @@
/>
- 对比并上线
+ {{
+ versionList.length ? '对比并上线' : '上线版本'
+ }}
取消
@@ -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) {