From 34502b7ed215f47d4dd997437ed4e1316535b30e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=89=88=E5=85=86=E5=A2=9E?= <你的邮箱@example.com> Date: Wed, 10 Jun 2026 15:45:16 +0800 Subject: [PATCH] =?UTF-8?q?=E6=B7=BB=E5=8A=A0=E6=A0=96=E6=81=AF=E5=9C=B0?= =?UTF-8?q?=E5=BC=B9=E6=A1=86=EF=BC=8C=E4=BF=AE=E6=94=B9=E6=89=B9=E5=A4=8D?= =?UTF-8?q?=E6=96=87=E4=BB=B6=E6=98=BE=E7=A4=BA=E5=A4=9A=E4=B8=AA?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- frontend/src/api/auth/index.ts | 51 +- frontend/src/api/mapModal/index.ts | 68 +- .../src/components/MapModal/column.config.ts | 503 +- .../MapModal/components/Attachment.vue | 30 +- .../MapModal/components/BasicInfo.vue | 14 +- .../MapModal/components/EcologicalFlow.vue | 129 +- .../MapModal/components/FlowMeasure.vue | 626 ++ .../components/VerticalWaterTemperature.vue | 9 +- .../MapModal/components/WaterQuality.vue | 778 ++ .../MapModal/components/WaterTemperature.vue | 78 +- .../MapModal/components/videoInfo.vue | 16 +- frontend/src/components/MapModal/index.vue | 217 +- .../src/components/MapModal/setting.config.ts | 176 +- frontend/src/components/gis/map.ol.ts | 5 +- .../src/components/mapController/index.vue | 5 +- frontend/src/utils/GisUrlList.ts | 7976 ++++++++++------- frontend/src/utils/request.ts | 3 +- frontend/src/views/register/index.vue | 1540 ++-- 18 files changed, 7774 insertions(+), 4450 deletions(-) create mode 100644 frontend/src/components/MapModal/components/FlowMeasure.vue create mode 100644 frontend/src/components/MapModal/components/WaterQuality.vue diff --git a/frontend/src/api/auth/index.ts b/frontend/src/api/auth/index.ts index 83eb35e0..44f1e71f 100644 --- a/frontend/src/api/auth/index.ts +++ b/frontend/src/api/auth/index.ts @@ -1,6 +1,12 @@ import request from '@/utils/request'; import { AxiosPromise } from 'axios'; import { LoginData, TokenResult, VerifyCode } from './types'; +export function getAccessToken() { + return request({ + url: '/register/accessToken', + method: 'get' + }); +} /** * @@ -52,8 +58,11 @@ export function registerUser(data: any): AxiosPromise { */ export function getBasinList(): AxiosPromise { return request({ - url: '/env/rvcd/regDropdown', + url: '/register/dropdown/rvcd', method: 'get', + headers: { + 'register-token': localStorage.getItem('register-token') || '' + } // params: baseid ? { baseid } : {} }); } @@ -63,9 +72,12 @@ export function getBasinList(): AxiosPromise { */ export function getGroupList(): AxiosPromise { return request({ - url: '/env/hycd/regDropdown', + url: '/register/dropdown/hycd', method: 'get', - params:{lx:1} + params: { lx: 1 }, + headers: { + 'register-token': localStorage.getItem('register-token') || '' + } }); } @@ -74,20 +86,26 @@ export function getGroupList(): AxiosPromise { */ export function getCompanyList(): AxiosPromise { return request({ - url: '/env/hycd/regDropdown', + url: '/register/dropdown/hycd', method: 'get', - params: { lx:2 } + params: { lx: 2 }, + headers: { + 'register-token': localStorage.getItem('register-token') || '' + } }); } /** * 根据流域获取电站列表 */ -export function getStationList(params:any): AxiosPromise { +export function getStationList(params: any): AxiosPromise { return request({ - url: '/env/engInfo/regDropdown', + url: '/register/dropdown/engInfo', method: 'post', - data: params + data: params, + headers: { + 'register-token': localStorage.getItem('register-token') || '' + } }); } @@ -110,7 +128,11 @@ export function sendSmsCode(phone: string, type = 1): AxiosPromise { * @param code 验证码 * @param type 验证码类型:1-注册 2-找回密码 */ -export function verifySmsCode(phone: string, code: string, type = 1): AxiosPromise { +export function verifySmsCode( + phone: string, + code: string, + type = 1 +): AxiosPromise { return request({ url: '/sms/verifyCode', method: 'post', @@ -123,7 +145,10 @@ export function verifySmsCode(phone: string, code: string, type = 1): AxiosPromi * @param phone 手机号 * @param code 验证码 */ -export function smsLoginApi(phone: string, code: string): AxiosPromise { +export function smsLoginApi( + phone: string, + code: string +): AxiosPromise { return request({ url: '/sms/login', method: 'post', @@ -137,7 +162,11 @@ export function smsLoginApi(phone: string, code: string): AxiosPromise { +export function resetPassword( + phone: string, + code: string, + password: string +): AxiosPromise { return request({ url: '/sms/resetPassword', method: 'post', diff --git a/frontend/src/api/mapModal/index.ts b/frontend/src/api/mapModal/index.ts index d7aa32a9..01c0a468 100644 --- a/frontend/src/api/mapModal/index.ts +++ b/frontend/src/api/mapModal/index.ts @@ -62,10 +62,33 @@ export function getMonitorData(data: any) { data }); } +// 监测数据 水温查询 栖息地 + +export function getMonitorDataWt(data: any) { + return request({ + url: '/wt/msstbprpt/GetKendoList', + method: 'post', + data + }); +} +export function getMonitorDataWq(data: any) { + return request({ + url: '/wq/msstbprpt/GetKendoList', + method: 'post', + data + }); +} +export function getMonitorDataZq(data: any) { + return request({ + url: '/zq/msstbprpt/GetKendoList', + method: 'post', + data + }); +} // 监测数据 - 水温 export function getMonitorDataWaterTemp(data: any) { return request({ - url: '/api/wmp-env-server/sw/alongDetail/qgc/GetKendoListCust', + url: '/wt/alongDetail/qgc/GetKendoListCust', method: 'post', data }); @@ -73,7 +96,7 @@ export function getMonitorDataWaterTemp(data: any) { // 监测数据 - 水温 - 查询显示 综合/等温 export function getMonitorDataWaterTempPowerStation(params: any) { return request({ - url: '/api/wmp-env-server/sw/wtrv/getIoWtrvFlag', + url: '/wt/wtrv/getIoWtrvFlag', method: 'get', params }); @@ -81,7 +104,7 @@ export function getMonitorDataWaterTempPowerStation(params: any) { // 监测数据 - 水温 - 、综合分析导出数据 export function exportMonitorDataWaterTempPowerStation(params: any) { return request({ - url: '/api/wmp-env-server/sw/alongDetail/qgc/GetKendoListCust', + url: '/wt/alongDetail/qgc/GetKendoListCust', method: 'post', params, responseType: 'blob' @@ -91,32 +114,55 @@ export function exportMonitorDataWaterTempPowerStation(params: any) { // 监测数据 - 水温 - 查询是否显示 等温水深 export function getMonitorDataWaterTempPowerStation2(params: any) { return request({ - url: '/api/wmp-env-server/sw/alongDetail/qgc/stcdCheck2', + url: '/wt/alongDetail/qgc/stcdCheck2', method: 'get', params }); } // 监测数据 - 垂向水温 - export function getMonitorDataWaterTempVertical(data: any) { return request({ - url: '/api/wmp-env-server/sw/cxDetail/GetKendoListCust', + url: '/wt/cxDetail/GetKendoListCust', + method: 'post', + data + }); +} +// 监测数据 - 水质 判断是否显示综合分析 +export function getMonitorDataWaterQuality(data: any) { + return request({ + url: '/wq/vmsstbprpt/GetKendoList', + method: 'post', + data + }); +} +// 监测数据 - 水质 - 获取水质参数 +export function getMonitorDataWaterQualityDetail(data: any) { + return request({ + url: '/wq/stbprp/GetStbprpYsByStcd', + method: 'get', + params: data + }); +} +// 监测数据 - 水质 - 获取水质数据 +export function getMonitorDataWaterQualityList(data: any) { + return request({ + url: '/wq/data/noAuth/GetKendoListCust', method: 'post', data }); } // 生态流量 - 限制范围查询 - 日 -export function getEngLimitDay(data: any) { +export function getMonitorDataWaterTempVerticalDay(data: any) { return request({ - url: '/eq/interval/qgc/day/GetKendoListCust', + url: '/eq/data/day/GetKendoListCust', method: 'post', data }); } -// 生态流量 - 限制范围查询 - 月 -export function getEngLimit(data: any) { +// 生态流量 - 限制范围查询 - 小时 +export function getMonitorDataWaterTempVerticalHour(data: any) { return request({ - url: '/eq/interval/qgc/month/GetKendoListCust', + url: '/eq/data/GetKendoListCust', method: 'post', data }); diff --git a/frontend/src/components/MapModal/column.config.ts b/frontend/src/components/MapModal/column.config.ts index 016e3292..383cd761 100644 --- a/frontend/src/components/MapModal/column.config.ts +++ b/frontend/src/components/MapModal/column.config.ts @@ -157,7 +157,7 @@ const BasicColumns: Array = [ name: '', filed: '', visible: true, - type: '', + type: '' }, { key: '17bccbfa812362fa403c0bed06e58d0d', @@ -848,7 +848,7 @@ const BasicColumns: Array = [ name: '', filed: '', visible: true, - type: '', + type: '' }, { key: 'd085d8361a89374da7a301690c1be32f', @@ -971,28 +971,28 @@ const wtPointColumns: Array = [ filed: 'stnm', visible: true, type: 'input', - url: '', + url: '' }, { name: '测站类型', filed: 'sttpName', visible: true, type: 'select', - url: '', + url: '' }, { name: '站址', filed: 'addvcdName', visible: true, type: 'input', - url: '', + url: '' }, { name: '所属流域', filed: 'hbrvcdName', visible: true, type: 'select', - url: '', + url: '' }, { name: '经度(°)', @@ -1000,7 +1000,7 @@ const wtPointColumns: Array = [ visible: true, type: 'number', toFixed: 6, - url: '', + url: '' }, { name: '纬度(°)', @@ -1008,7 +1008,7 @@ const wtPointColumns: Array = [ visible: true, type: 'number', toFixed: 6, - url: '', + url: '' }, { name: '建成日期', @@ -1016,61 +1016,59 @@ const wtPointColumns: Array = [ visible: true, type: 'date', format: 'YYYY-MM-DD', - url: '', + url: '' }, { name: '监测方式', filed: 'mwayName', visible: true, type: 'select', - url: '', + url: '' }, { name: '所属电站', filed: 'ennm', visible: true, type: 'select', - url: '', + url: '' }, { name: '', filed: '', visible: true, type: '', - url: '', - }, - + url: '' + } ]; //水质基础信息 const FhWpPointColumns: Array = [ - { name: '测站名称', filed: 'stnm', visible: true, type: 'input', - url: '', + url: '' }, { name: '测站类型', filed: 'sttpName', visible: true, type: 'select', - url: '', + url: '' }, { name: '站址', filed: 'stlc', visible: true, type: 'input', - url: '', + url: '' }, { name: '所属流域', filed: 'hbrvcdName', visible: true, type: 'select', - url: '', + url: '' }, { name: '经度(°)', @@ -1078,7 +1076,7 @@ const FhWpPointColumns: Array = [ visible: true, type: 'number', toFixed: 6, - url: '', + url: '' }, { name: '纬度(°)', @@ -1086,37 +1084,37 @@ const FhWpPointColumns: Array = [ visible: true, type: 'number', toFixed: 6, - url: '', + url: '' }, - { + { name: '建成日期', filed: 'jcdt', visible: true, type: 'date', format: 'YYYY-MM-DD', - url: '', + url: '' }, { name: '类别', filed: 'dtinTypeName', visible: true, type: 'select', - url: '', + url: '' }, { name: '水质要求', filed: 'wwqtgName', visible: true, type: 'select', - url: '', + url: '' }, { name: '监测方式', filed: 'mwayName', visible: true, type: 'select', - url: '', - }, + url: '' + } ]; //栖息地基础信息 fh_point const FhPointColumns: Array = [ @@ -1132,35 +1130,35 @@ const FhPointColumns: Array = [ filed: 'stnm', visible: true, type: 'input', - url: '', + url: '' }, { name: '站址', filed: 'stlc', visible: true, type: 'input', - url: '', + url: '' }, { name: '所属流域', filed: 'hbrvcdName', visible: true, type: 'select', - url: '', + url: '' }, { name: '保护对象', filed: 'protobj', visible: true, type: 'select', - url: '', + url: '' }, { name: '保护范围', filed: 'qxdbhfw', visible: true, type: 'input', - url: '', + url: '' }, { name: '保护总长度(km)', @@ -1168,7 +1166,7 @@ const FhPointColumns: Array = [ visible: true, type: 'number', toFixed: 2, - url: '', + url: '' }, { name: '保护核心长度(km)', @@ -1176,15 +1174,15 @@ const FhPointColumns: Array = [ visible: true, type: 'number', toFixed: 2, - url: '', + url: '' }, { name: '保护外围长度(km)', - filed: 'gsmqcd', + filed: 'qxdbhwwcd', visible: true, type: 'number', toFixed: 2, - url: '', + url: '' }, { name: '保护面积(km²)', @@ -1192,35 +1190,35 @@ const FhPointColumns: Array = [ visible: true, type: 'number', toFixed: 2, - url: '', + url: '' }, { name: '保护河流', filed: 'bhhl', visible: true, type: 'select', - url: '', + url: '' }, { name: '保护河段', filed: 'bhhd', visible: true, type: 'select', - url: '', + url: '' }, { name: '保护措施', filed: 'bhcs', visible: true, type: 'select', - url: '', + url: '' }, { name: '保护方式', filed: 'bhfs', visible: true, type: 'select', - url: '', + url: '' }, { name: '投资(亿元)', @@ -1228,10 +1226,8 @@ const FhPointColumns: Array = [ visible: true, type: 'number', url: '', - toFixed: 3, - }, - - + toFixed: 3 + } ]; //栖息地流量 基础信息 fh_zq_point const FhZQPointColumns: Array = [ @@ -1240,28 +1236,28 @@ const FhZQPointColumns: Array = [ filed: 'stnm', visible: true, type: 'input', - url: '', + url: '' }, { name: '测站类型', filed: 'sttpName', visible: true, type: 'select', - url: '', + url: '' }, { name: '站址', filed: 'stlc', visible: true, type: 'input', - url: '', + url: '' }, { name: '所属流域', filed: 'hbrvcdName', visible: true, type: 'select', - url: '', + url: '' }, { name: '经度(°)', @@ -1269,7 +1265,7 @@ const FhZQPointColumns: Array = [ visible: true, type: 'number', toFixed: 6, - url: '', + url: '' }, { name: '纬度(°)', @@ -1277,7 +1273,7 @@ const FhZQPointColumns: Array = [ visible: true, type: 'number', toFixed: 6, - url: '', + url: '' }, { name: '建成日期', @@ -1285,16 +1281,15 @@ const FhZQPointColumns: Array = [ visible: true, type: 'date', format: 'YYYY-MM-DD', - url: '', + url: '' }, { name: '监测方式', filed: 'mwayName', visible: true, type: 'select', - url: '', - }, - + url: '' + } ]; //过鱼设施 基础信息 const FPPointColumns: Array = [ @@ -1310,28 +1305,28 @@ const FPPointColumns: Array = [ filed: 'stnm', visible: true, type: 'input', - url: '', + url: '' }, { name: '设施类型', filed: 'sttpName', visible: true, type: 'select', - url: '', + url: '' }, { name: '地址', filed: 'addvcdName', visible: true, type: 'input', - url: '', + url: '' }, { name: '所属流域', filed: 'hbrvcdName', visible: true, type: 'select', - url: '', + url: '' }, { name: '经度(°)', @@ -1339,7 +1334,7 @@ const FPPointColumns: Array = [ visible: true, type: 'number', toFixed: 6, - url: '', + url: '' }, { name: '纬度(°)', @@ -1347,7 +1342,7 @@ const FPPointColumns: Array = [ visible: true, type: 'number', toFixed: 6, - url: '', + url: '' }, { @@ -1356,7 +1351,7 @@ const FPPointColumns: Array = [ visible: true, type: 'date', format: 'YYYY-MM-DD', - url: '', + url: '' }, { name: '建成日期', @@ -1364,7 +1359,7 @@ const FPPointColumns: Array = [ visible: true, type: 'date', format: 'YYYY-MM-DD', - url: '', + url: '' }, { name: '集运鱼系统', @@ -1378,49 +1373,49 @@ const FPPointColumns: Array = [ filed: 'updcklc', visible: true, type: 'input', - url: '', + url: '' }, { name: '上游码头型式', filed: 'updcktp', visible: true, type: 'select', - url: '', + url: '' }, { name: '下游码头位置', filed: 'downdcklc', visible: true, type: 'input', - url: '', + url: '' }, { name: '下游码头型式', filed: 'downdcktp', visible: true, type: 'select', - url: '', + url: '' }, { name: '集(诱)鱼方式', filed: 'jyyjyfs', visible: true, type: 'select', - url: '', + url: '' }, { name: '运鱼设施方式', filed: 'jyyyyfs', visible: true, type: 'select', - url: '', + url: '' }, { name: '过鱼对象', filed: 'psfishtyp', visible: true, type: 'select', - url: '', + url: '' }, { name: '过鱼规模(kg/a)', @@ -1428,14 +1423,14 @@ const FPPointColumns: Array = [ visible: true, type: 'number', toFixed: 0, - url: '', + url: '' }, { name: '集运鱼时间', filed: 'jyyjyytm', visible: true, type: 'input', - url: '', + url: '' }, { name: '建成时间', @@ -1443,7 +1438,7 @@ const FPPointColumns: Array = [ visible: true, type: 'date', format: 'YYYY-MM-DD', - url: '', + url: '' }, { name: '投资(亿元)', @@ -1451,7 +1446,7 @@ const FPPointColumns: Array = [ visible: true, type: 'number', toFixed: 6, - url: '', + url: '' }, { name: '运行时间', @@ -1459,22 +1454,22 @@ const FPPointColumns: Array = [ visible: true, type: 'date', format: 'YYYY-MM-DD', - url: '', + url: '' }, { name: '主要过鱼月份(多个月份用,隔开)', filed: 'fpssmnmon', visible: true, type: 'select', - url: '', + url: '' }, { name: '数据监测频次', filed: 'dtfrqcy', visible: true, type: 'select', - url: '', - }, + url: '' + } ]; //鱼类增殖站 基础信息 const FBPointColumns: Array = [ @@ -1490,21 +1485,21 @@ const FBPointColumns: Array = [ filed: 'stnm', visible: true, type: 'input', - url: '', + url: '' }, { name: '地址', filed: 'addvcdName', visible: true, type: 'input', - url: '', + url: '' }, { name: '所属流域', filed: 'hbrvcdName', visible: true, type: 'select', - url: '', + url: '' }, { name: '经度(°)', @@ -1512,7 +1507,7 @@ const FBPointColumns: Array = [ visible: true, type: 'number', toFixed: 6, - url: '', + url: '' }, { name: '纬度(°)', @@ -1520,7 +1515,7 @@ const FBPointColumns: Array = [ visible: true, type: 'number', toFixed: 6, - url: '', + url: '' }, { @@ -1529,7 +1524,7 @@ const FBPointColumns: Array = [ visible: true, type: 'date', format: 'YYYY-MM-DD', - url: '', + url: '' }, { name: '建成日期', @@ -1537,14 +1532,14 @@ const FBPointColumns: Array = [ visible: true, type: 'date', format: 'YYYY-MM-DD', - url: '', + url: '' }, { name: '', filed: '', visible: true, type: '', - url: '', + url: '' }, { name: '鱼类增殖站', @@ -1558,14 +1553,14 @@ const FBPointColumns: Array = [ filed: 'zzfldxName', visible: true, type: 'select', - url: '', + url: '' }, { name: '建设地点', filed: 'zzfljslc', visible: true, type: 'input', - url: '', + url: '' }, { name: '放流规模(尾)', @@ -1573,14 +1568,14 @@ const FBPointColumns: Array = [ visible: true, type: 'number', toFixed: 0, - url: '', + url: '' }, { name: '放流地点', filed: 'zzflfllc', visible: true, type: 'select', - url: '', + url: '' }, { name: '放流时间', @@ -1588,28 +1583,28 @@ const FBPointColumns: Array = [ visible: true, type: 'date', format: 'YYYY-MM-DD', - url: '', + url: '' }, { name: '养殖模式', filed: 'zzflyzms', visible: true, type: 'input', - url: '', + url: '' }, { name: '生产工艺', filed: 'zzfkgy', visible: true, type: 'select', - url: '', + url: '' }, { name: '标记方式', filed: 'zzflbjfs', visible: true, type: 'select', - url: '', + url: '' }, { name: '总占地面积(km²)', @@ -1617,7 +1612,7 @@ const FBPointColumns: Array = [ visible: true, type: 'number', toFixed: 2, - url: '', + url: '' }, { name: '投资(亿元)', @@ -1625,24 +1620,23 @@ const FBPointColumns: Array = [ visible: true, type: 'number', toFixed: 6, - url: '', + url: '' }, { name: '工程等级', filed: 'zzfllvl', visible: true, type: 'select', - url: '', + url: '' }, { name: '承担放流任务', filed: 'zzflrw', visible: true, type: 'inout', - url: '', - }, - -] + url: '' + } +]; //动物救助站 const VaPointColumns: Array = [ { @@ -1657,21 +1651,21 @@ const VaPointColumns: Array = [ filed: 'stnm', visible: true, type: 'input', - url: '', + url: '' }, { name: '站址', filed: 'stlc', visible: true, type: 'input', - url: '', + url: '' }, { name: '所属流域', filed: 'hbrvcdName', visible: true, type: 'select', - url: '', + url: '' }, { name: '经度(°)', @@ -1679,7 +1673,7 @@ const VaPointColumns: Array = [ visible: true, type: 'number', toFixed: 6, - url: '', + url: '' }, { name: '纬度(°)', @@ -1687,7 +1681,7 @@ const VaPointColumns: Array = [ visible: true, type: 'number', toFixed: 6, - url: '', + url: '' }, { @@ -1696,7 +1690,7 @@ const VaPointColumns: Array = [ visible: true, type: 'date', format: 'YYYY-MM-DD', - url: '', + url: '' }, { name: '建成日期', @@ -1704,14 +1698,14 @@ const VaPointColumns: Array = [ visible: true, type: 'date', format: 'YYYY-MM-DD', - url: '', + url: '' }, { name: '', filed: '', visible: true, type: '', - url: '', + url: '' }, { name: '陆生动物保护(救助站、珍稀动物园等)', @@ -1725,21 +1719,21 @@ const VaPointColumns: Array = [ filed: 'protobj', visible: true, type: 'input', - url: '', + url: '' }, { name: '保护方式', filed: 'bhfs', visible: true, type: 'input', - url: '', + url: '' }, { name: '地点', filed: 'lsdwlc', visible: true, type: 'input', - url: '', + url: '' }, { name: '面积(km²)', @@ -1747,7 +1741,7 @@ const VaPointColumns: Array = [ visible: true, type: 'number', toFixed: 2, - url: '', + url: '' }, { @@ -1755,17 +1749,17 @@ const VaPointColumns: Array = [ filed: 'inv', visible: true, type: 'number', - toFixed: 6, - url: '', + toFixed: 6, + url: '' }, { name: '保护原因', filed: 'zzfllvl', visible: true, type: 'select', - url: '', - }, -] + url: '' + } +]; //珍稀植物园 const VPPointColumns: Array = [ { @@ -1780,21 +1774,21 @@ const VPPointColumns: Array = [ filed: 'stnm', visible: true, type: 'input', - url: '', + url: '' }, { name: '站址', filed: 'stlc', visible: true, type: 'input', - url: '', + url: '' }, { name: '所属流域', filed: 'hbrvcdName', visible: true, type: 'select', - url: '', + url: '' }, { name: '开工日期', @@ -1802,7 +1796,7 @@ const VPPointColumns: Array = [ visible: true, type: 'date', format: 'YYYY-MM-DD', - url: '', + url: '' }, { name: '经度(°)', @@ -1810,7 +1804,7 @@ const VPPointColumns: Array = [ visible: true, type: 'number', toFixed: 6, - url: '', + url: '' }, { name: '纬度(°)', @@ -1818,7 +1812,7 @@ const VPPointColumns: Array = [ visible: true, type: 'number', toFixed: 6, - url: '', + url: '' }, { name: '建成日期', @@ -1826,21 +1820,21 @@ const VPPointColumns: Array = [ visible: true, type: 'date', format: 'YYYY-MM-DD', - url: '', + url: '' }, { name: '保护对象', filed: 'protobj', visible: true, type: 'input', - url: '', + url: '' }, { name: '保护方式', filed: 'bhfs', visible: true, type: 'input', - url: '', + url: '' }, { name: '面积(km²)', @@ -1848,7 +1842,7 @@ const VPPointColumns: Array = [ visible: true, type: 'number', toFixed: 2, - url: '', + url: '' }, { @@ -1857,16 +1851,16 @@ const VPPointColumns: Array = [ visible: true, type: 'number', toFixed: 4, - url: '', + url: '' }, { name: '', filed: '', visible: true, type: '', - url: '', - }, -] + url: '' + } +]; //水生生态调查断面 const wePointColumns: Array = [ { @@ -1881,21 +1875,21 @@ const wePointColumns: Array = [ filed: 'stnm', visible: true, type: 'input', - url: '', + url: '' }, { name: '站址', filed: 'stlc', visible: true, type: 'input', - url: '', + url: '' }, { name: '所在河段', filed: 'hbrvcdName', visible: true, type: 'select', - url: '', + url: '' }, { name: '经度(°)', @@ -1903,7 +1897,7 @@ const wePointColumns: Array = [ visible: true, type: 'number', toFixed: 6, - url: '', + url: '' }, { name: '纬度(°)', @@ -1911,17 +1905,16 @@ const wePointColumns: Array = [ visible: true, type: 'number', toFixed: 6, - url: '', + url: '' }, { name: '', filed: '', visible: true, type: '', - url: '', - }, - -] + url: '' + } +]; //野生动物监测 const waPointColumns: Array = [ { @@ -1929,14 +1922,14 @@ const waPointColumns: Array = [ filed: 'stnm', visible: true, type: 'input', - url: '', + url: '' }, { name: '测站类型', filed: 'sttpName', visible: true, type: 'select', - url: '', + url: '' }, { name: '经度(°)', @@ -1944,7 +1937,7 @@ const waPointColumns: Array = [ visible: true, type: 'number', toFixed: 6, - url: '', + url: '' }, { name: '纬度(°)', @@ -1952,24 +1945,23 @@ const waPointColumns: Array = [ visible: true, type: 'number', toFixed: 6, - url: '', + url: '' }, { name: '监测方式', filed: 'mwayName', visible: true, type: 'select', - url: '', + url: '' }, { name: '', filed: '', visible: true, type: '', - url: '', - }, - -] + url: '' + } +]; //AI视频监控站 const StinfoAiVidoPointColumns: Array = [ { @@ -1984,35 +1976,35 @@ const StinfoAiVidoPointColumns: Array = [ filed: 'stnm', visible: true, type: 'input', - url: '', + url: '' }, { name: '监控点类型', filed: 'sttpName', visible: true, type: 'select', - url: '', + url: '' }, { name: '监控内容类型', filed: 'sttpName', visible: true, type: 'select', - url: '', + url: '' }, { name: '所属行政区', - filed: 'addvcdName', + filed: 'addvcdName', visible: true, type: 'select', - url: '', + url: '' }, { name: '所属流域', filed: 'hbrvcdName', visible: true, type: 'select', - url: '', + url: '' }, { name: '经度(°)', @@ -2020,7 +2012,7 @@ const StinfoAiVidoPointColumns: Array = [ visible: true, type: 'number', toFixed: 6, - url: '', + url: '' }, { name: '纬度(°)', @@ -2028,18 +2020,16 @@ const StinfoAiVidoPointColumns: Array = [ visible: true, type: 'number', toFixed: 6, - url: '', + url: '' }, { name: '监控点地址', filed: 'stlc', visible: true, type: 'select', - url: '', - }, - - -] + url: '' + } +]; //水电站告警情况 // BasicColumns //低温水减缓设施 @@ -2056,28 +2046,28 @@ const DwPointColumns: Array = [ filed: 'stnm', visible: true, type: 'input', - url: '', + url: '' }, { name: '设施类型', filed: 'sttpName', visible: true, type: 'select', - url: '', + url: '' }, { name: '站址', filed: 'addvcdName', visible: true, type: 'select', - url: '', + url: '' }, { name: '所属流域', filed: 'hbrvcdName', visible: true, type: 'select', - url: '', + url: '' }, { name: '经度(°)', @@ -2085,7 +2075,7 @@ const DwPointColumns: Array = [ visible: true, type: 'number', toFixed: 6, - url: '', + url: '' }, { name: '纬度(°)', @@ -2093,21 +2083,21 @@ const DwPointColumns: Array = [ visible: true, type: 'number', toFixed: 6, - url: '', + url: '' }, { name: '所属电站', filed: 'ennm', visible: true, type: 'select', - url: '', + url: '' }, { name: '', filed: '', visible: true, type: '', - url: '', + url: '' }, { name: '叠梁门式进水口', @@ -2122,7 +2112,7 @@ const DwPointColumns: Array = [ visible: true, type: 'number', toFixed: 2, - url: '', + url: '' }, { name: '叠梁门式进水口的单节门叶高度(m)', @@ -2130,14 +2120,14 @@ const DwPointColumns: Array = [ visible: true, type: 'number', toFixed: 2, - url: '', + url: '' }, { name: '叠梁门式进水口的门叶数量(扇)', filed: 'dlmcnt', visible: true, type: 'number', - url: '', + url: '' }, { name: '天然河流最高温月份多年平均水温(℃)', @@ -2145,7 +2135,7 @@ const DwPointColumns: Array = [ visible: true, type: 'number', toFixed: 1, - url: '', + url: '' }, { name: '天然河流最低温月份多年平均水温(℃)', @@ -2153,7 +2143,7 @@ const DwPointColumns: Array = [ visible: true, type: 'number', toFixed: 1, - url: '', + url: '' }, { name: '建成后坝下平均水温(℃)', @@ -2161,7 +2151,7 @@ const DwPointColumns: Array = [ visible: true, type: 'number', toFixed: 1, - url: '', + url: '' }, { name: '建成后坝下最高温月份多年平均水温(℃)', @@ -2169,7 +2159,7 @@ const DwPointColumns: Array = [ visible: true, type: 'number', toFixed: 1, - url: '', + url: '' }, { name: '建成后坝下最低温月份多年平均水温(℃)', @@ -2177,7 +2167,7 @@ const DwPointColumns: Array = [ visible: true, type: 'number', toFixed: 1, - url: '', + url: '' }, { name: '叠梁门顶部高程(m)', @@ -2185,7 +2175,7 @@ const DwPointColumns: Array = [ visible: true, type: 'number', toFixed: 2, - url: '', + url: '' }, { name: '叠梁门式进水口的最大淹没水深(m)', @@ -2193,7 +2183,7 @@ const DwPointColumns: Array = [ visible: true, type: 'number', toFixed: 2, - url: '', + url: '' }, { name: '叠梁门式进水口的投资(亿元)', @@ -2201,14 +2191,14 @@ const DwPointColumns: Array = [ visible: true, type: 'number', toFixed: 6, - url: '', + url: '' }, { name: '投资是否计入工程主体', filed: 'invinmn', visible: true, type: 'select', - url: '', + url: '' }, { name: '建成日期', @@ -2216,16 +2206,16 @@ const DwPointColumns: Array = [ visible: true, type: 'date', format: 'YYYY-MM-DD', - url: '', + url: '' }, { name: '', filed: '', visible: true, type: '', - url: '', - }, -] + url: '' + } +]; //前置挡墙 const DwFivePointColumns: Array = [ { @@ -2240,28 +2230,28 @@ const DwFivePointColumns: Array = [ filed: 'stnm', visible: true, type: 'input', - url: '', + url: '' }, { name: '设施类型', filed: 'sttpName', visible: true, type: 'select', - url: '', + url: '' }, { name: '站址', filed: 'stlc', visible: true, type: 'select', - url: '', + url: '' }, { name: '所属流域', filed: 'hbrvcdName', visible: true, type: 'select', - url: '', + url: '' }, { name: '经度(°)', @@ -2269,7 +2259,7 @@ const DwFivePointColumns: Array = [ visible: true, type: 'number', toFixed: 6, - url: '', + url: '' }, { name: '纬度(°)', @@ -2277,21 +2267,21 @@ const DwFivePointColumns: Array = [ visible: true, type: 'number', toFixed: 6, - url: '', + url: '' }, { name: '所属电站', filed: 'ennm', visible: true, type: 'select', - url: '', + url: '' }, { name: '', filed: '', visible: true, type: '', - url: '', + url: '' }, { name: '前置挡墙', @@ -2306,21 +2296,21 @@ const DwFivePointColumns: Array = [ visible: true, type: 'number', toFixed: 2, - url: '', + url: '' }, { name: '前置挡墙的结构形式', filed: 'stnm', visible: true, type: 'input', - url: '', + url: '' }, { name: '前置挡墙的位置', filed: 'addvcdName', visible: true, type: 'input', - url: '', + url: '' }, { name: '前置挡墙的挡墙顶高程(m)', @@ -2328,7 +2318,7 @@ const DwFivePointColumns: Array = [ visible: true, type: 'number', toFixed: 2, - url: '', + url: '' }, { @@ -2336,40 +2326,40 @@ const DwFivePointColumns: Array = [ filed: 'nrmxavwt', visible: true, type: 'number', - toFixed: 1, - url: '', + toFixed: 1, + url: '' }, { name: '天然河流最低温月份多年平均水温(℃)', filed: 'nrmnavwt', visible: true, type: 'number', - toFixed: 1, - url: '', + toFixed: 1, + url: '' }, { name: '建成后坝下平均水温(℃)', filed: 'dnavwt', visible: true, type: 'number', - toFixed: 1, - url: '', + toFixed: 1, + url: '' }, { name: '建成后坝下最高温月份多年平均水温(℃)', filed: 'dnmxavwt', visible: true, type: 'number', - toFixed: 1, - url: '', + toFixed: 1, + url: '' }, { name: '建成后坝下最低温月份多年平均水温(℃)', filed: 'dnwnavwt', visible: true, type: 'number', - toFixed: 1, - url: '', + toFixed: 1, + url: '' }, { @@ -2378,14 +2368,14 @@ const DwFivePointColumns: Array = [ visible: true, type: 'number', toFixed: 6, - url: '', + url: '' }, { name: '投资是否计入工程主体', filed: 'invinmn', visible: true, type: 'select', - url: '', + url: '' }, { name: '建成日期', @@ -2393,9 +2383,9 @@ const DwFivePointColumns: Array = [ visible: true, type: 'date', format: 'YYYY-MM-DD', - url: '', - }, -] + url: '' + } +]; //隔水幕墙 const DwSixPointColumns: Array = [ { @@ -2410,28 +2400,28 @@ const DwSixPointColumns: Array = [ filed: 'stnm', visible: true, type: 'input', - url: '', + url: '' }, { name: '设施类型', filed: 'sttpName', visible: true, type: 'select', - url: '', + url: '' }, { name: '站址', filed: 'stlc', visible: true, type: 'select', - url: '', + url: '' }, { name: '所属流域', filed: 'hbrvcdName', visible: true, type: 'select', - url: '', + url: '' }, { name: '经度(°)', @@ -2439,7 +2429,7 @@ const DwSixPointColumns: Array = [ visible: true, type: 'number', toFixed: 6, - url: '', + url: '' }, { name: '纬度(°)', @@ -2447,21 +2437,21 @@ const DwSixPointColumns: Array = [ visible: true, type: 'number', toFixed: 6, - url: '', + url: '' }, { name: '所属电站', filed: 'ennm', visible: true, type: 'select', - url: '', + url: '' }, { name: '', filed: '', visible: true, type: '', - url: '', + url: '' }, { name: '隔水幕墙', @@ -2475,14 +2465,14 @@ const DwSixPointColumns: Array = [ filed: 'stnm', visible: true, type: 'input', - url: '', + url: '' }, { name: '隔水幕墙的位置', filed: 'addvcdName', visible: true, type: 'input', - url: '', + url: '' }, { name: '隔水幕墙的长度(m)', @@ -2490,28 +2480,28 @@ const DwSixPointColumns: Array = [ visible: true, type: 'number', toFixed: 2, - url: '', + url: '' }, { name: '隔水幕墙的宽度(m)', filed: 'gsmqkd', visible: true, type: 'number', - url: '', + url: '' }, { name: '建成后坝下最高温月份多年平均水温(℃)', filed: 'dnmxavwt', visible: true, type: 'number', - url: '', + url: '' }, { name: '建成后坝下最低温月份多年平均水温(℃)', filed: 'dnwnavwt', visible: true, type: 'number', - url: '', + url: '' }, { @@ -2520,21 +2510,21 @@ const DwSixPointColumns: Array = [ visible: true, type: 'number', toFixed: 4, - url: '', + url: '' }, { name: '投资是否计入工程主体', filed: 'invinmn', visible: true, type: 'select', - url: '', + url: '' }, { name: '隔水幕墙材料', filed: 'gsmqcl', visible: true, type: 'select', - url: '', + url: '' }, { name: '建成日期', @@ -2542,9 +2532,9 @@ const DwSixPointColumns: Array = [ visible: true, type: 'date', format: 'YYYY-MM-DD', - url: '', - }, -] + url: '' + } +]; //夹岩双层取水 const DwOnePointColumns: Array = [ { @@ -2559,28 +2549,28 @@ const DwOnePointColumns: Array = [ filed: 'stnm', visible: true, type: 'input', - url: '', + url: '' }, { name: '设施类型', filed: 'sttpName', visible: true, type: 'select', - url: '', + url: '' }, { name: '站址', filed: 'stlc', visible: true, type: 'select', - url: '', + url: '' }, { name: '所属流域', filed: 'hbrvcdName', visible: true, type: 'select', - url: '', + url: '' }, { name: '经度(°)', @@ -2588,7 +2578,7 @@ const DwOnePointColumns: Array = [ visible: true, type: 'number', toFixed: 6, - url: '', + url: '' }, { name: '纬度(°)', @@ -2596,21 +2586,21 @@ const DwOnePointColumns: Array = [ visible: true, type: 'number', toFixed: 6, - url: '', + url: '' }, { name: '所属电站', filed: 'ennm', visible: true, type: 'select', - url: '', + url: '' }, { name: '', filed: '', visible: true, type: '', - url: '', + url: '' }, { name: '夹岩双层取水', @@ -2625,7 +2615,7 @@ const DwOnePointColumns: Array = [ visible: true, type: 'number', toFixed: 2, - url: '', + url: '' }, { name: '天然河流最高温月份多年平均水温(℃)', @@ -2633,7 +2623,7 @@ const DwOnePointColumns: Array = [ visible: true, type: 'number', toFixed: 1, - url: '', + url: '' }, { name: '天然河流最低温月份多年平均水温(℃)', @@ -2641,7 +2631,7 @@ const DwOnePointColumns: Array = [ visible: true, type: 'number', toFixed: 1, - url: '', + url: '' }, { name: '建成后坝下平均水温(℃)', @@ -2649,7 +2639,7 @@ const DwOnePointColumns: Array = [ visible: true, type: 'number', toFixed: 1, - url: '', + url: '' }, { name: '建成后坝下最高温月份多年平均水温(℃)', @@ -2657,7 +2647,7 @@ const DwOnePointColumns: Array = [ visible: true, type: 'number', toFixed: 1, - url: '', + url: '' }, { name: '建成后坝下最低温月份多年平均水温(℃)', @@ -2665,7 +2655,7 @@ const DwOnePointColumns: Array = [ visible: true, type: 'number', toFixed: 1, - url: '', + url: '' }, { name: '多层式进水口的投资(亿元)', @@ -2673,21 +2663,21 @@ const DwOnePointColumns: Array = [ visible: true, type: 'number', toFixed: 6, - url: '', + url: '' }, { name: '投资是否计入工程主体', filed: 'invinmn', visible: true, type: 'select', - url: '', + url: '' }, { name: '多层式进水口的进水口高程每层取水口高程(m)', filed: 'dcshg', visible: true, type: 'input', - url: '', + url: '' }, { name: '取水口个数(m)', @@ -2695,7 +2685,7 @@ const DwOnePointColumns: Array = [ visible: true, type: 'number', toFixed: 2, - url: '', + url: '' }, { @@ -2704,16 +2694,16 @@ const DwOnePointColumns: Array = [ visible: true, type: 'date', format: 'YYYY-MM-DD HH:mm:ss', - url: '', + url: '' }, { name: '', filed: '', visible: true, type: '', - url: '', - }, -] + url: '' + } +]; //阶段属性 const basicFilterColumns: Array = [ { @@ -2809,7 +2799,6 @@ const basicFilterColumns: Array = [ } ]; - //实时视频 //全景影像 diff --git a/frontend/src/components/MapModal/components/Attachment.vue b/frontend/src/components/MapModal/components/Attachment.vue index 86a612cf..cca15174 100644 --- a/frontend/src/components/MapModal/components/Attachment.vue +++ b/frontend/src/components/MapModal/components/Attachment.vue @@ -143,13 +143,29 @@ const loadApprovalData = () => { loading.value = true; queryPostUrlList(props.url, params).then(res => { const data = res.data?.data || []; - const fileArray = data.map((item: any) => ({ - id: item.flpath.split('?')[1] || '', - name: item.approvalFileNo || item.approvalFileTitle, - url: item.flpath || '' - })); - hasLoaded.value = true; - updateFileList(fileArray); + if (data[0].flid == null) { + const fileArray = data.map((item: any) => ({ + id: item.flpath.split('?')[1] || '', + name: item.approvalFileNo || item.approvalFileTitle, + url: item.flpath || '' + })); + hasLoaded.value = true; + updateFileList(fileArray); + } else { + getIdUrl({ + id: data[0].flid + }).then(res1 => { + const data = res1?.data || {}; + const fileArray = Object.keys(data).map(key => ({ + id: key, + name: data[key].name, + url: data[key].fullpath + })); + loading.value = false; + hasLoaded.value = true; + updateFileList(fileArray); + }); + } }); }; diff --git a/frontend/src/components/MapModal/components/BasicInfo.vue b/frontend/src/components/MapModal/components/BasicInfo.vue index 19289bf1..a8b75f5a 100644 --- a/frontend/src/components/MapModal/components/BasicInfo.vue +++ b/frontend/src/components/MapModal/components/BasicInfo.vue @@ -39,7 +39,15 @@
- + {{ item.value || '-' }} @@ -250,6 +258,10 @@ const columnsConfig = ref([ { type: 'DW_1', columns: DwOnePointColumns + }, + { + type: 'ZQ', + columns: FhZQPointColumns } //DW_1 diff --git a/frontend/src/components/MapModal/components/EcologicalFlow.vue b/frontend/src/components/MapModal/components/EcologicalFlow.vue index 8af5be7c..0f1ecafe 100644 --- a/frontend/src/components/MapModal/components/EcologicalFlow.vue +++ b/frontend/src/components/MapModal/components/EcologicalFlow.vue @@ -45,9 +45,15 @@
- +
+
@@ -55,7 +61,10 @@ + + diff --git a/frontend/src/components/MapModal/components/VerticalWaterTemperature.vue b/frontend/src/components/MapModal/components/VerticalWaterTemperature.vue index b97ef4b3..7c9b25fe 100644 --- a/frontend/src/components/MapModal/components/VerticalWaterTemperature.vue +++ b/frontend/src/components/MapModal/components/VerticalWaterTemperature.vue @@ -321,7 +321,7 @@ const updateChart = (selectedRows: any[]) => { fontSize: 12, color: '#000000', formatter: function (value) { - return value + '℃'; + return value.toFixed(1) + '℃'; } }, splitLine: { show: true } @@ -349,6 +349,13 @@ const updateChart = (selectedRows: any[]) => { }, right: 20, top: 10 + }, + dataZoom: { + type: 'inside', + xAxisIndex: [0], + throttle: 50, + start: 0, + end: 100 } }; diff --git a/frontend/src/components/MapModal/components/WaterQuality.vue b/frontend/src/components/MapModal/components/WaterQuality.vue new file mode 100644 index 00000000..759623dc --- /dev/null +++ b/frontend/src/components/MapModal/components/WaterQuality.vue @@ -0,0 +1,778 @@ + + + + + diff --git a/frontend/src/components/MapModal/components/WaterTemperature.vue b/frontend/src/components/MapModal/components/WaterTemperature.vue index d6ee354c..497c806f 100644 --- a/frontend/src/components/MapModal/components/WaterTemperature.vue +++ b/frontend/src/components/MapModal/components/WaterTemperature.vue @@ -26,7 +26,7 @@ -
+
{ } }, legend: { + width: '80%', type: 'scroll', top: 10, data: ['水温'], @@ -685,6 +689,8 @@ const updateChart = (data: any[]) => { }, legend: { type: 'scroll', + width: '80%', + right: 60, top: 10, data: [ '出库水温', @@ -809,10 +815,21 @@ const updateChart = (data: any[]) => { }; // ==================== 数据请求 ==================== +const isQxdMode = computed(() => props.code === 'qxd.tabs.jcsj'); + const fetchData = async () => { if (!dateRange.value) return; + + // qxd模式必须有stcd才能请求 + if (isQxdMode.value && !props.stcd) { + return; + } + isLoading.value = true; try { + // 确定使用的stcd:qxd模式使用props.stcd,否则使用modelStore.params.stcd + const currentStcd = isQxdMode.value ? props.stcd : modelStore.params.stcd; + const filterParams = { filter: { logic: 'and', @@ -821,7 +838,7 @@ const fetchData = async () => { field: 'stcd', operator: 'eq', dataType: 'string', - value: modelStore.params.stcd + value: currentStcd }, { field: 'tm', @@ -840,22 +857,35 @@ const fetchData = async () => { sort: [{ field: 'tm', dir: 'asc' }] }; - const [mainRes, powerStationRes, powerStationRes2] = await Promise.all([ - getMonitorDataWaterTemp(filterParams), - getMonitorDataWaterTempPowerStation({ stcd: modelStore.params.stcd }), - getMonitorDataWaterTempPowerStation2({ stcd: modelStore.params.stcd }) - ]); + // qxd模式只调用getMonitorDataWaterTemp + if (isQxdMode.value) { + const mainRes = await getMonitorDataWaterTemp(filterParams); + const mainData = mainRes?.data?.data || mainRes?.data?.records || []; + showSummaryCheckbox.value = false; + showDeepCheckbox.value = false; + selectedColumns.value = []; + tableData.value = [...mainData].reverse(); + chartData.value = mainData; + nextTick(() => updateChart(mainData)); + } else { + // 原有模式 + const [mainRes, powerStationRes, powerStationRes2] = await Promise.all([ + getMonitorDataWaterTemp(filterParams), + getMonitorDataWaterTempPowerStation({ stcd: currentStcd }), + getMonitorDataWaterTempPowerStation2({ stcd: currentStcd }) + ]); - const mainData = mainRes?.data?.data || mainRes?.data?.records || []; - showSummaryCheckbox.value = !!powerStationRes?.data?.ioWtrv; - const powerStation2Data = - powerStationRes2?.data?.data || powerStationRes2?.data || null; - showDeepCheckbox.value = - !!powerStationRes?.data?.hasRstcdWtvt && powerStation2Data !== null; + const mainData = mainRes?.data?.data || mainRes?.data?.records || []; + showSummaryCheckbox.value = !!powerStationRes?.data?.ioWtrv; + const powerStation2Data = + powerStationRes2?.data?.data || powerStationRes2?.data || null; + showDeepCheckbox.value = + !!powerStationRes?.data?.hasRstcdWtvt && powerStation2Data !== null; - tableData.value = [...mainData].reverse(); - chartData.value = mainData; - nextTick(() => updateChart(mainData)); + tableData.value = [...mainData].reverse(); + chartData.value = mainData; + nextTick(() => updateChart(mainData)); + } } catch (error) { console.error('获取数据失败:', error); tableData.value = []; @@ -892,7 +922,19 @@ watch( watch( () => modelStore.params.stcd, (newStcd, oldStcd) => { - if (newStcd && newStcd !== oldStcd) fetchData(); + // 非qxd模式才监听store的stcd变化 + if (!isQxdMode.value && newStcd && newStcd !== oldStcd) fetchData(); + } +); + +// qxd模式下监听props.stcd变化 +watch( + () => props.stcd, + (newStcd, oldStcd) => { + if (isQxdMode.value && newStcd && newStcd !== oldStcd) { + hasLoaded.value = false; + initData(); + } } ); diff --git a/frontend/src/components/MapModal/components/videoInfo.vue b/frontend/src/components/MapModal/components/videoInfo.vue index 121edafb..51b3d39a 100644 --- a/frontend/src/components/MapModal/components/videoInfo.vue +++ b/frontend/src/components/MapModal/components/videoInfo.vue @@ -19,6 +19,7 @@
@@ -27,7 +28,11 @@ -
+
+ @@ -80,7 +90,9 @@
- +
-