This repository has been archived on 2025-09-14. You can view files and clone it, but cannot push or open issues or pull requests.
Files
nezha-nezha-fronted/nezha-fronted/src/components/chart/chartHeader.vue

93 lines
4.2 KiB
Vue
Raw Normal View History

2021-11-19 09:40:21 +08:00
<template>
<div :class="{'chart-header--float': !chartInfo.param.showHeader}" class="chart-header">
<span v-if="isError" class="chart-header-error">
2021-12-17 09:47:50 +08:00
<el-popover
placement="top-start"
:close-delay=10
trigger="hover"
popper-class="chart-error-popper">
<div >{{errorText}}</div>
<span slot="reference" class="panel-info-corner panel-info-corner--error">
<i class="nz-icon nz-icon-warning fa"></i>
<span class="panel-info-corner-inner"></span>
</span>
</el-popover>
</span>
<span v-if="!isError&&!showAllData&&allDataLength>20" class="chart-header-error moreTitle">
2021-12-23 10:44:30 +08:00
<el-popover
placement="top-start"
:close-delay=10
trigger="hover"
popper-class="chart-warring-popper">
<div class="moreTitle">{{$t('dashboard.panel.moreTitle')}}{{$t('dashboard.panel.showAll')}}{{allDataLength}}</div>
<span slot="reference" class="panel-info-corner panel-info-corner--error" @click="loadMore">
<i class="nz-icon nz-icon-warning fa"></i>
<span class="panel-info-corner-inner"></span>
</span>
</el-popover>
</span>
2021-12-13 20:30:33 +08:00
<div class="chart-header__title" v-if="!isGroup">{{chartInfo.name}}</div>
<div class="chart-header__title" v-else >
<span @click="groupShow"> <i class="nz-icon" :class="chartInfo.param.collapse ? 'nz-icon-arrow-right': 'nz-icon-arrow-down'"></i></span>
{{chartInfo.name}}
</div>
<div class="chart-header__tools" v-if="chartInfo.type !== 'endpointInfo' && chartInfo.type !== 'assetInfo'">
2021-12-24 16:06:17 +08:00
<span v-if="chartInfo.param.link" class="chart-header__tool" @click="openUrl">
<i class="nz-icon nz-icon-more-app tool__icon"></i>
</span>
2021-11-19 09:40:21 +08:00
<span v-if="chartInfo.remark" class="chart-header__tool">
<el-tooltip :content="chartInfo.remark" effect="light" placement="top">
<i class="nz-icon nz-icon-info-normal tool__icon"></i>
</el-tooltip>
</span>
<span class="chart-header__tool" @click="refreshChart">
<el-tooltip :content="$t('dashboard.refresh')" effect="light" placement="top">
<i class="nz-icon nz-icon-replay tool__icon"></i>
</el-tooltip>
</span>
2021-12-01 20:27:23 +08:00
<span v-if="from !== this.$CONSTANTS.fromRoute.chartTemp" class="chart-header__tool" @click="showFullscreen">
2021-11-19 09:40:21 +08:00
<el-tooltip :content="$t('dashboard.screen')" effect="light" placement="top">
<i class="nz-icon nz-icon-maxview tool__icon"></i>
</el-tooltip>
</span>
<span class="chart-header__tool">
<el-dropdown v-clickoutside="clickos" trigger="click">
<i class="el-icon-more tool__icon" @click.stop="dropdownMenuShow = !dropdownMenuShow"></i>
<el-dropdown-menu style="display: none"></el-dropdown-menu>
<ul v-show="dropdownMenuShow" slot="dropdown" class="el-dropdown-menu nz-chart-dropdown">
<li class="el-dropdown-menu__item" @click="editChart">
<i class="nz-icon nz-icon-edit" style="font-size: 16px;"></i>
<span>{{$t('dashboard.edit')}}</span>
</li>
<li v-has="'panel_chart_delete'" class="el-dropdown-menu__item" @click="removeChart">
<i class="nz-icon nz-icon-delete" style="font-size: 16px;"></i>
<span>{{$t('dashboard.delete')}}</span>
</li>
<li v-has="'panel_chart_add'" class="el-dropdown-menu__item" @click="duplicate">
<i class="el-icon-copy-document" style="font-size: 16px;"></i>
<span>{{$t('dashboard.duplicate')}}</span>
</li>
<li v-if="from !== this.$CONSTANTS.fromRoute.chartTemp && chartInfo.pid" v-has="'panel_chart_edit'" class="el-dropdown-menu__item" @click="$emit('sync')">
<i class="nz-icon nz-icon-sync" style="font-size: 16px;"></i>
<span>{{$t('overall.syncChart')}}</span>
</li>
</ul>
</el-dropdown>
</span>
</div>
</div>
</template>
<script>
2021-12-23 10:44:30 +08:00
import chartHeaderMixin from '@/components/chart/chartHeaderMixin'
2021-11-19 09:40:21 +08:00
export default {
name: 'chartHeader',
2021-12-23 10:44:30 +08:00
mixins: [chartHeaderMixin],
2021-12-24 16:06:17 +08:00
methods: {
openUrl () {
window.open(this.chartInfo.param.link)
}
}
2021-11-19 09:40:21 +08:00
}
</script>