Newer
Older
urbanLifeline_YanAn / src / views / oneMap / ConstructionEvaluation / JSPGRightBox.vue
@leishan leishan on 12 Oct 7 KB yangshi
<template>
  <!-- 绩效管理 -->
  <div class="management">
    <div class="ListBoxHeader">
      <div class="ListBoxHeader_font">管理绩效</div>
    </div>
    <!-- 年份切换 -->
    <div class="subRightBox">
      <div
        class="headcenter"
        v-for="(item, index) in categoryList"
        :key="item"
        :class="activedname == item.name ? 'activedright' : ''"
        @click="categoryclick(item, index)"
      >
        {{ item.name }}
      </div>
    </div>
    <!-- 2023 -->
    <div class="managementBox">
      <!-- 循环 -->
      <div class="listBox">
        <div class="title">立法及长效机制</div>
        <div class="progress">
          <div class="ratio flex flex-align-center">
            <div class="one">年度进度</div>
            <div class="two"><div class="in"><div class="zb" :style="{width:`${30}%`}"></div></div></div>
            <div class="three">70%</div>
          </div>
          <div class="ratio flex flex-align-center">
            <div class="one">总体进度</div>
            <div class="two"><div class="in"><div class="zb" :style="{width:`${60}%`}"></div></div></div>
            <div class="three">70%</div>
          </div>
        </div>
      </div>
    </div>
  </div>
  <!-- 满意度 -->
  <div class="SatisfactionLevel">
    <div class="ListBoxHeader">
      <div class="ListBoxHeader_font">满意度</div>
    </div>
    <div class="mydContent">
      <div class="list flex flex-justcontent-spacebetween">
        <div class="mydBox flex flex-justcontent-spacebetween flex-align-center" style="width:49%">
          <div class="left">目标</div>
          <div class="right">96.17%</div>
        </div>
        <div class="mydBox flex flex-justcontent-spacebetween flex-align-center" style="width:49%">
          <div class="left">结果</div>
          <div class="right">96.17%</div>
        </div>
      </div>
      <div class="list flex flex-justcontent-spacebetween">
        <div class="listBox flex flex-justcontent-spacebetween">问卷数<span>324</span></div>
        <div class="listBox flex flex-justcontent-spacebetween">反馈数<span>324</span></div>
        <div class="listBox flex flex-justcontent-spacebetween">五星评分数<span>324</span></div>
      </div>
      <div class="list">
        <div class="mydBox flex flex-justcontent-spacebetween flex-align-center">
          <div class="left">满意率</div>
          <div class="right">96.17%<span>明细</span></div>
        </div>
      </div>
    </div>
  </div>
</template>

<script setup>
import { ref, reactive, toRefs, onMounted, onBeforeUnmount } from 'vue';
const categoryList = ref([
  { name: '2023', value: 1 },
  { name: '2024', value: 2 },
  { name: '2025', value: 3 },
]);
const activedname = ref('2023');
// 点击事件
function categoryclick(val) {
  activedname.value = val.name;
}
</script>

<style lang="scss" scoped>
.management {
  width: 450px;
  height: calc(100vh - 300px);

  .subRightBox {
    width: 450px;
    margin:10px auto;
    height:35px;
    display: flex;
    cursor: pointer;
    font-size: 14px;
    color: #ffffff;

    .headcenter {
      width: 136px;
      height: 26px;
      padding: 4px 3px;
      background: #00344f;
      text-align: center;
      margin-top: 3px;
      margin-left: 10px;
    }
    .activedright {
      border: 1px solid #2cfce9;
      color: #e4f5ff;
      background: #166f84;
    }
  }
  .managementBox {
    padding: 0 10px;
    height: calc(100% - 95px);
    overflow: auto;
    .listBox{
      background:rgba(7, 86, 128, 0.6);
      border: 1px solid #1CF5FC;
      padding: 0 10px;
      overflow: hidden;
      margin-bottom:10px;
      .title{
        line-height: 34px;
        font-weight: 500;
        font-size: 14px;
        color: #1CF5FC;
      }
      .progress{
        overflow: hidden;
        .ratio{
          padding-bottom: 10px;
          overflow: hidden;
          font-weight: 400;
          font-size: 14px;
          color: #FFFFFF;
          .one{
            width: 64px;
          }
          .two{
            flex:1;
            height: 16px;
            border-radius: 2px;
            border: 1px solid rgba(223, 254, 255, 0.15);
            padding: 5px 9px;
            overflow: hidden;
            .in{
              height: 100%;
              background: rgba(94, 167, 255, 0.3);
              border-radius: 2px;
            }
            .zb{
              background: linear-gradient(90deg, rgba(0, 246, 255, 0.3) 40%,rgba(0, 246, 255, 0.85) 80%, rgba(197, 253, 255, 1) 100%);
              height: 100%;
              border-radius: 2px;
              position: relative;
              &::after{
                content: '';
                width:7px;
                height:7px;
                background: rgba(197, 253, 255, 1);
                position: absolute;
                right:0;
                top:50%;
                transform: translateY(-50%);
                border-radius: 50%;
                box-shadow: 0 0 10px rgba(223, 254, 255, 1);
              }
            }
          }
          .three{
            width: 46px;
            text-align: right;
          }
        }
      }
    }
  }
}
.SatisfactionLevel {
  width: 450px;
  height: 180px;
  // background: red;
  .mydContent {
    margin: 5px auto;
    width: 430px;
    height: calc(100% - 60px);
    .list{
      overflow: hidden;
      margin-bottom: 10px;
    }
    .mydBox{
      height: 32px;
      background: rgba(7, 86, 128, 0.6);
      border: 1px solid #02B9C3;
      box-shadow: 0 0 10px #02B9C3 inset;
      font-weight: 400;
      font-size: 14px;
      color: #FFFFFF;
      border-left: 2px solid rgba(0, 242, 255, 1);
      padding-left: 35px;
      padding-right: 10px;
      position: relative;
      &::before{
        content: '';
        width: 12px;
        height: 10px;
        background: url('@/assets/images/zhhm/jb.png') no-repeat;
        background-size: 100% 100%;
        position: absolute;
        left: 12px;
        top: 50%;
        transform: translateY(-50%);
      }
      &::after{
        content: '';
        width: 27px;
        height: 1px;
        background:rgba(0, 242, 255, 1);
        position: absolute;
        left: 50%;
        top: 50%;
        transform: translate(-50%,-50%);
      }
      .right{
        font-weight: 500;
        font-size: 16px;
        color: #FFED98;
        font-family: DINPro;
        span{
          font-weight: 400;
          font-size: 14px;
          color: #5FE889;
          margin-left: 10px;
        }
      }
    }
    .listBox{
      width: 32%;
      line-height: 32px;
      background: linear-gradient(0deg, #102755 0%, #009DAB 0%, #034D66 100%);
      border-radius: 4px;
      border: 1px solid #1CF5FC;
      font-weight: 400;
      font-size: 14px;
      color: #FFFFFF;
      padding: 0 10px;
      span{
        font-weight: 500;
        font-size: 16px;
        color: #12F9FF;
      }
    }
  }
}
.ListBoxHeader {
  height: 44px;
  line-height: 50px;
  width: 98%;
  background: url('@/assets/newImgs/partBg.png') no-repeat;
  background-size: 100% 100%;
  display: flex;
  align-items: center;
  justify-content: space-between;
  margin: 7px 0px 0px 8px;
  .ListBoxHeader_font {
    font-family: PangMenZhengDao;
    font-weight: 400;
    font-size: 23px;
    color: #ebfeff;
    padding-left: 34px;
  }
}
</style>