+
{{ item.name.includes('次数') ? item.name : item.name + '谐波次数' }}
-
-
+
+
@@ -109,6 +79,7 @@ const props = defineProps({
type: Array
}
})
+const dialogTitle = ref('趋势图')
const dialogVisible: any = ref(false)
// console.log("🚀 ~ props:", props.TrendList)
@@ -181,14 +152,14 @@ const initCode = (field: string, title: string) => {
let codeKey = field.includes('flickerOvertime')
? '闪变'
: field.includes('uharm')
- ? '谐波电压'
- : field.includes('iharm')
- ? '谐波电流'
- : field.includes('voltageDevOvertime')
- ? '电压偏差'
- : field.includes('ubalanceOvertime')
- ? '不平衡'
- : ''
+ ? '谐波电压'
+ : field.includes('iharm')
+ ? '谐波电流'
+ : field.includes('uaberrance')
+ ? '电压偏差'
+ : field.includes('ubalanceOvertime')
+ ? '不平衡'
+ : ''
let defaultIndex = indexOptions.value.findIndex((item: any) => item.name.includes(codeKey)) || 0
searchForm.value.index[0] = indexOptions.value[defaultIndex].id
@@ -505,10 +476,10 @@ const setEchart = () => {
return item.anotherName == '电压负序分量'
? '电压不平衡'
: item.anotherName == '电压正序分量'
- ? '电压不平衡'
- : item.anotherName == '电压零序分量'
- ? '电压不平衡'
- : item.anotherName
+ ? '电压不平衡'
+ : item.anotherName == '电压零序分量'
+ ? '电压不平衡'
+ : item.anotherName
})
)
]
@@ -542,10 +513,10 @@ const setEchart = () => {
(kk[0].anotherName == '电压负序分量'
? '电压不平衡'
: kk[0].anotherName == '电压正序分量'
- ? '电压不平衡'
- : kk[0].anotherName == '电压零序分量'
- ? '电压不平衡'
- : kk[0].anotherName)
+ ? '电压不平衡'
+ : kk[0].anotherName == '电压零序分量'
+ ? '电压不平衡'
+ : kk[0].anotherName)
)
let seriesList: any = []
@@ -643,7 +614,7 @@ const onIndexChange = (val: any) => {
}
watch(
() => searchForm.value.index,
- (val: any, oldval: any) => {},
+ (val: any, oldval: any) => { },
{
deep: true,
immediate: true
@@ -652,6 +623,8 @@ watch(
const openDialog = async (row: any, field: any, title: any) => {
dialogVisible.value = true
+
+ dialogTitle.value = row?.lineName + '_趋势图'
trendRequestData.value = row
nextTick(() => {
diff --git a/src/components/cockpit/indicatorFittingChart/components/overLimitDetails.vue b/src/components/cockpit/indicatorFittingChart/components/overLimitDetails.vue
index ed99d12..697965d 100644
--- a/src/components/cockpit/indicatorFittingChart/components/overLimitDetails.vue
+++ b/src/components/cockpit/indicatorFittingChart/components/overLimitDetails.vue
@@ -1,9 +1,9 @@
-
+
-
+
@@ -28,7 +28,7 @@
diff --git a/src/components/cockpit/listOfMainMonitoringPoints/index.vue b/src/components/cockpit/listOfMainMonitoringPoints/index.vue
index 7ec9b88..b4b9f25 100644
--- a/src/components/cockpit/listOfMainMonitoringPoints/index.vue
+++ b/src/components/cockpit/listOfMainMonitoringPoints/index.vue
@@ -220,16 +220,33 @@ const setEchart = () => {
}
: {}
],
- grid: {
- left: '10px',
- right: '20px'
- },
+ // grid: {
+ // left: '10px',
+ // right: '30px',
+ // },
options: {
+ // dataZoom: [
+ // {
+ // type: 'inside',
+ // start: 0,
+ // end: 100,
+ // filterMode: 'filter'
+ // },
+ // {
+ // type: 'slider',
+ // start: 0,
+ // end: 100,
+ // height: 13,
+ // bottom: '20px',
+ // filterMode: 'filter'
+ // }
+ // ],
series: [
{
type: 'bar',
name: powerName, // 动态设置功率名称
data: [],
+ clip: true,
itemStyle: {
normal: {
color: function (params: any) {
@@ -248,7 +265,7 @@ const setEchart = () => {
type: 'line',
step: 'end',
showSymbol: false,
- // smooth: true,
+ clip: true,
data: [],
yAxisIndex: 1
}
diff --git a/src/components/cockpit/monitoringPointList/components/overLimitDetails.vue b/src/components/cockpit/monitoringPointList/components/overLimitDetails.vue
index aff03b5..aab920e 100644
--- a/src/components/cockpit/monitoringPointList/components/overLimitDetails.vue
+++ b/src/components/cockpit/monitoringPointList/components/overLimitDetails.vue
@@ -1,10 +1,10 @@
-
+
-
+
@@ -38,7 +38,7 @@ import { cslineList ,governLineList} from '@/api/harmonic-boot/cockpit/cockpit'
const dialogVisible: any = ref(false)
const harmonicRatioRef: any = ref(null)
-
+const title = ref('指标越限详情')
const options = ref()
const height = mainHeight(0, 2).height as any
const tableHeaderRef = ref()
@@ -76,13 +76,13 @@ const tableStore: any = new TableStore({
{
title: '日期',
field: 'time',
- width: '150',
+ width: '120',
sortable: true
},
{
title: '名称',
field: 'lineName',
- width: '150'
+ width: '120'
},
{
title: '长时闪变越限(%)',
@@ -144,6 +144,7 @@ tableStore.table.params.orderBy = ''
const time:any=ref([])
const open = async (row: any,searchBeginTime:any,searchEndTime:any) => {
dialogVisible.value = true
+ title.value = row.lineName + '_指标越限详情'
time.value=[searchBeginTime,searchEndTime]
initCSlineList()
tableStore.table.params.lineId = row.lineId
@@ -159,7 +160,7 @@ const open = async (row: any,searchBeginTime:any,searchEndTime:any) => {
// 点击行
const cellClickEvent = ({ row, column }: any) => {
- if (column.field != 'name' && column.field != 'time') {
+ if (column.field != 'lineName' && column.field != 'name' && column.field != 'time') {
dialogFlag.value = true
dialogVisible.value = false
nextTick(() => {
diff --git a/src/components/cockpit/monitoringPointList/index.vue b/src/components/cockpit/monitoringPointList/index.vue
index f1ce70c..a8948c3 100644
--- a/src/components/cockpit/monitoringPointList/index.vue
+++ b/src/components/cockpit/monitoringPointList/index.vue
@@ -1,55 +1,26 @@
+
-
+
-
+
-
+
-
-
+
+
点击上传
请上传Word或PDF文件
@@ -73,7 +44,7 @@ import { ElMessage, ElMessageBox } from 'element-plus'
import OverLimitDetails from '@/components/cockpit/monitoringPointList/components/overLimitDetails.vue'
import TableHeader from '@/components/table/header/index.vue'
import { uploadReport, getReportUrl } from '@/api/harmonic-boot/cockpit/cockpit'
-import { getTime } from '@/utils/formatTime'
+
const prop = defineProps({
w: { type: [String, Number] },
@@ -82,7 +53,8 @@ const prop = defineProps({
height: { type: [String, Number] },
timeKey: { type: Array as () => string[] },
timeValue: { type: Object },
- interval: { type: Number }
+ interval: { type: Number },
+ flag: { type: Boolean }
})
const headerHeight = ref(57)
@@ -135,16 +107,19 @@ const tableStore: any = new TableStore({
{
title: '监测点名称',
field: 'lineName',
- minWidth: '120',
+ minWidth: 120,
render: 'customTemplate',
customTemplate: (row: any) => {
return `${row.lineName}`
}
},
+ { title: '设备名称', field: 'devName', minWidth: 130, align: 'center' },
+ { title: '项目名称', field: 'projectName', minWidth: 130, align: 'center' },
+ { title: '工程名称', field: 'engineeringName', minWidth: 130, align: 'center' },
{
title: '监测类型',
field: 'position',
- minWidth: '80',
+ minWidth: '100',
formatter: (row: any) => {
return row.cellValue || '/'
}
@@ -162,28 +137,22 @@ const tableStore: any = new TableStore({
title: '监测点状态',
field: 'runStatus',
render: 'tag',
-
- width: 100,
+ width: 90,
custom: {
- 停运: 'danger',
- 退运: 'danger',
- 运行: 'success',
- 在线: 'success',
- 中断: 'warning',
- 离线: 'danger',
- 检修: 'warning',
- 调试: 'warning',
+ // 0:运行;1:检修;2:停运;3:调试;4:退运
+ 0: 'success',
+ 1: 'warning',
+ 2: 'danger',
+ 3: 'warning',
+ 4: 'info',
null: 'info'
},
replaceValue: {
- 运行: '运行',
- 在线: '在线',
- 退运: '退运',
- 停运: '停运',
- 中断: '中断',
- 检修: '检修',
- 离线: '离线',
- 调试: '调试',
+ 0: '运行',
+ 1: '检修',
+ 2: '停运',
+ 3: '调试',
+ 4: '退运',
null: '/'
}
},
@@ -192,21 +161,21 @@ const tableStore: any = new TableStore({
field: 'volGrade',
minWidth: '80',
formatter: (row: any) => {
- return row.cellValue == 0 ? '/' : row.cellValue || '/'
+ return row.cellValue == 0 ? '/' : row.cellValue || '/'
}
},
{
title: '治理对象',
field: 'sensitiveUser',
- minWidth: '90',
+ minWidth: '100',
formatter: (row: any) => {
return row.cellValue || '/'
}
},
-
+
{
- title: '是否治理',
+ title: '治理方案',
field: 'govern',
minWidth: '80',
formatter: (row: any) => {
@@ -241,7 +210,7 @@ const tableStore: any = new TableStore({
// }
// },
{
- title: '报告',
+ title: '治理前报告',
field: 'reportFilePath',
minWidth: '150',
formatter: (row: any) => {
@@ -347,7 +316,7 @@ const downloadTheReport = (lineId: string, name: string) => {
forceDownloadPdf(res.data, name.split('/').pop() || '')
})
}
-const forceDownloadPdf = async (pdfUrl:any, fileName = '文件.pdf') => {
+const forceDownloadPdf = async (pdfUrl: any, fileName = '文件.pdf') => {
try {
// 1. 请求 PDF 并转为 Blob(关键:绕开浏览器直接解析)
const response = await fetch(pdfUrl, {
@@ -374,9 +343,9 @@ const forceDownloadPdf = async (pdfUrl:any, fileName = '文件.pdf') => {
// 4. 清理资源(避免内存泄漏)
document.body.removeChild(a)
URL.revokeObjectURL(blobUrl)
- setTimeout(() => {
- ElMessage.success('下载成功')
- }, 2000)
+ setTimeout(() => {
+ ElMessage.success('下载成功')
+ }, 2000)
} catch (error) {
console.error('下载失败:', error)
// ElMessage.error('文件下载失败,请检查网络或文件地址') // 适配 Element Plus
@@ -456,6 +425,12 @@ const handleUpload = async () => {
onMounted(() => {
tableStore.index()
})
+watch(
+ () => prop.flag,
+ val => {
+ tableStore.showPage = fullscreen.value ? true : false
+ }
+)
watch(
() => prop.timeKey,
val => {
diff --git a/src/components/cockpit/overLimitStatistics/components/overLimitDetails.vue b/src/components/cockpit/overLimitStatistics/components/overLimitDetails.vue
index 3d9ebd7..bfffc34 100644
--- a/src/components/cockpit/overLimitStatistics/components/overLimitDetails.vue
+++ b/src/components/cockpit/overLimitStatistics/components/overLimitDetails.vue
@@ -1,10 +1,10 @@
-
+
-
+
@@ -38,7 +38,7 @@ import { cslineList } from '@/api/harmonic-boot/cockpit/cockpit'
const dialogVisible: any = ref(false)
const harmonicRatioRef: any = ref(null)
-
+const title = ref('指标越限详情')
const options = ref()
const height = mainHeight(0, 2).height as any
const tableHeaderRef = ref()
@@ -76,13 +76,13 @@ const tableStore: any = new TableStore({
{
title: '日期',
field: 'time',
- width: '150',
+ width: '120',
sortable: true
},
{
title: '名称',
field: 'lineName',
- width: '150'
+ width: '120'
},
{
title: '长时闪变越限(%)',
@@ -144,6 +144,7 @@ tableStore.table.params.orderBy = ''
const open = async (row: any,searchBeginTime:any,searchEndTime:any,data: any) => {
dialogVisible.value = true
// initCSlineList()
+ title.value = row.lineName + '_指标越限详情'
options.value = data
tableStore.table.params.lineId = row.lineId
@@ -158,7 +159,7 @@ const open = async (row: any,searchBeginTime:any,searchEndTime:any,data: any) =>
// 点击行
const cellClickEvent = ({ row, column }: any) => {
- if (column.field != 'name' && column.field != 'time') {
+ if (column.field != 'lineName' && column.field != 'name' && column.field != 'time') {
dialogFlag.value = true
dialogVisible.value = false
nextTick(() => {
diff --git a/src/components/cockpit/overLimitStatistics/index.vue b/src/components/cockpit/overLimitStatistics/index.vue
index 7900c62..e1ab240 100644
--- a/src/components/cockpit/overLimitStatistics/index.vue
+++ b/src/components/cockpit/overLimitStatistics/index.vue
@@ -142,17 +142,20 @@ const tableStore: any = new TableStore({
}
},
{
- title: '名称',
+ title: '监测点名称',
field: 'lineName',
- minWidth: '90'
+ minWidth: 120
},
+ { title: '设备名称', field: 'devName', minWidth: 130, align: 'center' },
+ { title: '项目名称', field: 'projectName', minWidth: 130, align: 'center' },
+ { title: '工程名称', field: 'engineeringName', minWidth: 130, align: 'center' },
{
title: '越限占比(%)',
children: [
{
title: '长时闪变',
field: 'flicker',
- minWidth: '70',
+ minWidth: '80',
render: 'customTemplate',
customTemplate: (row: any) => {
return `${row.flicker}`
diff --git a/src/components/cockpit/sensitiveLoad/index.vue b/src/components/cockpit/sensitiveLoad/index.vue
index 58a657d..7db3209 100644
--- a/src/components/cockpit/sensitiveLoad/index.vue
+++ b/src/components/cockpit/sensitiveLoad/index.vue
@@ -1,32 +1,17 @@
diff --git a/src/components/cockpit/transientDetails/components/transientList.vue b/src/components/cockpit/transientDetails/components/transientList.vue
index 52ddeb0..3b84b58 100644
--- a/src/components/cockpit/transientDetails/components/transientList.vue
+++ b/src/components/cockpit/transientDetails/components/transientList.vue
@@ -1,203 +1,155 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+ 事件筛选
+
+
+
-
-
-
+
+
+
+
+
diff --git a/src/components/cockpit/transientDetails/index.vue b/src/components/cockpit/transientDetails/index.vue
index cb272f9..ae919e2 100644
--- a/src/components/cockpit/transientDetails/index.vue
+++ b/src/components/cockpit/transientDetails/index.vue
@@ -58,7 +58,7 @@
-
+
+
diff --git a/src/components/cockpit/transientStatistics/index.vue b/src/components/cockpit/transientStatistics/index.vue
index fa1683a..f078178 100644
--- a/src/components/cockpit/transientStatistics/index.vue
+++ b/src/components/cockpit/transientStatistics/index.vue
@@ -1,27 +1,14 @@
@@ -41,7 +28,7 @@ const prop = defineProps({
h: { type: [String, Number] },
width: { type: [String, Number] },
height: { type: [String, Number] },
- timeKey: { type: Array as () => string[] },
+ timeKey: { type: Array as () => string[] },
timeValue: { type: Object },
interval: { type: Number }
})
@@ -129,7 +116,11 @@ const eventEcharts = () => {
title: [
{
text: '暂态事件统计',
- left: 'center'
+ left: 'center',
+ textStyle: {
+ color: '#000',
+ fontSize: '15'
+ },
},
{
text: rawData.eventOff + rawData.eventDown + rawData.eventUp + '次',
@@ -173,15 +164,30 @@ const tableStore: any = new TableStore({
}
},
{
- title: '名称',
+ title: '监测点名称',
field: 'name',
- minWidth: '90'
+ minWidth: 120
+ },
+ {
+ title: '设备名称', field: 'devName', minWidth: 130, align: 'center', formatter: (row: any) => {
+ return row.cellValue || '/'
+ }
+ },
+ {
+ title: '项目名称', field: 'projectName', minWidth: 130, align: 'center', formatter: (row: any) => {
+ return row.cellValue || '/'
+ }
+ },
+ {
+ title: '工程名称', field: 'engineeringName', minWidth: 130, align: 'center', formatter: (row: any) => {
+ return row.cellValue || '/'
+ }
},
{
title: '电压中断(次)',
field: 'eventOff',
- minWidth: '70',
+ minWidth: '90',
sortable: true,
render: 'customTemplate',
customTemplate: (row: any) => {
@@ -191,7 +197,7 @@ const tableStore: any = new TableStore({
{
title: '电压暂降(次)',
field: 'eventDown',
- minWidth: '80',
+ minWidth: '90',
sortable: true,
render: 'customTemplate',
customTemplate: (row: any) => {
@@ -201,7 +207,7 @@ const tableStore: any = new TableStore({
{
title: '电压暂升(次)',
field: 'eventUp',
- minWidth: '80',
+ minWidth: '90',
sortable: true,
render: 'customTemplate',
customTemplate: (row: any) => {
@@ -224,11 +230,13 @@ provide('tableStore', tableStore)
// 点击行
const cellClickEvent = ({ row, column }: any) => {
- if (column.field != 'name') {
+ if (column.field != 'name' && column.field != 'devName' && column.field != 'projectName' && column.field != 'engineeringName') {
transientStatisticsDetailRef.value.open(
row,
tableStore.table.params.searchBeginTime || prop.timeValue?.[0],
- tableStore.table.params.searchEndTime || prop.timeValue?.[1]
+ tableStore.table.params.searchEndTime || prop.timeValue?.[1],
+ column.field=='eventOff'?'中断':column.field=='eventDown'?'暂降':column.field=='eventUp'?'暂升':''
+
)
}
}
diff --git a/src/components/cockpit/trendComparison/index.vue b/src/components/cockpit/trendComparison/index.vue
index 3512ae2..142655a 100644
--- a/src/components/cockpit/trendComparison/index.vue
+++ b/src/components/cockpit/trendComparison/index.vue
@@ -1,26 +1,22 @@
-
+
+
+
+
+
+
+
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- {{ getHarmonicTypeName() }}谐波次数
-
-
+
+
+
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ {{ getHarmonicTypeName() }}谐波次数
+
+
+
+
+
+
+
+
+ }" />
+
@@ -94,7 +78,7 @@ import { queryByCode, queryCsDictTree } from '@/api/system-boot/dictTree'
import { getListByIds } from '@/api/harmonic-boot/cockpit/cockpit'
import { getTime } from '@/utils/formatTime'
import { yMethod, exportCSV } from '@/utils/echartMethod'
-import { max } from 'lodash'
+import APFTree from '@/components/tree/govern/APFTree.vue'
const prop = defineProps({
w: { type: [String, Number] },
h: { type: [String, Number] },
@@ -102,7 +86,8 @@ const prop = defineProps({
height: { type: [String, Number] },
timeKey: { type: Array as () => string[] },
timeValue: { type: Object },
- interval: { type: Number }
+ interval: { type: Number },
+ flag: { type: Boolean }
})
const TableHeaderRef = ref()
@@ -136,12 +121,26 @@ const initListByIds = () => {
getListByIds({}).then((res: any) => {
if (res.data?.length > 0) {
idList.value = res.data
- initCode()
+
} else {
tableStore.index()
}
})
}
+
+
+const handleNodeClick = async (data: any) => {
+
+
+ if (data?.level == 3 || data?.level == 2) {
+ tableStore.table.params.sensitiveUserId = data.id
+ await tableStore.index()
+ } else {
+ tableStore.table.loading = false
+ }
+}
+
+
const selectChange = (showSelect: any, height: any, datePickerValue?: any) => {
headerHeight.value = height
@@ -158,7 +157,7 @@ const initCode = () => {
indicatorList.value = item.data
tableStore.table.params.indicator = indicatorList.value[0].id
nextTick(() => {
- tableStore.index()
+ // tableStore.index()
})
})
})
@@ -192,7 +191,7 @@ const setEchart = () => {
if (!afterGroupedByPhase[phase]) {
afterGroupedByPhase[phase] = []
}
- afterGroupedByPhase[phase].push([item.time, item.statisticalData, item.unit, 'dotted'])
+ afterGroupedByPhase[phase].push([item.time, item.statisticalData, item.unit, 'dashed'])
})
// 构建系列数据
@@ -224,7 +223,6 @@ const setEchart = () => {
},
lineStyle: {
type: 'solid', // 实线
- width: 2 // 线条宽度
},
yAxisIndex: 0
})
@@ -249,7 +247,6 @@ const setEchart = () => {
},
lineStyle: {
type: 'dashed', // 虚线
- width: 2 // 线条宽度
},
yAxisIndex: 0
})
@@ -285,9 +282,9 @@ const setEchart = () => {
return {
name: item.name,
- icon: isBefore
- ? 'rect'
- : 'path://M0,2 L8,2 L8,6 L0,6 Z M12,2 L20,2 L20,6 L12,6 Z M24,2 L32,2 L32,6 L24,6 Z M36,2 L44,2 L44,6 L36,6 Z', // 矩形组成的粗虚线
+ // icon: isBefore
+ // ? 'rect'
+ // : 'path://M0,2 L8,2 L8,6 L0,6 Z M12,2 L20,2 L20,6 L12,6 Z M24,2 L32,2 L32,6 L24,6 Z M36,2 L44,2 L44,6 L36,6 Z', // 矩形组成的粗虚线
itemStyle: {
color: color // 明确指定图例图标的颜色
},
@@ -297,7 +294,7 @@ const setEchart = () => {
}
}
})
- let [min, max] = yMethod(
+ let [min, max] = yMethod(
[...chartsListBefore.value.map((item: any) => item.statisticalData),
...chartsListAfter.value.map((item: any) => item.statisticalData)]
)
@@ -326,21 +323,28 @@ const setEchart = () => {
let str = `${xname}
`
params.forEach((el: any, index: any) => {
let marker = ''
+ if (el.value[3] == 'dashed') {
+ for (let i = 0; i < 3; i++) {
+ marker += ``
+ }
+ } else {
+ marker = ``//``
- marker = ``
+ }
- str += `${marker}${el.seriesName.split('(')[0]}:${
- el.value[1] != null ? el.value[1] + ' ' + (el.value[2] == null ? '' : el.value[2]) : '-'
- }
`
+ str += `${marker}${el.seriesName.split('(')[0]}:${el.value[1] != null ? el.value[1] + ' ' + (el.value[2] == null ? '' : el.value[2]) : '-'
+ }
`
})
return str
}
},
legend: {
data: legendData,
- icon: 'rect',
+ // icon: 'rect',
itemWidth: 18,
itemHeight: 3,
+ type: 'scroll',
+
itemStyle: {
borderWidth: 0
},
@@ -379,9 +383,9 @@ const tableStore: any = new TableStore({
column: [],
beforeSearchFun: () => {
setTime()
- if (!tableStore.table.params.sensitiveUserId && idList.value?.length > 0) {
- tableStore.table.params.sensitiveUserId = idList.value[0].id
- }
+ // if (!tableStore.table.params.sensitiveUserId && idList.value?.length > 0) {
+ // tableStore.table.params.sensitiveUserId = idList.value[0].id
+ // }
let lists: any = []
// 处理电能质量指标
const selectedIndicator = indicatorList.value?.find(
@@ -420,7 +424,8 @@ tableStore.table.params.valueType = 'avg'
provide('tableStore', tableStore)
onMounted(() => {
- initListByIds()
+ initCode()
+ // initListByIds()
})
const setTime = () => {
@@ -504,4 +509,11 @@ watch(
// :deep(.el-select) {
// min-width: 80px;
// }
+.device-control {
+ display: flex;
+}
+
+:deep(.cn-tree) {
+ padding: 0 10px 0 0 !important;
+}
diff --git a/src/components/echarts/MyEchart.vue b/src/components/echarts/MyEchart.vue
index 7114879..7ed4390 100644
--- a/src/components/echarts/MyEchart.vue
+++ b/src/components/echarts/MyEchart.vue
@@ -45,7 +45,7 @@ const initChart = () => {
color: '#000',
textStyle: {
color: '#000',
- fontSize: '18'
+ fontSize: '15'
},
// },
...(props.options?.title || null)
@@ -108,14 +108,14 @@ const initChart = () => {
bottom: '20px',
end: 100,
- filterMode: 'none'
+ filterMode: 'filter'
},
{
start: 0,
height: 13,
bottom: '20px',
end: 100,
- filterMode: 'none'
+ filterMode: 'filter'
}
// {
// show: true,
diff --git a/src/components/echarts/rmsboxi.vue b/src/components/echarts/rmsboxi.vue
index cfbe13b..7934c10 100644
--- a/src/components/echarts/rmsboxi.vue
+++ b/src/components/echarts/rmsboxi.vue
@@ -684,7 +684,7 @@ const initWave = (
align: 'left'
},
textStyle: {
- fontSize: '16px',
+ fontSize: '14px',
color: props.DColor ? '#000' : echartsColor.WordColor
}
},
@@ -809,13 +809,15 @@ const initWave = (
height: 13,
start: 0,
bottom: '20px',
- end: 100
+ end: 100,
+ filterMode: 'filter'
},
{
start: 0,
height: 13,
bottom: '20px',
- end: 100
+ end: 100,
+ filterMode: 'filter'
}
],
series: [
@@ -1027,7 +1029,7 @@ const drawPics = (
left: 'center',
text: '', //titlename || title,
textStyle: {
- fontSize: '16px',
+ fontSize: '15px',
color: props.DColor ? '#000' : echartsColor.WordColor
}
},
diff --git a/src/components/echarts/shushiboxi.vue b/src/components/echarts/shushiboxi.vue
index 5fb20fc..153784d 100644
--- a/src/components/echarts/shushiboxi.vue
+++ b/src/components/echarts/shushiboxi.vue
@@ -448,7 +448,7 @@ const initWave = (
left: 'center',
text: titleText,
textStyle: {
- fontSize: '16px',
+ fontSize: '14px',
color: props.DColor ? '#000' : echartsColor.WordColor
}
},
@@ -565,13 +565,15 @@ const initWave = (
height: 13,
start: 0,
bottom: '20px',
- end: 100
+ end: 100,
+ filterMode: 'filter'
},
{
start: 0,
height: 13,
bottom: '20px',
- end: 100
+ end: 100,
+ filterMode: 'filter'
}
],
series: [
diff --git a/src/components/table/header/index.vue b/src/components/table/header/index.vue
index 443d5d3..ee94304 100644
--- a/src/components/table/header/index.vue
+++ b/src/components/table/header/index.vue
@@ -31,7 +31,7 @@
(), {
nextFlag: false,
theCurrentTime: true,
showReset: true,
+ showQuery: true,
showExport: false,
timeCacheFlag: true,
timeKeyList: () => ['1', '2', '3', '4', '5'] // 修改为箭头函数返回空数组
diff --git a/src/components/tree/govern/APFTree.vue b/src/components/tree/govern/APFTree.vue
new file mode 100644
index 0000000..c591e0e
--- /dev/null
+++ b/src/components/tree/govern/APFTree.vue
@@ -0,0 +1,168 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ {{ node.label }}
+
+
+
+
+
+
+
+
+
+
diff --git a/src/utils/request.ts b/src/utils/request.ts
index 07a9869..2ecda5c 100644
--- a/src/utils/request.ts
+++ b/src/utils/request.ts
@@ -77,7 +77,11 @@ function createAxios>(
config.url == '/cs-harmonic-boot/limitRateDetailD/limitProbabilityData' ||
config.url == '/system-boot/dictTree/queryByCode' ||
config.url == '/system-boot/dictTree/queryByid' ||
- config.url == '/system-boot/dictTree/query'
+ config.url == '/system-boot/dictTree/query'||
+ config.url == '/cs-harmonic-boot/csevent/f47Curve'||
+ config.url == '/cs-harmonic-boot/sysExcel/querySysExcel'||
+ config.url == '/cs-device-boot/csLedger/lineTree'||
+ config.url == '/cs-harmonic-boot/pqSensitiveUser/getUserDevTree'
)
)
removePending(config)
diff --git a/src/views/govern/alarm/Device.vue b/src/views/govern/alarm/Device.vue
index dcf03b2..16ebd10 100644
--- a/src/views/govern/alarm/Device.vue
+++ b/src/views/govern/alarm/Device.vue
@@ -60,16 +60,16 @@ const tabsList = ref([
])
const rankOptions = ref([
{
- value: '1,7',
- label: '1级(ERROR)'
+ value: '1',
+ label: '1级'
},
{
- value: '2,6',
- label: '2级(WARN)'
+ value: '2',
+ label: '2级'
},
{
- value: '3,4,5',
- label: '3级(DEBUG,NORMAL)'
+ value: '3',
+ label: '3级'
},
// {
// value: '4',
diff --git a/src/views/govern/alarm/Front.vue b/src/views/govern/alarm/Front.vue
index df9d2cd..5a40bc0 100644
--- a/src/views/govern/alarm/Front.vue
+++ b/src/views/govern/alarm/Front.vue
@@ -37,16 +37,16 @@ const props = defineProps(['deviceTree'])
const refheader = ref()
const rankOptions = ref([
{
- value: '1,7',
- label: '1级(ERROR)'
+ value: '1',
+ label: '1级'
},
{
- value: '2,6',
- label: '2级(WARN)'
+ value: '2',
+ label: '2级'
},
{
- value: '3,4,5',
- label: '3级(DEBUG,NORMAL)'
+ value: '3',
+ label: '3级'
},
// {
// value: '4',
@@ -151,12 +151,12 @@ const tableStore = new TableStore({
provide('tableStore', tableStore)
tableStore.table.params.searchValue = ''
tableStore.table.params.level = ''
-const deviceTreeOptions = ref(props.deviceTree)
-deviceTreeOptions.value.map((item: any, index: any) => {
- if (item?.children.length == 0) {
- deviceTreeOptions.value.splice(index, 1)
- }
-})
+// const deviceTreeOptions = ref(props.deviceTree)
+// deviceTreeOptions.value.map((item: any, index: any) => {
+// if (item?.children.length == 0) {
+// deviceTreeOptions.value.splice(index, 1)
+// }
+// })
onMounted(() => {
tableStore.index()
diff --git a/src/views/govern/alarm/Transient.vue b/src/views/govern/alarm/Transient.vue
index 8748a13..297f4fd 100644
--- a/src/views/govern/alarm/Transient.vue
+++ b/src/views/govern/alarm/Transient.vue
@@ -50,12 +50,8 @@ const props = defineProps(['deviceTree'])
const refheader = ref()
const waveFormAnalysisRef = ref()
-const view = ref(true)
const isWaveCharts = ref(false)
-const view2 = ref(false)
-const showBoxi = ref(true)
const loading = ref(false)
-const bxactiveName = ref('ssbx')
const boxoList: any = ref({})
const analysisListRef = ref()
const wp = ref({})
@@ -103,9 +99,6 @@ const tableStore = new TableStore({
return EventTypeList.find((item: any) => item.id == row.cellValue)?.name || '未知'
}
},
-
-
-
{ title: '监测点名称', field: 'lineName', minWidth: 130, align: 'center' },
{ title: '电压等级(kV)', field: 'lineVoltage', minWidth: 120, align: 'center', sortable: true, },
{ title: '设备名称', field: 'equipmentName', minWidth: 130, align: 'center' },
@@ -116,8 +109,6 @@ const tableStore = new TableStore({
return row.cellValue == 1 ? '上游' : row.cellValue == 2 ? '下游' : '未知'
}
},
-
-
{
title: '操作',
fixed: 'right',
@@ -144,12 +135,15 @@ const tableStore = new TableStore({
if (res != undefined) {
loading.value = true
isWaveCharts.value = true
- boxoList.value = row
- boxoList.value.engineeringName = row.projectName
- boxoList.value.persistTime = row.evtParamTm
- boxoList.value.featureAmplitude =
- row.evtParamVVaDepth != '-' ? (row.evtParamVVaDepth - 0) / 100 : null
- boxoList.value.systemType = 'YPT'
+
+ boxoList.value = {
+ ...row,
+ engineeringName: row.projectName,
+ persistTime: row.evtParamTm,
+ featureAmplitude:
+ row.evtParamVVaDepth != '-' ? (row.evtParamVVaDepth - 0) / 100 : null,
+ systemType: 'YPT',
+ }
wp.value = res.data
}
loading.value = false
@@ -164,27 +158,7 @@ const tableStore = new TableStore({
waveFormAnalysisRef.value.getWpData(wp.value, boxoList.value, true)
// waveFormAnalysisRef.value && waveFormAnalysisRef.value.setHeight(200, 190)
})
- // row.loading1 = true
- // view.value = false
- // view2.value = true
- // loading.value = true
- // boxoList.value = row
- // boxoList.value.systemType = 'WX'
-
- // boxoList.value.persistTime = row.evtParamTm != '-' ? row.evtParamTm - 0 : null
- // await analyseWave(row.id)
- // .then(res => {
- // row.loading1 = false
- // if (res != undefined) {
- // wp.value = res.data
-
- // }
- // loading.value = false
- // })
- // .catch(() => {
- // row.loading1 = false
- // loading.value = false
- // })
+
}
},
{
diff --git a/src/views/govern/alarm/index.vue b/src/views/govern/alarm/index.vue
index de8b191..2485962 100644
--- a/src/views/govern/alarm/index.vue
+++ b/src/views/govern/alarm/index.vue
@@ -13,11 +13,9 @@
-
-
-
-
-
+
+
+
@@ -26,7 +24,6 @@ import { ref, onMounted, provide } from 'vue'
import Steady from './Steady.vue'
import Transient from './Transient.vue'
import Device from './Device.vue'
-import Abnormal from './Abnormal.vue'
import Front from './Front.vue'
import { getDeviceTree } from '@/api/cs-device-boot/csLedger'
defineOptions({
diff --git a/src/views/govern/alarm/multiCondition.vue b/src/views/govern/alarm/multiCondition.vue
index 1a361c6..2ced5eb 100644
--- a/src/views/govern/alarm/multiCondition.vue
+++ b/src/views/govern/alarm/multiCondition.vue
@@ -29,8 +29,8 @@
-
+
@@ -51,16 +51,36 @@
+
+
+
diff --git a/src/views/govern/analyze/APF/index.vue b/src/views/govern/analyze/APF/index.vue
index 3eae8df..ff11e07 100644
--- a/src/views/govern/analyze/APF/index.vue
+++ b/src/views/govern/analyze/APF/index.vue
@@ -1,449 +1,28 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- 查询
-
- 缺失数据
-
-
-
-
-
-
-
-
-
-
-
-
-
+
-
-
diff --git a/src/views/govern/analyze/DVR/index.vue b/src/views/govern/analyze/DVR/index.vue
index d717bd1..1c180da 100644
--- a/src/views/govern/analyze/DVR/index.vue
+++ b/src/views/govern/analyze/DVR/index.vue
@@ -1,16 +1,22 @@
-
+
@@ -65,91 +50,58 @@ import { ref, nextTick, provide, onMounted } from 'vue'
import { mainHeight } from '@/utils/layout'
import DeviceTree from '@/components/tree/govern/deviceTree.vue'
import TableStore from '@/utils/tableStore'
+import APFTree from '@/components/tree/govern/APFTree.vue'
import Table from '@/components/table/index.vue'
+import analysisList from '@/views/govern/device/control/analysisList/index.vue'
import waveFormAnalysis from '@/views/govern/device/control/tabs/components/waveFormAnalysis.vue'
import { analyseWave } from '@/api/common'
import TableHeader from '@/components/table/header/index.vue'
import { useDictData } from '@/stores/dictData'
import { getFileZip } from '@/api/cs-harmonic-boot/datatrend'
+import MultiCondition from '@/views/govern/alarm/multiCondition.vue'
+import { queryByCode, queryByid, queryCsDictTree } from '@/api/system-boot/dictTree'
import { ElMessage } from 'element-plus'
defineOptions({
name: 'govern/analyze/DVR/index'
})
-const pageHeight = mainHeight(20)
+const DeviceType = ref([])
+const pageHeight = mainHeight(80)
const loading = ref(false)
const view = ref(true)
-const view2 = ref(false)
-const showBoxi = ref(true)
+
const isWaveCharts = ref(false)
-const bxactiveName = ref('ssbx')
+const analysisListRef = ref()
const boxoList: any = ref({})
const wp = ref({})
-const eventList = ref([
- {
- value: 'Evt_Sys_DipStr',
- label: '电压暂降'
- },
- {
- value: 'Evt_Sys_SwlStr',
- label: '电压暂升'
- },
- {
- value: 'Evt_Sys_IntrStr',
- label: '电压中断'
- }
-])
-const locationList = ref([
- {
- value: 'grid',
- label: '电网侧'
- },
- {
- value: 'load',
- label: '负载侧'
- }
-])
+const filterVisible = ref(false)
+
const waveFormAnalysisRef = ref()
const dictData = useDictData()
const ReasonList: any = dictData.getBasicData('Event_Reason')
const EventTypeList: any = dictData.getBasicData('Event_Type')
+const multiConditionRef = ref
>()
const tableStore = new TableStore({
url: '/cs-harmonic-boot/eventUser/queryEventpageWeb',
method: 'POST',
+ publicHeight: 60,
column: [
{
- field: 'index',
title: '序号',
- width: '80',
+ width: 80,
formatter: (row: any) => {
return (tableStore.table.params.pageNum - 1) * tableStore.table.params.pageSize + row.rowIndex + 1
}
},
- { title: '发生时刻', field: 'startTime', sortable: true, minWidth: 180 },
+ { title: '发生时刻', field: 'startTime', align: 'center', minWidth: 180, sortable: true },
+ { title: '暂降幅值(%)', minWidth: 120, field: 'evtParamVVaDepth', align: 'center', sortable: true, },
+ { title: '持续时间(s)', field: 'evtParamTm', minWidth: 110, align: 'center', sortable: true },
{
- title: '暂降幅值(%)',
- field: 'evtParamVVaDepth',
- minWidth: 120,
- formatter: (row: any) => {
- let a = row.cellValue.split('%')[0] - 0
- return a ? a.toFixed(2) : '-'
- },
- sortable: true
- },
- {
- title: '持续时间(s)',
- field: 'evtParamTm',
- sortable: true,
- minWidth: 110,
- formatter: (row: any) => {
- const val = row.cellValue
- if (val === null || val === undefined || val === '' ) return '-'
- const num = Number(val)
- if (Number.isNaN(num)) return '-'
- return Math.floor(num * 10000) / 100
+ title: '严重度', field: 'severity', minWidth: 80, align: 'center', sortable: true, formatter: (row: any) => {
+ return row.cellValue ? row.cellValue : '/'
}
},
{ title: '相别', field: 'evtParamPhase', minWidth: 80, align: 'center' },
- { title: '触发类型', field: 'showName', minWidth: 100 },
+ { title: '触发类型', field: 'showName', minWidth: 100, align: 'center' },
{
title: '暂降原因', field: 'advanceReason', minWidth: 100, align: 'center', formatter: (row: any) => {
return ReasonList.find((item: any) => item.id == row.cellValue)?.name || '未知'
@@ -160,51 +112,55 @@ const tableStore = new TableStore({
return EventTypeList.find((item: any) => item.id == row.cellValue)?.name || '未知'
}
},
+
+
+
+ { title: '监测点名称', field: 'lineName', minWidth: 130, align: 'center' },
{ title: '电压等级(kV)', field: 'lineVoltage', minWidth: 120, align: 'center', sortable: true, },
+ { title: '设备名称', field: 'equipmentName', minWidth: 130, align: 'center' },
+ { title: '项目名称', field: 'projectName', minWidth: 130, align: 'center' },
+ { title: '工程名称', field: 'engineeringName', minWidth: 130, align: 'center' },
{
title: '发生位置', field: 'sagSource', minWidth: 120, align: 'center', formatter: (row: any) => {
return row.cellValue == 1 ? '上游' : row.cellValue == 2 ? '下游' : '未知'
}
},
-
-
-
+
{
title: '操作',
fixed: 'right',
align: 'center',
width: '180',
+
render: 'buttons',
buttons: [
{
name: 'edit',
- text: '波形分析',
+ title: '波形分析',
type: 'primary',
icon: 'el-icon-DataLine',
render: 'basicButton',
- loading: 'loading1',
+ loading: 'loading1',
disabled: row => {
- return !row.wavePath && row.evtParamTm < 20
+ return !row.wavePath
},
-
click: async row => {
row.loading1 = true
-
-
await analyseWave(row.id)
.then(res => {
- isWaveCharts.value = true
- loading.value = true
row.loading1 = false
if (res != undefined) {
- boxoList.value = row
- boxoList.value.featureAmplitude =
- row.evtParamVVaDepth != '-' ? row.evtParamVVaDepth.split('%')[0] / 100 : null
- boxoList.value.persistTime =
- row.evtParamTm != '-' ? Math.floor(row.evtParamTm * 10000) / 100 : null
- // boxoList.value.systemType = 'WX'
- boxoList.value.systemType = 'YPT'
+ loading.value = true
+ isWaveCharts.value = true
+ boxoList.value = {
+ ...row,
+ engineeringName: row.projectName,
+ persistTime: row.evtParamTm,
+ featureAmplitude:
+ row.evtParamVVaDepth != '-' ? (row.evtParamVVaDepth - 0) / 100 : null,
+ systemType: 'YPT',
+ }
wp.value = res.data
}
loading.value = false
@@ -217,18 +173,9 @@ const tableStore = new TableStore({
nextTick(() => {
waveFormAnalysisRef.value &&
waveFormAnalysisRef.value.getWpData(wp.value, boxoList.value, true)
- waveFormAnalysisRef.value && waveFormAnalysisRef.value.setHeight(false, 150)
+ // waveFormAnalysisRef.value && waveFormAnalysisRef.value.setHeight(200, 190)
})
- }
- },
- {
- name: 'edit',
- text: '暂无波形',
- type: 'info',
- icon: 'el-icon-DataLine',
- render: 'basicButton',
- disabled: row => {
- return !(!row.wavePath && row.evtParamTm < 20)
+
}
},
{
@@ -239,7 +186,6 @@ const tableStore = new TableStore({
loading: 'loading2',
render: 'basicButton',
disabled: row => {
- // && row.evtParamTm < 20
return !row.wavePath
},
click: row => {
@@ -260,17 +206,78 @@ const tableStore = new TableStore({
row.loading2 = false
})
}
- }
+ },
+ {
+ name: 'edit',
+ text: '暂不支持补召',
+ type: 'info',
+ icon: 'el-icon-DataLine',
+ render: 'basicButton',
+ disabled: row => {
+ let code = DeviceType.value.filter((item: any) => item.id == row.devType)[0]?.code
+ return !(code == 'Direct_Connected_Device' || code == 'Gateway')
+ },
+
+ },
+ {
+ name: 'edit',
+ text: '波形补召',
+ type: 'primary',
+ icon: 'el-icon-DataLine',
+ render: 'basicButton',
+ loading: 'loading2',
+ disabled: row => {
+ return row.wavePath
+ },
+ click: row => {
+ let code = DeviceType.value.filter((item: any) => item.id == row.devType)[0]?.code
+
+ if (code == 'Portable') {
+ // 便携式设备
+ analysisListRef.value &&
+ analysisListRef.value.open({
+ lineId: row.lineId,
+ deviceData: row,
+ deviceId: row.deviceId
+ })
+
+ } else if (code == 'DEV_CLD') {
+ row.loading2 = true
+ // 监测设备
+ getFileByEventId(row.id).then(res => {
+ ElMessage.success(res.message)
+ tableStore.index()
+ row.loading2 = false
+ }).catch(() => {
+ row.loading2 = false
+ })
+ }
+
+ }
+ },
+
]
}
],
loadCallback: () => {
tableStore.table.data.forEach((item: any) => {
item.loading = false
- item.evtParamTm = item.evtParamTm.split('s')[0]
+ item.evtParamTm =
+ item.evtParamTm.split('s')[0] != '-' ? (item.evtParamTm.split('s')[0] - 0).toFixed(2) : '-'
+ item.evtParamVVaDepth =
+ item.evtParamVVaDepth.split('%')[0] != '-' ? (item.evtParamVVaDepth.split('%')[0] - 0).toFixed(2) : '-'
})
}
})
+Object.assign(tableStore.table.params, {
+ featureAmplitudeMin: undefined,
+ featureAmplitudeMax: undefined,
+ evtParamTmMin: undefined,
+ evtParamTmMax: undefined,
+ severityMin: undefined,
+ severityMax: undefined,
+ fileFlag: ''
+})
const flag = ref(false)
tableStore.table.params.type = 0
tableStore.table.params.eventType = ''
@@ -282,7 +289,7 @@ const deviceTypeChange = (val: any, obj: any) => {
}
const nodeClick = async (e: anyObj) => {
// console.log("🚀 ~ nodeClick ~ e:", e)
- if ((e.level == 2 || e.level == 3) ) {
+ if ((e.level == 2 || e.level == 3)) {
loading.value = false
tableStore.table.params.deviceId = e.id
nextTick(() => {
@@ -290,25 +297,31 @@ const nodeClick = async (e: anyObj) => {
})
}
}
+const openFilterDialog = () => {
+ filterVisible.value = true
+}
+const onFilterConfirm = () => {
+ tableStore.onTableAction('search', {})
+}
+// 重置
+const onResetForm = () => {
+ filterVisible.value = false
+ tableStore.table.params.cascader = ''
+ tableStore.table.params.deviceTypeId = ''
+ tableStore.table.params.engineeringid = ''
+ tableStore.table.params.projectId = ''
+ tableStore.table.params.deviceId = ''
+ tableStore.table.params.deviceTypeName = ''
+ multiConditionRef.value?.reset()
+}
+onMounted(() => {
+ queryByCode('Device_Type').then(res => {
+ queryCsDictTree(res.data.id).then((list: any) => {
+ DeviceType.value = list.data
+ })
+ })
+})
-const changeView = () => {
- showBoxi.value = false
- setTimeout(() => {
- showBoxi.value = true
- }, 0)
-}
-const bxhandleClick = (tab: any) => {
- if (tab.name == 'ssbx') {
- bxactiveName.value = 'ssbx'
- } else if (tab.name == 'rmsbx') {
- bxactiveName.value = 'rmsbx'
- }
- // console.log(tab, event);
-}
-const backbxlb = () => {
- view.value = true
- view2.value = false
-}
const bxecharts = mainHeight(95).height as any
@@ -320,7 +333,7 @@ const bxecharts = mainHeight(95).height as any
height: 100%;
overflow: hidden;
flex: 1;
- padding: 10px 10px 10px 0;
+ // padding: 10px 10px 10px 0;
display: flex;
flex-direction: column;
}
diff --git a/src/views/govern/cloudDeviceEntry/index.vue b/src/views/govern/cloudDeviceEntry/index.vue
index e74c8d4..5af8946 100644
--- a/src/views/govern/cloudDeviceEntry/index.vue
+++ b/src/views/govern/cloudDeviceEntry/index.vue
@@ -47,7 +47,7 @@
- 治理设备/便携式设备不支持操作!
+ MQTT通讯方式的设备暂不支持修改!
@@ -70,7 +70,7 @@
-
-
-
-
@@ -131,7 +131,7 @@
)
">
-
-
-
@@ -175,7 +175,7 @@
-
-
@@ -214,7 +214,7 @@
)
">
-
@@ -231,7 +231,7 @@
:value=" item.id">
-
@@ -248,12 +248,12 @@
:value="option.id">
-
+ label="icd模型" :prop="'deviceInfoList[' + bIndex + '].idc'">
+ label="进程号" :prop="'deviceInfoList[' + bIndex + '].nodeProcess'">
+ label="日志等级" :prop="'deviceInfoList[' + bIndex + '].devLogLevel'">
-
-
-
-
-
-
-
@@ -493,7 +493,7 @@
">
-
@@ -524,7 +524,7 @@
">
-
-
-
-
-
+
+
-
-
-
+ -->
-
-
-
+
-
+
+
-
+
-
+
-
+
-
+
-
+
-
-
+
@@ -2816,7 +2815,7 @@ const area = async () => {
queryCsDictTree(res.data.id).then(res => {
devTypeOptions.value = res.data
- console.log("🚀 ~ area ~ devTypeOptions.value:", devTypeOptions.value)
+ console.log("🚀 ~ area ~ devTypeOptions.value", devTypeOptions.value)
})
})
})
diff --git a/src/views/govern/device/control/index.vue b/src/views/govern/device/control/index.vue
index 774e3a2..6b7a642 100644
--- a/src/views/govern/device/control/index.vue
+++ b/src/views/govern/device/control/index.vue
@@ -1208,6 +1208,7 @@ const handleClick = async (tab?: any) => {
}
//运行趋势
if (dataSet.value.includes('_devRunTrend')) {
+ tableLoading.value=true
setTimeout(async () => {
if (tab.props != undefined) await (datePickerRef.value && datePickerRef.value?.setInterval(5))
diff --git a/src/views/govern/device/control/nearRealTimeData.vue b/src/views/govern/device/control/nearRealTimeData.vue
index 3a1f7e5..ef9429e 100644
--- a/src/views/govern/device/control/nearRealTimeData.vue
+++ b/src/views/govern/device/control/nearRealTimeData.vue
@@ -1,22 +1,30 @@
-
+
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
@@ -32,27 +40,36 @@
import { mainHeight } from '@/utils/layout'
import { ref } from 'vue'
-const ROW_WITH_ABC = 4
+const ROW_WITH_GROUP = 4
const ROW_SCALAR_ONLY = 5
+const SECONDARY_KEYWORDS = ['正序', '负序', '零序', '无功', '有功', '视在'] as const
+
+interface SubColumn {
+ subTitle: string
+ value: unknown
+}
+
interface DisplayMetric {
+ name: string
otherName: string
+ unit?: string | null
+ type: 'abc' | 'scalar' | 't-multi'
valueA?: unknown
valueB?: unknown
valueC?: unknown
valueM?: unknown
- phaseLabels: [string, string, string]
- sort: number
+ phaseLabels?: [string, string, string]
+ subItems?: SubColumn[]
}
interface MetricItem {
- type: 'abc' | 'scalar'
+ type: 'abc' | 'scalar' | 't-multi'
data: DisplayMetric
}
interface TableSection {
- abcItems: DisplayMetric[]
- scalarItems: DisplayMetric[]
+ columns: MetricItem[]
row: Record
slotsPerRow: number
emptySlotCount: number
@@ -64,6 +81,7 @@ interface RawMetricItem {
unit?: string | null
phase?: string
sort?: number
+ otherNameSort?: number
data?: unknown
otherName?: string
valueA?: unknown
@@ -72,9 +90,14 @@ interface RawMetricItem {
valueM?: unknown
}
+interface NameGroup {
+ name: string
+ items: RawMetricItem[]
+}
+
const PHASE_GROUPS = [
{ keys: ['A', 'B', 'C'], labels: ['A相', 'B相', 'C相'] as [string, string, string] },
- { keys: ['AB', 'BC', 'CA'], labels: ['AB', 'BC', 'CA'] as [string, string, string] },
+ { keys: ['AB', 'BC', 'CA'], labels: ['AB相', 'BC相', 'CA相'] as [string, string, string] },
]
const height = mainHeight(345)
@@ -87,6 +110,9 @@ const getMetricWidth = (section: TableSection) => `${100 / section.slotsPerRow}%
const getPhaseWidth = (section: TableSection) => `${100 / section.slotsPerRow / 3}%`
+const getSubColWidth = (section: TableSection, subCount: number) =>
+ `${100 / section.slotsPerRow / subCount}%`
+
const formatCellValue = (value: unknown): string | number => {
if (value == null || value === 3.14159) return '/'
return typeof value === 'number' || typeof value === 'string' ? value : String(value)
@@ -94,140 +120,200 @@ const formatCellValue = (value: unknown): string | number => {
const cellFormatter = ({ cellValue }: { cellValue: unknown }) => formatCellValue(cellValue)
-const buildOtherName = (name: string, unit?: string | null) => (unit ? `${name}(${unit})` : name)
+const buildTitle = (name: string, unit?: string | null) => (unit ? `${name}(${unit})` : name)
+
+const getSharedUnit = (items: RawMetricItem[]) => {
+ const units = [...new Set(items.map(item => item.unit ?? null))]
+ return units.length === 1 ? units[0] : null
+}
+
+const getPrimaryTitle = (item: DisplayMetric) => buildTitle(item.name, item.unit)
+
+const getScalarTitle = (item: DisplayMetric) => buildTitle(item.otherName || item.name, item.unit)
const isNewFormat = (item: RawMetricItem) => item.targetId != null && item.phase != null && 'data' in item
-const hasAbcValues = (item: DisplayMetric | RawMetricItem) =>
- item.valueA != null || item.valueB != null || item.valueC != null
+const isGroupedColumn = (item: MetricItem) => item.type === 'abc' || item.type === 't-multi'
-const normalizeOldItem = (item: RawMetricItem): DisplayMetric => ({
- otherName: item.otherName || buildOtherName(item.name || ''),
- valueA: item.valueA,
- valueB: item.valueB,
- valueC: item.valueC,
- valueM: item.valueM,
- phaseLabels: ['A相', 'B相', 'C相'],
- sort: item.sort ?? 0,
-})
-
-const getHarmonicOrder = (name: string) => {
- const match = name.match(/^(\d+(?:\.\d+)?)次/)
- return match ? parseFloat(match[1]) : null
+const extractSubTitle = (otherName: string) => {
+ for (const keyword of SECONDARY_KEYWORDS) {
+ if (otherName.includes(keyword)) return keyword
+ }
+ return otherName
}
-const getGroupKey = (item: RawMetricItem) => `${item.targetId}_${item.name}`
-
-const groupNewFormatData = (list: RawMetricItem[]): DisplayMetric[] => {
- const groupMap = new Map }>()
+const groupByName = (list: RawMetricItem[]): NameGroup[] => {
+ const order: string[] = []
+ const map = new Map()
list.forEach(item => {
- const key = getGroupKey(item)
- if (!groupMap.has(key)) {
- groupMap.set(key, {
- name: item.name || '',
- unit: item.unit ?? null,
- sort: item.sort ?? 0,
- phases: {},
- })
- }
- if (item.phase != null) {
- groupMap.get(key)!.phases[item.phase] = item.data
+ const name = item.name || ''
+ if (!map.has(name)) {
+ order.push(name)
+ map.set(name, [])
}
+ map.get(name)!.push(item)
})
- return Array.from(groupMap.values())
- .sort((a, b) => {
- if (a.sort !== b.sort) return a.sort - b.sort
- const orderA = getHarmonicOrder(a.name)
- const orderB = getHarmonicOrder(b.name)
- if (orderA != null && orderB != null) return orderA - orderB
- return a.name.localeCompare(b.name, 'zh-CN')
- })
- .map(group => {
- const otherName = buildOtherName(group.name, group.unit)
- const phaseKeys = Object.keys(group.phases)
+ return order.map(name => ({ name, items: map.get(name)! }))
+}
- if (phaseKeys.length === 1 && phaseKeys[0] === 'T') {
- return {
- otherName,
- valueM: group.phases.T,
- phaseLabels: ['A相', 'B相', 'C相'],
- sort: group.sort,
- }
- }
-
- for (const { keys, labels } of PHASE_GROUPS) {
- if (keys.some(key => group.phases[key] != null)) {
- return {
- otherName,
- valueA: group.phases[keys[0]],
- valueB: group.phases[keys[1]],
- valueC: group.phases[keys[2]],
- phaseLabels: labels,
- sort: group.sort,
- }
- }
- }
+const buildAbcMetric = (name: string, items: RawMetricItem[]): DisplayMetric => {
+ const phaseMap: Record = {}
+ items.forEach(item => {
+ if (item.phase != null) phaseMap[item.phase] = item.data
+ })
+ for (const { keys, labels } of PHASE_GROUPS) {
+ if (keys.some(key => phaseMap[key] != null)) {
return {
- otherName,
- valueM: phaseKeys.length === 1 ? group.phases[phaseKeys[0]] : undefined,
- valueA: group.phases.A ?? group.phases.AB,
- valueB: group.phases.B ?? group.phases.BC,
- valueC: group.phases.C ?? group.phases.CA,
- phaseLabels: group.phases.AB != null ? ['AB', 'BC', 'CA'] : ['A相', 'B相', 'C相'],
- sort: group.sort,
+ name,
+ otherName: items[0].otherName || name,
+ unit: items[0].unit ?? null,
+ type: 'abc',
+ valueA: phaseMap[keys[0]],
+ valueB: phaseMap[keys[1]],
+ valueC: phaseMap[keys[2]],
+ phaseLabels: labels,
}
- })
+ }
+ }
+
+ return {
+ name,
+ otherName: items[0].otherName || name,
+ unit: items[0].unit ?? null,
+ type: 'abc',
+ valueA: phaseMap.A ?? phaseMap.AB,
+ valueB: phaseMap.B ?? phaseMap.BC,
+ valueC: phaseMap.C ?? phaseMap.CA,
+ phaseLabels: phaseMap.AB != null ? ['AB相', 'BC相', 'CA相'] : ['A相', 'B相', 'C相'],
+ }
+}
+
+const buildTMetric = (name: string, items: RawMetricItem[]): DisplayMetric => {
+ const needSubHeader = items.some(item => (item.otherName || item.name || '') !== name)
+
+ if (!needSubHeader) {
+ return {
+ name,
+ otherName: items[0].otherName || name,
+ unit: items[0].unit ?? null,
+ type: 'scalar',
+ valueM: items[0].data,
+ }
+ }
+
+ const sharedUnit = getSharedUnit(items)
+ const unitsDiffer = sharedUnit == null && new Set(items.map(item => item.unit ?? null)).size > 1
+
+ return {
+ name,
+ otherName: name,
+ unit: sharedUnit,
+ type: 't-multi',
+ subItems: items.map(item => {
+ const keyword = extractSubTitle(item.otherName || item.name || '')
+ return {
+ subTitle: unitsDiffer ? buildTitle(keyword, item.unit) : keyword,
+ value: item.data,
+ }
+ }),
+ }
+}
+
+const groupToMetric = (group: NameGroup): DisplayMetric => {
+ const { name, items } = group
+ const phases = items.map(item => item.phase)
+ const allT = phases.every(phase => phase === 'T')
+
+ if (allT) return buildTMetric(name, items)
+
+ return buildAbcMetric(name, items)
+}
+
+const normalizeOldItem = (item: RawMetricItem): DisplayMetric => {
+ const name = item.name || ''
+ const otherName = item.otherName || name
+ const hasAbc = item.valueA != null || item.valueB != null || item.valueC != null
+
+ if (hasAbc) {
+ return {
+ name,
+ otherName,
+ unit: item.unit ?? null,
+ type: 'abc',
+ valueA: item.valueA,
+ valueB: item.valueB,
+ valueC: item.valueC,
+ phaseLabels: ['A相', 'B相', 'C相'],
+ }
+ }
+
+ return {
+ name,
+ otherName,
+ unit: item.unit ?? null,
+ type: 'scalar',
+ valueM: item.valueM,
+ }
}
const normalizeMetrics = (data: RawMetricItem[]): DisplayMetric[] => {
if (!data?.length) return []
if (isNewFormat(data[0])) {
- return groupNewFormatData(data)
+ return groupByName(data).map(groupToMetric)
}
- return data.map(normalizeOldItem).sort((a, b) => a.sort - b.sort)
+ return data.map(normalizeOldItem)
}
-const buildRow = (abcItems: DisplayMetric[], scalarItems: DisplayMetric[]) => {
+const toMetricItem = (data: DisplayMetric): MetricItem => ({
+ type: data.type,
+ data,
+})
+
+const buildRow = (columns: MetricItem[]) => {
const row: Record = {}
- abcItems.forEach((item, index) => {
- row[`v${index}A`] = item.valueA
- row[`v${index}B`] = item.valueB
- row[`v${index}C`] = item.valueC
- })
- scalarItems.forEach((item, index) => {
- row[`s${index}`] = item.valueM
+ columns.forEach((item, colIndex) => {
+ if (item.type === 'abc') {
+ row[`v${colIndex}A`] = item.data.valueA
+ row[`v${colIndex}B`] = item.data.valueB
+ row[`v${colIndex}C`] = item.data.valueC
+ } else if (item.type === 't-multi') {
+ item.data.subItems?.forEach((sub, subIndex) => {
+ row[`t${colIndex}_${subIndex}`] = sub.value
+ })
+ } else {
+ row[`s${colIndex}`] = item.data.valueM
+ }
})
return row
}
-const buildTableSections = (abcList: DisplayMetric[], scalarList: DisplayMetric[]) => {
- const unified: MetricItem[] = [
- ...abcList.map(data => ({ type: 'abc' as const, data })),
- ...scalarList.map(data => ({ type: 'scalar' as const, data })),
- ]
-
+const buildTableSections = (metrics: DisplayMetric[]) => {
+ const unified = metrics.map(toMetricItem)
const sections: TableSection[] = []
let index = 0
while (index < unified.length) {
- const hasAbc = unified[index].type === 'abc'
- const maxCount = hasAbc ? ROW_WITH_ABC : ROW_SCALAR_ONLY
- const chunk = unified.slice(index, index + maxCount)
- index += chunk.length
+ const remaining = unified.length - index
+ let slotsPerRow = isGroupedColumn(unified[index]) ? ROW_WITH_GROUP : ROW_SCALAR_ONLY
+
+ if (slotsPerRow === ROW_SCALAR_ONLY) {
+ const peekCount = Math.min(ROW_SCALAR_ONLY, remaining)
+ if (unified.slice(index, index + peekCount).some(isGroupedColumn)) {
+ slotsPerRow = ROW_WITH_GROUP
+ }
+ }
+
+ const columns = unified.slice(index, index + Math.min(slotsPerRow, remaining))
+ index += columns.length
- const abcItems = chunk.filter(item => item.type === 'abc').map(item => item.data)
- const scalarItems = chunk.filter(item => item.type === 'scalar').map(item => item.data)
- const slotsPerRow = abcItems.length > 0 ? ROW_WITH_ABC : ROW_SCALAR_ONLY
- const metricCount = abcItems.length + scalarItems.length
sections.push({
- abcItems,
- scalarItems,
- row: buildRow(abcItems, scalarItems),
+ columns,
+ row: buildRow(columns),
slotsPerRow,
- emptySlotCount: slotsPerRow - metricCount,
+ emptySlotCount: Math.max(0, slotsPerRow - columns.length),
})
}
@@ -236,11 +322,7 @@ const buildTableSections = (abcList: DisplayMetric[], scalarList: DisplayMetric[
const setData = (data: RawMetricItem[], _targetType?: unknown) => {
const list = JSON.parse(JSON.stringify(data || [])) as RawMetricItem[]
- const metrics = normalizeMetrics(list)
- const abcList = metrics.filter(item => hasAbcValues(item))
- const scalarList = metrics.filter(item => !hasAbcValues(item))
-
- tableSections.value = buildTableSections(abcList, scalarList)
+ tableSections.value = buildTableSections(normalizeMetrics(list))
}
defineExpose({ setData })
diff --git a/src/views/govern/device/control/tabs/event.vue b/src/views/govern/device/control/tabs/event.vue
index 968af90..f078f93 100644
--- a/src/views/govern/device/control/tabs/event.vue
+++ b/src/views/govern/device/control/tabs/event.vue
@@ -73,7 +73,7 @@ const tableStore: any = new TableStore({
sortable: true,
formatter: (row: any) => {
//row.cellValue = row.cellValue + '' ? row.cellValue.toFixed(2) : '/'
- row.cellValue = row.cellValue != null ? Number(row.cellValue).toFixed(2) : '-'
+ row.cellValue = row.cellValue != null ? Number(row.cellValue).toFixed(2) : '/'
if (String(row.cellValue).split('.')[1] == '00') {
row.cellValue = String(row.cellValue).split('.')[0]
}
@@ -88,7 +88,7 @@ const tableStore: any = new TableStore({
formatter: (row: any) => {
// console.log('🚀 ~ row.cellValue:', row.cellValue)
- return row.cellValue ? (row.cellValue - 0).toFixed(2) : '-'
+ return row.cellValue ? (row.cellValue - 0).toFixed(2) : '/'
},
sortable: true
},
@@ -97,7 +97,7 @@ const tableStore: any = new TableStore({
title: '相别',
minWidth: 80,
formatter: (row: any) => {
- return row.cellValue || '-'
+ return row.cellValue || '/'
}
},
{
@@ -151,12 +151,14 @@ const tableStore: any = new TableStore({
loading.value = true
row.loading1 = false
if (res != undefined) {
- boxoList.value = row
- boxoList.value.systemType = 'YPT'
- boxoList.value.engineeringName = tableParams.value.engineeringName
- boxoList.value.featureAmplitude =
- row.featureAmplitude != null ? Number(row.featureAmplitude / 100) : '-'
- boxoList.value.persistTime = row.persistTime ? row.persistTime.toFixed(2) : '-'
+ boxoList.value = {
+ ...row,
+ systemType: 'YPT',
+ engineeringName: tableParams.value.engineeringName,
+ featureAmplitude:
+ row.featureAmplitude != null ? Number(row.featureAmplitude / 100) : '-',
+ persistTime: row.persistTime ? row.persistTime.toFixed(2) : '-',
+ }
wp.value = res.data
view.value = false
view2.value = true
diff --git a/src/views/govern/device/control/tabs/trend.vue b/src/views/govern/device/control/tabs/trend.vue
index f34337a..e371780 100644
--- a/src/views/govern/device/control/tabs/trend.vue
+++ b/src/views/govern/device/control/tabs/trend.vue
@@ -127,6 +127,8 @@ const countOptions: any = ref([])
// Harmonic_Type
// portable-harmonic
const legendDictList: any = ref([])
+
+
queryByCode(
props?.TrendList?.lineType == 0
? 'apf-harmonic'
diff --git a/src/views/govern/device/planData/components/transient.vue b/src/views/govern/device/planData/components/transient.vue
index 8dfb959..030a308 100644
--- a/src/views/govern/device/planData/components/transient.vue
+++ b/src/views/govern/device/planData/components/transient.vue
@@ -1,7 +1,7 @@
-
+
事件筛选
@@ -57,7 +57,8 @@ const multiConditionRef = ref()
const tableStore = new TableStore({
url: '/cs-harmonic-boot/data/getEventByItem',
method: 'POST',
- paramsPOST: true,
+ // paramsPOST: true,
+ exportName: '暂态事件',
showPage: false,
publicHeight: 355,
column: [
@@ -151,10 +152,12 @@ const tableStore = new TableStore({
isWaveCharts.value = true
row.loading1 = false
if (res != undefined) {
- boxoList.value = row
- boxoList.value.featureAmplitude =
- row.featureAmplitude != '-' ? (row.featureAmplitude - 0) / 100 : null
- boxoList.value.systemType = 'YPT'
+ boxoList.value = {
+ ...row,
+ featureAmplitude:
+ row.featureAmplitude != '-' ? (row.featureAmplitude - 0) / 100 : null,
+ systemType: 'YPT',
+ }
wp.value = res.data
diff --git a/src/views/govern/device/planData/components/treeTransfers.vue b/src/views/govern/device/planData/components/treeTransfers.vue
index 8e4351a..4b6b96e 100644
--- a/src/views/govern/device/planData/components/treeTransfers.vue
+++ b/src/views/govern/device/planData/components/treeTransfers.vue
@@ -4,7 +4,7 @@
未绑定数据
-
@@ -36,7 +36,7 @@
已绑定数据
-
@@ -78,17 +78,19 @@ export default {
this.leftData = val
const config = useConfig()
this.leftData.forEach(item => {
- item.icon = 'el-icon-HomeFilled'
- item.color = config.getColorVal('elementUiPrimary')
+ item.icon = 'el-icon-Platform'
+ // item.color = config.getColorVal('elementUiPrimary')
+ item.color = item.runStatus == 2 ? '#2ab914' : "#e26257"
item.children.forEach(item2 => {
- item2.icon = 'el-icon-List'
- item2.color = config.getColorVal('elementUiPrimary')
+ item2.icon = 'local-监测点'
+ // item2.color = config.getColorVal('elementUiPrimary')
+ item2.color = item.runStatus == 2 ? '#2ab914' : "#e26257"
item2.children.forEach(item3 => {
- item3.icon = 'el-icon-Platform'
+ item3.icon = 'el-icon-List'
item3.color = config.getColorVal('elementUiPrimary')
- if (item3.comFlag === 1) {
- item3.color = '#e26257 !important'
- }
+ // if (item3.runStatus === 1) {
+ // item3.color = '#e26257 !important'
+ // }
})
})
})
@@ -100,17 +102,19 @@ export default {
const config = useConfig()
this.$emit('getData', this.rightData)
this.rightData.forEach(item => {
- item.icon = 'el-icon-HomeFilled'
- item.color = config.getColorVal('elementUiPrimary')
+ item.icon = 'el-icon-Platform'
+ // item.color = config.getColorVal('elementUiPrimary')
+ item.color = item.runStatus == 2 ? '#2ab914' : "#e26257"
item.children.forEach(item2 => {
- item2.icon = 'el-icon-List'
- item2.color = config.getColorVal('elementUiPrimary')
+ item2.icon = 'local-监测点'
+ // item2.color = config.getColorVal('elementUiPrimary')
+ item2.color = item.runStatus == 2 ? '#2ab914' : "#e26257"
item2.children.forEach(item3 => {
- item3.icon = 'el-icon-Platform'
+ item3.icon = 'el-icon-List'
item3.color = config.getColorVal('elementUiPrimary')
- if (item3.comFlag === 1) {
- item3.color = '#e26257 !important'
- }
+ // if (item3.runStatus === 1) {
+ // item3.color = '#e26257 !important'
+ // }
})
})
})
diff --git a/src/views/govern/log/components/front.vue b/src/views/govern/log/components/front.vue
new file mode 100644
index 0000000..274eae1
--- /dev/null
+++ b/src/views/govern/log/components/front.vue
@@ -0,0 +1,93 @@
+
+
+
+
diff --git a/src/views/govern/alarm/Abnormal.vue b/src/views/govern/log/components/governance.vue
similarity index 100%
rename from src/views/govern/alarm/Abnormal.vue
rename to src/views/govern/log/components/governance.vue
diff --git a/src/views/govern/log/debug.vue b/src/views/govern/log/debug.vue
index 9706c4d..8932371 100644
--- a/src/views/govern/log/debug.vue
+++ b/src/views/govern/log/debug.vue
@@ -1,92 +1,29 @@
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
-
+
diff --git a/src/views/govern/manage/components/factoryForm.vue b/src/views/govern/manage/components/factoryForm.vue
new file mode 100644
index 0000000..723a1ca
--- /dev/null
+++ b/src/views/govern/manage/components/factoryForm.vue
@@ -0,0 +1,256 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 取 消
+ 确 定
+
+
+
+
+
diff --git a/src/views/govern/manage/factory.vue b/src/views/govern/manage/factory.vue
index 78b3fd2..e2e3002 100644
--- a/src/views/govern/manage/factory.vue
+++ b/src/views/govern/manage/factory.vue
@@ -3,12 +3,8 @@
-
+
-
+
@@ -85,107 +77,22 @@
模版下载
-
+
批量导入
新增设备
-
+
批量下载二维码
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- 取 消
- 确 定
-
-
+
{{ deivce.mac }}
@@ -200,35 +107,36 @@
diff --git a/src/views/govern/sensitiveLoadMange/index.vue b/src/views/govern/sensitiveLoadMange/index.vue
index e2fe767..1353eea 100644
--- a/src/views/govern/sensitiveLoadMange/index.vue
+++ b/src/views/govern/sensitiveLoadMange/index.vue
@@ -9,7 +9,7 @@
style="width: 240px"
v-model.trim="tableStore.table.params.searchValue"
clearable
- placeholder="请输入敏感负荷名称"
+ placeholder="请输入敏感用户名称"
/>
@@ -51,16 +51,17 @@ const tableStore: any = new TableStore({
return (tableStore.table.params.pageNum - 1) * tableStore.table.params.pageSize + row.rowIndex + 1
}
},
- { title: '所属厂站名称', field: 'substationName', minWidth: 180 },
{ title: '敏感用户名称', field: 'name', minWidth: 180 },
{
- title: '敏感负荷类型',
+ title: '敏感用户类型',
field: 'loadType',
minWidth: 120,
formatter: row => {
return interferenceType.filter(item => item.id == row.cellValue)[0]?.name
}
},
+ { title: '所属厂站名称', field: 'substationName', minWidth: 180 },
+
{ title: '用户协议容量(MVA)', field: 'userAgreementCapacity', minWidth: 100 },
{ title: '装机容量(MW)', field: 'installedCapacity', minWidth: 100 },
{
diff --git a/src/views/pqs/cockpit/homePage/components/routingConfig.vue b/src/views/pqs/cockpit/homePage/components/routingConfig.vue
index e14e7ab..b3374e0 100644
--- a/src/views/pqs/cockpit/homePage/components/routingConfig.vue
+++ b/src/views/pqs/cockpit/homePage/components/routingConfig.vue
@@ -21,7 +21,7 @@
-
+
-
+
-
+
-
+
-
+
编辑
-
+
删除
+
+ 管理员分配页面
+
diff --git a/src/views/pqs/cockpit/realTimeData/index.vue b/src/views/pqs/cockpit/realTimeData/index.vue
index ed83771..ddcda08 100644
--- a/src/views/pqs/cockpit/realTimeData/index.vue
+++ b/src/views/pqs/cockpit/realTimeData/index.vue
@@ -30,8 +30,8 @@
-
-
+
+
diff --git a/src/views/setting/dictionary/list/detail.vue b/src/views/setting/dictionary/list/detail.vue
index a9f5d6e..557f529 100644
--- a/src/views/setting/dictionary/list/detail.vue
+++ b/src/views/setting/dictionary/list/detail.vue
@@ -10,7 +10,7 @@
-
@@ -52,16 +52,31 @@ const tableStore = new TableStore({
column: [
{ title: '名称', field: 'name' },
{ title: '编码', field: 'code' },
- { title: '排序', field: 'sort' },
+
{ title: '计算值', field: 'value' },
{ title: '事件等级', field: 'levelName' },
{ title: '算法描述', field: 'algoDescribe' },
- { title: '状态', field: 'stateName' },
+
+ {
+ title: '状态',
+ field: 'state',
+ width: '80',
+ render: 'tag',
+ custom: {
+ 0: 'danger',
+ 1: 'success'
+ },
+ replaceValue: {
+ 0: '删除',
+ 1: '正常'
+ }
+ },
+ { title: '排序', field: 'sort', width: '80', },
{
title: '操作', fixed: 'right',
width: '180',
render: 'buttons',
-
+
buttons: [
{
title: '编辑',
diff --git a/src/views/setting/dictionary/list/index.vue b/src/views/setting/dictionary/list/index.vue
index deaceee..d4827ab 100644
--- a/src/views/setting/dictionary/list/index.vue
+++ b/src/views/setting/dictionary/list/index.vue
@@ -50,13 +50,17 @@ const tableStore = new TableStore({
{ title: '更新时间', field: 'updateTime', sortable: true},
{
title: '状态',
- field: 'stateName',
+ field: 'state',
width: '80',
render: 'tag',
custom: {
- '正常': 'success',
- '删除': 'danger'
+ 0: 'danger',
+ 1: 'success'
},
+ replaceValue: {
+ 0: '删除',
+ 1: '正常'
+ }
},
{
title: '操作', fixed: 'right',
diff --git a/src/views/setting/dictionary/tree/index.vue b/src/views/setting/dictionary/tree/index.vue
index 3ae91dd..886ab1b 100644
--- a/src/views/setting/dictionary/tree/index.vue
+++ b/src/views/setting/dictionary/tree/index.vue
@@ -32,22 +32,22 @@ const tableStore = new TableStore({
// { title: '排序', field: 'sort',width:'80' },
{ title: '编码', field: 'code' },
{ title: '描述', field: 'remark' },
- {
- title: '状态',
- field: 'status',
- width: '80',
- render: 'tag',
- custom: {
- 0: 'success',
- 1: 'warning',
- 2: 'danger'
- },
- replaceValue: {
- 0: '正常',
- 1: '禁用',
- 2: '删除'
- }
- },
+ // {
+ // title: '状态',
+ // field: 'status',
+ // width: '80',
+ // render: 'tag',
+ // custom: {
+ // 0: 'success',
+ // 1: 'warning',
+ // 2: 'danger'
+ // },
+ // replaceValue: {
+ // 0: '正常',
+ // 1: '禁用',
+ // 2: '删除'
+ // }
+ // },
{
title: '操作', fixed: 'right',
width: '180',