index.vue 5.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190
  1. <script setup>
  2. import {ref} from "vue";
  3. import {Location, Menu as IconMenu,} from "@element-plus/icons-vue";
  4. import HomeIndex from "./home/home-index.vue";
  5. //资产管理
  6. import znzdgl from "./zcgl/znzdgl.vue";
  7. import qxda from "./zcgl/qxda.vue";
  8. import jgzcgl from "./zcgl/jgzcgl.vue";
  9. //联动指挥
  10. import jgkl from "./ldzh/jgkl.vue";
  11. import bjgl from "./ldzh/bjgl.vue";
  12. import angz from "./ldzh/ajgz.vue";
  13. import sgpb from "./ldzh/sgpb.vue";
  14. import fzbj from "./ldzh/fzbj.vue";
  15. import sqbj from "./ldzh/sqbj.vue";
  16. import swbj from "./ldzh/swbj.vue";
  17. //案件办理
  18. import ajlzgl from "./ajbl/ajlzgl.vue";
  19. import gdczgl from "./ajbl/gdczgl.vue";
  20. import jbgd from "./ajbl/jbgd.vue";
  21. import bjgd from "./ajbl/bjgd.vue";
  22. //终端运维
  23. import ywrwgl from "./zdyw/ywrwgl.vue";
  24. import gzgl from "./zdyw/gzgl.vue";
  25. import sjtj from "./zdyw/sjtj.vue";
  26. //数据分析
  27. import tjfx from "./sjfx/tjfx.vue";
  28. const componentsMap = {
  29. HomeIndex,
  30. znzdgl,
  31. qxda,
  32. jgzcgl,
  33. jgkl,
  34. bjgl,
  35. angz,
  36. sgpb,
  37. fzbj,
  38. sqbj,
  39. swbj,
  40. ajlzgl,
  41. gdczgl,
  42. jbgd,
  43. bjgd,
  44. ywrwgl,
  45. gzgl,
  46. sjtj,
  47. tjfx,
  48. };
  49. const isCollapse = ref(false);
  50. const currentComponent = ref(HomeIndex);
  51. const componentMapping = {
  52. 1: "HomeIndex",
  53. "2-1": "znzdgl",
  54. "2-2": "qxda",
  55. "2-3": "jgzcgl",
  56. "3-1": "jgkl",
  57. "3-2": "bjgl",
  58. "3-3": "angz",
  59. "3-4": "sgpb",
  60. "3-5": "fzbj",
  61. "3-6": "sqbj",
  62. "3-7": "swbj",
  63. "4-1": "ajlzgl",
  64. "4-2": "gdczgl",
  65. "4-3": "jbgd",
  66. "4-4": "bjgd",
  67. "5-1": "ywrwgl",
  68. "5-2": "gzgl",
  69. "5-3": "sjtj",
  70. "6-1": "tjfx",
  71. };
  72. const handleSelect = (key) => {
  73. const componentName = componentMapping[key];
  74. if (componentName) {
  75. currentComponent.value = componentsMap[componentName];
  76. }
  77. };
  78. </script>
  79. <template>
  80. <div class="flex h-90.8vh bg-gray-100">
  81. <!-- Sidebar -->
  82. <div
  83. class="bg-dark transition-all duration-300 text-white"
  84. :class="isCollapse ? 'w-16' : 'w-64'"
  85. >
  86. <div class="p-4 flex items-center justify-between border-b border-gray-700">
  87. <h1 v-if="!isCollapse" class="text-xl font-bold">智能井盖管理</h1>
  88. <el-button type="text" @click="isCollapse = !isCollapse" class="text-white">
  89. <el-icon>
  90. <IconMenu />
  91. </el-icon>
  92. </el-button>
  93. </div>
  94. <el-menu
  95. default-active="1"
  96. class="border-none"
  97. :collapse="isCollapse"
  98. background-color="#1f2937"
  99. text-color="#fff"
  100. active-text-color="#409EFF"
  101. @select="handleSelect"
  102. >
  103. <el-menu-item index="1">
  104. <el-icon>
  105. <location />
  106. </el-icon>
  107. <template #title>首页</template>
  108. </el-menu-item>
  109. <!-- <el-sub-menu index="2">
  110. <template #title>
  111. <el-icon>
  112. <location />
  113. </el-icon>
  114. <span>资产管理</span>
  115. </template>
  116. <el-menu-item index="2-1">智能终端管理</el-menu-item>
  117. <el-menu-item index="2-2">全息档案</el-menu-item>
  118. <el-menu-item index="2-3">井盖资产管理</el-menu-item>
  119. </el-sub-menu> -->
  120. <el-sub-menu index="3">
  121. <template #title
  122. ><el-icon>
  123. <location />
  124. </el-icon>
  125. <span>联动指挥</span>
  126. </template>
  127. <el-menu-item index="3-1">井盖概览</el-menu-item>
  128. <el-menu-item index="3-2">报警管理</el-menu-item>
  129. <el-menu-item index="3-3">案件跟踪</el-menu-item>
  130. <!-- <el-menu-item index="3-4">施工屏蔽</el-menu-item> -->
  131. <el-menu-item index="3-5">翻转报警</el-menu-item>
  132. <el-menu-item index="3-6">水浸报警</el-menu-item>
  133. <el-menu-item index="3-7">水位报警</el-menu-item>
  134. </el-sub-menu>
  135. <!-- <el-sub-menu index="4">
  136. <template #title
  137. ><el-icon>
  138. <location />
  139. </el-icon>
  140. <span>案件办理</span>
  141. </template>
  142. <el-menu-item index="4-1">案件流转管理</el-menu-item>
  143. <el-menu-item index="4-2">工单处置管理</el-menu-item>
  144. <el-menu-item index="4-3">经办工单</el-menu-item>
  145. <el-menu-item index="4-4">办结工单</el-menu-item>
  146. </el-sub-menu>
  147. <el-sub-menu index="5">
  148. <template #title
  149. ><el-icon>
  150. <location />
  151. </el-icon>
  152. <span>终端运维</span>
  153. </template>
  154. <el-menu-item index="5-1">运维任务管理</el-menu-item>
  155. <el-menu-item index="5-2">故障管理</el-menu-item>
  156. <el-menu-item index="5-3">数据统计</el-menu-item>
  157. </el-sub-menu>
  158. <el-sub-menu index="6">
  159. <template #title
  160. ><el-icon>
  161. <location />
  162. </el-icon>
  163. <span>数据分析</span>
  164. </template>
  165. <el-menu-item index="6-1">统计分析</el-menu-item>
  166. </el-sub-menu> -->
  167. </el-menu>
  168. </div>
  169. <!-- Main Content -->
  170. <div class="flex-1 overflow-auto">
  171. <div class="">
  172. <component :is="currentComponent"></component>
  173. </div>
  174. </div>
  175. </div>
  176. </template>