From d6ef2e34956d8837ebcb7a2e7eef9da7d8ff21cb Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E7=8E=8B=E5=85=B4=E5=87=AF?= <2448379534@qq.com> Date: Fri, 31 Jul 2026 11:13:49 +0800 Subject: [PATCH] =?UTF-8?q?=E7=94=B5=E7=AB=99=E4=B8=93=E9=A2=98-=E5=88=9D?= =?UTF-8?q?=E7=89=88?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- frontend-sjgl/.env.development | 4 +- .../src/components/gis/map.cesium.ts | 2 +- .../BasicData/DeleteConfirmModal.vue | 115 ++ .../BasicData/CustomColumnModal.vue | 2 +- .../BasicData/EditPowerModal.vue | 17 +- .../BasicData/index.vue | 3 +- .../zengZhiFangLiu/index.vue | 2 +- .../src/views/monitorData/Export/index.vue | 7 +- .../src/views/monitorData/FishData/index.vue | 7 +- .../views/monitorData/FishRelease/index.vue | 7 +- frontend/.env.development | 4 + frontend/.env.production | 2 + frontend/src/api/ZXZWYYunXingShuJu/index.ts | 47 + frontend/src/api/dianZhanZhuanTi/index.ts | 154 ++ frontend/src/api/system/alertRules/index.ts | 90 +- frontend/src/api/video/index.ts | 25 + frontend/src/assets/icons/arrowDownLine2.svg | 27 + frontend/src/assets/icons/fishStation2.svg | 34 + .../components/BaseLayerSwitcher/index.vue | 11 + .../src/components/SidePanelItem/index.vue | 3 +- frontend/src/components/gis/gisUtils.ts | 179 +-- frontend/src/components/gis/map.cesium.ts | 2 +- .../src/components/mapController/index.vue | 2 +- frontend/src/components/mapLegend/index.vue | 2 +- .../modules/EnvironmentalQuality/index.vue | 13 +- .../chuixiangshuiwenChangeMod/index.vue | 9 +- frontend/src/modules/huanbaoMod/index.vue | 9 +- .../modules/lushengshengtaijiance/index.vue | 9 +- .../src/modules/map/stores/map-view.store.ts | 7 + .../modules/qixidishuiwenbianhua/index.vue | 8 +- .../src/modules/shengtaidabiaoMod/index.vue | 8 +- .../modules/shuishengshengtaijiance/index.vue | 8 +- frontend/src/modules/waterQuality/index.vue | 8 +- .../modules/zengzhizhanyunxingsjtj/index.vue | 8 +- .../BasicData/CustomColumnModal.vue | 2 +- .../BasicData/index.vue | 2 +- .../components/monitorData/FishData/index.vue | 4 +- .../components/DZSheHuiTouZiFP.vue | 161 +++ .../components/DZShuiDianZhanSPJK.vue | 498 +++++++ .../components/EcologicalFlow.vue | 299 ++++ .../PowerStationReleasetaStisticsDetail.vue | 381 +++++ .../components/ShuiDianZhanJieShao.vue | 280 ++++ .../components/ZXZWYYunXingShuJu.vue | 464 ++++++ .../ZenZhiZhanYunXingDetailModal.vue | 292 ++++ .../components/ZenZhiZhanYunXingPG.vue | 600 ++++++++ .../dianZhanZhuanTi/components/arrowUpLg.svg | 32 + .../powerStationReleasetaStistics.vue | 445 ++++++ .../views/dianZhanZhuanTi/dianZhanZhuanTi.vue | 382 ++++- .../dianZhanZhuanTi/layoutGridSkeletons.ts | 133 ++ .../src/views/dianZhanZhuanTi/moduleMap.ts | 120 ++ .../ConfigManagement/ConfigManagementForm.vue | 1239 ++++++++--------- .../ConfigManagementSearch.vue | 62 +- .../components/ConfigManagement/index.vue | 141 +- .../RulesManagement/LayerManagementForm.vue | 258 ++-- .../RulesManagement/LayerManagementSearch.vue | 2 +- .../components/RulesManagement/index.vue | 64 +- frontend/src/views/system/dict/index.vue | 18 +- 57 files changed, 5673 insertions(+), 1041 deletions(-) create mode 100644 frontend-sjgl/src/views/DataQueryMenuModule/components/conventionalHydropower/BasicData/DeleteConfirmModal.vue create mode 100644 frontend/src/api/ZXZWYYunXingShuJu/index.ts create mode 100644 frontend/src/api/dianZhanZhuanTi/index.ts create mode 100644 frontend/src/api/video/index.ts create mode 100644 frontend/src/assets/icons/arrowDownLine2.svg create mode 100644 frontend/src/assets/icons/fishStation2.svg create mode 100644 frontend/src/views/dianZhanZhuanTi/components/DZSheHuiTouZiFP.vue create mode 100644 frontend/src/views/dianZhanZhuanTi/components/DZShuiDianZhanSPJK.vue create mode 100644 frontend/src/views/dianZhanZhuanTi/components/EcologicalFlow.vue create mode 100644 frontend/src/views/dianZhanZhuanTi/components/PowerStationReleasetaStisticsDetail.vue create mode 100644 frontend/src/views/dianZhanZhuanTi/components/ShuiDianZhanJieShao.vue create mode 100644 frontend/src/views/dianZhanZhuanTi/components/ZXZWYYunXingShuJu.vue create mode 100644 frontend/src/views/dianZhanZhuanTi/components/ZenZhiZhanYunXingDetailModal.vue create mode 100644 frontend/src/views/dianZhanZhuanTi/components/ZenZhiZhanYunXingPG.vue create mode 100644 frontend/src/views/dianZhanZhuanTi/components/arrowUpLg.svg create mode 100644 frontend/src/views/dianZhanZhuanTi/components/powerStationReleasetaStistics.vue create mode 100644 frontend/src/views/dianZhanZhuanTi/layoutGridSkeletons.ts create mode 100644 frontend/src/views/dianZhanZhuanTi/moduleMap.ts diff --git a/frontend-sjgl/.env.development b/frontend-sjgl/.env.development index baea33a7..b6467690 100644 --- a/frontend-sjgl/.env.development +++ b/frontend-sjgl/.env.development @@ -11,9 +11,9 @@ VITE_APP_BASE_URL = 'http://localhost:8093' # 测试环境 # VITE_APP_BASE_URL = 'http://172.16.21.142:8093' # 汤伟 -VITE_APP_BASE_URL = 'http://10.84.111.235:8093' +# VITE_APP_BASE_URL = 'http://10.84.111.235:8093' # 李林 -# VITE_APP_BASE_URL = 'http://10.84.111.25:8093' +VITE_APP_BASE_URL = 'http://10.84.111.25:8093' ## 开发环境 附件服务地址 VITE_APP_ATTACHMENT_URL = 'https://211.99.26.225:12125' diff --git a/frontend-sjgl/src/components/gis/map.cesium.ts b/frontend-sjgl/src/components/gis/map.cesium.ts index 73ae8be7..51f76b20 100644 --- a/frontend-sjgl/src/components/gis/map.cesium.ts +++ b/frontend-sjgl/src/components/gis/map.cesium.ts @@ -109,7 +109,7 @@ export class MapCesium implements MapInterface { this.containerId = container.id; this.containerElement = container; this.showLoadingOverlay(container); - const token = 'bearer fa8aa37c-1e52-4631-a699-625b4147ace8'; + const token = 'bearer b734a443-2c8f-4f4a-8698-44828cc5f709'; this.viewer = new Cesium.Viewer(container, { animation: false, diff --git a/frontend-sjgl/src/views/DataQueryMenuModule/components/conventionalHydropower/BasicData/DeleteConfirmModal.vue b/frontend-sjgl/src/views/DataQueryMenuModule/components/conventionalHydropower/BasicData/DeleteConfirmModal.vue new file mode 100644 index 00000000..f47acd92 --- /dev/null +++ b/frontend-sjgl/src/views/DataQueryMenuModule/components/conventionalHydropower/BasicData/DeleteConfirmModal.vue @@ -0,0 +1,115 @@ + + + diff --git a/frontend-sjgl/src/views/conventionalHydropower/BasicData/CustomColumnModal.vue b/frontend-sjgl/src/views/conventionalHydropower/BasicData/CustomColumnModal.vue index e2df4685..14922394 100644 --- a/frontend-sjgl/src/views/conventionalHydropower/BasicData/CustomColumnModal.vue +++ b/frontend-sjgl/src/views/conventionalHydropower/BasicData/CustomColumnModal.vue @@ -103,7 +103,7 @@ const buildGroupedColumns = () => { const groupMap = new Map(); // 过滤掉 defaultConfig: true 的项(兼容字符串类型) - const filteredList = props.userColumnList.filter(item => item.defaultConfig !== true); + const filteredList = props.userColumnList.filter(item => item.enable == 1); // 按 groupType 分组 for (const item of filteredList) { diff --git a/frontend-sjgl/src/views/conventionalHydropower/BasicData/EditPowerModal.vue b/frontend-sjgl/src/views/conventionalHydropower/BasicData/EditPowerModal.vue index 20e5acd8..5f3cfd79 100644 --- a/frontend-sjgl/src/views/conventionalHydropower/BasicData/EditPowerModal.vue +++ b/frontend-sjgl/src/views/conventionalHydropower/BasicData/EditPowerModal.vue @@ -19,6 +19,16 @@
概述
+ + + + + ({}); const originalRecord = ref({}); -const formRules = ref({ +const formRules = computed(() => ({ + stcd: props.isAdd + ? [{ required: true, message: '请输入电站编码', trigger: 'blur' }] + : [], ennm: [{ required: true, message: '请输入电站名称', trigger: 'blur' }], baseId: [{ required: true, message: '请选择基地', trigger: 'change' }], reachcd: [{ required: true, message: '请选择所在河段', trigger: 'change' }] -}); +})); // 确认弹框状态 const confirmModalVisible = ref(false); diff --git a/frontend-sjgl/src/views/conventionalHydropower/BasicData/index.vue b/frontend-sjgl/src/views/conventionalHydropower/BasicData/index.vue index 7c27f061..45a6c3ba 100644 --- a/frontend-sjgl/src/views/conventionalHydropower/BasicData/index.vue +++ b/frontend-sjgl/src/views/conventionalHydropower/BasicData/index.vue @@ -60,6 +60,7 @@ { // 根据 API 数据动态构建表格列,按 orderIndex 排序,只保留 checked 为 1 的列 const sorted = [...list] - .filter((item: any) => item.checked === 1 && item.defaultConfig !== true) + .filter((item: any) => item.checked === 1 && item.enable == 1) .sort((a: any, b: any) => a.orderIndex - b.orderIndex); const cols = sorted.map((item: any) => { diff --git a/frontend-sjgl/src/views/conventionalHydropower/zengZhiFangLiu/index.vue b/frontend-sjgl/src/views/conventionalHydropower/zengZhiFangLiu/index.vue index c5344a0e..0cd374a7 100644 --- a/frontend-sjgl/src/views/conventionalHydropower/zengZhiFangLiu/index.vue +++ b/frontend-sjgl/src/views/conventionalHydropower/zengZhiFangLiu/index.vue @@ -42,7 +42,7 @@ const columns = ref([ { key: 'baseName', title: '水电基地', dataIndex: 'baseName', visible: true, width: 120, ellipsis: true }, { key: 'ennm', title: '所属电站', dataIndex: 'ennm', visible: true, width: 100, ellipsis: true }, - { key: 'zzfldxName', title: '放流对象', dataIndex: 'zzfldxName', visible: true, width: 120, ellipsis: true }, + { key: 'zzfldx', title: '放流对象', dataIndex: 'zzfldx', visible: true, width: 120, ellipsis: true }, { key: 'zzflcnt', title: '放流规模(尾)', dataIndex: 'zzflcnt', visible: true, width: 120 }, { key: 'zzflbjfs', title: '标记方式', dataIndex: 'zzflbjfs', visible: true, width: 100, ellipsis: true }, diff --git a/frontend-sjgl/src/views/monitorData/Export/index.vue b/frontend-sjgl/src/views/monitorData/Export/index.vue index 248776ee..cb73f4cd 100644 --- a/frontend-sjgl/src/views/monitorData/Export/index.vue +++ b/frontend-sjgl/src/views/monitorData/Export/index.vue @@ -1,5 +1,5 @@ - + diff --git a/frontend/src/views/system/alertRules/components/ConfigManagement/index.vue b/frontend/src/views/system/alertRules/components/ConfigManagement/index.vue index 6170d007..2f4ad3e4 100644 --- a/frontend/src/views/system/alertRules/components/ConfigManagement/index.vue +++ b/frontend/src/views/system/alertRules/components/ConfigManagement/index.vue @@ -1,9 +1,10 @@ - + @@ -51,13 +54,11 @@ import ConfigManagementSearch from './ConfigManagementSearch.vue'; import ConfigManagementForm from './ConfigManagementForm.vue'; import { message, Modal } from 'ant-design-vue'; import { - getAllConfigTree, - deleteBaseWbsb, - saveBaseWbsb -} from '@/api/system/map/ConfigManagement'; + bindGetKendoList, + warnruleAddOrUpdate, + warnruleBindDelete +} from '@/api/system/alertRules'; -// 表格实例 -const basicTable = ref(null); // 表格列配置 const columns = [ { @@ -69,32 +70,24 @@ const columns = [ customRender: ({ text, record, index }) => index + 1 }, { - title: '沿程配置名称', - dataIndex: 'name', - key: 'name', - width: 150 + title: '预警名称', + dataIndex: 'ruleName', + key: 'ruleName' }, { - title: '配置编码', - key: 'code', - dataIndex: 'code', - width: 120 + title: '预警类型', + dataIndex: 'ruleTypeName', + key: 'ruleTypeName' }, { - title: '所在河段', - dataIndex: 'rvnm', - key: 'rvnm', - ellipsis: true + title: '规则类型', + dataIndex: 'ruleTypeName', + key: 'ruleTypeName' }, { title: '创建人', - key: 'recordUser', - dataIndex: 'recordUser' - }, - { - title: '创建时间', - key: 'recordTime', - dataIndex: 'recordTime', + key: 'recordUserName', + dataIndex: 'recordUserName', width: 150 }, { @@ -105,9 +98,8 @@ const columns = [ }, { title: '备注', - dataIndex: 'remark', - key: 'remark', - width: 360 + key: 'description', + dataIndex: 'description' }, { title: '操作', @@ -118,13 +110,15 @@ const columns = [ } ]; +// 表格实例 +const basicTable = ref(null); // 搜索参数 const searchParams = ref({}); // 编辑弹窗数据 const currentRecord = ref(null); const editModalVisible = ref(false); -// 新增处理 +// 添加处理 const handleAdd = () => { currentRecord.value = null; editModalVisible.value = true; @@ -144,11 +138,11 @@ const handleDelete = (record: any) => { zIndex: 2002, onOk: async () => { try { - let res = await deleteBaseWbsb([record.id]); - message.success('删除成功'); + let res: any = await warnruleBindDelete({ id: record.bindId }); + if (res.code == 0) message.success('删除成功'); basicTable.value.refresh(); } catch (error) { - message.error('删除失败'); + return; } } @@ -160,20 +154,26 @@ const onSearchFinish = (values: any) => { const params = { logic: 'and', filters: [ - values.parentId + { + field: 'ruleCode', + operator: 'in', + dataType: 'string', + value: ['common', 'custom'] + }, + values.ruleName ? { - field: 'parentId', - operator: 'eq', - dataType: 'string', - value: values.parentId - } - : null, - values.name - ? { - field: 'name', + field: 'ruleName', operator: 'contains', dataType: 'string', - value: values.name + value: values.ruleName + } + : null, + values.ruleType + ? { + field: 'ruleType', + operator: 'contains', + dataType: 'string', + value: values.ruleType } : null ].filter(Boolean) @@ -183,9 +183,11 @@ const onSearchFinish = (values: any) => { // 重置 const handleReset = () => { - basicTable.value.getList({ - logic: 'and', - filters: [] + nextTick(() => { + basicTable.value.getList({ + logic: 'and', + filters: [] + }); }); }; @@ -198,22 +200,25 @@ const editModalCancel = () => { // 表单提交 const handleEditSubmit = async (values: any) => { try { - let res = await saveBaseWbsb({ - ...currentRecord.value, - ...values - }); - message.success(`保存成功`); + let res:any = await warnruleAddOrUpdate(values); + if(res.code == 0) message.success(`保存成功`); editModalVisible.value = false; basicTable.value.refresh(); } catch (error) { - message.error(`保存失败`); + editModalVisible.value = false; return; } }; - +const riverOptions = ref([ + { value: 'RZ_RULE', label: '水位' }, + { value: 'QGC_RULE', label: '生态流量' }, + { value: 'WT_RULE', label: '水温' }, + { value: 'WQ_RULE', label: '水质' } +]); +const riverOptionsLoad = ref(false); const initOption = () => {}; onMounted(() => { initOption(); @@ -221,8 +226,22 @@ onMounted(() => { diff --git a/frontend/src/views/system/alertRules/components/RulesManagement/LayerManagementForm.vue b/frontend/src/views/system/alertRules/components/RulesManagement/LayerManagementForm.vue index 286aa218..b7a15c91 100644 --- a/frontend/src/views/system/alertRules/components/RulesManagement/LayerManagementForm.vue +++ b/frontend/src/views/system/alertRules/components/RulesManagement/LayerManagementForm.vue @@ -1,6 +1,6 @@