From 1dcd8399c853ef724133d4d1ad0d700db0f293e7 Mon Sep 17 00:00:00 2001
From: doum <doum>
Date: 星期四, 12 二月 2026 18:19:50 +0800
Subject: [PATCH] 经销商管理pay

---
 mini-program/pagesA/pages/order-details/order-details.vue |  354 ++++++++++++++++++++++++++++++++++++++++++++++++-----------
 1 files changed, 288 insertions(+), 66 deletions(-)

diff --git a/mini-program/pagesA/pages/order-details/order-details.vue b/mini-program/pagesA/pages/order-details/order-details.vue
index 043c5c0..11ffc1c 100644
--- a/mini-program/pagesA/pages/order-details/order-details.vue
+++ b/mini-program/pagesA/pages/order-details/order-details.vue
@@ -57,23 +57,22 @@
 					</view>
 				</view>
 			</view>
-			<view class="user">
+			<view class="user"  v-if="userType!=1">
 				<view class="user-jxa">
 					<view class="user-jxa-title">
 						<image src="/static/icon/ic_address@2x1.png" mode="widthFix"></image>
 						<text>{{info.shopInfo.name||''}}</text>
 					</view>
-					<view class="user-jxa-lx">
+					<view class="user-jxa-lx"  @click="contact( info.shopInfo.phone)">
 						<image src="/static/icon/ic_call@2x.png" mode="widthFix"></image>
-						<text v-if="userType==1" @click="contact(info.linkphone)">鑱旂郴瀹㈡埛</text> 
-						<text v-if="info.orderStatus!=0 && userType==0" @click="contact(info.shopInfo.phone || '')">鑱旂郴缁忛攢鍟�</text>
+						<text  > 鑱旂郴缁忛攢鍟�</text> 
 					</view>
 				</view>
 				<view class="user-jxtime">
 					<image class="user-jxtime-icon" src="/static/icon/ic_openinghours@2x.png" mode="widthFix"></image>
 					<text>钀ヤ笟鏃堕棿锛歿{info.shopInfo.startTime || ''}}</text>
 				</view>
-				<view class="user-jxtime">
+				<view class="user-jxtime" @click="jumpMap()">
 					<image class="user-jxtime-icon" src="/static/icon/ic_shopaddress@2x.png" mode="widthFix"></image>
 					<text>{{info.shopInfo.addr || ''}}</text>
 					<image class="user-jxtime-to" src="/static/icon/ic_ar2@2x.png" mode="widthFix"></image>
@@ -86,29 +85,48 @@
 					<view class="user-qrcode-btn" @click="copyText(info.exchangeCode)">澶嶅埗鑷彁鐮�</view>
 				</view>
 			</view>
-			<view class="user"   v-if="info.receiveType!=1">
+			<view class="user" v-if="userType==1">
 				<view class="user-top">
 					<view class="user-icon">
-						<image src="/static/icon/ic_location@2x.png" mode="widthFix"></image>
+						<image :src="info.member && info.member.imgFullUrl? info.member.imgFullUrl:'/static/icon/default.png'" mode="widthFix"></image>
 					</view>
 					<view class="user-info">
 						<view class="user-info-a">
-							<text>{{info.linkename || ''}}</text>
-							<text>{{info.linkephone || ''}}</text>
+							<text>{{info.linkName || ''}}</text>
+							<view class="user-jxa-lx"  @click="contact( info.linkPhone )">
+								<image src="/static/icon/ic_call@2x.png" mode="widthFix"></image>
+								<text > 鑱旂郴瀹㈡埛</text> 
+							</view>
 						</view>
 						<view class="user-info-b">
-							{{info.addr||''}}
+							<!-- <image src="/static/icon/ic_call@2x.png" mode="widthFix"></image> -->
+							<text>{{info.linkPhone || ''}}</text>
 						</view>
 					</view>
 				</view>
-				<view class="user-xian"></view>
-				<view class="user-kd">
+				<view class="user-remark"  v-if="info.memberInfo">
+					<text>璁㈠崟澶囨敞锛�</text>
+					<text>{{info.memberInfo || ''}}</text>
+				</view>
+				<view class="user-xian" v-if="info.receiveType!=1"></view>
+				<view class="user-kd" v-if="info.receiveType!=1">
+					<image src="/static/icon/ic_location@2x.png" mode="widthFix"></image>
+					<text>{{info.linkAddress || ''}}</text>
+				</view>
+				<view class="user-kd" v-if="info.receiveType!=1&& info.kdName && info.kdCode">
 					<image src="/static/icon/ic_wuliu@2x.png" mode="widthFix"></image>
 					<text>{{info.kdName || ''}}锝渰{info.kdCode || ''}}</text>
+					<image class="image2" src="/static/icon/ic_cppy@2x.png"  @click="copyText(info.kdCode )" mode="widthFix"></image>
 				</view>
 			</view>  
-			<view class="shop">
-				<view class="shop-info" style="margin: 0;"  v-if="info.status ==6">
+			<view class="user" v-if="userType!=1 &&info.memberInfo" >
+				<view class="user-kd" >
+					<text>璁㈠崟澶囨敞锛�</text>
+					<text>{{info.memberInfo || ''}}</text>
+				</view>
+			</view>  
+			<view class="shop"  v-if="info.orderStatus ==6">
+				<view class="shop-info" style="margin: 0;" >
 					<view class="shop-info-item" style="margin-bottom: 12rpx;">
 						<view class="shop-info-item-label" style="color: #222222; font-size: 30rpx; font-weight: 600;">閫�娆鹃噾棰�</view>
 						<view class="shop-info-item-price xfk">
@@ -135,13 +153,12 @@
 					<view :class="'shop-top-tips '+(info.receiveType==1?'shop-top-tips-a':'shop-top-tips-b' )">{{info.receiveType==1?'鑷彁':'閰嶉��'}}</view>
 					<text>{{info.shopInfo.name || ''}}</text>
 				</view>
-				<view class="b">
-					<view class="b-item" v-for="(item, index) in (info.goodsorderDetailList||[])" :key="index">
-						<view class="b-item-image">
-<!-- 							<image v-if="item.imgurl!=null" :src="item.imgurl" mode="widthFix"></image>
- -->							 <image src="/static/icon/default2.png" mode="widthFix"></image>
+				<view class="b" v-if="info.goodsorderDetailList && info.goodsorderDetailList.length">
+					<view class="b-item" v-for="(item, index) in info.goodsorderDetailList" :key="index"  @click="jumpGoodsDetail(item,index)" >
+						<view class="b-item-image" >
+							 <image :src="item.imgurl?item.imgurl:'/static/icon/default2.png'" mode="widthFix"></image>
 						</view>
-						<view class="b-item-title">
+						<view class="b-item-title" >
 							<view class="b-item-title-val">{{item.name || ''}}</view>
 							<view class="b-item-jia">
 								<text>楼{{(item.price || 0).toFixed(2)}}</text>
@@ -204,7 +221,49 @@
 							<text>{{info.createDate || ''}}</text>
 						</view>
 					</view>
-					<view class="xinxi-list-item">
+					<view class="xinxi-list-item" v-if="info.shopInfo!=null && info.shopInfo.id!=null">
+						<view class="xinxi-list-item-label">缁� 閿� 鍟嗭細</view>
+						<view class="xinxi-list-item-right">
+							<text>{{info.shopInfo.name || ''}}</text>
+						</view>
+					</view>
+					<view class="xinxi-list-item" v-if="info.shopInfo!=null && info.shopInfo.id!=null">
+						<view class="xinxi-list-item-label">鑱旂郴鐢佃瘽锛�</view>
+						<view class="xinxi-list-item-right">
+							<text>{{info.shopInfo.phone || ''}}</text>
+						</view>
+					</view>
+					<view class="xinxi-list-item" v-if="info.payDate!=null">
+						<view class="xinxi-list-item-label">鏀粯鏃堕棿锛�</view>
+						<view class="xinxi-list-item-right">
+							<text>{{info.payDate || ''}}</text>
+						</view>
+					</view>
+					<view class="xinxi-list-item" v-if="info.payStatus != 0">
+						<view class="xinxi-list-item-label">鏀粯鏂瑰紡锛�</view>
+						<view class="xinxi-list-item-right">
+							<text>{{info.payMethod==0?'寰俊鏀粯':'绉垎鎶垫墸'}}</text>
+						</view>
+					</view>
+					<view class="xinxi-list-item" v-if="info.payOrderId">
+						<view class="xinxi-list-item-label">浜ゆ槗娴佹按鍙凤細</view>
+						<view class="xinxi-list-item-right">
+							<text>{{info.payOrderId || ''}}</text>
+						</view>
+					</view>
+					<view class="xinxi-list-item" v-if="info.cancelDate!=null">
+						<view class="xinxi-list-item-label">鍙栨秷鏃堕棿锛�</view>
+						<view class="xinxi-list-item-right">
+							<text>{{info.cancelDate || ''}}</text>
+						</view>
+					</view>
+					<view class="xinxi-list-item" v-if="info.doneDate!=null">
+						<view class="xinxi-list-item-label">瀹屾垚鏃堕棿锛�</view>
+						<view class="xinxi-list-item-right">
+							<text>{{info.doneDate || ''}}</text>
+						</view>
+					</view>
+					<view class="xinxi-list-item" v-if="1==2">
 						<view class="xinxi-list-item-label">璁㈠崟澶囨敞锛�</view>
 						<view class="xinxi-list-item-right">
 							<text>{{info.memberInfo||'-'}}</text>
@@ -215,14 +274,19 @@
 			<view style="width: 100%; height: calc(100rpx + env(safe-area-inset-bottom));"></view>
 		</view>
 		<view class="footer">
-			<view class="caozuo">
-				<view class="caozuo-item">鍙栨秷璁㈠崟</view>
-				<view class="caozuo-item" style="border: 1rpx solid #004096; color: #004096;">缁х画鏀粯</view>
+			<view class="caozuo" v-if="userType!=1">
+				<view class="caozuo-item" v-if="info.orderStatus==0 || info.orderStatus ==1"  @click="cancelOrder()"> 鍙栨秷璁㈠崟</view>
+				<view class="caozuo-item"  @click="deleteOrder()" v-if="info.orderStatus==4"> 鍒犻櫎璁㈠崟</view> 
+				<view class="caozuo-item"  @click="payOrder()" v-if=" info.orderStatus==0" style="border: 1rpx solid #004096; color: #004096;">缁х画鏀粯</view>
+				<view class="caozuo-item" @click="doneOrder()"  v-if=" info.orderStatus==2" style="border: 1rpx solid #004096; color: #004096;">纭鏀惰揣</view>
+			</view>
+			<view class="caozuo" v-if="userType==1">
+				<view class="caozuo-item" @click="hexiaoOrder()"  v-if=" info.orderStatus==1 && info.receiveType ==1" style="border: 1rpx solid #004096; color: #004096;">鑷彁鏍搁攢</view>
 			</view>
 			<view style="width: 100%; height: env(safe-area-inset-bottom);"></view>
 		</view>
 		<!-- 纭鏀惰揣 -->
-		<u-popup :show="show" round="15" :safeAreaInsetBottom="false" mode="center">
+		<u-popup :show="showDone" round="15" :safeAreaInsetBottom="false" mode="center">
 			<view class="tc">
 				<view class="tc-contemt">
 					<view class="tc-contemt-title">纭鏀惰揣鎻愰啋</view>
@@ -231,8 +295,38 @@
 					</view>
 				</view>
 				<view class="tc-btn">
-					<view class="tc-btn-item" @click="show = false">鍙栨秷</view>
-					<view class="tc-btn-item" style="color: #004096;">纭鏀惰揣</view>
+					<view class="tc-btn-item" @click="showDone = false; ">鍙栨秷</view>
+					<view class="tc-btn-item" style="color: #004096;" @click="doneOrderDo()">纭鏀惰揣</view>
+				</view>
+			</view>
+		</u-popup>
+		<!-- 鍙栨秷璁㈠崟 -->
+		<u-popup :show="showCancel" round="15" :safeAreaInsetBottom="false" mode="center">
+			<view class="tc">
+				<view class="tc-contemt">
+					<view class="tc-contemt-title">纭畾鍙栨秷鎻愰啋</view>
+					<view class="tc-contemt-nr">
+						鎮ㄧ‘璁ゅ彇娑堣璁㈠崟鍚楋紵
+					</view>
+				</view>
+				<view class="tc-btn">
+					<view class="tc-btn-item" @click="showCancel = false; ">鎴戝啀鎯虫兂</view>
+					<view class="tc-btn-item" style="color: red;" @click="cancelOrderDo">纭鍙栨秷</view>
+				</view>
+			</view>
+		</u-popup>
+		<!-- 鍒犻櫎璁㈠崟 -->
+		<u-popup :show="showDelete" round="15" :safeAreaInsetBottom="false" mode="center">
+			<view class="tc">
+				<view class="tc-contemt">
+					<view class="tc-contemt-title">纭鍒犻櫎鎻愰啋</view>
+					<view class="tc-contemt-nr">
+						鎮ㄧ‘璁ゅ垹闄よ璁㈠崟鍚楋紵
+					</view>
+				</view>
+				<view class="tc-btn">
+					<view class="tc-btn-item" @click="showDelete = false; ">鎴戝啀鎯虫兂</view>
+					<view class="tc-btn-item" style="color: red;" @click="deleteOrderDo">纭鍒犻櫎</view>
 				</view>
 			</view>
 		</u-popup>
@@ -249,6 +343,10 @@
 		data() {
 			return {
 				show: false,
+				showDone:false,
+				showCancel:false,
+				showDelete:false,
+				showPay:false,
 				qrCodeBase64:'',
 				id:null,
 				userType:0,
@@ -267,6 +365,10 @@
 			}else{
 				this.getUserDetail()
 			}
+			this.showDone=false
+			this.showCancel=false
+			this.showDelete=false
+			this.showPay=false
 		},
 		onLoad(options) {
 			this.id = options.id
@@ -274,61 +376,135 @@
 			this.qrCodeUrl=''
 		},
 		methods:{
-			  copyText(text) {
-			      try {
-					   wx.setClipboardData({
-						  data: text||' ',
-						  success: function () {
-							uni.showToast({ title: '澶嶅埗鎴愬姛' });
-						  },
-						  fail: function () {
-							uni.showToast({ title: '澶嶅埗澶辫触', icon: 'none' });
-						  }
-						});
-			      } catch (err) {
-			        console.error('澶嶅埗澶辫触', err);
-			        uni.showToast({ title: '澶嶅埗澶辫触', icon: 'none' });
-			      }
-			    },
+			hexiaoOrder(item){
+				uni.navigateTo({
+					url:'/pagesA/pages/write-off-a/write-off-a?id='+this.id
+				})
+			},
+			cancelOrder(item){
+				this.showCancel = !this.showCancel
+			},
+			deleteOrder(item){
+				this.showDelete = !this.showDelete
+			},
+			payOrder(item){
+			},
+			doneOrder(item){
+				this.showDone = !this.showDone
+			},
+			async  doneOrderDo(){
+				if(this.userType == 1 ) {
+					return
+				}
+				var that =this
+				let res = await this.$u.api.affirmOrder({ orderId: this.info.orderId  });
+				if (res.code === 200 ) { 
+					//淇敼璁㈠崟鐘舵��
+					this.info.orderStatus = 3
+					 uni.$emit('updateOrder',{info:this.info,delete:0})
+					await this.getUserDetail()
+					this.doneOrder()
+				}else{
+					/* uni.showToast({
+						title:res.message||'纭畾鏀惰揣澶辫触锛�',
+						icon:'error'
+					}) */
+				}
+			},
+			async cancelOrderDo(){
+				if(this.userType == 1 ) {
+					return
+				}
+				var that =this
+				let res = await that.$u.api.cancelOrder({ orderId: this.info.orderId  });
+				if (res.code === 200 ) { 
+					this.info.orderStatus = 4
+					uni.$emit('updateOrder',{info:this.info,delete:0})
+					await  this.getUserDetail()
+					this.cancelOrder()
+				}else{
+				/* 	uni.showToast({
+						title:res.message||'鍙栨秷璁㈠崟澶辫触锛�',
+						icon:'error'
+					}) */
+				}
+			},
+			async deleteOrderDo(){
+				if(this.userType == 1 ) {
+					return
+				}
+				var that =this
+				let res = await that.$u.api.delOrder({ orderId: this.info.orderId  });
+				if (res.code === 200 ) { 
+					uni.$emit('updateOrder',{info:this.info,delete:1})
+					uni.navigateBack({delta:1})
+				}else{
+					/* uni.showToast({
+						title:res.message||'鍒犻櫎璁㈠崟澶辫触锛�',
+						icon:'error'
+					}) */
+				}
+			},
+			jumpMap(){
+			
+			},
+		    copyText(text) {
+			    try {
+				   wx.setClipboardData({
+					  data: text||' ',
+					  success: function () {
+						uni.showToast({ title: '澶嶅埗鎴愬姛' });
+					  },
+					  fail: function () {
+						uni.showToast({ title: '澶嶅埗澶辫触', icon: 'none' });
+					  }
+					});
+			    } catch (err) {
+				    console.error('澶嶅埗澶辫触', err);
+				    uni.showToast({ title: '澶嶅埗澶辫触', icon: 'none' });
+			    }
+			},
 			async getQrcodeByStr(){
-					try { 
-				  const ocanvas = uni.createOffscreenCanvas({ type: "2d" });
-						const qrCodeBase64 = await QRCode.toDataURL(ocanvas,this.info.exchangeCode, {
-													scale: 1, // 浜岀淮鐮佺殑缂╂斁姣斾緥锛屽彲浠ユ牴鎹渶瑕佽皟鏁�
-													width: 300, // 浜岀淮鐮佺殑瀹藉害锛屽彲浠ユ牴鎹渶瑕佽皟鏁�
-													margin: 1 // 浜岀淮鐮佸懆鍥寸殑绌虹櫧杈硅窛锛屽彲浠ユ牴鎹渶瑕佽皟鏁�
-												}); 
-						this.qrCodeBase64 =qrCodeBase64
-						console.log("==================this.info.exchangeCode1:",qrCodeBase64)
-				      } catch (err) {
-						  uni.showToast({
-						  	title:'鍒涘缓浜岀淮鐮佸け璐�',
-							icon:'error'
-						  })
-				      }
+				try { 
+				    const ocanvas = uni.createOffscreenCanvas({ type: "2d" });
+					const qrCodeBase64 = await QRCode.toDataURL(ocanvas,this.info.exchangeCode, {
+						scale: 1, // 浜岀淮鐮佺殑缂╂斁姣斾緥锛屽彲浠ユ牴鎹渶瑕佽皟鏁�
+						width: 300, // 浜岀淮鐮佺殑瀹藉害锛屽彲浠ユ牴鎹渶瑕佽皟鏁�
+						margin: 1 // 浜岀淮鐮佸懆鍥寸殑绌虹櫧杈硅窛锛屽彲浠ユ牴鎹渶瑕佽皟鏁�
+					}); 
+					this.qrCodeBase64 =qrCodeBase64
+				  } catch (err) {
+					uni.showToast({
+						title:'鐢熸垚鑷彁鐮佸け璐�',
+						icon:'error'
+					})
+				}
 			},
 			contact(phone){
-				if(phone !=null && phonee!=''){
+				console.log(phone)
+				if(phone !=null && phone!=''){
 					uni.makePhoneCall({
 					   phoneNumber: phone 
 					})
 				}
 			},
-			async  getShopDetail(index){
+			async  getShopDetail(){
 				var that =this 
 				let res = await that.$u.api.shopOrderDetail({orderId:this.id,tokenType:1  })
 				if (res.code === 200) { 
 					this.info = res.data 
 					this.info.shopInfo = this.info.shopInfo||{}
-					
 					this.getQrcodeByStr()
+					uni.$emit('updateOrder',{info:this.info,delete:0})
 				} 
 			},
-			async  getUserDetail(index){
+			async  getUserDetail(){
 				var that =this 
-				let res = await that.$u.api.shopOrderDetail({orderId:this.id,tokenType:1  })
+				let res = await this.$u.api.orderDetail({orderId:this.id  })
 				if (res.code === 200) { 
 					this.info = res.data 
+					this.getQrcodeByStr()
+					uni.$emit('updateOrder',{info:this.info,delete:0})
 				} 
 			},
 			checkShopLogin(){
@@ -342,6 +518,11 @@
 			jumpBack(){
 				uni.navigateBack({ delta: 1 });
 			},
+			jumpGoodsDetail(item){
+				uni.navigateTo({
+					url: '/pages/details/details?id='+item.id
+				})
+			}
 		}
 	}
 </script>
@@ -841,12 +1022,14 @@
 					align-items: flex-start;
 					.user-icon {
 						flex-shrink: 0;
-						width: 48rpx;
-						height: 48rpx;
+						width: 80rpx;
+						height: 80rpx;
+						border-radius: 50%;
 						margin-right: 22rpx;
 						image {
 							width: 100%;
 						}
+						
 					}
 					.user-info {
 						flex: 1;
@@ -856,6 +1039,7 @@
 							width: 100%;
 							display: flex;
 							align-items: center;
+							justify-content: space-between;
 							text {
 								&:nth-child(1) {
 									font-weight: 500;
@@ -869,6 +1053,22 @@
 									margin-left: 14rpx;
 								}
 							}
+							.user-jxa-lx {
+								  right:0;
+								  
+								display: flex;
+								align-items: center;
+								image {
+									width: 26rpx;
+									height: 26rpx;
+									margin-right: 10rpx;
+								}
+								text {
+									font-weight: 400;
+									font-size: 26rpx;
+									color: #222222;
+								}
+							}
 						}
 						.user-info-b {
 							width: 100%;
@@ -876,6 +1076,11 @@
 							font-size: 26rpx;
 							color: #666666;
 							margin-top: 18rpx;
+							image {
+								width: 30rpx;
+								height: 30rpx;
+								margin-right: 10rpx;
+							}
 						}
 					}
 				}
@@ -884,6 +1089,18 @@
 					height: 1rpx;
 					margin: 30rpx 0;
 					background-color: #E5E5E5;
+				}
+				.user-remark{
+					width: 100%;
+					padding: 20rpx 10rpx;
+					margin: 30rpx 30rpx;
+					background: #F8F9FB;
+					border-radius: 8rpx;
+					text {
+						font-weight: 400;
+						font-size: 26rpx;
+						color: #333333; 
+					}
 				}
 				.user-kd {
 					width: 100%;
@@ -897,7 +1114,12 @@
 					text {
 						font-weight: 400;
 						font-size: 26rpx;
-						color: #333333;
+						color: #333333; 
+					}
+					.image2 {
+						width: 24rpx;
+						height: 24rpx;
+						margin-left: 12rpx;
 					}
 				}
 			}

--
Gitblit v1.9.3