more_list.html 5.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113
  1. {extend name="public/container"}
  2. {block name="title"}{$search} 搜索{/block}
  3. {block name="head_top"}
  4. <style>
  5. body{background-color:#f2f2f2;}
  6. </style>
  7. {/block}
  8. {block name="content"}
  9. <div class="search-page" id="app">
  10. <div class="searchResult swiper-details" v-cloak="" ref="list">
  11. <div v-if="where.type===0">
  12. <div class="title acea-row row-middle line1">专题</div>
  13. <div class="swiper-list2">
  14. <div class="item acea-row row-between-wrapper" v-for="item in searchList">
  15. <a class="pictrue" :href="getSpecialUrl(item.id)"><img :src="item.image"></a>
  16. <div class="underline">
  17. <a class="text-pic acea-row row-column" :href="getSpecialUrl(item.id)">
  18. <div class="name line1" v-text="item.title"></div>
  19. <div class="notes line1" v-text="item.abstract"></div>
  20. <div class="bottom acea-row row-between-wrapper">
  21. <div class="acea-row row-middle">
  22. <div class="num acea-row row-center-wrapper" v-for="(vo,index) in item.label" v-text="vo" v-if="index <= 1"></div>
  23. </div>
  24. <div class="money">{{item.is_pink ? (item.pink_money == 0 ? '免费':'¥'+item.pink_money): (item.money <= 0 ? '免费':'¥'+item.money) }}</div>
  25. </div>
  26. </a>
  27. </div>
  28. </div>
  29. </div>
  30. </div>
  31. <div v-else>
  32. <div class="title acea-row row-middle line1">任务视频</div>
  33. <div class="video-listn">
  34. <div class="item acea-row row-between-wrapper" v-for="item in searchList">
  35. <a class="pictrue" :href="getTashUrl(item.special_id)"><img :src="item.image"></a>
  36. <div class="underline">
  37. <a class="text acea-row row-center row-column" :href="getTashUrl(item.special_id)">
  38. <div class="name line1" v-text="item.title">7课掌握病句解析技巧</div>
  39. <div class="num acea-row row-middle"><span class="iconfont icon-bofang1"></span>{{item.play_count}}</div>
  40. </a>
  41. </div>
  42. </div>
  43. </div>
  44. </div>
  45. </div>
  46. <p class="loading-line" style="background-color: #ffffff" v-cloak="">
  47. <span v-show="loading==true" class="fa fa-spinner loadingpic" style="font-size: 0.4rem"></span>
  48. <span v-text="loadTitle">没有更多内容了</span>
  49. </p>
  50. <shortcut></shortcut>
  51. </div>
  52. {/block}
  53. {block name='foot'}
  54. <script>
  55. var type = {$type}, search = '{$search}';
  56. require(['vue', 'helper', 'store', '{__WAP_PATH}zsff/js/shortcut.js'], function (Vue, $h, app) {
  57. new Vue({
  58. el: '#app',
  59. data: {
  60. searchList: [],
  61. loadTitle: '',
  62. loading: false,
  63. loadend: false,
  64. where: {
  65. type: type,
  66. search: search || '',
  67. page: 1,
  68. limit: 10
  69. }
  70. },
  71. methods: {
  72. getMoreList: function () {
  73. if (this.loading) return;
  74. if (this.loaded) return;
  75. this.loading = true;
  76. this.loadTitle = '';
  77. app.baseGet($h.U({ c: 'index', a: 'get_more_list', q: this.where }), function (res) {
  78. var list = res.data.data.more_list;
  79. var searchList = $h.SplitArray(list, this.searchList);
  80. this.where.page = res.data.data.page;
  81. this.loading = false;
  82. this.loaded = list.length < this.where.limit;
  83. this.loadTitle = this.loaded ? '没有更多内容了' : '加载更多';
  84. this.$set(this, 'searchList', searchList);
  85. this.$nextTick(function () {
  86. this.EventUtil();
  87. }.bind(this));
  88. }.bind(this), function (res) {
  89. this.loading = false;
  90. this.loadTitle = '加载更多';
  91. }.bind(this));
  92. },
  93. EventUtil: function () {
  94. this.$nextTick(function () {
  95. $h.EventUtil.listenTouchDirection(document, function () {
  96. this.loading == false && this.getMoreList();
  97. }.bind(this), false);
  98. })
  99. },
  100. getSpecialUrl: function (id) {
  101. return $h.U({ c: 'special', a: 'details', q: { id: id } });
  102. },
  103. getTashUrl: function (id) {
  104. return $h.U({ c: 'special', a: 'details', q: { id: id } }) + '#tash';
  105. }
  106. },
  107. mounted: function () {
  108. this.getMoreList();
  109. }
  110. });
  111. });
  112. </script>
  113. {/block}