index.vue 5.12 KB
<template>
  <div class="commonList">
    <ul class="left_bar">
      <li
        v-for="(item, index) in leftBar"
        :key="index"
        :class="index == activeBar ? 'activeBar' : ''"
        @click="changeActive(index)"
      >
        {{ item.name }}
      </li>
    </ul>
    <div v-if="!showText" class="right_list">
      <div class="list_title">
        {{ leftBar[activeBar].name }}
      </div>
      <ul class="list">
        <li v-for="(item, index) in leftBar[activeBar].list" :key="index">
          <div class="leftImg">
            <img src="~@/assets/img/Home/shenghuo.png" alt="" />
          </div>
          <div class="rightCon">
            <div class="top">
              <div class="rc_title">{{ item.title }}</div>
              <div class="rc_date">{{ item.time }}</div>
            </div>
            <div class="bottom" @click="viewDetail(index)">查看</div>
          </div>
        </li>
      </ul>
    </div>
    <div v-if="showText" class="right_content">
      <div class="breadcum">
        <div
          v-for="(item, index) in showTitle"
          :key="index"
          :class="[index != showTitle.length - 1 ? 'before' : 'now']"
          @click="back(index)"
        >
          {{ item }}<span v-if="index != showTitle.length - 1"> / </span>
        </div>
      </div>
      {{ showText }}
    </div>
  </div>
</template>
<script>
export default {
  data() {
    return {
      activeBar: 0,
      leftBar: [
        {
          name: "筛查",
          list: [
            {
              id: 1,
              title: "筛查数据的科学性",
              text: "123",
              time: "2022/06-30",
            },
            {
              id: 2,
              title: "筛查数据的科学性",
              text: "1",
              time: "2022/06-30",
            },
          ],
        },
        {
          name: "生活",
        },
        {
          name: "医学知识",
        },
        {
          name: "其他",
        },
      ],
      showText: "",
      showTitle: [],
    }
  },
  mounted() {
    console.log(this.$route)
    if (this.$route.query.tabIndex) {
      this.activeBar = this.$route.query.tabIndex
    }
  },
  methods: {
    changeActive(i) {
      this.activeBar = i
      this.showText = ""
    },
    viewDetail(i) {
      this.showText = this.leftBar[this.activeBar].list[i].text
      this.showTitle[0] = this.leftBar[this.activeBar].name
      this.showTitle[1] = this.leftBar[this.activeBar].list[i].title
      console.log(this.showText)
    },
    back(index) {
      if (index == 0) {
        this.showText = ""
      }
    },
  },
}
</script>
<style lang="scss" scoped>
.commonList {
  display: flex;
  justify-content: space-between;
  .left_bar {
    width: 188px;
    height: 760px;
    background: #ffffff;
    border-radius: 4px;
    padding: 20px 0;
    li {
      width: 188px;
      height: 52px;
      font-size: 16px;
      font-family: AlibabaPuHuiTiM;
      display: flex;
      justify-content: center;
      align-items: center;
      cursor: pointer;
      // background: rgba(78, 104, 255, 0.1);
    }
    .activeBar {
      color: #4e68ff;
      background: rgba(78, 104, 255, 0.1);
    }
  }
  .right_list {
    width: calc(100% - 208px);
    height: 760px;
    background: #ffffff;
    border-radius: 4px;
    padding: 32px;
    .list_title {
      height: 37px;
      font-size: 16px;
      font-family: AlibabaPuHuiTiR;
      color: rgba(0, 0, 0, 0.8);
      border-bottom: 1px solid #efefef;
    }
    .list {
      li {
        display: flex;
        align-items: center;
        margin-top: 20px;
        .leftImg {
          width: 132px;
          height: 98px;
          border-radius: 4px;
          margin-right: 20px;
          img {
            width: 100%;
            height: 100%;
          }
        }
        .rightCon {
          display: flex;
          flex-direction: column;
          justify-content: space-between;
          height: 98px;
          .rc_title {
            font-size: 16px;
            font-family: AlibabaPuHuiTiR;
            color: #333333;
          }
          .rc_date {
            font-size: 14px;
            font-family: Roboto-Regular, Roboto;
            font-weight: 400;
            color: #999999;
          }
          .bottom {
            cursor: pointer;
            width: 68px;
            height: 28px;
            background: rgba(78, 104, 255, 0.1);
            border-radius: 16px;
            text-align: center;
            font-size: 14px;
            font-family: PingFangSC-Regular, PingFang SC;
            font-weight: 400;
            color: #4e68ff;
            line-height: 28px;
            &:hover {
              background: rgba(78, 104, 255, 0.2);
            }
          }
        }
      }
    }
  }
  .right_content {
    width: calc(100% - 208px);
    height: 760px;
    background: #ffffff;
    border-radius: 4px;
    padding: 32px;
  }
}
.breadcum {
  display: flex;

  .before {
    font-size: 16px;
    font-family: AlibabaPuHuiTiR;
    color: rgba(0, 0, 0, 0.4);
    cursor: pointer;
    &:hover {
      color: #4e68ff;
    }
  }
  .now {
    margin-left: 5px;
    font-size: 16px;
    font-family: AlibabaPuHuiTiR;
  }
}
</style>