From 51782b09c252c2622e7525c57d465a9690438a08 Mon Sep 17 00:00:00 2001 From: GGJ <357021191@qq.com> Date: Mon, 6 Jan 2025 21:01:49 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E6=94=B9=E6=B2=BB=E7=90=86=E6=B5=8B?= =?UTF-8?q?=E8=AF=95=E7=94=A8=E4=BE=8B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .env.zl | 2 + package.json | 2 + src/components/echarts/rmsboxi.vue | 69 +++++++++---------- src/components/echarts/shushiboxi.vue | 10 ++- src/components/tree/device.vue | 36 +++++++++- src/components/tree/index.vue | 36 +++++++++- src/views/govern/analyze/APF/index.vue | 2 +- src/views/govern/analyze/DVR/index.vue | 58 +++++++++++----- src/views/govern/manage/factory.vue | 7 +- .../govern/reportCore/statisticsWx/index.vue | 12 ++-- 10 files changed, 166 insertions(+), 68 deletions(-) create mode 100644 .env.zl diff --git a/.env.zl b/.env.zl new file mode 100644 index 0000000..e7acd50 --- /dev/null +++ b/.env.zl @@ -0,0 +1,2 @@ +NODE_ENV = zl +VITE_NAME="zl" diff --git a/package.json b/package.json index bbfb112..78ca122 100644 --- a/package.json +++ b/package.json @@ -5,7 +5,9 @@ "type": "module", "scripts": { "dev": "vite", + "dev:zl": "vite --mode zl", "build": "vite build", + "build:zl": "vite build --mode zl", "preview": "vite preview" }, "dependencies": { diff --git a/src/components/echarts/rmsboxi.vue b/src/components/echarts/rmsboxi.vue index 1b84115..db2a968 100644 --- a/src/components/echarts/rmsboxi.vue +++ b/src/components/echarts/rmsboxi.vue @@ -26,6 +26,7 @@ import { mainHeight } from '@/utils/layout' // url2: ("@/assets/dw.png"), import url from '@/assets/img/point.png'; import url2 from '@/assets/img/dw.png'; +const VITE_FLAG = import.meta.env.VITE_NAME == 'zl' export default { props: { value: { @@ -190,38 +191,39 @@ export default { //根据后台查询的数据,清洗数据 initWaves() { if (null != this.wp) { - if (this.boxoList.systemType == "pms") { + if (this.boxoList.systemType == 'pms') { this.titles = - "变电站名称:" + + '变电站名称:' + this.boxoList.powerStationName + - " 监测点名称:" + + ' 监测点名称:' + this.boxoList.measurementPointName + - " 发生时刻:" + + ' 发生时刻:' + this.boxoList.startTime + - " 暂降(骤升)幅值:" + + ' 暂降(骤升)幅值:' + (this.boxoList.featureAmplitude * 100).toFixed(0) + - "% 持续时间:" + + '% 持续时间:' + this.boxoList.duration + - "s"; - } else if (this.boxoList.systemType == "ZL") { + 's' + } else if (this.boxoList.systemType == 'ZL') { this.titles = // "变电站名称:" + // this.boxoList.equipmentName + - " 监测点名称:" + - this.boxoList.equipmentName + - " 发生时刻:" + + ' 监测点名称:' + + this.boxoList.lineName + + ' 发生时刻:' + this.boxoList.startTime + - " 暂降(骤升)幅值:" + + ' 暂降(骤升)幅值:' + this.boxoList.evtParamVVaDepth + - " 持续时间:" + + ' 持续时间:' + this.boxoList.evtParamTm + - "s"; - } else if (this.boxoList.systemType == 'WX') { - + 's' + } + else if (this.boxoList.systemType == 'WX') { let featureAmplitude = this.boxoList.featureAmplitude + '' ? this.boxoList.featureAmplitude.toFixed(2) : '/' if (String(this.boxoList.featureAmplitude).split('.')[1] == '00') { this.boxoList.featureAmplitude = String(this.boxoList.featureAmplitude).split('.')[0] } + this.titles = ' 监测点名称:' + @@ -231,21 +233,21 @@ export default { ' 暂降(骤升)幅值:' + (featureAmplitude) + '% 持续时间:' + - (this.boxoList.persistTime ? this.boxoList.persistTime.toFixed(2) : '-') + + (this.boxoList.persistTime || this.boxoList.evtParamTm || '-') + 's' } else { this.titles = - "变电站名称:" + + '变电站名称:' + this.boxoList.subName + - " 监测点名称:" + + ' 监测点名称:' + this.boxoList.lineName + - " 发生时刻:" + + ' 发生时刻:' + this.boxoList.startTime + - " 暂降(骤升)幅值:" + + ' 暂降(骤升)幅值:' + (this.boxoList.featureAmplitude * 100).toFixed(0) + - "% 持续时间:" + + '% 持续时间:' + this.boxoList.duration + - "s"; + 's' } // this.eventValue = this.boxoList.eventValue; @@ -848,7 +850,7 @@ export default { unit = "A"; } //把剩余的DIV先拼接好 - for (var step = 1; step < waveDatas.length; step++) { + for (var step = waveDatas.length - 1; 0 < step && step < waveDatas.length; step--) { var rmsId = "rms" + step; var newDivRms = $( `
{ if (i == 4 || i == 7 || i == 10) { + let s = [] + let s1 = '' + s = element.split('A') if (str1 == 1 && i == 4) { - let s = [] - let s1 = '' - s = element.split('A') + if (s[0] == 'LI') { s1 = '电网侧-电流' } else { @@ -1285,9 +1288,7 @@ export default { titlename = s1 + ' ' + title } if (str1 == 2 && i == 7) { - let s = [] - let s1 = '' - s = element.split('A') + if (s[0] == 'SU') { s1 = '负载侧-电压' } else { @@ -1297,9 +1298,7 @@ export default { titlename = s1 + ' ' + title } if (str1 == 3 && i == 10) { - let s = [] - let s1 = '' - s = element.split('A') + if (s[0] == 'SI') { s1 = '负载侧-电流' diff --git a/src/components/echarts/shushiboxi.vue b/src/components/echarts/shushiboxi.vue index dc496f6..a812072 100644 --- a/src/components/echarts/shushiboxi.vue +++ b/src/components/echarts/shushiboxi.vue @@ -18,6 +18,7 @@ import * as echarts from 'echarts' import { mainHeight } from '@/utils/layout' import url from '@/assets/img/point.png' +const VITE_FLAG = import.meta.env.VITE_NAME == 'zl' export default { props: { value: { @@ -523,7 +524,7 @@ export default { //把剩余的DIV先拼接好 - for (var step = 1; step < waveDatas.length; step++) { + for (var step = waveDatas.length - 1; 0 < step && step < waveDatas.length; step--) { var waveId = 'wave' + step var newDivShunshi = $(`
@@ -599,7 +600,7 @@ export default { }, title: { left: 'center', - text: title, + text: VITE_FLAG ? "电网侧-电压 " + title : title, textStyle: { fontSize: '0.8rem', color: _this.DColor ? '#fff' : echartsColor.WordColor @@ -827,6 +828,7 @@ export default { }, //绘制剩余横向的波形图 drawPics(waveDataTemp, picHeight, step, show, myChartes1, title) { + let _this = this step = step + 1 //新建瞬时DIV @@ -886,8 +888,10 @@ export default { unit = 'A' } // const echarts = require('echarts') + + let waveIds = document.getElementById(waveId) - if (this.boxoList.systemType == 'ZL') { + if (VITE_FLAG) { let str = [] str = waveId.split('e') let str1 = Number(str[1]) diff --git a/src/components/tree/device.vue b/src/components/tree/device.vue index 962fd8c..9e2f570 100644 --- a/src/components/tree/device.vue +++ b/src/components/tree/device.vue @@ -122,9 +122,41 @@ const onMenuCollapse = () => { menuCollapse.value = !menuCollapse.value proxy.eventBus.emit('cnTreeCollapse', menuCollapse) } -const filterNode = (value: string, data: any) => { +const filterNode = (value: string, data: any, node: any) => { if (!value) return true - return data.name.includes(value) + // return data.name.includes(value) + if (data.name) { + + return chooseNode(value, data, node) + } +} + +// 过滤父节点 / 子节点 (如果输入的参数是父节点且能匹配,则返回该节点以及其下的所有子节点;如果参数是子节点,则返回该节点的父节点。name是中文字符,enName是英文字符. +const chooseNode = (value: string, data: any, node: any) => { + + if (data.name.indexOf(value) !== -1) { + return true + } + const level = node.level + // 如果传入的节点本身就是一级节点就不用校验了 + if (level === 1) { + return false + } + // 先取当前节点的父节点 + let parentData = node.parent + // 遍历当前节点的父节点 + let index = 0 + while (index < level - 1) { + // 如果匹配到直接返回,此处name值是中文字符,enName是英文字符。判断匹配中英文过滤 + if (parentData.data.name.indexOf(value) !== -1) { + return true + } + // 否则的话再往上一层做匹配 + parentData = parentData.parent + index++ + } + // 没匹配到返回false + return false } const changeDevice = (val: any) => { diff --git a/src/components/tree/index.vue b/src/components/tree/index.vue index ff5782b..efc6f72 100644 --- a/src/components/tree/index.vue +++ b/src/components/tree/index.vue @@ -62,9 +62,41 @@ const onMenuCollapse = () => { menuCollapse.value = !menuCollapse.value proxy.eventBus.emit('cnTreeCollapse', menuCollapse) } -const filterNode = (value: string, data: any) => { +const filterNode = (value: string, data: any, node: any) => { if (!value) return true - return data.name.includes(value) + // return data.name.includes(value) + if (data.name) { + + return chooseNode(value, data, node) + } +} + +// 过滤父节点 / 子节点 (如果输入的参数是父节点且能匹配,则返回该节点以及其下的所有子节点;如果参数是子节点,则返回该节点的父节点。name是中文字符,enName是英文字符. +const chooseNode = (value: string, data: any, node: any) => { + + if (data.name.indexOf(value) !== -1) { + return true + } + const level = node.level + // 如果传入的节点本身就是一级节点就不用校验了 + if (level === 1) { + return false + } + // 先取当前节点的父节点 + let parentData = node.parent + // 遍历当前节点的父节点 + let index = 0 + while (index < level - 1) { + // 如果匹配到直接返回,此处name值是中文字符,enName是英文字符。判断匹配中英文过滤 + if (parentData.data.name.indexOf(value) !== -1) { + return true + } + // 否则的话再往上一层做匹配 + parentData = parentData.parent + index++ + } + // 没匹配到返回false + return false } const checkTreeNodeChange = () => { // console.log(treeRef.value?.getCheckedNodes(), "ikkkkkiisiiisis"); diff --git a/src/views/govern/analyze/APF/index.vue b/src/views/govern/analyze/APF/index.vue index 40fe52a..7e7a295 100644 --- a/src/views/govern/analyze/APF/index.vue +++ b/src/views/govern/analyze/APF/index.vue @@ -233,7 +233,7 @@ const search = () => { } }, xAxis: { - name: '时间', + name: '', type: 'time', axisLabel: { formatter: { diff --git a/src/views/govern/analyze/DVR/index.vue b/src/views/govern/analyze/DVR/index.vue index 4c89111..72cb076 100644 --- a/src/views/govern/analyze/DVR/index.vue +++ b/src/views/govern/analyze/DVR/index.vue @@ -3,10 +3,20 @@
- + @@ -64,7 +74,7 @@ import TableHeader from '@/components/table/header/index.vue' import { getFileZip } from '@/api/cs-harmonic-boot/datatrend' import { ElMessage } from 'element-plus' defineOptions({ - name: 'govern/analyze/DVR' + name: 'analyze/DVR/index' }) const pageHeight = mainHeight(20) const loading = ref(false) @@ -75,23 +85,33 @@ const isWaveCharts = ref(false) const bxactiveName = ref('ssbx') const boxoList: any = ref({}) const wp = ref({}) -const value = ref(1) +const eventList = ref([{ + value: 'Evt_Sys_DipStr', + label: '电压暂降' +}, +{ + value: 'Evt_Sys_IntrStr', + label: '电压暂升' +}, +{ + value: 'Evt_Sys_IntrStr', + label: '电压中断' +}]) +const locationList = ref([{ + value: 'grid', + label: '电网侧' +}, +{ + value: 'load', + label: '负载侧' +}]) const waveFormAnalysisRef = ref() -const options = ref([ - { - value: 1, - label: '一次值' - }, - { - value: 2, - label: '二次值' - } -]) + const tableStore = new TableStore({ url: '/cs-harmonic-boot/eventUser/queryEventpageWeb', method: 'POST', column: [ - { title: '事件描述', field: 'showName', sortable: true }, + { title: '事件描述', field: 'showName', }, { title: '发生位置', field: 'evtParamPosition' }, { title: '持续时间(s)', field: 'evtParamTm' }, { title: '暂降深度', field: 'evtParamVVaDepth' }, @@ -188,13 +208,17 @@ const tableStore = new TableStore({ } }) tableStore.table.params.type = 0 +tableStore.table.params.eventType='' +tableStore.table.params.location='' provide('tableStore', tableStore) const nodeClick = async (e: anyObj) => { // console.log("🚀 ~ nodeClick ~ e:", e) if (e.level == 2) { loading.value = false tableStore.table.params.deviceId = e.id - tableStore.index() + nextTick(() => { + tableStore.index() + }) } } diff --git a/src/views/govern/manage/factory.vue b/src/views/govern/manage/factory.vue index 0f4690b..f1dc43d 100644 --- a/src/views/govern/manage/factory.vue +++ b/src/views/govern/manage/factory.vue @@ -475,11 +475,10 @@ const tableStore = new TableStore({ icon: 'el-icon-Grid', render: 'basicButton', disabled: row => { - return ( - row.devType == '8b45cf6b7f5266e777d07c166ad5fa77' && - row.devModel == 'a0d4da4b5c17b2172362a3f5a27bf217' + return !( + row.devType == '2d4e186e2462590dedc765c5b6700a32' ) - }, + }, click: row => { deivce.value = row deivce.value.qrPath = fullUrl(deivce.value.qrPath) diff --git a/src/views/govern/reportCore/statisticsWx/index.vue b/src/views/govern/reportCore/statisticsWx/index.vue index aebee0d..5bc2669 100644 --- a/src/views/govern/reportCore/statisticsWx/index.vue +++ b/src/views/govern/reportCore/statisticsWx/index.vue @@ -20,9 +20,11 @@ 导出excel -
-
+
+
+
@@ -90,7 +92,6 @@ const flag = ref(true) onMounted(() => { const dom = document.getElementById('navigation-splitpanes') if (dom) { - console.log("🚀 ~ onMounted ~ dom.offsetHeight:", dom.offsetWidth) size.value = ((280 / (dom.offsetWidth - 7)) * 100) } @@ -114,11 +115,14 @@ const changetype = (val: any) => { } const handleNodeClick = (data: any, node: any) => { + if (data?.pid) { dotList.value = data setTimeout(() => { tableStore.index() }, 500) + } else { + tableStore.table.loading = false } }