监控策略、拓扑图、资源分组等
This commit is contained in:
		@@ -70,6 +70,15 @@ export function listTopology(query) {
 | 
				
			|||||||
    data: query
 | 
					    data: query
 | 
				
			||||||
  })
 | 
					  })
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					// 查询all列表
 | 
				
			||||||
 | 
					export function listAllTopology(query) {
 | 
				
			||||||
 | 
					  return request({
 | 
				
			||||||
 | 
					    url: '/system/management/getListChart',
 | 
				
			||||||
 | 
					    method: 'post',
 | 
				
			||||||
 | 
					    data: query
 | 
				
			||||||
 | 
					  })
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
// 查询资源注册详细
 | 
					// 查询资源注册详细
 | 
				
			||||||
export function getTopology(Id) {
 | 
					export function getTopology(Id) {
 | 
				
			||||||
  return request({
 | 
					  return request({
 | 
				
			||||||
@@ -152,6 +161,14 @@ export function delGroup(Ids) {
 | 
				
			|||||||
    method: 'delete'
 | 
					    method: 'delete'
 | 
				
			||||||
  })
 | 
					  })
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					// 包含设备向右移动校验
 | 
				
			||||||
 | 
					export function exitsResourceById(data) {
 | 
				
			||||||
 | 
					  return request({
 | 
				
			||||||
 | 
					    url: '/system/group/exitsResourceById',
 | 
				
			||||||
 | 
					    method: 'post',
 | 
				
			||||||
 | 
					    data: data
 | 
				
			||||||
 | 
					  })
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
// 包含设备查询
 | 
					// 包含设备查询
 | 
				
			||||||
export function resNameList() {
 | 
					export function resNameList() {
 | 
				
			||||||
  return request({
 | 
					  return request({
 | 
				
			||||||
@@ -175,6 +192,14 @@ export function getMonitorTemp(Id) {
 | 
				
			|||||||
    method: 'get'
 | 
					    method: 'get'
 | 
				
			||||||
  })
 | 
					  })
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					// 查询资源监控项
 | 
				
			||||||
 | 
					export function getMonitorTempList(query) {
 | 
				
			||||||
 | 
					  return request({
 | 
				
			||||||
 | 
					    url: '/rocketmq/initialMonitorItem/list',
 | 
				
			||||||
 | 
					    method: 'post',
 | 
				
			||||||
 | 
					    data: query
 | 
				
			||||||
 | 
					  })
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
// 新增资源注册
 | 
					// 新增资源注册
 | 
				
			||||||
export function addMonitorTemp(data) {
 | 
					export function addMonitorTemp(data) {
 | 
				
			||||||
 
 | 
				
			|||||||
							
								
								
									
										
											BIN
										
									
								
								src/assets/images/level1.png
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										
											BIN
										
									
								
								src/assets/images/level1.png
									
									
									
									
									
										Normal file
									
								
							
										
											Binary file not shown.
										
									
								
							| 
		 After Width: | Height: | Size: 12 KiB  | 
							
								
								
									
										
											BIN
										
									
								
								src/assets/images/level2.png
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										
											BIN
										
									
								
								src/assets/images/level2.png
									
									
									
									
									
										Normal file
									
								
							
										
											Binary file not shown.
										
									
								
							| 
		 After Width: | Height: | Size: 7.9 KiB  | 
							
								
								
									
										
											BIN
										
									
								
								src/assets/images/level2True.png
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										
											BIN
										
									
								
								src/assets/images/level2True.png
									
									
									
									
									
										Normal file
									
								
							
										
											Binary file not shown.
										
									
								
							| 
		 After Width: | Height: | Size: 1.2 MiB  | 
							
								
								
									
										
											BIN
										
									
								
								src/assets/images/level3.png
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										
											BIN
										
									
								
								src/assets/images/level3.png
									
									
									
									
									
										Normal file
									
								
							
										
											Binary file not shown.
										
									
								
							| 
		 After Width: | Height: | Size: 3.2 KiB  | 
							
								
								
									
										
											BIN
										
									
								
								src/assets/images/level3True.png
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										
											BIN
										
									
								
								src/assets/images/level3True.png
									
									
									
									
									
										Normal file
									
								
							
										
											Binary file not shown.
										
									
								
							| 
		 After Width: | Height: | Size: 3.5 MiB  | 
@@ -1,12 +1,13 @@
 | 
				
			|||||||
<template>
 | 
					<template>
 | 
				
			||||||
    <div>
 | 
					    <div>
 | 
				
			||||||
      <el-form :model="ruleForm" :rules="rules" ref="ruleForm" :label-width="config && config.labelWidth || '130px'" class="demo-ruleForm">
 | 
					      {{config && config.key}}
 | 
				
			||||||
 | 
					      <el-form :model="ruleForm" :rules="rules" ref="ruleForm" :label-width="config && config.labelWidth || '130px'" :key="config && config.key" class="demo-ruleForm">
 | 
				
			||||||
        <template v-for="(formItem,index) of formList">
 | 
					        <template v-for="(formItem,index) of formList">
 | 
				
			||||||
          <h4 v-if="formItem && formItem.config && formItem.config.title" class="form-header h4">{{formItem.config.title}}</h4>
 | 
					          <h4 v-if="formItem && formItem.config && formItem.config.title" class="form-header h4">{{formItem.config.title}}</h4>
 | 
				
			||||||
          <el-row>
 | 
					          <el-row>
 | 
				
			||||||
            <el-col v-for="(formVal,key,index) of formItem['controls']" :span="formVal.span" v-if="!formVal.hidden" :class="formItem.config.colSpan" :style="formVal.style">
 | 
					            <el-col v-for="(formVal,key,index) of formItem['controls']" :span="formVal.span" v-if="!formVal.hidden" :class="formItem.config.colSpan" :style="formVal.style">
 | 
				
			||||||
              <el-form-item
 | 
					              <el-form-item
 | 
				
			||||||
                :key="index"
 | 
					                :key="config && config.key ? `${config && config.key}-${key}` : `${key}`"
 | 
				
			||||||
                :prop="key"
 | 
					                :prop="key"
 | 
				
			||||||
                :required="formVal.required">
 | 
					                :required="formVal.required">
 | 
				
			||||||
                <template #label>
 | 
					                <template #label>
 | 
				
			||||||
@@ -135,7 +136,7 @@
 | 
				
			|||||||
                    :data="formVal.options"
 | 
					                    :data="formVal.options"
 | 
				
			||||||
                    :disabled="toBoolean(formVal.disabled || formItem.config.readonly)"
 | 
					                    :disabled="toBoolean(formVal.disabled || formItem.config.readonly)"
 | 
				
			||||||
                    :placeholder="toBoolean(formVal.disabled || formItem.config.readonly) ? formVal.placeholder || `请输入${formVal.label}` : null"
 | 
					                    :placeholder="toBoolean(formVal.disabled || formItem.config.readonly) ? formVal.placeholder || `请输入${formVal.label}` : null"
 | 
				
			||||||
                    @[formVal.eventName]="(val) => handleChange(key,val,formVal)"
 | 
					                    @[formVal.eventName]="(val,option) => handleChange(key,val,option)"
 | 
				
			||||||
                  ></el-transfer>
 | 
					                  ></el-transfer>
 | 
				
			||||||
                </template>
 | 
					                </template>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@@ -199,7 +200,14 @@
 | 
				
			|||||||
        },
 | 
					        },
 | 
				
			||||||
        deep: true,
 | 
					        deep: true,
 | 
				
			||||||
        immediate: true
 | 
					        immediate: true
 | 
				
			||||||
      }
 | 
					      },
 | 
				
			||||||
 | 
					      // formList: {
 | 
				
			||||||
 | 
					      //   handler(val) {
 | 
				
			||||||
 | 
					      //     this.initFormData();
 | 
				
			||||||
 | 
					      //   },
 | 
				
			||||||
 | 
					      //   deep: true,
 | 
				
			||||||
 | 
					      //   immediate: true
 | 
				
			||||||
 | 
					      // }
 | 
				
			||||||
    },
 | 
					    },
 | 
				
			||||||
    methods: {
 | 
					    methods: {
 | 
				
			||||||
      // 初始化表单数据
 | 
					      // 初始化表单数据
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -11,7 +11,7 @@
 | 
				
			|||||||
        </el-row>
 | 
					        </el-row>
 | 
				
			||||||
        <!-- 表格数据 -->
 | 
					        <!-- 表格数据 -->
 | 
				
			||||||
        <el-table v-loading="loading" :data="tableList" ref="selChangeList" :key="tableKey" highlight-selection-row @selection-change="handleSelectionChange">
 | 
					        <el-table v-loading="loading" :data="tableList" ref="selChangeList" :key="tableKey" highlight-selection-row @selection-change="handleSelectionChange">
 | 
				
			||||||
            <el-table-column v-if="!(config && config.colHiddenCheck)" fixed="left" type="selection" width="55" align="center" />
 | 
					            <el-table-column v-if="!(config && config.colHiddenCheck)" fixed="left" type="selection" width="55" :selectable="() => config && config.selectable ? false : true" align="center" />
 | 
				
			||||||
            <!--      展开列内容        -->
 | 
					            <!--      展开列内容        -->
 | 
				
			||||||
            <el-table-column v-if="config && config.expand" type="expand">
 | 
					            <el-table-column v-if="config && config.expand" type="expand">
 | 
				
			||||||
              <template #default="props">
 | 
					              <template #default="props">
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -269,6 +269,7 @@ export const dynamicRoutes = [
 | 
				
			|||||||
      }
 | 
					      }
 | 
				
			||||||
    ]
 | 
					    ]
 | 
				
			||||||
  },
 | 
					  },
 | 
				
			||||||
 | 
					  // 资源拓扑
 | 
				
			||||||
  {
 | 
					  {
 | 
				
			||||||
    path: '/disRevenue/resource/topology/edit',
 | 
					    path: '/disRevenue/resource/topology/edit',
 | 
				
			||||||
    component: Layout,
 | 
					    component: Layout,
 | 
				
			||||||
@@ -279,7 +280,21 @@ export const dynamicRoutes = [
 | 
				
			|||||||
        path: 'index/:id?',
 | 
					        path: 'index/:id?',
 | 
				
			||||||
        component: () => import('@/views/disRevenue/resource/topology/details'),
 | 
					        component: () => import('@/views/disRevenue/resource/topology/details'),
 | 
				
			||||||
        name: 'TopologyEdit',
 | 
					        name: 'TopologyEdit',
 | 
				
			||||||
        meta: { title: '交换机信息', activeMenu: '/disRevenue/resource/topology' }
 | 
					        meta: { title: '拓扑信息', activeMenu: '/disRevenue/resource/topology' }
 | 
				
			||||||
 | 
					      }
 | 
				
			||||||
 | 
					    ]
 | 
				
			||||||
 | 
					  },
 | 
				
			||||||
 | 
					  {
 | 
				
			||||||
 | 
					    path: '/disRevenue/resource/topology/gplot',
 | 
				
			||||||
 | 
					    component: Layout,
 | 
				
			||||||
 | 
					    hidden: true,
 | 
				
			||||||
 | 
					    permissions: ['disRevenue:resource:topology:gplot'],
 | 
				
			||||||
 | 
					    children: [
 | 
				
			||||||
 | 
					      {
 | 
				
			||||||
 | 
					        path: 'index/:id?',
 | 
				
			||||||
 | 
					        component: () => import('@/views/disRevenue/resource/topology/gplot'),
 | 
				
			||||||
 | 
					        name: 'TopologyGplot',
 | 
				
			||||||
 | 
					        meta: { title: '拓扑展示', activeMenu: '/disRevenue/resource/topology' }
 | 
				
			||||||
      }
 | 
					      }
 | 
				
			||||||
    ]
 | 
					    ]
 | 
				
			||||||
  },
 | 
					  },
 | 
				
			||||||
@@ -472,7 +487,7 @@ export const dynamicRoutes = [
 | 
				
			|||||||
      }
 | 
					      }
 | 
				
			||||||
    ]
 | 
					    ]
 | 
				
			||||||
  },
 | 
					  },
 | 
				
			||||||
  // 资源远程管理
 | 
					  // 资源远程管理---脚本执行结果
 | 
				
			||||||
  {
 | 
					  {
 | 
				
			||||||
    path: '/disRevenue/resource/remoteManage/view',
 | 
					    path: '/disRevenue/resource/remoteManage/view',
 | 
				
			||||||
    component: Layout,
 | 
					    component: Layout,
 | 
				
			||||||
@@ -483,7 +498,7 @@ export const dynamicRoutes = [
 | 
				
			|||||||
        path: ':id?',
 | 
					        path: ':id?',
 | 
				
			||||||
        component: () => import('@/views/disRevenue/resource/remoteManage/remoteManageView'),
 | 
					        component: () => import('@/views/disRevenue/resource/remoteManage/remoteManageView'),
 | 
				
			||||||
        name: 'remoteManageView',
 | 
					        name: 'remoteManageView',
 | 
				
			||||||
        meta: { title: '文件管理信息', activeMenu: '/disRevenue/resource/remoteManage' }
 | 
					        meta: { title: '脚本执行结果信息', activeMenu: '/disRevenue/resource/remoteManage' }
 | 
				
			||||||
      }
 | 
					      }
 | 
				
			||||||
    ]
 | 
					    ]
 | 
				
			||||||
  },
 | 
					  },
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -1,12 +1,12 @@
 | 
				
			|||||||
<template>
 | 
					<template>
 | 
				
			||||||
    <div class="app-container">
 | 
					    <div class="app-container">
 | 
				
			||||||
        <Form :formList="formList" :ruleFormData="ruleForm" @fnClick="callback"></Form>
 | 
					        <Form ref="formRes" :formList="formList" :ruleFormData="ruleForm" @fnClick="callback"></Form>
 | 
				
			||||||
    </div>
 | 
					    </div>
 | 
				
			||||||
</template>
 | 
					</template>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
<script setup name="Handle">
 | 
					<script setup name="Handle">
 | 
				
			||||||
  import Form from '@/components/form/index.vue';
 | 
					  import Form from '@/components/form/index.vue';
 | 
				
			||||||
  import {addGroup, getGroup, updateGroup, resNameList} from "@/api/disRevenue/resource"
 | 
					  import {addGroup, getGroup, updateGroup, resNameList,exitsResourceById} from "@/api/disRevenue/resource"
 | 
				
			||||||
  export default {
 | 
					  export default {
 | 
				
			||||||
    name: 'GroupDetails',
 | 
					    name: 'GroupDetails',
 | 
				
			||||||
    components: {Form},
 | 
					    components: {Form},
 | 
				
			||||||
@@ -14,7 +14,8 @@
 | 
				
			|||||||
      return {
 | 
					      return {
 | 
				
			||||||
        ruleForm: {},
 | 
					        ruleForm: {},
 | 
				
			||||||
        formList: [],
 | 
					        formList: [],
 | 
				
			||||||
        paramsData: {}
 | 
					        paramsData: {},
 | 
				
			||||||
 | 
					        includedDevicesList: {},
 | 
				
			||||||
      }
 | 
					      }
 | 
				
			||||||
    },
 | 
					    },
 | 
				
			||||||
    created() {
 | 
					    created() {
 | 
				
			||||||
@@ -34,7 +35,7 @@
 | 
				
			|||||||
            id: {label: 'ID',hidden: true},
 | 
					            id: {label: 'ID',hidden: true},
 | 
				
			||||||
            groupName: {label: '名称', span: 24, type: 'input', rules: [{required: true, message: '请输入名称', trigger: 'blur'}]},
 | 
					            groupName: {label: '名称', span: 24, type: 'input', rules: [{required: true, message: '请输入名称', trigger: 'blur'}]},
 | 
				
			||||||
            description: {label: '描述', span: 24, type: 'textarea'},
 | 
					            description: {label: '描述', span: 24, type: 'textarea'},
 | 
				
			||||||
            includedDevices: {label: '包含设备', span: 24, type: 'transfer',options: []}
 | 
					            includedDevicesId: {label: '包含设备', span: 24, type: 'transfer',options: [], eventName: 'change'}
 | 
				
			||||||
          }
 | 
					          }
 | 
				
			||||||
        }];
 | 
					        }];
 | 
				
			||||||
      },
 | 
					      },
 | 
				
			||||||
@@ -42,8 +43,9 @@
 | 
				
			|||||||
      getFormDataList(id) {
 | 
					      getFormDataList(id) {
 | 
				
			||||||
        getGroup(id).then(val => {
 | 
					        getGroup(id).then(val => {
 | 
				
			||||||
          if (val && val.data) {
 | 
					          if (val && val.data) {
 | 
				
			||||||
            if (val.data && val.data['includedDevices']) {
 | 
					            if (val.data && val.data['includedDevicesId']) {
 | 
				
			||||||
              val.data['includedDevices'] = val.data['includedDevices'].split(',');
 | 
					              let newArr = val.data['includedDevicesId'].split(',');
 | 
				
			||||||
 | 
					              val.data['includedDevicesId'] = newArr.map(id => Number(id));
 | 
				
			||||||
            }
 | 
					            }
 | 
				
			||||||
            this.ruleForm = val.data;
 | 
					            this.ruleForm = val.data;
 | 
				
			||||||
          }
 | 
					          }
 | 
				
			||||||
@@ -54,19 +56,24 @@
 | 
				
			|||||||
      // 包含设备
 | 
					      // 包含设备
 | 
				
			||||||
      getResNameList() {
 | 
					      getResNameList() {
 | 
				
			||||||
        resNameList().then(val => {
 | 
					        resNameList().then(val => {
 | 
				
			||||||
          this.formList[0].controls['includedDevices']['options']= val && val.map(item => {
 | 
					          if (val) {
 | 
				
			||||||
            return Object.assign({label: item.resourceName, key: item.resourceName});
 | 
					            this.formList[0].controls['includedDevicesId']['options']= val && val.map(item => {
 | 
				
			||||||
          });
 | 
					              this.includedDevicesList[item.id] = item;
 | 
				
			||||||
 | 
					              return Object.assign({label: item.resourceName, key: item.id});
 | 
				
			||||||
 | 
					            });
 | 
				
			||||||
 | 
					          }
 | 
				
			||||||
        }).catch(() => {
 | 
					        }).catch(() => {
 | 
				
			||||||
          this.$modal.msgError("操作失败")
 | 
					          this.$modal.msgError("操作失败")
 | 
				
			||||||
        });
 | 
					        });
 | 
				
			||||||
      },
 | 
					      },
 | 
				
			||||||
      // 监听事件
 | 
					      // 监听事件
 | 
				
			||||||
      callback(result, dataVal, formVal) {
 | 
					      callback(result, dataVal, formVal) {
 | 
				
			||||||
 | 
					        console.log('result===',formVal);
 | 
				
			||||||
        if (result && result.fnCode) {
 | 
					        if (result && result.fnCode) {
 | 
				
			||||||
          switch (result.fnCode) {
 | 
					          switch (result.fnCode) {
 | 
				
			||||||
            case 'submit':
 | 
					            case 'submit':
 | 
				
			||||||
              dataVal['includedDevices'] = dataVal['includedDevices'].join();
 | 
					              dataVal['includedDevicesName'] = (dataVal['includedDevicesId'].map(id => this.includedDevicesList[id].resourceName)).join();
 | 
				
			||||||
 | 
					              dataVal['includedDevicesId'] = dataVal['includedDevicesId'].join();
 | 
				
			||||||
              let fnType = addGroup;
 | 
					              let fnType = addGroup;
 | 
				
			||||||
              if (dataVal && dataVal.id) {
 | 
					              if (dataVal && dataVal.id) {
 | 
				
			||||||
                fnType = updateGroup;
 | 
					                fnType = updateGroup;
 | 
				
			||||||
@@ -81,6 +88,20 @@
 | 
				
			|||||||
            case 'cancle':
 | 
					            case 'cancle':
 | 
				
			||||||
              this.$router.push("/resource/group");
 | 
					              this.$router.push("/resource/group");
 | 
				
			||||||
              break;
 | 
					              break;
 | 
				
			||||||
 | 
					            case 'includedDevicesId':
 | 
				
			||||||
 | 
					              // if (formVal && formVal === 'right') {
 | 
				
			||||||
 | 
					              //   exitsResourceById({resourceIds: dataVal.join(',')}).then(res => {
 | 
				
			||||||
 | 
					              //     console.log('res=',res.msg);
 | 
				
			||||||
 | 
					              //     if (res.msg) {
 | 
				
			||||||
 | 
					              //       let content = '<p style="font-size: 1rem;font-weight: 600;">资源从其他分组移动到此组</p>' +
 | 
				
			||||||
 | 
					              //         '<p style="height: 0px;margin:10px 0 50px;">资源移动到此组后,将在原来到组中消失,相关的监控策略也会消失</p>';
 | 
				
			||||||
 | 
					              //       this.$modal.confirm(content).then(() => {
 | 
				
			||||||
 | 
					              //
 | 
				
			||||||
 | 
					              //       }).catch(() => {});
 | 
				
			||||||
 | 
					              //     }
 | 
				
			||||||
 | 
					              //   });
 | 
				
			||||||
 | 
					              // }
 | 
				
			||||||
 | 
					              break;
 | 
				
			||||||
            default:
 | 
					            default:
 | 
				
			||||||
          }
 | 
					          }
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -50,7 +50,7 @@
 | 
				
			|||||||
            id: { label: `ID`, visible: false },
 | 
					            id: { label: `ID`, visible: false },
 | 
				
			||||||
            groupName: { label: `名称`, visible: true},
 | 
					            groupName: { label: `名称`, visible: true},
 | 
				
			||||||
            description: { label: `描述`, visible: true},
 | 
					            description: { label: `描述`, visible: true},
 | 
				
			||||||
            includedDevices: { label: `包含设备`, visible: true },
 | 
					            includedDevicesName: { label: `包含设备`, visible: true },
 | 
				
			||||||
            createTime: { label: `创建时间`},
 | 
					            createTime: { label: `创建时间`},
 | 
				
			||||||
            updateTime: { label: `修改时间`, visible: true}
 | 
					            updateTime: { label: `修改时间`, visible: true}
 | 
				
			||||||
          },
 | 
					          },
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -14,36 +14,36 @@
 | 
				
			|||||||
        </div>
 | 
					        </div>
 | 
				
			||||||
        <!--    active:2    -->
 | 
					        <!--    active:2    -->
 | 
				
			||||||
        <div v-show="active === 1">
 | 
					        <div v-show="active === 1">
 | 
				
			||||||
          <el-tabs type="border-card">
 | 
					          <el-tabs type="border-card" v-model="activeTypeName" @tab-click="handleClick">
 | 
				
			||||||
            <!--    2-1    -->
 | 
					            <!--    2-1    -->
 | 
				
			||||||
            <el-tab-pane label="Linux系统">
 | 
					            <el-tab-pane label="Linux系统" name="linux">
 | 
				
			||||||
              <el-tabs v-model="linuxActiveName">
 | 
					              <el-tabs v-model="linuxActiveName" @tab-click="handleClick">
 | 
				
			||||||
                <!--    2-1-1    -->
 | 
					                <!--    2-1-1    -->
 | 
				
			||||||
                <el-tab-pane label="监控项" name="first">
 | 
					                <el-tab-pane label="监控项" name="monitorItem">
 | 
				
			||||||
                  <el-collapse v-model="activeNames">
 | 
					                  <el-collapse v-model="activeNames">
 | 
				
			||||||
                    <el-collapse-item v-for="(item,index) of linuxSystem.monitorList['dataList']" :title="item.title" :name="index">
 | 
					                    <el-collapse-item v-for="(item,index) of linuxSystem.monitorItem['dataList']" :title="item.title" :name="index">
 | 
				
			||||||
                      <template slot="title">
 | 
					                      <template slot="title">
 | 
				
			||||||
                        {{item.title}}
 | 
					                        {{item.title}}
 | 
				
			||||||
                        <el-checkbox :indeterminate="item.isIndeterminate" v-model="item.checkAll" class="ml20" @change="(checked) => handleCheckAllChange(checked,item)">全选</el-checkbox>
 | 
					                        <el-checkbox :indeterminate="item.isIndeterminate" v-model="item.checkAll" :disabled="item.disabled" class="ml20" @change="(checked) => handleCheckAllChange(checked,item)">全选</el-checkbox>
 | 
				
			||||||
                      </template>
 | 
					                      </template>
 | 
				
			||||||
                      <el-checkbox-group v-model="checkParams[item.modelName]" @change="(checkValList) => handleCheckedCitiesChange(checkValList, item)" style="padding: 0 20px;">
 | 
					                      <el-checkbox-group v-model="checkParams[item.modelName]" @change="(checkValList) => handleCheckedCitiesChange(checkValList, item)" style="padding: 0 20px;">
 | 
				
			||||||
                        <el-checkbox v-for="city of item.checkList" :label="city.id" :key="city.id" class="w45 mt10 mb10">
 | 
					                        <el-checkbox v-for="city of item.checkList" :label="city.id" :key="city.id" :disabled="item.disabled" class="w45 mt10 mb10">
 | 
				
			||||||
                          <span style="width: 200px" class="disInlineBlock">{{city.name}}</span>
 | 
					                          <span style="width: 200px" class="disInlineBlock">{{city.metricKey}}</span>
 | 
				
			||||||
                          <span>{{city.towName}}</span>
 | 
					                          <span>{{city.metricName}}</span>
 | 
				
			||||||
                        </el-checkbox>
 | 
					                        </el-checkbox>
 | 
				
			||||||
                      </el-checkbox-group>
 | 
					                      </el-checkbox-group>
 | 
				
			||||||
                    </el-collapse-item>
 | 
					                    </el-collapse-item>
 | 
				
			||||||
                  </el-collapse>
 | 
					                  </el-collapse>
 | 
				
			||||||
                </el-tab-pane>
 | 
					                </el-tab-pane>
 | 
				
			||||||
                <!--    2-1-2    -->
 | 
					                <!--    2-1-2    -->
 | 
				
			||||||
                <el-tab-pane label="自动发现项" name="second">
 | 
					                <el-tab-pane label="自动发现项" name="autodiscoverItem">
 | 
				
			||||||
                  <el-collapse v-model="activeNames">
 | 
					                  <el-collapse v-model="activeNames">
 | 
				
			||||||
                    <el-collapse-item v-for="(item,index) of linuxSystem.autoFindList['dataList']" :title="item.title" :name="index">
 | 
					                    <el-collapse-item v-for="(item,index) of linuxSystem.autodiscoverItem['dataList']" :title="item.title" :name="index">
 | 
				
			||||||
                      <div style="display: flex;justify-content: center;">
 | 
					                      <div style="display: flex;justify-content: center;">
 | 
				
			||||||
                        <el-checkbox-group v-model="checkParams[item.modelName]" style="padding: 0 20px;">
 | 
					                        <el-checkbox-group v-model="checkParams[item.modelName]" style="padding: 0 20px;">
 | 
				
			||||||
                          <el-checkbox v-for="city of item.checkList" :label="city.id" :key="city.id" class="mt10 mb10 disBlock">
 | 
					                          <el-checkbox v-for="city of item.checkList" :disabled="item.disabled" :label="city.id" :key="city.id" class="mt10 mb10 disBlock">
 | 
				
			||||||
                            <span style="width: 200px" class="disInlineBlock">{{city.name}}</span>
 | 
					                            <span style="width: 200px" class="disInlineBlock">{{city.metricKey}}</span>
 | 
				
			||||||
                            <span>{{city.towName}}</span>
 | 
					                            <span>{{city.metricName}}</span>
 | 
				
			||||||
                          </el-checkbox>
 | 
					                          </el-checkbox>
 | 
				
			||||||
                        </el-checkbox-group>
 | 
					                        </el-checkbox-group>
 | 
				
			||||||
                      </div>
 | 
					                      </div>
 | 
				
			||||||
@@ -53,7 +53,7 @@
 | 
				
			|||||||
              </el-tabs>
 | 
					              </el-tabs>
 | 
				
			||||||
            </el-tab-pane>
 | 
					            </el-tab-pane>
 | 
				
			||||||
            <!--    2-2    -->
 | 
					            <!--    2-2    -->
 | 
				
			||||||
            <el-tab-pane label="华为交换机">
 | 
					            <el-tab-pane label="华为交换机" name="switch">
 | 
				
			||||||
              <span slot="label">
 | 
					              <span slot="label">
 | 
				
			||||||
                华为交换机
 | 
					                华为交换机
 | 
				
			||||||
                <el-tooltip trigger="click" effect="dark" placement="top">
 | 
					                <el-tooltip trigger="click" effect="dark" placement="top">
 | 
				
			||||||
@@ -61,18 +61,18 @@
 | 
				
			|||||||
                  <i class="el-icon-question"></i>
 | 
					                  <i class="el-icon-question"></i>
 | 
				
			||||||
                </el-tooltip>
 | 
					                </el-tooltip>
 | 
				
			||||||
              </span>
 | 
					              </span>
 | 
				
			||||||
              <el-tabs v-model="hwActiveName">
 | 
					              <el-tabs v-model="hwActiveName" @tab-click="handleClick">
 | 
				
			||||||
                <!--    2-2-1    -->
 | 
					                <!--    2-2-1    -->
 | 
				
			||||||
                <el-tab-pane label="监控项" name="first">
 | 
					                <el-tab-pane label="监控项" name="monitorItem">
 | 
				
			||||||
                  <template v-for="(item,index) of monitorTable['nodeOne']">
 | 
					                  <template v-for="(item,index) of monitorTable['nodeOne']">
 | 
				
			||||||
                    <TableList :ref="`tableRef_${item.config.tableKey}`" :config="item.config" :columns="item.columns" :queryParams="{total: 0}" :tableList="item.tableList"  @fnClick="callback"></TableList>
 | 
					                    <TableList :ref="`tableRef_${item.config.tableKey}`" :config="item.config" :columns="switchColumns" :queryParams="{total: 0}" :tableList="item.tableList"  @fnClick="callback"></TableList>
 | 
				
			||||||
                  </template>
 | 
					                  </template>
 | 
				
			||||||
                </el-tab-pane>
 | 
					                </el-tab-pane>
 | 
				
			||||||
                <!--    2-2-2    -->
 | 
					                <!--    2-2-2    -->
 | 
				
			||||||
                <el-tab-pane label="自动发现项" name="second">
 | 
					                <el-tab-pane label="自动发现项" name="autodiscoverItem">
 | 
				
			||||||
                  <el-collapse v-model="activeNames">
 | 
					                  <el-collapse v-model="activeNames">
 | 
				
			||||||
                    <el-collapse-item v-for="(val,index) of monitorTable['nodeTow']" :title="val.title" :name="index">
 | 
					                    <el-collapse-item v-for="(val,index) of monitorTable['nodeTow']" :title="val.title" :name="index">
 | 
				
			||||||
                      <TableList :ref="`tableRef_${val.config.tableKey}`" :config="val.config" :columns="val.columns" :queryParams="{total: 0}" :tableList="val.tableList"  @fnClick="callback"></TableList>
 | 
					                      <TableList :class="val && val.classType" :ref="`tableRef_${val.config.tableKey}`" :config="val.config" :columns="switchColumns" :queryParams="{total: 0}" :tableList="val.tableList"  @fnClick="callback"></TableList>
 | 
				
			||||||
                    </el-collapse-item>
 | 
					                    </el-collapse-item>
 | 
				
			||||||
                  </el-collapse>
 | 
					                  </el-collapse>
 | 
				
			||||||
                </el-tab-pane>
 | 
					                </el-tab-pane>
 | 
				
			||||||
@@ -96,6 +96,7 @@
 | 
				
			|||||||
<script setup>
 | 
					<script setup>
 | 
				
			||||||
  import Form from '@/components/form/index.vue';
 | 
					  import Form from '@/components/form/index.vue';
 | 
				
			||||||
  import TableList from "@/components/table/index.vue"
 | 
					  import TableList from "@/components/table/index.vue"
 | 
				
			||||||
 | 
					  import {getMonitorTempList} from "@/api/disRevenue/resource"
 | 
				
			||||||
  import MonitorTempView from './view'
 | 
					  import MonitorTempView from './view'
 | 
				
			||||||
  export default {
 | 
					  export default {
 | 
				
			||||||
    name: 'MonitorTempDetails',
 | 
					    name: 'MonitorTempDetails',
 | 
				
			||||||
@@ -103,11 +104,13 @@
 | 
				
			|||||||
    data() {
 | 
					    data() {
 | 
				
			||||||
      return {
 | 
					      return {
 | 
				
			||||||
        active: 0,
 | 
					        active: 0,
 | 
				
			||||||
        activeNames: [0, 1],
 | 
					        activeNames: [0, 1,2,3],
 | 
				
			||||||
        linuxActiveName: 'first',
 | 
					        activeTypeName: 'linux',  // 两个系统
 | 
				
			||||||
        hwActiveName: 'first',
 | 
					        linuxActiveName: 'monitorItem', // linux系统下的两个栏
 | 
				
			||||||
 | 
					        hwActiveName: 'monitorItem',  // 华为交换机下的两个栏
 | 
				
			||||||
 | 
					        dataListMap: {},  // 存储监控字段
 | 
				
			||||||
        checkAllParams: {},
 | 
					        checkAllParams: {},
 | 
				
			||||||
        checkParams: {cpu: [], other: [], mount: [], netPort:[]},
 | 
					        checkParams: {cpu: [], other: [], point: [], net:[], disk: [], docker: []},
 | 
				
			||||||
        allSelectedData: {},
 | 
					        allSelectedData: {},
 | 
				
			||||||
        synthesisList: {},
 | 
					        synthesisList: {},
 | 
				
			||||||
        // 第一节点
 | 
					        // 第一节点
 | 
				
			||||||
@@ -129,10 +132,10 @@
 | 
				
			|||||||
        }],
 | 
					        }],
 | 
				
			||||||
        // 第二节点 1栏
 | 
					        // 第二节点 1栏
 | 
				
			||||||
        linuxSystem: {
 | 
					        linuxSystem: {
 | 
				
			||||||
          monitorList: {
 | 
					          monitorItem: {
 | 
				
			||||||
            firstTitle: 'Linux系统', title: '监控项',
 | 
					            firstTitle: 'Linux系统', title: '监控项',
 | 
				
			||||||
            dataList: [{
 | 
					            dataList: [{
 | 
				
			||||||
              title: 'CPU监控', modelName: 'cpu', checkAll: false, isIndeterminate: false,
 | 
					              title: 'CPU监控', modelName: 'cpu', checkAll: true, isIndeterminate: false, disabled: true,
 | 
				
			||||||
              checkList: [
 | 
					              checkList: [
 | 
				
			||||||
                {id: '1', name: 'system.cpu.load.avg1', towName: 'CPU的1分钟负载'},
 | 
					                {id: '1', name: 'system.cpu.load.avg1', towName: 'CPU的1分钟负载'},
 | 
				
			||||||
                {id: '2', name: 'system.cpu.util.normal', towName: 'CPU正常运行时间'},
 | 
					                {id: '2', name: 'system.cpu.util.normal', towName: 'CPU正常运行时间'},
 | 
				
			||||||
@@ -142,97 +145,69 @@
 | 
				
			|||||||
              ]},
 | 
					              ]},
 | 
				
			||||||
              {
 | 
					              {
 | 
				
			||||||
                title: '其他监控', modelName: 'other', checkAll: false, isIndeterminate: false,
 | 
					                title: '其他监控', modelName: 'other', checkAll: false, isIndeterminate: false,
 | 
				
			||||||
                checkList: [
 | 
					                checkList: []
 | 
				
			||||||
                  {id: '6', name: 'system.swap.size.free', towName: '交换卷/文件的可用空间(字节)'},
 | 
					 | 
				
			||||||
                  {id: '7', name: 'proc.num.run', towName: '正在运行的进程数'},
 | 
					 | 
				
			||||||
                  {id: '8', name: 'memory.utilization', towName: '内存利用率'},
 | 
					 | 
				
			||||||
                  {id: '9', name: 'system.users.num', towName: '登录用户数'},
 | 
					 | 
				
			||||||
                  {id: '10', name: 'system.swap.size.percent', towName: '可用交换空间百分比'},
 | 
					 | 
				
			||||||
                ]
 | 
					 | 
				
			||||||
              }
 | 
					              }
 | 
				
			||||||
            ],
 | 
					            ],
 | 
				
			||||||
          },
 | 
					          },
 | 
				
			||||||
          autoFindList: {
 | 
					          autodiscoverItem: {
 | 
				
			||||||
            firstTitle: 'Linux系统', title: '自动发现项',
 | 
					            firstTitle: 'Linux系统', title: '自动发现项',
 | 
				
			||||||
            dataList:[{
 | 
					            dataList:[{
 | 
				
			||||||
              title: '发现挂载文件系统', modelName: 'mount', checkAll: false, isIndeterminate: false,
 | 
					              title: '发现挂载文件系统', modelName: 'point', checkAll: false, isIndeterminate: false, disabled: true,
 | 
				
			||||||
              checkList: [
 | 
					              checkList: []
 | 
				
			||||||
                {id: '1', name: 'vfs.fs.type', towName: '某个挂载点(如/)的文件系统类型'},
 | 
					              }, {
 | 
				
			||||||
                {id: '2', name: 'vfs.fs.size.free', towName: '某个挂载点(如/)的可用空间'},
 | 
					                title: '发现网络接口', modelName: 'net', checkAll: false, isIndeterminate: false, disabled: true,
 | 
				
			||||||
                {id: '3', name: 'vfs.fs.size.total', towName: '某个挂载点(如/)的总空间'},
 | 
					                checkList: []
 | 
				
			||||||
                {id: '4', name: 'vfs.fs.util', towName: '某个挂载点(如/)的空间利用率'},
 | 
					              }, {
 | 
				
			||||||
              ]},
 | 
					                  title: '发现硬盘设备', modelName: 'disk', checkAll: false, isIndeterminate: false, disabled: true,
 | 
				
			||||||
              {
 | 
					                  checkList: []
 | 
				
			||||||
                title: '发现网络接口', modelName: 'netPort', checkAll: false, isIndeterminate: false,
 | 
					              }, {
 | 
				
			||||||
                checkList: [
 | 
					                  title: '发现docker', modelName: 'docker', checkAll: false, isIndeterminate: false, disabled: true,
 | 
				
			||||||
                  {id: '1', name: 'net.if.in.dropped', towName: '某个网络接口(如interface eth0)的入站丢包'},
 | 
					                  checkList: []
 | 
				
			||||||
                  {id: '2', name: 'net.if.out.dropped', towName: '某个网络接口(如interface eth0)的出站丢包'},
 | 
					              }
 | 
				
			||||||
                  {id: '3', name: 'net.if.out', towName: '某个网络接口(如interface eth0)的发送流量'},
 | 
					            ]
 | 
				
			||||||
                  {id: '4', name: 'net.if.out.type', towName: '某个网络接口(如interface eth0)的接口类型'},
 | 
					 | 
				
			||||||
                  {id: '5', name: 'net.if.in', towName: '某个网络接口(如interface eth0)的接收流量'}
 | 
					 | 
				
			||||||
                ]
 | 
					 | 
				
			||||||
            }]
 | 
					 | 
				
			||||||
          },
 | 
					          },
 | 
				
			||||||
        },
 | 
					        },
 | 
				
			||||||
        // 第二节点 2栏 列显隐信息
 | 
					        // 第二节点 2栏 列显隐信息
 | 
				
			||||||
 | 
					        switchColumns: {
 | 
				
			||||||
 | 
					          id: { label: `ID`, visible: false },
 | 
				
			||||||
 | 
					          metricKey: { label: `监控标识`, visible: true},
 | 
				
			||||||
 | 
					          metricName: { label: `监控名称`, visible: true},
 | 
				
			||||||
 | 
					          oid: { label: `监控OID`, visible: true },
 | 
				
			||||||
 | 
					          filterValue: { label: `过滤值`, visible: true},
 | 
				
			||||||
 | 
					          monitorDescription: { label: `自动监控说明`, visible: true}
 | 
				
			||||||
 | 
					        },
 | 
				
			||||||
        monitorTable: {
 | 
					        monitorTable: {
 | 
				
			||||||
          nodeOne: [{
 | 
					          nodeOne: [{
 | 
				
			||||||
            firstTitle: '华为交换机', secondTitle: '监控项',
 | 
					            firstTitle: '华为交换机', secondTitle: '监控项',
 | 
				
			||||||
            columns: {
 | 
					            tableList: [],
 | 
				
			||||||
              id: { label: `ID`, visible: false },
 | 
					            config: {tableKey: 'web', colTopHiddenIcon: true}
 | 
				
			||||||
              ident: { label: `监控标识`, visible: true},
 | 
					 | 
				
			||||||
              name: { label: `监控名称`, visible: true},
 | 
					 | 
				
			||||||
              monitor: { label: `监控OID`, visible: true },
 | 
					 | 
				
			||||||
              filter: { label: `过滤值`},
 | 
					 | 
				
			||||||
              explain: { label: `监控说明`, visible: true}
 | 
					 | 
				
			||||||
            },
 | 
					 | 
				
			||||||
            tableList: [
 | 
					 | 
				
			||||||
              {id: 1, ident: 'sysDescr', name: '系统描述', monitor: '1.3.6.1.2.1.1.1', filter: '', explain: ''},
 | 
					 | 
				
			||||||
              {id: 2, ident: 'sysObjectID', name: '系统Object ID', monitor: '1.3.6.1.2.1.1.2', filter: '', explain: ''},
 | 
					 | 
				
			||||||
              {id: 3, ident: 'sysUpTime', name: '系统运行时间', monitor: '1.3.6.1.2.1.1.1', filter: '', explain: ''},
 | 
					 | 
				
			||||||
              {id: 4, ident: 'sysContact', name: '系统联系信息', monitor: '1.3.6.1.2.1.1.1', filter: '', explain: '', relevance: {id: [2]}},
 | 
					 | 
				
			||||||
              {id: 5, ident: 'sysName', name: '系统名称', monitor: '1.3.6.1.2.1.1.1', filter: '', explain: ''},
 | 
					 | 
				
			||||||
            ],
 | 
					 | 
				
			||||||
            config: {tableKey: 'web'}
 | 
					 | 
				
			||||||
          }],
 | 
					          }],
 | 
				
			||||||
          nodeTow: [
 | 
					          nodeTow: [
 | 
				
			||||||
            {
 | 
					            {
 | 
				
			||||||
              firstTitle: '华为交换机', secondTitle: '自动发现项', title: '网络端口发现',
 | 
					              firstTitle: '华为交换机', secondTitle: '自动发现项', title: '网络端口发现', classType: 'checkHidden',
 | 
				
			||||||
              columns: {
 | 
					              tableList: [],
 | 
				
			||||||
                id: { label: `ID`, visible: false },
 | 
					              config: {tableKey: 'web1', colTopHiddenIcon: true, selectable: true}
 | 
				
			||||||
                ident: { label: `监控标识`, visible: true},
 | 
					 | 
				
			||||||
                name: { label: `监控名称`, visible: true},
 | 
					 | 
				
			||||||
                monitor: { label: `监控OID`, visible: true },
 | 
					 | 
				
			||||||
                filter: { label: `过滤值`},
 | 
					 | 
				
			||||||
                explain: { label: `监控说明`, visible: true}
 | 
					 | 
				
			||||||
              },
 | 
					 | 
				
			||||||
              tableList: [
 | 
					 | 
				
			||||||
                {id: 1, ident: 'sysDescr', name: '系统描述', monitor: '1.3.6.1.2.1.1.1', filter: '', explain: ''},
 | 
					 | 
				
			||||||
                {id: 2, ident: 'sysObjectID', name: '系统Object ID', monitor: '1.3.6.1.2.1.1.2', filter: '', explain: ''},
 | 
					 | 
				
			||||||
                {id: 3, ident: 'sysUpTime', name: '系统运行时间', monitor: '1.3.6.1.2.1.1.1', filter: '', explain: ''},
 | 
					 | 
				
			||||||
                {id: 4, ident: 'sysContact', name: '系统联系信息', monitor: '1.3.6.1.2.1.1.1', filter: '', explain: '', relevance: {id: [2]}},
 | 
					 | 
				
			||||||
                {id: 5, ident: 'sysName', name: '系统名称', monitor: '1.3.6.1.2.1.1.1', filter: '', explain: ''},
 | 
					 | 
				
			||||||
              ],
 | 
					 | 
				
			||||||
              config: {tableKey: 'web1'}
 | 
					 | 
				
			||||||
            },
 | 
					            },
 | 
				
			||||||
            {
 | 
					            {
 | 
				
			||||||
              firstTitle: '华为交换机', secondTitle: '自动发现项',title: '光模块发现',
 | 
					              firstTitle: '华为交换机', secondTitle: '自动发现项',title: 'MPU发现', classType: 'checkHidden',
 | 
				
			||||||
              columns: {
 | 
					              tableList: [],
 | 
				
			||||||
                id: { label: `ID`, visible: false },
 | 
					              config: {tableKey: 'web2', colTopHiddenIcon: true, selectable: true}
 | 
				
			||||||
                ident: { label: `监控标识`, visible: true},
 | 
					            },
 | 
				
			||||||
                name: { label: `监控名称`, visible: true},
 | 
					            // {
 | 
				
			||||||
                monitor: { label: `监控OID`, visible: true },
 | 
					            //   firstTitle: '华为交换机', secondTitle: '自动发现项',title: '电源发现', classType: 'checkHidden',
 | 
				
			||||||
                filter: { label: `过滤值`},
 | 
					            //   tableList: [
 | 
				
			||||||
                explain: { label: `监控说明`, visible: true}
 | 
					            //     {id: 1, ident: 'sysDescr', name: '系统描述', monitor: '1.3.6.1.2.1.1.1', filter: '', explain: ''},
 | 
				
			||||||
              },
 | 
					            //     {id: 2, ident: 'sysObjectID', name: '系统Object ID', monitor: '1.3.6.1.2.1.1.2', filter: '', explain: ''},
 | 
				
			||||||
              tableList: [
 | 
					            //     {id: 3, ident: 'sysUpTime', name: '系统运行时间', monitor: '1.3.6.1.2.1.1.1', filter: '', explain: ''},
 | 
				
			||||||
                {id: 1, ident: 'sysDescr', name: '系统描述', monitor: '1.3.6.1.2.1.1.1', filter: '', explain: ''},
 | 
					            //     {id: 4, ident: 'sysContact', name: '系统联系信息', monitor: '1.3.6.1.2.1.1.1', filter: '', explain: '', relevance: {id: [2]}},
 | 
				
			||||||
                {id: 2, ident: 'sysObjectID', name: '系统Object ID', monitor: '1.3.6.1.2.1.1.2', filter: '', explain: ''},
 | 
					            //     {id: 5, ident: 'sysName', name: '系统名称', monitor: '1.3.6.1.2.1.1.1', filter: '', explain: ''},
 | 
				
			||||||
                {id: 3, ident: 'sysUpTime', name: '系统运行时间', monitor: '1.3.6.1.2.1.1.1', filter: '', explain: ''},
 | 
					            //   ],
 | 
				
			||||||
                {id: 4, ident: 'sysContact', name: '系统联系信息', monitor: '1.3.6.1.2.1.1.1', filter: '', explain: '', relevance: {id: [2]}},
 | 
					            //   config: {tableKey: 'web2', colTopHiddenIcon: true, selectable: true}
 | 
				
			||||||
                {id: 5, ident: 'sysName', name: '系统名称', monitor: '1.3.6.1.2.1.1.1', filter: '', explain: ''},
 | 
					            // },
 | 
				
			||||||
              ],
 | 
					            {
 | 
				
			||||||
              config: {tableKey: 'web2'}
 | 
					              firstTitle: '华为交换机', secondTitle: '自动发现项',title: '风扇发现', classType: 'checkHidden',
 | 
				
			||||||
 | 
					              tableList: [],
 | 
				
			||||||
 | 
					              config: {tableKey: 'web2', colTopHiddenIcon: true, selectable: true}
 | 
				
			||||||
            },
 | 
					            },
 | 
				
			||||||
        ]},
 | 
					        ]},
 | 
				
			||||||
      }
 | 
					      }
 | 
				
			||||||
@@ -250,12 +225,58 @@
 | 
				
			|||||||
      })
 | 
					      })
 | 
				
			||||||
    },
 | 
					    },
 | 
				
			||||||
    methods: {
 | 
					    methods: {
 | 
				
			||||||
 | 
					      fnGetMonitorTempList(params) {
 | 
				
			||||||
 | 
					        let towType = this.hwActiveName;
 | 
				
			||||||
 | 
					        towType = this.linuxActiveName;
 | 
				
			||||||
 | 
					        getMonitorTempList(params).then(res => {
 | 
				
			||||||
 | 
					          // console.log('data====',res);
 | 
				
			||||||
 | 
					          if (this.activeTypeName === 'linux') {
 | 
				
			||||||
 | 
					            if (this.linuxActiveName === 'monitorItem'){
 | 
				
			||||||
 | 
					              this.linuxSystem[this.linuxActiveName].dataList[0].checkList = res.data && res.data.cpu;
 | 
				
			||||||
 | 
					              this.linuxSystem[this.linuxActiveName].dataList[1].checkList = res.data && res.data.other;
 | 
				
			||||||
 | 
					              // 全选操作
 | 
				
			||||||
 | 
					              this.handleCheckAllChange(true, this.linuxSystem[this.linuxActiveName].dataList[0]);
 | 
				
			||||||
 | 
					            } else {
 | 
				
			||||||
 | 
					              this.checkParams.point = res.data.point.map(item => item.id);
 | 
				
			||||||
 | 
					              this.checkParams.net = res.data.net.map(item => item.id);
 | 
				
			||||||
 | 
					              this.checkParams.disk = res.data.disk.map(item => item.id);
 | 
				
			||||||
 | 
					              this.checkParams.docker = res.data.docker.map(item => item.id);
 | 
				
			||||||
 | 
					              this.linuxSystem[this.linuxActiveName].dataList[0].checkList = res.data && res.data.point;
 | 
				
			||||||
 | 
					              this.linuxSystem[this.linuxActiveName].dataList[1].checkList = res.data && res.data.net;
 | 
				
			||||||
 | 
					              this.linuxSystem[this.linuxActiveName].dataList[2].checkList = res.data && res.data.disk;
 | 
				
			||||||
 | 
					              this.linuxSystem[this.linuxActiveName].dataList[3].checkList = res.data && res.data.docker;
 | 
				
			||||||
 | 
					            }
 | 
				
			||||||
 | 
					          } else {
 | 
				
			||||||
 | 
					            if (params.itemType === 'monitorItem') {
 | 
				
			||||||
 | 
					              let defaultNum = 0;
 | 
				
			||||||
 | 
					              let relevance = {id: []};
 | 
				
			||||||
 | 
					              res.data.system.forEach((item,index) => {
 | 
				
			||||||
 | 
					                if (item && item.filterValue === '9') {
 | 
				
			||||||
 | 
					                  defaultNum = index;
 | 
				
			||||||
 | 
					                }
 | 
				
			||||||
 | 
					                if (item && item.monitorDescription === '如果需要设备索引,当选中此项的时候,设备索引项自动选中') {
 | 
				
			||||||
 | 
					                  relevance['id'].push(item.id);
 | 
				
			||||||
 | 
					                }
 | 
				
			||||||
 | 
					              });
 | 
				
			||||||
 | 
					              res.data.system[defaultNum]['relevance'] = relevance;
 | 
				
			||||||
 | 
					              this.monitorTable.nodeOne[0].tableList = res.data.system;
 | 
				
			||||||
 | 
					            } else {
 | 
				
			||||||
 | 
					              this.monitorTable.nodeTow[0].tableList = res.data.netport;
 | 
				
			||||||
 | 
					              this.monitorTable.nodeTow[1].tableList = res.data.lightmodule;
 | 
				
			||||||
 | 
					              this.monitorTable.nodeTow[2].tableList = res.data.fan;
 | 
				
			||||||
 | 
					            }
 | 
				
			||||||
 | 
					          }
 | 
				
			||||||
 | 
					        });
 | 
				
			||||||
 | 
					      },
 | 
				
			||||||
      async next(num) {
 | 
					      async next(num) {
 | 
				
			||||||
 | 
					        console.log('num====',num,'this.active===',this.active);
 | 
				
			||||||
        if (num === '-1') {
 | 
					        if (num === '-1') {
 | 
				
			||||||
          this.active--;
 | 
					          this.active--;
 | 
				
			||||||
        } else {
 | 
					        } else {
 | 
				
			||||||
          if (this.active === 0 && !await this.fnFormValid()) {
 | 
					          if (this.active === 0 && !await this.fnFormValid()) {
 | 
				
			||||||
            return;
 | 
					            return;
 | 
				
			||||||
 | 
					          } else {
 | 
				
			||||||
 | 
					            this.handleClick();
 | 
				
			||||||
          }
 | 
					          }
 | 
				
			||||||
          if (this.active === 1) {
 | 
					          if (this.active === 1) {
 | 
				
			||||||
            this.selectAllChange();
 | 
					            this.selectAllChange();
 | 
				
			||||||
@@ -263,6 +284,15 @@
 | 
				
			|||||||
          this.active++;
 | 
					          this.active++;
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
      },
 | 
					      },
 | 
				
			||||||
 | 
					      handleClick() {
 | 
				
			||||||
 | 
					        let params = {};
 | 
				
			||||||
 | 
					        if (this.activeTypeName === 'linux') {
 | 
				
			||||||
 | 
					          params = {resourceType: this.activeTypeName, itemType: this.linuxActiveName};
 | 
				
			||||||
 | 
					        } else {
 | 
				
			||||||
 | 
					          params = {resourceType: this.activeTypeName, itemType: this.hwActiveName};
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					        this.fnGetMonitorTempList(params);
 | 
				
			||||||
 | 
					      },
 | 
				
			||||||
      // form验证
 | 
					      // form验证
 | 
				
			||||||
      fnFormValid() {
 | 
					      fnFormValid() {
 | 
				
			||||||
        return new Promise((resolve) => {
 | 
					        return new Promise((resolve) => {
 | 
				
			||||||
@@ -349,4 +379,7 @@
 | 
				
			|||||||
    padding-left: 20px;
 | 
					    padding-left: 20px;
 | 
				
			||||||
    font-size: 1rem;
 | 
					    font-size: 1rem;
 | 
				
			||||||
  }
 | 
					  }
 | 
				
			||||||
 | 
					  ::v-deep .checkHidden .el-table .el-table__fixed .el-table__header-wrapper .el-table__header .el-table-column--selection .el-checkbox__input {
 | 
				
			||||||
 | 
					    display: none!important;
 | 
				
			||||||
 | 
					  }
 | 
				
			||||||
</style>
 | 
					</style>
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -34,7 +34,7 @@
 | 
				
			|||||||
      if (this.paramsData && this.paramsData.id) {
 | 
					      if (this.paramsData && this.paramsData.id) {
 | 
				
			||||||
        this.getFormDataList(this.paramsData.id);
 | 
					        this.getFormDataList(this.paramsData.id);
 | 
				
			||||||
      } else {
 | 
					      } else {
 | 
				
			||||||
        this.fnFormList({});
 | 
					        this.fnFormList(this.ruleForm);
 | 
				
			||||||
      }
 | 
					      }
 | 
				
			||||||
    },
 | 
					    },
 | 
				
			||||||
    methods: {
 | 
					    methods: {
 | 
				
			||||||
@@ -64,7 +64,7 @@
 | 
				
			|||||||
            resourceUserName: {label: '用户名', span: 12, type: 'input', hidden: objVal && objVal.id ? false : true, disabled: objVal && objVal.registrationStatus === '1' ? true : false},
 | 
					            resourceUserName: {label: '用户名', span: 12, type: 'input', hidden: objVal && objVal.id ? false : true, disabled: objVal && objVal.registrationStatus === '1' ? true : false},
 | 
				
			||||||
            resourcePwd: {label: '密码', span: 12, type: 'input', hidden: objVal && objVal.id ? false : true, disabled: objVal && objVal.registrationStatus === '1' ? true : false},
 | 
					            resourcePwd: {label: '密码', span: 12, type: 'input', hidden: objVal && objVal.id ? false : true, disabled: objVal && objVal.registrationStatus === '1' ? true : false},
 | 
				
			||||||
            description: {label: '描述', span: 12, type: 'textarea',disabled: objVal && objVal.registrationStatus === '1' ? true : false},
 | 
					            description: {label: '描述', span: 12, type: 'textarea',disabled: objVal && objVal.registrationStatus === '1' ? true : false},
 | 
				
			||||||
            agentVersion: {label: 'AGENT版本', span: 12, type: 'input',disabled: objVal && objVal.id ? true : false},
 | 
					            agentVersion: {label: 'AGENT版本', span: 12, type: 'input',hidden: objVal && objVal.id ? false : true, disabled: objVal && objVal.id ? true : false},
 | 
				
			||||||
            // customerName: {label: '设备业务客户', span: 12, type: 'input'},
 | 
					            // customerName: {label: '设备业务客户', span: 12, type: 'input'},
 | 
				
			||||||
            // serviceNumber: {label: '业务号', span: 12, type: 'input'},
 | 
					            // serviceNumber: {label: '业务号', span: 12, type: 'input'},
 | 
				
			||||||
            agentWeek: {label: 'Agent与交换机心跳检测周期', span: 12, type: 'input', disabled: true},
 | 
					            agentWeek: {label: 'Agent与交换机心跳检测周期', span: 12, type: 'input', disabled: true},
 | 
				
			||||||
@@ -92,11 +92,13 @@
 | 
				
			|||||||
                this.formList[0].controls.resourceVersion['hidden'] = false;
 | 
					                this.formList[0].controls.resourceVersion['hidden'] = false;
 | 
				
			||||||
                this.formList[0].controls.rwPermission['hidden'] = false;
 | 
					                this.formList[0].controls.rwPermission['hidden'] = false;
 | 
				
			||||||
                this.formList[0].controls.snmpCollectAddr['hidden'] = false;
 | 
					                this.formList[0].controls.snmpCollectAddr['hidden'] = false;
 | 
				
			||||||
 | 
					                this.formList[0].controls.snmpCollectPort['hidden'] = false;
 | 
				
			||||||
                this.formList[0].controls.teamName['hidden'] = false;
 | 
					                this.formList[0].controls.teamName['hidden'] = false;
 | 
				
			||||||
              } else {
 | 
					              } else {
 | 
				
			||||||
                this.formList[0].controls.resourceVersion['hidden'] = true;
 | 
					                this.formList[0].controls.resourceVersion['hidden'] = true;
 | 
				
			||||||
                this.formList[0].controls.rwPermission['hidden'] = true;
 | 
					                this.formList[0].controls.rwPermission['hidden'] = true;
 | 
				
			||||||
                this.formList[0].controls.snmpCollectAddr['hidden'] = true;
 | 
					                this.formList[0].controls.snmpCollectAddr['hidden'] = true;
 | 
				
			||||||
 | 
					                this.formList[0].controls.snmpCollectPort['hidden'] = true;
 | 
				
			||||||
                this.formList[0].controls.teamName['hidden'] = true;
 | 
					                this.formList[0].controls.teamName['hidden'] = true;
 | 
				
			||||||
              }
 | 
					              }
 | 
				
			||||||
              break;
 | 
					              break;
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -3,8 +3,8 @@
 | 
				
			|||||||
    <div>
 | 
					    <div>
 | 
				
			||||||
      <el-steps :active="active" finish-status="success">
 | 
					      <el-steps :active="active" finish-status="success">
 | 
				
			||||||
        <el-step title="基本信息"></el-step>
 | 
					        <el-step title="基本信息"></el-step>
 | 
				
			||||||
        <el-step title="监控信息"></el-step>
 | 
					        <el-step title="脚本策略"></el-step>
 | 
				
			||||||
        <el-step title="信息确认"></el-step>
 | 
					        <el-step title="策略确认"></el-step>
 | 
				
			||||||
      </el-steps>
 | 
					      </el-steps>
 | 
				
			||||||
      <!--    内容区   -->
 | 
					      <!--    内容区   -->
 | 
				
			||||||
      <div style="margin-top: 30px;">
 | 
					      <div style="margin-top: 30px;">
 | 
				
			||||||
@@ -171,7 +171,8 @@
 | 
				
			|||||||
            index: this.addNum,
 | 
					            index: this.addNum,
 | 
				
			||||||
            controls: {
 | 
					            controls: {
 | 
				
			||||||
              id: {label: 'ID',hidden: true},
 | 
					              id: {label: 'ID',hidden: true},
 | 
				
			||||||
              localAddress: {label: `源文件${currentIndex + 1 + this.addNum}地址格式`, span: 12, type: 'radio', required: true, options: [{value: '1', label: '平台文件地址'}, {value: '2', label: '外网HTTP(s)'}]},
 | 
					              localAddress: {label: `源文件${currentIndex + 1 + this.addNum}地址格式`, span: 12, type: 'radio', required: true,
 | 
				
			||||||
 | 
					                warningTitle: '注意:当文件大小超过100M时,请选择【外网HTTP(S)】地址格式', options: [{value: '1', label: '平台文件地址'}, {value: '2', label: '外网HTTP(s)'}]},
 | 
				
			||||||
              btn: {label: '', span: 12, slotName: 'btnType', btnName: '删除', btnType: 'delete', parentKey: newKey},
 | 
					              btn: {label: '', span: 12, slotName: 'btnType', btnName: '删除', btnType: 'delete', parentKey: newKey},
 | 
				
			||||||
              serverPort: {label: `源文件${currentIndex + 1 + this.addNum}地址`, span: 12, type: 'input'}
 | 
					              serverPort: {label: `源文件${currentIndex + 1 + this.addNum}地址`, span: 12, type: 'input'}
 | 
				
			||||||
            },
 | 
					            },
 | 
				
			||||||
 
 | 
				
			|||||||
							
								
								
									
										152
									
								
								src/views/disRevenue/resource/topology/gplot.vue
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										152
									
								
								src/views/disRevenue/resource/topology/gplot.vue
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,152 @@
 | 
				
			|||||||
 | 
					<template>
 | 
				
			||||||
 | 
					  <div style="width:100%;height: calc(100vh - 115px);margin: 30px auto 0;" class="textAlignCenter">
 | 
				
			||||||
 | 
					    <div class="w100">
 | 
				
			||||||
 | 
					      <el-input v-model="resName" placeholder="请输入你需要搜索的交换机名称或服务器节点名称入内容" style="width: 80%;" @keyup.enter.native="handleQuery"></el-input>
 | 
				
			||||||
 | 
					      <el-button type="primary" class="ml10" icon="Search" @click="handleQuery(1)">搜索</el-button>
 | 
				
			||||||
 | 
					      <el-button icon="Refresh" @click="handleQuery(2)">重置</el-button>
 | 
				
			||||||
 | 
					    </div>
 | 
				
			||||||
 | 
					    <div id="gplotChart" class="w100 h100"></div>
 | 
				
			||||||
 | 
					  </div>
 | 
				
			||||||
 | 
					</template>
 | 
				
			||||||
 | 
					<script>
 | 
				
			||||||
 | 
					  import * as echarts from 'echarts'
 | 
				
			||||||
 | 
					  import {resNameBtType, listAllTopology} from "@/api/disRevenue/resource"
 | 
				
			||||||
 | 
					  export default {
 | 
				
			||||||
 | 
					    name: 'gplot',
 | 
				
			||||||
 | 
					    data() {
 | 
				
			||||||
 | 
					      return {
 | 
				
			||||||
 | 
					        level1Img: require('@/assets/images/level1.png'),
 | 
				
			||||||
 | 
					        level2Img: require('@/assets/images/level2.png'),
 | 
				
			||||||
 | 
					        level3Img: require('@/assets/images/level3.png'),
 | 
				
			||||||
 | 
					        level2ImgTrue: require('@/assets/images/level2True.png'),
 | 
				
			||||||
 | 
					        level3ImgTrue: require('@/assets/images/level3True.png'),
 | 
				
			||||||
 | 
					        switchNameList: {},
 | 
				
			||||||
 | 
					        resName: '',
 | 
				
			||||||
 | 
					      }
 | 
				
			||||||
 | 
					    },
 | 
				
			||||||
 | 
					    created() {
 | 
				
			||||||
 | 
					      this.switchList();
 | 
				
			||||||
 | 
					    },
 | 
				
			||||||
 | 
					    mounted() {
 | 
				
			||||||
 | 
					      // this.$nextTick(() => {
 | 
				
			||||||
 | 
					      //   this.getList();
 | 
				
			||||||
 | 
					      // })
 | 
				
			||||||
 | 
					    },
 | 
				
			||||||
 | 
					    methods: {
 | 
				
			||||||
 | 
					      // 获取详情
 | 
				
			||||||
 | 
					      getList(res,lightVal) {
 | 
				
			||||||
 | 
					        const gplotChartLine = echarts.init(document.getElementById('gplotChart'));
 | 
				
			||||||
 | 
					        let seriesNodes = [
 | 
				
			||||||
 | 
					            {
 | 
				
			||||||
 | 
					              id: 'cloud',
 | 
				
			||||||
 | 
					              name: '云',
 | 
				
			||||||
 | 
					              // symbolSize: 80,
 | 
				
			||||||
 | 
					              symbol: `image://${this.level1Img}`,
 | 
				
			||||||
 | 
					              symbolSize: [40, 40], // 图片宽高
 | 
				
			||||||
 | 
					              x: 250,
 | 
				
			||||||
 | 
					              y: 300
 | 
				
			||||||
 | 
					            },
 | 
				
			||||||
 | 
					        ];
 | 
				
			||||||
 | 
					        let links = [];
 | 
				
			||||||
 | 
					        if (res.params) {
 | 
				
			||||||
 | 
					          Object.keys(res.params).forEach((item,index) => {
 | 
				
			||||||
 | 
					            links.push({source: 'cloud', target: item, lineStyle: { width: 2 }});
 | 
				
			||||||
 | 
					            seriesNodes.push({
 | 
				
			||||||
 | 
					              id: item,
 | 
				
			||||||
 | 
					              name: item,
 | 
				
			||||||
 | 
					              // symbol: 'rect',
 | 
				
			||||||
 | 
					              // symbolSize: 60,
 | 
				
			||||||
 | 
					              symbol: `image://${lightVal && lightVal[item] ? this.level2ImgTrue : this.level2Img}`,
 | 
				
			||||||
 | 
					              symbolSize: [40, 40], // 图片宽高
 | 
				
			||||||
 | 
					              x: 400,
 | 
				
			||||||
 | 
					              y: 200 * (index + 1)
 | 
				
			||||||
 | 
					            });
 | 
				
			||||||
 | 
					            res.params[item].forEach((val,indexVal) => {
 | 
				
			||||||
 | 
					              if (val && val.serverName) {
 | 
				
			||||||
 | 
					                links.push({source: item, target: val.serverName, lineStyle: { width: 2 }});
 | 
				
			||||||
 | 
					                seriesNodes.push({
 | 
				
			||||||
 | 
					                  id: val.serverName,
 | 
				
			||||||
 | 
					                  name: val.serverName,
 | 
				
			||||||
 | 
					                  // symbol: 'rect',
 | 
				
			||||||
 | 
					                  // symbolSize: 60,
 | 
				
			||||||
 | 
					                  symbol: `image://${lightVal && lightVal[val.serverName] ? this.level3ImgTrue : this.level3Img}`,
 | 
				
			||||||
 | 
					                  symbolSize: [40, 40], // 图片宽高
 | 
				
			||||||
 | 
					                  x: 900,
 | 
				
			||||||
 | 
					                  y: 60 * (indexVal + 1)
 | 
				
			||||||
 | 
					                });
 | 
				
			||||||
 | 
					              }
 | 
				
			||||||
 | 
					            });
 | 
				
			||||||
 | 
					          });
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					        let option = {
 | 
				
			||||||
 | 
					          title: {
 | 
				
			||||||
 | 
					            text: '',
 | 
				
			||||||
 | 
					            left: 'center',
 | 
				
			||||||
 | 
					          },
 | 
				
			||||||
 | 
					          tooltip: {},
 | 
				
			||||||
 | 
					          series: [
 | 
				
			||||||
 | 
					            {
 | 
				
			||||||
 | 
					              type: 'graph', // 关系图类型
 | 
				
			||||||
 | 
					              layout: 'none', // 关闭力导向布局,使用固定位置
 | 
				
			||||||
 | 
					              roam: true, // 不允许鼠标缩放和平移
 | 
				
			||||||
 | 
					              label: {
 | 
				
			||||||
 | 
					                show: false, // 显示节点标签
 | 
				
			||||||
 | 
					              },
 | 
				
			||||||
 | 
					              // 节点数据 - 增加了固定的x和y坐标
 | 
				
			||||||
 | 
					              nodes: seriesNodes,
 | 
				
			||||||
 | 
					              links: links
 | 
				
			||||||
 | 
					            },
 | 
				
			||||||
 | 
					          ],
 | 
				
			||||||
 | 
					        };
 | 
				
			||||||
 | 
					        gplotChartLine.setOption(option);
 | 
				
			||||||
 | 
					      },
 | 
				
			||||||
 | 
					      // 获取交换机下拉
 | 
				
			||||||
 | 
					      switchList(val) {
 | 
				
			||||||
 | 
					        let params = {};
 | 
				
			||||||
 | 
					        if (val && val.resourceName) {
 | 
				
			||||||
 | 
					          params = val;
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					        listAllTopology(params).then(res => {
 | 
				
			||||||
 | 
					          let params = {};
 | 
				
			||||||
 | 
					          res && res.data.forEach(item => {
 | 
				
			||||||
 | 
					            if (params.hasOwnProperty(item.switchName)) {
 | 
				
			||||||
 | 
					              params[item.switchName].push(item);
 | 
				
			||||||
 | 
					            } else {
 | 
				
			||||||
 | 
					              params[item.switchName] = [item];
 | 
				
			||||||
 | 
					            }
 | 
				
			||||||
 | 
					          });
 | 
				
			||||||
 | 
					          if (val && val.resourceName) {
 | 
				
			||||||
 | 
					            let newParam = {};
 | 
				
			||||||
 | 
					            Object.keys(params).forEach(item => {
 | 
				
			||||||
 | 
					              newParam[item] = true;
 | 
				
			||||||
 | 
					              params[item].forEach(val => {
 | 
				
			||||||
 | 
					                newParam[val.serverName] = true;
 | 
				
			||||||
 | 
					              });
 | 
				
			||||||
 | 
					            });
 | 
				
			||||||
 | 
					            console.log('newParam==',newParam);
 | 
				
			||||||
 | 
					            this.getList(this.switchNameList,newParam);
 | 
				
			||||||
 | 
					          } else {
 | 
				
			||||||
 | 
					            this.switchNameList = {params: params};
 | 
				
			||||||
 | 
					            this.getList({params: params});
 | 
				
			||||||
 | 
					          }
 | 
				
			||||||
 | 
					        });
 | 
				
			||||||
 | 
					      },
 | 
				
			||||||
 | 
					      handleQuery(num){
 | 
				
			||||||
 | 
					        if (num === 2) {
 | 
				
			||||||
 | 
					          this.resName = '';
 | 
				
			||||||
 | 
					          this.switchList();
 | 
				
			||||||
 | 
					        } else {
 | 
				
			||||||
 | 
					          let params = {};
 | 
				
			||||||
 | 
					          if (this.resName) {
 | 
				
			||||||
 | 
					            params = {resourceName: this.resName};
 | 
				
			||||||
 | 
					          }
 | 
				
			||||||
 | 
					          this.switchList(params);
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					      },
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					  }
 | 
				
			||||||
 | 
					</script>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					<style scoped>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					</style>
 | 
				
			||||||
@@ -64,6 +64,7 @@
 | 
				
			|||||||
                {content: '新增', fnCode: 'add', type: 'primary', icon: 'el-icon-plus', hasPermi: 'disRevenue:resource:topology:add'},
 | 
					                {content: '新增', fnCode: 'add', type: 'primary', icon: 'el-icon-plus', hasPermi: 'disRevenue:resource:topology:add'},
 | 
				
			||||||
                {content: '删除', fnCode: 'delete', type: 'danger', icon: 'el-icon-delete', hasPermi: 'disRevenue:resource:topology:detele'},
 | 
					                {content: '删除', fnCode: 'delete', type: 'danger', icon: 'el-icon-delete', hasPermi: 'disRevenue:resource:topology:detele'},
 | 
				
			||||||
                {content: '导出', fnCode: 'export', type: 'warning', icon: 'el-icon-download', hasPermi: 'disRevenue:resource:topology:export'},
 | 
					                {content: '导出', fnCode: 'export', type: 'warning', icon: 'el-icon-download', hasPermi: 'disRevenue:resource:topology:export'},
 | 
				
			||||||
 | 
					                {content: '拓扑展示', fnCode: 'echarts', type: 'warning', icon: 'el-icon-picture-outline-round', hasPermi: 'disRevenue:resource:topology:echarts'},
 | 
				
			||||||
              ],
 | 
					              ],
 | 
				
			||||||
              line: [
 | 
					              line: [
 | 
				
			||||||
                {content: '修改', fnCode: 'edit', type: 'text', icon: 'el-icon-edit', hasPermi: 'disRevenue:resource:topology:edit'},
 | 
					                {content: '修改', fnCode: 'edit', type: 'text', icon: 'el-icon-edit', hasPermi: 'disRevenue:resource:topology:edit'},
 | 
				
			||||||
@@ -126,6 +127,14 @@
 | 
				
			|||||||
                  this.$modal.msgSuccess("删除成功")
 | 
					                  this.$modal.msgSuccess("删除成功")
 | 
				
			||||||
                }).catch(() => {});
 | 
					                }).catch(() => {});
 | 
				
			||||||
                break;
 | 
					                break;
 | 
				
			||||||
 | 
					              case 'echarts':
 | 
				
			||||||
 | 
					                this.$router.push({
 | 
				
			||||||
 | 
					                  path:'/disRevenue/resource/topology/gplot/index',
 | 
				
			||||||
 | 
					                  query:{
 | 
				
			||||||
 | 
					                    id: rowData.id
 | 
				
			||||||
 | 
					                  }
 | 
				
			||||||
 | 
					                });
 | 
				
			||||||
 | 
					                break;
 | 
				
			||||||
              case 'export':
 | 
					              case 'export':
 | 
				
			||||||
                // let dataList = [];
 | 
					                // let dataList = [];
 | 
				
			||||||
                // Object.keys(this.columns).forEach(item => {
 | 
					                // Object.keys(this.columns).forEach(item => {
 | 
				
			||||||
 
 | 
				
			|||||||
		Reference in New Issue
	
	Block a user