From 9014c44305bf04007e1e396b30c731f0f5c1f99d Mon Sep 17 00:00:00 2001 From: wangtao <1q2w3e4r> Date: Fri, 16 Sep 2022 10:42:37 +0800 Subject: [PATCH] 删除无用工程(hg-monitor-web-nx) --- hg-monitor-web-nx/pom.xml | 60 ------------------------------------------------------------ hg-monitor-web-nx/src/main/java/com/web/HGMonitorNXWebApplication.java | 13 ------------- hg-monitor-web-nx/src/main/resources/application.yml | 32 -------------------------------- hg-monitor-web-nx/src/main/resources/static/src/controller/common.js | 1963 ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- hg-monitor-web-nx/src/main/resources/static/src/style/img/logo-small.png | Bin 27636 -> 0 bytes hg-monitor-web-nx/src/main/resources/static/src/style/img/logo.png | Bin 30388 -> 0 bytes hg-monitor-web-nx/src/main/resources/static/src/views/layout.html | 1160 -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- hg-monitor-web-nx/src/main/resources/static/src/views/template/user/accountSet.html | 131 ----------------------------------------------------------------------------------------------------------------------------------- 8 files changed, 0 insertions(+), 3359 deletions(-) delete mode 100644 hg-monitor-web-nx/pom.xml delete mode 100644 hg-monitor-web-nx/src/main/java/com/web/HGMonitorNXWebApplication.java delete mode 100644 hg-monitor-web-nx/src/main/resources/application.yml delete mode 100644 hg-monitor-web-nx/src/main/resources/static/src/controller/common.js delete mode 100644 hg-monitor-web-nx/src/main/resources/static/src/style/img/logo-small.png delete mode 100644 hg-monitor-web-nx/src/main/resources/static/src/style/img/logo.png delete mode 100644 hg-monitor-web-nx/src/main/resources/static/src/views/layout.html delete mode 100644 hg-monitor-web-nx/src/main/resources/static/src/views/template/user/accountSet.html diff --git a/hg-monitor-web-nx/pom.xml b/hg-monitor-web-nx/pom.xml deleted file mode 100644 index 46e3579..0000000 --- a/hg-monitor-web-nx/pom.xml +++ /dev/null @@ -1,60 +0,0 @@ -<?xml version="1.0" encoding="UTF-8"?> -<project xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://maven.apache.org/POM/4.0.0" - xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd"> - <modelVersion>4.0.0</modelVersion> - <parent> - <groupId>com.honggroup</groupId> - <artifactId>hg-monitor-web</artifactId> - <version>0.0.1-SNAPSHOT</version> - </parent> - <groupId>com.honggroup</groupId> - <artifactId>hg-monitor-web-nx</artifactId> - <version>5.4.0</version> - <name>hg-monitor-web-nx</name> - <description>宁夏个性化版本</description> - <properties> - <java.version>1.8</java.version> - </properties> - <dependencies> - <dependency> - <groupId>com.honggroup</groupId> - <artifactId>hg-monitor-web-base</artifactId> - <version>0.0.1-SNAPSHOT</version> - </dependency> - </dependencies> - - <build> - <finalName>nxweb-${version}.${timestamp}</finalName> - <resources> - <resource> - <directory>src/main/resources</directory> - <includes> - <include>**/**</include> - </includes> - </resource> - </resources> - <plugins> - <plugin> - <groupId>org.codehaus.mojo</groupId> - <artifactId>buildnumber-maven-plugin</artifactId> - <version>1.4</version> - <configuration> - <timestampFormat>yyyyMMdd</timestampFormat> - </configuration> - <executions> - <execution> - <goals> - <goal>create-timestamp</goal> - </goals> - </execution> - </executions> - <inherited>false</inherited> - </plugin> - <plugin> - <groupId>org.springframework.boot</groupId> - <artifactId>spring-boot-maven-plugin</artifactId> - </plugin> - </plugins> - </build> - -</project> diff --git a/hg-monitor-web-nx/src/main/java/com/web/HGMonitorNXWebApplication.java b/hg-monitor-web-nx/src/main/java/com/web/HGMonitorNXWebApplication.java deleted file mode 100644 index 6acd34e..0000000 --- a/hg-monitor-web-nx/src/main/java/com/web/HGMonitorNXWebApplication.java +++ /dev/null @@ -1,13 +0,0 @@ -package com.web; - -import org.springframework.boot.SpringApplication; -import org.springframework.boot.autoconfigure.SpringBootApplication; - -@SpringBootApplication -public class HGMonitorNXWebApplication { - - public static void main(String[] args) { - SpringApplication.run(HGMonitorNXWebApplication.class, args); - } - -} diff --git a/hg-monitor-web-nx/src/main/resources/application.yml b/hg-monitor-web-nx/src/main/resources/application.yml deleted file mode 100644 index f96f9b8..0000000 --- a/hg-monitor-web-nx/src/main/resources/application.yml +++ /dev/null @@ -1,32 +0,0 @@ -spring: - application: - name: zjweb -server: - port: 8088 - ssl: - enabled: false - key-alias: tomcat_https - key-store: classpath:keystore/tomcat_https.keystore - key-store-type: JKS - key-store-password: Hg0801.. - key-password: Hg0801.. -url: - gateway: http://127.0.0.1:8080 - inspection_web: http://127.0.0.1:8082 - assetsweb: http://127.0.0.1:8082 - mxgraph_editor: http://127.0.0.1:8085 - tingyun: http://127.0.0.1:8088 - bigScreen: http://127.0.0.1:8081 - #流程系统路径,当ssl.enabled=true时,http要改为https,并修改流程nginx的conf文件 - workflow: http://192.168.0.248:8002 - # 积木报表工具 - jimuReport: http://192.168.0.41:8085 -config: - layer: - load: - icon: mj - audio: - mp3: 14039 - tingyun: - api_key: aZipZbC18BhpG5GrjtiFAtThL1I0OUfn - secret_key: nbxay44wx8c3x4n5wcxe63mp87a72xed diff --git a/hg-monitor-web-nx/src/main/resources/static/src/controller/common.js b/hg-monitor-web-nx/src/main/resources/static/src/controller/common.js deleted file mode 100644 index 995167c..0000000 --- a/hg-monitor-web-nx/src/main/resources/static/src/controller/common.js +++ /dev/null @@ -1,1963 +0,0 @@ -/** - - @Name:layuiAdmin 公共业务 - @Author:贤心 - @Site:http://www.layui.com/admin/ - @License:LPPL - - */ - -layui.define(['xmSelect', 'md5'], function (exports) { - var $ = layui.$ - , laytpl = layui.laytpl - , layer = layui.layer - , view = layui.view - , xmSelect = layui.xmSelect - , md5 = layui.md5 - , form = layui.form - , commonDetail = layui.commonDetail - , admin = layui.admin; - //公共业务的逻辑处理可以写在此处,切换任何页面都会执行 - var obj = { - domainIpManage: "http://94.12.40.231:8080/zoneportal/", - domainName: sessionStorage.getItem('domainName'), // gateway地址 - domainInspectionURI: sessionStorage.getItem('domainInspectionURI'), // 巡检系统地址 - domainAssetsManage: sessionStorage.getItem('domainAssetsManage'), // 资产系统地址 - graphEditorOrigin: sessionStorage.getItem('graphEditorOrigin'), // 拓扑系统地址 - ajScreenStatement: sessionStorage.getItem('ajWeb'), //aj系统地址 - workflowName: sessionStorage.getItem('workflow'),//流程系统地址 - domainCMDBName: "http://80.12.147.24:8888/hgkjcmdb", //杭州咨源老cmdb系统地址 - lineTimer: null,//性能曲线图全局定时器 - detailTimer: [],//详细页的全局定时器 - alarmTimer: null,//首页告警刷新定时器 - limit: 50,//全局分页条目数 - limits: [50, 100, 150, 200],//全局分页条目数组 - //base64加密 - Base64: { - _keyStr: "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=", - encode: function (e) { - var t = ""; - var n, r, i, s, o, u, a; - var f = 0; - e = obj.Base64._utf8_encode(e); - while (f < e.length) { - n = e.charCodeAt(f++); - r = e.charCodeAt(f++); - i = e.charCodeAt(f++); - s = n >> 2; - o = (n & 3) << 4 | r >> 4; - u = (r & 15) << 2 | i >> 6; - a = i & 63; - if (isNaN(r)) { - u = a = 64 - } else if (isNaN(i)) { - a = 64 - } - t = t + this._keyStr.charAt(s) + this._keyStr.charAt(o) + this._keyStr.charAt(u) + this._keyStr.charAt(a) - } - return t - }, - decode: function (e) { - var t = ""; - var n, r, i; - var s, o, u, a; - var f = 0; - e = e.replace(/[^A-Za-z0-9+/=]/g, ""); - while (f < e.length) { - s = this._keyStr.indexOf(e.charAt(f++)); - o = this._keyStr.indexOf(e.charAt(f++)); - u = this._keyStr.indexOf(e.charAt(f++)); - a = this._keyStr.indexOf(e.charAt(f++)); - n = s << 2 | o >> 4; - r = (o & 15) << 4 | u >> 2; - i = (u & 3) << 6 | a; - t = t + String.fromCharCode(n); - if (u != 64) { - t = t + String.fromCharCode(r) - } - if (a != 64) { - t = t + String.fromCharCode(i) - } - } - t = obj.Base64._utf8_decode(t); - return t - }, - _utf8_encode: function (e) { - e = e.replace(/rn/g, "n"); - var t = ""; - for (var n = 0; n < e.length; n++) { - var r = e.charCodeAt(n); - if (r < 128) { - t += String.fromCharCode(r) - } else if (r > 127 && r < 2048) { - t += String.fromCharCode(r >> 6 | 192); - t += String.fromCharCode(r & 63 | 128) - } else { - t += String.fromCharCode(r >> 12 | 224); - t += String.fromCharCode(r >> 6 & 63 | 128); - t += String.fromCharCode(r & 63 | 128) - } - } - return t - }, - _utf8_decode: function (e) { - var t = ""; - var n = 0; - var r = c1 = c2 = 0; - while (n < e.length) { - r = e.charCodeAt(n); - if (r < 128) { - t += String.fromCharCode(r); - n++ - } else if (r > 191 && r < 224) { - c2 = e.charCodeAt(n + 1); - t += String.fromCharCode((r & 31) << 6 | c2 & 63); - n += 2 - } else { - c2 = e.charCodeAt(n + 1); - c3 = e.charCodeAt(n + 2); - t += String.fromCharCode((r & 15) << 12 | (c2 & 63) << 6 | c3 & 63); - n += 3 - } - } - return t - } - }, - /** - * 颜色数组 - */ - colorsArr: [ - { - start: '#46d6d8', - end: '#2883d0' - }, - { - start: '#facf5b', - end: '#f77623' - }, - { - start: '#C04DD8', - end: '#D81F72' - }, - { - start: '#F5A1EB', - end: '#A04DE2' - }, - { - start: '#F36093', - end: '#FF465C' - }, - { - start: '#C2E74D', - end: '#00AE8B' - }, - { - start: '#3DC3FF', - end: '#01FFFF' - }, - { - start: '#B850ED', - end: '#9062EF' - }, - { - start: '#305be6', - end: '#36a7d3' - }, - { - start: '#FFA500', - end: '#FFEE00' - }, - { - start: '#C4E64C', - end: '#2de078' - }, - { - start: '#30ffb3', - end: '#01FFFF' - }, - { - start: '#FF4488', - end: '#F13EFF' - }, - { - start: '#A64CE2', - end: '#625AE7' - }, - { - start: '#5AEBC7', - end: '#5FC9F8' - }, - { - start: '#FFA500', - end: '#FFEE00' - }, - { - start: '#00AAD6', - end: '#625AE7' - }, - { - start: '#E48BDE', - end: '#FF9262' - }, - { - start: '#B2797B', - end: '#FF4B51' - }, - { - start: '#ffe393', - end: '#feff5b' - } - ], - //资源类型悬浮提示信息定义 - nodeTipsKpiArr: { - //小型机:主机状态,主机IP、运行状态、磁盘使用率、CPU使用率、网络联通状态、网络带宽占用率、运行时长 - HOST_MINICOMPUTER_SERVER: "KPI1635BB9B,KPI1AF5B3C6,KPIE4B51D5C,KPI2C8A6D17,KPI7054BC34,KPI618689D8,KPID1E6EFA1,KPI1C777D98", - //小型机分区:主机状态,主机IP、运行状态、磁盘使用率、CPU使用率、网络联通状态、网络带宽占用率、运行时长 - HOST_MINICOMPUTER_PARTITION: "KPI1635BB9B,KPI1AF5B3C6,KPIE4B51D5C,KPI2C8A6D17,KPI7054BC34,KPI618689D8,KPID1E6EFA1,KPI1C777D98", - //物理服务器:主机状态、主机IP、磁盘使用率、内存使用率、网络连通状态、CPU使用率、服务器与存储间的连通状态、、网络带宽占用率 - HOST_X86SERVER: "KPI1635BB9B,KPI1AF5B3C6,KPI2C8A6D17,KPI31CB8D97,KPI618689D8,KPI7054BC34,KPIA537846F,KPID1E6EFA1", - //虚拟服务器:主机状态、主机IP、磁盘使用率、内存使用率、网络连通状态、CPU使用率、服务器与存储间的连通状态、、网络带宽占用率 - HOST_X86VIRTUAL: "KPI1635BB9B,KPI1AF5B3C6,KPI2C8A6D17,KPI31CB8D97,KPI618689D8,KPI7054BC34,KPIA537846F,KPID1E6EFA1", - //华为云:物理机数量 - HUAWEI_CLOUD: "KPI3CF8A73E", - //华为云物理机:物理主机IP、所属资源池、已分配内存大小、已分配磁盘大小、CPU使用率、内存使用率、磁盘使用率 - HUAWEI_CLOUD_PHYSICSHOST: "KPIEA270DAB,KPID7BE5E90,KPI191373C6,KPI9B34D90F,KPI7054BC34,KPI31CB8D97,KPI2C8A6D17", - //华为存储 IP地址、总容量、已使用容量、CPU使用率、内存占用率、运行状态 - HUAWEI_CLOUD_STORAGE: "KPI2DC9105C,KPI2D4365CA,KPI008F0D3A,KPI7054BC34,KPI31CB8D97,KPIE4B51D5C", - //华为交换机:IP地址、管理状态、操作状态、所属区域、CPU平均使用率、内存平均使用率 - HUAWEI_CLOUD_SWITCHBOARD: "KPI2DC9105C,KPI6F17667E,KPIF21A9F60,KPI5364695E,KPI961A9688,KPIE78B29FF", - //华为防火墙:IP地址、管理状态、操作状态、所属区域、CPU平均使用率、内存平均使用率 - HUAWEI_CLOUD_FIREWALL: "KPI2DC9105C,KPI6F17667E,KPIF21A9F60,KPI5364695E,KPI961A9688,KPIE78B29FF", - //虚拟化vmware平台:主机数、虚拟机数量、磁盘已使用大小、已使用内存、网络数、磁盘数量、网卡数量、平台运行状态 - VIRTUALIZATION_VMWARE: "KPI02EA188F,KPID4E1FD1D,KPI1988842F,KPI4A216352,KPI63916615,KPIA4D671CC,KPID1BA9510", - //虚拟化资源池:资源池名称、HA健康监测、主机数、网络数、CPU大小、内存大小、CPU线程数、资源池状态、CPU使用率、内存使用率 - VIRTUALIZATION_VMWARE_CLUSTER: "KPIC3F28B34,KPI26E85604,KPI02EA188F,KPI63916615,KPI98960E55,KPI1584BE1C,KPI15358CE3,KPIEE008133,KPI7054BC34,KPI31CB8D97", - //虚拟化物理机:所属资源池 、主机状态 、CPU使用率、内存使用率、启动时间 - VIRTUALIZATION_VMWARE_PHYSICSHOST: "KPID7BE5E90,KPI1635BB9B,KPI7054BC34,KPI31CB8D97,KPIF0A20BB4", - //虚拟化虚拟机:所属资源池、所属物理主机IP、主机状态、运行状态、网卡数量、磁盘数量、CPU使用率、内存使用率 - VIRTUALIZATION_VMWARE_VHOST: "KPID7BE5E90,KPI9BFCAA00,KPI1635BB9B,KPIE4B51D5C,KPICB05513A,KPIA4D671CC,KPI7054BC34,KPI31CB8D97", - //存储:总容量、已使用容量、已分配容量、已分配未使用容量、磁带库运行状态 - STORAGE: "KPI2D4365CA,KPI008F0D3A,KPIFAFA06EE,KPI358301D0,KPIEFF93409", - //网络设备路由器:端口数量\所属区域\视频会议期间链路带宽占用率\接收丢包率\端口发送流量\发送丢包率\设备的连通状态\征收期宽带链路占用率\主备链路的通断状态 - NETHARDWARE_ROUTER: "KPI1FC18754,KPI5364695E,KPI59705C06,KPI87312ED9,KPI88D5DF44,KPI89560B13,KPI94AEBD99,KPI9806211A,KPIC37FE51C", - //网络设备:交换机 - NETHARDWARE_SWITCHBOARD: "KPI1FC18754,KPI5364695E,KPI59705C06,KPI87312ED9,KPI88D5DF44,KPI89560B13,KPI94AEBD99,KPI9806211A,KPIC37FE51C", - //负载均衡 CPU使用率 - NETHARDWARE_LOADBALANCING: "KPI7054BC34", - //Oracle 数据库:数据库状态、是否为集群、会话百分比、表空间使用率、归档日志状态、安装的选项、锁数量、活动会话数量 - DATABASE_ORACLE: "KPI7498580B,KPI096EB5BA,KPI18F18278,KPI64B1610A,KPI69E67C68,KPIA52AF07F,KPIA55F9590,KPICFA785F5", - //DATABASE_MYSQL :mysql运行线程数、mysql当前连接线程数最大连接数、mysql进程执行时间、吞吐量、版本信息 - DATABASE_MYSQL: "KPI08809218,KPIA5980712,KPI8914AC3B,KPIDB9E6D41,KPIFB54AE94,KPIDAC7AC64", - //weblogic:活动线程数、网络连通性、最大连接数、执行线程数使用率、已打开会话数、队列长度、总队列数 - MIDDLEWARE_WEBLOGIC: "KPI2893A9EC,KPI2DBC270D,KPI8914AC3B,KPI8BF5E027,KPIC0A94965,KPIC18DC28A,KPIFDB4AD23", - //tomcat:最大线程数、当前线程数、繁忙线程数、已使用heap内存量、Non-heap使用率、heap使用率 - MIDDLEWARE_TOMCAT: "KPI0A144EC2,KPI70500CAA,KPIAAF2D335,KPIA0FB8392,KPI68B432E5,KPIADACC4E3" - }, - /** - * 预览附件 - * @param id 附件ID - */ - openReport: function (id, flag, suffix, code, name, document) { - var accessToken = ''; - layui.use(['sessions', 'common'], function () { - var sessions = layui.sessions; - accessToken = sessions.getToken()['access_token']; - }); - var url = obj.domainName + '/api-web/home/priviewOfiice/' + id + '?document=' + document + '&access_token=' + accessToken; - var loadIndex = layer.load(1, {shade: [0.3], content: '文件正在转换...'}); - $.ajax({ - type: "get", - url: url, - async: true, - success: function (data) { - if (data.code == 0) { - layer.close(loadIndex); - window.open("/src/lib/extend/pdfjs/web/viewer.html?test=" + encodeURIComponent(data.pdfPath)); - } - } - }); - }, - //业务下拉选择数据绑定 - bizTypeSelect: function (targtetId, callback) { - var options = "<option value=''>=所属业务=</option>"; - admin.req({ - url: this.domainName + '/api-web/home/business/findAllBusType', - data: {'type': 'per'} - , async: false - }).done(function (res) { - var bizlist = res.data; - $.each(bizlist, function (i, v) { - options += '<option value="' + v.busId + '">' + v.busTypeName + '</option>'; - }); - $('#' + targtetId).html($(options)); - if (callback) { - callback(); - } - }).error(function (error) { - console.error(error); - }); - }, - //资源类型下拉选择数据绑定 - resTypeSelect: function (targtetId, callback, ajaxParams) { - var options = "<option value=''>=资源类型=</option>"; - admin.req(Object.assign({ - url: this.domainName + '/api-web/home/restype/getAllResType' - }, ajaxParams)).done(function (res) { - var reslist = res.data; - $.each(reslist, function (i, v) { - options += '<option value="' + v.resTypeCode + '">' + v.resTypeName + '</option>'; - }); - $('#' + targtetId).html($(options)); - if (callback) { - callback(); - } - }).error(function (error) { - console.error(error); - }); - }, - resTypeXmSelect: function (xmSelectParams) { - admin.req({ - url: `${obj.domainName}/api-web/manage/restype/list`, - async: false, - success: function (res) { - // 资源类型下拉框 - var resTypeList = res.data; - var resTypeTree = obj.pidToChildren(resTypeList, "resTypeCode", "parentId"); - xmSelect.render(Object.assign({ - el: '#', - tips: '=资源类型=', - filterable: true, - radio: false, - clickClose: false, - initValue: [], - prop: { - name: 'resTypeName', - value: 'resTypeCode' - }, - toolbar: { - show: true, - list: ['CLEAR'] - }, - tree: { - show: true, - showFolderIcon: true, - showLine: true, - strict: false, - indent: 20 - }, - data: resTypeTree, - on: function (data) { - - } - }, xmSelectParams)); - } - }); - }, - /** - * @description 厂商公共方法 - * @author XuHaoJie - * @date 2021/12/27 15:03 - */ - providerSelect: function (targtetId, callback) { - var sessions = layui.sessions; - var accessToken = sessions.getToken()['access_token']; - var options = "<option value=''>=所属厂商=</option>"; - admin.req({ - url: `${obj.domainName}/api-web/manage/ddic/findSucDdics/provider?access_token=` + accessToken, - type: 'POST', - async: false - }).done(function (res) { - var list = res.data; - $.each(list, function (i, v) { - options += '<option value="' + v.ddicCode + '">' + v.ddicName + '</option>'; - }); - $('#' + targtetId).html($(options)); - if (callback) { - callback(); - } - }).error(function (error) { - console.error(error); - }); - }, - - menuXmSelect: function (xmSelectParams, done, username_, roleId_) { - var username = username_ ? username_ : ''; - var roleId = roleId_ ? roleId_ : ''; - admin.req({ - url: `${obj.domainName}/api-user/menus/findMenus?username=` + username + '&roleIds=' + roleId, - success: function (res) { - // 菜单下拉框 - var menuList = res.data; - // menuList.forEach(item => { - // item.disabled = item.isLeaf !== 'Y'; - // }); - var menuTree = obj.pidToChildren(menuList, "id", "parentId"); - //XuHaoJie 2021/10/21 添加是否是父节点 - addProperty(menuTree); - var menuSelect = xmSelect.render(Object.assign({ - el: '#', - tips: '=菜单=', - filterable: true, - radio: false, - clickClose: false, - initValue: [], - prop: { - name: 'name', - value: 'id' - }, - toolbar: { - show: true, - list: ['CLEAR'] - }, - tree: { - show: true, - showFolderIcon: true, - showLine: true, - strict: false, - indent: 20 - }, - data: menuTree, - on: function (data) { - - } - }, xmSelectParams)); - if (done) { - done(menuSelect); - } - } - }); - - //添加是否是父节点的删除 - function addProperty(list) { - list.forEach(item => { - if (item.children && item.children.length > 0) { - item['isParent'] = 1; - addProperty(item.children); - } else { - item['isParent'] = 0; - } - return item; - }) - } - }, - relationTypeXmSelect: function (xmSelectParams, done) { - admin.req({ - url: `${obj.domainName}/api-web/relationType/getAll`, - success: function (res) { - var relationTypeList = res.data; - var relationTypeSelect = xmSelect.render(Object.assign({ - el: '#', - tips: '=关系=', - filterable: true, - radio: false, - clickClose: false, - initValue: [], - prop: { - name: 'typeName', - value: 'reType' - }, - toolbar: { - show: true, - list: ['ALL', 'CLEAR'] - }, - data: relationTypeList, - on: function (data) { - - } - }, xmSelectParams)); - if (done) { - done(relationTypeSelect); - } - } - }); - }, - - //绑定拓扑数据 - topoSelect: function (targtetId, callback) { - var options = "<option value=''>=选择拓扑=</option>"; - admin.req({ - url: this.domainName + "/api-web/topo/jtopo/getListByUser?page=1&limit=50" - }).done(function (res) { - var topolist = res.data; - $.each(topolist, function (i, v) { - options += '<option value="' + v.jtopoId + '">' + v.topoName + '</option>'; - }); - $('#' + targtetId).html($(options)); - if (callback) { - callback(); - } - }).error(function (error) { - console.error(error); - }); - }, - //绑定虚拟化平台 - virtualPlatFormSelect: function (targtetId, bizId, callback) { - var options = "<option value=''>=所属平台=</option>"; - admin.req({ - url: this.domainName + '/api-web/home/virtual/platform' - }).done(function (res) { - var virtuallist = res.data; - $.each(virtuallist, function (i, v) { - options += '<option value="' + v.resId + '">' + v.resName + '</option>'; - }); - $('#' + targtetId).html($(options)); - if (callback) { - callback(); - } - }).error(function (error) { - console.error(error); - }); - }, - /** - * 数据字典下拉选择数据绑定 - * - * @param targtetId 下拉框id - * @param ddicCategory 数据类别 - * @param callback 回调函数 - */ - ddicSelect: function (targtetId, ddicCategory, callback) { - layui.use(['sessions', 'common'], function () { - var sessions = layui.sessions; - accessToken = sessions.getToken()['access_token']; - }); - var options = "<option value=''>=请选择=</option>"; - $.ajax({ - url: `${this.domainName}/api-web/manage/ddic/findSucDdics/${ddicCategory}?access_token=${accessToken}` - , method: 'POST' - , success: function (res) { - if (res && res.data) { - var ddiclist = res.data; - $.each(ddiclist, function (i, v) { - options += '<option value="' + v.ddicCode + '">' + v.ddicName + '</option>'; - }); - $('#' + targtetId).html($(options)); - if (callback) { - callback(ddiclist); - } - } - } - , error(error) { - console.error(error); - } - }); - }, - // 用户下拉框 - userXmSelect: function (xmSelectParams) { - var userSelect; - $.ajax({ - url: this.domainName + '/api-user/users/getAll?access_token=' + localStorage.getItem("access_token"), - async: false, - success: function (response) { - userSelect = xmSelect.render(Object.assign({ - el: '#', - tips: '=选择用户=', - prop: { - name: 'nickname', - value: 'username' - }, - autoRow: true, - filterable: true, - toolbar: { - show: true, - list: ['ALL', 'REVERSE', 'CLEAR'] - }, - data: response, - on: function (data) { - - } - }, xmSelectParams)); - } - }); - return userSelect; - }, - //打开弹框 - openWin: function (url, name, params, btns, fn, cancelfn, area, done, layerParams) { - if (!name) { - name = "信息"; - } - if (!area) { - area = ['80%', '90%'] - } - var id = md5(url) - view('commonViewModel').render(url).then(function (res) { - layer.open(Object.assign({ - title: [name, 'font-size:18px;'], - type: 1, - area: area, - resize: false, - shadeClose: true,//开启遮罩层 - id: id, - content: laytpl(res.body).render(JSON.stringify(params)), - success: function (layero, index) { - if (done) { - done(layero, index); - } - }, - yes: function (index, layero) { - if (fn && fn(index)) { - layer.close(index); - } - }, - cancel: function () { - $.each(obj.detailTimer, function (i, v) { - clearTimeout(obj.detailTimer[i]); - }); - obj.detailTimer.length = 0; - //取消的回调函数 - if (cancelfn) { - cancelfn(); - } - }, - btn: btns - }, layerParams)); - }); - }, - openMoreBtnWin: function (url, name, params, btns, fn, fn2, cancelfn, area, done, layerParams) { - if (!name) { - name = "信息"; - } - if (!area) { - area = ['80%', '90%'] - } - view('commonViewModel').render(url).then(function (res) { - layer.open(Object.assign({ - title: [name, 'font-size:18px;'], - type: 1, - resize: false, - area: area, - content: laytpl(res.body).render(JSON.stringify(params)), - scrollbar: false, - success: function (layero, index) { - if (done) { - done(layero, index); - } - }, - yes: function (index, layero) { - if (fn && fn()) { - layer.close(index); - } - } - , btn2: function (index, layero) { - if (fn2 && fn2()) { - layer.close(index); - } - } - , cancel: function () { - //取消的回调函数 - if (cancelfn) { - cancelfn(); - } - }, - btn: btns - }, layerParams)); - }); - }, - /** - * @desc 以layer.open打开弹框,渲染html元素在弹框的内容区域,可以直接传参为html片段 - * @param id 设定一个id,防止重复弹出 - * @param conent html内容 - * @param title 标题,可选 - * @param width 宽度,可选 - * @param height 高度,可选 - * @param btns 按钮组 ,可选 - * @param fn 点击确定回调函数,可选 - * @param successfn 加载成功后的回调处理,可选 - */ - openWindow: function (id, conent, title, width, height, btns, fn, successfn) { - if (!width) { - width = '80%' - } - if (!height) { - height = '90%' - } - layer.open({ - type: 1 - , title: title //不显示标题栏 - , closeBtn: false - , area: [width, height] - , shade: 0.8 - , resize: false - , id: id //设定一个id,防止重复弹出 - , btn: btns - , content: conent - , success: function (layero, index) { - if (successfn && successfn) { - successfn(); - } - } - , yes: function (index, layero) { - if (fn && fn()) { - fn() - layer.close(index); //如果设定了yes回调,需进行手工关闭 - } - } - }); - }, - //详细页地址 - detailPath: function (resType, resId, protocol) { - //供从详细页配置策略时使用 - localStorage.setItem("currentResType", resType); - //网络设备 - if (resType.indexOf("NETHARDWARE_") == 0 && resType != 'NETHARDWARE_360SAFE' && resType != 'NETHARDWARE_LOADBALANCING' && resType != 'NETHARDWARE_SAN_SWITCHBOARD') { - resType = 'NETHARDWARE'; - } - //安全 - // if (resType != 'NETSAFE_FIREWALL_SUB' && resType.indexOf("NETSAFE_") == 0 && resType !== 'NETSAFE_FIREWALL') { - // resType = 'NETHARDWARE'; - // } - //华为云的防火墙和路由器走相同页面 - if (resType == 'HUAWEI_CLOUD_SWITCHBOARD' || resType == 'HUAWEI_CLOUD_FIREWALL') { - resType = "HUAWEI_CLOUD_NETHARDWARE"; - } - //小型机分区 - if (resType.indexOf("HOST_MINICOMPUTER_P") != -1) { - resType = 'HOST_MINICOMPUTER_PARTITION'; - } - //如果是物理服务器并且配置了ssh和snmp协议。则跳转至tab详情页 - if (resType.indexOf("HOST_X86SERVER") != -1 && protocol && protocol.split(",").length > 1) { - resType = 'X86SERVER_BMC'; - } - //如果是HOST_X86SERVER服务器并且协议为snmp,或共享存储则根据厂商和型号判断类型 - if ((resType.indexOf("HOST_X86SERVER") !== -1 && protocol == 'SNMP') || resType.indexOf("STORAGE_SHARE") != -1) { - resType = this.detailPathByProviderAndModel(resType, resId); - } - //如果是虚拟化相关资源类型,则根据采集协议判断去那个页面 - var resTypeList = ['VIRTUALIZATION_VMWARE_VHOST', 'VIRTUALIZATION_HUAWEI_VHOST', 'HUAWEI_CLOUD_VIRTUALHOST', 'ALI_CLOUD_ECS']; - if (resTypeList.indexOf(resType) != -1) { - if (protocol == 'SSH' || protocol == 'SNMP') { - resType = 'HOST_X86VIRTUAL'; - } - } - //如果是虚拟化虚拟机资源,则直接走X86虚拟机页面 - if (resType.indexOf("VIRTUALIZATION_VHOST") != -1) { - resType = 'HOST_X86VIRTUAL'; - } - //如果是oracle数据库,则判定是否配置集群 - if (resType == 'DATABASE_ORACLE') { - resType = this.checkHasCluster(resType, resId); - } - - return "template/detail/" + resType.toLowerCase(); - }, - checkHasCluster: function (resType, resId) { - $.ajax({ - url: this.domainName + '/api-web/detail/block?access_token=' + layui.sessions.getToken()['access_token'], - data: { - resId: resId, - kpiId: 'KPI096EB5BA' - }, - async: false, - success: function (res) { - - if (res && res.data && res.data.length > 0) { - if (res.data[0].value == '是') { - resType = 'ORACLE_RAC'; - } - } - } - }); - return resType; - }, - //BMC服务器和共享存储根据厂商和型号跳转不同的详情页 - detailPathByProviderAndModel: function (resType, resId) { - $.ajax({ - url: this.domainName + '/api-web/manage/resource/findById?access_token=' + layui.sessions.getToken()['access_token'], - data: {resId: resId}, - async: false, - success: function (res) { - var res = res.obj; - var bean = res['bean']; - - //存放BMC服务器厂商和详情页关系的map - var BMCMap = new Map(); - BMCMap.set('DELL', 'HOST_BMC_DELL'); - BMCMap.set('H3C', 'HOST_BMC_H3C'); - BMCMap.set('HUAWEI', 'HOST_BMC_HUAWEI'); - BMCMap.set('LENOVO', 'HOST_BMC_LENOVO'); - BMCMap.set("IBM", "HOST_BMC_IBM"); - BMCMap.set('Inspur', 'HOST_BMC_INSPUR'); - BMCMap.set('sugon', 'HOST_BMC_SUGON'); - BMCMap.set('HP', 'HOST_BMC_HP'); - BMCMap.set('HP_knifeBox', 'HOST_BMC_HP_KNIFEBOX'); - BMCMap.set('HUAWEI_KNIFEBOX', 'HOST_BMC_HUAWEI_KNIFEBOX'); - BMCMap.set('HUAWEI_BLADE', 'HOST_BMC_HUAWEI_BLADE'); - - //存放共享存储厂商和详情页关系的map - var shareMap = new Map(); - shareMap.set('HUAWEI', 'STORAGE_SHARE'); - shareMap.set('Inspur', 'STORAGE_SHARE_INSPUR'); - - if (resType.indexOf('HOST_X86SERVER') != -1) { - if (bean.provider == 'HP' && bean.model.split('-')[0] == 'C7000') { - resType = BMCMap.get('HP_knifeBox'); - } else if (bean.provider == 'H3C' && bean.model.split('-')[1] == 'R690') { - resType = BMCMap.get('HP'); - } else if (bean.provider === 'HUAWEI' && bean.model === 'E9000') { - resType = BMCMap.get('HUAWEI_KNIFEBOX'); - } else if (bean.resCode && bean.resCode.indexOf('华为Blade__') && bean.parentId) { - resType = BMCMap.get('HUAWEI_BLADE'); - } else { - if (BMCMap.get(bean.provider)) { - resType = BMCMap.get(bean.provider) - } - } - } - if (resType.indexOf('STORAGE_SHARE') != -1) { - resType = shareMap.get(bean.provider) - } - } - }) - return resType; - }, - //打开性能曲线图 - openLineChart: function (title, params) { - // Start 将对象转成key=value&key1=value1 LSQ 2022/1/17 - let urlParams = ''; - for (let key in params) { - if (params[key]) { - urlParams += key + '=' + params[key] + '&' - } - } - urlParams = urlParams.substr(0, urlParams.length - 1) - //End LSQ 2022/1/17 - if (!title) { - title = "性能曲线图"; - } - view('commonViewModel').render("template/detail/line").then(function (res) { - // Start ident==1为性能趋势 LSQ 2022/1/17 - let type = 1; - let content = laytpl(res.body).render(JSON.stringify(params)); - if (params.ident && params.ident == 1) { - type = 2; - content = ['/vue3/index.html#/vue3/pieDetailLine?' + urlParams, 'no']; - } - //End LSQ 2022/1/17 - layer.open({ - title: [title, 'font-size:18px;'], - // type: 1, - type: type, - area: ['80%', '90%'], - shadeClose: true,//开启遮罩层 - id: 'line_chart_div', - // content: laytpl(res.body).render(JSON.stringify(params)), - content: content, - cancel: function () { - clearTimeout(obj.lineTimer); - } - }); - }); - }, - //打开性能柱状图 - openBarChart: function (title, params) { - if (!title) { - title = "使用情况"; - } - view('commonViewModel').render("template/detail/bar").then(function (res) { - layer.open({ - title: [title, 'font-size:18px;'], - type: 1, - area: ['90%', '600px'], - content: laytpl(res.body).render(JSON.stringify(params)) - }); - }); - }, - //将数组切割分组 - splieceGroup: function (array, subLength) { - var index = 0; - var newArray = []; - while (index < array.length) { - newArray.push(array.slice(index, index += subLength)); - } - return newArray; - }, - //判定是否为空或者undefined wtc add - isNotEmpty: function (data) { - if (data != '' && data != null && data != undefined) { - return true - } else { - return false - } - }, - getPreMonth(date) { - var arr = date.split('-'); - var year = arr[0]; //获取当前日期的年份 - var month = arr[1]; //获取当前日期的月份 - var day = arr[2]; //获取当前日期的日 - var days = new Date(year, month, 0); - days = days.getDate(); //获取当前日期中月的天数 - var year2 = year; - var month2 = parseInt(month) - 1; - if (month2 == 0) { - year2 = parseInt(year2) - 1; - month2 = 12; - } - var day2 = day; - var days2 = new Date(year2, month2, 0); - days2 = days2.getDate(); - if (day2 > days2) { - day2 = days2; - } - if (month2 < 10) { - month2 = '0' + month2; - } - var t2 = year2 + '年' + month2 + '月'; - return t2; - }, - //生成uuid wtc add - uuid: function () { - var s = []; - var hexDigits = "0123456789abcdef"; - for (var i = 0; i < 36; i++) { - s[i] = hexDigits.substr(Math.floor(Math.random() * 0x10), 1); - } - s[14] = "4"; // bits 12-15 of the time_hi_and_version field to 0010 - s[19] = hexDigits.substr((s[19] & 0x3) | 0x8, 1); // bits 6-7 of the clock_seq_hi_and_reserved to 01 - s[8] = s[13] = s[18] = s[23] = "-"; - - var uuid = s.join(""); - return uuid; - }, - //获取当日 joke add 0200422 - getToday: function (type) { - var date = new Date(); - var year = date.getFullYear();//当前年份 - var month = date.getMonth();//当前月份 - var data = date.getDate();//天 - var hours = date.getHours();//小时 - var minute = date.getMinutes();//分 - var second = date.getSeconds();//秒 - if (type === 'day') { - return year + "-" + obj.fnW(month + 1) + "-" + obj.fnW(data) - } else { - return year + "-" + obj.fnW(month + 1) + "-" + obj.fnW(data) + ' ' + obj.fnW(hours) + ":" + obj.fnW(minute) + ":" + obj.fnW(second); - } - }, - //日期时间补0 joke add 0200422 - fnW: function (str) { - var num; - str > 9 ? num = str : num = "0" + str; - return num; - }, - getUrlParam: function (key) { - var href = window.location.href; - href = href.substr(0, href.indexOf("#")); - var url = href.split("?"); - if (url.length <= 1) { - return ""; - } - var params = url[1].split("&"); - - for (var i = 0; i < params.length; i++) { - var param = params[i].split("="); - if (key == param[0]) { - return param[1]; - } - } - return ""; - }, - //保存列 - saveTableCols: function (data, sign) { - var accessToken = ''; - layui.use(['sessions', 'common'], function () { - var sessions = layui.sessions; - accessToken = sessions.getToken()['access_token']; - }); - var cols = data['cols'][0]; - if (sign === 0) { - var parseData = JSON.parse(data['cols']); - cols = parseData[0]; - } - $.each(cols, function (i, e) { - if (e['isChild']) { - if (e['isChild'] && typeof e['isChild'] === 'function') { - e['isChild'] = e['isChild'] + ''; - } - } - if (e['children']) { - $.each(e['children'], function (j, k) { - if (k['url'] && typeof k['url'] === 'function') { - k['url'] = k['url'] + ''; - } - if (k['done'] && typeof k['done'] === 'function') { - k['done'] = k['done'] + ''; - } - }) - } - }) - data['cols'] = JSON.stringify([cols]); - layer.load(2); - admin.req({ - url: obj.domainName + '/api-web/bUsercustomTable/save?access_token=' + accessToken - , type: 'post' - , contentType: "application/json;charset=UTF-8"//指定消息请求类型 - , data: JSON.stringify(data) - , error: function (e) { - layer.closeAll('loading'); - } - }).done(function (res) { - layer.closeAll('loading'); - layer.msg("保存成功", {icon: 1, time: 2000}) - }); - }, - //获取列 - getTableCols: function (param, callback) { - //获取配置的列 - admin.req({ - url: obj.domainName + '/api-web/bUsercustomTable/findByUserNameAndOthers' - , data: param - }).done(function (res) { - var cols = null; - if (res.object && res.object.cols) { - cols = JSON.parse(res.object.cols)[0]; - $.each(cols, function (i, e) { - if (e['isChild']) { - if (e['isChild']) { - e['isChild'] = eval("(function(){return " + e['isChild'] + " })()"); - } - } - if (e['children']) { - $.each(e['children'], function (j, k) { - if (k['url']) { - k['url'] = eval("(function(){return " + k['url'] + " })()"); - } - if (k['done']) { - k['done'] = eval("(function(){return " + k['done'] + " })()"); - } - }) - } - }) - } - if (callback) { - callback(cols); - } - }); - }, - //列拖动事件 - dragCols: function (target) { - $(".layui-table th").mousedown(function () { - $(".layui-table th").mousemove(function () { - $("#" + target).show(); - $("#" + target).removeClass("hide"); - }); - }); - }, - // 树表格列拖动/保存事件 - treeTableDragCols: function (tableTarget, toolBarTarget) { - var toolBarHtml = ''; - if (toolBarTarget) { - toolBarHtml = '<div class="layui-table-tool"><div class="layui-table-tool-temp">' + $(toolBarTarget).html() + '</div></div>'; - } else { - toolBarHtml = '<div class="layui-table-tool"><div class="layui-table-tool-temp"><button class="layui-btn layui-btn-primary layui-btn-xs btn_save_cols toolbar-btn" lay-tips="保存列顺序"><i class="iconfont"></i></button></div></div>'; - } - $(tableTarget).next().find('.layui-table-box').before(toolBarHtml); - $(".layui-table th").mousedown(function () { - $(".layui-table th").mousemove(function () { - $(tableTarget).next().find('.layui-table-tool .btn_save_cols').removeClass('hide'); - $(tableTarget).next().find('.layui-table-tool .btn_save_cols').show(); - }); - }); - }, - - // 普通表格导出到excel - exportTableData: function (tableObj, title) { - var cols = tableObj.config.cols[0].filter(item => (item.title && item.field)); - var tableData = layui.table.cache[tableObj.config.id]; - var headList = cols.map(item => item.title); - var rowList = tableData.map(item => { - var row = {}; - cols.forEach(col => { - if (!col.templet) { - row[col.field] = item[col.field]; - } else { - var renderHtml = laytpl($(col.templet).html()).render(item).replace(/[\r\n]/g, ''); - if (renderHtml.match(/(<.+>)([^<]+)(<\/.+>)/)) { - row[col.field] = renderHtml.match(/(<.+>)([^<]+)(<\/.+>)/)[2]; - if (!row[col.field].trim()) { - row[col.field] = item[col.field]; - } - } else { - row[col.field] = renderHtml - } - } - }); - return row; - }); - obj.exportData(title, headList, rowList); - }, - // 树表格导出到excel - exportTreeTableData: function (tableObj, title) { - var cols = tableObj.getTreeOptions().cols[0].filter(item => (item.title && item.field)); - var tableData = tableObj.getTableTreeData(); - var headList = cols.map(item => item.title); - var rowList = []; - rowList = treeToList(tableData, rowList, cols); - obj.exportData(title, headList, rowList); - - function treeToList(treeData, rowList, cols) { - treeData.forEach(item => { - var row = {}; - cols.forEach(col => { - if (!col.templet) { - row[col.field] = item[col.field]; - } else { - var renderHtml = laytpl($(col.templet).html()).render(item); - var value = ''; - if (renderHtml.match(/(<.+>|\w)+(.+)(\w|<\/.+>)+/)) { - value = renderHtml.match(/(<.+>|\w)+(.+)(\w|<\/.+>)+/)[0]; - } - if (value) { - row[col.field] = value - } else { - row[col.field] = renderHtml - } - } - }); - rowList.push(row); - if (item.children && item.children.length > 0) { - treeToList(item.children, rowList, cols); - } - }); - return rowList; - } - }, - - /** - * 导出数据至excel - * - * @return null - * @author 惠佳旭 - * @date 2020/11/23 - * @param title 导出excel文件名 - * @param headList 导出excel列头 - * @param rowList 导出excel数据 - */ - exportData: function (title, headList, rowList) { - if (rowList.length < 1) { - layer.msg('暂无数据导出...', {icon: 0}); - return; - } - if (layui.device().ie) { - layer.msg('不支持ie导出...', {icon: 0}); - return; - } - // 转换bodyData - var bodyData = rowList.map(row => Object.values(row).map(item => item ? item.toString().trim().replace(/,/g, ',') : '').join(',')); - // 创建下载文件的a标签 - var alink = document.createElement('a'); - var content = encodeURIComponent(headList.join(',') + '\r\n' + bodyData.join('\r\n')); - var contentType = ({csv: 'text/csv', xls: 'application/vnd.ms-excel'})['xls']; - alink.href = 'data:' + contentType + ';charset=utf-8,\ufeff' + content; - alink.download = title + '.xls'; - document.body.appendChild(alink); - alink.click(); - document.body.removeChild(alink); - }, - - /**检查权限*/ - checkPermission: function (access_token) { - // Start Wang 2021/12/13 19:42 权限列表,如果能从缓存中加载到数据,则获取缓存中的数据 - var ps = sessionStorage.getItem('permissions'); - if (ps && ps != '' && ps != null) { - return ps.split(','); - } - // End Wang 2021/12/13 19:43 权限列表,如果能从缓存中加载到数据,则获取缓存中的数据 - var pers = []; - $.ajax({ - type: 'get', - url: obj.domainName + '/api-u/users/current?access_token=' + access_token, - contentType: "application/json; charset=utf-8", - async: false, - success: function (data) { - pers = data.permissions; - $("[permission]").each(function () { - var per = $(this).attr("permission"); - if ($.inArray(per, pers) < 0) { - $(this).hide(); - } - }); - } - }); - return pers; - }, - /* pid转children形式 */ - pidToChildren: function (data, idName, pidName, childName, pId, canNotCheckPranet) { - childName || (childName = 'children'); - var newList = []; - for (var i = 0; i < data.length; i++) { - (pId == undefined) && (pId = obj.getPids(data, idName, pidName)); - if (obj.pidEquals(data[i][pidName], pId)) { - var children = this.pidToChildren(data, idName, pidName, childName, data[i][idName], canNotCheckPranet); - if (canNotCheckPranet === false) { //当不能选择时,设置父节点不可选择 - if (children.length > 0) { - data[i].disabled = true; - } - } - (children.length > 0) && (data[i][childName] = children); - newList.push(data[i]); - } - } - return newList; - }, - /** 获取顶级的pId */ - getPids: function (list, idName, pidName) { - var pids = []; - for (var i = 0; i < list.length; i++) { - var hasPid = false; - for (var j = 0; j < list.length; j++) { - if (i != j && list[j][idName] == list[i][pidName]) { - hasPid = true; - } - } - if (!hasPid) { - pids.push(list[i][pidName]); - } - } - return pids; - }, - - /** 判断pId是否相等 */ - pidEquals: function (pId, pIds) { - if (obj.isClass(pIds) == 'Array') { - for (var i = 0; i < pIds.length; i++) { - if (pId == pIds[i]) { - return true; - } - } - } else { - return pId == pIds; - } - return false; - }, - /** 获取变量类型 */ - isClass: function (o) { - if (o === null) - return 'Null'; - if (o === undefined) - return 'Undefined'; - return Object.prototype.toString.call(o).slice(8, -1); - }, - copyText: function (text, formId) { - var textarea = document.createElement("textarea"); //创建input对象 - var currentFocus = document.activeElement; //当前获得焦点的元素 - var toolBoxwrap = document.getElementById(formId); //将文本框插入到NewsToolBox这个之后 - toolBoxwrap.appendChild(textarea); //添加元素 - textarea.value = text; - textarea.focus(); - if (textarea.setSelectionRange) { - textarea.setSelectionRange(0, textarea.value.length); //获取光标起始位置到结束位置 - } else { - textarea.select(); - } - try { - var flag = document.execCommand("copy"); //执行复制 - } catch (e) { - var flag = false; - } - toolBoxwrap.removeChild(textarea); //删除元素 - currentFocus.focus(); - return flag; - }, - layJump: function (layHref) { - var alink = document.createElement('a'); - var param = ''; - if (layHref.indexOf('=') !== -1) { - param = "=" + encodeURIComponent(layHref.split('=')[1]); - } - alink.setAttribute("lay-href", layHref.split('=')[0] + param); - admin.req({ - url: obj.domainName + '/api-web/mxgraph/getJtopoInfoById/' + layHref.split('=')[2], - success(response) { - //LH 修改 弹框展示子拓扑 - layer.open({ - title: response.object.topoName, - type: 2, - area: ['90%', '90%'], - content: obj.graphEditorOrigin + "/jgraph/grapheditor/viewer.html?access_token=" + localStorage.getItem('access_token') + '&id=' + layHref.split('=')[2],//+ "&layout=organic", - }) - }, - error() { - layer.closeAll('loading'); - layer.msg('生成资源拓扑失败...', {icon: 2}); - } - }); - - // document.body.appendChild(alink); - // alink.click(); - // document.body.removeChild(alink); - }, - - /** - * @desc 查看资源详细 - * @author wangfeng - * @date 2020/9/1 15:42 - **/ - viewMxGraphNodeResInfo: function (resId) { - admin.req({ - url: obj.domainName + "/api-web/home/resource/findById?resId=" + resId - , type: "get" - , done: function (res) { - if (res.str === 'false') { - layer.msg('暂无该资源权限!', {icon: 0}); - return; - } - var data = res.object; - if (data) { - // var resTypeName = data.resTypeName ? data.resTypeName + " | " : ""; - // var resName = data.resName ? data.resName + " | " : ""; - // var resIp = data.ip ? data.ip + " | " : ""; - // var resPositon = data.resPositon ? data.resPositon + " | " : ""; - // var resLabel = data.resLabel ? data.resLabel + " | " : ""; - // var admin = data.admin ? data.admin : ""; - // var title = resTypeName + resName + resIp + resPositon + resLabel + admin; - var resId = data.resId; - var resType = data.resType; - var resName = data.resName; - var ip = data.ip; - var resTypeName = data.resTypeName; - var adminName = data.adminName; - var manageIp = data.manageIp; - var collProtocol = data.collProtocol; - var title = resName; - if (title && title != '') { - title += '|'; - } - if (resTypeName && resType !== 'HOST_X86SERVER') { - title += resTypeName + '|'; - } - if (ip) { - if (resType === 'HOST_X86SERVER') { - if (collProtocol && (collProtocol.split(",").length > 1 || collProtocol === 'SSH')) { - title += '应用IP-' + ip + '|'; - } - } else { - title += ip + '|'; - } - } - if (resType === 'HOST_X86SERVER' && collProtocol && collProtocol.indexOf('SNMP') !== -1) { - if (manageIp) { - title += '管理IP-' + manageIp + '|'; - } - } - if (adminName) { - title += adminName + '|'; - } - if (title.length > 0) { - title = title.substr(0, title.length - 1); - } - if (!commonDetail) { - commonDetail = layui.commonDetail; - } - if (data.pingEnable == '2') { //如果pingEnable为2,则进入ping状态详情页面 - commonDetail.openNewWin('template/detail/pingIndex', title, {'resId': data.resId}, false); - } else { //否则进入监控详情页面 - commonDetail.openDetail(data.resId, data.resType, title); - } - } else { - layer.msg("获取资源详细信息失败,请稍后再试!", {offset: '15px', icon: 7, time: 2000}); - } - } - }); - }, - viewResTopo: function (resId) { - layer.load(2); - admin.req({ - url: obj.domainName + '/api-web/mxgraph/generateByResId', - data: {resId}, - success(response) { - layer.closeAll('loading'); - if (response && response.success) { - layer.open({ - type: 2, - content: obj.graphEditorOrigin + "/jgraph/grapheditor/viewer.html?access_token=" + localStorage.getItem('access_token') + '&id=' + response.str + "&layout=organic", - area: ['98%', '98%'], - title: '' - }); - } else { - layer.msg('生成资源拓扑失败!', {icon: 2}); - } - }, - error() { - layer.closeAll('loading'); - layer.msg('生成资源拓扑失败...', {icon: 2}); - } - }); - }, - viewAjView: function (reportCode, height, width) { - layer.load(2); - admin.req({ - url: obj.domainName + '/api-web/ajConfig/findOneById', - data: {id: reportCode}, - success(response) { - layer.closeAll('loading'); - if (response && response.success) { - layer.open({ - type: 2, - content: obj.ajScreenStatement + "/#/bigscreen/viewer?reportCode=" + response.object.designPage + response.object.param + "&access_token=" + localStorage.getItem('access_token'), - area: [height, width], - title: response.object.title - }); - } else { - layer.open({ - type: 2, - content: obj.ajScreenStatement + "/#/bigscreen/viewer?reportCode=" + reportCode + "&access_token=" + localStorage.getItem('access_token'), - area: [height, width], - title: '' - }); - layer.closeAll('loading'); - } - } - }); - }, - viewBizTopo: function (busId) { - layer.load(2); - admin.req({ - url: obj.domainName + '/api-web/mxgraph/generateByBusId', - data: {busId}, - success(response) { - layer.closeAll('loading'); - if (response && response.success) { - layer.open({ - type: 2, - content: obj.graphEditorOrigin + "/jgraph/grapheditor/viewer.html?access_token=" + localStorage.getItem('access_token') + '&id=' + response.str + "&layout=organic", - area: ['98%', '98%'], - title: '' - }); - } else { - layer.msg('生成业务拓扑失败!', {icon: 2}); - } - }, - error() { - layer.closeAll('loading'); - layer.msg('生成业务拓扑失败...', {icon: 2}); - } - }); - }, - - /** - * @description 采集器选择一级是所属域,第二级别是域下采集器 - * @author XuHaoJie - * @date 2021/6/9 15:43 - */ - collectorTree: function (data, parentId, parentName, childName, childId) { - var dataList = []; - $.each(data, function (i, v) { - var child = []; - $.each(v.children, function (x, y) { - child.push({name: y[childName] + ' | ' + y.deployIp, value: y[childId]}) - }) - var val = { - name: v[parentName], - value: i == 0 ? parentId : -(i + 1), - children: child, - } - dataList.push(val); - }) - return dataList; - }, - - /** 业务下拉选择(tree) - *radio传入则为单选,不传或传入false为多选 joke add - *strict传入false为非严格父子关系,不传或传入非false为严格父子关系 joke add - * canNotCheckPranet传入true为不能选择,传入false为可以选择 - */ - busTreeSelect: function (xmSelectParams, canNotCheckPranet) { - //绑定业务下拉选择数据 - admin.req({ - url: this.domainName + '/api-web/home/business/findAllBusType', - async: false, - success: function (response) { - if (response && response.success) { - var bizList = response.data.map(item => { - return { - name: item.busTypeName, - value: item.busId, - parentId: item.parentId - } - }); - var bizTree = obj.pidToChildren(bizList, 'value', 'parentId', canNotCheckPranet); - // 影响业务下拉框 - xmSelect.render(Object.assign({ - el: '#', - name: '', - tips: '=所属业务=', - //默认开启多选、选完不关闭下拉 - radio: false, - clickClose: false, - //开启搜索 - filterable: true, - direction: 'down', - initValue: [], - toolbar: { - show: true, - list: ['ALL', 'REVERSE', 'CLEAR'] - }, - height: '400px', - tree: { - show: true, - showFolderIcon: true, - showLine: true, - strict: true, - //间距 - indent: 20, - }, - data: bizTree, - on: function (data) { - } - }, xmSelectParams)); - } else { - layer.msg('获取业务失败', {icon: 2}); - } - }, - error: function () { - layer.msg('获取业务失败', {icon: 2}); - } - },); - }, - getTingyunToken: function () { - var token = ''; - - var api_key = ''; - var secret_key = ''; - $.ajax({ - url: '/config/getConfig', - data: { - configName: 'config.tingyun' - }, - async: false, - success(response) { - api_key = response.api_key; - secret_key = response.secret_key; - } - }); - var timestamp = Date.now(); - var auth = md5(`api_key=${api_key}&secret_key=${secret_key}×tamp=${timestamp}`); - - var formData = new FormData(); - formData.append("api_key", api_key); - formData.append("auth", auth); - formData.append("timestamp", timestamp); - $.ajax({ - url: sessionStorage.getItem('tingyun') + '/auth-api/auth/token', - type: 'POST', - processData: false, - mimeType: "multipart/form-data", - contentType: false, - async: false, - data: formData, - success(response) { - response = JSON.parse(response) - if (response && response.code == '200') { - token = 'Bearer ' + response.access_token; - } - } - }); - sessionStorage.setItem("tingyun_token", token); - return token; - }, - tingyunReq: function (ajaxParams) { - var response = { - success: false, - msg: '', - data: [] - } - var token = sessionStorage.getItem("tingyun_token"); - if (!token) { - token = obj.getTingyunToken(); - } - if (!token) { - response.msg = '获取token失败!'; - ajaxParams.success(response); - return; - } - var successFun = ajaxParams.success; - var errorFun = ajaxParams.error; - delete ajaxParams.success; - delete ajaxParams.error; - var failCount = 2; - var res = null; - var err = null; - do { - try { - $.ajax(Object.assign({ - url: '', - headers: { - Authorization: token - }, - async: false, - success(response) { - res = response; - if (response && response.code.toString().startsWith('401')) { - throw new Error(); - } - }, - error(error) { - err = error; - throw new Error(); - } - }, ajaxParams)); - } catch (e) { - failCount--; - if (failCount) { - token = obj.getTingyunToken(); - } - continue; - } - failCount = 0; - } while (failCount) - if (res) { - successFun(res); - } else { - errorFun(); - } - }, - //音频播放 - audioPlayer: function (url) { - var audio = document.createElement('audio') - if (audio.canPlayType) { - var element = document.createElement('source') - element.setAttribute('src', url) - element.setAttribute('type', 'audio/mpeg') - audio.appendChild(element) - audio.load() - audio.muted = true; - audio.playclip = function () { - audio.pause(); - audio.currentTime = 0; - audio.play(); - } - return audio - } - }, - - /** - * 导出数据至excel 可以修改sheet - * - * @return null - * @author 徐毫杰 - * @date 2021/08/01 - * @param title 导出excel文件名 - * @param headList 导出excel列头 - * @param rowList 导出excel数据 - * @param sheet 导出excel sheet页 - */ - exportDataExcel: function (title, headList, rowList, sheetName) { - rowList.unshift(headList); - var sheet = XLSX.utils.aoa_to_sheet(rowList); - openDownloadDialog(sheet2blob(sheet, sheetName), title + '.xlsx'); - }, - - /** - * @description 根据用户资源权限或、业务权限、资源类型权限获取详情页展示页签(优先度由高到低) - * @author XuHaoJie - * @date 2021/9/23 11:41 - */ - getShowType: function (resId, username) { - //默认查出全部 - var value = 'all'; - //查找用户资源权限 - admin.req({ - url: this.domainName + '/api-web/manage/resource/getShowType?resId=' + resId + '&username=' + username, - async: false, - success: function (response) { - if (response && response.success) { - value = response.str; - } - }, - error: function () { - layer.msg('获取用户权限失败', {icon: 2}); - } - }); - return value; - }, - - }; - - //通用的打开下载对话框方法,没有测试过具体兼容性 - //url 下载地址,也可以是一个blob对象,必选 - //saveName 保存文件名,可选 - function openDownloadDialog(url, saveName) { - if (typeof url == 'object' && url instanceof Blob) { - url = URL.createObjectURL(url); // 创建blob地址 - } - var aLink = document.createElement('a'); - aLink.href = url; - aLink.download = saveName || ''; // HTML5新增的属性,指定保存文件名,可以不要后缀,注意,file:///模式下不会生效 - var event; - if (window.MouseEvent) event = new MouseEvent('click'); - else { - event = document.createEvent('MouseEvents'); - event.initMouseEvent('click', true, false, window, 0, 0, 0, 0, 0, false, false, false, false, 0, null); - } - aLink.dispatchEvent(event); - } - - // 将一个sheet转成最终的excel文件的blob对象,然后利用URL.createObjectURL下载 - function sheet2blob(sheet, sheetName) { - sheetName = sheetName || 'sheet1'; - var workbook = { - SheetNames: [sheetName], - Sheets: {} - }; - workbook.Sheets[sheetName] = sheet; - // 生成excel的配置项 - var wopts = { - bookType: 'xlsx', // 要生成的文件类型 - bookSST: false, // 是否生成Shared String Table,官方解释是,如果开启生成速度会下降,但在低版本IOS设备上有更好的兼容性 - type: 'binary' - }; - var wbout = XLSX.write(workbook, wopts); - var blob = new Blob([s2ab(wbout)], {type: "application/octet-stream"}); - - // 字符串转ArrayBuffer - function s2ab(s) { - var buf = new ArrayBuffer(s.length); - var view = new Uint8Array(buf); - for (var i = 0; i != s.length; ++i) view[i] = s.charCodeAt(i) & 0xFF; - return buf; - } - - return blob; - } - - //退出 - admin.events.logout = function () { - var logoutIdx = layer.confirm('确定退出登录?', function () { - admin.exit(); - layer.close(logoutIdx); - }); - }; - //菜单折叠事件 - admin.events.closeMenu = function () { - admin.sideFlexible(); - }; - - //监听F5刷新 - $(document).keydown(function (e) { - e = e || window.event; - if ((e.ctrlKey && e.keyCode == 82) || //ctrl+R - e.keyCode == 116) {//F5刷新 - - //获取首页 - var firstTab = $('.layui-tab-title').children().first().attr('lay-id'); - - if (firstTab === '/index/' || firstTab === '/') { - - location.hash = "/"; - } else { - //刷新后跳转到首页(用户默认首页) - location.hash = firstTab; - } - - if ($.isFunction(admin.closeAllTabs)) { - admin.closeAllTabs(); - } - - return false; - } - }); - - //检索条件区域收缩事件 - $("a.search_expend_icon").on("click", function () { - if ($(this).hasClass("expend")) { - $(this).parent().css("height", "auto") - $(".layui-status .layui-form-item").slideDown(300, 'linear'); - } else { - $(".layui-status .layui-form-item").not(":eq(0)").slideUp(300, 'linear'); - } - $(this).toggleClass("expend"); - }); - - //解决layui-table-tips不能点击其他地方关闭问题 joke add 20200420 - document.onclick = function (event) { - //如果页面中有layui-table-tips样式,且点击其他的元素不是layui-table-tips或者点击元素的腹肌不是layui-table-tips(资源名称需要判定父级) - if ($('.layui-table-tips').length > 0 && event.target.className.indexOf('layui-table-tips') == -1 && event.target.parentNode.className.indexOf('layui-table-tips') == -1) { - $('.layui-table-tips-c').click(); - } - }; - - //自动化巡检系统 - admin.events.inspectionsys = function () { - var accessToken = ''; - layui.use(['sessions', 'common'], function () { - var sessions = layui.sessions; - accessToken = sessions.getToken()['access_token']; - }); - var url = obj.domainInspectionURI + "/start/index.html#/access_token=" + accessToken; - window.open(url); - } - // 资产管理系统 - admin.events.assetsmanage = function () { - var accessToken = ''; - layui.use(['sessions', 'common'], function () { - var sessions = layui.sessions; - accessToken = sessions.getToken()['access_token']; - }); - var url = obj.domainAssetsManage + "/ITAM/index.jsp?access_token=" + accessToken; - window.open(url); - }; - - // ip管理系统 - admin.events.ipmanage = function () { - var accessToken = ''; - layui.use(['sessions', 'common'], function () { - var sessions = layui.sessions; - accessToken = sessions.getToken()['access_token']; - }); - var url = obj.domainIpManage + "?access_token=" + accessToken; - window.open(url); - }; - - // 科来系统 - admin.events.kelai = function () { - var accessToken = ''; - layui.use(['sessions', 'common'], function () { - var sessions = layui.sessions; - accessToken = sessions.getToken()['access_token']; - }); - //查询科来系统账号及密码 - admin.req({ - url: obj.domainName + '/api-web/userRefSystem/getByUsernameAndSystem', - type: "GET", - dataType: "json", - data: { - username: localStorage.getItem("lgn"), - refSystem: 'kelai' - }, - success: function (res) { - if (res && res.success && res.object) { - var url = obj.kelaiTargetUrl; - url = url.replace('{USERNAME}', res.object.account).replace('{PASSWORD}', obj.Base64.decode(res.object.password)) - window.open(url); - } else { - layer.alert('请先绑定科来账号'); - } - } - }) - }; - - //第三方系统账号绑定 joke add 20210525 - admin.events.setAccount = function () { - view('data-setting-account').render('template/user/accountSet').then(function (res) { - layer.open({ - title: ['第三方账号绑定', 'font-size:18px;'], - type: 1, - area: ['450px', '300px'], - content: res.body - }); - }); - }; - - /** - * 打开第三方系统界面 - * <p> - * 作者: Wang - * 时间:2022/2/9 17:10 - */ - admin.events.openOtherSystem = function () { - let code = $(this).attr("data-code"); - if (code) { - var isHttp = function (str) { - var RegUrl = new RegExp(); - RegUrl.compile("^http|https+://[A-Za-z0-9-_]+\\.[A-Za-z0-9-_%&\?\/.=]+$"); - if (!RegUrl.test(str)) { - return false; - } - return true; - } - - if (isHttp(code)) { - var accessToken = ''; - layui.use(['sessions', 'common'], function () { - var sessions = layui.sessions; - accessToken = sessions.getToken()['access_token']; - }); - window.open(`${code}?access_token=${accessToken}`); - } - admin.events[code].call(); - } - } - - //监听浏览器窗口变化 - $(window).resize(function () { //当浏览器大小变化时 - resizePageWidth(); - }); - - function resizePageWidth() { - var pagewidth = $('.layui-body').width() - 40; - $(".layui-table-page").css({width: pagewidth + "px"}); - }; - //修改密码 joke add 20210413 - admin.events.updtpswd = function () { - view('data-setting-pwd').render('template/user/password').then(function (res) { - layer.open({ - title: ['修改密码', 'font-size:18px;'], - type: 1, - area: ['450px', '300px'], - content: res.body - }); - }); - }; - //修改基本信息 joke add 20211206 - admin.events.changeInfo = function () { - obj.openWin('baseconfig/user/userChange', '个人信息修改', { - id: sessionStorage.getItem('user_id'), - type: 'userChange' - }, ['保存', '取消'], function f() { - $("#user_form_save_id").trigger("click"); - }, null, ['60%', '45%']); - }; - - // 监听拓扑iframe事件 - window.onmessage = function (messageEvent) { - if (messageEvent.data.type === 'function') { - // 如果是执行方法 - var result = eval(messageEvent.data.evalParam); - } - } - - //全局搜索框回车事件 - $('#allSearchKeywords').keydown(function (e) { - if (e.keyCode === 13) { - $('[layadmin-event="globalSearch"]').trigger("click"); - } - }) - // 日期个格式化 - Date.prototype.format = function (fmt, hoursTime) { - //12小时制和24小时制 - var hours = 12; - if (hoursTime == 24) { - hours = 24; - } - var o = { - "M+": this.getMonth() + 1, //月份 - "d+": this.getDate(), //日 - "h+": this.getHours() % hours == 0 ? hours : this.getHours() % hours, //小时 - "H+": this.getHours(), //小时 - "m+": this.getMinutes(), //分 - "s+": this.getSeconds(), //秒 - "q+": Math.floor((this.getMonth() + 3) / 3), //季度 - "S": this.getMilliseconds() //毫秒 - }; - if (/(y+)/.test(fmt)) - fmt = fmt.replace(RegExp.$1, (this.getFullYear() + "").substr(4 - RegExp.$1.length)); - for (var k in o) - if (new RegExp("(" + k + ")").test(fmt)) - fmt = fmt.replace(RegExp.$1, (RegExp.$1.length == 1) ? (o[k]) : (("00" + o[k]).substr(("" + o[k]).length))); - return fmt; - } - - // 表单验证 - form.verify({ - json: function (d) { - try { - if (d) { - var obj = JSON.parse(d); - } - } catch (e) { - return "请输入格式正确的JSON" - } - } - }); - //对外暴露的接口 - exports('common', obj); -}); diff --git a/hg-monitor-web-nx/src/main/resources/static/src/style/img/logo-small.png b/hg-monitor-web-nx/src/main/resources/static/src/style/img/logo-small.png deleted file mode 100644 index 1e091d7..0000000 Binary files a/hg-monitor-web-nx/src/main/resources/static/src/style/img/logo-small.png and /dev/null differ diff --git a/hg-monitor-web-nx/src/main/resources/static/src/style/img/logo.png b/hg-monitor-web-nx/src/main/resources/static/src/style/img/logo.png deleted file mode 100644 index 22cbe95..0000000 Binary files a/hg-monitor-web-nx/src/main/resources/static/src/style/img/logo.png and /dev/null differ diff --git a/hg-monitor-web-nx/src/main/resources/static/src/views/layout.html b/hg-monitor-web-nx/src/main/resources/static/src/views/layout.html deleted file mode 100644 index ee46b18..0000000 --- a/hg-monitor-web-nx/src/main/resources/static/src/views/layout.html +++ /dev/null @@ -1,1160 +0,0 @@ -<!--默认布局--> -<div class="layui-layout layui-layout-admin"> - <script> - var show = location.search.substr(1).split("&")[0].split("=")[1]; - if (show === '0') { - document.querySelector("body").classList.add("layout-nav-hide"); - } - - var editFlag = location.search.substr(1).split("&")[1]; - if (editFlag) { - var name = editFlag.split("=")[0]; - var val = editFlag.split("=")[1] == "true" ? true : false; - if (name === "editFlag") { - localStorage.setItem("editFlag", val); - } - } - var menuIsopen = 'false'; - layui.use(['jquery'], function () { - var $ = layui.jquery; - // 读取配置文件 - $.ajax({ - url: sessionStorage.getItem('domainName') + '/api-web/sysConf/getByCode', - async: false, - data: { - code: 'view_menu_isopen', - access_token: localStorage.getItem('access_token') - }, - success(response) { - if (response && response.success && response.object) { - menuIsopen = response.object.value; - } - } - }); - }); - - - </script> - <div class="layui-header"> - <!-- 头部区域 --> - <ul class="layui-nav layui-layout-left"> - <li class="layui-nav-item layadmin-flexible" lay-unselect> - <a href="javascript:;" layadmin-event="flexible" title="侧边伸缩"> - <i class="layui-icon layui-icon-shrink-right" id="LAY_app_flexible"></i> - </a> - </li> - <!--判定是否有daping角色,如果有则显示该菜单 joke add 20211203--> - <script lay-url="{{sessionStorage.getItem('domainName')}}/api-user/users/checkHasRole?roleCode=daping" - template - type="text/html"> - {{# if(d.count > 0){ }} - <li class="layui-nav-item" lay-tips="展示大屏"> - <a href="javascript:;" layadmin-event="toBigScreen"><img src="/src/style/img/icon-daping.png" - style="width: 16px;height: 16px"></a> - </li> - {{# } }} - </script> - - <script lay-url="{{sessionStorage.getItem('domainName')}}/api-web/sxview/getbizListByUser?access_token={{localStorage.getItem('access_token')}}" - template - type="text/html"> - - {{# if(d.data.length>0){ }} - <li class="layui-nav-item"> - - <div id="toYTHView_div"> - <dd layadmin-event="toYTHViewScreen" title="一体化监控台"><a><img - src="/src/style/img/icon-yitihuadaping.png" style="width: 16px;height: 16px"></a></dd> - </div> - </li> - - {{# } }} - </script> - - - <li class="layui-nav-item" lay-unselect> - <a href="javascript:;" layadmin-event="refresh" title="刷新"> - <i class="layui-icon layui-icon-refresh-3"></i> - </a> - </li> - - </ul> - <img class="logo" src="/src/style/img/logo.png"> - <ul class="layui-nav layui-layout-right" lay-filter="layadmin-layout-right"> - <!--搜索框检索--> - <!-- <li class="layui-nav-item layui-hide-xs">--> - <!-- <input type="text" class="layui-input" id="allSearchKeywords" style="margin-top: 6px">--> - <!-- </li>--> - <li class="layui-nav-item layui-hide-xs" lay-tips="全局搜索"> - <a href="javascript:;" layadmin-event="globalSearch"><i class="layui-icon layui-icon-search"></i></a> - </li> - <li class="layui-nav-item layui-show-xs-inline-block layui-hide-sm" lay-unselect> - <a href="javascript:;" layadmin-event="more"><i class="layui-icon layui-icon-more-vertical"></i></a> - </li> - <!-- <li class="layui-nav-item layui-hide-xs" lay-unselect> - <a href="javascript:;" layadmin-event="theme"> - <i class="layui-icon layui-icon-theme"></i> - </a> - </li>--> - <li class="layui-nav-item" id="systems-select" lay-unselect> - <script lay-done="layui.element.render('nav', 'layadmin-systems');" - lay-url="{{sessionStorage.getItem('domainName')}}/api-web/manage/ddic/list?ddicCategory=systems" - template - type="text/html"> - <a href="javascript:;" title="第三方系统"> - <span class="layui-icon layui-icon-slider"></span> - </a> - <dl class="layui-nav-child"> - {{# if(d.data && d.data.length == 0){ }} - {{# var sysObj = document.querySelector('#systems-select'); }} - {{# sysObj != null ? sysObj.remove() :''; }} - {{# } }} - {{# layui.each(d.data, function(index, item){ }} - <dd style="text-align: left;" lay-filter="layadmin-systems"> - <a href="javascript:;" layadmin-event="openOtherSystem" data-code="{{item.ddicCode}}" - title="{{item.ddicName}}"> - <i class="iconfont icon-tree {{ item.ddicDesc }}"/> {{ item.ddicName }} - </a> - </dd> - {{# }); }} - - </dl> - </script> - </li> - <li class="layui-nav-item layui-hide-xs" lay-unselect> - <a href="javascript:;" layadmin-event="fullscreen"> - <i class="layui-icon layui-icon-screen-full"></i> - </a> - </li> - <!-- 报表通知统计 --> - <li class="layui-nav-item" lay-unselect> - <script lay-url="{{sessionStorage.getItem('domainName')}}/api-web/home/messageRemind" template - type="text/html"> - <a href="javascript:;" class="notice_msg"> - <i class="layui-icon layui-icon-notice"></i><span>{{d.map==null? 0 : d.map.totalCountByUser}}</span> - </a> - <dl class="layui-nav-child"> - <dd><a href="javascript:;" lay-href="/alarm/activewarning">活动告警:{{d.map==null? 0 : - d.map.totalCountByUser}}</a></dd> - <!-- <hr>--> - <!-- <dd><a href="javascript:;" lay-href="/iframe/insp/monitor/flag=0">未处理报表:{{d.map==null? 0 : d.map.statusCountByUser}}</a></dd>--> - <!-- <hr>--> - <!-- <dd><a href="javascript:;" lay-href="/iframe/insp/workview/read=0/type=1">工作汇报未读:{{d.map==null? 0 : d.map.notReadCountByUser}}</a></dd>--> - <!-- <hr>--> - <!-- <dd><a href="javascript:;" lay-href="/iframe/insp/notice/t=day">今日通知:{{d.map==null? 0 : d.map.countByUserAndToday}}</a></dd>--> - </dl> - </script> - </li> - - <li class="layui-nav-item" lay-unselect> - <script lay-done="layui.element.render('nav', 'layadmin-layout-right');" - lay-url="{{sessionStorage.getItem('domainName')}}/api-user/users/getUserByToken" - template - type="text/html"> - <a href="javascript:;"> - 欢迎 <cite style="color: #1E9FFF" user-info>{{d.object.nickname}}</cite> - </a> - {{# - var roles = ''; - layui.each(d.object.sysRoles, function(idx, role){ - roles += role.code+","; - }); - }} - <li><input type="hidden" id="user_roles" value="{{roles}}"></li> - <dl class="layui-nav-child"> - <dd layadmin-event="updtpswd" style="text-align: center;"><a>修改密码</a></dd> - <dd user-info layadmin-event="changeInfo" style="text-align: center;"><a>修改信息</a></dd> - <dd layadmin-event="logout" style="text-align: center;"><a>退出</a></dd> - </dl> - </script> - </li> - - <!-- <script type="text/html" template lay-url="{{sessionStorage.getItem('domainName')}}/api-user/users/getUserByToken"--> - <!-- lay-done="layui.element.render('nav', 'layadmin-text-name');">--> - <!-- <li class="layui-nav-item layui-hide-xs" lay-unselect lay-filter="layadmin-text-name">--> - <!-- <a href="javascript:;" style="text-align: center;" >欢迎 <b id="user-name" lay-tips="点击退出" layadmin-event="logout" style="color: #3d9fe6">{{d.object.nickname }}</b></a>--> - <!-- </li>--> - <!-- </script>--> - </ul> - </div> - - <!-- 侧边菜单 --> - <!-- 先获取默认菜单拼接 d.str 返回数据格式 modeleid#path--> - <!-- 如果配置默认首页,则给默认首页,否则给工作台(moduleid为work,path为work/index)--> - - <div class="layui-side layui-side-menu"> - <div class="layui-side-scroll"> - <script id="TPL_layout" lay-done="layui.element.render('nav', 'layadmin-system-side-menu');" - lay-url="{{sessionStorage.getItem('domainName')}}/api-user/menus/current?type=1" - template type="text/html"> - - {{# - var dataName = layui.setter.response.dataName; - var fisthref = "/index"; - var defaultMenu = d.str; - var defaultModuleid = ''; - var defaultPath = ''; - if(defaultMenu && defaultMenu != ''){ - defaultModuleid = d.str.split('#')[0]; - defaultPath = d.str.split('#')[1]; - fisthref = defaultPath; - } - }} - - <div class="layui-logo" lay-href="{{fisthref}}"> - <span>{{ layui.setter.name || 'layuiAdmin' }}</span> - </div> - - <ul class="layui-nav layui-nav-tree" lay-shrink="all" id="LAY-system-side-menu" - lay-filter="layadmin-system-side-menu"> - {{# - var show = location.search.substr(1).split("&")[0].split("=")[1]; - if(show == '1') window.history.pushState({} ,'' ,'#'); - if(show != '0') location.hash = "/"; - - var path = layui.router().path - ,pathURL = layui.admin.correctRouter(path.join('/')) - ,dataName = layui.setter.response.dataName; - var fistModuleid = ''; - if(d && d[dataName].length>0){ - fistModuleid = d[dataName][0].moduleid; - } - - layui.each(d[dataName], function(index, item){ - var isselectd = ''; - var isSelectedModuleid = ''; - if(defaultModuleid != '' || item.moduleid != ''){ - if(item.moduleid == defaultModuleid){ - isselectd = "layui-this"; - }else{ - isselectd = ""; - } - }else { - if(!defaultModuleid || defaultModuleid == ''){ - if(index = 0){ - isselectd = "layui-this"; - } - }else{ - isselectd = ""; - } - } - var hasChildren = typeof item.subMenus === 'object' && item.subMenus && item.subMenus.length > 0 - ,classSelected = function(){ - var match = path[0] == item.moduleid || (index == 0 && !path[0]) || (item.path && pathURL == - layui.admin.correctRouter(item.path)) || item.spread; - if(match){ - return hasChildren ? 'layui-nav-itemed' : 'layui-nav-itemed'; - } - return ''; - } - ,url = (item.path && typeof item.path === 'string') ? item.path : item.moduleid; - var closeMenuEvent = ''; - if(item.moduleid == 'biz' || item.moduleid == 'res'){ closeMenuEvent = 'closeMenu'} - }} - - <li data-name="{{ item.moduleid || '' }}" data-jump="{{ item.path || '' }}" - class="layui-nav-item {{ menuIsopen == 'true' ? 'layui-nav-itemed' : '' }} {{isselectd}}"> - - {{# if(item.moduleid == 'cmdbsys' || item.moduleid == 'sxview' || item.moduleid == 'dpsys'){ }} - <a href="javascript:;" layadmin-event="{{item.moduleid}}" lay-tips="{{ item.name - }}" lay-direction="2" lay-href-type="menu"> - <i class="layui-icon {{ item.css }}"></i> - <cite>{{ item.name }}</cite> - </a> - {{# } }} - {{# if(item.moduleid != 'cmdbsys' && item.moduleid != 'sxview' && item.moduleid != 'dpsys'){ }} - <a href="javascript:;" {{ hasChildren ? '' : 'lay-href="'+ url +'"' }} - layadmin-event="{{closeMenuEvent}}" lay-tips="{{ item.name - }}" lay-direction="2"> - <i class="layui-icon {{ item.css }}"></i> - <cite>{{ item.name }}</cite> - </a> - - {{# } }} - - - {{# if(hasChildren){ }} - <dl class="layui-nav-child"> - {{# layui.each(item.subMenus, function(index2, item2){ - if(item2.moduleid && item2.moduleid == defaultModuleid){ - isselectd = "layui-this"; - }else{ - isselectd = ""; - } - var hasChildren2 = typeof item2.subMenus == 'object' && item2.subMenus && - item2.subMenus.length > 0 - ,classSelected2 = function(){ - var match = (path[0] == item.moduleid && path[1] == item2.moduleid) || (item2.path && - pathURL == layui.admin.correctRouter(item2.path)) || item2.spread; - return ''; - } - ,url2 = (item2.path && typeof item2.path === 'string') - ? item2.path - : [item.moduleid, item2.moduleid, ''].join('/'); - }} - <dd data-name="{{ item2.moduleid || '' }}" data-jump="{{ item2.path || '' }}" - class="layui-nav-item {{ classSelected2() }} {{isselectd}}" - > - {{# if(item2.menuDesc.indexOf('第三方') == '-1') {}} - <a href="javascript:;" {{ hasChildren2 ? '' : 'lay-href="'+ url2 +'"' }} - lay-href-type="menu">{{ item2.name }}</a> - {{# }else{ }} - <a href="javascript:;" {{ hasChildren2 ? '' : 'data-url="'+ url2 +'" - layadmin-event="IntegratedEntrance"' }} data-moduleid="{{item2.moduleid}}" - lay-href-type="menu">{{ item2.name }}</a> - {{# } }} - {{# if(hasChildren2){ }} - <dl class="layui-nav-child {{}}"> - {{# layui.each(item2.subMenus, function(index3, item3){ - var match = (path[0] == item.moduleid && path[1] == item2.moduleid && path[2] == - item3.moduleid) - || (item3.path && pathURL == layui.admin.correctRouter(item3.path)) - ,url3 = (item3.path && typeof item3.path === 'string') - ? item3.path - : [item.moduleid, item2.moduleid, item3.moduleid].join('/') - }} - <dd data-name="{{ item3.moduleid || '' }}" data-jump="{{ item3.path || '' }}"> - {{# if(item2.menuDesc.indexOf('第三方') == '-1') {}} - <a href="javascript:;" lay-href="{{ url3 }}" {{ item3.iframe ? - 'lay-iframe="true"' : ''}} lay-href-type="menu">{{ item3.name }}</a> - {{# }else{ }} - <a href="javascript:;" data-url="{{ url3 }}" layadmin-event="IntegratedEntrance" - data-moduleid="{{item3.moduleid}}" lay-href-type="menu">{{ item3.name }}</a> - {{# } }} - </dd> - {{# }); }} - </dl> - {{# } }} - </dd> - {{# }); }} - </dl> - {{# } }} - </li> - {{# }); }} - </ul> - </script> - </div> - <div class="right-bottom-tips"></div> - </div> - - <!-- 页面标签 --> - <script lay-done="layui.element.render('nav', 'layadmin-pagetabs-nav')" - lay-url="{{sessionStorage.getItem('domainName')}}/api-user/menus/findSettingDefaultMenus" - template - type="text/html"> - <div class="layadmin-pagetabs" id="LAY_app_tabs"> - <div class="layui-icon layadmin-tabs-control layui-icon-prev" layadmin-event="leftPage"></div> - <div class="layui-icon layadmin-tabs-control layui-icon-next" layadmin-event="rightPage"></div> - <div class="layui-icon layadmin-tabs-control layui-icon-down"> - - <ul class="layui-nav layadmin-tabs-select" lay-filter="layadmin-pagetabs-nav"> - <li class="layui-nav-item" lay-unselect> - <a href="javascript:;"></a> - <dl class="layui-nav-child layui-anim-fadein"> - <dd layadmin-event="closeThisTabs"><a href="javascript:;">关闭当前标签页</a></dd> - <dd layadmin-event="closeOtherTabs"><a href="javascript:;">关闭其它标签页</a></dd> - <dd layadmin-event="closeAllTabs"><a href="javascript:;">关闭全部标签页</a></dd> - </dl> - </li> - </ul> - </div> - <!-- <script type="text/html" template lay-url="{{sessionStorage.getItem('domainName')}}/api-user/users/getUserByToken">--> - - <!-- <div id="toYTHView_div" style="padding:0 10px;float: left;">--> - <!-- <dd layadmin-event="toYTHViewScreen" title="一体化控制台"><a><img src="/src/style/img/icon-yitihuadaping.png" style="width: 16px;height: 16px"></a></dd>--> - <!-- </div>--> - - <div class="layui-tab" lay-unauto lay-allowClose="true" lay-filter="layadmin-layout-tabs"> - - <ul class="layui-tab-title" id="LAY_app_tabsheader"> - - {{# if(d.data.length >= 1 ){ }} - {{# if(d.data[0].moduleid == 'index'){ }} - <li lay-id="/"><i class="layui-icon layui-icon-home"></i></li> - {{# } }} - {{# if(d.data[0].moduleid != 'index'){ }} - <li lay-id="/{{d.data[0].moduleid}}/" lay-attr="/{{d.data[0].moduleid}}/"><i - class="layui-icon layui-icon-home"></i></li> - {{# } }} - {{# } }} - {{# if(d.data.length == 0){ }} - <li lay-id="/"><i class="layui-icon layui-icon-home"></i></li> - {{# } }} - </ul> - - - </div> - </div> - </script> - - - <!-- 主体内容 --> - <div class="layui-body" id="LAY_app_body"> - <!-- 单页模式接入--> - <div class="layadmin-tabsbody-item layui-show"></div> - </div> - - <!-- 辅助元素,一般用于移动设备下遮罩 --> - <div class="layadmin-body-shade" layadmin-event="shade"></div> -</div> - -<!--告警操作记录--> -<script id="warnViewWinTpl" type="text/html"> - <div class="warn-win"> - <div class="warn-win-item"> - <h5>告警确认【{{d.confirm.length}}】</h5> - {{# layui.each(d.confirm, function(index, item){ }} - <div class="warn-win-item-con"> - <span>{{layui.util.toDateString(item.confirmTime)}}</span> - <ul> - <li>备注:{{item.remark}}</li> - <li>告警确认人:{{item.confirmUserId}}</li> - <li>紧急程度:{{item.levelName}}</li> - </ul> - </div> - {{# }); }} - </div> - <div class="warn-win-item"> - <h5>告警关闭【{{d.close.length}}】</h5> - {{# layui.each(d.close, function(index, item){ }} - {{# var closeTypeStr = '告警'}} - {{# if(item.closeType == 1){ closeTypeStr = '通知' } }} - <div class="warn-win-item-con"> - <span>备注:{{item.remark}}</span> - <ul> - <li>告警关闭时间:{{layui.util.toDateString(item.closeTime)}}</li> - <li>告警关闭人:{{item.closeUserId}}</li> - <li>关闭范围:{{closeTypeStr}}</li> - <li>关闭时长:{{item.closeDuration}}小时</li> - </ul> - </div> - {{# }); }} - </div> - <div class="warn-win-item"> - <h5>告警恢复【{{d.resume.length}}】</h5> - {{# layui.each(d.resume, function(index, item){ }} - {{# var resumeTypeStr = '恢复关闭的活动告警'}} - {{# if(item.resumeType == 1){resumeTypeStr = '恢复历史告警' } }} - <div class="warn-win-item-con"> - <span>备注:{{item.remark}}</span> - <ul> - <li>告警恢复时间:{{layui.util.toDateString(item.resumeTime)}}</li> - <li>告警恢复人:{{item.resumeUserId}}</li> - <li>恢复类型:{{resumeTypeStr}}</li> - </ul> - </div> - {{# }); }} - </div> - </div> -</script> - -<!--详细页左侧面板--> -<script id="detailPageLeftPanel" type="text/html"> - <div class="detail-left-panel"> - <a class="detail-left-panel-btn" href="javascript:void(0)"><i class="layui-icon layui-icon-next"></i></a> - <div class="detail-left-panel-node" style="display: none"> - {{# layui.each(d.map, function(k, v){ }} - <div class="left-panel-restype"> - <div class="layui-title">{{v[0].reTypeName}}</div> - <div class=""> - {{# layui.each(v, function(i, e){ }} - <div class="info-box link" - data-resid="{{e.targetId}}" - data-restype="{{e.resType}}" - data-restypename="{{e.resTypeName}}" - data-ip="{{e.ip}}" - data-admin="{{e.admin}}" - > - {{e.targetName}} - </div> - {{# }); }} - </div> - </div> - {{# }); }} - {{# if(!Object.keys(d.map).length) { }} - <div class="left-panel-restype"> - <div class="desc-box"> - 暂无关联关系 - </div> - </div> - {{# } }} - </div> - </div> -</script> - -<!--下探top30表格展示内容--> -<script id="detailKpiTableTpl" type="text/html"> - <table class="layui-table" lay-even="" lay-skin="row"> - <colgroup> - <col width="100"> - <col width="150"> - <col width="180"> - <col width="180"> - </colgroup> - <thead> - <tr> - <th>序号</th> - <th>进程号</th> - <th>所属用户</th> - {{# if(d.kpi == 'KPI7054BC34'){ }} - <th>使用率</th> - {{# } }} - {{# if(d.kpi != 'KPI7054BC34'){ }} - <th>使用量</th> - {{# } }} - </tr> - </thead> - <tbody> - {{# layui.each(d.data, function(index, item){ }} - <tr> - <td>{{index + 1}}</td> - <td>{{item.pid}}</td> - <td>{{item.username}}</td> - <td>{{item.usedPercent}}</td> - <!--<td>{{item.info}}</td>--> - </tr> - {{# }); }} - </tbody> - </table> -</script> - -<!--corn表达式--> -<script id="cronHtml" type="text/html"> - <div id="cronContent" style="color:#000000"> - <p style="margin: 10px auto; padding: 0px;"> - <strong style="margin: 0px; padding: 0px;"><span - style="margin: 0px; padding: 0px; line-height: 18px; color: rgb(255, 0, 0);">常用表达式例子</span></strong> - </p> - <p style="margin: 10px auto; padding: 0px;"> - <span style="margin: 0px; padding: 0px; line-height: 18px; color: rgb(255, 0, 0);"><span - style="margin: 0px; padding: 0px; line-height: 18px; color: rgb(0, 0, 255);"><span - style="margin: 0px; padding: 0px; line-height: 18px; color: rgb(0, 0, 0);">(1)</span></span><strong - style="margin: 0px; padding: 0px;"><span - style="margin: 0px; padding: 0px; line-height: 18px; color: rgb(0, 0, 255);">0/2 * * * * ?</span></strong> </span> 表示每2秒 - 执行任务 - </p> - <p style="margin: 10px auto; padding: 0px;"> - <span style="margin: 0px; padding: 0px; line-height: 18px; color: rgb(255, 0, 0);"><span - style="margin: 0px; padding: 0px; line-height: 18px; color: rgb(0, 0, 255);"><span - style="margin: 0px; padding: 0px; line-height: 18px; color: rgb(0, 0, 0);">(1)</span></span><strong - style="margin: 0px; padding: 0px;"><span - style="margin: 0px; padding: 0px; line-height: 18px; color: rgb(0, 0, 255);">0 0/2 * * * ? </span></strong> </span> 表示每2分钟 - 执行任务 - </p> - - <p style="margin: 10px auto; padding: 0px;"> - <span style="margin: 0px; padding: 0px; line-height: 18px; color: rgb(255, 0, 0);"><span - style="margin: 0px; padding: 0px; line-height: 18px; color: rgb(0, 0, 255);"><span - style="margin: 0px; padding: 0px; line-height: 18px; color: rgb(0, 0, 0);">(1)</span></span><strong - style="margin: 0px; padding: 0px;"><span - style="margin: 0px; padding: 0px; line-height: 18px; color: rgb(0, 0, 255);">0 0 2 1 * ?</span></strong> </span> 表示在每月的1日的凌晨2点调整任务 - </p> - <p style="margin: 10px auto; padding: 0px;"> - <span style="margin: 0px; padding: 0px; line-height: 18px; color: rgb(0, 0, 255);"><span - style="margin: 0px; padding: 0px; line-height: 18px; color: rgb(0, 0, 0);">(2)</span></span><strong - style="margin: 0px; padding: 0px;"><span - style="margin: 0px; padding: 0px; line-height: 18px; color: rgb(0, 0, 255);">0 15 10 ? * MON-FRI</span> </strong> - 表示周一到周五每天上午10:15执行作业 - </p> - <p style="margin: 10px auto; padding: 0px;"> - (3)<strong style="margin: 0px; padding: 0px;"><span - style="margin: 0px; padding: 0px; line-height: 18px; color: rgb(0, 0, 255);">0 15 10 ? 6L 2002-2006</span></strong> - 表示2002-2006年的每个月的最后一个星期五上午10:15执行作 - </p> - <p style="margin: 10px auto; padding: 0px;"> - (4)<strong style="margin: 0px; padding: 0px;"><span - style="margin: 0px; padding: 0px; line-height: 18px; color: rgb(0, 0, 255);">0 0 10,14,16 * * ?</span></strong> 每天上午10点,下午2点,4点 - </p> - <p style="margin: 10px auto; padding: 0px;"> - (5)<strong style="margin: 0px; padding: 0px;"><span - style="margin: 0px; padding: 0px; line-height: 18px; color: rgb(0, 0, 255);">0 0/30 9-17 * * ?</span></strong> - 朝九晚五工作时间内每半小时 - </p> - <p style="margin: 10px auto; padding: 0px;"> - (6)<strong style="margin: 0px; padding: 0px;"><span - style="margin: 0px; padding: 0px; line-height: 18px; color: rgb(0, 0, 255);">0 0 12 ? * WED</span></strong> - 表示每个星期三中午12点 - </p> - <p style="margin: 10px auto; padding: 0px;"> - (7)<strong style="margin: 0px; padding: 0px;"><span - style="margin: 0px; padding: 0px; line-height: 18px; color: rgb(0, 0, 255);">0 0 12 * * ?</span></strong> 每天中午12点触发 - </p> - <p style="margin: 10px auto; padding: 0px;"> - (8)<strong style="margin: 0px; padding: 0px;"><span - style="margin: 0px; padding: 0px; line-height: 18px; color: rgb(0, 0, 255);">0 15 10 ? * * </span></strong> 每天上午10:15触发 - </p> - <p style="margin: 10px auto; padding: 0px;"> - (9)<strong style="margin: 0px; padding: 0px;"><span - style="margin: 0px; padding: 0px; line-height: 18px; color: rgb(0, 0, 255);">0 15 10 * * ?</span></strong> - 每天上午10:15触发 - </p> - <p style="margin: 10px auto; padding: 0px;"> - (10)<strong style="margin: 0px; padding: 0px;"><span - style="margin: 0px; padding: 0px; line-height: 18px; color: rgb(0, 0, 255);">0 15 10 * * ?</span> </strong> - 每天上午10:15触发 - </p> - <p style="margin: 10px auto; padding: 0px;"> - (11)<strong style="margin: 0px; padding: 0px;"><span - style="margin: 0px; padding: 0px; line-height: 18px; color: rgb(0, 0, 255);">0 15 10 * * ? 2005</span></strong> - 2005年的每天上午10:15触发 - </p> - <p style="margin: 10px auto; padding: 0px;"> - (12)<strong style="margin: 0px; padding: 0px;"><span - style="margin: 0px; padding: 0px; line-height: 18px; color: rgb(0, 0, 255);">0 * 14 * * ?</span></strong> - 在每天下午2点到下午2:59期间的每1分钟触发 - </p> - <p style="margin: 10px auto; padding: 0px;"> - (13)<strong style="margin: 0px; padding: 0px;"><span - style="margin: 0px; padding: 0px; line-height: 18px; color: rgb(0, 0, 255);">0 0/5 14 * * ?</span></strong> - 在每天下午2点到下午2:55期间的每5分钟触发 - </p> - <p style="margin: 10px auto; padding: 0px;"> - (14)<strong style="margin: 0px; padding: 0px;"><span - style="margin: 0px; padding: 0px; line-height: 18px; color: rgb(0, 0, 255);">0 0/5 14,18 * * ?</span></strong> - 在每天下午2点到2:55期间和下午6点到6:55期间的每5分钟触发 - </p> - <p style="margin: 10px auto; padding: 0px;"> - (15)<strong style="margin: 0px; padding: 0px;"><span - style="margin: 0px; padding: 0px; line-height: 18px; color: rgb(0, 0, 255);">0 0-5 14 * * ?</span> </strong> - 在每天下午2点到下午2:05期间的每1分钟触发 - </p> - <p style="margin: 10px auto; padding: 0px;"> - (16)<strong style="margin: 0px; padding: 0px;"><span - style="margin: 0px; padding: 0px; line-height: 18px; color: rgb(0, 0, 255);">0 10,44 14 ? 3 WED</span></strong> - 每年三月的星期三的下午2:10和2:44触发 - </p> - <p style="margin: 10px auto; padding: 0px;"> - (17)<strong style="margin: 0px; padding: 0px;"><span - style="margin: 0px; padding: 0px; line-height: 18px; color: rgb(0, 0, 255);">0 15 10 ? * MON-FRI</span> </strong> - 周一至周五的上午10:15触发 - </p> - <p style="margin: 10px auto; padding: 0px;"> - (18)<strong style="margin: 0px; padding: 0px;"><span - style="margin: 0px; padding: 0px; line-height: 18px; color: rgb(0, 0, 255);">0 15 10 15 * ?</span> </strong> - 每月15日上午10:15触发 - </p> - <p style="margin: 10px auto; padding: 0px;"> - (19)<strong style="margin: 0px; padding: 0px;"><span - style="margin: 0px; padding: 0px; line-height: 18px; color: rgb(0, 0, 255);">0 15 10 L * ?</span> </strong> - 每月最后一日的上午10:15触发 - </p> - <p style="margin: 10px auto; padding: 0px;"> - (20)<strong style="margin: 0px; padding: 0px;"><span - style="margin: 0px; padding: 0px; line-height: 18px; color: rgb(0, 0, 255);">0 15 10 ? * 6L</span> </strong> - 每月的最后一个星期五上午10:15触发 - </p> - <p style="margin: 10px auto; padding: 0px;"> - (21)<strong style="margin: 0px; padding: 0px;"><span - style="margin: 0px; padding: 0px; line-height: 18px; color: rgb(0, 0, 255);">0 15 10 ? * 6L 2002-2005</span></strong> - 2002年至2005年的每月的最后一个星期五上午10:15触发 - </p> - <p style="margin: 10px auto; padding: 0px;"> - (22)<strong style="margin: 0px; padding: 0px;"><span - style="margin: 0px; padding: 0px; line-height: 18px; color: rgb(0, 0, 255);">0 15 10 ? * 6#3</span></strong> - 每月的第三个星期五上午10:15触发 - </p> - <p style="margin: 10px auto; padding: 0px;"> - - </p> - </div> -</script> - -<!--资源名称--> -<script id="resindex_resName" type="text/html"> - <!-- 更改单元格溢出时的tip跑到左上角 LSQ 2022/1/6--> - <div id="res-div"> - {{# var urlLast=window.location.hash; - var w=$(".layui-table thead th[data-field='resName']").data('minwidth'); - if(urlLast=="#/res/index"){ - w=$("[lay-id='resListTable'] table thead th[data-field='resName'").data('minwidth'); - - }else if(urlLast=="#/biz/index"){ - w=$("[lay-id='bizListTable'] table thead th[data-field='resName'").data('minwidth'); - } - var maxW=(w-45)+'px'; - var styleW="float: left;max-width: "+maxW+";overflow: hidden; text-overflow: ellipsis; white-space: - nowrap;display: inline-block;"; - }} - <span lay-tips="{{ d.resName }}" style="{{styleW}}" data-zymc="{{ d.resId }}" data-restype="{{d.resType}}" - data-name="{{d.resName}}" data-childrennum="{{d.childrenNum}}" data-ip="{{ d.ip }}" - data-resTypeName="{{ d.resTypeName }}" data-admin="{{ d.admin }}" data-adminname="{{ d.adminName }}" - data-pingenable="{{d.pingEnable}}" data-manageIp="{{d.manageIp}}" data-collProtocol="{{d.collProtocol}}" - data-provider="{{d.provider}}" data-state="{{d.state}}" class="layui-table-link">{{ d.resName }}</span> - {{# if (d.favId == null) { }} - <a class="layui-icon layui-icon-rate hide" data-favid="{{d.favId}}" data-id="{{d.resId}}" lay-tips="加入收藏夹" - style="font-size: 14px"></a> - {{# } else { }} - <a class="layui-icon layui-icon-rate-solid" data-favid="{{d.favId}}" - style="color: #FEB61E; font-size: 14px; margin-left: 1px;" data-id="{{d.resId}}" lay-tips="移出收藏夹"></a> - {{# } }} - <a class="layui-icon reslist-view-topo hide" data-resid="{{d.resId}}" - style="color: #FEB61E; font-size: 14px; margin-left: 1px;" lay-tips="查看资源拓扑"></a> - <!--{{# if (d.resCategory == 'share' && d.hardwareFlag && d.hardwareFlag.endsWith("Y")) { }} - <a class="layui-icon reslist-assets-details hide" data-resid="{{d.resId}}" data-restype="{{d.resType}}" data-name="{{d.resName}}" data-ip="{{ d.ip }}" style="color: #FEB61E; font-size: 14px; margin-left: 10px;" lay-tips="资产配置信息"><i class="iconfont"></i></a> - {{# } }}--> - </div> -</script> - -<!--最大文件系统使用率--> -<script id="fileUseRateTpl" type="text/html"> - <div class="layui-progress-wrap kpiSubDiv" data-resid={{d.resId}} data-kpiid="KPI449F5365" data-flag="fs" - data-name="{{d.os=='windows'?'磁盘使用情况':'文件系统使用情况'}}" data-showtype="bar" - data-barkpiid="{{d.os=='windows'?'KPI29D42042,KPI1988842F':'KPIA91F44E7,KPI98306224'}}" - data-barxaxis="{{d.os=='windows'?'KPI9D22EAB6':'KPI7AC1664E'}}" - data-warning="0" data-ident="1" data-trend="0"> - <div class="layui-progress layui-progress-big" lay-showpercent="true"> - <div style="position:absolute; z-index:1;width: 100%" id="{{d.resId}}_bizfileName" - lay-tips="{{d.fileSysUseName}}" - data-id="{{d.resId}}_bizfileName" data-message="{{d.fileSysUseName}}"><span style="color: #000000;">{{d.fileSysUseName}}</span> - </div> - <div class="layui-progress-bar layui-bg-green {{ d.fileSysUseRate >= 98 ? 'layui-bg-red' : (d.fileSysUseRate >= 95 ? 'layui-bg-orange' : (d.fileSysUseRate >= 90 ? 'layui-bg-blue':'')) }}" - lay-percent="{{ d.fileSysUseRate }}%" - style="width: {{ d.fileSysUseRate }}%;"> - </div> - </div> - <span class="layui-progress-text">{{ (d.fileSysUseRate == null || d.fileSysUseRate == '' || d.fileSysUseRate === '未知' || d.fileSysUseRate === '无' )? '0%' : d.fileSysUseRate +'%' }}</span> - </div> -</script> -<!--CPU使用率--> -<script id="cpuRateTpl" type="text/html"> - <div class="layui-progress-wrap kpiSubDiv" data-resid={{d.resId}} data-kpiid="KPI7054BC34" data-flag="cpu" - data-name="CPU使用率" - data-warning="0" data-ident="1" data-trend="1"> - <div class="layui-progress layui-progress-big" lay-showpercent="true"> - <div class="layui-progress-bar layui-bg-green {{ d.cpuRate >= 95 ? 'layui-bg-red' : (d.cpuRate >= 90 ? 'layui-bg-orange' : (d.cpuRate >= 80 ? 'layui-bg-blue':''))}}" - lay-percent="{{ d.cpuRate }}%" - style="width: {{ d.cpuRate }}%;"> - </div> - </div> - <span class="layui-progress-text">{{ (d.cpuRate == null || d.cpuRate == '' || d.cpuRate === '未知' || d.cpuRate === '无' )? '0%' : d.cpuRate +'%' }}</span> - </div> -</script> -<!--内存使用率--> -<script id="memoryRateTpl" type="text/html"> - <div class="layui-progress-wrap kpiSubDiv" data-resid={{d.resId}} data-kpiid="KPI31CB8D97" data-flag="mem" - data-name="内存使用率" - data-warning="1" data-ident="1" data-trend="1"> - <div class="layui-progress layui-progress-big" lay-showpercent="true"> - <div class="layui-progress-bar layui-bg-green {{ d.memoryRate >= 95 ? 'layui-bg-red' : (d.memoryRate >= 90 ? 'layui-bg-orange' : (d.memoryRate >= 80 ? 'layui-bg-blue':''))}}" - lay-percent="{{ d.memoryRate }}%" - style="width: {{ d.memoryRate }}%;"> - </div> - </div> - <span class="layui-progress-text">{{ (d.memoryRate == null || d.memoryRate == '' || d.memoryRate === '未知' || d.memoryRate === '无' )? '0%' : d.memoryRate +'%' }}</span> - </div> -</script> -<!--虚拟内存使用率--> -<script id="vmmemoryRateTpl" type="text/html"> - <div class="layui-progress-wrap kpiSubDiv" data-resid={{d.resId}} data-kpiid="KPI20352505" data-flag="vmem" - data-name="虚拟内存使用率" - data-warning="1" data-ident="1" data-trend="1"> - <div class="layui-progress layui-progress-big" lay-showpercent="true"> - <div class="layui-progress-bar layui-bg-green {{ d.vmmemoryUseRate >= 95 ? 'layui-bg-red' : (d.vmmemoryUseRate >= 90 ? 'layui-bg-orange' : (d.vmmemoryUseRate >= 80 ? 'layui-bg-blue':''))}}" - lay-percent="{{ d.vmmemoryUseRate }}%" - style="width: {{ d.vmmemoryUseRate }}%;"> - </div> - </div> - <span class="layui-progress-text">{{ (d.vmmemoryUseRate == null || d.vmmemoryUseRate == '' || d.vmmemoryUseRate === '未知' || d.vmmemoryUseRate === '无' )? '0%' : d.vmmemoryUseRate +'%' }}</span> - </div> -</script> -<!--会话百分比--> -<script id="sessionRateTpl" type="text/html"> - <div class="layui-progress-wrap kpiSubDiv" data-resid={{d.resId}} data-kpiid="KPI18F18278" data-name="活动会话百分比" - data-flag="session" - data-warning="0" data-ident="1" data-trend="0"> - <div class="layui-progress layui-progress-big" lay-showpercent="true"> - <div class="layui-progress-bar layui-bg-green {{ d.sessionRate >= 80 ? 'layui-bg-red' : (d.sessionRate <= 50 ? '' : 'layui-bg-orange') }}" - lay-percent="{{ d.sessionRate }}%" - style="width: {{ d.sessionRate }}%;"> - </div> - </div> - <span class="layui-progress-text">{{ (d.sessionRate == null || d.sessionRate == '' || d.sessionRate === '未知' || d.sessionRate === '无' )? '0%' : d.sessionRate +'%' }}</span> - </div> -</script> -<!--CPU分配率--> -<script id="cpuSetRateTpl" type="text/html"> - <div class="layui-progress-wrap kpiSubDiv" data-resid={{d.resId}} data-kpiid="KPIBFA3F5CD" data-name="CPU分配率" - data-flag="cpu" - data-warning="0" data-ident="1" data-trend="0"> - {{# - d.cpuSetRate = parseFloat(d.cpuSetRate).toFixed(2); - }} - <div class="layui-progress layui-progress-big" lay-showpercent="true"> - <div class="layui-progress-bar layui-bg-green {{ d.cpuSetRate >= 80 ? 'layui-bg-red' : (d.cpuSetRate <= 50 ? '' : 'layui-bg-orange') }}" - lay-percent="{{ d.cpuSetRate }}%" - style="width: {{ d.cpuSetRate }}%;"> - </div> - </div> - <span class="layui-progress-text">{{ (d.cpuSetRate == null || d.cpuSetRate == '' || d.cpuSetRate === '未知' || d.cpuSetRate === '无' )? '0%' : d.cpuSetRate +'%' }}</span> - </div> -</script> -<!--内存分配率--> -<script id="memorySetRateTpl" type="text/html"> - <div class="layui-progress-wrap kpiSubDiv" data-resid={{d.resId}} data-kpiid="KPIC40A80AC" data-name="内存分配率" - data-flag="mem" - data-warning="0" data-ident="1" data-trend="0"> - <div class="layui-progress layui-progress-big" lay-showpercent="true"> - <div class="layui-progress-bar layui-bg-green {{ d.memorySetRate >= 80 ? 'layui-bg-red' : (d.memorySetRate <= 50 ? '' : 'layui-bg-orange') }}" - lay-percent="{{ d.memorySetRate }}%" - style="width: {{ d.memorySetRate }}%;"> - </div> - </div> - <span class="layui-progress-text">{{ (d.memorySetRate == null || d.memorySetRate == '' || d.memorySetRate === '未知' || d.memorySetRate === '无' )? '0%' : d.memorySetRate +'%' }}</span> - </div> -</script> -<!--存储分配率--> -<script id="storageSetRateTpl" type="text/html"> - <div class="layui-progress-wrap kpiSubDiv" data-resid={{d.resId}} data-kpiid="KPI46BAA9BE" data-name="存储分配率" - data-flag="storage" - data-warning="0" data-ident="1" data-trend="0"> - <div class="layui-progress layui-progress-big" lay-showpercent="true"> - <div class="layui-progress-bar layui-bg-green {{ d.storageSetRate >= 80 ? 'layui-bg-red' : (d.storageSetRate <= 50 ? '' : 'layui-bg-orange') }}" - lay-percent="{{ d.storageSetRate }}%" - style="width: {{ d.storageSetRate }}%;"> - </div> - </div> - <span class="layui-progress-text">{{ (d.storageSetRate == null || d.storageSetRate == '' || d.storageSetRate === '未知' || d.storageSetRate === '无' )? '0%' : d.storageSetRate +'%' }}</span> - </div> -</script> -<!--连接状态--> -<script id="linkStateTpl" type="text/html"> - {{# - var linkStateHtml = ''; - var linkStateTips = '无连接信息'; - if(d.linkStateList && d.linkStateList.length >=0 ) { - linkStateTips = ''; - if(d.linkStateList.length == 1) { - var linkState = d.linkStateList[0]; - linkStateTips = `${linkState.protocol}: ${linkState.state}`; - if(linkState.state.indexOf('成功') !== -1) { - linkStateHtml = ' - <button type="button" class="layui-btn layui-btn-radius layui-bg-green layui-btn-xs p-0-15 cant-click">成功</button>'; - } else { - linkStateHtml = ` - <button type="button" - id="${d.resId}_bizdanger" - data-message="${d.message}" - data-state="${d.state}" - data-id="${d.resId}_bizdanger" - class="layui-btn layui-btn-danger layui-bg-red layui-btn-radius layui-btn-xs p-0-15 cant-click"> - 失败 - </button>`; - } - } else { - if(d.linkStateList.length == 0){ - if(d.hostState == 'active' || d.hostState == 'connected' || d.hostState == '正常' ){ - linkStateHtml = ' - <button type="button" class="layui-btn layui-btn-radius layui-bg-green layui-btn-xs p-0-15 cant-click">成功</button>'; - linkStateTips += ` - <li class='li-link-state-tips-red'>自动发现: 连接成功</li>`; - }else{ - linkStateHtml = ` - <button type="button" - id="${d.resId}_bizdanger" - data-message="${d.message}" - data-state="${d.state}" - data-id="${d.resId}_bizdanger" - class="layui-btn layui-btn-danger layui-bg-red layui-btn-radius layui-btn-xs p-0-15 cant-click"> - 失败 - </button>`; - if(d.hostState!=''){ - linkStateTips += ` - <li class='li-link-state-tips-red'>自动发现: 连接失败</li>`; - }else{ - linkStateTips += ` - <li class='li-link-state-tips-red'>ssh: 连接失败</li>`; - } - } - }else{ - linkStateTips += ` - <ul class='ul-link-state-tips'>`; - layui.each(d.linkStateList, function(index, value) { - if(value.state.indexOf('成功') !== -1) { - linkStateTips += ` - <li class='li-link-state-tips-green'>${value.protocol}: ${value.state}</li> - `; - linkStateHtml += '<span class="layui-badge-dot layui-bg-green"></span>'; - } else { - linkStateTips += ` - <li class='li-link-state-tips-red'>${value.protocol}: ${value.state}</li> - `; - linkStateHtml += '<span class="layui-badge-dot layui-bg-red"></span>'; - } - }); - linkStateTips += ' - </ul>'; - } - } - } - }} - <div class="div-link-state-list" lay-tips="{{linkStateTips}}"> - {{linkStateHtml}} - </div> -</script> -<!--详情页面连接状态--> -<script id="linkStateDetailTpl" type="text/html"> - {{# - var linkStateHtml = ''; - var linkStateTips = '无连接信息'; - if(d.linkStateList && d.linkStateList.length) { - linkStateTips = ''; - if(d.linkStateList.length == 1) { - var linkState = d.linkStateList[0]; - linkStateTips = `${linkState.protocol}: ${linkState.state}`; - if(linkState.state.indexOf('成功') !== -1) { - linkStateHtml = `<span class="span-green">${linkState.state}</span>`; - } else { - linkStateHtml = `<span class="span-red">${linkState.state}</span>`; - } - } else { - linkStateTips += ` - <ul class='ul-link-state-tips'>`; - layui.each(d.linkStateList, function(index, value) { - if(value.state.indexOf('成功') !== -1) { - linkStateTips += ` - <li class='li-link-state-tips-green'>${value.protocol}: ${value.state}</li> - `; - linkStateHtml += ' - <div class="layui-badge-dot layui-bg-green"></div> - '; - } else { - linkStateTips += ` - <li class='li-link-state-tips-red'>${value.protocol}: ${value.state}</li> - `; - linkStateHtml += ' - <div class="layui-badge-dot layui-bg-red"></div> - '; - } - }); - linkStateTips += ' - </ul>'; - } - } - }} - <div class="div-link-state-list" lay-tips="{{linkStateTips}}"> - {{linkStateHtml}} - </div> -</script> -<!--电源状态--> -<script id="powerStateTpl" type="text/html"> - {{# if(d.powerState != null && d.powerState == 'poweredOn'){ }} - <button type="button" class="layui-btn layui-btn-radius layui-bg-green layui-btn-xs p-0-15 cant-click"> - 开机 - </button> - {{# }else if(d.powerState != null && d.powerState == 'poweredOff'){ }} - <button type="button" class="layui-btn layui-bg-red layui-btn-radius layui-btn-xs p-0-15 cant-click"> - 关机 - </button> - {{# }else if(d.powerState != null && d.powerState == 'standBy'){ }} - <button type="button" class="layui-btn layui-bg-orange layui-btn-radius layui-btn-xs p-0-15 cant-click"> - 待机 - </button> - {{# }else if(d.powerState != null && d.powerState == 'unknown'){ }} - <button type="button" class="layui-btn layui-bg-gray layui-btn-radius layui-btn-xs p-0-15 cant-click"> - 未知 - </button> - {{# }else{ }} - <button type="button" - class="layui-btn layui-btn-radius layui-bg-gray layui-btn-xs p-0-15 cant-click">{{ - '未监控'}} - </button> - {{# }}} -</script> -<!--健康状态--> -<script id="healthTpl" type="text/html"> - {{# if(d.state != 'new'){ }} - {{# if(d.health === '1'){ }} - <button type="button" - class="layui-btn layui-btn-danger layui-bg-red layui-btn-radius layui-btn-xs p-0-15 cant-click">中 - </button> - {{# } }} - {{# if(d.health === '2'){ }} - <button type="button" - class="layui-btn layui-btn-warm layui-bg-orange layui-btn-radius layui-btn-xs p-0-15 cant-click">良 - </button> - {{# } }} - {{# if(d.health === '3'){ }} - <button type="button" class="layui-btn layui-btn-radius layui-bg-green layui-btn-xs p-0-15 cant-click">优</button> - {{# } }} - {{# } }} -</script> -<!--主机状态--> -<script id="hostStateTpl" type="text/html"> - {{# if(d.hostState != null && d.hostState == 'connected'){ }} - <button type="button" class="layui-btn layui-btn-radius layui-bg-green layui-btn-xs p-0-15 cant-click"> - 已连接 - </button> - {{# }else if(d.hostState != null && d.hostState == 'notResponding'){ }} - <button type="button" class="layui-btn layui-bg-orange layui-btn-radius layui-btn-xs p-0-15 cant-click"> - 未响应 - </button> - {{# }else if(d.hostState != null && d.hostState == 'disconnected'){ }} - <button type="button" class="layui-btn layui-bg-red layui-btn-radius layui-btn-xs p-0-15 cant-click"> - 断开连接 - </button> - {{# }else if(d.hostState != null && d.hostState == '正常'){ }} - <button type="button" class="layui-btn layui-bg-green layui-btn-radius layui-btn-xs p-0-15 cant-click"> - 正常 - </button> - {{# }else{ }} - <button type="button" - class="layui-btn layui-btn-radius layui-bg-gray layui-btn-xs p-0-15 cant-click">{{ - '未监控'}} - </button> - {{# }}} -</script> -<!--ping状态--> -<script id="pingStatusTpl" type="text/html"> - {{# if(d.pingStatus === '正常'){ }} - <button type="button" class="layui-btn layui-btn-danger layui-bg-green layui-btn-radius layui-btn-xs p-0-15">正常 - </button> - {{# }else{ }} - <button type="button" class="layui-btn layui-btn-radius layui-bg-red layui-btn-xs p-0-15">异常</button> - {{# } }} -</script> -<!--资源状态--> -<script id="resStateTpl" type="text/html"> - {{# - switch (d.state) { - case "new" : - }} - <button type="button" - class="layui-btn layui-btn-warm layui-bg-blue layui-btn-radius layui-btn-xs p-0-15 cant-click">未监控 - </button> {{# - break; - case "monitor" : - }} - <button type="button" - class="layui-btn layui-btn-warm layui-bg-green layui-btn-radius layui-btn-xs p-0-15 cant-click">监控中 - </button> {{# - break; - case "stop" : - }} - <button type="button" class="layui-btn layui-btn-warm layui-bg-red layui-btn-radius layui-btn-xs p-0-15 cant-click"> - 暂停监控 - </button> {{# - break; - case "alarmIgnore" : - }} - <button type="button" - class="layui-btn layui-btn-warm layui-bg-orange layui-btn-radius layui-btn-xs p-0-15 cant-click">告警压制中 - </button> {{# - break; - } - }} -</script> -<!--判断树结构有无子节点--> -<script id="bizResNameTpl" type="text/html"> - <div> - {{# if(d.resType == 'MIDDLEWARE_WEBLOGIC' && (d.parentId == null || d.parentId == '') ){ }} - <span data-childrennum="{{d.childrenNum}}">{{d.resName}}</span> - {{# }else{ }} - <span data-zymc="{{d.resId}}" data-restype="{{d.resType}}" data-name="{{d.resName}}" data-ip="{{d.ip}}" - data-childrennum="{{d.childrenNum}}" data-resTypeName="{{d.resTypeName}}" data-admin="{{d.admin}}" - data-pingenable="{{d.pingEnable}}" class="layui-table-link">{{d.resName}}</span> - {{# } }} - {{# if (d.favId == null) { }} - <a class="layui-icon layui-icon-rate hide" data-favid="{{d.favId}}" data-id="{{d.resId}}" lay-tips="加入收藏夹" - style="font-size: 14px"></a> - {{# } else { }} - <a class="layui-icon layui-icon-rate-solid" data-favid="{{d.favId}}" - style="color: #FEB61E; font-size: 14px; margin-left: 10px;" data-id="{{d.resId}}" lay-tips="移出收藏夹"></a> - {{# } }} - <a class="layui-icon reslist-view-topo hide" data-resid="{{d.resId}}" - style="color: #FEB61E; font-size: 14px; margin-left: 10px;" lay-tips="查看资源拓扑"><i - class="iconfont"></i></a> - </div> -</script> -<!--表空间使用率(最大)--> -<script id="tableSpaceUseRateTpl" type="text/html"> - <div class="layui-progress-wrap kpiSubDiv" data-resid={{d.resId}} data-kpiid="KPI64B1610A" data-name="表空间使用率" - data-showtype="bar" data-barkpiid="KPI2EC3F15A,KPI6AD9EBD6" data-barxaxis="KPI4332BAC8" - data-warning="0" data-ident="1" data-trend="0" data-flag="tps"> - <div class="layui-progress layui-progress-big" lay-showpercent="true"> - <div style="position:absolute; z-index:1;width: 100%" id="{{d.resId}}_bizTableSpaceUseRate" - class="showTipsName" data-id="{{d.resId}}_bizTableSpaceUseRate" data-message="{{d.tableSpaceUseName}}"> - <span style="color: #000000;">{{d.tableSpaceUseName}}</span></div> - <div class="layui-progress-bar layui-bg-green {{ d.tableSpaceUseRate >= 80 ? 'layui-bg-red' : (d.tableSpaceUseRate <= 50 ? '' : 'layui-bg-orange') }}" - lay-percent="{{ d.tableSpaceUseRate }}%" - style="width: {{ d.tableSpaceUseRate }}%;"> - </div> - </div> - <span class="layui-progress-text">{{ (d.tableSpaceUseRate == null || d.tableSpaceUseRate == '' || d.tableSpaceUseRate === '未知' || d.tableSpaceUseRate === '无' )? '0%' : d.tableSpaceUseRate +'%' }}</span> - </div> -</script> -<!--ASM磁盘空间使用率--> -<script id="asmDiskUsedRateTpl" type="text/html"> - <div class="layui-progress-wrap kpiSubDiv" data-resid={{d.resId}} data-kpiid="KPI922F8FF7" data-name="ASM磁盘空间使用率" - data-showtype="bar" data-barkpiid="KPI4D710FDA,KPI811E751E" data-barxaxis="KPI50267025" - data-warning="0" data-ident="1" data-trend="0" data-flag="asm"> - <div class="layui-progress layui-progress-big" lay-showpercent="true"> - <div style="position:absolute; z-index:1;width: 100%" id="{{d.resId}}_asmDiskUsedRate" class="showTipsName" - data-id="{{d.resId}}_asmDiskUsedRate" data-message="{{d.asmDiskUsedRate}}"><span - style="color: #000000;">{{d.asmDiskUsedRateName}}</span></div> - <div class="layui-progress-bar layui-bg-green {{ d.asmDiskUsedRate >= 80 ? 'layui-bg-red' : (d.asmDiskUsedRate <= 50 ? '' : 'layui-bg-orange') }}" - lay-percent="{{ d.asmDiskUsedRate }}%" - style="width: {{ d.asmDiskUsedRate }}%;"> - </div> - </div> - <span class="layui-progress-text">{{ (d.asmDiskUsedRate == null || d.asmDiskUsedRate == '' || d.asmDiskUsedRate === '未知' || d.asmDiskUsedRate === '无' )? '0%' : d.asmDiskUsedRate +'%' }}</span> - </div> -</script> -<!--weblogic定制表头--> -<script id="webLogicResNameTpl" type="text/html"> - <div> - {{# if(d.resType == 'MIDDLEWARE_WEBLOGIC' && (d.parentId == null || d.parentId == '') ){ }} - <span data-childrennum="{{d.childrenNum}}">{{d.resName}}</span> - {{# }else{ }} - <span data-zymc="{{ d.resId }}" data-restype="{{d.resType}}" data-name="{{d.resName}}" - data-childrennum="{{d.childrenNum}}" data-ip="{{ d.ip }}" data-resTypeName="{{ d.resTypeName }}" - data-admin="{{ d.admin }}" data-pingenable="{{d.pingEnable}}" - class="layui-table-link">{{ d.resName }}</span> - {{# } }} - {{# if (d.favId == null) { }} - <a class="layui-icon layui-icon-rate hide" data-favid="{{d.favId}}" data-id="{{d.resId}}" lay-tips="加入收藏夹" - style="font-size: 14px"></a> - {{# } else { }} - <a class="layui-icon layui-icon-rate-solid" data-favid="{{d.favId}}" - style="color: #FEB61E; font-size: 14px; margin-left: 10px;" data-id="{{d.resId}}" lay-tips="移出收藏夹"></a> - {{# } }} - <a class="layui-icon reslist-view-topo hide" data-resid="{{d.resId}}" - style="color: #FEB61E; font-size: 14px; margin-left: 10px;" lay-tips="查看资源拓扑"><i - class="iconfont"></i></a> - </div> -</script> -<!--资源池状态--> -<script id="clusterStateTpl" type="text/html"> - {{# if(d.clusterState === '正常'){ }} - <button type="button" class="layui-btn layui-btn-danger layui-bg-green layui-btn-radius layui-btn-xs p-0-15">正常 - </button> - {{# }else{ }} - <button type="button" class="layui-btn layui-btn-radius layui-bg-red layui-btn-xs p-0-15">异常</button> - {{# } }} -</script> -<!--运行状态--> -<script id="runStateTpl" type="text/html"> - {{# if(d.runState === '正常'){ }} - <button type="button" class="layui-btn layui-btn-danger layui-bg-green layui-btn-radius layui-btn-xs p-0-15">正常 - </button> - {{# }else{ if(d.runState === '运行中'){ }} - <button type="button" class="layui-btn layui-btn-danger layui-bg-green layui-btn-radius layui-btn-xs p-0-15">运行中 - </button> - {{# }else{ }} - <button type="button" class="layui-btn layui-btn-radius layui-bg-red layui-btn-xs p-0-15">异常</button> - {{# } }} - {{# } }} -</script> -<script id="weblogicIpTpl" type="text/html"> - <div>{{d.ip?d.ip:""}}</div> -</script> -<script id="weblogicListenAddrTpl" type="text/html"> - <div>{{d.listenAddr?d.listenAddr:""}}</div> -</script> -<!--cup核心数--> -<script id="cpuCoresTpl" type="text/html"> - <div>{{d.cpuCores?(d.cpuCores+"核"):""}}</div> -</script> -<!--cup个数--> -<script id="cpuNumTpl" type="text/html"> - <div>{{d.cpuNum?(d.cpuNum+"个"):""}}</div> -</script> diff --git a/hg-monitor-web-nx/src/main/resources/static/src/views/template/user/accountSet.html b/hg-monitor-web-nx/src/main/resources/static/src/views/template/user/accountSet.html deleted file mode 100644 index 137761f..0000000 --- a/hg-monitor-web-nx/src/main/resources/static/src/views/template/user/accountSet.html +++ /dev/null @@ -1,131 +0,0 @@ -<div class="layadmin-user-login layadmin-user-display-show setting"> - <div class="layadmin-user-login-main"> - <div class="layadmin-user-login-box layadmin-user-login-body layui-form"> - <div class="layui-form-item hide"> - <label class="layadmin-user-login-icon layui-icon layui-icon-password"></label> - <input class="layui-input" lay-verify="required" name="username" placeholder="监控账号" type="text"> - </div> - <div class="layui-form-item"> - <div class=""> - <select class="layui-select layui-input" id="refSystem" lay-filter="refSystem" lay-verify="required" - name="refSystem"></select> - </div> - </div> - <div class="layui-form-item"> - <label class="layadmin-user-login-icon"></label> - <input class="layui-input" lay-verify="required" name="account" placeholder="系统账号" type="text"> - </div> - <div class="layui-form-item"> - <label class="layadmin-user-login-icon"></label> - <input class="layui-input" lay-verify="required" name="password" placeholder="系统密码" type="password"> - </div> - <div class="layui-form-item"> - <div class="setting-btn"> - <button class="layui-btn" id="setCommit" lay-filter="setAccount" lay-submit>保存</button> - <button class="layui-btn layui-btn-primary" id="setClose">取消</button> - </div> - </div> - </div> - </div> -</div> - -<script> - layui.use(['admin', 'form', 'common', 'sessions'], function () { - var $ = layui.$; - var admin = layui.admin; - var form = layui.form; - var common = layui.common; - var sessions = layui.sessions; - var accessToken = sessions.getToken().access_token; - form.render(); - - //填充用户监控账号 - var username = localStorage.getItem("lgn"); - $('input[name="username"]').val(username); - - //第三方系统下拉框切换事件监听 - form.on('select(refSystem)', function (data) { - if (data.value != '') { - getOldAccountAndPwd(username, data.value); - } - }); - - //第三方系统下拉框数据填充 - common.ddicSelect('refSystem', 'systems', function (datalist) { - if (datalist.length == 1) { - $('#refSystem').val(datalist[0].ddicCode); - getOldAccountAndPwd(username, datalist[0].ddicCode); - } - form.render('select'); - }); - - $('#setClose').on('click', function () { - layer.closeAll(); - }); - - //保存点击事件 - form.on('submit(setAccount)', function (obj) { - var userRefSystem = {}; - //修改密码 - userRefSystem.username = $('input[name="username"]').val(); - userRefSystem.refSystem = $('#refSystem').val(); - userRefSystem.account = $('input[name="account"]').val(); - userRefSystem.password = $('input[name="password"]').val(); - saveOrUpdate(userRefSystem); - }); - - //增加或更细第三方账号关联信息 - function saveOrUpdate(data) { - admin.req({ - url: common.domainName + '/api-web/userRefSystem/saveOrUpdate?access_token=' + accessToken, - type: "POST", - dataType: "json", - contentType: 'application/json; charset=utf-8', - data: JSON.stringify(data), - success: function (res) { - if (res) { - var icon = 7; - if (res.success) { - icon = 1; - } - layer.msg(res.msg, {offset: '15px', icon: icon, time: 1000}, function () { - if (res.success) { - layer.closeAll(); - } - }); - } - - } - }) - } - - //根据监控账号及第三方系统,查找关联信息 - function getOldAccountAndPwd(username, refSystem) { - admin.req({ - url: common.domainName + '/api-web/userRefSystem/getByUsernameAndSystem', - type: "GET", - dataType: "json", - data: { - username: username, - refSystem: refSystem - }, - success: function (res) { - if (res && res.success) { - if (res.object) { //如果有绑定 - $('#resSystem').val(res.object.refSystem); - $('input[name="account"]').val(res.object.account); - $('input[name="password"]').val(common.Base64.decode(res.object.password)); - } else { //如果未绑定 - $('input[name="account"]').val(localStorage.getItem("lgn")); - } - } - form.render(); - }, - error: function () { - layer.msg('获取第三方账号异常', {offset: '15px', icon: 1, time: 1000}, function () { - }); - } - }) - } - }); -</script> -- libgit2 0.24.0