2024-03-24 04:31:33 +08:00

144 lines
3.6 KiB
Vue

<template>
<div class="time-scale-up-wrapper">
</div>
<div class="time-scale-wrapper" :style="`left: ${currentX}px; width: ${300}px;`">
<div class="current-display-cursor-up">
<div class="time-scale-value">{{ currentX }} {{ timeScaleManage.unit }}</div>
<div class="time-scale-down"></div>
</div>
<div class="time-scale-line"></div>
<div class="current-display-cursor-down">
<div class="time-scale-value">{{ currentX }} {{ timeScaleManage.unit }}</div>
<div class="time-scale-up"></div>
</div>
</div>
<div class="time-scale-down-wrapper">
</div>
</template>
<script>
import { onMounted, reactive } from 'vue';
import { globalLookup, emitter } from '@/hook/global';
import { handleTimeScale } from '@/hook/utils';
import { wheelScale } from '@/hook/wheel';
export default {
name: 'time-scale',
setup() {
// see --sidebar-width
const left = 280 + 20;
// see --right-nav-width
const right = document.body.clientWidth - 60;
const timeScaleManage = reactive({
scale: 1,
unit: 'ns'
});
// 此时有关波形的元信息已经加载完毕
emitter.on('meta-ready', () => {
// const { scale, unit } = handleTimeScale(globalLookup.timescale);
// timeScaleManage.scale = scale;
// timeScaleManage.unit = unit;
// console.log(timeScaleManage.unit);
// const viewInfo = globalLookup.view;
});
// document.addEventListener('wheel', event => {
// if ((event.wheelDelta && event.ctrlKey) || event.detail) {
// event.preventDefault();
// }
// if (event.ctrlKey) {
// // console.log(event.wheelDelta);
// wheelScale(event);
// } else if (event.shiftKey) {
// // console.log(event.wheelDelta);
// console.log('deltaX', event.deltaX);
// console.log('deltaY', event.deltaY);
// }
// }, { capture: false, passive: false });
const currentX = 300;
return {
currentX,
timeScaleManage
}
}
}
</script>
<style>
.time-scale-up-wrapper {
position: absolute;
top: 0;
left: calc(var(--sidebar-width) + 20px);
width: calc(100vw - var(--sidebar-width) - var(--right-nav-width) - 20px);
height: var(--time-scale-height);
background-color: var(--sidebar);
z-index: 50;
cursor: crosshair;
}
.time-scale-down-wrapper {
position: absolute;
bottom: 0;
left: 0;
width: calc(100vw - var(--right-nav-width));
height: var(--time-scale-height);
background-color: var(--sidebar);
z-index: 50;
cursor: crosshair;
}
.time-scale-down {
position: absolute;
bottom: 0;
width: 1px;
height: 10px;
border: 1px solid var(--scrollbar-hover);
background-color: var(--scrollbar-hover);
}
.time-scale-up {
position: absolute;
top: 0;
width: 1px;
height: 10px;
border: 1px solid var(--scrollbar-hover);
background-color: var(--scrollbar-hover);
}
.time-scale-wrapper {
position: absolute;
height: 100vh;
padding: 0;
top: 0;
cursor: crosshair;
z-index: 55;
display: flex;
flex-direction: column;
align-items: center;
/* 沿着横轴(水平方向)对齐 */
justify-content: center;
/* 沿着纵轴(垂直方向)对齐 */
}
.time-scale-value {}
.time-scale-line {
width: 1px;
background-color: var(--scrollbar-hover);
height: calc(100vh - 2 * var(--time-scale-height));
}
</style>