You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
udi-cpt-vue/src/views/daping/sup3/jinKouItem.vue

237 lines
5.5 KiB
Vue

This file contains ambiguous Unicode characters!

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

<!--
* @Author: daidai
* @Date: 2022-02-28 16:16:42
* @LastEditors: Please set LastEditors
* @LastEditTime: 2022-10-25 09:18:22
* @FilePath: \web-pc\src\pages\big-screen\view\indexs\left-bottom.vue
-->
<template>
<Echart id="leftCenter" :options="options" class="left_center_inner" v-if="pageflag" ref="charts"/>
<Reacquire v-else @onclick="getData" style="line-height:200px">
</Reacquire>
</template>
<script>
import {currentGET} from "../../../api/modules"
export default {
data() {
return {
options: {},
countUserNumData: {
lockNum: 0,
onlineNum: 0,
offlineNum: 0,
totalNum: 0
},
pageflag: true,
timer: null
};
},
props: {
statBustype: {
type: Object,
required: true,
},
},
watch: {
statBustype: function () {
this.init()
}
},
created() {
},
mounted() {
this.init()
},
beforeDestroy() {
this.clearData()
},
methods: {
clearData() {
if (this.timer) {
clearInterval(this.timer)
this.timer = null
}
},
getData() {
this.pageflag = true
// this.pageflag =false
currentGET('nmapCount').then(res => {
//只打印一次
if (!this.timer) {
console.log("国家库产品标识分类", res);
}
if (res.code == 20000) {
this.countUserNumData = res.data
this.$nextTick(() => {
this.init()
})
} else {
this.pageflag = false
this.$Message({
text: res.msg,
type: 'warning'
})
}
})
},
// //轮询
// switper() {
// if (this.timer) {
// return
// }
// let looper = (a) => {
// this.getData()
// };
// this.timer = setInterval(looper, this.$store.state.setting.echartsAutoTime);
// let myChart = this.$refs.charts.chart
// myChart.on('mouseover', params => {
// this.clearData()
// });
// myChart.on('mouseout', params => {
// this.timer = setInterval(looper, this.$store.state.setting.echartsAutoTime);
// });
// },
init() {
let total = this.statBustype.productCount;
let colors = ["#ffca29", "#01c6fd"];
let piedata = {
name: "进口/非进口",
type: "pie",
radius: ["42%", "65%"],
avoidLabelOverlap: false,
itemStyle: {
borderRadius: 4,
borderColor: "rgba(0,0,0,0)",
borderWidth: 2,
},
color: colors,
data: [
{
value: this.statBustype.unImportCount,
name: "非进口",
label: {
shadowColor: colors[0],
},
},
{
value: this.statBustype.importCount,
name: "进口",
label: {
shadowColor: colors[2],
},
},
],
};
this.options = {
title: {
// zlevel: 0,
text: ["{value|" + total + "}", "{name|总数}"].join("\n"),
top: "center",
left: "center",
textStyle: {
rich: {
value: {
color: "#ffffff",
fontSize: 24,
fontWeight: "bold",
lineHeight: 20,
},
name: {
color: "#ffffff",
lineHeight: 20,
},
},
},
},
tooltip: {
trigger: "item",
backgroundColor: "rgba(0,0,0,.6)",
borderColor: "rgba(147, 235, 248, .8)",
textStyle: {
color: "#FFF",
},
},
legend: {
show: false,
top: "5%",
left: "center",
},
series: [
//展示圆点
{
...piedata,
tooltip: {show: true},
label: {
formatter: " {b|{b}} \n {c|{c}个}",
// position: "outside",
rich: {
b: {
color: "#fff",
fontSize: 12,
lineHeight: 26,
},
c: {
color: "#31ABE3",
fontSize: 14,
},
per: {
color: "#31ABE3",
fontSize: 14,
},
},
},
labelLine: {
length: 20, // 第一段线 长度
length2: 36, // 第二段线 长度
show: true,
},
emphasis: {
show: true,
},
},
{
...piedata,
tooltip: {show: true},
itemStyle: {},
label: {
backgroundColor: "inherit", //圆点颜色auto映射的系列色
height: 0,
width: 0,
lineHeight: 0,
borderRadius: 2.5,
shadowBlur: 8,
shadowColor: "auto",
padding: [2.5, -2.5, 2.5, -2.5],
normal: {
show: true,
position: 'inner',
formatter: "{d}%",
color: "#fff",
},
},
labelLine: {
length: 20, // 第一段线 长度
length2: 36, // 第二段线 长度
show: false,
},
},
],
};
},
},
};
</script>
<style lang='scss' scoped>
</style>