Merge remote-tracking branch 'origin/master'

This commit is contained in:
wenyann 2020-12-21 14:34:21 +08:00
commit 83e8814e13
3 changed files with 68 additions and 59 deletions

13
Jenkinsfile vendored
View File

@ -4,7 +4,7 @@ pipeline {
label 'master' label 'master'
} }
} }
options { quietPeriod(2400) } options { quietPeriod(1200) }
parameters { parameters {
string(name: 'IMAGE_NAME', defaultValue: 'metersphere', description: '构建后的 Docker 镜像名称') string(name: 'IMAGE_NAME', defaultValue: 'metersphere', description: '构建后的 Docker 镜像名称')
string(name: 'IMAGE_FREFIX', defaultValue: 'registry.cn-qingdao.aliyuncs.com/metersphere', description: '构建后的 Docker 镜像带仓库名的前缀') string(name: 'IMAGE_FREFIX', defaultValue: 'registry.cn-qingdao.aliyuncs.com/metersphere', description: '构建后的 Docker 镜像带仓库名的前缀')
@ -24,11 +24,12 @@ pipeline {
sh "docker push ${IMAGE_FREFIX}/${IMAGE_NAME}:\${TAG_NAME:-\$BRANCH_NAME}" sh "docker push ${IMAGE_FREFIX}/${IMAGE_NAME}:\${TAG_NAME:-\$BRANCH_NAME}"
} }
} }
stage('Notification') { }
steps { post('Notification') {
withCredentials([string(credentialsId: 'wechat-bot-webhook', variable: 'WEBHOOK')]) { always {
qyWechatNotification failSend: true, mentionedId: '', mentionedMobile: '', webhookUrl: '${WEBHOOK}' sh "echo \$WEBHOOK\n"
} withCredentials([string(credentialsId: 'wechat-bot-webhook', variable: 'WEBHOOK')]) {
qyWechatNotification failSend: true, mentionedId: '', mentionedMobile: '', webhookUrl: "$WEBHOOK"
} }
} }
} }

View File

@ -1,59 +1,59 @@
<template> <template>
<el-form :model="basicForm" label-position="right" label-width="80px" size="small" :rules="rule" ref="basicForm" style="margin-right: 20px"> <div v-loading="loading">
<!-- 基础信息 --> <el-form :model="basicForm" label-position="right" label-width="80px" size="small" :rules="rule" ref="basicForm" style="margin-right: 20px">
<el-row> <!-- 基础信息 -->
<el-col :span="12"> <el-row>
<el-form-item :label="$t('commons.name')" prop="name"> <el-col :span="12">
<el-input class="ms-http-input" size="small" v-model="basicForm.name"/> <el-form-item :label="$t('commons.name')" prop="name">
</el-form-item> <el-input class="ms-http-input" size="small" v-model="basicForm.name"/>
</el-col> </el-form-item>
<el-col :span="12"> </el-col>
<el-form-item :label="$t('test_track.module.module')" prop="moduleId"> <el-col :span="12">
<el-select class="ms-http-input" size="small" v-model="basicForm.moduleId" style="width: 100%"> <el-form-item :label="$t('test_track.module.module')" prop="moduleId">
<el-option v-for="item in moduleOptions" :key="item.id" :label="item.path" :value="item.id"/> <el-select class="ms-http-input" size="small" v-model="basicForm.moduleId" style="width: 100%" @change="reload">
</el-select> <el-option v-for="item in moduleOptions" :key="item.id" :label="item.path" :value="item.id"/>
</el-form-item> </el-select>
</el-col> </el-form-item>
</el-row> </el-col>
<el-row> </el-row>
<el-col :span="12"> <el-row>
<el-form-item :label="$t('commons.status')" prop="status"> <el-col :span="12">
<el-select class="ms-http-input" size="small" v-model="basicForm.status" style="width: 100%"> <el-form-item :label="$t('commons.status')" prop="status">
<el-option v-for="item in options" :key="item.id" :label="item.label" :value="item.id"/> <el-select class="ms-http-input" size="small" v-model="basicForm.status" style="width: 100%">
</el-select> <el-option v-for="item in options" :key="item.id" :label="item.label" :value="item.id"/>
</el-form-item> </el-select>
</el-col> </el-form-item>
<el-col :span="12"> </el-col>
<el-form-item :label="$t('api_test.definition.request.responsible')" prop="userId"> <el-col :span="12">
<el-select v-model="basicForm.userId" <el-form-item :label="$t('api_test.definition.request.responsible')" prop="userId">
:placeholder="$t('api_test.definition.request.responsible')" filterable size="small" <el-select v-model="basicForm.userId"
class="ms-http-input" style="width: 100%"> :placeholder="$t('api_test.definition.request.responsible')" filterable size="small"
<el-option class="ms-http-input" style="width: 100%">
v-for="item in maintainerOptions" <el-option
:key="item.id" v-for="item in maintainerOptions"
:label="item.id + ' (' + item.name + ')'" :key="item.id"
:value="item.id"> :label="item.id + ' (' + item.name + ')'"
</el-option> :value="item.id">
</el-select> </el-option>
</el-select>
</el-form-item> </el-form-item>
</el-col> </el-col>
</el-row> </el-row>
<el-row> <el-row>
<el-col> <el-col>
<el-form-item :label="$t('commons.description')" prop="description"> <el-form-item :label="$t('commons.description')" prop="description">
<el-input class="ms-http-textarea" <el-input class="ms-http-textarea"
v-model="basicForm.description" v-model="basicForm.description"
type="textarea" type="textarea"
:autosize="{ minRows: 2, maxRows: 10}" :autosize="{ minRows: 2, maxRows: 10}"
:rows="2" size="small"/> :rows="2" size="small"/>
</el-form-item> </el-form-item>
</el-col> </el-col>
</el-row> </el-row>
</el-form>
</div>
</el-form>
</template> </template>
<script> <script>
@ -81,6 +81,7 @@
httpVisible: false, httpVisible: false,
currentModule: {}, currentModule: {},
maintainerOptions: [], maintainerOptions: [],
loading: false,
rule: { rule: {
name: [ name: [
{required: true, message: this.$t('test_track.case.input_name'), trigger: 'blur'}, {required: true, message: this.$t('test_track.case.input_name'), trigger: 'blur'},
@ -102,6 +103,12 @@
this.maintainerOptions = response.data; this.maintainerOptions = response.data;
}); });
}, },
reload() {
this.loading = true
this.$nextTick(() => {
this.loading = false
})
},
validate() { validate() {
this.$refs['basicForm'].validate((valid) => { this.$refs['basicForm'].validate((valid) => {
if (valid) { if (valid) {

View File

@ -61,6 +61,7 @@
this.validateApi(); this.validateApi();
if (this.validated) { if (this.validated) {
this.basisData.request = this.request; this.basisData.request = this.request;
console.log(this.basisData)
this.$emit('saveApi', this.basisData); this.$emit('saveApi', this.basisData);
} }
}, },