|
@@ -1,148 +1,219 @@
|
|
|
<template>
|
|
|
-
|
|
|
- <el-card shadow="never" class="cus-card homeBoxCard" v-loading="loading">
|
|
|
- <template #header>
|
|
|
- <span>{{t('page.home.workschartcard.card-title')}}</span>
|
|
|
- <el-tag type="success" class="float-right">{{t('page.home.text-week')}}</el-tag>
|
|
|
- </template>
|
|
|
- <div class="num">{{num.toLocaleString()}}</div>
|
|
|
- <div class="height40" ref="worksChartRef" />
|
|
|
- <el-divider />
|
|
|
- <el-row>
|
|
|
- <el-col :span="12">{{t('page.home.text-total')}}</el-col>
|
|
|
- <el-col class="text-align-right" :span="12">
|
|
|
- {{total.toLocaleString()}}
|
|
|
- </el-col>
|
|
|
- </el-row>
|
|
|
- </el-card>
|
|
|
-
|
|
|
+ <div shadow="never" class="homeBoxCard" v-loading="loading">
|
|
|
+ <div style="text-align:center">A相电流(A)</div>
|
|
|
+ <div class="height300" ref="worksChartRef" />
|
|
|
+ </div>
|
|
|
</template>
|
|
|
<script lang="ts">
|
|
|
-import { computed, defineComponent, onMounted, Ref, ref, watch, ComputedRef } from "vue";
|
|
|
-import { useStore } from 'vuex';
|
|
|
+import {
|
|
|
+ computed,
|
|
|
+ defineComponent,
|
|
|
+ onMounted,
|
|
|
+ Ref,
|
|
|
+ ref,
|
|
|
+ watch,
|
|
|
+ ComputedRef,
|
|
|
+} from "vue";
|
|
|
+import { useStore } from "vuex";
|
|
|
import { useI18n } from "vue-i18n";
|
|
|
-import { EChartOption } from 'echarts';
|
|
|
-import useEcharts from '@/composables/useEcharts';
|
|
|
+import { EChartOption } from "echarts";
|
|
|
+import useEcharts from "@/composables/useEcharts";
|
|
|
import { StateType as HomeStateType } from "../../store";
|
|
|
-import { ChartDataType } from '../../data';
|
|
|
+// import { ChartDataType } from "../../data";
|
|
|
|
|
|
const worksChartOption: EChartOption = {
|
|
|
tooltip: {
|
|
|
- trigger: 'axis',
|
|
|
- },
|
|
|
- grid: {
|
|
|
- left: '0',
|
|
|
- right: '0',
|
|
|
- top: '0',
|
|
|
- bottom: '0',
|
|
|
+ trigger: "axis",
|
|
|
+ axisPointer: {
|
|
|
+ type: "shadow",
|
|
|
+ },
|
|
|
},
|
|
|
- xAxis: {
|
|
|
- show: false,
|
|
|
- boundaryGap: false,
|
|
|
- data: [
|
|
|
- //'03-01','03-02','03-03','03-04','03-05','03-06','03-07'
|
|
|
- ],
|
|
|
+ legend: {
|
|
|
+ data: ["平均值", "95%", "最大值"],
|
|
|
+ // align: 'right',
|
|
|
+ right: 60,
|
|
|
+ textStyle: {},
|
|
|
+ itemWidth: 10,
|
|
|
+ itemHeight: 10,
|
|
|
+ itemGap: 35,
|
|
|
},
|
|
|
- yAxis: {
|
|
|
- show: false,
|
|
|
+ grid: {
|
|
|
+ left: "3%",
|
|
|
+ right: "4%",
|
|
|
+ bottom: "3%",
|
|
|
+ containLabel: true,
|
|
|
},
|
|
|
- series: [
|
|
|
+ xAxis: [
|
|
|
{
|
|
|
- name: '新增',
|
|
|
- type: 'line',
|
|
|
+ type: "category",
|
|
|
data: [
|
|
|
- //23,60,20,36,23,85,23
|
|
|
+ "1次",
|
|
|
+ "3次",
|
|
|
+ "5次",
|
|
|
+ "7次",
|
|
|
+ "9次",
|
|
|
+ "11次",
|
|
|
+ "13次",
|
|
|
+ "15次",
|
|
|
+ "17次",
|
|
|
+ "19次 ",
|
|
|
],
|
|
|
- areaStyle: {
|
|
|
- color: {
|
|
|
- colorStops: [
|
|
|
- {
|
|
|
- offset: 0,
|
|
|
- color: '#A9F387', // 0% 处的颜色
|
|
|
- },
|
|
|
- {
|
|
|
- offset: 1,
|
|
|
- color: '#48D8BF', // 100% 处的颜色
|
|
|
- },
|
|
|
- ],
|
|
|
- globalCoord: false, // 缺省为 false
|
|
|
- } as any,
|
|
|
+ axisLine: {
|
|
|
+ show: true,
|
|
|
+ lineStyle: {
|
|
|
+ color: "#444",
|
|
|
+ width: 1,
|
|
|
+ type: "solid",
|
|
|
+ },
|
|
|
+ },
|
|
|
+ axisTick: {
|
|
|
+ show: false,
|
|
|
+ },
|
|
|
+ axisLabel: {
|
|
|
+ show: true,
|
|
|
+ textStyle: {
|
|
|
+ color: "#444",
|
|
|
+ },
|
|
|
+ },
|
|
|
+ },
|
|
|
+ ],
|
|
|
+ yAxis: [
|
|
|
+ {
|
|
|
+ type: "value",
|
|
|
+ name: "A",
|
|
|
+ nameTextStyle: {
|
|
|
+ color: "#444",
|
|
|
+ },
|
|
|
+ axisLabel: {
|
|
|
+ formatter: "{value} ",
|
|
|
+ },
|
|
|
+ axisTick: {
|
|
|
+ show: false,
|
|
|
+ },
|
|
|
+ axisLine: {
|
|
|
+ show: false,
|
|
|
+ lineStyle: {
|
|
|
+ color: "#444",
|
|
|
+ width: 1,
|
|
|
+ type: "solid",
|
|
|
+ },
|
|
|
},
|
|
|
- lineStyle: {
|
|
|
- width: 0,
|
|
|
+ splitLine: {
|
|
|
+ lineStyle: {
|
|
|
+ color: "#444",
|
|
|
+ },
|
|
|
},
|
|
|
+ },
|
|
|
+ ],
|
|
|
+ series: [
|
|
|
+ {
|
|
|
+ name: "平均值",
|
|
|
+ type: "bar",
|
|
|
+ data: [20, 50, 80, 58, 83, 68, 57, 80, 42, 66],
|
|
|
+ barWidth: 10, //柱子宽度
|
|
|
+ barGap: 1, //柱子之间间距
|
|
|
itemStyle: {
|
|
|
- borderWidth: 2,
|
|
|
+ normal: {
|
|
|
+ color: "#5b82ee",
|
|
|
+ opacity: 1,
|
|
|
+ },
|
|
|
+ },
|
|
|
+ },
|
|
|
+ {
|
|
|
+ name: "95%",
|
|
|
+ type: "bar",
|
|
|
+ data: [50, 70, 60, 61, 75, 87, 60, 62, 86, 46],
|
|
|
+ barWidth: 10,
|
|
|
+ barGap: 1,
|
|
|
+ itemStyle: {
|
|
|
+ normal: {
|
|
|
+ color: "#f2e251",
|
|
|
+ opacity: 1,
|
|
|
+ },
|
|
|
+ },
|
|
|
+ },
|
|
|
+ {
|
|
|
+ name: "最大值",
|
|
|
+ type: "bar",
|
|
|
+ data: [70, 48, 73, 68, 53, 47, 50, 72, 96, 86],
|
|
|
+ barWidth: 10,
|
|
|
+ barGap: 1,
|
|
|
+ itemStyle: {
|
|
|
+ normal: {
|
|
|
+ color: "#fe8161",
|
|
|
+ opacity: 1,
|
|
|
+ },
|
|
|
},
|
|
|
},
|
|
|
],
|
|
|
};
|
|
|
|
|
|
interface WorksChartCardSetupData {
|
|
|
- t: (key: string | number) => string;
|
|
|
- loading: Ref<boolean>;
|
|
|
- worksChartRef: Ref;
|
|
|
- total: ComputedRef<number>;
|
|
|
- num: ComputedRef<number>;
|
|
|
+ t: (key: string | number) => string;
|
|
|
+ loading: Ref<boolean>;
|
|
|
+ worksChartRef: Ref;
|
|
|
+ total: ComputedRef<number>;
|
|
|
+ num: ComputedRef<number>;
|
|
|
}
|
|
|
|
|
|
export default defineComponent({
|
|
|
- name: 'CurveCom',
|
|
|
- setup(): WorksChartCardSetupData {
|
|
|
- const store = useStore<{ Home: HomeStateType}>();
|
|
|
- const { t } = useI18n();
|
|
|
+ name: "CurveCom",
|
|
|
+ setup(): WorksChartCardSetupData {
|
|
|
+ const store = useStore<{ Home: HomeStateType }>();
|
|
|
+ const { t } = useI18n();
|
|
|
|
|
|
- // 总数
|
|
|
- const total = computed<number>(() => store.state.Home.worksChartData.total);
|
|
|
- // num
|
|
|
- const num = computed<number>(() => store.state.Home.worksChartData.num);
|
|
|
- // chart Data
|
|
|
- const chartData = computed<ChartDataType>(()=> store.state.Home.worksChartData.chart);
|
|
|
+ // 总数
|
|
|
+ const total = computed<number>(() => store.state.Home.worksChartData.total);
|
|
|
+ // num
|
|
|
+ const num = computed<number>(() => store.state.Home.worksChartData.num);
|
|
|
+ // chart Data
|
|
|
+ // const chartData = computed<ChartDataType>(
|
|
|
+ // () => store.state.Home.worksChartData.chart
|
|
|
+ // );
|
|
|
|
|
|
- // echarts 图表
|
|
|
- const worksChartRef = ref<HTMLDivElement>();
|
|
|
- const echarts = useEcharts(worksChartRef, worksChartOption);
|
|
|
- watch([echarts, chartData],()=> {
|
|
|
- if(echarts.value) {
|
|
|
- const option: EChartOption = {
|
|
|
- xAxis: {
|
|
|
- // data: ["03-01", "03-01", "03-01", "03-01", "03-01", "03-01", "03-01"]
|
|
|
- data: chartData.value.day,
|
|
|
- },
|
|
|
- series: [
|
|
|
- {
|
|
|
- name: '新增',
|
|
|
- // data: [3, 1, 1, 2, 2, 2, 2]
|
|
|
- data: chartData.value.num,
|
|
|
- },
|
|
|
- ],
|
|
|
- };
|
|
|
- echarts.value.setOption(option);
|
|
|
- }
|
|
|
- });
|
|
|
-
|
|
|
- // 读取数据 func
|
|
|
- const loading = ref<boolean>(true);
|
|
|
- const getData = async () => {
|
|
|
- loading.value = true;
|
|
|
- await store.dispatch('Home/queryWorksChartData');
|
|
|
- loading.value = false;
|
|
|
- };
|
|
|
+ // echarts 图表
|
|
|
+ const worksChartRef = ref<HTMLDivElement>();
|
|
|
+ const echarts = useEcharts(worksChartRef, worksChartOption);
|
|
|
+ // watch([echarts, chartData], () => {
|
|
|
+ // if (echarts.value) {
|
|
|
+ // const option: EChartOption = {
|
|
|
+ // xAxis: {
|
|
|
+ // // data: ["03-01", "03-01", "03-01", "03-01", "03-01", "03-01", "03-01"]
|
|
|
+ // data: chartData.value.day,
|
|
|
+ // },
|
|
|
+ // series: [
|
|
|
+ // {
|
|
|
+ // name: "新增",
|
|
|
+ // // data: [3, 1, 1, 2, 2, 2, 2]
|
|
|
+ // data: chartData.value.num,
|
|
|
+ // },
|
|
|
+ // ],
|
|
|
+ // };
|
|
|
+ // echarts.value.setOption(option);
|
|
|
+ // }
|
|
|
+ // });
|
|
|
|
|
|
- onMounted(()=> {
|
|
|
- getData();
|
|
|
- });
|
|
|
+ // 读取数据 func
|
|
|
+ const loading = ref<boolean>(true);
|
|
|
+ const getData = async () => {
|
|
|
+ loading.value = true;
|
|
|
+ await store.dispatch("Home/queryWorksChartData");
|
|
|
+ loading.value = false;
|
|
|
+ };
|
|
|
|
|
|
+ onMounted(() => {
|
|
|
+ getData();
|
|
|
+ });
|
|
|
|
|
|
- return {
|
|
|
- t,
|
|
|
- loading,
|
|
|
- worksChartRef,
|
|
|
- total,
|
|
|
- num,
|
|
|
- }
|
|
|
- }
|
|
|
-})
|
|
|
+ return {
|
|
|
+ t,
|
|
|
+ loading,
|
|
|
+ worksChartRef,
|
|
|
+ total,
|
|
|
+ num,
|
|
|
+ };
|
|
|
+ },
|
|
|
+});
|
|
|
</script>
|
|
|
<style lang="scss" scoped>
|
|
|
.homeBoxCard {
|
|
@@ -163,8 +234,8 @@ export default defineComponent({
|
|
|
font-size: 30px;
|
|
|
color: #515a6e;
|
|
|
}
|
|
|
- .height40 {
|
|
|
- height: 40px;
|
|
|
+ .height300 {
|
|
|
+ height: 300px;
|
|
|
}
|
|
|
}
|
|
|
</style>
|