index.ts 3.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181
  1. import { sendMsgToMQ } from "../../../../services/api/common/index"
  2. import Toast from "../../../../miniprogram_npm/@vant/weapp/toast/toast";
  3. import { FunCode } from "../../../../constants/enum/funcode"
  4. import { accountid, isEncrypted, protoHeader, userid } from "../../../../services/utils";
  5. import services from "../../../../services/index"
  6. Page({
  7. /**
  8. * 页面的初始数据
  9. */
  10. data: {
  11. /// 履约单据信息
  12. order: <GuangZuan.MyPerformanc>({}),
  13. /// 备注信息
  14. remark: '',
  15. /// 文件上传列表
  16. fileList: [],
  17. /// 上传的文件路径
  18. filePath: ''
  19. },
  20. /// 照片上传
  21. afterRead(e: any) {
  22. const { file } = e.detail;
  23. // 当设置 mutiple 为 true 时, file 为数组格式,否则为对象格式
  24. wx.uploadFile({
  25. url: services.config.uploadUrl,
  26. filePath: file.url,
  27. name: 'file',
  28. formData: { user: 'test' },
  29. success: (res) => {
  30. if (res.statusCode != 200) {
  31. Toast({message: '图片上传失败,原因:'+res.errMsg})
  32. return
  33. }
  34. // 上传完成需要更新 fileList
  35. const { fileList = [] } = this.data;
  36. fileList.push({ ...file, url: res.data});
  37. this.setData({ fileList });
  38. /// 设置文件路径
  39. this.setData({ filePath: JSON.parse(res.data)[0].filePath })
  40. },
  41. });
  42. },
  43. /// 删除图片
  44. deleteImage(e: any) {
  45. const {index} = e.detail.index
  46. // 上传完成需要更新 fileList
  47. const { fileList = [] } = this.data;
  48. fileList.splice(index, 1)
  49. this.setData({ fileList });
  50. },
  51. /**
  52. * 违约申请
  53. */
  54. doBreach() {
  55. /// 校验失败
  56. if (!this.check()) { return }
  57. /// loding.....
  58. Toast.loading({ message: '违约申请请求中.....'})
  59. /// 参数信息
  60. const params = {
  61. PerformancePlanID: this.data.order.performanceplanid,
  62. BreachType: this.data.order.buyaccountid === accountid() ? 2 : 1,
  63. ApplyRemark: this.data.remark,
  64. Applicant: userid(),
  65. Header: protoHeader(FunCode.PerformanceContractedApplyReq)
  66. }
  67. /// 发送请求
  68. sendMsgToMQ({
  69. data: {
  70. data: JSON.stringify(params),
  71. funCodeReq: FunCode.PerformanceContractedApplyReq,
  72. funCodeRsp: FunCode.PerformanceContractedApplyRsp,
  73. isEncrypted: isEncrypted()
  74. },
  75. success: (res) => {
  76. if (res.code != 0) {
  77. Toast.fail({message: '操作申请失败, 原因:'+res.msg})
  78. return
  79. }
  80. /// 操作成功
  81. Toast.success('操作成功')
  82. /// 返回上层视图
  83. wx.navigateBack()
  84. },
  85. fail: (emsg) => {
  86. /// 操作失败
  87. Toast.fail('操作失败,原因:'+emsg)
  88. }, complete: () => {
  89. /// hideLoading
  90. Toast.clear()
  91. }
  92. })
  93. },
  94. check(): boolean {
  95. if (this.data.remark === '') {
  96. Toast.fail({message: '请输入备注!'})
  97. return false
  98. }
  99. if (this.data.filePath === '') {
  100. Toast.fail({message: '请上传附件!'})
  101. return false
  102. }
  103. return true
  104. },
  105. /**
  106. * 返回上层视图
  107. */
  108. backToParent() {
  109. /// 返回上层视图
  110. wx.navigateBack()
  111. },
  112. /**
  113. * 生命周期函数--监听页面加载
  114. */
  115. onLoad(options: any) {
  116. const myPerformanc: GuangZuan.MyPerformanc = JSON.parse(options.id ?? '')
  117. if (myPerformanc) {
  118. this.setData({
  119. order: myPerformanc
  120. })
  121. }
  122. },
  123. /**
  124. * 生命周期函数--监听页面初次渲染完成
  125. */
  126. onReady() {
  127. },
  128. /**
  129. * 生命周期函数--监听页面显示
  130. */
  131. onShow() {
  132. },
  133. /**
  134. * 生命周期函数--监听页面隐藏
  135. */
  136. onHide() {
  137. },
  138. /**
  139. * 生命周期函数--监听页面卸载
  140. */
  141. onUnload() {
  142. },
  143. /**
  144. * 页面相关事件处理函数--监听用户下拉动作
  145. */
  146. onPullDownRefresh() {
  147. },
  148. /**
  149. * 页面上拉触底事件的处理函数
  150. */
  151. onReachBottom() {
  152. },
  153. /**
  154. * 用户点击右上角分享
  155. */
  156. onShareAppMessage() {
  157. }
  158. })