draw-bill.js 5.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179
  1. /*******************************************************************************
  2. * Copyright(c) 2024 dongke All rights reserved. / Confidential
  3. * 类的信息:
  4. * 1.程序名称:
  5. * 2.功能描述:oa 开发票
  6. * 编辑履历:
  7. * 作者 日期 版本 修改内容
  8. * 王英杰 2024-1-19 1.00 列表查询
  9. *******************************************************************************/
  10. const Constants = require('@/utils/Constants.js');
  11. const util = require('@/utils/util.js')
  12. const mixins = require('@/mixins/index.js')
  13. Page({
  14. mixins: [mixins],
  15. /**
  16. * 页面的初始数据
  17. */
  18. data: {
  19. pageFlag: false,
  20. searchContent: [{
  21. code: 'tradeTime',
  22. title: mixins.$t("pastThirthtyDays"),
  23. defaultValue: 5,
  24. searchType: Constants.searchType.date
  25. },
  26. ],
  27. // 列表区(内容)
  28. contentList: [{
  29. name: 'tradeTime',
  30. title: mixins.$t('orderDate')
  31. },
  32. {
  33. name: 'tradeAmount',
  34. title: mixins.$t('paidInAmount'),
  35. type: 'amount'
  36. },
  37. {
  38. name: 'integralName',
  39. title: mixins.$t('usingCloudCoins')
  40. },
  41. {
  42. name: 'couponName',
  43. title: mixins.$t('useDiscountCoupons')
  44. },
  45. ],
  46. buttonSaveList: [{
  47. code: 'drawBill',
  48. title: '开发票',
  49. width: '120rpx',
  50. }, ],
  51. contentSaveList: [{
  52. code: 'flag',
  53. title: mixins.$t("allChoose"),
  54. type: 'checkbox'
  55. },
  56. {
  57. code: 'totalInvoicedAmount',
  58. content: 0,
  59. type: 'number',
  60. title: mixins.$t("totalInvoicedAmount")
  61. },
  62. ],
  63. routeObjName: 'trade',
  64. },
  65. /**
  66. * @desc : 设置查询参数
  67. * @date : 2024年3月8日
  68. * @author : 王英杰
  69. */
  70. setSearchParams(params) {
  71. params.tradeStatus = '交易状态-生效'
  72. params.receiptStatus = '开票状态-未开票'
  73. params.buyEndDate = params.createtimeEnd
  74. return params;
  75. },
  76. /**
  77. * @desc : 查询 入库单
  78. * @date : 2024年3月8日
  79. * @author : 王英杰
  80. */
  81. getData(params) {
  82. return this.excute(this.data.service, this.data.service.selectByCond, params);
  83. },
  84. /**
  85. * @desc : 处理接口返回数据
  86. * @date : 2024年3月8日
  87. * @author : 王英杰
  88. */
  89. handleSearchData(tableData) {
  90. let temp = tableData
  91. temp.forEach(it => {
  92. it.tradeTime = this.formatDateOnly(it.tradeTime)
  93. it.integralName = it.integral + "枚"
  94. it.receiptStatusName = it.receiptStatusName?it.receiptStatusName:'未开票'
  95. })
  96. this.setData({
  97. tableData: temp,
  98. })
  99. },
  100. /**
  101. * @desc : 选择事件
  102. * @date : 2024/2/1 15:49
  103. * @author : 王英杰
  104. */
  105. listChoose(e) {
  106. let temp = this.data.tableData
  107. temp[e.detail.index].checked = e.detail.checked
  108. let contentSaveList = this.data.contentSaveList
  109. let totalInvoicedAmount_index = contentSaveList.findIndex(it => it.code == "totalInvoicedAmount")
  110. let amountNmber = Number(0)
  111. temp.forEach(it => {
  112. it.tradeTime = this.formatDateOnly(it.tradeTime)
  113. if (it.checked) {
  114. amountNmber = amountNmber + Number(it.tradeAmount)
  115. }
  116. })
  117. contentSaveList[totalInvoicedAmount_index].content = amountNmber
  118. this.setData({
  119. tableData: temp,
  120. contentSaveList: contentSaveList
  121. })
  122. },
  123. /**
  124. * @desc : 底部按钮事件
  125. * @date : 2024/2/1 15:49
  126. * @author : 王英杰
  127. */
  128. saveButton(e) {
  129. let tableData = this.data.tableData
  130. let tradeLits = []
  131. tradeLits = tableData.filter(res => {
  132. return res.checked
  133. })
  134. if (tradeLits.length <= 0) {
  135. util.showToast('请至少选择一条记录')
  136. return
  137. }
  138. wx.navigateTo({
  139. url: '/package-basic-data/pages/draw-bill/add/add',
  140. events: {
  141. // 回调后,在这里给页面赋值
  142. refresh: function (e) {}
  143. },
  144. success: function (res) {
  145. // 通过eventChannel向被打开页面传送数据 TODO 测试例子url是写死的,实际中,需要从route中读取
  146. res.eventChannel.emit('params', {
  147. item: tradeLits
  148. })
  149. }
  150. })
  151. },
  152. /**
  153. * @desc : 底部 新建按钮旁 启用回调事件
  154. * @date : 2024/2/1 15:49
  155. * @author : 王英杰
  156. */
  157. cke_change(e) {
  158. let btnFormData = JSON.parse(this.data.btnFormData)
  159. let temp = this.data.tableData
  160. let contentSaveList = this.data.contentSaveList
  161. let totalInvoicedAmount_index = contentSaveList.findIndex(it => it.code == "totalInvoicedAmount")
  162. let amountNmber = Number(0)
  163. temp.forEach(element => {
  164. element.checked = btnFormData.flag
  165. if (element.checked) {
  166. amountNmber = amountNmber + Number(element.tradeAmount)
  167. }
  168. });
  169. contentSaveList[totalInvoicedAmount_index].content = amountNmber
  170. this.setData({
  171. tableData: temp,
  172. contentSaveList: contentSaveList
  173. })
  174. },
  175. })