Commit 815f0ac8 authored by 王晓铜's avatar 王晓铜

添加监控sql编辑器

parent c83536d5
......@@ -2,7 +2,7 @@ import holmesRequest from '@/utils/holmesRequest'
// 获取sql监控列表
export function getSqlMonitorList(queryInfo) {
return holmesRequest({
url: '/monitor/task/list',
url: '/sql/monitor/list',
method: 'get',
params: queryInfo
})
......@@ -55,3 +55,19 @@ export function getSqlMonitorData(queryInfo) {
params: queryInfo
})
}
// 获取执行策略列表
export function getMonitorStrategy(queryInfo) {
return holmesRequest({
url: '/sql/monitor/strategy',
method: 'get',
params: queryInfo
})
}
// 启用、禁用接口
export function isEnableSqlMonitor(data) {
return holmesRequest({
url: '/sql/monitor/enable',
method: 'post',
data
})
}
......@@ -19,7 +19,9 @@ import hljs from 'highlight.js'
import 'highlight.js/styles/googlecode.css'
// 引用sql编辑器(2021-12-30)
import AFTableColumn from 'af-table-column'
import Plugin from 'v-fit-columns'
import { codemirror } from 'vue-codemirror'
import 'codemirror/lib/codemirror.css'
// import Sortable from 'sortablejs'
import {
......@@ -78,10 +80,11 @@ Vue.directive('highlight', function(el) {
})
// 设置自适应宽度的比率
const fontRate = {
CHAR_RATE: 0.1,
NUM_RATE: 0.1,
OTHER_RATE: 0.1
CHAR_RATE: 0.4,
NUM_RATE: 0.6,
OTHER_RATE: 0.6
}
const fontSize = 16
Vue.config.productionTip = false
......@@ -141,9 +144,8 @@ Vue.use(Checkbox)
Vue.use(CheckboxGroup)
Vue.use(Popover)
Vue.use(Alert)
Vue.use(AFTableColumn, fontRate)
Vue.use(Plugin)
Vue.use(AFTableColumn, { fontRate, fontSize })
Vue.use(codemirror)
// Vue.use(Sortable)
/* eslint-disable no-new */
......
This diff is collapsed.
......@@ -19,7 +19,13 @@
</template>
</el-table-column>
<el-table-column label="监控名称" prop="taskName" width="180px"></el-table-column>
<el-table-column label="执行策略" prop="taskCron" width="180px"></el-table-column>
<el-table-column label="执行策略" prop="taskCron" width="180px">
<template slot-scope="scope">
<p v-if="scope.row.taskCron==='0 0 * * * ?'">每小时执行一次</p>
<p v-if="scope.row.taskCron==='0 0 10 * * ?'">每天10点执行一次</p>
<p v-if="scope.row.taskCron==='0 0 10 ? * 2'">每周一上午10点执行一次</p>
</template>
</el-table-column>
<el-table-column label="sql" width="150px">
<template slot-scope="scope">
<el-popover placement="top-start" title="sql" width="50" trigger="hover" :content="scope.row.sql">
......@@ -27,7 +33,7 @@
</el-popover>
</template>
</el-table-column>
<el-table-column label="服务名称" prop="serviceName" width="100px"></el-table-column>
<el-table-column label="服务名称" prop="serviceName" width="150px"></el-table-column>
<el-table-column label="数据源" prop="dsName" width="80px"></el-table-column>
<el-table-column label="负责人" prop="owner" width="80px"></el-table-column>
<el-table-column label="当前状态" width="80px">
......@@ -39,12 +45,17 @@
<el-table-column label="创建时间" prop="createTime" width="180px"></el-table-column>
<el-table-column label="操作">
<slot slot-scope="scope">
<el-button type="warning" icon="el-icon-edit" @click="openEditDialog(scope.row)"
<el-button type="warning" icon="el-icon-edit" @click="openEditMonitorDialog(scope.row)"
v-permission="('monitor:sql:edit')">编辑</el-button>
<el-button type="success" icon="el-icon-success" @click="openEditDialog(scope.row)"
v-permission="('monitor:sql:enable')" style="margin-left:1px">启用</el-button>
<el-button type="info" icon="el-icon-error" @click="enableDislog(scope.row)"
v-permission="('monitor:sql:enable')" v-if="scope.row.status===1">禁用</el-button>
<el-button type="success" icon="el-icon-success" @click="unenableDialog(scope.row)"
v-permission="('monitor:sql:enable')" v-if="scope.row.status===0">启用</el-button>
<el-button type="danger" icon="el-icon-delete" @click="delSqlMonitor(scope.row)"
v-permission="('monitor:sql:del')" style="margin-left:1px">删除</el-button>
v-permission="('monitor:sql:del')">删除</el-button>
</slot>
</el-table-column>
</el-table>
......@@ -56,7 +67,11 @@
</div>
</template>
<script>
import { getSqlMonitorList, delSqlMonitor } from '@/api/sqlMonitor'
import {
getSqlMonitorList,
delSqlMonitor,
isEnableSqlMonitor
} from '@/api/sqlMonitor'
import { getGitProjectList } from '@/api/jira'
export default {
data() {
......@@ -72,6 +87,13 @@ export default {
serviceList: []
}
},
// 接收参数
activated() {
var data = this.$route.query.data
if (data === 'refresh') {
this.getSqlMonitorList()
}
},
created() {
this.getSqlMonitorList()
this.getServiceList()
......@@ -82,7 +104,6 @@ export default {
getSqlMonitorList(this.queryModuleInfo).then((resp) => {
this.sqlMonitorList = resp.data.data.list
this.totalNum = resp.data.data.total
// console.log('返回信息', resp)
})
},
// 查询按钮
......@@ -92,7 +113,19 @@ export default {
// 添加按钮
addSqlMonitor() {
this.$router.push({
path: `/monitor/addSqlMonitor`
path: `/monitor/addSqlMonitor`,
query: {
data: 'add'
}
})
},
// 编辑按钮
openEditMonitorDialog(row) {
this.$router.push({
path: `/monitor/addSqlMonitor`,
query: {
data: row
}
})
},
// 获取服务列表
......@@ -131,6 +164,39 @@ export default {
})
})
},
// 禁用按钮
enableDislog(row) {
var formData = new FormData()
formData.set('taskId', row.id)
formData.set('status', 0)
this.openMessage('是否需要禁用?', '确定', () => {
isEnableSqlMonitor(formData).then((resp) => {
if (resp.data.businessCode === '0000') {
this.getSqlMonitorList()
return this.$message.success(resp.data.msg)
} else {
return this.$message.error(resp.data.msg)
}
})
})
},
// 启用按钮
unenableDialog(row) {
this.openMessage('是否需要启用?', '确定', () => {
var formData = new FormData()
formData.set('taskId', row.id)
formData.set('status', 1)
isEnableSqlMonitor(formData).then((resp) => {
console.log('999', resp)
if (resp.data.businessCode === '0000') {
this.getSqlMonitorList()
return this.$message.success(resp.data.msg)
} else {
return this.$message.error(resp.data.msg)
}
})
})
},
handleSizeChange(newSize) {
this.queryModuleInfo.pageSize = newSize
......
......@@ -176,7 +176,6 @@
</el-form-item>
</el-form>
</div>
</el-card>
</div>
</template>
......
......@@ -394,7 +394,7 @@ export default {
)
this.addTestDescriptionForm.apollo = JSON.stringify(this.apolloList)
this.addTestDescriptionForm.database = JSON.stringify(this.databaseList)
console.log('88888', this.addTestDescriptionForm)
// console.log('88888', this.addTestDescriptionForm)
this.$refs.addTestDescriptionRef.validate((valid) => {
if (!valid) {
return false
......
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