select-bill.js 4.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209
  1. /*******************************************************************************
  2. * Copyright(c) 2021 dongke All rights reserved. / Confidential
  3. * 类的信息:
  4. * 1.程序名称:
  5. * 2.功能描述:单据列表-应收单据 -应付单据
  6. * 编辑履历:
  7. * 作者 日期 版本 修改内容
  8. * jyh 2022-5-25 1.00 新建
  9. *******************************************************************************/
  10. const Constants = require('@/utils/Constants.js');
  11. const mixins = require('@/mixins/index.js')
  12. Page({
  13. mixins: [mixins],
  14. /**
  15. * 页面的初始数据
  16. */
  17. data: {
  18. // 查询条件
  19. searchContent: [{
  20. code: 'makeTime',
  21. title: mixins.$t('pastThirthtyDays'),
  22. defaultValue: 5,
  23. searchType: Constants.searchType.date
  24. }, {
  25. code: 'choose',
  26. title: mixins.$t('choose'),
  27. searchType: Constants.searchType.pick
  28. }],
  29. // 查询条件-筛选
  30. pullMenuList: [
  31. ],
  32. totalAmount: 0,
  33. allChecked: false,
  34. objInfo: {},
  35. tableData: [],
  36. choooseInboundItemList: [],
  37. // 路由
  38. routeObjName: 'account',
  39. formMode: Constants.formMode.index,
  40. objectType: 'cusId',
  41. // 弹出按钮
  42. buttonList: [{
  43. name: 'merge',
  44. title: mixins.$t('confirm')
  45. }],
  46. },
  47. /**
  48. * @desc : 页面加载数据方法
  49. * @date : 2024/2/1 15:49
  50. * @author : jyh
  51. */
  52. loadInit() {
  53. let id = this.data.item.cusId ? this.data.item.cusId : this.data.item.supId
  54. this.setData({
  55. objectType: this.data.item.cusId ? 'cusId' : 'supId'
  56. })
  57. // 增加出入库的单据类型
  58. let pullMenuList = this.data.pullMenuList
  59. if (this.data.item.cusId) {
  60. pullMenuList = [
  61. {
  62. code: 'outType',
  63. pullType: 'mSelect',
  64. typeName: 'outType'
  65. },
  66. {
  67. code: 'biznisNo',
  68. },
  69. ]
  70. } else {
  71. pullMenuList = [
  72. {
  73. code: 'intoType',
  74. pullType: 'mSelect',
  75. typeName: 'intoType'
  76. },
  77. {
  78. code: 'biznisNo',
  79. },
  80. ]
  81. }
  82. this.setData({
  83. pullMenuList
  84. })
  85. this.excute(this.data.service, this.data.service.getAccount + id, null).then(
  86. res => {
  87. this.setData({
  88. objInfo: res.data.data
  89. })
  90. })
  91. },
  92. /**
  93. * @desc : 加载数据源
  94. * @date : 2024/2/1 15:49
  95. * @author : 姜永辉
  96. */
  97. getData(params) {
  98. if (this.data.item.cusId) {
  99. return this.excute(this.data.service, this.data.service.getReceivableAccountItem, params);
  100. } else {
  101. return this.excute(this.data.service, this.data.service.getPayableAccountItem, params);
  102. }
  103. },
  104. /**
  105. * @desc : 设置查询参数
  106. * @date : 2024/2/1 15:49
  107. * @author : 姜永辉
  108. */
  109. setSearchParams(params) {
  110. // 退收款单用的
  111. if (this.data.item.formType) {
  112. params.formType = this.data.item.formType
  113. }
  114. params.objectId = this.data.item.cusId ? this.data.item.cusId : this.data.item.supId
  115. return params
  116. },
  117. /**
  118. * @desc : 父级商品信息选择
  119. * @date : 2024/2/1 15:49
  120. * @author : 姜永辉
  121. */
  122. onListItemChange(e) {
  123. let tableData = this.data.tableData
  124. let index = e.currentTarget.dataset.index
  125. tableData[index].checked = !tableData[index].checked
  126. this.setData({
  127. tableData: tableData
  128. })
  129. this.calculateTotal()
  130. },
  131. /**
  132. * @desc : 全退
  133. * @date : 2024/2/1 15:49
  134. * @author : 姜永辉
  135. */
  136. onCheckboxChange(e) {
  137. let checked = e.detail.checked
  138. let tableData = this.data.tableData
  139. tableData.forEach(res => {
  140. res.checked = checked
  141. })
  142. this.setData({
  143. tableData: tableData
  144. })
  145. this.calculateTotal()
  146. },
  147. /**
  148. * @desc : 计算金额/过滤出已选数据
  149. * @date : 2024/2/1 15:49
  150. * @author : 姜永辉
  151. */
  152. calculateTotal() {
  153. let tableData = this.data.tableData
  154. let totalAmount = Number(0)
  155. //过滤出已选数据
  156. tableData.forEach(item => {
  157. if (item.checked) {
  158. totalAmount += Number(item.amtResidue)
  159. }
  160. })
  161. this.setData({
  162. totalAmount: totalAmount.toFixed(2),
  163. })
  164. },
  165. /**
  166. * @desc : 跳转退货页
  167. * @date : 2024/2/1 15:49
  168. * @author : 姜永辉
  169. */
  170. returnData(e) {
  171. let that = this
  172. let itemLists = []
  173. let tableData = that.data.tableData
  174. if (tableData == null || tableData.length == 0) {
  175. return
  176. }
  177. //过滤出已选数据
  178. tableData.forEach(item => {
  179. if (item.checked) {
  180. itemLists.push(item)
  181. }
  182. })
  183. const eventChannel = that.getOpenerEventChannel();
  184. eventChannel.emit('bindData', {
  185. data: {
  186. receivableList: itemLists,
  187. objInfo: that.data.objInfo,
  188. receivableResidue: that.data.totalAmount,
  189. receiptResidue: that.data.objectType == 'cusId' ?
  190. that.data.objInfo.receiptResidue : that.data.objInfo.paymentResidue, //剩余预存
  191. }
  192. })
  193. wx.navigateBack({
  194. delta: 1
  195. })
  196. },
  197. })