diff --git a/src/api/advance-boot/division.ts b/src/api/advance-boot/division.ts new file mode 100644 index 00000000..a950e716 --- /dev/null +++ b/src/api/advance-boot/division.ts @@ -0,0 +1,42 @@ +import createAxios from '@/utils/request' + +//删除列表 +export function deleteByIds(data: any) { + return createAxios({ + url: '/advance-boot/responsibility/deleteByIds', + method: 'post', + data + }) +} +//上传用采数据 +export function uploadUserData(data: any) { + return createAxios({ + url: '/advance-boot/responsibility/uploadUserData', + method: 'post', + data + }) +} +//负荷数据 +export function userDataList(data: any) { + return createAxios({ + url: '/advance-boot/responsibility/userDataList', + method: 'post', + data + }) +} +//执行 +export function getHistoryHarmData(data: any) { + return createAxios({ + url: '/harmonic-boot/harmonic/getHistoryHarmData', + method: 'post', + data + }) +} +//责任详情 +export function displayHistoryData(data: any) { + return createAxios({ + url: '/advance-boot/responsibility/displayHistoryData', + method: 'GET', + params: data + }) +} diff --git a/src/api/system-boot/csDictData.ts b/src/api/system-boot/csDictData.ts index 70cc864f..4bb381ce 100644 --- a/src/api/system-boot/csDictData.ts +++ b/src/api/system-boot/csDictData.ts @@ -100,3 +100,19 @@ export const deleteTimer = (data: any) => { data: data }) } +// 关闭任务 +export const stop = (params: any) => { + return request({ + url: '/system-boot/timer/stop', + method: 'get', + params + }) +} +// 启动任务 +export const start = (params: any) => { + return request({ + url: '/system-boot/timer/start', + method: 'get', + params + }) +} \ No newline at end of file diff --git a/src/components/echarts/rmsboxi.vue b/src/components/echarts/rmsboxi.vue index e45650b7..8ddbb697 100644 --- a/src/components/echarts/rmsboxi.vue +++ b/src/components/echarts/rmsboxi.vue @@ -205,7 +205,7 @@ export default { " 发生时刻:" + this.boxoList.startTime + " 暂降(骤升)幅值:" + - (this.boxoList.featureAmplitude * 1).toFixed(0) + + (this.boxoList.featureAmplitude * 100).toFixed(2) + "% 持续时间:" + this.boxoList.duration + "s"; @@ -231,7 +231,7 @@ export default { " 发生时刻:" + this.boxoList.startTime + " 暂降(骤升)幅值:" + - (this.boxoList.featureAmplitude * 1).toFixed(0) + + (this.boxoList.featureAmplitude * 100).toFixed(2) + "% 持续时间:" + this.boxoList.duration + "s"; @@ -925,7 +925,7 @@ export default { }, title: { left: "center", - text: "电网侧-电压 " + title, + text: title, subtitle: { text: "电压", align: "left", diff --git a/src/components/echarts/shushiboxi.vue b/src/components/echarts/shushiboxi.vue index eef06292..25197921 100644 --- a/src/components/echarts/shushiboxi.vue +++ b/src/components/echarts/shushiboxi.vue @@ -162,7 +162,7 @@ export default { ' 发生时刻:' + this.boxoList.startTime + ' 暂降(骤升)幅值:' + - (this.boxoList.featureAmplitude * 1).toFixed(0) + + (this.boxoList.featureAmplitude * 100).toFixed(2) + '% 持续时间:' + this.boxoList.duration + 's' @@ -188,7 +188,7 @@ export default { ' 发生时刻:' + this.boxoList.startTime + ' 暂降(骤升)幅值:' + - (this.boxoList.featureAmplitude * 1).toFixed(0) + + (this.boxoList.featureAmplitude * 100).toFixed(2) + '% 持续时间:' + this.boxoList.duration + 's' @@ -597,7 +597,7 @@ export default { }, title: { left: 'center', - text: '电网侧-电压 ' + title, + text: title, textStyle: { fontSize: '0.8rem', color: _this.DColor ? '#fff' : echartsColor.WordColor diff --git a/src/components/echarts/waveForm.vue b/src/components/echarts/waveForm.vue index 47b4cd18..dc6ce5f3 100644 --- a/src/components/echarts/waveForm.vue +++ b/src/components/echarts/waveForm.vue @@ -8,8 +8,8 @@ - 高级分析 + + :model-value="fieldValue.toString()" :loading="row.loading" inline-prompt :active-value="field.activeValue" + :active-text="field.activeText" :inactive-value="field.inactiveValue" :inactive-text="field.inactiveText" />
diff --git a/src/components/table/index.vue b/src/components/table/index.vue index 883fabdc..40a350ca 100644 --- a/src/components/table/index.vue +++ b/src/components/table/index.vue @@ -2,7 +2,7 @@
+ @checkbox-change="selectChangeEvent" :showOverflow="showOverflow" @sort-change="handleSortChange"> - +
@@ -64,7 +64,7 @@ :offset="{ height: 33 }" /> - +
@@ -98,8 +98,43 @@ - +
+
+ +
+
+ + +
+ +
+ +
+ +
+ 总数
{{ PopKey == 2 ? item.lineNum : PopKey == 1 ? item.deviceNum : PopKey == 0 ? + item.subNum : + '/' }} +
+
+ {{ PopKey == 2 ? '在线' : PopKey == 1 ? '在运' : '告警' }}
{{ PopKey == 2 ? + item.onlineNum : + PopKey + == 1 + ? + item.alarmSubNum : PopKey == 0 ? + item.onDevice : '/' }} +
+
+ 告警
{{ PopKey == 2 ? item.alarm : PopKey == 1 ? item.xx : PopKey == 0 ? item.xx : + '/' }} +
+
+
+
+
@@ -113,9 +148,11 @@ import { ref, reactive, onMounted } from 'vue' import DatePicker from '@/components/form/datePicker/index.vue' import { useDictData } from '@/stores/dictData' import { Search } from '@element-plus/icons-vue' -import { BaiduMap, BmBoundary, BmPolygon } from 'vue-baidu-map-3x' +import { BaiduMap, BmOverlay } from 'vue-baidu-map-3x' +import { getAssessOverview } from '@/api/device-boot/panorama' +import { getGridDiagramAreaData } from '@/api/device-boot/panorama' const emit = defineEmits(['changeValue', 'drop', 'show']) - +import mapJson from './boundary'; const datePickerRef = ref() const height = mainHeight(20) // 页面中直接引入就可以 @@ -123,18 +160,44 @@ const dictData = useDictData() const inputQuery: any = ref('') const QueryList: any = ref([]) const activeName: any = ref(0) -const zoomMap = ref(9) + +const zoomMap = ref(8.8) const colorKey = ref('') const showCollapse: any = ref(true) const showWrap: any = ref(false) const deptIndex = ref(dictData.state.area[0].id) - -const boundaryList = ref([ - { name: '张家口市' }, - { name: '唐山市' }, - { name: '秦皇岛市' }, - { name: '承德市' }, - { name: '廊坊市' }, +const assessList: any = ref([]) +const AreaData: any = ref([]) +const PopKey: any = ref(2) +const imgUrl0 = new URL('@/assets/img/BDZ-ZS.png', import.meta.url).href +const imgUrl1 = new URL('@/assets/img/ZD-ZS.png', import.meta.url).href +const imgUrl2 = new URL('@/assets/img/JCD-ZS.png', import.meta.url).href +const boundaryList: any = ref([ + { + orgName: '唐山', + LngLat: [118.335849137, 39.7513593355], + boundary: mapJson.tsJSON + }, + { + orgName: '张家口', + LngLat: [115.032504679, 40.8951549951], + boundary: mapJson.zjkJSON + }, + { + orgName: '秦皇岛', + LngLat: [119.185113833, 40.1179119754], + boundary: mapJson.qhdJSON + }, + { + orgName: '承德', + LngLat: [117.548498365, 41.3775890632], + boundary: mapJson.cdJSON + }, + { + orgName: '廊坊', + LngLat: [116.628004129, 39.0589378611], + boundary: mapJson.lfJSON + } ]) const zoom = ref(13) @@ -143,7 +206,7 @@ const siteList = ref([]) const polyline = ref([]) const lineId = ref('') const center = ref({ - lng: 116.403765, lat: 39.914850 + lng: 116.84428600000001, lat: 40.57707185292256 }) const infoWindowPoint = ref({ lng: 0, @@ -310,18 +373,90 @@ const DeviceQ = () => { } // 定位 -const flyTo = (e: any) => { - console.log("🚀 ~ flyTo ~ e:", e) +const flyTo = (e: any, zoom?: number) => { + let regex = new RegExp(e.psrName, 'i') center.value.lng = e.coordinate[0] center.value.lat = e.coordinate[1] - zoomMap.value = 15 - let data = areaLineInfo.value.filter((item: any) => regex.test(item.lineName))[0] - if (data) { - markerClick(data) + if (zoom) { zoomMap.value = zoom } + else { + zoomMap.value = 15 + let data = areaLineInfo.value.filter((item: any) => regex.test(item.lineName))[0] + if (data) { + markerClick(data) + } } + +} +// 市级统计数据 +const grids = (row: any) => { + let form = { + ...row, + id: row.orgNo, + deptIndex: row.orgNo, + orgId: row.orgNo, + ids: [], + statisticalType: dictData.getBasicData('Statistical_Type', ['Report_Type'])[0], + isUpToGrid: row.isUpToGrid, + monitorFlag: row.isUpToGrid == 0 ? null : row.isUpToGrid + } + AreaData.value=[] + assessList.value=[] + // 综合评估 + getAssessOverview(form).then(res => { + assessList.value = res.data?.children + + getGridDiagramAreaData({ ...form, deptIndex: deptIndex.value }).then((res: any) => { + AreaData.value = res.data + GridDiagramArea() + }) + // if (powerManageGridMap.value) powerLoad() + }) +} +const radiusPop = (k: any) => { + console.log("🚀 ~ radiusPop ~ k:", k) + if (k != undefined) PopKey.value = k +} +const GridDiagramArea = () => { + + boundaryList.value.forEach((item: any) => { + assessList.value.forEach((y: any) => { + if (item.orgName == y.name) { + + if (y.score == 3.14159) { + } else if (y.score > 4.5) { + item.background = '#33996699' + } else if (y.score > 4) { + item.background = '#3399ff99' + } else if (y.score > 3) { + item.background = '#ffcc3399' + } else if (y.score > 2) { + item.background = '#db088799' + } else if (y.score > 0) { + item.background = '#ff000099' + } + } + }) + AreaData.value.forEach((k: any, i: any) => { + if (item.orgName == k.orgName) { + for (let kk in item) { + k[kk] = item[kk] + } + } + }) + }) + AreaData.value = AreaData.value.filter((item: any) => item.orgName != '超高压' && item.orgName != '风光储') + setTimeout(() => { + // radiusPop() + }, 0) +} +// 市级统计 +const draw = ({ el, BMap, map }, val) => { + const pixel = map.pointToOverlayPixel(new BMap.Point(val[0], val[1])) + el.style.left = pixel.x - 60 + 'px' + el.style.top = pixel.y - 20 + 'px' } // 重置 const reset = () => { @@ -330,7 +465,7 @@ const reset = () => { } onMounted(() => { }) -defineExpose({ addMarkers, locatePositions, reset }) +defineExpose({ addMarkers, locatePositions, reset, grids, radiusPop, flyTo }) +.sample { + position: absolute; + + .my-radiusPop { + width: 200px; + height: 50px; + border-radius: 5px; + background: rgba(0, 0, 0, 0.5); + overflow: hidden; + // box-shadow: 0 0 5px #000; + color: #fff; + text-align: center; + padding: 5px 5px !important; + display: flex; + + img { + height: 40px; + margin-right: 10px; + } + + .infoBox { + flex: 1; + display: flex; + justify-content: space-around; + text-align: center; + + div { + cursor: pointer; + } + } + } + +} + +./cds.js./boundary \ No newline at end of file diff --git a/src/views/pqs/panorama/components/style/map.scss b/src/views/pqs/panorama/components/style/map.scss index 220857d1..d2428f90 100644 --- a/src/views/pqs/panorama/components/style/map.scss +++ b/src/views/pqs/panorama/components/style/map.scss @@ -169,32 +169,7 @@ font-size: 16px; } } -:deep(.my-radiusPop) { - .sgmap-popup-tip { - display: none; - } - .sgmap-popup-content { - width: 200px; - height: 50px; - border-radius: 5px; - padding: 5px 5px !important; - background-color: #00000000; - color: #fff; - } - img { - height: 40px; - margin-right: 10px; - } - .infoBox { - flex: 1; - display: flex; - justify-content: space-around; - text-align: center; - div { - cursor: pointer; - } - } -} + #nrDeviceCard { position: absolute; diff --git a/src/views/pqs/panorama/index.vue b/src/views/pqs/panorama/index.vue index 2a3e59fb..1549b614 100644 --- a/src/views/pqs/panorama/index.vue +++ b/src/views/pqs/panorama/index.vue @@ -167,7 +167,7 @@ const GridDiagram = (k?: number, num?: number) => { if (value) VITE_FLAG ? mapRef.value.flyTo({ coordinate: value.LngLat }, value.zoom) : '' } else { - VITE_FLAG ? mapRef.value.flyTo({ coordinate: [116.84428600000001, 40.57707185292256] }, 6.709267680647425) : '' + VITE_FLAG ? mapRef.value.flyTo({ coordinate: [116.84428600000001, 40.57707185292256] }, 8) : '' } } const info = () => { @@ -176,9 +176,9 @@ const info = () => { form.value.endTime = datePickerRef.value.timeValue[1] form.value.searchEndTime = datePickerRef.value.timeValue[1] - form.value.type = datePickerRef.value.interval + form.value.type = 1//datePickerRef.value.interval - // VITE_FLAG ? mapRef.value.grids(form.value) : '' + VITE_FLAG ? mapRef.value.grids(form.value) : '' if (control.value == 1) { mapLRef.value.info(form.value) mapRRef.value.info(form.value) @@ -249,14 +249,14 @@ onMounted(() => { .mapL { position: absolute; - top: 10px; + top: 5px; // z-index: 1; left: 10px; } .mapR { position: absolute; - top: 10px; + top: 5px; // z-index: 1; right: 10px; } diff --git a/src/views/pqs/voltageSags/Region/transientList/index.vue b/src/views/pqs/voltageSags/Region/transientList/index.vue index 1e2676da..3bdf8f3c 100644 --- a/src/views/pqs/voltageSags/Region/transientList/index.vue +++ b/src/views/pqs/voltageSags/Region/transientList/index.vue @@ -72,8 +72,8 @@ @@ -151,16 +151,16 @@ const tableStore = new TableStore({ { field: 'ip', title: '网络参数', minWidth: '200' }, { field: 'lineName', title: '监测点', minWidth: '100' }, { field: 'scale', title: '电压等级(kV)', minWidth: '120', }, - { - field: 'verifyReason', title: '暂降核实原因', minWidth: '120', formatter: function (row) { - return verifyReasonList.filter(item => item.id == row.cellValue)[0]?.name || '/' //row.cellValue ? row.cellValue : '/' - } - }, - { - field: 'verifyReasonDetail', title: '暂降核实原因详情', minWidth: '200', formatter: function (row) { - return row.cellValue ? row.cellValue : '/' - } - }, + // { + // field: 'verifyReason', title: '暂降核实原因', minWidth: '120', formatter: function (row) { + // return verifyReasonList.filter(item => item.id == row.cellValue)[0]?.name || '/' //row.cellValue ? row.cellValue : '/' + // } + // }, + // { + // field: 'verifyReasonDetail', title: '暂降核实原因详情', minWidth: '200', formatter: function (row) { + // return row.cellValue ? row.cellValue : '/' + // } + // }, { field: 'featureAmplitude', title: '暂降(骤升)幅值(%)', @@ -187,7 +187,7 @@ const tableStore = new TableStore({ }, { field: 'duration', title: '持续时间(s)', minWidth: '100' }, - { field: 'severity', title: '严重度', minWidth: '100', formatter: ({ row }: any) => (row.severity < 0 ? '/' : row.severity) }, + // { field: 'severity', title: '严重度', minWidth: '100', formatter: ({ row }: any) => (row.severity < 0 ? '/' : row.severity) }, { title: '操作', @@ -195,16 +195,16 @@ const tableStore = new TableStore({ render: 'buttons', fixed: 'right', buttons: [ - { - name: 'edit', - title: '人工维护', - type: 'primary', - icon: 'el-icon-Plus', - render: 'basicButton', - click: async row => { - addFormRef.value.open(row) - } - }, + // { + // name: 'edit', + // title: '人工维护', + // type: 'primary', + // icon: 'el-icon-Plus', + // render: 'basicButton', + // click: async row => { + // addFormRef.value.open(row) + // } + // }, { name: 'edit', title: '波形分析', diff --git a/src/views/pqs/voltageSags/monitoringPoint/online/eventStudy/index.vue b/src/views/pqs/voltageSags/monitoringPoint/online/eventStudy/index.vue index 51981671..65f2cc64 100644 --- a/src/views/pqs/voltageSags/monitoringPoint/online/eventStudy/index.vue +++ b/src/views/pqs/voltageSags/monitoringPoint/online/eventStudy/index.vue @@ -3,9 +3,9 @@
- +
@@ -61,12 +61,13 @@ const tableStore = new TableStore({ } }, { - title: '暂降(骤升)幅值(%)', field: 'featureAmplitude', minWidth: '80', formatter: (row: any) => { - return (row.cellValue * 100).toFixed(0) - } + title: '暂降(骤升)幅值(%)', field: 'featureAmplitude', minWidth: '120', formatter: (row: any) => { + return (row.cellValue * 100).toFixed(2) + }, + }, { title: '持续时间(s)', field: 'duration', minWidth: '80' }, - { title: '严重度', field: 'severity', minWidth: '80' }, + // { title: '严重度', field: 'severity', minWidth: '80' }, { title: '操作', width: '180', diff --git a/src/views/pqs/voltageSags/report/eventReports/index.vue b/src/views/pqs/voltageSags/report/eventReports/index.vue index 2518044c..7e30c1f6 100644 --- a/src/views/pqs/voltageSags/report/eventReports/index.vue +++ b/src/views/pqs/voltageSags/report/eventReports/index.vue @@ -103,7 +103,7 @@ const tableStore = new TableStore({ title: '持续时间(s)', width: '100' }, - { field: 'severity', title: '严重度' } + // { field: 'severity', title: '严重度' } ], }) diff --git a/src/views/pqs/voltageSags/report/weekly/index.vue b/src/views/pqs/voltageSags/report/weekly/index.vue index a19230a7..a8c8d53f 100644 --- a/src/views/pqs/voltageSags/report/weekly/index.vue +++ b/src/views/pqs/voltageSags/report/weekly/index.vue @@ -35,44 +35,44 @@ const height = mainHeight(80).height const activeName = ref('1') const activeName1 = ref('1') const list = ref([ - { - name: '暂态严重度统计', - id: '3', - isGroup: true, - url: '/event-boot/report/getSeverity', - column: [ - { - title: '暂态事件严重度(前二十)', - children: [ - { - field: 'index', - title: '序号', - width: '80', - formatter: (row: any) => { - return ( - (tableStore.table.params.pageNum - 1) * tableStore.table.params.pageSize + - row.rowIndex + - 1 - ) - } - }, - { field: 'startTime', title: '暂态事件发生时刻', width: '200' }, - { field: 'gdName', title: '供电公司' }, - { field: 'subName', title: '变电站' }, - { field: 'lineName', title: '监测点' }, - { field: 'voltageScale', title: '监测点电压等级' }, - { field: 'loadType', title: '干扰源类型' }, - { - field: 'featureAmplitude', - title: '暂降(骤升)幅值(%)', - formatter: ({ row }: any) => (row.featureAmplitude * 100).toFixed(2) - }, - { field: 'duration', title: '持续时间(s)' }, - { field: 'severity', title: '暂态事件严重度' } - ] - } - ] - }, + // { + // name: '暂态严重度统计', + // id: '3', + // isGroup: true, + // url: '/event-boot/report/getSeverity', + // column: [ + // { + // title: '暂态事件严重度(前二十)', + // children: [ + // { + // field: 'index', + // title: '序号', + // width: '80', + // formatter: (row: any) => { + // return ( + // (tableStore.table.params.pageNum - 1) * tableStore.table.params.pageSize + + // row.rowIndex + + // 1 + // ) + // } + // }, + // { field: 'startTime', title: '暂态事件发生时刻', width: '200' }, + // { field: 'gdName', title: '供电公司' }, + // { field: 'subName', title: '变电站' }, + // { field: 'lineName', title: '监测点' }, + // { field: 'voltageScale', title: '监测点电压等级' }, + // { field: 'loadType', title: '干扰源类型' }, + // { + // field: 'featureAmplitude', + // title: '暂降(骤升)幅值(%)', + // formatter: ({ row }: any) => (row.featureAmplitude * 100).toFixed(2) + // }, + // { field: 'duration', title: '持续时间(s)' }, + // { field: 'severity', title: '暂态事件严重度' } + // ] + // } + // ] + // }, { name: '详细事件列表', id: '4', diff --git a/src/views/system/scheduledTasks/index.vue b/src/views/system/scheduledTasks/index.vue index 614ebd56..deb8f580 100644 --- a/src/views/system/scheduledTasks/index.vue +++ b/src/views/system/scheduledTasks/index.vue @@ -35,7 +35,7 @@ - +