diff --git a/frontend/src/api/mapModal/index.ts b/frontend/src/api/mapModal/index.ts
index c9e28be6..6b5b0025 100644
--- a/frontend/src/api/mapModal/index.ts
+++ b/frontend/src/api/mapModal/index.ts
@@ -303,7 +303,7 @@ export function getAIComCalendarClick(data: any) {
});
}
-// 鱼类增殖站 - 运行数据 -获取年
+// 鱼类增殖站 - 运行数据 -获取年 没接
export function getFishProgressionYear(data: any) {
return request({
url: '/wmp-env-server/fb/fbrdmr/getFbRelatedYrByStcd',
@@ -311,7 +311,7 @@ export function getFishProgressionYear(data: any) {
params: data
});
}
-//鱼类增殖站 - 运行数据 -获取鱼
+//鱼类增殖站 - 运行数据 -获取鱼 没接
export function getFishProgressionFish(data: any) {
return request({
url: '/wmp-env-server/env/fishDic/stcd/GetKendoList',
@@ -319,6 +319,33 @@ export function getFishProgressionFish(data: any) {
data
});
}
+
+// 过程图 - 亲鱼
+export function getProcessDiagramParentFish(data: any) {
+ return request({
+ url: '/wmp-env-server/fb/bsmfr/fish/GetKendoListCust',
+ method: 'post',
+ data
+ });
+}
+
+// 过程图 - 产卵/孵化
+export function getProcessDiagramHatch(data: any, type: 1 | 2) {
+ return request({
+ url: `/wmp-env-server/fb/fishhatchrecr/fish/GetKendoListCust?type=${type}`,
+ method: 'post',
+ data
+ });
+}
+
+// 过程图 - 鱼苗
+export function getProcessDiagramFishFry(data: any) {
+ return request({
+ url: '/wmp-env-server/fb/fishbreedr/fish/GetKendoListCust',
+ method: 'post',
+ data
+ });
+}
//增值放流情况 获取年 没接
export function getNormalAddedSituationYear(data: any) {
return request({
@@ -344,3 +371,125 @@ export function getNormalResearchSituation(data: any) {
data
});
}
+// 珍稀植物园 - 运行数据 没接
+export function getNormalDataMonitoring2Year(data: any) {
+ return request({
+ url: '/wmp-env-server/env/vpr/year/GetKendoListCust',
+ method: 'post',
+ data
+ });
+}
+// 珍稀植物园 - 运行数据 列表 没接
+export function getNormalDataMonitoring2List(data: any) {
+ return request({
+ url: '/wmp-env-server/env/vpr/basinVpIntDetail',
+ method: 'post',
+ data
+ });
+}
+// 珍稀动物园 - 监测数据 时间 没接
+export function getNormal2Year(data: any) {
+ return request({
+ url: '/wmp-env-server/env/var/year/GetKendoListCust',
+ method: 'post',
+ data
+ });
+}
+
+// 珍稀动物园 - 监测数据 列表 没接
+export function getNormal2List(data: any) {
+ return request({
+ url: '/wmp-env-server/env/var/GetKendoListCust',
+ method: 'post',
+ data
+ });
+}
+// 水生生态调查断面 - 监测数据 年份 没接
+export function getEcologyYear(data: any) {
+ return request({
+ url: '/wmp-env-server/we/wer/getWeYr',
+ method: 'get',
+ params: data
+ });
+}
+// 水生生态调查断面 - 监测数据 调查批次 没接
+export function getEcologyBatch(data: any) {
+ return request({
+ url: '/wmp-env-server/env/we/fisht/GetKendoListCust',
+ method: 'post',
+ data
+ });
+}
+// 水生生态调查断面 - 监测数据 保护类型 没接
+export function getEcologyProtectType(data: any) {
+ return request({
+ url: '/api/dec-modules-usm-springcloud-starter/usm/v1/dict/getRemoteDictTreeValue',
+ method: 'get',
+ params: data
+ });
+}
+// 水生生态调查断面 - 监测数据 调查鱼类列表 没接
+export function getEcologyList(data: any) {
+ return request({
+ url: '/wmp-env-server/env/we/fisht/qgc/GetKendoListCust',
+ method: 'post',
+ data
+ });
+}
+// 水生生态调查断面 - 监测数据 水温列表 没接
+export function getEcologyList1(data: any) {
+ return request({
+ url: '/wmp-env-server/we/wewtr/GetKendoListCust',
+ method: 'post',
+ data
+ });
+}
+// 水生生态调查断面 - 监测数据 水质列表 没接
+export function getEcologyList2(data: any) {
+ return request({
+ url: '/wmp-env-server/we/wewqr/GetKendoListCust',
+ method: 'post',
+ data
+ });
+}
+
+// 水生生态调查断面 - 监测数据 流速列表 没接
+export function getEcologyList3(data: any) {
+ return request({
+ url: '/wmp-env-server/env/we/fvR/GetKendoListCust',
+ method: 'post',
+ data
+ });
+}
+// 野生动物检测 -现场录像 - 年份 - 没接
+export function getLiveFootageYear(data: any) {
+ return request({
+ url: '/wmp-env-server/env/wva/default/GetKendoListCust',
+ method: 'post',
+ data
+ });
+}
+// 野生动物检测 -现场录像 - 没接
+export function getLiveFootageList(data: any) {
+ return request({
+ url: '/wmp-env-server/env/wva/GetKendoListCust',
+ method: 'post',
+ data
+ });
+}
+// 鱼类分布明细 - 年 没接
+export function getFishDistributionYear(data: any) {
+ return request({
+ url: '/wmp-env-server/we/wer/getWeYr',
+ method: 'get',
+ params: data
+ });
+}
+// 鱼类分布明细 - 列表 没接
+export function getFishDistributionList(data: any) {
+ return request({
+ url: '/wmp-env-server/env/we/fisht/qgc/GetKendoListCust',
+ method: 'post',
+ data
+ });
+}
diff --git a/frontend/src/components/MapModal/components/CommonAttachmentModal.vue b/frontend/src/components/MapModal/components/CommonAttachmentModal.vue
new file mode 100644
index 00000000..1957f533
--- /dev/null
+++ b/frontend/src/components/MapModal/components/CommonAttachmentModal.vue
@@ -0,0 +1,262 @@
+
+
+
+
+
+
+
+
+
+
![]()
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/frontend/src/components/MapModal/components/DZGJ.vue b/frontend/src/components/MapModal/components/DZGJ.vue
new file mode 100644
index 00000000..0cd90d1d
--- /dev/null
+++ b/frontend/src/components/MapModal/components/DZGJ.vue
@@ -0,0 +1,316 @@
+
+
+
+
+
+
+
diff --git a/frontend/src/components/MapModal/components/Ecology.vue b/frontend/src/components/MapModal/components/Ecology.vue
new file mode 100644
index 00000000..46057dcc
--- /dev/null
+++ b/frontend/src/components/MapModal/components/Ecology.vue
@@ -0,0 +1,583 @@
+
+
+
+
+
+
+
+
+
+
+
+ 查看附件
+
+
+
+
+
+
+
+
+
+
+
diff --git a/frontend/src/components/MapModal/components/Normal.vue b/frontend/src/components/MapModal/components/Normal.vue
new file mode 100644
index 00000000..003537d9
--- /dev/null
+++ b/frontend/src/components/MapModal/components/Normal.vue
@@ -0,0 +1,259 @@
+
+
+
+
+
+
+
+ 查看附件
+
+
+
+
+
+
+
+
+
+
+
diff --git a/frontend/src/components/MapModal/components/NormalAddedSituation.vue b/frontend/src/components/MapModal/components/NormalAddedSituation.vue
index e23ab3a6..cc974823 100644
--- a/frontend/src/components/MapModal/components/NormalAddedSituation.vue
+++ b/frontend/src/components/MapModal/components/NormalAddedSituation.vue
@@ -39,7 +39,7 @@
+
+
diff --git a/frontend/src/components/MapModal/components/NormalOperationData/operationConfig.ts b/frontend/src/components/MapModal/components/NormalOperationData/operationConfig.ts
index a8635b97..0a97150c 100644
--- a/frontend/src/components/MapModal/components/NormalOperationData/operationConfig.ts
+++ b/frontend/src/components/MapModal/components/NormalOperationData/operationConfig.ts
@@ -359,12 +359,12 @@ export const operationStepList: OperationStepItem[] = [
},
{
type: 'select',
- name: 'fpitocintype',
- label: '催产剂种类',
+ name: 'fishsrc',
+ label: '亲鱼来源',
url: '/api/dec-modules-usm-springcloud-starter/usm/v1/dict/getRemoteDictTreeValue',
method: 'get',
params: {
- dictCode: 'FPITOCINTYPE'
+ dictCode: 'BSSR'
}
}
]
diff --git a/frontend/src/components/MapModal/components/NormalOperationData/proliferationColumns.ts b/frontend/src/components/MapModal/components/NormalOperationData/proliferationColumns.ts
index 7cfbf915..54b2c5b2 100644
--- a/frontend/src/components/MapModal/components/NormalOperationData/proliferationColumns.ts
+++ b/frontend/src/components/MapModal/components/NormalOperationData/proliferationColumns.ts
@@ -1550,9 +1550,9 @@ export const qinYuPeiYuTouWei = [
},
{
dataIndexRaw: '',
- key: 'ftype',
+ key: 'ftypeName',
title: '饲料种类',
- dataIndex: 'ftype',
+ dataIndex: 'ftypeName',
children: [],
visible: true,
fixed: '',
@@ -3868,9 +3868,9 @@ export const miaoZhongJiLu = [
},
{
dataIndexRaw: '',
- key: 'feedtp',
+ key: 'ftypeName',
title: '饲料种类',
- dataIndex: 'feedtp',
+ dataIndex: 'ftypeName',
children: [],
visible: true,
fixed: '',
diff --git a/frontend/src/components/MapModal/components/ProcessDiagram.vue b/frontend/src/components/MapModal/components/ProcessDiagram.vue
new file mode 100644
index 00000000..1ea9db18
--- /dev/null
+++ b/frontend/src/components/MapModal/components/ProcessDiagram.vue
@@ -0,0 +1,710 @@
+
+
+
+
+
+
+
diff --git a/frontend/src/components/MapModal/components/liveFootage.vue b/frontend/src/components/MapModal/components/liveFootage.vue
new file mode 100644
index 00000000..6cb90c37
--- /dev/null
+++ b/frontend/src/components/MapModal/components/liveFootage.vue
@@ -0,0 +1,435 @@
+
+
+
+
+
+
+
diff --git a/frontend/src/components/MapModal/components/onSitePhoto.vue b/frontend/src/components/MapModal/components/onSitePhoto.vue
new file mode 100644
index 00000000..b4864362
--- /dev/null
+++ b/frontend/src/components/MapModal/components/onSitePhoto.vue
@@ -0,0 +1,404 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
![]()
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/frontend/src/components/MapModal/index.vue b/frontend/src/components/MapModal/index.vue
index 6c9fdf90..ede98a43 100644
--- a/frontend/src/components/MapModal/index.vue
+++ b/frontend/src/components/MapModal/index.vue
@@ -20,7 +20,13 @@
8. 栖息地-流量监测 没有水位视频和流量视频 字段没数据
9. 栖息地 水温、水质、流量没有数据没法测
10.鱼类增殖站 - 运行数据 要添加字典
+ 11.珍惜植物园 - 种植要求字段不知道
+ 12.水生调查断面 - 监测数据 不知道电导率 ,性腺发育期,早期资源量和种类
+ 13.水电告警情况 生态流量 不知道字段 接口传参有问题
+
+
+没弄: 环保设施
-->
+
+
-
+
+
+
+
+
+
+
+
+
+
+
+
{
]
}
});
- hasPowerStatData.value =
- res?.data?.data && res?.data?.data?.length > 0;
+ hasPowerStatData.value = res?.data?.data && res?.data?.data?.length > 0;
} catch (error) {
console.error('查询电站专题配置失败:', error);
hasPowerStatData.value = false;
@@ -605,10 +657,10 @@ const setQGCTabList = async (_tabs: any, stcd: string) => {
]
};
const res2 = await getVideoList(params);
- console.log('', modelStore.params.sttp);
- debugger
+ console.log('', modelStore.params.sttp);
if (
- (res2?.data?.data?.length > 0 || res2?.data?.records?.length > 0) ||
+ res2?.data?.data?.length > 0 ||
+ res2?.data?.records?.length > 0 ||
modelStore.params.sttp == 'WQ'
) {
tabsConfig.value = newTabs;
diff --git a/frontend/src/components/gis/map.ol.ts b/frontend/src/components/gis/map.ol.ts
index a48a5282..7eed35d8 100644
--- a/frontend/src/components/gis/map.ol.ts
+++ b/frontend/src/components/gis/map.ol.ts
@@ -147,11 +147,16 @@ export class MapOl implements MapInterface {
this.popupManager.showPopup(undefined, undefined);
this.popupManager.handleMapClick(evt.pixel, detectedFeature => {
console.log(detectedFeature);
- modelStore.modalVisible = true;
- modelStore.params = detectedFeature.values_;
- modelStore.title =
- detectedFeature.values_.titleName ||
- detectedFeature.values_.stnm + ' 详情信息';
+ if (detectedFeature.values_.sttpMap == 'ylfb') {
+ modelStore.ylfbModalVisible = true;
+ modelStore.params = detectedFeature.values_;
+ } else {
+ modelStore.modalVisible = true;
+ modelStore.params = detectedFeature.values_;
+ modelStore.title =
+ detectedFeature.values_.titleName ||
+ detectedFeature.values_.stnm + ' 详情信息';
+ }
});
});
@@ -242,6 +247,12 @@ export class MapOl implements MapInterface {
}
const dynamicScale = this.getDynamicPointScale(currentZoom);
const fontSize = this.getPointFontSize(dynamicScale);
+ const formattedLabelText = this.formatPointLabelText(labelText);
+ const labelLineCount = formattedLabelText
+ ? formattedLabelText.split('\n').length
+ : 1;
+ const labelOffsetY =
+ labelLineCount > 1 ? -30 * dynamicScale : -22 * dynamicScale;
const styleOptions: any = {
image: new Icon({
@@ -254,8 +265,8 @@ export class MapOl implements MapInterface {
};
styleOptions.text = new Text({
- text: labelText,
- offsetY: -20 * dynamicScale,
+ text: formattedLabelText,
+ offsetY: labelOffsetY,
font: `${fontSize}px sans-serif`,
fill: new Fill({ color: '#fff' }),
stroke: new Stroke({ color: 'rgba(0, 0, 0, .9)', width: 2 }),
@@ -265,6 +276,34 @@ export class MapOl implements MapInterface {
return new Style(styleOptions);
}
+ /**
+ * 点位标注最多显示两行,每行 12 个字符;超出部分在第二行末尾显示省略号。
+ */
+ private formatPointLabelText(text: string): string {
+ const normalizedText = String(text || '')
+ .replace(/[()()]/g, '')
+ .trim();
+ if (!normalizedText) {
+ return '';
+ }
+
+ const maxLineLength = 12;
+ if (normalizedText.length <= maxLineLength) {
+ return normalizedText;
+ }
+
+ const firstLine = normalizedText.slice(0, maxLineLength);
+ if (normalizedText.length <= maxLineLength * 2) {
+ return `${firstLine}\n${normalizedText.slice(maxLineLength)}`;
+ }
+
+ const secondLine = `${normalizedText.slice(
+ maxLineLength,
+ maxLineLength + 9
+ )}...`;
+ return `${firstLine}\n${secondLine}`;
+ }
+
/**
* 根据缩放级别计算锚点图标缩放比例,统一复用,减少样式函数中的重复判断。
*/
diff --git a/frontend/src/components/gis/ol/point-layer-manager.ts b/frontend/src/components/gis/ol/point-layer-manager.ts
index e32353fc..8cb6c29a 100644
--- a/frontend/src/components/gis/ol/point-layer-manager.ts
+++ b/frontend/src/components/gis/ol/point-layer-manager.ts
@@ -269,10 +269,12 @@ export class PointLayerManager {
...item,
_layerKey: targetLayerKey
});
-
feature.setId(item.stcd || item._id);
feature.set('_iconUrl', iconUrl);
- feature.set('_labelText', titleName || stnm || ennm || '');
+ feature.set(
+ '_labelText',
+ item.sttpMap === 'ylfb' ? item.ftp || '' : titleName || stnm || ennm || ''
+ );
feature.set('_legendVisible', true);
feature.set('_sttpMap', item.sttpMap);
if (item.popupHtml) {
diff --git a/frontend/src/components/ylfbModal/index.vue b/frontend/src/components/ylfbModal/index.vue
new file mode 100644
index 00000000..0889ac06
--- /dev/null
+++ b/frontend/src/components/ylfbModal/index.vue
@@ -0,0 +1,284 @@
+
+
+
+
+
+
+
+
+
diff --git a/frontend/src/layout/components/AppMain.vue b/frontend/src/layout/components/AppMain.vue
index 25210c81..07fbe486 100644
--- a/frontend/src/layout/components/AppMain.vue
+++ b/frontend/src/layout/components/AppMain.vue
@@ -3,6 +3,7 @@ import { computed } from 'vue';
import { useTagsViewStore } from '@/store/modules/tagsView';
import { useRoute } from 'vue-router';
import MapModal from '@/components/MapModal/index.vue';
+import ylfbModal from '@/components/ylfbModal/index.vue';
import { useModelStore } from '@/store/modules/model';
import GisView from '@/components/gis/GisView.vue';
@@ -32,6 +33,9 @@ const routeKey = computed(() => router.path + Math.random());
:title="modelStore.title"
:tabs-config="modelStore.tabList"
/>
+
+
+
diff --git a/frontend/src/store/modules/map.ts b/frontend/src/store/modules/map.ts
index b08f2c7b..b086962a 100644
--- a/frontend/src/store/modules/map.ts
+++ b/frontend/src/store/modules/map.ts
@@ -734,7 +734,7 @@ export const useMapStore = defineStore('map', () => {
if (ylfbKeys.includes(layerKey)) {
if (yearTime) {
requestParams.filters.push({
- field: 'tm',
+ field: 'startTime',
operator: 'eq',
dataType: 'date',
value: moment(yearTime)
@@ -742,7 +742,7 @@ export const useMapStore = defineStore('map', () => {
.format('YYYY-MM-DD 00:00:00')
});
requestParams.filters.push({
- field: 'tm',
+ field: 'endTime',
operator: 'eq',
dataType: 'date',
value: moment(yearTime).endOf('year').format('YYYY-MM-DD 23:59:59')
diff --git a/frontend/src/store/modules/model.ts b/frontend/src/store/modules/model.ts
index bc51bc2c..7abffdf9 100644
--- a/frontend/src/store/modules/model.ts
+++ b/frontend/src/store/modules/model.ts
@@ -4,13 +4,14 @@ import { ref } from 'vue';
export const useModelStore = defineStore('model', () => {
// state
const modalVisible = ref(false);
- const currentTabKey = ref("basicInfo");
+ const ylfbModalVisible = ref(false); // 鱼类分布弹窗显示状态
+ const currentTabKey = ref('basicInfo');
const tabList = ref([]);
const title = ref('');
const isBasicEdit = ref(false);
const showStcdSelector = ref(false); // 是否显示下拉框
- const stcdOptions = ref>([]); // 可选测站列表
-
+ const stcdOptions = ref>([]); // 可选测站列表
+
// 新增:功能迁移所需的状态字段
const baseId = ref(''); // 当前基地 ID
const hasPowerStatData = ref(false); // 电站是否有专题数据
@@ -20,14 +21,14 @@ export const useModelStore = defineStore('model', () => {
const wtConfig = ref<{ ioWtrv?: boolean; hasRstcdWtvt?: boolean }>({}); // 水温配置
const wqShow = ref(false); // 水质 AI 预测显示
const fishTabInfo = ref(null); // 鱼类监测数据信息
-
+
const params = ref<{
sttp: string;
stcd: any;
date: any;
show: any;
- enfc:any;
- eqtp:any;
+ enfc: any;
+ eqtp: any;
baseId?: string; // 新增:基地 ID
sttpCode?: string; // 新增:站点类型代码
sttpMap?: string; // 新增:站点类型映射
@@ -38,24 +39,25 @@ export const useModelStore = defineStore('model', () => {
stcd: '',
date: '',
show: true,
- enfc:'0',
- eqtp:'',
+ enfc: '0',
+ eqtp: '',
baseId: '',
sttpCode: '',
sttpMap: '',
- dtinType:'',
- bldstt:'',
+ dtinType: '',
+ bldstt: ''
});
- const filterStll= ref('')
+ const filterStll = ref('');
return {
params,
modalVisible,
+ ylfbModalVisible, // 鱼类分布弹窗显示状态
currentTabKey,
tabList,
title,
isBasicEdit,
- showStcdSelector, // 新增
- stcdOptions, // 新增
+ showStcdSelector, // 新增
+ stcdOptions, // 新增
filterStll,
// 新增返回字段
baseId,
@@ -65,6 +67,6 @@ export const useModelStore = defineStore('model', () => {
aiSites,
wtConfig,
wqShow,
- fishTabInfo,
+ fishTabInfo
};
-});
\ No newline at end of file
+});