模块完善
This commit is contained in:
parent
cd59030f07
commit
e3022c2db6
@ -10,6 +10,7 @@ VITE_APP_BASE_API = '/dev-api'
|
|||||||
# VITE_APP_BASE_URL = 'http://localhost:8093'
|
# VITE_APP_BASE_URL = 'http://localhost:8093'
|
||||||
# 测试环境
|
# 测试环境
|
||||||
# VITE_APP_BASE_URL = 'http://172.16.21.142:8096'
|
# VITE_APP_BASE_URL = 'http://172.16.21.142:8096'
|
||||||
|
# VITE_APP_BASE_URL = 'http://172.16.21.142:8096'
|
||||||
# 汤伟
|
# 汤伟
|
||||||
VITE_APP_BASE_URL = 'http://10.84.121.21:8093'
|
VITE_APP_BASE_URL = 'http://10.84.121.21:8093'
|
||||||
|
|
||||||
|
|||||||
62
frontend/src/api/shuidiankaifa/index.ts
Normal file
62
frontend/src/api/shuidiankaifa/index.ts
Normal file
@ -0,0 +1,62 @@
|
|||||||
|
import request from '@/utils/request';
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 获取 Kendo 列表数据(支持聚合和分组)
|
||||||
|
* @param params 过滤条件
|
||||||
|
* @param sortConfig 排序配置
|
||||||
|
*/
|
||||||
|
export function getKendoList(params: any, sortConfig?: any[]) {
|
||||||
|
return request({
|
||||||
|
url: '/dec-lygk-base-server/base/vmsstbprpt/GetKendoList',
|
||||||
|
method: 'post',
|
||||||
|
data: {
|
||||||
|
filters: params,
|
||||||
|
sorts: sortConfig || []
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 获取自定义 Kendo 列表数据(用于全基地模式)
|
||||||
|
* @param params 过滤条件
|
||||||
|
* @param sortConfig 排序配置
|
||||||
|
*/
|
||||||
|
export function getKendoListCust(params: any, sortConfig?: any[]) {
|
||||||
|
return request({
|
||||||
|
url: '/dec-lygk-base-server/base/vmsstbprpt/GetKendoListCust',
|
||||||
|
method: 'post',
|
||||||
|
data: {
|
||||||
|
filters: params,
|
||||||
|
sorts: sortConfig || []
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 获取介绍信息(用于 other 类型排序)
|
||||||
|
* @param filters 过滤条件
|
||||||
|
* @param sorts 排序配置
|
||||||
|
* @param needTotal 是否需要总数
|
||||||
|
* @param fields 返回字段
|
||||||
|
* @param defaultSort 默认排序
|
||||||
|
*/
|
||||||
|
export function getIntroduce(
|
||||||
|
filters: any[],
|
||||||
|
sorts?: any[],
|
||||||
|
needTotal?: boolean,
|
||||||
|
fields?: string[],
|
||||||
|
defaultSort?: any
|
||||||
|
) {
|
||||||
|
return request({
|
||||||
|
url: '/dec-lygk-base-server/base/introduce/getIntroduce',
|
||||||
|
method: 'post',
|
||||||
|
data: {
|
||||||
|
logic: 'and',
|
||||||
|
filters: filters,
|
||||||
|
sorts: sorts || [],
|
||||||
|
needTotal: needTotal || false,
|
||||||
|
fields: fields || [],
|
||||||
|
defaultSort: defaultSort
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}
|
||||||
@ -15,6 +15,12 @@
|
|||||||
<InfoCircleOutlined />
|
<InfoCircleOutlined />
|
||||||
</a-tooltip>
|
</a-tooltip>
|
||||||
</span>
|
</span>
|
||||||
|
<span v-if="iconmap.show" class="title_icon">
|
||||||
|
<a-tooltip placement="top" :title="iconmap.value"
|
||||||
|
:get-popup-container="getPopupContainer">
|
||||||
|
<span :class="iconmap.icon"></span>
|
||||||
|
</a-tooltip>
|
||||||
|
</span>
|
||||||
</div>
|
</div>
|
||||||
<div class="title_right">
|
<div class="title_right">
|
||||||
<div v-if="select.show">
|
<div v-if="select.show">
|
||||||
@ -36,7 +42,7 @@
|
|||||||
<div v-if="datetimePicker.show">
|
<div v-if="datetimePicker.show">
|
||||||
<!-- 添加 locale 属性来设置语言 -->
|
<!-- 添加 locale 属性来设置语言 -->
|
||||||
<a-date-picker v-model:value="datetimeValue" show-time
|
<a-date-picker v-model:value="datetimeValue" show-time
|
||||||
:style="{ width: datetimePicker.picker === 'year' ? '80px' : '' }"
|
:style="{ width: datetimePicker.picker === 'year' ? '80px' : '120px' }"
|
||||||
:format="datetimePicker.format !== null ? datetimePicker.format : undefined"
|
:format="datetimePicker.format !== null ? datetimePicker.format : undefined"
|
||||||
:picker="datetimePicker.picker" placeholder=" " @change="handleDateTimeChange"
|
:picker="datetimePicker.picker" placeholder=" " @change="handleDateTimeChange"
|
||||||
:size="'small'" />
|
:size="'small'" />
|
||||||
@ -73,6 +79,7 @@ import dayjs, { Dayjs } from 'dayjs';
|
|||||||
interface PromptConfig {
|
interface PromptConfig {
|
||||||
show: boolean;
|
show: boolean;
|
||||||
value: string;
|
value: string;
|
||||||
|
icon?: string;
|
||||||
}
|
}
|
||||||
|
|
||||||
interface SelectConfig {
|
interface SelectConfig {
|
||||||
@ -112,6 +119,14 @@ const props = defineProps({
|
|||||||
value: '',
|
value: '',
|
||||||
})
|
})
|
||||||
},
|
},
|
||||||
|
iconmap: {//自定义图标浮动
|
||||||
|
type: Object as () => PromptConfig,
|
||||||
|
default: () => ({
|
||||||
|
show: false,
|
||||||
|
value: '',
|
||||||
|
icon:'iconfont icon-time',
|
||||||
|
})
|
||||||
|
},
|
||||||
select: { // 选择框
|
select: { // 选择框
|
||||||
type: Object as () => SelectConfig,
|
type: Object as () => SelectConfig,
|
||||||
default: () => ({
|
default: () => ({
|
||||||
|
|||||||
@ -13,24 +13,13 @@ import { ref, onMounted, watch } from "vue";
|
|||||||
|
|
||||||
import { useJidiSelectEventStore } from "@/store/modules/jidiSelectEvent";
|
import { useJidiSelectEventStore } from "@/store/modules/jidiSelectEvent";
|
||||||
import SidePanelItem from "@/components/SidePanelItem/index.vue";
|
import SidePanelItem from "@/components/SidePanelItem/index.vue";
|
||||||
import { getBaseKenWbsbdoList } from "@/api/home";
|
import { getBaseWbsb } from "@/api/home";
|
||||||
|
|
||||||
const JidiSelectEventStore = useJidiSelectEventStore();
|
const JidiSelectEventStore = useJidiSelectEventStore();
|
||||||
// 定义组件名(便于调试和递归)
|
// 定义组件名(便于调试和递归)
|
||||||
defineOptions({
|
defineOptions({
|
||||||
name: "jidiInfoMod",
|
name: "jidiInfoMod",
|
||||||
});
|
});
|
||||||
const title_text = ref("");
|
|
||||||
watch(
|
|
||||||
() => JidiSelectEventStore.selectedItem,
|
|
||||||
(newVal) => {
|
|
||||||
console.log(newVal);
|
|
||||||
if (newVal.name == "当前全部") {
|
|
||||||
}
|
|
||||||
initText();
|
|
||||||
},
|
|
||||||
{ deep: true }
|
|
||||||
);
|
|
||||||
const initText = () => {
|
const initText = () => {
|
||||||
const params = {
|
const params = {
|
||||||
filter: {
|
filter: {
|
||||||
@ -46,15 +35,26 @@ const initText = () => {
|
|||||||
],
|
],
|
||||||
},
|
},
|
||||||
};
|
};
|
||||||
getBaseKenWbsbdoList(params).then((res) => {
|
getBaseWbsb(params).then((res) => {
|
||||||
console.log(res);
|
console.log(res);
|
||||||
title_text.value = res.data.data[0].introduce;
|
title_text.value = res.data.data[0].introduce;
|
||||||
|
// debugger
|
||||||
});
|
});
|
||||||
};
|
};
|
||||||
|
const title_text = ref("");
|
||||||
|
watch(
|
||||||
|
() => JidiSelectEventStore.selectedItem,
|
||||||
|
(newVal) => {
|
||||||
|
initText();
|
||||||
|
},
|
||||||
|
{ deep: true, immediate: true }
|
||||||
|
);
|
||||||
|
|
||||||
// 页面加载时执行的逻辑
|
// 页面加载时执行的逻辑
|
||||||
onMounted(() => {
|
onMounted(() => {
|
||||||
initText();
|
initText();
|
||||||
console.log(JidiSelectEventStore.selectedItem);
|
console.log(JidiSelectEventStore.selectedItem);
|
||||||
|
|
||||||
});
|
});
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
|
|||||||
File diff suppressed because it is too large
Load Diff
@ -1,7 +1,7 @@
|
|||||||
<!-- SidePanelItem.vue -->
|
<!-- SidePanelItem.vue -->
|
||||||
|
|
||||||
<template>
|
<template>
|
||||||
<SidePanelItem title="沿程水质变化" :datetimePicker="datetimePicker">
|
<SidePanelItem title="沿程水质变化" :iconmap="iconmap" :datetimePicker="datetimePicker">
|
||||||
<div class="chart-container" ref="chartRef"></div>
|
<div class="chart-container" ref="chartRef"></div>
|
||||||
</SidePanelItem>
|
</SidePanelItem>
|
||||||
</template>
|
</template>
|
||||||
@ -17,7 +17,11 @@ import SidePanelItem from '@/components/SidePanelItem/index.vue';
|
|||||||
defineOptions({
|
defineOptions({
|
||||||
name: 'waterQuality'
|
name: 'waterQuality'
|
||||||
});
|
});
|
||||||
|
const iconmap = ref({
|
||||||
|
show: true,
|
||||||
|
value: '注:最新数据时间为2026-05-14 23:00',
|
||||||
|
icon: 'iconfont icon-time',
|
||||||
|
});
|
||||||
// ==================== 响应式数据 ====================
|
// ==================== 响应式数据 ====================
|
||||||
const chartRef = ref<HTMLElement | null>(null);
|
const chartRef = ref<HTMLElement | null>(null);
|
||||||
let chartInstance: echarts.ECharts | null = null;
|
let chartInstance: echarts.ECharts | null = null;
|
||||||
|
|||||||
@ -1,6 +1,6 @@
|
|||||||
<!-- SidePanelItem.vue -->
|
<!-- SidePanelItem.vue -->
|
||||||
<template>
|
<template>
|
||||||
<SidePanelItem title="沿程水温变化" :prompt="prompts">
|
<SidePanelItem title="沿程水温变化" :prompt="prompts" :select="select" :datetimePicker="datetimePicker">
|
||||||
<div ref="chartRef" class="chart-container"></div>
|
<div ref="chartRef" class="chart-container"></div>
|
||||||
</SidePanelItem>
|
</SidePanelItem>
|
||||||
</template>
|
</template>
|
||||||
@ -15,7 +15,23 @@ import SidePanelItem from '@/components/SidePanelItem/index.vue';
|
|||||||
defineOptions({
|
defineOptions({
|
||||||
name: 'yanchengshuiwenChangeMod'
|
name: 'yanchengshuiwenChangeMod'
|
||||||
});
|
});
|
||||||
|
// 选择器配置
|
||||||
|
const select = ref({
|
||||||
|
show: true,
|
||||||
|
value: undefined,
|
||||||
|
options: [],
|
||||||
|
picker: undefined,
|
||||||
|
format: undefined
|
||||||
|
});
|
||||||
|
|
||||||
|
// 日期选择器配置
|
||||||
|
const datetimePicker = ref({
|
||||||
|
show: true,
|
||||||
|
value: '2026-05-15 15',
|
||||||
|
format: 'YYYY-MM-DD HH',
|
||||||
|
picker: 'date' as const,
|
||||||
|
options: []
|
||||||
|
});
|
||||||
const prompts = ref({
|
const prompts = ref({
|
||||||
show: true,
|
show: true,
|
||||||
value: '注:最新数据时间为2026-04-08 23',
|
value: '注:最新数据时间为2026-04-08 23',
|
||||||
|
|||||||
@ -1,7 +1,19 @@
|
|||||||
<script setup lang="ts">
|
<script setup lang="ts">
|
||||||
|
import { ref, watch } from "vue";
|
||||||
import JidiSelectorMod from "@/modules/jidiSelectorMod.vue";
|
import JidiSelectorMod from "@/modules/jidiSelectorMod.vue";
|
||||||
import RightDrawer from "@/components/RightDrawer/index.vue";
|
import RightDrawer from "@/components/RightDrawer/index.vue";
|
||||||
import HuanbaozdjcgzkzQK from "@/modules/huanbaozdjcgzkzQK/index.vue"
|
import HuanbaozdjcgzkzQK from "@/modules/huanbaozdjcgzkzQK/index.vue";
|
||||||
|
import SZYCBH from "@/modules/waterQuality/index.vue"
|
||||||
|
import { useJidiSelectEventStore } from "@/store/modules/jidiSelectEvent";
|
||||||
|
const JidiSelectEventStore = useJidiSelectEventStore();
|
||||||
|
const wbsCode = ref('')
|
||||||
|
watch(
|
||||||
|
() => JidiSelectEventStore.selectedItem,
|
||||||
|
(newVal) => {
|
||||||
|
wbsCode.value = newVal.wbsCode
|
||||||
|
},
|
||||||
|
{ deep: true, immediate: true }
|
||||||
|
);
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
<template>
|
<template>
|
||||||
@ -12,6 +24,7 @@ import HuanbaozdjcgzkzQK from "@/modules/huanbaozdjcgzkzQK/index.vue"
|
|||||||
<div class="rightContent">
|
<div class="rightContent">
|
||||||
<RightDrawer>
|
<RightDrawer>
|
||||||
<HuanbaozdjcgzkzQK />
|
<HuanbaozdjcgzkzQK />
|
||||||
|
<SZYCBH v-if="wbsCode != 'all'" />
|
||||||
</RightDrawer>
|
</RightDrawer>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|||||||
@ -1,8 +1,21 @@
|
|||||||
<script setup lang="ts">
|
<script setup lang="ts">
|
||||||
|
import { ref, watch } from "vue";
|
||||||
import JidiSelectorMod from "@/modules/jidiSelectorMod.vue";
|
import JidiSelectorMod from "@/modules/jidiSelectorMod.vue";
|
||||||
import RightDrawer from "@/components/RightDrawer/index.vue";
|
import RightDrawer from "@/components/RightDrawer/index.vue";
|
||||||
import ShuiZhiJianCeGongZuoQingKuang from "@/modules/shuizhijiancegongzuoQK/index.vue"
|
import ShuiZhiJianCeGongZuoQingKuang from "@/modules/shuizhijiancegongzuoQK/index.vue"
|
||||||
import EnvironmentalQuality from "@/modules/EnvironmentalQuality/index.vue" // 环境质量满足度
|
import EnvironmentalQuality from "@/modules/EnvironmentalQuality/index.vue" // 环境质量满足度
|
||||||
|
import { useJidiSelectEventStore } from "@/store/modules/jidiSelectEvent";
|
||||||
|
import SZYCBH from "@/modules/waterQuality/index.vue"
|
||||||
|
const JidiSelectEventStore = useJidiSelectEventStore();
|
||||||
|
const wbsCode = ref('');
|
||||||
|
watch(
|
||||||
|
() => JidiSelectEventStore.selectedItem,
|
||||||
|
(newVal) => {
|
||||||
|
console.log(newVal);
|
||||||
|
wbsCode.value = newVal.wbsCode;
|
||||||
|
},
|
||||||
|
{ deep: true }
|
||||||
|
);
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
<template>
|
<template>
|
||||||
@ -14,6 +27,8 @@ import EnvironmentalQuality from "@/modules/EnvironmentalQuality/index.vue" //
|
|||||||
<RightDrawer>
|
<RightDrawer>
|
||||||
<ShuiZhiJianCeGongZuoQingKuang />
|
<ShuiZhiJianCeGongZuoQingKuang />
|
||||||
<EnvironmentalQuality />
|
<EnvironmentalQuality />
|
||||||
|
<SZYCBH v-if="wbsCode != 'all'"></SZYCBH>
|
||||||
|
|
||||||
</RightDrawer>
|
</RightDrawer>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|||||||
@ -1,4 +1,5 @@
|
|||||||
<script setup lang="ts">
|
<script setup lang="ts">
|
||||||
|
import { ref, watch } from "vue";
|
||||||
import JidiSelectorMod from "@/modules/jidiSelectorMod.vue";
|
import JidiSelectorMod from "@/modules/jidiSelectorMod.vue";
|
||||||
import RightDrawer from "@/components/RightDrawer/index.vue";
|
import RightDrawer from "@/components/RightDrawer/index.vue";
|
||||||
|
|
||||||
@ -6,7 +7,22 @@ import ZengZhiJiHuaWanChengQingKuang from "@/modules/zengZhiJiHuaWanChengQingKua
|
|||||||
import ZengZhiZhanJieShaoMod from "@/modules/zengZhiZhanJieShaoMod/index.vue"
|
import ZengZhiZhanJieShaoMod from "@/modules/zengZhiZhanJieShaoMod/index.vue"
|
||||||
import ZZZJSYXQKTT from "@/modules/zengzhizhanjiansheyunxing/index.vue"
|
import ZZZJSYXQKTT from "@/modules/zengzhizhanjiansheyunxing/index.vue"
|
||||||
import ZZZYXSJTJ from "@/modules/zengzhizhanyunxingsjtj/index.vue"
|
import ZZZYXSJTJ from "@/modules/zengzhizhanyunxingsjtj/index.vue"
|
||||||
import FLZLLB from "@/modules/GYZLLB/index.vue"
|
import FLZLLB from "@/modules/GYZLLB/index.vue"
|
||||||
|
import { useJidiSelectEventStore } from "@/store/modules/jidiSelectEvent";
|
||||||
|
const JidiSelectEventStore = useJidiSelectEventStore();
|
||||||
|
const wbsCode = ref('all');
|
||||||
|
watch(
|
||||||
|
() => JidiSelectEventStore.selectedItem,
|
||||||
|
(newVal) => {
|
||||||
|
console.log(newVal);
|
||||||
|
if (newVal.wbsCode == 'all') {
|
||||||
|
wbsCode.value = 'all';
|
||||||
|
} else {
|
||||||
|
wbsCode.value = newVal.wbsCode;
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{ deep: true }
|
||||||
|
);
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
<template>
|
<template>
|
||||||
@ -17,9 +33,9 @@ import FLZLLB from "@/modules/GYZLLB/index.vue"
|
|||||||
<div class="rightContent">
|
<div class="rightContent">
|
||||||
<RightDrawer>
|
<RightDrawer>
|
||||||
<ZZZJSYXQKTT />
|
<ZZZJSYXQKTT />
|
||||||
<ZengZhiZhanJieShaoMod />
|
<ZengZhiZhanJieShaoMod v-if="wbsCode != 'all'" />
|
||||||
<ZengZhiJiHuaWanChengQingKuang />
|
<ZengZhiJiHuaWanChengQingKuang v-if="wbsCode != 'all'" />
|
||||||
<FLZLLB title="放流总量" />
|
<FLZLLB title="放流总量" />
|
||||||
<ZZZYXSJTJ />
|
<ZZZYXSJTJ />
|
||||||
</RightDrawer>
|
</RightDrawer>
|
||||||
</div>
|
</div>
|
||||||
|
|||||||
1492
package-lock.json
generated
1492
package-lock.json
generated
File diff suppressed because it is too large
Load Diff
6
package.json
Normal file
6
package.json
Normal file
@ -0,0 +1,6 @@
|
|||||||
|
{
|
||||||
|
"dependencies": {
|
||||||
|
"cesium": "^1.140.0",
|
||||||
|
"vite-plugin-cesium": "^1.2.23"
|
||||||
|
}
|
||||||
|
}
|
||||||
Loading…
Reference in New Issue
Block a user