This commit is contained in:
geting 2025-01-20 13:53:43 +08:00
parent ce845b7f58
commit bb99330cbf

View File

@ -609,12 +609,18 @@ const handleRes = (res: any, selectAllDevices: any) => {
attIndex = highSpeedExoprtHeader.value.indexOf(attName) attIndex = highSpeedExoprtHeader.value.indexOf(attName)
} }
xData.forEach((time: any, index: number) => { xData.forEach((time: any, index: number) => {
const dataItem = [ const tableDataIndex = highSpeedExoprtData.value.findIndex(
escapeCsvValue(deviceName + '\t'), // (data: any) => data.name == deviceName && data.time == timestampToTime(time)
escapeCsvValue(timestampToTime(time) + '\t'), // )
] if (tableDataIndex > -1) {
dataItem[attIndex] = escapeCsvValue(yData[index] + '\t') highSpeedExoprtData.value[tableDataIndex][attName] = yData[index]
highSpeedExoprtData.value.push(dataItem.join(',')) } else {
highSpeedExoprtData.value.push({
name: deviceName,
time: timestampToTime(time),
[attName]: yData[index],
})
}
}) })
} else { } else {
let attIndex = lowSpeedExoprtHeader.value.indexOf(attName) let attIndex = lowSpeedExoprtHeader.value.indexOf(attName)
@ -623,26 +629,20 @@ const handleRes = (res: any, selectAllDevices: any) => {
attIndex = lowSpeedExoprtHeader.value.indexOf(attName) attIndex = lowSpeedExoprtHeader.value.indexOf(attName)
} }
xData.forEach((time: any, index: number) => { xData.forEach((time: any, index: number) => {
const dataItem = [ const tableDataIndex = lowSpeedExoprtData.value.findIndex(
escapeCsvValue(deviceName) + '\t', // (data: any) => data.name == deviceName && data.time == timestampToTime(time)
escapeCsvValue(timestampToTime(time)) + '\t' + '\t', // )
] if (tableDataIndex > -1) {
dataItem[attIndex] = escapeCsvValue(yData[index] + '\t') lowSpeedExoprtData.value[tableDataIndex][attName] = yData[index]
lowSpeedExoprtData.value.push(dataItem.join(',')) } else {
lowSpeedExoprtData.value.push({
name: deviceName,
time: timestampToTime(time),
[attName]: yData[index],
}) })
} }
highcsvContent.value = highSpeedExoprtData.value.length })
? highSpeedExoprtHeader.value + '\n' + highSpeedExoprtData.value.join('\n')
: []
lowcsvContent.value = lowSpeedExoprtData.value.length
? lowSpeedExoprtHeader.value + '\n' + lowSpeedExoprtData.value.join('\n')
: []
if (!yData.length) {
ElMessage.info(`${deviceName + attName}数据为空`)
return
} }
console.log(selectAllDevicesIndex)
console.log(irnIndex)
const seriesData = { const seriesData = {
name: deviceName + attName, name: deviceName + attName,
type: 'line', type: 'line',
@ -681,28 +681,31 @@ const handleRes = (res: any, selectAllDevices: any) => {
} }
} }
const escapeCsvValue = (value: any) => {
if (value === undefined || value === null) {
return ' '
}
if (typeof value === 'string') {
if (value.includes(',') || value.includes('"') || value.includes('\n')) {
return `"${value.replace(/"/g, '""')}"`
}
}
return value
}
const statAnalysisExport = () => { const statAnalysisExport = () => {
const tables = [ const tables = [
{ data: highcsvContent.value, filename: '多机对比_高频' + new Date().getTime() + '.csv' }, { header: highSpeedExoprtHeader.value, data: highSpeedExoprtData.value, filename: '多机对比_高频' + new Date().getTime() + '.csv' },
{ data: lowcsvContent.value, filename: '多机对比_低频' + new Date().getTime() + '.csv' }, { header: lowSpeedExoprtHeader.value, data: lowSpeedExoprtData.value, filename: '多机对比_低频' + new Date().getTime() + '.csv' },
] ]
tables.forEach((table) => { tables.forEach((table) => {
const csvContent = table.data if (table.data.length) {
if (csvContent.length) { let str = ''
const blob = new Blob([csvContent], { type: 'text/csv;charset=utf-8;' }) table.data.forEach((item: any) => {
table.header.forEach((prop: any, index: number) => {
let val = ''
if (index == 0) {
val = item.name
} else if (index == 1) {
val = item.time
} else {
val = typeof item[prop] === 'number' ? String(item[prop]) : item[prop] ? item[prop] : ''
}
str += val + '\t' + ','
})
str += '\n'
})
str = table.header + '\n' + str
if (str.length) {
const blob = new Blob([str], { type: 'text/csv;charset=utf-8;' })
const link = document.createElement('a') const link = document.createElement('a')
if (link.download !== undefined) { if (link.download !== undefined) {
const url = URL.createObjectURL(blob) const url = URL.createObjectURL(blob)
@ -714,6 +717,7 @@ const statAnalysisExport = () => {
document.body.removeChild(link) document.body.removeChild(link)
} }
} }
}
}) })
} }