shish hai 1 día
pai
achega
3e6d0854e7

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

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

+ 1 - 7
ghsApp/src/admin/billing/freeRefundList.vue

@@ -376,14 +376,8 @@ export default {
       this.resetList()
       this.resetList()
       this._list()
       this._list()
     },
     },
+    /** 统一进售后详情;无原单/有原单都由 refundDetail 按数据展示 */
     goDetail(item) {
     goDetail(item) {
-      if (!item.relateOrderSn) {
-        this.$util.pageTo({
-          url: '/admin/billing/freeRefundDetail',
-          query: { id: item.id }
-        })
-        return
-      }
       this.$util.pageTo({
       this.$util.pageTo({
         url: '/pagesOrder/refundDetail',
         url: '/pagesOrder/refundDetail',
         query: { id: item.id, from: 1 }
         query: { id: item.id, from: 1 }

+ 61 - 45
ghsApp/src/pagesOrder/refundDetail.vue

@@ -1,17 +1,22 @@
 <!--
 <!--
-  售后详情页:展示退款申请信息、图片预览与审核操作
-  供供货商在 ghsApp 查看/处理客户售后单
+  售后详情页:展示退款申请信息、图片预览与审核操作;无原单退款也走本页。
+  供供货商在 ghsApp 查看/处理客户售后单(含工作台「退款记录」入口)
 -->
 -->
 <template>
 <template>
 	<view class="refund-page">
 	<view class="refund-page">
 		<view class="refund-card">
 		<view class="refund-card">
+			<view class="refund-row" v-if="isFreeRefund">
+				<view class="refund-label">客户</view>
+				<view class="refund-value">{{ info.customName || '-' }}</view>
+			</view>
+
 			<view class="refund-row">
 			<view class="refund-row">
-				<view class="refund-label">退款方式</view>
-				<view class="refund-value">{{ refundType == 1 ? '退货并退款' : '只退款' }}</view>
+				<view class="refund-label">{{ isFreeRefund ? '退货方式' : '退款方式' }}</view>
+				<view class="refund-value">{{ refundTypeLabel }}</view>
 			</view>
 			</view>
 
 
-			<view class="refund-section" v-if="refundType == 1">
-				<view class="refund-label refund-section__title">退货商品</view>
+			<view class="refund-section" v-if="!$util.isEmpty(product)">
+				<view class="refund-label refund-section__title">{{ isFreeRefund ? '花材明细' : '退货商品' }}</view>
 				<view class="refund-product-list">
 				<view class="refund-product-list">
 					<view class="refund-product-item" v-for="(res, i) in product" :key="i">
 					<view class="refund-product-item" v-for="(res, i) in product" :key="i">
 						<view class="refund-product-item__name">
 						<view class="refund-product-item__name">
@@ -29,7 +34,7 @@
 				<view class="refund-value">{{ info.addTime ? info.addTime.substr(5, 11) : '' }}</view>
 				<view class="refund-value">{{ info.addTime ? info.addTime.substr(5, 11) : '' }}</view>
 			</view>
 			</view>
 
 
-			<view class="refund-row">
+			<view class="refund-row" v-if="!isFreeRefund">
 				<view class="refund-label">申请原因</view>
 				<view class="refund-label">申请原因</view>
 				<view class="refund-value refund-value--inline">
 				<view class="refund-value refund-value--inline">
 					<text>{{ causeText }}</text>
 					<text>{{ causeText }}</text>
@@ -37,7 +42,7 @@
 				</view>
 				</view>
 			</view>
 			</view>
 
 
-			<view class="refund-row" v-if="showChoice">
+			<view class="refund-row" v-if="!isFreeRefund && showChoice">
 				<view class="refund-label">选择原因</view>
 				<view class="refund-label">选择原因</view>
 				<view class="refund-value refund-cause-btns">
 				<view class="refund-value refund-cause-btns">
 					<button class="admin-button-com mini-btn" @click="changeCause(0)">质量</button>
 					<button class="admin-button-com mini-btn" @click="changeCause(0)">质量</button>
@@ -53,7 +58,7 @@
 					<text class="refund-amount">¥{{ refundPrice }}</text>
 					<text class="refund-amount">¥{{ refundPrice }}</text>
 					<text class="refund-extra" v-if="Number(info.refundPackCost) > 0">(含退打包费{{ info.refundPackCost ? parseFloat(info.refundPackCost) : 0 }}元)</text>
 					<text class="refund-extra" v-if="Number(info.refundPackCost) > 0">(含退打包费{{ info.refundPackCost ? parseFloat(info.refundPackCost) : 0 }}元)</text>
 					<text class="refund-extra" v-if="Number(info.refundSendCost) > 0">(含退运费{{ info.refundSendCost ? parseFloat(info.refundSendCost) : 0 }}元)</text>
 					<text class="refund-extra" v-if="Number(info.refundSendCost) > 0">(含退运费{{ info.refundSendCost ? parseFloat(info.refundSendCost) : 0 }}元)</text>
-					<text class="refund-link" @click="changeAmount()" style="margin-left: 26upx;" v-if="info.status == 0">修改</text>
+					<text class="refund-link" @click="changeAmount()" style="margin-left: 26upx;" v-if="!isFreeRefund && info.status == 0">修改</text>
 				</view>
 				</view>
 			</view>
 			</view>
 
 
@@ -66,36 +71,17 @@
 
 
 			<view class="refund-row" v-if="Number(info.sameDay) === 0">
 			<view class="refund-row" v-if="Number(info.sameDay) === 0">
 				<view class="refund-label">售后类型</view>
 				<view class="refund-label">售后类型</view>
-				<view class="refund-value" style="color: #3385ff;">隔天售后</view>
+				<view class="refund-value" style="color: #3385ff;">{{ isFreeRefund ? '无原单退款' : '隔天售后' }}</view>
 			</view>
 			</view>
 
 
 			<view class="refund-row">
 			<view class="refund-row">
-				<view class="refund-label">返回方式</view>
-				<view class="refund-value">
-					{{ fundStatusText }}
-					<block v-if="Number(info.returnBalance) !== 1">
-						-
-						<block v-if="info.payWay == 0">
-							{{info.onlinePay == 2?'线上':'线下'}}微信
-						</block>
-						<block v-else-if="info.payWay == 1">
-							{{info.onlinePay == 2?'线上':'线下'}}支付宝
-						</block>
-						<block v-else-if="info.payWay == 2">
-							余额
-						</block>
-						<block v-else-if="info.payWay == 3">
-							挂账
-						</block>
-						<block v-else-if="info.payWay == 4">
-							现金
-						</block>
-						<block v-else-if="info.payWay == 5">
-							银行卡
-						</block>
-						<block v-else>其它</block>
-					</block>
-				</view>
+				<view class="refund-label">原路</view>
+				<view class="refund-value">{{ fundStatusText }}</view>
+			</view>
+
+			<view class="refund-row">
+				<view class="refund-label">原路通道</view>
+				<view class="refund-value">{{ payWayChannelText }}</view>
 			</view>
 			</view>
 
 
 			<view class="refund-row">
 			<view class="refund-row">
@@ -113,7 +99,7 @@
 				<view class="refund-value refund-value--multiline">{{ info.remark || '' }}</view>
 				<view class="refund-value refund-value--multiline">{{ info.remark || '' }}</view>
 			</view>
 			</view>
 
 
-			<view class="refund-row" v-if="from == 1">
+			<view class="refund-row" v-if="from == 1 && !isFreeRefund && Number(info.relateOrderId) > 0">
 				<view class="refund-label">订单信息</view>
 				<view class="refund-label">订单信息</view>
 				<view class="refund-value">
 				<view class="refund-value">
 					<text class="refund-link refund-link--bold" @click="goToOrder(info)">查看订单</text>
 					<text class="refund-link refund-link--bold" @click="goToOrder(info)">查看订单</text>
@@ -137,33 +123,32 @@
 
 
 		<view class="refund-actions">
 		<view class="refund-actions">
 			<button
 			<button
-				v-if="info.status == 0"
+				v-if="!isFreeRefund && info.status == 0"
 				class="admin-button-com big refund-actions__btn refund-actions__btn--pass"
 				class="admin-button-com big refund-actions__btn refund-actions__btn--pass"
 				@click="pass(0)"
 				@click="pass(0)"
 			>通过</button>
 			>通过</button>
 			<button
 			<button
-				v-if="info.status == 0"
+				v-if="!isFreeRefund && info.status == 0"
 				class="admin-button-com big refund-actions__btn refund-actions__btn--reject"
 				class="admin-button-com big refund-actions__btn refund-actions__btn--reject"
 				@click="reject()"
 				@click="reject()"
 			>驳回</button>
 			>驳回</button>
-			<!-- 待资金落地 / 返充凭证 -->
 			<button
 			<button
 				v-if="canFundAction"
 				v-if="canFundAction"
 				class="admin-button-com big blue refund-actions__btn"
 				class="admin-button-com big blue refund-actions__btn"
 				@click="goFundAction()"
 				@click="goFundAction()"
-			>处理资金</button>
+			>确认退回方式</button>
 			<button
 			<button
 				v-if="canShowPoster"
 				v-if="canShowPoster"
 				class="admin-button-com big blue refund-actions__btn"
 				class="admin-button-com big blue refund-actions__btn"
 				@click="goPoster()"
 				@click="goPoster()"
 			>查看凭证</button>
 			>查看凭证</button>
 			<button
 			<button
-				v-if="info.status == 1"
+				v-if="!isFreeRefund && info.status == 1"
 				class="admin-button-com big blue refund-actions__btn"
 				class="admin-button-com big blue refund-actions__btn"
 				@click="goWaste()"
 				@click="goWaste()"
 			>去报损</button>
 			>去报损</button>
 			<button
 			<button
-				v-if="info.status == 1"
+				v-if="!isFreeRefund && info.status == 1"
 				class="admin-button-com big default refund-actions__btn"
 				class="admin-button-com big default refund-actions__btn"
 				@click="goWaste()"
 				@click="goWaste()"
 			>去减库存</button>
 			>去减库存</button>
@@ -216,11 +201,38 @@ export default {
 		}
 		}
 	},
 	},
 	computed: {
 	computed: {
+		/** 无关联销售单:工作台无原单退款 */
+		isFreeRefund() {
+			const info = this.info || {}
+			if (Number(info.isFreeRefund) === 1) {
+				return true
+			}
+			const sn = info.relateOrderSn
+			return !sn
+		},
+		refundTypeLabel() {
+			if (this.isFreeRefund) {
+				return Number(this.refundType) === 1 ? '库存退回' : '库存不退'
+			}
+			return Number(this.refundType) === 1 ? '退货并退款' : '只退款'
+		},
 		fundStatusText() {
 		fundStatusText() {
 			if (Number(this.info.returnBalance) === 1) return '已返充到余额'
 			if (Number(this.info.returnBalance) === 1) return '已返充到余额'
 			if (Number(this.info.hasReturn) === 1) return '已原路退回'
 			if (Number(this.info.hasReturn) === 1) return '已原路退回'
-			if (Number(this.info.status) === 1) return '待确认资金'
-			return '其他'
+			if (Number(this.info.status) === 1) return '待确认'
+			return '-'
+		},
+		/** 原路通道文案 */
+		payWayChannelText() {
+			const payWay = Number(this.info.payWay)
+			const online = Number(this.info.onlinePay) === 2 ? '线上' : '线下'
+			if (payWay === 0) return online + '微信'
+			if (payWay === 1) return online + '支付宝'
+			if (payWay === 2) return '余额'
+			if (payWay === 3) return '挂账'
+			if (payWay === 4) return '现金'
+			if (payWay === 5) return '银行卡'
+			return '-'
 		},
 		},
 		/** 已通过且待资金落地 */
 		/** 已通过且待资金落地 */
 		canFundAction() {
 		canFundAction() {
@@ -308,6 +320,10 @@ export default {
 			})
 			})
 		},
 		},
 		goToOrder(info) {
 		goToOrder(info) {
+			if (!info || !info.relateOrderId) {
+				this.$msg('没有关联订单')
+				return
+			}
 			this.$util.pageTo({ url: '/pagesOrder/detail?id=' + info.relateOrderId })
 			this.$util.pageTo({ url: '/pagesOrder/detail?id=' + info.relateOrderId })
 		},
 		},
 		cancelReject() {
 		cancelReject() {