| | |
| | | data () { |
| | | // 这里存放数据 |
| | | return { |
| | | isYaxisSame: ['a34004', 'a34002', 'a05024', 'a21004', 'a21026'], |
| | | dataType: 'HourPicker', |
| | | lineChartData: lineChartData.purchases, |
| | | props: { multiple: true }, |
| | |
| | | // newMac2:'', |
| | | newSensor: [], |
| | | radio1: '日报', |
| | | unit: 0, |
| | | unit: 1, |
| | | type: 'select', |
| | | newLineChartData: { |
| | | series: [], |
| | |
| | | radio1 (nv, ov) { |
| | | if (nv === '日报') { |
| | | this.dataType = 'HourPicker' |
| | | this.unit = 0 |
| | | this.unit = 1 |
| | | } else if (nv === '月报') { |
| | | this.dataType = 'DatePicker' |
| | | this.unit = 3 |
| | |
| | | }, |
| | | }) |
| | | .then((res) => { |
| | | // console.log('获得时间对应因子数据') |
| | | console.log('获得时间对应因子数据', res.data) |
| | | const data = res.data |
| | | let yAxisList = [] |
| | | for (let i = 0; i < data.length; i++) { |
| | | data[i].name = this.$options.filters.sensorFilter( |
| | | data[i].sensorCode |
| | |
| | | for (let i = 0; i < data[0].timeValueList.length; i++) { |
| | | newLineChartData.xAxis.push(data[0].timeValueList[i].time) |
| | | } |
| | | |
| | | for (var i = 0; i < data.length; i++) { |
| | | if (this.isYaxisSame.includes(data[i].sensorCode)) { |
| | | yAxisList.push(data[i].name) |
| | | } else { |
| | | newLineChartData.yAxis.push( |
| | | {name: data[i].name, |
| | | code: data[i].sensorCode, |
| | | type: 'value', |
| | | position: 'left', |
| | | axisTick: { |
| | | show: true, // 轴线刻度 |
| | | }, |
| | | axisLine: { |
| | | show: true, // 不显示坐标轴线 |
| | | }, |
| | | splitNumber: 4, // 设置坐标轴的分割段数 |
| | | splitLine: { |
| | | // 去除网格线 |
| | | show: false, |
| | | }, |
| | | }, |
| | | ) |
| | | } |
| | | |
| | | newLineChartData.series.push({ |
| | | data: [], |
| | | name: '', |
| | | name: data[i].name, |
| | | code: data[i].sensorCode, |
| | | type: 'line', |
| | | triggerLineEvent: true, |
| | | yAxisIndex: 0, |
| | | emphasis: { focus: 'series' }, |
| | | lineStyle: { width: 4 } |
| | | }) |
| | | // newLineChartData.yAxis.push({}) |
| | | newLineChartData.series[i].name = data[i].name |
| | | newLineChartData.title.push(data[i].name) |
| | | for (var j = 0; j < data[i].timeValueList.length; j++) { |
| | | // newLineChartData.series[i].data.push(data[i].timeValueList[j].value) |
| | | newLineChartData.series[i].data.push(data[i].timeValueList[j].value === 0 ? undefined : data[i].timeValueList[j].value) |
| | | newLineChartData.series[i].data.push(data[i].timeValueList[j].value) |
| | | } |
| | | } |
| | | if (yAxisList.length > 0) { |
| | | newLineChartData.yAxis = [ { |
| | | type: 'value', |
| | | position: 'left', |
| | | axisTick: { |
| | | show: true, // 轴线刻度 |
| | | }, |
| | | axisLine: { |
| | | show: true, // 不显示坐标轴线 |
| | | }, |
| | | splitNumber: 4, // 设置坐标轴的分割段数 |
| | | splitLine: { |
| | | // 去除网格线 |
| | | show: false, |
| | | }, |
| | | }, ...newLineChartData.yAxis] |
| | | } |
| | | newLineChartData.yAxis.forEach((item, index) => { |
| | | item.position = (index + 1) % 2 === 0 ? 'right' : 'left' |
| | | item.offset = this.getoffsetData(index) |
| | | }) |
| | | newLineChartData.series.forEach(item => { |
| | | item.yAxisIndex = yAxisList.includes(item.name) ? 0 : newLineChartData.yAxis.findIndex( |
| | | i => i.code && item.code === i.code |
| | | ) |
| | | }) |
| | | this.lineChartData = newLineChartData |
| | | |
| | | // this.middleData = JSON.parse(JSON.stringify(res.data)) |
| | | // const data = res.data |
| | | // // 无量纲算法 |
| | | // // 遍历因子数组 |
| | | // for (let i = 0; i < data.length; i++) { |
| | | // // 使用因子名称过滤替换方法 |
| | | // data[i].name = this.$options.filters.sensorFilter( |
| | | // data[i].sensorCode |
| | | // ) |
| | | // // data[i].name = data[i].sensorCode |
| | | // var tempArray = [] |
| | | // for (let j = 0; j < data[i].timeValueList.length; j++) { |
| | | // tempArray.push(data[i].timeValueList[j].value) |
| | | // } |
| | | // data[i].MaxValue = this.getMaxValue(tempArray) |
| | | // data[i].sort = i |
| | | // } |
| | | // // 大数组MaxValue降序方法 |
| | | // data.sort(this.compare('MaxValue', false)) |
| | | // // 用1除以选择因子的数量 |
| | | // var step = Math.floor((1 / data.length) * 100) / 100 |
| | | // data[0].Factor = 1 |
| | | // // 以降序排的数组,第一个为基准值,从第二个开始计算 |
| | | // for (let i = 1; i < data.length; i++) { |
| | | // // 拿到最大值 |
| | | // var supposemMaxValue = |
| | | // data[0].MaxValue - i * step * data[0].MaxValue |
| | | // if (data[i].MaxValue < supposemMaxValue) { |
| | | // data[i].Factor = supposemMaxValue / data[i].MaxValue |
| | | // } |
| | | // } |
| | | // // 大数组sort升序方法 |
| | | // data.sort(this.compare('sort', true)) |
| | | // // 给折线图数据添加遍历 |
| | | |
| | | // // for (let i = 0; i < data.length; i++) { |
| | | // // newLineChartData.series.push({ data: [], name: '', type: 'line' }) |
| | | // // newLineChartData.series[i].name = data[i].name |
| | | // // newLineChartData.title.push(data[i].name) |
| | | // // for (let j = 0; j < data[i].timeValueList.length; j++) { |
| | | // // data[i].timeValueList[j].value = data[i].timeValueList[j].value * data[i].Factor |
| | | // // newLineChartData.series[i].data.push(data[i].timeValueList[j].value) |
| | | // // } |
| | | // // } |
| | | // for (let i = 0; i < data.length; i++) { |
| | | // newLineChartData.series.push({ data: [], name: '', type: 'line' }) |
| | | // newLineChartData.series[i].name = data[i].name |
| | | // newLineChartData.title.push(data[i].name) |
| | | // for (let j = 0; j < data[i].timeValueList.length; j++) { |
| | | // // console.log(data); |
| | | // data[i].timeValueList[j].value = |
| | | // data[i].timeValueList[j].value * data[i].Factor |
| | | // newLineChartData.series[i].data.push({ value: 0, data0: 0 }) |
| | | // newLineChartData.series[i].data[j].value = |
| | | // data[i].timeValueList[j].value |
| | | // } |
| | | // } |
| | | // for (let i = 0; i < data[0].timeValueList.length; i++) { |
| | | // newLineChartData.xAxis.push(data[0].timeValueList[i].time) |
| | | // } |
| | | // // 给图表tooltip赋值原始数据 |
| | | // for (let i = 0; i < this.middleData.length; i++) { |
| | | // console.log(i); |
| | | // for (let j = 0; j < this.middleData[i].timeValueList.length; j++) { |
| | | // newLineChartData.series[i].data[j].data0 = |
| | | // this.middleData[i].timeValueList[j].value |
| | | // } |
| | | // } |
| | | // this.lineChartData = newLineChartData |
| | | // console.log(newLineChartData.series[0].name); |
| | | }) |
| | | .catch((err) => { |
| | | console.log(err) |
| | |
| | | // console.log(err) |
| | | // }) |
| | | }, |
| | | // 获取y轴偏移距离 |
| | | getoffsetData (val) { |
| | | if (val === 0 || val === 1) return 0 |
| | | if (val % 2 === 0) { |
| | | return val / 2 * 60 |
| | | } |
| | | if (val % 2 !== 0) { |
| | | return val / 3 * 60 |
| | | } |
| | | }, |
| | | // 获取最大值 |
| | | getMaxValue (arr) { |
| | | // return Math.max.apply(null, arr) |