index.js 5.2 KB

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