index.js 6.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233
  1. const _Http = getApp().globalData.http,
  2. getHeight = require("../../utils/getRheRemainingHeight");
  3. Page({
  4. data: {
  5. navList: [{
  6. label: "全部",
  7. icon: "icon-webxialaxuanxiangjiantou",
  8. color: "",
  9. width: "",
  10. id: "1"
  11. }, {
  12. label: "排序",
  13. icon: "icon-shengxu",
  14. color: "",
  15. width: "",
  16. id: "sort"
  17. }, {
  18. label: "筛选",
  19. icon: "icon-shaixuan",
  20. color: "",
  21. width: "",
  22. id: "2"
  23. }],
  24. content: {
  25. nocache: true,
  26. "type": 0,
  27. "pageNumber": 1,
  28. "pageSize": 20,
  29. "isExport": 0,
  30. "where": {
  31. "condition": "",
  32. "status": "", //状态
  33. "startdate": "",
  34. "enddate": ""
  35. },
  36. "sort": [{
  37. sortname: "默认",
  38. sorted: 1,
  39. sortid: 67,
  40. reversed: 0
  41. }]
  42. },
  43. list: [],
  44. classShow: false, //type类型
  45. classActions: [{
  46. name: '全部',
  47. index: 0
  48. }, {
  49. name: '我负责的',
  50. index: 1
  51. },
  52. {
  53. name: '我参与的',
  54. index: 2
  55. },
  56. {
  57. name: "我下属负责的",
  58. index: 3
  59. }, {
  60. name: "我下属参与的",
  61. index: 4
  62. }
  63. ],
  64. filter: {
  65. show: false,
  66. status: ['潜在', '合作中', '已终止'],
  67. statusActive: "",
  68. startdate: "",
  69. enddate: ""
  70. }
  71. },
  72. /* 去添加 */
  73. toAdd() {
  74. wx.navigateTo({
  75. url: './addAndEditor'
  76. })
  77. },
  78. onLoad(options) {
  79. this.getList()
  80. },
  81. /* 筛选状态选择 */
  82. selectStatus(e) {
  83. const {
  84. item
  85. } = e.currentTarget.dataset;
  86. this.setData({
  87. "filter.statusActive": this.data.filter.statusActive == item ? "" : item
  88. })
  89. },
  90. /* 筛选日期范围 */
  91. changeDate(e) {
  92. const name = e.currentTarget.dataset.name,
  93. value = e.detail.value;
  94. this.setData({
  95. [`filter.${name}`]: value
  96. })
  97. },
  98. /* 处理筛选 */
  99. handleFilter({
  100. detail
  101. }) {
  102. const data = this.data.filter;
  103. switch (detail) {
  104. case 'confirm':
  105. this.setData({
  106. 'content.where.status': data.statusActive,
  107. 'content.where.startdate': data.startdate,
  108. 'content.where.enddate': data.enddate,
  109. 'filter.show': false
  110. });
  111. this.getList(true);
  112. break;
  113. case 'reset':
  114. this.setData({
  115. 'filter.statusActive': "",
  116. 'filter.startdate': "",
  117. 'filter.enddate': "",
  118. });
  119. break;
  120. case 'close':
  121. this.setData({
  122. 'filter.show': false
  123. });
  124. break;
  125. }
  126. },
  127. getList(init = false) {
  128. //init 用于初始化分页
  129. if (init.detail != undefined) init = init.detail;
  130. if (init) this.setData({
  131. ['content.pageNumber']: 1
  132. })
  133. if (this.data.content.pageNumber > this.data.content.pageTotal) return;
  134. console.log(this.data.content)
  135. _Http.basic({
  136. "id": 20221012164402,
  137. content: this.data.content
  138. }).then(res => {
  139. console.log("客户列表", res)
  140. this.selectComponent('#ListBox').RefreshToComplete();
  141. if (res.msg != '成功') return wx.showToast({
  142. title: res.data,
  143. icon: "none"
  144. })
  145. this.setData({
  146. 'content.pageNumber': res.pageNumber + 1,
  147. 'content.pageTotal': res.pageTotal,
  148. 'content.total': res.total,
  149. 'content.sort': res.sort,
  150. list: res.pageNumber == 1 ? res.data : this.data.list.concat(res.data)
  151. })
  152. this.getTags();
  153. })
  154. },
  155. /* 获取列表标签 */
  156. getTags() {
  157. let list = this.data.list,
  158. ownerids = list.map(v => v.sa_customersid)
  159. _Http.basic({
  160. "id": 20221018102001,
  161. "content": {
  162. "ownertable": "sa_customers",
  163. ownerids
  164. }
  165. }).then(res => {
  166. for (let key in res.data) {
  167. let index = list.findIndex(v => v.sa_customersid == key);
  168. list[index].tags = res.data[key]
  169. };
  170. this.setData({
  171. list
  172. })
  173. })
  174. },
  175. /* 顶部条件导航回调 */
  176. navClick({
  177. detail
  178. }) {
  179. switch (detail.id) {
  180. case '1':
  181. this.setData({
  182. classShow: true
  183. })
  184. break;
  185. case '2':
  186. this.setData({
  187. 'filter.show': true
  188. })
  189. break;
  190. case '3':
  191. this.setData({
  192. 'content.sort[0].reversed': this.data.content.sort[0].reversed == 0 ? 1 : 0
  193. });
  194. this.getList(true)
  195. break;
  196. default:
  197. break;
  198. }
  199. },
  200. /* 处理搜索 */
  201. onSearch({
  202. detail
  203. }) {
  204. this.setData({
  205. "content.where.condition": detail
  206. });
  207. this.getList(true);
  208. },
  209. classClose() {
  210. this.setData({
  211. classShow: false
  212. })
  213. },
  214. classSelect({
  215. detail
  216. }) {
  217. if (this.data.content.type == detail.index) return this.classClose();
  218. this.setData({
  219. "content.type": detail.index,
  220. 'navList[0].label': detail.name
  221. })
  222. this.classClose();
  223. this.getList(true)
  224. },
  225. onReady() {
  226. getHeight.getHeight('.total', this).then(res => this.setData({
  227. listHeight: res
  228. }));
  229. },
  230. onShareAppMessage() {}
  231. })