From 6f12eadd25c8f5335fd9eccf373bf9835bf3e4c6 Mon Sep 17 00:00:00 2001
From: quanwei <419654421@qq.com>
Date: Sat, 15 Nov 2025 18:12:50 +0800
Subject: [PATCH] 添加名片聊天功能(未完成)

---
 mobile/pages/plus/business/index.vue |  108 +++++++++++++++++++++++++++++++++++++++++++++--------
 1 files changed, 91 insertions(+), 17 deletions(-)

diff --git a/mobile/pages/plus/business/index.vue b/mobile/pages/plus/business/index.vue
index 6a4ecda..6fd9929 100644
--- a/mobile/pages/plus/business/index.vue
+++ b/mobile/pages/plus/business/index.vue
@@ -13,6 +13,7 @@
 				<view class="btn" @click="switchCard()">切换名片</view>
 				<button open-type="share" class="btn">分享名片</button>
 				<view class="btn" @click="topUpCard()">置顶名片</view>
+				<view class="btn" @click="gotoChatList()">聊天记录</view>
 			</view>
 
 			<!-- 数据统计区域 -->
@@ -59,14 +60,18 @@
 					<text class="close" @click="closePopup">×</text>
 				</view>
 				<scroll-view scroll-y="true" class="card-scroll">
-					<view class="card-item" v-for="(card, index) in businessList" :key="index"
-						@click="selectCard(index)">
-						<view :class="{active: card.is_default==1}" class="card-preview">
-							<image style="width: 650rpx;border-radius: 12rpx;" :src="card.mp" mode="widthFix"></image>
-							<image v-show="card.is_default==1" src="@/static/icon/mrmp.png" class="mrmp">
-							</image>
+					<uni-swipe-action>
+						<view v-for="(card, index) in businessList" :key="index">
+							<uni-swipe-action-item :right-options="rightOptions" @click="handleDel(index, card)">
+								<view @click="selectCard(index)" class="card-item">
+									<view :class="{active: card.is_default==1}" class="card-preview">
+										<image style="width: 650rpx;border-radius: 12rpx;" :src="card.mp" mode="widthFix"></image>
+										<image v-show="card.is_default==1" src="@/static/icon/mrmp.png" class="mrmp"></image>
+									</view>
+								</view>
+							</uni-swipe-action-item>
 						</view>
-					</view>
+					</uni-swipe-action>
 					<view class="add-card" @click="addNewCard()">
 						<text class="icon iconfont icon-add"></text>
 						<text>添加新名片</text>
@@ -105,9 +110,13 @@
 
 <script>
 	import Popup from '@/components/uni-popup.vue';
+import uniSwipeAction from '@/uni_modules/uni-swipe-action/components/uni-swipe-action/uni-swipe-action.vue';
+import uniSwipeActionItem from '@/uni_modules/uni-swipe-action/components/uni-swipe-action-item/uni-swipe-action-item.vue';
 	export default {
 		components: {
-			Popup
+			Popup,
+			uniSwipeAction,
+			uniSwipeActionItem
 		},
 		data() {
 			return {
@@ -123,7 +132,13 @@
 				showPayment: false, // 显示支付弹窗
 				paymentMethod: 'balance', // 支付方式
 				topSetting: {}, // 置顶设置
-				userInfo: {} // 用户信息
+				userInfo: {}, // 用户信息
+				rightOptions: [{
+					text: '删除',
+					style: {
+						backgroundColor: '#FF3B30'
+					}
+				}]
 			};
 		},
 		onLoad() {
@@ -221,6 +236,10 @@
 					this.gotoPage(
 						`/pages/plus/business/add?business_card_id=${this.businessList[this.current].business_card_id}`
 					);
+				}else{
+					this.gotoPage(
+						`/pages/plus/business/add`
+					);
 				}
 			},
 			switchCard() {
@@ -247,6 +266,13 @@
 			viewAllVisitors() {
 				// 查看全部访客
 				this.gotoPage('/pages/plus/business/visitors');
+			},
+			
+			// 跳转到聊天记录页面
+			gotoChatList() {
+				uni.navigateTo({
+					url: '/pages/plus/business/chat/list'
+				});
 			},
 			// 置顶名片
 			topUpCard() {
@@ -287,13 +313,13 @@
 							if (this.paymentMethod === 'balance') {
 								// 直接跳转支付
 								uni.redirectTo({
-									url: '/pages/order/cashier?order_id=' + res.data.order_id +
+									url: '/pages/plus/business/cashier?order_id=' + res.data.order_id +
 										'&order_type=100'
 								});
 							} else {
 								// 跳转到收银台支付
 								uni.redirectTo({
-									url: '/pages/order/cashier?order_id=' + res.data.order_id +
+									url: '/pages/plus/business/cashier?order_id=' + res.data.order_id +
 										'&order_type=100'
 								});
 							}
@@ -320,6 +346,54 @@
 				} else {
 					return date.getFullYear() + '-' + (date.getMonth() + 1) + '-' + date.getDate();
 				}
+			},
+			// 删除名片
+			handleDel(index, card) {
+				// 防止删除默认名片
+				if (card.is_default === 1) {
+					this.showToast('默认名片不能删除');
+					return;
+				}
+				
+				uni.showModal({
+					title: '提示',
+					content: '确定要删除这个名片吗?',
+					success: (res) => {
+						if (res.confirm) {
+							// 调用删除接口
+							this._post('plus.business.business/delete', {
+								business_card_id: card.business_card_id
+							}, (res) => {
+								if (res.code === 1) {
+									// 删除成功,更新列表
+									this.businessList.splice(index, 1);
+									this.showToast('删除成功');
+									
+									// 如果删除的是当前选中的名片,切换到第一个名片
+									if (index === this.current) {
+										if (this.businessList.length > 0) {
+											this.current = 0;
+											this.getStatistics(this.businessList[this.current].business_card_id);
+										}
+									} else if (index < this.current) {
+										// 如果删除的是当前选中名片之前的,current减1
+										this.current--;
+									}
+								} else {
+									this.showToast(res.msg || '删除失败');
+								}
+							});
+						}
+					}
+				});
+			},
+			// 显示提示信息
+			showToast(msg) {
+				uni.showToast({
+					title: msg,
+					icon: 'none',
+					duration: 2000
+				});
 			}
 		},
 		onShareAppMessage() {
@@ -412,7 +486,7 @@
 
 				.icon {
 					font-size: 32rpx;
-					color: #37bde6;
+					color: #D41003;
 					margin-right: 16rpx;
 				}
 
@@ -431,7 +505,7 @@
 
 		.btn {
 			flex: 1;
-			background: #37bde6;
+			background: #D41003;
 			color: #fff;
 			text-align: center;
 			padding: 24rpx 0;
@@ -580,7 +654,7 @@
 
 					&.active {
 						background: #f5f5f5;
-						border: #37bde6 solid 1rpx;
+						border: #D41003 solid 1rpx;
 					}
 
 					.card-company {
@@ -600,7 +674,7 @@
 				align-items: center;
 				justify-content: center;
 				padding: 30rpx;
-				color: #37bde6;
+				color: #D41003;
 				font-size: 30rpx;
 
 				.icon {
@@ -702,7 +776,7 @@
 						position: relative;
 
 						&.active {
-							border-color: #37bde6;
+							border-color: #D41003;
 							background: #f0f9ff;
 						}
 
@@ -732,7 +806,7 @@
 						}
 
 						.checked {
-							color: #37bde6;
+							color: #D41003;
 							font-size: 36rpx;
 						}
 					}

--
Gitblit v1.9.2