Jacob
1 天以前 6a0a2c52a4ea8049909b8d7a40d0c2d098b5e74c
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
<template>
   <view>
       <form  @submit="subRefund" report-submit='true'>
         <view class='apply-return'>
           <view class='goodsStyle acea-row row-between borRadius14' v-for="(item,index) in orderInfo.orderInfoList" :key="index">
               <view class='pictrue'><image :src='item.image'></image></view>
               <view class='text acea-row row-between'>
                 <view class='name line2'>{{item.storeName}}</view>
                 <view class='money'>
                     <view>¥{{item.price}}</view>
                     <view class='num'>x{{item.cartNum}}</view>
                 </view>
               </view>
           </view>
           <view class='list borRadius14'>
               <view class='item acea-row row-between-wrapper'>
                 <view>退货件数</view>
                 <view class='num'>{{orderInfo.totalNum}}</view>
               </view>
               <view class='item acea-row row-between-wrapper'>
                 <view>退款金额</view>
                 <view class='num'>¥{{orderInfo.payPrice}}</view>
               </view>
               <view class='item acea-row row-between-wrapper' @tap="toggleTab('region')">
                 <view>退款原因</view>
                 <picker class='num' @change="bindPickerChange" :value="index" :range="RefundArray">
                     <view class="picker acea-row row-between-wrapper">
                       <view class='reason'>{{RefundArray[index]}}</view>
                       <text class='iconfont icon-jiantou'></text>
                     </view>
                 </picker>
               </view>
               <view class='item textarea acea-row row-between'>
                 <view>备注说明</view>
                 <textarea placeholder='填写备注信息,100字以内' class='num' name="refund_reason_wap_explain" placeholder-class='填写备注信息,100字以内'></textarea>
               </view>
               <view class='item acea-row row-between' style="border: none;">
                 <view class='title acea-row row-between-wrapper'>
                     <view>上传凭证</view>
                     <view class='tip'>( 最多可上传3张 )</view>
                 </view>
                 <view class='upload acea-row row-middle'>
                     <view class='pictrue' v-for="(item,index) in refund_reason_wap_imgPath" :key="index">
                       <image :src='item'></image>
                       <view class='iconfont icon-guanbi1 font-color' @tap='DelPic(index)'></view>
                     </view>
                     <view class='pictrue acea-row row-center-wrapper row-column' @tap='uploadpic' v-if="refund_reason_wap_imgPath.length < 3">
                       <text class='iconfont icon-icon25201'></text>
                       <view>上传凭证</view>
                     </view>
                 </view>
               </view>
               <button class='returnBnt bg-color' form-type="submit">申请退款</button>
           </view>
         </view>
       </form>
       <!-- #ifdef MP -->
       <!-- <authorize @onLoadFun="onLoadFun" :isAuto="isAuto" :isShowAuth="isShowAuth" @authColse="authColse"></authorize> -->
       <!-- #endif -->
   </view>
</template>
<script>
   import { ordeRefundReason, orderRefundVerify, applyRefund} from '@/api/order.js';
   import {
       toLogin
   } from '@/libs/login.js';
   import {
       mapGetters
   } from "vuex";
   export default {
       components: {
       },
       data() {
           return {
               refund_reason_wap_img:[],
               refund_reason_wap_imgPath:[],
                   orderInfo:{},
                   RefundArray: [],
                   index: 0,
                   orderId:0,
               isAuto: false, //没有授权的不会自动授权
               isShowAuth: false //是否隐藏授权
           };
       },
       computed: mapGetters(['isLogin']),
       watch:{
           isLogin:{
               handler:function(newV,oldV){
                   if(newV){
                       this.getOrderInfo();
                       this.getRefundReason();
                   }
               },
               deep:true
           }
       },
        onLoad: function (options) {
           if (!options.orderId) return this.$util.Tips({title:'缺少订单id,无法退款'},{tab:3,url:1});
           this.orderId = options.orderId;
           if (this.isLogin) {
               this.getOrderInfo();
               this.getRefundReason();
           } else {
               toLogin(this);
           }
         },
       methods: {
           onLoadFun:function(){
               this.getOrderInfo();
               this.getRefundReason();
             },
             /**
                * 获取订单详情
                * 
               */
               getOrderInfo:function(){
                 let that=this;
                 applyRefund(that.orderId).then(res=>{
                   that.$set(that,'orderInfo',res.data);
                 });
               },
               /**
                * 获取退款理由
               */
               getRefundReason:function(){
                 let that=this;
                 ordeRefundReason().then(res=>{
                     that.$set(that,'RefundArray',res.data);
                 })
               },
             
               /**
                * 删除图片
                * 
               */
               DelPic:function(e){
                 let index = e, that = this;
                 that.refund_reason_wap_imgPath.splice(index, 1);
               },
               /**
                * 上传文件
                * 
               */
               uploadpic:function(){
                 let that=this;
                 that.$util.uploadImageOne({url:'user/upload/image',name:'multipart', model:"product", pid:1}, function(res){
                     that.refund_reason_wap_imgPath.push(res.data.url);
                 });
               },
               
               /**
                * 申请退货
               */
               subRefund:function(e){
                 let that = this, value = e.detail.value;
                 //收集form表单
                 // if (!value.refund_reason_wap_explain) return this.$util.Tips({title:'请输入退款原因'});
                 orderRefundVerify({
                   text: that.RefundArray[that.index] || '',
                   refund_reason_wap_explain: value.refund_reason_wap_explain,
                   refund_reason_wap_img: that.refund_reason_wap_imgPath.join(','),
                   uni: that.orderId
                 }).then(res=>{
                   return this.$util.Tips({ title: '申请成功', icon: 'success' }, { tab: 5, url: '/pages/users/user_return_list/index?isT=1' });
                 }).catch(err=>{
                   return this.$util.Tips({ title: (err&&err.message)?err.message:err });
                 })
               },
               bindPickerChange: function (e) {
                   this.$set(this,'index',e.detail.value);
               }
       }
   }
</script>
 
<style scoped lang="scss">
   .apply-return{
       padding: 20rpx 30rpx 70rpx 30rpx;
   }
   .apply-return .list{background-color:#fff;margin-top:18rpx;padding:0 24rpx 70rpx 24rpx;}
   .apply-return .list .item{min-height:90rpx;border-bottom:1rpx solid #eee;font-size:30rpx;color:#333;}
   .apply-return .list .item .num{color:#282828;width:427rpx;text-align:right;}
   .apply-return .list .item .num .picker .reason{width:385rpx;}
   .apply-return .list .item .num .picker .iconfont{color:#666;font-size:30rpx;margin-top:2rpx;}
   .apply-return .list .item.textarea{padding:24rpx 0;}
   .apply-return .list .item textarea{height:100rpx;font-size:30rpx;}
   .apply-return .list .item .placeholder{color:#bbb;}
   .apply-return .list .item .title{height:95rpx;width:100%;}
   .apply-return .list .item .title .tip{font-size:30rpx;color:#bbb;}
   .apply-return .list .item .upload{padding-bottom:36rpx;}
   .apply-return .list .item .upload .pictrue{border-radius: 14rpx; margin:22rpx 23rpx 0 0;width:156rpx;height:156rpx;position:relative;font-size:24rpx;color:#bbb;}
   .apply-return .list .item .upload .pictrue:nth-of-type(4n){margin-right:0;}
   .apply-return .list .item .upload .pictrue image{width:100%;height:100%;border-radius:14rpx;}
   .apply-return .list .item .upload .pictrue .icon-guanbi1{position:absolute;font-size:45rpx;top:-10rpx;right:-10rpx;}
   .apply-return .list .item .upload .pictrue .icon-icon25201{color:#bfbfbf;font-size:50rpx;}
   .apply-return .list .item .upload .pictrue:nth-last-child(1){border:1rpx solid #ddd;box-sizing:border-box;}
   .apply-return .returnBnt{font-size:32rpx;color:#fff;width:100%;height:86rpx;border-radius:50rpx;text-align:center;line-height:86rpx;margin:43rpx auto;}
</style>