|
@@ -3,104 +3,99 @@
|
|
|
<div class="eleStyle">
|
|
|
<div style="height:100%;width:94%; background:#ffffff; margin: 3%; border-radius: 8px; overflow: hidden;">
|
|
|
<el-form ref="dataChange" :model="dataChange" :rules="serviceDataRules" style="margin:2% 3%;">
|
|
|
- <div style="display: flex;white-space: nowrap;">
|
|
|
- <el-form-item label="标题" style="flex: 2; text-align: sleft;" prop="name">
|
|
|
- <el-input v-model="dataChange.name" style="width:40vw;" placeholder="报告标题(端-版本-需求提测报告)" />
|
|
|
+ <div class="double">
|
|
|
+ <el-form-item label="标题" prop="name">
|
|
|
+ <el-input v-model="dataChange.name" style="width:50vw;" placeholder="报告标题(端-版本-需求提测报告)" />
|
|
|
</el-form-item>
|
|
|
- <el-form-item label="by" prop="submitter" style="flex: 1; text-align:right;">
|
|
|
- <el-input v-model="dataChange.submitter" style="width: 24vw;" placeholder="who" />
|
|
|
+ <el-form-item label="by" prop="submitter">
|
|
|
+ <el-input v-model="dataChange.submitter" style="width: 25vw;" placeholder="who" />
|
|
|
</el-form-item>
|
|
|
</div>
|
|
|
|
|
|
<div class="backStyle">一. 提测详情</div>
|
|
|
|
|
|
- <div style="display: flex;white-space: nowrap;">
|
|
|
- <el-form-item label="是否延期" prop="lateStatus" style="flex: 1;">
|
|
|
- <el-radio-group v-model="dataChange.lateStatus">
|
|
|
- <el-radio style="margin: 0 5vw;" label="2" @change="lateStatusChange">否</el-radio>
|
|
|
- <el-radio label="1" @change="lateStatusChange(1)">是</el-radio>
|
|
|
- </el-radio-group>
|
|
|
+ <div class="double" style="white-space: nowrap;">
|
|
|
+ <el-form-item label="* 是否延期" prop="lateStatus">
|
|
|
+ <div style="text-align:right;">
|
|
|
+ <el-button :type="lateStatusBtn" style="margin: 0 20px;" class="tag" @click="lateStatusChange(2)"> 是 </el-button>
|
|
|
+ <el-button :type="lateStatusBtn1" class="tag" @click="lateStatusChange(1)"> 否 </el-button>
|
|
|
+ </div>
|
|
|
</el-form-item>
|
|
|
- <el-form-item v-if="showDelay" label="延期原因" prop="lateReason" style="flex: 2; text-align: right; margin-right:9%;"><el-input v-model="dataChange.lateReason" style="width: 50vw;" /></el-form-item>
|
|
|
+ <el-form-item v-if="showDelay" label="延期原因" prop="lateReason"><el-input v-model="dataChange.lateReason" style="width: 50vw;" /></el-form-item>
|
|
|
</div>
|
|
|
|
|
|
- <div style="display: flex;white-space: nowrap;">
|
|
|
- <el-form-item label="新增Apollo" prop="configIn" style="flex: 1;">
|
|
|
- <el-radio-group v-model="dataChange.configIn">
|
|
|
- <el-radio style="margin: 0 4.6vw;" label="2" @change="changeApollo">否</el-radio>
|
|
|
- <el-radio label="1" @change="changeApollo(1)">是</el-radio>
|
|
|
- </el-radio-group>
|
|
|
+ <div class="double" style="white-space: nowrap;">
|
|
|
+ <el-form-item label="* 新增Apollo" prop="configIn">
|
|
|
+ <div style="text-align:right;">
|
|
|
+ <el-button :type="configInBtn" style="margin: 0 6px" class="tag" @click="changeApollo(1)"> 是 </el-button>
|
|
|
+ <el-button :type="configInBtn1" style="margin-left: 24px" class="tag" @click="changeApollo(2)"> 否 </el-button>
|
|
|
+ </div>
|
|
|
</el-form-item>
|
|
|
- <el-form-item v-if="showApollo" label="Apollo名称" prop="configInfo" style="flex: 2;text-align: right; margin-right:10%;"><el-input v-model="dataChange.configInfo" style="width: 50vw;" /></el-form-item>
|
|
|
+ <el-form-item v-if="showApollo" label="Apollo名称" prop="configInfo"><el-input v-model="dataChange.configInfo" style="width: 50vw;" /></el-form-item>
|
|
|
</div>
|
|
|
|
|
|
- <div style="display: flex;white-space: nowrap;">
|
|
|
- <el-form-item label="依赖组件" prop="dependent" style="flex: 1;">
|
|
|
- <el-radio-group v-model="dataChange.dependent">
|
|
|
- <el-radio style="margin: 0 5vw;" label="2" @change="changeRelyOn">否</el-radio>
|
|
|
- <el-radio label="1" @change="changeRelyOn(1)">是</el-radio>
|
|
|
- </el-radio-group>
|
|
|
+ <div class="double" style="white-space: nowrap;">
|
|
|
+ <el-form-item label="* 依赖组件" prop="dependent">
|
|
|
+ <div style="text-align:right;">
|
|
|
+ <el-button :type="dependentBtn" style="margin: 0 20px;" class="tag" @click="changeRelyOn(1)"> 是 </el-button>
|
|
|
+ <el-button :type="dependentBtn1" class="tag" @click="changeRelyOn(2)"> 否 </el-button>
|
|
|
+ </div>
|
|
|
</el-form-item>
|
|
|
- <el-form-item v-if="showRelyOn" label="组件名称" prop="dependentComponents" style="flex: 2;text-align: right; margin-right:8.6%;"><el-input v-model="dataChange.dependentComponents" style="width: 50vw;" /></el-form-item>
|
|
|
+ <el-form-item v-if="showRelyOn" label="组件名称" prop="dependentComponents"><el-input v-model="dataChange.dependentComponents" style="width: 50vw;" /></el-form-item>
|
|
|
</div>
|
|
|
|
|
|
- <div style="display: flex;white-space: nowrap;">
|
|
|
- <el-form-item label="测试地址" prop="packageUrl" style="flex: 1;"><el-input v-model="dataChange.packageUrl" style="width:25vw;" /></el-form-item>
|
|
|
- <el-form-item label="打包分支" prop="packageBranch" style="flex: 1;text-align: right;margin-right:2%;"><el-input v-model="dataChange.packageBranch" style="width:40vw;" /></el-form-item>
|
|
|
+ <div class="double">
|
|
|
+ <el-form-item label="测试地址" prop="packageUrl"><el-input v-model="dataChange.packageUrl" style="width:25vw;" /></el-form-item>
|
|
|
+ <el-form-item label="打包分支" prop="packageBranch"><el-input v-model="dataChange.packageBranch" style="width:46.5vw;" /></el-form-item>
|
|
|
</div>
|
|
|
|
|
|
- <div style="display: flex;white-space: nowrap;">
|
|
|
- <el-form-item label=" 优 先 级 " prop="priority" style="flex: 1;">
|
|
|
+ <div class="double">
|
|
|
+ <el-form-item label=" 优 先 级" prop="priority">
|
|
|
<el-select v-model="dataChange.priority" style="width:25vw;" placeholder="请选择优先级">
|
|
|
<el-option v-for="item in priorityStrings" :key="item.value" :label="item.name" :value="item.name" />
|
|
|
</el-select>
|
|
|
</el-form-item>
|
|
|
- <el-form-item label="提测环境" prop="env" style="flex: 1;text-align: right;margin-right:2%;"><el-input v-model="dataChange.env" style="width:40vw;" /></el-form-item>
|
|
|
+ <el-form-item label="提测环境" prop="env"><el-input v-model="dataChange.env" style="width:46.5vw;" /></el-form-item>
|
|
|
</div>
|
|
|
|
|
|
- <div style="display: flex;white-space: nowrap;">
|
|
|
- <el-form-item label="PM & UI " prop="pmUi" style="flex: 1;"><el-input v-model="dataChange.pmUi" style="width: 25vw;" /></el-form-item>
|
|
|
- <el-form-item label="需 求 list " prop="functionInfo" style="flex: 1;text-align: right; margin-right:2%;"><el-input v-model="dataChange.functionInfo" style="width:40vw;" /></el-form-item>
|
|
|
+ <div class="double">
|
|
|
+ <el-form-item label="PM & UI" prop="pmUi"><el-input v-model="dataChange.pmUi" style="width: 85vw;" /></el-form-item>
|
|
|
+ </div>
|
|
|
+
|
|
|
+ <div class="double">
|
|
|
+ <el-form-item label="自测结果" prop="selfTestInfo"><el-input v-model="dataChange.selfTestInfo" style="width:85vw;" /></el-form-item>
|
|
|
+ </div>
|
|
|
+
|
|
|
+ <div class="double">
|
|
|
+ <el-form-item label="需求list" prop="functionInfo"><el-input v-model="dataChange.functionInfo" style="width:85vw;margin-left:9px;" /></el-form-item>
|
|
|
+ </div>
|
|
|
+
|
|
|
+ <div class="double">
|
|
|
+ <el-form-item label="涉及接口"><el-input v-model="dataChange.interfaceInfo" style="width:85vw;margin-left:9px;" type="textarea" :rows="5" /></el-form-item>
|
|
|
+ </div>
|
|
|
+
|
|
|
+ <div class="double">
|
|
|
+ <el-form-item label="测试建议"><el-input v-model="dataChange.testSuggest" style="width:85vw;margin-left:9px;" type="textarea" :rows="5" /></el-form-item>
|
|
|
</div>
|
|
|
- <el-row :gutter="24">
|
|
|
- <el-col :span="23">
|
|
|
- <el-form-item label="自测结果"><el-input v-model="dataChange.selfTestInfo" style=" text-align: right;" /></el-form-item>
|
|
|
- </el-col>
|
|
|
- </el-row>
|
|
|
- <el-row :gutter="24">
|
|
|
- <el-col :span="23">
|
|
|
- <el-form-item label="涉及接口" style="padding:2px;"><el-input v-model="dataChange.interfaceInfo" style=" text-align: right;" type="textarea" :rows="3" /></el-form-item>
|
|
|
- </el-col>
|
|
|
- </el-row>
|
|
|
- <el-row :gutter="24">
|
|
|
- <el-col :span="23">
|
|
|
- <el-form-item label="测试建议" style="padding:2px;"><el-input v-model="dataChange.testSuggest" style=" text-align: right;" type="textarea" :rows="5" /></el-form-item>
|
|
|
- </el-col>
|
|
|
- </el-row>
|
|
|
|
|
|
<div class="backStyle">二. 联调详情</div>
|
|
|
|
|
|
- <el-row :gutter="24">
|
|
|
- <el-col :span="24">
|
|
|
- <div id="DetailsOfProposal" class="toolbar" />
|
|
|
- <div id="DetailsOfProposal1" class="text" />
|
|
|
- </el-col>
|
|
|
- </el-row>
|
|
|
+ <div id="DetailsOfProposal" class="toolbar" />
|
|
|
+ <div id="DetailsOfProposal1" class="text" />
|
|
|
|
|
|
<div class="backStyle">三. 其他</div>
|
|
|
|
|
|
- <el-row>
|
|
|
- <el-col :span="24">
|
|
|
- <el-form-item label="其他"><el-input v-model="dataChange.others" type="textarea" :rows="5" /></el-form-item>
|
|
|
- </el-col>
|
|
|
- </el-row>
|
|
|
+ <div class="double">
|
|
|
+ <el-form-item label="其他"><el-input v-model="dataChange.others" style="width:85vw;" type="textarea" :rows="5" /></el-form-item>
|
|
|
+ </div>
|
|
|
+
|
|
|
+ <div class="double" align="right" style="margin: 5vw 0 3vw 60vw;">
|
|
|
+ <div><el-button @click="clickPreview(dataChange)"> 预 览 </el-button></div>
|
|
|
+ <div v-show="showButton"><el-button type="primary" @click="getCreateData(dataChange)"> 保 存 </el-button></div>
|
|
|
+ <div v-show="showButton1"><el-button type="primary" @click="getQueryData(dataChange)"> 更 新 </el-button></div>
|
|
|
+ <div><el-button @click="open(dataChange)"> 取 消 </el-button></div>
|
|
|
+ </div>
|
|
|
|
|
|
- <el-row :gutter="24" style="margin:70px 0 0 60vw;" type="flex" justify="center">
|
|
|
- <el-col :span="8"><el-button type="info" @click="clickPreview(dataChange)"> 预 览 </el-button></el-col>
|
|
|
- <el-col v-show="showButton" :span="8"><el-button type="info" @click="getCreateData(dataChange)"> 保 存 </el-button></el-col>
|
|
|
- <el-col v-show="showButton1" :span="8"><el-button type="info" @click="getQueryData(dataChange)"> 更 新 </el-button></el-col>
|
|
|
- <el-col :span="8"><el-button type="info" @click="open(dataChange)"> 取 消 </el-button></el-col>
|
|
|
- </el-row>
|
|
|
</el-form>
|
|
|
</div>
|
|
|
</div>
|
|
@@ -116,19 +111,26 @@ export default {
|
|
|
return {
|
|
|
priorityStrings: [{ name: 'p0', value: 0 }, { name: 'p1', value: 1 }, { name: 'p2', value: 2 }, { name: 'p3', value: 3 }],
|
|
|
serviceDataRules: {
|
|
|
+ selfTestInfo: [{ required: true, message: '自测结果不能为空', trigger: 'change' }],
|
|
|
name: [{ required: true, message: '报告标题不能为空', trigger: 'change' }],
|
|
|
submitter: [{ required: true, message: 'by不能为空', trigger: 'change' }],
|
|
|
pmUi: [{ required: true, message: 'PM & UI不能为空', trigger: 'change' }],
|
|
|
- lateStatus: [{ required: true, message: '是否延期不能为空', trigger: 'change' }],
|
|
|
+ lateStatus: [{ required: false, message: '是否延期不能为空', trigger: 'change' }],
|
|
|
lateReason: [{ required: true, message: '延期原因不能为空', trigger: 'change' }],
|
|
|
- dependent: [{ required: true, message: '依赖组建不能为空', trigger: 'change' }],
|
|
|
- configIn: [{ required: true, message: '新增Apollo不能为空', trigger: 'change' }],
|
|
|
+ dependent: [{ required: false, message: '依赖组建不能为空', trigger: 'change' }],
|
|
|
+ configIn: [{ required: false, message: '新增Apollo不能为空', trigger: 'change' }],
|
|
|
priority: [{ required: true, message: '优先级不能为空', trigger: 'change' }],
|
|
|
packageUrl: [{ required: true, message: '测试地址不能为空', trigger: 'change' }],
|
|
|
packageBranch: [{ required: true, message: '打包分支不能为空', trigger: 'change' }],
|
|
|
functionInfo: [{ required: true, message: '需求list不能为空', trigger: 'change' }],
|
|
|
env: [{ required: true, message: '提测环境不能为空', trigger: 'change' }]
|
|
|
},
|
|
|
+ lateStatusBtn: 'info',
|
|
|
+ lateStatusBtn1: 'info',
|
|
|
+ configInBtn: 'info',
|
|
|
+ configInBtn1: 'info',
|
|
|
+ dependentBtn: 'info',
|
|
|
+ dependentBtn1: 'info',
|
|
|
showDelay: false,
|
|
|
showApollo: false,
|
|
|
showRelyOn: false,
|
|
@@ -140,14 +142,15 @@ export default {
|
|
|
userNames: localStorage.getItem('realname'),
|
|
|
id: '',
|
|
|
name: '',
|
|
|
- labelWidth: '60px',
|
|
|
dataChange: {},
|
|
|
DetailsOfProposal: '',
|
|
|
lateStatus: '',
|
|
|
configInfo: '',
|
|
|
dependentComponents: '',
|
|
|
bizIdCode: '',
|
|
|
- projectIdCode: ''
|
|
|
+ projectIdCode: '',
|
|
|
+ configIn: '',
|
|
|
+ dependent: ''
|
|
|
}
|
|
|
},
|
|
|
created() {
|
|
@@ -174,37 +177,51 @@ export default {
|
|
|
this.showButton1 = true
|
|
|
this.showButton = false
|
|
|
this.dataChange = this.$route.query.data
|
|
|
- if (this.dataChange.lateStatus === 1) {
|
|
|
- this.dataChange.lateStatus = '1'
|
|
|
- this.showDelay = true
|
|
|
- } else {
|
|
|
- this.dataChange.lateStatus = '2'
|
|
|
+ if (this.dataChange.lateStatus === '') {
|
|
|
+ this.lateStatusBtn1 = 'success'
|
|
|
+ this.lateStatusBtn = 'info'
|
|
|
+ this.lateStatus = 1
|
|
|
this.showDelay = false
|
|
|
+ } else {
|
|
|
+ this.lateStatusBtn1 = 'info'
|
|
|
+ this.lateStatusBtn = 'danger'
|
|
|
+ this.lateStatus = 2
|
|
|
+ this.showDelay = true
|
|
|
}
|
|
|
if (this.dataChange.configInfo !== '') {
|
|
|
- this.dataChange.configIn = '1'
|
|
|
+ this.configInBtn = 'success'
|
|
|
+ this.configInBtn1 = 'info'
|
|
|
+ this.configIn = 1
|
|
|
this.showApollo = true
|
|
|
} else {
|
|
|
- this.dataChange.configIn = '2'
|
|
|
+ this.configInBtn = 'info'
|
|
|
+ this.configInBtn1 = 'danger'
|
|
|
+ this.configIn = 2
|
|
|
this.showApollo = false
|
|
|
}
|
|
|
if (this.dataChange.dependentComponents !== '') {
|
|
|
- this.dataChange.dependent = '1'
|
|
|
+ this.dependentBtn = 'success'
|
|
|
+ this.dependentBtn1 = 'info'
|
|
|
+ this.dependent = 1
|
|
|
this.showRelyOn = true
|
|
|
} else {
|
|
|
- this.dataChange.dependent = '2'
|
|
|
+ this.dependentBtn = 'info'
|
|
|
+ this.dependentBtn1 = 'danger'
|
|
|
+ this.dependent = 2
|
|
|
this.showRelyOn = false
|
|
|
}
|
|
|
}
|
|
|
},
|
|
|
getQueryData(ele) {
|
|
|
this.dataChange = ele
|
|
|
+ this.dataChange.lateStatus = this.lateStatus
|
|
|
typeof (this.DetailsOfProposal) === 'string' ? this.dataChange.joinTest = this.DetailsOfProposal : ''
|
|
|
this.userData = { ename: this.userInformation, name: this.userNames }
|
|
|
this.objData = { launchTestInfo: this.dataChange, user: this.userData }
|
|
|
launchTestUpdate(this.objData).then(res => {
|
|
|
if (res.code === 200) {
|
|
|
this.$message({ type: 'success', message: '更新成功' })
|
|
|
+ this.$router.go(-1)
|
|
|
} else {
|
|
|
this.$message.error('更新失败')
|
|
|
}
|
|
@@ -215,28 +232,24 @@ export default {
|
|
|
if (valid) {
|
|
|
this.dataChange = ele
|
|
|
typeof (this.DetailsOfProposal) === 'string' ? this.dataChange.joinTest = this.DetailsOfProposal : ''
|
|
|
- // this.dataChange.joinTest = this.DetailsOfProposal
|
|
|
if (this.$route.query.task) {
|
|
|
this.dataChange.taskId = this.projectIdCode
|
|
|
this.dataChange.bizId = this.bizIdCode
|
|
|
}
|
|
|
-
|
|
|
+ this.dataChange.lateStatus = this.lateStatus
|
|
|
this.dataChange.type = 1
|
|
|
- this.dataChange.lateStatus === 1 ? this.dataChange.lateStatus = 1 : this.dataChange.lateStatus = 2
|
|
|
- this.dataChange.configInfo === 1 ? this.dataChange.configInfo = ele.lateReason : this.dataChange.configInfo = ''
|
|
|
- this.dataChange.dependentComponents === 1 ? this.dataChange.dependentComponents = ele.lateReason : this.dataChange.dependentComponents = ''
|
|
|
this.userData = { ename: this.userInformation, name: this.userNames }
|
|
|
this.objData = { launchTestInfo: this.dataChange, user: this.userData }
|
|
|
launchTestCreate(this.objData).then(res => {
|
|
|
if (res.code === 200) {
|
|
|
- this.$message({ type: 'success', message: '保存成功' })
|
|
|
+ this.$message.success(res.msg)
|
|
|
this.$router.go(-1)
|
|
|
} else {
|
|
|
- this.$message.error('保存失败')
|
|
|
+ this.$message.error(res.msg)
|
|
|
}
|
|
|
})
|
|
|
} else {
|
|
|
- console.log('error submit!!')
|
|
|
+ this.$message.error('必填项不能为空')
|
|
|
return false
|
|
|
}
|
|
|
})
|
|
@@ -253,15 +266,55 @@ export default {
|
|
|
.then(() => { this.$message({ type: 'info', message: '继续修改' }) })
|
|
|
.catch(action => { action === 'cancel' ? this.$router.go(-1) : '' })
|
|
|
},
|
|
|
+
|
|
|
+ // 是否延期
|
|
|
lateStatusChange(e) {
|
|
|
- e === 1 ? this.showDelay = true : this.showDelay = false
|
|
|
+ if (e === 1) {
|
|
|
+ this.lateStatusBtn1 = 'success'
|
|
|
+ this.lateStatusBtn = 'info'
|
|
|
+ this.lateStatus = 1
|
|
|
+ this.showDelay = false
|
|
|
+ this.$set(this.dataChange, 'lateReason', '')
|
|
|
+ } else {
|
|
|
+ this.lateStatusBtn1 = 'info'
|
|
|
+ this.lateStatusBtn = 'danger'
|
|
|
+ this.lateStatus = 2
|
|
|
+ this.showDelay = true
|
|
|
+ }
|
|
|
},
|
|
|
+
|
|
|
+ // 新增Apollo
|
|
|
changeApollo(e) {
|
|
|
- e === 1 ? this.showApollo = true : this.showApollo = false
|
|
|
+ if (e === 1) {
|
|
|
+ this.configInBtn = 'success'
|
|
|
+ this.configInBtn1 = 'info'
|
|
|
+ this.configIn = 1
|
|
|
+ this.showApollo = true
|
|
|
+ } else {
|
|
|
+ this.$set(this.dataChange, 'configInfo', '')
|
|
|
+ this.configInBtn = 'info'
|
|
|
+ this.configInBtn1 = 'danger'
|
|
|
+ this.configIn = 2
|
|
|
+ this.showApollo = false
|
|
|
+ }
|
|
|
},
|
|
|
+
|
|
|
+ // 依赖组件
|
|
|
changeRelyOn(e) {
|
|
|
- e === 1 ? this.showRelyOn = true : this.showRelyOn = false
|
|
|
+ if (e === 1) {
|
|
|
+ this.dependentBtn = 'success'
|
|
|
+ this.dependentBtn1 = 'info'
|
|
|
+ this.dependent = 1
|
|
|
+ this.showRelyOn = true
|
|
|
+ } else {
|
|
|
+ this.$set(this.dataChange, 'dependentComponents', '')
|
|
|
+ this.dependentBtn = 'info'
|
|
|
+ this.dependentBtn1 = 'danger'
|
|
|
+ this.dependent = 2
|
|
|
+ this.showRelyOn = false
|
|
|
+ }
|
|
|
},
|
|
|
+
|
|
|
clickPreview(ele) {
|
|
|
this.$router.push({ path: '/Platform/presentation/acceptTheReport', query: { data: ele }})
|
|
|
}
|
|
@@ -282,17 +335,28 @@ export default {
|
|
|
border-radius: 4px;
|
|
|
margin: 1% 0;
|
|
|
}
|
|
|
- .el-col {
|
|
|
- white-space:nowrap;
|
|
|
+ .tag {
|
|
|
+ width:80px;
|
|
|
+ text-align: center;
|
|
|
+ cursor:pointer
|
|
|
}
|
|
|
.toolbar {
|
|
|
- border: 1px solid #ccc;
|
|
|
+ border: 1px solid #DEE2E7;
|
|
|
}
|
|
|
.text {
|
|
|
font-size: 15px;
|
|
|
color: #606266;
|
|
|
- border: 1px solid #ccc;
|
|
|
+ border: 1px solid #DEE2E7;
|
|
|
height: auto;
|
|
|
}
|
|
|
|
|
|
</style>
|
|
|
+<style lang="stylus" scoped>
|
|
|
+ .double
|
|
|
+ display flex
|
|
|
+ justify-content space-between
|
|
|
+ .double >>> .el-form-item__content
|
|
|
+ display flex
|
|
|
+ .double >>> .el-form-item__label
|
|
|
+ margin-right 14.19px
|
|
|
+</style>
|