createVoyage.js 4.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198
  1. const {
  2. postApi
  3. } = require("../../../apis/api")
  4. const app = getApp()
  5. // pages/voyageManage/createVoyage/createVoyage.js
  6. Page({
  7. data: {
  8. defaultParams: {
  9. },
  10. dischargePorts: [''],
  11. dischargePortIds: [''],
  12. voyage: {},
  13. startTime: '',
  14. index: '',
  15. cargoOwners: []
  16. },
  17. async getCargoOwners() {
  18. let res = await postApi('/user/cargoOwner/select')
  19. this.setData({
  20. cargoOwners: res.data.result
  21. })
  22. },
  23. selectShip(e) {
  24. this.data.voyage.shipId = e.detail.value
  25. },
  26. selectCargoOwner(e) {
  27. this.data.voyage.cargoOwnerId = e.detail.value
  28. },
  29. selectCargo(e) {
  30. this.data.voyage.cargo = e.detail.value
  31. },
  32. selectLoadPort(e) {
  33. this.data.voyage.loadPortId = e.detail.value
  34. this.data.voyage.loadPort = e.detail.label
  35. },
  36. selectDiscPort(e) {
  37. this.data.dischargePortIds[e.currentTarget.dataset.index] = e.detail.value
  38. this.data.dischargePorts[e.currentTarget.dataset.index] = e.detail.label
  39. this.setData({
  40. dischargePorts: this.data.dischargePorts,
  41. dischargePortIds: this.data.dischargePortIds
  42. })
  43. },
  44. addDischargePort() {
  45. let dischargePorts = this.data.dischargePorts
  46. let dischargePortIds = this.data.dischargePortIds
  47. dischargePorts.push('')
  48. dischargePortIds.push('')
  49. this.setData({
  50. dischargePortIds,
  51. dischargePorts
  52. })
  53. },
  54. deleteDischargePort(e) {
  55. let dischargePorts = this.data.dischargePorts
  56. let dischargePortIds = this.data.dischargePortIds
  57. if (dischargePorts.length == 1) {
  58. dischargePortIds = ['']
  59. dischargePorts = ['']
  60. } else {
  61. dischargePorts.splice(e.currentTarget.dataset.index, 1)
  62. dischargePortIds.splice(e.currentTarget.dataset.index, 1)
  63. }
  64. this.setData({
  65. dischargePortIds,
  66. dischargePorts
  67. })
  68. },
  69. checkData() {
  70. if (!this.data.voyage.shipId) {
  71. wx.showToast({
  72. title: '请选择船舶',
  73. icon: "error"
  74. })
  75. return
  76. }
  77. if (!this.data.voyage.cargoOwnerId) {
  78. wx.showToast({
  79. title: '请选择货主',
  80. icon: "error"
  81. })
  82. return
  83. }
  84. if (!this.data.voyage.cargo) {
  85. wx.showToast({
  86. title: '请选择货种',
  87. icon: "error"
  88. })
  89. return
  90. }
  91. if (!this.data.voyage.loadPort || !this.data.voyage.loadPortId) {
  92. wx.showToast({
  93. title: '请选择装货港',
  94. icon: "error"
  95. })
  96. return
  97. }
  98. if (!this.data.dischargePortIds.length || !this.data.dischargePorts.length) {
  99. wx.showToast({
  100. title: '请添加卸货港',
  101. icon: "error"
  102. })
  103. return
  104. }
  105. if (!this.data.tons) {
  106. wx.showToast({
  107. title: '请输入吨位',
  108. icon: "error"
  109. })
  110. return
  111. }
  112. // if(!this.data.pieces){
  113. // wx.showToast({
  114. // title: '请输入件数',
  115. // icon:"error"
  116. // })
  117. // return
  118. // }
  119. // if (!this.data.startTime) {
  120. // wx.showToast({
  121. // title: '请选择开始时间',
  122. // icon: "error"
  123. // })
  124. // return
  125. // }
  126. return true
  127. },
  128. async createVoyage() {
  129. if (!this.checkData()) return
  130. wx.showLoading({
  131. title: '正在提交...',
  132. mask: true,
  133. success: (res) => {},
  134. fail: (res) => {},
  135. complete: (res) => {},
  136. })
  137. let dischargePortIds = this.data.dischargePortIds.filter(item => {
  138. return item
  139. })
  140. let dischargePorts = this.data.dischargePorts.filter(item => {
  141. return item
  142. })
  143. let startTime = this.data.startTime.replaceAll('-', '/')
  144. let postData = {
  145. ...this.data.voyage,
  146. loginAccountId: wx.getStorageSync('loginAccountId'),
  147. dischargePortIds: dischargePortIds.join(','),
  148. dischargePorts: dischargePorts.join(','),
  149. startTime,
  150. tons: this.data.tons,
  151. pieces: this.data.pieces,
  152. }
  153. let res = await postApi('/voyage/add', postData)
  154. wx.hideLoading({
  155. success: (res) => {},
  156. })
  157. if (res.data.status == 0) {
  158. wx.showToast({
  159. title: res.data.msg,
  160. })
  161. app.globalData.maintab = 1
  162. wx.switchTab({
  163. url: '/pages/voyageManage/voyageManage',
  164. })
  165. } else {
  166. wx.showToast({
  167. title: res.data.msg,
  168. icon: "error"
  169. })
  170. }
  171. },
  172. onShow() {
  173. this.setData({
  174. defaultParams: {
  175. loginAccountId: wx.getStorageSync('loginAccountId')
  176. }
  177. })
  178. },
  179. bindCargoOwnerChange(e) {
  180. let {
  181. value: index
  182. } = e.detail
  183. this.data.voyage.cargoOwnerId = this.data.cargoOwners[index].key
  184. this.setData({
  185. index
  186. })
  187. },
  188. onLoad() {
  189. this.getCargoOwners()
  190. }
  191. })