import * as echarts from "echarts"; import { msgBoradTabel, msgBoradNum,responMsg } from "../../api/messageBoard" import { handelBtcPrice, handelWatermark,handelDimensionalArr,handelZoom,} from "../../util/processingData" export default { data() { return { tabelMsg: { status: 0 }, //未处理留言 tabelData0: [ { id: "1", userDate: "2022/03/01", userName: "用户名", userMsg: "留言内容", msgPage: "留言所在页面", coinType: "BTC", respon: "回复内容", responDate: "2022/03/02", responser: "回复人" }, { id: "2", userDate: "2022/03/01", userName: "用户名", userMsg: "留言内容", msgPage: "留言所在页面", coinType: "BTC", respon: "回复内容", responDate: "2022/03/02", responser: "回复人" }, { id: "3", userDate: "2022/03/01", userName: "用户名", userMsg: "留言内容", msgPage: "留言所在页面", coinType: "BTC", respon: "回复内容", responDate: "2022/03/02", responser: "回复人" }, ], //已处理留言 tabelData1: [ { id: "1", userDate: "2022/03/01", userName: "用户名", userMsg: "留言内容", msgPage: "留言所在页面", coinType: "BTC", respon: "回复内容", responDate: "2022/03/02", responser: "回复人" }, { id: "2", userDate: "2022/03/01", userName: "用户名", userMsg: "留言内容", msgPage: "留言所在页面", coinType: "BTC", respon: "回复内容", responDate: "2022/03/02", responser: "回复人" }, { id: "3", userDate: "2022/03/01", userName: "用户名", userMsg: "留言内容", msgPage: "留言所在页面", coinType: "BTC", respon: "回复内容", responDate: "2022/03/02", responser: "回复人" }, ], //留言数量 msgCount: { total: "", solvdCount: "", pendingCount: "" }, option: { tooltip: { trigger: "axis", //解决tooltip显示不全问题1 confine: true, }, legend: { right: "100", //处理legengd过长 // formatter: function (name) { // return echarts.format.truncateText(name, 100, '14px Microsoft Yahei', '…'); // }, tooltip: { show: true } }, xAxis: { type: "time", boundaryGap: false, // axisLabel: { // formatter: `{yyyy}-{MM}-{dd}`, // }, data: [] }, yAxis: [ { type: "value", // boundaryGap: [0, "100%"], axisLabel: { formatter: function (e) { let value; if (e > 100000000) { value = `${e / 100000000}E`; } else if (e > 1000000) {//百万 value = `${e / 1000000}M`; } else if (e > 10000) {//百万 value = `${e / 10000}W`; } else if (e < -1000000) {//百万 value = `${e / 1000000}M`; } else if (e < -10000) {//万 value = `${e / 10000}W`; } else { value = e; } return value; }, }, }, { type: "value", // boundaryGap: [0, "100%"], min: "dataMin", max: "dataMax", show: true, }, { type: "value", // boundaryGap: [0, "100%"], min: "dataMin", max: "dataMax", show: false, }, ], dataZoom: [ { type: "inside", start: 20, end: 100, }, { type: "inside", start: 0, end: 100, }, ], series: [ { name: "未解决留言数", type: "line", smooth: false, symbol: "circle", showSymbol: false, symbolSize: 5, // areaStyle: {}, itemStyle: { color: "#f7931a", borderColor: "rgba(221,220,107,0.1)", borderWidth: 12, }, yAxisIndex: 0, lineStyle: { //线条样式 color: "#f7931a", width: "1", }, data: [], }, { name: "已解决留言数", type: "line", smooth: false, symbol: "circle", showSymbol: false, symbolSize: 5, // areaStyle: {}, itemStyle: { color: "#a32140", borderColor: "rgba(221,220,107,0.1)", borderWidth: 12, }, yAxisIndex: 1, lineStyle: { //线条样式 color: "#a32140", width: "1", }, data: [], }, { name: "总留言数", type: "line", smooth: false, symbol: "circle", showSymbol: false, symbolSize: 5, // areaStyle: {}, itemStyle: { color: "#7a5edf", borderColor: "rgba(221,220,107,0.1)", borderWidth: 12, }, yAxisIndex: 2, lineStyle: { //线条样式 color: "#7a5edf", width: "1", }, data: [], }, ], }, dialogFormVisible: false, submitReply: {//提交回复 message: '', msg_id: "", }, chartData:[],//所有留言数据(今日留言数) MessageBoardLoading:false } }, mounted() { this.tabelMsg.status = 0 //未处理 this.fetchMsgBoradTabe0(this.tabelMsg) this.tabelMsg.status = 1//已处理 this.fetchMsgBoradTabel1(this.tabelMsg) this.tabelMsg.status = 2//所有留言 this.fetchMsgBoradTabel2(this.tabelMsg) //请求留言数量 this.fetchMsgBoradNum() }, methods: { //初始化图表 inCharts() { if (this.myChart == null) { this.myChart = echarts.init(document.getElementById("MessageBoardBox")); } this.option= handelZoom(this.myChart,this.option,this,this.zoomStart, this.zoomEnd) this.myChart.setOption(this.option); window.addEventListener("resize", () => { if (this.myChart) this.myChart.resize(); }); }, //tabel表格数据请求//未处理 async fetchMsgBoradTabe0(data) { const list = await msgBoradTabel(data) this.tabelData0 = list.data.data.data if ( !this.tabelData0[0]) return this.tabelData0.forEach(item=>{ item.userDate = `${item.userDate.split("T")[0]} ${item.userDate.split("T")[1].split(".")[0]}` }) }, //已处理 async fetchMsgBoradTabel1(data) { const list = await msgBoradTabel(data) this.tabelData1 = list.data.data.data if ( !this.tabelData1[0]) return this.tabelData1.forEach(item=>{ item.userDate = `${item.userDate.split("T")[0]} ${item.userDate.split("T")[1].split(".")[0]}` item.responDate = `${item.responDate.split("T")[0]} ${item.responDate.split("T")[1].split(".")[0]}` }) }, //所有留言 async fetchMsgBoradTabel2(data) { const list = await msgBoradTabel(data) this.chartData = list.data.data.data if (!this.chartData[0]) return }, //回复留言 async fetchResponMsg(data) { const list = await responMsg(data); this.$message({ message: list.data.msg, type: "success", customClass: "messageClass", }); if (list.data.code == 200) { // this.$router.go(0) //处理数据以后 刷新一次更新数据 this.tabelMsg.status = 0 //未处理 this.fetchMsgBoradTabe0(this.tabelMsg) this.tabelMsg.status = 1//已处理 this.fetchMsgBoradTabel1(this.tabelMsg) this.tabelMsg.status = 2//所有留言 this.fetchMsgBoradTabel2(this.tabelMsg) //请求留言数量 this.fetchMsgBoradNum() } }, //留言数量请求 async fetchMsgBoradNum(data) { this.MessageBoardLoading =true const list = await msgBoradNum(data) if (list.data.data.length == 0){ this.MessageBoardLoading =false return } //当前时间匹配今日留言 let todayTime = new Date() todayTime = todayTime.toISOString().split("T")[0] let chartDataList = list.data.data // if (!this.chartDataList) return this.option= handelWatermark(this.option,750,300) //加水印 let pendingCountValue = [] //未解决留言数 let solvdCountValue = []//已解决留言数 let totalValue = [] //总留言数 chartDataList.forEach(item=>{ // item.date = item.date.split("T")[0].replace(/-/g,"/") if (todayTime ==item.date.split("T")[0] ) {//匹配当前日期 今日留言是否有数据 this.msgCount = item } pendingCountValue.push(item.pendingCount) solvdCountValue.push(item.solvdCount) totalValue.push(item.total) }) this.option.series[0].data = handelDimensionalArr(chartDataList, pendingCountValue) this.option.series[1].data = handelDimensionalArr(chartDataList, solvdCountValue) this.option.series[2].data = handelDimensionalArr(chartDataList, totalValue) this.inCharts() this.MessageBoardLoading =false }, //点击未处理留言的回复 clickRow(a, b) { //每一行的ID this.submitReply.msg_id=b[a].id this.dialogFormVisible = true }, //确定提交回复 handelSubmitReply() { this.fetchResponMsg(this.submitReply) this.dialogFormVisible = false } } }