mail.vue 2.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105
  1. <template>
  2. <view class="view">
  3. <u-search :show-action="false" v-model="curWord" @change="inputWord" margin="20rpx 50rpx"></u-search>
  4. <u-cell-group customStyle="padding: 20px">
  5. <u-cell
  6. title="收件箱"
  7. icon="email"
  8. isLink
  9. :iconStyle="{color: '#fbbd08'}"
  10. :value="`${noReadCount}/${mailBoxCount}`"
  11. url="/pages/apps/mail/inbox"
  12. ></u-cell>
  13. <u-cell
  14. title="已发送"
  15. icon="tags"
  16. isLink
  17. :iconStyle="{color: '#39b54a'}"
  18. :value="`${mailComposeCount}`"
  19. url="/pages/apps/mail/outbox"
  20. ></u-cell>
  21. <u-cell
  22. title="草稿箱"
  23. icon="edit-pen"
  24. isLink
  25. :iconStyle="{color: '#8799a3'}"
  26. :value="`${mailDraftCount}`"
  27. url="/pages/apps/mail/draft"
  28. ></u-cell>
  29. <u-cell
  30. title="已删除"
  31. icon="trash"
  32. isLink
  33. :iconStyle="{color: '#e54d42'}"
  34. :value="`${mailTrashCount}`"
  35. url="/pages/apps/mail/trash"
  36. ></u-cell>
  37. </u-cell-group>
  38. <uni-fab
  39. horizontal="right"
  40. vertical="bottom"
  41. @fabClick="toAdd"
  42. ></uni-fab>
  43. </view>
  44. </template>
  45. <script>
  46. import mailBoxService from "@/api/mail/mailBoxService";
  47. export default {
  48. data() {
  49. return {
  50. curWord:'',
  51. mailBoxCount: '',
  52. mailComposeCount: '',
  53. mailDraftCount: '',
  54. mailTrashCount: '',
  55. noReadCount: ''
  56. }
  57. },
  58. async onShow() {
  59. let data = await mailBoxService.queryStatus();
  60. this.mailBoxCount = data.mailBoxCount
  61. this.mailComposeCount = data.mailComposeCount
  62. this.mailDraftCount = data.mailDraftCount
  63. this.noReadCount = data.noReadCount
  64. this.mailTrashCount = data.mailTrashCount
  65. },
  66. methods: {
  67. // 输入监听
  68. inputWord(e){
  69. // this.curWord = e.detail.value // 已使用v-model,无需再次赋值
  70. // 节流,避免输入过快多次请求
  71. this.searchTimer && clearTimeout(this.searchTimer)
  72. this.searchTimer = setTimeout(()=>{
  73. },300)
  74. },
  75. toAdd (){
  76. uni.navigateTo({
  77. url: '/pages/apps/mail/sendEmailForm'
  78. })
  79. },
  80. toInbox (){
  81. uni.navigateTo({
  82. url: '/pages/apps/mail/inbox'
  83. });
  84. },
  85. toDraft () {
  86. uni.navigateTo({
  87. url: '/pages/apps/mail/draft'
  88. });
  89. },
  90. toOutbox () {
  91. uni.navigateTo({
  92. url: '/pages/apps/mail/outbox'
  93. });
  94. },
  95. toTrash () {
  96. uni.navigateTo({
  97. url: '/pages/apps/mail/trash'
  98. });
  99. }
  100. }
  101. }
  102. </script>