From 551e8f6756abbb1277566dd1225a14422c774d6f Mon Sep 17 00:00:00 2001
From: licp <lichunping@guanfang.com.cn>
Date: 星期四, 26 十二月 2024 14:33:08 +0800
Subject: [PATCH] 完成标准物质领用迁移
---
src/components/view/b4-daily-business-statistics.vue | 251 +++++++++++++++++++++++++++++++++++--------------
1 files changed, 179 insertions(+), 72 deletions(-)
diff --git a/src/components/view/b4-daily-business-statistics.vue b/src/components/view/b4-daily-business-statistics.vue
index 5ecb7e5..99b11f8 100644
--- a/src/components/view/b4-daily-business-statistics.vue
+++ b/src/components/view/b4-daily-business-statistics.vue
@@ -1,103 +1,137 @@
<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 绗� 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 daily-head">
- <div class="daily-head-left">
- <h4>浠婃棩浠诲姟鎺ユ敹</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>
+ <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="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.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>
+ <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="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.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>
+ <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="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>
- <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>
+ <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="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.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>
+ <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="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.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>
+ <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="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>
@@ -109,6 +143,9 @@
<script>
import EchartModule from '../tool/echart.vue'
+import {
+ getYearAndMonthAndDays
+ } from '../../util/date'
export default {
components: {EchartModule},
data(){
@@ -136,11 +173,11 @@
xData:[],
yData:[
{
- title:'浠婃棩鎺ユ敹',
+ title:'鎺ユ敹',
data:[]
},
{
- title:'浠婃棩瀹屾垚',
+ title:'瀹屾垚',
data:[]
},
]
@@ -148,23 +185,55 @@
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.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)
+ console.log(3333,res.data)
let xData = res.data.DAYS.map(m=>{
let arr = m.split('-')
- return `${arr[1]}-${arr[2]}`
+ if(this.type=='骞�'){
+ return `${arr[1]}鏈坄
+ }else{
+ return `${arr[1]}-${arr[2]}`
+ }
})
this.chartData0.xData = xData
this.chartData1.xData = xData
@@ -178,9 +247,47 @@
},
handleData(val){
if(val){
- return Math.abs(val)*100;
+ 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;
}
}
},
@@ -205,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;
@@ -226,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;
}
--
Gitblit v1.9.3