79 Commits
Author SHA1 Message Date
lifizer a4751dc9f6 Conf:增加Fix环境的配置
(cherry picked from commit 663d8f06fb)
2026-07-24 16:55:24 +08:00
linxi 6ab3d5cc75 Fix:5536 【商城小程序】订单详情点击商品图片区域之前是可以进入商品详情的,现在点击无法进入商品详情页
(cherry picked from commit 3cd6f29e32)
2026-07-24 11:37:47 +08:00
linxi 01c400bb7e Fix:5535 【商城小程序】全国特产、文玩艺术板块的省级导航页面搜索栏,在搜索有效名称时提示“未找到该城市,请重新输入城市名称”
(cherry picked from commit 51e9d8b966)
2026-07-24 11:37:40 +08:00
linxi cb8a4bb33c Fix: 订单列表所有按钮点击都没反应了
(cherry picked from commit 76a877f2c2)
2026-07-24 11:35:35 +08:00
linxi fb03ad9f4a Fix:5174 【商城小程序】游客身份直接点击页面底部【客服】按钮并发送文字后,页面显示空白,且未弹出登录引导提示
(cherry picked from commit 55ed80acbc)
2026-07-24 11:35:20 +08:00
linxi e7557e72a5 Fix:5176 【商城小程序】省级导航在搜索无效名称时无反馈
(cherry picked from commit 956d7bf70b)
2026-07-24 11:35:08 +08:00
linxi 6e1e6233fa Fix:5349 【商城小程序】顶部标题“特色礼品”修改为“全国礼品”
(cherry picked from commit 62e7776b64)
2026-07-24 11:35:02 +08:00
linxi ce94e5d739 Fix:5371 【商城小程序】甄选好礼对应分类下无商品不会提示
(cherry picked from commit 8f7ff49641)
2026-07-24 11:34:54 +08:00
linxi ca79a820fb Fix:5397 【商城小程序】商品链接,连续快速点击“送给朋友”,重复弹出多个送礼页面
(cherry picked from commit 6d963a5bc0)
2026-07-24 11:34:48 +08:00
linxi cb6abf4a5a Fix:5420 【商城小程序】抽奖活动已开奖后取消退款,在个人主页查看我的抽奖码,“失效原因:订单取消”改为“活动已结束,抽奖码无法恢复”
(cherry picked from commit b4c1ea20ac)
2026-07-24 11:34:41 +08:00
linxi f2aeab5c41 Fix:5451 【商城小程序】店铺查看资讯详情返回列表页时,列表自动滑动至顶部
(cherry picked from commit 47ac886d5d)
2026-07-24 11:34:31 +08:00
linxi 1fad8cae64 Fix:5452 【商城小程序】收礼方申请退款被商家拒绝后,礼包订单详情显示“立即评价”按钮
(cherry picked from commit f72a68ccc3)
2026-07-24 11:34:25 +08:00
linxi 2411ae369d Fix:5453 【商城小程序】苹果手机视频列表布局方向从右到左,应该从左到右排列,与安卓同步
(cherry picked from commit 73fa5e35d4)
2026-07-24 11:34:19 +08:00
linxi e6cf9c082c Fix:5454 【商城小程序】购买商品,微信支付下单后未支付,待付款列表显示两条相同订单记录
(cherry picked from commit ea44413ac1)
2026-07-24 11:34:13 +08:00
lifizer fcccf351bf Merge branch 'v23' into prod 2026-07-24 11:32:46 +08:00
lifizer 27ac2a086d Merge branch 'dev-AI-v5' into dev 2026-07-02 10:46:23 +08:00
linxi df87d0f9c8 Feat:抽奖优化 2026-07-02 10:06:50 +08:00
linxi 7aeff7ece1 Feat:取消退款 2026-07-02 09:34:56 +08:00
lifizer 7dcba7c04b Fix(抽奖):[#5396]界面文字修改 2026-07-01 15:55:24 +08:00
lifizer 5d4ad3f427 Chore(入驻):解决合并冲突未完全解决问题 2026-04-27 10:44:38 +08:00
lifizer fd583b7a2e Style(云灵AI):标题调整
(cherry picked from commit 8c1aa62024)
2026-04-27 10:35:06 +08:00
linxi 7dedcf773f Fix:体验店显示判断调整 2026-04-24 18:18:25 +08:00
linxi a8907717b2 Fix:体验店显示判断调整 2026-04-24 14:21:19 +08:00
linxi ed23d2e220 Style:资讯店铺链接优化
(cherry picked from commit a863ee7c85)
2026-04-24 09:18:14 +08:00
linxi 7d55bdf879 Style:体验店封面优化
(cherry picked from commit 49580bc511)
2026-04-24 09:18:09 +08:00
linxi 4b56c2cce7 Fix:订单列表商品图片调大
(cherry picked from commit 341d4d5c70)
2026-04-24 09:18:04 +08:00
linxi 77e900e02c Fix:团购订单核销后没有同步弹出体验券领取弹窗,用户首次进入该团购订单详情页才会显示弹窗
(cherry picked from commit a86b416ed8)
2026-04-24 09:17:58 +08:00
LinCyJang 75e9c404fc Fix:旅居订单增加轮询 2026-04-24 09:17:49 +08:00
linxi 0a70e4af6c Fix:5126 【商城小程序】地址被驳回状态的提示词修改 2026-04-22 15:50:05 +08:00
linxi 11e294bcdc Fix:5173 【商城小程序】首页甄选好礼的轮播,长时间熄屏再打开,首页甄选好礼的轮播会异常卡顿,目前发现有这个现象的机型:iPhone XR、iPhone 16Pro
(cherry picked from commit b4b6fed1ab)
2026-04-22 15:36:24 +08:00
linxi 3e0e1542b6 Fix:5168 【商城小程序】文化图片改为非必填,去除必填标识
(cherry picked from commit 9dc63c2207)
2026-04-22 15:36:18 +08:00
linxi ae3fbf914b Fix:5172 【商城小程序】将左右间距加宽一点
(cherry picked from commit 9fa58286e8)
2026-04-22 15:36:13 +08:00
linxi 8ee399823d Fix:5126 【商城小程序】地址被驳回状态的提示词修改
(cherry picked from commit 3e0940f42c)
2026-04-22 15:36:06 +08:00
LinCyJang dac7c96189 Fix:5168 【商城小程序】文化图片改为非必填,去除必填标识 2026-04-21 20:45:50 +08:00
LinCyJang 458d2b8b65 Fix:5115 【商城小程序】店铺链接数据显示混乱
(cherry picked from commit 505d383bff)
2026-04-21 20:28:35 +08:00
LinCyJang 33a1125294 Fix:5126 【商城小程序】地址被驳回状态的提示词修改
(cherry picked from commit 23af0da8fa)
2026-04-21 20:28:30 +08:00
linxi a2d0ef8dfa Fix:5162 【商城小程序】待收货订单申请退款,退款中状态地址信息部分显示null 2026-04-21 20:27:44 +08:00
LinCyJang b0c4a5621e Fix:5160 【商城小程序】在订单列表购物“正在加载中”状态下快速切换旅居标签,出现数据错位
(cherry picked from commit e3316844e3)
2026-04-21 20:27:10 +08:00
linxi 8c83e0a1bc Fix:5147 【商城小程序】修改地址审核中状态下申请退款,订单详情页只需显示原地址 2026-04-16 10:25:02 +08:00
linxi 97c4d7fe4f Fix:5149 【商城小程序】商品详情页,点击「联系商家」弹出的商家电话弹窗,号码显示空白但可正常跳转拨号 2026-04-16 10:18:53 +08:00
linxi 29827b250a Fix:5148 【商城小程序】列表体验店卡片页面样式调整 2026-04-16 10:16:01 +08:00
linxi edaba70c6e Fix:5150 【商城小程序】体验券按钮栏左右滑动时,按钮内容被异常遮挡,显示不完整 2026-04-16 10:13:29 +08:00
linxi e5c7900b89 Fix:5128 【商城小程序】修改申请被驳回后订单详情只需显示原地址 2026-04-13 19:48:03 +08:00
linxi d69cf4c9e2 Fix:5075 【商城小程序】点击体验店,链接跳转的体验店详情数据错误,获取的是旅居店铺的数据,应获取体验店数据
(cherry picked from commit 1d8b75e2d2)
2026-04-13 19:37:44 +08:00
linxi 4a29b1cd27 Fix:5085 【商城小程序】用户多笔订单支付成功后,自动跳转到"我的订单"-"待发货"页面
(cherry picked from commit 8f6b2a23d1)
2026-04-13 19:37:39 +08:00
linxi df1c6dfb73 Fix:5081 【商城小程序】用户订单创建后未支付,自动跳转到"我的订单"-“待付款”页面
(cherry picked from commit 8c4d588ffa)
2026-04-13 19:37:34 +08:00
linxi 13201d251b Fix:5145 【商城小程序】首页海报状态未实时更新,需重启小程序才生效
(cherry picked from commit 9cbf35d693)
2026-04-13 19:37:29 +08:00
lifizer be90572388 Merge branch 'dev' into test 2026-04-13 15:32:21 +08:00
lifizer 335793676b Merge branch 'dev' into test 2026-02-25 10:23:01 +08:00
lifizer 377852a65f Merge branch 'dev' into test 2026-01-20 10:04:02 +08:00
LinCyJang f202fca716 Merge branch 'dev' into test 2026-01-19 21:44:44 +08:00
lifizer d288547259 Merge branch 'dev' into test 2026-01-07 09:48:46 +08:00
lifizer 5568cf039e Merge branch 'dev' into test 2025-12-22 16:29:14 +08:00
linxi ef66206182 Fix:收礼页调整
(cherry picked from commit e05eb3e389)
2025-12-15 10:09:18 +08:00
linxi d00fe87625 Fix:康养搜索增加 shopType=wellness
(cherry picked from commit a6735d284e)
2025-12-15 10:09:11 +08:00
linxi 749e3901f8 Fix:旅居分享问题
(cherry picked from commit 1f4ea5c0c8)
2025-12-15 10:09:06 +08:00
lifizer 1710f4809c Fix(专题页):尖货&节日分享朋友圈进入小程序渲染错误
(cherry picked from commit eaa36dcf44)
2025-12-15 10:08:55 +08:00
lifizer 38545cd76e Merge branch 'dev' into test 2025-12-09 16:39:27 +08:00
linxi b9dcbe6560 Fix:4004 【商城小程序】在互动消息列表回复资讯评论,内容被顶至屏幕之外
(cherry picked from commit 7a44ed3265)
2025-11-22 16:25:47 +08:00
linxi 50e143f13c Fix:4628 【旅居商城小程序】团购订单提交页面——输入框内容,未固定位置。
(cherry picked from commit b2121e71ef)
2025-11-22 16:25:39 +08:00
linxi 7c65d839d9 Fix:4646 【旅居商城小程序】团购礼包退款后,收礼方领取时的提示信息改为“礼品卡已失效”(iOS需修改提示,安卓需增加提示)
(cherry picked from commit d43fc253c9)
2025-11-22 16:25:35 +08:00
linxi f29ca88ab3 Fix:4643 【旅居商城小程序】没开转赠的团购礼包领取页面需要单独关闭右上角转发功能
(cherry picked from commit c9f3767cbd)
2025-11-21 12:34:20 +08:00
linxi 56402e37f3 Fix:4601 【旅居管理后台,商城小程序】旅居商户管理—修改所属分类为“康养分类”,在前端小程序中不显示
(cherry picked from commit 889b0de9b7)
2025-11-21 12:34:15 +08:00
linxi c39f2a4da8 Fix:4629 【旅居供应链小程序】供应链小程序/PC端修改资讯,将图片资讯改为视频后,视频无法正常播放
(cherry picked from commit 6e316a9f2c)
2025-11-21 12:34:11 +08:00
linxi c894689365 Fix:4634 【旅居商城小程序】播放资讯视频时,旅居店铺封面视频未暂停
(cherry picked from commit 4686c6d87a)
2025-11-21 12:34:06 +08:00
linxi 5c23dc9773 Fix:4632 【旅居商城小程序】团购详情轮播图循环逻辑错误
(cherry picked from commit 896f8dee7f)
2025-11-21 12:34:02 +08:00
linxi bad10982b7 Fix:4639 【旅居商城小程序】预约日期包含以下几个时间段时无法预约:1.31-2.1,3.31-4.1,5.31-6.1,8.31-9.1,10.31-11.1(应改为:只要选择的时间段可预约、并且等于团购天数,就可以预约成功)
(cherry picked from commit d9ee41d8f3)
2025-11-21 12:33:56 +08:00
linxi fe0397a483 Fix:4623 【旅居商城小程序】新增的视频资讯无法正常播放 2025-11-19 10:26:32 +08:00
linxi a535c8192e Fix:4613 【旅居商城小程序】待支付订单进行支付时,取消订单状态导航栏可点击状态 2025-11-18 14:28:34 +08:00
linxi 2e1fa524fa Fix:4598 【旅居商城小程序】供应链小程序新增视频资讯,前端视频未显示 2025-11-18 14:22:41 +08:00
linxi 48284adb6b Fix:4610 【旅居商城小程序】资讯正文的文本格式(换行、字体加粗等)在前端未生效 2025-11-18 14:19:19 +08:00
linxi 2af9fe99ee Fix:4260 【旅居商城小程序】管理后台新增旅居商户后,相应的用户进入商城小程序点击入驻入口,弹出提示窗,即将打开供应链小程序。确认后打开供应链小程序,如下图所示
(cherry picked from commit f884d1c764)
2025-11-17 15:36:09 +08:00
linxi 5caa9b176a Fix:4432 【旅居商城小程序】订单状态列表,待确认订单未显示确认倒计时
(cherry picked from commit 31ce97db6a)
2025-11-17 15:36:04 +08:00
linxi 438b7a98e4 Fix:4373 【旅居商城小程序】审核中状态下无法撤销入驻申请(参考供应商和特色店铺的入驻流程,【审核中】状态标识提到顶部显示,底部改成【撤销申请】)/接口
(cherry picked from commit 7786f88896)
2025-11-17 15:36:00 +08:00
linxi a2f1d9f59e Fix:4373 【旅居商城小程序】审核中状态下无法撤销入驻申请(参考供应商和特色店铺的入驻流程,【审核中】状态标识提到顶部显示,底部改成【撤销申请】)
(cherry picked from commit b260bb9e34)
2025-11-17 15:35:55 +08:00
linxi c4787b56e8 Fix:4519 【旅居商城小程序】送礼—礼包订单类型改为“礼包订单”
(cherry picked from commit 51ff86e4f8)
2025-11-17 15:35:51 +08:00
linxi 0937a32bce Fix:4388 【旅居商城小程序】管理后台配置商家号码在前端小程序未生效
(cherry picked from commit 3d8df506e0)
2025-11-17 15:35:47 +08:00
linxi cfef9c5b39 Fix:4600 【旅居管理后台,商城小程序】旅居商户管理—修改所属分类为“康养顶部”,在前端小程序所有康养城市顶部都会显示
(cherry picked from commit 2d8f2b16a9)
2025-11-17 15:35:43 +08:00
linxi 85906cbe44 Fix:4602 【旅居商城小程序】提交团购订单页面,联系商家-点击立即拨打按钮无效
(cherry picked from commit 1d34f4dd08)
2025-11-17 15:35:39 +08:00
16 changed files with 557 additions and 125 deletions
+15
View File
@@ -51,6 +51,7 @@ export const chatMixinsV2 = {
audioPlayId: '',
showGiftBtn: false,
buyLoading: false,
buyActionLock: false,
exceptionConfig: {
model_exception: '您提的问题未能理解,云灵思想跑偏啦,重新整理一下问题或者重新提问,让云灵再试试!',
voice_exception: ''
@@ -533,6 +534,10 @@ export const chatMixinsV2 = {
this.productItemBuyNowOrGiftBuy(item, 2)
},
productItemBuyNowOrGiftBuy(item, BuyNowOrGiftBuyType) {
if (this.buyActionLock) {
return
}
this.buyActionLock = true
this.audioStopHandle()
this.cart_num = 1
this.m_id = item.id
@@ -540,6 +545,7 @@ export const chatMixinsV2 = {
const { data } = res
this.storeInfo = {...data.storeInfo}
if(data.storeInfo.stock === 0) {
this.buyActionLock = false
uni.showToast({
title: "产品库存不足,请选择其他商品",
icon: "none",
@@ -577,6 +583,14 @@ export const chatMixinsV2 = {
return
}
this.attr.cartAttr = !this.isOpen ? true : false
this.buyActionLock = false
}).catch(error => {
this.buyActionLock = false
uni.showToast({
title: error.msg || '操作失败,请稍后重试',
icon: "none",
duration: 3000
})
})
},
buyNowOrGiftBuyReq(type) {
@@ -617,6 +631,7 @@ export const chatMixinsV2 = {
})
}).finally(() => {
_this.buyLoading = false
_this.buyActionLock = false
})
},
closeAttrWindow() {
+11
View File
@@ -102,6 +102,17 @@ export function postOrderRefund(data) {
return request.post("/order/refund/verify", data);
}
/**
* 取消退款申请
* @param uni
* @returns {*}
*/
export function cancelOrderRefund(uni) {
return request.post("/order/refund/cancel", {
uni
});
}
/**
* 确认收货
* @returns {*}
+8
View File
@@ -10,6 +10,14 @@ if (NODE_ENV === 'development' || NODE_ENV === 'test') {
enableDebug: false
})
}
if (NODE_ENV === 'fix') {
BASE_URL = 'https://shop-pre.xdd618.com/api'
SERVICE_URL = 'https://service-pre.xdd618.com/api'
SERVICE_WS_URL = 'wss://service-pre.xdd618.com/ws'
wx.setEnableDebug({
enableDebug: false
})
}
if (NODE_ENV === 'prod') {
BASE_URL = 'https://wxapp.xdd618.com/api'
SERVICE_URL = 'https://service.xdd618.com/api'
+11
View File
@@ -133,6 +133,17 @@
"CUSTOM-CONST": true
}
},
"mp-weixin-fix": {
"title": "微信小程序(Fix环境)",
"env": {
"UNI_PLATFORM": "mp-weixin",
"VUE_APP_ENV": "fix",
"UNI_OUTPUT_DIR": "dist"
},
"define": {
"CUSTOM-CONST": true
}
},
"mp-weixin": {
"title": "微信小程序(生产环境)",
"env": {
+1 -1
View File
@@ -490,7 +490,7 @@
{
"path": "views/giftList",
"style": {
"navigationBarTitleText": "特色礼品"
"navigationBarTitleText": "全国礼品"
}
},
{
@@ -7,6 +7,7 @@
</view>
<view class="list" v-if="list.length">
<view class="video-waterfalls-wrap">
<custom-waterfalls-flow :value="list" imageKey="cover">
<view class="item" v-for="(item,index) in list" :key="index" slot="slot{{index}}" @click="goDetail(item)">
<image class="cover" :src="item.cover" mode="widthFix"></image>
@@ -23,6 +24,7 @@
</view>
</custom-waterfalls-flow>
</view>
</view>
<view class="v4-nodata" v-else>
<image src="@/static/images/img_nodata.png" mode="scaleToFill"/>
@@ -114,6 +116,7 @@ export default {
border-radius: 20rpx;
background: #fff;
font-size: 26rpx;
white-space: nowrap;
}
.active {
@@ -125,6 +128,19 @@ export default {
.list {
margin: 28rpx 32rpx;
.video-waterfalls-wrap {
direction: ltr;
/deep/ .waterfalls-flow {
direction: ltr;
text-align: left;
}
/deep/ .waterfalls-flow-column {
float: left !important;
}
}
.item {
border-radius: 4rpx;
background: #fff;
+14 -11
View File
@@ -384,20 +384,23 @@ export default {
this.mescroll && this.mescroll.triggerDownScroll()
},
search() {
if(this.keyword === '') return
this.listGroup.findIndex((group, index) => {
let result
group.city.forEach(item => {
result = item.cityName.indexOf(this.keyword, 0)
if (result !== -1) {
this.asideTap(index);
return null;
}
const keyword = (this.keyword || '').trim()
if (!keyword) return
const matchIndex = this.listGroup.findIndex(group => {
const cityList = Array.isArray(group.city) ? group.city : []
return cityList.some(item => item && item.cityName && item.cityName.indexOf(keyword) !== -1)
})
if (result !== -1) {
return result
if (matchIndex !== -1) {
this.keyword = keyword
this.asideTap(matchIndex)
return
}
if (matchIndex === -1) {
uni.showToast({
title: '未找到该城市,请重新输入城市名称',
icon: 'none'
})
}
},
select(item) {
if (this.type === 0 && item.hasData === 0) return
+21 -3
View File
@@ -36,7 +36,7 @@
</view>
</view>
<view class="product-wrap v12-mt-3">
<view v-if="products.length > 0" class="product-wrap v12-mt-3">
<view class="product-card" v-for="(item, index) in products" :key="index" @click="toGoods(item)">
<image :src="item.productImage" class="product-card-img" mode="heightFix|widthFix"></image>
<view class="new-info">
@@ -53,6 +53,9 @@
</view>
</view>
</view>
<view v-else class="empty-wrap">
<view class="empty-text">暂无数据</view>
</view>
<ProductWindow
ref="attrWindow"
:attr="attr"
@@ -99,8 +102,12 @@ export default{
onLoad() {
queryNewZone().then(res => {
this.details = res.data
this.tabs = res.data.categories
this.tabs = Array.isArray(res.data.categories) ? res.data.categories : []
if (this.tabs.length > 0) {
this.handleClick(0, this.tabs[0])
} else {
this.products = []
}
})
},
computed: {
@@ -112,7 +119,7 @@ export default{
methods: {
handleClick(index, tab) {
this.activeIndex = index
this.products = tab.products
this.products = Array.isArray(tab && tab.products) ? tab.products : []
},
handleChange(e) {
this.current = e.detail.current
@@ -144,6 +151,17 @@ export default{
justify-content: space-between;
flex-wrap: wrap;
}
.empty-wrap{
min-height: 260rpx;
display: flex;
align-items: center;
justify-content: center;
}
.empty-text{
font-size: 28rpx;
color: #999999;
text-align: center;
}
.tab-line{
position: absolute;
bottom: 0;
+239 -70
View File
@@ -54,14 +54,14 @@
<view class="list v12-ma-0" style="padding: 0rpx 0 30rpx;">
<view
v-for="(order, orderListIndex) in orderList"
:key="orderListIndex"
:key="order.orderId || orderListIndex"
class="item"
>
<view
v-if="order.experienceOrderInfo"
class="shop-info flex jc-between ai-center"
style="padding-bottom: 0"
@click.stop="goStore(order)"
@click.stop="goStore(orderListIndex)"
>
<view class="flex ai-center">
<image
@@ -79,7 +79,7 @@
v-if="order.merName && !order.experienceOrderInfo"
class="shop-info flex jc-between ai-center"
style="padding-bottom: 0"
@click="goStore(order)"
@click="goStore(orderListIndex)"
>
<view class="flex ai-center">
<image
@@ -133,7 +133,7 @@
class="font-color-white statusTag v12-primary"
>{{ (order.isGiftCardSend || order.isGiftCardReceive) ? '礼包' : (getStatus(order) || (order._status && order._status._title) || '已完成') }}</view>
</view>
<view @click="goOrderDetails(order)">
<view @click="goOrderDetails(orderListIndex)">
<view
v-if="order.isGiftCardReceiveBlind === 1"
class="item-info acea-row row-between row-top"
@@ -254,22 +254,22 @@
<image
v-if="cart.combinationId === 0 && cart.bargainId === 0 &&cart.seckillId === 0"
:src="cart.productInfo.image"
@click.stop="gotoGoodDetail(cart, 1, { id: cart.productInfo.id })"
@click.stop="gotoGoodDetail(orderListIndex, cartInfoIndex)"
/>
<image
v-else-if="cart.combinationId > 0"
:src="cart.productInfo.image"
@click.stop="gotoGoodDetail(cart, 2, { id: cart.combinationId })"
@click.stop="gotoGoodDetail(orderListIndex, cartInfoIndex)"
/>
<image
v-else-if="cart.bargainId > 0"
:src="cart.productInfo.image"
@click.stop="gotoGoodDetail(cart, 3, { id: cart.bargainId })"
@click.stop="gotoGoodDetail(orderListIndex, cartInfoIndex)"
/>
<image
v-else-if="cart.seckillId > 0"
:src="cart.productInfo.image"
@click.stop="gotoGoodDetail(cart, 4, { id: cart.seckillId })"
@click.stop="gotoGoodDetail(orderListIndex, cartInfoIndex)"
/>
</view>
<view class="text" style="margin-top: 0 !important;">
@@ -334,17 +334,17 @@
<view
v-if="order.experienceOrderStatus === 0 || order.experienceOrderStatus === 1"
class="bnt service"
@click.stop="goRoom(order)"
@click.stop="goRoom(orderListIndex)"
>联系商家</view>
<view
v-if="order.experienceOrderStatus === 0"
class="bnt v12-primary v12-white-text v12-primary-border v12-radius-40"
@click.stop="goOrderDetails(order)"
@click.stop="goOrderDetails(orderListIndex)"
>去使用</view>
<view
v-if="order.experienceOrderStatus === 1 || order.experienceOrderStatus === 2"
class="bnt service"
@click.stop="delOrder(order)"
@click.stop="delOrder(orderListIndex)"
>删除订单</view>
</view>
<view
@@ -358,18 +358,18 @@
>
<text
class="btn-more v12-font-28 v12-font-bold"
@click.stop="tapShowMore(order, orderListIndex)"
@click.stop="tapShowMore(orderListIndex)"
>更多</text>
<view class="group-float" v-show="order.showMore">
<view
v-if="order.merName && order.isGiftCardReceiveBlind === 0"
class="btn btn-service flex jc-center ai-center v12-font-24"
@click="goRoom(order)"
@click="goRoom(orderListIndex)"
>联系商家</view>
<view
v-if="order.isTravelGroup === 0 && order.refundSystemStatus !== 2"
class="btn flex jc-center ai-center v12-font-24"
@click="goRefund(order)"
@click="goRefund(orderListIndex)"
>申请退款</view>
</view>
</view>
@@ -378,7 +378,7 @@
<view
v-if="order.isDrawOrder > 0"
class="bnt service"
@click.stop="callMerPhone(order)"
@click.stop="callMerPhone(orderListIndex)"
>联系客服
</view>
<view>
@@ -389,18 +389,18 @@
parseInt(order._status._type) !== 9
"
class="bnt service"
@click="goRoom(order)"
@click="goRoom(orderListIndex)"
>联系商家</view>
</view>
<view class="v12-justify-between">
<view
class="bnt service"
@click="goOrderDetails(order)"
@click="goOrderDetails(orderListIndex)"
v-if="[-1, -2, -3].includes(parseInt(order._status._type))"
>查看详情</view>
<view
class="bnt service"
@click="delOrder(order)"
@click="delOrder(orderListIndex)"
v-if="[9].includes(parseInt(order._status._type))"
>删除订单</view>
</view>
@@ -411,61 +411,61 @@
<template v-if="parseInt(order._status._type) === 0">
<view
class="bnt cancelBnt v12-dark-text v12-dark-border"
@click="cancelOrder(order)"
@click="cancelOrder(orderListIndex)"
>取消订单</view>
<view
v-if="order.isTravelGroup === 0 && order.isDrawOrder === 0"
class="bnt cancelBnt v12-dark-text v12-dark-border"
@click="addressTap(order)"
@click="addressTap(orderListIndex)"
>修改地址</view>
<view
class="bnt bg-color-lightred v12-white v12-primary-text v12-primary-border v12-radius-40"
@click="subscribePay(order)"
@click="subscribePay(orderListIndex)"
>立即付款</view>
</template>
<template v-if="parseInt(order._status._type) === 1 && order.isTickets === 0">
<view
v-if="order.isTravelGroup === 1"
class="bnt service"
@click="editTime(order)"
@click="editTime(orderListIndex)"
>{{ '修改时间' }}</view>
<view
v-if="order.isTravelGroup === 1"
class="bnt service"
@click="applyRefund(order)"
@click="applyRefund(orderListIndex)"
>{{ '申请退款' }}</view>
<view
v-if="canShowModifyAddress(order) && order.isDrawOrder === 0"
class="bnt service"
@click="addressTap(order)"
@click="addressTap(orderListIndex)"
>修改地址</view>
<view
class="bnt service"
:class="{'v12-primary-text v12-primary-border': order.isTravelGroup === 1}"
@click="goOrderDetails(order)"
@click="goOrderDetails(orderListIndex)"
>{{ order.isTravelGroup === 0 ? '查看详情' : '查看券码' }}</view>
</template>
<template v-if="parseInt(order._status._type) === 1 && order.isTickets === 1">
<view
class="bnt bg-color-lightred v12-white v12-primary-text v12-primary-border v12-radius-40"
@click="goOrderDetails(order)"
@click="goOrderDetails(orderListIndex)"
>立即核销</view>
</template>
<template v-if="parseInt(order._status._type) === 2 && order.isTickets === 0 && order.isTravelGroup === 1">
<view
v-if="order.isTravelGroup === 1"
class="bnt service"
@click="editTime(order)"
@click="editTime(orderListIndex)"
>{{ '修改时间' }}</view>
<view
v-if="order.isTravelGroup === 1"
class="bnt service"
@click="applyRefund(order)"
@click="applyRefund(orderListIndex)"
>{{ '申请退款' }}</view>
<view
class="bnt service"
:class="{'v12-primary-text v12-primary-border': order.isTravelGroup === 1}"
@click="goOrderDetails(order)"
@click="goOrderDetails(orderListIndex)"
>{{ order.isTravelGroup === 0 ? '查看详情' : '查看券码' }}</view>
</template>
<template v-if="parseInt(order._status._type) === 2 && order.isTickets === 0 && order.isTravelGroup === 0">
@@ -477,23 +477,23 @@
</view>
<view
class="bnt bg-color-lightred v12-white v12-primary-text v12-primary-border v12-radius-40"
@click="takeOrder(order)"
@click="takeOrder(orderListIndex)"
>确认收货</view>
</template>
<template v-if="parseInt(order._status._type) === 3 && order.isTravelGroup === 0">
<view
class="bnt bg-color-lightred v12-white v12-primary-text v12-primary-border v12-radius-40"
@click="goOrderDetails(order)"
@click="goOrderDetails(orderListIndex)"
>去评价</view>
</template>
<template v-if="parseInt(order._status._type) === 3 && order.isTravelGroup === 1">
<view
class="bnt bg-color-lightred v12-white v12-primary-text v12-primary-border v12-radius-40"
@click="goOrderDetails(order)"
@click="goOrderDetails(orderListIndex)"
>去评价</view>
</template>
<template v-if="parseInt(order._status._type) === 4">
<view class="bnt service" @click="goOrderDetails(order)">查看订单</view>
<view class="bnt service" @click="goOrderDetails(orderListIndex)">查看订单</view>
</template>
</view>
</view>
@@ -505,7 +505,7 @@
<view
v-if="order.merName && order.isGiftCardReceiveBlind === 0"
class="bnt btn-service flex jc-center ai-center v12-font-24"
@click="goRoom(order)"
@click="goRoom(orderListIndex)"
>联系商家
</view>
<view class="v12-align-center">
@@ -519,14 +519,14 @@
"
open-type="share"
class="gift-btn service v12-primary-text v12-primary-border"
@click="shareGift(order)"
@click="shareGift(orderListIndex)"
>送给朋友</button>
<button
v-if="Number(order.status) === 0"
class="gift-btn service v12-primary-text v12-primary-border"
@click="subscribePay(order)"
@click="subscribePay(orderListIndex)"
>立即支付</button>
<view class="bnt service" @click="goOrderDetails(order)">查看详情</view>
<view class="bnt service" @click="goOrderDetails(orderListIndex)">查看详情</view>
</view>
</view>
</view>
@@ -725,7 +725,8 @@ export default {
showDatePicker: false,
dateRange: [],
userLatitude: null,
userLongitude: null
userLongitude: null,
orderListRequestId: 0
}
},
components: {
@@ -929,12 +930,28 @@ export default {
uni.hideLoading();
})
},
editTime(order) {
editTime(orderOrIndex) {
const order = this.getOrderByIndex(orderOrIndex)
if (!order) {
uni.showToast({
title: '订单信息异常',
icon: 'none'
})
return
}
this.showDatePicker = true
this.travelGroupOrderInfo = order.travelGroupOrderInfo
this.orderInfo = order
},
applyRefund(order) {
applyRefund(orderOrIndex) {
const order = this.getOrderByIndex(orderOrIndex)
if (!order) {
uni.showToast({
title: '订单信息异常',
icon: 'none'
})
return
}
// 这里可以添加申请退款的逻辑,比如跳转到退款页面
uni.navigateTo({
url: '/pkg_product/views/sojoumOrderRefund?id=' + order.orderId
@@ -950,8 +967,16 @@ export default {
}
return timeMap[type]
},
shareGift(item) {
this.giftItem = item
shareGift(orderOrIndex) {
const order = this.getOrderByIndex(orderOrIndex)
if (!order) {
uni.showToast({
title: '订单信息异常',
icon: 'none'
})
return
}
this.giftItem = order
},
getGiftTips(giftCardInfo) {
// giftCardStatus int 礼品卡状态 0-未领取 1-已领取 2-已失效
@@ -982,14 +1007,30 @@ export default {
})
this.$forceUpdate()
},
delOrder(order) {
getOrderByIndex(orderOrIndex) {
if (typeof orderOrIndex === 'number') {
return this.orderList[orderOrIndex]
}
if (typeof orderOrIndex === 'string' && /^\d+$/.test(orderOrIndex)) {
return this.orderList[Number(orderOrIndex)]
}
return orderOrIndex
},
delOrder(orderOrIndex) {
const order = this.getOrderByIndex(orderOrIndex)
if (!order) {
uni.showToast({
title: '订单信息异常',
icon: 'none'
})
return
}
delOrderHandle(order.orderId).then(() => {
this.page = 1
this.orderList = [];
this.getOrderListReq()
this.changeType()
})
},
goStore(order) {
goStore(orderOrIndex) {
const order = this.getOrderByIndex(orderOrIndex)
if (!order) {
return
}
@@ -1071,14 +1112,30 @@ export default {
this.toYuePay(payPwd)
this.isShowPayPwdPop = false
},
subscribePay(order) {
subscribePay(orderOrIndex) {
const order = this.getOrderByIndex(orderOrIndex)
if (!order) {
uni.showToast({
title: '订单信息异常',
icon: 'none'
})
return
}
this.orderInfo = order
uni.requestSubscribeMessage({
tmplIds: settings.SubscribeMessageTmplIds,
complete: () => this.pay = true
})
},
addressTap(order) {
addressTap(orderOrIndex) {
const order = this.getOrderByIndex(orderOrIndex)
if (!order) {
uni.showToast({
title: '订单信息异常',
icon: 'none'
})
return
}
this._orderId = order.orderId
uni.setStorageSync('updateOrderSourceAddress', {
id: order.addressId || order.userAddressId || '',
@@ -1096,7 +1153,8 @@ export default {
force2Decimal(v) {
return this.$force2Decimal(v)
},
callMerPhone(order) {
callMerPhone(orderOrIndex) {
const order = this.getOrderByIndex(orderOrIndex)
const phone = String((order && order.merPhone) || '').trim()
if (!phone) {
uni.showToast({
@@ -1109,10 +1167,17 @@ export default {
phoneNumber: phone
})
},
goRoom(order) {
console.log(order);
goRoom(orderOrIndex) {
const order = this.getOrderByIndex(orderOrIndex)
if (!order) {
uni.showToast({
title: '订单信息异常',
icon: 'none'
})
return
}
if (order.experienceOrderInfo) {
const phone = order.merchantPhone || order.merPhone || order.experienceOrderInfo.phone || order.companyTel;
const phone = order.merchantPhone || order.merPhone || order.experienceOrderInfo.phone || order.companyTel
if (phone) {
uni.makePhoneCall({
phoneNumber: phone
@@ -1143,7 +1208,15 @@ export default {
url: `/pkg_common/views/room?id=${order.merId}&name=${order.merName}&params=${JSON.stringify(params)}`
})
},
goRefund(order) {
goRefund(orderOrIndex) {
const order = this.getOrderByIndex(orderOrIndex)
if (!order) {
uni.showToast({
title: '订单信息异常',
icon: 'none'
})
return
}
// fix bug#1631
if (this.type === 4 || parseInt(order._status._type) === 3) {
// 打开售后的目的就是开启已完成/待评价订单的退款功能,确认打开售后之后,小程序用户再点击申请退款,就可以进入退款申请填写页面,正常走退款流程,提交退款申请以后,订单状态变为退款中
@@ -1165,7 +1238,15 @@ export default {
})
}
},
goLogistics(order) {
goLogistics(orderOrIndex) {
const order = this.getOrderByIndex(orderOrIndex)
if (!order) {
uni.showToast({
title: '订单信息异常',
icon: 'none'
})
return
}
this.$yrouter.push({
path: "/pagesOrder/order/Logistics/index",
query: {
@@ -1173,7 +1254,15 @@ export default {
}
});
},
goOrderDetails(order) {
goOrderDetails(orderOrIndex) {
const order = this.getOrderByIndex(orderOrIndex)
if (!order) {
uni.showToast({
title: '订单信息异常',
icon: 'none'
})
return
}
if (order.experienceOrderInfo) {
this.$yrouter.push({
path: "/pkg_product/views/experienceCouponOrderDetail",
@@ -1210,9 +1299,39 @@ export default {
}
}
},
gotoGoodDetail(cart, type, query){
gotoGoodDetail(orderOrIndex, cartOrIndex) {
const order = this.getOrderByIndex(orderOrIndex)
const cartList = Array.isArray(order && order.cartInfo) ? order.cartInfo : []
const cart = typeof cartOrIndex === 'number' ? cartList[cartOrIndex] : cartOrIndex
if (!cart) {
uni.showToast({
title: '未获取到商品信息',
icon: 'none'
})
return
}
const productInfo = cart.productInfo || {}
let type = 1
let id = productInfo.id || cart.productId || ''
if (Number(cart.combinationId) > 0) {
type = 2
id = cart.combinationId
} else if (Number(cart.bargainId) > 0) {
type = 3
id = cart.bargainId
} else if (Number(cart.seckillId) > 0) {
type = 4
id = cart.seckillId
}
if (!id) {
uni.showToast({
title: '未获取到商品详情参数',
icon: 'none'
})
return
}
// isProductStillExist:0-不存在,1-存在
const isProductStillExist = cart.isProductStillExist || 0
const isProductStillExist = Number(cart.isProductStillExist || 0)
if (isProductStillExist === 0) {
this.$dialog.toast({ mes: '商品已下架' })
return
@@ -1232,14 +1351,32 @@ export default {
path = '/pages/activity/SeckillDetails/index'
break
}
this.$yrouter.push({ path, query })
if (!path) {
uni.showToast({
title: '未找到商品详情页',
icon: 'none'
})
return
}
this.$yrouter.push({
path,
query: { id }
})
},
getOrderData() {
getOrderData().then(res => {
this.orderData = res.data
})
},
takeOrder(order) {
takeOrder(orderOrIndex) {
const order = this.getOrderByIndex(orderOrIndex)
if (!order) {
uni.showToast({
title: '订单信息异常',
icon: 'none'
})
return
}
const that = this
uni.showModal({
title: '是否确认收货?',
@@ -1260,6 +1397,23 @@ export default {
reload() {
this.changeType(this.type)
},
normalizeOrderList(list = []) {
const orderKeySet = new Set()
return list.reduce((result, item) => {
const orderKey = item && (item.orderId || item.id)
if (orderKey && orderKeySet.has(orderKey)) {
return result
}
if (orderKey) {
orderKeySet.add(orderKey)
}
result.push({
...item,
showMore: false
})
return result
}, [])
},
tabChange(item) {
this.type = item.index
this.$yroute.query.type = this.type
@@ -1300,6 +1454,7 @@ export default {
})
},
changeType() {
this.orderListRequestId += 1
this.orderList = []
this.page = 1
this.loaded = false
@@ -1308,7 +1463,8 @@ export default {
},
getOrderListReq() {
if (this.loading || this.loaded) return
// this.loading = true
this.loading = true
const currentRequestId = this.orderListRequestId
uni.showLoading({
mask: true,
})
@@ -1335,22 +1491,27 @@ export default {
keyword,
orderType
}).then(res => {
this.orderList = this.orderList.concat(res.data)
if (this.orderList.length > 0) {
this.orderList.forEach(item => {
item.showMore = false;
})
if (currentRequestId !== this.orderListRequestId) {
return
}
const nextOrderList = page === 1 ? res.data : this.orderList.concat(res.data)
this.orderList = this.normalizeOrderList(nextOrderList)
this.updateOrderDistances()
this.page++;
this.page = page + 1
this.loaded = res.data.length < this.limit
this.loading = false
}).finally(() => {
if (currentRequestId !== this.orderListRequestId) {
return
}
this.loading = false
uni.hideLoading()
});
},
tapShowMore(order, index) {
tapShowMore(index) {
const order = this.getOrderByIndex(index)
if (!order) {
return
}
order.showMore = !order.showMore;
this.$set(this.orderList, index, order);
},
@@ -1390,7 +1551,15 @@ export default {
}
return status
},
cancelOrder(order) {
cancelOrder(orderOrIndex) {
const order = this.getOrderByIndex(orderOrIndex)
if (!order) {
uni.showToast({
title: '订单信息异常',
icon: 'none'
})
return
}
cancelOrderHandle(order.orderId).then(() => {
this.getOrderData();
this.orderList.splice(this.orderList.indexOf(order), 1)
+56 -16
View File
@@ -117,7 +117,7 @@
<text class="v12-font-28">{{ force2Decimal(orderPrice.payPostage) }}</text>
</view>
</view> -->
<view class="v12-justify-between v12-align-center v12-py-1">
<view v-if="!isLotteryOrder()" class="v12-justify-between v12-align-center v12-py-1">
<view class="v12-font-24 v12-dark-text v12-align-center">
<text>优惠券</text>
<view class="v12-align-center v12-ml-1" v-if="couponTitle">
@@ -255,7 +255,7 @@
</view>
<!-- v9 优惠券开始 -->
<u-popup
v-if="show"
v-if="!isLotteryOrder() && show"
:show="show"
:round="10"
mode="bottom"
@@ -263,7 +263,7 @@
@close="close"
>
<CouponsPopup
v-if="couponList.usable.length > 0 && show"
v-if="!isLotteryOrder() && couponList.usable.length > 0 && show"
:two-list="couponList"
@change="changeCoupons"
@close="close"
@@ -398,7 +398,8 @@ export default {
pageKeyId: Object.freeze('orderConfirm'),
total: 0,
couponTitle: '',
hasCoupon: false
hasCoupon: false,
pageQuery: {}
}
},
computed: mapGetters(["userInfo", "storeItems"]),
@@ -417,17 +418,18 @@ export default {
},
onLoad(opts) {
const that = this
if (that.$yroute.query.pinkid !== undefined) {
that.pinkId = that.$yroute.query.pinkid
that.pageQuery = Object.assign({}, that.resolvePageQuery(), opts || {})
if (that.pageQuery.pinkid !== undefined) {
that.pinkId = that.pageQuery.pinkid
}
if (that.$yroute.query.id !== undefined) {
that.cartid = that.$yroute.query.id
if (that.pageQuery.id !== undefined) {
that.cartid = that.pageQuery.id
console.log(that.cartid)
}
if (that.$yroute.query.lotteryRecordId !== undefined) {
that.lotteryRecordId = that.$yroute.query.lotteryRecordId
if (that.pageQuery.lotteryRecordId !== undefined) {
that.lotteryRecordId = that.pageQuery.lotteryRecordId
}
that.hasCoupon = opts.couponId !== ''
that.hasCoupon = !!(opts && opts.couponId !== '')
that.getCartInfo()
},
onShow() {
@@ -452,6 +454,37 @@ export default {
},
methods: {
isNullOrEmpty,
resolvePageQuery() {
if (this.$yroute && this.$yroute.query) {
return this.$yroute.query
}
if (this.$route && this.$route.query) {
return this.$route.query
}
if (this._route && this._route.query) {
return this._route.query
}
return {}
},
isLotteryOrder() {
const cartInfo = Array.isArray(this.orderGroupInfo && this.orderGroupInfo.cartInfo)
? this.orderGroupInfo.cartInfo
: []
return Boolean(
this.lotteryRecordId ||
this.pageQuery.from === 'countyLottery' ||
Number(this.pageQuery.drawActivityId || 0) > 0 ||
cartInfo.some(item => Number(
item.drawActivityId ||
(item.productInfo && item.productInfo.drawActivityId) ||
0
) > 0)
)
},
getOrderCouponId() {
if (this.isLotteryOrder()) return 0
return this.couponList.usable.length === 0 ? 0 : (this.couponId || 0)
},
couponMax(e) {
// this.couponTitle = e.couponTitle
// this.couponId = this.$yroute.query.couponId || uni.getStorageSync('couponId') || 0
@@ -477,12 +510,17 @@ export default {
postOrderComputed(this.orderGroupInfo.orderKey, {
addressId: this.addressInfo.id,
useIntegral: this.useIntegral ? 1 : 0,
couponId: this.couponList.usable.length === 0 ? 0 : this.couponId,
couponId: this.getOrderCouponId(),
usePoints: this.usePointsCheck ? 1 : 0,
shipping_type: parseInt(this.shipping_type) + 1
}).then(res => {
this.couponList = res.data.result.couponList
if(!f) {
if (this.isLotteryOrder()) {
this.couponTitle = ''
if (this.couponId !== 0) {
this.couponId = 0
}
} else if(!f) {
this.couponId = res.data.result.defaultCouponId
}
const data = res.data;
@@ -543,8 +581,8 @@ export default {
}
_this.systemStore = data.systemStore || {}
_this.storeSelfMention = data.storeSelfMention
if(_this.$yroute.query.address !== undefined ) {
_this.addressInfo = JSON.parse(_this.$yroute.query.address) || {}
if(_this.pageQuery.address !== undefined ) {
_this.addressInfo = JSON.parse(_this.pageQuery.address) || {}
_this.computedPrice()
} else {
// _this.addressInfo = uni.getStorageSync('sourceAddress') || data.addressInfo || {}
@@ -683,7 +721,7 @@ export default {
phone: this.contactsTel,
addressId: this.addressInfo.id,
useIntegral: this.useIntegral ? 1 : 0,
couponId: this.couponList.usable.length === 0 ? 0 : this.couponId || 0,
couponId: this.getOrderCouponId(),
usePoints: this.usePointsNumber || 0,
payType: this.active,
pinkId: this.pinkId,
@@ -811,11 +849,13 @@ export default {
this.show = !this.show
},
showCouponsPopup() {
if (this.isLotteryOrder()) return
if (this.couponList.usable.length === 0) return
this.show = !this.show
},
// v9-2
changeCoupons(item) {
if (this.isLotteryOrder()) return
if(!item) return
if (this.couponList.usable.length === 0) return
this.show = !this.show
+25 -2
View File
@@ -540,7 +540,7 @@ import {
getProductSkuBySelected
} from '@/api/store'
import { userBindParent } from '@/api/user'
import { handleQrCode, isWeixin } from '@/utils'
import { handleLoginFailure, handleQrCode, isWeixin } from '@/utils'
import { getHomeData } from '@/api/public'
import {
getDailyGoods,
@@ -655,7 +655,8 @@ export default {
pageKeyId: '',
couponListLimit2ToShow: [],
qualifications: [],
couponId: null
couponId: null,
submitActionLock: false
}
},
computed: mapGetters(['isLogin', 'location', 'userInfo']),
@@ -821,6 +822,7 @@ export default {
}
},
onShow() {
this.submitActionLock = false
this.getMapData()
getGiftCardSendBackground().then(res => {
if (res.status === 200) {
@@ -876,6 +878,15 @@ export default {
})
},
goRoom() {
if (!this.isLogin) {
uni.showToast({
title: '请先登录后联系客服',
icon: 'none',
duration: 2000
})
handleLoginFailure()
return
}
console.log(this.storeInfo);
const params = {
goodsId: this.id,
@@ -1500,6 +1511,10 @@ export default {
q.drawActivityId = Number(this.activityId || 0)
break
}
if (that.submitActionLock) {
return
}
that.submitActionLock = true
postCartAdd(q).then(function (res) {
that.isOpen = false
that.attr.cartAttr = false
@@ -1511,6 +1526,9 @@ export default {
discount: that.storeInfo.discount,
}
})
setTimeout(() => {
that.submitActionLock = false
}, 1500)
return
}
if(news === 2) {
@@ -1527,8 +1545,12 @@ export default {
// + '&couponId=' + coupId
url: giftUrl
})
setTimeout(() => {
that.submitActionLock = false
}, 1500)
}
if(news === 0) {
that.submitActionLock = false
uni.showToast({
title: "添加购物车成功",
icon: "success",
@@ -1541,6 +1563,7 @@ export default {
}
}).catch(error => {
that.isOpen = false;
that.submitActionLock = false
uni.showToast({
title: error.msg,
icon: "none",
+7 -1
View File
@@ -588,7 +588,8 @@ export default {
pageKeyId: '',
shareImg: '',
videoPlayers: [],
isView: false
isView: false,
skipRefreshOnShow: false
}
},
// 必须在页面加 onPageScroll(e){} ,才能滑动显示背景
@@ -679,6 +680,10 @@ export default {
if (!this.isLoad) {
return
}
if (this.skipRefreshOnShow) {
this.skipRefreshOnShow = false
return
}
this.fetchInnDetail()
if(this.isView) return
if(this.activeIndex === 1) {
@@ -834,6 +839,7 @@ export default {
})
},
infoClick: function (info) {
this.skipRefreshOnShow = true
this.$yrouter.push('/pagesInn/inn/innInfoDetail?id=' + info.id)
},
coverPlay(){
+44 -3
View File
@@ -554,8 +554,9 @@
</view>
</template>
<template v-if="status.type == -1">
<view style="width: 100%">
<view class="v12-justify-between" style="width: 100%">
<view class="bnt v12-dark-text v12-dark-border cancel" @click="goRoom(orderInfo)">联系商家</view>
<view class="bnt v12-primary-text v12-primary-border cancel" @click="cancelRefund">取消退款</view>
</view>
</template>
<template v-if="status.type == -2">
@@ -570,7 +571,11 @@
<view class="v12-justify-between ">
<view class="bnt v12-dark-text v12-dark-border cancel" @click="buyAgin">再买一单</view>
<view class="bnt v12-primary-text v12-primary-border" @click="routerGo(orderInfo.cartInfo[0])">立即评价</view>
<view
v-if="!isGiftOrder(orderInfo)"
class="bnt v12-primary-text v12-primary-border"
@click="routerGo(orderInfo.cartInfo[0])"
>立即评价</view>
</view>
</view>
</template>
@@ -654,7 +659,7 @@
<script>
import passkeyborad from '@/components/yzc-paykeyboard/yzc-paykeyboard'
import OrderGoods from "@/components/OrderGoods";
import {orderDetail, orderDelay, aginConfirm, express, applyEditAddress, orderExpectedArrivalTime, groupOrderDetail} from "@/api/order";
import {orderDetail, orderDelay, aginConfirm, express, applyEditAddress, orderExpectedArrivalTime, groupOrderDetail, cancelOrderRefund} from "@/api/order";
import Payment from "@/components/Payment";
import DataFormat from "@/components/DataFormat";
import {copyClipboard} from "@/utils";
@@ -1056,6 +1061,9 @@ export default {
}
return imgUrl;
},
isGiftOrder(order = {}) {
return Number(order.isGiftCardSend || 0) === 1 || Number(order.isGiftCardReceive || 0) === 1
},
subscribePay() {
uni.requestSubscribeMessage({
tmplIds: settings.SubscribeMessageTmplIds,
@@ -1166,6 +1174,39 @@ export default {
this.getDetail();
});
},
cancelRefund() {
uni.showModal({
title: '取消退款申请',
content: '确认取消退款申请吗?',
showCancel: true,
cancelText: '再想想',
confirmText: '确认取消',
confirmColor: '#C52733 ',
success: (res) => {
if (!res.confirm) return;
uni.showLoading({
title: '取消中'
});
cancelOrderRefund(this.orderInfo.orderId).then((res) => {
uni.showToast({
title: res.msg || '已取消退款申请',
icon: 'none',
duration: 2000
});
this.getDetail();
}).catch((err) => {
const message = err.msg || (err.response && err.response.data && (err.response.data.msg || err.response.data.message)) || '取消退款失败';
uni.showToast({
title: message,
icon: 'none',
duration: 3000
});
}).finally(() => {
uni.hideLoading();
});
}
});
},
takeOrder() {
takeOrderHandle(this.orderInfo.orderId).finally(() => {
this.getDetail();
+68
View File
@@ -29,6 +29,13 @@
</view>
<view class="card form-card">
<view class="form-card-header">
<view class="form-card-title">填写收货地址</view>
<view class="select-address-entry" @click="chooseExistingAddress">
<text class="select-address-text" style="margin-bottom: 4rpx;">选择现有地址 </text>
<u-icon name="arrow-right" size="14" color="#BD3124"></u-icon>
</view>
</view>
<view class="form-row">
<text class="label">收货人</text>
<input v-model="form.realName" class="input" placeholder="请填写收货人" placeholder-style="color:#b2b2b2;" />
@@ -190,6 +197,7 @@ export default {
this.fetchRealnameStatus()
},
onShow() {
this.handleChooseAddress()
const done = uni.getStorageSync('countyClaimAuthDone')
const needAutoSubmit = uni.getStorageSync('countyClaimNeedAutoSubmit')
if (done && (this.waitSubmitAfterRealname || needAutoSubmit)) {
@@ -219,6 +227,41 @@ export default {
goBack() {
uni.navigateBack()
},
chooseExistingAddress() {
uni.setStorageSync('sourceAddress', {
realName: this.form.realName || '',
phone: this.form.phone || '',
userAddress: `${this.address.province || ''}${this.address.city || ''}${this.address.district || ''}${this.form.detail || ''}`,
province: this.address.province || '',
city: this.address.city || '',
district: this.address.district || '',
detail: this.form.detail || ''
})
this.$yrouter.push({
path: '/pages/user/address/AddressManagement/index',
query: {
choosMode: 1
}
})
},
handleChooseAddress() {
const chooseAddress = uni.getStorageSync('chooseAddress') || {}
if (!chooseAddress.id) return
uni.setStorageSync('chooseAddress', {})
this.fillAddressForm(chooseAddress)
},
fillAddressForm(address = {}) {
this.form.realName = address.realName || address.real_name || ''
this.form.phone = address.phone || ''
this.form.detail = address.detail || ''
this.address = {
province: address.province || '',
city: address.city || '',
district: address.district || '',
city_id: address.city_id || address.cityId || address.city_id
}
this.addressText = `${this.address.province} ${this.address.city} ${this.address.district}`.trim()
},
getCityList() {
getCity().then(res => {
this.district = res.data || []
@@ -585,6 +628,31 @@ export default {
padding: 0 24rpx 24rpx;
}
.form-card-header {
min-height: 88rpx;
display: flex;
align-items: center;
justify-content: space-between;
border-bottom: 2rpx dashed #e5e5e5;
}
.form-card-title {
color: #262626;
font-size: 30rpx;
font-weight: 700;
}
.select-address-entry {
display: flex;
align-items: center;
color: #BD3124;
}
.select-address-text {
font-size: 26rpx;
margin-right: 8rpx;
}
.form-row {
min-height: 92rpx;
display: flex;
+1 -2
View File
@@ -284,8 +284,7 @@ export default {
return [1, 2, -1].includes(Number(item.status)) && !!item.prizeName
},
getInvalidReason(item) {
if (Number(item.claimStatus) === -1) return '奖品过期未领取'
return '订单取消'
return item.invalidReason || ''
},
formatPrizeText(item = {}) {
const prizeName = item.prizeName || '神秘奖品'
+4
View File
@@ -309,6 +309,10 @@ export default {
// console.log(searchMap);
const filterMap = searchMap.filter(el => el.cityName.includes(this.keyword))
if(filterMap.length === 0) {
uni.showToast({
title: '未找到该城市,请重新输入城市名称',
icon: 'none'
})
return
} else {
this.asideIndex = filterMap[0].index