message.vue 2.7 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495
  1. <template>
  2. <div class="message-page">
  3. <custom-header name="我的消息" bgColor="#f7f7f7"></custom-header>
  4. <div class="message-list">
  5. <div class="message-item" v-for="(item, index) in messageList" :key="index" @click="handleItem(item)">
  6. <div class="message">
  7. <badge v-show="item.num" :content="item.num" max="99" :offset="[-15, 5]">
  8. <img class="img" v-if="item.type!=='message'" :src="require(`@/assets/img/mine/${item.type}.png`)" alt="" />
  9. <img class="img" v-else src="@/assets/img/mine/expert.png" alt="">
  10. </badge>
  11. <div class="info">
  12. <span class="name">{{item.name}}</span>
  13. <div class="van-ellipsis">{{item.desc}}</div>
  14. </div>
  15. </div>
  16. </div>
  17. </div>
  18. </div>
  19. </template>
  20. <script setup>
  21. import { Badge } from "vant";
  22. import { ref } from "vue";
  23. import { useRouter } from "vue-router";
  24. import customHeader from "@/components/customHeader.vue";
  25. const router = useRouter();
  26. const messageList = ref([
  27. {
  28. name: "指导专家咨询",
  29. type: "expert",
  30. desc: "从化荔博园:",
  31. num: 1,
  32. },
  33. {
  34. name: "农资农服咨询",
  35. type: "agricultural",
  36. desc: "农资农服:",
  37. num: 1,
  38. },
  39. ]);
  40. const handleItem = ({type,name}) =>{
  41. if(type==='message'){
  42. router.push("/message_detail");
  43. }
  44. }
  45. </script>
  46. <style lang="scss" scoped>
  47. .message-page {
  48. position: relative;
  49. width: 100%;
  50. height: 100vh;
  51. box-sizing: border-box;
  52. background-color: #f7f7f7;
  53. .message-list {
  54. width: 100%;
  55. height: 100%;
  56. overflow-y: auto;
  57. padding: 12px;
  58. box-sizing: border-box;
  59. .message-item {
  60. display: flex;
  61. justify-content: space-between;
  62. background-color: #fff;
  63. border-radius: 14px;
  64. padding: 10px;
  65. .message {
  66. width: calc(100% - 64px);
  67. display: flex;
  68. align-items: center;
  69. .img {
  70. width: 48px;
  71. height: 48px;
  72. margin-right: 10px;
  73. }
  74. .info {
  75. width: 100%;
  76. color: #999999;
  77. line-height: 24px;
  78. .name {
  79. color: #333333;
  80. font-size: 16px;
  81. font-weight: 500;
  82. }
  83. }
  84. }
  85. }
  86. .message-item + .message-item {
  87. margin-top: 12px;
  88. }
  89. }
  90. }
  91. </style>