list.js 4.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116
  1. var instrumentList = new Vue({
  2. el: "#instrumentList",
  3. data: {
  4. searchFlag: false,
  5. listLoading: true,
  6. requestFlag: true,
  7. noMore: false,
  8. params: {
  9. size: 0,
  10. num: 0,
  11. keyword: ""
  12. },
  13. listData: [],
  14. listRecord: 0,
  15. pageInput: ''
  16. },
  17. computed: {
  18. pageTotal: function () {
  19. var total = Math.ceil(this.listRecord / this.params.size);
  20. return total > 0 ? total : 1;
  21. },
  22. showPageBtn: function () {
  23. var total = Math.ceil(this.listRecord / this.params.size);
  24. total = total > 0 ? total : 1;
  25. var index = this.params.num, arr = [];
  26. if (total <= 6) {
  27. for (var i = 1; i <= total; i++) {
  28. arr.push(i);
  29. }
  30. return arr;
  31. }
  32. if (index <= 3) return [1, 2, 3, 4, 5, 0, total];
  33. if (index >= total - 2) return [1, 0, total - 4, total - 3, total - 2, total - 1, total];
  34. return [1, 0, index - 2, index - 1, index, index + 1, index + 2, 0, total];
  35. }
  36. },
  37. methods: {
  38. toPagination: function (pageNum) {
  39. if (pageNum <= this.pageTotal) {
  40. var params = {pageNum: pageNum};
  41. window.location.href = updateUrlParam(params);
  42. }
  43. },
  44. checkNum: function () {
  45. if (this.pageInput > this.pageTotal) {
  46. this.pageInput = this.pageTotal;
  47. } else if (this.pageInput < 1) {
  48. this.pageInput = 1;
  49. }
  50. },
  51. getListByKeyword: function () {
  52. var _self = this;
  53. $.getJSON(spiServer+"/search/query/equipment", {
  54. keyword: this.params.keyword,
  55. pageSize: this.params.size,
  56. pageNum: this.params.num
  57. }, function (r) {
  58. if (r.code === 0 && r.data) {
  59. var result = JSON.parse(r.data);
  60. _self.listRecord = result.total;
  61. if(isPC){
  62. _self.listData = result.items;
  63. }else{
  64. _self.listData = _self.listData.concat(result.items);
  65. }
  66. }
  67. _self.listLoading = false;
  68. _self.requestFlag = true;
  69. })
  70. },
  71. },
  72. created: function () {
  73. if(isPC){
  74. this.params.size = getUrlParam("pageSize") ? getUrlParam("pageSize") * 1 : 20;
  75. this.params.num = getUrlParam("pageNum") ? getUrlParam("pageNum") * 1 : 1;
  76. }else{
  77. this.params.size = 20;
  78. this.params.num = 1;
  79. }
  80. this.params.keyword = getUrlParam("keyword") ? getUrlParam("keyword") : "";
  81. // 获取列表数据
  82. this.getListByKeyword();
  83. },
  84. mounted: function () {
  85. var searchTypeID = getUrlParam("searchTypeID");
  86. var _self = this;
  87. if(!isPC){
  88. $('footer').addClass("noneImportant");
  89. //移动端上垃加载更多
  90. $(window).on('scroll', function(){
  91. var scrollTop = $(this).scrollTop();
  92. var scrollHeight = $(document).height();
  93. var windowHeight = window.innerHeight;
  94. if (scrollTop + windowHeight >= scrollHeight) {
  95. //此处是滚动条到底部时候触发的事件,在这里写要加载的数据,或者是拉动滚动条的操作
  96. var totalPage = Math.ceil(_self.listRecord / _self.params.size)?Math.ceil(_self.listRecord / _self.params.size):1;
  97. var next = _self.params.num+1;
  98. if(next <= totalPage){
  99. _self.params.num = next;
  100. if (_self.requestFlag){
  101. console.log(_self.params);
  102. // 获取列表数据
  103. _self.getListByKeyword();
  104. }
  105. _self.requestFlag = false;
  106. }else{
  107. //到底了
  108. _self.noMore = true;
  109. $('footer').removeClass("noneImportant");
  110. }
  111. }
  112. });
  113. }
  114. }
  115. });