管理系统PC端
Du kannst nicht mehr als 25 Themen auswählen Themen müssen entweder mit einem Buchstaben oder einer Ziffer beginnen. Sie können Bindestriche („-“) enthalten und bis zu 35 Zeichen lang sein.
 
 
 
 

157 Zeilen
3.7 KiB

  1. <template>
  2. <div class="home_wrapper">
  3. <div class="header">
  4. <div class="left">
  5. <div class="avatar"><img src="../../assets/images/app/user_header.png" alt=""></div>
  6. <div class="info">
  7. <p>{{$store.getters.user.user.nickName}}</p>
  8. <p>{{$store.getters.user.user.dept.deptName}}</p>
  9. </div>
  10. </div>
  11. <van-icon name="setting" size="25" @click="$router.push({ path: '/app/user' })" />
  12. </div>
  13. <img src="../../assets/images/app/banner.png" width="100%" style="margin: 2vh 0;" alt="">
  14. <van-notice-bar scrollable text="让资源调查更简单、快捷!" color="#000000" >
  15. <p slot="left-icon" class="notice_tt">通知</p>
  16. </van-notice-bar>
  17. <div class="content" v-for="(item,index) in menuList" :key="index">
  18. <p class="title">{{item.modelType}}</p>
  19. <div class="flex-main">
  20. <div v-for="(itemChild,indexChild) in item.menus" :key="indexChild" @click="$router.push({path:itemChild.menuUrl})">
  21. <img :src="require('@/assets/images/app/' + itemChild.menuIcon)" alt="">
  22. <p>{{itemChild.menuName}}</p>
  23. </div>
  24. </div>
  25. </div>
  26. </div>
  27. </template>
  28. <script>
  29. import { getMenuApp } from "@/api/app/index";
  30. import Cookies from "js-cookie";
  31. export default {
  32. name: "appIndex",
  33. data() {
  34. return {
  35. menuList:[],
  36. user:{},
  37. avatar:''
  38. };
  39. },
  40. created() {
  41. this.getMenuApp();
  42. },
  43. mounted() {
  44. console.log(this.$store.getters.userDept)
  45. },
  46. methods: {
  47. getMenuApp(){
  48. getMenuApp().then((res) => {
  49. this.menuList = res.data;
  50. });
  51. }
  52. },
  53. };
  54. </script>
  55. <style scoped lang="scss">
  56. p{margin: 0;}
  57. .home_wrapper{
  58. width: 100vw;
  59. min-height: 100vh;
  60. background: #F6F9FB url('../../assets/images/app/index_bg.png') no-repeat center top;
  61. background-size: 100% auto;
  62. padding: 5vh 4vw 0;
  63. }
  64. .header{
  65. display: flex;
  66. align-items: self-start;
  67. justify-content: space-between;
  68. .left{
  69. display: flex;
  70. }
  71. .avatar{
  72. width: 18vw;
  73. height: 18vw;
  74. overflow: hidden;
  75. img{
  76. width: 100%;
  77. height: 100%;
  78. }
  79. }
  80. .info{
  81. display: flex;
  82. flex-direction: column;
  83. justify-content: space-evenly;
  84. margin-left: 15px;
  85. p{
  86. &:nth-child(1){
  87. font-weight: bold;
  88. font-size: 2vh;
  89. }
  90. &:nth-child(2){
  91. font-size: 1.65vh;
  92. color: #666666;
  93. }
  94. }
  95. }
  96. i{
  97. margin-top: 1vh;
  98. }
  99. }
  100. .van-notice-bar{
  101. background: #ffffff url("../../assets/images/app/note_bg.png") no-repeat center;
  102. border-radius: 5px;
  103. }
  104. .notice_tt{
  105. font-size: 2vh;
  106. font-weight: bold;
  107. background: -webkit-linear-gradient(#53E4A5, #24DBDB);
  108. -webkit-background-clip: text;
  109. color: transparent;
  110. }
  111. .content{
  112. background: linear-gradient( 186deg, #DFFFF1 0%, #FFFFFF 100%);
  113. border-radius: 12px 12px 12px 12px;
  114. padding: 4vw;
  115. margin-top: 2vh;
  116. border: 2px solid #FFFFFF;
  117. .title{
  118. background: url("../../assets/images/app/title_bg.png") no-repeat left 10px;
  119. font-size: 2.2vh;
  120. font-weight: bold;
  121. padding-bottom: 10px;
  122. color: #0D131A;
  123. font-family: Source Han Sans CN, Source Han Sans CN;
  124. }
  125. .flex-main{
  126. display: flex;
  127. justify-content: space-between;
  128. flex-wrap: wrap;
  129. div{
  130. width: 22%;
  131. display: flex;
  132. flex-direction: column;
  133. align-items: center;
  134. margin-top: 15px;
  135. img{
  136. width: 80%;
  137. }
  138. p{
  139. color: #111311;
  140. margin-top: 5px;
  141. font-size: 1.6vh;
  142. }
  143. }
  144. }
  145. }
  146. </style>