licp
2024-12-31 5c8aaba66c16b1a143fdec27e29ad36eaefd1e3a
src/components/view/b4-inspection-item-statistics.vue
@@ -10,61 +10,67 @@
        <el-date-picker
          v-model="time.week"
          type="week"
          format="yyyy-MM-dd"
          format="yyyy 第 WW 周"
          placeholder="选择周" size="small" v-if="type=='周'" @change="m=>changeTime(type,m)">
        </el-date-picker>
        <el-date-picker
          v-model="time.month"
          type="month"
          placeholder="选择月" format="yyyy-MM-dd" size="small" v-if="type=='月'" @change="m=>changeTime(type,m)">
          placeholder="选择月" size="small" v-if="type=='月'" @change="m=>changeTime(type,m)">
        </el-date-picker>
        <el-date-picker
          v-model="time.year"
          type="year"
          placeholder="选择年" format="yyyy-MM-dd" size="small" v-if="type=='年'" @change="m=>changeTime(type,m)">
          placeholder="选择年" size="small" v-if="type=='年'" @change="m=>changeTime(type,m)">
        </el-date-picker>
      </div>
      <el-row :gutter="20">
        <el-col :xs="12" :sm="8" :md="6" :lg="4" :xl="4" style="margin-bottom: 16px;">
          <div class="inspection-card inspection-head">
            <div class="inspection-head-left">
              <h4>本{{type}}项目接收</h4>
              <span >{{ pageData.RECEVICE }}</span>
              <div class="inspection-head-left-info">
                <img :src="`../../../static/img/daliy-${pageData.RECEIVE_RATIO<0?'down':'up'}.svg`" alt="">
                <span :class="{active:pageData.RECEIVE_RATIO<0}" class="num" v-html="`&nbsp; ${handleData(pageData.RECEIVE_RATIO)}%&nbsp; `"></span>
                <span style="font-size: 12px;">较上{{type}}</span>
          <div class="inspection-card">
            <div class="inspection-head">
              <div class="inspection-head-left">
                <h4>本{{type}}项目接收</h4>
                <span >{{ pageData.RECEVICE }}</span>
              </div>
              <img src="../../../static/img/daliy-0.svg" alt="" srcset="">
            </div>
            <img src="../../../static/img/daliy-0.svg" alt="" srcset="">
            <div class="inspection-head-left-info">
              <img :src="`../../../static/img/daliy-${pageData.RECEIVE_RATIO<0?'down':'up'}.svg`" alt="">
              <span :class="{active:pageData.RECEIVE_RATIO<0}" class="num" v-html="`&nbsp; ${handleData(pageData.RECEIVE_RATIO)}%&nbsp; `"></span>
              <span style="font-size: 12px;">较上{{type}}</span>
            </div>
          </div>
        </el-col>
        <el-col :xs="12" :sm="8" :md="6" :lg="4" :xl="4" style="margin-bottom: 16px;">
          <div class="inspection-card inspection-head">
            <div class="inspection-head-left">
              <h4>本{{type}}项目完成</h4>
              <span >{{ pageData.FINISHE }}</span>
              <div class="inspection-head-left-info">
                <img :src="`../../../static/img/daliy-${pageData.FINISHE_RATIO<0?'down':'up'}.svg`" alt="">
                <span :class="{active:pageData.FINISHE_RATIO<0}" class="num" v-html="`&nbsp; ${handleData(pageData.FINISHE_RATIO)}%&nbsp; `"></span>
                <span style="font-size: 12px;">较上{{type}}</span>
          <div class="inspection-card">
            <div class="inspection-head">
              <div class="inspection-head-left">
                <h4>本{{type}}项目完成</h4>
                <span >{{ pageData.FINISHE }}</span>
              </div>
              <img src="../../../static/img/daliy-1.svg" alt="" srcset="">
            </div>
            <img src="../../../static/img/daliy-1.svg" alt="" srcset="">
            <div class="inspection-head-left-info">
              <img :src="`../../../static/img/daliy-${pageData.FINISHE_RATIO<0?'down':'up'}.svg`" alt="">
              <span :class="{active:pageData.FINISHE_RATIO<0}" class="num" v-html="`&nbsp; ${handleData(pageData.FINISHE_RATIO)}%&nbsp; `"></span>
              <span style="font-size: 12px;">较上{{type}}</span>
            </div>
          </div>
        </el-col>
        <el-col :xs="12" :sm="8" :md="6" :lg="4" :xl="4" style="margin-bottom: 16px;">
          <div class="inspection-card inspection-head">
            <div class="inspection-head-left">
              <h4>本{{type}}项目剩余</h4>
              <span >{{ pageData.SURPLUS }}</span>
              <div class="inspection-head-left-info">
                <img :src="`../../../static/img/daliy-${pageData.SURPLUS_RATIO<0?'down':'up'}.svg`" alt="">
                <span :class="{active:pageData.SURPLUS_RATIO<0}" class="num" v-html="`&nbsp; ${handleData(pageData.SURPLUS_RATIO)}%&nbsp; `"></span>
                <span style="font-size: 12px;">较上{{type}}</span>
          <div class="inspection-card">
            <div class="inspection-head">
              <div class="inspection-head-left">
                <h4>本{{type}}项目剩余</h4>
                <span >{{ pageData.SURPLUS }}</span>
              </div>
              <img src="../../../static/img/daliy-2.svg" alt="" srcset="">
            </div>
            <img src="../../../static/img/daliy-2.svg" alt="" srcset="">
            <div class="inspection-head-left-info">
              <img :src="`../../../static/img/daliy-${pageData.SURPLUS_RATIO<0?'down':'up'}.svg`" alt="">
              <span :class="{active:pageData.SURPLUS_RATIO<0}" class="num" v-html="`&nbsp; ${handleData(pageData.SURPLUS_RATIO)}%&nbsp; `"></span>
              <span style="font-size: 12px;">较上{{type}}</span>
            </div>
          </div>
        </el-col>
        <el-col :xs="12" :sm="8" :md="6" :lg="4" :xl="4" style="margin-bottom: 16px;">
@@ -257,6 +263,7 @@
        if (res.code == 201) return
        this.pageData = this.HaveJson(res.data)
        let xData = res.data.DAYS.map(m=>{
          let arr = m.split('-')
          if(this.type=='年'){
            return `${arr[1]}月`
          }else{
@@ -303,10 +310,10 @@
            case '月':
              const year = new Date(this.time.month).getFullYear();
              const month = new Date(this.time.month).getMonth();
              const day = new Date(year, month + 1, 0).getDate(); //
              // 设置起始日期和结束日期
              this.startTime = new Date(year, month, 1).toISOString().slice(0, 10); // 月初
              this.endTime = new Date(year, month + 1, 0).toISOString().slice(0, 10); // 月末
              this.startTime = `${year}-${month + 1}-01`
              this.endTime = `${year}-${month + 1}-${day}` // 月末
              break;
            case '年':
              const year0 = new Date(this.time.year).getFullYear();
@@ -317,6 +324,7 @@
        }else{
          this.startTime = getYearAndMonthAndDays(new Date((new Date).getTime() - 24 * 60 * 60 * 1000))
          this.endTime = getYearAndMonthAndDays(new Date((new Date).getTime() + 24 * 60 * 60 * 1000 * 5))
          this.time.week = new Date()
        }
        this.init()
      }
@@ -342,11 +350,11 @@
    background: #FFFFFF;
    border-radius: 14px;
    box-shadow: 6px 6px 54px 0px rgba(0,0,0,0.05);
    padding: 16px;
  box-sizing: border-box;
  }
  .inspection-head{
    padding: 16px;
    box-sizing: border-box;
    display: flex;
    justify-content: space-between;
    align-items: flex-start;
@@ -363,23 +371,23 @@
  .inspection-head-left>span{
    font-family: Nunito Sans-Bold;color: #202224;
    font-weight: bold;
    font-size: 28px;
    font-size: 24px;
    display: inline-block;
    margin-bottom: 16px;
    margin-bottom: 18px;
  }
  .inspection-head-left .inspection-head-left-info{
  .inspection-head-left-info{
    display: flex;
    align-items: center;
    font-size: 16px;
    color: #202224;
  }
  .inspection-head-left .inspection-head-left-info .num{
  .num{
    color: #00B69B;
  }
  .inspection-head-left .inspection-head-left-info .num.active{
  .num.active{
    color: #F93C65;
  }