Newer
Older
carbon-metering-front / src / views / count / list.vue
<script lang="ts" setup name="countPagelist">
const list = ref([
  {
    title: '直接排放',
    child: [
      {
        title: '固定燃烧',
        point: 'fixedCombustion',
      },
      {
        title: '移动燃烧',
        point: 'mobileCombustion',
      },
      {
        title: '能源转换加工',
        point: 'energyProcessing',
      },
      // {
      //   title: '工艺排放',
      // },
    ],
  },
  {
    title: '间接排放',
    child: [
      {
        title: '购入电力',
        point: 'electric',
      },
      {
        title: '购入热力',
        point: 'heating',
      },
    ],
  },
  {
    title: '碳抵消',
    child: [
      {
        title: '分布式光伏',
        point: 'photovoltaic',
      },
    ],
  },
])
const target = (row: any) => {
  (document.querySelector(`#${row.point}`) as Element).scrollIntoView({ behavior: 'smooth', block: 'end', inline: 'nearest' })
}
</script>

<template>
  <div class="container" style="margin-top: 40px;">
    <div v-for="item in list" :key="item.title" class="item">
      {{ item.title }}
      <div v-for="child in item.child" :key="child.title" class="child" @click="target(child)">
        {{ child.title }}
      </div>
    </div>
  </div>
</template>

<style lang="scss" scoped>
.container {
  position: fixed;
  overflow: hidden;
  border-right: 1px solid #000;
  width: 11%;
  top: 100px;

  .item {
    padding-left: 10px;
    color: goldenrod;
    line-height: 1.5;

    .child {
      padding-left: 40px;
      color: #008d68;
      line-height: 1.5;

      &:hover {
        cursor: pointer;
      }
    }
  }
}
</style>