

<template>
<div class="page">
<div class="box">
<div class="menu">
<div class="menu-item" @mouseover="scrollToContent(index)" v-for="(item, index) in items" :key="index" :data-index="index">{{ item.equi_code }}</div>
</div>
<div class="content" ref="content">
<div class="content-item" v-for="(item, index) in items" :key="index" :data-index="index">Content for Item {{ item.name }}</div>
</div>
</div>
</div>
</template>
<script>
import { getEquiList } from "@/api/Ledger";
export default {
data() {
return {
items: [],
params: {
page: 1,
limit: 20
}
};
},
created() {
this.initData();
},
methods: {
async initData() {
const res = await getEquiList(this.params, this);
this.items = res.data.data;
},
scrollToContent(index) {
const contentItem = this.$refs.content.querySelector(`.content-item[data-index="${index}"]`);
if (contentItem) {
contentItem.scrollIntoView({ behavior: "smooth", block: "start", top: contentItem.offsetTop });
}
}
}
};
</script>
<style scoped lang="scss">
.page {
display: flex;
.box {
display: flex;
margin: auto;
.menu {
width: 200px;
height: 500px;
overflow: auto;
background-color: cadetblue;
.menu-item {
padding: 10px;
border-bottom: 1px solid #eee;
cursor: pointer;
&:hover {
background-color: #eee;
}
}
}
.content {
flex: 1;
overflow: auto;
height: 500px;
width: 400px;
background-color: yellowgreen;
.content-item {
padding: 10px;
height: 100px;
border-bottom: 1px solid #eee;
}
}
}
}
</style>