Commit a8577607 by wusiyi

feat:优化图表数据渲染

parent 112246e7
...@@ -483,7 +483,7 @@ ...@@ -483,7 +483,7 @@
v-model="chartTimes1" v-model="chartTimes1"
size="small" size="small"
class="chart-controls" class="chart-controls"
@change="(v:string) => getchartTimes(v, 'ORDER_TREND')" @change="(v) => getchartTimes(v, 'ORDER_TREND')"
> >
<el-radio-button <el-radio-button
v-for="time in timeOptions" v-for="time in timeOptions"
...@@ -501,7 +501,7 @@ ...@@ -501,7 +501,7 @@
v-model="chartTimes2" v-model="chartTimes2"
size="small" size="small"
class="chart-controls" class="chart-controls"
@change="(v:string) => getchartTimes(v, 'SHIPMENT_TREND')" @change="(v) => getchartTimes(v, 'SHIPMENT_TREND')"
> >
<el-radio-button <el-radio-button
v-for="time in timeOptions" v-for="time in timeOptions"
...@@ -518,7 +518,7 @@ ...@@ -518,7 +518,7 @@
v-model="chartTimes3" v-model="chartTimes3"
size="small" size="small"
class="chart-controls" class="chart-controls"
@change="(v:string) => getchartTimes(v, 'OVERTIME_SHIPMENT_TREND')" @change="(v) => getchartTimes(v, 'OVERTIME_SHIPMENT_TREND')"
> >
<el-radio-button <el-radio-button
v-for="time in timeOptions" v-for="time in timeOptions"
...@@ -730,67 +730,82 @@ const createChartOption = (config: typeof chartConfig1) => { ...@@ -730,67 +730,82 @@ const createChartOption = (config: typeof chartConfig1) => {
} }
const getStatisticDataApi = async () => { const getStatisticDataApi = async () => {
const [statisticRes, orderRes, shipmentRes, overTimeRes] = // 统计数据
await Promise.allSettled([ getStatisticData()
getStatisticData(), .then((res) => {
trendApi({ if (res.code === 200) {
timeUnit: 0, statisticData.value = res.data
trendType: 'ORDER_TREND', }
}), })
trendApi({ .catch((error) => {
timeUnit: 0, console.error('获取统计数据失败:', error)
trendType: 'SHIPMENT_TREND', })
}),
trendApi({ // 订单趋势统计
timeUnit: 0, trendApi({
trendType: 'OVERTIME_SHIPMENT_TREND', timeUnit: 0,
}), trendType: 'ORDER_TREND',
]) })
if (statisticRes.status === 'fulfilled') { .then((res) => {
const res = statisticRes.value if (res.code === 200) {
if (res.code === 200) { updateOrderTrendChart(res.data, 0)
statisticData.value = res.data chartInstances[0]?.setOption(createChartOption(chartConfig1))
} }
} })
if (orderRes.status === 'fulfilled') { .catch((error) => {
const res = orderRes.value console.error('获取订单趋势数据失败:', error)
if (res.code === 200) { })
updateOrderTrendChart(res.data, 0)
} // 订单发货效率
} trendApi({
if (shipmentRes.status === 'fulfilled') { timeUnit: 0,
const res = shipmentRes.value trendType: 'SHIPMENT_TREND',
if (res.code === 200) { })
updateShipmentTrendChart(res.data, 0) .then((res) => {
} if (res.code === 200) {
} updateShipmentTrendChart(res.data, 0)
if (overTimeRes.status === 'fulfilled') { chartInstances[1]?.setOption(createChartOption(chartConfig2))
const res = overTimeRes.value }
if (res.code === 200) { })
updateOvertimeTrendChart(res.data, 0) .catch((error) => {
} console.error('获取发货趋势数据失败:', error)
} })
// const res = await getStatisticData()
// 订单生产效率
trendApi({
timeUnit: 0,
trendType: 'OVERTIME_SHIPMENT_TREND',
})
.then((res) => {
if (res.code === 200) {
updateOvertimeTrendChart(res.data, 0)
chartInstances[2]?.setOption(createChartOption(chartConfig3))
}
})
.catch((error) => {
console.error('获取超时发货趋势数据失败:', error)
})
} }
onMounted(async () => { onMounted(async () => {
await nextTick() await nextTick()
await getStatisticDataApi() // 订单趋势统计
// 初始化第一个图表:订单趋势统计
if (orderChart1.value) { if (orderChart1.value) {
chartInstances[0] = echarts.init(orderChart1.value) chartInstances[0] = echarts.init(orderChart1.value)
chartInstances[0]?.setOption(createChartOption(chartConfig1)) chartInstances[0]?.setOption(createChartOption(chartConfig1))
} }
// 初始化第二个图表:订单发货效率 // 订单发货效率
if (orderChart2.value) { if (orderChart2.value) {
chartInstances[1] = echarts.init(orderChart2.value) chartInstances[1] = echarts.init(orderChart2.value)
chartInstances[1]?.setOption(createChartOption(chartConfig2)) chartInstances[1]?.setOption(createChartOption(chartConfig2))
} }
// 初始化第三个图表:订单生产效率 // 订单生产效率
if (orderChart3.value) { if (orderChart3.value) {
chartInstances[2] = echarts.init(orderChart3.value) chartInstances[2] = echarts.init(orderChart3.value)
chartInstances[2]?.setOption(createChartOption(chartConfig3)) chartInstances[2]?.setOption(createChartOption(chartConfig3))
} }
// 请求成功后立即更新对应的图表
getStatisticDataApi()
// 监听窗口大小变化,自动调整图表大小 // 监听窗口大小变化,自动调整图表大小
window.addEventListener('resize', handleResize) window.addEventListener('resize', handleResize)
}) })
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment