configurator.vue 7.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294
  1. <template>
  2. <div class="appmian">
  3. <el-container>
  4. <el-header>
  5. <div class="ve_menu_logo">
  6. <div class="ve_title">
  7. <div class="ve_logo_img">
  8. <el-image
  9. style="height: 100%"
  10. :src="logo"
  11. fit="contain"
  12. ></el-image>
  13. </div>
  14. <h3 class="ve_logo_title">
  15. {{ title }}
  16. </h3>
  17. </div>
  18. <el-menu
  19. :default-active="activeIndex"
  20. class="el-menu-demo"
  21. mode="horizontal"
  22. :popper-offset="2"
  23. style="width:780px"
  24. background-color="#0D1639 "
  25. active-background-color="#0E50C8"
  26. text-color="#68ADFF"
  27. active-text-color="#fff"
  28. @select="handleSelect"
  29. >
  30. <el-menu-item index="1">矿井信息</el-menu-item>
  31. <el-menu-item index="2">传感器信息</el-menu-item>
  32. <el-menu-item index="3" >检测点信息</el-menu-item>
  33. <el-menu-item index="4">物理属性</el-menu-item>
  34. </el-menu>
  35. <div class="ve_right" @click="clickreture()">
  36. <div class="ve_timeioc">
  37. <el-image
  38. :src="Vector"
  39. fit="contain"
  40. ></el-image>
  41. <span>返回主界面</span>
  42. </div>
  43. </div>
  44. </div>
  45. </el-header>
  46. <el-main>
  47. <MenuMine ref="menumine"/>
  48. <MenuSensor ref="menusen"/>
  49. <MenuCheck ref="menucheck"/>
  50. <menuphysics2 ref="menuphysics"/>
  51. </el-main>
  52. </el-container>
  53. </div>
  54. </template>
  55. <script setup>
  56. import { ref, onMounted, reactive,nextTick } from "vue";
  57. import {RouterView,RouterLink,useRouter,createRouter } from "vue-router"
  58. import MenuMine from "./components/MenuMine.vue"
  59. import MenuSensor from "./components/MenuSensor.vue"
  60. import MenuCheck from "./components/MenuCheck.vue"
  61. import menuphysics2 from "./components/MenuPhysics.vue"
  62. import Vector from "@/assets/img/Vector.png";
  63. import icon from "@/assets/img/icon.png";
  64. import logo from "@/assets/logo.png";
  65. const title = "灾情推演软件";
  66. const activeIndex = ref('')
  67. onMounted(() => {
  68. });
  69. let router=useRouter();
  70. let menumine=ref();
  71. let menusen=ref();
  72. let menucheck =ref();
  73. let menuphysics=ref();
  74. const clickreture=()=>{
  75. router.push("/");
  76. // console.log( router.push("/appmian",{ aid:"1"}));
  77. }
  78. const handleSelect = (key,keyPath) => {
  79. switch (key) {
  80. case '1':
  81. menumine.value.dialogVisible=true;
  82. menusen.value.sendialogVisible=false;
  83. menucheck.value.sendialogVisible=false;
  84. menuphysics.value.dialogVisible1=false;
  85. break;
  86. case '2':
  87. menumine.value.dialogVisible=false;
  88. menusen.value.sendialogVisible=true;
  89. menucheck.value.sendialogVisible=false;
  90. menuphysics.value.dialogVisible1=false;
  91. break;
  92. case '3':
  93. menumine.value.dialogVisible=false;
  94. menucheck.value.sendialogVisible=true;
  95. menusen.value.sendialogVisible=false;
  96. menuphysics.value.dialogVisible1=false;
  97. break;
  98. case '4':
  99. menumine.value.dialogVisible=false;
  100. menucheck.value.sendialogVisible=false;
  101. menusen.value.sendialogVisible=false;
  102. menuphysics.value.dialogVisible1=true;
  103. default:
  104. break;
  105. }
  106. }
  107. </script>
  108. <style lang="scss" scoped>
  109. .appmian{
  110. .el-main{
  111. --el-main-padding: 0 !important;
  112. }
  113. .el-header{
  114. padding:0;
  115. margin: 0;
  116. width: 100%;
  117. position: absolute;
  118. z-index: 206;
  119. top: 0;
  120. }
  121. }
  122. .ve_menu_logo {
  123. width: 100%;
  124. height:70px;
  125. background: #0D1639;
  126. white-space: nowrap;
  127. text-align: left;
  128. overflow: hidden;
  129. display: flex;
  130. background: #0D1639;
  131. box-shadow: inset 0px 0px 17px 5px rgba(12,97,197,0.2);
  132. border-radius: 0px 0px 0px 0px;
  133. border-bottom: 1px solid;
  134. box-sizing: border-box;
  135. border-image: linear-gradient(28deg, rgba(31, 107, 255, 1), rgba(31, 107, 255, 0)) 1 1;
  136. .ve_title{
  137. }
  138. .ve_logo_img {
  139. padding-left: 30px;
  140. height: 100%;
  141. display: inline-block;
  142. box-sizing: border-box;
  143. vertical-align: middle;
  144. padding: 15px;
  145. }
  146. .ve_logo_title {
  147. width: 160px;
  148. white-space: nowrap;
  149. overflow: hidden;
  150. text-overflow: ellipsis;
  151. display: inline-block;
  152. margin: 0;
  153. vertical-align: middle;
  154. color: #68ADFF;
  155. font-size: 20px;
  156. }
  157. .el-menu-demo{
  158. width:60% !important;
  159. height: 70px;
  160. border: none !important;
  161. background: rgba(12,97,197,0);
  162. .el-menu-item{
  163. position: relative;
  164. width: 97px;
  165. font-family: Microsoft YaHei UI, Microsoft YaHei UI;
  166. font-weight: bold;
  167. font-size: 13px;
  168. color: #68ADFF;
  169. line-height: 15px;
  170. text-align: center;
  171. font-style: normal;
  172. text-transform: none;
  173. width: 110px;
  174. height: 70px;
  175. border-radius: 0px 0px 0px 0px;
  176. border:none;
  177. }
  178. .is-active{
  179. width: 110px;
  180. height: 70px;
  181. background:radial-gradient(ellipse at 54px 0px, #3AA0FF -37%, #123066 53%);
  182. border-radius: 0px 0px 0px 0px;
  183. border: 1px solid;
  184. border-left: 1px solid rgba(16, 92, 240, 1);
  185. border-right: 1px solid rgba(18, 48, 102, 1);
  186. border-image: linear-gradient(347deg, rgba(16, 92, 240, 1), rgba(18, 48, 102, 1)) 1 1;
  187. &:after {
  188. width: 24px;
  189. height: 1px;
  190. background-color: #fff;
  191. -webkit-transition: all ease-out 0.2s;
  192. transition: all ease-out 0.2s;
  193. content: "";
  194. position: absolute;
  195. left: 50%;
  196. bottom: 15px;
  197. webkit-transform: translate(-50%, 0%);
  198. -moz-transform: translate(-50%,0%);
  199. transform: translate(-50%, 0%);
  200. }
  201. }
  202. }
  203. .ve_right{
  204. height: 70px;
  205. overflow: hidden;
  206. position:absolute;
  207. right: 0;
  208. display: flex;
  209. .ve_time{
  210. width: 190px;
  211. height: 55px;
  212. padding-top: 15px;
  213. height: 70px;
  214. border-radius: 0px 0px 0px 0px;
  215. border-left: 2px solid rgba(12, 97, 197, 0.20);
  216. border-right: 2px solid rgba(12, 97, 197, 0.20);;
  217. box-sizing: border-box;
  218. // border-image: linear-gradient(347deg, rgba(31, 107, 255, 1), rgba(164, 195, 255, 1)) 1 1;
  219. span{
  220. display: block;
  221. font-family: Microsoft YaHei UI, Microsoft YaHei UI;
  222. color: #FFFFFF;
  223. text-align: center;
  224. font-style: normal;
  225. text-transform: none;
  226. }
  227. .l_huoqing{
  228. font-size: 13px;
  229. line-height: 15px;
  230. font-weight: bold;
  231. line-height: 2;
  232. }
  233. .l_time{
  234. font-size: 12px;
  235. line-height: 14px;
  236. font-weight: 400;
  237. }
  238. }
  239. .ve_timeioc{
  240. width: 150px;
  241. height: 70px;
  242. // border-radius: 0px 0px 0px 0px;
  243. // border: 1px solid;
  244. // border-image: linear-gradient(347deg, rgba(16, 92, 240, 1), rgba(164, 195, 255, 1)) 1 1;
  245. font-family: Microsoft YaHei UI, Microsoft YaHei UI;
  246. font-weight: bold;
  247. font-size: 13px;
  248. color: #68ADFF;
  249. line-height: 15px;
  250. text-align: center;
  251. font-style: normal;
  252. text-transform: none;
  253. display: flex;
  254. justify-content: center;
  255. align-items: center;
  256. span{
  257. padding-left: 15px;
  258. }
  259. }
  260. }
  261. }
  262. </style>
  263. <style>
  264. body{
  265. width: 100%;
  266. height: 100vh;
  267. background: #161A2A ;
  268. }
  269. button:focus, button:focus-visible{
  270. outline:none;
  271. }
  272. .l_Dialog{
  273. position: absolute;
  274. z-index: 206;
  275. top: 0;
  276. }
  277. </style>