index.js 6.2 KB

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