select-source-sale-order.js 5.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203
  1. const Constants = require('@/utils/Constants.js');
  2. const app = getApp()
  3. const mixins = require('@/mixins/index.js')
  4. Page({
  5. mixins: [mixins],
  6. /**
  7. * 页面的初始数据
  8. */
  9. data: {
  10. returnTotalAmount: 0,
  11. allChecked: false,
  12. // 路由
  13. routeObjName: 'saleOutBound',
  14. orderService: app.globalData['orderService'],
  15. tableData: [],
  16. choooseInboundItemList: [],
  17. buttonSaveList: [{ code: 'add', title: mixins.$t('confirm'), width: '120rpx', color: '#1B365D' }],
  18. contentSaveList: [{ code: 'need', title: '合计金额', type: 'str' }, { code: 'amount', content: 0, type: 'number' }],
  19. },
  20. /**
  21. * @desc : 加载数据源
  22. * @date : 2024/2/1 15:49
  23. * @author : 于继渤
  24. */
  25. getData(params) {
  26. return this.excute(this.data.orderService, this.data.orderService.selectTotalSingleTapeDetailPage, params);
  27. },
  28. /**
  29. * @desc : 处理接口返回数据
  30. * @date : 2024年3月8日
  31. * @author : 王英杰
  32. */
  33. handleSearchData(tableData) {
  34. tableData.forEach(item=>{
  35. item.outingQty = Number(item.itemQty - item.outQty)
  36. })
  37. this.setData({
  38. tableData:tableData
  39. })
  40. },
  41. /**
  42. * @desc : 设置查询参数
  43. * @date : 2024/2/1 15:49
  44. * @author : 于继渤
  45. */
  46. setSearchParams(params) {
  47. //销售状态
  48. params.outStatusList = [Constants.outStatus.unOutBound]
  49. params.cusId = this.data.item.id
  50. return params
  51. },
  52. /**
  53. * @desc : 父级商品信息选择
  54. * @date : 2024/2/1 15:49
  55. * @author : 于继渤
  56. */
  57. onListItemChange(e) {
  58. let tableData = this.data.tableData
  59. let index = e.currentTarget.dataset.index
  60. tableData.forEach(res => {
  61. res.checked = false
  62. res.orderItemResponseList.forEach(item => {
  63. item.checked = false
  64. })
  65. })
  66. tableData[index].checked = e.detail
  67. let orderItemResponseList = tableData[index].orderItemResponseList
  68. if (orderItemResponseList && orderItemResponseList.length > 0) {
  69. orderItemResponseList.forEach(res => {
  70. res.checked = tableData[index].checked
  71. })
  72. }
  73. this.setData({
  74. tableData: tableData
  75. })
  76. this.calculateTotal()
  77. },
  78. /**
  79. * @desc : 子级商品信息选择
  80. * @date : 2024/2/1 15:49
  81. * @author : 于继渤
  82. */
  83. onChangeItemCheckbox(e) {
  84. let tableData = this.data.tableData
  85. let index = e.currentTarget.dataset.index
  86. let index_ = e.currentTarget.dataset.index_
  87. console.log(index, index_)
  88. tableData.forEach(res => {
  89. res.checked = false
  90. // res.orderItemResponseList.forEach(item=>{
  91. // item.checked = false
  92. // })
  93. })
  94. // tableData.forEach(item => {
  95. // item.checked = false
  96. // item.orderItemResponseList.forEach(it => {
  97. // it.checked = false
  98. // })
  99. // })
  100. tableData[index].orderItemResponseList[index_].checked = e.detail
  101. this.setData({
  102. tableData: tableData
  103. })
  104. this.calculateTotal()
  105. },
  106. /**
  107. * @desc : 全退
  108. * @date : 2024/2/1 15:49
  109. * @author : 于继渤
  110. */
  111. onCheckboxChange(e) {
  112. console.log(e.detail.checked)
  113. let checked = e.detail.checked
  114. let tableData = this.data.tableData
  115. tableData.forEach(res => {
  116. res.checked = checked
  117. if (res.orderItemResponseList && res.orderItemResponseList.length > 0) {
  118. res.orderItemResponseList.forEach(item => {
  119. item.checked = checked
  120. })
  121. }
  122. })
  123. this.setData({
  124. tableData: tableData
  125. })
  126. this.calculateTotal()
  127. },
  128. /**
  129. * @desc : 计算金额/过滤出已选数据
  130. * @date : 2024/2/1 15:49
  131. * @author : 于继渤
  132. */
  133. calculateTotal() {
  134. let tableData = this.data.tableData
  135. let contentSaveList = this.data.contentSaveList
  136. let choooseInboundItemList = []
  137. let returnTotalAmount = Number(0)
  138. //过滤出已选数据
  139. tableData.forEach(res => {
  140. if (res.orderItemResponseList && res.orderItemResponseList.length > 0) {
  141. res.orderItemResponseList.forEach(item => {
  142. if (item.checked) {
  143. item.priceOut = item.priceSale
  144. item.outingQty = Number(item.itemQty - item.outQty)
  145. item.outingAmt = item.priceOut * item.outingQty
  146. //设置最大值
  147. item['outingQty_min'] = 1
  148. item['outingQty_max'] = item.outingQty
  149. delete item['priceLimited']
  150. delete item['pricePurchase']
  151. delete item['priceWholesale']
  152. choooseInboundItemList.push(item)
  153. }
  154. })
  155. }
  156. })
  157. if (choooseInboundItemList && choooseInboundItemList.length > 0) {
  158. choooseInboundItemList.forEach(res => {
  159. returnTotalAmount += Number(res.itemQty * res.priceSale)
  160. })
  161. }
  162. contentSaveList[1]['content'] = returnTotalAmount.toFixed(2)
  163. this.setData({
  164. choooseInboundItemList: choooseInboundItemList,
  165. contentSaveList: contentSaveList,
  166. })
  167. },
  168. /**
  169. * @desc : 跳转退货页
  170. * @date : 2024/2/1 15:49
  171. * @author : 于继渤
  172. */
  173. toAdd() {
  174. let itemList = this.data.choooseInboundItemList
  175. const eventChannel = this.getOpenerEventChannel();
  176. eventChannel.emit('bindData', { itemList: itemList, fromNo: itemList[0].orderNo ,fromId: itemList[0].orderId })
  177. wx.navigateBack({
  178. data: 1
  179. })
  180. },
  181. /**
  182. * 生命周期函数--监听页面加载
  183. */
  184. onLoad(options) {
  185. },
  186. })