menu.vue 3.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182
  1. <template>
  2. <div class="menu-container">
  3. <top-bar></top-bar>
  4. <div class="menu-list">
  5. <div class="menu-list-item" v-for="(v,i) in menuList" :key="i">
  6. <p @click="onclick">{{v.name}}</p>
  7. <van-grid border :column-num="3">
  8. <van-grid-item v-for="(item,index) in v.list" :key="index" icon="smile-o" :text="item.menu" :to="item.path" />
  9. </van-grid>
  10. <!-- <li v-for="(item,index) in v.list" :key="index">-->
  11. <!-- <div></div>-->
  12. <!-- <p>{{item.menu}}</p>-->
  13. <!-- </li>-->
  14. </div>
  15. </div>
  16. </div>
  17. </template>
  18. <script>
  19. import TopBar from "@/components/TopBar";
  20. import { mapGetters } from 'vuex'
  21. export default {
  22. components:{TopBar},
  23. data() {
  24. return {
  25. menuList:[
  26. {
  27. name:'系统管理',
  28. list:[
  29. {
  30. menu:'作息管理',
  31. path:'/workTime',
  32. },
  33. {
  34. menu:'NFC管理',
  35. path:'/nfc',
  36. },
  37. {
  38. menu:'履职登记',
  39. path:'/lvzhi',
  40. },
  41. ]
  42. },
  43. {
  44. name:'履职',
  45. list:[
  46. {
  47. menu:'监控调阅',
  48. path:'/monitoringCall'
  49. },
  50. {
  51. menu:'视频调阅',
  52. },
  53. {
  54. menu:'安全检查登记',
  55. },
  56. {
  57. menu:'隐患问题清单',
  58. },
  59. {
  60. menu:'外包评价',
  61. },
  62. ]
  63. },
  64. {
  65. name:'设备',
  66. list:[
  67. {
  68. menu:'设备管理',
  69. },
  70. {
  71. menu:'防区状态',
  72. path:'/protection'
  73. },
  74. ]
  75. },
  76. {
  77. name:'来访',
  78. list:[
  79. {
  80. menu:'介绍信管理',
  81. },
  82. {
  83. menu:'出入登记',
  84. },
  85. {
  86. menu:'培训登记',
  87. path:'/training'
  88. },
  89. ]
  90. },
  91. {
  92. name:'演练',
  93. list:[
  94. {
  95. menu:'演练登记',
  96. },
  97. {
  98. menu:'演练排名',
  99. },
  100. {
  101. menu:'安全检查登记',
  102. },
  103. {
  104. menu:'优秀案例管理',
  105. },
  106. {
  107. menu:'优秀案例学习',
  108. },
  109. ]
  110. },
  111. {
  112. name:'统计',
  113. list:[
  114. {
  115. menu:'驾驶舱',
  116. },
  117. {
  118. menu:'每日网点履职报表',
  119. },
  120. {
  121. menu:'每日布撤防报表',
  122. },
  123. {
  124. menu:'教育统计报表',
  125. },
  126. ]
  127. }
  128. ],
  129. }
  130. },
  131. computed: {
  132. ...mapGetters(['userName'])
  133. },
  134. mounted() {
  135. },
  136. methods: {
  137. onclick(){
  138. this.$router.push('/workTime')
  139. },
  140. }
  141. }
  142. </script>
  143. <style lang="scss" scoped >
  144. .menu-container{
  145. background-color: rgba(237, 252, 255, 1)
  146. }
  147. .menu-list{
  148. padding: 30px 0;
  149. height: calc(100vh - 400px);
  150. overflow: auto;
  151. }
  152. .menu-list-item{
  153. background-color: #fff;
  154. border-radius: 10px;
  155. box-shadow: 0 10px 20px #eee;
  156. margin:20px;
  157. >p{
  158. font-size: 30px;
  159. padding: 10px 10px 10px 20px;
  160. }
  161. >ul{
  162. display: flex;
  163. flex-wrap: wrap;
  164. font-size: 20px;
  165. >li{
  166. padding: 30px;
  167. display: flex;
  168. flex-direction: column;
  169. align-items: center;
  170. >div{
  171. width: 60px;
  172. height: 60px;
  173. background-color: #42b983;
  174. margin-bottom: 20px;
  175. }
  176. }
  177. }
  178. }
  179. </style>