draw-bill.js 5.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185
  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: 'orderAmount',
  34. title: mixins.$t('orderAmount'),
  35. type: 'amount'
  36. },
  37. {
  38. name: 'integral',
  39. title: mixins.$t('usingCloudCoins')
  40. },
  41. {
  42. name: 'discountName',
  43. title: mixins.$t('useDiscountCoupons')
  44. },
  45. {
  46. name: 'tradeAmount',
  47. title: mixins.$t('paidInAmount'),
  48. type: 'amount'
  49. },
  50. ],
  51. buttonSaveList: [{
  52. code: 'drawBill',
  53. title: '开发票',
  54. width: '120rpx',
  55. }, ],
  56. contentSaveList: [{
  57. code: 'flag',
  58. title: mixins.$t("allChoose"),
  59. type: 'checkbox'
  60. },
  61. {
  62. code: 'totalInvoicedAmount',
  63. content: 0,
  64. type: 'number',
  65. title: mixins.$t("totalInvoicedAmount")
  66. },
  67. ],
  68. routeObjName: 'trade',
  69. },
  70. /**
  71. * @desc : 设置查询参数
  72. * @date : 2024年3月8日
  73. * @author : 王英杰
  74. */
  75. setSearchParams(params) {
  76. params.tradeStatus = '交易状态-生效'
  77. params.receiptStatus = '开票状态-未开票'
  78. params.buyEndDate = params.createtimeEnd
  79. return params;
  80. },
  81. /**
  82. * @desc : 查询 入库单
  83. * @date : 2024年3月8日
  84. * @author : 王英杰
  85. */
  86. getData(params) {
  87. return this.excute(this.data.service, this.data.service.selectByCond, params);
  88. },
  89. /**
  90. * @desc : 处理接口返回数据
  91. * @date : 2024年3月8日
  92. * @author : 王英杰
  93. */
  94. handleSearchData(tableData) {
  95. let temp = tableData
  96. temp.forEach(it => {
  97. it.tradeTime = this.formatDateOnly(it.tradeTime)
  98. it.integralName = it.integral + "枚"
  99. it.receiptStatusName = it.receiptStatusName ? it.receiptStatusName : '未开票'
  100. it.discountName = it.discount != null ? it.discount + "折优惠卷" : "-"
  101. })
  102. this.setData({
  103. tableData: temp,
  104. })
  105. },
  106. /**
  107. * @desc : 选择事件
  108. * @date : 2024/2/1 15:49
  109. * @author : 王英杰
  110. */
  111. listChoose(e) {
  112. let temp = this.data.tableData
  113. temp[e.detail.index].checked = e.detail.checked
  114. let contentSaveList = this.data.contentSaveList
  115. let totalInvoicedAmount_index = contentSaveList.findIndex(it => it.code == "totalInvoicedAmount")
  116. let amountNmber = Number(0)
  117. temp.forEach(it => {
  118. it.tradeTime = this.formatDateOnly(it.tradeTime)
  119. if (it.checked) {
  120. amountNmber = amountNmber + Number(it.tradeAmount)
  121. }
  122. })
  123. contentSaveList[totalInvoicedAmount_index].content = amountNmber
  124. this.setData({
  125. tableData: temp,
  126. contentSaveList: contentSaveList
  127. })
  128. },
  129. /**
  130. * @desc : 底部按钮事件
  131. * @date : 2024/2/1 15:49
  132. * @author : 王英杰
  133. */
  134. saveButton(e) {
  135. let tableData = this.data.tableData
  136. let tradeLits = []
  137. tradeLits = tableData.filter(res => {
  138. return res.checked
  139. })
  140. if (tradeLits.length <= 0) {
  141. util.showToast('请至少选择一条记录')
  142. return
  143. }
  144. wx.navigateTo({
  145. url: '/package-basic-data/pages/draw-bill/add/add',
  146. events: {
  147. // 回调后,在这里给页面赋值
  148. refresh: function (e) {}
  149. },
  150. success: function (res) {
  151. // 通过eventChannel向被打开页面传送数据 TODO 测试例子url是写死的,实际中,需要从route中读取
  152. res.eventChannel.emit('params', {
  153. item: tradeLits
  154. })
  155. }
  156. })
  157. },
  158. /**
  159. * @desc : 底部 新建按钮旁 启用回调事件
  160. * @date : 2024/2/1 15:49
  161. * @author : 王英杰
  162. */
  163. cke_change(e) {
  164. let btnFormData = JSON.parse(this.data.btnFormData)
  165. let temp = this.data.tableData
  166. let contentSaveList = this.data.contentSaveList
  167. let totalInvoicedAmount_index = contentSaveList.findIndex(it => it.code == "totalInvoicedAmount")
  168. let amountNmber = Number(0)
  169. temp.forEach(element => {
  170. element.checked = btnFormData.flag
  171. if (element.checked) {
  172. amountNmber = amountNmber + Number(element.tradeAmount)
  173. }
  174. });
  175. contentSaveList[totalInvoicedAmount_index].content = amountNmber
  176. this.setData({
  177. tableData: temp,
  178. contentSaveList: contentSaveList
  179. })
  180. },
  181. })