Merge branch 'dev-3.9' of git.mesalab.cn:nezha/nezha-fronted into dev-3.9
This commit is contained in:
@@ -126,6 +126,9 @@
|
||||
//padding: 10px;
|
||||
}
|
||||
}
|
||||
#nz-search-box {
|
||||
max-width: 400px;
|
||||
}
|
||||
}
|
||||
.list-page {
|
||||
.sub-box.bottom-box {
|
||||
|
||||
@@ -56,6 +56,12 @@
|
||||
text-overflow: ellipsis;
|
||||
white-space: nowrap;
|
||||
word-break: break-word;
|
||||
.overflowSpan {
|
||||
.el-popover__reference {
|
||||
display: inline-block;
|
||||
width: 100%;
|
||||
}
|
||||
}
|
||||
}
|
||||
.tree--operation {
|
||||
opacity: 0;
|
||||
@@ -113,14 +119,14 @@
|
||||
}
|
||||
}
|
||||
.dashboard-select-item:hover{
|
||||
color: $--color-primary;
|
||||
color: $--color-primary;
|
||||
background: $--background-color-base;
|
||||
i{
|
||||
color: $--color-primary;
|
||||
}
|
||||
}
|
||||
.dashboard-select-item.active{
|
||||
color: $--color-primary;
|
||||
color: $--color-primary;
|
||||
background: $--background-color-base;
|
||||
i{
|
||||
color: $--color-primary;
|
||||
|
||||
@@ -1,6 +1,48 @@
|
||||
.right-box-editSoftwareType {
|
||||
.el-dropdown-link {
|
||||
border: 1px solid $--border-color-light;
|
||||
border-radius: 2px;
|
||||
}
|
||||
.avatar-uploader .el-upload {
|
||||
border: 1px dashed $--border-color-light;
|
||||
border-radius: 6px;
|
||||
cursor: pointer;
|
||||
position: relative;
|
||||
overflow: hidden;
|
||||
padding: 5px;
|
||||
width: 178px;
|
||||
height: 178px;
|
||||
box-sizing: border-box;
|
||||
}
|
||||
.nz-icon-circle-close {
|
||||
display: none;
|
||||
position: absolute;
|
||||
color: $--color-danger;
|
||||
top: -6px;
|
||||
right: 6px;
|
||||
}
|
||||
.avatar-uploader .el-upload:hover {
|
||||
border-color: $--border-color-light-hover;
|
||||
.nz-icon-circle-close {
|
||||
display: inline-block;
|
||||
}
|
||||
}
|
||||
|
||||
.avatar-uploader-icon {
|
||||
font-size: 28px;
|
||||
width: 178px;
|
||||
height: 178px;
|
||||
line-height: 178px;
|
||||
text-align: center;
|
||||
}
|
||||
.avatar {
|
||||
width: 168px;
|
||||
height: 168px;
|
||||
display: block;
|
||||
}
|
||||
}
|
||||
#softwareTypeTable {
|
||||
.table-image {
|
||||
width: 32px;
|
||||
height: 32px;
|
||||
display: block;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -22,7 +22,7 @@
|
||||
<el-dropdown-menu style="display: none"></el-dropdown-menu>
|
||||
<span class="el-dropdown-link chart-title">
|
||||
<!-- <span class="chart-title-text">{{chartData.name}}</span>-->
|
||||
<span class="chart-title-text" v-on:mouseover="changeActive()" v-on:mouseout="removeActive()">{{chartData.name}}</span>
|
||||
<span class="chart-title-text" :title="chartData.name" v-on:mouseover="changeActive()" v-on:mouseout="removeActive()">{{chartData.name}}</span>
|
||||
<transition name="el-fade-in-linear">
|
||||
<span v-show="chartDataList" class="chart-title-pit" >{{chartData.name}}</span>
|
||||
</transition>
|
||||
|
||||
@@ -16,7 +16,7 @@
|
||||
></chart-legend>
|
||||
|
||||
<div :id="`chart-canvas-tooltip-${chartId}`" class="chart-canvas-tooltip no-style-class" :class="{'chart-dataLink-tooltip':tooltip.dataLinkShow}" :style="{left:tooltip.x+'px',top:tooltip.y+'px'}" v-if="tooltip.show" v-clickoutside="clickout">
|
||||
<div class="chart-canvas-tooltip-title tooltip-title">{{tooltip.title}}</div>
|
||||
<div class="chart-canvas-tooltip-title tooltip-title" :title="tooltip.title">{{tooltip.title}}</div>
|
||||
<div class="chart-canvas-tooltip-content">
|
||||
<div>value</div>
|
||||
<div>
|
||||
@@ -28,7 +28,7 @@
|
||||
</div>
|
||||
<!-- dataLink -->
|
||||
<div class="chart-dataLink-list" v-if="tooltip.dataLinkShow">
|
||||
<div class="chart-dataLink-item" v-for="(item,index) in dataLink" :key="index" @click="linkClick(item)">
|
||||
<div class="chart-dataLink-item" v-for="(item,index) in dataLink" :title='item.title' :key="index" @click="linkClick(item)">
|
||||
<i class="nz-icon nz-icon-link"></i>
|
||||
<span>{{item.title}}</span>
|
||||
</div>
|
||||
@@ -212,7 +212,7 @@ export default {
|
||||
formatterFunc (params, ticket, callback) {
|
||||
const self = this
|
||||
return `
|
||||
<div class="chart-canvas-tooltip-title tooltip-title">${params.data.alias}</div>
|
||||
<div class="chart-canvas-tooltip-title tooltip-title" title="${params.data.alias}">${params.data.alias}</div>
|
||||
<div class="chart-canvas-tooltip-content">
|
||||
<div>value</div>
|
||||
<div>
|
||||
|
||||
@@ -7,7 +7,7 @@
|
||||
<svg :id="`bubble-svg-${chartId}`" width="100%" height="100%"></svg>
|
||||
</div>
|
||||
<div :id="`chart-canvas-tooltip-${chartId}`" class="chart-canvas-tooltip no-style-class" :class="{'chart-dataLink-tooltip':tooltip.dataLinkShow}" :style="{left:tooltip.x+'px',top:tooltip.y+'px'}" v-if="tooltip.show" v-clickoutside="clickout">
|
||||
<div class="chart-canvas-tooltip-title tooltip-title">
|
||||
<div class="chart-canvas-tooltip-title tooltip-title" :title="tooltip.title">
|
||||
{{tooltip.title}}
|
||||
</div>
|
||||
<div class="chart-canvas-tooltip-content">
|
||||
@@ -21,7 +21,7 @@
|
||||
</div>
|
||||
<!-- dataLink -->
|
||||
<div class="chart-dataLink-list" v-if="tooltip.dataLinkShow">
|
||||
<div class="chart-dataLink-item" v-for="(item,index) in dataLink" :key="index" @click="linkClick(item)">
|
||||
<div class="chart-dataLink-item" v-for="(item,index) in dataLink" :title='item.title' :key="index" @click="linkClick(item)">
|
||||
<i class="nz-icon nz-icon-link"></i>
|
||||
<span>{{item.title}}</span>
|
||||
</div>
|
||||
|
||||
@@ -16,7 +16,7 @@
|
||||
></chart-legend>
|
||||
|
||||
<div :id="`chart-canvas-tooltip-${chartId}`" class="chart-canvas-tooltip no-style-class" :class="{'chart-dataLink-tooltip':tooltip.dataLinkShow}" :style="{left:tooltip.x+'px',top:tooltip.y+'px'}" v-if="tooltip.show" v-clickoutside="clickout">
|
||||
<div class="chart-canvas-tooltip-title tooltip-title">
|
||||
<div class="chart-canvas-tooltip-title tooltip-title" :title="tooltip.title">
|
||||
{{tooltip.title}}
|
||||
</div>
|
||||
<div class="chart-canvas-tooltip-content">
|
||||
@@ -34,7 +34,7 @@
|
||||
</div>
|
||||
<!-- dataLink -->
|
||||
<div class="chart-dataLink-list" v-if="tooltip.dataLinkShow">
|
||||
<div class="chart-dataLink-item" v-for="(item,index) in dataLink" :key="index" @click="linkClick(item)">
|
||||
<div class="chart-dataLink-item" v-for="(item,index) in dataLink" :title='item.title' :key="index" @click="linkClick(item)">
|
||||
<i class="nz-icon nz-icon-link"></i>
|
||||
<span>{{item.title}}</span>
|
||||
</div>
|
||||
|
||||
@@ -8,7 +8,7 @@
|
||||
</div>
|
||||
|
||||
<div :id="`chart-canvas-tooltip-${chartId}`" class="chart-canvas-tooltip no-style-class" :class="{'chart-dataLink-tooltip':tooltip.dataLinkShow}" :style="{left:tooltip.x+'px',top:tooltip.y+'px'}" v-if="tooltip.show" v-clickoutside="clickout">
|
||||
<div class="chart-canvas-tooltip-title tooltip-title">
|
||||
<div class="chart-canvas-tooltip-title tooltip-title" :title="tooltip.title">
|
||||
{{tooltip.title}}
|
||||
</div>
|
||||
<div class="chart-canvas-tooltip-content">
|
||||
@@ -22,7 +22,7 @@
|
||||
</div>
|
||||
<!-- dataLink -->
|
||||
<div class="chart-dataLink-list" v-if="tooltip.dataLinkShow">
|
||||
<div class="chart-dataLink-item" v-for="(item,index) in dataLink" :key="index" @click="linkClick(item)">
|
||||
<div class="chart-dataLink-item" v-for="(item,index) in dataLink" :title='item.title' :key="index" @click="linkClick(item)">
|
||||
<i class="nz-icon nz-icon-link"></i>
|
||||
<span>{{item.title}}</span>
|
||||
</div>
|
||||
|
||||
@@ -13,12 +13,13 @@
|
||||
<div
|
||||
v-if="item.height > 48 && chartInfo.param &&( chartInfo.param.text === 'legend' || chartInfo.param.text === 'all' )"
|
||||
class="chart-gauge-legend"
|
||||
:title="item.alias"
|
||||
>
|
||||
{{item.alias}}
|
||||
</div>
|
||||
</div>
|
||||
<div :id="`chart-canvas-tooltip-${chartId}`" class="chart-canvas-tooltip no-style-class" :class="{'chart-dataLink-tooltip':tooltip.dataLinkShow}" :style="{left:tooltip.x+'px',top:tooltip.y+'px'}" v-if="tooltip.show" v-clickoutside="clickout">
|
||||
<div class="chart-canvas-tooltip-title tooltip-title">{{tooltip.title}}</div>
|
||||
<div class="chart-canvas-tooltip-title tooltip-title" :title="tooltip.title">{{tooltip.title}}</div>
|
||||
<div class="chart-canvas-tooltip-content">
|
||||
<div>value</div>
|
||||
<div>
|
||||
@@ -30,7 +31,7 @@
|
||||
</div>
|
||||
<!-- dataLink -->
|
||||
<div class="chart-dataLink-list" v-if="tooltip.dataLinkShow">
|
||||
<div class="chart-dataLink-item" v-for="(item,index) in dataLink" :key="index" @click="linkClick(item)">
|
||||
<div class="chart-dataLink-item" v-for="(item,index) in dataLink" :title='item.title' :key="index" @click="linkClick(item)">
|
||||
<i class="nz-icon nz-icon-link"></i>
|
||||
<span>{{item.title}}</span>
|
||||
</div>
|
||||
@@ -264,7 +265,7 @@ export default {
|
||||
formatterFunc: function (params, ticket, callback) {
|
||||
const self = this
|
||||
return `
|
||||
<div class="chart-canvas-tooltip-title tooltip-title">${params.data.alias}</div>
|
||||
<div class="chart-canvas-tooltip-title tooltip-title" title="${params.data.alias}">${params.data.alias}</div>
|
||||
<div class="chart-canvas-tooltip-content">
|
||||
<div>value</div>
|
||||
<div>
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
<div :ref="`chart-canvas-${chartId}`" style="height: 100%;width: 100%;position: relative;">
|
||||
<div :id="`chart-canvas-${chartId}`" class="chart__canvas chart-svg"></div>
|
||||
<div :id="`chart-canvas-tooltip-${chartId}`" class="chart-canvas-tooltip no-style-class" :class="{'chart-dataLink-tooltip':tooltip.dataLinkShow}" :style="{left:tooltip.x+'px',top:tooltip.y+'px'}" v-if="tooltip.show" v-clickoutside="clickout">
|
||||
<div class="chart-canvas-tooltip-title tooltip-title">
|
||||
<div class="chart-canvas-tooltip-title tooltip-title" :title="tooltip.title">
|
||||
{{tooltip.title}}
|
||||
</div>
|
||||
<div class="chart-canvas-tooltip-content">
|
||||
@@ -16,7 +16,7 @@
|
||||
</div>
|
||||
<!-- dataLink -->
|
||||
<div class="chart-dataLink-list" v-if="tooltip.dataLinkShow">
|
||||
<div class="chart-dataLink-item" v-for="(item,index) in dataLink" :key="index" @click="linkClick(item)">
|
||||
<div class="chart-dataLink-item" v-for="(item,index) in dataLink" :title='item.title' :key="index" @click="linkClick(item)">
|
||||
<i class="nz-icon nz-icon-link"></i>
|
||||
<span>{{item.title}}</span>
|
||||
</div>
|
||||
|
||||
@@ -8,7 +8,7 @@
|
||||
</div>
|
||||
|
||||
<div :id="`chart-canvas-tooltip-${chartId}`" class="chart-canvas-tooltip no-style-class" :class="{'chart-dataLink-tooltip':tooltip.dataLinkShow}" :style="{left:tooltip.x+'px',top:tooltip.y+'px'}" v-if="tooltip.show" v-clickoutside="clickout">
|
||||
<div class="chart-canvas-tooltip-title tooltip-title">
|
||||
<div class="chart-canvas-tooltip-title tooltip-title" :title="tooltip.title">
|
||||
{{tooltip.title}}
|
||||
</div>
|
||||
<div class="chart-canvas-tooltip-content">
|
||||
@@ -26,7 +26,7 @@
|
||||
</div>
|
||||
<!-- dataLink -->
|
||||
<div class="chart-dataLink-list" v-if="tooltip.dataLinkShow">
|
||||
<div class="chart-dataLink-item" v-for="(item,index) in dataLink" :key="index" @click="linkClick(item)">
|
||||
<div class="chart-dataLink-item" v-for="(item,index) in dataLink" :title='item.title' :key="index" @click="linkClick(item)">
|
||||
<i class="nz-icon nz-icon-link"></i>
|
||||
<span>{{item.title}}</span>
|
||||
</div>
|
||||
|
||||
@@ -16,7 +16,7 @@
|
||||
></chart-legend>
|
||||
|
||||
<div :id="`chart-canvas-tooltip-${chartId}`" class="chart-canvas-tooltip no-style-class" :class="{'chart-dataLink-tooltip':tooltip.dataLinkShow}" :style="{left:tooltip.x+'px',top:tooltip.y+'px'}" v-if="tooltip.show" v-clickoutside="clickout">
|
||||
<div class="chart-canvas-tooltip-title tooltip-title">
|
||||
<div class="chart-canvas-tooltip-title tooltip-title" :title="tooltip.title">
|
||||
{{tooltip.title}}
|
||||
</div>
|
||||
<div class="chart-canvas-tooltip-content">
|
||||
@@ -34,7 +34,7 @@
|
||||
</div>
|
||||
<!-- dataLink -->
|
||||
<div class="chart-dataLink-list" v-if="tooltip.dataLinkShow">
|
||||
<div class="chart-dataLink-item" v-for="(item,index) in dataLink" :key="index" @click="linkClick(item)">
|
||||
<div class="chart-dataLink-item" v-for="(item,index) in dataLink" :title='item.title' :key="index" @click="linkClick(item)">
|
||||
<i class="nz-icon nz-icon-link"></i>
|
||||
<span>{{item.title}}</span>
|
||||
</div>
|
||||
@@ -308,10 +308,10 @@ export default {
|
||||
}
|
||||
if (str && valueStr) {
|
||||
return `<div class="foreign-label-wrap">
|
||||
<p class="rose-label" style="color: ${data.mapping && data.mapping.color && data.mapping.color.text};">
|
||||
<p class="rose-label" title="${str}" style="color: ${data.mapping && data.mapping.color && data.mapping.color.text};">
|
||||
<span>${str}</span>
|
||||
</p>
|
||||
<p class="rose-label" style="color: ${data.mapping && data.mapping.color && data.mapping.color.text};">
|
||||
<p class="rose-label" title="${valueStr}" style="color: ${data.mapping && data.mapping.color && data.mapping.color.text};">
|
||||
<i class="${data.mapping && data.mapping.icon}" style="color: ${data.mapping && data.mapping.color && data.mapping.color.icon};font-size:1em;"></i>
|
||||
<span>${valueStr}</span>
|
||||
</p>
|
||||
@@ -319,7 +319,7 @@ export default {
|
||||
`
|
||||
} else if (str) {
|
||||
return `<div class="foreign-label-wrap">
|
||||
<p class="rose-label" style="color: ${data.mapping && data.mapping.color && data.mapping.color.text};">
|
||||
<p class="rose-label" title="${str}" style="color: ${data.mapping && data.mapping.color && data.mapping.color.text};">
|
||||
<i class="${data.mapping && data.mapping.icon}" style="color: ${data.mapping && data.mapping.color && data.mapping.color.icon};font-size:1em;"></i>
|
||||
<span>${str}</span>
|
||||
</p>
|
||||
@@ -327,7 +327,7 @@ export default {
|
||||
`
|
||||
} else if (valueStr) {
|
||||
return `<div class="foreign-label-wrap">
|
||||
<p class="rose-label" style="color: ${data.mapping && data.mapping.color && data.mapping.color.text};">
|
||||
<p class="rose-label" title="${valueStr}" style="color: ${data.mapping && data.mapping.color && data.mapping.color.text};">
|
||||
<i class="${data.mapping && data.mapping.icon}" style="color: ${data.mapping && data.mapping.color && data.mapping.color.icon};font-size:1em;"></i>
|
||||
<span>${valueStr}</span>
|
||||
</p>
|
||||
|
||||
@@ -9,7 +9,7 @@
|
||||
</div>
|
||||
|
||||
<div :id="`chart-canvas-tooltip-${chartId}`" class="chart-canvas-tooltip no-style-class" :class="{'chart-dataLink-tooltip':tooltip.dataLinkShow}" :style="{left:tooltip.x+'px',top:tooltip.y+'px'}" v-if="tooltip.show" v-clickoutside="clickout">
|
||||
<div class="chart-canvas-tooltip-title tooltip-title">
|
||||
<div class="chart-canvas-tooltip-title tooltip-title" :title="tooltip.title">
|
||||
{{tooltip.title}}
|
||||
</div>
|
||||
<div class="chart-canvas-tooltip-content">
|
||||
@@ -23,7 +23,7 @@
|
||||
</div>
|
||||
<!-- dataLink -->
|
||||
<div class="chart-dataLink-list" v-if="tooltip.dataLinkShow">
|
||||
<div class="chart-dataLink-item" v-for="(item,index) in dataLink" :key="index" @click="linkClick(item)">
|
||||
<div class="chart-dataLink-item" v-for="(item,index) in dataLink" :title='item.title' :key="index" @click="linkClick(item)">
|
||||
<i class="nz-icon nz-icon-link"></i>
|
||||
<span>{{item.title}}</span>
|
||||
</div>
|
||||
|
||||
@@ -78,7 +78,7 @@
|
||||
<div class="sparkline" :id="`chart-canvas-${chartId}-${index}`" v-if="chartInfo.param.sparklineMode && chartInfo.param.sparklineMode !== 'none'"></div>
|
||||
</div>
|
||||
<div :id="`chart-canvas-tooltip-${chartId}`" class="chart-canvas-tooltip no-style-class" :class="{'chart-dataLink-tooltip':tooltip.dataLinkShow}" :style="{left:tooltip.x+'px',top:tooltip.y+'px'}" v-if="tooltip.show" v-clickoutside="clickout">
|
||||
<div class="chart-canvas-tooltip-title tooltip-title">{{tooltip.title}}</div>
|
||||
<div class="chart-canvas-tooltip-title tooltip-title" :title="tooltip.title">{{tooltip.title}}</div>
|
||||
<div class="chart-canvas-tooltip-content">
|
||||
<div>value</div>
|
||||
<div>
|
||||
@@ -90,7 +90,7 @@
|
||||
</div>
|
||||
<!-- dataLink -->
|
||||
<div class="chart-dataLink-list" v-if="tooltip.dataLinkShow">
|
||||
<div class="chart-dataLink-item" v-for="(item,index) in dataLink" :key="index" @click="linkClick(item)">
|
||||
<div class="chart-dataLink-item" v-for="(item,index) in dataLink" :title='item.title' :key="index" @click="linkClick(item)">
|
||||
<i class="nz-icon nz-icon-link"></i>
|
||||
<span>{{item.title}}</span>
|
||||
</div>
|
||||
|
||||
@@ -32,6 +32,7 @@
|
||||
clear: 'both',
|
||||
}"
|
||||
class="value-mapping-table"
|
||||
:title="showValueMapping(scope.row,col.title, col)"
|
||||
:class="{'chart-cursor-pointer':dataLink.length}"
|
||||
@click="chartClick($event,col,scope.row)"
|
||||
@mousedown="chartMousedown($event)"
|
||||
@@ -41,7 +42,7 @@
|
||||
</template>
|
||||
{{showValueMapping(scope.row,col.title, col)}}
|
||||
</div>
|
||||
<div v-else class="value-mapping-table" :class="{'chart-cursor-pointer':dataLink.length}" @click="chartClick($event,col,scope.row)" @mousedown="chartMousedown($event)">
|
||||
<div v-else class="value-mapping-table" :title="scope.row.display[col.title + 'display'].display" :class="{'chart-cursor-pointer':dataLink.length}" @click="chartClick($event,col,scope.row)" @mousedown="chartMousedown($event)">
|
||||
{{scope.row.display[col.title + 'display'].display}}
|
||||
</div>
|
||||
</template>
|
||||
@@ -60,14 +61,14 @@
|
||||
</el-pagination>
|
||||
</div>
|
||||
<div :id="`chart-canvas-tooltip-${chartId}`" class="chart-canvas-tooltip no-style-class" :class="{'chart-dataLink-tooltip':tooltip.dataLinkShow}" :style="{left:tooltip.x+'px',top:tooltip.y+'px'}" v-if="tooltip.show" v-clickoutside="clickout">
|
||||
<div class="chart-canvas-tooltip-title tooltip-title">{{tooltip.title}}</div>
|
||||
<div class="chart-canvas-tooltip-title tooltip-title" :title="tooltip.title">{{tooltip.title}}</div>
|
||||
<div class="chart-canvas-tooltip-content">
|
||||
<div>value</div>
|
||||
<div>{{tooltip.value}}</div>
|
||||
</div>
|
||||
<!-- dataLink -->
|
||||
<div class="chart-dataLink-list" v-if="tooltip.dataLinkShow">
|
||||
<div class="chart-dataLink-item" v-for="(item,index) in dataLink" :key="index" @click="linkClick(item)">
|
||||
<div class="chart-dataLink-item" v-for="(item,index) in dataLink" :title='item.title' :key="index" @click="linkClick(item)">
|
||||
<i class="nz-icon nz-icon-link"></i>
|
||||
<span>{{item.title}}</span>
|
||||
</div>
|
||||
|
||||
@@ -25,7 +25,7 @@
|
||||
<div v-html="tooltip.tooltipHtml"></div>
|
||||
<!-- dataLink -->
|
||||
<div class="chart-dataLink-list" v-if="tooltip.dataLinkShow">
|
||||
<div class="chart-dataLink-item" v-for="(item,index) in dataLink" :key="index" @click="linkClick(item)">
|
||||
<div class="chart-dataLink-item" v-for="(item,index) in dataLink" :title='item.title' :key="index" @click="linkClick(item)">
|
||||
<i class="nz-icon nz-icon-link"></i>
|
||||
<span>{{item.title}}</span>
|
||||
</div>
|
||||
@@ -507,7 +507,7 @@ export default {
|
||||
}
|
||||
|
||||
str += `
|
||||
<div class="tooltip__row">
|
||||
<div class="tooltip__row" title="${seriesName}">
|
||||
<div class="row__label">
|
||||
<span class="${className}" style="background-color: ${color};color: ${color}"></span>
|
||||
<span>${seriesName}</span>
|
||||
@@ -545,7 +545,7 @@ export default {
|
||||
|
||||
str += `
|
||||
<div class="tooltip__row">
|
||||
<div class="row__label">
|
||||
<div class="row__label" title="${self.$t('dashboard.dashboard.chartTotal')}">
|
||||
<span class="${className}" style="background-color: ${color};color: ${color}"></span>
|
||||
<span>${self.$t('dashboard.dashboard.chartTotal')}</span>
|
||||
</div>
|
||||
@@ -684,7 +684,7 @@ export default {
|
||||
<div class="nz-chart__tooltip">
|
||||
<div class="tooltip-title" style="margin-bottom: 5px">${bus.timeFormate(tData)}</div>
|
||||
<div class="tooltip__row">
|
||||
<div class="row__label">
|
||||
<div class="row__label" :title=">${seriesName}">
|
||||
<span class="${className}" style="background-color: ${color};color: ${color}"></span>
|
||||
<span>${seriesName}</span>
|
||||
</div>
|
||||
|
||||
@@ -16,7 +16,7 @@
|
||||
></chart-legend>
|
||||
|
||||
<div :id="`chart-canvas-tooltip-${chartId}`" class="chart-canvas-tooltip no-style-class" :class="{'chart-dataLink-tooltip':tooltip.dataLinkShow}" :style="{left:tooltip.x+'px',top:tooltip.y+'px'}" v-if="tooltip.show" v-clickoutside="clickout">
|
||||
<div class="chart-canvas-tooltip-title tooltip-title">{{tooltip.title}}</div>
|
||||
<div class="chart-canvas-tooltip-title tooltip-title" :title="tooltip.title">{{tooltip.title}}</div>
|
||||
<div class="chart-canvas-tooltip-content">
|
||||
<div>value</div>
|
||||
<div>
|
||||
@@ -28,7 +28,7 @@
|
||||
</div>
|
||||
<!-- dataLink -->
|
||||
<div class="chart-dataLink-list" v-if="tooltip.dataLinkShow">
|
||||
<div class="chart-dataLink-item" v-for="(item,index) in dataLink" :key="index" @click="linkClick(item)">
|
||||
<div class="chart-dataLink-item" v-for="(item,index) in dataLink" :title='item.title' :key="index" @click="linkClick(item)">
|
||||
<i class="nz-icon nz-icon-link"></i>
|
||||
<span>{{item.title}}</span>
|
||||
</div>
|
||||
@@ -182,7 +182,7 @@ export default {
|
||||
return ''
|
||||
}
|
||||
return `
|
||||
<div class="chart-canvas-tooltip-title tooltip-title">${params.data.alias}</div>
|
||||
<div class="chart-canvas-tooltip-title tooltip-title" titlr="${params.data.alias}">${params.data.alias}</div>
|
||||
<div class="chart-canvas-tooltip-content">
|
||||
<div>value</div>
|
||||
<div>
|
||||
|
||||
@@ -6,7 +6,7 @@
|
||||
<div class="legend--table-row table-header">
|
||||
<div class="legend--table-cell"></div>
|
||||
<div v-for="statistics in chartInfo.param.legend.values" :key="statistics" class="legend--table-cell">
|
||||
<span v-if="statisticsList.find(key=>key.value === statistics)">{{$t(statisticsList.find(key=>key.value === statistics).label)}}</span>
|
||||
<span v-if="statisticsList.find(key=>key.value === statistics)" :title="$t(statisticsList.find(key=>key.value === statistics).label)">{{$t(statisticsList.find(key=>key.value === statistics).label)}}</span>
|
||||
<span v-else>--</span>
|
||||
</div>
|
||||
</div>
|
||||
@@ -22,7 +22,7 @@
|
||||
<div :title="item.alias ? item.alias : item.name" class="legend--table-cell">
|
||||
<i v-if="isTimeSeries&&series[index].yAxisIndex==0" :style="{color: item.color}" class="yAxis-icon nz-icon nz-icon-zuozongzhou"></i>
|
||||
<span v-else :style="{background: item.color}" class="legend-shape"></span>
|
||||
<span>{{item.alias ? item.alias : item.name}}</span>
|
||||
<span :title="item.alias ? item.alias : item.name">{{item.alias ? item.alias : item.name}}</span>
|
||||
</div>
|
||||
<div v-for="(statistics, index) in item.statistics" :key="index" :class="{'legend-item--inactive': isGrey[index]}" class="legend--table-cell">{{(keepTwoDecimalFull(statistics.value))}}</div>
|
||||
</div>
|
||||
@@ -38,7 +38,7 @@
|
||||
<div :title="item.alias ? item.alias : item.name" class="legend--table-cell">
|
||||
<i v-if="isTimeSeries&&series[index].yAxisIndex==1" :style="{color: item.color}" class="yAxis-icon nz-icon nz-icon-youzongzhou"></i>
|
||||
<span v-else :style="{background: item.color}" class="legend-shape"></span>
|
||||
<span>{{item.alias ? item.alias : item.name}}</span>
|
||||
<span :title="item.alias ? item.alias : item.name">{{item.alias ? item.alias : item.name}}</span>
|
||||
</div>
|
||||
<div v-for="(statistics, index) in item.statistics" :key="index" :class="{'legend-item--inactive': isGrey[index]}" class="legend--table-cell">{{(keepTwoDecimalFull(statistics.value))}}</div>
|
||||
</div>
|
||||
|
||||
@@ -35,7 +35,7 @@
|
||||
<el-dropdown-menu style="display: none"></el-dropdown-menu>
|
||||
<span class="el-dropdown-link chart-title">
|
||||
<!-- <span class="chart-title-text">{{chartData.name}}</span>-->
|
||||
<span class="chart-title-text" v-on:mouseover="changeActive()" v-on:mouseout="removeActive()">{{chartData.name}}</span>
|
||||
<span class="chart-title-text" :title="chartData.name" v-on:mouseover="changeActive()" v-on:mouseout="removeActive()">{{chartData.name}}</span>
|
||||
<transition name="el-fade-in-linear">
|
||||
<span v-show="chartDataList" class="chart-title-pit" >{{chartData.name}}</span>
|
||||
</transition>
|
||||
@@ -68,7 +68,7 @@
|
||||
</div>
|
||||
<div v-if="from==='topology'" :class="{'drag-disabled': this.filter.from == $CONSTANTS.fromRoute.alertRule}" :id="'chartTitle'+chartIndex" class="topology-chart-title">
|
||||
<!-- <span class="topology-chart-title-text">{{chartData.name}}</span>-->
|
||||
<span class="topology-chart-title-text" v-on:mouseover="changeActive()" v-on:mouseout="removeActive()">{{chartData.name}}</span>
|
||||
<span class="topology-chart-title-text" :title="chartData.name" v-on:mouseover="changeActive()" v-on:mouseout="removeActive()">{{chartData.name}}</span>
|
||||
<transition name="el-fade-in-linear">
|
||||
<span v-show="chartDataList" class="chart-title-pit" >{{chartData.name}}</span>
|
||||
</transition>
|
||||
|
||||
@@ -41,7 +41,7 @@
|
||||
</el-popover>
|
||||
</span>
|
||||
<div class="chart-header__title" v-if="!isGroup" :title="nameFormate">{{nameFormate}}</div>
|
||||
<div class="chart-header__title groupTitle" v-else >
|
||||
<div class="chart-header__title groupTitle" :title="chartData ? chartData.length : 0" v-else >
|
||||
<span @click="groupShow" style="cursor:pointer"> <i class="nz-icon" :class="chartInfo.param.collapse ? 'nz-icon-arrow-right': 'nz-icon-arrow-down'"></i></span>
|
||||
{{nameFormate}}
|
||||
<span v-show="chartInfo.param.collapse" class="collapse-content">({{chartData ? chartData.length : 0}} charts)</span>
|
||||
|
||||
@@ -32,7 +32,7 @@
|
||||
</div>
|
||||
<div style="padding: 0 20px;height: calc(100% - 50px)" v-my-loading="fileDirectoryLoading">
|
||||
<div class="directory-content-header">
|
||||
<div class="text-ellipsis file-name">
|
||||
<div class="text-ellipsis file-name" :title="$t('overall.name')">
|
||||
<div class="file-arrow-header" style="cursor: pointer" @click.stop="orderBy('nameOrderType','' , 'name')">
|
||||
<div>
|
||||
{{$t('overall.name')}}
|
||||
@@ -47,7 +47,7 @@
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="text-ellipsis file-size">
|
||||
<div class="text-ellipsis file-size" :title="$t('backup.size')">
|
||||
<div class="file-arrow-header" style="cursor: pointer" @click.stop="orderBy('sizeOrderType','' , 'size')">
|
||||
<div>
|
||||
{{$t('backup.size')}}
|
||||
@@ -62,7 +62,7 @@
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="text-ellipsis file-date">
|
||||
<div class="text-ellipsis file-date" :title="$t('issue.createTime')">
|
||||
<div class="file-arrow-header" style="cursor: pointer" @click.stop="orderBy('dateOrderType','' , 'cts')">
|
||||
<div>
|
||||
{{$t('issue.createTime')}}
|
||||
@@ -77,7 +77,7 @@
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="text-ellipsis file-opt">
|
||||
<div class="text-ellipsis file-opt" :title="$t('overall.option')">
|
||||
{{$t('overall.option')}}
|
||||
</div>
|
||||
</div>
|
||||
@@ -108,10 +108,10 @@
|
||||
</svg>
|
||||
{{item.name}} <span v-if="item.isLink">-> {{item.linkName}}</span>
|
||||
</div>
|
||||
<div class="text-ellipsis file-size">
|
||||
<div class="text-ellipsis file-size" :title="bytes(item.size, 0, 0)">
|
||||
<span v-if="!item.isDir">{{bytes(item.size, 0, 0)}}</span>
|
||||
</div>
|
||||
<div class="text-ellipsis file-date">
|
||||
<div class="text-ellipsis file-date" :title="momentTz(item.cts * 1000)">
|
||||
<span>{{momentTz(item.cts * 1000)}}</span>
|
||||
</div>
|
||||
<div class="text-ellipsis file-opt">
|
||||
|
||||
@@ -10,7 +10,7 @@
|
||||
<div v-for="item in fileList" :key="item.myId" class="file-state-panel-item">
|
||||
<div class="item-icon"> <i class="nz-icon" :class="{'nz-icon-upload':item.type === 'upload','nz-icon-download1':item.type === 'download'}"/></div>
|
||||
<div class="item-progress">
|
||||
<div class="item-progress-top text-ellipsis">{{item.name}}</div>
|
||||
<div class="item-progress-top text-ellipsis" :title="item.name">{{item.name}}</div>
|
||||
<div class="item-progress-middle">
|
||||
<el-progress :show-text="false" :percentage="item.done" :color="customColorMethod(item.done, item)"></el-progress>
|
||||
</div>
|
||||
|
||||
@@ -12,8 +12,8 @@
|
||||
<div class="personal-avatar"><span>{{name ? name.substr(0, 1) : ''}}</span> <i class="nz-icon nz-icon-arrow-down"></i></div>
|
||||
<el-dropdown-menu slot="dropdown" class="right-public-box-select-top right-public-box-dropdown-top" style="width: 142px; line-height: 36px;">
|
||||
<div class="personal-dropdown">
|
||||
<div class="personal-dropdown__username">{{name}}</div>
|
||||
<div class="personal-dropdown__name">@{{name}}</div>
|
||||
<div class="personal-dropdown__username" :title="name">{{name}}</div>
|
||||
<div class="personal-dropdown__name" :title="name">@{{name}}</div>
|
||||
</div>
|
||||
<el-dropdown-item>
|
||||
<div id="header-to-personalization" @click="showPersonalization"><i class="nz-icon nz-icon-personalization"></i>{{$t('terminal.personal')}}</div>
|
||||
@@ -43,7 +43,7 @@
|
||||
<ul class="terminal-history-list">
|
||||
<li class="terminal-history-item" v-for="(item,index) in historyArr" :key="index" @click="historyClick(item)">
|
||||
<span class="terminal-history-num">{{index+1}}</span>
|
||||
<span class="terminal-history-text">{{item}}</span>
|
||||
<span class="terminal-history-text" :title="item">{{item}}</span>
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
|
||||
@@ -51,7 +51,7 @@
|
||||
<div class="alert-label-box name-labe">
|
||||
<div class="document-copy-block">
|
||||
<div class="alert-label-title">{{$t('overall.name')}}</div>
|
||||
<div class="alert-label-value document-copy-text">{{alertLabelData && alertLabelData.name ? alertLabelData.name : '--'}}</div>
|
||||
<div class="alert-label-value document-copy-text" :title="alertLabelData && alertLabelData.name ? alertLabelData.name : '--'">{{alertLabelData && alertLabelData.name ? alertLabelData.name : '--'}}</div>
|
||||
<i v-if="alertLabelData && alertLabelData.name" class="nz-icon nz-icon-override" style="visibility: hidden" @click.stop="onCopy(alertLabelData.name)" :title="$t('overall.copyText')"></i>
|
||||
</div>
|
||||
</div>
|
||||
@@ -63,7 +63,9 @@
|
||||
</div> -->
|
||||
<div class="alert-label-box document-copy-block">
|
||||
<div class="alert-label-title">{{ $t("asset.manageIp") }}</div>
|
||||
<div class="alert-label-value document-copy-text">
|
||||
<div class="alert-label-value document-copy-text" :title="alertLabelData && alertLabelData.manageIp
|
||||
? alertLabelData.manageIp
|
||||
: '--'">
|
||||
{{
|
||||
alertLabelData && alertLabelData.manageIp
|
||||
? alertLabelData.manageIp
|
||||
@@ -215,7 +217,7 @@
|
||||
<div class="alert-label-box name-labe">
|
||||
<div class="document-copy-block">
|
||||
<div class="alert-label-title">{{$t('overall.name')}}</div>
|
||||
<div class="alert-label-value document-copy-text">
|
||||
<div class="alert-label-value document-copy-text" :title="alertLabelData && alertLabelData.name ? alertLabelData.name : '--'">
|
||||
{{ alertLabelData && alertLabelData.name ? alertLabelData.name : "--" }}
|
||||
</div>
|
||||
<i v-if="alertLabelData && alertLabelData.name" class="nz-icon nz-icon-override" style="visibility: hidden" @click.stop="onCopy(alertLabelData.name)" :title="$t('overall.copyText')"></i>
|
||||
@@ -311,7 +313,7 @@
|
||||
<div class="alert-label-box name-labe">
|
||||
<div class="document-copy-block">
|
||||
<div class="alert-label-title">{{$t('overall.name')}}</div>
|
||||
<div class="alert-label-value document-copy-text">
|
||||
<div class="alert-label-value document-copy-text" :title="alertLabelData && alertLabelData.name ? alertLabelData.name : '--'">
|
||||
{{ alertLabelData && alertLabelData.name ? alertLabelData.name : "--" }}
|
||||
</div>
|
||||
<i v-if="alertLabelData && alertLabelData.name" class="nz-icon nz-icon-override" style="visibility: hidden" @click.stop="onCopy(alertLabelData.name)" :title="$t('overall.copyText')"></i>
|
||||
@@ -408,7 +410,7 @@
|
||||
<div class="alert-label-box name-labe">
|
||||
<div class="document-copy-block">
|
||||
<div class="alert-label-title">{{$t('overall.name')}}</div>
|
||||
<div class="alert-label-value document-copy-text">
|
||||
<div class="alert-label-value document-copy-text" :title=" alertLabelData && alertLabelData.name ? alertLabelData.name : '--'">
|
||||
{{ alertLabelData && alertLabelData.name ? alertLabelData.name : "--" }}
|
||||
</div>
|
||||
<i v-if="alertLabelData && alertLabelData.name" class="nz-icon nz-icon-override" style="visibility: hidden" @click.stop="onCopy(alertLabelData.name)" :title="$t('overall.copyText')"></i>
|
||||
@@ -538,7 +540,7 @@
|
||||
<div class="alert-label-box name-labe">
|
||||
<div class="document-copy-block">
|
||||
<div class="alert-label-title">{{$t('overall.name')}}</div>
|
||||
<div class="alert-label-value document-copy-text">
|
||||
<div class="alert-label-value document-copy-text" :title="alertLabelData && alertLabelData.name ? alertLabelData.name : '--'">
|
||||
{{ alertLabelData && alertLabelData.name ? alertLabelData.name : "--" }}
|
||||
</div>
|
||||
<i v-if="alertLabelData && alertLabelData.name" class="nz-icon nz-icon-override" style="visibility: hidden" @click.stop="onCopy(alertLabelData.name)" :title="$t('overall.copyText')"></i>
|
||||
|
||||
@@ -42,7 +42,9 @@
|
||||
</div> -->
|
||||
<div class="alert-label-box document-copy-block">
|
||||
<div class="alert-label-title">{{ $t("asset.manageIp") }}</div>
|
||||
<div class="alert-label-value document-copy-text">
|
||||
<div class="alert-label-value document-copy-text" :title="alertLabelData && alertLabelData.manageIp
|
||||
? alertLabelData.manageIp
|
||||
: '--'">
|
||||
{{
|
||||
alertLabelData && alertLabelData.manageIp
|
||||
? alertLabelData.manageIp
|
||||
@@ -194,7 +196,7 @@
|
||||
<div class="alert-label-box name-labe">
|
||||
<div class="document-copy-block">
|
||||
<div class="alert-label-title">{{$t('overall.name')}}</div>
|
||||
<div class="alert-label-value document-copy-text">
|
||||
<div class="alert-label-value document-copy-text" :title="alertLabelData && alertLabelData.name ? alertLabelData.name : '--'">
|
||||
{{ alertLabelData && alertLabelData.name ? alertLabelData.name : "--" }}
|
||||
</div>
|
||||
<i v-if="alertLabelData && alertLabelData.name" class="nz-icon nz-icon-override" style="visibility: hidden" @click.stop="onCopy(alertLabelData.name)" :title="$t('overall.copyText')"></i>
|
||||
@@ -290,7 +292,7 @@
|
||||
<div class="alert-label-box name-labe">
|
||||
<div class="document-copy-block">
|
||||
<div class="alert-label-title">{{$t('overall.name')}}</div>
|
||||
<div class="alert-label-value document-copy-text">
|
||||
<div class="alert-label-value document-copy-text" :title="alertLabelData && alertLabelData.name ? alertLabelData.name : '--'">
|
||||
{{ alertLabelData && alertLabelData.name ? alertLabelData.name : "--" }}
|
||||
</div>
|
||||
<i v-if="alertLabelData && alertLabelData.name" class="nz-icon nz-icon-override" style="visibility: hidden" @click.stop="onCopy(alertLabelData.name)" :title="$t('overall.copyText')"></i>
|
||||
@@ -388,7 +390,7 @@
|
||||
<div class="alert-label-box name-labe">
|
||||
<div class="document-copy-block">
|
||||
<div class="alert-label-title">{{$t('overall.name')}}</div>
|
||||
<div class="alert-label-value document-copy-text">
|
||||
<div class="alert-label-value document-copy-text" :title="alertLabelData && alertLabelData.name ? alertLabelData.name : '--'">
|
||||
{{ alertLabelData && alertLabelData.name ? alertLabelData.name : "--" }}
|
||||
</div>
|
||||
<i v-if="alertLabelData && alertLabelData.name" class="nz-icon nz-icon-override" style="visibility: hidden" @click.stop="onCopy(alertLabelData.name)" :title="$t('overall.copyText')"></i>
|
||||
@@ -523,7 +525,7 @@
|
||||
<div class="alert-label-box name-labe">
|
||||
<div class="document-copy-block">
|
||||
<div class="alert-label-title">{{$t('overall.name')}}</div>
|
||||
<div class="alert-label-value document-copy-text">
|
||||
<div class="alert-label-value document-copy-text" :title="alertLabelData && alertLabelData.name ? alertLabelData.name : '--'">
|
||||
{{ alertLabelData && alertLabelData.name ? alertLabelData.name : "--" }}
|
||||
</div>
|
||||
<i v-if="alertLabelData && alertLabelData.name" class="nz-icon nz-icon-override" style="visibility: hidden" @click.stop="onCopy(alertLabelData.name)" :title="$t('overall.copyText')"></i>
|
||||
|
||||
@@ -18,7 +18,7 @@
|
||||
<div class="alert-label-box name-labe">
|
||||
<div class="document-copy-block">
|
||||
<div class="alert-label-title">{{$t('overall.name')}}</div>
|
||||
<div class="alert-label-value document-copy-text">{{alertRuleData.name ? alertRuleData.name : '--'}}</div>
|
||||
<div class="alert-label-value document-copy-text" :title="alertRuleData.name ? alertRuleData.name : '--'">{{alertRuleData.name ? alertRuleData.name : '--'}}</div>
|
||||
<i v-if="alertRuleData && alertRuleData.name" class="nz-icon nz-icon-override" style="visibility: hidden" @click="onCopy(alertRuleData.name)" :title="$t('overall.copyText')"></i>
|
||||
</div>
|
||||
|
||||
|
||||
@@ -16,7 +16,7 @@
|
||||
<div class="alert-label-box name-labe">
|
||||
<div class="document-copy-block" style="display:flex">
|
||||
<div class="alert-label-title">{{$t('overall.name')}}</div>
|
||||
<div class="alert-label-value document-copy-text">{{alertRuleData.name ? alertRuleData.name : '--'}}</div>
|
||||
<div class="alert-label-value document-copy-text" :title="alertRuleData.name ? alertRuleData.name : '--'">{{alertRuleData.name ? alertRuleData.name : '--'}}</div>
|
||||
<i v-if="alertRuleData && alertRuleData.name" class="nz-icon nz-icon-override" style="visibility: hidden" @click="onCopy(alertRuleData.name)" :title="$t('overall.copyText')"></i>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
@@ -185,6 +185,7 @@ export default {
|
||||
return {
|
||||
stateOptions: alertMessageConstant.states,
|
||||
url: 'alert/message',
|
||||
urlNew: 'alert/message/query',
|
||||
alertSilenceUrl: '',
|
||||
tableId: 'alertMessageModule', // 需要分页的table的id,用于记录每页数量
|
||||
state: '1',
|
||||
@@ -312,8 +313,60 @@ export default {
|
||||
if (this.from === fromRoute.alertSilence) {
|
||||
this.searchMsg = this.searchMsgSilence
|
||||
}
|
||||
this.renderDefaultParams()
|
||||
},
|
||||
methods: {
|
||||
renderDefaultParams () {
|
||||
const q = JSON.parse(this.$route.query.bottomSelectArr)
|
||||
this.state = q.state
|
||||
this.searchTimeHeader[0] = q.startAt ? this.momentTz(q.startAt) : ''
|
||||
this.searchTimeHeader[1] = q.endAt ? this.momentTz(q.endAt) : ''
|
||||
this.searchTimeHeader[2] = q.timeType
|
||||
switch (this.searchTimeHeader[2]) {
|
||||
case '5m' :
|
||||
this.defaultPick = 1
|
||||
break
|
||||
case '15m' :
|
||||
this.defaultPick = 2
|
||||
break
|
||||
case '30m' :
|
||||
this.defaultPick = 3
|
||||
break
|
||||
case '1h' :
|
||||
this.defaultPick = 4
|
||||
break
|
||||
case '3h' :
|
||||
this.defaultPick = 5
|
||||
break
|
||||
case '6h' :
|
||||
this.defaultPick = 6
|
||||
break
|
||||
case '12h' :
|
||||
this.defaultPick = 7
|
||||
break
|
||||
case '1d' :
|
||||
this.defaultPick = 8
|
||||
break
|
||||
case '24h' :
|
||||
this.defaultPick = 8
|
||||
break
|
||||
case '2d' :
|
||||
this.defaultPick = 9
|
||||
break
|
||||
case '7d' :
|
||||
this.defaultPick = 10
|
||||
break
|
||||
case '30d' :
|
||||
this.defaultPick = 11
|
||||
break
|
||||
case 'all' :
|
||||
this.defaultPick = 12
|
||||
break
|
||||
default:
|
||||
this.defaultPick = 0
|
||||
}
|
||||
// this.defaultPick = 11
|
||||
},
|
||||
labelsSort (obj) {
|
||||
const buildIn = ['asset', 'endpoint', 'module', 'cpu', 'project', 'datacenter', 'parent_asset', 'user']
|
||||
const labels = JSON.parse(JSON.stringify(obj))
|
||||
@@ -349,7 +402,7 @@ export default {
|
||||
// } else {
|
||||
// url = this.url
|
||||
// }
|
||||
url = this.url
|
||||
url = this.urlNew
|
||||
this.$delete(url + '?ids=' + row.id + '&state=' + row.state).then(response => {
|
||||
if (response.code === 200) {
|
||||
self.delFlag = true
|
||||
@@ -395,15 +448,20 @@ export default {
|
||||
} else {
|
||||
delete this.searchLabel.orderBy
|
||||
}
|
||||
if (!this.searchLabel.body) {
|
||||
this.searchLabel.body = {
|
||||
q: ''
|
||||
}
|
||||
}
|
||||
this.$set(this.searchLabel, 'pageNo', this.pageObj.pageNo)
|
||||
this.$set(this.searchLabel, 'pageSize', this.pageObj.pageSize)
|
||||
this.$set(this.searchLabel, 'state', this.state)
|
||||
this.$set(this.searchLabel.body, 'state', this.state)
|
||||
if (this.searchTimeHeader && this.searchTimeHeader.length > 1 && this.searchTimeHeader[0] && this.searchTimeHeader[1]) {
|
||||
this.$set(this.searchLabel, 'startAt', bus.timeFormate(this.timezoneToUtcTime(bus.formateTimeToTime(this.searchTimeHeader[0])), 'YYYY-MM-DD HH:mm:ss'))
|
||||
this.$set(this.searchLabel, 'endAt', bus.timeFormate(this.timezoneToUtcTime(bus.formateTimeToTime(this.searchTimeHeader[1])), 'YYYY-MM-DD HH:mm:ss'))
|
||||
this.$set(this.searchLabel.body, 'startAt', [bus.timeFormate(this.timezoneToUtcTime(bus.formateTimeToTime(this.searchTimeHeader[0])), 'YYYY-MM-DD HH:mm:ss')])
|
||||
this.$set(this.searchLabel.body, 'endAt', [bus.timeFormate(this.timezoneToUtcTime(bus.formateTimeToTime(this.searchTimeHeader[1])), 'YYYY-MM-DD HH:mm:ss')])
|
||||
} else {
|
||||
delete this.searchLabel.startAt
|
||||
delete this.searchLabel.endAt
|
||||
delete this.searchLabel.body.startAt
|
||||
delete this.searchLabel.body.endAt
|
||||
}
|
||||
this.tools.loading = true
|
||||
// if (state) {
|
||||
@@ -411,24 +469,41 @@ export default {
|
||||
// delete this.searchLabel.endAt
|
||||
// }
|
||||
if (this.from === fromRoute.module) {
|
||||
this.searchLabel.moduleIds = this.obj.id
|
||||
this.searchLabel.body.moduleId = [this.obj.id]
|
||||
} else if (this.from === fromRoute.endpoint) {
|
||||
this.searchLabel.endpointIds = this.obj.id
|
||||
this.searchLabel.body.endpointId = [this.obj.id]
|
||||
} else if (this.from === fromRoute.asset) {
|
||||
this.searchLabel.assetIds = this.obj.id
|
||||
this.searchLabel.body.assetId = [this.obj.id]
|
||||
} else if (this.from === fromRoute.alertRule) {
|
||||
this.searchLabel.ruleIds = this.obj.id
|
||||
this.searchLabel.body.ruleId = [this.obj.id]
|
||||
} else if (this.from === fromRoute.dc) {
|
||||
this.searchLabel.dcIds = this.obj.id
|
||||
this.searchLabel.body.dcId = [this.obj.id]
|
||||
}
|
||||
let url = ''
|
||||
if (this.from === fromRoute.alertSilence) {
|
||||
this.alertSilenceUrl = `/alert/silence/${this.obj.id}/rel`
|
||||
url = this.alertSilenceUrl
|
||||
// this.alertSilenceUrl = `/alert/silence/${this.obj.id}/rel`
|
||||
this.$set(this.searchLabel.body, 'state', this.state)
|
||||
this.$set(this.searchLabel.body, 'silenceId', [this.obj.id])
|
||||
url = this.urlNew
|
||||
} else {
|
||||
url = this.url
|
||||
url = this.urlNew
|
||||
}
|
||||
this.$get(url, this.searchLabel).then(response => {
|
||||
const param = {
|
||||
...this.searchLabel
|
||||
}
|
||||
// const path = this.fromRoute.alertMessage
|
||||
const routePathParams = this.$lodash.cloneDeep(param)
|
||||
delete routePathParams.statistics
|
||||
routePathParams.body.startAt = this.searchTimeHeader[0] ? this.momentStrToTimestamp(this.searchTimeHeader[0]) : ''
|
||||
routePathParams.body.endAt = this.searchTimeHeader[1] ? this.momentStrToTimestamp(this.searchTimeHeader[1]) : ''
|
||||
routePathParams.body.timeType = this.searchTime[2]
|
||||
routePathParams.body = JSON.stringify(routePathParams.body)
|
||||
// this.updatePath(routePathParams, path)
|
||||
const queryParams = {
|
||||
...this.searchLabel,
|
||||
body: encodeURIComponent(JSON.stringify(this.searchLabel.body))
|
||||
}
|
||||
this.$get(url, queryParams).then(response => {
|
||||
this.tools.loading = false
|
||||
if (response.code === 200) {
|
||||
this.nowTime = this.utcTimeToTimezoneStr(response.time)
|
||||
@@ -529,7 +604,7 @@ export default {
|
||||
this.alertSilenceUrl = `/alert/silence/${this.obj.id}/rel`
|
||||
url = this.alertSilenceUrl
|
||||
} else {
|
||||
url = this.url
|
||||
url = this.urlNew
|
||||
}
|
||||
this.$put(url, this.deleteBox).then(res => {
|
||||
if (res.code === 200) {
|
||||
@@ -657,17 +732,10 @@ export default {
|
||||
if (this.searchLabel.orderBy) {
|
||||
orderBy = this.searchLabel.orderBy
|
||||
}
|
||||
this.searchLabel = {}
|
||||
this.pageObj.pageNo = 1
|
||||
for (const item in searchObj) {
|
||||
if (searchObj[item]) {
|
||||
if (item == 'alertMessageState') {
|
||||
this.$set(this.searchLabel, 'state', searchObj[item])
|
||||
} else {
|
||||
this.$set(this.searchLabel, item, searchObj[item])
|
||||
}
|
||||
}
|
||||
this.searchLabel = {
|
||||
body: searchObj
|
||||
}
|
||||
this.pageObj.pageNo = 1
|
||||
if (orderBy) {
|
||||
this.$set(this.searchLabel, 'orderBy', orderBy)
|
||||
}
|
||||
|
||||
@@ -74,7 +74,7 @@ export default {
|
||||
total: 0
|
||||
},
|
||||
timer: null,
|
||||
sameLabels: ['endpointLabels', 'labelsType', 'lastScrape', 'lastScrapeDuration', 'health', 'lastError'],
|
||||
sameLabels: ['endpointLabels', 'labelsType', 'lastScrape', 'lastScrapeDuration', 'health', 'lastError', 'str'],
|
||||
orderBy: {}
|
||||
}
|
||||
},
|
||||
@@ -188,6 +188,7 @@ export default {
|
||||
const user = date.user
|
||||
const labels = date.labels
|
||||
const discoveredLabels = date.discoveredLabels
|
||||
const str = JSON.stringify(date.discoveredLabels)
|
||||
const tableData = {
|
||||
endpointLabels,
|
||||
endpoint,
|
||||
@@ -204,7 +205,8 @@ export default {
|
||||
parent_asset,
|
||||
user,
|
||||
labels,
|
||||
discoveredLabels
|
||||
discoveredLabels,
|
||||
str
|
||||
}
|
||||
let simpleTemp = ''
|
||||
const keys = Object.keys(tableData)
|
||||
@@ -219,6 +221,7 @@ export default {
|
||||
if (simpleTemp.indexOf(',') !== -1) {
|
||||
simpleTemp = simpleTemp.substr(0, simpleTemp.length - 1)
|
||||
}
|
||||
console.log(simpleTemp)
|
||||
tableData.tableDateAll = simpleTemp
|
||||
tableDates.push(tableData)
|
||||
}
|
||||
|
||||
@@ -26,7 +26,7 @@
|
||||
@click="detailViewRightShow(item)"
|
||||
@mouseenter="labelHover(item, 'asset', true, $event)"
|
||||
@mouseleave="labelHover(item, 'asset', false)">
|
||||
<div class="detail-row-info">
|
||||
<div class="detail-row-info" :title="item.name">
|
||||
<div class="asset-manageIp">
|
||||
<i class="nz-icon nz-icon-overview-alert" :class="item.alertNum>0?'colorEF7458':'color23BF9A'"/>
|
||||
{{item.name}}
|
||||
|
||||
@@ -26,7 +26,7 @@
|
||||
@click="detailViewRightShow(item)"
|
||||
@mouseenter="labelHover(item, 'dc', true, $event)"
|
||||
@mouseleave="labelHover(item, 'dc', false)">
|
||||
<div class="detail-row-info">
|
||||
<div class="detail-row-info" :title="item.name">
|
||||
<div class="asset-manageIp">
|
||||
<i class="nz-icon nz-icon-overview-alert" :class="item.alertNum>0?'colorEF7458':'color23BF9A'"/>
|
||||
{{item.name}}
|
||||
|
||||
@@ -26,7 +26,7 @@
|
||||
@click="detailViewRightShow(item)"
|
||||
@mouseenter="labelHover(item, 'endpoint', true, $event)"
|
||||
@mouseleave="labelHover(item, 'endpoint', false)">
|
||||
<div class="detail-row-info">
|
||||
<div class="detail-row-info" :title="item.name">
|
||||
<div class="asset-manageIp">
|
||||
<i class="nz-icon nz-icon-overview-alert" :class="item.alertNum>0?'colorEF7458':'color23BF9A'"/>
|
||||
{{item.name}}
|
||||
|
||||
@@ -26,7 +26,7 @@
|
||||
@click="detailViewRightShow(item)"
|
||||
@mouseenter="labelHover(item, 'module', true, $event)"
|
||||
@mouseleave="labelHover(item, 'module', false)">
|
||||
<div class="detail-row-info">
|
||||
<div class="detail-row-info" :title="item.name">
|
||||
<div class="asset-manageIp">
|
||||
<i class="nz-icon nz-icon-overview-alert" :class="item.alertNum>0?'colorEF7458':'color23BF9A'"/>
|
||||
{{item.name}}
|
||||
|
||||
@@ -25,8 +25,8 @@
|
||||
:class="item.id === detailViewRightObj.id ? 'selected' : ''"
|
||||
@click="detailViewRightShow(item)"
|
||||
>
|
||||
<div class="detail-row-info">
|
||||
<div class="asset-manageIp">
|
||||
<div class="detail-row-info" :title="getRemoteText(item)">
|
||||
<div class="asset-manageIp" :title="getRemoteText(item)">
|
||||
<el-tooltip effect="light" placement="right">
|
||||
<div slot="content">
|
||||
{{$t(getStatusText(item.status))}}
|
||||
|
||||
@@ -25,7 +25,7 @@
|
||||
:class="item.id === detailViewRightObj.id ? 'selected' : ''"
|
||||
@click="detailViewRightShow(item)"
|
||||
>
|
||||
<div class="detail-row-info" @mouseenter="labelHover(item, 'user', true, false, $event)"
|
||||
<div class="detail-row-info" :title="item.name" @mouseenter="labelHover(item, 'user', true, false, $event)"
|
||||
@mouseleave="labelHover(item, 'user', false, false,)">
|
||||
<div class="asset-manageIp">
|
||||
<div class="user-name-td">
|
||||
|
||||
@@ -33,7 +33,7 @@
|
||||
>
|
||||
<i class="nz-icon nz-icon-check" v-if="!allowedAll&&!item.allowed&&(index==0||index==1||item.visibility=='disabled')"></i>
|
||||
<i v-else class="nz-icon nz-icon-check" v-show="item.show"></i>
|
||||
<span>{{item.label}}</span>
|
||||
<span :title="item.label">{{item.label}}</span>
|
||||
<i class="nz-icon nz-icon-sort drag-sort" v-if="index!==0 && index !== 1 && !item.NotSet" @click.stop></i>
|
||||
</div>
|
||||
</draggable>
|
||||
@@ -67,7 +67,7 @@
|
||||
>
|
||||
<i class="nz-icon nz-icon-check" v-if="!allowedAll&&!item.allowed&&(index==0||index==1||item.visibility=='disabled')"></i>
|
||||
<i v-else class="nz-icon nz-icon-check" v-show="item.show"></i>
|
||||
<span>{{item.label}}</span>
|
||||
<span :title="item.label">{{item.label}}</span>
|
||||
<i class="nz-icon nz-icon-sort drag-sort" v-if="index!==0 && index !== 1 && !item.NotSet" @click.stop></i>
|
||||
</div>
|
||||
</draggable>
|
||||
|
||||
@@ -34,7 +34,7 @@
|
||||
</template>
|
||||
<div class="el-dropdown-link" slot="reference">
|
||||
<i class="nz-icon nz-icon-time" style="width:20px;"></i>
|
||||
<span class="panel-list-title" id="timePickerContent">{{showTime.text}}</span>
|
||||
<span class="panel-list-title" id="timePickerContent" :title="showTime.text">{{showTime.text}}</span>
|
||||
<span class="dropdown--suffix">
|
||||
<i class="el-icon-arrow-down"></i>
|
||||
</span>
|
||||
@@ -42,7 +42,7 @@
|
||||
</el-popover>
|
||||
<el-dropdown-menu class="nz-dashboard-dropdown right-box-select-top right-public-box-dropdown-top popper-z-index" slot="dropdown">
|
||||
<template v-for="(item, index) in timeData" >
|
||||
<el-dropdown-item v-if="item.id !== 12" :key="index" :class="showTime.id === item.id ? 'nz-dashboard-dropdown-bg' : ''" :command="item">
|
||||
<el-dropdown-item v-if="item.id !== 12" :key="index" :class="showTime.id === item.id ? 'nz-dashboard-dropdown-bg' : ''" :command="item" :title="item.text">
|
||||
{{item.text}}
|
||||
</el-dropdown-item>
|
||||
</template>
|
||||
|
||||
@@ -148,6 +148,9 @@ export default {
|
||||
if (timeRange && timeRange.length < 2) {
|
||||
return []
|
||||
}
|
||||
if (!timeRange[0]) {
|
||||
return []
|
||||
}
|
||||
const startTime = bus.timeFormate(timeRange[0], this.pickTimer)
|
||||
const endTime = bus.timeFormate(timeRange[1], this.pickTimer)
|
||||
const timeType = timeRange[2]
|
||||
|
||||
@@ -24,8 +24,9 @@
|
||||
<el-popover
|
||||
placement="right"
|
||||
trigger="hover"
|
||||
class="overflowSpan"
|
||||
:content="node.label">
|
||||
<span slot="reference">{{ node.label }}</span>
|
||||
<span slot="reference" class="">{{ node.label }}</span>
|
||||
</el-popover>
|
||||
</span>
|
||||
<el-row class="block-col-2" style="margin-left: 10px; margin-right: 8px;">
|
||||
|
||||
@@ -67,7 +67,7 @@
|
||||
{{$t('terminal.confirm')}}
|
||||
</span>
|
||||
</el-input>
|
||||
<span class="hide-input-nzName text-ellipsis" v-if="!editFlag[index]">
|
||||
<span class="hide-input-nzName text-ellipsis" v-if="!editFlag[index]" :title="item.nzName">
|
||||
{{item.nzName}}
|
||||
</span>
|
||||
<i @click.stop="changeEditFlag(index)" v-if="!editFlag[index]" class="nz-icon nz-icon-edit1"/>
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
<div class="meta2d-image-box">
|
||||
<div @click="changeSelectBoxShow(true)" style="position: relative">
|
||||
<div class="image-input">
|
||||
<span v-if="imageName" class="image-input-message text-ellipsis">{{unit}} / {{imageName}}</span>
|
||||
<span v-if="imageName" class="image-input-message text-ellipsis" :title="unit + '/' + imageName">{{unit}} / {{imageName}}</span>
|
||||
<i class="el-icon-circle-close" style="position: absolute;top: 10px;right: 10px;font-size: 14px" @click.stop="selectImageChange({image: '', id: ''}, true)"/>
|
||||
</div>
|
||||
</div>
|
||||
@@ -29,7 +29,7 @@
|
||||
<span class="nz-icon-caret-right-box">
|
||||
<i class="nz-icon nz-icon-caret-right" :class="item.show ? 'rotate90': ''" />
|
||||
</span>
|
||||
<div class="text-ellipsis nz-collapse-header-content">{{item.group}}</div>
|
||||
<div class="text-ellipsis nz-collapse-header-content" :title="item.group">{{item.group}}</div>
|
||||
<i class="nz-icon nz-icon-delete title-delete" v-if="item.group!== 'General'" @click.stop="tooltipDeleteTitle(item)" :title="$t('overall.delete')" />
|
||||
<span class="title-all">{{item.children.length}}</span>
|
||||
</div>
|
||||
|
||||
@@ -339,7 +339,7 @@
|
||||
<template v-slot:trigger>
|
||||
<!-- <el-input placeholder="" size="small" clearable v-model="panelName" :disabled="false"></el-input>-->
|
||||
<div class="alert-rule-box-dashboard">
|
||||
<div class="text-ellipsis alert-rule-box-dashboard-name">{{panelName}}</div>
|
||||
<div class="text-ellipsis alert-rule-box-dashboard-name" :title="panelName">{{panelName}}</div>
|
||||
<i class="nz-icon nz-icon-guanbi2" @click.stop="clearDashboard()"/>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
<template>
|
||||
<div v-clickoutside="{obj: editSoftwareType, func: esc}" class="right-box right-box-editSoftwareType right-box-edit-endpoint ">
|
||||
<div class="right-box__header">
|
||||
<div class="header__title">{{editSoftwareType.id ? $t('Edit SoftwareType') : $t('new SoftwareType')}}</div>
|
||||
<div class="header__title">{{editSoftwareType.id ? $t('softwareType.edit') : $t('softwareType.create')}}</div>
|
||||
<div class="header__operation">
|
||||
<span v-cancel="{obj: editSoftwareType, func: esc}"><i class="nz-icon nz-icon-close" :title="$t('overall.close')"></i></span>
|
||||
</div>
|
||||
@@ -11,54 +11,137 @@
|
||||
<el-form ref="modelForm" :model="editSoftwareType" :rules="rules" label-position="top" label-width="120px">
|
||||
<!--name-->
|
||||
<el-form-item :label="$t('config.model.name')" prop="name">
|
||||
<el-input maxlength="64" show-word-limit v-model="editSoftwareType.name" size="small" type="text"></el-input>
|
||||
<el-input maxlength="128" show-word-limit v-model="editSoftwareType.name" size="small" type="text"></el-input>
|
||||
</el-form-item>
|
||||
<!--category-->
|
||||
<el-form-item :label="$t('editSoftwareType.category')" prop="category">
|
||||
<el-input maxlength="64" show-word-limit v-model="editSoftwareType.category" size="small" type="text"></el-input>
|
||||
<el-form-item :label="$t('softwareType.category')" prop="category">
|
||||
<el-input maxlength="128" show-word-limit v-model="editSoftwareType.category" size="small" type="text"></el-input>
|
||||
</el-form-item>
|
||||
<!--icon-->
|
||||
<el-form-item :label="$t('config.menus.icon')" prop="icon">
|
||||
<el-dropdown trigger="click" placement="top-start">
|
||||
<div class="el-dropdown-link">
|
||||
<i v-if="editSoftwareType.icon" class="mapping-icon" :class="editSoftwareType.icon"></i>
|
||||
<div v-else class="mapping-iconSelect" :title="$t('tip.add')">
|
||||
<i class="nz-icon nz-icon-create-square"></i>
|
||||
</div>
|
||||
</div>
|
||||
<el-dropdown-menu slot="dropdown" class="mapping-iconPop">
|
||||
<ul class="mapping-iconList">
|
||||
<li class="mapping-iconItem" :class="{active:editSoftwareType.icon===subItem.value}" v-for="subItem in iconList" @click="iconActive(subItem)" :key="subItem.value">
|
||||
<i :class="subItem.value"></i>
|
||||
</li>
|
||||
</ul>
|
||||
</el-dropdown-menu>
|
||||
</el-dropdown>
|
||||
<el-upload
|
||||
class="avatar-uploader"
|
||||
action="#"
|
||||
:show-file-list="false"
|
||||
:on-change="beforeAvatarUpload"
|
||||
:auto-upload="false"
|
||||
accept=".jpg,.png"
|
||||
:limit="1"
|
||||
:on-remove="handleRemove"
|
||||
ref="avatarUploader"
|
||||
:fileList="fileList"
|
||||
>
|
||||
<img v-if="imageUrl" :src="imageUrl" class="avatar">
|
||||
<i v-else class="nz-icon nz-icon-create-square avatar-uploader-icon"></i>
|
||||
<i class="nz-icon nz-icon-circle-close" v-if="imageUrl" @click.stop="removeIcon" :title="$t('overall.delete')"/>
|
||||
</el-upload>
|
||||
</el-form-item>
|
||||
<!--params-->
|
||||
<el-form-item :label="$t('config.assetLabel.params')" prop="category">
|
||||
<div id="module-box-params" ref="labelBoxScrollbar" style="height: 100%; overflow-x: auto;">
|
||||
<div v-for="(item, index) in editSoftwareType.paramObj" :key="index" class="param-box-row">
|
||||
<el-form-item :prop="'paramObj.' + index + '.key'" class="param-box-row-key" :rules="[{ pattern: /[a-zA-Z_][a-zA-Z0-9_]*/, message: $t('overall.ASCIIKey') ,trigger: 'blur'}]">
|
||||
<el-input v-model="item.key" placeholder="key" size="mini" ></el-input>
|
||||
</el-form-item>
|
||||
<span class="param-box-row-eq">=</span>
|
||||
<el-form-item :prop="'paramObj.' + index + '.value'" class="param-box-row-value">
|
||||
<vue-tags-input
|
||||
v-model="item.tags"
|
||||
:maxlength="32"
|
||||
:placeholder="$t('overall.addParameter')"
|
||||
:tags="item.value"
|
||||
@tags-changed="(newTags)=>{tagsChange(newTags, index)}"
|
||||
/>
|
||||
</el-form-item>
|
||||
<span :id="'moduel-remove-param-'+index" class="param-box-row-symbol" @click="removeParam(index)" :title="$t('overall.delete')"><i class="nz-icon nz-icon-shanchu1"></i></span>
|
||||
</div>
|
||||
<el-form-item :label="$t('config.assetLabel.params')" prop="paramObj">
|
||||
<div v-for="(label, i) in editSoftwareType.paramObj" :key="i" class="form__dotted-item form__dotted-item-required">
|
||||
<el-form-item :prop="'paramObj.' + i + '.value.0'" :rules="[ { required: JSON.parse(label.param).required === '1', message: $t('validate.required'), trigger: 'blur' }]">
|
||||
<template v-slot:label>
|
||||
<div class="form__labels-label">
|
||||
<span>{{label.name}}</span>
|
||||
<div>
|
||||
<span @click="removeLabel(label)" class="form__labels-label__span" :title="$t('overall.delete')"><i class="nz-icon nz-icon-minus"></i></span>
|
||||
</div>
|
||||
</div>
|
||||
</template>
|
||||
<template v-if="label.action !== 1">
|
||||
<template v-if="label.type.toUpperCase() === assetConstants.labelTypeData.TEXT">
|
||||
<el-input v-model="label.value[0]" size="small"/>
|
||||
</template>
|
||||
<template v-else-if="label.type.toUpperCase() === assetConstants.labelTypeData.PASSWORD">
|
||||
<el-input v-model="label.value[0]" type="password" size="small"/>
|
||||
</template>
|
||||
<template v-else-if="label.type.toUpperCase() === assetConstants.labelTypeData.MULTITEXT">
|
||||
<div v-for="(value, i) in label.value" :key="i" class="label__multi-text">
|
||||
<el-input v-model="label.value[i]" size="small"/>
|
||||
<span @click="addMultiTextRow(label)" style="margin: 0 5px" :title="$t('tip.add')"><i class="nz-icon nz-icon-plus"></i></span>
|
||||
<span @click="removeMultiTextRow(label, i)" :title="$t('overall.delete')"><i class="nz-icon nz-icon-minus"></i></span>
|
||||
</div>
|
||||
</template>
|
||||
<template v-else-if="label.type.toUpperCase() === assetConstants.labelTypeData.TEXTAREA">
|
||||
<el-input v-model="label.value[0]" :maxlength="4096" show-word-limit size="small" :rows="2" type="textarea"/>
|
||||
</template>
|
||||
<template v-else-if="label.type.toUpperCase() === assetConstants.labelTypeData.RADIO">
|
||||
<el-radio-group v-model="label.value[0]">
|
||||
<el-radio v-for="item in JSON.parse(label.param).items" :key="item.name" :label="item.name">{{item.name}}</el-radio>
|
||||
</el-radio-group>
|
||||
</template>
|
||||
<template v-else-if="label.type.toUpperCase() === assetConstants.labelTypeData.CHECKBOX">
|
||||
<el-checkbox-group v-model="label.value">
|
||||
<el-checkbox v-for="item in JSON.parse(label.param).items" :key="item.name" :label="item.name" :value="item.name"></el-checkbox>
|
||||
</el-checkbox-group>
|
||||
</template>
|
||||
<template v-else-if="label.type.toUpperCase() === assetConstants.labelTypeData.SELECT">
|
||||
<el-select v-model="label.value[0]" class="right-box__select" :placeholder="$t('el.select.placeholder')" popper-class="right-box-select-top prevent-clickoutside" size="small">
|
||||
<el-option v-for="item in JSON.parse(label.param).items" :key="item.name" :label="item.name" :value="item.name"></el-option>
|
||||
</el-select>
|
||||
</template>
|
||||
<template v-else-if="label.type.toUpperCase() === assetConstants.labelTypeData.INTEGER">
|
||||
<el-input v-model="label.value[0]" oninput="value=value.replace(/[^\d]/g,'')" size="small"></el-input>
|
||||
</template>
|
||||
<template v-else-if="label.type.toUpperCase() === assetConstants.labelTypeData.DOUBLE">
|
||||
<el-input-number v-model="label.value[0]" :controls="false" size="small" :precision="JSON.parse(label.param).decimals" style="width: 100%;text-align: left" :max="10000000000000000000" :min="-10000000000000000000"></el-input-number>
|
||||
</template>
|
||||
<template v-else-if="label.type.toUpperCase() === assetConstants.labelTypeData.DATETIME">
|
||||
<template v-if="JSON.parse(label.param).subType === assetConstants.labelSubTypeData.time">
|
||||
<div v-if="JSON.parse(label.param).interval" style="display: flex; justify-content: space-between">
|
||||
<el-time-select v-model="label.value[0]" size="small"></el-time-select>
|
||||
<el-time-select v-model="label.value[1]" size="small"></el-time-select>
|
||||
</div>
|
||||
<template v-else>
|
||||
<el-time-select v-model="label.value[0]" size="small" style="width: 100%"></el-time-select>
|
||||
</template>
|
||||
</template>
|
||||
<template v-else>
|
||||
<template v-if="JSON.parse(label.param).interval">
|
||||
<my-date-picker
|
||||
id="asset-box-input-purchase-date"
|
||||
v-model="label.value"
|
||||
:type="JSON.parse(label.param).subType === assetConstants.labelSubTypeData.date ? 'daterange' : 'datetimerange'"
|
||||
placeholder=""
|
||||
popper-class="right-box-select-top"
|
||||
size="small"
|
||||
:format="timeFormatStrToDatePickFormat(timeFormatMain,JSON.parse(label.param).subType === assetConstants.labelSubTypeData.date)"
|
||||
style="width: 100%">
|
||||
</my-date-picker>
|
||||
</template>
|
||||
<template v-else>
|
||||
<my-date-picker
|
||||
id="asset-box-input-parchase-date"
|
||||
v-model="label.value[0]"
|
||||
:type="JSON.parse(label.param).subType"
|
||||
placeholder=""
|
||||
popper-class="right-box-select-top"
|
||||
size="small"
|
||||
style="width: 100%"
|
||||
:format="timeFormatStrToDatePickFormat(timeFormatMain, JSON.parse(label.param).subType === assetConstants.labelSubTypeData.date)">
|
||||
</my-date-picker>
|
||||
</template>
|
||||
</template>
|
||||
</template>
|
||||
<template v-else-if="label.type.toUpperCase() === assetConstants.labelTypeData.EMAIL">
|
||||
<el-input v-model="label.value[0]" size="small"/>
|
||||
</template>
|
||||
</template>
|
||||
</el-form-item>
|
||||
</div>
|
||||
<div style="text-align: center">
|
||||
<span id="module-add-param" class="right-box-form-add module-add-label" type="button" @click="addParam">
|
||||
<span :title="$t('tip.add')"><i class="nz-icon nz-icon-plus" style="font-size: 16px;"></i></span>
|
||||
</span>
|
||||
<!-- label的新增按钮 -->
|
||||
<div class="form__flex-container hide-casc-input">
|
||||
<button class="form__create-btn" type="button" @click.stop :title="$t('tip.add')"><i class="nz-icon nz-icon-create-square"></i></button>
|
||||
<el-cascader
|
||||
v-if="labelCascShow"
|
||||
:options="options.fieldGroupOptions"
|
||||
:props="labelCascProp"
|
||||
class="hide-input"
|
||||
:title="$t('tip.add')"
|
||||
popper-class="prevent-clickoutside right-box-select-top limit-height"
|
||||
size="small"
|
||||
@change="addLabel"
|
||||
></el-cascader>
|
||||
</div>
|
||||
</el-form-item>
|
||||
<!--remark-->
|
||||
@@ -81,18 +164,14 @@
|
||||
|
||||
<script>
|
||||
// import { host, port } from '@/components/common/js/validate'
|
||||
import selectWalk from '../../popBox/selectWalk'
|
||||
import editRigthBox from '../../mixin/editRigthBox'
|
||||
import { sysObjectIdInput } from '@/components/common/js/validate'
|
||||
import iconList from '@/components/common/js/iconList'
|
||||
import VueTagsInput from '@johmun/vue-tags-input'
|
||||
import bus from '@/libs/bus'
|
||||
import { asset as assetConstants } from '@/components/common/js/constants'
|
||||
|
||||
export default {
|
||||
name: 'modelBox',
|
||||
name: 'softwareTypeBox',
|
||||
components: {
|
||||
'select-walk': selectWalk,
|
||||
VueTagsInput
|
||||
},
|
||||
props: {
|
||||
obj: {
|
||||
@@ -109,8 +188,13 @@ export default {
|
||||
},
|
||||
mixins: [editRigthBox],
|
||||
data () {
|
||||
const vm = this
|
||||
return {
|
||||
assetConstants,
|
||||
imageUrl: '',
|
||||
fileList: [],
|
||||
iconList: iconList,
|
||||
labelCascShow: true, // 用来控制label的cascader的重新渲染
|
||||
editSoftwareType: {
|
||||
id: '',
|
||||
name: '',
|
||||
@@ -121,24 +205,20 @@ export default {
|
||||
paramObj: [],
|
||||
remark: ''
|
||||
},
|
||||
options: {
|
||||
fieldGroupOptions: []
|
||||
},
|
||||
brandList: [], // brand 列表数据
|
||||
editModule: {},
|
||||
typeDataList: [],
|
||||
// chartlList: [], // chart 列表数据
|
||||
dashboardList: [], // dashboard 列表数据
|
||||
// ChartSearchShowFields: [ // ChartSearch 下拉搜索表头
|
||||
// { title: 'ID', data: 'id' },
|
||||
// { title: this.$t('overall.name'), data: 'name', key: 'name' },
|
||||
// { title: this.$t('overall.type'), data: 'type', key: 'type' },
|
||||
// { title: this.$t('overall.remark'), data: 'remark', key: 'remark' }
|
||||
// ],
|
||||
DashboardSearchShowFields: [ // DashboardSearch 下拉搜索表头
|
||||
DashboardSearchShowparamObj: [ // DashboardSearch 下拉搜索表头
|
||||
{ title: 'ID', data: 'id' },
|
||||
{ title: this.$t('overall.name'), data: 'name', key: 'name' },
|
||||
{ title: this.$t('overall.remark'), data: 'remark', key: 'remark' }
|
||||
],
|
||||
url: 'asset/model',
|
||||
brandUrl: 'asset/brand',
|
||||
url: '/asset/software/type',
|
||||
rightBox: { model: { show: false } },
|
||||
roles: [],
|
||||
rules: {
|
||||
@@ -154,6 +234,27 @@ export default {
|
||||
sysObjectId: [
|
||||
{ validator: sysObjectIdInput, trigger: 'blur' }
|
||||
]
|
||||
},
|
||||
labelCascProp: {
|
||||
lazy: true,
|
||||
value: 'id',
|
||||
label: 'name',
|
||||
lazyLoad (node, resolve) {
|
||||
const { level } = node
|
||||
if (node && node.data) {
|
||||
vm.$get('asset/field/meta', { groupIds: node.data.id, pageSize: -1 }).then(response => {
|
||||
if (response.code === 200) {
|
||||
const meta = response.data.list.map(item => ({
|
||||
...item,
|
||||
leaf: level >= 1,
|
||||
disabled: vm.editSoftwareType.paramObj.some(a => a.id === item.id)
|
||||
}))
|
||||
vm.options.metaOptions = meta
|
||||
resolve(meta)
|
||||
}
|
||||
})
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
@@ -164,28 +265,36 @@ export default {
|
||||
handler (n) {
|
||||
this.isEdit = true
|
||||
const editSoftwareType = JSON.parse(JSON.stringify(n))
|
||||
this.imageUrl = editSoftwareType.icon
|
||||
editSoftwareType.paramObj = []
|
||||
if (editSoftwareType.params) {
|
||||
Object.keys(editSoftwareType.params).forEach(key => {
|
||||
editSoftwareType.paramObj.push({
|
||||
key,
|
||||
value: editSoftwareType.params[key]
|
||||
})
|
||||
editSoftwareType.paramObj.push(editSoftwareType.params[key])
|
||||
})
|
||||
}
|
||||
if (!editSoftwareType.paramObj.length) {
|
||||
editSoftwareType.paramObj.push({ key: '', value: [] })
|
||||
}
|
||||
this.editSoftwareType = editSoftwareType
|
||||
}
|
||||
}
|
||||
},
|
||||
created () {
|
||||
},
|
||||
mounted () {
|
||||
this.getFieldGroupData()
|
||||
},
|
||||
methods: {
|
||||
clickOutside () {
|
||||
this.esc(false)
|
||||
},
|
||||
getFieldGroupData () {
|
||||
return new Promise(resolve => {
|
||||
this.$get('asset/field/group', { pageSize: -1 }).then(response => {
|
||||
if (response.code === 200) {
|
||||
this.options.fieldGroupOptions = response.data.list
|
||||
}
|
||||
resolve()
|
||||
})
|
||||
})
|
||||
},
|
||||
iconActive (subItem) {
|
||||
console.log(subItem, this.editSoftwareType.icon)
|
||||
if (this.editSoftwareType.icon === subItem.value) {
|
||||
@@ -207,6 +316,11 @@ export default {
|
||||
const params = {
|
||||
...this.editSoftwareType
|
||||
}
|
||||
params.icon = this.imageUrl
|
||||
params.params = {}
|
||||
params.paramObj.forEach(item => {
|
||||
params.params[item.name] = item
|
||||
})
|
||||
if (this.editSoftwareType.id) {
|
||||
this.$put(this.url, params).then(res => {
|
||||
this.prevent_opt.save = false
|
||||
@@ -241,12 +355,128 @@ export default {
|
||||
addParam () {
|
||||
this.editSoftwareType.paramObj.push({ key: '', value: [] })
|
||||
},
|
||||
// 移除单个param
|
||||
removeParam (index) {
|
||||
if (this.editSoftwareType.paramObj.length === 1) {
|
||||
this.editSoftwareType.paramObj = [{ key: '', value: [] }]
|
||||
}
|
||||
removeLabel (label) {
|
||||
let index = 0
|
||||
this.editSoftwareType.paramObj.find((f, i) => {
|
||||
if (label.id === f.id) {
|
||||
index = i
|
||||
return true
|
||||
}
|
||||
return false
|
||||
})
|
||||
this.editSoftwareType.paramObj.splice(index, 1)
|
||||
this.labelCascShow = false
|
||||
this.$nextTick(() => {
|
||||
this.labelCascShow = true
|
||||
})
|
||||
},
|
||||
addMultiTextRow (label) {
|
||||
label.value.push('')
|
||||
},
|
||||
removeMultiTextRow (label, index) {
|
||||
if (label.value.length === 1) {
|
||||
return
|
||||
}
|
||||
label.value.splice(index, 1)
|
||||
},
|
||||
blankLabelValue (label) {
|
||||
const defaultValue = JSON.parse(label.param).default || ''
|
||||
if (label.type.toUpperCase() === this.assetConstants.labelTypeData.CHECKBOX) {
|
||||
const arr = []
|
||||
if (label.param && JSON.parse(label.param).items) {
|
||||
JSON.parse(label.param).items.forEach(item => {
|
||||
if (item.check) {
|
||||
arr.push(item.name)
|
||||
}
|
||||
})
|
||||
}
|
||||
return arr
|
||||
} else if (label.type.toUpperCase() === this.assetConstants.labelTypeData.MULTITEXT || label.type.toUpperCase() === assetConstants.labelTypeData.TEXT || label.type.toUpperCase() === assetConstants.labelTypeData.TEXTAREA) {
|
||||
return [defaultValue]
|
||||
} else if (label.type.toUpperCase() === this.assetConstants.labelTypeData.RADIO || label.type.toUpperCase() === assetConstants.labelTypeData.SELECT) {
|
||||
const arr = ['']
|
||||
if (label.param && JSON.parse(label.param).items) {
|
||||
JSON.parse(label.param).items.forEach(item => {
|
||||
if (item.check) {
|
||||
arr[0] = item.name
|
||||
}
|
||||
})
|
||||
}
|
||||
return arr
|
||||
} else {
|
||||
return [defaultValue]
|
||||
}
|
||||
},
|
||||
addLabel ([groupId, metaId]) {
|
||||
const label = this.options.metaOptions.find(m => m.id === metaId)
|
||||
this.editSoftwareType.paramObj.push({ ...label, value: this.blankLabelValue(label), action: 0 })
|
||||
this.labelCascShow = false
|
||||
this.$nextTick(() => {
|
||||
this.labelCascShow = true
|
||||
})
|
||||
},
|
||||
beforeAvatarUpload (file, fileList) {
|
||||
const this_ = this
|
||||
const isJPG = (file.raw.type === 'image/jpeg' || file.raw.type === 'image/png')
|
||||
const isLt2M = (file.size / 1024 / 1024) < 2
|
||||
if (!isJPG) {
|
||||
this.$message.error(this_.$t('project.topology.imgFormat'))
|
||||
fileList = fileList.splice(fileList.length - 1, 1)
|
||||
return false
|
||||
}
|
||||
if (!isLt2M) {
|
||||
this.$message.error(this_.$t('project.topology.imgSize'))
|
||||
fileList = fileList.splice(fileList.length - 1, 1)
|
||||
return false
|
||||
}
|
||||
new Promise(function (resolve, reject) {
|
||||
const width = 0
|
||||
const height = 0
|
||||
const _URL = window.URL || window.webkitURL
|
||||
const img = new Image()
|
||||
img.onload = function () {
|
||||
const valid = img.width > width && img.height > height
|
||||
this_.imgWidth = img.width
|
||||
this_.imgHeight = img.height
|
||||
valid ? resolve() : reject()
|
||||
}
|
||||
img.src = _URL.createObjectURL(file.raw)
|
||||
}).then(() => {
|
||||
if (isJPG) {
|
||||
console.log(file.raw)
|
||||
this.getBase64(file.raw).then(base64Str => {
|
||||
this.imageUrl = base64Str
|
||||
})
|
||||
}
|
||||
return file.raw
|
||||
}, () => {
|
||||
this.$message.error(this_.$t('project.topology.imgMeasure'))
|
||||
return Promise.reject()
|
||||
})
|
||||
return false
|
||||
},
|
||||
handleRemove () {
|
||||
this.imageUrl = ''
|
||||
},
|
||||
removeIcon (e) {
|
||||
this.fileList = []
|
||||
this.imageUrl = ''
|
||||
},
|
||||
getBase64 (file) {
|
||||
return new Promise(function (resolve, reject) {
|
||||
const reader = new FileReader()
|
||||
let imgResult = ''
|
||||
reader.readAsDataURL(file)
|
||||
reader.onload = function () {
|
||||
imgResult = reader.result
|
||||
}
|
||||
reader.onerror = function (error) {
|
||||
reject(error)
|
||||
}
|
||||
reader.onloadend = function () {
|
||||
resolve(imgResult)
|
||||
}
|
||||
})
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -41,7 +41,7 @@
|
||||
style="display: inline-block;width: calc(100% - 66px);vertical-align: middle;position: relative;"
|
||||
:append-to-body="false"
|
||||
v-model="visible">
|
||||
<div slot="reference" class="search-box-input" tabindex="-99" @focus="focusSearchInput">
|
||||
<div slot="reference" class="search-box-input" tabindex="-99" @focus="focusSearchInput" ref="searchBoxInput">
|
||||
<div class="search-box-input-content" ref="search-box-input-content">
|
||||
<div v-for="(item, index) in selectArr" :key="index">
|
||||
<el-popover
|
||||
@@ -881,12 +881,17 @@ export default {
|
||||
delete params[key]
|
||||
}
|
||||
})
|
||||
params.bottomSelectArr = this.$lodash.cloneDeep(this.selectArr)
|
||||
params.bottomSelectArr = JSON.stringify(this.$lodash.cloneDeep(this.selectArr))
|
||||
this.$router.replace({ path: this.$route.path, query: params }).catch(err => {})
|
||||
}
|
||||
this.oldSearchStr = ''
|
||||
// todo 更新历史记录
|
||||
this.setHistoryArr()
|
||||
setTimeout(() => {
|
||||
this.visible = false
|
||||
this.$refs.searchStr.$el.scrollIntoView()
|
||||
this.$refs.searchStr.blur()
|
||||
})
|
||||
},
|
||||
emitSearch: bus.debounce(function () {
|
||||
this.$nextTick(() => {
|
||||
@@ -1047,8 +1052,10 @@ export default {
|
||||
const type = this.calcType()
|
||||
this.$get(`/fulltext/metadata/${type}`).then(res => {
|
||||
if (res.code == 200) {
|
||||
this.searchList = res.data.list || []
|
||||
this.oldSearchList = res.data.list || []
|
||||
let arr = res.data.list || []
|
||||
arr = arr.filter(item => item.show === '1')
|
||||
this.searchList = arr
|
||||
this.oldSearchList = arr
|
||||
} else {
|
||||
this.$message.error(res.msg || res.error)
|
||||
}
|
||||
|
||||
@@ -78,6 +78,7 @@
|
||||
:label="item.label"
|
||||
:type="tagType(item.label)"
|
||||
style="margin: 5px 0 5px 5px;"
|
||||
:title="item.value"
|
||||
>
|
||||
{{item.value}}
|
||||
</nz-alert-tag>
|
||||
|
||||
@@ -36,7 +36,7 @@
|
||||
</template>
|
||||
<template slot-scope="scope" :column="item">
|
||||
<div v-if="item.prop === 'group'">
|
||||
<copy :copyData='scope.row[item.prop].name' :showInfo='scope.row[item.prop]'>
|
||||
<copy v-if="scope.row[item.prop]" :copyData='scope.row[item.prop].name' :showInfo='scope.row[item.prop]'>
|
||||
<template slot="copy-text">
|
||||
{{scope.row[item.prop]?scope.row[item.prop].name:'-'}}
|
||||
</template>
|
||||
|
||||
@@ -40,7 +40,7 @@
|
||||
<template slot-scope="scope" :column="item">
|
||||
<template v-if="item.prop === 'name'">
|
||||
<div class="document-copy-block">
|
||||
<span class="document-copy-text">{{scope.row[item.prop]}}</span>
|
||||
<span class="document-copy-text" :title="scope.row[item.prop]">{{scope.row[item.prop]}}</span>
|
||||
<i v-if="scope.row[item.prop]" class="nz-icon nz-icon-override" style="visibility: hidden" @click="onCopy(scope.row.name)" :title="$t('overall.copyText')"></i>
|
||||
</div>
|
||||
</template>
|
||||
@@ -50,6 +50,7 @@
|
||||
<template v-else-if="item.prop === 'project'">
|
||||
<div class="document-copy-block">
|
||||
<span class="document-copy-text"
|
||||
:title="scope.row[item.prop].name"
|
||||
@mouseenter="labelHover(scope.row, item.prop, true,true, $event)"
|
||||
@mouseleave="labelHover(scope.row, item.prop, false,true)">
|
||||
{{scope.row[item.prop].name}}
|
||||
@@ -60,6 +61,7 @@
|
||||
<template v-else-if="item.prop === 'module'">
|
||||
<div class="document-copy-block">
|
||||
<span class="document-copy-text"
|
||||
:title="scope.row[item.prop].name"
|
||||
@mouseenter="labelHover(scope.row, item.prop, true,true, $event)"
|
||||
@mouseleave="labelHover(scope.row, item.prop, false,true)">
|
||||
<i class="nz-icon nz-icon-overview-module monitorColor"/>
|
||||
@@ -72,6 +74,7 @@
|
||||
<div class="document-copy-block">
|
||||
<span
|
||||
class="document-copy-text"
|
||||
:title="scope.row.asset&&scope.row.asset.name"
|
||||
@mouseenter="labelHover(scope.row, item.prop, true,true, $event)"
|
||||
@mouseleave="labelHover(scope.row, item.prop, false,true)">
|
||||
<i class="nz-icon nz-icon-overview-project monitorColor color23BF9A"></i>
|
||||
@@ -184,7 +187,13 @@
|
||||
<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>
|
||||
<el-dropdown-item v-if="scope.row.configs[0].enable" v-has="'monitor_endpoint_add'" :command="['metricTarget', scope.row, 'endpoint']" :disabled="scope.row.configs[0].config.protocol !== ('http'||'https')"><i class="nz-icon nz-icon-Metrics"></i><span class="operation-dropdown-text">{{$t('endpoints.metricTarget')}}</span></el-dropdown-item>
|
||||
<el-dropdown-item
|
||||
v-if="scope.row.configs[0].enable"
|
||||
v-has="'monitor_endpoint_add'"
|
||||
:command="['metricTarget', scope.row, 'endpoint']"
|
||||
:disabled="scope.row.configs[0].config.protocol !== 'http' && scope.row.configs[0].config.protocol !=='https'"
|
||||
>
|
||||
<i class="nz-icon nz-icon-Metrics"></i><span class="operation-dropdown-text">{{$t('endpoints.metricTarget')}}</span></el-dropdown-item>
|
||||
<el-dropdown-item v-has="'monitor_endpoint_edit'" :command="['configSync', scope.row,{from:'endpoint'}]"><i class="nz-icon nz-icon-sync"></i><span class="operation-dropdown-text">{{$t('overall.synchronize')}}</span></el-dropdown-item>
|
||||
|
||||
</el-dropdown-menu>
|
||||
|
||||
@@ -67,6 +67,7 @@
|
||||
<i class="nz-icon nz-icon-more3"></i>
|
||||
</div>
|
||||
<el-dropdown-menu slot="dropdown" class="right-box-select-top right-public-box-dropdown-top">
|
||||
<el-dropdown-item v-has="'monitor_module_delete'" :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="'monitor_module_delete'" :command="['delete-rel', scope.row, {forceDeleteShow:false, single:true,from:'menus'}]"><i class="nz-icon nz-icon-delete"></i><span class="operation-dropdown-text">{{$t('overall.delete')}}</span></el-dropdown-item>
|
||||
</el-dropdown-menu>
|
||||
</el-dropdown>
|
||||
|
||||
@@ -38,7 +38,7 @@
|
||||
<template v-if="item.prop == 'updateUser'" >{{scope.row[item.prop].name}}</template>
|
||||
<template v-else-if="item.prop == 'fileName' && scope.row[item.prop]" >
|
||||
<div class="document-copy-block">
|
||||
<span class="link document-copy-text" @click="downloadMib(scope.row)">{{scope.row[item.prop]}}</span>
|
||||
<span class="link document-copy-text" @click="downloadMib(scope.row)" :title="scope.row[item.prop]">{{scope.row[item.prop]}}</span>
|
||||
<i v-if="scope.row[item.prop]" class="nz-icon nz-icon-override" style="visibility: hidden" @click="onCopy(scope.row[item.prop])" :title="$t('overall.copyText')"></i>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
@@ -51,6 +51,7 @@
|
||||
<template v-else-if="item.prop === 'project'">
|
||||
<div class="document-copy-block">
|
||||
<span class="document-copy-text"
|
||||
:title="scope.row[item.prop].name"
|
||||
@mouseenter="labelHover(scope.row, item.prop, true,true, $event)"
|
||||
@mouseleave="labelHover(scope.row, item.prop, false,true)">
|
||||
{{scope.row[item.prop].name}}
|
||||
|
||||
@@ -44,13 +44,13 @@
|
||||
<span v-else-if="item.prop === 'createDate'">{{utcTimeToTimezoneStr(scope.row[item.prop])}}</span>
|
||||
<span v-else-if="item.prop === 'response'" @mouseenter="labelHover(scope.row, 'response', true, false, $event)"
|
||||
@mouseleave="labelHover(scope.row, 'response', false, false)">
|
||||
<div class="text-ellipsis" style="width: 100%" >
|
||||
<div class="text-ellipsis" style="width: 100%" :title="scope.row[item.prop]">
|
||||
{{scope.row[item.prop]}}
|
||||
</div>
|
||||
</span>
|
||||
<span v-else-if="item.prop === 'params'" @mouseenter="labelHover(scope.row, 'params', true, false, $event)"
|
||||
@mouseleave="labelHover(scope.row, 'params', false, false)">
|
||||
<div class="text-ellipsis" style="width: 100%" >
|
||||
<div class="text-ellipsis" style="width: 100%" :title="scope.row[item.prop]">
|
||||
{{scope.row[item.prop]}}
|
||||
</div>
|
||||
</span>
|
||||
|
||||
@@ -41,7 +41,7 @@
|
||||
<template v-if="item.prop === 'name'">
|
||||
|
||||
<div class="document-copy-block">
|
||||
<span class="document-copy-text">{{scope.row[item.prop]}}</span>
|
||||
<span class="document-copy-text" :title="scope.row[item.prop]">{{scope.row[item.prop]}}</span>
|
||||
<i v-if="scope.row[item.prop]" class="nz-icon nz-icon-override" style="visibility: hidden" @click="onCopy(scope.row.name)" :title="$t('overall.copyText')"></i>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
@@ -1,98 +1,133 @@
|
||||
<template>
|
||||
<el-table
|
||||
id="softwareTypeTable"
|
||||
ref="dataTable"
|
||||
:data="tableData"
|
||||
:height="height"
|
||||
border
|
||||
:default-sort="orderBy"
|
||||
@header-dragend="dragend"
|
||||
@sort-change="tableDataSort"
|
||||
@selection-change="selectionChange"
|
||||
@row-dblclick="(row)=>{}"
|
||||
>
|
||||
<el-table-column
|
||||
:resizable="false"
|
||||
align="center"
|
||||
type="selection"
|
||||
width="55">
|
||||
</el-table-column>
|
||||
<el-table-column
|
||||
v-for="(item, index) in customTableTitle"
|
||||
v-if="item.show"
|
||||
:key="`col-${index}-${item.prop}`"
|
||||
:fixed="item.fixed"
|
||||
:label="item.label"
|
||||
:min-width="`${item.minWidth}`"
|
||||
:prop="item.prop"
|
||||
:resizable="true"
|
||||
:sort-orders="['ascending', 'descending']"
|
||||
:sortable="item.sortable"
|
||||
:width="`${item.width}`"
|
||||
<div style="height: 100%">
|
||||
<el-table
|
||||
id="softwareTypeTable"
|
||||
ref="dataTable"
|
||||
:data="tableData"
|
||||
:height="height"
|
||||
border
|
||||
:default-sort="orderBy"
|
||||
@header-dragend="dragend"
|
||||
@sort-change="tableDataSort"
|
||||
@selection-change="selectionChange"
|
||||
@row-dblclick="(row)=>{}"
|
||||
>
|
||||
<template slot="header">
|
||||
<span class="data-column__span">{{item.label}}</span>
|
||||
<div class="col-resize-area"></div>
|
||||
</template>
|
||||
<template slot-scope="scope" :column="item">
|
||||
<template v-if="item.prop === 'roles'">
|
||||
<template v-if="scope.row[item.prop]">
|
||||
{{scope.row[item.prop].map(t=>t.name).join(',')}}
|
||||
</template>
|
||||
<template v-else>
|
||||
<span>-</span>
|
||||
</template>
|
||||
<el-table-column
|
||||
:resizable="false"
|
||||
align="center"
|
||||
type="selection"
|
||||
width="55">
|
||||
</el-table-column>
|
||||
<el-table-column
|
||||
v-for="(item, index) in customTableTitle"
|
||||
v-if="item.show"
|
||||
:key="`col-${index}-${item.prop}`"
|
||||
:fixed="item.fixed"
|
||||
:label="item.label"
|
||||
:min-width="`${item.minWidth}`"
|
||||
:prop="item.prop"
|
||||
:resizable="true"
|
||||
:sort-orders="['ascending', 'descending']"
|
||||
:sortable="item.sortable"
|
||||
:width="`${item.width}`"
|
||||
>
|
||||
<template slot="header">
|
||||
<span class="data-column__span">{{item.label}}</span>
|
||||
<div class="col-resize-area"></div>
|
||||
</template>
|
||||
<template v-else-if="item.prop === 'name'">
|
||||
<copy :copyData='scope.row[item.prop]' :showInfo='scope.row[item.prop]'>
|
||||
<template slot="copy-text">
|
||||
{{scope.row[item.prop]?scope.row[item.prop]:'-'}}
|
||||
</template>
|
||||
</copy>
|
||||
<template slot-scope="scope" :column="item">
|
||||
<template v-if="item.prop === 'name'">
|
||||
<copy :copyData='scope.row[item.prop]' :showInfo='scope.row[item.prop]'>
|
||||
<template slot="copy-text">
|
||||
{{scope.row[item.prop]?scope.row[item.prop]:'-'}}
|
||||
</template>
|
||||
</copy>
|
||||
</template>
|
||||
<span v-else-if="scope.row[item.prop]" :class="item.prop === 'remark'? 'el-table-remark':''">{{scope.row[item.prop]}}</span>
|
||||
<span v-else>-</span>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column
|
||||
:resizable="false"
|
||||
:width="operationWidth"
|
||||
fixed="right">
|
||||
<div slot="header" class="table-operation-title">{{$t('overall.option')}}</div>
|
||||
<div slot-scope="scope" class="table-operation-items">
|
||||
<!-- <button class="table-operation-item" v-has="'model_edit'" @click="$emit('edit', scope.row)" :title="$t('overall.edit')"><i class="nz-icon nz-icon-edit"></i></button> -->
|
||||
<button class="table-operation-item" @click="showBottomBox('asset', scope.row)" :title="$t('overall.view')"><i class="nz-icon nz-icon-view1"></i></button>
|
||||
<el-dropdown size="medium" v-has="['model_delete','main_edit','model_edit']" trigger="click" @command="tableOperation">
|
||||
<div class="table-operation-item table-operation-item--more" :title="$t('overall.moreOperations')">
|
||||
<i class="nz-icon nz-icon-more3"></i>
|
||||
<span v-else-if="item.prop === 'params'"
|
||||
@mouseenter="labelHover(scope.row, 'params', true, false, $event)"
|
||||
@mouseleave="labelHover(scope.row, 'params', false, false)"
|
||||
>
|
||||
<div class="text-ellipsis" style="width: 100%" >
|
||||
{{JSON.stringify(scope.row[item.prop])}}
|
||||
</div>
|
||||
</span>
|
||||
<template v-else-if="item.prop === 'cts'">
|
||||
<template>{{scope.row[item.prop] ? utcTimeToTimezoneStr(scope.row[item.prop]) : '-'}}</template>
|
||||
</template>
|
||||
<template v-else-if="item.prop === 'uts'">
|
||||
<template>{{scope.row[item.prop] ? utcTimeToTimezoneStr(scope.row[item.prop]) : '-'}}</template>
|
||||
</template>
|
||||
<div v-else-if="item.prop === 'icon'"
|
||||
@mouseenter="labelHover(scope.row, 'icon', true, false, $event)"
|
||||
@mouseleave="labelHover(scope.row, 'icon', false, false)"
|
||||
>
|
||||
<div>
|
||||
<img v-if="scope.row[item.prop]" :url="scope.row[item.prop]" class="table-image"/>
|
||||
</div>
|
||||
</div>
|
||||
<el-dropdown-menu slot="dropdown" class="right-box-select-top right-public-box-dropdown-top">
|
||||
<el-dropdown-item v-has="'model_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="'model_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-has="'model_delete'" :command="['delete-rel', scope.row, {forceDeleteShow:true, single:true,from:'model'}]"><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-menu>
|
||||
</el-dropdown>
|
||||
<span v-else-if="scope.row[item.prop]" :class="item.prop === 'remark'? 'el-table-remark':''">{{scope.row[item.prop]}}</span>
|
||||
<span v-else>-</span>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column
|
||||
:resizable="false"
|
||||
:width="operationWidth"
|
||||
fixed="right">
|
||||
<div slot="header" class="table-operation-title">{{$t('overall.option')}}</div>
|
||||
<div slot-scope="scope" class="table-operation-items">
|
||||
<!-- <button class="table-operation-item" v-has="'model_edit'" @click="$emit('edit', scope.row)" :title="$t('overall.edit')"><i class="nz-icon nz-icon-edit"></i></button> -->
|
||||
<button class="table-operation-item" @click="showBottomBox('asset', scope.row)" :title="$t('overall.view')"><i class="nz-icon nz-icon-view1"></i></button>
|
||||
<el-dropdown size="medium" v-has="['model_delete','main_edit','model_edit']" trigger="click" @command="tableOperation">
|
||||
<div class="table-operation-item table-operation-item--more" :title="$t('overall.moreOperations')">
|
||||
<i class="nz-icon nz-icon-more3"></i>
|
||||
</div>
|
||||
<el-dropdown-menu slot="dropdown" class="right-box-select-top right-public-box-dropdown-top">
|
||||
<el-dropdown-item v-has="'model_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="'model_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-has="'model_delete'" :command="['delete-rel', scope.row, {forceDeleteShow:true, single:true,from:'model'}]"><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-menu>
|
||||
</el-dropdown>
|
||||
</div>
|
||||
</el-table-column>
|
||||
<template slot="empty">
|
||||
<div v-if="!loading" class="table-no-data">
|
||||
<svg class="icon" aria-hidden="true">
|
||||
<use xlink:href="#nz-icon-no-data-list"></use>
|
||||
</svg>
|
||||
<div class="table-no-data__title">No results found</div>
|
||||
</div>
|
||||
<div v-else> </div>
|
||||
</template>
|
||||
</el-table>
|
||||
<nzTooltip
|
||||
v-if="alertLabelShow"
|
||||
:id="alertLabelId"
|
||||
:that="alertLabelObj"
|
||||
:width="200"
|
||||
:type="alertLabelType"
|
||||
@tipHover='tipHover'
|
||||
ref="nzTooltip"
|
||||
class="data-column__"
|
||||
>
|
||||
<div style="word-break: break-all">
|
||||
<div name="default">
|
||||
<span class="copy-value-content" :title="$t('overall.duplicate')" v-if="alertLabelType !== 'icon'"> <i class="nz-icon nz-icon-override" @click="copyValue(alertLabelObj[alertLabelType])"></i></span>
|
||||
<pre v-if="alertLabelType !== 'icon'" class="copy-value-content__pre">{{JSON.stringify(alertLabelObj[alertLabelType],null,2)}}</pre>
|
||||
<img :src="alertLabelObj" style="width: 200px;height: 200px" v-if="alertLabelType === 'icon'"/>
|
||||
</div>
|
||||
</div>
|
||||
</el-table-column>
|
||||
<template slot="empty">
|
||||
<div v-if="!loading" class="table-no-data">
|
||||
<svg class="icon" aria-hidden="true">
|
||||
<use xlink:href="#nz-icon-no-data-list"></use>
|
||||
</svg>
|
||||
<div class="table-no-data__title">No results found</div>
|
||||
</div>
|
||||
<div v-else> </div>
|
||||
</template>
|
||||
</el-table>
|
||||
</nzTooltip>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
import table from '@/components/common/mixin/table'
|
||||
import copy from '@/components/common/copy'
|
||||
import alertLabelMixin from '@/components/common/mixin/alertLabelMixin'
|
||||
export default {
|
||||
name: 'softwareTypeTable',
|
||||
mixins: [table],
|
||||
mixins: [table, alertLabelMixin],
|
||||
components: { copy },
|
||||
props: {
|
||||
loading: Boolean
|
||||
@@ -113,29 +148,29 @@ export default {
|
||||
minWidth: 350,
|
||||
sortable: 'custom'
|
||||
}, {
|
||||
label: this.$t('category'),
|
||||
label: this.$t('softwareType.category'),
|
||||
prop: 'category',
|
||||
show: true,
|
||||
width: 200,
|
||||
sortable: 'custom'
|
||||
}, {
|
||||
label: this.$t('icon'),
|
||||
label: this.$t('config.menus.icon'),
|
||||
prop: 'icon',
|
||||
show: true,
|
||||
width: 120,
|
||||
sortable: 'custom'
|
||||
}, {
|
||||
label: this.$t('params'),
|
||||
label: this.$t('config.assetLabel.params'),
|
||||
prop: 'params',
|
||||
minWidth: 200,
|
||||
show: false
|
||||
show: true
|
||||
}, {
|
||||
label: this.$t('cts'),
|
||||
label: this.$t('issue.createTime'),
|
||||
prop: 'cts',
|
||||
minWidth: 200,
|
||||
show: false
|
||||
}, {
|
||||
label: this.$t('uts'),
|
||||
label: this.$t('alert.silence.upTime'),
|
||||
prop: 'uts',
|
||||
minWidth: 200,
|
||||
show: false
|
||||
@@ -149,7 +184,21 @@ export default {
|
||||
}
|
||||
},
|
||||
methods: {
|
||||
|
||||
copyValue (item) {
|
||||
const str = item
|
||||
// const domUrl = document.createElement('input')
|
||||
// domUrl.value = JSON.stringify(str)
|
||||
// domUrl.id = 'creatDom'
|
||||
// document.body.appendChild(domUrl)
|
||||
// domUrl.select() // 选择对象
|
||||
// document.execCommand('Copy') // 执行浏览器复制命令
|
||||
// const creatDom = document.getElementById('creatDom')
|
||||
// creatDom.parentNode.removeChild(creatDom)
|
||||
// this.$message.success(this.$t('overall.copySuccess'))
|
||||
this.$copyText(JSON.stringify(str)).then(() => {
|
||||
this.$message.success({ message: this.$t('overall.copySuccess') })
|
||||
})
|
||||
}
|
||||
},
|
||||
created () {
|
||||
},
|
||||
|
||||
@@ -53,8 +53,8 @@
|
||||
<div class="personal-avatar"><span>{{name ? name.substr(0, 1) : ''}}</span> <i class="nz-icon nz-icon-arrow-down"></i></div>
|
||||
<el-dropdown-menu slot="dropdown" class="right-public-box-select-top right-public-box-dropdown-top" style="width: 142px; line-height: 36px;">
|
||||
<div class="personal-dropdown">
|
||||
<div class="personal-dropdown__username">{{name}}</div>
|
||||
<div class="personal-dropdown__name">@{{username}}</div>
|
||||
<div class="personal-dropdown__username" :title="name">{{name}}</div>
|
||||
<div class="personal-dropdown__name" :title="username">@{{username}}</div>
|
||||
</div>
|
||||
<el-dropdown-item>
|
||||
<div id="header-to-profile" @click="showPinDialog"><i class="nz-icon nz-icon-user"></i>{{$t('overall.personalCenter')}}</div>
|
||||
|
||||
@@ -223,7 +223,7 @@ export default {
|
||||
state: '1',
|
||||
dialogShowText: false,
|
||||
dialogText: '',
|
||||
url: 'alert/message',
|
||||
url: '/alert/message/query',
|
||||
// 导出相关
|
||||
importBox: { show: false, title: this.$t('overall.exportExcel'), type: 1, record: 'all', format: 1 },
|
||||
deleteBox: { show: false, ids: '', remark: '', state: 2 },
|
||||
@@ -451,16 +451,53 @@ export default {
|
||||
renderDefaultParams () {
|
||||
const q = JSON.parse(this.$route.query.body)
|
||||
this.state = q.state
|
||||
this.searchTime[0] = this.momentTz(q.startAt)
|
||||
this.searchTime[1] = this.momentTz(q.endAt)
|
||||
this.searchTime[0] = q.startAt ? this.momentTz(q.startAt) : ''
|
||||
this.searchTime[1] = q.endAt ? this.momentTz(q.endAt) : ''
|
||||
this.searchTime[2] = q.timeType
|
||||
switch (q.timeType) {
|
||||
if (!q.startAt) {
|
||||
this.searchTime[2] = 'all'
|
||||
}
|
||||
console.log(this.searchTime[2], this.searchTime[0], this.searchTime[1])
|
||||
switch (this.searchTime[2]) {
|
||||
case '5m' :
|
||||
this.defaultPick = 1
|
||||
break
|
||||
case '15m' :
|
||||
this.defaultPick = 2
|
||||
break
|
||||
case '30m' :
|
||||
this.defaultPick = 3
|
||||
break
|
||||
case '1h' :
|
||||
this.defaultPick = 4
|
||||
break
|
||||
case '3h' :
|
||||
this.defaultPick = 5
|
||||
break
|
||||
case '6h' :
|
||||
this.defaultPick = 6
|
||||
break
|
||||
case '12h' :
|
||||
this.defaultPick = 7
|
||||
break
|
||||
case '1d' :
|
||||
this.defaultPick = 8
|
||||
break
|
||||
case '24h' :
|
||||
this.defaultPick = 8
|
||||
break
|
||||
case '2d' :
|
||||
this.defaultPick = 9
|
||||
break
|
||||
case '7d' :
|
||||
this.defaultPick = 10
|
||||
break
|
||||
case '30d' :
|
||||
this.defaultPick = 11
|
||||
break
|
||||
case 'all' :
|
||||
this.defaultPick = 12
|
||||
break
|
||||
default:
|
||||
this.defaultPick = 0
|
||||
}
|
||||
@@ -806,11 +843,11 @@ export default {
|
||||
if (this.searchTime && this.searchTime.length > 1 && this.searchTime[0] && this.searchTime[1]) {
|
||||
this.$set(this.searchLabel.body, 'startAt', [bus.timeFormate(this.timezoneToUtcTime(bus.formateTimeToTime(this.searchTime[0])), 'YYYY-MM-DD HH:mm:ss')])
|
||||
this.$set(this.searchLabel.body, 'endAt', [bus.timeFormate(this.timezoneToUtcTime(bus.formateTimeToTime(this.searchTime[1])), 'YYYY-MM-DD HH:mm:ss')])
|
||||
this.$set(this.searchLabel.body, 'state', this.state)
|
||||
} else {
|
||||
delete this.searchLabel.startAt
|
||||
delete this.searchLabel.endAt
|
||||
delete this.searchLabel.body.startAt
|
||||
delete this.searchLabel.body.endAt
|
||||
}
|
||||
this.$set(this.searchLabel.body, 'state', this.state)
|
||||
if (this.$route.path === '/alertMessage') {
|
||||
this.$set(this.searchLabel, 'statistics', 1)
|
||||
}/* else {
|
||||
@@ -827,8 +864,9 @@ export default {
|
||||
const path = this.fromRoute.alertMessage
|
||||
const routePathParams = this.$lodash.cloneDeep(param)
|
||||
delete routePathParams.statistics
|
||||
routePathParams.body.startAt = this.momentStrToTimestamp(this.searchTime[0])
|
||||
routePathParams.body.endAt = this.momentStrToTimestamp(this.searchTime[1])
|
||||
console.log(this.searchTime)
|
||||
routePathParams.body.startAt = this.searchTime[0] ? this.momentStrToTimestamp(this.searchTime[0]) : ''
|
||||
routePathParams.body.endAt = this.searchTime[1] ? this.momentStrToTimestamp(this.searchTime[1]) : ''
|
||||
routePathParams.body.timeType = this.searchTime[2]
|
||||
routePathParams.body = JSON.stringify(routePathParams.body)
|
||||
this.updatePath(routePathParams, path)
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
<template>
|
||||
<span class="nz-alert-tag" :class="['nz-alert-tag_' + type]" :style="{cursor: cursorPoint ? 'default' : 'default'}" @click="$emit('click')">
|
||||
<span class="nz-alert-tag__label"> {{label=='dc'?'datacenter':label}}</span>
|
||||
<span class="nz-alert-tag__label" :title="label=='dc'?'datacenter':label"> {{label=='dc'?'datacenter':label}}</span>
|
||||
<span class="nz-alert-tag__content"><span v-if="!!regex"> ~ </span> <slot></slot></span>
|
||||
</span>
|
||||
</template>
|
||||
|
||||
@@ -51,7 +51,6 @@
|
||||
</template>
|
||||
<template v-slot="slotProps">
|
||||
<softwareTypeTable
|
||||
|
||||
ref="dataTable"
|
||||
:orderByFa="orderBy"
|
||||
v-my-loading="tools.loading"
|
||||
@@ -34,6 +34,7 @@
|
||||
:table-data="tableData"
|
||||
@del="del"
|
||||
@edit="edit"
|
||||
@copy="copy"
|
||||
@orderBy="tableDataSort"
|
||||
@reload="getTableData"
|
||||
@selectionChange="selectionChange"></menu-table>
|
||||
|
||||
@@ -12,7 +12,7 @@
|
||||
trigger="hover"
|
||||
:content="userList.name">
|
||||
<div slot="reference">
|
||||
<span :class="(mfaEnable == '1' || mfaLevel > 0)?'MfaName':'name'">
|
||||
<span :class="(mfaEnable == '1' || mfaLevel > 0)?'MfaName':'name'" :title="userList.username">
|
||||
{{userList.name}}
|
||||
</span>
|
||||
<span class="profile-left__header-username-span" v-show="mfaEnable == '1' || mfaLevel > 0">2FA</span>
|
||||
@@ -23,7 +23,7 @@
|
||||
trigger="hover"
|
||||
:content="'@' + userList.username">
|
||||
<div slot="reference">
|
||||
<span :class="(mfaEnable == '1' || mfaLevel > 0)?'MfaName':'name'">
|
||||
<span :class="(mfaEnable == '1' || mfaLevel > 0)?'MfaName':'name'" :title="userList.username">
|
||||
@{{userList.username}}
|
||||
</span>
|
||||
</div>
|
||||
|
||||
@@ -5,7 +5,7 @@
|
||||
<ul class="integration-list">
|
||||
<li class="integration-item" @click="talonDetail">
|
||||
<img class="integration-icon" :src="talon.icon" alt="">
|
||||
<h2 class="integration-name">{{talon.name}}</h2>
|
||||
<h2 class="integration-name" :title="talon.name">{{talon.name}}</h2>
|
||||
<p class="integration-remark">{{talon.remark}}</p>
|
||||
<!-- <div class="integration-internal">{{$t('integration.internal')}}</div>-->
|
||||
</li>
|
||||
@@ -38,7 +38,7 @@
|
||||
<img :src="detailsObj.icon" alt="">
|
||||
</div>
|
||||
<div class="integration-dialog-introduce">
|
||||
<h2 class="integration-name">{{detailsObj.name}}</h2>
|
||||
<h2 class="integration-name" :title="detailsObj.name">{{detailsObj.name}}</h2>
|
||||
<p class="integration-remark">{{$t(detailsObj.remark)}}</p>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
@@ -24,7 +24,7 @@
|
||||
:label="item.name"
|
||||
:value="item.id">
|
||||
<div class="subnet-item">
|
||||
<div class="subnet-item-left">{{item.name}}</div>
|
||||
<div class="subnet-item-left" :title="item.name">{{item.name}}</div>
|
||||
<div class="subnet-item-right">{{item.addr}}/{{item.mask}}</div>
|
||||
</div>
|
||||
</el-option>
|
||||
|
||||
@@ -234,7 +234,7 @@ export default new Router({
|
||||
},
|
||||
{
|
||||
path: '/softwareType',
|
||||
component: resolve => require(['@/components/page/software/softwareType'], resolve)
|
||||
component: resolve => require(['@/components/page/asset/software/softwareType'], resolve)
|
||||
}
|
||||
]
|
||||
},
|
||||
|
||||
Reference in New Issue
Block a user