| | |
| | | <span style="color: aquamarine"> |
| | | {{ item.result === "-1" ? "出错" : item.result || "创建仿真" }} |
| | | </span> |
| | | <!-- <span style="color: aquamarine">{{ item.result || "创建仿真" }}</span> --> |
| | | <!-- <span style="color: aquamarine">{{ |
| | | statusText[item.status] || "未知" |
| | | }}</span> --> |
| | | </p> |
| | | </div> |
| | | <div class="cardMenu"> |
| | |
| | | :selectedScheme="currentScheme" |
| | | @back="handleBack" |
| | | /> |
| | | <flowRateTab |
| | | v-if="schemeInfoShow"> |
| | | 123 |
| | | </flowRateTab> |
| | | <flowRateTab v-if="schemeInfoShow"> 123 </flowRateTab> |
| | | </div> |
| | | <Message |
| | | @close="close" |
| | |
| | | selectedId.value = id; |
| | | } |
| | | |
| | | const statusText = { |
| | | 0: "创建仿真", |
| | | 1: "预处理", |
| | | 2: "分析中", |
| | | 10: "完成", |
| | | 20: "出错", |
| | | }; |
| | | |
| | | function formatTime(time) { |
| | | return dayjs(time).format("YYYY-MM-DD HH:mm:ss"); |
| | |
| | | messageShow.value = false; |
| | | } |
| | | |
| | | function startPlay(item) { |
| | | // 分析中 |
| | | if (item.status == 2) { |
| | | async function startPlay(item) { |
| | | if (item.status === 2) { |
| | | ElMessage.warning("当前方案正在分析中,无法进入模拟!"); |
| | | return; |
| | | } |
| | | // 出错 |
| | | if (item.status == 20) { |
| | | |
| | | if (item.status === 20) { |
| | | ElMessage.error("当前方案分析出错,请重新新建方案!"); |
| | | return; |
| | | } |
| | | // 调用求解器并拿到最新生成的serviceName |
| | | // 新创建的方案没有状态以及serviceName则执行调用求解器 |
| | | if (!item.status && !item.serviceName) { |
| | | getSimStart(item.id).then((res) => { |
| | | getSimDataById(item.id).then((res) => { |
| | | item.serviceName = res.data[0].serviceName; |
| | | simStore.setSelectedScheme(item); |
| | | console.log(item, "无服务名称"); |
| | | ElMessage.warning("当前方案正在分析中,请稍后再模拟"); |
| | | getScheme(); |
| | | }); |
| | | }); |
| | | } else { |
| | | |
| | | // 如果是已完成的方案(status == 10) |
| | | if (item.status === 10) { |
| | | const flyHeight = item.areaType === 1 ? 100000 : 50000; |
| | | simStore.setSelectedScheme(item); |
| | | console.log("有服务名称"); |
| | | } |
| | | |
| | | const flyHeight = ref(100000); |
| | | |
| | | const shouldShowFill = false; |
| | | |
| | | // 求解器求解完成之后才可以显示时间轴 |
| | | if (item.status == 10) { |
| | | // 只有行政区划执行 |
| | | if (item.areaType == 1) { |
| | | flyHeight.value = 100000; |
| | | if (item.areaType === 1) { |
| | | EventBus.emit("select-geom", { |
| | | geom: item.geom, |
| | | flyHeight: flyHeight.value, |
| | | shouldShowFill: shouldShowFill, |
| | | flyHeight, |
| | | shouldShowFill: false, |
| | | }); |
| | | } else { |
| | | // 孙胡沟区域跳转视角 |
| | | initeWaterPrimitiveView(); |
| | | } |
| | | |
| | | currentScheme.value = item; |
| | | schemeInfoShow.value = true; |
| | | emit("closeBtn", false); |
| | | emit("start"); |
| | | return; |
| | | } |
| | | |
| | | // 调用求解器(不在实时模拟的情况下) |
| | | if (!item.status && !item.serviceName && item.type !== 2) { |
| | | try { |
| | | await getSimStart(item.id); |
| | | const res = await getSimDataById(item.id); |
| | | |
| | | item.serviceName = res.data[0]?.serviceName || null; |
| | | simStore.setSelectedScheme(item); |
| | | ElMessage.warning("当前方案正在分析中,请稍后再模拟"); |
| | | getScheme(); |
| | | } catch (e) { |
| | | console.error("获取模拟数据失败:", e); |
| | | } |
| | | return; |
| | | } |
| | | |
| | | // 实时模拟 |
| | | if (item.type === 2) { |
| | | try { |
| | | // 实时模拟调用求解器会直接在接口中返回结果 |
| | | const ress = await getSimStart(item.id); |
| | | const res = await getSimDataById(item.id); |
| | | item.serviceName = res.data[0]?.serviceName || null; |
| | | simStore.setSelectedScheme(item); |
| | | getScheme(); |
| | | |
| | | if (ress.code === 200) { |
| | | initeWaterPrimitiveView(); |
| | | emit("start"); |
| | | } |
| | | } catch (e) { |
| | | console.error("实时模拟获取模拟数据失败:", e); |
| | | } |
| | | return; |
| | | } |
| | | |
| | | // 默认情况:有服务名称 |
| | | simStore.setSelectedScheme(item); |
| | | } |
| | | |
| | | function endPlay() { |
| | | emit("end"); |
| | | } |
| | | |
| | | |
| | | function handleBack(value) { |
| | | if (value === false) { |