|
@@ -17,9 +17,9 @@
|
|
|
<div :style="{ color: colors[index] }" class="count">
|
|
|
{{ item.count }}台
|
|
|
</div>
|
|
|
- <div :style="{ color: colors[index] }" class="count">
|
|
|
- {{ item.count }}%
|
|
|
- </div>
|
|
|
+ <!-- <div :style="{ color: colors[index] }" class="count">-->
|
|
|
+ <!-- {{ item.count }}%-->
|
|
|
+ <!-- </div>-->
|
|
|
</el-row>
|
|
|
</div>
|
|
|
<div ref="chartRef" style="width: 100%; height: 600px"></div>
|
|
@@ -33,81 +33,98 @@ import ScreenComHeader from "@/views/screens/configs/screenComHeader.vue";
|
|
|
import * as echarts from "echarts";
|
|
|
|
|
|
const chartRef = ref(null);
|
|
|
-onMounted(() => {
|
|
|
- const chart = echarts.init(chartRef.value, "dark");
|
|
|
- chart.setOption(option);
|
|
|
-});
|
|
|
|
|
|
const props = defineProps({
|
|
|
moduleId: {
|
|
|
type: String,
|
|
|
required: true,
|
|
|
},
|
|
|
+ deviceData: {
|
|
|
+ type: Object,
|
|
|
+ default: null,
|
|
|
+ required: true,
|
|
|
+ },
|
|
|
});
|
|
|
|
|
|
+const data = ref<any[]>([]);
|
|
|
+
|
|
|
const colors = ["#4caf50", "#ffc107", "#b61945", "#607d8b"];
|
|
|
|
|
|
-const data = ref<any[]>([
|
|
|
- {
|
|
|
- type: "运行",
|
|
|
- count: 100,
|
|
|
- percent: 20,
|
|
|
- },
|
|
|
- {
|
|
|
- type: "待机",
|
|
|
- count: 10,
|
|
|
- percent: 10,
|
|
|
- },
|
|
|
- {
|
|
|
- type: "故障",
|
|
|
- count: 5,
|
|
|
- percent: 5,
|
|
|
- },
|
|
|
- {
|
|
|
- type: "离线",
|
|
|
- count: 0,
|
|
|
- percent: 0,
|
|
|
- },
|
|
|
-]);
|
|
|
+let chart: any = null;
|
|
|
|
|
|
-const option = {
|
|
|
- color: colors,
|
|
|
- backgroundColor: "transparent",
|
|
|
- tooltip: {
|
|
|
- trigger: "item",
|
|
|
- },
|
|
|
- legend: {
|
|
|
- bottom: "5%",
|
|
|
- left: "center",
|
|
|
- },
|
|
|
+watchEffect(() => {
|
|
|
+ if (!props.deviceData) {
|
|
|
+ return;
|
|
|
+ }
|
|
|
+ data.value = [
|
|
|
+ {
|
|
|
+ type: "运行",
|
|
|
+ count: props.deviceData.runNum,
|
|
|
+ percent: 20,
|
|
|
+ },
|
|
|
+ {
|
|
|
+ type: "离线",
|
|
|
+ count: props.deviceData.offLineNum,
|
|
|
+ percent: 0,
|
|
|
+ },
|
|
|
|
|
|
- series: [
|
|
|
{
|
|
|
- name: "设备状态",
|
|
|
- type: "pie",
|
|
|
- radius: ["40%", "70%"],
|
|
|
- avoidLabelOverlap: false,
|
|
|
- padAngle: 5,
|
|
|
- itemStyle: {
|
|
|
- borderRadius: 10,
|
|
|
- },
|
|
|
+ type: "故障",
|
|
|
+ count: props.deviceData.faultNum,
|
|
|
+ percent: 5,
|
|
|
+ },
|
|
|
+ {
|
|
|
+ type: "维修",
|
|
|
+ count: props.deviceData.repairNum,
|
|
|
+ percent: 10,
|
|
|
+ },
|
|
|
+ ];
|
|
|
|
|
|
- labelLine: {
|
|
|
- show: false,
|
|
|
- },
|
|
|
- label: {
|
|
|
- show: false,
|
|
|
- position: "inside",
|
|
|
- },
|
|
|
- data: [
|
|
|
- { value: 1048, name: "运行" },
|
|
|
- { value: 735, name: "待机" },
|
|
|
- { value: 580, name: "故障" },
|
|
|
- { value: 484, name: "离线" },
|
|
|
- ],
|
|
|
+ const option = {
|
|
|
+ color: colors,
|
|
|
+ backgroundColor: "transparent",
|
|
|
+ tooltip: {
|
|
|
+ trigger: "item",
|
|
|
+ },
|
|
|
+ legend: {
|
|
|
+ bottom: "5%",
|
|
|
+ left: "center",
|
|
|
},
|
|
|
- ],
|
|
|
-};
|
|
|
+
|
|
|
+ series: [
|
|
|
+ {
|
|
|
+ name: "设备状态",
|
|
|
+ type: "pie",
|
|
|
+ radius: ["40%", "70%"],
|
|
|
+ avoidLabelOverlap: false,
|
|
|
+ padAngle: 5,
|
|
|
+ itemStyle: {
|
|
|
+ borderRadius: 10,
|
|
|
+ },
|
|
|
+
|
|
|
+ labelLine: {
|
|
|
+ show: false,
|
|
|
+ },
|
|
|
+ label: {
|
|
|
+ show: false,
|
|
|
+ position: "inside",
|
|
|
+ },
|
|
|
+ data: [
|
|
|
+ { value: props.deviceData.runNum, name: "运行" },
|
|
|
+ { value: props.deviceData.offLineNum, name: "离线" },
|
|
|
+ { value: props.deviceData.faultNum, name: "故障" },
|
|
|
+ { value: props.deviceData.repairNum, name: "维修" },
|
|
|
+ ],
|
|
|
+ },
|
|
|
+ ],
|
|
|
+ };
|
|
|
+
|
|
|
+ chart.setOption(option);
|
|
|
+});
|
|
|
+
|
|
|
+onMounted(async () => {
|
|
|
+ chart = echarts.init(chartRef.value, "dark");
|
|
|
+});
|
|
|
</script>
|
|
|
|
|
|
<style lang="scss" scoped>
|