|
@@ -32,7 +32,6 @@ import { onMounted, ref, defineAsyncComponent } from "vue";
|
|
import dayjs from "dayjs";
|
|
import dayjs from "dayjs";
|
|
import { monthlyTrend } from "@/api/judicial";
|
|
import { monthlyTrend } from "@/api/judicial";
|
|
import { loadingOptions } from "@/utils/constants";
|
|
import { loadingOptions } from "@/utils/constants";
|
|
-import { graphic } from "echarts/core";
|
|
|
|
|
|
|
|
const Empty = defineAsyncComponent(
|
|
const Empty = defineAsyncComponent(
|
|
() => import("@/components/Empty/index.vue")
|
|
() => import("@/components/Empty/index.vue")
|
|
@@ -48,147 +47,96 @@ const getData = async () => {
|
|
loading.value = true;
|
|
loading.value = true;
|
|
try {
|
|
try {
|
|
const { result } = await monthlyTrend({ Year: yearValue.value });
|
|
const { result } = await monthlyTrend({ Year: yearValue.value });
|
|
- const xData = result.map((item: any) => {
|
|
|
|
|
|
+ list.value = result.map((item: any) => {
|
|
return item.month + "月";
|
|
return item.month + "月";
|
|
});
|
|
});
|
|
- list.value = result.map((item: any) => {
|
|
|
|
- return item.sumCount;
|
|
|
|
|
|
+
|
|
|
|
+ const legendData = ["执法类", "非执法类"];
|
|
|
|
+ const zflData = result.map((item: any) => {
|
|
|
|
+ return item.enforcementOrderNum;
|
|
});
|
|
});
|
|
- setOption(xData, list.value);
|
|
|
|
- loading.value = false;
|
|
|
|
|
|
+ const fzflData = result.map((item: any) => {
|
|
|
|
+ return item.unEnforcementOrderNum;
|
|
|
|
+ });
|
|
|
|
+ const seriesData = [
|
|
|
|
+ {
|
|
|
|
+ name: "执法类",
|
|
|
|
+ type: "line",
|
|
|
|
+ data: zflData,
|
|
|
|
+ areaStyle: {
|
|
|
|
+ // 区域填充样式
|
|
|
|
+ color: "#BADEFF", // 填充颜色
|
|
|
|
+ },
|
|
|
|
+ smooth: true,
|
|
|
|
+ },
|
|
|
|
+ {
|
|
|
|
+ name: "非执法类",
|
|
|
|
+ type: "line",
|
|
|
|
+ data: fzflData,
|
|
|
|
+ areaStyle: {
|
|
|
|
+ // 区域填充样式
|
|
|
|
+ color: "#C1EDCE", // 填充颜色
|
|
|
|
+ },
|
|
|
|
+ smooth: true,
|
|
|
|
+ },
|
|
|
|
+ ];
|
|
|
|
+ setOption(legendData, list.value, seriesData);
|
|
loading.value = false;
|
|
loading.value = false;
|
|
} catch (e) {
|
|
} catch (e) {
|
|
loading.value = false;
|
|
loading.value = false;
|
|
console.log(e);
|
|
console.log(e);
|
|
}
|
|
}
|
|
};
|
|
};
|
|
-const setOption = (xData: any, data: any) => {
|
|
|
|
|
|
+const setOption = (legendData: any, xData: any, seriesData: any) => {
|
|
option.value = {
|
|
option.value = {
|
|
|
|
+ title: {},
|
|
tooltip: {
|
|
tooltip: {
|
|
- show: true,
|
|
|
|
- trigger: "axis",
|
|
|
|
- formatter: (params) => {
|
|
|
|
- let arr = [...params];
|
|
|
|
- let str = "";
|
|
|
|
- arr.forEach((item, index) => {
|
|
|
|
- str += item.marker + "工单数量 " + item.data + "<br />";
|
|
|
|
- });
|
|
|
|
- str = arr[0].name + "<br />" + str;
|
|
|
|
- return str;
|
|
|
|
|
|
+ // 提示框组件
|
|
|
|
+ trigger: "axis", // 触发类型
|
|
|
|
+ },
|
|
|
|
+ legend: {
|
|
|
|
+ top: "1%",
|
|
|
|
+ data: legendData,
|
|
|
|
+ icon: "roundRect",
|
|
|
|
+ textStyle: {
|
|
|
|
+ color: "#fff", // 文字颜色
|
|
|
|
+ fontSize: 12, // 文字像素
|
|
},
|
|
},
|
|
},
|
|
},
|
|
- grid: {
|
|
|
|
- top: "15%",
|
|
|
|
- left: "8%",
|
|
|
|
- right: "5%",
|
|
|
|
- bottom: "18%",
|
|
|
|
- containLabel: true,
|
|
|
|
|
|
+ xAxis: {
|
|
|
|
+ data: xData, // 数据
|
|
|
|
+ min: 0, // 最小值
|
|
|
|
+ type: "category",
|
|
|
|
+ boundaryGap: true, // 开始和结尾是否隔开
|
|
|
|
+ axisLabel: {
|
|
|
|
+ color: "#808080", // 文字颜色
|
|
|
|
+ fontSize: 12, // 文字像素
|
|
|
|
+ },
|
|
|
|
+ axisLine: {
|
|
|
|
+ show: false, // 是否显示坐标轴轴线
|
|
|
|
+ },
|
|
|
|
+ axisTick: {
|
|
|
|
+ show: false, // 去除刻度线
|
|
|
|
+ },
|
|
},
|
|
},
|
|
- xAxis: [
|
|
|
|
- {
|
|
|
|
- type: "category",
|
|
|
|
- axisLine: {
|
|
|
|
- onZero: true,
|
|
|
|
- lineStyle: {
|
|
|
|
- color: "#81b0d0",
|
|
|
|
- },
|
|
|
|
- },
|
|
|
|
- axisLabel: {
|
|
|
|
- interval: 0,
|
|
|
|
- align: "center",
|
|
|
|
- margin: 10,
|
|
|
|
- color: "#fff",
|
|
|
|
- rotate: 0,
|
|
|
|
- },
|
|
|
|
- splitLine: {
|
|
|
|
- show: false,
|
|
|
|
- },
|
|
|
|
- axisTick: {
|
|
|
|
- show: false,
|
|
|
|
- },
|
|
|
|
- boundaryGap: false,
|
|
|
|
- data: xData,
|
|
|
|
|
|
+ yAxis: {
|
|
|
|
+ type: "value",
|
|
|
|
+ min: 0, // 最小值
|
|
|
|
+ axisLine: {
|
|
|
|
+ show: false,
|
|
},
|
|
},
|
|
- ],
|
|
|
|
- yAxis: [
|
|
|
|
- {
|
|
|
|
- type: "value",
|
|
|
|
- splitLine: {
|
|
|
|
- show: true,
|
|
|
|
- lineStyle: {
|
|
|
|
- color: "rgba(221, 228, 241,.3)",
|
|
|
|
- },
|
|
|
|
- },
|
|
|
|
- axisLabel: {
|
|
|
|
- interval: 0,
|
|
|
|
- align: "center",
|
|
|
|
- margin: 10,
|
|
|
|
- color: "#fff",
|
|
|
|
- rotate: 0,
|
|
|
|
- },
|
|
|
|
|
|
+ axisLabel: {
|
|
|
|
+ color: "#808080", // 文字颜色
|
|
|
|
+ fontSize: 12, // 文字像素
|
|
},
|
|
},
|
|
- ],
|
|
|
|
- series: [
|
|
|
|
- {
|
|
|
|
- data: data,
|
|
|
|
- type: "line",
|
|
|
|
- smooth: true,
|
|
|
|
-
|
|
|
|
- symbolSize: 0.01,
|
|
|
|
-
|
|
|
|
- areaStyle: {
|
|
|
|
- color: new graphic.LinearGradient(0, 0, 0, 0.9, [
|
|
|
|
- {
|
|
|
|
- offset: 0,
|
|
|
|
- // color: 'rgba(58,77,233,0.8)'
|
|
|
|
- color: "rgba(170, 201 ,234,0.8)",
|
|
|
|
- },
|
|
|
|
- {
|
|
|
|
- offset: 1,
|
|
|
|
- // color: 'rgba(58,77,233,0)'
|
|
|
|
- color: "rgba(170, 201 ,234,0)",
|
|
|
|
- },
|
|
|
|
- {
|
|
|
|
- offset: 0,
|
|
|
|
- color: "rgba(170, 201 ,234,1)",
|
|
|
|
- // color: 'rgba(58,77,233,0.9)'
|
|
|
|
- },
|
|
|
|
- ]),
|
|
|
|
- },
|
|
|
|
- itemStyle: {
|
|
|
|
- // color: "#3D5DF4",
|
|
|
|
- color: "#4EA6FE",
|
|
|
|
- },
|
|
|
|
|
|
+ // y轴分割线的颜色
|
|
|
|
+ splitLine: {
|
|
lineStyle: {
|
|
lineStyle: {
|
|
- // 线条加阴影
|
|
|
|
- // 设置阴影颜色
|
|
|
|
- // shadowColor: "#3D5DF4",
|
|
|
|
- shadowColor: "#4EA6FE",
|
|
|
|
- shadowOffsetX: 0,
|
|
|
|
- // 设置阴影沿y轴偏移量为9
|
|
|
|
- shadowOffsetY: 9,
|
|
|
|
- // 设置阴影的模糊大小
|
|
|
|
- shadowBlur: 10,
|
|
|
|
- // 设置线条渐变色
|
|
|
|
- color: new graphic.LinearGradient(0, 0, 1, 0, [
|
|
|
|
- { offset: 0, color: "#94C2FD00" },
|
|
|
|
- // { offset: 0.2, color: "#3D5DF4" },
|
|
|
|
- { offset: 0.2, color: "#4EA6FE" },
|
|
|
|
- { offset: 0.1, color: "#5B8FF900" },
|
|
|
|
- ]),
|
|
|
|
- },
|
|
|
|
-
|
|
|
|
- emphasis: {
|
|
|
|
- scale: 1000,
|
|
|
|
- itemStyle: {
|
|
|
|
- color: "#3D5DF4",
|
|
|
|
- borderColor: "#FFFFFF",
|
|
|
|
- borderWidth: 3,
|
|
|
|
- borderType: "solid",
|
|
|
|
- },
|
|
|
|
|
|
+ color: "rgba(0,0,0,0.15)", // 分割线的颜色
|
|
},
|
|
},
|
|
},
|
|
},
|
|
- ],
|
|
|
|
|
|
+ },
|
|
|
|
+ series: seriesData,
|
|
};
|
|
};
|
|
};
|
|
};
|
|
onMounted(() => {
|
|
onMounted(() => {
|