|
|
@@ -4,10 +4,7 @@
|
|
|
<el-radio-button v-for="(item, key) in radioDic" :key="key" :label="key">{{ item.label }}</el-radio-button>
|
|
|
</el-radio-group>
|
|
|
|
|
|
- <vxe-date-range-picker v-if="query.type == 'year'" style="width: 150px;" v-model="query.year" type="year" transfer @change="pickerChange"></vxe-date-range-picker>
|
|
|
- <vxe-date-range-picker v-if="query.type == 'quarter'" style="width: 200px;" v-model="query.quarter" type="quarter" label-format="yyyy-Qq" transfer @change="pickerChange"></vxe-date-range-picker>
|
|
|
- <vxe-date-range-picker v-if="query.type == 'month'" style="width: 190px;" v-model="query.month" type="month" transfer @change="pickerChange"></vxe-date-range-picker>
|
|
|
- <vxe-date-range-picker v-if="query.type == 'day'" style="width: 240px;" v-model="query.day" transfer @change="pickerChange"></vxe-date-range-picker>
|
|
|
+ <vxe-date-range-picker :style="radioDic[query.type].style" v-model="currentDateValue" :type="query.type" :label-format="query.type == 'quarter' && 'yyyy-Qq'" transfer @change="pickerChange"></vxe-date-range-picker>
|
|
|
</el-header>
|
|
|
|
|
|
<div class="echart-panel">
|
|
|
@@ -29,13 +26,22 @@ const query = reactive({
|
|
|
year: [moment().subtract(5, "year").startOf("year").format("YYYY-MM-DD"), moment().endOf("year").format("YYYY-MM-DD")],
|
|
|
quarter: [moment().startOf("year").format("YYYY-MM-DD"), moment().endOf("year").format("YYYY-MM-DD")],
|
|
|
month: [moment().startOf("year").format("YYYY-MM-DD"), moment().endOf("year").format("YYYY-MM-DD")],
|
|
|
- day: [moment().startOf("month").format("YYYY-MM-DD"), moment().endOf("month").format("YYYY-MM-DD")]
|
|
|
+ date: [moment().startOf("month").format("YYYY-MM-DD"), moment().endOf("month").format("YYYY-MM-DD")]
|
|
|
+});
|
|
|
+
|
|
|
+const currentDateValue = computed({
|
|
|
+ get() {
|
|
|
+ return query[query.type];
|
|
|
+ },
|
|
|
+ set(val) {
|
|
|
+ query[query.type] = val;
|
|
|
+ }
|
|
|
});
|
|
|
|
|
|
const pickerChange = ({ value }) => XEUtils.every(value, item => item) && getEcharts();
|
|
|
|
|
|
const option = reactive({
|
|
|
- color: computed(() => query.type == "day" ? ["#36CE9E"] : []),
|
|
|
+ color: computed(() => query.type == "date" ? ["#36CE9E"] : []),
|
|
|
title: { text: "计划/实际销售额趋势", textStyle: { fontSize: 16 }, top: 15 },
|
|
|
legend: { left: "center", top: 55 },
|
|
|
grid: { top: 120 },
|
|
|
@@ -47,7 +53,7 @@ const option = reactive({
|
|
|
xAxis: {
|
|
|
type: "category",
|
|
|
data: [],
|
|
|
- axisLabel: { formatter: value => query.type == "day" ? moment(value).format("MM-DD") : value },
|
|
|
+ axisLabel: { formatter: value => query.type == "date" ? moment(value).format("MM-DD") : value },
|
|
|
axisPointer: { label: { backgroundColor: "#d3d2d3" } }
|
|
|
},
|
|
|
yAxis: {
|
|
|
@@ -75,6 +81,7 @@ getEcharts();
|
|
|
.el-header {height: fit-content;padding: 0;border: none;}
|
|
|
.el-header :deep(.el-radio-group) {flex-wrap: nowrap;}
|
|
|
.el-header :deep(.vxe-date-range-picker) {flex-direction: row-reverse;}
|
|
|
+.el-header :deep(.vxe-date-range-picker) .vxe-date-range-picker--suffix {border-radius: var(--vxe-ui-base-border-radius) 0 0 var(--vxe-ui-base-border-radius);}
|
|
|
.el-header :deep(.vxe-date-range-picker) .vxe-date-range-picker--inner {text-align: center;}
|
|
|
.el-header :deep(.vxe-date-range-picker) .vxe-date-range-picker--control-icon {padding-left: .5em;padding-right: 0;}
|
|
|
|