licp
2024-12-20 d975fc4756806f5b51f006c19c33571b9b8c0b3b
src/components/view/b4-daily-business-statistics.vue
@@ -10,103 +10,115 @@
      <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="daily-card daily-head">
          <div class="daily-head-left">
            <h4>本{{type}}任务接收</h4>
            <span>{{ pageData.RECEIVE }}</span>
            <div class="daily-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="daily-card">
          <div class="daily-head">
            <div class="daily-head-left">
              <h4>本{{type}}任务接收</h4>
              <span>{{ pageData.RECEIVE }}</span>
            </div>
            <img src="../../../static/img/daliy-0.svg" alt="" srcset="">
          </div>
          <img src="../../../static/img/daliy-0.svg" alt="" srcset="">
          <div class="daily-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="daily-card daily-head">
          <div class="daily-head-left">
            <h4>本{{type}}任务完成</h4>
            <span >{{ pageData.FINISHE }}</span>
            <div class="daily-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="daily-card">
          <div class="daily-head">
            <div class="daily-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="daily-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="daily-card daily-head">
          <div class="daily-head-left">
            <h4>本{{type}}任务剩余</h4>
            <span >{{ pageData.SURPLUS }}</span>
            <div class="daily-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="daily-card">
          <div class="daily-head">
            <div class="daily-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="daily-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;">
        <div class="daily-card daily-head">
          <div class="daily-head-left">
            <h4>本{{type}}检测费用</h4>
            <span>¥{{ handlePrice(pageData.PRICE) }}</span>
            <div class="daily-head-left-info">
              <img :src="`../../../static/img/daliy-${pageData.PRICE_RATIO<0?'down':'up'}.svg`" alt="">
              <span :class="{active:pageData.PRICE_RATIO}" class="num" v-html="`&nbsp; ${handleData(pageData.PRICE_RATIO)}%&nbsp; `"></span>
              <span style="font-size: 12px;">较上{{type}}</span>
        <div class="daily-card">
          <div class="daily-head">
            <div class="daily-head-left">
              <h4>本{{type}}检测费用</h4>
              <span>¥{{ handlePrice(pageData.PRICE) }}</span>
            </div>
            <img src="../../../static/img/daliy-3.svg" alt="" srcset="">
          </div>
          <img src="../../../static/img/daliy-3.svg" alt="" srcset="">
          <div class="daily-head-left-info">
            <img :src="`../../../static/img/daliy-${pageData.PRICE_RATIO<0?'down':'up'}.svg`" alt="">
            <span :class="{active:pageData.PRICE_RATIO<0}" class="num" v-html="`&nbsp; ${handleData(pageData.PRICE_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="daily-card daily-head">
          <div class="daily-head-left">
            <h4>本{{type}}检测工时</h4>
            <span>{{pageData.COST}}</span>
            <div class="daily-head-left-info">
              <img :src="`../../../static/img/daliy-${pageData.COST_RATIO<0?'down':'up'}.svg`" alt="">
              <span :class="{active:pageData.COST_RATIO<0}" class="num" v-html="`&nbsp; ${handleData(pageData.COST_RATIO)}%&nbsp; `"></span>
              <span style="font-size: 12px;">较上{{type}}</span>
        <div class="daily-card">
          <div class="daily-head">
            <div class="daily-head-left">
              <h4>本{{type}}检测工时</h4>
              <span>{{pageData.COST}}</span>
            </div>
            <img src="../../../static/img/daliy-4.svg" alt="" srcset="">
          </div>
          <img src="../../../static/img/daliy-4.svg" alt="" srcset="">
          <div class="daily-head-left-info">
            <img :src="`../../../static/img/daliy-${pageData.COST_RATIO<0?'down':'up'}.svg`" alt="">
            <span :class="{active:pageData.COST_RATIO<0}" class="num" v-html="`&nbsp; ${handleData(pageData.COST_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="daily-card daily-head">
          <div class="daily-head-left">
            <h4>本{{type}}检测人员</h4>
            <span >{{ pageData.PERSON }}</span>
            <div class="daily-head-left-info">
              <img :src="`../../../static/img/daliy-${pageData.PERSON_RATIO<0?'down':'up'}.svg`" alt="">
              <span :class="{active:pageData.PERSON_RATIO<0}" class="num" v-html="`&nbsp; ${handleData(pageData.PERSON_RATIO)}%&nbsp; `"></span>
              <span style="font-size: 12px;">较上{{type}}</span>
        <div class="daily-card">
          <div class="daily-head">
            <div class="daily-head-left">
              <h4>本{{type}}检测人员</h4>
              <span >{{ pageData.PERSON }}</span>
            </div>
            <img src="../../../static/img/daliy-5.svg" alt="" srcset="">
          </div>
          <img src="../../../static/img/daliy-5.svg" alt="" srcset="">
          <div class="daily-head-left-info">
            <img :src="`../../../static/img/daliy-${pageData.PERSON_RATIO<0?'down':'up'}.svg`" alt="">
            <span :class="{active:pageData.PERSON_RATIO<0}" class="num" v-html="`&nbsp; ${handleData(pageData.PERSON_RATIO)}%&nbsp; `"></span>
            <span style="font-size: 12px;">较上{{type}}</span>
          </div>
        </div>
      </el-col>
    </el-row>
@@ -251,10 +263,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();
@@ -265,14 +277,13 @@
      }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()
    },
    handlePrice(val){
      if(val>999999){
        return (val/1000000).toFixed(2)+'百万';
      }else if(val>99999){
        return (val/100000).toFixed(2)+'十万';
      }else if(val>9999){
        return (val/10000).toFixed(2)+'万';
      }else{
@@ -301,11 +312,11 @@
  background: #FFFFFF;
  border-radius: 14px;
  box-shadow: 6px 6px 54px 0px rgba(0,0,0,0.05);
  padding: 16px;
  box-sizing: border-box;
}
.daily-head{
  padding: 16px;
  box-sizing: border-box;
  display: flex;
  justify-content: space-between;
  align-items: flex-start;
@@ -322,22 +333,22 @@
.daily-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: 12px;
}
.daily-head-left .daily-head-left-info{
.daily-head-left-info{
  display: flex;
  align-items: center;
  font-size: 16px;
  color: #202224;
}
.daily-head-left .daily-head-left-info .num{
.num{
  color: #00B69B;
}
.daily-head-left .daily-head-left-info .num.active{
.num.active{
  color: #F93C65;
}