liujiaxin 21 시간 전
부모
커밋
fce555a5ff
29개의 변경된 파일1511개의 추가작업 그리고 578개의 파일을 삭제
  1. 44 32
      api/live.js
  2. 8 3
      api/order.js
  3. 37 34
      common/request.js
  4. 8 0
      pages.json
  5. 120 72
      pages/home/living.vue
  6. 24 16
      pages_shop/order.vue
  7. 206 123
      pages_shop/refundOrder.vue
  8. 117 96
      pages_shop/refundOrderProduct.vue
  9. 306 0
      pages_shop/storeOrderDelivery.vue
  10. 16 4
      unpackage/dist/dev/mp-weixin/api/live.js
  11. 12 0
      unpackage/dist/dev/mp-weixin/api/order.js
  12. 1 0
      unpackage/dist/dev/mp-weixin/app.js
  13. 2 1
      unpackage/dist/dev/mp-weixin/app.json
  14. 74 66
      unpackage/dist/dev/mp-weixin/common/assets.js
  15. 23 16
      unpackage/dist/dev/mp-weixin/common/request.js
  16. 7 0
      unpackage/dist/dev/mp-weixin/common/vendor.js
  17. 115 56
      unpackage/dist/dev/mp-weixin/pages/home/living.js
  18. 0 0
      unpackage/dist/dev/mp-weixin/pages/home/living.wxml
  19. 31 26
      unpackage/dist/dev/mp-weixin/pages_shop/order.js
  20. 0 0
      unpackage/dist/dev/mp-weixin/pages_shop/order.wxml
  21. 3 3
      unpackage/dist/dev/mp-weixin/pages_shop/order.wxss
  22. 41 13
      unpackage/dist/dev/mp-weixin/pages_shop/refundOrder.js
  23. 16 14
      unpackage/dist/dev/mp-weixin/pages_shop/refundOrderProduct.js
  24. 1 1
      unpackage/dist/dev/mp-weixin/pages_shop/refundOrderProduct.wxml
  25. 83 0
      unpackage/dist/dev/mp-weixin/pages_shop/storeOrderDelivery.js
  26. 5 0
      unpackage/dist/dev/mp-weixin/pages_shop/storeOrderDelivery.json
  27. 1 0
      unpackage/dist/dev/mp-weixin/pages_shop/storeOrderDelivery.wxml
  28. 208 0
      unpackage/dist/dev/mp-weixin/pages_shop/storeOrderDelivery.wxss
  29. 2 2
      unpackage/dist/dev/mp-weixin/pages_user/address.js

+ 44 - 32
api/live.js

@@ -1,39 +1,51 @@
 import Request from '@/common/request.js';
 let request = new Request().http
 const api = {
-	liveDataLike:(liveId) => `/app/live/liveData/like/${liveId}`,// 点赞
-	collectStore: '/app/live/liveData/collectStore',// 收藏/取消收藏
-	follow:(liveId) => `/app/live/liveData/follow/${liveId}`,// 关注/取消关注
-	getRecentLiveViewers:(liveId) =>  `/app/live/liveData/getRecentLiveViewers/${liveId}`,// 获取直播间用户(展示在线用户)
+	liveDataLike: (liveId) => `/app/live/liveData/like/${liveId}`, // 点赞
+	collectStore:(sotreId)=> `/app/live/liveData/collectStore?storeId=${sotreId}`, // 店铺收藏/取消收藏
+	collectGoods:(goodId)=> `/app/live/liveData/collectGoods?goodId=${goodId}`, // 商品收藏/取消收藏
+	store:(storeld)=> `/app/live/store/${storeld}`, // 查询店铺
+	follow: (liveId) => `/app/live/liveData/follow/${liveId}`, // 关注/取消关注
+	getRecentLiveViewers: (liveId) => `/app/live/liveData/getRecentLiveViewers/${liveId}`, // 获取直播间用户(展示在线用户)
 	// checkSms: 'api/sms/checkSms',
-	getLiveInfo:(liveId) =>  `/app/live/${liveId}`,// 获取直播间信息接口
-	getLiveViewData:(liveId) =>  `/app/live/liveData/getLiveViewData/${liveId}`,// 直播间点赞、关注、在线人数数据
+	getLiveInfo: (liveId) => `/app/live/${liveId}`, // 获取直播间信息接口
+	getLiveViewData: (liveId) => `/app/live/liveData/getLiveViewData/${liveId}`, // 直播间点赞、关注、在线人数数据
 
 
 
-// 直播订单
-	searchStore:(storeId) =>  `/app/live/store/${storeId}`,// 查询店铺
-	liveStore:(liveId) =>  `/app/live/liveGoods/liveStore/${liveId}`,// 店铺展示
-	liveGoodsDetail:(productId) =>  `/app/live/liveGoods/liveGoodsDetail/${productId}`,// 商品详情
-	liveOrderUser:(liveId) =>  `/app/live/liveOrder/liveOrderUser/${liveId}`,// 正在购买
-	
+	// 直播订单
+	searchStore: (storeId) => `/app/live/store/${storeId}`, // 查询店铺
+	liveStore: (liveId) => `/app/live/liveGoods/liveStore/${liveId}`, // 店铺展示
+	liveGoodsDetail: (productId) => `/app/live/liveGoods/liveGoodsDetail/${productId}`, // 商品详情
+	liveOrderUser: (liveId) => `/app/live/liveOrder/liveOrderUser/${liveId}`, // 正在购买
+
+
 }
 // 点赞
-export function liveDataLike(liveId, data={}) {
-  return request(api.liveDataLike(liveId),data,'GET','application/json;charset=UTF-8')
+export function liveDataLike(liveId, data = {}) {
+	return request(api.liveDataLike(liveId), data, 'GET', 'application/json;charset=UTF-8')
 }
 
-// 收藏/取消收藏
-export function collectStore(data) {
-  return request(api.collectStore,data,'GET','application/json;charset=UTF-8')
+// 店铺收藏/取消收藏
+export function collectStore(sotreId,data= {}) {
+	return request(api.collectStore(sotreId),data,'POST', 'application/json;charset=UTF-8')
+}
+
+// 商品收藏/取消收藏
+export function collectGoods(goodId,data= {}) {
+	return request(api.collectGoods(goodId), data, 'POST', 'application/json;charset=UTF-8')
+}
+// 查询店铺
+export function store(storeld,data= {}) {
+	return request(api.store(storeld), data, 'GET', 'application/json;charset=UTF-8')
 }
 // 分享(还没有)
 // export function userLoginH5(data) {
 // 	return request.get(api.userLoginH5, data)
 // }
 // 关注/取消关注
-export function follow(liveId, data={}) {
-	return request(api.follow(liveId),data,'GET','application/json;charset=UTF-8')
+export function follow(liveId, data = {}) {
+	return request(api.follow(liveId), data, 'GET', 'application/json;charset=UTF-8')
 }
 
 // 返回(还没有)
@@ -45,7 +57,7 @@ export function follow(liveId, data={}) {
 // 观众
 // 获取直播间用户(展示在线用户)
 export function getRecentLiveViewers(liveId, data = {}) {
-	return request(api.getRecentLiveViewers(liveId),data,'GET','application/json;charset=UTF-8')
+	return request(api.getRecentLiveViewers(liveId), data, 'GET', 'application/json;charset=UTF-8')
 }
 
 
@@ -53,22 +65,22 @@ export function getRecentLiveViewers(liveId, data = {}) {
 // 小黄车
 
 // 店铺展示
-export function liveStore(liveId,data) {
-	return request(api.liveStore(liveId),data,'GET','application/json;charset=UTF-8')
+export function liveStore(liveId, data) {
+	return request(api.liveStore(liveId), data, 'GET', 'application/json;charset=UTF-8')
 }
 
 // 商品详情
-export function liveGoodsDetail(productId,data) {
-	return request(api.liveGoodsDetail(productId),data,'GET','application/json;charset=UTF-8')
+export function liveGoodsDetail(productId, data) {
+	return request(api.liveGoodsDetail(productId), data, 'GET', 'application/json;charset=UTF-8')
 }
 
 //正在购买
-export function liveOrderUser(liveId,data={}) {
-	return request(api.liveOrderUser(liveId),data,'GET','application/json;charset=UTF-8')
+export function liveOrderUser(liveId, data = {}) {
+	return request(api.liveOrderUser(liveId), data, 'GET', 'application/json;charset=UTF-8')
 }
 //查询店铺
-export function searchStore(storeId,data={}) {
-	return request(api.searchStore(storeId),data,'GET','application/json;charset=UTF-8')
+export function searchStore(storeId, data = {}) {
+	return request(api.searchStore(storeId), data, 'GET', 'application/json;charset=UTF-8')
 }
 
 
@@ -77,13 +89,13 @@ export function searchStore(storeId,data={}) {
 
 
 // 直播间
-export function getLiveInfo(liveId,data={}) {
-	return request(api.getLiveInfo(liveId),data,'GET','application/json;charset=UTF-8')
+export function getLiveInfo(liveId, data = {}) {
+	return request(api.getLiveInfo(liveId), data, 'GET', 'application/json;charset=UTF-8')
 }
 
 // 直播间点赞、关注、在线人数数据
-export function getLiveViewData(liveId,data={}) {
-	return request(api.getLiveViewData(liveId),data,'GET','application/json;charset=UTF-8')
+export function getLiveViewData(liveId, data = {}) {
+	return request(api.getLiveViewData(liveId), data, 'GET', 'application/json;charset=UTF-8')
 }
 
 

+ 8 - 3
api/order.js

@@ -151,12 +151,12 @@ export function finishOrder(data) {
 // 售后
 // 获取订单项列表
 export function getStoreOrderItems(data) {
-	return request(api.getStoreOrderItems, data, 'POST', 'application/json;charset=UTF-8')
+	return request(api.getStoreOrderItems, data, 'GET', 'application/json;charset=UTF-8')
 }
 
 // 申请售后
 export function applyAfterSales(data) {
-	return request(api.applyAfterSales, data, 'GET', 'application/json;charset=UTF-8')
+	return request(api.applyAfterSales, data, 'POST', 'application/json;charset=UTF-8')
 }
 
 // 撤销售后
@@ -172,4 +172,9 @@ export function getStoreAfterSalesList(data) {
 // 获取售后详情
 export function getStoreAfterSalesById(data) {
 	return request(api.getStoreAfterSalesById, data, 'GET', 'application/json;charset=UTF-8')
-}
+}
+
+// 申请原因
+export function Dicts(data) {
+ 	 return request('/app/common/getDictByKey',data,'GET');
+} 

+ 37 - 34
common/request.js

@@ -1,25 +1,32 @@
 // uni-app请求封装
 export default class Request {
-	http(router, data = {}, method,contentType) {
+	// 添加一个计数器,确保多个请求不会互相干扰
+	static loadingCount = 0;
+	http(router, data = {}, method, contentType) {
 		let that = this;
 		// let path = 'http://nd383294.natappfree.cc'//余红奇
 		// let path = 'https://live.test.ylrztop.com/prod-api'//余红奇
 		// let path = 'http://v56c9b8e.natappfree.cc'//余红奇
 		// let path = 'http://192.168.10.170:7114'//陈果
-		let path = 'http://192.168.10.166:7114'//余红奇
+		let path = 'http://192.168.10.166:7114' //余红奇
 		// let path = 'http://h5api.wxcourse.cdwjyyh.com'
-		uni.setStorageSync('requestPath',path)
-		uni.showLoading({
-			title: '加载中'
-		});
+		uni.setStorageSync('requestPath', path)
+		// 只在第一个请求时显示loading
+		if (Request.loadingCount === 0) {
+			uni.showLoading({
+				title: '加载中',
+				mask: true
+			});
+		}
+		Request.loadingCount++;
 		return new Promise((resolve, reject) => {
 			let token = uni.getStorageSync('AppToken');
-			var httpContentType='application/x-www-form-urlencoded';
-			if(contentType!=undefined){
+			var httpContentType = 'application/x-www-form-urlencoded';
+			if (contentType != undefined) {
 				//application/json;charset=UTF-8
-				httpContentType=contentType;
+				httpContentType = contentType;
 			}
-			var routers=router;
+			var routers = router;
 			// 请求
 			uni.request({
 				header: {
@@ -32,45 +39,41 @@ export default class Request {
 				method: method,
 				success: (res) => {
 					//收到开发者服务器成功返回的回调函数
-					if(res.code==401){//没有权限直接退出到登录界面
+					if (res.code == 401) { //没有权限直接退出到登录界面
 						let pages = getCurrentPages();
-						let url = pages[ pages.length - 1]; //当前页页面实例
-						如果登录界面已打开,自动关闭
-						if(url!=undefined&&url.route=="/pages/home/index"){
+						let url = pages[pages.length - 1]; //当前页页面实例
+						//如果登录界面已打开,自动关闭
+						if (url != undefined && url.route == "/pages/home/index") {
 							resolve(res.data)
 							return;
 						}
 						uni.reLaunch({
-							url:'/pages/home/index',
-							success: () => {
-								uni.hideLoading();
-								
-							},
-							fail: () => {
-								uni.hideLoading();
-							}
-						})
+							url: '/pages/home/index'
+						});
 						return;
 					}
 					if (res.token) {
-						uni.setStorageSync('AppToken',res.token)
+						uni.setStorageSync('AppToken', res.token)
 					}
 					resolve(res.data)
 				},
-				fail:(res) =>{
+				fail: (res) => {
 					//接口调用失败的回调函数
 				},
-				complete:(res) =>{
-					//接口调用结束的回调函数(调用成功、失败都会执行)
-					if (res.code&&res.data.code == 401) {
-						return false
+				complete: (res) => {
+					// 确保每次请求完成都减少计数器
+					Request.loadingCount--;
+
+					// 当所有请求都完成时才隐藏loading
+					if (Request.loadingCount <= 0) {
+						uni.hideLoading();
+						Request.loadingCount = 0; // 重置计数器
 					}
-					uni.hideLoading();
 				}
-				
+
 			})
 		})
-		 
+
 	}
-	
-}
+
+}

+ 8 - 0
pages.json

@@ -231,6 +231,14 @@
 							"bounce": "none"
 						}
 					}
+				},
+				{
+					"path": "storeOrderDelivery",
+					"style": {
+						"navigationBarTitleText": "物流信息",
+						"enablePullDownRefresh": false
+					}
+
 				}
 			]
 		}, {

+ 120 - 72
pages/home/living.vue

@@ -303,16 +303,17 @@
 		<u-popup :show="shopping" @close="closeshop" @open="open" round='20rpx' bgColor='#f3f5f9'>
 			<view class="shoppop">
 				<view class="shoppop-top">
-					<u-avatar :src="livedata.liveImgUrl" size="36" class="ml16"></u-avatar>
+					<u-avatar :src="store.logoUrl" size="36" class="ml16"></u-avatar>
 					<view class="search-input u-flex-y-center">
 						<image style="width: 24rpx;height: 24rpx;margin-right: 16rpx;" src="@/static/images/search.png">
 						</image>
 						<input placeholder="搜索商品或序号" />
 					</view>
-					<view class="t-c search-top" style="margin-right: 48rpx;" @click="onCollect">
-						<image v-if="isCollect" style="width: 32rpx;height: 32rpx;"
+					<view class="t-c search-top" style="margin-right: 48rpx;" @click="onStoreCollect">
+						<image v-if="store.isFavorite" style="width: 32rpx;height: 32rpx;"
 							src="@/static/images/collect_select.png"></image>
-						<image v-else style="width: 32rpx;height: 32rpx;" src="@/static/images/collect.png"></image>
+						<image v-else @click="onStoreCollect" style="width: 32rpx;height: 32rpx;"
+							src="@/static/images/collect.png"></image>
 						<view>收藏</view>
 					</view>
 					<view class="t-c search-top" @click="goOrderList">
@@ -329,22 +330,22 @@
 						</view>
 						<view class="goods-right">
 							<view class="goods-title">{{item.productName}}</view>
-							<view class="goods-details">{{item.productIntroduce}}</view>
+							<!-- <view class="goods-details">{{item.productIntroduce}}</view> -->
 							<view class="goods-people">{{item.sales}} 人已购</view>
 							<view class="goods-shop">
 								<text class="nummber"><text style="font-size: 20rpx;font-weight: 600;">¥</text><text
 										style="font-size: 36rpx;font-weight: bold;">{{Math.trunc(item.price)}}</text>.{{getPureDecimal(item.price)?getPureDecimal(item.price):'00'}}/日</text>
 								<view class="btn-group  u-flex-y-center">
 									<view class="collect-btn">
-										<image v-if="isCollect" @click="onCollect(item)"
+										<image v-if="item.isFavorite" @click="onGoodsCollect(item)"
 											style="width: 32rpx;height: 32rpx;" src="/static/images/collect_select.png">
 										</image>
-										<image v-else @click="onCollect(item)" style="width: 32rpx;height: 32rpx;"
+										<image v-else @click="onGoodsCollect(item)" style="width: 32rpx;height: 32rpx;"
 											src="/static/images/collect.png">
 										</image>
 									</view>
 									<view v-if="item.status==1" class="shop-btn"
-										@click="goShop(item.productId,item.goodsId,item.storeId)">去购买
+										@click="goShop(item.productId,item.goodsId)">去购买
 									</view>
 									<view v-else-if="item.status==0" @click="goShop(item.productId)" class="shop-btn">
 										已下架</view>
@@ -363,7 +364,9 @@
 	import CryptoJS from 'crypto-js'
 	import {
 		liveDataLike, // 点赞
-		collectStore, // 收藏/取消收藏
+		collectStore, // 店铺收藏/取消收藏
+		collectGoods, // 商品收藏/取消收藏
+		store, // 查询店铺
 		follow, // 关注/取消关注
 		getRecentLiveViewers, //获取直播间用户(展示在线用户)
 		// 小黄车
@@ -403,6 +406,7 @@
 	export default {
 		data() {
 			return {
+				storeId: null,
 				reconnectCount: 0,
 				maxReconnectAttempts: 3,
 				reconnectTimer: null,
@@ -507,7 +511,6 @@
 			}
 		},
 		mounted() {
-
 			// this.onLike() 
 			this.getliveViewData() ////直播间点赞、关注、在线人数数据
 			this.intervalId = setInterval(() => {
@@ -515,7 +518,7 @@
 			}, 60 * 1000);
 			// this.getLiveinformation() // 获取直播间信息接口
 			this.getliveOrder() //正在购买
-			this.getliveStore() // 获取小黄车 店铺展示
+			// this.getliveStore() // 获取小黄车 店铺展示
 			// this.getliveGoods() // 获取小黄车 商品详情
 			this.getliveUser() // 获取直播间用户
 			this.initTime()
@@ -537,7 +540,7 @@
 			this.gettalklist()
 			// this.getAnswerlists()
 			this.userinfo = JSON.parse(uni.getStorageSync("userInfo"))
-
+			
 		},
 		onReady: function(res) {
 			this.videoContext = uni.createVideoContext('myVideo')
@@ -551,6 +554,7 @@
 			if (this.pingpangTimes) {
 				clearInterval(this.pingpangTimes); // 清除心跳定时器
 			}
+			uni.$off('refreshOrder'); // 移除全局事件监听
 		},
 		watch: {
 			// 监听orderUser.count的变化
@@ -584,9 +588,9 @@
 				return str.length > maxLength ? str.slice(0, maxLength) + '...' : str;
 			},
 			goStore() {
-				console.log("带过去storeId", this.products[0].storeId)
+				console.log("带过去storeId", this.storeId)
 				uni.navigateTo({
-					url: '/pages_shop/store?liveId=' + this.liveId + "&storeId=" + this.products[0].storeId
+					url: '/pages_shop/store?liveId=' + this.liveId + "&storeId=" + this.storeId
 				})
 			},
 			// 去订单列表
@@ -623,6 +627,7 @@
 			},
 
 			getliving() {
+				if (!this.liveId) return;
 				console.log("获取直播信息");
 				const param = {
 					id: this.liveId
@@ -640,6 +645,8 @@
 
 					this.livedata = res.data;
 					this.showType = res.data.showType;
+					this.storeId = res.storeId
+					this.queryCollect()//查询店铺
 					console.log("横屏1或竖屏2", this.showType)
 					// 1. 根据直播类型设置播放地址
 					if (res.data.liveType === 2) {
@@ -723,13 +730,12 @@
 					});
 
 				}
- 
+
 			},
 
 			//直播间点赞、关注、在线人数数据
 			getliveViewData() {
 				if (!this.liveId) return;
-				
 				getLiveViewData(this.liveId).then(res => {
 						if (res.code == 200) {
 							// console.log("直播间点赞、关注、在线人数数据>>>>", res)
@@ -763,32 +769,34 @@
 				);
 			},
 			//小黄车 店铺展示
-			getliveStore() {
-				let data = {
-					pageSize: 10,
-					page: 1
-				}
-				liveStore(this.liveId, data).then(res => {
-						if (res.code == 200) {
-							console.log("小黄车 店铺展示>>>>", res)
-							this.products = res.data
-						} else {
-							uni.showToast({
-								title: res.msg,
-								icon: 'none'
-							});
-						}
-					},
-					rej => {}
-				);
-			},
+			// getliveStore() {
+			// 	if (!this.liveId) return;
+			// 	let data = {
+			// 		pageSize: 10,
+			// 		page: 1
+			// 	}
+			// 	liveStore(this.liveId, data).then(res => {
+			// 			if (res.code == 200) {
+			// 				console.log("小黄车 店铺展示>>>>", res)
+			// 				this.products = res.data
+			// 				this.queryCollect()
+			// 			} else {
+			// 				uni.showToast({
+			// 					title: res.msg,
+			// 					icon: 'none'
+			// 				});
+			// 			}
+			// 		},
+			// 		rej => {}
+			// 	);
+			// },
 			// 获取直播间信息接口
 			getLiveinformation() {
+				if (!this.liveId) return;
 				getLiveInfo(this.liveId).then(res => {
 						if (res.code == 200) {
 							console.log("获取直播间信息接口>>>>", res)
 							this.livingUrl = res.livingUrl
-
 						} else {
 							uni.showToast({
 								title: res.msg,
@@ -802,6 +810,7 @@
 
 			// 获取直播间用户
 			getliveUser() {
+				if (!this.liveId) return;
 				getRecentLiveViewers(this.liveId).then(res => {
 						if (res.code == 200) {
 							console.log("获取直播间用户>>>>", res)
@@ -819,6 +828,7 @@
 
 			// 点赞
 			onLike() {
+				if (!this.liveId) return;
 				liveDataLike(this.liveId).then(res => {
 						if (res.code == 200) {
 							if (res.like) {
@@ -842,33 +852,63 @@
 
 			},
 			// 去购买,跳商品详情
-			goShop(productId, goodsId, storeId) {
+			goShop(productId, goodsId) {
 				uni.navigateTo({
 					url: '/pages_shop/goods?productId=' + productId + '&liveId=' + this.liveId + '&goodsId=' +
-						goodsId + '&storeId=' + storeId
+						goodsId + '&storeId=' + this.storeId
 				})
 			},
 
-			// 收藏
-			onCollect(item) {
-				let storeId
-				if (item) {
-					storeId = this.products[0].storeId
-				} else {
-					storeId = item.storeId
-				}
-				let data = {
-					liveId: this.liveId,
-					productId: item.productId || '',
-					storeId: storeId
+			// 查询店铺
+			queryCollect() {
+				if (!this.storeId) return;
+				store(this.storeId).then(res => {
+						if (res.code == 200) {
+							console.log("查询店铺>>", res)
+							this.products = res.data.goodsList
+							this.store=res.data
+						} else {
+							uni.showToast({
+								title: res.msg,
+								icon: 'none'
+							});
+						}
+					},
+					rej => {}
+				);
+			},
+			// 店铺收藏
+			onStoreCollect() {
+				if (!this.storeId) return;
+				collectStore(this.products[0].storeId).then(res => {
+						if (res.code == 200) {
+							uni.showToast({
+								title: res.msg,
+								icon: 'none'
+							});
+							this.store.isFavorite = !this.store.isFavorite
+						} else {
+							uni.showToast({
+								title: res.msg,
+								icon: 'none'
+							});
+						}
+					},
+					rej => {}
+				);
+			},
+			// 商品收藏
+			onGoodsCollect(item) {
+				if (!item || item.length === 0 || !item.goodsId) {
+					return;
 				}
-				collectStore(data).then(res => {
+				collectGoods(item.goodsId).then(res => {
 						if (res.code == 200) {
 							uni.showToast({
 								title: res.msg,
 								icon: 'none'
 							});
-							// this.isCollect=this.isCollect
+							item.isFavorite = !item.isFavorite
 						} else {
 							uni.showToast({
 								title: res.msg,
@@ -881,6 +921,7 @@
 			},
 			// 关注
 			onFollow() {
+				if (!this.liveId) return;
 				follow(this.liveId).then(res => {
 						this.isFollow = !this.isFollow
 						uni.showToast({
@@ -891,6 +932,7 @@
 					rej => {}
 				);
 			},
+			// 时间戳
 			initTime() {
 				const now = new Date();
 				this.timestamp = now.getTime(); // 例如:'2023-04-01 12:00:00'
@@ -1008,6 +1050,7 @@
 			// },
 			getAnswerlists() {
 				console.log(123)
+				if (!this.liveId) return;
 				const data = {
 					liveId: this.liveId
 				}
@@ -1029,6 +1072,7 @@
 				})
 			},
 			gettalklist() {
+				if (!this.liveId) return;
 				const param = {
 					id: this.liveId
 				}
@@ -1161,25 +1205,29 @@
 				}, 30000);
 			},
 			initSocket() {
-				  if (!this.liveId) {
-				    console.warn('liveId为空,不尝试WebSocket连接');
-				    return;
-				  }
-				 if (this.reconnectCount >= this.maxReconnectAttempts) {
-				    console.log('已达到最大重连次数,不再尝试连接');
-				    uni.showToast({
-				      title: '连接失败,请刷新页面重试',
-				      icon: 'none'
-				    });
-				    return;
-				  }
-
-				 this.userinfo = JSON.parse(uni.getStorageSync("userInfo") || '{}');
-				  if (!this.userinfo.userId) {
-				    console.warn('用户信息不存在,不尝试WebSocket连接');
-				    return;
-				  }
-// 先清除之前的连接和心跳
+				if (isSocketOpen) {
+					console.log('WebSocket 已连接,无需重复初始化');
+					return;
+				}
+				if (!this.liveId) {
+					console.warn('liveId为空,不尝试WebSocket连接');
+					return;
+				}
+				if (this.reconnectCount >= this.maxReconnectAttempts) {
+					console.log('已达到最大重连次数,不再尝试连接');
+					uni.showToast({
+						title: '连接失败,请刷新页面重试',
+						icon: 'none'
+					});
+					return;
+				}
+
+				this.userinfo = JSON.parse(uni.getStorageSync("userInfo") || '{}');
+				if (!this.userinfo.userId) {
+					console.warn('用户信息不存在,不尝试WebSocket连接');
+					return;
+				}
+				// 先清除之前的连接和心跳
 				this.closeWebSocket();
 
 				let signature = CryptoJS.HmacSHA256(
@@ -1188,7 +1236,7 @@
 					CryptoJS.enc.Utf8.parse(this.timestamp)).toString(CryptoJS.enc.Hex);
 
 				const that = this;
-				
+
 
 				// 创建一个新的socket连接
 				socket = uni.connectSocket({

+ 24 - 16
pages_shop/order.vue

@@ -16,7 +16,7 @@
 						<text v-else-if="item.status==1">待支付</text>
 						<text v-else-if="item.status==2">待发货</text>
 						<text v-else-if="item.status==3">待收货</text>
-						<text v-else-if="item.status==4">待评价</text>
+						<!-- <text v-else-if="item.status==4">待评价</text> -->
 						<text v-else-if="item.status==5">已完成</text>
 						<text v-else-if="item.status==-3">已取消</text>
 					</view>
@@ -40,12 +40,14 @@
 						</view>
 						<view class="button-group">
 							<view v-if="item.status == 1" @click="cancel(item)" class="button cancel ">取消订单</view>
-							<view v-if="item.status !== 1" @click="refund(item)" class="button cancel">申请售后</view>
+							<view v-if="item.status !== -1 && item.status !== -3" @click="refund(item)"
+								class="button cancel">申请售后</view>
+							<view v-if="item.status ==3 ||item.status ==5 " class="button cancel"
+								@click.stop="showDelivery(item)">查看物流</view>
 							<view v-if="item.status == 1" @click="pay(item)" class="button pay">去支付</view>
-							<view v-if="item.status == 2" @click="urgeShipment(item)" class="button cancel">催发货</view>
+							<!-- <view v-if="item.status == 2" @click="urgeShipment(item)" class="button cancel">催发货</view> -->
 							<view v-if="item.status == 3" @click="confirmReceipt(item)" class="button pay">确认收货</view>
 							<view v-if="item.status == 4" @click="evaluate(item)" class="button pay">评价</view>
-							<!-- <view v-if="item.status == 1" class="button">申请售后</view> -->
 							<!-- <view class="button">查看物流</view> -->
 							<!-- <view v-if="item.status == 1" class="button pay">去支付</view>
 							<view v-if="item.status == 1" class="button pay">去支付</view> -->
@@ -62,13 +64,13 @@
 <script>
 	import {
 		cancelOrder, //取消订单
-		liveOrderList ,// 订单列表
-		finishOrder//确认收货
+		liveOrderList, // 订单列表
+		finishOrder //确认收货
 	} from '@/api/order.js'
 	export default {
 		data() {
 			return {
-				status:'',
+				status: '',
 				orderList: [],
 				tabList: [{
 						name: "全部",
@@ -85,10 +87,11 @@
 					{
 						name: "待收货",
 						status: "3"
-					}, {
-						name: "待评价",
-						status: "4"
 					},
+					// {
+					// 	name: "待评价",
+					// 	status: "4"
+					// },
 					{
 						name: "已完成",
 						status: "5"
@@ -157,7 +160,7 @@
 								}
 							});
 						} else if (res.cancel) {
-			
+
 						}
 					}
 				});
@@ -172,7 +175,7 @@
 			// tab切换
 			tabsClick(item) {
 				this.getliveOrderList(item.status) // 切换时重新获取数据
-				this.status=item.status
+				this.status = item.status
 			},
 
 			// 订单列表
@@ -197,7 +200,12 @@
 						console.log("rej:" + JSON.stringify(rej));
 					}
 				);
-			},
+			},// 查看物流
+			showDelivery(item) {
+				uni.navigateTo({
+					url: './storeOrderDelivery?orderId='+item.orderId
+				})
+			}
 		}
 	}
 </script>
@@ -307,11 +315,11 @@
 						align-items: center;
 
 						.button {
-							margin-left: 20rpx;
-							padding: 10rpx 24rpx;
+							margin-left: 10rpx;
+							padding: 10rpx 14rpx;
 							border-radius: 8rpx;
 							font-weight: 500;
-							font-size: 26rpx;
+							font-size: 24rpx;
 						}
 
 

+ 206 - 123
pages_shop/refundOrder.vue

@@ -3,9 +3,10 @@
 		<view class="inner">
 			<!-- 药品列表 -->
 			<view class="drug-list">
-				<view  class="item">
+				<view class="item">
 					<!-- 药品信息 -->
-					<view v-if="order!=null&&order.isPackage!=1" class="drug-info" v-for="(item,index) in items" :key="index">
+					<view v-if="order!=null&&order.isPackage!=1" class="drug-info" v-for="(item,index) in items"
+						:key="index">
 						<view class="img-box">
 							<image :src="JSON.parse(item.jsonInfo).image" mode="aspectFit"></image>
 						</view>
@@ -23,7 +24,7 @@
 							</view>
 						</view>
 					</view>
-					<view  v-if="order!=null&&order.isPackage==1&&order.packageJson!=null"   class="drug-info">
+					<view v-if="order!=null&&order.isPackage==1&&order.packageJson!=null" class="drug-info">
 						<view class="img-box">
 							<image :src="JSON.parse(order.packageJson).imgUrl" mode="aspectFit"></image>
 						</view>
@@ -34,7 +35,7 @@
 								</view>
 								<view class="spec">{{JSON.parse(order.packageJson).descs}}</view>
 							</view>
-							 
+
 						</view>
 					</view>
 				</view>
@@ -43,12 +44,13 @@
 			<view class="reason-apply">
 				<view class="title-box">
 					<text class="label">退款金额</text>
-					 <input class="money" type="text" disabled v-model="refundAmount" placeholder="退款金额" placeholder-class="form-input" />
+					<input class="money" type="text" disabled v-model="refundAmount" placeholder="退款金额"
+						placeholder-class="form-input" />
 				</view>
 				<view class="title-box">
 					<text class="label">申请原因</text>
-					<picker @change="reasonsChange" :value="reasons"  range-key="dictLabel" :range="reasonsList">
-						<view class="chose-box"  >
+					<picker @change="reasonsChange" :value="reasons" range-key="dictLabel" :range="reasonsList">
+						<view class="chose-box">
 							<text class="text">{{reasons}}</text>
 							<image src="/static/images/arrow_gray.png" mode=""></image>
 						</view>
@@ -76,61 +78,84 @@
 					<text class="text">重庆市江北区建玛特商场5楼</text>
 				</view>
 			</view> -->
-			 <!-- 底部按钮 -->
-			 <view class="btn-box">
-			 	<view class="sub-btn" @click="submit()">申请售后</view>
-			 </view>
+			<!-- 底部按钮 -->
+			<view class="btn-box">
+				<view class="sub-btn" @click="submit()">申请售后</view>
+			</view>
 		</view>
-		
-	 
+
+
 	</view>
 </template>
 
 <script>
-	// import {applyAfterSales,getMyStoreOrderItemByOrderId} from '@/api/storeAfterSales'
+	import {
+		Dicts,
+		getStoreOrderItems, //获取订单项列表
+		applyAfterSales, // 申请售后
+		revoke //撤销售后
+	} from '@/api/order.js'
+	// import {applyAfterSales,getStoreOrder} from '@/api/storeAfterSales'
 	export default {
-		 
+
 		data() {
 			return {
-				orderId:null,
-				order:null,
-				orderCode:null,
-				items:[],
-				type:null,
-				reasonsList:[],
-				reasons:"请选择",
-				explains:"",
-				refundAmount:0.00,
-				 
+				orderId: null,
+				order: null,
+				orderCode: null,
+				items: [],
+				type: null,
+				reasonsList: [],
+				reasons: "请选择",
+				explains: "",
+				refundAmount: 0.00,
+
 			}
 		},
 		onLoad(option) {
-			this.type=option.type;
-			this.orderCode=option.orderCode;
-			this.reasonsList=this.utils.getDict("storeAfterSalesReasons");
-			this.orderId=option.orderId;
+			this.type = option.type;
+			this.orderCode = option.orderCode;
+			this.orderId = option.orderId;
 			console.log(this.orderId);
-			this.getMyStoreOrderItemByOrderId()
+			this.getStoreOrder()
+			this.getDicts()
 		},
 		methods: {
-			getMyStoreOrderItemByOrderId(){
-				var data={orderId:this.orderId};
-				getMyStoreOrderItemByOrderId(data).then(res => {
-					if(res.code==200){
-						this.order=res.order;
-						this.items=res.items;
-						if(this.order.isPayRemain==0){
-							this.refundAmount=this.order.payMoney.toFixed(2)
-						}
-						else{
-							this.refundAmount=this.order.payPrice.toFixed(2)
+			getDicts() {
+				var data = {
+					key: "store_after_sales_reasons"
+				};
+				Dicts(data).then(res => {
+					if (res.code == 200) {
+					this.reasonsList=res.data
+					} else {
+						uni.showToast({
+							icon: 'none',
+							title: "请求失败",
+						});
+
+					}
+				});
+			},
+			getStoreOrder() {
+				var data = {
+					orderId: this.orderId
+				};
+				getStoreOrderItems(data).then(res => {
+					if (res.code == 200) {
+						this.order = res.order;
+						this.items = res.items;
+						if (this.order.isPayRemain == 0) {
+							this.refundAmount = this.order.totalPrice.toFixed(2)
+						} else {
+							this.refundAmount = this.order.totalPrice.toFixed(2)
 						}
-					}else{
+					} else {
 						uni.showToast({
-							icon:'none',
+							icon: 'none',
 							title: "请求失败",
 						});
-						 
+
 					}
 				});
 			},
@@ -138,48 +163,61 @@
 				console.log(e.detail.value)
 				this.reasons = this.reasonsList[e.detail.value].dictLabel
 			},
-			submit(){
-				if(this.reasons=="请选择"){
+			submit() {
+				if (this.reasons == "请选择") {
 					uni.showToast({
-						icon:'none',
+						icon: 'none',
 						title: '请选择原因'
 					});
 					return;
 				}
-				if(this.refundAmount<0){
+				if (this.refundAmount < 0) {
 					uni.showToast({
-						icon:'none',
+						icon: 'none',
 						title: '请输入退款金额'
 					});
 					return;
 				}
-				 
-				var productIds=this.items.map(item=>item.productId);
-				var products=[];
-				for(var i=0;i<productIds.length;i++){
-					var item={productId:productIds[i]};
+
+				var productIds = this.items.map(item => item.productId);
+				var products = [];
+				for (var i = 0; i < productIds.length; i++) {
+					var item = {
+						productId: productIds[i]
+					};
 					products.push(item);
 				}
-				var data={refundAmount:this.refundAmount,orderCode:this.orderCode,serviceType:this.type,reasons:this.reasons,explains:this.explains,productList:products};
+				var data = {
+					orderId:this.orderId,
+					refundType:this.type,//0仅退款1退货退款
+					refundAmount: this.refundAmount,
+					orderCode: this.orderCode,
+					reasons: this.reasons,
+					explains: this.explains,
+					productList: products
+				};
 				applyAfterSales(data).then(res => {
-					if(res.code==200){
-						 uni.showToast({
-						 	icon:'success',
-						 	title:'提交成功'
-						 });
-						 setTimeout(function() {
-							 uni.$emit('refreshOrder');
-							 uni.navigateBack({
-								 delta: 1
-							 })
-						 }, 500);
-						 
-					}else{
+					if (res.code == 200) {
+						uni.showToast({
+							icon: 'success',
+							title: '提交成功'
+						});
+						setTimeout(function() {
+							// uni.$emit('refreshOrder');
+							// uni.navigateBack({
+							// 	delta: 1
+							// })
+							uni.redirectTo({
+								url: './order'
+							})
+						}, 500);
+
+					} else {
 						uni.showToast({
-							icon:'none',
+							icon: 'none',
 							title: res.msg
 						});
-						 
+
 					}
 				});
 			},
@@ -188,43 +226,51 @@
 </script>
 
 <style lang="scss">
-	.content{
+	.content {
 		margin-bottom: 170upx;
-		.inner{
+
+		.inner {
 			padding: 20upx;
-			.drug-list{
-				.item{
+
+			.drug-list {
+				.item {
 					background: #FFFFFF;
 					border-radius: 16upx;
 					margin-bottom: 20upx;
 					padding: 0 30upx;
-					.drug-info{
+
+					.drug-info {
 						display: flex;
 						align-items: center;
 						padding: 30upx 0;
-						.img-box{
+
+						.img-box {
 							width: 160upx;
 							height: 160upx;
 							margin-right: 30upx;
-							image{
+
+							image {
 								width: 100%;
 								height: 100%;
 							}
 						}
-						.info{
+
+						.info {
 							width: calc(100% - 160upx);
 							height: 160upx;
 							display: flex;
 							flex-direction: column;
 							justify-content: space-between;
-							.top{
-								.title{
+
+							.top {
+								.title {
 									font-size: 28upx;
 									font-family: PingFang SC;
 									font-weight: 500;
 									color: #111111;
 									line-height: 1.4;
-									.tag{
+
+									.tag {
 										display: inline-block;
 										padding: 0 6upx;
 										height: 30upx;
@@ -240,7 +286,8 @@
 										margin-top: 7upx;
 									}
 								}
-								.spec{
+
+								.spec {
 									font-size: 24upx;
 									font-family: PingFang SC;
 									font-weight: 500;
@@ -249,14 +296,17 @@
 									margin-top: 14upx;
 								}
 							}
-							.price-num{
+
+							.price-num {
 								display: flex;
 								align-items: center;
 								justify-content: space-between;
-								.price-box{
+
+								.price-box {
 									display: flex;
 									align-items: flex-end;
-									.unit{
+
+									.unit {
 										font-size: 24upx;
 										font-family: PingFang SC;
 										font-weight: 500;
@@ -264,7 +314,8 @@
 										line-height: 1.2;
 										margin-right: 5upx;
 									}
-									.price{
+
+									.price {
 										font-size: 32upx;
 										font-family: PingFang SC;
 										font-weight: 500;
@@ -272,7 +323,8 @@
 										line-height: 1;
 									}
 								}
-								.num{
+
+								.num {
 									font-size: 24upx;
 									font-family: PingFang SC;
 									font-weight: bold;
@@ -281,52 +333,61 @@
 							}
 						}
 					}
-					 
+
 				}
 			}
-			.reason-apply{
+
+			.reason-apply {
 				margin-top: 20upx;
 				background: #FFFFFF;
 				border-radius: 16upx;
 				padding: 0 30upx;
-				.title-box{
+
+				.title-box {
 					height: 86upx;
 					display: flex;
 					align-items: center;
 					justify-content: space-between;
 					border-bottom: 1px solid #F0F0F0;
-					.label{
+
+					.label {
 						font-size: 30upx;
 						font-family: PingFang SC;
 						font-weight: bold;
 						color: #333333;
 					}
-					.money{
-						
+
+					.money {
+
 						font-size: 24upx;
 						font-family: PingFang SC;
 						font-weight: 500;
 						color: #999999;
 					}
-					.chose-box{
+
+					.chose-box {
 						display: flex;
 						align-items: center;
-						.text{
+
+						.text {
 							font-size: 24upx;
 							font-family: PingFang SC;
 							font-weight: 500;
 							color: #999999;
 						}
-						image{
+
+						image {
 							width: 14upx;
 							height: 24upx;
 							margin-left: 10upx;
 						}
 					}
 				}
-				.textarea-box{
+
+				.textarea-box {
 					padding: 30upx 0;
-					textarea{
+
+					textarea {
 						width: 100%;
 						box-sizing: border-box;
 						background: #F5F5F5;
@@ -337,7 +398,8 @@
 						font-weight: 500;
 						color: #111111;
 					}
-					.textarea-place{
+
+					.textarea-place {
 						font-size: 24upx;
 						font-family: PingFang SC;
 						font-weight: 500;
@@ -345,25 +407,29 @@
 					}
 				}
 			}
-			.return-method{
+
+			.return-method {
 				background: #FFFFFF;
 				border-radius: 16upx;
 				margin-top: 20upx;
 				padding: 0 30upx 40upx;
-				.title-box{
+
+				.title-box {
 					height: 86upx;
 					display: flex;
 					align-items: center;
 					justify-content: space-between;
 					border-bottom: 1px solid #F0F0F0;
-					.text{
+
+					.text {
 						font-size: 30upx;
 						font-family: PingFang SC;
 						font-weight: bold;
 						color: #333333;
 					}
 				}
-				.return-tips{
+
+				.return-tips {
 					margin-top: 30upx;
 					margin-bottom: 30upx;
 					height: 80upx;
@@ -372,50 +438,59 @@
 					padding: 0 20upx;
 					display: flex;
 					align-items: center;
-					.text{
+
+					.text {
 						font-size: 24upx;
 						font-family: PingFang SC;
 						font-weight: 500;
 						color: #EF8A07;
 					}
 				}
-				.info-item{
+
+				.info-item {
 					display: flex;
 					align-items: center;
 					justify-content: space-between;
 					margin-bottom: 40upx;
-					&:last-child{
+
+					&:last-child {
 						margin-bottom: 0;
 					}
-					.label{
+
+					.label {
 						font-size: 26upx;
 						font-family: PingFang SC;
 						font-weight: 500;
 						color: #666666;
 						line-height: 1;
 					}
-					.text{
+
+					.text {
 						font-size: 26upx;
 						font-family: PingFang SC;
 						font-weight: 500;
 						color: #111111;
 						line-height: 1;
 					}
-					.detail-box{
+
+					.detail-box {
 						display: flex;
 						align-items: center;
-						.price-box{
+
+						.price-box {
 							display: flex;
 							align-items: flex-end;
 							margin-right: 18upx;
-							.unit{
+
+							.unit {
 								font-size: 24upx;
 								font-family: PingFang SC;
 								font-weight: 500;
 								color: #111111;
 								line-height: 1.2;
 							}
-							.num{
+
+							.num {
 								font-size: 32upx;
 								font-family: PingFang SC;
 								font-weight: bold;
@@ -423,13 +498,15 @@
 								line-height: 1;
 							}
 						}
-						.det-text{
+
+						.det-text {
 							font-size: 26upx;
 							font-family: PingFang SC;
 							font-weight: 500;
 							color: #111111;
 						}
-						image{
+
+						image {
 							width: 14upx;
 							height: 24upx;
 							margin-left: 10upx;
@@ -438,16 +515,18 @@
 				}
 			}
 		}
-		 
-		.reson-box{
+
+		.reson-box {
 			padding: 0 10upx 60upx;
-			.reson-item{
+
+			.reson-item {
 				width: 100%;
 				height: 110upx;
 				display: flex;
 				align-items: center;
 				justify-content: space-between;
-				.title{
+
+				.title {
 					font-size: 30upx;
 					font-family: PingFang SC;
 					font-weight: 500;
@@ -456,13 +535,15 @@
 			}
 		}
 	}
-	.btn-box{
+
+	.btn-box {
 		height: 120upx;
 		padding: 0 30upx;
 		display: flex;
 		align-items: center;
 		justify-content: center;
-		.sub-btn{
+
+		.sub-btn {
 			width: 100%;
 			height: 88upx;
 			line-height: 88upx;
@@ -475,14 +556,16 @@
 			border-radius: 44upx;
 		}
 	}
-	input{
+
+	input {
 		text-align: right;
 	}
-	.form-input{
+
+	.form-input {
 		font-size: 30upx;
 		font-family: PingFang SC;
 		font-weight: 500;
 		color: #999999;
 		text-align: right;
 	}
-</style>
+</style>

+ 117 - 96
pages_shop/refundOrderProduct.vue

@@ -3,9 +3,6 @@
 		<view class="inner">
 			<view class="goods-list">
 				<view v-if="order!=null&&order.isPackage!=1" class="item" v-for="(item,index) in items" :key="index">
-					<!-- <label style="margin-right: 30upx;">
-						<checkbox :value="item.checked"  :checked="item.checked" @click="checkChange(item)" />
-					</label> -->
 					<image class="goods-img" :src="JSON.parse(item.jsonInfo).image" mode="aspectFit"></image>
 					<view class="info">
 						<view class="top">
@@ -21,75 +18,79 @@
 						</view>
 					</view>
 				</view>
-				<view  v-if="order!=null&&order.isPackage==1&&order.packageJson!=null"   class="item">
+				<view v-if="order!=null&&order.isPackage==1&&order.packageJson!=null" class="item">
 					<image class="goods-img" :src="JSON.parse(order.packageJson).imgUrl" mode="aspectFit"></image>
-					<view class="info">
+					<!-- <view class="info">
 						<view class="top">
 							<view class="title ellipsis2">
 								<view class="tag">套餐</view>{{JSON.parse(order.packageJson).title}}
 							</view>
 							<view class="spec">{{JSON.parse(order.packageJson).descs}}</view>
 						</view>
-					</view>
-					 
+					</view> -->
+
 				</view>
 			</view>
-			 
+
 		</view>
 		<!-- 底部按钮 -->
 		<view class="btn-box">
 			<view class="text">提交申请后,客服会与您电话沟通,请保持手机通畅</view>
 			<view class="btns">
-				 <view class="left"></view>
+				<view class="left"></view>
 				<view class="right">
-					<view  class="btn cancel" v-if="order.status==1 || order.status==2" @click="submit(0)" >仅退款</view>
-					<view  class="btn cancel" v-if="order.status==3||order.status==4" @click="submit(1)"  >退款退货</view>
+					<view class="btn cancel" v-if="order.status==2 || order.status==2" @click="submit(0)">仅退款</view>
+					<view class="btn cancel" v-if="order.status==3||order.status==4" @click="submit(1)">退款退货</view>
 				</view>
-				
 			</view>
-		
 		</view>
-	 
 	</view>
 </template>
 
 <script>
-	// import {getMyStoreOrderItemByOrderId,applyAfterSales} from '@/api/storeAfterSales'
+	import {
+		getStoreOrderItems, //获取订单项列表
+	} from '@/api/order.js'
+	// import {getStoreOrder,applyAfterSales} from '@/api/storeAfterSales'
 	export default {
-		 
+
 		data() {
 			return {
-				order:null,
-				items:[],
-				 
+				order: {},
+				items: [],
+
 			}
 		},
 		onLoad(option) {
-			this.orderId=option.orderId;
-			this.getMyStoreOrderItemByOrderId()
+			this.orderId = option.orderId;
+			this.getStoreOrder()
 		},
 		methods: {
-			checkChange(item){
-				item.checked=!item.checked;
+			checkChange(item) {
+				item.checked = !item.checked;
 			},
-			submit(type){
+			submit(type) {
 				uni.redirectTo({
-					url: '/pages_shop/refundOrder?orderId='+this.order.id+"&type="+type+"&orderCode="+this.order.orderCode
+					url: '/pages_shop/refundOrder?orderId=' + this.order.orderId + "&type=" + type + "&orderCode=" +
+						this.order.orderCode
 				})
 			},
-			getMyStoreOrderItemByOrderId(){
-				var data={orderId:this.orderId};
-				getMyStoreOrderItemByOrderId(data).then(res => {
-					if(res.code==200){
-						this.order=res.order;
-						this.items=res.items;
-						 
-					}else{
+			getStoreOrder() {
+				var data = {
+					orderId: this.orderId
+				};
+				getStoreOrderItems(data).then(res => {
+					if (res.code == 200) {
+						console.log("获取订单项列表>>>", res)
+						this.order = res.order;
+						this.items = res.items;
+
+					} else {
 						uni.showToast({
-							icon:'none',
+							icon: 'none',
 							title: "请求失败",
 						});
-						 
+
 					}
 				});
 			},
@@ -98,91 +99,104 @@
 </script>
 
 <style lang="scss">
-	.content{
-		margin-bottom: 170upx;
-		.inner{
-			padding: 20upx;
-			.goods-list{
-				.item{
+	.content {
+		margin-bottom: 170rpx;
+
+		.inner {
+			padding: 20rpx;
+
+			.goods-list {
+				.item {
 					box-sizing: border-box;
-					height: 221upx;
+					height: 221rpx;
 					background: #FFFFFF;
-					padding: 30upx;
+					padding: 30rpx;
 					display: flex;
 					align-items: center;
-					&:last-child{
+
+					&:last-child {
 						margin-bottom: 0;
 					}
-					.goods-img{
-						width: 160upx;
-						height: 160upx;
+
+					.goods-img {
+						width: 160rpx;
+						height: 160rpx;
 						background: #FFFFFF;
-						margin-right: 30upx;
+						margin-right: 30rpx;
 						flex-shrink: 0;
 					}
-					.info{
-						width: calc(100% - 160upx);
-						height: 160upx;
+
+					.info {
+						width: calc(100% - 160rpx);
+						height: 160rpx;
 						display: flex;
 						flex-direction: column;
 						justify-content: space-between;
-						.top{
-							.title{
-								font-size: 28upx;
+
+						.top {
+							.title {
+								font-size: 28rpx;
 								font-family: PingFang SC;
 								font-weight: 500;
 								color: #111111;
 								line-height: 1.4;
-								.tag{
+
+								.tag {
 									display: inline-block;
-									padding: 0 6upx;
-									height: 30upx;
+									padding: 0 6rpx;
+									height: 30rpx;
 									background: linear-gradient(90deg, #66b2ef 0%, #0bb3f2 100%);
-									border-radius: 4upx;
-									margin-right: 10upx;
-									font-size: 22upx;
+									border-radius: 4rpx;
+									margin-right: 10rpx;
+									font-size: 22rpx;
 									font-family: PingFang SC;
 									font-weight: bold;
 									color: #FFFFFF;
-									line-height: 30upx;
+									line-height: 30rpx;
 									float: left;
-									margin-top: 7upx;
+									margin-top: 7rpx;
 								}
 							}
-							.spec{
-								font-size: 24upx;
+
+							.spec {
+								font-size: 24rpx;
 								font-family: PingFang SC;
 								font-weight: 500;
 								color: #999999;
 								line-height: 1;
-								margin-top: 14upx;
+								margin-top: 14rpx;
 							}
 						}
-						.price-num{
+
+						.price-num {
 							display: flex;
 							align-items: center;
 							justify-content: space-between;
-							.price-box{
+
+							.price-box {
 								display: flex;
 								align-items: flex-end;
-								.unit{
-									font-size: 24upx;
+
+								.unit {
+									font-size: 24rpx;
 									font-family: PingFang SC;
 									font-weight: 500;
 									color: #111111;
 									line-height: 1.2;
-									margin-right: 5upx;
+									margin-right: 5rpx;
 								}
-								.price{
-									font-size: 32upx;
+
+								.price {
+									font-size: 32rpx;
 									font-family: PingFang SC;
 									font-weight: 500;
 									color: #111111;
 									line-height: 1;
 								}
 							}
-							.num{
-								font-size: 24upx;
+
+							.num {
+								font-size: 24rpx;
 								font-family: PingFang SC;
 								font-weight: bold;
 								color: #666666;
@@ -191,59 +205,66 @@
 					}
 				}
 			}
-			 
+
 		}
-		.btn-box{
+
+		.btn-box {
 			width: 100%;
-			height: 160upx;
+			height: 160rpx;
 			position: fixed;
 			bottom: 0;
 			background: #FFFFFF;
-			.text{
-				font-size: 24upx;
+
+			.text {
+				font-size: 24rpx;
 				font-family: PingFang SC;
 				font-weight: 500;
 				color: #999999;
 				line-height: 1;
-				padding: 28upx 0;
+				padding: 28rpx 0;
 				text-align: center;
 			}
-			.btns{
-				padding: 0upx 30upx;
+
+			.btns {
+				padding: 0rpx 30rpx;
 				display: flex;
 				flex-direction: row;
 				justify-content: space-between;
 				align-items: center;
-				.left{
-					font-size: 24upx;
+
+				.left {
+					font-size: 24rpx;
 					font-family: PingFang SC;
 					font-weight: 500;
 					color: #999999;
 				}
-				.right{
+
+				.right {
 					display: flex;
 					flex-direction: row;
 					justify-content: flex-end;
 					align-items: center;
-					.btn{
-						width: 155upx;
-						height: 64upx;
-						line-height: 64upx;
-						font-size: 26upx;
+
+					.btn {
+						width: 155rpx;
+						height: 64rpx;
+						line-height: 64rpx;
+						font-size: 26rpx;
 						font-family: PingFang SC;
 						font-weight: 500;
 						text-align: center;
-						border-radius: 32upx;
-						margin-left: 15upx;
-						&.cancel{
+						border-radius: 32rpx;
+						margin-left: 15rpx;
+
+						&.cancel {
 							border: 1px solid #DDDDDD;
 							color: #666666;
 						}
 					}
 				}
-				
+
 			}
-			
+
 		}
 	}
-</style>
+</style>

+ 306 - 0
pages_shop/storeOrderDelivery.vue

@@ -0,0 +1,306 @@
+<template>
+	<view>
+		<view class="top-cont">
+			<!-- 背景图片 -->
+			<image class="bg" src="/static/images/order_top_bg.png" mode=""></image>
+			<view class="top-inner">			
+				<!-- 这里是状态栏 -->
+				<view class="status_bar" :style="{height: statusBarHeight}"></view>
+				<view class="back-box" @click="back">
+					<image src="/static/images/back_white.png" mode=""></image>
+					<text class="title">物流信息</text>
+					<text></text>
+				</view>
+				<!-- 运单号 -->
+				<view class="waybill-number">
+					<view class="inner">
+						<view class="num-box">
+							<text class="text">运单号</text>
+							<text class="text">{{deliveryId}}</text>
+							<view class="copy" @click="copyOrderSn(deliveryId)">复制</view>
+						</view>
+						<view class="kf-box">
+							<text class="text">{{express.name}}</text>
+							<!-- <text class="text">客服电话:95311</text> -->
+						</view>
+					</view>
+				</view>
+				<view class="content"  v-if="expressList!=null">
+					<!-- 物流信息 -->
+					<view class="refund-steps" v-if="expressList.Traces!=null">
+						<view v-for="(item,index) in expressList.Traces" :key="index" class="steps">
+							<view class="title">
+								<!-- <text v-if="index == 0" class="text black-text">已签收</text> -->
+								<!-- <text  class="text gray-bold">运输中</text> -->
+								<!-- 左侧灰色圆点 -->
+								<view class="dot"></view>
+								<!-- 对号 -->
+								<image  class="img" src="/static/images/complete.png" mode=""></image>
+								<!-- 运输中图标 -->
+								<image  class="img" src="/static/images/car40.png" mode=""></image>
+							</view>
+							<view  class="desc-text">
+								{{item.AcceptStation}}
+							</view>
+							 
+							<view class="time">{{item.AcceptTime}}</view>
+						</view>
+					</view>
+				</view>
+				
+			</view>
+			
+		</view>
+		
+	</view>
+</template>
+
+<script>
+	// import {getMyStoreOrderById,cancelOrder,getExpress} from '@/api/storeOrder'
+	export default {
+		data() {
+			return {
+				statusBarHeight:uni.getStorageSync("menuInfo").statusBarHeight,
+				orderId:null,
+				deliveryId:null,
+				express:{},
+				expressList:[],
+			};
+		},
+		onLoad(option) {
+			this.orderId=option.orderId;
+			this.getExpress();
+		},
+		methods: {
+			getExpress(){
+				var data={orderId:this.orderId};
+				
+				getExpress(data).then(res => {
+					if(res.code==200){
+						this.express=res.express;
+						this.expressList=res.data;
+						this.deliveryId=res.deliveryId
+				 
+					}else{
+						uni.showToast({
+							icon:'none',
+							title: "请求失败",
+						});
+						 
+					}
+				});
+			},
+			// 返回上一页
+			back() {
+				uni.navigateBack()
+			},
+			// 复制运单号
+			copyOrderSn(text) {
+				// 复制方法
+				uni.setClipboardData({
+					data:text,
+					success:()=>{
+						uni.showToast({
+							title:'内容已成功复制到剪切板',
+							icon:'none'
+						})
+					}
+				});
+			},
+			// 拨打电话
+			callPhone(phone) {
+				uni.makePhoneCall({
+					phoneNumber: phone
+				})
+			}
+		}
+	}
+</script>
+
+<style lang="scss">
+	.top-cont{
+		width: 100%;
+		height: 336upx;
+		position: relative;
+		.bg{
+			width: 100%;
+			height: 100%;
+			position: absolute;
+			top: 0;
+			left: 0;
+			z-index: 1;
+		}
+		.top-inner{
+			width: 100%;
+			height: 100%;
+			position: absolute;
+			top: 0;
+			left: 0;
+			z-index: 2;
+			.back-box{
+				height: 88upx;
+				padding-left: 22upx;
+				display: flex;
+				align-items: center;
+				justify-content: space-between;
+				padding: 0 20upx;
+				image{
+					width: 40upx;
+					height: 40upx;
+				}
+				.title{
+					font-size: 36upx;
+					font-family: PingFang SC;
+					font-weight: 500;
+					color: #FFFFFF;
+				}
+			}
+			.waybill-number{
+				padding: 0 20upx;
+				margin-top: 66upx;
+				.inner{
+					box-sizing: border-box;
+					height: 150upx;
+					background: #FFFFFF;
+					border-radius: 16upx;
+					padding: 40upx 30upx;
+					display: flex;
+					flex-direction: column;
+					justify-content: space-between;
+					.num-box{
+						display: flex;
+						align-items: center;
+						.text{
+							font-size: 28upx;
+							font-family: PingFang SC;
+							font-weight: 500;
+							color: #111111;
+							line-height: 1;
+							margin-right: 30upx;
+							&:last-child{
+								margin-right: 20upx;
+							}
+						}
+						.copy{
+							width: 58upx;
+							height: 32upx;
+							line-height: 32upx;
+							text-align: center;
+							font-size: 22upx;
+							font-family: PingFang SC;
+							font-weight: 500;
+							color: #222222;
+							background: #F5F5F5;
+							border-radius: 4upx;
+						}
+					}
+					.kf-box{
+						display: flex;
+						align-items: center;
+						.text{
+							font-size: 26upx;
+							font-family: PingFang SC;
+							font-weight: 500;
+							color: #999999;
+							line-height: 1;
+							margin-right: 20upx;
+						}
+					}
+				}
+			}
+			
+		}
+	}
+	.content{
+		margin: 20rpx 0rpx;
+		padding: 0 20upx;
+		.refund-steps{
+			background: #FFFFFF;
+			border-radius: 16upx;
+			padding: 40upx 44upx;
+			.steps{
+				padding-left: 40upx;
+				padding-bottom: 56upx;
+				position: relative;
+				&::after{
+					content: "";
+					width: 4upx;
+					height: 100%;
+					background: #F1F1F1;
+					position: absolute;
+					left: 0;
+					top: 20upx;
+				}
+				&:last-child{
+					padding-bottom: 0;
+					&::after{
+						display: none;
+					}
+				}
+				.title{
+					position: relative;
+					.text{
+						font-size: 30upx;
+						font-family: PingFang SC;
+						font-weight: 500;
+						color: #666666;
+						line-height: 38upx;
+						&.black-text{
+							color: #111111;
+							font-weight: bold;
+						}
+						&.gray-bold{
+							font-weight: bold;
+							color: #666666;
+						}
+					}
+					.dot{
+						width: 16upx;
+						height: 16upx;
+						background: #EBEBEB;
+						border-radius: 50%;
+						position: absolute;
+						left: -46upx;
+						top: 11upx;
+						z-index: 10;
+						&.active{
+							background-color: #0bb3f2;
+						}
+					}
+					.img{
+						width: 40upx;
+						height: 40upx;
+						position: absolute;
+						left: -57upx;
+						top: 2upx;
+						z-index: 10;
+					}
+				}
+				.desc-text{
+					font-size: 28upx;
+					font-family: PingFang SC;
+					font-weight: 500;
+					color: #666666;
+					line-height: 1.6;
+					margin-top: 10upx;
+					.phone{
+						font-size: 28upx;
+						font-family: PingFang SC;
+						font-weight: 500;
+						color: #0bb3f2;
+						line-height: 1.6;
+					}
+				}
+				.time{
+					font-size: 24upx;
+					font-family: Gilroy;
+					font-weight: 500;
+					color: #999999;
+					margin-top: 10upx;
+				}
+			}
+		}
+		
+	}
+	
+</style>

+ 16 - 4
unpackage/dist/dev/mp-weixin/api/live.js

@@ -4,8 +4,12 @@ let request = new common_request.Request().http;
 const api = {
   liveDataLike: (liveId) => `/app/live/liveData/like/${liveId}`,
   // 点赞
-  collectStore: "/app/live/liveData/collectStore",
-  // 收藏/取消收藏
+  collectStore: (sotreId) => `/app/live/liveData/collectStore?storeId=${sotreId}`,
+  // 店铺收藏/取消收藏
+  collectGoods: (goodId) => `/app/live/liveData/collectGoods?goodId=${goodId}`,
+  // 商品收藏/取消收藏
+  store: (storeld) => `/app/live/store/${storeld}`,
+  // 查询店铺
   follow: (liveId) => `/app/live/liveData/follow/${liveId}`,
   // 关注/取消关注
   getRecentLiveViewers: (liveId) => `/app/live/liveData/getRecentLiveViewers/${liveId}`,
@@ -28,8 +32,14 @@ const api = {
 function liveDataLike(liveId, data = {}) {
   return request(api.liveDataLike(liveId), data, "GET", "application/json;charset=UTF-8");
 }
-function collectStore(data) {
-  return request(api.collectStore, data, "GET", "application/json;charset=UTF-8");
+function collectStore(sotreId, data = {}) {
+  return request(api.collectStore(sotreId), data, "POST", "application/json;charset=UTF-8");
+}
+function collectGoods(goodId, data = {}) {
+  return request(api.collectGoods(goodId), data, "POST", "application/json;charset=UTF-8");
+}
+function store(storeld, data = {}) {
+  return request(api.store(storeld), data, "GET", "application/json;charset=UTF-8");
 }
 function follow(liveId, data = {}) {
   return request(api.follow(liveId), data, "GET", "application/json;charset=UTF-8");
@@ -55,6 +65,7 @@ function getLiveInfo(liveId, data = {}) {
 function getLiveViewData(liveId, data = {}) {
   return request(api.getLiveViewData(liveId), data, "GET", "application/json;charset=UTF-8");
 }
+exports.collectGoods = collectGoods;
 exports.collectStore = collectStore;
 exports.follow = follow;
 exports.getLiveInfo = getLiveInfo;
@@ -65,3 +76,4 @@ exports.liveGoodsDetail = liveGoodsDetail;
 exports.liveOrderUser = liveOrderUser;
 exports.liveStore = liveStore;
 exports.searchStore = searchStore;
+exports.store = store;

+ 12 - 0
unpackage/dist/dev/mp-weixin/api/order.js

@@ -112,8 +112,19 @@ function cancelOrder(data) {
 function finishOrder(data) {
   return request(api.finishOrder, data, "POST", "application/json;charset=UTF-8");
 }
+function getStoreOrderItems(data) {
+  return request(api.getStoreOrderItems, data, "GET", "application/json;charset=UTF-8");
+}
+function applyAfterSales(data) {
+  return request(api.applyAfterSales, data, "POST", "application/json;charset=UTF-8");
+}
+function Dicts(data) {
+  return request("/app/common/getDictByKey", data, "GET");
+}
+exports.Dicts = Dicts;
 exports.addAddress = addAddress;
 exports.addLiveCart = addLiveCart;
+exports.applyAfterSales = applyAfterSales;
 exports.cancelOrder = cancelOrder;
 exports.cartOrder = cartOrder;
 exports.checked = checked;
@@ -124,6 +135,7 @@ exports.editAddress = editAddress;
 exports.finishOrder = finishOrder;
 exports.getAddressById = getAddressById;
 exports.getCitys = getCitys;
+exports.getStoreOrderItems = getStoreOrderItems;
 exports.liveOrderKey = liveOrderKey;
 exports.liveOrderList = liveOrderList;
 exports.modifyLiveCart = modifyLiveCart;

+ 1 - 0
unpackage/dist/dev/mp-weixin/app.js

@@ -31,6 +31,7 @@ if (!Math) {
   "./pages_shop/refundOrder.js";
   "./pages_shop/refundOrderProduct.js";
   "./pages_shop/success.js";
+  "./pages_shop/storeOrderDelivery.js";
   "./pages_user/address.js";
   "./pages_user/addAddress.js";
 }

+ 2 - 1
unpackage/dist/dev/mp-weixin/app.json

@@ -26,7 +26,8 @@
         "storeOrder",
         "refundOrder",
         "refundOrderProduct",
-        "success"
+        "success",
+        "storeOrderDelivery"
       ]
     },
     {

+ 74 - 66
unpackage/dist/dev/mp-weixin/common/assets.js

@@ -1,81 +1,89 @@
 "use strict";
-const _imports_0$e = "/static/images/shipin.png";
-const _imports_0$d = "/static/images/live/return.png";
-const _imports_1$9 = "/static/images/live/like.png";
-const _imports_2$5 = "/static/images/live/shop.png";
-const _imports_3$2 = "/static/images/live/share.png";
+const _imports_0$f = "/static/images/shipin.png";
+const _imports_0$e = "/static/images/live/return.png";
+const _imports_1$a = "/static/images/live/like.png";
+const _imports_2$6 = "/static/images/live/shop.png";
+const _imports_3$3 = "/static/images/live/share.png";
 const _imports_4 = "/static/images/live/shopping.png";
 const _imports_5 = "/static/images/shopping.png";
 const _imports_6 = "/static/images/more-icon.png";
-const _imports_1$8 = "/static/images/search.png";
+const _imports_1$9 = "/static/images/search.png";
 const _imports_11 = "/static/images/collect_select.png";
 const _imports_12 = "/static/images/collect.png";
 const _imports_10 = "/static/images/order.png";
-const _imports_0$c = "/static/images/top.png";
-const _imports_1$7 = "/static/images/up-down.png";
-const _imports_2$4 = "/static/images/wechat.png";
-const _imports_0$b = "/static/image/login/weixin.png";
-const _imports_1$6 = "/static/image/login/apple.png";
-const _imports_0$a = "/static/images/radio_default.png";
-const _imports_1$5 = "/static/images/radio_choose.png";
-const _imports_0$9 = "/static/logo.png";
-const _imports_0$8 = "/static/imagesradio_default.png";
-const _imports_1$4 = "/static/image/radio_choose.png";
-const _imports_0$7 = "/static/images/jian.png";
-const _imports_1$3 = "/static/images/jian2.png";
-const _imports_2$3 = "/static/images/add.png";
-const _imports_2$2 = "/static/images/no_data.png";
-const _imports_0$6 = "/static/images/googs_service.png";
-const _imports_1$2 = "/static/images/right_arrow.png";
-const _imports_2$1 = "/static/images/googs1.png";
-const _imports_3$1 = "/static/images/googs3.png";
-const _imports_0$5 = "/static/images/search_white.png";
-const _imports_0$4 = "/static/images/arrow_gray.png";
-const _imports_2 = "/static/images/coupon1.png";
-const _imports_3 = "/static/images/coupon2.png";
-const _imports_0$3 = "/static/images/wecha_pay.png";
-const _imports_1$1 = "/static/images/arrow4.png";
-const _imports_0$2 = "/static/images/tab_bg.png";
-const _imports_0$1 = "/static/images/success.png";
+const _imports_0$d = "/static/images/top.png";
+const _imports_1$8 = "/static/images/up-down.png";
+const _imports_2$5 = "/static/images/wechat.png";
+const _imports_0$c = "/static/image/login/weixin.png";
+const _imports_1$7 = "/static/image/login/apple.png";
+const _imports_0$b = "/static/images/radio_default.png";
+const _imports_1$6 = "/static/images/radio_choose.png";
+const _imports_0$a = "/static/logo.png";
+const _imports_0$9 = "/static/imagesradio_default.png";
+const _imports_1$5 = "/static/image/radio_choose.png";
+const _imports_0$8 = "/static/images/jian.png";
+const _imports_1$4 = "/static/images/jian2.png";
+const _imports_2$4 = "/static/images/add.png";
+const _imports_2$3 = "/static/images/no_data.png";
+const _imports_0$7 = "/static/images/googs_service.png";
+const _imports_1$3 = "/static/images/right_arrow.png";
+const _imports_2$2 = "/static/images/googs1.png";
+const _imports_3$2 = "/static/images/googs3.png";
+const _imports_0$6 = "/static/images/search_white.png";
+const _imports_0$5 = "/static/images/arrow_gray.png";
+const _imports_2$1 = "/static/images/coupon1.png";
+const _imports_3$1 = "/static/images/coupon2.png";
+const _imports_0$4 = "/static/images/wecha_pay.png";
+const _imports_1$2 = "/static/images/arrow4.png";
+const _imports_0$3 = "/static/images/tab_bg.png";
+const _imports_0$2 = "/static/images/success.png";
+const _imports_0$1 = "/static/images/order_top_bg.png";
+const _imports_1$1 = "/static/images/back_white.png";
+const _imports_2 = "/static/images/complete.png";
+const _imports_3 = "/static/images/car40.png";
 const _imports_0 = "/static/images/del1.png";
 const _imports_1 = "/static/images/edit.png";
-exports._imports_0 = _imports_0$e;
-exports._imports_0$1 = _imports_0$d;
-exports._imports_0$10 = _imports_0$4;
-exports._imports_0$11 = _imports_0$3;
-exports._imports_0$12 = _imports_0$2;
-exports._imports_0$13 = _imports_0$1;
-exports._imports_0$14 = _imports_0;
-exports._imports_0$2 = _imports_0$c;
-exports._imports_0$3 = _imports_0$a;
-exports._imports_0$4 = _imports_0$b;
-exports._imports_0$5 = _imports_0$9;
-exports._imports_0$6 = _imports_0$8;
-exports._imports_0$7 = _imports_0$7;
-exports._imports_0$8 = _imports_0$6;
-exports._imports_0$9 = _imports_0$5;
-exports._imports_1 = _imports_1$8;
-exports._imports_1$1 = _imports_1$9;
-exports._imports_1$2 = _imports_1$7;
-exports._imports_1$3 = _imports_1$5;
-exports._imports_1$4 = _imports_1$6;
-exports._imports_1$5 = _imports_1$4;
-exports._imports_1$6 = _imports_1$3;
-exports._imports_1$7 = _imports_1$2;
-exports._imports_1$8 = _imports_1$1;
-exports._imports_1$9 = _imports_1;
+exports._imports_0 = _imports_0$f;
+exports._imports_0$1 = _imports_0$e;
+exports._imports_0$10 = _imports_0$5;
+exports._imports_0$11 = _imports_0$4;
+exports._imports_0$12 = _imports_0$3;
+exports._imports_0$13 = _imports_0$2;
+exports._imports_0$14 = _imports_0$1;
+exports._imports_0$15 = _imports_0;
+exports._imports_0$2 = _imports_0$d;
+exports._imports_0$3 = _imports_0$b;
+exports._imports_0$4 = _imports_0$c;
+exports._imports_0$5 = _imports_0$a;
+exports._imports_0$6 = _imports_0$9;
+exports._imports_0$7 = _imports_0$8;
+exports._imports_0$8 = _imports_0$7;
+exports._imports_0$9 = _imports_0$6;
+exports._imports_1 = _imports_1$9;
+exports._imports_1$1 = _imports_1$a;
+exports._imports_1$10 = _imports_1;
+exports._imports_1$2 = _imports_1$8;
+exports._imports_1$3 = _imports_1$6;
+exports._imports_1$4 = _imports_1$7;
+exports._imports_1$5 = _imports_1$5;
+exports._imports_1$6 = _imports_1$4;
+exports._imports_1$7 = _imports_1$3;
+exports._imports_1$8 = _imports_1$2;
+exports._imports_1$9 = _imports_1$1;
 exports._imports_10 = _imports_10;
 exports._imports_11 = _imports_11;
 exports._imports_12 = _imports_12;
-exports._imports_2 = _imports_2$5;
-exports._imports_2$1 = _imports_2$4;
-exports._imports_2$2 = _imports_2$2;
-exports._imports_2$3 = _imports_2$3;
-exports._imports_2$4 = _imports_2$1;
-exports._imports_2$5 = _imports_2;
-exports._imports_3 = _imports_3$2;
-exports._imports_3$1 = _imports_3$1;
-exports._imports_3$2 = _imports_3;
+exports._imports_2 = _imports_2$6;
+exports._imports_2$1 = _imports_2$5;
+exports._imports_2$2 = _imports_2$3;
+exports._imports_2$3 = _imports_2$4;
+exports._imports_2$4 = _imports_2$2;
+exports._imports_2$5 = _imports_2$1;
+exports._imports_2$6 = _imports_2;
+exports._imports_3 = _imports_3$3;
+exports._imports_3$1 = _imports_3$2;
+exports._imports_3$2 = _imports_3$1;
+exports._imports_3$3 = _imports_3;
 exports._imports_4 = _imports_4;
 exports._imports_5 = _imports_5;
 exports._imports_6 = _imports_6;

+ 23 - 16
unpackage/dist/dev/mp-weixin/common/request.js

@@ -1,12 +1,22 @@
 "use strict";
+var __defProp = Object.defineProperty;
+var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
+var __publicField = (obj, key, value) => {
+  __defNormalProp(obj, typeof key !== "symbol" ? key + "" : key, value);
+  return value;
+};
 const common_vendor = require("./vendor.js");
-class Request {
+const _Request = class _Request {
   http(router, data = {}, method, contentType) {
     let path = "http://192.168.10.166:7114";
     common_vendor.index.setStorageSync("requestPath", path);
-    common_vendor.index.showLoading({
-      title: "加载中"
-    });
+    if (_Request.loadingCount === 0) {
+      common_vendor.index.showLoading({
+        title: "加载中",
+        mask: true
+      });
+    }
+    _Request.loadingCount++;
     return new Promise((resolve, reject) => {
       let token = common_vendor.index.getStorageSync("AppToken");
       var httpContentType = "application/x-www-form-urlencoded";
@@ -26,19 +36,12 @@ class Request {
           if (res.code == 401) {
             let pages = getCurrentPages();
             let url = pages[pages.length - 1];
-            如果登录界面已打开, 自动关闭;
             if (url != void 0 && url.route == "/pages/home/index") {
               resolve(res.data);
               return;
             }
             common_vendor.index.reLaunch({
-              url: "/pages/home/index",
-              success: () => {
-                common_vendor.index.hideLoading();
-              },
-              fail: () => {
-                common_vendor.index.hideLoading();
-              }
+              url: "/pages/home/index"
             });
             return;
           }
@@ -50,13 +53,17 @@ class Request {
         fail: (res) => {
         },
         complete: (res) => {
-          if (res.code && res.data.code == 401) {
-            return false;
+          _Request.loadingCount--;
+          if (_Request.loadingCount <= 0) {
+            common_vendor.index.hideLoading();
+            _Request.loadingCount = 0;
           }
-          common_vendor.index.hideLoading();
         }
       });
     });
   }
-}
+};
+// 添加一个计数器,确保多个请求不会互相干扰
+__publicField(_Request, "loadingCount", 0);
+let Request = _Request;
 exports.Request = Request;

+ 7 - 0
unpackage/dist/dev/mp-weixin/common/vendor.js

@@ -46874,6 +46874,13 @@ const subPackages = [
             bounce: "none"
           }
         }
+      },
+      {
+        path: "storeOrderDelivery",
+        style: {
+          navigationBarTitleText: "物流信息",
+          enablePullDownRefresh: false
+        }
       }
     ]
   },

+ 115 - 56
unpackage/dist/dev/mp-weixin/pages/home/living.js

@@ -10,6 +10,7 @@ var socket = null;
 const _sfc_main = {
   data() {
     return {
+      storeId: null,
       reconnectCount: 0,
       maxReconnectAttempts: 3,
       reconnectTimer: null,
@@ -146,7 +147,6 @@ const _sfc_main = {
       this.getliveViewData();
     }, 60 * 1e3);
     this.getliveOrder();
-    this.getliveStore();
     this.getliveUser();
     this.initTime();
     this.initSocket();
@@ -176,6 +176,7 @@ const _sfc_main = {
     if (this.pingpangTimes) {
       clearInterval(this.pingpangTimes);
     }
+    common_vendor.index.$off("refreshOrder");
   },
   watch: {
     // 监听orderUser.count的变化
@@ -204,9 +205,9 @@ const _sfc_main = {
       return str.length > maxLength ? str.slice(0, maxLength) + "..." : str;
     },
     goStore() {
-      console.log("带过去storeId", this.products[0].storeId);
+      console.log("带过去storeId", this.storeId);
       common_vendor.index.navigateTo({
-        url: "/pages_shop/store?liveId=" + this.liveId + "&storeId=" + this.products[0].storeId
+        url: "/pages_shop/store?liveId=" + this.liveId + "&storeId=" + this.storeId
       });
     },
     // 去订单列表
@@ -239,6 +240,8 @@ const _sfc_main = {
       }
     },
     getliving() {
+      if (!this.liveId)
+        return;
       console.log("获取直播信息");
       const param = {
         id: this.liveId
@@ -254,6 +257,8 @@ const _sfc_main = {
         }
         this.livedata = res.data;
         this.showType = res.data.showType;
+        this.storeId = res.storeId;
+        this.queryCollect();
         console.log("横屏1或竖屏2", this.showType);
         if (res.data.liveType === 2) {
           this.videoUrl = res.data.videoUrl;
@@ -355,29 +360,31 @@ const _sfc_main = {
       );
     },
     //小黄车 店铺展示
-    getliveStore() {
-      let data = {
-        pageSize: 10,
-        page: 1
-      };
-      api_live.liveStore(this.liveId, data).then(
-        (res) => {
-          if (res.code == 200) {
-            console.log("小黄车 店铺展示>>>>", res);
-            this.products = res.data;
-          } else {
-            common_vendor.index.showToast({
-              title: res.msg,
-              icon: "none"
-            });
-          }
-        },
-        (rej) => {
-        }
-      );
-    },
+    // getliveStore() {
+    // 	if (!this.liveId) return;
+    // 	let data = {
+    // 		pageSize: 10,
+    // 		page: 1
+    // 	}
+    // 	liveStore(this.liveId, data).then(res => {
+    // 			if (res.code == 200) {
+    // 				console.log("小黄车 店铺展示>>>>", res)
+    // 				this.products = res.data
+    // 				this.queryCollect()
+    // 			} else {
+    // 				uni.showToast({
+    // 					title: res.msg,
+    // 					icon: 'none'
+    // 				});
+    // 			}
+    // 		},
+    // 		rej => {}
+    // 	);
+    // },
     // 获取直播间信息接口
     getLiveinformation() {
+      if (!this.liveId)
+        return;
       api_live.getLiveInfo(this.liveId).then(
         (res) => {
           if (res.code == 200) {
@@ -396,6 +403,8 @@ const _sfc_main = {
     },
     // 获取直播间用户
     getliveUser() {
+      if (!this.liveId)
+        return;
       api_live.getRecentLiveViewers(this.liveId).then(
         (res) => {
           if (res.code == 200) {
@@ -414,6 +423,8 @@ const _sfc_main = {
     },
     // 点赞
     onLike() {
+      if (!this.liveId)
+        return;
       api_live.liveDataLike(this.liveId).then(
         (res) => {
           if (res.code == 200) {
@@ -437,31 +448,68 @@ const _sfc_main = {
       );
     },
     // 去购买,跳商品详情
-    goShop(productId, goodsId, storeId) {
+    goShop(productId, goodsId) {
       common_vendor.index.navigateTo({
-        url: "/pages_shop/goods?productId=" + productId + "&liveId=" + this.liveId + "&goodsId=" + goodsId + "&storeId=" + storeId
+        url: "/pages_shop/goods?productId=" + productId + "&liveId=" + this.liveId + "&goodsId=" + goodsId + "&storeId=" + this.storeId
       });
     },
-    // 收藏
-    onCollect(item) {
-      let storeId;
-      if (item) {
-        storeId = this.products[0].storeId;
-      } else {
-        storeId = item.storeId;
+    // 查询店铺
+    queryCollect() {
+      if (!this.storeId)
+        return;
+      api_live.store(this.storeId).then(
+        (res) => {
+          if (res.code == 200) {
+            console.log("查询店铺>>", res);
+            this.products = res.data.goodsList;
+            this.store = res.data;
+          } else {
+            common_vendor.index.showToast({
+              title: res.msg,
+              icon: "none"
+            });
+          }
+        },
+        (rej) => {
+        }
+      );
+    },
+    // 店铺收藏
+    onStoreCollect() {
+      if (!this.storeId)
+        return;
+      api_live.collectStore(this.products[0].storeId).then(
+        (res) => {
+          if (res.code == 200) {
+            common_vendor.index.showToast({
+              title: res.msg,
+              icon: "none"
+            });
+            this.store.isFavorite = !this.store.isFavorite;
+          } else {
+            common_vendor.index.showToast({
+              title: res.msg,
+              icon: "none"
+            });
+          }
+        },
+        (rej) => {
+        }
+      );
+    },
+    // 商品收藏
+    onGoodsCollect(item) {
+      if (!item || item.length === 0 || !item.goodsId) {
+        return;
       }
-      let data = {
-        liveId: this.liveId,
-        productId: item.productId || "",
-        storeId
-      };
-      api_live.collectStore(data).then(
+      api_live.collectGoods(item.goodsId).then(
         (res) => {
           if (res.code == 200) {
             common_vendor.index.showToast({
               title: res.msg,
               icon: "none"
             });
+            item.isFavorite = !item.isFavorite;
           } else {
             common_vendor.index.showToast({
               title: res.msg,
@@ -475,6 +523,8 @@ const _sfc_main = {
     },
     // 关注
     onFollow() {
+      if (!this.liveId)
+        return;
       api_live.follow(this.liveId).then(
         (res) => {
           this.isFollow = !this.isFollow;
@@ -487,6 +537,7 @@ const _sfc_main = {
         }
       );
     },
+    // 时间戳
     initTime() {
       const now = /* @__PURE__ */ new Date();
       this.timestamp = now.getTime();
@@ -589,6 +640,8 @@ const _sfc_main = {
     // },
     getAnswerlists() {
       console.log(123);
+      if (!this.liveId)
+        return;
       const data = {
         liveId: this.liveId
       };
@@ -609,6 +662,8 @@ const _sfc_main = {
       });
     },
     gettalklist() {
+      if (!this.liveId)
+        return;
       const param = {
         id: this.liveId
       };
@@ -723,6 +778,10 @@ const _sfc_main = {
     },
     initSocket() {
       var _a;
+      if (isSocketOpen) {
+        console.log("WebSocket 已连接,无需重复初始化");
+        return;
+      }
       if (!this.liveId) {
         console.warn("liveId为空,不尝试WebSocket连接");
         return;
@@ -982,38 +1041,39 @@ function _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {
       bgColor: "#fffee1"
     }),
     aa: common_vendor.p({
-      src: $data.livedata.liveImgUrl,
+      src: $data.store.logoUrl,
       size: "36"
     }),
     ab: common_assets._imports_1,
-    ac: $data.isCollect
-  }, $data.isCollect ? {
+    ac: $data.store.isFavorite
+  }, $data.store.isFavorite ? {
     ad: common_assets._imports_11
   } : {
-    ae: common_assets._imports_12
+    ae: common_vendor.o((...args) => $options.onStoreCollect && $options.onStoreCollect(...args)),
+    af: common_assets._imports_12
   }, {
-    af: common_vendor.o((...args) => $options.onCollect && $options.onCollect(...args)),
-    ag: common_assets._imports_10,
-    ah: common_vendor.o((...args) => $options.goOrderList && $options.goOrderList(...args)),
-    ai: common_vendor.f($data.products, (item, index, i0) => {
+    ag: common_vendor.o((...args) => $options.onStoreCollect && $options.onStoreCollect(...args)),
+    ah: common_assets._imports_10,
+    ai: common_vendor.o((...args) => $options.goOrderList && $options.goOrderList(...args)),
+    aj: common_vendor.f($data.products, (item, index, i0) => {
       return common_vendor.e({
         a: item.imgUrl,
         b: common_vendor.t(index + 1),
         c: common_vendor.t(item.productName),
-        d: common_vendor.t(item.productIntroduce),
-        e: common_vendor.t(item.sales),
-        f: common_vendor.t(Math.trunc(item.price)),
-        g: common_vendor.t($options.getPureDecimal(item.price) ? $options.getPureDecimal(item.price) : "00")
-      }, $data.isCollect ? {
-        h: common_vendor.o(($event) => $options.onCollect(item), index),
+        d: common_vendor.t(item.sales),
+        e: common_vendor.t(Math.trunc(item.price)),
+        f: common_vendor.t($options.getPureDecimal(item.price) ? $options.getPureDecimal(item.price) : "00"),
+        g: item.isFavorite
+      }, item.isFavorite ? {
+        h: common_vendor.o(($event) => $options.onGoodsCollect(item), index),
         i: common_assets._imports_11
       } : {
-        j: common_vendor.o(($event) => $options.onCollect(item), index),
+        j: common_vendor.o(($event) => $options.onGoodsCollect(item), index),
         k: common_assets._imports_12
       }, {
         l: item.status == 1
       }, item.status == 1 ? {
-        m: common_vendor.o(($event) => $options.goShop(item.productId, item.goodsId, item.storeId), index)
+        m: common_vendor.o(($event) => $options.goShop(item.productId, item.goodsId), index)
       } : item.status == 0 ? {
         o: common_vendor.o(($event) => $options.goShop(item.productId), index)
       } : {}, {
@@ -1021,7 +1081,6 @@ function _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {
         p: index
       });
     }),
-    aj: $data.isCollect,
     ak: $data.boxHeight + "px",
     al: common_vendor.o($options.closeshop),
     am: common_vendor.o($options.open),

파일 크기가 너무 크기때문에 변경 상태를 표시하지 않습니다.
+ 0 - 0
unpackage/dist/dev/mp-weixin/pages/home/living.wxml


+ 31 - 26
unpackage/dist/dev/mp-weixin/pages_shop/order.js

@@ -23,10 +23,10 @@ const _sfc_main = {
           name: "待收货",
           status: "3"
         },
-        {
-          name: "待评价",
-          status: "4"
-        },
+        // {
+        // 	name: "待评价",
+        // 	status: "4"
+        // },
         {
           name: "已完成",
           status: "5"
@@ -133,6 +133,12 @@ const _sfc_main = {
           console.log("rej:" + JSON.stringify(rej));
         }
       );
+    },
+    // 查看物流
+    showDelivery(item) {
+      common_vendor.index.navigateTo({
+        url: "./storeOrderDelivery?orderId=" + item.orderId
+      });
     }
   }
 };
@@ -156,15 +162,14 @@ function _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {
       return common_vendor.e({
         a: common_vendor.t(item.orderCode),
         b: item.status == -1
-      }, item.status == -1 ? {} : item.status == -2 ? {} : item.status == 1 ? {} : item.status == 2 ? {} : item.status == 3 ? {} : item.status == 4 ? {} : item.status == 5 ? {} : item.status == -3 ? {} : {}, {
+      }, item.status == -1 ? {} : item.status == -2 ? {} : item.status == 1 ? {} : item.status == 2 ? {} : item.status == 3 ? {} : item.status == 5 ? {} : item.status == -3 ? {} : {}, {
         c: item.status == -2,
         d: item.status == 1,
         e: item.status == 2,
         f: item.status == 3,
-        g: item.status == 4,
-        h: item.status == 5,
-        i: item.status == -3,
-        j: common_vendor.f(item.orderItemList, (itm, idx, i1) => {
+        g: item.status == 5,
+        h: item.status == -3,
+        i: common_vendor.f(item.orderItemList, (itm, idx, i1) => {
           return {
             a: itm.imgUrl,
             b: common_vendor.t(itm.productName),
@@ -173,32 +178,32 @@ function _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {
             e: idx
           };
         }),
-        k: common_vendor.t(item.totalPrice),
-        l: item.status == 1
+        j: common_vendor.t(item.totalPrice),
+        k: item.status == 1
       }, item.status == 1 ? {
-        m: common_vendor.o(($event) => $options.cancel(item), index)
+        l: common_vendor.o(($event) => $options.cancel(item), index)
       } : {}, {
-        n: item.status !== 1
-      }, item.status !== 1 ? {
-        o: common_vendor.o(($event) => $options.refund(item), index)
+        m: item.status !== -1 && item.status !== -3
+      }, item.status !== -1 && item.status !== -3 ? {
+        n: common_vendor.o(($event) => $options.refund(item), index)
       } : {}, {
-        p: item.status == 1
-      }, item.status == 1 ? {
-        q: common_vendor.o(($event) => _ctx.pay(item), index)
+        o: item.status == 3 || item.status == 5
+      }, item.status == 3 || item.status == 5 ? {
+        p: common_vendor.o(($event) => $options.showDelivery(item), index)
       } : {}, {
-        r: item.status == 2
-      }, item.status == 2 ? {
-        s: common_vendor.o(($event) => _ctx.urgeShipment(item), index)
+        q: item.status == 1
+      }, item.status == 1 ? {
+        r: common_vendor.o(($event) => _ctx.pay(item), index)
       } : {}, {
-        t: item.status == 3
+        s: item.status == 3
       }, item.status == 3 ? {
-        v: common_vendor.o(($event) => $options.confirmReceipt(item), index)
+        t: common_vendor.o(($event) => $options.confirmReceipt(item), index)
       } : {}, {
-        w: item.status == 4
+        v: item.status == 4
       }, item.status == 4 ? {
-        x: common_vendor.o(($event) => _ctx.evaluate(item), index)
+        w: common_vendor.o(($event) => _ctx.evaluate(item), index)
       } : {}, {
-        y: index
+        x: index
       });
     })
   };

파일 크기가 너무 크기때문에 변경 상태를 표시하지 않습니다.
+ 0 - 0
unpackage/dist/dev/mp-weixin/pages_shop/order.wxml


+ 3 - 3
unpackage/dist/dev/mp-weixin/pages_shop/order.wxss

@@ -106,11 +106,11 @@
   align-items: center;
 }
 .content .order-list .order-item .order-bottom .button-group .button.data-v-11bfd2e6 {
-  margin-left: 20rpx;
-  padding: 10rpx 24rpx;
+  margin-left: 10rpx;
+  padding: 10rpx 14rpx;
   border-radius: 8rpx;
   font-weight: 500;
-  font-size: 26rpx;
+  font-size: 24rpx;
 }
 .content .order-list .order-item .order-bottom .button-group .cancel.data-v-11bfd2e6 {
   background-color: #ececec;

+ 41 - 13
unpackage/dist/dev/mp-weixin/pages_shop/refundOrder.js

@@ -1,5 +1,6 @@
 "use strict";
 const common_vendor = require("../common/vendor.js");
+const api_order = require("../api/order.js");
 const common_assets = require("../common/assets.js");
 const _sfc_main = {
   data() {
@@ -18,22 +19,39 @@ const _sfc_main = {
   onLoad(option) {
     this.type = option.type;
     this.orderCode = option.orderCode;
-    this.reasonsList = this.utils.getDict("storeAfterSalesReasons");
     this.orderId = option.orderId;
     console.log(this.orderId);
-    this.getMyStoreOrderItemByOrderId();
+    this.getStoreOrder();
+    this.getDicts();
   },
   methods: {
-    getMyStoreOrderItemByOrderId() {
-      var data = { orderId: this.orderId };
-      getMyStoreOrderItemByOrderId(data).then((res) => {
+    getDicts() {
+      var data = {
+        key: "store_after_sales_reasons"
+      };
+      api_order.Dicts(data).then((res) => {
+        if (res.code == 200) {
+          this.reasonsList = res.data;
+        } else {
+          common_vendor.index.showToast({
+            icon: "none",
+            title: "请求失败"
+          });
+        }
+      });
+    },
+    getStoreOrder() {
+      var data = {
+        orderId: this.orderId
+      };
+      api_order.getStoreOrderItems(data).then((res) => {
         if (res.code == 200) {
           this.order = res.order;
           this.items = res.items;
           if (this.order.isPayRemain == 0) {
-            this.refundAmount = this.order.payMoney.toFixed(2);
+            this.refundAmount = this.order.totalPrice.toFixed(2);
           } else {
-            this.refundAmount = this.order.payPrice.toFixed(2);
+            this.refundAmount = this.order.totalPrice.toFixed(2);
           }
         } else {
           common_vendor.index.showToast({
@@ -65,20 +83,30 @@ const _sfc_main = {
       var productIds = this.items.map((item2) => item2.productId);
       var products = [];
       for (var i = 0; i < productIds.length; i++) {
-        var item = { productId: productIds[i] };
+        var item = {
+          productId: productIds[i]
+        };
         products.push(item);
       }
-      var data = { refundAmount: this.refundAmount, orderCode: this.orderCode, serviceType: this.type, reasons: this.reasons, explains: this.explains, productList: products };
-      applyAfterSales(data).then((res) => {
+      var data = {
+        orderId: this.orderId,
+        refundType: this.type,
+        //0仅退款1退货退款
+        refundAmount: this.refundAmount,
+        orderCode: this.orderCode,
+        reasons: this.reasons,
+        explains: this.explains,
+        productList: products
+      };
+      api_order.applyAfterSales(data).then((res) => {
         if (res.code == 200) {
           common_vendor.index.showToast({
             icon: "success",
             title: "提交成功"
           });
           setTimeout(function() {
-            common_vendor.index.$emit("refreshOrder");
-            common_vendor.index.navigateBack({
-              delta: 1
+            common_vendor.index.redirectTo({
+              url: "./order"
             });
           }, 500);
         } else {

+ 16 - 14
unpackage/dist/dev/mp-weixin/pages_shop/refundOrderProduct.js

@@ -1,15 +1,16 @@
 "use strict";
 const common_vendor = require("../common/vendor.js");
+const api_order = require("../api/order.js");
 const _sfc_main = {
   data() {
     return {
-      order: null,
+      order: {},
       items: []
     };
   },
   onLoad(option) {
     this.orderId = option.orderId;
-    this.getMyStoreOrderItemByOrderId();
+    this.getStoreOrder();
   },
   methods: {
     checkChange(item) {
@@ -17,13 +18,16 @@ const _sfc_main = {
     },
     submit(type) {
       common_vendor.index.redirectTo({
-        url: "/pages_shop/refundOrder?orderId=" + this.order.id + "&type=" + type + "&orderCode=" + this.order.orderCode
+        url: "/pages_shop/refundOrder?orderId=" + this.order.orderId + "&type=" + type + "&orderCode=" + this.order.orderCode
       });
     },
-    getMyStoreOrderItemByOrderId() {
-      var data = { orderId: this.orderId };
-      getMyStoreOrderItemByOrderId(data).then((res) => {
+    getStoreOrder() {
+      var data = {
+        orderId: this.orderId
+      };
+      api_order.getStoreOrderItems(data).then((res) => {
         if (res.code == 200) {
+          console.log("获取订单项列表>>>", res);
           this.order = res.order;
           this.items = res.items;
         } else {
@@ -53,17 +57,15 @@ function _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {
   } : {}, {
     c: $data.order != null && $data.order.isPackage == 1 && $data.order.packageJson != null
   }, $data.order != null && $data.order.isPackage == 1 && $data.order.packageJson != null ? {
-    d: JSON.parse($data.order.packageJson).imgUrl,
-    e: common_vendor.t(JSON.parse($data.order.packageJson).title),
-    f: common_vendor.t(JSON.parse($data.order.packageJson).descs)
+    d: JSON.parse($data.order.packageJson).imgUrl
   } : {}, {
-    g: $data.order.status == 1 || $data.order.status == 2
-  }, $data.order.status == 1 || $data.order.status == 2 ? {
-    h: common_vendor.o(($event) => $options.submit(0))
+    e: $data.order.status == 2 || $data.order.status == 2
+  }, $data.order.status == 2 || $data.order.status == 2 ? {
+    f: common_vendor.o(($event) => $options.submit(0))
   } : {}, {
-    i: $data.order.status == 3 || $data.order.status == 4
+    g: $data.order.status == 3 || $data.order.status == 4
   }, $data.order.status == 3 || $data.order.status == 4 ? {
-    j: common_vendor.o(($event) => $options.submit(1))
+    h: common_vendor.o(($event) => $options.submit(1))
   } : {});
 }
 const MiniProgramPage = /* @__PURE__ */ common_vendor._export_sfc(_sfc_main, [["render", _sfc_render]]);

+ 1 - 1
unpackage/dist/dev/mp-weixin/pages_shop/refundOrderProduct.wxml

@@ -1 +1 @@
-<view class="content"><view class="inner"><view class="goods-list"><block wx:if="{{a}}"><view wx:for="{{b}}" wx:for-item="item" wx:key="f" class="item"><image class="goods-img" src="{{item.a}}" mode="aspectFit"></image><view class="info"><view class="top"><view class="title ellipsis2">{{item.b}}</view><view class="spec">{{item.c}}</view></view><view class="price-num"><view class="price-box"><text class="unit">¥</text><text class="price">{{item.d}}</text></view><view class="num">x{{item.e}}</view></view></view></view></block><view wx:if="{{c}}" class="item"><image class="goods-img" src="{{d}}" mode="aspectFit"></image><view class="info"><view class="top"><view class="title ellipsis2"><view class="tag">套餐</view>{{e}}</view><view class="spec">{{f}}</view></view></view></view></view></view><view class="btn-box"><view class="text">提交申请后,客服会与您电话沟通,请保持手机通畅</view><view class="btns"><view class="left"></view><view class="right"><view wx:if="{{g}}" class="btn cancel" bindtap="{{h}}">仅退款</view><view wx:if="{{i}}" class="btn cancel" bindtap="{{j}}">退款退货</view></view></view></view></view>
+<view class="content"><view class="inner"><view class="goods-list"><block wx:if="{{a}}"><view wx:for="{{b}}" wx:for-item="item" wx:key="f" class="item"><image class="goods-img" src="{{item.a}}" mode="aspectFit"></image><view class="info"><view class="top"><view class="title ellipsis2">{{item.b}}</view><view class="spec">{{item.c}}</view></view><view class="price-num"><view class="price-box"><text class="unit">¥</text><text class="price">{{item.d}}</text></view><view class="num">x{{item.e}}</view></view></view></view></block><view wx:if="{{c}}" class="item"><image class="goods-img" src="{{d}}" mode="aspectFit"></image></view></view></view><view class="btn-box"><view class="text">提交申请后,客服会与您电话沟通,请保持手机通畅</view><view class="btns"><view class="left"></view><view class="right"><view wx:if="{{e}}" class="btn cancel" bindtap="{{f}}">仅退款</view><view wx:if="{{g}}" class="btn cancel" bindtap="{{h}}">退款退货</view></view></view></view></view>

+ 83 - 0
unpackage/dist/dev/mp-weixin/pages_shop/storeOrderDelivery.js

@@ -0,0 +1,83 @@
+"use strict";
+const common_vendor = require("../common/vendor.js");
+const common_assets = require("../common/assets.js");
+const _sfc_main = {
+  data() {
+    return {
+      statusBarHeight: common_vendor.index.getStorageSync("menuInfo").statusBarHeight,
+      orderId: null,
+      deliveryId: null,
+      express: {},
+      expressList: []
+    };
+  },
+  onLoad(option) {
+    this.orderId = option.orderId;
+    this.getExpress();
+  },
+  methods: {
+    getExpress() {
+      var data = { orderId: this.orderId };
+      getExpress(data).then((res) => {
+        if (res.code == 200) {
+          this.express = res.express;
+          this.expressList = res.data;
+          this.deliveryId = res.deliveryId;
+        } else {
+          common_vendor.index.showToast({
+            icon: "none",
+            title: "请求失败"
+          });
+        }
+      });
+    },
+    // 返回上一页
+    back() {
+      common_vendor.index.navigateBack();
+    },
+    // 复制运单号
+    copyOrderSn(text) {
+      common_vendor.index.setClipboardData({
+        data: text,
+        success: () => {
+          common_vendor.index.showToast({
+            title: "内容已成功复制到剪切板",
+            icon: "none"
+          });
+        }
+      });
+    },
+    // 拨打电话
+    callPhone(phone) {
+      common_vendor.index.makePhoneCall({
+        phoneNumber: phone
+      });
+    }
+  }
+};
+function _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {
+  return common_vendor.e({
+    a: common_assets._imports_0$14,
+    b: $data.statusBarHeight,
+    c: common_assets._imports_1$9,
+    d: common_vendor.o((...args) => $options.back && $options.back(...args)),
+    e: common_vendor.t($data.deliveryId),
+    f: common_vendor.o(($event) => $options.copyOrderSn($data.deliveryId)),
+    g: common_vendor.t($data.express.name),
+    h: $data.expressList != null
+  }, $data.expressList != null ? common_vendor.e({
+    i: $data.expressList.Traces != null
+  }, $data.expressList.Traces != null ? {
+    j: common_vendor.f($data.expressList.Traces, (item, index, i0) => {
+      return {
+        a: common_vendor.t(item.AcceptStation),
+        b: common_vendor.t(item.AcceptTime),
+        c: index
+      };
+    }),
+    k: common_assets._imports_2$6,
+    l: common_assets._imports_3$3
+  } : {}) : {});
+}
+const MiniProgramPage = /* @__PURE__ */ common_vendor._export_sfc(_sfc_main, [["render", _sfc_render]]);
+wx.createPage(MiniProgramPage);

+ 5 - 0
unpackage/dist/dev/mp-weixin/pages_shop/storeOrderDelivery.json

@@ -0,0 +1,5 @@
+{
+  "navigationBarTitleText": "物流信息",
+  "enablePullDownRefresh": false,
+  "usingComponents": {}
+}

+ 1 - 0
unpackage/dist/dev/mp-weixin/pages_shop/storeOrderDelivery.wxml

@@ -0,0 +1 @@
+<view><view class="top-cont"><image class="bg" src="{{a}}" mode=""></image><view class="top-inner"><view class="status_bar" style="{{'height:' + b}}"></view><view class="back-box" bindtap="{{d}}"><image src="{{c}}" mode=""></image><text class="title">物流信息</text><text></text></view><view class="waybill-number"><view class="inner"><view class="num-box"><text class="text">运单号</text><text class="text">{{e}}</text><view class="copy" bindtap="{{f}}">复制</view></view><view class="kf-box"><text class="text">{{g}}</text></view></view></view><view wx:if="{{h}}" class="content"><view wx:if="{{i}}" class="refund-steps"><view wx:for="{{j}}" wx:for-item="item" wx:key="c" class="steps"><view class="title"><view class="dot"></view><image class="img" src="{{k}}" mode=""></image><image class="img" src="{{l}}" mode=""></image></view><view class="desc-text">{{item.a}}</view><view class="time">{{item.b}}</view></view></view></view></view></view></view>

+ 208 - 0
unpackage/dist/dev/mp-weixin/pages_shop/storeOrderDelivery.wxss

@@ -0,0 +1,208 @@
+/**
+ * 这里是uni-app内置的常用样式变量
+ *
+ * uni-app 官方扩展插件及插件市场(https://ext.dcloud.net.cn)上很多三方插件均使用了这些样式变量
+ * 如果你是插件开发者,建议你使用scss预处理,并在插件代码中直接使用这些变量(无需 import 这个文件),方便用户通过搭积木的方式开发整体风格一致的App
+ *
+ */
+/**
+ * 如果你是App开发者(插件使用者),你可以通过修改这些变量来定制自己的插件主题,实现自定义主题功能
+ *
+ * 如果你的项目同样使用了scss预处理,你也可以直接在你的 scss 代码中使用如下变量,同时无需 import 这个文件
+ */
+/* 颜色变量 */
+/* 行为相关颜色 */
+/* 文字基本颜色 */
+/* 背景颜色 */
+/* 边框颜色 */
+/* 尺寸变量 */
+/* 文字尺寸 */
+/* 图片尺寸 */
+/* Border Radius */
+/* 水平间距 */
+/* 垂直间距 */
+/* 透明度 */
+/* 文章场景相关 */
+/*自定义主题色 */
+.top-cont {
+  width: 100%;
+  height: 336rpx;
+  position: relative;
+}
+.top-cont .bg {
+  width: 100%;
+  height: 100%;
+  position: absolute;
+  top: 0;
+  left: 0;
+  z-index: 1;
+}
+.top-cont .top-inner {
+  width: 100%;
+  height: 100%;
+  position: absolute;
+  top: 0;
+  left: 0;
+  z-index: 2;
+}
+.top-cont .top-inner .back-box {
+  height: 88rpx;
+  padding-left: 22rpx;
+  display: flex;
+  align-items: center;
+  justify-content: space-between;
+  padding: 0 20rpx;
+}
+.top-cont .top-inner .back-box image {
+  width: 40rpx;
+  height: 40rpx;
+}
+.top-cont .top-inner .back-box .title {
+  font-size: 36rpx;
+  font-family: PingFang SC;
+  font-weight: 500;
+  color: #FFFFFF;
+}
+.top-cont .top-inner .waybill-number {
+  padding: 0 20rpx;
+  margin-top: 66rpx;
+}
+.top-cont .top-inner .waybill-number .inner {
+  box-sizing: border-box;
+  height: 150rpx;
+  background: #FFFFFF;
+  border-radius: 16rpx;
+  padding: 40rpx 30rpx;
+  display: flex;
+  flex-direction: column;
+  justify-content: space-between;
+}
+.top-cont .top-inner .waybill-number .inner .num-box {
+  display: flex;
+  align-items: center;
+}
+.top-cont .top-inner .waybill-number .inner .num-box .text {
+  font-size: 28rpx;
+  font-family: PingFang SC;
+  font-weight: 500;
+  color: #111111;
+  line-height: 1;
+  margin-right: 30rpx;
+}
+.top-cont .top-inner .waybill-number .inner .num-box .text:last-child {
+  margin-right: 20rpx;
+}
+.top-cont .top-inner .waybill-number .inner .num-box .copy {
+  width: 58rpx;
+  height: 32rpx;
+  line-height: 32rpx;
+  text-align: center;
+  font-size: 22rpx;
+  font-family: PingFang SC;
+  font-weight: 500;
+  color: #222222;
+  background: #F5F5F5;
+  border-radius: 4rpx;
+}
+.top-cont .top-inner .waybill-number .inner .kf-box {
+  display: flex;
+  align-items: center;
+}
+.top-cont .top-inner .waybill-number .inner .kf-box .text {
+  font-size: 26rpx;
+  font-family: PingFang SC;
+  font-weight: 500;
+  color: #999999;
+  line-height: 1;
+  margin-right: 20rpx;
+}
+.content {
+  margin: 20rpx 0rpx;
+  padding: 0 20rpx;
+}
+.content .refund-steps {
+  background: #FFFFFF;
+  border-radius: 16rpx;
+  padding: 40rpx 44rpx;
+}
+.content .refund-steps .steps {
+  padding-left: 40rpx;
+  padding-bottom: 56rpx;
+  position: relative;
+}
+.content .refund-steps .steps::after {
+  content: "";
+  width: 4rpx;
+  height: 100%;
+  background: #F1F1F1;
+  position: absolute;
+  left: 0;
+  top: 20rpx;
+}
+.content .refund-steps .steps:last-child {
+  padding-bottom: 0;
+}
+.content .refund-steps .steps:last-child::after {
+  display: none;
+}
+.content .refund-steps .steps .title {
+  position: relative;
+}
+.content .refund-steps .steps .title .text {
+  font-size: 30rpx;
+  font-family: PingFang SC;
+  font-weight: 500;
+  color: #666666;
+  line-height: 38rpx;
+}
+.content .refund-steps .steps .title .text.black-text {
+  color: #111111;
+  font-weight: bold;
+}
+.content .refund-steps .steps .title .text.gray-bold {
+  font-weight: bold;
+  color: #666666;
+}
+.content .refund-steps .steps .title .dot {
+  width: 16rpx;
+  height: 16rpx;
+  background: #EBEBEB;
+  border-radius: 50%;
+  position: absolute;
+  left: -46rpx;
+  top: 11rpx;
+  z-index: 10;
+}
+.content .refund-steps .steps .title .dot.active {
+  background-color: #0bb3f2;
+}
+.content .refund-steps .steps .title .img {
+  width: 40rpx;
+  height: 40rpx;
+  position: absolute;
+  left: -57rpx;
+  top: 2rpx;
+  z-index: 10;
+}
+.content .refund-steps .steps .desc-text {
+  font-size: 28rpx;
+  font-family: PingFang SC;
+  font-weight: 500;
+  color: #666666;
+  line-height: 1.6;
+  margin-top: 10rpx;
+}
+.content .refund-steps .steps .desc-text .phone {
+  font-size: 28rpx;
+  font-family: PingFang SC;
+  font-weight: 500;
+  color: #0bb3f2;
+  line-height: 1.6;
+}
+.content .refund-steps .steps .time {
+  font-size: 24rpx;
+  font-family: Gilroy;
+  font-weight: 500;
+  color: #999999;
+  margin-top: 10rpx;
+}

+ 2 - 2
unpackage/dist/dev/mp-weixin/pages_user/address.js

@@ -161,8 +161,8 @@ function _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {
         k: index
       });
     }),
-    b: common_assets._imports_0$14,
-    c: common_assets._imports_1$9,
+    b: common_assets._imports_0$15,
+    c: common_assets._imports_1$10,
     d: $data.address.length == 0
   }, $data.address.length == 0 ? {
     e: common_assets._imports_2$2,

이 변경점에서 너무 많은 파일들이 변경되어 몇몇 파일들은 표시되지 않았습니다.