index.js 7.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262
  1. const _Http = getApp().globalData.http;
  2. Page({
  3. data: {
  4. loading: true,
  5. typeList: [{
  6. name: '经销商合作协议',
  7. route: 'type1'
  8. }, {
  9. name: '直销客户合作协议',
  10. route: 'type6'
  11. }, {
  12. name: '经销项目协议',
  13. route: 'type2'
  14. }, {
  15. name: '直销项目协议',
  16. route: 'type3'
  17. }, {
  18. name: '居间协议',
  19. route: 'type4'
  20. }, {
  21. name: '工具使用(借用)协议',
  22. route: 'type5'
  23. }],
  24. navList: [{
  25. label: "我负责的",
  26. icon: "icon-webxialaxuanxiangjiantou",
  27. color: "",
  28. width: "",
  29. id: "1"
  30. }, {
  31. label: "排序",
  32. icon: "icon-jiangxu1",
  33. color: "",
  34. width: "",
  35. id: "sort"
  36. }, {
  37. label: "筛选",
  38. icon: "icon-shaixuan",
  39. color: "",
  40. width: "",
  41. id: "2"
  42. }],
  43. classShow: false,
  44. content: {
  45. "nocache": true,
  46. deleted: 0,
  47. "type": 1,
  48. "version": 1,
  49. "pageNumber": 1,
  50. "pageSize": 20,
  51. "where": {
  52. "condition": "",
  53. "startdate": "",
  54. "enddate": "",
  55. "status": "",
  56. },
  57. "sort": []
  58. },
  59. filter: {
  60. show: false,
  61. type: ['项目', '居间', '工具借用', '框架', '直销'], //状态项
  62. typeActive: "",
  63. status: ['新建', '已提交', '审核', '已终止', '已过期'], //状态项
  64. statusActive: "",
  65. startdate: "",
  66. enddate: ""
  67. }
  68. },
  69. onLoad(options) {
  70. this.setData({
  71. insert: wx.getStorageSync('auth').wcontract.options.some(v => v == 'insert'), //查询新增权限
  72. classActions: wx.getStorageSync('templetList').map(v => {
  73. return {
  74. name: v.templetname,
  75. index: v.templetid
  76. }
  77. }),
  78. 'navList[0].label': wx.getStorageSync('templetList')[0].templetname,
  79. "content.type": wx.getStorageSync('templetList')[0].templetid,
  80. });
  81. if (wx.getStorageSync('siteP').siteid == 'HY') {
  82. this.setData({
  83. typeList: this.data.typeList.filter(v => v.name != '居间协议')
  84. })
  85. }
  86. this.getList();
  87. },
  88. /* 获取列表 */
  89. getList(init = false, data) {
  90. if (init.detail != undefined) init = init.detail;
  91. let content = this.data.content;
  92. if (init) content.pageNumber = 1;
  93. if (content.pageNumber > content.pageTotal) return;
  94. if (data) {
  95. content.where.status = data.statusActive;
  96. content.where.begindate = data.startdate;
  97. content.where.type = data.typeActive;
  98. content.where.enddate = data.enddate;
  99. }
  100. _Http.basic({
  101. "id": 20221121201502,
  102. content
  103. }).then(res => {
  104. console.log("合同列表", res)
  105. this.selectComponent('#ListBox').RefreshToComplete();
  106. if (res.msg != '成功') return wx.showToast({
  107. title: res.msg,
  108. icon: "none"
  109. })
  110. this.setData({
  111. 'content.pageNumber': res.pageNumber + 1,
  112. 'content.pageTotal': res.pageTotal,
  113. 'content.total': res.total,
  114. 'content.sort': res.sort,
  115. list: res.pageNumber == 1 ? res.data : this.data.list.concat(res.data),
  116. loading: false
  117. });
  118. this.setListHeight();
  119. this.getTags();
  120. })
  121. },
  122. /* 处理搜索 */
  123. onSearch({
  124. detail
  125. }) {
  126. this.setData({
  127. "content.where.condition": detail
  128. });
  129. this.getList(true);
  130. },
  131. /* 获取列表标签 */
  132. getTags() {
  133. let list = this.data.list,
  134. ownerids = list.map(v => v.sa_contractid);
  135. _Http.basic({
  136. "id": 20221018102001,
  137. "content": {
  138. nocache: true,
  139. "ownertable": "sa_contract",
  140. ownerids
  141. }
  142. }).then(res => {
  143. console.log("标签", res)
  144. for (let key in res.data) {
  145. let index = list.findIndex(v => v.sa_contractid == key);
  146. list[index].tags = res.data[key]
  147. };
  148. this.setData({
  149. list
  150. })
  151. })
  152. },
  153. onReady() {
  154. this.setListHeight();
  155. },
  156. setListHeight() {
  157. this.selectComponent("#ListBox").setHeight(".total", this);
  158. },
  159. /* 顶部条件导航回调 */
  160. navClick({
  161. detail
  162. }) {
  163. switch (detail.id) {
  164. case '1':
  165. this.setData({
  166. classShow: true
  167. })
  168. break;
  169. case '2':
  170. this.setData({
  171. 'filter.show': true
  172. })
  173. break;
  174. }
  175. },
  176. classClose() {
  177. this.setData({
  178. classShow: false
  179. })
  180. },
  181. classSelect({
  182. detail
  183. }) {
  184. if (this.data.content.type == detail.index) return this.classClose();
  185. this.setData({
  186. "content.type": detail.index,
  187. 'navList[0].label': detail.name
  188. })
  189. this.classClose();
  190. this.getList(true)
  191. },
  192. /* 筛选状态选择 */
  193. selectStatus(e) {
  194. const {
  195. item
  196. } = e.currentTarget.dataset;
  197. this.setData({
  198. "filter.statusActive": this.data.filter.statusActive == item ? "" : item
  199. })
  200. },
  201. /* 筛选状态选择 */
  202. typeStatus(e) {
  203. const {
  204. item
  205. } = e.currentTarget.dataset;
  206. this.setData({
  207. "filter.typeActive": this.data.filter.typeActive == item ? "" : item
  208. })
  209. },
  210. /* 处理筛选 */
  211. handleFilter({
  212. detail
  213. }) {
  214. const data = this.data.filter;
  215. switch (detail) {
  216. case 'confirm':
  217. this.setData({
  218. 'filter.show': false
  219. });
  220. this.getList(true, data);
  221. break;
  222. case 'reset':
  223. this.setData({
  224. 'filter.statusActive': "",
  225. 'filter.typeActive': "",
  226. 'filter.startdate': "",
  227. 'filter.enddate': "",
  228. });
  229. this.getList(true, this.data.filter)
  230. break;
  231. case 'close':
  232. this.setData({
  233. 'filter.show': false
  234. });
  235. break;
  236. }
  237. },
  238. /* 去添加 */
  239. openType() {
  240. this.setData({
  241. typeShow: true
  242. })
  243. },
  244. typeCancel() {
  245. this.setData({
  246. typeShow: false
  247. })
  248. },
  249. /* 选择添加报价形式 */
  250. typeSelect({
  251. detail
  252. }) {
  253. console.log(detail)
  254. if (detail.route) wx.navigateTo({
  255. url: `/packageA/contract/add/${detail.route}/index`,
  256. })
  257. this.typeCancel();
  258. },
  259. onShareAppMessage() {
  260. }
  261. })