From 03873bbfeb2f11b98d4e55d1adfc049bfd60b746 Mon Sep 17 00:00:00 2001 From: v_hwweng Date: Wed, 20 Nov 2024 15:52:04 +0800 Subject: [PATCH 1/7] Merge pull request #11214 from royalhuang/issue_11143 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit bug: finally stage执行时点击跳过,失败的job状态会卡在执行中 #11143 # Reviewed, transaction id: 24318 --- .../src/components/AtomPropertyPanel/RemoteAtom.vue | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/src/frontend/devops-pipeline/src/components/AtomPropertyPanel/RemoteAtom.vue b/src/frontend/devops-pipeline/src/components/AtomPropertyPanel/RemoteAtom.vue index 6af698a6f7f..3faeaf51041 100644 --- a/src/frontend/devops-pipeline/src/components/AtomPropertyPanel/RemoteAtom.vue +++ b/src/frontend/devops-pipeline/src/components/AtomPropertyPanel/RemoteAtom.vue @@ -72,6 +72,7 @@ const currentUserInfo = this.$userInfo || {} const atomDisabled = this.disabled || false const envConf = await this.getEnvConf() + const query = this.$$route.query || {} this.loading = false const iframe = document.getElementById('atom-iframe').contentWindow iframe.postMessage({ @@ -84,7 +85,8 @@ atomDisabled, hostInfo: { ...this.$route.params - } + }, + query }, '*') }, receiveMsgFromIframe (e) { From c27106038f321b1ad3871c4f57dc83fae74c6455 Mon Sep 17 00:00:00 2001 From: v_hwweng Date: Thu, 21 Nov 2024 19:02:16 +0800 Subject: [PATCH 2/7] =?UTF-8?q?feat=EF=BC=9A=E5=88=9B=E5=BB=BA=E6=B5=81?= =?UTF-8?q?=E6=B0=B4=E7=BA=BF=E6=97=B6=E6=94=AF=E6=8C=81=E8=AE=BE=E7=BD=AE?= =?UTF-8?q?=E6=A0=87=E7=AD=BE=20#11055=20#=20Reviewed,=20transaction=20id:?= =?UTF-8?q?=2024499?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../src/components/dialectPopoverTable.vue | 5 - .../PipelineLabelSelector/index.vue | 301 ++++++++++++++++++ .../components/PipelineTemplatePreview.vue | 1 + .../src/components/namingConventionTip.vue | 5 - .../components/pipelineSetting/BaseInfo.vue | 19 +- .../pipelineSetting/settingBase/index.vue | 18 +- .../components/syntaxStyleConfiguration.vue | 41 +-- .../modules/pipelines/pipelinesTemplate.js | 13 +- .../src/views/CreatePipeline.vue | 71 +++-- .../src/views/template/instance_create.vue | 2 +- src/frontend/locale/pipeline/en-US.json | 3 +- src/frontend/locale/pipeline/zh-CN.json | 3 +- 12 files changed, 385 insertions(+), 97 deletions(-) create mode 100644 src/frontend/devops-pipeline/src/components/PipelineLabelSelector/index.vue diff --git a/src/frontend/devops-manage/src/components/dialectPopoverTable.vue b/src/frontend/devops-manage/src/components/dialectPopoverTable.vue index b1c198fe6eb..11bb05a72ec 100644 --- a/src/frontend/devops-manage/src/components/dialectPopoverTable.vue +++ b/src/frontend/devops-manage/src/components/dialectPopoverTable.vue @@ -75,11 +75,6 @@ const namingConventionData = [ constrainedMode: t('流程控制选项、插件入参、Job设置等流水线配置中均可使用函数'), constrainedExample: t('如变量a值为Json字符串,则bash脚本中,可以使用fromJSON读取echo “a.node is ${{fromJSON(a).node}}”') }, - { - difference: t('变量值超长'), - classic: t('仅警告未报错'), - constrainedMode: t('将报错,运行失败'), - }, { difference: t('变量 ID 规范'), classic: t('未限制'), diff --git a/src/frontend/devops-pipeline/src/components/PipelineLabelSelector/index.vue b/src/frontend/devops-pipeline/src/components/PipelineLabelSelector/index.vue new file mode 100644 index 00000000000..13fad8c5d27 --- /dev/null +++ b/src/frontend/devops-pipeline/src/components/PipelineLabelSelector/index.vue @@ -0,0 +1,301 @@ + + + + + diff --git a/src/frontend/devops-pipeline/src/components/PipelineTemplatePreview.vue b/src/frontend/devops-pipeline/src/components/PipelineTemplatePreview.vue index 65fdbb9b1e4..a447fafebf2 100644 --- a/src/frontend/devops-pipeline/src/components/PipelineTemplatePreview.vue +++ b/src/frontend/devops-pipeline/src/components/PipelineTemplatePreview.vue @@ -35,6 +35,7 @@ :name="panel.name" > @@ -108,7 +108,7 @@ import VuexInput from '@/components/atomFormField/VuexInput/index.vue' import VuexTextarea from '@/components/atomFormField/VuexTextarea/index.vue' import SyntaxStyleConfiguration from '@/components/syntaxStyleConfiguration' - import { mapGetters, mapActions, mapState } from 'vuex' + import { mapGetters } from 'vuex' export default { name: 'bkdevops-base-info-setting-tab', @@ -134,9 +134,6 @@ ...mapGetters({ tagGroupList: 'pipelines/getTagGroupList' }), - ...mapState('pipelines', [ - 'currentPipelineDialect' - ]), projectId () { return this.$route.params.projectId }, @@ -154,6 +151,12 @@ }) return value }) + }, + curProject () { + return this.$store.state.curProject + }, + defaultPipelineDialect () { + return this.curProject?.properties?.pipelineDialect } }, watch: { @@ -174,9 +177,6 @@ this.requestGrouptLists() }, methods: { - ...mapActions('pipelines', [ - 'getPipelineDialect' - ]), /** * * 获取标签及其分组 */ @@ -188,7 +188,6 @@ this.$store.commit('pipelines/updateGroupLists', res) // 获取当前项目语法风格 - await this.getPipelineDialect(this.projectId) } catch (err) { this.$showTips({ message: err.message || err, @@ -212,7 +211,7 @@ this.settings = { ...this.settings, inheritedDialect: value, - ...value && { pipelineDialect: this.currentPipelineDialect } + ...value && { pipelineDialect: this.defaultPipelineDialect } } this.handleBaseInfoChange('pipelineAsCodeSettings', this.settings) }, diff --git a/src/frontend/devops-pipeline/src/components/pipelineSetting/settingBase/index.vue b/src/frontend/devops-pipeline/src/components/pipelineSetting/settingBase/index.vue index 4f4f315d33b..854be0c0f8e 100755 --- a/src/frontend/devops-pipeline/src/components/pipelineSetting/settingBase/index.vue +++ b/src/frontend/devops-pipeline/src/components/pipelineSetting/settingBase/index.vue @@ -72,7 +72,7 @@ @@ -165,8 +165,7 @@ }, computed: { ...mapState('pipelines', [ - 'templateSetting', - 'currentPipelineDialect' + 'templateSetting' ]), ...mapGetters({ tagGroupList: 'pipelines/getTagGroupList' @@ -246,6 +245,12 @@ }, TEMPLATE_RESOURCE_ACTION () { return TEMPLATE_RESOURCE_ACTION + }, + curProject () { + return this.$store.state.curProject + }, + defaultPipelineDialect () { + return this.curProject?.properties?.pipelineDialect } }, watch: { @@ -260,8 +265,7 @@ methods: { ...mapActions('pipelines', [ 'requestTemplateSetting', - 'updateTemplateSetting', - 'getPipelineDialect' + 'updateTemplateSetting' ]), ...mapActions('atom', [ 'updatePipelineSetting' @@ -300,8 +304,6 @@ }) $store.commit('pipelines/updateGroupLists', res) this.dataList = this.tagGroupList - // 获取当前项目语法风格 - await this.getPipelineDialect(this.projectId) } catch (err) { this.$showTips({ message: err.message || err, @@ -356,7 +358,7 @@ settings.inheritedDialect = value if (value) { - settings.pipelineDialect = this.currentPipelineDialect + settings.pipelineDialect = this.defaultPipelineDialect } }, pipelineDialectChange (value) { diff --git a/src/frontend/devops-pipeline/src/components/syntaxStyleConfiguration.vue b/src/frontend/devops-pipeline/src/components/syntaxStyleConfiguration.vue index 3cc979b789e..9f13e0f4563 100644 --- a/src/frontend/devops-pipeline/src/components/syntaxStyleConfiguration.vue +++ b/src/frontend/devops-pipeline/src/components/syntaxStyleConfiguration.vue @@ -14,6 +14,7 @@ {{ $t('inheritedProject') }} @@ -26,14 +27,14 @@ {{ $t('CLASSIC') }} {{ $t('CONSTRAINED') }} @@ -54,41 +55,15 @@ isShowPopover: { type: Boolean, default: true + }, + disabled: { + type: Boolean, + default: false } }, computed: { - namingConventionData () { - return [ - { - difference: this.$t('expressionFormat'), - classic: this.$t('traditionalFormat'), - classicExample: this.$t('traditionalFormatExample'), - constrainedMode: this.$t('constraintFormat'), - constrainedExample: this.$t('constraintFormatExample') - }, - { - difference: this.$t('variableValueTooLong'), - classic: this.$t('traditionalValueTooLongMode'), - constrainedMode: this.$t('constraintReadOnlyMode') - }, - { - difference: this.$t('variableNotFound'), - classic: this.$t('traditionalNotFoundMode'), - constrainedMode: this.$t('constraintReadOnlyMode') - }, - { - difference: this.$t('variableStandard'), - classic: this.$t('traditionalStandardMode'), - constrainedMode: this.$t('constraintStandardMode') - } - ] - }, isDialectDisabled () { - if (this.inheritedDialect) { - return true - } else { - return false - } + return !!this.inheritedDialect } }, methods: { diff --git a/src/frontend/devops-pipeline/src/store/modules/pipelines/pipelinesTemplate.js b/src/frontend/devops-pipeline/src/store/modules/pipelines/pipelinesTemplate.js index e331d345502..97a2b5aca3a 100755 --- a/src/frontend/devops-pipeline/src/store/modules/pipelines/pipelinesTemplate.js +++ b/src/frontend/devops-pipeline/src/store/modules/pipelines/pipelinesTemplate.js @@ -19,15 +19,14 @@ import { PROCESS_API_URL_PREFIX, - STORE_API_URL_PREFIX, - PROJECT_API_URL_PREFIX + STORE_API_URL_PREFIX } from '@/store/constants' import ajax from '@/utils/request' const prefix = `/${PROCESS_API_URL_PREFIX}/user` const state = { - currentPipelineDialect: false + } const getters = { @@ -35,16 +34,10 @@ const getters = { } const mutations = { - getCurrentPipelineDialect (state, params) { - state.currentPipelineDialect = params.data - } + } const actions = { - async getPipelineDialect ({ commit }, projectId) { - const res = await ajax.get(`${PROJECT_API_URL_PREFIX}/user/projects/${projectId}/pipelineDialect`) - commit('getCurrentPipelineDialect', res) - }, installPipelineTemplate (_, params) { return ajax.post(`${STORE_API_URL_PREFIX}/user/market/template/install`, params).then(response => { }) diff --git a/src/frontend/devops-pipeline/src/views/CreatePipeline.vue b/src/frontend/devops-pipeline/src/views/CreatePipeline.vue index 4a14943ad83..bbc93f9e910 100644 --- a/src/frontend/devops-pipeline/src/views/CreatePipeline.vue +++ b/src/frontend/devops-pipeline/src/views/CreatePipeline.vue @@ -88,7 +88,7 @@ >

{{ item.label }} @@ -110,8 +110,15 @@ + + + item.name.toLowerCase().indexOf(this.searchName.toLowerCase()) > -1) ?? [] } + }, + isConstrainMode () { + return this.templateType === templateTypeEnum.CONSTRAIN } }, watch: { @@ -397,23 +416,26 @@ } return acc }, []) - console.log(this.applySettings) } }, searchName (val) { if (this.activePanel === 'store') { this.requestMarkTemplates(true) } + }, + defaultPipelineDialect (val) { + this.pipelineDialect = val } }, - created () { + async created () { + await this.$store.dispatch('requestProjectDetail', { + projectId: this.$route.params.projectId + }) this.requestPipelineTemplate({ projectId: this.$route.params.projectId }) - this.requestPipelineDialect() }, mounted () { - console.log(this.$refs.pipelineName) this.$nextTick(() => { this.$refs.pipelineName.focus() }) @@ -426,7 +448,7 @@ ...mapActions('pipelines', [ 'installPipelineTemplate', 'createPipelineWithTemplate', - 'getPipelineDialect' + 'requestTemplateSetting' ]), goList () { this.$router.push(this.pipelineListRoute) @@ -497,9 +519,17 @@ this.isLoading = false } }, - selectTemp (index) { - console.log(index) + async selectTemp (index) { const target = this.tempList.length && this.tempList[index] + if (target?.templateType !== 'PUBLIC') { + await this.requestTemplateSetting({ + projectId: this.$route.params.projectId, + templateId: target.templateId + }) + this.labelValues = this.templateSetting.labels + } else { + this.labelValues = [] + } if (index !== this.activeTempIndex && target.installed) { this.activeTempIndex = index } @@ -517,7 +547,6 @@ this.previewSettingType = '' }, previewSetting (setting) { - console.log(setting) this.isShowPreview = true this.previewSettingType = setting }, @@ -545,7 +574,8 @@ }, {}), instanceType: this.templateType, inheritedDialect: this.inheritedDialect, - pipelineDialect: this.pipelineDialect + pipelineDialect: this.pipelineDialect, + labels: this.labelValues } if (this.templateType === templateTypeEnum.CONSTRAIN) { @@ -555,6 +585,10 @@ templateId: this.activeTemp.templateId, curVersionId: this.activeTemp.version, pipelineName: this.newPipelineName + + }, + query: { + useTemplateSettings: true } }) return @@ -589,19 +623,10 @@ this.isDisabled = false } }, - async requestPipelineDialect () { - try { - const projectId = this.$route.params.projectId - await this.getPipelineDialect(projectId) - this.pipelineDialect = this.currentPipelineDialect - } catch (err) { - console.log(err) - } - }, inheritedChange (value) { this.inheritedDialect = value if (value) { - this.pipelineDialect = this.currentPipelineDialect + this.pipelineDialect = this.defaultPipelineDialect } }, pipelineDialectChange (value) { diff --git a/src/frontend/devops-pipeline/src/views/template/instance_create.vue b/src/frontend/devops-pipeline/src/views/template/instance_create.vue index 598166cf17a..9d32ae55b17 100755 --- a/src/frontend/devops-pipeline/src/views/template/instance_create.vue +++ b/src/frontend/devops-pipeline/src/views/template/instance_create.vue @@ -350,7 +350,7 @@ }, async mounted () { this.requestTemplateDatail(this.curVersionId) - if (this.$route.query.useTemplateSettings === 'true') { + if (this.$route.query.useTemplateSettings) { this.isTemplateSetting = true } if (this.curVersionId) { diff --git a/src/frontend/locale/pipeline/en-US.json b/src/frontend/locale/pipeline/en-US.json index bd31044d2ae..82fb623c0bc 100644 --- a/src/frontend/locale/pipeline/en-US.json +++ b/src/frontend/locale/pipeline/en-US.json @@ -1663,5 +1663,6 @@ "deleteDraft": "Delete Draft", "sureDeleteDraft": "Are you sure you want to delete this draft?", "deleteDraftPipeline": "The current pipeline has not been published yet. Deleting the draft is equivalent to deleting the pipeline. Are you sure you want to proceed?", - "noDraft": "No drafts available for deletion" + "noDraft": "No drafts available for deletion", + "addLabels": "Add Label" } \ No newline at end of file diff --git a/src/frontend/locale/pipeline/zh-CN.json b/src/frontend/locale/pipeline/zh-CN.json index fbf69f43401..f1433017811 100644 --- a/src/frontend/locale/pipeline/zh-CN.json +++ b/src/frontend/locale/pipeline/zh-CN.json @@ -1665,5 +1665,6 @@ "deleteDraft": "删除草稿", "sureDeleteDraft": "确认删除该草稿?", "deleteDraftPipeline": "当前流水线尚未发布,删除草稿等同于删除流水线,确认删除吗?", - "noDraft": "暂无可删除的草稿" + "noDraft": "暂无可删除的草稿", + "addLabels": "添加标签" } \ No newline at end of file From 00b353a3e54d68bc1f218ba698d3f18d73ea7c15 Mon Sep 17 00:00:00 2001 From: v_hwweng Date: Thu, 21 Nov 2024 19:47:51 +0800 Subject: [PATCH 3/7] =?UTF-8?q?feat=EF=BC=9A=E5=88=9B=E5=BB=BA=E6=B5=81?= =?UTF-8?q?=E6=B0=B4=E7=BA=BF=E6=97=B6=E6=94=AF=E6=8C=81=E8=AE=BE=E7=BD=AE?= =?UTF-8?q?=E6=A0=87=E7=AD=BE=20#11055=20#=20Reviewed,=20transaction=20id:?= =?UTF-8?q?=2024508?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../src/components/AtomPropertyPanel/RemoteAtom.vue | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/src/frontend/devops-pipeline/src/components/AtomPropertyPanel/RemoteAtom.vue b/src/frontend/devops-pipeline/src/components/AtomPropertyPanel/RemoteAtom.vue index 3faeaf51041..6af698a6f7f 100644 --- a/src/frontend/devops-pipeline/src/components/AtomPropertyPanel/RemoteAtom.vue +++ b/src/frontend/devops-pipeline/src/components/AtomPropertyPanel/RemoteAtom.vue @@ -72,7 +72,6 @@ const currentUserInfo = this.$userInfo || {} const atomDisabled = this.disabled || false const envConf = await this.getEnvConf() - const query = this.$$route.query || {} this.loading = false const iframe = document.getElementById('atom-iframe').contentWindow iframe.postMessage({ @@ -85,8 +84,7 @@ atomDisabled, hostInfo: { ...this.$route.params - }, - query + } }, '*') }, receiveMsgFromIframe (e) { From cf46e77b483b482ae11f78f14a8b63b732b2b08a Mon Sep 17 00:00:00 2001 From: v_hwweng Date: Thu, 21 Nov 2024 21:11:12 +0800 Subject: [PATCH 4/7] =?UTF-8?q?feat=20=E6=B5=81=E6=B0=B4=E7=BA=BF=E9=87=8D?= =?UTF-8?q?=E6=9E=84=E6=97=B6,=E8=AF=A6=E6=83=85=E9=A1=B5=E7=9A=84?= =?UTF-8?q?=E8=A7=A6=E5=8F=91=E4=BA=BA=E6=9C=AA=E6=9B=B4=E6=96=B0=20#11055?= =?UTF-8?q?=20#=20Reviewed,=20transaction=20id:=2024525?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../devops-pipeline/src/views/subpages/ExecDetail.vue | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/frontend/devops-pipeline/src/views/subpages/ExecDetail.vue b/src/frontend/devops-pipeline/src/views/subpages/ExecDetail.vue index 23d92c12e86..a92911a4748 100755 --- a/src/frontend/devops-pipeline/src/views/subpages/ExecDetail.vue +++ b/src/frontend/devops-pipeline/src/views/subpages/ExecDetail.vue @@ -61,10 +61,10 @@ name="default-user" size="24" /> - + {{ $t("details.executorInfo", [ - execDetail.triggerUser, + execDetail.lastModifyUser, execDetail.trigger, execFormatStartTime ]) From 8679adf225585379a723fc1558710d633474ba2f Mon Sep 17 00:00:00 2001 From: v_hwweng Date: Tue, 26 Nov 2024 16:54:39 +0800 Subject: [PATCH 5/7] =?UTF-8?q?feat:=20=E6=B5=81=E6=B0=B4=E7=BA=BF?= =?UTF-8?q?=E9=87=8D=E6=9E=84=E6=97=B6,=E8=AF=A6=E6=83=85=E9=A1=B5?= =?UTF-8?q?=E7=9A=84=E8=A7=A6=E5=8F=91=E4=BA=BA=E6=9C=AA=E6=9B=B4=E6=96=B0?= =?UTF-8?q?=20#11055=20#=20Reviewed,=20transaction=20id:=2024862?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../devops-pipeline/src/views/subpages/ExecDetail.vue | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/src/frontend/devops-pipeline/src/views/subpages/ExecDetail.vue b/src/frontend/devops-pipeline/src/views/subpages/ExecDetail.vue index a92911a4748..b317f7f581f 100755 --- a/src/frontend/devops-pipeline/src/views/subpages/ExecDetail.vue +++ b/src/frontend/devops-pipeline/src/views/subpages/ExecDetail.vue @@ -61,10 +61,10 @@ name="default-user" size="24" /> - + {{ $t("details.executorInfo", [ - execDetail.lastModifyUser, + execDetail.recordList[executeCount - 1]?.startUser, execDetail.trigger, execFormatStartTime ]) @@ -394,6 +394,9 @@ }, pipelineModel () { return this.execDetail?.model || {} + }, + executeCount () { + return this.execDetail?.executeCount ?? 1 } }, From 091ccb574eedea3f151eea28664182288dcc1aa1 Mon Sep 17 00:00:00 2001 From: v_hwweng Date: Wed, 27 Nov 2024 10:57:21 +0800 Subject: [PATCH 6/7] =?UTF-8?q?feat:=20=E6=B5=81=E6=B0=B4=E7=BA=BF?= =?UTF-8?q?=E9=87=8D=E6=9E=84=E6=97=B6,=E8=AF=A6=E6=83=85=E9=A1=B5?= =?UTF-8?q?=E7=9A=84=E8=A7=A6=E5=8F=91=E4=BA=BA=E6=9C=AA=E6=9B=B4=E6=96=B0?= =?UTF-8?q?=20#11055=20#=20Reviewed,=20transaction=20id:=2024954?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../src/views/subpages/ExecDetail.vue | 17 +++++++++++++++-- 1 file changed, 15 insertions(+), 2 deletions(-) diff --git a/src/frontend/devops-pipeline/src/views/subpages/ExecDetail.vue b/src/frontend/devops-pipeline/src/views/subpages/ExecDetail.vue index b317f7f581f..cce45fcf4f9 100755 --- a/src/frontend/devops-pipeline/src/views/subpages/ExecDetail.vue +++ b/src/frontend/devops-pipeline/src/views/subpages/ExecDetail.vue @@ -61,10 +61,10 @@ name="default-user" size="24" /> - + {{ $t("details.executorInfo", [ - execDetail.recordList[executeCount - 1]?.startUser, + startUser, execDetail.trigger, execFormatStartTime ]) @@ -397,6 +397,19 @@ }, executeCount () { return this.execDetail?.executeCount ?? 1 + }, + recordList () { + const list = this.execDetail?.recordList.reverse() || [] + return ( + list.map((record, index) => ({ + id: index + 1, + user: record.startUser + })) ?? [] + ) + }, + startUser () { + console.log(this.recordList, 24) + return this.recordList.find(i => i.id === this.executeCount)?.user || '' } }, From 9038492a20e8b2edf61bbd256cdacbe4c30a202a Mon Sep 17 00:00:00 2001 From: v_hwweng Date: Wed, 27 Nov 2024 11:56:19 +0800 Subject: [PATCH 7/7] =?UTF-8?q?feat:=20=E6=B5=81=E6=B0=B4=E7=BA=BF?= =?UTF-8?q?=E9=87=8D=E6=9E=84=E6=97=B6,=E8=AF=A6=E6=83=85=E9=A1=B5?= =?UTF-8?q?=E7=9A=84=E8=A7=A6=E5=8F=91=E4=BA=BA=E6=9C=AA=E6=9B=B4=E6=96=B0?= =?UTF-8?q?=20#11055=20#=20Reviewed,=20transaction=20id:=2024978?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../devops-pipeline/src/views/subpages/ExecDetail.vue | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/src/frontend/devops-pipeline/src/views/subpages/ExecDetail.vue b/src/frontend/devops-pipeline/src/views/subpages/ExecDetail.vue index cce45fcf4f9..42664c2294d 100755 --- a/src/frontend/devops-pipeline/src/views/subpages/ExecDetail.vue +++ b/src/frontend/devops-pipeline/src/views/subpages/ExecDetail.vue @@ -399,16 +399,15 @@ return this.execDetail?.executeCount ?? 1 }, recordList () { - const list = this.execDetail?.recordList.reverse() || [] + const list = [...this.execDetail?.recordList] return ( - list.map((record, index) => ({ + list.reverse().map((record, index) => ({ id: index + 1, user: record.startUser })) ?? [] ) }, startUser () { - console.log(this.recordList, 24) return this.recordList.find(i => i.id === this.executeCount)?.user || '' } },