index.js 7.5 KB

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