|
@@ -1,101 +1,89 @@
|
|
<template>
|
|
<template>
|
|
- <div class="appmian">
|
|
|
|
|
|
+ <div class="appmian" >
|
|
|
|
+ <!-- <v-scale-screen width="1920" height="1080" style="margin: 0;"> -->
|
|
|
|
+
|
|
<el-container>
|
|
<el-container>
|
|
|
|
+
|
|
<el-header>
|
|
<el-header>
|
|
- <div class="ve_menu_logo">
|
|
|
|
- <div class="ve_title">
|
|
|
|
|
|
+ <div class="bgk1">
|
|
|
|
+ <div class="d-flex jc-center title_wrap">
|
|
|
|
+ <div class="timers">
|
|
|
|
+ {{ headertime.dateYear }} {{ headertime.dateWeek }} {{ headertime.dateDay }}
|
|
|
|
+ </div>
|
|
|
|
+ <div class="titlebtn titleanniu imgtupian" @click="handleSelect('1')" >突水推演</div>
|
|
|
|
+ <div class="titlebtn titleanniu imgtupian" style="margin-right: 20px;" @click="handleSelect('2')">火灾推演</div>
|
|
|
|
+ <div class="d-flex jc-center s-content">
|
|
|
|
+ <div class="title tiletimg">
|
|
<div class="ve_logo_img">
|
|
<div class="ve_logo_img">
|
|
<el-image style="height: 100%" :src="logo" fit="contain"></el-image>
|
|
<el-image style="height: 100%" :src="logo" fit="contain"></el-image>
|
|
</div>
|
|
</div>
|
|
- <h3 class="ve_logo_title">
|
|
|
|
- {{ title }}
|
|
|
|
- </h3>
|
|
|
|
- </div>
|
|
|
|
- <el-menu
|
|
|
|
- :default-active="activeIndex"
|
|
|
|
- class="el-menu-demo"
|
|
|
|
- mode="horizontal"
|
|
|
|
- :popper-offset="2"
|
|
|
|
- style="width: 780px"
|
|
|
|
- background-color="#0D1639 "
|
|
|
|
- active-background-color="#0E50C8"
|
|
|
|
- text-color="#68ADFF"
|
|
|
|
- active-text-color="#fff"
|
|
|
|
- @select="handleSelect"
|
|
|
|
- >
|
|
|
|
- <el-menu-item index="1">灾害源设置</el-menu-item>
|
|
|
|
- <el-menu-item index="2">边界设置</el-menu-item>
|
|
|
|
-
|
|
|
|
- <el-menu-item index="3">灾害推演</el-menu-item>
|
|
|
|
- <el-menu-item index="4">推演结果</el-menu-item>
|
|
|
|
- <el-menu-item index="5">结果对比</el-menu-item>
|
|
|
|
- </el-menu>
|
|
|
|
- <div class="ve_right">
|
|
|
|
- <div class="ve_timeioc" v-if="aid == null" @click="titleclick()">
|
|
|
|
- <span>请选择</span>
|
|
|
|
|
|
+
|
|
|
|
+ <span class="title-text">矿道灾情软件推演</span>
|
|
</div>
|
|
</div>
|
|
- <div v-else>
|
|
|
|
- <div class="ve_time" v-show="titlefalse" @click="titleclick()">
|
|
|
|
- <span class="l_huoqing" >{{ headerobj.name }}</span>
|
|
|
|
- <span class="l_time">{{ headerobj.time }}</span>
|
|
|
|
- </div>
|
|
|
|
- </div>
|
|
|
|
- <!-- <router-link to="/configurator"> -->
|
|
|
|
- <div class="ve_timeioc" @click="tiaozhuan()">
|
|
|
|
- <el-image :src="Vector" fit="contain"></el-image>
|
|
|
|
- <span>模型库</span>
|
|
|
|
- </div>
|
|
|
|
- <!-- </router-link> -->
|
|
|
|
</div>
|
|
</div>
|
|
|
|
+
|
|
|
|
+ <div class="titlebtn titleanniu imgtupian2" @click="handleSelect('3')">瓦斯爆炸推演</div>
|
|
|
|
+ <div class="titlebtn titleanniu imgtupian2" @click="handleSelect('4')">模型库</div>
|
|
</div>
|
|
</div>
|
|
|
|
+ </div>
|
|
</el-header>
|
|
</el-header>
|
|
-
|
|
|
|
|
|
+
|
|
<el-main>
|
|
<el-main>
|
|
- <Dialoges
|
|
|
|
- ref="lliudialog"
|
|
|
|
- :addselect="addselect"
|
|
|
|
- :valzaiqing="valzaiqing"
|
|
|
|
- :headerobj="headerobj"
|
|
|
|
- @leftsimulation="leftsimulation"
|
|
|
|
- @headerclick="headerclick"
|
|
|
|
- @handleSelect="handleSelect"
|
|
|
|
- @childfun="childfun"
|
|
|
|
- @moxingclick="moxingclick"
|
|
|
|
- ></Dialoges>
|
|
|
|
- <source-disaster ref="sourcedis" :classradio="classradio" />
|
|
|
|
- <info-boundary ref="boundary" :classradio="classradio" />
|
|
|
|
- <info-animation ref="tanimation" :classradio="classradio" :aid="aid" />
|
|
|
|
- <InfoVtkmodel ref="vtkmodel" />
|
|
|
|
- <result ref="resultbidui" @titleclick="titleclick" :classradio="classradio"></result>
|
|
|
|
- </el-main>
|
|
|
|
|
|
+ <div class="bgk2">
|
|
|
|
+ <div>
|
|
|
|
+ <ul>
|
|
|
|
+ <li class="s1" @click="handleSelect('2')" >
|
|
|
|
+ <el-image :src="s1" fit="contain"></el-image>
|
|
|
|
+ <span class="stext">火灾推演</span>
|
|
|
|
+ </li>
|
|
|
|
+ <li class="s2" @click="handleSelect('1')">
|
|
|
|
+ <el-image :src="s2" fit="contain"></el-image>
|
|
|
|
+ <span class="stext">突水推演</span>
|
|
|
|
+ </li>
|
|
|
|
+ <li class="s3" @click="handleSelect('3')">
|
|
|
|
+ <el-image :src="s3" fit="contain"></el-image>
|
|
|
|
+ <span class="stext">瓦斯爆炸推演</span>
|
|
|
|
+ </li>
|
|
|
|
+ <li class="s4" @click="handleSelect('4')"> <el-image :src="s4" fit="contain"></el-image>
|
|
|
|
+ <span class="stext">模型库</span>
|
|
|
|
+ </li>
|
|
|
|
+ </ul>
|
|
|
|
+ </div>
|
|
|
|
+ </div>
|
|
|
|
+ <Dialoges ref="lliudialog"
|
|
|
|
+ :addselect="addselect" :classradio="classradio"
|
|
|
|
+ ></Dialoges>
|
|
|
|
+ </el-main>
|
|
</el-container>
|
|
</el-container>
|
|
|
|
+ <!-- </v-scale-screen> -->
|
|
</div>
|
|
</div>
|
|
</template>
|
|
</template>
|
|
|
|
|
|
<script setup>
|
|
<script setup>
|
|
import { ref, onMounted, reactive, nextTick } from "vue";
|
|
import { ref, onMounted, reactive, nextTick } from "vue";
|
|
import { RouterView, RouterLink, useRouter } from "vue-router";
|
|
import { RouterView, RouterLink, useRouter } from "vue-router";
|
|
|
|
+ import '@/utils/flexible'
|
|
// import NavigateBar from "@/components/layout/NavigateBar.vue";
|
|
// import NavigateBar from "@/components/layout/NavigateBar.vue";
|
|
import Dialoges from "./InfoDialoges.vue";
|
|
import Dialoges from "./InfoDialoges.vue";
|
|
import logo from "@/assets/logo.png";
|
|
import logo from "@/assets/logo.png";
|
|
import { ElMessage, ElButton, ElDialog, ElSelect, formEmits } from 'element-plus'
|
|
import { ElMessage, ElButton, ElDialog, ElSelect, formEmits } from 'element-plus'
|
|
- // import myIndex from "./index"
|
|
|
|
- import SourceDisaster from "./components/InfoDisaster.vue";
|
|
|
|
- import InfoBoundary from "./components/InfoBoundary.vue";
|
|
|
|
- import InfoAnimation from "./components/InfoAnimation.vue";
|
|
|
|
- import InfoVtkmodel from "./components/InfoVtkmodel.vue";
|
|
|
|
- import result from "./result.vue";
|
|
|
|
import Vector from "@/assets/img/Vector.png";
|
|
import Vector from "@/assets/img/Vector.png";
|
|
- import { timestampToTime } from "@/js/lindex.js";
|
|
|
|
- import mitts from "@/utils/Bus";
|
|
|
|
- import { contains } from "@kitware/vtk.js/Common/DataModel/BoundingBox";
|
|
|
|
- // import { vtkmodel } from "@/control/vtkModel.js";
|
|
|
|
|
|
+ import s1 from "@/assets/img/s1.png";
|
|
|
|
+ import s2 from "@/assets/img/s2.png";
|
|
|
|
+ import s3 from "@/assets/img/s3.png";
|
|
|
|
+ import s4 from "@/assets/img/s4.png";
|
|
|
|
+ import b from "@/assets/img/Group1317.png";
|
|
|
|
+ import { timestampToTime,formatTime } from "@/js/lindex.js";
|
|
|
|
+
|
|
|
|
+
|
|
|
|
|
|
let lliudialog = ref();
|
|
let lliudialog = ref();
|
|
let sourcedis = ref();
|
|
let sourcedis = ref();
|
|
let classradio = ref();
|
|
let classradio = ref();
|
|
let boundary = ref();
|
|
let boundary = ref();
|
|
let tanimation = ref();
|
|
let tanimation = ref();
|
|
|
|
+ let menumine=ref();
|
|
|
|
+ let menusen=ref();
|
|
const title = "灾情推演软件";
|
|
const title = "灾情推演软件";
|
|
const activeIndex = ref("1");
|
|
const activeIndex = ref("1");
|
|
const activeIndex2 = ref("1");
|
|
const activeIndex2 = ref("1");
|
|
@@ -105,6 +93,15 @@
|
|
let resultleft = ref({});
|
|
let resultleft = ref({});
|
|
let datares=ref({});
|
|
let datares=ref({});
|
|
let resultright = ref({});
|
|
let resultright = ref({});
|
|
|
|
+ let headertime=ref({
|
|
|
|
+ timing: null,
|
|
|
|
+ loading: true,
|
|
|
|
+ dateDay: null,
|
|
|
|
+ dateYear: null,
|
|
|
|
+ dateWeek: null,
|
|
|
|
+ weekday: ["周日", "周一", "周二", "周三", "周四", "周五", "周六"],
|
|
|
|
+ })
|
|
|
|
+
|
|
let headerobj = ref({
|
|
let headerobj = ref({
|
|
time: "",
|
|
time: "",
|
|
name: "",
|
|
name: "",
|
|
@@ -113,91 +110,22 @@
|
|
let router = useRouter();
|
|
let router = useRouter();
|
|
let sgdata = ref({});
|
|
let sgdata = ref({});
|
|
let aid = ref();
|
|
let aid = ref();
|
|
- onMounted(() => {});
|
|
|
|
|
|
+ onMounted(() => {
|
|
|
|
+ timeFn()
|
|
|
|
+ });
|
|
// 跳转页面,{ aid:aid.value}
|
|
// 跳转页面,{ aid:aid.value}
|
|
- const tiaozhuan = () => {
|
|
|
|
- activeIndex.value = "1";
|
|
|
|
- handleSelect( activeIndex.value);
|
|
|
|
- const key = activeIndex.value;
|
|
|
|
- sourcedis.value.changeModel();
|
|
|
|
- sourcedis.value.accident3(key);
|
|
|
|
- boundary.value.accident4(key);
|
|
|
|
- lliudialog.value.accident2(key);
|
|
|
|
- tanimation.value.monitor = false;
|
|
|
|
- router.push({ path: "/configurator" });
|
|
|
|
-
|
|
|
|
- // console.log(router.push("/configurator"))
|
|
|
|
-
|
|
|
|
- // console.log(router.push("/configurator"))
|
|
|
|
- };
|
|
|
|
-
|
|
|
|
- const addselect = () => {
|
|
|
|
- classradio.value = lliudialog.value.classradio;
|
|
|
|
- };
|
|
|
|
- // 获取模拟数据对比
|
|
|
|
- const leftsimulation = (res,data) => {
|
|
|
|
- if (mnindex.value == "1") {
|
|
|
|
- resultleft.value.coids = res.coids;
|
|
|
|
- resultleft.value.totaltime = res.totaltime;
|
|
|
|
- resultleft.value.reportstep = res.reportstep;
|
|
|
|
- resultleft.value.pickertime = res.acctime;
|
|
|
|
- resultleft.value.aid = res.aid;
|
|
|
|
- resultbidui.value.mntext1=data.name;
|
|
|
|
-
|
|
|
|
-
|
|
|
|
- } else {
|
|
|
|
- resultright.value.coids = res.coids;
|
|
|
|
- resultright.value.totaltime = res.totaltime;
|
|
|
|
- resultright.value.reportstep = res.reportstep;
|
|
|
|
- resultright.value.pickertime = res.acctime;
|
|
|
|
- resultright.value.aid = res.aid;
|
|
|
|
- resultbidui.value.mntext2=data.name;
|
|
|
|
- }
|
|
|
|
-
|
|
|
|
- //TODO
|
|
|
|
- if(resultleft.value.aid==''||resultright.value.aid==''||resultleft.value.aid==undefined||resultright.value.aid==undefined){
|
|
|
|
-
|
|
|
|
-
|
|
|
|
- }else{
|
|
|
|
- if (resultleft.value.coids != resultright.value.coids) {
|
|
|
|
- ElMessage.error('污染物不一样,无法进行比较')
|
|
|
|
- return;
|
|
|
|
- }
|
|
|
|
-
|
|
|
|
- if (resultleft.value.totaltime != resultright.value.totaltime) {
|
|
|
|
- ElMessage.error('模拟时长不一样,无法进行比较')
|
|
|
|
- return;
|
|
|
|
- }
|
|
|
|
-
|
|
|
|
- if (resultleft.value.reportstep != resultright.value.reportstep) {
|
|
|
|
- ElMessage.error('输出步长不一样,无法进行比较')
|
|
|
|
- return;
|
|
|
|
- }
|
|
|
|
-
|
|
|
|
- if (resultleft.value.pickertime != resultright.value.pickertime ) {
|
|
|
|
- ElMessage.error('事故时间不一样,无法进行比较')
|
|
|
|
- return;
|
|
|
|
- }
|
|
|
|
-
|
|
|
|
- //TODO 获取物理量
|
|
|
|
- resultbidui.value.timeline=res.acctime;
|
|
|
|
- resultbidui.value.oldtime=res.acctime;
|
|
|
|
- // resultbidui.value.zdtime=res.acctime;
|
|
|
|
- resultbidui.value.endtime= Number(res.totaltime)/Number(res.reportstep);
|
|
|
|
- resultbidui.value.initAid(resultleft.value.aid,resultright.value.aid);
|
|
|
|
- resultbidui.value.clickflat=true;
|
|
|
|
|
|
+ // 当前时间
|
|
|
|
+ const timeFn=()=> {
|
|
|
|
+ headertime.value.timing = setInterval(() => {
|
|
|
|
+ headertime.value.dateDay = formatTime(new Date(), "HH: mm: ss");
|
|
|
|
+ headertime.value.dateYear = formatTime(new Date(), "yyyy-MM-dd");
|
|
|
|
+ headertime.value.dateWeek = headertime.value.weekday[new Date().getDay()];
|
|
|
|
+ }, 1000);
|
|
}
|
|
}
|
|
-
|
|
|
|
-
|
|
|
|
- };
|
|
|
|
- //判断两个对象是否相等
|
|
|
|
- const objequality = () => {};
|
|
|
|
- const moxingclick = (val) => {
|
|
|
|
- titlefalse.value = val;
|
|
|
|
- };
|
|
|
|
- // const qingsel=()=>{
|
|
|
|
- // lliudialog.value.dialogVisible = true;
|
|
|
|
- // }
|
|
|
|
|
|
+
|
|
|
|
+const addselect = () => {
|
|
|
|
+ classradio.value = lliudialog.value.classradio;
|
|
|
|
+};
|
|
//点击头部弹出弹框
|
|
//点击头部弹出弹框
|
|
|
|
|
|
const titleclick = (val, index) => {
|
|
const titleclick = (val, index) => {
|
|
@@ -210,79 +138,27 @@
|
|
clearInterval();
|
|
clearInterval();
|
|
}
|
|
}
|
|
};
|
|
};
|
|
- //获取aid
|
|
|
|
- const aidlist = () => {
|
|
|
|
- sgdata.value = lliudialog.value.sgdata;
|
|
|
|
- aid.value = sgdata.value.aid;
|
|
|
|
- };
|
|
|
|
- // 获取子组件的方法
|
|
|
|
- const childfun = () => {
|
|
|
|
-
|
|
|
|
- if(classradio.value=='Gass'){
|
|
|
|
- sourcedis.value.Gassgetdata(aid.value);
|
|
|
|
- }else{
|
|
|
|
- sourcedis.value.handledisaster(aid.value);
|
|
|
|
- }
|
|
|
|
- boundary.value.addboundary(aid.value);
|
|
|
|
- sourcedis.value.accident3();
|
|
|
|
- };
|
|
|
|
- const headerclick = (data) => {
|
|
|
|
- console.log(data);
|
|
|
|
- headerobj.value.name = data.name;
|
|
|
|
- headerobj.value.time = data.time;
|
|
|
|
- aid.value = data.aid;
|
|
|
|
- };
|
|
|
|
const handleSelect = (key) => {
|
|
const handleSelect = (key) => {
|
|
- activeIndex.value = "";
|
|
|
|
|
|
+
|
|
|
|
+ activeIndex.value =key;
|
|
switch (key) {
|
|
switch (key) {
|
|
case "1":
|
|
case "1":
|
|
- sourcedis.value.changeModel();
|
|
|
|
- sourcedis.value.accident3(key);
|
|
|
|
- boundary.value.accident4(key);
|
|
|
|
- lliudialog.value.accident2(key);
|
|
|
|
- tanimation.value.monitor = false;
|
|
|
|
- resultbidui.value.accident6(key, aid.value);
|
|
|
|
- tanimation.value.accident5(aid.value, key);
|
|
|
|
- activeIndex.value = "1";
|
|
|
|
|
|
+ classradio.value="Water";
|
|
|
|
+ lliudialog.value.classclick( classradio.value);
|
|
break;
|
|
break;
|
|
case "2":
|
|
case "2":
|
|
- boundary.value.changeModel();
|
|
|
|
- boundary.value.accident4(key);
|
|
|
|
- sourcedis.value.accident3(key);
|
|
|
|
- lliudialog.value.accident2(key);
|
|
|
|
- tanimation.value.monitor = false;
|
|
|
|
- resultbidui.value.accident6(key, aid.value);
|
|
|
|
- tanimation.value.accident5(aid.value, key);
|
|
|
|
- activeIndex.value = "2";
|
|
|
|
|
|
+ classradio.value="Fire";
|
|
|
|
+ lliudialog.value.classclick( classradio.value);
|
|
break;
|
|
break;
|
|
case "3":
|
|
case "3":
|
|
- lliudialog.value.changeModel();
|
|
|
|
- boundary.value.accident4(key);
|
|
|
|
- sourcedis.value.accident3(key);
|
|
|
|
- lliudialog.value.accident2(key);
|
|
|
|
- tanimation.value.monitor = false;
|
|
|
|
- activeIndex.value = "3";
|
|
|
|
- tanimation.value.accident5(aid.value, key);
|
|
|
|
- resultbidui.value.accident6(key, aid.value);
|
|
|
|
-
|
|
|
|
|
|
+ classradio.value="Gass";
|
|
|
|
+ lliudialog.value.classclick( classradio.value);
|
|
break;
|
|
break;
|
|
case "4":
|
|
case "4":
|
|
- boundary.value.accident4(key);
|
|
|
|
- tanimation.value.accident5(aid.value, key);
|
|
|
|
- sourcedis.value.accident3(key);
|
|
|
|
- lliudialog.value.accident2(key);
|
|
|
|
- resultbidui.value.accident6(key, aid.value);
|
|
|
|
- activeIndex.value = "4";
|
|
|
|
|
|
+ classradio.value="Model";
|
|
break;
|
|
break;
|
|
case "5":
|
|
case "5":
|
|
- sourcedis.value.changeModel();
|
|
|
|
- sourcedis.value.accident3(key);
|
|
|
|
- boundary.value.accident4(key);
|
|
|
|
- lliudialog.value.accident2(key);
|
|
|
|
- resultbidui.value.accident6(key, aid.value);
|
|
|
|
- tanimation.value.accident5(aid.value, key);
|
|
|
|
- tanimation.value.monitor = false;
|
|
|
|
- activeIndex.value = "5";
|
|
|
|
|
|
+
|
|
default:
|
|
default:
|
|
break;
|
|
break;
|
|
}
|
|
}
|
|
@@ -290,12 +166,18 @@
|
|
</script>
|
|
</script>
|
|
|
|
|
|
<style lang="scss" scoped>
|
|
<style lang="scss" scoped>
|
|
|
|
+
|
|
|
|
+ .title_wrap{
|
|
|
|
+ display: flex;
|
|
|
|
+ justify-content: center;
|
|
|
|
+ color: #fff;
|
|
|
|
+ }
|
|
.appmian {
|
|
.appmian {
|
|
.el-main {
|
|
.el-main {
|
|
--el-main-padding: 0 !important;
|
|
--el-main-padding: 0 !important;
|
|
}
|
|
}
|
|
|
|
|
|
- .el-header {
|
|
|
|
|
|
+ .el-container {
|
|
padding: 0;
|
|
padding: 0;
|
|
margin: 0;
|
|
margin: 0;
|
|
width: 100%;
|
|
width: 100%;
|
|
@@ -325,7 +207,7 @@
|
|
|
|
|
|
.ve_logo_img {
|
|
.ve_logo_img {
|
|
padding-left: 30px;
|
|
padding-left: 30px;
|
|
- height: 100%;
|
|
|
|
|
|
+ padding-right: 30px;
|
|
display: inline-block;
|
|
display: inline-block;
|
|
box-sizing: border-box;
|
|
box-sizing: border-box;
|
|
vertical-align: middle;
|
|
vertical-align: middle;
|
|
@@ -444,9 +326,6 @@
|
|
.ve_timeioc {
|
|
.ve_timeioc {
|
|
width: 150px;
|
|
width: 150px;
|
|
height: 70px;
|
|
height: 70px;
|
|
- // border-radius: 0px 0px 0px 0px;
|
|
|
|
- // border: 1px solid;
|
|
|
|
- // border-image: linear-gradient(347deg, rgba(16, 92, 240, 1), rgba(164, 195, 255, 1)) 1 1;
|
|
|
|
font-family: Microsoft YaHei UI, Microsoft YaHei UI;
|
|
font-family: Microsoft YaHei UI, Microsoft YaHei UI;
|
|
font-weight: bold;
|
|
font-weight: bold;
|
|
font-size: 13px;
|
|
font-size: 13px;
|
|
@@ -468,6 +347,7 @@
|
|
</style>
|
|
</style>
|
|
|
|
|
|
<style>
|
|
<style>
|
|
|
|
+ @import '../../src/style/style.css';
|
|
body {
|
|
body {
|
|
width: 100%;
|
|
width: 100%;
|
|
height: 100vh;
|
|
height: 100vh;
|
|
@@ -480,9 +360,16 @@
|
|
}
|
|
}
|
|
|
|
|
|
.l_Dialog {
|
|
.l_Dialog {
|
|
- /* position: absolute; */
|
|
|
|
- z-index: 206;
|
|
|
|
- top: 0;
|
|
|
|
|
|
+ position: relative;
|
|
|
|
+ }
|
|
|
|
+ .main-conyeny{
|
|
|
|
+ position: absolute;
|
|
|
|
+ z-index: 206;
|
|
|
|
+ top: 70px;
|
|
|
|
+ }
|
|
|
|
+ .L_aside {
|
|
|
|
+ margin-top: 10px;
|
|
|
|
+ overflow: hidden;
|
|
}
|
|
}
|
|
</style>
|
|
</style>
|
|
|
|
|