Commit b9d6ca92 authored by xiaotong's avatar xiaotong

更新apollo显示

parent e72068b6
This source diff could not be displayed because it is too large. You can view the blob instead.
<template>
<div>
<el-form ref="addTestDescriptionRef" :rules="rules" :model="addTestDescriptionForm" label-width="88px"
style="margin-left:25px">
<el-form-item label="Jira项目:" prop="jiraProjectKey">
<el-select v-model="addTestDescriptionForm.jiraProjectKey" placeholder="请选择Jira项目" filterable clearable>
<el-option v-for="item in jiraProjectList" :key="item.key" :label="item.name" :value="item.key">
</el-option>
</el-select>
</el-form-item>
<el-form-item label="项目名称:" style="width:400px" prop="projectName">
<el-input v-model="addTestDescriptionForm.projectName" placeholder="请输入项目名称"></el-input>
</el-form-item>
<!-- 服务及分支 -->
<el-form-item label="服务及分支:">
<el-table :data="serviceAndBranchList" border style="width:90%;margin-top:5px;">
<el-table-column label="服务" width="310">
<template slot-scope="scope">
<el-select v-model="scope.row.serviceName" filterable placeholder="请选择服务"
@change="selectServiceModel(scope.row.serviceName)" clearable style="width:280px">
<el-option v-for="item2 in serviceList" :key="item2.name" :label="item2.name" :value="item2.name">
</el-option>
</el-select>
</template>
</el-table-column>
<el-table-column label="分支" width="310">
<template slot-scope="scope">
<el-select v-model="scope.row.branch" filterable placeholder="请选择分支" clearable
@focus="focusevent(scope.row.serviceName)" style="width:280px">
<el-option v-for="item2 in serviceBranchList" :key="item2.name" :label="item2.name" :value="item2.name">
</el-option>
</el-select>
</template>
</el-table-column>
<el-table-column label="开发负责人" width="190">
<template slot-scope="scope">
<el-input v-model="scope.row.developer"></el-input>
</template>
</el-table-column>
<el-table-column label="操作">
<template slot-scope="scope">
<el-button type="danger" size="mini" icon="el-icon-delete" @click="serviceAndBranchDelete(scope.$index)">
删除
</el-button>
</template>
</el-table-column>
</el-table>
<el-button type="primary" size="mini" plain class="el-icon-circle-plus" style="margin-top:10px"
@click="addServiceAndBranchRow()">添加行</el-button>
</el-form-item>
<!-- apollo变更 -->
<el-form-item label="apollo变更:">
<el-table :data="apolloList" border style="width:90%;margin-top:5px;">
<el-table-column label="项目名称" width="230">
<template slot-scope="scope">
<el-select v-model="scope.row.projectName" placeholder="请选择项目" filterable clearable>
<el-option v-for="item in projectNameList" :key="item.projectName" :label="item.projectName"
:value="item.projectName">
</el-option>
</el-select>
</template>
</el-table-column>
<el-table-column label="apollo Key" width="290">
<template slot-scope="scope">
<el-input v-model="scope.row.key">
</el-input>
</template>
</el-table-column>
<el-table-column label="apollo value" width="290">
<template slot-scope="scope">
<el-input v-model="scope.row.value">
</el-input>
</template>
</el-table-column>
<el-table-column label="操作">
<template slot-scope="scope">
<el-button type="danger" size="mini" icon="el-icon-delete" @click="apolloDelete(scope.$index)">删除
</el-button>
</template>
</el-table-column>
</el-table>
<el-button type="primary" size="mini" plain class="el-icon-circle-plus" style="margin-top:10px"
@click="addApolloListRow()">添加行</el-button>
</el-form-item>
<!-- 数据库变更 -->
<el-form-item label="数据库变更:">
<el-table :data="databaseList" border style="width:90%;margin-top:5px;">
<el-table-column label="数据库名称" width="210">
<template slot-scope="scope">
<el-select v-model="scope.row.db" placeholder="请选择" filterable clearable>
<el-option v-for="item in queryDataBaseList" :key="item" :label="item" :value="item">
</el-option>
</el-select>
</template>
</el-table-column>
<el-table-column label="sql" width="600px">
<template slot-scope="scope">
<el-input v-model.trim="scope.row.sql" type="textarea" autosize>
</el-input>
</template>
</el-table-column>
<el-table-column label="操作">
<template slot-scope="scope">
<el-button type="danger" size="mini" icon="el-icon-delete" @click="databaseDelete(scope.$index)">删除
</el-button>
</template>
</el-table-column>
</el-table>
<el-button type="primary" size="mini" plain class="el-icon-circle-plus" style="margin-top:10px"
@click="addDatabaseListRow()">添加行</el-button>
</el-form-item>
<el-form-item label="需求地址:" style="width:91%">
<el-input v-model="addTestDescriptionForm.requirement"></el-input>
</el-form-item>
<el-form-item label="接口地址:" style="width:91%">
<el-input v-model="addTestDescriptionForm.api"></el-input>
</el-form-item>
<el-form-item label="其它:" style="width:91%">
<el-input v-model="addTestDescriptionForm.scope" type="textarea"></el-input>
</el-form-item>
</el-form>
<span slot="footer" class="dialog-footer">
<el-button @click="DialogAddVisible=false">取 消</el-button>
<el-button type="primary" @click="addTestDescriptionFrom">确 定</el-button>
</span>
</div>
</template>
<script>
import {
getJiraProjectList,
getGitProjectList,
getGitBranchList
} from '@/api/jira'
import {
addTestDescription,
editTestDescription,
getProjectNameList
} from '@/api/TestDesciption'
import { getDataBaseList } from '@/api/effect'
// import bus from '@/utils/bus'
import { mapGetters } from 'vuex'
export default {
computed: {
...mapGetters({
// 获取用户名称(可当作全局变量使用)
getUserName: 'user/chineseName'
})
},
data() {
return {
queryModuleInfo: {
projectName: '',
jiraProjectKey: '',
pageNum: 1,
pageSize: 10
},
totalNum: 0,
DialogAddVisible: false,
jiraProjectList: [],
addTestDescriptionForm: {
id: '',
jiraProjectKey: '',
projectName: '',
serviceAndBranch: '',
apollo: '',
database: '',
requirement: '',
api: '',
scope: ''
},
rules: {
jiraProjectKey: [
{
required: true,
message: '请选择项目名称',
trigger: 'blur'
}
],
projectName: [
{
required: true,
message: '请输入项目名称',
trigger: 'blur'
}
]
},
serviceList: [],
serviceBranchList: [],
queryDataBaseList: [],
serviceAndBranchList: [],
apolloList: [],
databaseList: [],
projectNameList: []
}
},
created() {
this.getJiraProjectList()
// 获取所有的服务
this.getServiceList()
// 获取所有项目
this.getProjectNameList()
},
methods: {
// 复制模板内容
copyTemplate(id) {
let value = this.baseURL + '/xxx/xxx/xxx/xxx/xxx?authorization=&id=' + id
this.copyToClipboard(value) // 需要复制的文本内容
this.$message.success('复制成功,注意带变量字段内容请自行替换!')
},
// 获取jira项目列表
getJiraProjectList() {
getJiraProjectList().then((resp) => {
this.jiraProjectList = resp.data.data
})
},
// 获取服务列表
getServiceList() {
getGitProjectList().then((resp) => {
this.serviceList = resp.data.data
})
},
focusevent(name) {
getGitBranchList({ projectName: name }).then((resp) => {
this.serviceBranchList = resp.data.data.data
})
},
// 选择服务下拉框触发事件
selectServiceModel(item) {
getGitBranchList({ projectName: item }).then((resp) => {
this.serviceBranchList = resp.data.data.data
})
},
// 添加服务及分支
addServiceAndBranchRow() {
this.serviceAndBranchList.push({
serviceName: '',
branch: '',
developer: this.getUserName
})
},
// 删除服务及分支
serviceAndBranchDelete(index) {
this.serviceAndBranchList.splice(index, 1)
},
// 添加apollo配置行
addApolloListRow() {
this.apolloList.push({
projectName: '',
key: '',
value: ''
})
},
// 删除apollo配置行
apolloDelete(index) {
this.apolloList.splice(index, 1)
},
// 添加数据库行
addDatabaseListRow() {
this.databaseList.push({
db: '',
sql: ''
})
},
// 删除数据库
databaseDelete(index) {
this.databaseList.splice(index, 1)
},
// 获取数据库列表信息
getDataBaseList() {
getDataBaseList().then((resp) => {
this.queryDataBaseList = resp.data.data
})
},
// 保存数据按钮
addTestDescriptionFrom() {
// 将数组对象转化为Json字符串
this.addTestDescriptionForm.serviceAndBranch = JSON.stringify(
this.serviceAndBranchList
)
this.addTestDescriptionForm.apollo = JSON.stringify(this.apolloList)
this.addTestDescriptionForm.database = JSON.stringify(this.databaseList)
this.$refs.addTestDescriptionRef.validate((valid) => {
if (!valid) {
return false
} else {
// 编辑测试文档
if (this.addTestDescriptionForm.id) {
editTestDescription(this.addTestDescriptionForm).then((resp) => {
if (resp.data.businessCode === '0000') {
this.$message.success(resp.data.msg)
this.DialogAddVisible = false
} else {
this.$message.error(resp.data.msg)
}
})
} else {
// 添加测试文档
addTestDescription(this.addTestDescriptionForm).then((resp) => {
if (resp.data.businessCode === '0000') {
this.$message.success(resp.data.msg)
this.DialogAddVisible = false
} else {
this.$message.error(resp.data.msg)
}
})
}
}
})
},
// 编辑对话框
openEditDialog(row) {
this.DialogAddVisible = true
this.getDataBaseList()
this.addTestDescriptionForm.id = row.id
this.addTestDescriptionForm.projectName = row.projectName
this.addTestDescriptionForm.jiraProjectKey = row.jiraProjectKey
this.addTestDescriptionForm.requirement = row.requirement
this.addTestDescriptionForm.api = row.api
this.addTestDescriptionForm.scope = row.scope
this.serviceAndBranchList = JSON.parse(row.serviceAndBranch)
this.apolloList = JSON.parse(row.apollo)
this.databaseList = JSON.parse(row.database)
},
// 获取所有项目名称
getProjectNameList() {
getProjectNameList().then((resp) => {
console.log('444', resp)
this.projectNameList = resp.data.data
})
}
}
}
</script>
<style lang="less" scoped>
.btn-style {
margin-top: 10px;
}
.el-select {
margin: 0 10px 0 5px;
}
</style>
...@@ -45,7 +45,7 @@ ...@@ -45,7 +45,7 @@
</el-table-column> </el-table-column>
<el-table-column prop="dingRobot.creator" label="创建人" width="80px"></el-table-column> <el-table-column prop="dingRobot.creator" label="创建人" width="80px"></el-table-column>
<el-table-column prop="dingRobot.jiraProjectName" label="JIRA项目" width="100px"></el-table-column> <el-table-column prop="dingRobot.jiraProjectName" label="JIRA项目" width="100px"></el-table-column>
<el-table-column prop="dingRobot.createTime" label="创建时间" width="170px"></el-table-column> <el-table-column prop="dingRobot.createTime" label="创建时间" width="175px"></el-table-column>
<el-table-column label="操作"> <el-table-column label="操作">
<slot slot-scope="scope"> <slot slot-scope="scope">
<el-button type="primary" size="small" @click="openEditDialog(scope.row)" <el-button type="primary" size="small" @click="openEditDialog(scope.row)"
......
...@@ -31,8 +31,17 @@ ...@@ -31,8 +31,17 @@
<el-table-column label="apollo变更" width="200px"> <el-table-column label="apollo变更" width="200px">
<template slot-scope="scope"> <template slot-scope="scope">
<div v-for="item in JSON.parse(scope.row.apollo)" :key="item.projectName"> <div v-for="item in JSON.parse(scope.row.apollo)" :key="item.projectName">
<b>{{ item.projectName }}</b> -> <div v-if="item.value.length<=200">
{{ item.key }}<b> ->{{ item.value }}</b> <b>{{ item.projectName }}</b> ->
{{ item.key }}<b> ->{{ item.value}}</b>
</div>
<div v-else>
<b>项目名称:{{ item.projectName }}</b><br>
<el-popover placement="top-start" title="value" width="250" trigger="hover" :content="item.value">
<div slot="reference" style="color:#409EFF">{{item.key}}</div>
</el-popover>
</div>
</div> </div>
</template> </template>
</el-table-column> </el-table-column>
...@@ -43,7 +52,6 @@ ...@@ -43,7 +52,6 @@
<div slot="reference" style="color:#409EFF">{{item.db}}</div> <div slot="reference" style="color:#409EFF">{{item.db}}</div>
</el-popover> </el-popover>
</div> </div>
</template> </template>
</el-table-column> </el-table-column>
<el-table-column prop="jiraProjectName" label="Jira项目" width="95px"></el-table-column> <el-table-column prop="jiraProjectName" label="Jira项目" width="95px"></el-table-column>
...@@ -113,63 +121,6 @@ ...@@ -113,63 +121,6 @@
</el-table> </el-table>
<el-button type="primary" size="mini" plain class="el-icon-circle-plus" style="margin-top:10px" <el-button type="primary" size="mini" plain class="el-icon-circle-plus" style="margin-top:10px"
@click="addServiceAndBranchRow()">添加行</el-button> @click="addServiceAndBranchRow()">添加行</el-button>
<!-- <el-row>
<el-col :span="8">
<div style="margin-left:100px">
服务
</div>
</el-col>
<el-col :span="8">
<div style="margin-left:100px">
分支
</div>
</el-col>
<el-col :span="4">
<div style="margin-left:50px">
开发负责人
</div>
</el-col>
<el-col :span="4">
<div style="margin-left:60px">
操作
</div>
</el-col>
</el-row> -->
<!-- 操作数据 -->
<!-- <el-row v-for="(item, index) in serviceAndBranchList" :key="index" :gutter="20">
<el-col :span="8">
<div>
<el-select v-model="item.serviceName" filterable placeholder="请选择服务"
@change="selectServiceModel(item.serviceName)" clearable style="width:320px;margin-top:10px">
<el-option v-for="item2 in serviceList" :key="item2.name" :label="item2.name" :value="item2.name">
</el-option>
</el-select>
</div>
</el-col>
<el-col :span="8">
<div>
<el-select v-model="item.branch" filterable placeholder="请选择分支" clearable
@focus="focusevent(item.serviceName)" style="width:320px;margin-top:10px">
<el-option v-for="item2 in serviceBranchList" :key="item2.name" :label="item2.name"
:value="item2.name"></el-option>
</el-select>
</div>
</el-col>
<el-col :span="4">
<div>
<el-input v-model="item.developer" style="width:180px;margin-top:10px"></el-input>
</div>
</el-col>
<el-col :span="4">
<div style="margin-left:20px;margin-top:10px">
<el-button size="small" type="danger" icon="el-icon-delete" @click="serviceAndBranchDelete(index)">删除
</el-button>
</div>
</el-col>
</el-row>
<el-button type="primary" size="mini" plain icon="el-icon-circle-plus-outline"
@click="addServiceAndBranchRow()" class="btn-style">添加</el-button> -->
</el-form-item> </el-form-item>
<!-- apollo变更 --> <!-- apollo变更 -->
<el-form-item label="apollo变更:"> <el-form-item label="apollo变更:">
...@@ -354,11 +305,11 @@ export default { ...@@ -354,11 +305,11 @@ export default {
}, },
handleSizeChange(newSize) { handleSizeChange(newSize) {
this.queryModuleInfo.pageSize = newSize this.queryModuleInfo.pageSize = newSize
this.getProjectList() this.getTestDescriptionList()
}, },
handleCurrentChange(newPage) { handleCurrentChange(newPage) {
this.queryModuleInfo.pageNum = newPage this.queryModuleInfo.pageNum = newPage
this.getProjectList() this.getTestDescriptionList()
}, },
// 获取服务列表 // 获取服务列表
getServiceList() { getServiceList() {
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment