Commit bb00d5e7 authored by wends's avatar wends

update 频域分析

parent eadf5a9f
...@@ -2,7 +2,7 @@ import request from '@/utils/request' ...@@ -2,7 +2,7 @@ import request from '@/utils/request'
// const baseURL = process.env.VUE_APP_BASE_API // const baseURL = process.env.VUE_APP_BASE_API
const baseURL = '' const baseURL = ''
// 获取数据集列表-分页 // 时域分析
export function getTimeDomainData(data) { export function getTimeDomainData(data) {
return request({ return request({
url: `${baseURL}/iot/dashboard/timeDomainData`, url: `${baseURL}/iot/dashboard/timeDomainData`,
...@@ -10,3 +10,19 @@ export function getTimeDomainData(data) { ...@@ -10,3 +10,19 @@ export function getTimeDomainData(data) {
data data
}) })
} }
// 频域分析
export function getFrequencyDomainData(data) {
return request({
url: `${baseURL}/iot/dashboard/frequencyDomainData`,
method: 'post',
data
})
}
// 获取指定实例采样数据列表
export function getDataPreview(data) {
return request({
url: `${baseURL}/iot/dashboard/dataPreview`,
method: 'post',
data
})
}
...@@ -75,23 +75,16 @@ export default { ...@@ -75,23 +75,16 @@ export default {
this.chart = null this.chart = null
}, },
methods: { methods: {
dispatch(action) {
this.chart.dispatchAction(action)
},
updateChart(data) { updateChart(data) {
console.log(data)
const xAxis = []
const series = []
data.forEach(v => {
xAxis.push(v[0])
series.push(v[1])
})
this.chart.setOption({ this.chart.setOption({
xAxis: {
data: xAxis
},
series: [{ series: [{
type: 'line', type: 'line',
showSymbol: false, showSymbol: false,
clip: true, clip: true,
data: series data: data
}] }]
}) })
}, },
...@@ -118,6 +111,12 @@ export default { ...@@ -118,6 +111,12 @@ export default {
}, },
yAxis: { yAxis: {
name: 'y', name: 'y',
max: function(value) {
return (value.max + 2).toFixed(2)
},
min: function(value) {
return (value.min - 2).toFixed(2)
},
minorTick: { minorTick: {
show: true show: true
}, },
...@@ -146,6 +145,13 @@ export default { ...@@ -146,6 +145,13 @@ export default {
} }
this.chart.setOption(config) this.chart.setOption(config)
// this.chart.on('datazoom', (val) => {
// const params = {
// type: 'functionLine',
// val: val.batch[0]
// }
// this.$emit('datazoom', params)
// })
} }
} }
} }
......
...@@ -55,6 +55,12 @@ export default { ...@@ -55,6 +55,12 @@ export default {
step: { step: {
type: Boolean, type: Boolean,
default: false default: false
},
functionList: {
type: Array,
default: () => {
return {}
}
} }
}, },
data() { data() {
...@@ -65,6 +71,18 @@ export default { ...@@ -65,6 +71,18 @@ export default {
watch: { watch: {
lineData: function(val) { lineData: function(val) {
this.updateChart(val) this.updateChart(val)
},
functionList: function(val) {
const series = []
this.lineData.xAxis.forEach(i => {
let sum = 0
val.forEach(v => {
const { amplitude, frequency, phase } = v.func
sum += this.func(i, amplitude, frequency, phase)
})
series.push(sum)
})
this.secondChart(series)
} }
}, },
mounted() { mounted() {
...@@ -78,14 +96,50 @@ export default { ...@@ -78,14 +96,50 @@ export default {
this.chart = null this.chart = null
}, },
methods: { methods: {
func(x, amplitude = 1, frequency = 1, phase = 0) {
return amplitude * Math.cos(2 * Math.PI * frequency * x + phase * Math.PI)
},
dispatch(action) {
this.chart.dispatchAction(action)
},
secondChart(chart) {
this.chart.setOption({
xAxis: {
data: this.lineData.xAxis
},
legend: {
data: ['时序数据', '拟合数据']
},
series: [
{
type: 'line',
showSymbol: false,
name: '时序数据',
clip: true,
data: this.lineData.series.map(v => this.strip(v))
},
{
type: 'line',
showSymbol: false,
name: '拟合数据',
clip: true,
data: chart
}
]
})
},
updateChart(data) { updateChart(data) {
this.chart.setOption({ this.chart.setOption({
legend: {
data: ['时序数据']
},
xAxis: { xAxis: {
data: data.xAxis data: data.xAxis
}, },
series: [{ series: [{
type: 'line', type: 'line',
showSymbol: false, showSymbol: false,
name: '时序数据',
clip: true, clip: true,
data: data.series.map(v => this.strip(v)) data: data.series.map(v => this.strip(v))
}] }]
...@@ -110,12 +164,16 @@ export default { ...@@ -110,12 +164,16 @@ export default {
this.chart = echarts.init(document.getElementById(this.id)) this.chart = echarts.init(document.getElementById(this.id))
let config = { let config = {
tooltip: {}, tooltip: {},
legend: {
data: ['时序数据']
},
xAxis: { xAxis: {
data: [] data: []
}, },
yAxis: {}, yAxis: {},
series: [{ series: [{
type: 'line', type: 'line',
name: '时序数据',
data: [] data: []
}] }]
} }
...@@ -125,6 +183,13 @@ export default { ...@@ -125,6 +183,13 @@ export default {
} }
this.chart.setOption(config) this.chart.setOption(config)
this.chart.on('datazoom', (val) => {
const params = {
type: 'timeDomainLine',
val: val.batch[0]
}
this.$emit('datazoom', params)
})
} }
} }
} }
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment