| | |
| | | <template> |
| | | <div class="inspection-main"> |
| | | <div class="inspection-main" v-loading="loading"> |
| | | <div class="inspection-content" style="height:100%"> |
| | | <!-- <p style="font-size: 16px;padding:19.5px 0px">检测项目统计</p> --> |
| | | <el-row :gutter="20"> |
| | |
| | | <div class="inspection-card inspection-head"> |
| | | <div class="inspection-head-left"> |
| | | <h4>今日项目接收</h4> |
| | | <span >2453</span> |
| | | <span >{{ pageData.RECEVICE }}</span> |
| | | <div class="inspection-head-left-info"> |
| | | <img src="../../../static/img/daliy-up.svg" alt=""> |
| | | <span :class="{active:false}" class="num"> 8.5% </span> |
| | | <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;">较昨天</span> |
| | | </div> |
| | | </div> |
| | |
| | | <div class="inspection-card inspection-head"> |
| | | <div class="inspection-head-left"> |
| | | <h4>今日项目完成</h4> |
| | | <span >1687</span> |
| | | <span >{{ pageData.FINISHE }}</span> |
| | | <div class="inspection-head-left-info"> |
| | | <img src="../../../static/img/daliy-up.svg" alt=""> |
| | | <span :class="{active:false}" class="num"> 8.5% </span> |
| | | <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;">较昨天</span> |
| | | </div> |
| | | </div> |
| | |
| | | <div class="inspection-card inspection-head"> |
| | | <div class="inspection-head-left"> |
| | | <h4>今日项目剩余</h4> |
| | | <span >766</span> |
| | | <span >{{ pageData.SURPLUS }}</span> |
| | | <div class="inspection-head-left-info"> |
| | | <img src="../../../static/img/daliy-down.svg" alt=""> |
| | | <span :class="{active:true}" class="num"> 8.5% </span> |
| | | <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;">较昨天</span> |
| | | </div> |
| | | </div> |
| | |
| | | type:'line' |
| | | }, |
| | | chartData0:{ |
| | | xData:['4-11','4-12','4-13','4-14','4-15','4-16','4-17','4-18','4-19','4-20'], |
| | | xData:[], |
| | | yData:[ |
| | | { |
| | | title:'项目接收量', |
| | | data:[10,20,10,40,50,20,70,40,90,50] |
| | | data:[] |
| | | } |
| | | ] |
| | | }, |
| | |
| | | type:'bar' |
| | | }, |
| | | chartData1:{ |
| | | xData:['4-11','4-12','4-13','4-14','4-15','4-16','4-17','4-18','4-19','4-20'], |
| | | xData:[], |
| | | yData:[ |
| | | { |
| | | title:'今日接收', |
| | | data:[10,20,10,40,50,20,70,40,90,50] |
| | | data:[] |
| | | }, |
| | | { |
| | | title:'今日完成', |
| | | data:[15,10,6,33,66,44,56,77,44,55] |
| | | data:[] |
| | | }, |
| | | ] |
| | | }, |
| | |
| | | }, |
| | | chartData2:{ |
| | | title:'今日项目合格率', |
| | | percentage:'68%', |
| | | percentage:'0', |
| | | color:['#1CCAB8','#E1E4E8'], |
| | | data:[ |
| | | { |
| | | name:'合格', |
| | | value:'68' |
| | | value:'0' |
| | | }, |
| | | { |
| | | name:'不合格', |
| | | value:'32' |
| | | value:'0' |
| | | }, |
| | | ] |
| | | }, |
| | |
| | | }, |
| | | chartData3:{ |
| | | title:'今日项目完成率', |
| | | percentage:'68%', |
| | | percentage:'0', |
| | | color:['#FBB647','#E1E4E8'], |
| | | data:[ |
| | | { |
| | | name:'完成', |
| | | value:'68' |
| | | value:'0' |
| | | }, |
| | | { |
| | | name:'未完成', |
| | | value:'32' |
| | | value:'0' |
| | | }, |
| | | ] |
| | | }, |
| | |
| | | }, |
| | | chartData4:{ |
| | | title:'今日项延期率', |
| | | percentage:'68%', |
| | | percentage:'0', |
| | | color:['#FF3838','#E1E4E8'], |
| | | data:[ |
| | | { |
| | | name:'延期', |
| | | value:'68' |
| | | value:'0' |
| | | }, |
| | | { |
| | | name:'未延期', |
| | | value:'32' |
| | | value:'0' |
| | | }, |
| | | ] |
| | | }, |
| | | loading:false, |
| | | pageData:{}, |
| | | timers:null |
| | | } |
| | | }, |
| | | mounted(){ |
| | | this.init() |
| | | this.timers&&clearInterval(this.timers); |
| | | setInterval(this.init(),1000*60*5) |
| | | }, |
| | | methods:{ |
| | | init(){ |
| | | this.chartConfig0.isLoading = false |
| | | this.chartConfig1.isLoading = false |
| | | this.chartConfig2.isLoading = false |
| | | this.chartConfig3.isLoading = false |
| | | this.chartConfig4.isLoading = false |
| | | this.loading = true; |
| | | this.$axios.get(this.$api.report.testProductByDay).then(res => { |
| | | if (res.code == 201) return |
| | | this.pageData = this.HaveJson(res.data) |
| | | let xData = res.data.DAYS.map(m=>{ |
| | | let arr = m.split('-') |
| | | return `${arr[1]}-${arr[2]}` |
| | | }) |
| | | this.chartData0.xData = xData |
| | | this.chartData1.xData = xData |
| | | this.chartData0.yData[0].data = this.pageData.RECETENDAYS |
| | | this.chartData1.yData[0].data = this.pageData.RECETENDAYS |
| | | this.chartData1.yData[1].data = this.pageData.FINISHTENDAYS |
| | | this.chartData2.percentage = (this.pageData.ACCEPT_RATE_TODAY*100).toFixed(0)+'%' |
| | | this.chartData3.percentage = (this.pageData.FINISH_RATE_TODAY*100).toFixed(0)+'%' |
| | | this.chartData4.percentage = (this.pageData.DELAY_RATE_TODAY*100).toFixed(0)+'%' |
| | | this.chartData2.data[0].value = this.pageData.ACCEPT |
| | | this.chartData2.data[1].value = this.pageData.FINISHE - this.pageData.ACCEPT |
| | | this.loading = false; |
| | | this.chartData3.data[0].value = this.pageData.FINISHE |
| | | this.chartData3.data[1].value = this.pageData.RECEVICE - this.pageData.FINISHE |
| | | this.chartData4.data[0].value = this.pageData.SURPLUS |
| | | this.chartData4.data[1].value = this.pageData.RECEVICE - this.pageData.SURPLUS |
| | | this.chartConfig0.isLoading = true |
| | | this.chartConfig1.isLoading = true |
| | | this.chartConfig2.isLoading = true |
| | | this.chartConfig3.isLoading = true |
| | | this.chartConfig4.isLoading = true |
| | | }) |
| | | }, |
| | | handleData(val){ |
| | | if(val){ |
| | | let num = Math.abs(val)*100 |
| | | return num.toFixed(0); |
| | | }else{ |
| | | return '0' |
| | | } |
| | | } |
| | | }, |
| | | deactivated(){ |
| | | this.timers&&clearInterval(this.timers); |
| | | } |
| | | } |
| | | </script> |