diff --git a/frontend/.env.development b/frontend/.env.development index beab96d..764f5c7 100644 --- a/frontend/.env.development +++ b/frontend/.env.development @@ -9,6 +9,6 @@ VITE_APP_BASE_API = '/dev-api' ## 开发环境API地址 # VITE_APP_BASE_URL = 'http://localhost:8093' VITE_APP_BASE_URL = 'http://10.84.121.21:8093' -VITE_APP_BASE_API_URL = 'https://211.99.26.225:12130/prod-api' +VITE_APP_BASE_API_URL = 'http://10.84.121.21:8093' ## 开发环境预览 图片视频地址 VITE_APP_PREVIEW_URL = 'https://211.99.26.225:12125' diff --git a/frontend/public/file/鱼种类字典数据.xlsx b/frontend/public/file/鱼种类字典数据.xlsx new file mode 100644 index 0000000..250cae3 Binary files /dev/null and b/frontend/public/file/鱼种类字典数据.xlsx differ diff --git a/frontend/src/components/MapModal/components/BasicInfo.vue b/frontend/src/components/MapModal/components/BasicInfo.vue new file mode 100644 index 0000000..a5b4f3b --- /dev/null +++ b/frontend/src/components/MapModal/components/BasicInfo.vue @@ -0,0 +1,12 @@ + + + 基本信息 + + + + + + \ No newline at end of file diff --git a/frontend/src/components/MapModal/components/EcologicalFlow.vue b/frontend/src/components/MapModal/components/EcologicalFlow.vue new file mode 100644 index 0000000..8b6f71a --- /dev/null +++ b/frontend/src/components/MapModal/components/EcologicalFlow.vue @@ -0,0 +1,12 @@ + + + 生态流量 + + + + + + \ No newline at end of file diff --git a/frontend/src/components/MapModal/components/FlowDischarge.vue b/frontend/src/components/MapModal/components/FlowDischarge.vue new file mode 100644 index 0000000..175da7b --- /dev/null +++ b/frontend/src/components/MapModal/components/FlowDischarge.vue @@ -0,0 +1,12 @@ + + + 生态流量泄放设施 + + + + + + \ No newline at end of file diff --git a/frontend/src/components/MapModal/components/PanoramaComponent.vue b/frontend/src/components/MapModal/components/PanoramaComponent.vue new file mode 100644 index 0000000..afe0f43 --- /dev/null +++ b/frontend/src/components/MapModal/components/PanoramaComponent.vue @@ -0,0 +1,12 @@ + + + 全景影像 + + + + + + \ No newline at end of file diff --git a/frontend/src/components/MapModal/components/PowerStationProgressLine.vue b/frontend/src/components/MapModal/components/PowerStationProgressLine.vue new file mode 100644 index 0000000..e3dd037 --- /dev/null +++ b/frontend/src/components/MapModal/components/PowerStationProgressLine.vue @@ -0,0 +1,12 @@ + + + 电站监测数据 + + + + + + \ No newline at end of file diff --git a/frontend/src/components/MapModal/components/SsspLayer.vue b/frontend/src/components/MapModal/components/SsspLayer.vue new file mode 100644 index 0000000..8efeb43 --- /dev/null +++ b/frontend/src/components/MapModal/components/SsspLayer.vue @@ -0,0 +1,12 @@ + + + 视频 + + + + + + \ No newline at end of file diff --git a/frontend/src/components/MapModal/components/TableInfoComponent.vue b/frontend/src/components/MapModal/components/TableInfoComponent.vue new file mode 100644 index 0000000..624523b --- /dev/null +++ b/frontend/src/components/MapModal/components/TableInfoComponent.vue @@ -0,0 +1,12 @@ + + + 阶段属性 + + + + + + \ No newline at end of file diff --git a/frontend/src/components/MapModal/components/WarningPrompt.vue b/frontend/src/components/MapModal/components/WarningPrompt.vue new file mode 100644 index 0000000..2b1cb3d --- /dev/null +++ b/frontend/src/components/MapModal/components/WarningPrompt.vue @@ -0,0 +1,12 @@ + + + 预警提示 + + + + + + \ No newline at end of file diff --git a/frontend/src/components/MapModal/index.vue b/frontend/src/components/MapModal/index.vue new file mode 100644 index 0000000..11cef15 --- /dev/null +++ b/frontend/src/components/MapModal/index.vue @@ -0,0 +1,119 @@ + + + + + + + + + + + + + + + + + + + + + + + 未找到对应 Key ({{ currentActiveKey }}) 的组件配置 + + + + + + + + + + \ No newline at end of file diff --git a/frontend/src/components/MapModal/setting.config.ts b/frontend/src/components/MapModal/setting.config.ts new file mode 100644 index 0000000..746be23 --- /dev/null +++ b/frontend/src/components/MapModal/setting.config.ts @@ -0,0 +1,1312 @@ +// import { +// NormalDatePickerFilter, +// NormalFishFilter, +// NormalFishFilter1, +// NormalSelectFilter, +// NormalStcdFilter, +// NormalWEFilter, +// NormalYearPickerFilter +// } from '@zebras/qgc-share/components/mapModal/index' +// import { Session } from '@zebras/qgc-share/service/Session' +// import getUrl from '@zebras/qgc-share/utils/isQGCrul' +// import { Utility } from '@zebras/qgc-share/utils/Utility' + +// // 水电站 √ +// const ENGTabs: Array = [ +// { +// name: '基础信息', +// key: 'basicInfo', +// type: 'basic', +// url: '/bbi/siteBipc/getSiteBasicInfo' +// }, +// { +// name: '阶段属性', +// key: 'basicFilter', +// type: 'basicFilter', +// url: '/eng/engBasisInfo/getEngBaseInfo' +// }, +// { +// name: '实时视频', +// key: 'videoInfo', +// type: 'video', +// url: '/video/dataStcdFrame/getVideoMonitorList' +// }, +// { +// name: '全景影像', +// key: 'panoramaInfo', +// type: 'panorama' +// }, +// { +// name: '监测数据', +// key: 'monitorInfo', +// type: 'tabsWithTwo', +// code: 'dzxq.tabs.jcsj' +// }, +// { +// name: '预警提示', +// key: 'tableTabs', +// type: 'tableTabs', +// code: 'dzxq-yjts', +// tabs: [ +// { +// name: '设计参数变更提示', +// key: 'DesignParameterChangePrompt', +// type: 'table', +// hiddenChart: true, +// tableUrl: '/dec-lygk-base-server/base/engWarning/GetKendoList' +// }, +// { +// name: '施工期环保措施落实预警', +// key: 'ImplementEarlyWarning', +// type: 'table', +// hiddenChart: true, +// tableUrl: '/dec-lygk-base-server/base/engWarning/sgqhbss/GetKendoListCust' +// }, +// { +// name: '环保设施建设预警', +// key: 'ConstructionEarlyWarning', +// type: 'table', +// hiddenChart: true, +// tableUrl: '/dec-lygk-base-server/base/engWarning/hbssjs/GetKendoListCust' +// }, +// { +// name: '环保设施运行预警', +// key: 'RunEarlyWarning', +// type: 'table', +// hiddenChart: true, +// tableUrl: '/dec-lygk-base-server/base/engWarning/hbssyx/GetKendoListCust' +// }, +// { +// name: '鱼类放流预警', +// key: 'ReleaseEarlyWarning', +// type: 'table', +// hiddenChart: true, +// tableUrl: '/dec-lygk-base-server/base/engWarning/ylfl/GetKendoListCust' +// } +// ] +// }, +// Session.getAppCode() === 'hbb' ? { +// name: '查看报告', +// key: 'attachment', +// type: 'attachment' +// } : null, +// { +// name: '批复文件', +// key: 'approval', +// type: 'approval' +// }, +// // { +// // name: "特征曲线", +// // key: "characteristicCurve", +// // type: "characteristicCurve" +// // } +// ].filter(Boolean) +// // 水电站生态流量 √ +// const ENGEQTabs: Array = [ +// { +// name: '基础信息', +// key: 'basicInfo', +// type: 'basic', +// url: '/bbi/siteBipc/getSiteBasicInfo' +// }, +// { +// name: '实时视频', +// key: 'videoInfo', +// type: 'video', +// url: '/video/dataStcdFrame/getVideoMonitorList' +// }, +// { +// name: '全景影像', +// key: 'panoramaInfo', +// type: 'panorama' +// }, +// { +// name: '监测数据', +// key: 'monitorInfo', +// type: 'tabsWithTwo', +// code: 'dzxq.tabs.jcsj' +// }, +// { +// name: '预警提示', +// key: 'tableTabs', +// type: 'tableTabs', +// code: 'dzxq-yjts', +// tabs: [ +// { +// name: '设计参数变更提示', +// key: 'DesignParameterChangePrompt', +// type: 'table', +// hiddenChart: true, +// tableUrl: '/dec-lygk-base-server/base/engWarning/GetKendoList' +// }, +// { +// name: '施工期环保措施落实预警', +// key: 'ImplementEarlyWarning', +// type: 'table', +// hiddenChart: true, +// tableUrl: '/dec-lygk-base-server/base/engWarning/sgqhbss/GetKendoListCust' +// }, +// { +// name: '环保设施建设预警', +// key: 'ConstructionEarlyWarning', +// type: 'table', +// hiddenChart: true, +// tableUrl: '/dec-lygk-base-server/base/engWarning/hbssjs/GetKendoListCust' +// }, +// { +// name: '环保设施运行预警', +// key: 'RunEarlyWarning', +// type: 'table', +// hiddenChart: true, +// tableUrl: '/dec-lygk-base-server/base/engWarning/hbssyx/GetKendoListCust' +// }, +// { +// name: '鱼类放流预警', +// key: 'ReleaseEarlyWarning', +// type: 'table', +// hiddenChart: true, +// tableUrl: '/dec-lygk-base-server/base/engWarning/ylfl/GetKendoListCust' +// } +// ] +// }, +// { +// name: '生态流量', +// key: 'EcologicalFlow', +// type: 'EcologicalFlow' +// }, +// Session.getAppCode() === 'hbb' ? { +// name: '查看报告', +// key: 'attachment', +// type: 'attachment' +// } : null, +// { +// name: '批复文件', +// key: 'approval', +// type: 'approval' +// }, + +// ].filter(Boolean) + +// // 水电站生态流量 - 江局单独看 √ +// const ENGEQTabsJuangJu: Array = [ +// { +// name: '生态流量', +// key: 'EcologicalFlow', +// type: 'EcologicalFlow' +// }, + +// ].filter(Boolean) +// //生态流量泄放设施 √ +// const EQTabs: Array = [ +// { +// name: '基础信息', +// key: 'basicInfo', +// type: 'basic', +// url: '/bbi/siteBipc/getSiteBasicInfo' +// }, +// { +// name: '实时视频', +// key: 'videoInfo', +// type: 'video', +// url: '/video/dataStcdFrame/getVideoMonitorList' +// }, +// // { +// // name: '全景影像', +// // key: 'panoramaInfo', +// // type: 'panorama' +// // }, +// { +// name: '监测数据', +// key: 'flowDischarge', +// type: 'FlowDischarge' +// } +// ] +// // 过鱼设施 √ +// const FPTabs: Array = +// Session.getAppCode() === 'hbb' +// ? [ +// { +// name: '基础信息', +// key: 'basicInfo', +// type: 'basic', +// url: '/bbi/siteBipc/getSiteBasicInfo', +// code: 'gyss.tabs.jcxx' +// }, +// { +// name: '实时视频', +// key: 'videoInfo', +// type: 'video', +// url: '/video/dataStcdFrame/getVideoMonitorList', +// code: 'gyss.tabs.sssp' +// }, +// { +// name: '在线监测数据', +// key: 'FishFacilityMonitorData', //Normal +// type: 'FishFacilityMonitorData', //Normal +// code: 'gyss.tabs.jcsj', +// tabs: [ +// { +// name: '', +// type: 'table', +// tableUrl: getUrl('/wmp-env-server/env/fp/fpssTable/GetKendoListCust'), +// hiddenChart: true, +// hiddenTabs: true, +// filter: NormalDatePickerFilter +// } +// ] +// }, +// { +// name: '运行情况', +// key: 'FishFacilityRunState', //Normal1 +// type: 'FishFacilityRunState', //Normal +// code: 'gyss.tabs.yxqk', +// tabs: [ +// { +// name: '', +// type: 'table', +// tableUrl: getUrl('/wmp-env-server/env/fp/run/secondRun/GetKendoListCust'), +// hiddenChart: true, +// hiddenTabs: true, +// filter: NormalFishFilter +// } +// ] +// }, +// { +// name: '综合分析', +// key: 'FishZHFX', +// type: 'FishZHFX', +// // tabs: [ +// // { +// // name: '', +// // type: 'table', +// // tableUrl: getUrl('/wmp-env-server/env/fp/run/secondRun/GetKendoListCust'), +// // hiddenChart: true, +// // hiddenTabs: true, +// // filter: NormalFishFilter +// // } +// // ] +// }, +// { +// name: 'AI运行识别', +// key: 'AIYXSB', +// type: 'AIYXSB', +// } +// ] +// : [ +// { +// name: '基础信息', +// key: 'basicInfo', +// type: 'basic', +// url: '/bbi/siteBipc/getSiteBasicInfo', +// code: 'gyss.tabs.jcxx' +// }, +// // { +// // name: '实时视频', +// // key: 'videoInfo', +// // type: 'video', +// // url: '/video/dataStcdFrame/getVideoMonitorList', +// // code: 'gyss.tabs.sssp' +// // } +// { +// name: '监测数据', +// key: 'FishFacilityMonitorData', //Normal +// type: 'FishFacilityMonitorData', //Normal +// code: 'gyss.tabs.jcsj', +// tabs: [ +// { +// name: '', +// type: 'table', +// tableUrl: getUrl('/wmp-env-server/env/fp/fpssTable/GetKendoListCust'), +// hiddenChart: true, +// hiddenTabs: true, +// filter: NormalDatePickerFilter +// } +// ] +// }, +// { +// name: '运行情况', +// key: 'FishFacilityRunState', //Normal1 +// type: 'FishFacilityRunState', //Normal +// code: 'gyss.tabs.yxqk', +// tabs: [ +// { +// name: '', +// type: 'table', +// tableUrl: getUrl('/wmp-env-server/env/fp/run/secondRun/GetKendoListCust'), +// hiddenChart: true, +// hiddenTabs: true, +// filter: NormalFishFilter +// } +// ] +// }, +// { +// name: '综合分析', +// key: 'FishZHFX', +// type: 'FishZHFX', +// code: "gyss.tabs.zhfx" +// }, +// ] + +// // 过鱼设施在建状态 +// const FPTabs1: Array = [ +// { +// name: '基础信息', +// key: 'basicInfo', +// type: 'basic', +// url: '/bbi/siteBipc/getSiteBasicInfo' +// }, +// { +// name: '实时视频', +// key: 'videoInfo', +// type: 'video', +// url: '/video/dataStcdFrame/getVideoMonitorList' +// }, +// { +// name: '建设情况', +// key: 'FishFacilityBuildState', //basicState +// type: 'FishFacilityBuildState', //basicState +// // url: "/env/fp/fpFacilities/getFpStcdConstructionInfo2", +// url: '/wmp-env-server/env/fp/run/secondBuild/GetKendoListCust' +// } +// ] +// //鱼类增殖站 √ +// const FBTabs: Array = [ +// { +// name: '基础信息', +// key: 'basicInfo', +// type: 'basic', +// url: '/bbi/siteBipc/getSiteBasicInfo' +// }, +// { +// name: '运行数据', +// key: 'NormalOperationData', +// type: 'NormalOperationData', +// tabs: [ +// { +// name: '', +// type: 'table', +// tableUrl: getUrl('/wmp-env-server/fb/bsmfr/GetKendoListCust'), +// hiddenChart: true, +// hiddenTabs: true, +// filter: NormalSelectFilter, +// filterProps: { +// params: {} +// } +// } +// ] +// }, +// { +// name: '过程图', +// key: 'ProcessDiagram', +// type: 'ProcessDiagram', +// code: "ylzzz.tabs.gct" +// }, +// { +// name: '增殖放流情况', +// key: 'NormalAddedSituation', //NormalAddedSituation +// type: 'NormalAddedSituation', //NormalAddedSituation +// tabs: [ +// { +// name: '', +// type: 'table', +// tableUrl: getUrl('/wmp-env-server/fb/bsmfr/GetKendoListCust'), +// hiddenChart: true, +// hiddenTabs: true, +// filter: NormalFishFilter1, +// filterProps: { +// params: {} +// } +// } +// ] +// }, + +// { +// name: '科研情况', +// key: 'NormalResearchSituation', // Normal2 +// type: 'NormalResearchSituation', // Normal +// code: 'ylzzz.tabs.kyqk', +// tabs: [ +// { +// name: '', +// type: 'table', +// tableUrl: '/wmp-env-server/base/researchb/GetKendoList', +// hiddenChart: true, +// hiddenTabs: true, +// filter: NormalYearPickerFilter, +// filterProps: { +// params: {} +// } +// } +// ] +// }, +// { +// name: '实时视频', +// key: 'videoInfo', +// type: 'video', +// url: '/video/dataStcdFrame/getVideoMonitorList' +// } +// // { +// // name: "全景影像", +// // key: "panoramaInfo", +// // type: "panorama" +// // }, +// ] + +// const FBTabs1: Array = [ +// { +// name: '基础信息', +// key: 'basicInfo', +// type: 'basic', +// url: '/bbi/siteBipc/getSiteBasicInfo' +// }, +// { +// name: '建设情况', +// key: 'FishFacilityBuildState', +// type: 'FishFacilityBuildState', +// url: '/wmp-env-server/env/fp/run/secondBuild/GetKendoListCust' +// }, +// { +// name: '实时视频', +// key: 'videoInfo', +// type: 'video', +// url: '/video/dataStcdFrame/getVideoMonitorList' +// }, +// { +// name: '全景影像', +// key: 'panoramaInfo', +// type: 'panorama' +// } +// ] +// //鱼类栖息地 √ +// const FHTabs: Array = [ +// { +// name: '基础信息', +// key: 'basicInfo', +// type: 'basic', +// url: '/bbi/siteBipc/getSiteBasicInfo' +// }, +// { +// name: '水温监测', +// key: 'WaterTemperature', +// type: 'WaterTemperature', +// tabs: [ +// { +// url: '/wmp-env-server/sw/alongDetail/GetKendoListCust', +// name: '水温', +// type: 'WaterTemperature', +// tableUrl: '/wmp-env-server/sw/alongDetail/GetKendoListCust', +// chartType: 'line', +// filter: NormalStcdFilter, +// filterProps: { +// params: { +// ftype: 'WE', +// sttp: 'WT', //WT +// dataDimensionType: 'hyBase', +// dataDimensionVal: 'all' +// } +// } +// } +// ] +// }, +// { +// name: '水质监测', +// key: 'WaterQuality', +// type: 'WaterQuality', +// tabs: [ +// { +// url: '/wmp-env-server/env/wq/data/GetKendoListCust', +// name: '水质', +// type: 'monitor', +// key: 'WaterQuality', +// tableUrl: '/wmp-env-server/env/wq/data/GetKendoListCust', +// chartType: 'lines', +// // chartEvent: { +// // legendselectchanged: (object: any, instance: any) => { +// // const selected = object.selected +// // const options = instance.getOption() +// // if (options.grid instanceof Array) { +// // options.grid = options.grid[0] +// // } +// // if (selected != undefined && options) { +// // let yAxis: any = options.yAxis +// // yAxis.map((item: any, index: number) => { +// // item.show = false +// // for (let i in selected) { +// // if (selected[i] == true && item.name.indexOf(i) !== -1) { +// // item.show = true +// // } +// // } +// // }) +// // options.legend && (options.legend.selected = selected) +// // let offset = 30 +// // let padding = 60 +// // if (options.yAxis && options.yAxis instanceof Array && options.grid && !(options.grid instanceof Array)) { +// // let showYAxis = yAxis.filter((x: any) => { +// // return x.show +// // }) +// // showYAxis.map((yAxis: any, index: number) => { +// // yAxis.position = index % 2 === 0 ? "left" : "right" +// // yAxis.offset = padding * Math.floor(index / 2) +// // if (index >= 4) { +// // yAxis.offset = padding * Math.floor(2 / 2) +// // } +// // }) +// // if (showYAxis.length % 2 === 0) { +// // options.grid.left = (showYAxis.length >= 4 ? 4 : showYAxis.length) * offset +// // options.grid.right = (showYAxis.length >= 4 ? 4 : showYAxis.length) * offset +// // } else { +// // const left = showYAxis.filter((x: any) => x.position === "left") +// // const right = showYAxis.filter((x: any) => x.position === "right") +// // const left_start = left.length ? 0 : 60 +// // const right_start = left.length ? 0 : 60 +// // options.grid.left = left_start + padding * (left.length >= 2 ? 2 : left.length) +// // options.grid.right = right_start + padding * (right.length >= 2 ? 2 : right.length) +// // } +// // } +// // instance.setOption(options, false, true) +// // } +// // } +// // }, +// filter: NormalStcdFilter, +// filterProps: { +// params: { +// ftype: 'WE', +// sttp: 'WQ', +// dataDimensionType: 'hyBase', +// dataDimensionVal: 'all' +// } +// } +// } +// ] +// }, +// { +// name: '流量监测', +// key: 'FlowMeasure', +// type: 'FlowMeasure', +// tabs: [ +// { +// url: '/wmp-eng-server/eng/river/GetKendoListCust', +// name: '流量', +// type: 'monitor', +// tableUrl: '/wmp-eng-server/eng/river/GetKendoListCust', +// chartType: 'line', +// filter: NormalStcdFilter, +// filterProps: { +// params: { +// ftype: 'WE', +// sttp: 'ZQ', +// dataDimensionType: 'hyBase', +// dataDimensionVal: 'all', +// maptype: '2' +// } +// } +// } +// ] +// }, +// { +// name: '实时视频', +// key: 'videoInfo', +// type: 'video', +// url: '/video/dataStcdFrame/getVideoMonitorList' +// } +// // { +// // name: "全景影像", +// // key: "panoramaInfo", +// // type: "panorama" +// // } +// ] +// const ZQTabs: Array = [ +// { +// name: '基础信息', +// key: 'basicInfo', +// type: 'basic', +// url: '/bbi/siteBipc/getSiteBasicInfo' +// }, +// { +// name: '流量监测', +// key: 'FlowMeasure', +// type: 'FlowMeasure', +// tabs: [ +// { +// url: '/wmp-swqx-server/zq/river/GetKendoListCust', +// name: '流量', +// type: 'monitor', +// tableUrl: '/wmp-swqx-server/zq/river/GetKendoListCust', +// chartType: 'line', +// filterProps: { +// params: { +// ftype: 'FHT', +// sttp: 'ZQ', +// dataDimensionType: 'hyBase', +// dataDimensionVal: 'all', +// maptype: '2' +// } +// } +// } +// ] +// } +// ] + +// //水质监测站 √ +// const WQFBTabs: Array = [ +// { +// name: '基础信息', +// key: 'basicInfo', +// type: 'basic', +// url: '/bbi/siteBipc/getSiteBasicInfo' +// }, +// { +// name: '监测数据', +// key: 'WaterQuality', +// type: 'WaterQuality' +// } +// ] +// const WQTabs: Array = [ +// ...WQFBTabs, +// { +// name: '实时视频', +// key: 'videoInfo', +// type: 'video', +// url: '/video/dataStcdFrame/getVideoMonitorList' +// } +// ] +// const WQDTATabs: Array = [ +// { +// name: '基础信息', +// key: 'basicInfo', +// type: 'basic', +// url: '/bbi/siteBipc/getSiteBasicInfo' +// }, +// { +// name: '劣化分析', +// key: 'trend', +// type: 'trend', +// tabs: [ +// { +// name: '', +// type: 'table', +// tableUrl: '/wmp-env-server/env/wq/trend/detail/GetKendoListCust', +// hiddenChart: true, +// hiddenTabs: true, +// filter: NormalDatePickerFilter +// } +// ] +// } +// ] + +// //栖息地流量监测 +// const FLOWTabs: Array = [ +// { +// name: '基础信息', +// key: 'basicInfo', +// type: 'basic', +// url: '/bbi/siteBipc/getSiteBasicInfo' +// }, +// { +// name: '监测数据', +// key: 'FlowMeasure', +// type: 'FlowMeasure' +// } +// ] +// //水温监测站 √ +// const WTTabs: Array = [ +// { +// name: '基础信息', +// key: 'basicInfo', +// type: 'basic', +// url: '/bbi/siteBipc/getSiteBasicInfo' +// }, +// { +// name: '监测数据', +// key: 'WaterTemperature', +// type: 'WaterTemperature' +// }, +// // { +// // name: '出入库水温对比', +// // key: 'WaterTemperatureContrast', +// // type: 'WaterTemperatureContrast', +// // code: 'swjc.tabs.crkswdb', +// // }, +// { +// name: '鱼类繁殖适宜性分析', +// key: 'WaterTemperatureRep', +// type: 'WaterTemperatureRep', +// code: 'swjc.tabs.ylfzsyxfx', +// } +// ] +// //垂向水温 √ +// const WTTabs1: Array = [ +// { +// name: '基础信息', +// key: 'basicInfo', +// type: 'basic', +// url: '/bbi/siteBipc/getSiteBasicInfo' +// }, +// { +// name: '监测数据', +// key: 'VerticalWaterTemperature', +// type: 'VerticalWaterTemperature' +// } +// ] + +// //低温水减缓设施 +// const DWTabs: Array = [ +// { +// name: '基础信息', +// key: 'basicInfo', +// type: 'basic', +// }, +// { +// name: '实时视频', +// key: 'videoInfo', +// type: 'video', +// url: '/video/dataStcdFrame/getVideoMonitorList' +// }, +// { +// name: '监测数据', +// key: 'VerticalWaterTemperature', +// type: 'VerticalWaterTemperature', +// }, +// { +// name: '叠梁门运行AI识别', +// key: 'AIYXSB', +// type: 'AIYXSB', +// } +// ] +// //低温水减缓设施这是旧的 +// const DWTabs2: Array = [ +// { +// name: '基础信息', +// key: 'basicInfo', +// type: 'basic', +// url: '/bbi/siteBipc/getSiteBasicInfo' +// }, +// { +// name: '实时视频', +// key: 'videoInfo', +// type: 'video', +// url: '/video/dataStcdFrame/getVideoMonitorList' +// }, +// { +// name: '监测数据', +// key: 'DWNormal', +// type: 'DWNormal', +// tabs: [ +// { +// name: '', +// type: 'DWNormal', +// tableUrl: '/env/dw/dwJcsjListGet', +// hiddenChart: true, +// hiddenTabs: true, +// filter: NormalDatePickerFilter, +// filterProps: { +// params: { +// // stcd: "0086601073SZ003524" +// } +// } +// } +// ] +// } +// ] +// //调查断面 +// const WETabs: Array = [ +// { +// name: '基础信息', +// key: 'basicInfo', +// type: 'basic', +// url: '/bbi/siteBipc/getSiteBasicInfo' +// }, +// { +// name: '监测数据', +// key: 'Ecology', +// type: 'Ecology', +// tabs: [ +// { +// name: '调查鱼类', +// type: 'table', +// key: 'weFish', +// tableUrl: getUrl('/wmp-env-server/env/we/fisht/GetKendoListCust'), +// hiddenChart: true, +// filter: NormalWEFilter, +// filterProps: { +// params: { ftype: 'WE' } +// } +// }, +// { +// name: '水温(℃)', +// type: 'table', +// tableUrl: '/wmp-env-server/we/wewtr/GetKendoListCust', +// key: 'weWaterTemp', +// hiddenChart: true, +// filter: NormalWEFilter, +// filterProps: { +// params: { ftype: 'WE' } +// } +// }, +// { +// name: '水质', +// type: 'table', +// tableUrl: '/wmp-env-server/we/wewqr/GetKendoListCust', +// key: 'weWaterQuality', +// hiddenChart: true, +// filter: NormalWEFilter, +// filterProps: { +// params: { ftype: 'WE' } +// } +// }, +// { +// name: '流速(m/s)', +// type: 'table', +// key: 'weFlowVelocity', +// tableUrl: '/wmp-env-server/env/we/fvR/GetKendoListCust', +// hiddenChart: true, +// filter: NormalWEFilter, +// filterProps: { +// params: { ftype: 'WE' } +// } +// } +// ] +// } +// ] + +// //电站告警 +// const DZGJ: Array = [ +// { +// name: '基础信息', +// key: 'basicInfo', +// type: 'basic', +// url: '/bbi/siteBipc/getSiteBasicInfo' +// }, +// { +// name: '监测数据', +// key: 'DZGJ', +// type: 'DZGJ', +// tabs: [ +// { +// name: '生态流量', +// type: 'table', +// key: 'STLL', +// filter: Session.getAppCode() == 'hbb' ? NormalYearPickerFilter : NormalDatePickerFilter, +// tableUrl: '/wmp-env-server/env/warn/detail/GetKendoListCust', +// hiddenChart: true, +// filterProps: { +// params: { ftype: 'WE' } +// } +// }, +// { +// name: '水位', +// type: 'table', +// key: 'SW', +// filter: Session.getAppCode() == 'hbb' ? NormalYearPickerFilter : NormalDatePickerFilter, +// tableUrl: '/wmp-env-server/env/warn/detail/GetKendoListCust', +// hiddenChart: true, +// filterProps: { +// params: { ftype: 'WE' } +// } +// }, +// { +// name: '水质', +// type: 'table', +// key: 'SZ', +// filter: Session.getAppCode() == 'hbb' ? NormalYearPickerFilter : NormalDatePickerFilter, +// tableUrl: '/wmp-env-server/env/wqWar/GetKendoListCust', +// hiddenChart: true, +// filterProps: { +// params: { ftype: 'WE' } +// } +// }, +// { +// name: '河道水温', +// type: 'table', +// key: 'HDSW', +// filter: Session.getAppCode() == 'hbb' ? NormalYearPickerFilter : NormalDatePickerFilter, +// tableUrl: '/wmp-env-server/env/warn/detail/GetKendoListCust', +// hiddenChart: true, +// filterProps: { +// params: { ftype: 'WE' } +// } +// } +// ] +// } +// ] + +// //珍稀植物园 +// const VPTabs: Array = [ +// { +// name: '基础信息', +// key: 'basicInfo', +// type: 'basic', +// url: '/bbi/siteBipc/getSiteBasicInfo' +// }, +// { +// name: '实时视频', +// key: 'videoInfo', +// type: 'video', +// url: '/video/dataStcdFrame/getVideoMonitorList' +// }, +// // { +// // name: "全景影像", +// // key: "panoramaInfo", +// // type: "panorama", +// // code: "zxzwy.tabs.qjyx" +// // }, +// { +// name: '运行数据', +// key: 'NormalDataMonitoring2', +// type: 'NormalDataMonitoring2', +// tabs: [ +// { +// name: '', +// type: 'table', +// tableUrl: '/evnInvestigation/getRareBotanicalGardenTable', +// hiddenChart: true, +// hiddenTabs: true, +// filter: NormalYearPickerFilter, +// filterProps: { +// params: {} +// } +// } +// ] +// } +// // { +// // name: "浇水养护", +// // key: "FishSystemRunState", //Normal1 +// // type: "FishSystemRunState", //Normal +// // tabs: [] +// // }, +// // { +// // name: "违规放牧", +// // key: "FishSystemRunState", //Normal1 +// // type: "FishSystemRunState", //Normal +// // tabs: [] +// // } +// ] +// //视频站 +// const videoTabs: Array = [ +// { +// name: '基础信息', +// key: 'basicInfo', +// type: 'basic', +// url: '/bbi/siteBipc/getSiteBasicInfo' +// }, +// { +// name: '实时视频', +// key: 'videoInfo', +// type: 'video', +// url: '/video/dataStcdFrame/getVideoMonitorList' +// } +// ] +// //视频站 +// const noLiveVideoTabs: Array = [ +// { +// name: '基础信息', +// key: 'basicInfo', +// type: 'basic', +// url: '/bbi/siteBipc/getSiteBasicInfo' +// }, +// { +// name: '录像视频', +// key: 'videoInfo', +// type: 'noLiveVideo', +// url: '/video/dataStcdFrame/getVideoMonitorList' +// } +// ] +// //动物救助站 +// const VATabs: Array = [ +// { +// name: '基础信息', +// key: 'basicInfo', +// type: 'basic', +// url: '/bbi/siteBipc/getSiteBasicInfo' +// }, +// { +// name: '实时视频', +// key: 'videoInfo', +// type: 'video', +// url: '/video/dataStcdFrame/getVideoMonitorList' +// }, +// { +// name: '监测数据', +// key: 'Normal', +// type: 'NormalDataMonitoring', +// tabs: [ +// { +// name: '', +// type: 'table', +// tableUrl: '/engdbute/vaTable', +// hiddenChart: true, +// hiddenTabs: true, +// filter: NormalDatePickerFilter, +// filterProps: { +// params: {} +// } +// } +// ] +// } +// ] + +// // //河道水情站 +// // const hdsqz: Array = [ +// // { +// // name: "基础信息", +// // key: "basicInfo", +// // type: "basic", +// // url: "/bbi/siteBipc/getSiteBasicInfo" +// // }, +// // { +// // name: "监测数据", +// // key: "monitorInfo", +// // type: "tabsWithTwo" +// // } +// // ] + +// // //视频监控站 +// // const spjkz: Array = [ +// // { +// // name: "基础信息", +// // key: "basicInfo", +// // type: "basic", +// // url: "/bbi/siteBipc/getSiteBasicInfo" +// // }, +// // { +// // name: "实时视频", +// // key: "videoInfo", +// // type: "video", +// // url: "/video/dataStcdFrame/getVideoMonitorList" +// // } +// // ] + +// //其他配置 +// const CommonTabs: any = [ +// { +// name: '基础信息', +// key: 'basicInfo', +// type: 'basic', +// url: '/bbi/siteBipc/getSiteBasicInfo' +// } +// ] + +// // 气象站 +// const WeatherTabs: any = [ +// { +// name: '基础信息', +// key: 'basicInfo', +// type: 'basic', +// url: '/bbi/siteBipc/getSiteBasicInfo' +// } +// ] + +// const WaterQualityMonitoring: any = [ +// { +// name: '基础信息', +// key: 'basicInfo', +// type: 'basic', +// url: '/bbi/siteBipc/getSiteBasicInfo' +// }, +// { +// name: '告警数据', +// key: 'Monitoring', +// type: 'Monitoring', +// url: '/wmp-env-server/env/warn/stcd/detail/GetKendoListCust' +// } +// ] + +// const AIPrediction: any = [ +// { +// name: '基础信息', +// key: 'basicInfo', +// type: 'basic', +// url: '/bbi/siteBipc/getSiteBasicInfo' +// }, +// { +// name: '监测数据', +// key: 'WaterQuality', +// type: 'WaterQuality' +// }, +// { +// name: 'AI预测', +// key: 'AI', +// type: 'AI' +// } +// ] +// const AIbasic: any = [ +// { +// name: '基础信息', +// key: 'basicInfo', +// type: 'basic', +// url: '/bbi/siteBipc/getSiteBasicInfo' +// } +// ] + +// //mway : 1-是人工 , 2-是自动 dtinType: 0-自建 1-国家 2-人工 +// const handleTabs = (modaldata: any) => { +// console.log('modaldata', modaldata) +// if (!modaldata?.sttp) return +// let sttp = modaldata?.sttp ? modaldata?.sttp.toUpperCase() : '' +// switch (sttp) { +// case 'ENG': +// if (modaldata?.eqtp == 'QEC') { +// const { page } = Utility.parseQueryString() +// if (page == 'shengTaiLiuLiangManZuQingKuangJiangJu') { +// return ENGEQTabsJuangJu +// } else { +// return ENGEQTabs +// } +// } else { +// return Session.getAppCode() === 'hbb' ? ENGTabs.filter((e) => e.name !== '阶段属性') : ENGTabs +// } +// case 'ENG_ALARM': +// return DZGJ +// case 'EQ': +// return EQTabs +// case 'DW': +// case 'DW_1': +// case 'DW_2': +// case 'DW_3': +// case 'DW_4': +// case 'DW_5': +// return DWTabs +// case 'FP': //todo,后续再删除多余代码 +// case 'FP_1': //todo,后续再删除多余代码 +// // case "FP_2": //todo,后续再删除多余代码 +// case 'FP_3': //todo,后续再删除多余代码 +// case 'FP_4': //todo,后续再删除多余代码 +// // case "FP_5": //todo,后续再删除多余代码 +// if (Session.getAppCode() === 'hbb') { +// // mway为2的时侯显示在线监测数据 +// if (modaldata.bldsttCcode == '1' || modaldata.bldsttCcode == '0' || modaldata.bldstt == '1' || modaldata.bldstt == '0') { +// return [ +// ...FPTabs1 //建设情况 +// ] +// } else { +// if (modaldata.mway != 2) { +// return FPTabs.filter((item) => item.name !== '在线监测数据') +// } else { +// return [ +// ...FPTabs //有监测数据 +// ] +// } +// } +// } else { +// if (modaldata.bldsttCcode == '1' || modaldata.bldsttCcode == '0' || modaldata.bldstt == '1' || modaldata.bldstt == '0') { +// return [ +// ...FPTabs1 +// // { +// // name: "系统运行记录", +// // key: "FishSystemRunState", //Normal1 +// // type: "FishSystemRunState", //Normal +// // tabs: [] +// // } +// ] +// } else { +// return [ +// ...FPTabs +// // { +// // name: "系统运行记录", +// // key: "FishSystemRunState", //Normal1 +// // type: "FishSystemRunState", //Normal +// // tabs: [] +// // } +// ] +// } +// } +// case 'FP_2': //todo,后续再删除多余代码 +// case 'FP_5': //todo,后续再删除多余代码 +// if (modaldata.bldsttCcode == '1' || modaldata.bldsttCcode == '0' || modaldata.bldstt == '1' || modaldata.bldstt == '0') { +// return FPTabs1 +// } else { +// return FPTabs +// } +// case 'ZQ': +// return ZQTabs +// case 'FB': +// if (modaldata.bldstt == '1' || modaldata.bldstt == '0') { +// return FBTabs1 +// } else { +// return FBTabs +// } +// case 'FH': +// return FHTabs +// case 'VD_FB': +// case 'VD_FP': +// case 'VD_SG': +// case 'VD_VP': +// case 'VD_EQ': +// case 'VD_DW': +// case 'VD_FH': +// case 'VD_OTWE': +// case 'VD_OTTE': +// case 'VD_FBP': +// case 'VD_FC': +// case 'VD_WQ': +// case 'VD_TE': +// case 'VD_WE': +// case 'VD_EQS': +// case 'VD_WT': +// case 'VD_FBFM': +// case 'VD_FBI': +// case 'VD_PR': +// case 'VD_FPB': +// case 'VD_GZFC': +// case 'VD_FPC': +// case 'VD_VA': +// case 'VD': +// return videoTabs +// case 'VD_SN': +// case 'VD_WVD': +// return noLiveVideoTabs +// case 'VP': +// return VPTabs +// case 'VA': +// return VATabs +// case 'WQFB': +// return WQFBTabs +// case 'WQ': +// const _tabs = [...WQTabs] +// if (modaldata?.dtinType == 2 || modaldata?.dtinType == 1) _tabs.splice(2, 1)//国家站 人工站把视频tab去除 +// return _tabs +// case 'WQDTA': +// return WQDTATabs +// case 'LL': +// return FLOWTabs +// case 'WT': +// case 'WTRV': +// if (modaldata.enfc == '1') { +// return WTTabs1 +// } else { +// return WTTabs +// } +// case 'WE': +// return WETabs +// case 'MM': +// return WeatherTabs +// case 'WARN': +// return WaterQualityMonitoring +// case 'AI': +// return AIPrediction +// case 'AI_Basic': +// return AIbasic +// default: +// return CommonTabs +// } +// } + +// const modalTabSetting = { +// footer: false, +// width: '90vw', +// bodyStyle: { minHeight: '600px', overflowX: 'auto' }, +// wrapClassName: 'no-padding custom-models', +// destroyOnClose: true, +// className: 'map-tabs' +// } + +// const modalTabSettingLy = { +// footer: false, +// // width: "90vw", +// // bodyStyle: { minHeight: "600px" }, +// wrapClassName: 'no-padding custom-models', +// destroyOnClose: true, +// className: 'map-tabs' +// } + +// export { ENGTabs, DWTabs, WQTabs, FLOWTabs, EQTabs, FBTabs, WETabs, FPTabs, VPTabs, FHTabs, WTTabs, VATabs, WTTabs1, handleTabs, modalTabSetting, modalTabSettingLy } diff --git a/frontend/src/utils/request.ts b/frontend/src/utils/request.ts index 8fdbd6d..7df9af0 100644 --- a/frontend/src/utils/request.ts +++ b/frontend/src/utils/request.ts @@ -2,11 +2,12 @@ import axios from 'axios'; import { message, Modal } from 'ant-design-vue'; import { getToken } from '@/utils/auth'; import { useUserStoreHook } from '@/store/modules/user'; +import router from '@/router'; // 创建 axios 实例 const service = axios.create({ baseURL: import.meta.env.VITE_APP_BASE_API, - timeout: 100000, + timeout: 300000, // 5分钟 headers: { 'Content-Type': 'application/json;charset=utf-8' } }); @@ -63,6 +64,7 @@ service.interceptors.response.use( cancelButtonProps: { disabled: false }, onOk: () => { localStorage.clear(); + router.push('/login'); window.location.href = '/'; }, }); diff --git a/frontend/src/views/login-sjtb/index.vue b/frontend/src/views/login-sjtb/index.vue index c6d8a74..2bb706a 100644 --- a/frontend/src/views/login-sjtb/index.vue +++ b/frontend/src/views/login-sjtb/index.vue @@ -114,13 +114,14 @@ 登录 - 记住密码 + 忘记密码 - - 注册 + 用户注册 @@ -188,6 +189,7 @@ import { UserOutlined, LockOutlined, MobileOutlined } from "@ant-design/icons-vu import { getCaptcha, sendSmsCode, smsLoginApi, resetPassword } from "@/api/auth"; import { message } from "ant-design-vue"; import { setToken } from "@/utils/auth"; +import Cookies from "js-cookie"; // 组件依赖 import router from "@/router"; @@ -367,10 +369,19 @@ function onFinish() { if (user.password !== state.cookiePass) { user.password = encrypt(user.password); } - console.log(user); userStore .login(user) .then(() => { + if (remember.value == true) { + Cookies.set('username', user.username, { expires: 30 }); + Cookies.set('password', user.password, { expires: 30 }); + Cookies.set('rememberMe', String(remember.value), { expires: 30 }); + } else { + // 如果用户取消勾选记住密码,应该移除 cookie + Cookies.remove('username'); + Cookies.remove('password'); + Cookies.remove('rememberMe'); + } router.push({ path: "/" }); state.loading = false; message.success("登录成功"); @@ -492,6 +503,22 @@ function getOtherQuery(query: any) { return acc; }, {}); } +function getCookie() { + const username = Cookies.get("username"); + let password = Cookies.get("password"); + const rememberMe = Cookies.get("rememberMe"); + rememberMe == "true" ? (remember.value = Boolean(rememberMe)) : false; + // 保存cookie里面的加密后的密码 + state.cookiePass = password === undefined ? "" : password; + password = password === undefined ? state.loginData.password : password; + state.loginData = { + username: username === undefined ? state.loginData.username : username, + password: decrypt(password), + code: "", + uuid: "", + }; + remember.value = rememberMe === undefined ? false : Boolean(rememberMe); +} function getCode() { getCaptcha().then((result: any) => { codeUrl.value = result.data.img; @@ -736,6 +763,7 @@ const handleResetPassword = async () => { onMounted(() => { getCode(); + getCookie(); }); diff --git a/frontend/src/views/shuJuTianBao/guoYuSheShiShuJuTianBao/guoYuSheShiShuJuTianBaoForm.vue b/frontend/src/views/shuJuTianBao/guoYuSheShiShuJuTianBao/guoYuSheShiShuJuTianBaoForm.vue index c60967f..886060b 100644 --- a/frontend/src/views/shuJuTianBao/guoYuSheShiShuJuTianBao/guoYuSheShiShuJuTianBaoForm.vue +++ b/frontend/src/views/shuJuTianBao/guoYuSheShiShuJuTianBao/guoYuSheShiShuJuTianBaoForm.vue @@ -268,7 +268,7 @@ v-if="!isView" v-model:file-list="videoFileList" list-type="text" - :multiple="false" + :multiple="true" accept=".mp4" :before-upload="beforeVideoUpload" @preview="handleVideoPreview" @@ -566,7 +566,14 @@ const handleImageRemove = (file: any) => { // 移除视频 const handleVideoRemove = (file: any) => { - videoFileList.value = []; + // 找到该文件在列表中的索引 + const index = videoFileList.value.indexOf(file); + if (index > -1) { + // 创建新数组并移除该项 + const newFileList = videoFileList.value.slice(); + newFileList.splice(index, 1); + videoFileList.value = newFileList; + } }; // 1. 定义一个初始化表单的函数 const initForm = () => { diff --git a/frontend/src/views/shuJuTianBao/guoYuSheShiShuJuTianBao/guoYuSheShiShuJuTianBaoSearch.vue b/frontend/src/views/shuJuTianBao/guoYuSheShiShuJuTianBao/guoYuSheShiShuJuTianBaoSearch.vue index a3bb5d5..32b4a68 100644 --- a/frontend/src/views/shuJuTianBao/guoYuSheShiShuJuTianBao/guoYuSheShiShuJuTianBaoSearch.vue +++ b/frontend/src/views/shuJuTianBao/guoYuSheShiShuJuTianBao/guoYuSheShiShuJuTianBaoSearch.vue @@ -62,7 +62,9 @@ --> - 鱼种类字典数据下载 + + 鱼种类字典数据下载 + diff --git a/frontend/src/views/shuJuTianBao/shengPiJiLu/index.vue b/frontend/src/views/shuJuTianBao/shengPiJiLu/index.vue index a83a554..64c58e8 100644 --- a/frontend/src/views/shuJuTianBao/shengPiJiLu/index.vue +++ b/frontend/src/views/shuJuTianBao/shengPiJiLu/index.vue @@ -159,7 +159,7 @@ {{ selectedRows.length }} 条 - + @@ -668,6 +668,9 @@ const handleShowApprovalLog = (record: any) => { dataType: "string", value: record.id, } + ], + sort:[ + { field: "operateTime", order: "desc" } ] }; approvalLogTableRef.value?.getList(filter); @@ -835,10 +838,10 @@ const handleBatchApprove = () => { // 确认批量审批 const handleBatchApproveConfirm = async () => { // 验证审批意见 - if (!batchApproveForm.value.approveComment || batchApproveForm.value.approveComment.trim() === '') { - message.warning('请填写审批意见'); - return; - } + // if (!batchApproveForm.value.approveComment || batchApproveForm.value.approveComment.trim() === '') { + // message.warning('请填写审批意见'); + // return; + // } // 检查是否有已通过的记录 const hasApprovedRecord = selectedRows.value.some(row => row.status != 'PENDING');