| | |
| | | <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="` ${handleData(pageData.RECEIVE_RATIO)}% `"></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="` ${handleData(pageData.RECEIVE_RATIO)}% `"></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="` ${handleData(pageData.FINISHE_RATIO)}% `"></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="` ${handleData(pageData.FINISHE_RATIO)}% `"></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="` ${handleData(pageData.SURPLUS_RATIO)}% `"></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="` ${handleData(pageData.SURPLUS_RATIO)}% `"></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;"> |
| | |
| | | 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{ |
| | |
| | | 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(); |
| | |
| | | }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() |
| | | } |
| | |
| | | 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; |
| | |
| | | .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; |
| | | } |
| | | |