leftcard.vue 5.58 KB
<template>
  <div class="leftcard">
    <div class="card">
      <div class="cardhead">区县接入</div>
      <div class="cardcontent">
        <ul class="cardcontent-left d-center">
          <div class="rjjrlList">
            <p v-for="(item, index) in qxjrlList" class="d-center qxjr" :key="index">
              {{ item }}
            </p>
          </div>
          <li>总量</li>
        </ul>
        <div class="cardcontent-right d-center">
          <p>
            <span>失败</span>
            <span class="bad">{{ qxerrer }}</span>
          </p>
          <p>
            <span>成功率</span>
            <span class="cg">{{ qxcgl }}</span>
          </p>
        </div>
      </div>
    </div>
    <div class="carda mt-15">
      <div class="cardhead">省厅汇交</div>
      <div class="cardcontent">
        <ul class="cardcontent-left d-center">
          <div class="rjjrlList">
            <p v-for="(item, index) in stjrlList" class="d-center sthj" :key="index">
              {{ item }}
            </p>
          </div>
          <li>总量</li>
        </ul>
        <div class="cardcontent-right d-center">
          <p>
            <span>失败</span>
            <span class="bad">{{ sterrer }}</span>
          </p>
          <p>
            <span>成功率</span>
            <span class="cg">{{ stcgl }}</span>
          </p>
        </div>
      </div>
    </div>
    <div class="card1 mt-15">
      <div class="cardhead">各区县数据上报统计</div>
      <columnar />
    </div>
  </div>
</template>

<script>

import columnar from "@/components/Echart/Columnar";
import work from "@/api/work";
export default {
  data () {
    return {
      // 日均接入量
      qxerrer: "",
      qxsuccess: "",
      sterrer: "",
      stsuccess: "",
      qxjrl: "",
      stjrl: "",
      qxcgl: "",
      stcgl: ""
    };
  },
  mounted () {
    this.getsthjqxjrtotal();
  },
  components: { columnar },
  computed: {
    qxjrlList: function () {
      return this.qxjrl && this.qxjrl.toString().split("");
    },
    stjrlList: function () {
      return this.stjrl && this.stjrl.toString().split("");
    },
  },
  methods: {
    getsthjqxjrtotal () {
      return new Promise(async (resolve) => {
        try {
          let p = {
            DJLX: "",
            QLLX: "",
            XZQDM: "",
          };
          let res = await work.getsthjqxjrtotal(p);
          this.stjrl=res.result.stsum
          this.qxjrl=res.result.qxsum
          this.qxerrer=Number(res.result.qxjrerrer)
          this.sterrer=Number(res.result.sthjerrer)
          if(res.result.sum=="0"){
             this.qxcgl="100%"
             this.stcgl="100%"
          }else{
            let qxcglnum=Number(res.result.qxjrsuccess)/this.qxjrl*100
            let stcgl=Number(res.result.sthjsuccess)/this.qxjrl*100
          this.qxcgl=qxcglnum.toFixed(2)+"%";
          this.stcgl=stcgl.toFixed(2)+"%";

          }
        } catch (error) {
          this.$refs.msg.messageShow();
        }
      });
    },
  },
};
</script>

<style lang="scss" scoped>
.leftcard {
  width: 32%;
    height: calc(100% -110px);
  display: flex;
  flex-direction: column;

  .card {
    background: url("~@/image/qxjr.png") no-repeat;
    background-size: 100% 100%;
    position: relative;
    text-align: center;
    width: 100%;
   height: 22%;
  }
  .carda {
    background: url("~@/image/sthj.png") no-repeat;
    background-size: 100% 100%;
    position: relative;
    text-align: center;
    width: 100%;
    height: 22%;
  }

  // .card1 {
  //   background: url("~@/image/sbtj.png") no-repeat;
  //     background-size: 100% 100%;
  //   position: relative;
  //   text-align: center;
  //   width: 100%;
  //   padding: .0417rem 0;
  //   height: 49%;
  // }

  .card1 {
    background: url("~@/image/sbtj.png") no-repeat;
    background-size: 100% 100%;
    position: relative;
    box-sizing: border-box;
    flex: 1;
    height: 56%;
  }

  .cardhead {
    color: #02d9fd;
    line-height: .125rem;
    letter-spacing: .0104rem;
    position: absolute;
    font-size: .1042rem;
    left: 0;
    right: 0;
    margin: auto;
    text-align: center;
    top: 8px;
    font-weight: 700;
  }

  .rjjrlList {
    display: flex;
    margin-top: .01781rem;

    .qxjr {
      background: url("~@/image/jrl3.png");
      background-size: 100% 100%;
    }

    .sthj {
      background: url("~@/image/jh.png");
       background-size: 100% 100%;
    }

   p {
      margin: 0 .0156rem .0521rem .0156rem;
      font-weight: 700;
      width: .195rem;
      height: .2475rem;
      font-size: .2863rem;
      font-size: .2867rem;
    }
  }

  .cardcontent {
    width: 100%;
    height: 100%;
    display: flex;
    // padding: 35px 20px 20px 20px;
    box-sizing: border-box;
    color: #e3f1ff;
    margin-top: .1263rem;

    .cardcontent-left {
      width: 60%;
      flex-direction: column;
      position: relative;
       li{
      font-size: .1042rem;
    }
    }

    .cardcontent-left::before {
      position: absolute;
      right: 0;
      top: .3042rem;
      content: "";
      width: .0052rem;
      height: .4688rem;
      background: linear-gradient(180deg,
          #091b4c 0%,
          #47b5e0 56%,
          #091b4c 100%);
    }

    .cardcontent-right {
      flex: 1;
      width: 100%;
      flex-direction: column;
      font-size: .0833rem;

      .bad {
        color: #c97168;
      }

      .cg {
        color: #5fba7d;
      }

      p {
        margin-bottom: .0417rem;

        span:nth-child(1) {
          margin-right: .0781rem;
        }

        span:nth-child(2) {
          font-size: .1042rem;
          font-weight: 900;
        }
      }
    }
  }
}
</style>