shish hai 1 día
pai
achega
5ebe8662a7

+ 2 - 2
ghsApp/src/admin/billing/forwardResult.vue

@@ -11,12 +11,12 @@
     <!-- 待资金落地:原路确认 or 返充余额 -->
     <appResult v-if="showFundActions" title="退款成功">
       <text class="simple-success">已退款 ¥{{ formatMoney(amount) }},请选择资金处理方式</text>
-      <text class="fund-tip">退款方式:{{ payWayLabel }}(线下原路)</text>
+      <text class="fund-tip">退款方式:{{ payWayLabel }}</text>
       <button
         class="admin-button-com big blue action-btn"
         :disabled="fundActing"
         @click="onMarkHasReturn"
-      >已线下转账</button>
+      >已线下转账</button>
       <button
         v-if="Number(couldReturn) === 1"
         class="admin-button-com big action-btn"

+ 18 - 10
ghsApp/src/admin/billing/freeRefundDetail.vue

@@ -18,12 +18,12 @@
         <view class="refund-value">{{ Number(info.refundType) === 1 ? '库存退回' : '库存不退' }}</view>
       </view>
       <view class="refund-row">
-        <view class="refund-label">资金处理</view>
-        <view class="refund-value">{{ fundText }}</view>
+        <view class="refund-label">原路通道</view>
+        <view class="refund-value">{{ payWayText || '-' }}</view>
       </view>
-      <view class="refund-row" v-if="payWayText">
-        <view class="refund-label">退款方式</view>
-        <view class="refund-value">{{ payWayText }}</view>
+      <view class="refund-row">
+        <view class="refund-label">返充</view>
+        <view class="refund-value">{{ fundText }}</view>
       </view>
       <view class="refund-row">
         <view class="refund-label">退款金额</view>
@@ -55,17 +55,17 @@
     </view>
 
     <view class="refund-actions">
+      <button class="admin-button-com big default refund-actions__btn" @click="goBack">返回</button>
       <button
         v-if="canFundAction"
         class="admin-button-com big blue refund-actions__btn"
         @click="goFundAction"
-      >处理资金</button>
+      >确认退回方式</button>
       <button
         v-if="canShowPoster"
         class="admin-button-com big blue refund-actions__btn"
         @click="goPoster"
       >查看凭证</button>
-      <button class="admin-button-com big default refund-actions__btn" @click="goBack">返回</button>
     </view>
   </view>
 </template>
@@ -82,15 +82,23 @@ export default {
     }
   },
   computed: {
-    /** 资金三态文案 */
+    /** 原路状态 */
     fundText() {
       if (Number(this.info.returnBalance) === 1) return '已返充到余额'
       if (Number(this.info.hasReturn) === 1) return '已原路退回'
-      if (Number(this.info.status) === 1) return '待确认原路/返充'
+      if (Number(this.info.status) === 1) return '待确认'
       return '-'
     },
+    /** 原路通道 */
     payWayText() {
-      const map = { 0: '线下微信', 1: '线下支付宝', 4: '现金', 5: '银行卡' }
+      const map = {
+        0: '线下微信',
+        1: '线下支付宝',
+        2: '余额',
+        3: '挂账',
+        4: '现金',
+        5: '银行卡'
+      }
       const pw = Number(this.info.payWay)
       return map[pw] || ''
     },

+ 94 - 15
ghsApp/src/admin/billing/freeRefundList.vue

@@ -90,7 +90,11 @@
               <text class="meta-value" v-else style="color: #3385FF;font-weight: bold;">没有订单</text>
             </view>
             <view class="meta-item">
-              <text class="meta-label">资金</text>
+              <text class="meta-label">原路</text>
+              <text class="meta-value">{{ payWayText(item) }}</text>
+            </view>
+            <view class="meta-item">
+              <text class="meta-label">返充</text>
               <text class="meta-value">{{ fundText(item) }}</text>
             </view>
             <view class="meta-item" v-if="item.sameDay == 0">
@@ -116,16 +120,27 @@
             <text class="remark-text">{{ item.remark }}</text>
           </view>
 
-          <!-- 底栏:凭证(左,非返余额/未通过时灰色不可点)+ 状态(右下角) -->
+          <!-- 底栏:确认退回方式 + 查看凭证(不可用时灰色)+ 状态 -->
           <view class="card-foot">
-            <view
-              class="poster-btn-wrap"
-              @click.stop="onPosterClick(item)"
-            >
-              <button
-                class="admin-button-com middle poster-btn"
-                :class="canViewPoster(item) ? 'blue' : 'disable'"
-              >查看凭证</button>
+            <view class="card-foot-btns">
+              <view
+                class="poster-btn-wrap"
+                @click.stop="onFundClick(item)"
+              >
+                <button
+                  class="admin-button-com middle poster-btn"
+                  :class="canFundAction(item) ? 'blue' : 'disable'"
+                >确认退回方式</button>
+              </view>
+              <view
+                class="poster-btn-wrap"
+                @click.stop="onPosterClick(item)"
+              >
+                <button
+                  class="admin-button-com middle poster-btn"
+                  :class="canViewPoster(item) ? 'blue' : 'disable'"
+                >查看凭证</button>
+              </view>
             </view>
             <text
               class="status-chip"
@@ -244,12 +259,28 @@ export default {
       return v != null ? parseFloat(v) : 0
     },
     init(){},
+    /** 原路状态:已原路 / 已返充 / 待确认 */
     fundText(item) {
       if (Number(item.returnBalance) === 1) return '已返充余额'
       if (Number(item.hasReturn) === 1) return '已原路退回'
-      if (Number(item.status) === 1 && Number(item.sameDay) === 0) return '待确认资金'
-      if (Number(item.sameDay) !== 0) return '原路退回'
-      return '隔天售后'
+      if (Number(item.status) === 1) return '待确认'
+      return '-'
+    },
+    /** 原路通道:售后单 payWay 快照 */
+    payWayText(item) {
+      const map = {
+        0: '线下微信',
+        1: '线下支付宝',
+        2: '余额',
+        3: '挂账',
+        4: '现金',
+        5: '银行卡'
+      }
+      const pw = Number(item && item.payWay)
+      if (map[pw] != null) {
+        return map[pw]
+      }
+      return '-'
     },
     statusText(status) {
       const map = { 0: '待审核', 1: '已通过', 2: '已驳回', 3: '已取消' }
@@ -362,6 +393,13 @@ export default {
     canViewPoster(item) {
       return item && Number(item.status) === 1 && Number(item.returnBalance) === 1
     },
+    /** 已通过且尚未原路/返充时才可确认退回方式 */
+    canFundAction(item) {
+      return item
+        && Number(item.status) === 1
+        && Number(item.hasReturn) === 0
+        && Number(item.returnBalance) === 0
+    },
     /** 灰色态不可点;可查看时跳转补发海报 */
     onPosterClick(item) {
       if (!this.canViewPoster(item)) {
@@ -369,6 +407,13 @@ export default {
       }
       this.goPoster(item)
     },
+    /** 灰色态不可点;可操作时进结果页二选一 */
+    onFundClick(item) {
+      if (!this.canFundAction(item)) {
+        return
+      }
+      this.goFundAction(item)
+    },
     /**
      * 返充余额凭证:跳转 forwardResult 补发海报
      */
@@ -399,6 +444,34 @@ export default {
         })
       })
     },
+    /**
+     * 待落地资金:跳转 forwardResult 选「已线下转账 / 返充余额」
+     */
+    goFundAction(item) {
+      if (!item || !item.id) {
+        return
+      }
+      const payload = {
+        amount: item.refundPrice,
+        customId: item.customId,
+        customName: item.customName || '',
+        forwardSn: item.orderSn || '',
+        forwardId: item.id || 0,
+        orderId: 0,
+        payWay: item.payWay,
+        hasReturn: item.hasReturn || 0,
+        couldReturn: item.couldReturn != null ? item.couldReturn : 1,
+        returnBalance: item.returnBalance || 0,
+        needFundAction: 1
+      }
+      uni.setStorageSync('forwardResultPayload', payload)
+      this.$util.pageTo({
+        url: '/admin/billing/forwardResult',
+        query: Object.assign({}, payload, {
+          customName: encodeURIComponent(payload.customName || '')
+        })
+      })
+    },
     _list() {
       const params = {
         page: this.list.page,
@@ -684,12 +757,18 @@ export default {
   padding-top: 16upx;
   border-top: 1upx solid #f0f2f5;
 }
+.card-foot-btns {
+  display: flex;
+  align-items: center;
+  flex: 1;
+  margin-right: 12upx;
+}
 .poster-btn-wrap {
   flex-shrink: 0;
-  margin-right: 16upx;
+  margin-right: 28upx;
 }
 .poster-btn {
-  width: 168upx;
+  width: 200upx;
   height: 56upx;
   line-height: 56upx;
   margin: 0;