index.js 7.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273
  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-quxiao",
  14. color: "",
  15. width: "",
  16. id: "3"
  17. }, {
  18. label: "筛选",
  19. icon: "icon-daoruxialajiantou",
  20. color: "",
  21. width: "",
  22. id: "2"
  23. }],
  24. classShow: false,
  25. classActions: [{
  26. name: '全部',
  27. index: 0
  28. }, {
  29. name: '我负责的',
  30. index: 1
  31. },
  32. {
  33. name: '我参与的',
  34. index: 2
  35. },
  36. {
  37. name: "我下属负责的",
  38. index: 3
  39. }, {
  40. name: "我下属参与的",
  41. index: 4
  42. }
  43. ],
  44. content: {
  45. nocache: true,
  46. "type": 0,
  47. "pageNumber": 1,
  48. "pageSize": 20,
  49. "where": {
  50. "condition": "",
  51. "status": "",
  52. "startdate": "",
  53. "enddate": ""
  54. },
  55. "sort": [{
  56. sortname: "默认",
  57. sorted: 1,
  58. sortid: 68,
  59. reversed: 0
  60. }]
  61. },
  62. filter: {
  63. show: false,
  64. status: ['跟进中', '已成交', '已失败'], //状态项
  65. statusActive: "",
  66. projectTypeList: [], //项目类型项
  67. typeActive: "",
  68. stageList: [], //项目阶段项目
  69. stageActive: "",
  70. startdate: "",
  71. enddate: ""
  72. }
  73. },
  74. onLoad(options) {
  75. this.getList();
  76. },
  77. /* 获取列表 */
  78. getList(init = false, data) {
  79. if (init.detail != undefined) init = init.detail;
  80. let content = this.data.content;
  81. if (init) content.pageNumber = 1;
  82. if (content.pageNumber > content.pageTotal) return;
  83. if (data) {
  84. content.where.status = data.statusActive;
  85. content.where.projecttype = data.typeActive;
  86. content.where.stagename = data.stageActive;
  87. content.where.startdate = data.startdate;
  88. content.where.enddate = data.enddate;
  89. }
  90. _Http.basic({
  91. "id": 20221020143502,
  92. content
  93. }).then(res => {
  94. console.log("客户商机列表", res)
  95. this.selectComponent('#ListBox').RefreshToComplete();
  96. if (res.msg != '成功') return wx.showToast({
  97. title: res.data,
  98. icon: "none"
  99. })
  100. // this.getTags(res.data.map(v => v.sys_enterpriseid));
  101. res.data = res.data.map(v => {
  102. v.winrate = parseFloat(v.winrate.substring(0, v.winrate.length - 1));
  103. return v
  104. })
  105. this.setData({
  106. 'content.pageNumber': res.pageNumber + 1,
  107. 'content.pageTotal': res.pageTotal,
  108. 'content.total': res.total,
  109. list: res.pageNumber == 1 ? res.data : this.data.list.concat(res.data)
  110. })
  111. })
  112. },
  113. /* 添加 */
  114. toAdd() {
  115. wx.navigateTo({
  116. url: '/packageA/project/addAndEdit'
  117. })
  118. },
  119. /* 处理筛选 */
  120. handleFilter({
  121. detail
  122. }) {
  123. const data = this.data.filter;
  124. switch (detail) {
  125. case 'confirm':
  126. this.setData({
  127. 'filter.show': false
  128. });
  129. this.getList(true, data);
  130. break;
  131. case 'reset':
  132. this.setData({
  133. 'filter.statusActive': "",
  134. 'filter.typeActive': "",
  135. 'filter.stageActive': "",
  136. 'filter.startdate': "",
  137. 'filter.enddate': "",
  138. });
  139. this.getList(true, this.data.filter)
  140. break;
  141. case 'close':
  142. this.setData({
  143. 'filter.show': false
  144. });
  145. break;
  146. }
  147. },
  148. /* 筛选状态选择 */
  149. selectStatus(e) {
  150. const {
  151. item
  152. } = e.currentTarget.dataset;
  153. this.setData({
  154. "filter.statusActive": this.data.filter.statusActive == item ? "" : item
  155. })
  156. },
  157. /* 筛选项目类 */
  158. selectTypeName(e) {
  159. const {
  160. value
  161. } = e.currentTarget.dataset.item;
  162. if (this.data.filter.typeActive == value) return;
  163. this.setData({
  164. "filter.typeActive": value
  165. });
  166. _Http.basic({
  167. "id": 20221107150004,
  168. "content": {
  169. "projecttype": value
  170. }
  171. }).then(res => {
  172. console.log("模板阶段", res)
  173. if (res.msg != '成功') return wx.showToast({
  174. title: res.data,
  175. icon: "none"
  176. })
  177. this.setData({
  178. "filter.stageList": res.data,
  179. "filter.stageActive": ""
  180. })
  181. })
  182. },
  183. /* 筛选阶段 */
  184. stageStatus(e) {
  185. const {
  186. stagename
  187. } = e.currentTarget.dataset.item;
  188. this.setData({
  189. "filter.stageActive": stagename
  190. })
  191. },
  192. /* 筛选日期范围 */
  193. changeDate(e) {
  194. const name = e.currentTarget.dataset.name,
  195. value = e.detail.value;
  196. this.setData({
  197. [`filter.${name}`]: value
  198. })
  199. },
  200. /* 顶部条件导航回调 */
  201. navClick({
  202. detail
  203. }) {
  204. switch (detail.id) {
  205. case '1':
  206. this.setData({
  207. classShow: true
  208. })
  209. break;
  210. case '2':
  211. _Http.basic({
  212. "classname": "sysmanage.develop.optiontype.optiontype",
  213. "method": "optiontypeselect",
  214. "content": {
  215. nocache: true,
  216. "pageNumber": 1,
  217. "pageSize": 999,
  218. "typename": "projecttype",
  219. "parameter": {
  220. "siteid": wx.getStorageSync('siteP').siteid
  221. }
  222. }
  223. }).then(res => {
  224. console.log("项目类型", res)
  225. if (res.msg != '成功') return wx.showToast({
  226. title: res.data,
  227. icon: "none"
  228. })
  229. this.setData({
  230. 'filter.show': true,
  231. 'filter.projectTypeList': res.data,
  232. })
  233. })
  234. break;
  235. case '3':
  236. this.setData({
  237. 'content.sort[0].reversed': this.data.content.sort[0].reversed == 0 ? 1 : 0
  238. });
  239. this.getList(true)
  240. break;
  241. }
  242. },
  243. classClose() {
  244. this.setData({
  245. classShow: false
  246. })
  247. },
  248. classSelect({
  249. detail
  250. }) {
  251. if (this.data.content.type == detail.index) return this.classClose();
  252. this.setData({
  253. "content.type": detail.index,
  254. 'navList[0].label': detail.name
  255. })
  256. this.classClose();
  257. this.getList(true)
  258. },
  259. onReady() {
  260. getHeight.getHeight('.total', this).then(res => this.setData({
  261. listHeight: res
  262. }));
  263. },
  264. /* 搜索 */
  265. navSearch() {
  266. wx.navigateTo({
  267. url: '/packageA/project/search'
  268. })
  269. },
  270. onShareAppMessage() {}
  271. })