Merge branch 'dev-3.8' of https://git.mesalab.cn/nezha/nezha-fronted into dev-3.9
This commit is contained in:
@@ -96,25 +96,25 @@
|
||||
background-color: $--color-primary !important;
|
||||
}
|
||||
.colorffa416 {
|
||||
color: #ffa416;
|
||||
color: #ffa416 !important;
|
||||
}
|
||||
.colorfa901c {
|
||||
color: $--color-primary;
|
||||
color: $--color-primary !important;
|
||||
}
|
||||
.colorec7f66 {
|
||||
color: #ec7f66;
|
||||
color: #ec7f66 !important;
|
||||
}
|
||||
.color535b64 {
|
||||
color: #535b64;
|
||||
color: #535b64 !important;
|
||||
}
|
||||
.color999999 {
|
||||
color: #999999;
|
||||
color: #999999 !important;
|
||||
}
|
||||
.color23bf9a {
|
||||
color: #23bf9a;
|
||||
color: #23bf9a !important;
|
||||
}
|
||||
.color969dea{
|
||||
color: #969dea;
|
||||
color: #969dea !important;
|
||||
}
|
||||
.bgFFECD9{
|
||||
background: $--color-primary !important;
|
||||
|
||||
@@ -64,6 +64,12 @@
|
||||
height: 100%;
|
||||
padding-bottom: 0;
|
||||
}
|
||||
.message-info-dashboard {
|
||||
.nz-chart{
|
||||
height: calc(100% - 55px);
|
||||
padding-bottom: 0;
|
||||
}
|
||||
}
|
||||
.alert-message-info-tab {
|
||||
height: 61.8%;
|
||||
flex: 1;
|
||||
@@ -590,6 +596,11 @@
|
||||
}
|
||||
}
|
||||
}
|
||||
#viewGraphDialog {
|
||||
.el-dialog.is-fullscreen {
|
||||
overflow: hidden;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
@@ -202,4 +202,7 @@
|
||||
display: inline-block;
|
||||
}
|
||||
}
|
||||
.el-form-item__error {
|
||||
padding-top: 0;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -10,7 +10,7 @@ function none (value, index) {
|
||||
if (!numberWithEConvent(scientificNotationValue)) {
|
||||
return scientificNotationValue
|
||||
}
|
||||
if (isNaN(value) || value=== null) {
|
||||
if (isNaN(value) || value === null) {
|
||||
return value
|
||||
}
|
||||
return keepDoubleNumber(value)
|
||||
@@ -55,12 +55,19 @@ function localFormat (value, index) {
|
||||
return result
|
||||
}
|
||||
function bits (value, index, type = 1, dot = 0) {
|
||||
const num = value / 8
|
||||
if (value < 8) {
|
||||
return value + 'b'
|
||||
}
|
||||
if (num < 1024) {
|
||||
return num + 'B'
|
||||
}
|
||||
if (type == 1) {
|
||||
return asciiCompute(value, 1024, ['b', 'B', 'KB', 'MB', 'GB', 'TB', 'PB', 'EB', 'ZB', 'YB'], 0)
|
||||
return asciiCompute(num, 1024, ['B', 'KB', 'MB', 'GB', 'TB', 'PB', 'EB', 'ZB', 'YB'], 0)
|
||||
} else if (type == -1) {
|
||||
return asciiCompute(value, 1024, ['b', 'B', 'KB', 'MB', 'GB', 'TB', 'PB', 'EB', 'ZB', 'YB'], dot)
|
||||
return asciiCompute(num, 1024, ['B', 'KB', 'MB', 'GB', 'TB', 'PB', 'EB', 'ZB', 'YB'], dot)
|
||||
} else {
|
||||
return asciiCompute(value, 1024, ['b', 'B', 'KB', 'MB', 'GB', 'TB', 'PB', 'EB', 'ZB', 'YB'], 2)
|
||||
return asciiCompute(num, 1024, ['B', 'KB', 'MB', 'GB', 'TB', 'PB', 'EB', 'ZB', 'YB'], 2)
|
||||
}
|
||||
}
|
||||
function bytes (value, index, type = 1, dot) {
|
||||
|
||||
@@ -47,7 +47,7 @@
|
||||
<span v-show="chartInfo.param.collapse" class="collapse-content">({{chartData ? chartData.length : 0}} charts)</span>
|
||||
</div>
|
||||
<div class="temp"></div>
|
||||
<div class="chart-header__tools" v-if="chartInfo.type !== 'endpointInfo' && chartInfo.type !== 'assetInfo' && !isExportHtml">
|
||||
<div class="chart-header__tools" v-if="chartInfo.type !== 'endpointInfo' && chartInfo.type !== 'assetInfo' && !isExportHtml && showTool">
|
||||
<span v-if="chartInfo.param.link" :title="$t('overall.link')" class="chart-header__tool" @click="openUrl">
|
||||
<i class="nz-icon nz-icon-more-app tool__icon"></i>
|
||||
</span>
|
||||
@@ -80,13 +80,13 @@
|
||||
<i class="nz-icon nz-icon-edit" style="font-size: 16px;"></i>
|
||||
<span>{{$t('overall.edit')}}</span>
|
||||
</li>
|
||||
<li v-has="'main_delete'" class="el-dropdown-menu__item" @click="removeChart">
|
||||
<i class="nz-icon nz-icon-delete" style="font-size: 16px;"></i>
|
||||
<span>{{$t('overall.delete')}}</span>
|
||||
</li>
|
||||
<li v-has="'main_add'" class="el-dropdown-menu__item" @click="duplicate">
|
||||
<i class="el-icon-copy-document" style="font-size: 16px;"></i>
|
||||
<span>{{$t('overall.duplicate')}}</span>
|
||||
</li>
|
||||
<li v-has="'main_delete'" class="el-dropdown-menu__item" @click="removeChart">
|
||||
<i class="nz-icon nz-icon-delete" style="font-size: 16px;"></i>
|
||||
<span>{{$t('overall.delete')}}</span>
|
||||
</li>
|
||||
<li v-if="from !== this.$CONSTANTS.fromRoute.chartTemp && chartInfo.pid" v-has="'main_edit'" class="el-dropdown-menu__item" @click="sync">
|
||||
<i class="nz-icon nz-icon-sync" style="font-size: 16px;"></i>
|
||||
|
||||
@@ -6,7 +6,7 @@
|
||||
<alert-message-info-detail :info-data="infoData"/>
|
||||
</div>
|
||||
<div v-else-if="item.key === 'dashboard' && activeName === 'dashboard'" class="alert-message-info-dashboard">
|
||||
<dashboard :temp-id="infoData.alertRule.dashboardId" :showImport="false" :showName="false" :url-type="'dashboard'" :time="timeRange" :from="fromRoute.dashboard"></dashboard>
|
||||
<dashboard :temp-id="infoData.alertRule.dashboardId" :showImport="false" :showName="false" :url-type="'dashboard'" :time="timeRange" class="message-info-dashboard" :from="fromRoute.dashboard"></dashboard>
|
||||
</div>
|
||||
<div v-else-if="(activeName === item.key) && infoData[item.key]" class="no-position-alert-label">
|
||||
<!-- <searchItemInfo :obj="findData(item.key)" :severityData="severityData" :fa-loading="false"></searchItemInfo>-->
|
||||
|
||||
223
nezha-fronted/src/components/common/alert/terminalLogInfo.vue
Normal file
223
nezha-fronted/src/components/common/alert/terminalLogInfo.vue
Normal file
@@ -0,0 +1,223 @@
|
||||
<template>
|
||||
<div
|
||||
:class="calcHeight(alertLabelData.position, alertLabelData)"
|
||||
style="position: relative"
|
||||
class="alert-label__border"
|
||||
ref="alertLabels"
|
||||
>
|
||||
<div class="alert-label-header-title">
|
||||
<span style="margin-right: 5px"><i class="nz-icon" :class="statusClass(alertLabelData.status)" style="font-size: 16px"/></span>
|
||||
<div class="alert-label-header-name">
|
||||
{{getRemoteText(alertLabelData)}}
|
||||
</div>
|
||||
</div>
|
||||
<div
|
||||
class="alert-label-info"
|
||||
v-my-loading="loading"
|
||||
>
|
||||
<div class="alert-label-box">
|
||||
<div class="alert-label-title">ID</div>
|
||||
<div class="alert-label-value">
|
||||
{{ alertLabelData && alertLabelData.id ? alertLabelData.id : "--" }}
|
||||
</div>
|
||||
</div>
|
||||
<div class="alert-label-box">
|
||||
<div class="alert-label-title">{{$t('config.terminallog.SessionID')}}</div>
|
||||
<div class="alert-label-value">
|
||||
{{ alertLabelData && alertLabelData.uuid ? alertLabelData.uuid.substring(0, 8).toUpperCase(): "--" }}
|
||||
</div>
|
||||
</div>
|
||||
<div class="alert-label-box">
|
||||
<div class="alert-label-title">{{$t('config.terminallog.sourceUser')}}</div>
|
||||
<div class="alert-label-value">
|
||||
{{ alertLabelData && alertLabelData.username ? alertLabelData.username: "--" }}
|
||||
</div>
|
||||
</div>
|
||||
<div class="alert-label-box">
|
||||
<div class="alert-label-title">{{$t('ping.sourceIp')}}</div>
|
||||
<div class="alert-label-value">
|
||||
{{ alertLabelData && alertLabelData.remoteAddr ? alertLabelData.remoteAddr: "--" }}
|
||||
</div>
|
||||
</div>
|
||||
<div class="alert-label-box">
|
||||
<div class="alert-label-title">{{$t('config.terminallog.loginUser')}}</div>
|
||||
<div class="alert-label-value">
|
||||
{{ alertLabelData && alertLabelData.loginUser ? alertLabelData.loginUser: "--" }}
|
||||
</div>
|
||||
</div>
|
||||
<div class="alert-label-box">
|
||||
<div class="alert-label-title">{{$t('config.terminallog.loginHost')}}</div>
|
||||
<div class="alert-label-value">
|
||||
{{ alertLabelData && alertLabelData.host ? alertLabelData.host: "--" }}
|
||||
</div>
|
||||
</div>
|
||||
<div class="alert-label-box">
|
||||
<div class="alert-label-title">{{$t('config.terminallog.remote')}}</div>
|
||||
<div class="alert-label-value">
|
||||
{{getRemoteText(alertLabelData)}}
|
||||
</div>
|
||||
</div>
|
||||
<div class="alert-label-box">
|
||||
<div class="alert-label-title">{{$t('webshell.protocol')}}</div>
|
||||
<div class="alert-label-value">
|
||||
{{ alertLabelData && alertLabelData.protocol ? alertLabelData.protocol: "--" }}
|
||||
</div>
|
||||
</div>
|
||||
<div class="alert-label-box">
|
||||
<div class="alert-label-title">{{$t('overall.startTime')}}</div>
|
||||
<div class="alert-label-value">
|
||||
{{utcTimeToTimezoneStr(alertLabelData.startTime)}}
|
||||
</div>
|
||||
</div>
|
||||
<div class="alert-label-box">
|
||||
<div class="alert-label-title">{{$t('config.terminallog.duration')}}</div>
|
||||
<div class="alert-label-value">
|
||||
{{getDuration(alertLabelData)}}
|
||||
</div>
|
||||
</div>
|
||||
<div class="alert-label-box">
|
||||
<div class="alert-label-title">{{$t('config.terminallog.authtype')}}</div>
|
||||
<div class="alert-label-value">
|
||||
<span v-if="alertLabelData.authType == 1">{{$t('login.pin')}}</span>
|
||||
<span v-else-if="alertLabelData.authType == 2">{{$t('config.terminallog.key')}}</span>
|
||||
</div>
|
||||
</div>
|
||||
<div class="alert-label-box">
|
||||
<div class="alert-label-title">{{$t('terminal.sftp')}}</div>
|
||||
<div class="alert-label-value">
|
||||
{{ alertLabelData && alertLabelData.sftpNum ? alertLabelData.sftpNum: 0 }}
|
||||
</div>
|
||||
</div>
|
||||
<div class="alert-label-box">
|
||||
<div class="alert-label-title">{{$t('config.terminallog.cmd.cmd')}}</div>
|
||||
<div class="alert-label-value">
|
||||
{{ alertLabelData && alertLabelData.cmdNum ? alertLabelData.cmdNum: 0 }}
|
||||
</div>
|
||||
</div>
|
||||
<div class="alert-label-box">
|
||||
<div class="alert-label-title">{{$t('overall.state')}}</div>
|
||||
<div class="alert-label-value">
|
||||
<span><i class="nz-icon" :class="statusClass(alertLabelData.status)" style="font-size: 14px"/> {{getStatusText(alertLabelData.status)}}</span>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
import trendMixin from './trendMixins'
|
||||
import { calcDurationByStringTimeB } from '@/components/common/js/tools'
|
||||
import { terminalLog as terminalLogStatus } from '@/components/common/js/constants'
|
||||
export default {
|
||||
name: 'alertLabel',
|
||||
mixins: [trendMixin],
|
||||
props: {
|
||||
alertLabelData: {},
|
||||
detailList: {
|
||||
type: Boolean,
|
||||
default: false
|
||||
}
|
||||
},
|
||||
data () {
|
||||
return {
|
||||
loading: true,
|
||||
heightList: 0,
|
||||
boxWidth: 0
|
||||
}
|
||||
},
|
||||
watch: {
|
||||
alertLabelData: {
|
||||
immediate: true,
|
||||
deep: true,
|
||||
handler (n) {
|
||||
this.init()
|
||||
}
|
||||
},
|
||||
LRTriangle: {
|
||||
immediate: true,
|
||||
deep: true,
|
||||
handler (n) {}
|
||||
}
|
||||
},
|
||||
computed: {
|
||||
calcHeight () {
|
||||
const self = this
|
||||
return function (position) {
|
||||
const clientHeight =
|
||||
document.body.clientHeight < document.documentElement.clientHeight
|
||||
? document.body.clientHeight
|
||||
: document.documentElement.clientHeight
|
||||
const elHeight =
|
||||
self.type === 'asset' ? 318 : self.type === 'project' ? 70 : 70
|
||||
if (position.top + elHeight > clientHeight) {
|
||||
return 'alert-labelUp'
|
||||
} else {
|
||||
return 'alert-label'
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
methods: {
|
||||
init () {
|
||||
this.loading = false
|
||||
console.log(this.alertLabelData)
|
||||
},
|
||||
getRemoteText (record) {
|
||||
return `${record.loginUser}@${record.host}:${record.port}`
|
||||
},
|
||||
selectIcon (type) {
|
||||
switch (type) {
|
||||
case 'asset':
|
||||
return 'nz-icon-overview-project'
|
||||
case 'dc':
|
||||
return 'nz-icon-Datacenter2'
|
||||
case 'project':
|
||||
return 'nz-icon-project'
|
||||
case 'module':
|
||||
return 'nz-icon-overview-module'
|
||||
case 'endpoint':
|
||||
return 'nz-icon-overview-endpoint'
|
||||
case 'alertrule':
|
||||
return 'nz-icon-Alertrule'
|
||||
}
|
||||
return 'nz-icon-module5'
|
||||
},
|
||||
statusClass (status) {
|
||||
switch (Number(status)) {
|
||||
case 0:
|
||||
return 'nz-icon-connecting color23bf9a'
|
||||
case 1:
|
||||
return 'nz-icon-failed colorffa416'
|
||||
case 2:
|
||||
return 'nz-icon-over color999999'
|
||||
case 3:
|
||||
return 'nz-icon-stop colorec7f66'
|
||||
case 4:
|
||||
return 'nz-icon-unknown-error color535b64'
|
||||
}
|
||||
},
|
||||
getDuration (record) {
|
||||
if (record.endTime) {
|
||||
return calcDurationByStringTimeB(record.startTime, record.endTime)
|
||||
}
|
||||
return ''
|
||||
},
|
||||
getStatusText (status) {
|
||||
const self = this
|
||||
return self.$t(terminalLogStatus.status[status])
|
||||
}
|
||||
},
|
||||
mounted () {
|
||||
if (this.$refs.alertLabels) {
|
||||
this.heightList = this.$refs.alertLabels.getBoundingClientRect().height
|
||||
this.boxWidth = this.$refs.alertLabels.getBoundingClientRect().width
|
||||
} else {
|
||||
this.heightList = 0
|
||||
this.boxWidth = 0
|
||||
}
|
||||
},
|
||||
beforeDestroy () {}
|
||||
}
|
||||
</script>
|
||||
<style>
|
||||
</style>
|
||||
@@ -6,8 +6,8 @@
|
||||
</div>
|
||||
<div class="top-tool-right" v-if="!customTool">
|
||||
<div v-if="layout.indexOf('searchInput') > -1" class="top-tool-search margin-r-20">
|
||||
<search-input v-if="targetTab!== 'alertMessageTab' && searchInputShow" :searchMsg="searchMsg" :position="'bottom' + targetTab + obj.id" @search="search" :targetTab="targetTab"></search-input>
|
||||
<search-box v-if="targetTab == 'alertMessageTab'" :from="from" :position="'bottom' + targetTab + obj.id" :targetTab="targetTab" :searchMsg="searchMsg" @search="search"></search-box>
|
||||
<search-input v-if="!showSearchBox && searchInputShow " :searchMsg="searchMsg" :position="'bottom' + targetTab + obj.id" @search="search" :targetTab="targetTab"></search-input>
|
||||
<search-box v-if="showSearchBox" :from="from" :position="'bottom' + targetTab + obj.id" :targetTab="targetTab" :searchMsg="searchMsg" @search="search"></search-box>
|
||||
</div>
|
||||
<slot name="top-tool-right"></slot>
|
||||
<button v-if="layout.indexOf('elementSet') > -1" id="account-column-setting" class="top-tool-btn margin-r-20"
|
||||
@@ -132,6 +132,10 @@ export default {
|
||||
},
|
||||
showDeleteTableRel () {
|
||||
return this.$store.getters.getShowDeleteTableRel
|
||||
},
|
||||
showSearchBox () {
|
||||
const flag = (this.targetTab === 'alertMessageTab' || this.targetTab === 'moduleAlertMessage' || this.targetTab === 'endpointAlertMessage' || this.targetTab === 'alertRuleAlertMessage')
|
||||
return flag
|
||||
}
|
||||
},
|
||||
data () {
|
||||
|
||||
@@ -292,7 +292,7 @@ export default {
|
||||
sameLabels: ['instance', 'module', 'project', 'asset', 'endpoint', 'datacenter'],
|
||||
legend: [],
|
||||
searchTime: [],
|
||||
searchTimeHeader: [bus.timeFormate(new Date(bus.computeTimezone(new Date().getTime())).setHours(new Date(bus.computeTimezone(new Date().getTime())).getHours() - 24 * 7)), bus.timeFormate(new Date(bus.computeTimezone(new Date().getTime())))],
|
||||
searchTimeHeader: [bus.timeFormate(new Date(bus.computeTimezone(new Date().getTime())).setHours(new Date(bus.computeTimezone(new Date().getTime())).getHours() - 24 * 7)), bus.timeFormate(new Date(bus.computeTimezone(new Date().getTime()))), '7d'],
|
||||
searchTimeSelect: bus.getTimezontDateRange(),
|
||||
currentMsg: {},
|
||||
chartUnit: 5,
|
||||
@@ -313,7 +313,7 @@ export default {
|
||||
if (this.from === fromRoute.alertSilence) {
|
||||
this.searchMsg = this.searchMsgSilence
|
||||
}
|
||||
this.renderDefaultParams()
|
||||
this.$route.query.bottomSelectArr && this.renderDefaultParams()
|
||||
},
|
||||
methods: {
|
||||
renderDefaultParams () {
|
||||
|
||||
@@ -20,10 +20,12 @@
|
||||
<li
|
||||
v-for="(item,index) in tableData"
|
||||
:key="index"
|
||||
class="detail-row"
|
||||
class="detail-row"
|
||||
:id="'globalSearch' + item.id"
|
||||
:class="item.id === detailViewRightObj.id ? 'selected' : ''"
|
||||
@click="detailViewRightShow(item)"
|
||||
@mouseenter="labelHover(item, 'other', true, false, $event)"
|
||||
@mouseleave="labelHover(item, 'other', false, false,)"
|
||||
>
|
||||
<div class="detail-row-info" :title="getRemoteText(item)">
|
||||
<div class="asset-manageIp" :title="getRemoteText(item)">
|
||||
@@ -41,6 +43,26 @@
|
||||
</div>
|
||||
</li>
|
||||
</ul>
|
||||
<nzTooltip
|
||||
v-if="alertLabelShow"
|
||||
:id="alertLabelId"
|
||||
:that="alertLabelObj"
|
||||
:detailList="true"
|
||||
:type="alertLabelType"
|
||||
@tipHover='tipHover'
|
||||
ref="nzTooltip"
|
||||
class="data-column__"
|
||||
style="padding: 0;border: none !important;"
|
||||
>
|
||||
<div style="word-break: break-all">
|
||||
<div name="default">
|
||||
<terminalLogInfo
|
||||
:alertLabelData="alertLabelObj"
|
||||
:detailList="false"
|
||||
></terminalLogInfo>
|
||||
</div>
|
||||
</div>
|
||||
</nzTooltip>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
@@ -50,11 +72,16 @@ import detailViewLeftMixin from '@/components/common/mixin/detailViewLeftMixin'
|
||||
import alertLabel from '@/components/common/alert/alertLabel'
|
||||
import { terminalLog } from '@/components/common/js/constants'
|
||||
import { calcDurationByStringTimeB } from '@/components/common/js/tools'
|
||||
import alertLabelMixin from '@/components/common/mixin/alertLabelMixin'
|
||||
import terminalLogInfo from '@/components/common/alert/terminalLogInfo'
|
||||
import nzTooltip from '@/components/common/alert/nzTooltip'
|
||||
export default {
|
||||
name: 'terminalLogDetail',
|
||||
mixins: [detailViewLeftMixin],
|
||||
mixins: [detailViewLeftMixin, alertLabelMixin],
|
||||
components: {
|
||||
alertLabel
|
||||
alertLabel,
|
||||
nzTooltip,
|
||||
terminalLogInfo
|
||||
},
|
||||
computed: {
|
||||
getStatusText () {
|
||||
@@ -153,16 +180,6 @@ export default {
|
||||
}
|
||||
},
|
||||
methods: {
|
||||
// label 鼠标划入
|
||||
labelHover (item, type, loading, e) {
|
||||
if (e) {
|
||||
const dom = e.currentTarget
|
||||
const position = dom.getBoundingClientRect()
|
||||
this.$set(item, 'position', position)
|
||||
}
|
||||
this.$set(item, 'loading', loading)
|
||||
// this.$set(this.tableData,index,item);// 调用父组件
|
||||
}
|
||||
}
|
||||
}
|
||||
</script>
|
||||
|
||||
@@ -107,7 +107,7 @@ import deleteButton from '@/components/common/deleteButton'
|
||||
import diagnosisTab from '@/components/common/diagnosisTab'
|
||||
import configSync from '@/components/common/configSync'
|
||||
export default {
|
||||
name: 'nzDataList',
|
||||
name: 'nzDetailView',
|
||||
components: {
|
||||
detailViewRight,
|
||||
panelChart,
|
||||
@@ -181,6 +181,7 @@ export default {
|
||||
return {
|
||||
fromRoute: fromRoute,
|
||||
/* 二级页面相关 */
|
||||
api: '',
|
||||
bottomBox: {
|
||||
object: {},
|
||||
mainResizeShow: true, // dom高度改变时是否展示|隐藏
|
||||
|
||||
@@ -64,6 +64,7 @@ export default {
|
||||
case 'recordRule':
|
||||
case 'response':
|
||||
case 'params':
|
||||
case 'other':
|
||||
return false
|
||||
default: return true
|
||||
}
|
||||
|
||||
@@ -298,7 +298,7 @@
|
||||
</el-option>
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
<el-form-item style="margin-top: -15px;">
|
||||
<el-form-item style="margin-top: -5px;">
|
||||
<el-time-picker
|
||||
style="width: calc(50% - 5px);display: inline-block"
|
||||
:value-format="'HH:mm'"
|
||||
|
||||
@@ -152,8 +152,8 @@
|
||||
</div>
|
||||
<el-dropdown-menu slot="dropdown" class="right-box-select-top right-public-box-dropdown-top">
|
||||
<el-dropdown-item v-if="!scope.row.buildIn" v-has="'alertRule_edit'" :command="['edit', scope.row]"><i class="nz-icon nz-icon-edit"></i><span class="operation-dropdown-text">{{$t('overall.edit')}}</span></el-dropdown-item>
|
||||
<el-dropdown-item v-if="!scope.row.buildIn" v-has="'alertRule_delete'" :command="['delete-rel', scope.row, {forceDeleteShow:false, single:true, deleteTitle:'alert.alertRule',from:'alertRule'}]"><i class="nz-icon nz-icon-delete"></i><span class="operation-dropdown-text">{{$t('overall.delete')}}</span></el-dropdown-item>
|
||||
<el-dropdown-item v-if="!scope.row.buildIn" v-has="'alertRule_edit'" :command="['copy', scope.row]"><i class="nz-icon nz-icon-override"></i><span class="operation-dropdown-text">{{$t('overall.duplicate')}}</span></el-dropdown-item>
|
||||
<el-dropdown-item v-if="!scope.row.buildIn" v-has="'alertRule_delete'" :command="['delete-rel', scope.row, {forceDeleteShow:false, single:true, deleteTitle:'alert.alertRule',from:'alertRule'}]"><i class="nz-icon nz-icon-delete"></i><span class="operation-dropdown-text">{{$t('overall.delete')}}</span></el-dropdown-item>
|
||||
<el-dropdown-item v-has="'alertSilence_add'" :command="['fastSilence', scope.row, 'alertRule']"><i class="nz-icon nz-icon-fast-silence"></i><span class="operation-dropdown-text">{{$t('overall.silenceAlert')}}</span></el-dropdown-item>
|
||||
</el-dropdown-menu>
|
||||
</el-dropdown>
|
||||
|
||||
@@ -65,17 +65,17 @@
|
||||
<div v-else-if="scope.row[item.prop] === 0">Disabled</div>
|
||||
</div>
|
||||
<div v-else-if=" item.prop === 'type' ">
|
||||
<div v-if="scope.row[item.prop].toUpperCase() == 'TEXT'"><i class="nz-icon nz-icon-text"></i> TEXT</div>
|
||||
<div v-else-if="scope.row[item.prop].toUpperCase() == 'MULTITEXT'"><i class="nz-icon nz-icon-multitext"></i> MULTITEXT</div>
|
||||
<div v-else-if="scope.row[item.prop].toUpperCase() == 'TEXTAREA'"><i class="nz-icon nz-icon-textarea"></i> TEXTAREA</div>
|
||||
<div v-else-if="scope.row[item.prop].toUpperCase() == 'RADIO'"><i class="nz-icon nz-icon-radio"></i> RADI0</div>
|
||||
<div v-else-if="scope.row[item.prop].toUpperCase() == 'CHECKBOX'"><i class="nz-icon nz-icon-checkbox"></i> CHECKBOX</div>
|
||||
<div v-else-if="scope.row[item.prop].toUpperCase() == 'SELECT'"><i class="nz-icon nz-icon-xialaxuanze"></i> SELECT</div>
|
||||
<div v-else-if="scope.row[item.prop].toUpperCase() == 'INTEGER'"><i class="nz-icon nz-icon-integer"></i> INTEGER</div>
|
||||
<div v-else-if="scope.row[item.prop].toUpperCase() == 'DOUBLE'"><i class="nz-icon nz-icon-double"></i> DOUBLE</div>
|
||||
<div v-else-if="scope.row[item.prop].toUpperCase() == 'DATETIME'"><i class="nz-icon nz-icon-dingshishijian"></i> DATETIME</div>
|
||||
<div v-else-if="scope.row[item.prop].toUpperCase() == 'EMAIL'"><i class="nz-icon nz-icon-email"></i> EMAIL</div>
|
||||
<div v-else-if="scope.row[item.prop].toUpperCase() == 'PASSWORD'"><i class="nz-icon nz-icon-password"></i> PASSWORD</div>
|
||||
<div v-if="scope.row[item.prop].toUpperCase() == 'TEXT'"><i class="nz-icon nz-icon-text"></i> {{typeData[0].name}}</div>
|
||||
<div v-else-if="scope.row[item.prop].toUpperCase() == 'MULTITEXT'"><i class="nz-icon nz-icon-multitext"></i> {{typeData[1].name}}</div>
|
||||
<div v-else-if="scope.row[item.prop].toUpperCase() == 'TEXTAREA'"><i class="nz-icon nz-icon-textarea"></i> {{typeData[1].name}}</div>
|
||||
<div v-else-if="scope.row[item.prop].toUpperCase() == 'RADIO'"><i class="nz-icon nz-icon-radio"></i> {{typeData[2].name}}</div>
|
||||
<div v-else-if="scope.row[item.prop].toUpperCase() == 'CHECKBOX'"><i class="nz-icon nz-icon-checkbox"></i> {{typeData[3].name}}</div>
|
||||
<div v-else-if="scope.row[item.prop].toUpperCase() == 'SELECT'"><i class="nz-icon nz-icon-xialaxuanze"></i> {{typeData[4].name}}</div>
|
||||
<div v-else-if="scope.row[item.prop].toUpperCase() == 'INTEGER'"><i class="nz-icon nz-icon-integer"></i> {{typeData[5].name}}</div>
|
||||
<div v-else-if="scope.row[item.prop].toUpperCase() == 'DOUBLE'"><i class="nz-icon nz-icon-double"></i> {{typeData[6].name}}</div>
|
||||
<div v-else-if="scope.row[item.prop].toUpperCase() == 'PASSWORD'"><i class="nz-icon nz-icon-password"></i> {{typeData[7].name}}</div>
|
||||
<div v-else-if="scope.row[item.prop].toUpperCase() == 'DATETIME'"><i class="nz-icon nz-icon-dingshishijian"></i> {{typeData[8].name}}</div>
|
||||
<div v-else-if="scope.row[item.prop].toUpperCase() == 'EMAIL'"><i class="nz-icon nz-icon-email"></i> {{typeData[9].name}}</div>
|
||||
</div>
|
||||
<span v-else-if="scope.row[item.prop]">{{scope.row[item.prop] || '-'}}</span>
|
||||
<template v-else>-</template>
|
||||
@@ -177,7 +177,75 @@ export default {
|
||||
minWidth: 200,
|
||||
show: true
|
||||
}
|
||||
]
|
||||
],
|
||||
typeData: [
|
||||
{
|
||||
icon: 'nz-icon nz-icon-text',
|
||||
disabled: true,
|
||||
value: 'TEXT',
|
||||
name: this.$t('config.assetLabel.text')
|
||||
},
|
||||
// {
|
||||
// icon: 'nz-icon nz-icon-multitext',
|
||||
// disabled: true,
|
||||
// value: 'MULTITEXT',
|
||||
// name: this.$t('config.assetLabel.multitext')
|
||||
// },
|
||||
{
|
||||
icon: 'nz-icon nz-icon-textarea',
|
||||
disabled: true,
|
||||
value: 'TEXTAREA',
|
||||
name: this.$t('config.assetLabel.textarea')
|
||||
},
|
||||
{
|
||||
icon: 'nz-icon nz-icon-radio',
|
||||
disabled: true,
|
||||
value: 'RADIO',
|
||||
name: this.$t('config.assetLabel.radio')
|
||||
},
|
||||
{
|
||||
icon: 'nz-icon nz-icon-checkbox',
|
||||
disabled: true,
|
||||
value: 'CHECKBOX',
|
||||
name: this.$t('config.assetLabel.checkbox')
|
||||
},
|
||||
{
|
||||
icon: 'nz-icon nz-icon-xialaxuanze',
|
||||
disabled: true,
|
||||
value: 'SELECT',
|
||||
name: this.$t('config.assetLabel.select')
|
||||
},
|
||||
{
|
||||
icon: 'nz-icon nz-icon-integer',
|
||||
disabled: true,
|
||||
value: 'INTEGER',
|
||||
name: this.$t('config.assetLabel.integer')
|
||||
},
|
||||
{
|
||||
icon: 'nz-icon nz-icon-double',
|
||||
disabled: true,
|
||||
value: 'DOUBLE',
|
||||
name: this.$t('config.assetLabel.double')
|
||||
},
|
||||
{
|
||||
icon: 'nz-icon nz-icon-password',
|
||||
disabled: true,
|
||||
value: 'PASSWORD',
|
||||
name: this.$t('login.pin')
|
||||
},
|
||||
{
|
||||
icon: 'nz-icon nz-icon-dingshishijian',
|
||||
disabled: true,
|
||||
value: 'DATETIME',
|
||||
name: this.$t('config.assetLabel.datetime')
|
||||
},
|
||||
{
|
||||
icon: 'nz-icon nz-icon-email',
|
||||
disabled: true,
|
||||
value: 'EMAIL',
|
||||
name: this.$t('config.assetLabel.email')
|
||||
}
|
||||
],
|
||||
}
|
||||
},
|
||||
methods: {
|
||||
|
||||
@@ -165,9 +165,9 @@
|
||||
</div>
|
||||
<el-dropdown-menu slot="dropdown" class="right-box-select-top right-public-box-dropdown-top">
|
||||
<el-dropdown-item v-if="!assetTab" v-has="'asset_edit'" :command="['edit', scope.row]"><i class="nz-icon nz-icon-edit"></i><span class="operation-dropdown-text">{{$t('overall.edit')}}</span></el-dropdown-item>
|
||||
<el-dropdown-item v-has="'asset_connect'" :command="['cli', scope.row]" :disabled="!scope.row.authUsername"><i class="nz-icon nz-icon-cli"></i><span class="operation-dropdown-text">{{$t('config.system.terminal.terminal')}}</span></el-dropdown-item>
|
||||
<el-dropdown-item v-has="'asset_add'" :command="['duplicate', scope.row, ]"><i class="nz-icon nz-icon-override"></i><span class="operation-dropdown-text">{{$t('overall.duplicate')}}</span></el-dropdown-item>
|
||||
<el-dropdown-item v-has="'asset_delete'" :command="['delete-rel', scope.row, {forceDeleteShow:true, single:true,from:'asset'}]"><i class="nz-icon nz-icon-delete"></i><span class="operation-dropdown-text">{{$t('overall.delete')}}</span></el-dropdown-item>
|
||||
<el-dropdown-item v-has="'asset_connect'" :command="['cli', scope.row]" :disabled="!scope.row.authUsername"><i class="nz-icon nz-icon-cli"></i><span class="operation-dropdown-text">{{$t('config.system.terminal.terminal')}}</span></el-dropdown-item>
|
||||
<el-dropdown-item v-has="'alertSilence_add'" :command="['fastSilence', scope.row, 'asset']"><i class="nz-icon nz-icon-fast-silence"></i><span class="operation-dropdown-text">{{$t('overall.silenceAlert')}}</span></el-dropdown-item>
|
||||
<el-dropdown-item v-has="'asset_add'" :command="['topology', scope.row, 'asset']"><i class="nz-icon nz-icon-Topology"></i><span class="operation-dropdown-text">{{$t('overall.topology')}}</span></el-dropdown-item>
|
||||
<el-dropdown-item v-has="'asset_add'" :command="['diagnosis', scope.row,{from:'asset'}]"><i class="nz-icon nz-icon-diagnosis"></i><span class="operation-dropdown-text">{{$t('overall.diagnosis')}}</span></el-dropdown-item>
|
||||
|
||||
@@ -65,8 +65,8 @@
|
||||
</div>
|
||||
<el-dropdown-menu slot="dropdown" class="right-box-select-top right-public-box-dropdown-top">
|
||||
<el-dropdown-item v-has="'dashboard_temp_edit'" :command="['edit', scope.row]"><i class="nz-icon nz-icon-edit"></i><span class="operation-dropdown-text">{{$t('overall.edit')}}</span></el-dropdown-item>
|
||||
<el-dropdown-item v-has="'dashboard_temp_delete'" :command="['delete-rel', scope.row, {forceDeleteShow:false, single:true,from:'dashboardTemp'}]"><i class="nz-icon nz-icon-delete"></i><span class="operation-dropdown-text">{{$t('overall.delete')}}</span></el-dropdown-item>
|
||||
<el-dropdown-item v-has="'dashboard_temp_add'" :command="['copy', scope.row]"><i class="nz-icon nz-icon-override"></i><span class="operation-dropdown-text">{{$t('overall.duplicate')}}</span></el-dropdown-item>
|
||||
<el-dropdown-item v-has="'dashboard_temp_delete'" :command="['delete-rel', scope.row, {forceDeleteShow:false, single:true,from:'dashboardTemp'}]"><i class="nz-icon nz-icon-delete"></i><span class="operation-dropdown-text">{{$t('overall.delete')}}</span></el-dropdown-item>
|
||||
<el-dropdown-item v-has="'dashboard_temp_edit'" :command="['sync', scope.row]"><i class="nz-icon nz-icon-sync"></i><span class="operation-dropdown-text">{{$t('overall.syncChart')}}</span></el-dropdown-item>
|
||||
</el-dropdown-menu>
|
||||
</el-dropdown>
|
||||
|
||||
@@ -182,8 +182,8 @@
|
||||
<el-dropdown-menu slot="dropdown" class="right-box-select-top right-public-box-dropdown-top">
|
||||
<!-- <el-dropdown-item v-if="!endpointTab" :command="['endpointQuery', scope.row]"><i class="nz-icon nz-icon-search"></i><span class="operation-dropdown-text">{{$t('overall.query')}}</span></el-dropdown-item>-->
|
||||
<el-dropdown-item v-if="!endpointTab" v-has="'monitor_endpoint_edit'" :command="['edit', scope.row]"><i class="nz-icon nz-icon-edit"></i><span class="operation-dropdown-text">{{$t('overall.edit')}}</span></el-dropdown-item>
|
||||
<el-dropdown-item v-has="'monitor_endpoint_delete'" :command="['delete-rel', scope.row, {forceDeleteShow:false, single:true,from:'endpoint'}]"><i class="nz-icon nz-icon-delete"></i><span class="operation-dropdown-text">{{$t('overall.delete')}}</span></el-dropdown-item>
|
||||
<el-dropdown-item v-has="'monitor_endpoint_edit'" :command="['copy', scope.row, 'project']"><i class="nz-icon nz-icon-override"></i><span class="operation-dropdown-text">{{$t('overall.duplicate')}}</span></el-dropdown-item>
|
||||
<el-dropdown-item v-has="'monitor_endpoint_delete'" :command="['delete-rel', scope.row, {forceDeleteShow:false, single:true,from:'endpoint'}]"><i class="nz-icon nz-icon-delete"></i><span class="operation-dropdown-text">{{$t('overall.delete')}}</span></el-dropdown-item>
|
||||
<el-dropdown-item v-has="'alertSilence_add'" :command="['fastSilence', scope.row, 'endpoint']"><i class="nz-icon nz-icon-fast-silence"></i><span class="operation-dropdown-text">{{$t('overall.silenceAlert')}}</span></el-dropdown-item>
|
||||
<el-dropdown-item v-has="'asset_add'" :command="['topology', scope.row, 'endpoint']"><i class="nz-icon nz-icon-Topology"></i><span class="operation-dropdown-text">{{$t('overall.topology')}}</span></el-dropdown-item>
|
||||
<el-dropdown-item v-has="'monitor_endpoint_add'" :command="['diagnosis', scope.row,{from:'endpoint'}]"><i class="nz-icon nz-icon-diagnosis"></i><span class="operation-dropdown-text">{{$t('overall.diagnosis')}}</span></el-dropdown-item>
|
||||
|
||||
@@ -102,8 +102,8 @@
|
||||
</div>
|
||||
<el-dropdown-menu slot="dropdown" class="right-box-select-top right-public-box-dropdown-top">
|
||||
<el-dropdown-item v-has="'monitor_module_edit'" :command="['edit', scope.row]"><i class="nz-icon nz-icon-edit"></i><span class="operation-dropdown-text">{{$t('overall.edit')}}</span></el-dropdown-item>
|
||||
<el-dropdown-item v-has="'monitor_module_delete'" :command="['delete-rel', scope.row, {forceDeleteShow:true, single:true,from:'module'}]"><i class="nz-icon nz-icon-delete"></i><span class="operation-dropdown-text">{{$t('overall.delete')}}</span></el-dropdown-item>
|
||||
<el-dropdown-item v-has="'monitor_module_edit'" :command="['copy', scope.row, 'module']"><i class="nz-icon nz-icon-override"></i><span class="operation-dropdown-text">{{$t('overall.duplicate')}}</span></el-dropdown-item>
|
||||
<el-dropdown-item v-has="'monitor_module_delete'" :command="['delete-rel', scope.row, {forceDeleteShow:true, single:true,from:'module'}]"><i class="nz-icon nz-icon-delete"></i><span class="operation-dropdown-text">{{$t('overall.delete')}}</span></el-dropdown-item>
|
||||
<el-dropdown-item v-has="'main_edit'" :command="['sync', scope.row]"><i class="nz-icon nz-icon-sync"></i><span class="operation-dropdown-text">{{$t('overall.syncChart')}}</span></el-dropdown-item>
|
||||
<el-dropdown-item v-has="'alertSilence_add'" :command="['fastSilence', scope.row, 'module']"><i class="nz-icon nz-icon-fast-silence"></i><span class="operation-dropdown-text">{{$t('overall.silenceAlert')}}</span></el-dropdown-item>
|
||||
<el-dropdown-item v-has="'asset_add'" :command="['topology', scope.row, 'module']"><i class="nz-icon nz-icon-Topology"></i><span class="operation-dropdown-text">{{$t('overall.topology')}}</span></el-dropdown-item>
|
||||
|
||||
@@ -89,8 +89,8 @@
|
||||
</div>
|
||||
<el-dropdown-menu slot="dropdown" class="right-box-select-top right-public-box-dropdown-top">
|
||||
<el-dropdown-item :command="['edit', scope.row]" v-has="'project_edit'"><i class="nz-icon nz-icon-edit"></i><span class="operation-dropdown-text">{{$t('overall.edit')}}</span></el-dropdown-item>
|
||||
<el-dropdown-item :command="['delete-rel', scope.row, {forceDeleteShow:true, single:true,from:'project'}]" v-has="'project_delete'"><i class="nz-icon nz-icon-delete"></i><span class="operation-dropdown-text">{{$t('overall.delete')}}</span></el-dropdown-item>
|
||||
<el-dropdown-item v-has="'project_edit'" :command="['copy', scope.row, 'project']"><i class="nz-icon nz-icon-override"></i><span class="operation-dropdown-text">{{$t('overall.duplicate')}}</span></el-dropdown-item>
|
||||
<el-dropdown-item :command="['delete-rel', scope.row, {forceDeleteShow:true, single:true,from:'project'}]" v-has="'project_delete'"><i class="nz-icon nz-icon-delete"></i><span class="operation-dropdown-text">{{$t('overall.delete')}}</span></el-dropdown-item>
|
||||
<el-dropdown-item v-has="'alertSilence_add'" :command="['fastSilence', scope.row, 'project']"><i class="nz-icon nz-icon-fast-silence"></i><span class="operation-dropdown-text">{{$t('overall.silenceAlert')}}</span></el-dropdown-item>
|
||||
<el-dropdown-item v-has="'asset_add'" :command="['topology', scope.row, 'project']"><i class="nz-icon nz-icon-Topology"></i><span class="operation-dropdown-text">{{$t('overall.topology')}}</span></el-dropdown-item>
|
||||
</el-dropdown-menu>
|
||||
|
||||
@@ -232,7 +232,7 @@ export default {
|
||||
chartDatas: [],
|
||||
sameLabels: ['instance', 'module', 'project', 'asset', 'endpoint', 'datacenter'],
|
||||
legend: [],
|
||||
searchTime: [bus.timeFormate(new Date(bus.computeTimezone(new Date().getTime())).setHours(new Date(bus.computeTimezone(new Date().getTime())).getHours() - 24 * 30)), bus.timeFormate(new Date(bus.computeTimezone(new Date().getTime()))), '7d'],
|
||||
searchTime: [bus.timeFormate(new Date(bus.computeTimezone(new Date().getTime())).setHours(new Date(bus.computeTimezone(new Date().getTime())).getHours() - 24 * 7)), bus.timeFormate(new Date(bus.computeTimezone(new Date().getTime()))), '7d'],
|
||||
searchTimeDialog: [],
|
||||
searchTimeSelect: bus.getTimezontDateRange(),
|
||||
currentMsg: {},
|
||||
|
||||
@@ -285,6 +285,7 @@ export default {
|
||||
this.$post('/sys/license/upload', form).then(res => {
|
||||
if (res.code == 200) {
|
||||
this.licenseGetStatus()
|
||||
this.$message.success(this.$t('overall.result.success'))
|
||||
} else {
|
||||
this.$message.error(res.msg)
|
||||
}
|
||||
|
||||
@@ -3953,6 +3953,8 @@ export default {
|
||||
} else {
|
||||
if (response.error) {
|
||||
this.$refs['promql-' + promqlIndex][0].setError(response.error)
|
||||
} else if(response.msg) {
|
||||
this.$refs['promql-' + promqlIndex][0].setError(response.msg)
|
||||
} else {
|
||||
this.$refs['promql-' + promqlIndex][0].setError(response)
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user