ZZ 3 settimane fa
parent
commit
deb8e62f5b

+ 64 - 0
mer_uniapp/api/secondHand.js

@@ -149,9 +149,73 @@ export function secondHandRefundReason() {
 }
 
 /**
+ * 售后申请列表
+ *
+ */
+export function refundSecondHandList(data) {
+	return request.get(`refund/secondhand/list`, data)
+}
+
+/**
+ * 我的售后申请列表
+ *
+ */
+export function refundSecondHandMyList(data) {
+	return request.get(`refund/secondhand/my/list`, data)
+}
+
+/**
  * 售后申请列表(可申请售后列表)
  *
  */
 export function secondHandAfterSaleList(data) {
 	return request.get(`refund/secondhand/after/sale/apply/list`, data)
+}
+
+/**
+ * 退款单退回商品
+ *
+ */
+export function returningSecondHandApi(data) {
+	return request.post(`refund/secondhand/returning/goods`,data)
+}
+
+/**
+ * 撤销退款单
+ *
+ */
+export function refundSecondHandRevokeApi(refundOrderNo) {
+	return request.post(`refund/secondhand/revoke/${refundOrderNo}`)
+}
+
+/**
+ * 同意退款
+ *
+ */
+export function refundSecondHandOkApi(refundOrderNo) {
+	return request.post(`refund/secondhand/ok/${refundOrderNo}`)
+}
+
+/**
+ * 拒绝退款
+ *
+ */
+export function returningSecondHandRejectApi(data) {
+	return request.post(`refund/secondhand/reject`,data)
+}
+
+/**
+ * 退款订单列表
+ *
+ */
+export function secondHandRefundList(data) {
+	return request.get(`refund/secondhand/list`, data)
+}
+
+/**
+ * 退款订单详情
+ *
+ */
+export function secondHandRefundInfoApi(refundOrderNo) {
+	return request.get(`refund/secondhand/detail/${refundOrderNo}`)
 }

+ 5 - 3
mer_uniapp/libs/order.js

@@ -12,7 +12,8 @@ import {
 	preOrderApi,refundOrderRevokeApi
 } from '@/api/order.js';
 import {
-	preSecondHandOrderApi
+	preSecondHandOrderApi,
+	refundSecondHandRevokeApi
 } from '@/api/secondHand.js';
 import util from '@/utils/util'
 import animationType from '@/utils/animationType.js'
@@ -103,14 +104,15 @@ export function onGetPreSecondHandOrder(orderDetails) {
 /**
  * 售后,撤销售后申请
  */
-export function onRevokeRefund(refundOrderNo) {
+export function onRevokeRefund(refundOrderNo, type) {
 	return new Promise((resolve, reject) => {
 		uni.showModal({
 			title: '提示',
 			content: '确定要撤销本次退款申请吗?',
 			success: function(res) {
 				if (res.confirm) {
-					refundOrderRevokeApi(refundOrderNo).then(res => {
+					let api = type ? refundSecondHandRevokeApi : refundOrderRevokeApi;
+					api(refundOrderNo).then(res => {
 						resolve()
 					}).catch(err => {
 						return util.Tips({

+ 16 - 4
mer_uniapp/pages.json

@@ -576,14 +576,14 @@
 					"navigationStyle": "custom",
 					"enablePullDownRefresh": false
 				}
-			},{
+			}, {
 				"path": "take_fast_mail/index",
 				"style": {
 					"navigationBarTitleText": "添加快递",
 					"navigationStyle": "custom",
 					"enablePullDownRefresh": false
 				}
-			},{
+			}, {
 				"path": "my_fast_mail/index",
 				"style": {
 					"navigationBarTitleText": "我的快递",
@@ -602,7 +602,7 @@
 					"navigationStyle": "custom",
 					"enablePullDownRefresh": false
 				}
-			},{
+			}, {
 				"path": "wall_details_info/index",
 				"style": {
 					"navigationBarTitleText": "详情信息",
@@ -633,13 +633,25 @@
 					"navigationStyle": "custom",
 					"enablePullDownRefresh": false
 				}
-			},{
+			}, {
 				"path": "trade_fair_user/index",
 				"style": {
 					"navigationBarTitleText": "个人主页",
 					"navigationStyle": "custom",
 					"enablePullDownRefresh": false
 				}
+			}, {
+				"path": "trade_return_list/index",
+				"style": {
+					"navigationBarTitleText": "售后列表",
+					"app-plus": {
+						// #ifdef APP-PLUS
+						"titleNView": {
+							"type": "default"
+						}
+						// #endif
+					}
+				}
 			}]
 		},
 		{

+ 1 - 1
mer_uniapp/pages/discover/discover_release/index.vue

@@ -328,7 +328,7 @@
 			},
 			//开关
 			switch2Change: function(e) {
-				this.formData.saleStatus = e.detail.value ? 0 : 2;
+				this.formData.saleStatus = e.detail.value ? 0 : 4;
 			},
 			//分类列表
 			getCommunityCategoryList() {

+ 2 - 2
mer_uniapp/pages/goods/goods_details/index.vue

@@ -463,8 +463,8 @@
 									立即购买
 								</button>
 							</form>
-							<form @submit="goSecondHand" report-submit="true" v-if="dataItem && dataItem.authorId !== uid">
-								<button style="border-radius: 0;" :class="productInfo.systemFormId == 0 ? 'bnts' : 'longBnts'" class="buy"
+							<form @submit="goSecondHand" report-submit="true" v-if="dataItem && dataItem.authorId !== uid && dataItem.saleStatus == 0">
+								<button style="border-radius: 0;" :class="productInfo.systemFormId == 0 ? 'bnts' : 'longBnts'" class="buy"	
 								 form-type="submit">
 									立即购买
 								</button>

+ 2 - 1
mer_uniapp/pages/goods/goods_return/index.vue

@@ -260,12 +260,13 @@
 					returnGoodsType: that.afterSalesType === 1 ? 0 : Number(that.returnGoodsTypeIndex) + 1
 				}).then(res => {
 					uni.hideLoading();
+					let url = that.orderType == 'secondHand' ? `/pages/trade_fair/trade_fair_user/index` : '/pages/goods/user_return_list/index?isT=1';
 					return this.$util.Tips({
 						title: '申请成功',
 						icon: 'success'
 					}, {
 						tab: 5,
-						url: '/pages/goods/user_return_list/index?isT=1'
+						url: url
 					});
 				}).catch(err => {
 					uni.hideLoading();

+ 9 - 3
mer_uniapp/pages/goods/refund_details/index.vue

@@ -203,6 +203,7 @@
 	// | Author: CRMEB Team <admin@crmeb.com>
 	// +----------------------------------------------------------------------
 	import { orderRefundInfoApi } from '@/api/order.js';
+	import { secondHandRefundInfoApi } from '@/api/secondHand.js';
   import {onRevokeRefund} from '@/libs/order';
 	import orderGoods from "../components/orderGoods";
 	import { getMerAddressApi } from '@/api/merchant.js'
@@ -226,6 +227,7 @@
 		},
 		data() {
 			return {
+				orderType: '',
 				merAddress: null, //店铺地址
 				refundOrderNo: '',
 				refundInfo: {}, //退款单详情
@@ -246,6 +248,7 @@
 				url: 1
 			});
 			this.$set(this, 'refundOrderNo', options.refundOrderNo);
+			this.$set(this, 'orderType', options.orderType);
 			this.bgColor = setThemeColor();
 			this.$set(this, 'chatConfig', this.$Cache.getItem('chatConfig'));
 		},
@@ -290,15 +293,17 @@
 			},
 			//撤销售后
 			handleRevokeRefund(refundOrderNo) {
-				onRevokeRefund(refundOrderNo).then(() => {
+				onRevokeRefund(refundOrderNo, this.orderType).then(() => {
 					this.orderRefundInfo()
 				});
 			},
 			//退回商品
 			handleReturningRefund(item) {
 				this.$Cache.set('productInfo', item)
+				let url = `/pages/goods/returns_and_refunds/index?refundOrderNo=${item.refundOrderNo}&returnGoodsType=${item.returnGoodsType}`;
+				this.orderType == 'secondHand' ? url = url + '&orderType=secondHand' : ''
 				uni.navigateTo({
-					url: `/pages/goods/returns_and_refunds/index?refundOrderNo=${item.refundOrderNo}&returnGoodsType=${item.returnGoodsType}`
+					url: url
 				})
 			},
 			kefuClick() {
@@ -334,7 +339,8 @@
 				uni.showLoading({
 					title: "正在加载中"
 				});
-        orderRefundInfoApi(that.refundOrderNo).then(res => {
+				let api = that.orderType == 'secondHand' ? secondHandRefundInfoApi : orderRefundInfoApi;
+        api(that.refundOrderNo).then(res => {
 					uni.hideLoading();
 					let data = res.data;
 					that.$set(that, 'refundInfo', data);

+ 10 - 3
mer_uniapp/pages/goods/returns_and_refunds/index.vue

@@ -84,6 +84,9 @@
 		returningGoodsApi
 	} from '@/api/order.js';
 	import {
+		returningSecondHandApi
+	} from '@/api/secondHand.js';
+	import {
 		getMerAddressApi
 	} from '@/api/merchant.js'
 	import {
@@ -108,7 +111,8 @@
 				trackingNumber: '',
 				refundOrderNo: '',
 				returnGoodsType: 1, //退货类型:0-不退货 1-快递退回,2-到店退货
-				merAddress: null //店铺地址
+				merAddress: null, //店铺地址
+				orderType: ''
 			};
 		},
 		computed: mapGetters(['isLogin']),
@@ -121,6 +125,7 @@
 				url: 1
 			});
 			this.refundOrderNo = options.refundOrderNo;
+			this.orderType = options.refundOrderNo || '';
 			this.returnGoodsType = options.returnGoodsType ? Number(options.returnGoodsType) : 1;
 			if (this.returnGoodsType === 1) {
 				if (!this.$Cache.get('expressListAll')) {
@@ -211,14 +216,16 @@
 						telephone: value.telephone
 					}
 				}
-				returningGoodsApi(data).then(res => {
+				let api = this.orderType == 'secondHand' ? returningSecondHandApi : returningGoodsApi;
+				let url = this.orderType == 'secondHand' ? '/pages/trade_fair/trade_return_list/index' : '/pages/goods/user_return_list/index?isT=1';
+				api(data).then(res => {
 					uni.hideLoading();
 					return that.$util.Tips({
 						title: '退回商品成功',
 						icon: 'success'
 					}, {
 						tab: 5,
-						url: '/pages/goods/user_return_list/index?isT=1'
+						url: url
 					});
 				}).catch(err => {
 					uni.hideLoading();

+ 20 - 4
mer_uniapp/pages/trade_fair/trade_fair_user/index.vue

@@ -64,6 +64,9 @@
 					<view class="item">
 						<text class="mr10">{{userInfo.likeNum}}</text> 获赞
 					</view>
+					<navigator v-if="userInfo.id==uid" :url="!id ? '/pages/trade_fair/trade_return_list/index' : ''" class="item" hover-class="none">
+						<text class="mr10">{{userInfo.refundNum}}</text> 售后
+					</navigator>
 				</view>
 			</view>
 			<view v-if="!id && isShow" class="tab_count relative">
@@ -73,7 +76,7 @@
 						<text @click.stop="changeTab(1)" :class="tab==1 ? 'on' : ''">我想要的</text>
 						<text @click.stop="changeTab(2)" :class="tab==2 ? 'on' : ''">我收藏的</text>
 						<text @click.stop="changeTab(3)" :class="tab==3 ? 'on' : ''">我购买的</text>
-						<text @click.stop="changeTab(4)" :class="tab==4 ? 'on' : ''">售后/退款</text>
+						<!-- <text @click.stop="changeTab(4)" :class="tab==4 ? 'on' : ''">售后/退款</text> -->
 					</block>
 				</scroll-view>
 			</view>
@@ -212,7 +215,7 @@
 							</view>
 							<view class="btn-box acea-row" style="justify-content: flex-end;">
 								<view></view>
-								<view v-if="items.refundStatus === 0 || items.refundStatus === 4 || items.refundStatus === 5"
+								<view v-if="(items.refundStatus === 0 || items.refundStatus === 4 || items.refundStatus === 5)"
 									class="btn btn-999 acea-row row-center line-heightOne" @click="handleRevokeRefund(items.refundOrderNo)">撤销售后</view>
 								<view v-if="items.refundStatus === 4 && items.afterSalesType === 2" style="color: #fff;"
 									class="btn bg-color acea-row row-center line-heightOne ml20" @click="handleReturningRefund(items)">退回商品</view>
@@ -286,7 +289,7 @@
 		secondHandStatusImgApi,
 		secondHandSend,
 		secondHandOrderList,
-		secondHandAfterSaleList
+		refundSecondHandList
 	} from '@/api/secondHand.js';
 	import {
 		ProductTypeEnum,
@@ -521,7 +524,7 @@
 				if (that.loaded || that.loading) return;
 				that.loading = true;
 				that.loadTitle = '';
-				secondHandAfterSaleList(that.where).then(res => {
+				refundSecondHandList(that.where).then(res => {
 					let list = res.data.list;
 					let goods = that.$util.SplitArray(list, that.list);
 					that.loaded = list.length < that.where.limit;
@@ -729,6 +732,19 @@
 					},
 				})
 			},
+			//撤销售后
+			handleRevokeRefund(refundOrderNo) {
+				onRevokeRefund(refundOrderNo, 'secondHand').then(() => {
+					this.changeTab(4)
+				});
+			},
+			//退回商品
+			handleReturningRefund(item) {
+				this.$Cache.set('productInfo', item)
+				uni.navigateTo({
+					url: `/pages/goods/returns_and_refunds/index?refundOrderNo=${item.refundOrderNo}&returnGoodsType=${item.returnGoodsType}&orderType=secondHand`
+				})
+			},
 		},
 		onReachBottom() {
 			// if (this.id) {

+ 631 - 0
mer_uniapp/pages/trade_fair/trade_return_list/index.vue

@@ -0,0 +1,631 @@
+<template>
+	<view :data-theme="theme">
+		<view class='nav acea-row row-around'>
+			<view class='item' :class='refundTypeStatus==-1 ? "on": ""' @click="statusClick(-1)">
+				<view>售后申请</view>
+			</view>
+			<view class='item' :class='refundTypeStatus==0 ? "on": ""' @click="statusClick(0)">
+				<view>处理中</view>
+			</view>
+			<view class='item' :class='refundTypeStatus==9 ? "on": ""' @click="statusClick(9)">
+				<view>申请记录</view>
+			</view>
+			<view class='item' :class='refundTypeStatus==10 ? "on": ""' @click="statusClick(10)">
+				<view>待我处理</view>
+			</view>
+		</view>
+		<view class="borderPad mt20">
+			<view class='search acea-row row-middle'>
+				<text class='iconfont icon-sousuo2 mr20'></text>
+				<input type='text' v-model='keywords' confirm-type="search" :focus="focus" placeholder='根据商品名称/退款订单号/订单编号搜索'
+				 placeholder-class='placeholder' @blur="handleSeach" maxlength="50"></input>
+			</view>
+		</view>
+		<view class='return-list borderPad' v-if="orderList.length">
+			<view class='goodWrapper borRadius14' v-for="(items,index) in orderList" :key="index">
+				<!-- <view v-if="refundTypeStatus ==-1" class='orderNum acea-row'>
+					<text class="mr10 iconfont icon-shangjiadingdan"></text>
+					<text class="no mr10">{{items.merName}}</text>
+				</view> -->
+				<view v-if="refundTypeStatus !==-1" class='orderNum acea-row row-between'>
+					<view class="acea-row">
+						<view class="tit mr10">退款单号: </view>
+						<view class="no">{{items.refundOrderNo}}</view>
+					</view>
+					<view class="afterSalesType">
+						<span class="iconfont" :class="items.afterSalesType===1?'icon-jintuikuan':'icon-tuihuotuikuan'"></span>
+						<span>{{items.afterSalesType===1?'仅退款':'退货退款'}}</span>
+					</view>
+				</view>
+				<view @click='goOrderDetails(items)' class='item acea-row row-between-wrapper'>
+					<view class='pictrue'>
+						<image :src='items.image'></image>
+					</view>
+					<view class='text'>
+						<view class='name line1 mb20'>{{items.productName}}</view>
+						<!-- <view class="f-s-20 text-999 mb24">{{items.sku}}</view> -->
+						<view class='acea-row row-between-wrapper'>
+							<view class='num mr20 line-heightOne'>
+								{{refundTypeStatus ==-1?'数量:'+items.payNum:'申请数量:'+items.applyRefundNum}}
+							</view>
+							<view v-show="refundTypeStatus !==-1" class='attr font-color line-heightOne'>
+								{{items.refundStatus===3?'已退款':'申请退款'}}:{{items.refundPrice}}
+							</view>
+
+						</view>
+					</view>
+				</view>
+				<view v-if="refundTypeStatus===-1" class="btn-box acea-row row-between">
+					<view @click.stop="handlerToRecord(items.orderNo)" v-if="items.applyRefundNum+items.refundNum>0" class="applyRefundNum">
+						<text>有{{items.applyRefundNum+items.refundNum}}件商品已申请售后</text><span class="iconfont icon-gengduo3 ml10" style="font-size: 20rpx;"></span>
+					</view>
+					<view v-else></view>
+					<view class="btn bg-color acea-row row-center" style="color: #fff;" @click="goRefund(items)">申请售后</view>
+				</view>
+				<view v-else>
+					<view class="refundTypeStatus line1">
+						{{ items.refundStatus| refundStatusFilter}}
+						<span class="tips ml20">{{items.refundStatus| orderRefundTipsStatusFilter}}</span>
+					</view>
+					<view class="btn-box acea-row" style="justify-content: flex-end;">
+						<view></view>
+						<view v-if="refundTypeStatus == 10" class="btn btn-999 acea-row row-center line-heightOne mr-20" @click="handleRevokeReject(items.refundOrderNo)">拒绝退款</view>
+						<view v-if="items.refundStatus === 0 || items.refundStatus === 4 || items.refundStatus === 5" class="btn acea-row row-center line-heightOne"
+						 :class="refundTypeStatus == 10 ? 'bg-tk-color' : 'btn-999'" @click="handleRevokeRefund(items.refundOrderNo)">{{refundTypeStatus == 10 ? '确认退款' : '撤销售后'}}</view>
+						<view v-if="items.refundStatus === 4 && items.afterSalesType === 2" style="color: #fff;" class="btn bg-color acea-row row-center line-heightOne ml20"
+						 @click="handleReturningRefund(items)">退回商品</view>
+					</view>
+				</view>
+			</view>
+		</view>
+		<view class='loadingicon acea-row row-center-wrapper'>
+			<text class='loading iconfont icon-jiazai' :hidden='loading==false'></text>{{orderList.length>0?loadTitle:''}}
+		</view>
+		<view class='noCart' v-if="orderList.length == 0 && !loading">
+			<view class='pictrue text-center'>
+				<image :src="urlDomain+'crmebimage/presets/nodingdan.png'"></image>
+				<view class="default_txt">暂无售后订单哦~</view>
+			</view>
+		</view>
+
+		<uni-popup ref="rejectDialog" type="dialog">
+			<view class="tui-modal-custom">
+				<view class="fs-32 fw-500 lh-44rpx text-center">拒绝退款原因</view>
+				<view class="mt-24 bg--w111-f5f5f5 rd-16rpx p-24">
+					<textarea class="w-full fs-26 h-342" ref="myTextarea" v-model="rejectText" :always-embed="true" :adjust-position="true"
+					 cursor-spacing="85rpx" placeholder="请输入拒绝退款原因内容" :maxlength="100" name="desc" />
+					</view>
+				<view class="flex-between-center mt-40">
+					<view class="w-244 h-72 rd-36rpx flex-center fs-26 font-color close-btn" @tap="handleInputClose">取消
+					</view>
+					<view class="w-244 h-72 rd-36rpx flex-center bg-color text--w111-fff fs-26"
+						@tap="handleInputConfirm">保存
+					</view>
+				</view>
+			</view>
+		</uni-popup>
+	</view>
+</template>
+
+<script>
+	// +----------------------------------------------------------------------
+	// | CRMEB [ CRMEB赋能开发者,助力企业发展 ]
+	// +----------------------------------------------------------------------
+	// | Copyright (c) 2016~2025 https://www.crmeb.com All rights reserved.
+	// +----------------------------------------------------------------------
+	// | Licensed CRMEB并不是自由软件,未经许可不能去掉CRMEB相关版权
+	// +----------------------------------------------------------------------
+	// | Author: CRMEB Team <admin@crmeb.com>
+	// +----------------------------------------------------------------------
+	import {
+		secondHandAfterSaleList,
+		secondHandRefundList,
+		refundSecondHandMyList,
+		refundSecondHandOkApi,
+		returningSecondHandRejectApi
+	} from '@/api/secondHand.js';
+	import {
+		goProductDetail,
+		onRevokeRefund
+	} from '@/libs/order.js'
+	import {
+		toLogin
+	} from '@/libs/login.js';
+	import {
+		mapGetters
+	} from "vuex";
+	import animationType from '@/utils/animationType.js'
+	let app = getApp();
+	export default {
+		data() {
+			return {
+				urlDomain: this.$Cache.get("imgHost"),
+				loading: false,
+				loadend: false,
+				loadTitle: '显示更多', //提示语
+				orderList: [], //订单数组
+				refundTypeStatus: -1, //订单选择状态
+				page: 1,
+				limit: 20,
+				keywords: '',
+				theme: app.globalData.theme,
+				focus: false,
+				rejectText: '',
+				rejectOrder: ''
+			};
+		},
+		computed: mapGetters(['isLogin']),
+		watch: {
+			isLogin: {
+				handler: function(newV, oldV) {
+					if (newV) {
+						//this.getOrderAfterSaleList();
+					}
+				},
+				deep: true
+			}
+		},
+		onLoad(options) {
+			this.keywords = options.orderNo || ''
+			if (this.isLogin) {
+				this.getOrderAfterSaleList();
+			} else {
+				toLogin();
+			}
+		},
+		/**
+		 * 页面上拉触底事件的处理函数
+		 */
+		onReachBottom: function() {
+			if (this.refundTypeStatus === -1) {
+				this.getOrderAfterSaleList();
+			} else {
+				this.getOrderRefundList();
+			}
+		},
+		methods: {
+			//已经申请售后的订单跳转至申请列表
+			handlerToRecord(orderNo) {
+				this.refundTypeStatus = 9;
+				this.keywords = orderNo;
+				this.loadend = false;
+				this.loading = false;
+				this.page = 1;
+				this.orderList = [];
+				this.getOrderRefundList()
+			},
+			//拒绝退款保存
+			handleInputConfirm() {
+				let that = this;
+					if (!this.rejectText) return this.$util.Tips({
+						title: '请输入拒绝退款原因内容!'
+					});
+					uni.showLoading({
+						title: '正在处理中'
+					});
+					let params = {
+						refundOrderNo: this.rejectOrder,
+						auditType: 'refuse',
+						reason: this.rejectText
+					}
+					returningSecondHandRejectApi(params).then(res => {
+						uni.hideLoading();
+						return that.$util.Tips({
+							title: '处理成功',
+							icon: 'success'
+						}, function() {
+							that.handleSeach();
+						});
+					}).catch(err => {
+						return that.$util.Tips({
+							title: err
+						});
+					});
+				// 关闭窗口后,恢复默认内容
+				this.$refs.inputDialog.close()
+			},
+			//拒绝退款取消
+			handleInputClose() {
+				this.$refs.rejectDialog.close()
+			},
+			// 拒绝退款
+			handleRevokeReject(orderNo) {
+				this.rejectOrder = orderNo;
+				this.$refs.rejectDialog.open();
+			},
+			//撤销售后 || 同意退款
+			handleRevokeRefund(refundOrderNo) {
+				let that = this;
+				if (this.refundTypeStatus == 10) {
+					uni.showModal({
+						content: '是否确认退款该订单',
+						cancelText: "取消",
+						confirmText: "确定",
+						showCancel: true,
+						confirmColor: '#f55850',
+						success: (res) => {
+							if (res.confirm) {
+								uni.showLoading({
+									title: '正在处理中'
+								});
+								refundSecondHandOkApi(refundOrderNo).then(res => {
+									uni.hideLoading();
+									return that.$util.Tips({
+										title: '退款成功',
+										icon: 'success'
+									}, function() {
+										that.handleSeach();
+									});
+								}).catch(err => {
+									return that.$util.Tips({
+										title: err
+									});
+								});
+							} else {
+								
+							}
+						},
+					})
+				} else {
+					onRevokeRefund(refundOrderNo, 'secondHand').then(() => {
+						this.handleSeach()
+					});
+				}
+			},
+			//退回商品
+			handleReturningRefund(item) {
+				this.$Cache.set('productInfo', item)
+				uni.navigateTo({
+					url: `/pages/goods/returns_and_refunds/index?refundOrderNo=${item.refundOrderNo}&returnGoodsType=${item.returnGoodsType}&orderType=secondHand`
+				})
+			},
+			//搜索
+			handleSeach() {
+				this.loadend = false;
+				this.loading = false;
+				this.page = 1;
+				this.orderList = [];
+				if (this.refundTypeStatus !== -1 || this.refundTypeStatus !== 10) {
+					this.getOrderRefundList()
+				} else {
+					this.getOrderAfterSaleList();
+				}
+			},
+			/**
+			 * 退款申请
+			 */
+			goRefund(item) {
+				uni.navigateTo({
+					url: `/pages/goods/after_sales_type/index?orderNo=${item.orderNo}&orderId=${item.id}`
+				})
+				this.$Cache.set('productInfo', item)
+			},
+			statusClick(status) {
+				this.refundTypeStatus = status;
+				this.loadend = false;
+				this.loading = false;
+				this.page = 1;
+				this.orderList = [];
+				if (status === -1 || status === 10) {
+					this.getOrderAfterSaleList();
+				} else {
+					this.getOrderRefundList();
+				}
+			},
+			/**
+			 * 去订单详情
+			 */
+			goOrderDetails: function(item) {
+				let url;
+				if (this.refundTypeStatus == -1) {
+					goProductDetail(item.productId, 0, '', JSON.stringify({id: item.productId}), 1);
+				} else {
+					url = `/pages/goods/refund_details/index?orderType=secondHand&orderTypeId=${this.refundTypeStatus}&refundOrderNo=` + item.refundOrderNo
+				}
+				// #ifdef MP
+				uni.navigateTo({
+					url: url
+				})
+				// #endif
+				// #ifndef MP
+				uni.navigateTo({
+					animationType: animationType.type,
+					animationDuration: animationType.duration,
+					url: url
+				})
+				// #endif
+			},
+
+			/**
+			 * 获取售后申请列表
+			 */
+			getOrderAfterSaleList: function() {
+				let that = this;
+				if (that.loadend) return;
+				if (that.loading) return;
+				that.loading = true;
+				that.loadTitle = "";
+				let api = this.refundTypeStatus == 10 ? refundSecondHandMyList : secondHandAfterSaleList;
+				api({
+					page: that.page,
+					limit: that.limit,
+					keywords: that.keywords
+				}).then(res => {
+					let list = res.data.list || [];
+					let loadend = list.length < that.limit;
+					that.orderList = that.$util.SplitArray(list, that.orderList);
+					that.$set(that, 'orderList', that.orderList);
+					that.loadend = loadend;
+					that.loading = false;
+					that.loadTitle = loadend ? '我也是有底线的' : '显示更多';
+					that.page = that.page + 1;
+				}).catch(err => {
+					that.loading = false;
+					that.loadTitle = '显示更多';
+				});
+			},
+			/**
+			 * 获取退款列表
+			 */
+			getOrderRefundList: function() {
+				let that = this;
+				if (that.loadend) return;
+				if (that.loading) return;
+				that.loading = true;
+				that.loadTitle = "";
+				secondHandRefundList({
+					page: that.page,
+					limit: that.limit,
+					keywords: that.keywords,
+					type: that.refundTypeStatus
+				}).then(res => {
+					let list = res.data.list || [];
+					let loadend = list.length < that.limit;
+					that.orderList = that.$util.SplitArray(list, that.orderList);
+					that.$set(that, 'orderList', that.orderList);
+					that.loadend = loadend;
+					that.loading = false;
+					that.loadTitle = loadend ? '我也是有底线的' : '显示更多';
+					that.page = that.page + 1;
+				}).catch(err => {
+					that.loading = false;
+					that.loadTitle = '显示更多';
+				});
+			}
+		}
+	}
+</script>
+
+<style lang="scss" scoped>
+	.refundTypeStatus {
+		width: 100%;
+		height: 71rpx;
+		line-height: 71rpx;
+		background: #F6F6F6;
+		border-radius: 10rpx;
+		font-size: 26rpx;
+		font-weight: 400;
+		color: #282828;
+		padding: 0 18rpx;
+
+		.tips {
+			font-size: 26rpx;
+			font-weight: 400;
+			color: #999999;
+		}
+	}
+
+	.afterSalesType {
+		font-weight: 400;
+		color: #666666;
+		font-size: 26rpx;
+
+		.iconfont {
+			@include main_color(theme);
+			margin-right: 12rpx;
+			font-size: 26rpx;
+		}
+	}
+
+	.search {
+		width: 100%;
+		background-color: #fff;
+		border-radius: 33rpx;
+		padding: 0 24rpx;
+		box-sizing: border-box;
+		height: 64rpx;
+
+		input {
+			width: 600rpx;
+			font-size: 28rpx;
+		}
+
+		.placeholder {
+			color: #bbb;
+		}
+
+		.iconfont {
+			color: #999999;
+			font-size: 26rpx;
+		}
+	}
+
+	.applyRefundNum {
+		font-size: 26rpx;
+		@include main_color(theme);
+	}
+
+	.status {
+		position: absolute;
+		right: 15rpx;
+		top: 0;
+
+		.iconfont {
+			font-size: 120rpx;
+			opacity: .3;
+		}
+	}
+
+	.btn-box {
+		display: flex;
+		padding-top: 20rpx;
+		line-height: 60rpx;
+
+		.btn-line {
+			@include main_color(theme);
+			@include coupons_border_color(theme);
+		}
+
+		.btn-bg {
+			color: #fff;
+		}
+
+		.btn-999 {
+			border: 1px solid #999999;
+			color: #666666;
+		}
+
+		.btn {
+			width: 176rpx;
+			height: 60rpx;
+			display: flex;
+			justify-content: center;
+			align-items: center;
+			border-radius: 30rpx;
+			font-size: 28rpx;
+		}
+	}
+
+	.nav {
+		background-color: #fff;
+		width: 100%;
+		height: 90rpx;
+		line-height: 88rpx;
+
+		.item {
+			text-align: center;
+			font-size: 30rpx;
+			color: #282828;
+
+			.num {
+				margin-top: 18rpx;
+			}
+		}
+
+		.on {
+			@include main_color(theme);
+			font-weight: bold;
+			@include tab_border_bottom(theme);
+		}
+	}
+
+	.mr8 {
+		margin-right: 8rpx;
+	}
+
+	.return-list .goodWrapper {
+		background-color: #fff;
+		margin-top: 20rpx;
+		position: relative;
+		padding: 0rpx 24rpx 20rpx 24rpx;
+	}
+
+	.return-list .goodWrapper .orderNum {
+		border-bottom: 1px solid #eee;
+		height: 86rpx;
+		line-height: 86rpx;
+
+		.tit {
+			font-size: 28rpx;
+			color: #282828;
+		}
+
+		.no {
+			font-size: 28rpx;
+			color: #282828;
+		}
+	}
+
+	.return-list .goodWrapper .item {
+		border-bottom: 0;
+		padding: 25rpx 0;
+
+		.money {
+			color: #999999;
+			font-weight: 26rpx;
+			margin-top: 0;
+		}
+
+		.attr,
+		.num {
+			font-size: 20rpx;
+			color: #999999;
+			margin-top: 0;
+		}
+	}
+
+	.return-list .goodWrapper .totalSum {
+		padding: 0 0 32rpx 0;
+		// text-align: right;
+		font-size: 26rpx;
+		color: #282828;
+		display: flex;
+		justify-content: space-between;
+	}
+
+	.return-list .goodWrapper .totalSum .price {
+		font-size: 28rpx;
+		font-weight: bold;
+		@include price_color(theme);
+	}
+
+	.hui {
+		color: #CCCCCC;
+		font-size: 24rpx;
+	}
+
+	.return-list .goodWrapper .powder {
+		@include price_color(theme);
+		//font-size: 24rpx;
+	}
+
+	.align-center {
+		margin-top: 32rpx;
+	}
+
+	.noCart {
+		margin-top: 32%;
+
+		.pictrue image {
+			width: 410rpx !important;
+			height: 334rpx !important;
+		}
+	}
+
+	.default_txt {
+		font-size: 26rpx;
+		color: #999;
+		text-align: center;
+	}
+	.bg-tk-color {
+		background-color: $bg-color-primary;
+		color: #fff;
+		border: none;
+	}
+	.tui-modal-custom {
+		width: 600rpx;
+		position: relative;
+		box-sizing: border-box;
+		padding: 40rpx;
+		border-radius: 16px;
+		background-color: #fff;
+		z-index: 9999;
+	
+		.h-342 {
+			min-height: 268rpx;
+			max-height: 268rpx;
+			;
+			overflow-y: scroll;
+		}
+	}
+</style>

BIN
mer_uniapp/static/img/ic-dazi-dlbl.png


BIN
mer_uniapp/static/img/ic-dazi-dlgl.png


BIN
mer_uniapp/static/img/ic-dazi-pwbl.png


BIN
mer_uniapp/static/img/ic-dazi-pwgl.png