index.js 6.3 KB

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