123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117 |
- <!--
- * @Author: your name
- * @Date: 2021-11-22 15:10:07
- * @LastEditTime: 2022-01-06 10:07:04
- * @LastEditors: Please set LastEditors
- * @Description: 指标图
- * @FilePath: \hyyfScreen\src\views\Production\board\IndicatorChart.vue
- -->
- <template>
- <div :id="id + 'indicator'" class="indicator-chart"></div>
- </template>
- <script>
- export default {
- props: {
- ifPositive: {
- type: Boolean,
- required: true,
- },
- id: {
- required: true,
- },
- data: {
- type: Object,
- required: true,
- },
- },
- data() {
- return {
- myChart: null,
- };
- },
- methods: {
- init() {
- let color1 = "rgba(0, 255, 0, 0.7)";
- let color2 = "rgba(64, 218, 26, 0.5)";
- let color3 = "rgba(88, 165, 69, 0.3)";
- if (this.ifPositive) {
- color1 = "rgba(255, 0, 0, 0.7)";
- color2 = "rgba(216, 52, 52, 0.5)";
- color3 = "rgba(201, 85, 85, 0.3)";
- }
- let options = {
- grid: {
- top: "2%",
- left: "0",
- right: "0",
- bottom: "-20%",
- containLabel: true,
- },
- xAxis: {
- type: "category",
- boundaryGap: false,
- data: this.data.timeList,
- show: false,
- },
- yAxis: {
- type: "value",
- show: false,
- },
- series: [
- {
- data: this.data.dataList,
- type: "line",
- symbol: "none", // 隐藏拐点
- color: color1,
- areaStyle: {
- color: {
- type: "linear",
- x: 0,
- y: 0,
- x2: 0,
- y2: 1,
- colorStops: [
- {
- offset: 0,
- color: color1, // 100% 处的颜色
- },
- {
- offset: 0.5,
- color: color2, // 100% 处的颜色
- },
- {
- offset: 1,
- color: color3, // 0% 处的颜色
- },
- ],
- global: false, // 缺省为 false
- },
- },
- },
- ],
- };
- this.myChart.setOption(options, true);
- },
- },
- mounted() {
- this.myChart = this.$echarts.init(
- document.getElementById(this.id + "indicator")
- );
- this.init();
- },
- watch: {
- data: {
- handler() {
- this.init();
- },
- deep: true,
- },
- },
- };
- </script>
- <style scoped>
- .indicator-chart {
- width: 100%;
- height: 100%;
- }
- </style>
|