home.vue 9.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386
  1. <template>
  2. <div class="apphome" >
  3. <el-container>
  4. <el-header>
  5. <div class="bgk1">
  6. <div class="d-flex jc-center title_wrap">
  7. <div class="ve_logo_img">
  8. <el-image style="height: 100%" :src="logo" fit="contain"></el-image>
  9. </div>
  10. <div class="timers">
  11. {{ headertime.dateYear }} {{ headertime.dateWeek }} {{ headertime.dateDay }}
  12. </div>
  13. <div class="titlebtn titleanniu imgtupian" @click="handleSelect('1')">突水推演</div>
  14. <div class="titlebtn titleanniu imgtupian" @click="handleSelect('2')">火灾推演</div>
  15. <div class="d-flex jc-center s-content">
  16. <div class="title tiletimg">
  17. <!-- <div class="ve_logo_img">
  18. <el-image style="height: 100%" :src="logo" fit="contain"></el-image>
  19. </div> -->
  20. <span class="title-text">矿道灾情软件推演</span>
  21. </div>
  22. </div>
  23. <div class="titlebtn titleanniu imgtupian2" style="margin-left: 0px;" @click="handleSelect('3')" >瓦斯爆炸推演</div>
  24. <div class="titlebtn titleanniu imgtupian2" style="margin-left: 0px;" @click="handleSelect('5')" >一维模型</div>
  25. <div class="titlebtn titleanniu imgtupian2" @click="handleSelect('4')" >模型库</div>
  26. </div>
  27. </div>
  28. </el-header>
  29. <el-main>
  30. <div class="bgk2">
  31. <div>
  32. <ul>
  33. <li class="s1" @click="handleSelect('2')" >
  34. <el-image :src="s1" fit="contain"></el-image>
  35. <span class="stext">火灾推演</span>
  36. </li>
  37. <li class="s2" @click="handleSelect('1')">
  38. <el-image :src="s2" fit="contain"></el-image>
  39. <span class="stext">突水推演</span>
  40. </li>
  41. <li class="s3" @click="handleSelect('3')">
  42. <el-image :src="s3" fit="contain"></el-image>
  43. <span class="stext">瓦斯爆炸推演</span>
  44. </li>
  45. <li class="s4" @click="handleSelect('4')"> <el-image :src="s4" fit="contain"></el-image>
  46. <span class="stext">模型库</span>
  47. </li>
  48. </ul>
  49. </div>
  50. </div>
  51. <Dialoges
  52. ref="lliudialog"
  53. :addselect="addselect"
  54. @handleSelect="handleSelect"
  55. :classradio="classradio"
  56. ></Dialoges>
  57. </el-main>
  58. </el-container>
  59. </div>
  60. </template>
  61. <script setup>
  62. import { ref, onMounted, reactive, nextTick } from "vue";
  63. import { RouterView, RouterLink, useRouter,useRoute} from "vue-router";
  64. import VScaleScreen from 'v-scale-screen'
  65. import '@/utils/flexible'
  66. import Dialoges from "./InfoDialoges.vue";
  67. import logo from "@/assets/logo.png";
  68. import { ElMessage, ElButton, ElDialog, ElSelect, formEmits } from 'element-plus'
  69. import s1 from "@/assets/img/s1.png";
  70. import s2 from "@/assets/img/s2.png";
  71. import s3 from "@/assets/img/s3.png";
  72. import s4 from "@/assets/img/s4.png";
  73. import b from "@/assets/img/Group1317.png";
  74. import { timestampToTime,formatTime } from "@/js/lindex.js";
  75. import mitts from "@/utils/Bus";
  76. import { contains } from "@kitware/vtk.js/Common/DataModel/BoundingBox";
  77. // import { vtkmodel } from "@/control/vtkModel.js";
  78. let lliudialog = ref();
  79. let sourcedis = ref();
  80. let classradio = ref();
  81. let boundary = ref();
  82. let tanimation = ref();
  83. let menumine=ref();
  84. let menusen=ref();
  85. const title = "灾情推演软件";
  86. const activeIndex = ref("1");
  87. const activeIndex2 = ref("1");
  88. let titlefalse = ref(false);
  89. let resultbidui = ref();
  90. let mnindex = ref("");
  91. let resultleft = ref({});
  92. let datares=ref({});
  93. let resultright = ref({});
  94. let headertime=ref({
  95. timing: null,
  96. loading: true,
  97. dateDay: null,
  98. dateYear: null,
  99. dateWeek: null,
  100. weekday: ["周日", "周一", "周二", "周三", "周四", "周五", "周六"],
  101. })
  102. let headerobj = ref({
  103. time: "",
  104. name: "",
  105. });
  106. let valzaiqing = ref("");
  107. let router = useRouter();
  108. let route=useRoute();
  109. let sgdata = ref({});
  110. let aid = ref();
  111. onMounted(() => {
  112. timeFn()
  113. console.log(route.query )
  114. if(route.query.classradio!=undefined){
  115. classradio.value=route.query.classradio;
  116. handleSelect(route.query.classradio)
  117. }
  118. });
  119. // 跳转页面,{ aid:aid.value}
  120. // 当前时间
  121. const timeFn=()=> {
  122. headertime.value.timing = setInterval(() => {
  123. headertime.value.dateDay = formatTime(new Date(), "HH: mm: ss");
  124. headertime.value.dateYear = formatTime(new Date(), "yyyy-MM-dd");
  125. headertime.value.dateWeek = headertime.value.weekday[new Date().getDay()];
  126. }, 1000);
  127. }
  128. const addselect = () => {
  129. classradio.value = lliudialog.value.classradio;
  130. };
  131. const handleSelect = (key) => {
  132. activeIndex.value =key;
  133. switch (key) {
  134. case "1":
  135. classradio.value="Water";
  136. lliudialog.value.classclick( classradio.value);
  137. break;
  138. case "2":
  139. classradio.value="Fire";
  140. lliudialog.value.classclick( classradio.value);
  141. break;
  142. case "3":
  143. classradio.value="Gass";
  144. lliudialog.value.classclick( classradio.value);
  145. break;
  146. case "4":
  147. classradio.value="Model";
  148. break;
  149. case "5":
  150. default:
  151. break;
  152. }
  153. };
  154. </script>
  155. <style lang="scss" scoped>
  156. .title_wrap{
  157. display: flex;
  158. justify-content: center;
  159. color: #fff;
  160. }
  161. .apphome {
  162. .el-main {
  163. --el-main-padding: 0 !important;
  164. }
  165. .el-container {
  166. padding: 0;
  167. margin: 0;
  168. width: 100%;
  169. position: absolute;
  170. z-index: 206;
  171. top: 0;
  172. }
  173. }
  174. .ve_menu_logo {
  175. width: 100%;
  176. height: 70px;
  177. background: #0d1639;
  178. white-space: nowrap;
  179. text-align: left;
  180. overflow: hidden;
  181. display: flex;
  182. background: #0d1639;
  183. box-shadow: inset 0px 0px 17px 5px rgba(12, 97, 197, 0.2);
  184. border-radius: 0px 0px 0px 0px;
  185. border-bottom: 1px solid;
  186. box-sizing: border-box;
  187. border-image: linear-gradient(28deg, rgba(31, 107, 255, 1), rgba(31, 107, 255, 0)) 1 1;
  188. .ve_title {
  189. }
  190. .ve_logo_img {
  191. padding-left: 30px;
  192. padding-right: 30px;
  193. display: inline-block;
  194. box-sizing: border-box;
  195. vertical-align: middle;
  196. padding: 15px;
  197. }
  198. .ve_logo_title {
  199. width: 160px;
  200. white-space: nowrap;
  201. overflow: hidden;
  202. text-overflow: ellipsis;
  203. display: inline-block;
  204. margin: 0;
  205. vertical-align: middle;
  206. color: #68adff;
  207. font-size: 20px;
  208. }
  209. .el-menu-demo {
  210. width: 60% !important;
  211. height: 70px;
  212. border: none !important;
  213. background: rgba(12, 97, 197, 0);
  214. .el-menu-item {
  215. position: relative;
  216. width: 97px;
  217. font-family: Microsoft YaHei UI, Microsoft YaHei UI;
  218. font-weight: bold;
  219. font-size: 13px;
  220. color: #68adff;
  221. line-height: 15px;
  222. text-align: center;
  223. font-style: normal;
  224. text-transform: none;
  225. width: 110px;
  226. height: 70px;
  227. border-radius: 0px 0px 0px 0px;
  228. border: none;
  229. }
  230. .is-active {
  231. width: 110px;
  232. height: 70px;
  233. background: radial-gradient(ellipse at 54px 0px, #3aa0ff -37%, #123066 53%);
  234. border-radius: 0px 0px 0px 0px;
  235. border: 1px solid;
  236. border-left: 1px solid rgba(16, 92, 240, 1);
  237. border-right: 1px solid rgba(18, 48, 102, 1);
  238. border-image: linear-gradient(347deg, rgba(16, 92, 240, 1), rgba(18, 48, 102, 1)) 1
  239. 1;
  240. &:after {
  241. width: 24px;
  242. height: 1px;
  243. background-color: #fff;
  244. -webkit-transition: all ease-out 0.2s;
  245. transition: all ease-out 0.2s;
  246. content: "";
  247. position: absolute;
  248. left: 50%;
  249. bottom: 15px;
  250. webkit-transform: translate(-50%, 0%);
  251. -moz-transform: translate(-50%, 0%);
  252. transform: translate(-50%, 0%);
  253. }
  254. }
  255. }
  256. .ve_right {
  257. // width: 350px;
  258. height: 70px;
  259. overflow: hidden;
  260. position: absolute;
  261. right: 0;
  262. display: flex;
  263. .ve_time {
  264. width: 190px;
  265. height: 55px;
  266. padding-top: 15px;
  267. height: 70px;
  268. overflow: hidden;
  269. border-radius: 0px 0px 0px 0px;
  270. border-left: 2px solid rgba(12, 97, 197, 0.2);
  271. border-right: 2px solid rgba(12, 97, 197, 0.2);
  272. box-sizing: border-box;
  273. padding: 15px 5px;
  274. // border-image: linear-gradient(347deg, rgba(31, 107, 255, 1), rgba(164, 195, 255, 1)) 1 1;
  275. span {
  276. display: block;
  277. font-family: Microsoft YaHei UI, Microsoft YaHei UI;
  278. color: #ffffff;
  279. text-align: center;
  280. font-style: normal;
  281. text-transform: none;
  282. }
  283. .l_huoqing {
  284. font-size: 13px;
  285. line-height: 15px;
  286. font-weight: bold;
  287. line-height: 2;
  288. white-space: nowrap;
  289. overflow: hidden;
  290. text-overflow: ellipsis;
  291. }
  292. .l_time {
  293. font-size: 12px;
  294. line-height: 14px;
  295. font-weight: 400;
  296. }
  297. }
  298. .ve_timeioc {
  299. width: 150px;
  300. height: 70px;
  301. // border-radius: 0px 0px 0px 0px;
  302. // border: 1px solid;
  303. // border-image: linear-gradient(347deg, rgba(16, 92, 240, 1), rgba(164, 195, 255, 1)) 1 1;
  304. font-family: Microsoft YaHei UI, Microsoft YaHei UI;
  305. font-weight: bold;
  306. font-size: 13px;
  307. color: #68adff;
  308. line-height: 15px;
  309. text-align: center;
  310. font-style: normal;
  311. text-transform: none;
  312. display: flex;
  313. justify-content: center;
  314. align-items: center;
  315. span {
  316. padding-left: 15px;
  317. }
  318. }
  319. }
  320. }
  321. </style>
  322. <style>
  323. /* @import '../../src/style/style.css'; */
  324. body {
  325. width: 100%;
  326. height: 100vh;
  327. background: #161a2a;
  328. }
  329. button:focus,
  330. button:focus-visible {
  331. outline: none;
  332. }
  333. .l_Dialog {
  334. position: relative;
  335. }
  336. .main-conyeny{
  337. position: absolute;
  338. z-index: 206;
  339. top: 70px;
  340. }
  341. .L_aside {
  342. margin-top: 10px;
  343. overflow: hidden;
  344. }
  345. </style>