index.js 5.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192
  1. const _Http = getApp().globalData.http,
  2. getHeight = require("../../utils/getRheRemainingHeight");
  3. Page({
  4. /**
  5. * 页面的初始数据
  6. */
  7. data: {
  8. navList: [{
  9. label: "排序",
  10. icon: "icon-shengxu",
  11. color: "",
  12. width: "",
  13. id: "sort"
  14. }, {
  15. label: "筛选",
  16. icon: "icon-shaixuan",
  17. color: "",
  18. width: "",
  19. id: "2"
  20. }],
  21. content: {
  22. "nocache": true,
  23. "pageNumber": 1,
  24. "pageTotal": 1,
  25. "pageSize": 20,
  26. "isExport": 0,
  27. "where": {
  28. "startdate": "",
  29. "enddate": "",
  30. },
  31. "sort": []
  32. },
  33. filter: {
  34. show: false,
  35. type: ['普通报价', '项目报价'], //状态项
  36. typeActive: "",
  37. status: ['新建', '提交', '审核'], //状态项
  38. statusActive: "",
  39. startdate: "",
  40. enddate: ""
  41. }
  42. },
  43. onLoad(options) {
  44. this.getList();
  45. },
  46. /* 获取列表 */
  47. getList(init = false, data) {
  48. if (init.detail != undefined) init = init.detail;
  49. let content = this.data.content;
  50. if (init) content.pageNumber = 1;
  51. if (content.pageNumber > content.pageTotal) return;
  52. if (data) {
  53. content.where.startdate = data.startdate;
  54. content.where.enddate = data.enddate;
  55. }
  56. _Http.basic({
  57. "id": 20221018164302,
  58. content
  59. }).then(res => {
  60. console.log("竞争对手列表", res)
  61. this.selectComponent('#ListBox').RefreshToComplete();
  62. if (res.msg != '成功') return wx.showToast({
  63. title: res.data,
  64. icon: "none"
  65. })
  66. this.setData({
  67. 'content.pageNumber': res.pageNumber + 1,
  68. 'content.pageTotal': res.pageTotal,
  69. 'content.total': res.total,
  70. 'content.sort': res.sort,
  71. list: res.pageNumber == 1 ? res.data : this.data.list.concat(res.data)
  72. });
  73. this.setListHeight();
  74. this.getTags();
  75. })
  76. },
  77. /* 处理搜索 */
  78. onSearch({
  79. detail
  80. }) {
  81. this.setData({
  82. "content.where.condition": detail
  83. });
  84. this.getList(true);
  85. },
  86. /* 获取列表标签 */
  87. getTags() {
  88. let list = this.data.list,
  89. ownerids = list.map(v => v.sa_competitorid);
  90. _Http.basic({
  91. "id": 20221018102001,
  92. "content": {
  93. nocache: true,
  94. "ownertable": "sa_competitor",
  95. ownerids
  96. }
  97. }).then(res => {
  98. console.log("标签", res)
  99. for (let key in res.data) {
  100. let index = list.findIndex(v => v.sa_competitorid == key);
  101. list[index].tags = res.data[key]
  102. };
  103. this.setData({
  104. list
  105. })
  106. })
  107. },
  108. onReady() {
  109. this.setListHeight();
  110. },
  111. setListHeight() {
  112. getHeight.getHeight('.total', this).then(res => {
  113. if (this.data.listHeight != res)
  114. this.setData({
  115. listHeight: res
  116. })
  117. });
  118. },
  119. /* 顶部条件导航回调 */
  120. navClick({
  121. detail
  122. }) {
  123. switch (detail.id) {
  124. case '1':
  125. this.setData({
  126. classShow: true
  127. })
  128. break;
  129. case '2':
  130. this.setData({
  131. 'filter.show': true
  132. })
  133. break;
  134. }
  135. },
  136. /* 筛选状态选择 */
  137. selectStatus(e) {
  138. const {
  139. item
  140. } = e.currentTarget.dataset;
  141. this.setData({
  142. "filter.statusActive": this.data.filter.statusActive == item ? "" : item
  143. })
  144. },
  145. /* 筛选状态选择 */
  146. typeStatus(e) {
  147. const {
  148. item
  149. } = e.currentTarget.dataset;
  150. this.setData({
  151. "filter.typeActive": this.data.filter.typeActive == item ? "" : item
  152. })
  153. },
  154. /* 处理筛选 */
  155. handleFilter({
  156. detail
  157. }) {
  158. const data = this.data.filter;
  159. if (data.typeActive) data.typeActive = data.typeActive == '普通报价' ? 0 : 1;
  160. switch (detail) {
  161. case 'confirm':
  162. this.setData({
  163. 'filter.show': false
  164. });
  165. this.getList(true, data);
  166. break;
  167. case 'reset':
  168. this.setData({
  169. 'filter.statusActive': "",
  170. 'filter.typeActive': "",
  171. 'filter.startdate': "",
  172. 'filter.enddate': "",
  173. });
  174. this.getList(true, this.data.filter)
  175. break;
  176. case 'close':
  177. this.setData({
  178. 'filter.show': false
  179. });
  180. break;
  181. }
  182. },
  183. addOpponent() {
  184. wx.navigateTo({
  185. url: './add'
  186. })
  187. },
  188. onShareAppMessage() {
  189. }
  190. })