| | |
| | | import instance from "./requestTR.js"; |
| | | |
| | | // 获取区域数据 |
| | | export async function getData(params = {}) { |
| | | export async function getRegionData(params = {}) { |
| | | try { |
| | | const defaultParams = { |
| | | id: undefined, |
| | |
| | | <template> |
| | | <div class="listCard"> |
| | | <!-- <div>方案数量: {{ simStore.schemCard.length }}</div> --> |
| | | <!-- 接口版本删除该代码块 --> |
| | | <!-- <el-card v-if="!schemeInfoShow" v-for="(item, key) in simStore.schemCard" :key="key" |
| | | :class="{ selected: selectedId === item.id }" @click="selectScheme(item.id)"> --> |
| | | <el-card v-if="!schemeInfoShow" v-for="(item, key) in schemeList" :key="key" |
| | | :class="{ selected: selectedId === item.id }" @click="selectScheme(item.id)"> |
| | | <div> |
| | |
| | | function selectScheme(id) { |
| | | selectedId.value = id; |
| | | } |
| | | // simStore.setSchemCard([ |
| | | // { |
| | | // area: "孙胡沟", |
| | | // areaId: "0", |
| | | // createTime: "2025-01-13 19:33:04", |
| | | // datPath: "e:/data/hydro/11011611021801/1878767214615695362", |
| | | // dataType: 2, |
| | | // dataValue: "", |
| | | // depthThreshold: 0, |
| | | // endTime: "2023-08-01 01:59:59", |
| | | // fileCount: 299, |
| | | // fileName: "东江沟雨量计0110.xls", |
| | | // hotStart: false, |
| | | // id: "1878767214431145986", |
| | | // name: "降雨数据:房山区东江沟数据", |
| | | // noRainTime: 0, |
| | | // outputPeriod: 600, |
| | | // shpPath: "e:/data/hydro/11011611021801/shp", |
| | | // simulateType: 1, |
| | | // startTime: "2023-07-30 00:00:00", |
| | | // taskId: "1878767214615695362", |
| | | // taskStatus: 2, |
| | | // updateTime: "2025-01-13 19:33:04", |
| | | // userId: "0", |
| | | // }, |
| | | // { |
| | | // area: "孙胡沟", |
| | | // areaId: "0", |
| | | // createTime: "2025-01-10 14:33:49", |
| | | // datPath: "e:/data/hydro/11011611021801/1877604741980196866", |
| | | // dataType: 2, |
| | | // dataValue: "", |
| | | // depthThreshold: 0, |
| | | // endTime: "2023-08-02 01:00:00", |
| | | // fileCount: 450, |
| | | // fileName: "东江沟雨量计0110.xls", |
| | | // hotStart: false, |
| | | // id: "1877604741590126594", |
| | | // name: "东江沟0729-0801", |
| | | // noRainTime: 0, |
| | | // outputPeriod: 600, |
| | | // shpPath: "e:/data/hydro/11011611021801/shp", |
| | | // simulateType: 1, |
| | | // startTime: "2023-07-29 22:00:00", |
| | | // taskId: "1877604741980196866", |
| | | // taskStatus: 2, |
| | | // updateTime: "2025-01-10 14:33:49", |
| | | // userId: "0", |
| | | // }, |
| | | // { |
| | | // area: "孙胡沟", |
| | | // areaId: "0", |
| | | // createTime: "2024-12-27 12:28:45", |
| | | // datPath: "e:/data/hydro/11011611021801/1872499838538584065", |
| | | // dataType: 2, |
| | | // dataValue: "", |
| | | // depthThreshold: 0, |
| | | // endTime: "2023-08-02 09:00:00", |
| | | // fileCount: 654, |
| | | // fileName: "东江沟雨量计0110.xls", |
| | | // hotStart: false, |
| | | // id: "1872499838278537217", |
| | | // name: "北京市731暴雨", |
| | | // noRainTime: 0, |
| | | // outputPeriod: 600, |
| | | // shpPath: "e:/data/hydro/11011611021801/shp", |
| | | // simulateType: 1, |
| | | // startTime: "2023-07-28 20:00:00", |
| | | // taskId: "1872499838538584065", |
| | | // taskStatus: 2, |
| | | // updateTime: "2024-12-27 12:28:45", |
| | | // userId: "0", |
| | | // }, |
| | | // { |
| | | // area: "孙胡沟", |
| | | // areaId: "0", |
| | | // createTime: "2024-12-20 15:00:11", |
| | | // datPath: "e:/data/hydro/11011611021801/1870001233680502786", |
| | | // dataType: 0, |
| | | // dataValue: "", |
| | | // depthThreshold: 0, |
| | | // endTime: "2024-12-20 06:00:00", |
| | | // fileCount: 86, |
| | | // fileName: "", |
| | | // hotStart: false, |
| | | // id: "1870001233646948354", |
| | | // name: "雨强30mm", |
| | | // noRainTime: 0, |
| | | // outputPeriod: 300, |
| | | // shpPath: "e:/data/hydro/11011611021801/shp", |
| | | // simulateType: 1, |
| | | // startTime: "2024-12-20 00:00:00", |
| | | // taskId: "1870001233680502786", |
| | | // taskStatus: 2, |
| | | // updateTime: "2024-12-20 15:00:11", |
| | | // userId: "0", |
| | | // }, |
| | | // { |
| | | // area: "孙胡沟", |
| | | // areaId: "0", |
| | | // createTime: "2024-12-19 17:34:34", |
| | | // datPath: "e:/data/hydro/11011611021801/1869677696923045889", |
| | | // dataType: 2, |
| | | // dataValue: "", |
| | | // depthThreshold: 0, |
| | | // endTime: "2023-08-01 03:00:44", |
| | | // fileCount: 388, |
| | | // fileName: "截流坝雨量计0068.xls", |
| | | // hotStart: false, |
| | | // id: "1869677696608473090", |
| | | // name: "截流坝数据模拟0729-0731", |
| | | // noRainTime: 0, |
| | | // outputPeriod: 600, |
| | | // shpPath: "e:/data/hydro/11011611021801/shp", |
| | | // simulateType: 1, |
| | | // startTime: "2023-07-29 21:00:13", |
| | | // taskId: "1869677696923045889", |
| | | // taskStatus: 2, |
| | | // updateTime: "2024-12-19 17:34:34", |
| | | // userId: "0", |
| | | // }, |
| | | // { |
| | | // area: "孙胡沟", |
| | | // areaId: "0", |
| | | // createTime: "2024-12-13 15:03:24", |
| | | // datPath: "e:/data/hydro/11011611021801/1867465327392165890", |
| | | // dataType: 2, |
| | | // dataValue: "", |
| | | // depthThreshold: 0, |
| | | // endTime: "2023-07-31 12:00:00", |
| | | // fileCount: 288, |
| | | // fileName: "东江沟雨量计0110.xls", |
| | | // hotStart: false, |
| | | // id: "1867465327106953218", |
| | | // name: "东江沟数据模拟0729-0731", |
| | | // noRainTime: 0, |
| | | // outputPeriod: 600, |
| | | // shpPath: "e:/data/hydro/11011611021801/shp", |
| | | // simulateType: 1, |
| | | // startTime: "2023-07-29 12:00:00", |
| | | // taskId: "1867465327392165890", |
| | | // taskStatus: 2, |
| | | // updateTime: "2024-12-13 15:03:24", |
| | | // userId: "0", |
| | | // }, |
| | | // { |
| | | // area: "孙胡沟", |
| | | // areaId: "0", |
| | | // createTime: "2024-11-28 19:01:16", |
| | | // datPath: "e:/data/hydro/11011611021801/1862089369491931138", |
| | | // dataType: 2, |
| | | // dataValue: "", |
| | | // depthThreshold: 0, |
| | | // endTime: "2023-07-31 00:00:00", |
| | | // fileCount: 145, |
| | | // fileName: "东江沟雨量计0110.xls", |
| | | // hotStart: false, |
| | | // id: "1862089369462571010", |
| | | // name: "东江沟雨量0731", |
| | | // noRainTime: 0, |
| | | // outputPeriod: 600, |
| | | // shpPath: "e:/data/hydro/11011611021801/shp", |
| | | // simulateType: 1, |
| | | // startTime: "2023-07-30 00:00:00", |
| | | // taskId: "1862089369491931138", |
| | | // taskStatus: 2, |
| | | // updateTime: "2024-11-28 19:01:16", |
| | | // userId: "0", |
| | | // }, |
| | | // { |
| | | // area: "孙胡沟", |
| | | // areaId: "0", |
| | | // createTime: "2024-11-28 18:47:45", |
| | | // datPath: "e:/data/hydro/11011611021801/1862085967261270017", |
| | | // dataType: 0, |
| | | // dataValue: "", |
| | | // depthThreshold: 0, |
| | | // endTime: "2024-08-31 00:00:00", |
| | | // fileCount: 145, |
| | | // fileName: "", |
| | | // hotStart: false, |
| | | // id: "1862085967252881410", |
| | | // name: "雨强模拟方案0830", |
| | | // noRainTime: 0, |
| | | // outputPeriod: 600, |
| | | // shpPath: "e:/data/hydro/11011611021801/shp", |
| | | // simulateType: 1, |
| | | // startTime: "2024-08-30 00:00:00", |
| | | // taskId: "1862085967261270017", |
| | | // taskStatus: 2, |
| | | // updateTime: "2024-11-28 18:47:45", |
| | | // userId: "0", |
| | | // }, |
| | | // { |
| | | // area: "孙胡沟", |
| | | // areaId: "0", |
| | | // createTime: "2024-11-28 18:39:49", |
| | | // datPath: "e:/data/hydro/11011611021801/1862083971414294529", |
| | | // dataType: 1, |
| | | // dataValue: "", |
| | | // depthThreshold: 0, |
| | | // endTime: "2024-07-31 00:00:00", |
| | | // fileCount: 145, |
| | | // fileName: "", |
| | | // hotStart: false, |
| | | // id: "1862083971003252737", |
| | | // name: "雨量模拟方案0730", |
| | | // noRainTime: 0, |
| | | // outputPeriod: 600, |
| | | // shpPath: "e:/data/hydro/11011611021801/shp", |
| | | // simulateType: 1, |
| | | // startTime: "2024-07-30 00:00:00", |
| | | // taskId: "1862083971414294529", |
| | | // taskStatus: 2, |
| | | // updateTime: "2024-11-28 18:39:49", |
| | | // userId: "0", |
| | | // }, |
| | | // { |
| | | // area: "孙胡沟", |
| | | // areaId: "0", |
| | | // createTime: "2024-11-28 17:26:45", |
| | | // datPath: "e:/data/hydro/11011611021801/1862065584806100994", |
| | | // dataType: 0, |
| | | // dataValue: "", |
| | | // depthThreshold: 0, |
| | | // endTime: "2024-11-28 09:26:17", |
| | | // fileCount: 57, |
| | | // fileName: "", |
| | | // hotStart: false, |
| | | // id: "1862065584743186434", |
| | | // name: "雨强模拟方案1128", |
| | | // noRainTime: 0, |
| | | // outputPeriod: 600, |
| | | // shpPath: "e:/data/hydro/11011611021801/shp", |
| | | // simulateType: 1, |
| | | // startTime: "2024-11-28 00:00:00", |
| | | // taskId: "1862065584806100994", |
| | | // taskStatus: 2, |
| | | // updateTime: "2024-11-28 17:26:45", |
| | | // userId: "0", |
| | | // }, |
| | | // ]); |
| | | |
| | | const statusText = { |
| | | 0: "未开始", |
| | | 1: "进行中", |
| | |
| | | // 注册事件监听器 |
| | | EventBus.on("hide-schemeInfo", handleHideSchemeInfo); |
| | | |
| | | //////////////////////////////////// 暴露选中的 ID 给父组件(接口版本删除)//////////////////////////////////// |
| | | // defineExpose({ |
| | | // getSelectedId: () => selectedId.value, |
| | | // }); |
| | | |
| | | /////////////////////// 调用接口(使用时打开) /////////////////////// |
| | | import { getData, getSimData, deleteSimData } from "@/api/trApi.js"; |
| | | import { getRegionData, getSimData, deleteSimData } from "@/api/trApi.js"; |
| | | |
| | | onMounted(() => { |
| | | getScheme(); |
| | | // 111 |
| | | getData({ type:2 }) |
| | | .then(data => { |
| | | console.log('Data:', data); |
| | | }) |
| | | .catch(error => { |
| | | console.error('Error:', error); |
| | | }); |
| | | }); |
| | | |
| | | const props = defineProps({ |
| | |
| | | return true |
| | | } |
| | | |
| | | // 弹窗 |
| | | const openSaveDialog = async (forms) => { |
| | | // 保存方案逻辑 |
| | | const saveScheme = async (forms) => { |
| | | if (isLoading.value) { |
| | | ElMessage.warning('正在保存,请稍候...') |
| | | return |
| | | } |
| | | |
| | | isLoading.value = true |
| | | |
| | | try { |
| | | const params = { |
| | | areaType: getAreaType(selectTab.value), |
| | | createTime: Date.now(), |
| | | name: forms.name, |
| | | type: getRainType(forms.type), |
| | | status: 0, |
| | | data: forms.data |
| | | } |
| | | const res = await createSimData(params) |
| | | ElMessage.success('方案保存成功') |
| | | return res |
| | | } catch (error) { |
| | | console.error('保存失败:', error) |
| | | ElMessage.error('保存失败: ' + (error.message || '请稍后重试')) |
| | | throw error |
| | | } finally { |
| | | isLoading.value = false |
| | | } |
| | | } |
| | | |
| | | // 保存方案弹窗 |
| | | const addSimCheme = async (forms) => { |
| | | if (!validateForm(forms)) return |
| | | |
| | | try { |
| | |
| | | } |
| | | } |
| | | |
| | | const saveScheme = async (forms) => { |
| | | if (isLoading.value) { |
| | | ElMessage.warning('正在保存,请稍候...') |
| | | return |
| | | } |
| | | |
| | | isLoading.value = true |
| | | |
| | | try { |
| | | const params = { |
| | | areaType: getAreaType(selectTab.value), |
| | | createTime: Date.now(), |
| | | name: forms.name, |
| | | type: getRainType(forms.type), |
| | | status: 0, |
| | | data: forms.data |
| | | } |
| | | |
| | | const response = await createSimData(params) |
| | | ElMessage.success('方案保存成功') |
| | | return response |
| | | } catch (error) { |
| | | console.error('保存失败:', error) |
| | | ElMessage.error('保存失败: ' + (error.message || '请稍后重试')) |
| | | throw error |
| | | } finally { |
| | | isLoading.value = false |
| | | } |
| | | } |
| | | |
| | | |
| | | // // 新建方案 |
| | | // const createSimulation = async (forms) => { |
| | | // console.log(forms, 'ffffffff') |
| | | |
| | | // const params = { |
| | | // areaType: getAreaType(selectTab), |
| | | // createTime: Date.now(), |
| | | // name: forms.name, |
| | | // // 1为预测模拟,2为实时模拟,3为历史模拟 |
| | | // type: getRainType(forms.type), |
| | | // // 0为创建仿真,1为预处理,2为分析中,10为完成,20为出错 |
| | | // status: 0, |
| | | // data: forms.data |
| | | // } |
| | | // console.log(params, 'params') |
| | | |
| | | // try { |
| | | // await createSimData(params) |
| | | // } catch (error) { |
| | | // console.error('创建仿真失败:', error) |
| | | // } |
| | | // } |
| | | return { |
| | | // 状态 |
| | | selectTab, |
| | | isLoading, |
| | | // 方法 |
| | | handleClickTab, |
| | | openSaveDialog, |
| | | addSimCheme, |
| | | saveScheme, |
| | | } |
| | | }) |
| | |
| | | <!-- <el-form-item label="仿真参数:"></el-form-item> --> |
| | | </el-form> |
| | | <div style="display: flex; justify-content: flex-end"> |
| | | <el-button type="primary" @click="openSaveDialog">保存方案</el-button> |
| | | <el-button type="primary" @click="addSimCheme">保存方案</el-button> |
| | | <el-button type="success" @click="startPlay">开始模拟</el-button> |
| | | </div> |
| | | </div> |
| | |
| | | </template> |
| | | |
| | | <script setup> |
| | | import { reactive, ref, watch, inject, computed } from "vue"; |
| | | import { reactive, ref, watch, inject, computed, onMounted } from "vue"; |
| | | import * as XLSX from "xlsx"; |
| | | import Papa from "papaparse"; |
| | | import { ElMessage, ElMessageBox } from "element-plus"; |
| | | import { initeWaterPrimitiveView } from "@/utils/water"; |
| | | import { SimAPIStore } from "@/store/simAPI"; |
| | | import { getRegionData } from "@/api/trApi"; |
| | | |
| | | const cityOptions = reactive([]); |
| | | |
| | | onMounted(() => { |
| | | getRegionData({ type: 1 }).then((res) => { |
| | | console.log(res, "res"); |
| | | // 使用响应式数组的方法更新内容 |
| | | cityOptions.splice( |
| | | 0, |
| | | cityOptions.length, |
| | | ...res.data.map((item) => ({ |
| | | value: item.geom, |
| | | label: item.name, |
| | | })) |
| | | ); |
| | | }); |
| | | }); |
| | | |
| | | const simStore = SimAPIStore(); |
| | | |
| | |
| | | fileList: [], |
| | | }); |
| | | |
| | | // 城市和重点区域选项 |
| | | const cityOptions = [ |
| | | { value: "北京市", label: "北京市" }, |
| | | { value: "东城区", label: "东城区" }, |
| | | { value: "西城区", label: "西城区" }, |
| | | { value: "朝阳区", label: "朝阳区" }, |
| | | { value: "海淀区", label: "海淀区" }, |
| | | { value: "丰台区", label: "丰台区" }, |
| | | { value: "石景山区", label: "石景山区" }, |
| | | { value: "门头沟区", label: "门头沟区" }, |
| | | { value: "房山区", label: "房山区" }, |
| | | { value: "通州区", label: "通州区" }, |
| | | { value: "顺义区", label: "顺义区" }, |
| | | { value: "昌平区", label: "昌平区" }, |
| | | { value: "大兴区", label: "大兴区" }, |
| | | { value: "怀柔区", label: "怀柔区" }, |
| | | { value: "平谷区", label: "平谷区" }, |
| | | { value: "密云区", label: "密云区" }, |
| | | { value: "延庆区", label: "延庆区" }, |
| | | ]; |
| | | const earesOptions = [ |
| | | { value: "孙胡沟", label: "孙胡沟" }, |
| | | { value: "鱼水洞后沟", label: "鱼水洞后沟" }, |
| | |
| | | return forms.fileList.map((file) => file.name).join(", ") || "无"; |
| | | }); |
| | | |
| | | //////////////////////////////////接口版本启用////////////////////////////////// |
| | | const openSaveDialog = async () => { |
| | | await simStore.openSaveDialog(forms); |
| | | const addSimCheme = async () => { |
| | | await simStore.addSimCheme(forms); |
| | | }; |
| | | |
| | | // const isLoading = ref(false); |
| | | // // 保存方案 |
| | | // const openSaveDialog = () => { |
| | | // if ( |
| | | // !forms.rainfall || |
| | | // !forms.duration || |
| | | // !forms.intensity || |
| | | // (simStore.selectTab === "行政区划仿真" && !forms.eare) || |
| | | // (simStore.selectTab === "重点区域仿真" && !forms.eares) |
| | | // ) { |
| | | // ElMessage.warning("请先填写所有必填项"); |
| | | // return; |
| | | // } |
| | | // ElMessageBox.confirm("确定要保存当前方案吗?", dialogTitle.value, { |
| | | // confirmButtonText: "确定", |
| | | // cancelButtonText: "取消", |
| | | // type: "warning", |
| | | // }) |
| | | // .then(confirmSave) |
| | | // .catch(() => { |
| | | // ElMessage({ |
| | | // type: "info", |
| | | // message: "已取消保存", |
| | | // }); |
| | | // }); |
| | | // }; |
| | | // const confirmSave = async () => { |
| | | // if (isLoading.value) { |
| | | // ElMessage.warning("正在保存,请稍候..."); |
| | | // return; // 防止重复提交 |
| | | // } |
| | | // isLoading.value = true; // 开始加载状态 |
| | | // try { |
| | | // await simStore.createSimulation(forms); // 调用 Store 中的保存方法 |
| | | // ElMessage.success("保存成功"); |
| | | // saveDialogVisible.value = true; // 显示保存对话框(如果需要) |
| | | // } catch (error) { |
| | | // console.error("保存失败:", error); |
| | | // ElMessage.error("保存失败,请稍后重试"); |
| | | // } finally { |
| | | // isLoading.value = false; // 结束加载状态 |
| | | // } |
| | | // }; |
| | | //////////////////////////////////接口版本启用////////////////////////////////// |
| | | |
| | | // 重置表单 |
| | | const resetForm = () => { |
| | |
| | | |
| | | // 标签点击事件 |
| | | const handleClick = (tab) => { |
| | | SimAPIStore.handleClickTab(tab.props.label); |
| | | simStore.handleClickTab(tab.props.label); |
| | | }; |
| | | |
| | | // 返回上一级 |