Merge branch 'dev-2.0' of https://git.mesalab.cn/nezha/nezha-fronted into dev-3.1

This commit is contained in:
zhangyu
2021-10-19 09:47:35 +08:00
6 changed files with 72 additions and 21 deletions

View File

@@ -2,6 +2,15 @@
width: 100%;
height: calc(100% - 60px);
display: flex;
.no-data{
flex: 1;
display: flex;
align-items: center;
width: 100%;
justify-content: center;
color: #909399;
font-size: 14px;
}
.nz-detail-view-left{
width: 260px;
display: flex;

View File

@@ -17,9 +17,16 @@
</button>
</div>
<ul class="detail-row-box" ref="dataTable">
<li v-for="(item,index) in tableData" :key="index" class="detail-row" @click="detailViewRightShow(item)" :class="item.id === detailViewRightObj.id ? 'selected' : ''">
<li
v-for="(item,index) in tableData"
:key="index"
class="detail-row"
:class="item.id === detailViewRightObj.id ? 'selected' : ''"
@click="detailViewRightShow(item)"
@mouseenter="labelHover(item, 'asset', true, $event)"
@mouseleave="labelHover(item, 'asset', false)">
<div class="detail-row-info">
<div class="asset-manageIp" :title="item.name">
<div class="asset-manageIp">
<el-popover :content="$t('asset.assetStatPre')+(item.pingInfo.lastUpdate?utcTimeToTimezoneStr(item.pingInfo.lastUpdate):$t('asset.assetStatDown'))" v-if="item.pingInfo" placement="right" trigger="hover">
<span slot="reference">
<span :class="{'active-icon green-bg':item.pingInfo.status == 1,'active-icon red-bg':item.pingInfo.status == 0}"></span>
@@ -31,6 +38,12 @@
</div>
<div class="asset-name" :title="item.manageIp">{{item.manageIp}}</div>
</div>
<alertLabel
v-if="item && item.loading"
:id="item.id"
:that="item"
:type="'asset'"
></alertLabel>
</li>
</ul>
</div>
@@ -39,10 +52,13 @@
<script>
import detailViewLeftMixin from '@/components/common/mixin/detailViewLeftMixin'
import alertLabel from '@/components/common/alert/alertLabel'
export default {
name: 'assetDetail',
mixins: [detailViewLeftMixin],
components: {
alertLabel
},
data () {
return {
tableTitle: [
@@ -146,6 +162,18 @@ export default {
}
]
}
},
methods: {
// label 鼠标划入
labelHover (item, type, loading, e) {
if (e) {
const dom = e.currentTarget
const position = dom.getBoundingClientRect()
this.$set(item, 'position', position)
}
this.$set(item, 'loading', loading)
// this.$set(this.tableData,index,item);// 调用父组件
},
}
}
</script>

View File

@@ -32,13 +32,16 @@
<!-- <div v-if="showLayout.indexOf('pagination') > -1" class="pagination-top pagination-top-hide display-none"></div>-->
</div>
<div :style="{ height: nzTableHeight }" class="nz-detail-view">
<div class="nz-detail-view-left">
<div class="nz-detail-view-left" v-if="dataLength">
<slot name="nz-detail-view-list"></slot>
<div v-if="showLayout.indexOf('pagination') > -1" class="nz-detail-view-pagination">
<slot name="pagination"></slot>
</div>
</div>
<div class="nz-detail-view-right">
<div v-else class="no-data">
No Data
</div>
<div class="nz-detail-view-right" v-if="detailViewRightObj">
<detailViewRight
@getTableData = 'getTableData'
ref="detailViewRight"
@@ -79,6 +82,10 @@ export default {
customTableTitle: {
type: Array
},
dataLength: {
type: Number,
default: 1
},
layout: {
type: Array,
default () { return [] }

View File

@@ -112,8 +112,8 @@
<el-tab-pane :label="$t('project.endpoint.basic')" name="Basic">
<!--type-->
<el-form-item :label='$t("project.endpoint.protocol")' class="half-form-item" prop="type">
<el-select id="module-box-input-type" v-model="editEndpoint.configs[0].config.protocol" :disabled="!!editEndpoint.id || true" class="right-box__select" placeholder="" popper-class="prevent-clickoutside" size="small" value-key="id">
<el-option v-for="item in typeList" :id="'module-type-'+item.id" :key="item.value" :label="item.name" :value="item.value"></el-option>
<el-select id="module-box-input-type" v-model="editEndpoint.configs[0].config.protocol" :disabled="!!editEndpoint.id && editEndpoint.configs[0].config.protocol === 'snmp'" class="right-box__select" placeholder="" popper-class="prevent-clickoutside" size="small" value-key="id">
<el-option v-for="item in typeList" :id="'module-type-'+item.id" :key="item.value" :label="item.name" :value="item.value" :disabled="item.disabled && !!editEndpoint.id"></el-option>
</el-select>
</el-form-item>
<!--host-->
@@ -680,15 +680,18 @@ export default {
typeList: [
{
value: 'http',
name: 'HTTP'
},
{
value: 'snmp',
name: 'SNMP'
name: 'HTTP',
disabled: false
},
{
value: 'https',
name: 'HTTPS'
name: 'HTTPS',
disabled: false
},
{
value: 'snmp',
name: 'SNMP',
disabled: true
}
],
logsBasicList: [

View File

@@ -93,8 +93,8 @@
<el-tab-pane :label="$t('project.endpoint.basic')" name="Basic">
<!--type-->
<el-form-item :label='$t("project.endpoint.protocol")' class="half-form-item" prop="type">
<el-select id="module-box-input-type" v-model="editModule.configs[0].config.protocol" :disabled="!!editModule.id" class="right-box__select" placeholder="" popper-class="right-box-select-top right-public-box-dropdown-top right-box-public-dropdown prevent-clickoutside" size="small" value-key="id" @change="changeBasicType">
<el-option v-for="item in typeList" :id="'module-type-'+item.id" :key="item.value" :label="item.name" :value="item.value"></el-option>
<el-select id="module-box-input-type" v-model="editModule.configs[0].config.protocol" :disabled="!!editModule.id && editModule.configs[0].config.protocol === 'snmp'" class="right-box__select" placeholder="" popper-class="right-box-select-top right-public-box-dropdown-top right-box-public-dropdown prevent-clickoutside" size="small" value-key="id" @change="changeBasicType">
<el-option v-for="item in typeList" :id="'module-type-'+item.id" :key="item.value" :label="item.name" :value="item.value" :disabled="item.disabled && !!editModule.id"></el-option>
</el-select>
</el-form-item>
<!--host-->
@@ -653,15 +653,18 @@ export default {
typeList: [
{
value: 'http',
name: 'HTTP'
},
{
value: 'snmp',
name: 'SNMP'
name: 'HTTP',
disabled: false
},
{
value: 'https',
name: 'HTTPS'
name: 'HTTPS',
disabled: false
},
{
value: 'snmp',
name: 'SNMP',
disabled: true
}
],
logsBasicList: [

View File

@@ -10,6 +10,7 @@
:search-msg="searchMsg"
:detailType="detailType"
:detailViewRightObj="detailViewRightObj"
:dataLength="tableData.length"
@search="search"
@changeDetailType="changeDetailType"
>