<template> <div class="demand"> <div class="common-title"> <div class="icon-and-title"> <img class="icon-title" src="@/assets/overview/s-interation.png" alt="" /> <span class="title">{{ title }}</span> </div> <img class="bg" src="@/assets/overview/bg_title02.png" alt="" /> </div> <div id="barDemand"></div> </div> </template> <script> import { getCurDate } from "@/utils/util.time.js"; export default { name: "demand", data() { return { title: "互动频次", xAxisData: [], yAxisData: [], }; }, components: {}, mounted() { this.getList(); }, methods: { getList() { let curTime = getCurDate(); let frequencyDate = curTime.year + curTime.month; this.$https({ method: "post", url: "tBoardStatistic/getInteractionFrequencyPageList?frequencyDate=" + frequencyDate, authType: this.backToken, }) .then((res) => { if (res.status == 200) { if (res.data.resultCode == 200) { this.xAxisData = res.data.data.organList; this.yAxisData = res.data.data.cntList; } else { this.xAxisData = []; this.yAxisData = []; } } else { this.xAxisData = []; this.yAxisData = []; } this.init(); }) .catch((err) => { this.$message.error(err.message); this.xAxisData = []; this.yAxisData = []; this.init(); }); }, init() { let option = { tooltip: { trigger: "axis", }, grid: { top: 30, left: "2%", right: 40, bottom: 30, containLabel: true, }, dataZoom: [ { type: "slider", show: true, bottom: 0, start: 0, end: 100, height: 18, handleStyle: { color: "#d3dee5", }, textStyle: { color: "#fff", fontSize: "10px", }, }, ], xAxis: { type: "category", boundaryGap: true, //坐标轴两边留白 data: this.xAxisData, axisLabel: { //坐标轴刻度标签的相关设置。 interval: 0, textStyle: { color: "#333333", fontStyle: "normal", fontFamily: "微软雅黑", fontSize: 14, }, formatter: function (value, index) { if (value.length > 4) { return value.slice(0, 4) + "..."; } else { return value; } }, }, axisTick: { //坐标轴刻度相关设置。 show: false, }, axisLine: { //坐标轴轴线相关设置 lineStyle: { color: "#eeeeee", type: "solid", }, }, splitLine: { //坐标轴在 grid 区域中的分隔线。 show: false, }, }, yAxis: [ { type: "value", name: "单位/次", splitNumber: 5, // max: 100, axisLabel: { textStyle: { color: "#333333", fontStyle: "normal", fontFamily: "微软雅黑", fontSize: 12, }, interval: "auto", }, axisLine: { show: false, }, axisTick: { show: false, }, splitLine: { show: true, lineStyle: { color: "#eeeeee", type: "dashed", }, }, }, ], series: [ { type: "bar", barWidth: 16, // 柱子宽度 itemStyle: { barBorderRadius: 120, // 圆角(左上、右上、右下、左下) }, color: new this.$echarts.graphic.LinearGradient( 0, 0, 0, 1, ["#AC9374", "#9B1E23"].map((color, offset) => ({ color, offset, })) ), // 渐变 data: this.yAxisData, }, ], }; let echartsDiv = this.$echarts.init(document.getElementById("barDemand")); echartsDiv.setOption(option); }, // 点击事件 // echartsClick() { // this.$emit("itemClick", { type: 1, title: this.title }); // }, }, }; </script> <style lang="less"> #barDemand { width: 100%; height: calc(100% - 45px); } </style>