Commit eefda9b6 authored by 王晓铜's avatar 王晓铜

菜单

parents c85ed705 e1afef6f
import request from '@/utils/request' import request from '@/utils/request'
import holmesRequest from '@/utils/holmesRequest'
export function kdspDecrypt(queryInfo) { export function kdspDecrypt(queryInfo) {
return request({ return request({
...@@ -38,3 +39,27 @@ export function getLoginInfoList(queryInfo) { ...@@ -38,3 +39,27 @@ export function getLoginInfoList(queryInfo) {
params: queryInfo params: queryInfo
}) })
} }
export function getClearCacheList(queryInfo) {
return holmesRequest({
url: '/effect/cacheList',
method: 'get',
params: queryInfo
})
}
export function clearCache(queryInfo) {
return holmesRequest({
url: '/effect/clearcache',
method: 'get',
params: queryInfo
})
}
export function clearData(dataInfo) {
return request({
url: '/cleardata',
method: 'get',
params: dataInfo
})
}
...@@ -7,3 +7,11 @@ export function genVccData(data) { ...@@ -7,3 +7,11 @@ export function genVccData(data) {
data data
}) })
} }
export function vccRiskControl(paramInfo) {
return request({
url: '/vcc/risk',
method: 'get',
params: paramInfo
})
}
...@@ -8,6 +8,13 @@ export function getProjectRobotList(queryInfo) { ...@@ -8,6 +8,13 @@ export function getProjectRobotList(queryInfo) {
}) })
} }
export function getJiraProjectList() {
return request({
url: '/jira/list/project',
method: 'get'
})
}
export function addProjectRobot(data) { export function addProjectRobot(data) {
return request({ return request({
url: '/jira/add/robot', url: '/jira/add/robot',
...@@ -31,3 +38,11 @@ export function delProjectRobot(queryInfo) { ...@@ -31,3 +38,11 @@ export function delProjectRobot(queryInfo) {
params: queryInfo params: queryInfo
}) })
} }
export function sendScheduleReport(data) {
return request({
url: '/jira/send/schedule',
method: 'post',
data
})
}
...@@ -19,6 +19,9 @@ import ProjectList from '../views/auto/Project' ...@@ -19,6 +19,9 @@ import ProjectList from '../views/auto/Project'
import ModelList from '../views/auto/Model' import ModelList from '../views/auto/Model'
import InterfaceDetail from '../views/auto/InterfaceDetail' import InterfaceDetail from '../views/auto/InterfaceDetail'
import JiraNotify from '../views/jira/Notify' import JiraNotify from '../views/jira/Notify'
import RiskControl from '../views/vcc/RiskControl'
import ClearCache from '../views/effect/ClearCache'
import ClearData from '../views/effect/ClearData'
import AddInterface from '../views/auto/AddInterface' import AddInterface from '../views/auto/AddInterface'
import CaseList from '../views/auto/CaseList' import CaseList from '../views/auto/CaseList'
import AddCase from '../views/auto/AddCase' import AddCase from '../views/auto/AddCase'
...@@ -140,8 +143,20 @@ const router = new Router({ ...@@ -140,8 +143,20 @@ const router = new Router({
component: EditScene component: EditScene
}, },
{ {
'path': '/effect/jira/notify', 'path': '/jira/notify',
component: JiraNotify component: JiraNotify
},
{
'path': '/vcc/risk',
component: RiskControl
},
{
'path': '/effect/clearcache',
component: ClearCache
},
{
'path': '/effect/cleardata',
component: ClearData
} }
] ]
} }
......
<template>
<div>
<el-card>
<el-table :data="cacheList" border style="width: 100%">
<el-table-column type="index" width="50"></el-table-column>
<el-table-column prop="name" label="描述" width="180">
</el-table-column>
<el-table-column prop="url" label="地址" width="500">
</el-table-column>
<el-table-column label="操作">
<slot slot-scope="scope">
<el-button type="primary" @click="clearCache(scope.row)">清除缓存</el-button>
</slot>
</el-table-column>
</el-table>
<!-- <div class="result">清除结果:{{ clearResult }}</div> -->
</el-card>
</div>
</template>
<script>
import { getClearCacheList, clearCache } from '@/api/effect'
export default {
data() {
return {
getCacheListParam: {
pageNum: 1,
pageSize: 10
},
cacheList: [],
clearCacheParams: {
id: '',
namespace: window.sessionStorage.getItem('env')
},
clearResult: ''
}
},
created() {
this.getCacheList()
},
methods: {
getCacheList() {
getClearCacheList(this.getCacheListParam).then((resp) => {
this.cacheList = resp.data.data
})
},
clearCache(row) {
this.clearCacheParams.id = row.id
clearCache(this.clearCacheParams).then((resp) => {
this.clearResult = resp.data.data
if (resp.data.data.code === '0000') {
this.$message.success('缓存清除成功!')
} else {
this.$message.error('缓存清除失败!')
}
})
}
}
}
</script>
<style lang="less" scoped>
.result {
margin-top: 20px;
}
</style>
<template>
<div>
<!-- <p>羊小咩相关数据清除</p> -->
<el-card>
手机号:<el-input v-model="clearParams.phoneNo" placeholder="请输入手机号" maxlength="11"></el-input>
<el-button type="primary" icon="el-icon-brush" @click="clearYxmData">清除数据</el-button>
</el-card>
</div>
</template>
<script>
import { clearData } from '@/api/effect'
export default {
data() {
return {
clearParams: {
phoneNo: '',
namespace: window.sessionStorage.getItem('env')
}
}
},
methods: {
clearYxmData() {
clearData(this.clearParams).then((resp) => {
if (resp.data.data === true) {
this.$message.success('数据清除成功!')
} else {
return this.$message.error('数据清除失败!')
}
}).catch((error) => {
console.log(error)
return this.$message.error('数据清除失败,请检查环境或是否正确!')
})
}
}
}
</script>
<style lang="less" scoped>
.el-input {
width: 200px;
margin-right: 20px;
}
</style>
...@@ -9,15 +9,16 @@ ...@@ -9,15 +9,16 @@
<el-table :data="dingRobotList" border style="width: 100%"> <el-table :data="dingRobotList" border style="width: 100%">
<!-- <el-table-column prop="id" label="编号" width="80px"></el-table-column> --> <!-- <el-table-column prop="id" label="编号" width="80px"></el-table-column> -->
<el-table-column type="index" label="序号" width="50px"></el-table-column> <el-table-column type="index" label="序号" width="50px"></el-table-column>
<el-table-column prop="projectName" label="项目名" width="250px"></el-table-column> <el-table-column prop="projectName" label="项目名" width="220px"></el-table-column>
<el-table-column prop="dingUrl" label="钉钉url"></el-table-column> <el-table-column prop="dingUrl" label="钉钉url"></el-table-column>
<el-table-column prop="creator" label="创建人" width="100px"> <el-table-column prop="creator" label="创建人" width="80px">
</el-table-column> </el-table-column>
<el-table-column prop="createTime" label="创建时间" width="180px"></el-table-column> <el-table-column prop="createTime" label="创建时间" width="180px"></el-table-column>
<el-table-column label="操作" width="200px"> <el-table-column label="操作" width="300px">
<slot slot-scope="scope"> <slot slot-scope="scope">
<el-button type="primary" @click="openEditDialog(scope.row)">编辑</el-button> <el-button type="primary" @click="openEditDialog(scope.row)">编辑</el-button>
<el-button type="danger" @click="delProjectRobot(scope.row.id)">删除</el-button> <el-button type="danger" @click="delProjectRobot(scope.row.id)">删除</el-button>
<el-button type="success" @click="openSendDialog(scope.row)">发送进度</el-button>
</slot> </slot>
</el-table-column> </el-table-column>
<!-- <el-table-column prop="updateTime" label="更新时间"></el-table-column> --> <!-- <el-table-column prop="updateTime" label="更新时间"></el-table-column> -->
...@@ -30,13 +31,19 @@ ...@@ -30,13 +31,19 @@
<!-- 新增对话框 --> <!-- 新增对话框 -->
<el-dialog title="新增robot" :visible.sync="addDialogVisible" width="60%" @close="closeAddDialog"> <el-dialog title="新增robot" :visible.sync="addDialogVisible" width="60%" @close="closeAddDialog">
<el-form ref="addRobotFormRef" :rules="formRules" :model="robotForm" label-width="150px"> <el-form ref="addRobotFormRef" :rules="formRules" :model="robotForm" label-width="150px">
<el-form-item label="jira项目" prop="jiraProjectKey">
<el-select v-model="robotForm.jiraProjectKey" placeholder="请选择Jira项目">
<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="项目名称" prop="projectName"> <el-form-item label="项目名称" prop="projectName">
<el-input v-model="robotForm.projectName" placeholder="请输入项目名称"></el-input> <el-input v-model="robotForm.projectName" placeholder="请输入项目名称"></el-input>
</el-form-item> </el-form-item>
<el-form-item label="钉钉通知地址" prop="dingUrl"> <el-form-item label="钉钉通知地址" prop="dingUrl">
<el-input v-model="robotForm.dingUrl" placeholder="请输入钉钉通知地址" type="textarea"></el-input> <el-input v-model="robotForm.dingUrl" placeholder="请输入钉钉通知地址" type="textarea"></el-input>
</el-form-item> </el-form-item>
<el-form-item label="创建人"> <el-form-item label="创建人" prop="creator">
<el-input v-model="robotForm.creator"></el-input> <el-input v-model="robotForm.creator"></el-input>
</el-form-item> </el-form-item>
</el-form> </el-form>
...@@ -49,13 +56,19 @@ ...@@ -49,13 +56,19 @@
<!-- 编辑对话框 --> <!-- 编辑对话框 -->
<el-dialog title="编辑" :visible.sync="editDialogVisible" width="60%" @close="closeEditDialog"> <el-dialog title="编辑" :visible.sync="editDialogVisible" width="60%" @close="closeEditDialog">
<el-form ref="editRobotFormRef" :rules="formRules" :model="editRobotForm" label-width="150px"> <el-form ref="editRobotFormRef" :rules="formRules" :model="editRobotForm" label-width="150px">
<el-form-item label="jira项目" prop="jiraProjectKey">
<el-select v-model="editRobotForm.jiraProjectKey" placeholder="请选择Jira项目">
<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="项目名称" prop="projectName"> <el-form-item label="项目名称" prop="projectName">
<el-input v-model="editRobotForm.projectName" placeholder="请输入项目名称"></el-input> <el-input v-model="editRobotForm.projectName" placeholder="请输入项目名称"></el-input>
</el-form-item> </el-form-item>
<el-form-item label="钉钉通知地址" prop="dingUrl"> <el-form-item label="钉钉通知地址" prop="dingUrl">
<el-input v-model="editRobotForm.dingUrl" placeholder="请输入钉钉通知地址" type="textarea"></el-input> <el-input v-model="editRobotForm.dingUrl" placeholder="请输入钉钉通知地址" type="textarea"></el-input>
</el-form-item> </el-form-item>
<el-form-item label="创建人"> <el-form-item label="创建人" prop="creator">
<el-input v-model="editRobotForm.creator"></el-input> <el-input v-model="editRobotForm.creator"></el-input>
</el-form-item> </el-form-item>
</el-form> </el-form>
...@@ -64,20 +77,39 @@ ...@@ -64,20 +77,39 @@
<el-button type="primary" @click="editRobotProject">保 存</el-button> <el-button type="primary" @click="editRobotProject">保 存</el-button>
</span> </span>
</el-dialog> </el-dialog>
<!-- 发送进度对话框 -->
<el-dialog title="发送进度报告" :visible.sync="sendScheduleDialogVisible" width="60%" @close="closeSendDialog">
<el-form ref="sendFormRef" :rules="sendFormRules" :model="sendScheduleForm" label-width="150px">
<el-form-item label="测试进度" prop="progress">
<el-input v-model="sendScheduleForm.progress" maxlength="3" placeholder="请输入测试进度百分比(不需要%)"></el-input>
</el-form-item>
<el-form-item label="风险点" prop="risk">
<el-input v-model="sendScheduleForm.risk" type="textarea" placeholder="请输入测试风险点(非必填)"></el-input>
</el-form-item>
</el-form>
<span slot="footer" class="dialog-footer">
<el-button @click="sendScheduleDialogVisible = false">取 消</el-button>
<el-button type="primary" @click="sendSchedule">发 送</el-button>
</span>
</el-dialog>
</div> </div>
</template> </template>
<script> <script>
import { import {
getJiraProjectList,
getProjectRobotList, getProjectRobotList,
addProjectRobot, addProjectRobot,
modifyProjectRobot, modifyProjectRobot,
delProjectRobot delProjectRobot,
sendScheduleReport
} from '@/api/jira' } from '@/api/jira'
export default { export default {
data() { data() {
return { return {
dingRobotList: [], dingRobotList: [],
jiraProjectList: [],
queryInfo: { queryInfo: {
pageNum: 1, pageNum: 1,
pageSize: 10 pageSize: 10
...@@ -85,21 +117,41 @@ export default { ...@@ -85,21 +117,41 @@ export default {
totalNum: 0, totalNum: 0,
addDialogVisible: false, addDialogVisible: false,
editDialogVisible: false, editDialogVisible: false,
sendScheduleDialogVisible: false,
robotForm: { robotForm: {
projectName: '', projectName: '',
dingUrl: '', dingUrl: '',
creator: '' creator: '',
jiraProjectKey: ''
}, },
editRobotForm: {}, editRobotForm: {},
sendProjectRobot: {},
sendScheduleData: {
jiraProject: '',
testProject: '',
progress: '',
risk: '',
webhook: ''
},
delRobotParams: { delRobotParams: {
projectRobotId: '' projectRobotId: ''
}, },
sendScheduleForm: {},
formRules: { formRules: {
projectName: [ projectName: [
{ required: true, message: '请输入项目名称', trigger: 'blur' } { required: true, message: '请输入项目名称', trigger: 'blur' }
], ],
dingUrl: [ dingUrl: [
{ required: true, message: '请输入钉钉机器人url', trigger: 'blur' } { required: true, message: '请输入钉钉机器人url', trigger: 'blur' }
],
jiraProjectKey: [
{ required: true, message: '请选择对应的Jira项目', trigger: 'blur' }
],
creator: [{ required: true, message: '请输入创建人', trigger: 'blur' }]
},
sendFormRules: {
progress: [
{ required: true, message: '请输入测试进度百分比,不需要%', trigger: 'blur' }
] ]
} }
} }
...@@ -111,6 +163,11 @@ export default { ...@@ -111,6 +163,11 @@ export default {
this.totalNum = resp.data.data.total this.totalNum = resp.data.data.total
}) })
}, },
getJiraProjectList() {
getJiraProjectList().then((resp) => {
this.jiraProjectList = resp.data.data
})
},
// 新增 // 新增
addRobotProject() { addRobotProject() {
this.$refs.addRobotFormRef.validate((valid) => { this.$refs.addRobotFormRef.validate((valid) => {
...@@ -173,6 +230,22 @@ export default { ...@@ -173,6 +230,22 @@ export default {
}) })
}) })
}, },
// 发送进度报告
sendSchedule() {
this.sendScheduleData.jiraProjectKey = this.sendProjectRobot.jiraProjectKey
this.sendScheduleData.testProjectName = this.sendProjectRobot.projectName
this.sendScheduleData.progress = this.sendScheduleForm.progress + '%'
this.sendScheduleData.risk = this.sendScheduleForm.risk
this.sendScheduleData.webhook = this.sendProjectRobot.dingUrl
sendScheduleReport(this.sendScheduleData).then((resp) => {
if (resp.data.data === true) {
this.sendScheduleDialogVisible = false
return this.$message.success('发送成功!')
} else if (resp.data.data === false) {
return this.$message.error('发送失败!')
}
})
},
handleSizeChange(newSize) { handleSizeChange(newSize) {
this.queryInfo.pageSize = newSize this.queryInfo.pageSize = newSize
this.getProjectRobotList() this.getProjectRobotList()
...@@ -185,14 +258,23 @@ export default { ...@@ -185,14 +258,23 @@ export default {
this.editDialogVisible = true this.editDialogVisible = true
this.editRobotForm = projectRobot this.editRobotForm = projectRobot
}, },
// 打开发送进度对话框
openSendDialog(projectRobot) {
this.sendScheduleDialogVisible = true
this.sendProjectRobot = projectRobot
},
closeAddDialog() { closeAddDialog() {
this.$refs.addRobotFormRef.resetFields() this.$refs.addRobotFormRef.resetFields()
}, },
closeEditDialog() { closeEditDialog() {
this.$refs.editRobotFormRef.resetFields() this.$refs.editRobotFormRef.resetFields()
},
closeSendDialog() {
this.$refs.sendFormRef.resetFields()
} }
}, },
created() { created() {
this.getJiraProjectList()
this.getProjectRobotList() this.getProjectRobotList()
} }
} }
......
...@@ -41,6 +41,12 @@ ...@@ -41,6 +41,12 @@
"title": "消金造", "title": "消金造",
"icon": "el-icon-apple", "icon": "el-icon-apple",
"path": "/vcc/genData" "path": "/vcc/genData"
},
{
"id": 4,
"title": "授信回调",
"icon": "el-icon-soccer",
"path": "/vcc/risk"
} }
] ]
}, },
...@@ -82,9 +88,15 @@ ...@@ -82,9 +88,15 @@
}, },
{ {
"id": 4, "id": 4,
"title": "jira-钉钉通知", "title": "缓存清理",
"icon": "el-icon-ice-tea", "icon": "el-icon-milk-tea",
"path": "/effect/jira/notify" "path": "/effect/clearcache"
},
{
"id": 5,
"title": "数据清理",
"icon": "el-icon-water-cup",
"path": "/effect/cleardata"
} }
] ]
}, },
...@@ -124,6 +136,19 @@ ...@@ -124,6 +136,19 @@
"path": "/auto/SceneList" "path": "/auto/SceneList"
} }
] ]
},
{
"id": 6,
"title": "Jira相关",
"icon": "el-icon-hot-water",
"child": [
{
"id": 1,
"title": "jira-钉钉通知",
"icon": "el-icon-ice-tea",
"path": "/jira/notify"
}
]
} }
] ]
} }
\ No newline at end of file
...@@ -10,6 +10,7 @@ ...@@ -10,6 +10,7 @@
<el-card> <el-card>
<div> <div>
手机号:<el-input v-model="genDataParams.phoneNo" placeholder="请输入手机号" maxlength="11"></el-input> 手机号:<el-input v-model="genDataParams.phoneNo" placeholder="请输入手机号" maxlength="11"></el-input>
渠道号:<el-input v-model="genDataParams.channel" placeholder="请输入渠道号" maxlength="11"></el-input>
用户状态: 用户状态:
<el-select v-model="genDataParams.status" placeholder="请选择用户状态"> <el-select v-model="genDataParams.status" placeholder="请选择用户状态">
<el-option v-for="item in options" :key="item.value" :label="item.label" :value="item.value"> <el-option v-for="item in options" :key="item.value" :label="item.label" :value="item.value">
...@@ -107,12 +108,14 @@ export default { ...@@ -107,12 +108,14 @@ export default {
if (resp !== null) { if (resp !== null) {
tLoading.close() tLoading.close()
} }
this.tableData.push(resp.data.data) if (resp.data.data !== null) {
this.tableData.push(resp.data.data)
}
}) })
.catch((error) => { .catch((error) => {
console.log(error) console.log(error)
tLoading.close() tLoading.close()
this.$$message.error('vcc或用户中心相关服务异常,请检查!') this.$message.error('vcc或用户中心相关服务异常,请检查!')
}) })
} }
} }
......
<template>
<div>
<el-card>
手机号:<el-input v-model="riskControlParams.phoneNo" placeholder="请输入手机号" maxlength="11"></el-input>
授信结果: <el-select v-model="riskControlParams.result" placeholder="请选择授信状态">
<el-option v-for="item in riskStatus" :key="item.value" :label="item.label" :value="item.value">
</el-option>
</el-select>
授信金额:<el-input v-model="riskControlParams.amount" placeholder="请输入授信金额"></el-input>
<el-button type="primary" @click="doVccRiskControl">开始回调</el-button>
<el-table :data="dataTable" border style="width: 100%">
<el-table-column
prop="phoneNo"
label="手机号"
width="120px"
></el-table-column>
<el-table-column
prop="userId"
label="userId"
width="100px"
></el-table-column>
<el-table-column
prop="uuid"
label="uuid"
width="320px"
></el-table-column>
<el-table-column
prop="registeredFrom"
label="注册渠道"
width="100px"
></el-table-column>
<el-table-column
prop="nextApplyTime"
label="过期时间"
width="180px"
></el-table-column>
<el-table-column prop="createdAt" label="创建时间" width="180px"></el-table-column>
<el-table-column prop="status" label="状态"></el-table-column>
</el-table>
</el-card>
</div>
</template>
<script>
import { vccRiskControl } from '@/api/genVccData'
import { queryUserData } from '@/api/checkVccData'
export default {
data() {
return {
riskControlParams: {
namespace: window.sessionStorage.getItem('env'),
phoneNo: '',
result: '',
amount: 10000
},
queryUserDataParams: {
namespace: window.sessionStorage.getItem('env'),
phoneNo: ''
},
riskStatus: [
{
label: '授信成功',
value: true
},
{
label: '授信失败',
value: false
}
],
dataTable: []
}
},
methods: {
doVccRiskControl() {
if (this.riskControlParams.phoneNo === '') {
return this.$message.error('手机号不允许为空!')
}
vccRiskControl(this.riskControlParams).then((resp) => {
console.log(resp)
if (resp.data.data === true) {
this.queryUserDataParams.phoneNo = this.riskControlParams.phoneNo
queryUserData(this.queryUserDataParams).then((resp) => {
this.dataTable.push(resp.data.data)
})
return this.$message.success('手动授信回调成功!')
} else {
return this.$message.error('手动授信回调失败,请检查环境是否正确或服务是否正常!')
}
})
}
}
}
</script>
<style lang="less" scoped>
.el-input {
width: 200px;
margin-right: 20px;
}
.el-select {
margin-right: 20px;
}
.el-table {
margin-top: 20px;
}
</style>
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