index.js 5.3 KB

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