Merge branch 'develop' into dongjian

This commit is contained in:
2025-09-06 11:35:25 +08:00
10 changed files with 268 additions and 283 deletions
+18
View File
@@ -139,3 +139,21 @@ export function returnGoodsFeedback(data) {
data, data,
}); });
} }
// 查询快递公司
export function getExpressCompany() {
return request({
url: "/common/getExpress",
method: "get",
});
}
// 取消订单
export function cancelOrder(data) {
return request({
url: "/order/cancelOrder",
method: "post",
data,
});
}
+6 -1
View File
@@ -64,7 +64,12 @@
"sdkConfigs" : { "sdkConfigs" : {
"payment" : { "payment" : {
"alipay" : { "alipay" : {
"__platform__" : [ "ios", "android" ] "__platform__" : [ "ios" ]
},
"weixin" : {
"__platform__" : [ "ios", "android" ],
"appid" : "wxb1deb175472de036",
"UniversalLinks" : ""
} }
} }
}, },
+1
View File
@@ -447,6 +447,7 @@ export default {
const params = { const params = {
type, type,
page: 1, page: 1,
isRecomm:true,
pageSize: type === SEARCH_TYPE.SOMETHING ? 4 : 3, pageSize: type === SEARCH_TYPE.SOMETHING ? 4 : 3,
} }
const resp = await searchList(params); const resp = await searchList(params);
@@ -42,6 +42,10 @@
<view class="list_left">邮寄地址</view> <view class="list_left">邮寄地址</view>
<view>{{ address || "--" }}</view> <view>{{ address || "--" }}</view>
</view> </view>
<view class="card_list" @click="onSelectExpress">
<view class="list_left">选择快递名称</view>
<view>{{ product.expressName || "--" }}</view>
</view>
<view class="card_list"> <view class="card_list">
<view class="list_left">填快递单号</view> <view class="list_left">填快递单号</view>
<input <input
@@ -49,17 +53,7 @@
type="text" type="text"
:disabled="status != 2" :disabled="status != 2"
placeholder="请填写快递单号" placeholder="请填写快递单号"
v-model="cancelForm.expressNo" v-model="product.expressNo"
/>
</view>
<view class="card_list">
<view class="list_left">填快递名称</view>
<input
class="input-express"
type="text"
:disabled="status != 2"
placeholder="请填写快递名称"
v-model="cancelForm.expressName"
/> />
</view> </view>
</view> </view>
@@ -69,18 +63,29 @@
'bottom_box', 'bottom_box',
{ {
bottom_box_disabled: bottom_box_disabled:
status == 2 && (!cancelForm.expressNo || !cancelForm.expressName), status == 2 && (!product.expressNo || !product.expressName),
}, },
{ bottom_box_quash: status == 1 }, { bottom_box_quash: status == 1 || status == 3 },
]" ]"
> >
<view class="button operate_but_2" @click="submit" <view class="button operate_but_2" @click="submit">
> {{ buttonLabel }}</view {{ buttonLabel }}</view
> >
</view> </view>
</view> </view>
<up-toast ref="uToastRef"></up-toast>
<up-picker
:show="expressShow"
:columns="[expressList]"
keyName="name"
valueName="id"
itemHeight="34"
@confirm="onExpressConfirm"
@cancel="expressShow = false"
@close="expressShow = false"
></up-picker>
</view> </view>
<up-toast ref="uToastRef"></up-toast>
</template> </template>
<script> <script>
import salesStatus from "../components/salesStatus.vue"; import salesStatus from "../components/salesStatus.vue";
@@ -88,6 +93,7 @@ import {
afterSaleApply, afterSaleApply,
cancelAfterSale, cancelAfterSale,
returnGoodsFeedback, returnGoodsFeedback,
getExpressCompany,
} from "@/api/order.js"; } from "@/api/order.js";
import { RETURN_REASON } from "@/pages/mine_package/mine_order/emun/index.js"; import { RETURN_REASON } from "@/pages/mine_package/mine_order/emun/index.js";
export default { export default {
@@ -104,7 +110,14 @@ export default {
}, },
data() { data() {
return {}; return {
expressList: [],
expressShow: false,
};
},
created() {
this.onGetExpressCompany();
}, },
methods: { methods: {
submit() { submit() {
@@ -113,11 +126,11 @@ export default {
this.onAfterSaleApply(); this.onAfterSaleApply();
} }
//已售后-- 撤销申请 //已售后-- 撤销申请
if (this.status == 1) { if (this.status == 1 || this.status == 3) {
this.onCancelApply(); this.onCancelApply();
} }
if (this.status == 2) { if (this.status == 2) {
if (!this.cancelForm.expressNo || !this.cancelForm.expressName) { if (!this.product.expressNo || !this.product.expressName) {
this.$refs.uToastRef.show({ this.$refs.uToastRef.show({
type: "error", type: "error",
message: "请填写快递信息", message: "请填写快递信息",
@@ -179,9 +192,9 @@ export default {
// 寄回商品 // 寄回商品
async onReturnGoods() { async onReturnGoods() {
const params = { const params = {
afterId: this.product.afterId, id: this.product.afterId,
expressNo: this.cancelForm.expressNo, expressNo: this.product.expressNo,
expressName: this.cancelForm.expressName, expressId: this.product.expressId,
}; };
console.log("寄回商品", params); console.log("寄回商品", params);
const { bizcode } = await returnGoodsFeedback(params); const { bizcode } = await returnGoodsFeedback(params);
@@ -197,34 +210,56 @@ export default {
onClose(item = false) { onClose(item = false) {
this.$emit("close", item); this.$emit("close", item);
}, },
// 快递公司
async onGetExpressCompany() {
const res = await getExpressCompany();
console.log("快递公司", res.data);
this.expressList = res.data;
},
// 方法
onExpressConfirm(item) {
console.log(item);
const val = item.value[0];
this.product.expressName = val.name;
this.product.expressId = val.id;
this.expressShow = false;
},
onSelectExpress() {
if (this.status == 2) {
this.expressShow = true;
}
},
}, },
computed: { computed: {
status() { status() {
// 未售后 -- 提交申请 console.log(
if (this.product.afterType == 0) { "未售后-开始售后---",
this.product.status,
this.product.afterType
);
// 未售后-开始售后
if (this.product.status == 9) {
return 0; return 0;
} }
// 已售后 // 已售后 --提交申请
if (this.product.afterType > 0) { if (this.product.status == 0) {
if (this.product.status == 0) { return 1;
return 1; }
} // 售后中--待买家寄回商品
// 售后中--待买家寄回商品 if (this.product.status == 1) {
if (this.product.status == 1) { return 2;
return 2; }
} // 售后中--快递已发,待卖家收货
// 售后中--快递已发,待卖家收货 if (this.product.status == 2) {
if (this.product.status == 2) { return 3;
return 3; }
} // 售后中--卖家已收货,退款失败
// 售后中--卖家已收货,退款失败 if (this.product.status == 6) {
if (this.product.status == 6) { return 4;
return 4; }
} // 售后中--卖家已收货,退款成功
// 售后中--卖家已收货,退款成功 if (this.product.status == 7) {
if (this.product.status == 7) { return 5;
return 5;
}
} }
}, },
/* 根据订单状态按钮显示不同文案 */ /* 根据订单状态按钮显示不同文案 */
@@ -236,7 +271,7 @@ export default {
} else if (this.status == 2) { } else if (this.status == 2) {
return "确定退货/退款"; return "确定退货/退款";
} else if (this.status == 3) { } else if (this.status == 3) {
return "确定退货/退款"; return "撤销申请";
} else if (this.status == 4) { } else if (this.status == 4) {
return "重新发起"; return "重新发起";
} else if (this.status == 5) { } else if (this.status == 5) {
@@ -250,7 +285,7 @@ export default {
} else if (this.status == 2) { } else if (this.status == 2) {
return "请按照以下地址寄回商品"; return "请按照以下地址寄回商品";
} else if (this.status == 3) { } else if (this.status == 3) {
return "请按照以下地址寄回商品"; return "退款/退货处理中";
} else if (this.status == 4) { } else if (this.status == 4) {
return "您发起的退货/退款申请,未通过"; return "您发起的退货/退款申请,未通过";
} else if (this.status == 5) { } else if (this.status == 5) {
@@ -264,7 +299,7 @@ export default {
} else if (this.status == 2) { } else if (this.status == 2) {
return "退款申请通过"; return "退款申请通过";
} else if (this.status == 3) { } else if (this.status == 3) {
return "退款申请通过"; return "您已成功发起退货/退款申请,请耐心等待处";
} else if (this.status == 4) { } else if (this.status == 4) {
return "退款申请失败"; return "退款申请失败";
} else if (this.status == 5) { } else if (this.status == 5) {
+154 -227
View File
@@ -1,86 +1,50 @@
<template> <template>
<view class="order_warp"> <view class="order_warp">
<view class="order_header"> <view class="order_header">
<up-image <up-image src="/static/common/left.png" width="20" height="20" bgColor="#f1f6ff00" @click="jumpLeft"></up-image>
src="/static/common/left.png" <up-search shape="round" bgColor="#FFFFFFFF" :showAction="false" @blur="onBlur" @search="searchFun"
width="20" v-model="search"></up-search>
height="20"
bgColor="#f1f6ff00"
@click="jumpLeft"
></up-image>
<up-search
shape="round"
bgColor="#FFFFFFFF"
:showAction="false"
@blur="onBlur"
@search="searchFun"
v-model="search"
></up-search>
</view> </view>
<view class="order_type_title"> <view class="order_type_title">
<view <view :class="form.type === item.id
:class=" ? 'order_type_title_item order_type_title_item_sel'
form.type === item.id : 'order_type_title_item'
? 'order_type_title_item order_type_title_item_sel' " v-for="(item, index) in orderTypeList" @click="checkType(item)" :key="index">
: 'order_type_title_item'
"
v-for="(item, index) in orderTypeList"
@click="checkType(item)"
:key="index"
>
{{ item.title }} {{ item.title }}
</view> </view>
</view> </view>
<scroll-view <scroll-view scroll-y="true" @scrolltolower="loadMore" style="height: calc(100vh - 300rpx)">
scroll-y="true"
@scrolltolower="loadMore"
style="height: calc(100vh - 300rpx)"
>
<view v-if="orderList && orderList.length !== 0" class="order_list_warp"> <view v-if="orderList && orderList.length !== 0" class="order_list_warp">
<view <view class="order_item" v-for="(item, index) in orderList" :key="item.id">
class="order_item"
v-for="(item, index) in orderList"
:key="item.id"
>
<!-- 头部 --> <!-- 头部 -->
<view class="order_item_header"> <view class="order_item_header">
<view class="order_item_header_left"> <view class="order_item_header_left">
<up-image <up-image :src="item.shopLogo" width="22" height="22" bgColor="#f1f6ff00" shape="circle"></up-image>
:src="item.shopLogo"
width="22"
height="22"
bgColor="#f1f6ff00"
shape="circle"
></up-image>
<view class="order_product_title">{{ item.shopName }}</view> <view class="order_product_title">{{ item.shopName }}</view>
</view> </view>
<!-- 除开待付款 --> <!-- 除开待付款 -->
<view <view v-if="
v-if="item.status !== ORDER_TYPE.UNPAID" item.status !== ORDER_TYPE.UNPAID &&
class="order_item_header_right" form.type !== MINE_ORDER_TYPE.AFTER_SALE
:style="{ color: ORDER_STATUS_CSS[item.status] }" " class="order_item_header_right" :style="{ color: ORDER_STATUS_CSS[item.status] }">
>
{{ getValue(ORDER_STATUS, item.status) }} {{ getValue(ORDER_STATUS, item.status) }}
</view> </view>
<!-- 待付款 --> <!-- 待付款 -->
<view v-else class="order_item_header_right order_right_due">
<view v-if="
form.type !== MINE_ORDER_TYPE.AFTER_SALE &&
item.status === ORDER_TYPE.UNPAID
" class="order_item_header_right order_right_due">
<view class="order_right_due_msg">等待付款</view> <view class="order_right_due_msg">等待付款</view>
<view class="order_right_due_time" <view class="order_right_due_time">{{ formatDate1(item.expireTime) }}前</view>
>{{ formatDate1(item.expireTime) }}前</view
>
</view> </view>
</view> </view>
<!-- 产品详情 --> <!-- 产品详情 -->
<view class="order_item_content"> <view class="order_item_content">
<view v-for="pItem in item.items" :key="pItem.id"> <view v-for="pItem in item.items" :key="pItem.id">
<view class="content_item" @click="jumpOrderInfo(item)"> <view class="content_item" @click="jumpOrderInfo(item)">
<up-image <up-image :src="pItem.mainGraph" width="80" height="80" bgColor="#f1f6ff00"></up-image>
:src="pItem.mainGraph"
width="80"
height="80"
bgColor="#f1f6ff00"
></up-image>
<view class="content_info"> <view class="content_info">
<view class="content_info_title">{{ pItem.title }}</view> <view class="content_info_title">{{ pItem.title }}</view>
<view class="content_info_tag">{{ pItem.goodsSpece }}</view> <view class="content_info_tag">{{ pItem.goodsSpece }}</view>
@@ -91,85 +55,64 @@
</view> --> </view> -->
</view> </view>
<view class="content_right"> <view class="content_right">
<view class="content_right_total" <view class="content_right_total">¥{{ pItem.goodsAmount }}</view>
>¥{{ pItem.goodsAmount }}</view <view class="content_right_quantity">x{{ pItem.buyNum }}</view>
>
<view class="content_right_quantity"
>x{{ pItem.buyNum }}</view
>
</view> </view>
</view> </view>
<view class="content_item_yd" v-if="pItem.expressNo"> <view class="content_item_yd" v-if="pItem.expressNo">
<view> <view>
运单号: 运单号:
<text v-if="pItem.expressName" <text v-if="pItem.expressName">({{ pItem.expressName }})</text>
>({{ pItem.expressName }})</text
>
{{ pItem.expressNo }} {{ pItem.expressNo }}
</view> </view>
<view style="margin-left: 10rpx"> <view style="margin-left: 10rpx">
<up-image <up-image src="/static/common/copy.png" width="14" height="14" bgColor="#f1f6ff00"
src="/static/common/copy.png" @click="copyData(pItem.expressNo)"></up-image>
width="14"
height="14"
bgColor="#f1f6ff00"
@click="copyData(pItem.expressNo)"
></up-image>
</view> </view>
</view> </view>
</view> </view>
</view> </view>
<!-- 汇总 --> <!-- 汇总 -->
<view class="order_item_collect"> <view class="order_item_collect">
<view <view class="collect_msg collect_msg_s" v-if="this.form.type === MINE_ORDER_TYPE.NOT_RECEIVE">
class="collect_msg collect_msg_s" <view class="content_item_yd_msg">(快递动态跟进请复制单号至[快递100官网] 查询)</view>
v-if="this.form.type === MINE_ORDER_TYPE.NOT_RECEIVE"
>
<view class="content_item_yd_msg"
>(快递动态跟进请复制单号至[快递100官网] 查询)</view
>
<view>共{{ item.buyNum }}件,合计¥{{ item.sumAmount }}</view> <view>共{{ item.buyNum }}件,合计¥{{ item.sumAmount }}</view>
</view> </view>
<view class="collect_msg" v-else <view class="collect_msg" v-else>共{{ item.buyNum }}件,合计¥{{ item.sumAmount }}</view>
>共{{ item.buyNum }}件,合计¥{{ item.sumAmount }}</view
>
<view class="collect_operate"> <view class="collect_operate">
<!-- <view class="operate_comm operate_but_1" v-if="item.status === ORDER_TYPE.UNSHIPPED" @click="checkCancel(true)">取消订单</view> --> <!-- <view class="operate_comm operate_but_1" v-if="item.status === ORDER_TYPE.UNSHIPPED" @click="checkCancel(true)">取消订单</view> -->
<view <view class="operate_comm operate_but_2" v-if="
class="operate_comm operate_but_2" item.status === ORDER_TYPE.UNPAID &&
v-if="item.status === ORDER_TYPE.UNPAID" form.type !== MINE_ORDER_TYPE.AFTER_SALE
@click="jumpOrderInfo(item)" " @click="jumpOrderInfo(item)">去付款</view>
>去付款</view
>
<!-- <view class="operate_comm operate_but_1" v-if="item.status === ORDER_TYPE.COMPLETED">申请退款</view> --> <!-- <view class="operate_comm operate_but_1" v-if="item.status === ORDER_TYPE.COMPLETED">申请退款</view> -->
<view <view class="operate_comm operate_but_2" v-if="item.status === ORDER_TYPE.NOT_RECEIVE"
class="operate_comm operate_but_2" @click="confirmReceiptOk(item)">确认收货</view>
v-if="item.status === ORDER_TYPE.NOT_RECEIVE" <view class="operate_comm operate_but_2" v-if="
@click="confirmReceiptOk(item)" !isCheckSigne &&
>确认收货</view index == 0 &&
> item.status === ORDER_TYPE.SUCCEED
<view " @click="downShow = true">去签署</view>
class="operate_comm operate_but_2"
v-if="
!isCheckSigne &&
index == 0 &&
item.status === ORDER_TYPE.SUCCEED
"
@click="downShow = true"
>去签署</view
>
<!-- <view class="operate_comm operate_but_3" v-if="item.status === ORDER_TYPE.UNSHIPPED">提醒发货</view> --> <!-- <view class="operate_comm operate_but_3" v-if="item.status === ORDER_TYPE.UNSHIPPED">提醒发货</view> -->
<view
class="operate_comm operate_but_1" <view class="operate_comm operate_but_1" v-if="item.isAfter && form.type !== MINE_ORDER_TYPE.AFTER_SALE"
v-if=" @click="onSaleAfterTab">
[ORDER_TYPE.NOT_RECEIVE, ORDER_TYPE.UNSHIPPED].includes( 查看售后
item.status </view>
)
" <view :class="[
@click="onSaleAfter(item)" 'operate_comm',
> form.type === MINE_ORDER_TYPE.UNPAID
售后 ? 'operate_but_3'
: 'operate_but_1',
]" v-if="!item.isAfter && form.type !== MINE_ORDER_TYPE.AFTER_SALE" @click="onSaleAfter(item)">
{{ form.type === MINE_ORDER_TYPE.UNPAID ? "取消支付" : "售后" }}
</view>
<view class="operate_comm operate_but_1" v-if="form.type === MINE_ORDER_TYPE.AFTER_SALE"
@click="onAfterSaleDetail(item)">
售后详情
</view> </view>
<!-- <view class="operate_comm operate_but_1" v-if="item.status === ORDER_TYPE.AFTER_SALE">查看售后</view> --> <!-- <view class="operate_comm operate_but_1" v-if="item.status === ORDER_TYPE.AFTER_SALE">查看售后</view> -->
<!-- <view class="operate_comm operate_but_1" v-if="[ORDER_TYPE.COMPLETED].includes(item.status)">删除记录</view> --> <!-- <view class="operate_comm operate_but_1" v-if="[ORDER_TYPE.COMPLETED].includes(item.status)">删除记录</view> -->
@@ -179,12 +122,8 @@
</view> </view>
</view> </view>
<view v-else class="not_order_warp"> <view v-else class="not_order_warp">
<up-image <up-image src="https://cex-pub.s3.ap-southeast-1.amazonaws.com/static/not_order.png" width="80" height="80"
src="https://cex-pub.s3.ap-southeast-1.amazonaws.com/static/not_order.png" bgColor="#f1f6ff00"></up-image>
width="80"
height="80"
bgColor="#f1f6ff00"
></up-image>
<view class="not_order_msg_warp">暂无相关订单</view> <view class="not_order_msg_warp">暂无相关订单</view>
</view> </view>
<view v-if="loading" style="text-align: center">加载中...</view> <view v-if="loading" style="text-align: center">加载中...</view>
@@ -195,12 +134,7 @@
<up-modal :show="openShow" :showConfirmButton="false"> <up-modal :show="openShow" :showConfirmButton="false">
<view class="slot-content"> <view class="slot-content">
<view class="close_warp" @click="openShow = false"> <view class="close_warp" @click="openShow = false">
<up-image <up-image src="/static/common/close.png" width="20" height="20" bgColor="#f1f6ff00"></up-image>
src="/static/common/close.png"
width="20"
height="20"
bgColor="#f1f6ff00"
></up-image>
</view> </view>
<view class="content_"> <view class="content_">
<view class="content_1">温馨提示</view> <view class="content_1">温馨提示</view>
@@ -213,45 +147,30 @@
</up-modal> </up-modal>
<!-- 申请售后 --> <!-- 申请售后 -->
<up-popup <up-popup v-model:show="afterShow" class="after-sales-popup" :customStyle="{
v-model:show="afterShow" height: '1200rpx',
class="after-sales-popup" overflow: 'scroll',
:customStyle="{ position: 'relative',
height: '1000rpx', paddingBottom: '80rpx',
overflow: 'scroll', }" :round="10" :closeOnClickOverlay="false" :closeable="true" :safeAreaInsetBottom="false"
position: 'relative', @close="afterShow = false">
paddingBottom: '80rpx',
}"
:round="10"
:closeOnClickOverlay="false"
:closeable="true"
:safeAreaInsetBottom="false"
@close="afterShow = false"
>
<view class="after-sales-title"> <view class="after-sales-title">
{{ {{
salesServer === 1 salesServer === 1
? "申请售后" ? "申请售后"
: salesServer === 2 : salesServer === 2
? "确认退货/退款信息" ? "确认退货/退款信息"
: "退货/退款进度" : "退货/退款进度"
}} }}
</view> </view>
<!-- 申请售后 --> <!-- 申请售后 -->
<view class="slot-content" v-if="salesServer == 1"> <view class="slot-content" v-if="salesServer == 1">
<view class="after-sales-tabs"> <view class="after-sales-tabs">
<view <view :class="['after-sales-tabs-item', { active: activeIndex === 0 }]" @click="activeIndex = 0">
:class="['after-sales-tabs-item', { active: activeIndex === 0 }]"
@click="activeIndex = 0"
>
联系售后 联系售后
<text class="after-sales-tabs-text">荐</text> <text class="after-sales-tabs-text">荐</text>
</view> </view>
<view <view :class="['after-sales-tabs-item', { active: activeIndex === 1 }]" @click="activeIndex = 1">退货退款</view>
:class="['after-sales-tabs-item', { active: activeIndex === 1 }]"
@click="activeIndex = 1"
>退货退款</view
>
</view> </view>
<view class="content_" v-if="activeIndex === 0"> <view class="content_" v-if="activeIndex === 0">
@@ -259,50 +178,30 @@
<view class="content_2">如遇退/换货等问题,请联系客服处理</view> <view class="content_2">如遇退/换货等问题,请联系客服处理</view>
<view class="content_3"> <view class="content_3">
<view style="margin-left: 20rpx"> <view style="margin-left: 20rpx">
<up-image <up-image src="/static/common/kf_dh.png" width="40" height="40" bgColor="#f1f6ff00"></up-image>
src="/static/common/kf_dh.png"
width="40"
height="40"
bgColor="#f1f6ff00"
></up-image>
</view> </view>
<view class="content_info"> <view class="content_info">
<view class="content_info_title">客服电话</view> <view class="content_info_title">客服电话</view>
<view class="content_info_mobile"> <view class="content_info_mobile">
{{ PHONE_NUMBER }} {{ PHONE_NUMBER }}
<view style="margin-left: 20rpx"> <view style="margin-left: 20rpx">
<up-image <up-image src="/static/common/copy_c.png" width="14" height="14" bgColor="#f1f6ff00"
src="/static/common/copy_c.png" @click="copyMobile(PHONE_NUMBER)"></up-image>
width="14"
height="14"
bgColor="#f1f6ff00"
@click="copyMobile(PHONE_NUMBER)"
></up-image>
</view> </view>
</view> </view>
</view> </view>
</view> </view>
<view class="content_3"> <view class="content_3">
<view style="margin-left: 20rpx"> <view style="margin-left: 20rpx">
<up-image <up-image src="/static/common/kf_wx.png" width="40" height="40" bgColor="#f1f6ff00"></up-image>
src="/static/common/kf_wx.png"
width="40"
height="40"
bgColor="#f1f6ff00"
></up-image>
</view> </view>
<view class="content_info"> <view class="content_info">
<view class="content_info_title">客服微信</view> <view class="content_info_title">客服微信</view>
<view class="content_info_mobile"> <view class="content_info_mobile">
{{ WECHAT }} {{ WECHAT }}
<view style="margin-left: 20rpx"> <view style="margin-left: 20rpx">
<up-image <up-image src="/static/common/copy_c.png" width="14" height="14" bgColor="#f1f6ff00"
src="/static/common/copy_c.png" @click="copyMobile(WECHAT)"></up-image>
width="14"
height="14"
bgColor="#f1f6ff00"
@click="copyMobile(WECHAT)"
></up-image>
</view> </view>
</view> </view>
</view> </view>
@@ -315,18 +214,9 @@
<view class="cancel_show_warp"> <view class="cancel_show_warp">
<view class="cancel_show_reason_warp"> <view class="cancel_show_reason_warp">
<view class="reason_title">选择退货原因 </view> <view class="reason_title">选择退货原因 </view>
<up-radio-group <up-radio-group v-model="cancelForm.afterReason" placement="column">
v-model="cancelForm.afterReason" <up-radio :customStyle="{ marginBottom: '8px' }" v-for="(item, index) in RETURN_REASON" :key="index"
placement="column" :label="item.name" :name="item.id" activeColor="#7934F6"></up-radio>
>
<up-radio
:customStyle="{ marginBottom: '8px' }"
v-for="(item, index) in RETURN_REASON"
:key="index"
:label="item.name"
:name="item.id"
activeColor="#7934F6"
></up-radio>
</up-radio-group> </up-radio-group>
</view> </view>
</view> </view>
@@ -337,27 +227,20 @@
</view> </view>
<!-- 确认退货退款 --> <!-- 确认退货退款 -->
<view v-if="salesServer == 2"> <view v-if="salesServer == 2">
<refund-popup <refund-popup :product="aftterSalesProduct" :cancelForm="cancelForm" @close="onCloseAfterShow" />
:product="aftterSalesProduct"
:cancelForm="cancelForm"
@close="onCloseAfterShow"
/>
</view> </view>
</up-popup> </up-popup>
<!-- 腾讯电子签H5 → 集成到UniApp --> <!-- 腾讯电子签H5 → 集成到UniApp -->
<web-view v-if="signUrl" :src="signUrl" @message="handleMessage"></web-view> <web-view v-if="signUrl" :src="signUrl" @message="handleMessage"></web-view>
<u-modal
:show="tipsShow" <u-modal :show="tipsShow" :showCancelButton="true" confirmText="去认证" @cancel="onTipsCancel" @confirm="onConfirm"
:showCancelButton="true" confirmColor="#7934F6" title="提示" content="签署合同需要进行实名认证,请先完成实名认证"></u-modal>
confirmText="去认证"
@cancel="onTipsCancel"
@confirm="onConfirm"
confirmColor="#7934F6"
title="提示"
content="签署合同需要进行实名认证,请先完成实名认证"
></u-modal>
<DownPopup :show="downShow" @ok="onSignContract" @cancel="onCancel" /> <DownPopup :show="downShow" @ok="onSignContract" @cancel="onCancel" />
<u-modal class="sure_pay" :show="surePayShow" title="提示" showCancelButton @cancel="surePayShow = false" @confirm="cancelPay" confirmColor="#7934F6"
content="确定取消支付吗?"></u-modal>
</view> </view>
</template> </template>
@@ -378,6 +261,7 @@ import {
isSignContract, isSignContract,
getMiniProgramSignUrl, getMiniProgramSignUrl,
afterSaleDetail, afterSaleDetail,
cancelOrder
} from "@/api/order.js"; } from "@/api/order.js";
import dayjs from "dayjs"; import dayjs from "dayjs";
import { formatDate1, copyData } from "@/utils/index.js"; import { formatDate1, copyData } from "@/utils/index.js";
@@ -432,11 +316,13 @@ export default {
id: MINE_ORDER_TYPE.SUCCEED, id: MINE_ORDER_TYPE.SUCCEED,
title: "已完成", title: "已完成",
}, },
// { {
// id:MINE_ORDER_TYPE.AFTER_SALE, id: MINE_ORDER_TYPE.AFTER_SALE,
// title:"售后", title: "售后",
// }, },
], ],
surePayShow: false,
cancelPayParams: {},
form: { form: {
page: 1, page: 1,
pageSize: 10, pageSize: 10,
@@ -482,33 +368,48 @@ export default {
getValue, getValue,
formatDate1, formatDate1,
copyData, copyData,
onNextRefund() { onNextRefund() {
this.salesServer = 2; this.salesServer = 2;
if (this.aftterSalesProduct.afterType == 0) {
this.aftterSalesProduct = { this.aftterSalesProduct = {
...this.aftterSalesProduct, ...this.aftterSalesProduct,
...{ afterReason: this.cancelForm.afterReason }, ...{ afterReason: this.cancelForm.afterReason },
};
} }
}, },
onSaleAfterTab() {
this.checkType({ id: MINE_ORDER_TYPE.AFTER_SALE, title: "售后" });
},
// 售后 // 售后
onSaleAfter(item) { onSaleAfter(item) {
console.log("售后---1", item); console.log("售后---1", item, this.form.type);
// 未售后
if (item.afterType == 0) { if (this.form.type === MINE_ORDER_TYPE.UNPAID) {
// 取消支付
this.cancelPayParams = { orderId: item.id };
this.surePayShow = true;
} else {
// 未售后
this.cancelForm.afterReason = ""; this.cancelForm.afterReason = "";
this.salesServer = 1; this.salesServer = 1;
this.activeIndex = 0; this.activeIndex = 0;
this.aftterSalesProduct = item; this.aftterSalesProduct = item;
this.afterShow = true; this.afterShow = true;
} this.aftterSalesProduct.status = 9;
// 已开始售后 this.aftterSalesProduct.afterType = this.form.type - 1;
if (item.afterType > 0) {
this.onAfterSaleDetail(item);
} }
}, },
// 售后订单详情 // 售后订单详情
async onAfterSaleDetail(item) { async onAfterSaleDetail(item) {
if (item.status === 8) {
this.$refs.uToastRef.show({
type: "success",
message: "订单已作废",
});
return;
}
const { bizcode, data } = await afterSaleDetail({ id: item.afterId }); const { bizcode, data } = await afterSaleDetail({ id: item.afterId });
if (bizcode == 100) { if (bizcode == 100) {
this.aftterSalesProduct = { ...data, ...{ afterId: item.afterId } }; this.aftterSalesProduct = { ...data, ...{ afterId: item.afterId } };
@@ -516,6 +417,7 @@ export default {
this.afterShow = true; this.afterShow = true;
} }
}, },
// 关闭售后申请 // 关闭售后申请
onCloseAfterShow(item) { onCloseAfterShow(item) {
// 重新发起 // 重新发起
@@ -531,6 +433,22 @@ export default {
this.afterShow = false; this.afterShow = false;
}, },
// 取消支付
cancelPay() {
cancelOrder(this.cancelPayParams).then((res) => {
if (res.bizcode == 100) {
this.$refs.uToastRef.show({
type: "success",
message: "取消成功",
});
this.surePayShow = false;
this.form.page = 1;
this.orderList = [];
this.loadData();
}
});
},
onTipsCancel() { onTipsCancel() {
this.tipsShow = false; this.tipsShow = false;
}, },
@@ -579,11 +497,12 @@ export default {
) { ) {
this.checkSigned(); this.checkSigned();
} }
if (item.id !== MINE_ORDER_TYPE.AFTER_SALE) { // if (item.id !== MINE_ORDER_TYPE.AFTER_SALE) {
this.loadData(); // this.loadData();
} else { // } else {
this.openShow = true; // 未开发的弹框 // this.openShow = true; // 未开发的弹框
} // }
this.loadData();
}, },
jumpOrderInfo(item) { jumpOrderInfo(item) {
uni.navigateTo({ uni.navigateTo({
@@ -800,6 +719,7 @@ export default {
<style lang="scss" scoped> <style lang="scss" scoped>
.after-sales-popup { .after-sales-popup {
height: 400px !important; height: 400px !important;
.after-sales-title { .after-sales-title {
font-size: 28rpx; font-size: 28rpx;
color: #71737c; color: #71737c;
@@ -1034,6 +954,7 @@ export default {
background: transparent; background: transparent;
z-index: 100; z-index: 100;
box-shadow: 0rpx -4rpx 12rpx 0rpx rgba(0, 0, 0, 0.06); box-shadow: 0rpx -4rpx 12rpx 0rpx rgba(0, 0, 0, 0.06);
.cancel_show_button { .cancel_show_button {
position: initial; position: initial;
width: 94%; width: 94%;
@@ -1112,4 +1033,10 @@ export default {
font-size: 30rpx; font-size: 30rpx;
color: #ffffff; color: #ffffff;
} }
.sure_pay{
::v-deep(.u-modal__content__text){
text-align: center;
}
}
</style> </style>
@@ -113,7 +113,7 @@ export default {
}); });
return; return;
} }
console.log("params", params); console.log("params---", params);
const result = await recharge(params); const result = await recharge(params);
console.log("result", result); console.log("result", result);
if (result && result.bizcode === 100) { if (result && result.bizcode === 100) {
+1 -2
View File
@@ -123,8 +123,7 @@ export default {
} }
.head-view{ .head-view{
width:100%; width:100%;
// height: min-height:88rpx;
min-hieght:88rpx;
height:88rpx; height:88rpx;
display: flex; display: flex;
align-items: center; align-items: center;
+2 -3
View File
@@ -1,10 +1,9 @@
// export const BASE_URL="https://frontend.jdns360.com/api"; // 正式环境 // export const BASE_URL="https://frontend.jdns360.com/api"; // 正式环境
// export const BASE_URL="http://cl55un59859.vicp.fun:24346"; // 测试环境 // export const BASE_URL="http://cl55un59859.vicp.fun:24346"; // 测试环境
// export const BASE_URL = "https://api.tbmall.xin"; //生产 export const BASE_URL = "https://api.tbmall.xin"; //生产
// export const BASE_URL ='http://api.hm.a-d.work:6880/api' // 测试 // export const BASE_URL ='http://api.hm.a-d.work:6880/api' // 测试
export const BASE_URL ='http://api.outer.tbmall.xin:6880' // 测试 // export const BASE_URL ='http://api.outer.tbmall.xin:6880' // 测试
+1 -1
View File
@@ -266,7 +266,7 @@ export const BALANCE_TYPE = [
export const CERT_OPTION = [ export const CERT_OPTION = [
{ {
key: 1, key: 1,
value: "居民身份证" name: "居民身份证"
} }
// , { // , {
// key: 2, // key: 2,
+1
View File
@@ -10,6 +10,7 @@ import { feedback } from '@/api/payment.js';
export function appWxpayFun(alipay, orderId, orderNum) { export function appWxpayFun(alipay, orderId, orderNum) {
const type = alipay.type; const type = alipay.type;
const orderStr = alipay.orderStr; const orderStr = alipay.orderStr;
console.log("微信支付---",alipay)
if (type === "app") {// app if (type === "app") {// app
const orderInfo = { const orderInfo = {
"appid": alipay.appId, // 微信开放平台 - 应用 - AppId,注意和微信小程序、公众号 AppId 可能不一致 "appid": alipay.appId, // 微信开放平台 - 应用 - AppId,注意和微信小程序、公众号 AppId 可能不一致