writeReturnLogistics.js 6.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283
  1. // pages/writeReturnLogistics/writeReturnLogistics.js
  2. var http = require('../../utils/http.js');
  3. Page({
  4. /**
  5. * 页面的初始数据
  6. */
  7. data: {
  8. // 物流公司选择
  9. deliveryList:[],
  10. expressId: 0, //物流公司id
  11. loading:false,
  12. expressName: '', //物流公司名称
  13. expressNo: '', //物流单号
  14. imgs: [], //图片凭证
  15. mobile: '', //手机号码
  16. refundSn: '', //退款编号名称
  17. shopId: '', //店铺id
  18. senderRemarks: '', //备注信息
  19. type:'',//编辑模式
  20. refundDeliveryId:0,//退货id
  21. editData:null
  22. },
  23. /**
  24. * 选择物流公司
  25. */
  26. chooseLogisticsCompany: function (e) {
  27. console.log('快递公司',e.detail.value)
  28. this.setData({
  29. expressId: e.detail.value
  30. })
  31. },
  32. onExpressNoInput:function(e){
  33. this.setData({
  34. expressNo:e.detail.value
  35. });
  36. },
  37. onSenderRemarksInput: function (e) {
  38. this.setData({
  39. senderRemarks: e.detail.value
  40. });
  41. },
  42. /**
  43. * 填写&提交物流信息
  44. */
  45. writeLogisticsMsg: function (e) {
  46. let that = this
  47. if(this.loading) return
  48. if (this.data.expressNo.length == 0) {
  49. return wx.showToast({
  50. icon: 'none',
  51. title: '请填写物流单号',
  52. })
  53. } else {
  54. var pics = '';
  55. this.data.imgs.forEach(function (item) {
  56. // pics += item.path + ',';
  57. pics += item.url + ',';
  58. });
  59. if (pics != '') {
  60. pics = pics.substring(0, pics.length - 1)
  61. }
  62. wx.showLoading();
  63. this.loading = true
  64. let data = {
  65. shopId:this.data.shopId,
  66. deyId: this.data.deliveryList[this.data.expressId].dvyId, //物流公司id
  67. deyName: this.data.deliveryList[this.data.expressId].dvyName, //物流公司名称
  68. deyNu: this.data.expressNo, //物流单号
  69. imgs: pics, //图片凭证
  70. senderMobile: this.data.mobile, //手机号码
  71. refundSn: this.data.refundSn, //退款编号名称
  72. senderRemarks: this.data.senderRemarks, //备注信息
  73. userId:wx.getStorageSync("loginResult").userId
  74. }
  75. if(this.data.type == 'edit'){
  76. data.refundDeliveryId = this.data.refundDeliveryId
  77. }
  78. var parmas = {
  79. url:this.data.type == 'edit'?"/refund/delivery/update": "/refund/delivery/save",
  80. method: this.data.type == 'edit'?"PUT":"POST",
  81. data,
  82. callBack: (res) => {
  83. that.loading = false
  84. wx.hideLoading();
  85. if(res.code == 500){
  86. wx.showToast({
  87. title: res.msg||'操作失败',
  88. })
  89. }else{
  90. // 物流填写跳转页面
  91. wx.navigateTo({
  92. url: '/pages/DetailsOfRefund/DetailsOfRefund?refundSn=' + this.data.refundSn,
  93. })
  94. }
  95. }
  96. };
  97. http.request(parmas);
  98. }
  99. },
  100. /**
  101. * 上传图片
  102. */
  103. getUploadImg: function (e) {
  104. const idx = e.target.dataset.idx
  105. console.log(idx);
  106. var ths = this;
  107. wx.chooseImage({
  108. count: 1, // 默认9
  109. sizeType: ['compressed'],
  110. sourceType: ['album', 'camera'],
  111. success: function (res) {
  112. // 图片的本地临时文件路径列表
  113. var tempFilePaths = res.tempFilePaths;
  114. wx.showLoading({
  115. mask: true
  116. })
  117. var params = {
  118. url: "/p/file/upload",
  119. filePath: tempFilePaths[0],
  120. name: 'file',
  121. callBack: function (res2) {
  122. wx.hideLoading();
  123. var img = {};
  124. img.path = JSON.parse(res2).filePath;
  125. img.url = JSON.parse(res2).resourcesUrl + JSON.parse(res2).filePath;
  126. var imgs = ths.data.imgs;
  127. imgs.push(img);
  128. ths.setData({
  129. imgs: imgs
  130. })
  131. }
  132. };
  133. http.upload(params);
  134. }
  135. })
  136. },
  137. /**
  138. * 删除图片
  139. */
  140. removeImage: function (e) {
  141. // const index = e.target.dataset.index
  142. // const idx = e.target.dataset.idx;
  143. var idx = e.currentTarget.dataset.idx;
  144. var imgs = this.data.imgs;
  145. imgs.splice(idx, 1)
  146. this.setData({
  147. imgs: imgs
  148. });
  149. console.log('删除图片')
  150. },
  151. /**
  152. * 生命周期函数--监听页面加载
  153. */
  154. onLoad: function (options) {
  155. this.setData({
  156. refundSn: options.refundSn,
  157. shopId: options.shopId,
  158. type:options.type,
  159. });
  160. this.loadDeliveryData();
  161. },
  162. //获取物流公司列表
  163. loadDeliveryData(){
  164. wx.showLoading();
  165. http.request({
  166. url:"/p/delivery/list",
  167. method: "get",
  168. data: {},
  169. callBack: (res) => {
  170. wx.hideLoading();
  171. this.setData({
  172. deliveryList:res
  173. });
  174. console.log(res)
  175. if(this.data.type == 'edit'){
  176. this.getByRefundSn()
  177. }
  178. }
  179. });
  180. console.log(this.data.deliveryList)
  181. },
  182. /**
  183. *
  184. * 获取退货物流信息
  185. */
  186. getByRefundSn(){
  187. var parmas = {
  188. url: `/refund/delivery/getByRefundSn/${this.data.refundSn}`,
  189. method: "GET",
  190. data: {},
  191. callBack: (r) => {
  192. let res = r.data
  193. let imgs = []
  194. if(res.imgs){
  195. imgs = res.imgs.split(',').map(i=>{
  196. return {url:i,path:i}
  197. })
  198. }
  199. let expressId = 0
  200. this.data.deliveryList.forEach((i,d)=>{
  201. if(i.dvyId == res.deyId){
  202. expressId = d
  203. }
  204. })
  205. this.setData({
  206. expressId,
  207. expressNo:res.deyNu,
  208. imgs,
  209. senderRemarks:res.senderRemarks,
  210. refundDeliveryId:res.refundDeliveryId
  211. })
  212. }
  213. };
  214. http.request(parmas);
  215. },
  216. /**
  217. * 生命周期函数--监听页面初次渲染完成
  218. */
  219. onReady: function () {
  220. },
  221. /**
  222. * 生命周期函数--监听页面显示
  223. */
  224. onShow: function () {
  225. },
  226. /**
  227. * 生命周期函数--监听页面隐藏
  228. */
  229. onHide: function () {
  230. },
  231. /**
  232. * 生命周期函数--监听页面卸载
  233. */
  234. onUnload: function () {
  235. },
  236. /**
  237. * 页面相关事件处理函数--监听用户下拉动作
  238. */
  239. onPullDownRefresh: function () {
  240. },
  241. /**
  242. * 页面上拉触底事件的处理函数
  243. */
  244. onReachBottom: function () {
  245. },
  246. /**
  247. * 用户点击右上角分享
  248. */
  249. onShareAppMessage: function () {
  250. }
  251. })