list.html 3.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100
  1. {{template "header" }}
  2. <div id="app" style="width:100%">
  3. <template>
  4. <el-container v-loading.fullscreen.lock="fullscreenLoading">
  5. <el-aside>
  6. <el-menu
  7. :default-active="fid">
  8. <el-menu-item v-on:click="openUrl('/write')">
  9. <i class="el-icon-edit"></i>
  10. <span slot="title">写信</span>
  11. </el-menu-item>
  12. <el-menu-item :index="v" v-for="(f,v) in folders" v-bind:key="v" v-on:click="getFolders(1,v,true)">
  13. <i class="el-icon-message"></i>
  14. <span slot="title"><{v}></span>
  15. </el-menu-item>
  16. </el-menu>
  17. </el-aside>
  18. <el-main class="mainMain">
  19. <div class="block">
  20. <el-timeline :reverse="true">
  21. <el-timeline-item v-for="item in mails" v-bind:key="item.Id" :timestamp="item.Date" placement="top">
  22. <el-card v-on:click.native="openUrl('/view?fid='+fid+'&id='+item.Id)">
  23. <h4><{item.Subject}></h4>
  24. <p><{item.From}> 发送于 <{item.Date}></p>
  25. </el-card>
  26. </el-timeline-item>
  27. </el-timeline>
  28. </div>
  29. <el-pagination
  30. background
  31. :current-page="page"
  32. :page-size="pagesize"
  33. @current-change="getFolders"
  34. layout="prev, pager, next"
  35. :total="mailTotal">
  36. </el-pagination>
  37. </el-main>
  38. </el-container>
  39. </template>
  40. </div>
  41. </body>
  42. <script>
  43. new Vue({
  44. el: '#app',
  45. delimiters:["<{","}>"],
  46. data: {
  47. fullscreenLoading:true,
  48. folders:[],
  49. mails:[],
  50. mailTotal:0,
  51. page:1,
  52. pagesize:10,
  53. fid:"",
  54. },
  55. methods: {
  56. //获取邮件夹
  57. getFolders: function (page,fid,isLeft) {
  58. this.fullscreenLoading=true;
  59. if(typeof(page)=="undefined" || page==""){
  60. page=1;
  61. }else{
  62. this.page=page;
  63. }
  64. let data={};
  65. data.page=page;
  66. if(typeof(fid)!="undefined" && fid!=""){
  67. data.fid=fid;
  68. this.fid=fid;
  69. }else if(this.fid!=""){
  70. data.fid=this.fid;
  71. }
  72. let _this = this;
  73. $.get('/folders',data, function (rs) {
  74. if(!isLeft){
  75. _this.folders=rs.result.folders;
  76. }
  77. _this.mails=rs.result.mails
  78. _this.mailTotal=rs.result.total;
  79. _this.pagesize=rs.result.pagesize;
  80. _this.fid=rs.result.fid;
  81. _this.fullscreenLoading=false;
  82. }).then(()=>{
  83. _this.fullscreenLoading=false;
  84. });
  85. },
  86. //跳转
  87. openUrl(url){
  88. window.location.href=url;
  89. },
  90. },
  91. created: function () {
  92. this.getFolders(1,"INBOX");
  93. }
  94. })
  95. </script>
  96. </html>