金诚优选前端代码
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

172 lines
3.9 KiB

  1. <template>
  2. <view id="retreat">
  3. <view class="company">
  4. <view class="detail">物流公司</view>
  5. <picker :value="selectedIndex" :range="list" @change="change">
  6. <input type="text" placeholder="选择物流公司" disabled :value="list[selectedIndex]"></input>
  7. </picker>
  8. </view>
  9. <view class="code">
  10. <view class="air_way">
  11. 运单号
  12. </view>
  13. <input type="number" placeholder="填写运单号的条形码数字" @input="changeCodeNumber"></input>
  14. </view>
  15. <view class="submit">
  16. <button type="primary" @tap="submit">完成</button>
  17. </view>
  18. </view>
  19. </template>
  20. <script>
  21. import {pageLogin, getUrl,config,is} from '@/common/js/utils.js';
  22. export default {
  23. data() {
  24. return {
  25. list: "",
  26. codeList: "",
  27. selectedIndex: "",
  28. codeNumber: "",
  29. refundNo: ""
  30. };
  31. },
  32. onShow() {// let app =getApp();
  33. // app.isBirthday().then(()=>{
  34. // if(this.$cookieStorage.get("birthday_gift")){
  35. // var giftData=this.$cookieStorage.get("birthday_gift").data;
  36. // new app.ToastPannel().__page.showText(giftData);
  37. // }
  38. // });
  39. },
  40. onLoad(e) {
  41. this.setData({
  42. refundNo: e.no
  43. });
  44. pageLogin(getUrl(), () => {
  45. this.showlogistics();
  46. });
  47. },
  48. components: {},
  49. props: {},
  50. methods: {
  51. change: function (e) {
  52. // console.log(e);
  53. // 修改选中项文案
  54. this.setData({
  55. selectedIndex: e.detail.value
  56. });
  57. },
  58. showlogistics() {
  59. this.$http.get({
  60. api: "api/shipping/methods",
  61. header: {
  62. Authorization: this.$cookieStorage.get('user_token')
  63. }
  64. }).then(res => {
  65. var arr = [];
  66. res.data.data.forEach(val => {
  67. arr.push(val.name);
  68. });
  69. this.setData({
  70. list: arr,
  71. codeList: res.data.data
  72. });
  73. });
  74. },
  75. changeCodeNumber(e) {
  76. this.setData({
  77. codeNumber: e.detail.value
  78. });
  79. },
  80. submit() {
  81. var message = null;
  82. if (!this.selectedIndex) {
  83. message = "请选择物流公司";
  84. } else if (!this.codeNumber) {
  85. message = "请填写运单号";
  86. }
  87. if (message) {
  88. wx.showModal({
  89. title: "提示",
  90. content: message
  91. });
  92. return;
  93. }
  94. var applyItem = {
  95. refund_no: this.refundNo,
  96. shipping_name: this.codeList[this.selectedIndex].name,
  97. shipping_tracking: this.codeNumber,
  98. shipping_code: this.codeList[this.selectedIndex].code // console.log(applyItem);
  99. };
  100. this.returnData(applyItem);
  101. },
  102. returnData(data) {
  103. this.$http.post({
  104. api: "api/refund/user/return",
  105. header: {
  106. Authorization: this.$cookieStorage.get('user_token')
  107. },
  108. data: data
  109. }).then(res => {
  110. if (res.data.status) {
  111. wx.showToast({
  112. title: "提交申请成功",
  113. duration: 1500,
  114. success: () => {
  115. setTimeout(() => {
  116. wx.redirectTo({
  117. url: '/pages/afterSales/index/index'
  118. });
  119. }, 1500);
  120. }
  121. });
  122. } else {
  123. wx.showToast({
  124. title: "提交申请失败",
  125. duration: 1500
  126. });
  127. }
  128. });
  129. },
  130. setData: function (obj) {
  131. let that = this;
  132. let keys = [];
  133. let val, data;
  134. Object.keys(obj).forEach(function (key) {
  135. keys = key.split('.');
  136. val = obj[key];
  137. data = that.$data;
  138. keys.forEach(function (key2, index) {
  139. if (index + 1 == keys.length) {
  140. that.$set(data, key2, val);
  141. } else {
  142. if (!data[key2]) {
  143. that.$set(data, key2, {});
  144. }
  145. }
  146. data = data[key2];
  147. });
  148. });
  149. }
  150. },
  151. computed: {},
  152. watch: {}
  153. };
  154. </script>
  155. <style rel="stylesheet/less" lang="less">
  156. @import "retreat";
  157. </style>