From d975fc4756806f5b51f006c19c33571b9b8c0b3b Mon Sep 17 00:00:00 2001 From: licp <lichunping@guanfang.com.cn> Date: 星期五, 20 十二月 2024 09:30:19 +0800 Subject: [PATCH] 修改下单时要求值输入限制 --- src/components/view/b4-daily-business-statistics.vue | 335 ++++++++++++++++++++++++++++++++++++++++--------------- 1 files changed, 243 insertions(+), 92 deletions(-) diff --git a/src/components/view/b4-daily-business-statistics.vue b/src/components/view/b4-daily-business-statistics.vue index a559a44..99b11f8 100644 --- a/src/components/view/b4-daily-business-statistics.vue +++ b/src/components/view/b4-daily-business-statistics.vue @@ -1,104 +1,138 @@ <template> -<div class="daily-main"> +<div class="daily-main" v-loading="loading"> <div class="daily-content" style="height:100%"> - <p style="font-size: 16px;padding:19.5px 0px">姣忔棩涓氬姟缁熻</p> - <el-row :gutter="30"> - <el-col :xs="12" :sm="10" :md="8" :lg="6" :xl="4" style="margin-bottom: 30px;"> - <div class="daily-card daily-head"> - <div class="daily-head-left"> - <h4>浠婃棩浠诲姟鎺ユ敹</h4> - <span >2453</span> - <div class="daily-head-left-info"> - <img src="../../../static/img/daliy-up.svg" alt=""> - <span :class="{active:false}" class="num"> 8.5% </span> - <span>杈冩槰澶�</span> + <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 绗� 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="閫夋嫨鏈�" size="small" v-if="type=='鏈�'" @change="m=>changeTime(type,m)"> + </el-date-picker> + <el-date-picker + v-model="time.year" + type="year" + 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"> + <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="` ${handleData(pageData.RECEIVE_RATIO)}% `"></span> + <span style="font-size: 12px;">杈冧笂{{type}}</span> + </div> </div> </el-col> - <el-col :xs="12" :sm="10" :md="8" :lg="6" :xl="4" style="margin-bottom: 30px;"> - <div class="daily-card daily-head"> - <div class="daily-head-left"> - <h4>浠婃棩浠诲姟瀹屾垚</h4> - <span >1687</span> - <div class="daily-head-left-info"> - <img src="../../../static/img/daliy-up.svg" alt=""> - <span :class="{active:false}" class="num"> 8.5% </span> - <span>杈冩槰澶�</span> + <el-col :xs="12" :sm="8" :md="6" :lg="4" :xl="4" style="margin-bottom: 16px;"> + <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="` ${handleData(pageData.FINISHE_RATIO)}% `"></span> + <span style="font-size: 12px;">杈冧笂{{type}}</span> + </div> </div> </el-col> - <el-col :xs="12" :sm="10" :md="8" :lg="6" :xl="4" style="margin-bottom: 30px;"> - <div class="daily-card daily-head"> - <div class="daily-head-left"> - <h4>浠婃棩浠诲姟鍓╀綑</h4> - <span >766</span> - <div class="daily-head-left-info"> - <img src="../../../static/img/daliy-up.svg" alt=""> - <span :class="{active:false}" class="num"> 8.5% </span> - <span>杈冩槰澶�</span> + <el-col :xs="12" :sm="8" :md="6" :lg="4" :xl="4" style="margin-bottom: 16px;"> + <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="` ${handleData(pageData.SURPLUS_RATIO)}% `"></span> + <span style="font-size: 12px;">杈冧笂{{type}}</span> + </div> </div> </el-col> - <el-col :xs="12" :sm="10" :md="8" :lg="6" :xl="4" style="margin-bottom: 30px;"> - <div class="daily-card daily-head"> - <div class="daily-head-left"> - <h4>浠婃棩妫�娴嬭垂鐢�</h4> - <span >锟�7359</span> - <div class="daily-head-left-info"> - <img src="../../../static/img/daliy-up.svg" alt=""> - <span :class="{active:false}" class="num"> 8.5% </span> - <span>杈冩槰澶�</span> + <el-col :xs="12" :sm="8" :md="6" :lg="4" :xl="4" style="margin-bottom: 16px;"> + <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="` ${handleData(pageData.PRICE_RATIO)}% `"></span> + <span style="font-size: 12px;">杈冧笂{{type}}</span> + </div> </div> </el-col> - <el-col :xs="12" :sm="10" :md="8" :lg="6" :xl="4" style="margin-bottom: 30px;"> - <div class="daily-card daily-head"> - <div class="daily-head-left"> - <h4>浠婃棩妫�娴嬪伐鏃�</h4> - <span >306</span> - <div class="daily-head-left-info"> - <img src="../../../static/img/daliy-down.svg" alt=""> - <span :class="{active:true}" class="num"> 8.5% </span> - <span>杈冩槰澶�</span> + <el-col :xs="12" :sm="8" :md="6" :lg="4" :xl="4" style="margin-bottom: 16px;"> + <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="` ${handleData(pageData.COST_RATIO)}% `"></span> + <span style="font-size: 12px;">杈冧笂{{type}}</span> + </div> </div> </el-col> - <el-col :xs="12" :sm="10" :md="8" :lg="6" :xl="4" style="margin-bottom: 30px;"> - <div class="daily-card daily-head"> - <div class="daily-head-left"> - <h4>浠婃棩妫�娴嬩汉鍛�</h4> - <span >109</span> - <div class="daily-head-left-info"> - <img src="../../../static/img/daliy-up.svg" alt=""> - <span :class="{active:false}" class="num"> 8.5% </span> - <span>杈冩槰澶�</span> + <el-col :xs="12" :sm="8" :md="6" :lg="4" :xl="4" style="margin-bottom: 16px;"> + <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="` ${handleData(pageData.PERSON_RATIO)}% `"></span> + <span style="font-size: 12px;">杈冧笂{{type}}</span> + </div> </div> </el-col> </el-row> - <el-row :gutter="30"> - <el-col :xs="24" :sm="24" :md="12" :lg="12" :xl="12" style="margin-bottom: 30px;"> - <div class="daily-card chart-box"> - <h4>杩�10鏃ヤ换鍔℃帴鏀堕噺</h4> - <echart-module :id="'left'" :config="chartConfig0" :datas="chartData0"></echart-module> + <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>鏈瑊{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: 30px;"> - <div class="daily-card chart-box"> - <h4>杩�10鏃ュ疄闄呭畬鎴愪换鍔′笌鎺ユ敹浠诲姟瀵规瘮</h4> - <echart-module :id="'right'" :config="chartConfig1" :datas="chartData1"></echart-module> + <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>鏈瑊{type}}瀹為檯瀹屾垚浠诲姟涓庢帴鏀朵换鍔″姣�</h4> + <echart-module :id="'daily-right'" :config="chartConfig1" :datas="chartData1" style="height: calc(100% - 32px);"></echart-module> </div> </el-col> </el-row> @@ -109,43 +143,156 @@ <script> import EchartModule from '../tool/echart.vue' +import { + getYearAndMonthAndDays + } from '../../util/date' export default { components: {EchartModule}, data(){ return{ chartConfig0:{ - height: '435px', - isLoading:true, + height: '', + isLoading:false, 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:[] } ] }, chartConfig1:{ - height: '435px', - isLoading:true, + height: '', + isLoading:false, 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] + title:'鎺ユ敹', + data:[] }, { - title:'浠婃棩瀹屾垚', - data:[15,10,6,33,66,44,56,77,44,55] + 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.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+'?startTime='+this.startTime+'&endTime='+this.endTime+'&type='+this.type).then(res => { + if (res.code == 201) return + this.pageData = this.HaveJson(res.data) + console.log(3333,res.data) + let xData = res.data.DAYS.map(m=>{ + let arr = m.split('-') + if(this.type=='骞�'){ + return `${arr[1]}鏈坄 + }else{ + 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.loading = false; + this.chartConfig0.isLoading = true + this.chartConfig1.isLoading = true + }) + }, + handleData(val){ + if(val){ + let num = Math.abs(val)*100 + return num.toFixed(0); + }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(); + const day = new Date(year, month + 1, 0).getDate(); // + // 璁剧疆璧峰鏃ユ湡鍜岀粨鏉熸棩鏈� + this.startTime = `${year}-${month + 1}-01` + this.endTime = `${year}-${month + 1}-${day}` // 鏈堟湯 + 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.time.week = new Date() + } + this.init() + }, + handlePrice(val){ + if(val>999999){ + return (val/1000000).toFixed(2)+'鐧句竾'; + }else if(val>9999){ + return (val/10000).toFixed(2)+'涓�'; + }else{ + return val; + } + } + }, + deactivated(){ + this.timers&&clearInterval(this.timers); } } </script> @@ -156,16 +303,20 @@ overflow-y: auto; overflow-x: hidden; } +.daily-content{ + padding: 20px 0; + box-sizing: border-box; +} .daily-card{ width: 100%; 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; @@ -175,34 +326,34 @@ color: #202224; font-size: 16px; font-weight: 400; - margin-bottom: 20px; + margin-bottom: 16px; opacity: 0.8; } .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: 26px; + 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; } .chart-box{ - padding: 30px 24px; + padding: 16px 24px; box-sizing: border-box; } -- Gitblit v1.9.3