fix(项目管理): 创建项目的时候显示了未集成的缺陷模板

--bug=1010384 --user=李敏 【系统设置】项目管理,没有集成第三方平台,创建项目的时候显示了其他平台的缺陷模板 https://www.tapd.cn/55049933/s/1106037
This commit is contained in:
limin-fit2 2022-02-18 19:32:39 +08:00 committed by 刘瑞斌
parent 3e1ee17457
commit 750d36b7e9
2 changed files with 40 additions and 7 deletions

View File

@ -7,7 +7,8 @@
<el-input v-model="form.name" autocomplete="off"></el-input> <el-input v-model="form.name" autocomplete="off"></el-input>
</el-form-item> </el-form-item>
<el-form-item v-if="platformOptions.length > 1" :label-width="labelWidth" :label="$t('test_track.issue.third_party_integrated')" <el-form-item v-if="platformOptions.length > 1" :label-width="labelWidth"
:label="$t('test_track.issue.third_party_integrated')"
prop="platform"> prop="platform">
<el-select filterable v-model="form.platform"> <el-select filterable v-model="form.platform">
<el-option v-for="item in platformOptions" :key="item.value" :label="item.text" :value="item.value"> <el-option v-for="item in platformOptions" :key="item.value" :label="item.text" :value="item.value">
@ -23,9 +24,11 @@
:label="$t('workspace.issue_template_manage')" prop="issueTemplateId"> :label="$t('workspace.issue_template_manage')" prop="issueTemplateId">
<template-select :platform="form.platform" :data="form" scene="ISSUE" prop="issueTemplateId" <template-select :platform="form.platform" :data="form" scene="ISSUE" prop="issueTemplateId"
:disabled="form.platform === 'Jira' && form.thirdPartTemplate" :disabled="form.platform === 'Jira' && form.thirdPartTemplate"
:platformOptions="issueOptions"
ref="issueTemplate"/> ref="issueTemplate"/>
<el-checkbox @change="thirdPartTemplateChange" v-if="form.platform === 'Jira'" v-model="form.thirdPartTemplate" style="margin-left: 10px"> <el-checkbox @change="thirdPartTemplateChange" v-if="form.platform === 'Jira'"
v-model="form.thirdPartTemplate" style="margin-left: 10px">
{{ $t('test_track.issue.use_third_party') }} {{ $t('test_track.issue.use_third_party') }}
</el-checkbox> </el-checkbox>
@ -163,7 +166,8 @@ export default {
}, },
screenHeight: 'calc(100vh - 195px)', screenHeight: 'calc(100vh - 195px)',
labelWidth: '150px', labelWidth: '150px',
platformOptions: [] platformOptions: [],
issueOptions: []
}; };
}, },
props: { props: {
@ -212,11 +216,11 @@ export default {
this.form.issueTemplateId = ''; this.form.issueTemplateId = '';
}, },
edit(row) { edit(row) {
this.title = this.$t('project.edit');
this.getOptions(); this.getOptions();
this.createVisible = true; this.createVisible = true;
listenGoBack(this.handleClose); listenGoBack(this.handleClose);
if (row) { if (row) {
this.title = this.$t('project.edit');
row.issueConfigObj = row.issueConfig ? JSON.parse(row.issueConfig) : {}; row.issueConfigObj = row.issueConfig ? JSON.parse(row.issueConfig) : {};
this.form = Object.assign({}, row); this.form = Object.assign({}, row);
} else { } else {
@ -231,6 +235,7 @@ export default {
this.filterPlatformOptions(platforms, JIRA); this.filterPlatformOptions(platforms, JIRA);
this.filterPlatformOptions(platforms, ZEN_TAO); this.filterPlatformOptions(platforms, ZEN_TAO);
this.filterPlatformOptions(platforms, AZURE_DEVOPS); this.filterPlatformOptions(platforms, AZURE_DEVOPS);
this.issueOptions = this.platformOptions;
}); });
}, },
filterPlatformOptions(platforms, platform) { filterPlatformOptions(platforms, platform) {

View File

@ -20,6 +20,7 @@ export default {
scene: String, scene: String,
prop: String, prop: String,
platform: String, platform: String,
platformOptions: Array,
disabled: Boolean, disabled: Boolean,
data: { data: {
type: Object, type: Object,
@ -80,14 +81,41 @@ export default {
this.templateOptions.forEach(i => { this.templateOptions.forEach(i => {
if (i.platform === this.platform) { if (i.platform === this.platform) {
this.templateFilterOptions.push(i); this.templateFilterOptions.push(i);
if (i.id === this.data[this.prop]) if (i.id === this.data[this.prop]) {
hasTemplate = true; hasTemplate = true;
}
} }
}); });
if (!hasTemplate) if (!hasTemplate) {
this.data[this.prop] = null; this.data[this.prop] = null;
}
} else { } else {
this.templateFilterOptions = this.templateOptions; if (this.scene === 'ISSUE') {
let hasTemplate = false;
this.templateFilterOptions = [];
this.templateOptions.forEach(template => {
if (this.platformOptions.length > 0) {
this.platformOptions.forEach(item => {
if (template.platform === item.value) {
this.templateFilterOptions.push(template);
if (template.id === this.data[this.prop]) {
hasTemplate = true;
}
}
});
} else if (template.platform === 'Local') {
this.templateFilterOptions.push(template);
if (template.id === this.data[this.prop]) {
hasTemplate = true;
}
}
});
if (!hasTemplate) {
this.data[this.prop] = null;
}
} else {
this.templateFilterOptions = this.templateOptions;
}
} }
} }
} }