修改测试问题
This commit is contained in:
@@ -45,7 +45,7 @@ import OverLimitDetails from '@/components/cockpit/monitoringPointList/component
|
|||||||
import TableHeader from '@/components/table/header/index.vue'
|
import TableHeader from '@/components/table/header/index.vue'
|
||||||
import { uploadReport, getReportUrl } from '@/api/harmonic-boot/cockpit/cockpit'
|
import { uploadReport, getReportUrl } from '@/api/harmonic-boot/cockpit/cockpit'
|
||||||
|
|
||||||
|
import { downLoadFile } from '@/api/cs-system-boot/manage'
|
||||||
const prop = defineProps({
|
const prop = defineProps({
|
||||||
w: { type: [String, Number] },
|
w: { type: [String, Number] },
|
||||||
h: { type: [String, Number] },
|
h: { type: [String, Number] },
|
||||||
@@ -110,7 +110,7 @@ const tableStore: any = new TableStore({
|
|||||||
minWidth: 150,
|
minWidth: 150,
|
||||||
render: 'customTemplate',
|
render: 'customTemplate',
|
||||||
customTemplate: (row: any) => {
|
customTemplate: (row: any) => {
|
||||||
return `<span style='cursor: pointer;text-decoration: underline;'>${row.lineName}</span>`
|
return `<span style='cursor: pointer;text-decoration: underline;'>${row?.cellValue || '/'}</span>`
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
{ title: '设备名称', field: 'devName', minWidth: 150, align: 'center' },
|
{ title: '设备名称', field: 'devName', minWidth: 150, align: 'center' },
|
||||||
@@ -237,7 +237,7 @@ const tableStore: any = new TableStore({
|
|||||||
icon: 'el-icon-EditPen',
|
icon: 'el-icon-EditPen',
|
||||||
render: 'basicButton',
|
render: 'basicButton',
|
||||||
click: row => {
|
click: row => {
|
||||||
downloadTheReport(row.lineId, row.reportFilePath)
|
downloadTheReport(row.reportFilePath)
|
||||||
},
|
},
|
||||||
disabled: row => {
|
disabled: row => {
|
||||||
return row.reportFilePath == null || row.reportFilePath.length == 0
|
return row.reportFilePath == null || row.reportFilePath.length == 0
|
||||||
@@ -302,46 +302,32 @@ const cellClickEvent = ({ row, column }: any) => {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// 下载报告
|
// 下载报告(支持 doc/docx/pdf)
|
||||||
const downloadTheReport = (lineId: string, name: string) => {
|
const downloadTheReport = async (reportFilePath: string) => {
|
||||||
getReportUrl({ lineId: lineId }).then((res: any) => {
|
if (!reportFilePath) {
|
||||||
ElMessage.info('下载中......')
|
ElMessage.warning('暂无报告可下载')
|
||||||
forceDownloadPdf(res.data, name.split('/').pop() || '')
|
return
|
||||||
})
|
}
|
||||||
}
|
ElMessage.info('下载中......')
|
||||||
const forceDownloadPdf = async (pdfUrl: any, fileName = '文件.pdf') => {
|
|
||||||
try {
|
try {
|
||||||
// 1. 请求 PDF 并转为 Blob(关键:绕开浏览器直接解析)
|
const resp = (await downLoadFile(reportFilePath)) as unknown as Blob
|
||||||
const response = await fetch(pdfUrl, {
|
if (resp?.type === 'application/json') {
|
||||||
method: 'GET'
|
ElMessage.error('下载失败')
|
||||||
// 若需要鉴权,添加请求头(如 token)
|
return
|
||||||
})
|
}
|
||||||
|
const fileName = reportFilePath.split('/').pop() || '报告'
|
||||||
// 校验响应是否成功
|
const blob = new Blob([resp], { type: resp.type || 'application/octet-stream' })
|
||||||
if (!response.ok) throw new Error(`请求失败:${response.status}`)
|
const url = window.URL.createObjectURL(blob)
|
||||||
|
const link = document.createElement('a')
|
||||||
// 2. 将响应转为 Blob(指定类型为 PDF,确保兼容性)
|
link.href = url
|
||||||
const blob = await response.blob()
|
link.download = fileName
|
||||||
const pdfBlob = new Blob([blob], { type: 'application/pdf' })
|
document.body.appendChild(link)
|
||||||
|
link.click()
|
||||||
// 3. 创建临时 URL 并触发下载
|
document.body.removeChild(link)
|
||||||
const blobUrl = URL.createObjectURL(pdfBlob)
|
window.URL.revokeObjectURL(url)
|
||||||
const a = document.createElement('a')
|
ElMessage.success('下载成功')
|
||||||
a.href = blobUrl
|
} catch (error: any) {
|
||||||
a.download = fileName // 此时 Blob URL 是同源的,download 必生效
|
ElMessage.error('下载失败: ' + (error.message || '未知错误'))
|
||||||
a.style.display = 'none'
|
|
||||||
document.body.appendChild(a)
|
|
||||||
a.click() // 触发下载
|
|
||||||
|
|
||||||
// 4. 清理资源(避免内存泄漏)
|
|
||||||
document.body.removeChild(a)
|
|
||||||
URL.revokeObjectURL(blobUrl)
|
|
||||||
setTimeout(() => {
|
|
||||||
ElMessage.success('下载成功')
|
|
||||||
}, 2000)
|
|
||||||
} catch (error) {
|
|
||||||
console.error('下载失败:', error)
|
|
||||||
// ElMessage.error('文件下载失败,请检查网络或文件地址') // 适配 Element Plus
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -105,7 +105,7 @@ const tableStore: any = new TableStore({
|
|||||||
field: 'sagSource',
|
field: 'sagSource',
|
||||||
minWidth: 120,
|
minWidth: 120,
|
||||||
align: 'center',
|
align: 'center',
|
||||||
formatter: (row: any) => row.cellValue == 1 ? '上游' : row.cellValue == 2 ? '下游' : '未知'
|
formatter: (row: any) => row.cellValue == 1 ? '上游' : row.cellValue == 2 ? '下游' : '暂无'
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
title: '操作',
|
title: '操作',
|
||||||
|
|||||||
@@ -131,7 +131,7 @@ const tableStore: any = new TableStore({
|
|||||||
field: 'sagSource',
|
field: 'sagSource',
|
||||||
minWidth: 120,
|
minWidth: 120,
|
||||||
align: 'center',
|
align: 'center',
|
||||||
formatter: (row: any) => row.cellValue == 1 ? '上游' : row.cellValue == 2 ? '下游' : '未知'
|
formatter: (row: any) => row.cellValue == 1 ? '上游' : row.cellValue == 2 ? '下游' : '暂无'
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
title: '操作',
|
title: '操作',
|
||||||
|
|||||||
@@ -711,7 +711,6 @@ const drawPics = (
|
|||||||
if (props.boxoList.systemType == 'ZL' || props.boxoList.systemType == 'YPT') {
|
if (props.boxoList.systemType == 'ZL' || props.boxoList.systemType == 'YPT') {
|
||||||
const str = waveId.split('e')
|
const str = waveId.split('e')
|
||||||
const str1 = Number(str[1])
|
const str1 = Number(str[1])
|
||||||
console.log("🚀 ~ drawPics ~ props.wp.channelNames:", props.wp.channelNames)
|
|
||||||
|
|
||||||
props.wp.channelNames.forEach((element: string, i: number) => {
|
props.wp.channelNames.forEach((element: string, i: number) => {
|
||||||
if ((str1 == 1 && i == 4) || (str1 == 2 && i == 7) || (str1 == 3 && i == 10)) {
|
if ((str1 == 1 && i == 4) || (str1 == 2 && i == 7) || (str1 == 3 && i == 10)) {
|
||||||
|
|||||||
@@ -242,5 +242,5 @@
|
|||||||
}
|
}
|
||||||
.el-tree > .el-tree-node {
|
.el-tree > .el-tree-node {
|
||||||
min-width: 100% !important;
|
min-width: 100% !important;
|
||||||
display: inline-block !important;
|
// display: inline-block !important;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -15,7 +15,7 @@
|
|||||||
</el-form-item> -->
|
</el-form-item> -->
|
||||||
<el-form-item label="关键字筛选">
|
<el-form-item label="关键字筛选">
|
||||||
<el-input maxlength="32" show-word-limit style="width: 240px"
|
<el-input maxlength="32" show-word-limit style="width: 240px"
|
||||||
v-model.trim="tableStore.table.params.searchValue" clearable placeholder="请输入设备名称" />
|
v-model.trim="tableStore.table.params.searchValue" clearable placeholder="请输入设备名称/告警代码" />
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<el-form-item label="级别">
|
<el-form-item label="级别">
|
||||||
<el-select v-model.trim="tableStore.table.params.level" placeholder="请选择级别" clearable>
|
<el-select v-model.trim="tableStore.table.params.level" placeholder="请选择级别" clearable>
|
||||||
|
|||||||
@@ -3,10 +3,8 @@
|
|||||||
<template v-slot:select>
|
<template v-slot:select>
|
||||||
<el-form-item label="关键字筛选">
|
<el-form-item label="关键字筛选">
|
||||||
<el-input maxlength="32" show-word-limit
|
<el-input maxlength="32" show-word-limit
|
||||||
|
|
||||||
|
|
||||||
v-model.trim="tableStore.table.params.searchValue"
|
v-model.trim="tableStore.table.params.searchValue"
|
||||||
placeholder="请输入前置服务器名称、ip"
|
placeholder="请输入服务器/IP/告警代码"
|
||||||
/>
|
/>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<el-form-item label="级别">
|
<el-form-item label="级别">
|
||||||
@@ -79,9 +77,9 @@ const tableStore = new TableStore({
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
{ title: '发生时刻', field: 'startTime', align: 'center', width: 180, sortable: true },
|
{ title: '发生时刻', field: 'startTime', align: 'center', width: 180, sortable: true },
|
||||||
{ title: '前置服务器名称', field: 'lineId', align: 'center', width: 150 },
|
{ title: '服务器名称', field: 'lineId', align: 'center', width: 150 },
|
||||||
|
{ title: 'IP', field: 'wavePath', align: 'center', width: 150 },
|
||||||
{ title: '进程号', field: 'clDid', align: 'center', width: 70 },
|
{ title: '进程号', field: 'clDid', align: 'center', width: 70 },
|
||||||
{ title: '前置服务器ip', field: 'wavePath', align: 'center', width: 150 },
|
|
||||||
|
|
||||||
{
|
{
|
||||||
title: '事件描述',
|
title: '事件描述',
|
||||||
|
|||||||
@@ -109,7 +109,7 @@ const tableStore = new TableStore({
|
|||||||
{ title: '工程名称', field: 'engineeringName', minWidth: 150, align: 'center' },
|
{ title: '工程名称', field: 'engineeringName', minWidth: 150, align: 'center' },
|
||||||
{
|
{
|
||||||
title: '发生位置', field: 'sagSource', minWidth: 120, align: 'center', formatter: (row: any) => {
|
title: '发生位置', field: 'sagSource', minWidth: 120, align: 'center', formatter: (row: any) => {
|
||||||
return row.cellValue == 1 ? '上游' : row.cellValue == 2 ? '下游' : '未知'
|
return row.cellValue == 1 ? '上游' : row.cellValue == 2 ? '下游' : '暂无'
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -123,7 +123,7 @@ const tableStore = new TableStore({
|
|||||||
{ title: '工程名称', field: 'engineeringName', minWidth: 150, align: 'center' },
|
{ title: '工程名称', field: 'engineeringName', minWidth: 150, align: 'center' },
|
||||||
{
|
{
|
||||||
title: '发生位置', field: 'sagSource', minWidth: 120, align: 'center', formatter: (row: any) => {
|
title: '发生位置', field: 'sagSource', minWidth: 120, align: 'center', formatter: (row: any) => {
|
||||||
return row.cellValue == 1 ? '上游' : row.cellValue == 2 ? '下游' : '未知'
|
return row.cellValue == 1 ? '上游' : row.cellValue == 2 ? '下游' : '暂无'
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
|
||||||
|
|||||||
@@ -698,7 +698,7 @@ const nodeClick = async (e: anyObj, node?: any) => {
|
|||||||
if (e == undefined) {
|
if (e == undefined) {
|
||||||
return (loading.value = false)
|
return (loading.value = false)
|
||||||
}
|
}
|
||||||
if (e?.pname.includes('便携')) {
|
if (e?.pname?.includes?.('便携')) {
|
||||||
deviceType.value = '1'
|
deviceType.value = '1'
|
||||||
} else {
|
} else {
|
||||||
deviceType.value = '2'
|
deviceType.value = '2'
|
||||||
|
|||||||
@@ -121,7 +121,7 @@ const tableStore: any = new TableStore({
|
|||||||
{
|
{
|
||||||
title: '发生位置', field: 'sagSource', minWidth: 120, align: 'center', formatter: (row: any) => {
|
title: '发生位置', field: 'sagSource', minWidth: 120, align: 'center', formatter: (row: any) => {
|
||||||
|
|
||||||
return row.cellValue == 1 ? '上游' : row.cellValue == 2 ? '下游' : '未知'
|
return row.cellValue == 1 ? '上游' : row.cellValue == 2 ? '下游' : '暂无'
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
|
||||||
|
|||||||
@@ -56,77 +56,77 @@
|
|||||||
<div class="view_bot">
|
<div class="view_bot">
|
||||||
<vxe-table border height="" :data="realList" :column-config="{ resizable: true, tooltip: true }"
|
<vxe-table border height="" :data="realList" :column-config="{ resizable: true, tooltip: true }"
|
||||||
:tooltip-config="{ enterable: true }">
|
:tooltip-config="{ enterable: true }">
|
||||||
<vxe-colgroup align="center" :title="`电压有效值(${voltageUnit})`">
|
<vxe-colgroup align="center" :title="`电压有效值(${voltageUnit})`" >
|
||||||
<vxe-column align="center" field="vRmsA" title="A相"></vxe-column>
|
<vxe-column align="center" how-overflow-tooltip min-width="80" field="vRmsA" title="A相"></vxe-column>
|
||||||
<vxe-column align="center" field="vRmsB" title="B相"></vxe-column>
|
<vxe-column align="center" how-overflow-tooltip min-width="80" field="vRmsB" title="B相"></vxe-column>
|
||||||
<vxe-column align="center" field="vRmsC" title="C相"></vxe-column>
|
<vxe-column align="center" how-overflow-tooltip min-width="80" field="vRmsC" title="C相"></vxe-column>
|
||||||
</vxe-colgroup>
|
</vxe-colgroup>
|
||||||
<vxe-colgroup align="center" title="电流有效值(A)">
|
<vxe-colgroup align="center" title="电流有效值(A)">
|
||||||
<vxe-column align="center" field="iRmsA" title="A相"></vxe-column>
|
<vxe-column align="center" how-overflow-tooltip min-width="80" field="iRmsA" title="A相"></vxe-column>
|
||||||
<vxe-column align="center" field="iRmsB" title="B相"></vxe-column>
|
<vxe-column align="center" how-overflow-tooltip min-width="80" field="iRmsB" title="B相"></vxe-column>
|
||||||
<vxe-column align="center" field="iRmsC" title="C相"></vxe-column>
|
<vxe-column align="center" how-overflow-tooltip min-width="80" field="iRmsC" title="C相"></vxe-column>
|
||||||
</vxe-colgroup>
|
</vxe-colgroup>
|
||||||
<vxe-colgroup align="center" title="基波电压相位(°)">
|
<vxe-colgroup align="center" title="基波电压相位(°)">
|
||||||
<vxe-column align="center" field="v1AngA" title="A相"></vxe-column>
|
<vxe-column align="center" how-overflow-tooltip min-width="80" field="v1AngA" title="A相"></vxe-column>
|
||||||
<vxe-column align="center" field="v1AngB" title="B相"></vxe-column>
|
<vxe-column align="center" how-overflow-tooltip min-width="80" field="v1AngB" title="B相"></vxe-column>
|
||||||
<vxe-column align="center" field="v1AngC" title="C相"></vxe-column>
|
<vxe-column align="center" how-overflow-tooltip min-width="80" field="v1AngC" title="C相"></vxe-column>
|
||||||
</vxe-colgroup>
|
</vxe-colgroup>
|
||||||
<vxe-colgroup align="center" title="基波电流相位(°)">
|
<vxe-colgroup align="center" title="基波电流相位(°)">
|
||||||
<vxe-column align="center" field="i1AngA" title="A相"></vxe-column>
|
<vxe-column align="center" how-overflow-tooltip min-width="80" field="i1AngA" title="A相"></vxe-column>
|
||||||
<vxe-column align="center" field="i1AngB" title="B相"></vxe-column>
|
<vxe-column align="center" how-overflow-tooltip min-width="80" field="i1AngB" title="B相"></vxe-column>
|
||||||
<vxe-column align="center" field="i1AngC" title="C相"></vxe-column>
|
<vxe-column align="center" how-overflow-tooltip min-width="80" field="i1AngC" title="C相"></vxe-column>
|
||||||
</vxe-colgroup>
|
</vxe-colgroup>
|
||||||
</vxe-table>
|
</vxe-table>
|
||||||
<br />
|
<br />
|
||||||
<vxe-table border height="" :data="realList" :column-config="{ resizable: true, tooltip: true }"
|
<vxe-table border height="" :data="realList" :column-config="{ resizable: true, tooltip: true }"
|
||||||
:tooltip-config="{ enterable: true }">
|
:tooltip-config="{ enterable: true }">
|
||||||
<vxe-column align="center" field="freq" width="140" title="频率(Hz)"></vxe-column>
|
<vxe-column align="center" field="freq"how-overflow-tooltip min-width="160" title="频率(Hz)"></vxe-column>
|
||||||
<vxe-column align="center" field="freqDev" width="120" title="频率偏差(Hz)"></vxe-column>
|
<vxe-column align="center" field="freqDev"how-overflow-tooltip min-width="160" title="频率偏差(Hz)"></vxe-column>
|
||||||
<vxe-column align="center" width="180" field="vUnbalance" title="电压不平衡度(%)"></vxe-column>
|
<vxe-column align="center"how-overflow-tooltip min-width="160" field="vUnbalance" title="电压不平衡度(%)"></vxe-column>
|
||||||
<vxe-column align="center" width="180" field="iUnbalance" title="电流不平衡度(%)"></vxe-column>
|
<vxe-column align="center"how-overflow-tooltip min-width="160" field="iUnbalance" title="电流不平衡度(%)"></vxe-column>
|
||||||
<vxe-colgroup align="center" :title="`基波电压幅值(${voltageUnit})`">
|
<vxe-colgroup align="center" :title="`基波电压幅值(${voltageUnit})`">
|
||||||
<vxe-column align="center" field="v1A" title="A相"></vxe-column>
|
<vxe-column align="center" how-overflow-tooltip min-width="80" field="v1A" title="A相"></vxe-column>
|
||||||
<vxe-column align="center" field="v1B" title="B相"></vxe-column>
|
<vxe-column align="center" how-overflow-tooltip min-width="80" field="v1B" title="B相"></vxe-column>
|
||||||
<vxe-column align="center" field="v1C" title="C相"></vxe-column>
|
<vxe-column align="center" how-overflow-tooltip min-width="80" field="v1C" title="C相"></vxe-column>
|
||||||
</vxe-colgroup>
|
</vxe-colgroup>
|
||||||
<vxe-colgroup align="center" title="基波电流幅值(A)">
|
<vxe-colgroup align="center" title="基波电流幅值(A)">
|
||||||
<vxe-column align="center" field="i1A" title="A相"></vxe-column>
|
<vxe-column align="center" how-overflow-tooltip min-width="80" field="i1A" title="A相"></vxe-column>
|
||||||
<vxe-column align="center" field="i1B" title="B相"></vxe-column>
|
<vxe-column align="center" how-overflow-tooltip min-width="80" field="i1B" title="B相"></vxe-column>
|
||||||
<vxe-column align="center" field="i1C" title="C相"></vxe-column>
|
<vxe-column align="center" how-overflow-tooltip min-width="80" field="i1C" title="C相"></vxe-column>
|
||||||
</vxe-colgroup>
|
</vxe-colgroup>
|
||||||
</vxe-table>
|
</vxe-table>
|
||||||
<br />
|
<br />
|
||||||
<vxe-table border height="" :data="realList" :column-config="{ resizable: true, tooltip: true }"
|
<vxe-table border height="" :data="realList" :column-config="{ resizable: true, tooltip: true }"
|
||||||
:tooltip-config="{ enterable: true }">
|
:tooltip-config="{ enterable: true }">
|
||||||
<vxe-colgroup align="center" title="电压偏差(%)">
|
<vxe-colgroup align="center" title="电压偏差(%)">
|
||||||
<vxe-column align="center" field="vDevA" title="A相"></vxe-column>
|
<vxe-column align="center" how-overflow-tooltip min-width="80" field="vDevA" title="A相"></vxe-column>
|
||||||
<vxe-column align="center" field="vDevB" title="B相"></vxe-column>
|
<vxe-column align="center" how-overflow-tooltip min-width="80" field="vDevB" title="B相"></vxe-column>
|
||||||
<vxe-column align="center" field="vDevC" title="C相"></vxe-column>
|
<vxe-column align="center" how-overflow-tooltip min-width="80" field="vDevC" title="C相"></vxe-column>
|
||||||
</vxe-colgroup>
|
</vxe-colgroup>
|
||||||
<vxe-colgroup align="center" title="电压总谐波畸变率(%)">
|
<vxe-colgroup align="center" title="电压总谐波畸变率(%)">
|
||||||
<vxe-column align="center" field="vThdA" title="A相"></vxe-column>
|
<vxe-column align="center" how-overflow-tooltip min-width="80" field="vThdA" title="A相"></vxe-column>
|
||||||
<vxe-column align="center" field="vThdB" title="B相"></vxe-column>
|
<vxe-column align="center" how-overflow-tooltip min-width="80" field="vThdB" title="B相"></vxe-column>
|
||||||
<vxe-column align="center" field="vThdC" title="C相"></vxe-column>
|
<vxe-column align="center" how-overflow-tooltip min-width="80" field="vThdC" title="C相"></vxe-column>
|
||||||
</vxe-colgroup>
|
</vxe-colgroup>
|
||||||
<vxe-colgroup align="center" title="电流总谐波畸变率(%)">
|
<vxe-colgroup align="center" title="电流总谐波畸变率(%)">
|
||||||
<vxe-column align="center" field="iThdA" title="A相"></vxe-column>
|
<vxe-column align="center" how-overflow-tooltip min-width="80" field="iThdA" title="A相"></vxe-column>
|
||||||
<vxe-column align="center" field="iThdB" title="B相"></vxe-column>
|
<vxe-column align="center" how-overflow-tooltip min-width="80" field="iThdB" title="B相"></vxe-column>
|
||||||
<vxe-column align="center" field="iThdC" title="C相"></vxe-column>
|
<vxe-column align="center" how-overflow-tooltip min-width="80" field="iThdC" title="C相"></vxe-column>
|
||||||
</vxe-colgroup>
|
</vxe-colgroup>
|
||||||
<vxe-colgroup align="center" :title="`有功功率(${powerUnit})`">
|
<vxe-colgroup align="center" :title="`有功功率(${powerUnit})`">
|
||||||
<vxe-column align="center" field="pA" title="A相"></vxe-column>
|
<vxe-column align="center" how-overflow-tooltip min-width="80" field="pA" title="A相"></vxe-column>
|
||||||
<vxe-column align="center" field="pB" title="B相"></vxe-column>
|
<vxe-column align="center" how-overflow-tooltip min-width="80" field="pB" title="B相"></vxe-column>
|
||||||
<vxe-column align="center" field="pC" title="C相"></vxe-column>
|
<vxe-column align="center" how-overflow-tooltip min-width="80" field="pC" title="C相"></vxe-column>
|
||||||
<vxe-column align="center" field="pTot" title="总"></vxe-column>
|
<vxe-column align="center" how-overflow-tooltip min-width="80" field="pTot" title="总"></vxe-column>
|
||||||
</vxe-colgroup>
|
</vxe-colgroup>
|
||||||
</vxe-table>
|
</vxe-table>
|
||||||
<br />
|
<br />
|
||||||
<vxe-table border height="" :data="realList" :column-config="{ resizable: true, tooltip: true }"
|
<vxe-table border height="" :data="realList" :column-config="{ resizable: true, tooltip: true }"
|
||||||
:tooltip-config="{ enterable: true }">
|
:tooltip-config="{ enterable: true }">
|
||||||
<vxe-colgroup align="center" :title="`无功功率(${reactivePowerUnit})`">
|
<vxe-colgroup align="center" :title="`无功功率(${reactivePowerUnit})`">
|
||||||
<vxe-column align="center" field="qA" title="A相"></vxe-column>
|
<vxe-column align="center" how-overflow-tooltip min-width="80" field="qA" title="A相"></vxe-column>
|
||||||
<vxe-column align="center" field="qB" title="B相"></vxe-column>
|
<vxe-column align="center" how-overflow-tooltip min-width="80" field="qB" title="B相"></vxe-column>
|
||||||
<vxe-column align="center" field="qC" title="C相">
|
<vxe-column align="center" how-overflow-tooltip min-width="80" field="qC" title="C相">
|
||||||
<template #default="{ row }">
|
<template #default="{ row }">
|
||||||
{{ row.qC }}
|
{{ row.qC }}
|
||||||
</template>
|
</template>
|
||||||
@@ -134,22 +134,22 @@
|
|||||||
<vxe-column align="center" field="qTot" title="总"></vxe-column>
|
<vxe-column align="center" field="qTot" title="总"></vxe-column>
|
||||||
</vxe-colgroup>
|
</vxe-colgroup>
|
||||||
<vxe-colgroup align="center" :title="`视在功率(${apparentPowerUnit})`">
|
<vxe-colgroup align="center" :title="`视在功率(${apparentPowerUnit})`">
|
||||||
<vxe-column align="center" field="sA" title="A相"></vxe-column>
|
<vxe-column align="center" how-overflow-tooltip min-width="80" field="sA" title="A相"></vxe-column>
|
||||||
<vxe-column align="center" field="sB" title="B相"></vxe-column>
|
<vxe-column align="center" how-overflow-tooltip min-width="80" field="sB" title="B相"></vxe-column>
|
||||||
<vxe-column align="center" field="sC" title="C相"></vxe-column>
|
<vxe-column align="center" how-overflow-tooltip min-width="80" field="sC" title="C相"></vxe-column>
|
||||||
<vxe-column align="center" field="sTot" title="总"></vxe-column>
|
<vxe-column align="center" how-overflow-tooltip min-width="80" field="sTot" title="总"></vxe-column>
|
||||||
</vxe-colgroup>
|
</vxe-colgroup>
|
||||||
<vxe-colgroup align="center" title="视在功率因数(P/S)">
|
<vxe-colgroup align="center" title="视在功率因数(P/S)">
|
||||||
<vxe-column align="center" field="pfA" title="A相"></vxe-column>
|
<vxe-column align="center" how-overflow-tooltip min-width="80" field="pfA" title="A相"></vxe-column>
|
||||||
<vxe-column align="center" field="pfB" title="B相"></vxe-column>
|
<vxe-column align="center" how-overflow-tooltip min-width="80" field="pfB" title="B相"></vxe-column>
|
||||||
<vxe-column align="center" field="pfC" title="C相"></vxe-column>
|
<vxe-column align="center" how-overflow-tooltip min-width="80" field="pfC" title="C相"></vxe-column>
|
||||||
<vxe-column align="center" field="pfTot" title="总"></vxe-column>
|
<vxe-column align="center" how-overflow-tooltip min-width="80" field="pfTot" title="总"></vxe-column>
|
||||||
</vxe-colgroup>
|
</vxe-colgroup>
|
||||||
<vxe-colgroup align="center" title="位移功率因数(P/S1)">
|
<vxe-colgroup align="center" title="位移功率因数(P/S1)">
|
||||||
<vxe-column align="center" field="dpfA" title="A相"></vxe-column>
|
<vxe-column align="center" how-overflow-tooltip min-width="80" field="dpfA" title="A相"></vxe-column>
|
||||||
<vxe-column align="center" field="dpfB" title="B相"></vxe-column>
|
<vxe-column align="center" how-overflow-tooltip min-width="80" field="dpfB" title="B相"></vxe-column>
|
||||||
<vxe-column align="center" field="dpfC" title="C相"></vxe-column>
|
<vxe-column align="center" how-overflow-tooltip min-width="80" field="dpfC" title="C相"></vxe-column>
|
||||||
<vxe-column align="center" field="dpfTot" title="总"></vxe-column>
|
<vxe-column align="center" how-overflow-tooltip min-width="80" field="dpfTot" title="总"></vxe-column>
|
||||||
</vxe-colgroup>
|
</vxe-colgroup>
|
||||||
</vxe-table>
|
</vxe-table>
|
||||||
</div>
|
</div>
|
||||||
|
|||||||
@@ -124,7 +124,7 @@ const tableStore = new TableStore({
|
|||||||
{
|
{
|
||||||
title: '发生位置', field: 'sagSource', minWidth: 120, align: 'center', formatter: (row: any) => {
|
title: '发生位置', field: 'sagSource', minWidth: 120, align: 'center', formatter: (row: any) => {
|
||||||
|
|
||||||
return row.cellValue == 1 ? '上游' : row.cellValue == 2 ? '下游' : '未知'
|
return row.cellValue == 1 ? '上游' : row.cellValue == 2 ? '下游' : '暂无'
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -18,7 +18,7 @@
|
|||||||
</el-form-item>
|
</el-form-item>
|
||||||
<el-form-item label="关键字筛选">
|
<el-form-item label="关键字筛选">
|
||||||
<el-input maxlength="32" show-word-limit v-model.trim="tableStore.table.params.searchValue"
|
<el-input maxlength="32" show-word-limit v-model.trim="tableStore.table.params.searchValue"
|
||||||
placeholder="数据名称、别名、展示名称" clearable></el-input>
|
placeholder="数据名称/别名/展示名称" clearable></el-input>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
</template>
|
</template>
|
||||||
<template #operation>
|
<template #operation>
|
||||||
|
|||||||
@@ -69,7 +69,7 @@ const nodeClick = (node: any) => {
|
|||||||
if(node==undefined){
|
if(node==undefined){
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
if (node?.pname.includes('便携')) {
|
if (node?.pname?.includes?.('便携')) {
|
||||||
activeTab.value = '3'
|
activeTab.value = '3'
|
||||||
showTab.value = false
|
showTab.value = false
|
||||||
nextTick(() => {
|
nextTick(() => {
|
||||||
|
|||||||
@@ -173,7 +173,7 @@ const open = ref((row: any) => {
|
|||||||
}
|
}
|
||||||
// item.children = item.newList
|
// item.children = item.newList
|
||||||
}
|
}
|
||||||
if (item.name.includes('便携式')) {
|
if (item.name?.includes?.('便携式')) {
|
||||||
if (vv.level === 1) {
|
if (vv.level === 1) {
|
||||||
vv.disabled = false
|
vv.disabled = false
|
||||||
} else {
|
} else {
|
||||||
@@ -182,7 +182,7 @@ const open = ref((row: any) => {
|
|||||||
}
|
}
|
||||||
if (vv.children && vv.children.length != 0) {
|
if (vv.children && vv.children.length != 0) {
|
||||||
vv.children.forEach((kk: any, kks: any) => {
|
vv.children.forEach((kk: any, kks: any) => {
|
||||||
if (item.name.includes('便携式') && kk.level === 2) {
|
if (item.name?.includes?.('便携式') && kk.level === 2) {
|
||||||
kk.disabled = true
|
kk.disabled = true
|
||||||
vv.children.splice(kks, 1)
|
vv.children.splice(kks, 1)
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
<template>
|
<template>
|
||||||
<div class="report-sheet-panel">
|
<div class="report-sheet-panel">
|
||||||
<TableHeader ref="tableHeaderRef" datePicker :show-reset="false">
|
<TableHeader ref="tableHeaderRef" datePicker :showSearch="false">
|
||||||
<template #select>
|
<template #select>
|
||||||
<el-form-item label="模板策略">
|
<el-form-item label="模板策略">
|
||||||
<el-select
|
<el-select
|
||||||
@@ -19,6 +19,7 @@
|
|||||||
</el-form-item>
|
</el-form-item>
|
||||||
</template>
|
</template>
|
||||||
<template #operation>
|
<template #operation>
|
||||||
|
<el-button icon="el-icon-Search" type="primary" @click="loadSheetData">查询</el-button>
|
||||||
<el-button icon="el-icon-Download" type="primary" @click="exportEvent">报表生成</el-button>
|
<el-button icon="el-icon-Download" type="primary" @click="exportEvent">报表生成</el-button>
|
||||||
</template>
|
</template>
|
||||||
</TableHeader>
|
</TableHeader>
|
||||||
@@ -96,7 +97,12 @@ const changeType = (val: any) => {
|
|||||||
}
|
}
|
||||||
|
|
||||||
const loadSheetData = () => {
|
const loadSheetData = () => {
|
||||||
if (!props.active || !props.lineFlag || !props.dotList?.id || !template.value?.id) {
|
if(!props.lineFlag){
|
||||||
|
tableStore.table.loading = false
|
||||||
|
ElMessage.warning('治理监测点暂不支持出报表!')
|
||||||
|
return
|
||||||
|
}
|
||||||
|
if (!props.active || !props.dotList?.id || !template.value?.id) {
|
||||||
tableStore.table.loading = false
|
tableStore.table.loading = false
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -26,7 +26,7 @@
|
|||||||
</el-form-item>
|
</el-form-item>
|
||||||
<el-form-item label="关键字筛选">
|
<el-form-item label="关键字筛选">
|
||||||
<el-input maxlength="32" show-word-limit v-model.trim="tableStore.table.params.searchValue"
|
<el-input maxlength="32" show-word-limit v-model.trim="tableStore.table.params.searchValue"
|
||||||
placeholder="根据变电站,终端编号,型号或网络参数查询" />
|
placeholder="请输入变电站/终端编号/型号/网络参数" />
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
</template>
|
</template>
|
||||||
</TableHeader>
|
</TableHeader>
|
||||||
|
|||||||
@@ -24,7 +24,7 @@
|
|||||||
</el-form-item>
|
</el-form-item>
|
||||||
<el-form-item label="关键字筛选">
|
<el-form-item label="关键字筛选">
|
||||||
<el-input maxlength="32" show-word-limit v-model.trim="tableStore.table.params.searchValue"
|
<el-input maxlength="32" show-word-limit v-model.trim="tableStore.table.params.searchValue"
|
||||||
placeholder="根据变电站,终端编号,型号或网络参数查询" />
|
placeholder="请是输入变电站/终端编号/型号/网络参数查询" />
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
</template>
|
</template>
|
||||||
</TableHeader>
|
</TableHeader>
|
||||||
|
|||||||
Reference in New Issue
Block a user