| | |
| | | </el-select> |
| | | </td> |
| | | </tr> |
| | | <tr v-if="item.inspectionItemSubclass&&item.inspectionItemSubclass.includes('低')"> |
| | | <td>电调结果</td> |
| | | <td v-for="(m,i) in item.list0" :key="i"> |
| | | <el-input v-model="m.value" :placeholder="'第'+(i+1)+'次'" size="small" :disabled="state>1" style="display: inline-block;width: 50%;" @change="save(item)"></el-input> |
| | | <el-button icon="el-icon-minus" circle size="mini" type="danger" |
| | | :disabled="state>1" style="margin: 5px;display: inline-block;" @click="deleteList(item.list0,i,m)" ></el-button> |
| | | <el-button icon="el-icon-plus" circle size="mini" type="primary" :disabled="state>1" style="margin: 5px;display: inline-block;" v-if="i==item.list0.length-1&&i<4" @click="addList(item.list0,item.list0.length-1)"></el-button> |
| | | </td> |
| | | </tr> |
| | | <tr style="background-color: #F0F1F5;"> |
| | | <td colspan="2">时间</td> |
| | | <td colspan="1">温度</td> |
| | |
| | | </tr> |
| | | <tr v-for="(m,i) in item.list" :key="i+item.id"> |
| | | <td colspan="2"> |
| | | <el-time-picker |
| | | v-model="m.time" |
| | | placeholder="时间" size="small" editable format="HH:mm" value-format="HH:mm" style="width: 100%;" @change="save(item)" :disabled="state>1"> |
| | | </el-time-picker> |
| | | <el-date-picker |
| | | v-model="m.time" |
| | | placeholder="时间" size="small" editable format="yyyy-MM-dd HH:mm" value-format="yyyy-MM-dd HH:mm" style="width: 100%;" @change="save(item)" :disabled="state>1" type="datetime"> |
| | | </el-date-picker> |
| | | </td> |
| | | <td colspan="1"> |
| | | <el-input v-model="m.temperature" placeholder="温度" size="small" @change ="a=>handleReplace(m,'℃','temperature',item)" :disabled="state>1"></el-input> |
| | |
| | | <td colspan="2"> |
| | | <el-button icon="el-icon-minus" circle size="mini" type="danger" |
| | | @click="deleteList(item.list,i,item)" :disabled="state>1" style="margin: 5px;"></el-button> |
| | | <el-button icon="el-icon-plus" circle size="mini" type="primary" @click="addList(item.list,i)" :disabled="state>1" style="margin: 5px;"></el-button> |
| | | <el-button icon="el-icon-plus" circle size="mini" type="primary" @click="addList(item.list,i,'out')" :disabled="state>1" style="margin: 5px;"></el-button> |
| | | </td> |
| | | </tr> |
| | | </template> |
| | |
| | | if(!item.insProductResult){ |
| | | // 初始化 |
| | | this.$set(item,'list',[]) |
| | | this.$set(item,'list0',[]) |
| | | item.list.push({}) |
| | | item.list0.push({}) |
| | | item.list.forEach(m=>{ |
| | | this.$set(m,'time','') |
| | | this.$set(m,'temperature','') |
| | |
| | | this.$set(m,'temperature',m.temperature) |
| | | this.$set(m,'humidity',m.humidity) |
| | | }) |
| | | if(item.insProductResult.comValue){ |
| | | this.$set(item,'list0',JSON.parse(item.insProductResult.comValue)) |
| | | item.list0.forEach((m,i)=>{ |
| | | this.$set(m,'value',m.value) |
| | | }) |
| | | }else{ |
| | | this.$set(item,'list0',[]) |
| | | item.list0.push({}) |
| | | } |
| | | this.$set(item,'equipValue',item.insProductResult.equipValue?JSON.parse(item.insProductResult.equipValue)[0].v:'') |
| | | this.$set(item,'equipName',item.insProductResult.equipName?JSON.parse(item.insProductResult.equipName)[0].v:'') |
| | | this.$set(item,'beforeCheck',item.insProductResult.beforeCheck) |
| | |
| | | }) |
| | | } |
| | | }, |
| | | addList(arr,i){ |
| | | arr.splice(i+1,0,{ |
| | | time:'', |
| | | temperature:'', |
| | | humidity:'' |
| | | }) |
| | | addList(arr,i,type){ |
| | | if(type=='out'){ |
| | | arr.splice(i+1,0,{ |
| | | value:'', |
| | | }) |
| | | }else{ |
| | | arr.splice(i+1,0,{ |
| | | time:'', |
| | | temperature:'', |
| | | humidity:'' |
| | | }) |
| | | } |
| | | }, |
| | | async methodFocus(item){ |
| | | this.equipOptions = await this.getEquipOptions(item) |
| | |
| | | this.$axios.post(this.$api.insOrderPlan.saveInsContext3, { |
| | | insProductId:item.id, |
| | | insValue:JSON.stringify(item.list), |
| | | comValue:JSON.stringify(item.list0), |
| | | equipValue:item.equipValue, |
| | | equipName:item.equipName, |
| | | num:this.num, |
| | |
| | | <template> |
| | | <div class="daily-main" v-loading="loading"> |
| | | <div class="daily-content" style="height:100%"> |
| | | <!-- <p style="font-size: 16px;padding:19.5px 0px">每日业务统计</p> --> |
| | | <div class="time" style="margin-bottom: 10px;"> |
| | | <el-radio-group v-model="type" size="small"> |
| | | <el-radio-button label="周" ></el-radio-button> |
| | | <el-radio-button label="月"></el-radio-button> |
| | | <el-radio-button label="年"></el-radio-button> |
| | | </el-radio-group> |
| | | <el-date-picker |
| | | v-model="time.week" |
| | | type="week" |
| | | format="yyyy-MM-dd" |
| | | 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)"> |
| | | </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)"> |
| | | </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>今日任务接收</h4> |
| | | <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="` ${handleData(pageData.RECEIVE_RATIO)}% `"></span> |
| | | <span style="font-size: 12px;">较昨天</span> |
| | | <span style="font-size: 12px;">较上{{type}}</span> |
| | | </div> |
| | | </div> |
| | | <img src="../../../static/img/daliy-0.svg" alt="" srcset=""> |
| | |
| | | <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>今日任务完成</h4> |
| | | <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="` ${handleData(pageData.FINISHE_RATIO)}% `"></span> |
| | | <span style="font-size: 12px;">较昨天</span> |
| | | <span style="font-size: 12px;">较上{{type}}</span> |
| | | </div> |
| | | </div> |
| | | <img src="../../../static/img/daliy-1.svg" alt="" srcset=""> |
| | |
| | | <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>今日任务剩余</h4> |
| | | <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="` ${handleData(pageData.SURPLUS_RATIO)}% `"></span> |
| | | <span style="font-size: 12px;">较昨天</span> |
| | | <span style="font-size: 12px;">较上{{type}}</span> |
| | | </div> |
| | | </div> |
| | | <img src="../../../static/img/daliy-2.svg" alt="" srcset=""> |
| | |
| | | <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>今日检测费用</h4> |
| | | <span>¥{{ pageData.PRICE }}</span> |
| | | <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="` ${handleData(pageData.PRICE_RATIO)}% `"></span> |
| | | <span style="font-size: 12px;">较昨天</span> |
| | | <span style="font-size: 12px;">较上{{type}}</span> |
| | | </div> |
| | | </div> |
| | | <img src="../../../static/img/daliy-3.svg" alt="" srcset=""> |
| | |
| | | <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>今日检测工时</h4> |
| | | <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="` ${handleData(pageData.COST_RATIO)}% `"></span> |
| | | <span style="font-size: 12px;">较昨天</span> |
| | | <span style="font-size: 12px;">较上{{type}}</span> |
| | | </div> |
| | | </div> |
| | | <img src="../../../static/img/daliy-4.svg" alt="" srcset=""> |
| | |
| | | <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>今日检测人员</h4> |
| | | <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="` ${handleData(pageData.PERSON_RATIO)}% `"></span> |
| | | <span style="font-size: 12px;">较昨天</span> |
| | | <span style="font-size: 12px;">较上{{type}}</span> |
| | | </div> |
| | | </div> |
| | | <img src="../../../static/img/daliy-5.svg" alt="" srcset=""> |
| | | </div> |
| | | </el-col> |
| | | </el-row> |
| | | <el-row :gutter="20" style="height: calc(100% - 170px);"> |
| | | <el-row :gutter="20" style="height: calc(100% - 200px);"> |
| | | <el-col :xs="24" :sm="24" :md="12" :lg="12" :xl="12" style="margin-bottom: 16px;height: 100%;"> |
| | | <div class="daily-card chart-box" style="height: 100%;"> |
| | | <h4>近10日任务接收量</h4> |
| | | <h4>本{{type}}任务接收量</h4> |
| | | <echart-module :id="'daily-left'" :config="chartConfig0" :datas="chartData0" style="height: calc(100% - 32px);"></echart-module> |
| | | </div> |
| | | </el-col> |
| | | <el-col :xs="24" :sm="24" :md="12" :lg="12" :xl="12" style="margin-bottom: 16px;height: 100%;"> |
| | | <div class="daily-card chart-box" style="height: 100%;"> |
| | | <h4>近10日实际完成任务与接收任务对比</h4> |
| | | <h4>本{{type}}实际完成任务与接收任务对比</h4> |
| | | <echart-module :id="'daily-right'" :config="chartConfig1" :datas="chartData1" style="height: calc(100% - 32px);"></echart-module> |
| | | </div> |
| | | </el-col> |
| | |
| | | <script> |
| | | |
| | | import EchartModule from '../tool/echart.vue' |
| | | import { |
| | | getYearAndMonthAndDays |
| | | } from '../../util/date' |
| | | export default { |
| | | components: {EchartModule}, |
| | | data(){ |
| | |
| | | xData:[], |
| | | yData:[ |
| | | { |
| | | title:'今日接收', |
| | | title:'接收', |
| | | data:[] |
| | | }, |
| | | { |
| | | title:'今日完成', |
| | | title:'完成', |
| | | data:[] |
| | | }, |
| | | ] |
| | |
| | | pageData:{}, |
| | | loading:false, |
| | | timers:null, |
| | | type:'周', |
| | | time:{ |
| | | week:'', |
| | | month:'', |
| | | year:'', |
| | | }, |
| | | startTime:'', |
| | | endTime:'' |
| | | } |
| | | }, |
| | | watch:{ |
| | | type(val){ |
| | | switch(val){ |
| | | case '周': |
| | | this.time.week = new Date() |
| | | this.changeTime(val,this.time.week) |
| | | break; |
| | | case '月': |
| | | this.time.month = new Date() |
| | | this.changeTime(val,this.time.month) |
| | | break; |
| | | case '年': |
| | | this.time.year = new Date() |
| | | this.changeTime(val,this.time.year) |
| | | break; |
| | | } |
| | | } |
| | | }, |
| | | mounted(){ |
| | | this.init() |
| | | this.timers&&clearInterval(this.timers); |
| | | setInterval(this.init(),1000*60*5) |
| | | this.changeTime(this.type) |
| | | // this.timers&&clearInterval(this.timers); |
| | | // setInterval(this.changeTime(this.type),1000*60*5) |
| | | }, |
| | | methods:{ |
| | | init(){ |
| | | this.chartConfig0.isLoading = false |
| | | this.chartConfig1.isLoading = false |
| | | this.loading = true; |
| | | this.$axios.get(this.$api.report.businessStatisticsByDay).then(res => { |
| | | this.$axios.get(this.$api.report.businessStatisticsByDay+'?startTime='+this.startTime+'&endTime='+this.endTime+'&type='+this.type).then(res => { |
| | | if (res.code == 201) return |
| | | this.pageData = this.HaveJson(res.data) |
| | | let xData = res.data.DAYS.map(m=>{ |
| | |
| | | }else{ |
| | | return '0' |
| | | } |
| | | }, |
| | | changeTime(type,m){ |
| | | if(m){ |
| | | switch(type){ |
| | | case '周': |
| | | this.startTime = getYearAndMonthAndDays(new Date(this.time.week.getTime() - 24 * 60 * 60 * 1000)) |
| | | this.endTime = getYearAndMonthAndDays(new Date(this.time.week.getTime() + 24 * 60 * 60 * 1000 * 5)) |
| | | break; |
| | | case '月': |
| | | const year = new Date(this.time.month).getFullYear(); |
| | | const month = new Date(this.time.month).getMonth(); |
| | | |
| | | // 设置起始日期和结束日期 |
| | | this.startTime = new Date(year, month, 1).toISOString().slice(0, 10); // 月初 |
| | | this.endTime = new Date(year, month + 1, 0).toISOString().slice(0, 10); // 月末 |
| | | break; |
| | | case '年': |
| | | const year0 = new Date(this.time.year).getFullYear(); |
| | | this.startTime = `${year0}-01-01`; // 年初 |
| | | this.endTime = `${year0}-12-31`; // 年末 |
| | | break; |
| | | } |
| | | }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.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{ |
| | | return val; |
| | | } |
| | | } |
| | | }, |
| | | deactivated(){ |
| | |
| | | <template> |
| | | <div class="inspection-main" v-loading="loading"> |
| | | <div class="inspection-content" style="height:100%"> |
| | | <!-- <p style="font-size: 16px;padding:19.5px 0px">检测项目统计</p> --> |
| | | <div class="time" style="margin-bottom: 10px;"> |
| | | <el-radio-group v-model="type" size="small"> |
| | | <el-radio-button label="周" ></el-radio-button> |
| | | <el-radio-button label="月"></el-radio-button> |
| | | <el-radio-button label="年"></el-radio-button> |
| | | </el-radio-group> |
| | | <el-date-picker |
| | | v-model="time.week" |
| | | type="week" |
| | | format="yyyy-MM-dd" |
| | | 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)"> |
| | | </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)"> |
| | | </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>今日项目接收</h4> |
| | | <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;">较昨天</span> |
| | | <span style="font-size: 12px;">较上{{type}}</span> |
| | | </div> |
| | | </div> |
| | | <img src="../../../static/img/daliy-0.svg" alt="" srcset=""> |
| | |
| | | <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>今日项目完成</h4> |
| | | <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;">较昨天</span> |
| | | <span style="font-size: 12px;">较上{{type}}</span> |
| | | </div> |
| | | </div> |
| | | <img src="../../../static/img/daliy-1.svg" alt="" srcset=""> |
| | |
| | | <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>今日项目剩余</h4> |
| | | <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;">较昨天</span> |
| | | <span style="font-size: 12px;">较上{{type}}</span> |
| | | </div> |
| | | </div> |
| | | <img src="../../../static/img/daliy-2.svg" alt="" srcset=""> |
| | |
| | | </el-col> |
| | | <el-col :xs="12" :sm="8" :md="6" :lg="4" :xl="4" style="margin-bottom: 16px;"> |
| | | <div class="inspection-card inspection-head" style="flex-direction: column;padding-bottom: 5px;"> |
| | | <h4 style="margin-bottom: 5px;">今日项目合格率</h4> |
| | | <h4 style="margin-bottom: 5px;">本{{type}}项目合格率</h4> |
| | | <echart-module :id="'inspection-qualified'" :config="chartConfig2" :datas="chartData2" style="align-self: center;"></echart-module> |
| | | </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" style="flex-direction: column;padding-bottom: 5px;"> |
| | | <h4 style="margin-bottom: 5px;">今日项目完成率</h4> |
| | | <h4 style="margin-bottom: 5px;">本{{type}}项目完成率</h4> |
| | | <echart-module :id="'inspection-complete'" :config="chartConfig3" :datas="chartData3" style="align-self: center;"></echart-module> |
| | | </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" style="flex-direction: column;padding-bottom: 5px;"> |
| | | <h4 style="margin-bottom: 5px;">今日项目延期率</h4> |
| | | <h4 style="margin-bottom: 5px;">本{{type}}项目延期率</h4> |
| | | <echart-module :id="'inspection-extension'" :config="chartConfig4" :datas="chartData4" style="align-self: center;"></echart-module> |
| | | </div> |
| | | </el-col> |
| | | </el-row> |
| | | <el-row :gutter="20" style="height: calc(100% - 170px);"> |
| | | <el-row :gutter="20" style="height: calc(100% - 200px);"> |
| | | <el-col :xs="24" :sm="24" :md="12" :lg="12" :xl="12" style="margin-bottom: 16px; height: 100%;"> |
| | | <div class="inspection-card chart-box" style="height: 100%;"> |
| | | <h4>近10日项目接收量</h4> |
| | | <h4>本{{type}}项目接收量</h4> |
| | | <echart-module :id="'inspection-left'" :config="chartConfig0" :datas="chartData0" style="height: calc(100% - 32px);"></echart-module> |
| | | </div> |
| | | </el-col> |
| | | <el-col :xs="24" :sm="24" :md="12" :lg="12" :xl="12" style="margin-bottom: 16px;height: 100%;"> |
| | | <div class="inspection-card chart-box" style="height: 100%;"> |
| | | <h4>近10日实际完成项目与接收项目对比</h4> |
| | | <h4>本{{type}}实际完成项目与接收项目对比</h4> |
| | | <echart-module :id="'inspection-right'" :config="chartConfig1" :datas="chartData1" style="height: calc(100% - 32px);"></echart-module> |
| | | </div> |
| | | </el-col> |
| | |
| | | <script> |
| | | |
| | | import EchartModule from '../tool/echart.vue' |
| | | import { |
| | | getYearAndMonthAndDays |
| | | } from '../../util/date' |
| | | export default { |
| | | components: {EchartModule}, |
| | | data(){ |
| | |
| | | xData:[], |
| | | yData:[ |
| | | { |
| | | title:'今日接收', |
| | | title:'接收', |
| | | data:[] |
| | | }, |
| | | { |
| | | title:'今日完成', |
| | | title:'完成', |
| | | data:[] |
| | | }, |
| | | ] |
| | |
| | | type:'pie' |
| | | }, |
| | | chartData2:{ |
| | | title:'今日项目合格率', |
| | | title:'项目合格率', |
| | | percentage:'0', |
| | | color:['#1CCAB8','#E1E4E8'], |
| | | data:[ |
| | |
| | | type:'pie' |
| | | }, |
| | | chartData3:{ |
| | | title:'今日项目完成率', |
| | | title:'项目完成率', |
| | | percentage:'0', |
| | | color:['#FBB647','#E1E4E8'], |
| | | data:[ |
| | |
| | | type:'pie' |
| | | }, |
| | | chartData4:{ |
| | | title:'今日项延期率', |
| | | title:'项延期率', |
| | | percentage:'0', |
| | | color:['#FF3838','#E1E4E8'], |
| | | data:[ |
| | |
| | | }, |
| | | loading:false, |
| | | pageData:{}, |
| | | timers:null |
| | | timers:null, |
| | | type:'周', |
| | | time:{ |
| | | week:'', |
| | | month:'', |
| | | year:'', |
| | | }, |
| | | startTime:'', |
| | | endTime:'' |
| | | } |
| | | }, |
| | | watch:{ |
| | | type(val){ |
| | | switch(val){ |
| | | case '周': |
| | | this.time.week = new Date() |
| | | this.changeTime(val,this.time.week) |
| | | break; |
| | | case '月': |
| | | this.time.month = new Date() |
| | | this.changeTime(val,this.time.month) |
| | | break; |
| | | case '年': |
| | | this.time.year = new Date() |
| | | this.changeTime(val,this.time.year) |
| | | break; |
| | | } |
| | | } |
| | | }, |
| | | mounted(){ |
| | | this.init() |
| | | this.timers&&clearInterval(this.timers); |
| | | setInterval(this.init(),1000*60*5) |
| | | this.changeTime(this.type) |
| | | // this.timers&&clearInterval(this.timers); |
| | | // setInterval(this.changeTime(this.type),1000*60*5) |
| | | }, |
| | | methods:{ |
| | | init(){ |
| | |
| | | this.chartConfig3.isLoading = false |
| | | this.chartConfig4.isLoading = false |
| | | this.loading = true; |
| | | this.$axios.get(this.$api.report.testProductByDay).then(res => { |
| | | this.$axios.get(this.$api.report.testProductByDay+'?startTime='+this.startTime+'&endTime='+this.endTime+'&type='+this.type).then(res => { |
| | | if (res.code == 201) return |
| | | this.pageData = this.HaveJson(res.data) |
| | | let xData = res.data.DAYS.map(m=>{ |
| | |
| | | }else{ |
| | | return '0' |
| | | } |
| | | }, |
| | | changeTime(type,m){ |
| | | if(m){ |
| | | switch(type){ |
| | | case '周': |
| | | this.startTime = getYearAndMonthAndDays(new Date(this.time.week.getTime() - 24 * 60 * 60 * 1000)) |
| | | this.endTime = getYearAndMonthAndDays(new Date(this.time.week.getTime() + 24 * 60 * 60 * 1000 * 5)) |
| | | break; |
| | | case '月': |
| | | const year = new Date(this.time.month).getFullYear(); |
| | | const month = new Date(this.time.month).getMonth(); |
| | | |
| | | // 设置起始日期和结束日期 |
| | | this.startTime = new Date(year, month, 1).toISOString().slice(0, 10); // 月初 |
| | | this.endTime = new Date(year, month + 1, 0).toISOString().slice(0, 10); // 月末 |
| | | break; |
| | | case '年': |
| | | const year0 = new Date(this.time.year).getFullYear(); |
| | | this.startTime = `${year0}-01-01`; // 年初 |
| | | this.endTime = `${year0}-12-31`; // 年末 |
| | | break; |
| | | } |
| | | }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.init() |
| | | } |
| | | }, |
| | | deactivated(){ |
| | |
| | | // p: "" |
| | | // }, |
| | | { |
| | | v: "每日业务统计", |
| | | v: "业务统计", |
| | | i: "font icon-erjidaohang", |
| | | u: "b4-daily-business-statistics", |
| | | p: "businessStatisticsByDay" |