special.html 6.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163
  1. {extend name="public/container"}
  2. {block name='title'}专题推广{/block}
  3. {block name="head_top"}
  4. <script src="/wap/first/zsff/js/scroll.js"></script>
  5. <script src="/wap/first/zsff/js/navbarscroll.js"></script>
  6. <style>
  7. body {
  8. background-color: #f5f5f5;
  9. }
  10. .loading {
  11. font-size: .4rem;
  12. text-align: center;
  13. color: #999;
  14. }
  15. .loaded {
  16. font-size: .28rem;
  17. line-height: .72rem;
  18. text-align: center;
  19. color: #999;
  20. }
  21. .nothing {
  22. position: absolute;
  23. top: 30%;
  24. left: 50%;
  25. width: 4rem;
  26. height: 4rem;
  27. background: url("{__WAP_PATH}zsff/images/nothing.png") center/contain no-repeat;
  28. -webkit-transform: translate(-50%, -50%);
  29. transform: translate(-50%, -50%);
  30. }
  31. </style>
  32. {/block}
  33. {block name="content"}
  34. <div class="thematic-promotion " id="app" v-cloak ref="app">
  35. <div class="goodsClass">
  36. <div class="header" style="height: 1.0rem">
  37. <div class="wrapper" id="wrapper">
  38. <div class="scroller">
  39. <ul>
  40. <li v-for="item in gradeList" :data-id="item.value">
  41. <a href="javascript:void(0)" v-text="item.text"></a>
  42. </li>
  43. </ul>
  44. </div>
  45. </div>
  46. </div>
  47. </div>
  48. <!--<nav class="acea-row row-middle" ref="storeMenu">-->
  49. <!--<div class="item" :class="where.grade_id==nav.value ?'ont':''" v-for="nav in gradeList" @click=" where.grade_id = nav.value ">-->
  50. <!--{{nav.text}}-->
  51. <!--<div class="on" v-show="where.grade_id==nav.value"></div>-->
  52. <!--</div>-->
  53. <!--</nav>-->
  54. <div class="swiper-details" v-for="item in specialList" ref="list" v-if="item.list.length">
  55. <div class="title line1 acea-row row-middle" v-text="item.name"></div>
  56. <div class="video-listn">
  57. <div class="item acea-row" v-for="val in item.list">
  58. <div class="pictrue"><img :src="val.image"></div>
  59. <div class="text acea-row row-between row-column">
  60. <div class="name line1" v-text="val.title"></div>
  61. <div class="num acea-row row-middle">
  62. <div class="money">¥<span>{{val.money}}</span></div>
  63. <div class="earn">赚¥{{val.spread_money}}</div>
  64. </div>
  65. <a class="toPromote acea-row row-center-wrapper" :href="goSpreadUrl(val)">去推广</a>
  66. </div>
  67. </div>
  68. </div>
  69. </div>
  70. <div v-show="loading" class="loading">
  71. <span class="fa fa-spinner"></span>
  72. </div>
  73. <div v-if="loadend && where.page > 2" class="loaded">已全部加载</div>
  74. <div v-if="!specialList.length && !loading" class="nothing"></div>
  75. <shortcut></shortcut>
  76. </div>
  77. {/block}
  78. {block name="foot"}
  79. <script>
  80. require(['vue', 'helper', 'store', '{__WAP_PATH}zsff/js/shortcut.js'], function (Vue, $h, app) {
  81. new Vue({
  82. el: '#app',
  83. data: {
  84. gradeList: [{ text: '全部', value: 0 }],
  85. where: {
  86. grade_id: 0,
  87. page: 1,
  88. limit: 10,
  89. },
  90. specialList: [],
  91. loadend: false,
  92. loading: false
  93. },
  94. watch: {
  95. 'where.grade_id': function (n) {
  96. this.loadend = false;
  97. this.where.page = 1;
  98. this.$set(this, 'specialList', []);
  99. this.getSpecialSpread();
  100. }
  101. },
  102. mounted: function () {
  103. this.get_grade_list();
  104. this.getSpecialSpread();
  105. },
  106. methods: {
  107. goSpreadUrl: function (value) {
  108. return $h.U({ c: 'Spread', a: 'poster_special', q: { special_id: value.id } });
  109. },
  110. get_grade_list: function () {
  111. var that = this;
  112. app.baseGet($h.U({ c: 'Spread', a: 'get_grade_list' }), function (res) {
  113. var list = res.data.data;
  114. var gradeList = $h.SplitArray(list, that.gradeList);
  115. that.$set(that, 'gradeList', gradeList);
  116. that.$nextTick(function () {
  117. $('#wrapper').navbarscroll({
  118. defaultSelect: 0,
  119. scrollerWidth: 5,
  120. fingerClick: 1,
  121. endClickScroll: function (obj) {
  122. that.where.grade_id = obj.data('id');
  123. }
  124. });
  125. })
  126. });
  127. },
  128. getSpecialSpread: function () {
  129. var that = this;
  130. if (that.loadend) return;
  131. if (that.loading) return;
  132. that.loading = true;
  133. app.baseGet($h.U({ c: 'Spread', a: 'getSpecialSpread', q: that.where }), function (res) {
  134. var list = res.data.data.data;
  135. var specialList = $h.SplitArray(list, that.specialList);
  136. that.loadend = list.length < that.where.limit;
  137. that.where.page = res.data.data.page;
  138. that.loading = false;
  139. that.$set(that, 'specialList', specialList);
  140. that.$nextTick(function () {
  141. that.bScrollInit();
  142. });
  143. }, function () {
  144. that.loading = false;
  145. });
  146. },
  147. //滑动底部加载
  148. bScrollInit: function () {
  149. var that = this;
  150. $h.EventUtil.listenTouchDirection(document, function () {
  151. that.loading == false && that.getSpecialSpread();
  152. }, false);
  153. }
  154. }
  155. });
  156. })
  157. </script>
  158. {/block}