index.vue 3.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139
  1. <template>
  2. <div>
  3. <van-nav-bar title="消息记录" left-text="返回" @click-left="back" fixed left-arrow/>
  4. <div class="login_form">
  5. <van-list v-model="loading" :finished="finished" finished-text="没有更多了" :error.sync="error" error-text="请求失败,点击重新加载" @load="getMessage">
  6. <van-cell @click="readMsg(index)" v-for="(item,index) in list" :key="index" :title="msgType[item.type]" :label="item.time.replace('T', ' ')" >
  7. <span v-if="item.checked == 1" style="color:green">已读</span>
  8. <span v-if="item.checked == 0" style="color:red">未读</span>
  9. </van-cell>
  10. </van-list>
  11. </div>
  12. </div>
  13. </template>
  14. <script>
  15. export default {
  16. data() {
  17. return {
  18. msgType:["日报审核未通过","有新任务"],
  19. user: JSON.parse(localStorage.userInfo),
  20. total: 0,
  21. page: 1,
  22. size: 20,
  23. list: [],
  24. loading: false,
  25. finished: false,
  26. error: false,
  27. refreshing: false,
  28. show: false,
  29. title: "标题",
  30. };
  31. },
  32. created() {
  33. },
  34. methods: {
  35. // 返回
  36. back() {
  37. history.back();
  38. },
  39. readMsg(index) {
  40. var item = this.list[index];
  41. if (item.type == 0) {
  42. //日报
  43. var date = item.content;
  44. this.$axios.post("/information/check", {id:item.id
  45. })
  46. .then(res => {
  47. if(res.code == "ok") {
  48. //跳转到对应的日报上进行修改
  49. this.getMessage();
  50. this.$router.push('/edit?date='+date);
  51. }
  52. }).catch(err=> {toast.clear();});
  53. }
  54. },
  55. //获取消息
  56. getMessage() {
  57. if (this.refreshing) {
  58. this.list = [];
  59. this.refreshing = false;
  60. }
  61. if(this.total == this.list.length && this.list.length != 0) {
  62. this.loading = false;
  63. this.finished = true;
  64. return false;
  65. }
  66. this.$axios.post("/information/list", {
  67. })
  68. .then(res => {
  69. if(res.code == "ok") {
  70. this.loading = false;
  71. this.finished = true;
  72. this.list = res.data;
  73. } else {
  74. this.$toast.fail('获取失败');
  75. }
  76. }).catch(err=> {toast.clear();});
  77. },
  78. onRefresh() {
  79. this.finished = false;
  80. this.loading = true;
  81. this.page = 1;
  82. this.getMessage();
  83. },
  84. },
  85. mounted() {
  86. }
  87. };
  88. </script>
  89. <style lang="less" scoped>
  90. .login_form {
  91. margin-top: 46px;
  92. }
  93. .one_report {
  94. margin-bottom: 15px;
  95. }
  96. .form_text {
  97. margin: 15px 0 30px;
  98. padding: 0 12px;
  99. }
  100. .form_btn {
  101. text-align: right;
  102. }
  103. .form_btn button {
  104. margin-left: 10px;
  105. }
  106. .one_report_data {
  107. margin-bottom: 20px;
  108. padding: 0 22px;
  109. div {
  110. line-height: 30px;
  111. }
  112. }
  113. .userCheckbox {
  114. padding: 10px;;
  115. }
  116. </style>
  117. <style lang="less">
  118. .van-nav-bar .van-icon , .van-nav-bar__text {
  119. color: #20a0ff;
  120. }
  121. </style>