screenFront/src/views/legionProducts/chart/scrollBoard.vue

114 lines
2.7 KiB
Vue
Raw Normal View History

2023-05-12 08:41:33 +00:00
<template>
<div class="box">
<div class="box-title">{{t('messages.LegionDevList')}}</div>
<div class="box-body">
<dv-scroll-board ref="devList" :config="prop.config" @mouseover="dvMouseover" @mouseend="dvmouseleave"
@click="dvClick" :style="{
width: '100%',
height: '100%',
}" />
<el-tooltip v-model:visible="visible" :content="tipcontent" placement="top" effect="light" trigger="click" popper-class="tooltip-class"
2023-05-12 08:41:33 +00:00
virtual-triggering :virtual-ref="triggerRef" />
</div>
</div>
</template>
<script setup lang='ts'>
import { getCurrentInstance, onMounted, reactive, ref, defineProps } from "vue";
import { devListType } from "@/type/InPlantProducts";
import { useRouter } from "vue-router"
import { useI18n } from 'vue-i18n'
let {t} = useI18n();
const prop = defineProps({
config: Object,
severdata: Array
})
const router = useRouter()
//弹窗文本
let tipcontent = ref(null)
//弹窗显示与隐藏
let visible = ref(false)
//存储弹窗dom
let triggerRef = ref(null)
/**
* @函数功能: 鼠标移入组件方法
* @param {*} value
* @出口参数:
* @函数备注:
*/
const dvMouseover = (value) => {
if (value.toElement && value.toElement.innerHTML&&value.toElement.className == 'ceil') {
triggerRef.value = value.toElement
2023-05-18 06:57:42 +00:00
tipcontent.value = value.toElement.innerText
2023-05-12 08:41:33 +00:00
visible.value = true
}
};
/**
* @函数功能: 鼠标移出组件方法
* @出口参数:
* @函数备注:
*/
const dvmouseleave = () => {
triggerRef.value = null
tipcontent.value = null
visible.value = false
};
const dvClick = (value) => {
if (value.row) {
prop.severdata.forEach((res:any) => {
if (res.index == value.row[0]) {
router.push({
name: "devItem",
params: {
id: res.id,
label: res.label,
name: res.name,
},
});
}
});
}
};
</script>
<style scoped>
.box {
width: 100%;
height: 100%;
display: flex;
flex-direction: column;
justify-content: space-around;
}
.box-title {
width: 100%;
padding: 10px;
font-size: 20px;
color: #fff;
text-align: center;
font-weight: bold;
}
.box-body {
width: 100%;
height: 90%;
display: flex;
justify-content: space-around;
align-items: center;
}
:deep(.dv-scroll-board .rows .ceil) {
overflow: auto;
white-space: pre-wrap;
text-overflow: none
}
</style>
<style>
.el-popper.tooltip-class{
color: #fff !important;
}
</style>