From a52ce4c9a594e78b5931d487e05d0dd54ac8cd36 Mon Sep 17 00:00:00 2001
From: lzhe <lzhe@example.com>
Date: 星期一, 07 十月 2024 22:38:28 +0800
Subject: [PATCH] Merge branch 'release' of http://122.9.151.159:9090/r/smart-web into release
---
src/views/mdc/components/Time.vue | 137 ++++++++++++++++++++++++++++++++++-----------
1 files changed, 102 insertions(+), 35 deletions(-)
diff --git a/src/views/mdc/components/Time.vue b/src/views/mdc/components/Time.vue
index b552b66..f7b94ea 100644
--- a/src/views/mdc/components/Time.vue
+++ b/src/views/mdc/components/Time.vue
@@ -1,22 +1,21 @@
<!--
* @Date: 2024-04-18 21:52:18
* @LastEditors: Sneed
- * @LastEditTime: 2024-06-17 22:37:51
+ * @LastEditTime: 2024-06-21 00:15:44
* @FilePath: /belleson-frontend/Users/mache/Documents/demo/cps-web/src/views/mdc/components/Time.vue
-->
<template>
<el-row>
<el-col>
<el-button-group>
- <el-button size="small" @click="statisticalMethod = item.value"
- :type="statisticalMethod == item.value ? 'primary' : ''" v-for="item in btnList"
- :key="item.value">{{
+ <el-button size="small" @click="change(item)" :type="statisticalMethod == item.value ? 'primary' : ''"
+ v-for="item in btnList" :key="item.value">{{
item.label }}</el-button>
</el-button-group>
</el-col>
<el-col style="margin-top: 12px;">
<el-card shadow="never">
- <scEcharts height="300px" :option="option2"></scEcharts>
+ <scEcharts height="300px" :option="option2" v-if="option2.title" />
</el-card>
</el-col>
<el-col>
@@ -39,6 +38,7 @@
<script>
import scEcharts from '@/components/scEcharts';
+import moment from 'moment'
export default {
props: {
url: {
@@ -90,19 +90,26 @@
cols: [],
chartsData: [],
option2: {},
+ btnListNew: []
}
},
watch: {
statisticalMethod(val) {
- this.query({
- ...this.params,
- })
- this.queryChart({
- ...this.params,
- })
+ // this.query({
+ // ...this.params,
+ // })
+ // this.queryChart({
+ // ...this.params,
+ // })
}
},
methods: {
+ change(item) {
+ this.statisticalMethod = item.value
+ this.init({
+ ...this.params
+ })
+ },
init(params) {
this.params = params
this.getTime({
@@ -110,26 +117,61 @@
startDate: params.startDate,
statisticalMethod: this.statisticalMethod
}).then(res => {
- this.query({
+ if (!res?.length) return
+ let startDate = Math.min(...res?.map(v => new Date(v.startDate).getTime()))
+ let endDate = Math.max(...res?.map(v => new Date(v.endDate).getTime()))
+ console.log('------')
+ let data = {
...params,
statisticalMethod: this.statisticalMethod
+ }
+ if (this.statisticalMethod !== 'Day') {
+ data = {
+ ...data,
+ startDate: moment(startDate).format('YYYY-MM-DD'),
+ endDate: moment(endDate).format('YYYY-MM-DD'),
+ statisticalMethod: this.statisticalMethod
+ }
+ }
+ console.log(startDate, endDate)
+ this.query({
+ ...data
})
this.queryChart({
- ...params,
- statisticalMethod: this.statisticalMethod
+ ...data,
+ // statisticalMethod: this.statisticalMethod
})
})
},
getTime(data) {
- return Promise.resolve()
- // return this.$HTTP.post('/api/blade-mdc/efficiency-analysis/interval', {
- // ...data
- // }).then(res => {
- // if (res.code === 200) {
- // this.btnList = res.data
- // }
- // })
+ //return Promise.resolve()
+ return this.$HTTP.post('/api/blade-mdc/efficiency-analysis/interval', {
+ ...data
+ }).then(res => {
+ if (res.code === 200) {
+ this.btnListNew = res.data
+ if (data.statisticalMethod === 'MONTH') {
+ return res?.data?.map(v => {
+ return {
+ ...v,
+ startDate: moment(v.id).startOf('month').format('YYYY-MM-DD'),
+ endDate: moment(v.id).endOf('month').format('YYYY-MM-DD')
+ }
+ })
+ } else if (data.statisticalMethod === 'DAY') {
+ return res?.data?.map(v => {
+ return {
+ ...v,
+ startDate: v.id,
+ endDate: v.id
+ }
+ })
+ } else {
+ return res.data
+ }
+ }
+ })
},
queryChart(data) {
let params = {
@@ -140,19 +182,46 @@
queryType: 0,
statisticalMethod: this.statisticalMethod
}
- // console.log(this.option2.series, '>>>>>>>>>>???')
- try {
- this.option2.dataset.source = []
- this.option2.series = []
- } catch (error) {
-
- }
+ this.option2 = {}
return this.$HTTP.post(this.url, dataSend, { params }).then(res => {
this.chartsData = res.data.items.records
let option2 = {
- ...this.options
+ // legend: {
+ // type: 'plain',
+ // },
+ title: {
+ text: '缁熻鍥捐〃',
+ subtext: '',
+ },
+ grid: {
+ top: '80px'
+ },
+ tooltip: {
+ trigger: 'axis'
+ },
+ xAxis: {
+ type: 'category',
+ axisLabel: {
+ interval: 'auto',
+ }
+ },
+ yAxis: {
+ type: 'value',
+ axisLabel: {
+ formatter: (value) => {
+ return value + '%'
+ }
+ },
+ },
+ dataZoom: [
+ { type: 'slider' }
+ ],
+ dataset: {
+ source: []
+ },
+ ...this.options,
+ series: [],
}
- option2.series = []
let source1 = ['product']
let row = res.data.items.records[0]
Object.values(row.nameData).forEach(v => {
@@ -161,7 +230,6 @@
})
source1.push(v)
})
-
option2.dataset.source = [source1]
res.data.items.records.forEach(v => {
let current = [v.id]
@@ -175,8 +243,7 @@
console.log(option2)
})
},
- query(params) {
- this.params = params
+ query(res) {
this.apiObj = {
get: async (data) => {
let params = {
@@ -184,7 +251,7 @@
size: data.size
}
let dataSend = {
- ...data,
+ ...res,
queryType: 1,
statisticalMethod: this.statisticalMethod
}
--
Gitblit v1.9.3