order-refund.js 13 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379
  1. // /pages/order-refund/order-refund.js
  2. var api = require('../../api.js');
  3. var app = getApp();
  4. Page({
  5. /**
  6. * 页面的初始数据
  7. */
  8. data: {
  9. switch_tab_1: "active",
  10. switch_tab_2: "",
  11. goods: {
  12. goods_pic: "https://goss1.vcg.com/creative/vcg/800/version23/VCG21f302700c4.jpg",
  13. },
  14. refund_data_1: {},
  15. refund_data_2: {},
  16. },
  17. /**
  18. * 生命周期函数--监听页面加载
  19. */
  20. onLoad: function (options) {
  21. app.pageOnLoad(this);
  22. var page = this;
  23. page.setData({
  24. order_detail_id: options.id
  25. })
  26. if (options.reason){
  27. page.setData({
  28. reason: options.reason
  29. })
  30. }
  31. app.request({
  32. url: api.order.refund_preview,
  33. data: {
  34. order_detail_id: options.id,
  35. },
  36. success: function (res) {
  37. if (res.code == 0) {
  38. page.setData({
  39. goods: res.data,
  40. });
  41. }
  42. if (res.code == 1) {
  43. wx.showModal({
  44. title: "提示",
  45. content: res.msg,
  46. image: "/images/icon-warning.png",
  47. success: function (res) {
  48. if (res.confirm) {
  49. wx.navigateBack();
  50. }
  51. }
  52. });
  53. }
  54. }
  55. });
  56. },
  57. /**
  58. * 生命周期函数--监听页面初次渲染完成
  59. */
  60. onReady: function () {
  61. },
  62. /**
  63. * 生命周期函数--监听页面显示
  64. */
  65. onShow: function () {
  66. },
  67. switchTab: function (e) {
  68. var page = this;
  69. var id = e.currentTarget.dataset.id;
  70. if (id == 1) {
  71. page.setData({
  72. switch_tab_1: "active",
  73. switch_tab_2: "",
  74. });
  75. } else {
  76. page.setData({
  77. switch_tab_1: "",
  78. switch_tab_2: "active",
  79. });
  80. }
  81. },
  82. descInput: function (e) {
  83. var page = this;
  84. var type = e.currentTarget.dataset.type;
  85. var value = e.detail.value;
  86. if (type == 1) {
  87. var refund_data_1 = page.data.refund_data_1;
  88. refund_data_1.desc = value;
  89. page.setData({
  90. refund_data_1: refund_data_1,
  91. });
  92. }
  93. if (type == 2) {
  94. var refund_data_2 = page.data.refund_data_2;
  95. refund_data_2.desc = value;
  96. page.setData({
  97. refund_data_2: refund_data_2,
  98. });
  99. }
  100. },
  101. chooseImage: function (e) {
  102. var page = this;
  103. var type = e.currentTarget.dataset.type;
  104. var max_pic_num = 6;
  105. if (type == 1) {
  106. var refund_data_1 = page.data.refund_data_1;
  107. var pic_num = 0;
  108. if (refund_data_1.pic_list)
  109. pic_num = refund_data_1.pic_list.length || 0;
  110. var _count = max_pic_num - pic_num;
  111. wx.chooseImage({
  112. count: _count,
  113. success: function (res) {
  114. if (!refund_data_1.pic_list)
  115. refund_data_1.pic_list = [];
  116. refund_data_1.pic_list = refund_data_1.pic_list.concat(res.tempFilePaths);
  117. page.setData({
  118. refund_data_1: refund_data_1
  119. });
  120. }
  121. });
  122. }
  123. if (type == 2) {
  124. var refund_data_2 = page.data.refund_data_2;
  125. var pic_num = 0;
  126. if (refund_data_2.pic_list)
  127. pic_num = refund_data_2.pic_list.length || 0;
  128. var _count = max_pic_num - pic_num;
  129. wx.chooseImage({
  130. count: _count,
  131. success: function (res) {
  132. if (!refund_data_2.pic_list)
  133. refund_data_2.pic_list = [];
  134. refund_data_2.pic_list = refund_data_2.pic_list.concat(res.tempFilePaths);
  135. page.setData({
  136. refund_data_2: refund_data_2
  137. });
  138. }
  139. });
  140. }
  141. },
  142. deleteImage: function (e) {
  143. var page = this;
  144. var type = e.currentTarget.dataset.type;
  145. var index = e.currentTarget.dataset.index;
  146. if (type == 1) {
  147. var refund_data_1 = page.data.refund_data_1;
  148. refund_data_1.pic_list.splice(index, 1);
  149. page.setData({
  150. refund_data_1: refund_data_1
  151. });
  152. }
  153. if (type == 2) {
  154. var refund_data_2 = page.data.refund_data_2;
  155. refund_data_2.pic_list.splice(index, 1);
  156. page.setData({
  157. refund_data_2: refund_data_2
  158. });
  159. }
  160. },
  161. refundSubmit: function (e) {
  162. var page = this;
  163. var type = e.currentTarget.dataset.type;
  164. /*--退货退款开始--*/
  165. if (type == 1) {//退货退款
  166. var desc = page.data.reason;
  167. if (desc == undefined) {
  168. wx.showToast({
  169. title: "请填写退款原因",
  170. image: "/images/icon-warning.png"
  171. });
  172. return;
  173. }
  174. var pic_url_list = [];
  175. var pic_complete_count = 0;
  176. var siteinfo = app.siteInfo;
  177. var postData = {};
  178. if (siteinfo.uniacid != -1 && siteinfo != '-1') {
  179. postData._uniacid = siteinfo.uniacid;
  180. postData._acid = siteinfo.acid;
  181. }
  182. //如果有图片先上传图片
  183. if (page.data.refund_data_1.pic_list && page.data.refund_data_1.pic_list.length > 0) {
  184. wx.showLoading({
  185. title: "正在上传图片",
  186. mask: true,
  187. });
  188. for (var i in page.data.refund_data_1.pic_list) {
  189. (function (i) {
  190. wx.uploadFile({
  191. url: api.default.upload_image,
  192. filePath: page.data.refund_data_1.pic_list[i],
  193. name: "image",
  194. formData: postData,
  195. success: function (res) {
  196. //console.log(res);
  197. },
  198. complete: function (res) {
  199. pic_complete_count++;
  200. if (res.statusCode == 200) {
  201. res = JSON.parse(res.data);
  202. if (res.code == 0) {
  203. pic_url_list[i] = res.data.url;
  204. }
  205. }
  206. if (pic_complete_count == page.data.refund_data_1.pic_list.length) {
  207. wx.hideLoading();
  208. _submit();
  209. }
  210. }
  211. });
  212. })(i);
  213. }
  214. } else {
  215. _submit();
  216. }
  217. function _submit() {
  218. wx.showLoading({
  219. title: "正在提交",
  220. mask: true,
  221. });
  222. app.request({
  223. url: api.order.refund,
  224. method: "post",
  225. data: {
  226. type: 1,
  227. order_detail_id: page.data.goods.order_detail_id,
  228. desc: desc,
  229. pic_list: JSON.stringify(pic_url_list),
  230. },
  231. success: function (res) {
  232. wx.hideLoading();
  233. if (res.code == 0) {
  234. wx.showModal({
  235. title: "提示",
  236. content: res.msg,
  237. showCancel: false,
  238. success: function (res) {
  239. if (res.confirm) {
  240. wx.redirectTo({
  241. url: "/pages/order/order?status=4"
  242. });
  243. }
  244. }
  245. });
  246. }
  247. if (res.code == 1) {
  248. wx.showModal({
  249. title: "提示",
  250. content: res.msg,
  251. showCancel: false,
  252. success: function (res) {
  253. if (res.confirm) {
  254. wx.navigateBack({
  255. delta: 2,
  256. });
  257. }
  258. }
  259. });
  260. }
  261. }
  262. });
  263. }
  264. }
  265. /*--退货退款结束--*/
  266. /*--换货开始--*/
  267. if (type == 2) {//换货
  268. var desc = page.data.refund_data_2.desc || "";
  269. if (desc.length == 0) {
  270. wx.showToast({
  271. title: "请填写退款说明",
  272. image: "/images/icon-warning.png"
  273. });
  274. return;
  275. }
  276. var pic_url_list = [];
  277. var pic_complete_count = 0;
  278. //如果有图片先上传图片
  279. if (page.data.refund_data_2.pic_list && page.data.refund_data_2.pic_list.length > 0) {
  280. wx.showLoading({
  281. title: "正在上传图片",
  282. mask: true,
  283. });
  284. for (var i in page.data.refund_data_2.pic_list) {
  285. (function (i) {
  286. wx.uploadFile({
  287. url: api.default.upload_image,
  288. filePath: page.data.refund_data_2.pic_list[i],
  289. name: "image",
  290. success: function (res) {
  291. //console.log(res);
  292. },
  293. complete: function (res) {
  294. pic_complete_count++;
  295. if (res.statusCode == 200) {
  296. res = JSON.parse(res.data);
  297. if (res.code == 0) {
  298. pic_url_list[i] = res.data.url;
  299. }
  300. }
  301. if (pic_complete_count == page.data.refund_data_2.pic_list.length) {
  302. wx.hideLoading();
  303. _submit();
  304. }
  305. }
  306. });
  307. })(i);
  308. }
  309. } else {
  310. _submit();
  311. }
  312. function _submit() {
  313. wx.showLoading({
  314. title: "正在提交",
  315. mask: true,
  316. });
  317. app.request({
  318. url: api.order.refund,
  319. method: "post",
  320. data: {
  321. type: 2,
  322. order_detail_id: page.data.goods.order_detail_id,
  323. desc: desc,
  324. pic_list: JSON.stringify(pic_url_list),
  325. },
  326. success: function (res) {
  327. wx.hideLoading();
  328. if (res.code == 0) {
  329. wx.showModal({
  330. title: "提示",
  331. content: res.msg,
  332. showCancel: false,
  333. success: function (res) {
  334. if (res.confirm) {
  335. wx.redirectTo({
  336. url: "/pages/order/order?status=4"
  337. });
  338. }
  339. }
  340. });
  341. }
  342. if (res.code == 1) {
  343. wx.showModal({
  344. title: "提示",
  345. content: res.msg,
  346. showCancel: false,
  347. success: function (res) {
  348. if (res.confirm) {
  349. wx.navigateBack({
  350. delta: 2,
  351. });
  352. }
  353. }
  354. });
  355. }
  356. }
  357. });
  358. }
  359. }
  360. /*--换货结束--*/
  361. }
  362. });