Authored by 王涛

Merge branch 'master-v32-lushangqing' into 'master'

【1596】 故障诊断-故障诊断配置功能优化调整-1、拨测诊断项配置,2、NPM诊断项配置,增加“新增/删除/修改NPM配置功能

3、APM诊断配置-取消资源和指标两个筛选条件

See merge request !866
... ... @@ -489,3 +489,13 @@
border-top-color:#1ed76d;
}
/*lsq 故障配置新增功能样式 2022-08-17*/
.add-flex-right{
align-items: center;
display: flex;
justify-content: flex-end;
}
.flex-end-button{
display: flex;
justify-content: flex-end;
}
\ No newline at end of file
... ...
... ... @@ -8,22 +8,23 @@
<el-col :span="24">
<div class="flex-div-start margin-top-bottom-10">
<el-select :size="$global.elementConfig.size.input" class="margin-right-10" v-model="resTypeArr" @change="changeRes" filterable clearable collapse-tags placeholder="请选择资源">
<!--lsq 取消掉选择资源及选择指标两个筛选条件 2022-08-17-->
<!-- <el-select :size="$global.elementConfig.size.input" class="margin-right-10" v-model="resTypeArr" @change="changeRes" filterable clearable collapse-tags placeholder="请选择资源">
<el-option
v-for="item in resTypeList"
:label="item.resName" :value="item.resId"></el-option>
</el-select>
</el-select>-->
<!-- <el-dropdown class="margin-right-10">
<cm-res-type-tree-input multiple clearable collapseTags @callback="getResType"/>
</el-dropdown>-->
<el-select :size="$global.elementConfig.size.input" class="margin-right-10" v-model="kpiTypeArr" filterable clearable collapse-tags placeholder="请选择指标">
<!--<el-select :size="$global.elementConfig.size.input" class="margin-right-10" v-model="kpiTypeArr" filterable clearable collapse-tags placeholder="请选择指标">
<el-option
v-for="item in kpiList"
:label="item.kpiName" :value="item.kpiId"></el-option>
</el-select>
</el-select>-->
<el-input :size="$global.elementConfig.size.input" style="width:160px;" class="margin-right-10" v-model="keyWords" placeholder="输入关键字" />
... ... @@ -42,7 +43,7 @@
<cm-table-page v-show="tableDataList" :columns="columns" :dataList="tableDataList" @loaddata="loadTableDataList" :multipleSelection="apmMonitorListChecked"
:showIndex="true" :total="count" :showSelection="true" @selectionChange="selectionChange"
:showBorder="true" :loading="false" :pageSize="pageSize"
:showPage="true" :showTools="true" :height="(height - 300)">
:showPage="true" :showTools="true" :height="(height - 440)">
<template #tools="{scope}">
<el-button type="text" size="small" @click.prevent="addRes(scope.row,scope.$index)">
<i class="el-icon-plus"/> 添加
... ...
... ... @@ -5,7 +5,7 @@
<div class="set-add-div">
<el-row>
<el-col :span="24">
<el-col :span="16">
<div class="flex-div-start margin-top-bottom-10">
<!-- <el-select class="margin-right-10" v-model="busTypeArr" filterable clearable collapse-tags placeholder="请选择业务">
... ... @@ -30,18 +30,22 @@
<div class="flex-div-start">
<el-button :size="$global.elementConfig.size.button" type="primary" @click="onReset()">重置</el-button>
<el-button :size="$global.elementConfig.size.button" type="primary" @click="onBtnSearch()" style="margin-left: 10px">查询</el-button>
<el-button :size="$global.elementConfig.size.button" type="primary" :disabled="isLoading" @click="saveAll()" style="margin-left: 10px">批量添加</el-button>
<el-button :size="$global.elementConfig.size.button" type="primary" :disabled="isLoading" @click="saveAlldata()" style="margin-left: 10px">全部添加</el-button>
<el-button :size="$global.elementConfig.size.button" type="primary" @click="addNPM()">新增NPM配置</el-button>
<el-button :size="$global.elementConfig.size.button" type="primary" @click="deleteNPM()" style="margin-left: 10px">删除</el-button>
</div>
</div>
</el-col>
<el-col :span="8" class="add-flex-right">
<el-button :size="$global.elementConfig.size.button" type="primary" :disabled="isLoading" @click="saveAll()" style="margin-left: 10px">批量选择</el-button>
<el-button :size="$global.elementConfig.size.button" type="primary" :disabled="isLoading" @click="saveAlldata()" style="margin-left: 10px">全部选择</el-button>
</el-col>
</el-row>
<el-row class="margin-bottom-50">
<el-col :span="24" class="table-height">
<cm-table-page v-show="tableDataList" :columns="columns" :dataList="tableDataList" @loaddata="loadTableDataList" :multipleSelection="applicationMonitorListChecked"
:showIndex="true" :total="count" :showSelection="true" @selectionChange="selectionChange"
:showBorder="true" :loading="false" :pageSize="pageSize"
:showPage="true" :showTools="true" :height="(height - 300)">
:showBorder="true" :loading="false" :pageSize="pageSize" :toolsWith="150"
:showPage="true" :showTools="true" :height="(height - 440)">
<template #default="{row,prop,column}">
<div v-if="prop == 'url'" class="text-overflow" :title="row.url">
<span class="">{{row.url }}</span>
... ... @@ -50,7 +54,10 @@
</template>
<template #tools="{scope}">
<el-button type="text" size="small" @click.prevent="addRes(scope.row,scope.$index)">
<i class="el-icon-plus"/> 添加
<i class="el-icon-plus"/> 选择
</el-button>
<el-button type="text" size="small" @click.prevent="editNPM(scope.row,scope.$index)">
<i class="el-icon-edit"/> 编辑
</el-button>
</template>
</cm-table-page>
... ... @@ -72,5 +79,32 @@
</div>
</template>
</cm-dialog>
<cm-dialog :title="NPMTitleName" width="60%" :showDialogVisible="addNPMMonitorVisible" @hidedialog="addCloseDialog" :showFooter="false">
<template v-slot>
<el-row style="min-height: 450px;">
<el-col :span="24">
<el-form :model="form" label-width="120px">
<el-form-item label="流名称">
<el-input v-model="form.streamName" />
</el-form-item>
<el-form-item label="流id">
<el-input v-model="form.streamId" />
</el-form-item>
<el-form-item label="URL地址">
<el-input v-model="form.url" type="textarea" />
</el-form-item>
<el-form-item label="备注">
<el-input v-model="form.remark" type="textarea" />
</el-form-item>
</el-form>
</el-col>
</el-row>
<div class="margin-top btn-faultDiagnosis flex-end-button">
<el-button @click="addCloseDialog(false)">取消</el-button>
<el-button @click="saveNPM" type="primary">保存</el-button>
</div>
</template>
</cm-dialog>
... ...
... ... @@ -50,6 +50,101 @@ export default {
let bizName=Vue.ref();
let name=Vue.ref();
let applicationMonitorVisible=Vue.ref(false);
// 新增、修改拨测弹框名称
let NPMTitleName=Vue.ref("新增NPM配置");
// 新增拨测弹框页面
let addNPMMonitorVisible=Vue.ref(false);
// 新增拨测页面表单
let form=Vue.ref({
bizId:bizId.value,
streamId:'',
streamName:'',
url:'',
remark:'',
})
// 清空表单内容
let restForm=()=>{
form.value={
bizId:bizId.value,
streamId:'',
streamName:'',
url:'',
remark:'',
}
}
// 新增拨测弹框页面关闭
let addCloseDialog=(flg)=>{
NPMTitleName.value='新增NPM配置';
addNPMMonitorVisible.value=flg;
restForm();
}
// 新增拨测点击事件
let addNPM=()=>{
form.value.bizId=bizId.value;
addNPMMonitorVisible.value=true;
}
// 保存新增拨测
let saveNPM=()=>{
if(form.value.id){
proxy.$http.get("/api-web/fault/conf/npmBase/update", form.value, function(res) {
if (res && res.success) {
proxy.$global.showMsg('修改成功','success');
addNPMMonitorVisible.value=false;
getNodeList();
}else{
proxy.$global.showMsg(res.msg,'warning');
}
})
}else{
proxy.$http.get("/api-web/fault/conf/npmBase/add", form.value, function(res) {
if (res && res.success) {
proxy.$global.showMsg('添加成功','success');
addNPMMonitorVisible.value=false;
getNodeList();
}else{
proxy.$global.showMsg(res.msg,'warning');
}
})
}
}
// 修改拨测
let editNPM=(row,index)=>{
addNPMMonitorVisible.value=true;
form.value=row;
NPMTitleName.value='修改NPM配置';
}
// 删除拨测
let deleteNPM=()=>{
let NPMListSelectData=[];
proxy.tableDataList.map(item=>{
if(item.checked){
NPMListSelectData.push(item.id)
}
})
if(NPMListSelectData.length==0){
proxy.$global.showMsg('请选择配置','warning');
return;
}
proxy.$global.confirm("确定删除拨测?", function () {
let params={
idList:NPMListSelectData.join(",")
}
proxy.$http.get("/api-web/fault/conf/npmBase/delete", params, function(res) {
if (res && res.success) {
proxy.$global.showMsg(res.msg?res.msg:'删除成功','success');
}else{
proxy.$global.showMsg(res.msg,'warning');
}
getNodeList();
})
});
}
Vue.watch(()=>props.isDisplay,(newValue, oldValue)=>{
proxy.applicationMonitorVisible=newValue;
... ... @@ -166,21 +261,23 @@ export default {
v.checked=false;
})
let selectData=val;
if(selectData.length>0){
selectData.map((item,index)=>{
proxy.tableDataList.map((v,i)=>{
if(item.id==v.id){
v.checked=true;
}
setTimeout(function () {
let selectData=val;
if(selectData.length>0){
selectData.map((item,index)=>{
proxy.tableDataList.map((v,i)=>{
if(item.id==v.id){
v.checked=true;
}
})
})
})
}else{
proxy.tableDataList.map((v,i)=>{
v.checked=false;
})
}
}else{
proxy.tableDataList.map((v,i)=>{
v.checked=false;
})
}
},300)
}
//添加选中的
... ... @@ -307,7 +404,15 @@ export default {
init,
onReset,
onBtnSearch,
height
height,
addNPMMonitorVisible,
addCloseDialog,
addNPM,
form,
NPMTitleName,
saveNPM,
editNPM,
deleteNPM
}
},
... ...
... ... @@ -5,25 +5,29 @@
<div class="set-add-div">
<el-row>
<el-col :span="24">
<el-col :span="16">
<div class="flex-div-start margin-top-bottom-10">
<el-input :size="$global.elementConfig.size.input" style="width:160px;" class="margin-right-10" v-model="keyWords" placeholder="输入关键字" />
<div class="flex-div-start">
<el-button :size="$global.elementConfig.size.button" type="primary" @click="onReset()">重置</el-button>
<el-button :size="$global.elementConfig.size.button" type="primary" @click="onBtnSearch()" style="margin-left: 10px">查询</el-button>
<el-button :size="$global.elementConfig.size.button" type="primary" :disabled="isLoading" @click="saveAll()" style="margin-left: 10px">批量添加</el-button>
<el-button :size="$global.elementConfig.size.button" type="primary" :disabled="isLoading" @click="saveAlldata()" style="margin-left: 10px">全部添加</el-button>
<el-button :size="$global.elementConfig.size.button" type="primary" @click="addDialtest()">新增拨测</el-button>
<el-button :size="$global.elementConfig.size.button" type="primary" @click="deleteDialtest()" style="margin-left: 10px">删除</el-button>
</div>
</div>
</el-col>
<el-col :span="8" class="add-flex-right">
<el-button :size="$global.elementConfig.size.button" type="primary" :disabled="isLoading" @click="saveAll()" style="margin-left: 10px">批量选择</el-button>
<el-button :size="$global.elementConfig.size.button" type="primary" :disabled="isLoading" @click="saveAlldata()" style="margin-left: 10px">全部选择</el-button>
</el-col>
</el-row>
<el-row class="margin-bottom-50">
<el-col :span="24" class="table-height">
<cm-table-page v-show="tableDataList" :columns="columns" :dataList="tableDataList" @loaddata="loadTableDataList" :multipleSelection="dialtestMonitorListChecked"
:showIndex="true" :total="count" :showSelection="true" @selectionChange="selectionChange"
:showBorder="true" :loading="false" :pageSize="pageSize"
:showPage="true" :showTools="true" :height="(height - 300)">
:showBorder="true" :loading="false" :pageSize="pageSize" :toolsWith="150"
:showPage="true" :showTools="true" :height="(height - 440)">
<template #default="{row,prop,column}">
<div v-if="prop == 'url'" class="text-overflow" :title="row.url">
<span class="">{{row.url }}</span>
... ... @@ -32,7 +36,10 @@
</template>
<template #tools="{scope}">
<el-button type="text" size="small" @click.prevent="addRes(scope.row,scope.$index)">
<i class="el-icon-plus"/> 添加
<i class="el-icon-plus"/> 选择
</el-button>
<el-button type="text" size="small" @click.prevent="editDialtest(scope.row,scope.$index)">
<i class="el-icon-edit"/> 编辑
</el-button>
</template>
</cm-table-page>
... ... @@ -48,5 +55,42 @@
</div>
</template>
</cm-dialog>
<cm-dialog :title="dialtestTitleName" width="60%" :showDialogVisible="addDialtestMonitorVisible" @hidedialog="addCloseDialog" :showFooter="false">
<template v-slot>
<el-row style="min-height: 450px;">
<el-col :span="24">
<el-form :model="form" label-width="120px">
<el-form-item label="任务名称">
<el-input v-model="form.taskName" />
</el-form-item>
<el-form-item label="任务id">
<el-input v-model="form.taskId" />
</el-form-item>
<el-form-item label="拨测简称">
<el-input maxlength="5" show-word-limit v-model="form.shortName" />
</el-form-item>
<el-form-item label="任务类型">
<el-radio-group v-model="form.taskType">
<el-radio label="1">页面拨测</el-radio>
<el-radio label="2">实物拨测</el-radio>
</el-radio-group>
</el-form-item>
<el-form-item label="URL地址">
<el-input v-model="form.url" type="textarea" />
</el-form-item>
<el-form-item label="备注">
<el-input v-model="form.remark" type="textarea" />
</el-form-item>
</el-form>
</el-col>
</el-row>
<div class="margin-top btn-faultDiagnosis flex-end-button">
<el-button @click="addCloseDialog(false)">取消</el-button>
<el-button @click="saveDialtest" type="primary">保存</el-button>
</div>
</template>
</cm-dialog>
... ...
... ... @@ -50,7 +50,110 @@ export default {
let bizName=Vue.ref();
let name=Vue.ref();
let dialtestMonitorVisible=Vue.ref(false);
// 新增、修改拨测弹框名称
let dialtestTitleName=Vue.ref("新增拨测");
// 新增拨测弹框页面
let addDialtestMonitorVisible=Vue.ref(false);
// 新增拨测页面表单
let form=Vue.ref({
bizId:bizId.value,
taskId:'',
taskName:'',
shortName:'',
taskType:'1',
url:'',
remark:'',
})
// 清空表单内容
let restForm=()=>{
form.value={
bizId:bizId.value,
taskId:'',
taskName:'',
shortName:'',
taskType:'1',
url:'',
remark:'',
}
}
// 新增拨测弹框页面关闭
let addCloseDialog=(flg)=>{
dialtestTitleName.value='新增拨测';
addDialtestMonitorVisible.value=flg;
restForm();
}
// 新增拨测点击事件
let addDialtest=()=>{
form.value.bizId=bizId.value;
addDialtestMonitorVisible.value=true;
}
// 保存新增拨测
let saveDialtest=()=>{
if(form.value.id){
proxy.$http.get("/api-web/fault/conf/dialtestBase/update", form.value, function(res) {
if (res && res.success) {
proxy.$global.showMsg('修改成功','success');
addDialtestMonitorVisible.value=false;
getNodeList();
}else{
proxy.$global.showMsg(res.msg,'warning');
}
})
}else{
proxy.$http.get("/api-web/fault/conf/dialtestBase/add", form.value, function(res) {
if (res && res.success) {
proxy.$global.showMsg('添加成功','success');
addDialtestMonitorVisible.value=false;
getNodeList();
}else{
proxy.$global.showMsg(res.msg,'warning');
}
})
}
}
// 修改拨测
let editDialtest=(row,index)=>{
addDialtestMonitorVisible.value=true;
form.value=row;
dialtestTitleName.value='修改拨测';
}
// 删除拨测
let deleteDialtest=()=>{
let dialtestListSelectData=[];
proxy.tableDataList.map(item=>{
if(item.checked){
dialtestListSelectData.push(item.id)
}
})
if(dialtestListSelectData.length==0){
proxy.$global.showMsg('请选择配置','warning');
return;
}
proxy.$global.confirm("确定删除拨测?", function () {
let params={
idList:dialtestListSelectData.join(",")
}
proxy.$http.get("/api-web/fault/conf/dialtestBase/delete", params, function(res) {
if (res && res.success) {
proxy.$global.showMsg(res.msg?res.msg:'删除成功','success');
}else{
proxy.$global.showMsg(res.msg,'warning');
}
getNodeList();
})
});
}
Vue.watch(()=>props.isDisplay,(newValue, oldValue)=>{
proxy.dialtestMonitorVisible=newValue;
if(newValue){
... ... @@ -162,21 +265,24 @@ export default {
v.checked=false;
})
let selectData=val;
if(selectData.length>0){
selectData.map((item,index)=>{
setTimeout(function (){
let selectData=val;
if(selectData.length>0){
selectData.map((item,index)=>{
proxy.tableDataList.map((v,i)=>{
if(item.id==v.id){
v.checked=true;
}
})
})
}else{
proxy.tableDataList.map((v,i)=>{
if(item.id==v.id){
v.checked=true;
}
v.checked=false;
})
})
}
},300)
}else{
proxy.tableDataList.map((v,i)=>{
v.checked=false;
})
}
}
//添加选中的
... ... @@ -304,7 +410,15 @@ export default {
init,
onReset,
onBtnSearch,
height
height,
addDialtestMonitorVisible,
addCloseDialog,
addDialtest,
form,
dialtestTitleName,
saveDialtest,
editDialtest,
deleteDialtest
}
},
... ...