diff --git a/frontend/src/api/mapModal/rightModel.ts b/frontend/src/api/mapModal/rightModel.ts
new file mode 100644
index 00000000..0553c9c3
--- /dev/null
+++ b/frontend/src/api/mapModal/rightModel.ts
@@ -0,0 +1,8 @@
+import request from '@/utils/request';
+export function getPlanFinishDetail(data: any) {
+ return request({
+ url: '/fb/planFinish/GetKendoListCust',
+ method: 'post',
+ data
+ });
+}
diff --git a/frontend/src/assets/svg/runWarning.svg b/frontend/src/assets/svg/runWarning.svg
new file mode 100644
index 00000000..4753cda7
--- /dev/null
+++ b/frontend/src/assets/svg/runWarning.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/frontend/src/components/MapModal/components/AIYXSB/index.vue b/frontend/src/components/MapModal/components/AIYXSB/index.vue
index 81d8f5c4..e19279a1 100644
--- a/frontend/src/components/MapModal/components/AIYXSB/index.vue
+++ b/frontend/src/components/MapModal/components/AIYXSB/index.vue
@@ -609,6 +609,9 @@ const updateTableColumns = () => {
fixed: col.fixed || undefined,
ellipsis: col.ellipsis
};
+ if (col.key == 'tm' || col.key == 'aiVal') {
+ baseCol.sort = true;
+ }
if (col.dataFormat === 'YYYY-MM-DD' || col.dataType === 'date') {
baseCol.customRender = ({ text }: any) =>
text ? dayjs(text).format('YYYY-MM-DD') : '-';
diff --git a/frontend/src/components/MapModal/components/EcologicalFlow.vue b/frontend/src/components/MapModal/components/EcologicalFlow.vue
index 3393e6b1..c4bf513b 100644
--- a/frontend/src/components/MapModal/components/EcologicalFlow.vue
+++ b/frontend/src/components/MapModal/components/EcologicalFlow.vue
@@ -23,7 +23,7 @@
props.isActive,
active => {
if (active && !hasLoaded.value) {
- timeType.value = modelStore.filter.stllTmType;
+ if (modelStore.filter.stllTmType) {
+ timeType.value = modelStore.filter.stllTmType;
+ }
if (modelStore.filter.rangeTm.length > 0) {
dateRange.value = [
dayjs(modelStore.filter.rangeTm[0]),
diff --git a/frontend/src/components/MapModal/components/FishZHFX.vue b/frontend/src/components/MapModal/components/FishZHFX.vue
index 09e3601f..ac853815 100644
--- a/frontend/src/components/MapModal/components/FishZHFX.vue
+++ b/frontend/src/components/MapModal/components/FishZHFX.vue
@@ -304,6 +304,7 @@ const updateChart = (data: any[], columns: any[]) => {
console.log(sorted[0]);
const option = {
+ // 在 updateChart 函数中,替换 tooltip 配置
tooltip: {
trigger: 'axis',
backgroundColor: 'rgba(50, 50, 50, 0.9)',
@@ -312,17 +313,29 @@ const updateChart = (data: any[], columns: any[]) => {
formatter: (params: any) => {
if (!params || params.length === 0) return '';
const dataIndex = params[0].dataIndex;
- const fullTime = xAxisData[dataIndex] || '';
+ const dataItem = data[dataIndex]; // data 来自 updateChart 的参数
+ if (!dataItem) return '';
+ const fullTime = dayjs(dataItem.dt).format('YYYY-MM-DD');
let html = `${fullTime}
`;
- params.forEach((param: any) => {
- if (param.value == null) return;
+
+ // 过滤出需要显示的数据列(排除时间列和不可见列)
+ const dataColumns = columns.filter(
+ col => col.dataIndex !== 'dt' && col.visible !== false
+ );
+
+ dataColumns.forEach(col => {
+ const value = dataItem[col.dataIndex];
+ const displayValue = value != null && value !== '' ? value : '-';
+ // 尝试从 params 中匹配该系列的颜色,否则使用默认灰色
+ const matched = params.find((p: any) => p.seriesName === col.title);
+ const color = matched ? matched.color : '#999';
html += `
-
-
- ${param.seriesName}:
- ${param.value}
-
- `;
+
+
+ ${col.title}:
+ ${displayValue}
+
+ `;
});
return html;
}
@@ -330,6 +343,8 @@ const updateChart = (data: any[], columns: any[]) => {
legend: {
type: 'scroll',
top: 10,
+ left: 0,
+ width: '90%',
data: dataColumns.map(col => col.title),
textStyle: { fontSize: 12 }
},
@@ -429,7 +444,7 @@ const fetchData = async () => {
.map((col: any) => ({
title: col.title,
dataIndex: col.dataIndex,
- width: 120,
+ width: 140,
customRender: ({ text }: any) => {
if (col.dataType === 'date' && text) {
return dayjs(text).format('YYYY-MM-DD');
diff --git a/frontend/src/components/MapModal/index.vue b/frontend/src/components/MapModal/index.vue
index c2598136..fc6691b4 100644
--- a/frontend/src/components/MapModal/index.vue
+++ b/frontend/src/components/MapModal/index.vue
@@ -482,7 +482,7 @@ const setQGCTabList = async (_tabs: any, stcd: string) => {
});
const buid = res?.data?.data[0]?.bldsttCcode;
-
+
const zj = ['基础信息', '实时视频', '全景影像', '查看报告'];
const wj = ['基础信息', '查看报告'];
@@ -568,13 +568,17 @@ const setQGCTabList = async (_tabs: any, stcd: string) => {
};
const res2 = await getVideoList(params);
console.log('', modelStore.params.sttp);
+ console.log('', res2);
+ console.log('', newTabs);
if (
res2?.data?.data?.length > 0 ||
res2?.data?.records?.length > 0 ||
modelStore.params.sttp == 'WQ'
) {
+ console.log(123);
tabsConfig.value = newTabs;
} else {
+ console.log(465);
let arr = ['DW', 'DW_1', 'DW_2', 'DW_3', 'DW_4', 'DW_5', 'DW_6'];
if (arr.includes(modelStore.params.sttp)) {
tabsConfig.value = newTabs.filter((item: any) => item.type == 'basic');
diff --git a/frontend/src/components/gis/map.ol.ts b/frontend/src/components/gis/map.ol.ts
index c38623f8..bd58dd4b 100644
--- a/frontend/src/components/gis/map.ol.ts
+++ b/frontend/src/components/gis/map.ol.ts
@@ -211,6 +211,8 @@ export class MapOl implements MapInterface {
} else {
modelStore.modalVisible = true;
modelStore.params = detectedFeature.values_;
+ if (detectedFeature.values_.eqtp == 'QEC')
+ modelStore.filter.stllTmType = 'day';
modelStore.title =
detectedFeature.values_.titleName || detectedFeature.values_.stnm;
}
diff --git a/frontend/src/modules/rightSearchDrawer/monitoringTable/components/FlowMeasure.vue b/frontend/src/modules/rightSearchDrawer/monitoringTable/components/FlowMeasure.vue
index 62f9d7e2..9f15a10c 100644
--- a/frontend/src/modules/rightSearchDrawer/monitoringTable/components/FlowMeasure.vue
+++ b/frontend/src/modules/rightSearchDrawer/monitoringTable/components/FlowMeasure.vue
@@ -464,7 +464,10 @@ watch(
() => modelStore.selectedAnchorPoint?.stcd,
(newStcd, oldStcd) => {
if (!newStcd) return;
- if (newStcd !== oldStcd) fetchData();
+ if (newStcd !== oldStcd) {
+ dateRange.value = initDateRange();
+ fetchData();
+ }
},
{ immediate: true }
);
diff --git a/frontend/src/modules/rightSearchDrawer/monitoringTable/components/GYZLLB.vue b/frontend/src/modules/rightSearchDrawer/monitoringTable/components/GYZLLB.vue
index f6d23f5f..10fa6538 100644
--- a/frontend/src/modules/rightSearchDrawer/monitoringTable/components/GYZLLB.vue
+++ b/frontend/src/modules/rightSearchDrawer/monitoringTable/components/GYZLLB.vue
@@ -276,7 +276,10 @@ watch(
() => modelStore.selectedAnchorPoint?.stcd,
(newStcd, oldStcd) => {
if (!newStcd) return;
- if (newStcd !== oldStcd) fetchData();
+ if (newStcd !== oldStcd) {
+ year.value = initYear();
+ fetchData();
+ }
},
{ immediate: true }
);
diff --git a/frontend/src/modules/rightSearchDrawer/monitoringTable/components/NormalOperationData.vue b/frontend/src/modules/rightSearchDrawer/monitoringTable/components/NormalOperationData.vue
index 1507ebe1..0e8c1951 100644
--- a/frontend/src/modules/rightSearchDrawer/monitoringTable/components/NormalOperationData.vue
+++ b/frontend/src/modules/rightSearchDrawer/monitoringTable/components/NormalOperationData.vue
@@ -12,24 +12,28 @@
class="w-[90px]"
/>
-
-
-
{{ cfg.title }}
-
+
+
-
+