index.js 6.4 KB

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