From e1e2fe5710a5b5cd9c19bd3aa99c998a1a613ca8 Mon Sep 17 00:00:00 2001
From: quanwei <419654421@qq.com>
Date: Sat, 17 Jan 2026 17:58:01 +0800
Subject: [PATCH] 团购组件增加筛选
---
mobile/pages/branch/activity/detail/detail.vue | 177 ++++++++++++++++++++++++++++++++++++++++++++++------------
1 files changed, 139 insertions(+), 38 deletions(-)
diff --git a/mobile/pages/branch/activity/detail/detail.vue b/mobile/pages/branch/activity/detail/detail.vue
index ba3cf90..513f949 100644
--- a/mobile/pages/branch/activity/detail/detail.vue
+++ b/mobile/pages/branch/activity/detail/detail.vue
@@ -40,9 +40,23 @@
</view>
</view>
</view>
- <view class="activity-item" v-if="activityData.is_visit == 1">
- <view class="gray6 f24">活动地点</view>
- <view class="info">{{activityData.address}}</view>
+ <view class="activity-item d-b-c" v-if="activityData.is_visit == 1">
+ <view class="flex-1">
+ <view class="gray6 f24">活动地点</view>
+ <view class="info">{{activityData.address}}</view>
+ </view>
+ <view>
+ <view class="d-s-c contact ml20">
+ <view class="d-c-c d-c" @click="openLocation()">
+ <text class="iconfont icon-dizhi"></text>
+ <text class="text">导航</text>
+ </view>
+ <view class="d-c-c d-c ml20" @click="callPhone()">
+ <text class="iconfont icon-002dianhua"></text>
+ <text class="text">电话</text>
+ </view>
+ </view>
+ </view>
</view>
<view class="activity-item" v-if="activityData.is_visit == 1">
<view class="gray6 f24">走访企业</view>
@@ -57,17 +71,25 @@
<view class="gray6 f24">活动发起分会</view>
<view class="info">{{activityData.branch.name}}</view>
</view>
- <view class="activity-item d-b-c">
+ <view class="activity-item">
<view>
- <view class="gray6 f24">已报名人数</view>
- <view class="info">{{activityData.total}}</view>
+ <view class="gray6 f24">已报名人员({{activityData.total}}人)</view>
+ <view class="info"></view>
</view>
- <view class="avatar-list d-s-c">
- <image :src="item.avatarUrl" mode="aspectFill" v-for="(item, index) in userList"
- :key="index"></image>
- <view class="more" v-if="activityData.total > 8"></view>
+ <view class="avatar-list d-s-c pt10">
+ <view class="d-c-c d-c avatar-item" v-for="(item, index) in userList" :key="index">
+ <image :src="item.avatarUrl" mode="aspectFill"></image>
+ <text class="text-ellipsis">{{item.real_name}}</text>
+ </view>
+ <view class="more d-c-c d-c" v-if="activityData.total > 5" @click="openUser">
+ <view class="d-c-c more-icon">
+ <text class="iconfont icon-gengduo"></text>
+ </view>
+ <text>更多</text>
+ </view>
</view>
</view>
+
<!-- 活动结束图标 -->
<view class="status-image" v-if="activityData.status_text.status==2">
<image :src="remoteImg('finish')"></image>
@@ -106,29 +128,33 @@
<button class='modifyBnt' @click="showShare" v-else>分享给好友</button>
</view>
<block v-else>
- <view class="d-c-c two-col-btn">
- <!-- 如果已经报名 -->
- <block v-if="activityData.is_reg">
- <button class='modifyBnt disabled' @click="scanCode">您已报名</button>
- <button class='modifyBnt' @click="onReg(true)" v-if="canReg==1">帮朋友报名</button>
+ <!-- 如果已经报名 -->
+ <view class="d-c-c two-col-btn" v-if="activityData.is_reg">
+ <button class='modifyBnt disabled' v-if="activityData.is_verify">您已签到</button>
+ <button class='modifyBnt disabled' v-else @click="scanCode">您已报名</button>
+ <button class='modifyBnt' @click="onReg(true)" v-if="canReg==1">帮朋友报名</button>
+ <block v-else>
+ <button class='modifyBnt' @click="showShare" v-if="activityData.is_verify">分享给好友</button>
<button class='modifyBnt' @click="scanCode" v-else>扫码签到</button>
</block>
- <!-- 如果还没有报名 -->
- <block v-else>
- <view class="d-c-c two-col-btn" v-if="canReg==1">
- <button class='modifyBnt' @click="onReg(false)">我要报名</button>
- <button class='modifyBnt' @click="onReg(true)">帮朋友报名</button>
- </view>
- <button v-else-if="canReg==0" class='modifyBnt disabled'>报名未开始</button>
+ </view>
+ <!-- 如果还没有报名 -->
+ <block v-else>
+ <view class="d-c-c two-col-btn" v-if="canReg==1">
+ <button class='modifyBnt' @click="onReg(false)">我要报名</button>
+ <button class='modifyBnt' @click="onReg(true)">帮朋友报名</button>
+ </view>
+ <view class="d-c-c" v-else>
+ <button v-if="canReg==0" class='modifyBnt disabled'>报名未开始</button>
<button v-else-if="canReg==3" class='modifyBnt disabled'>已报满</button>
<button v-else class='modifyBnt disabled'>报名已结束</button>
- </block>
- </view>
+ </view>
+ </block>
</block>
</view>
</view>
<!-- 活动购物图标(仅在活动进行时显示) -->
- <view class="shopping-box" @click="gotoPage('pages/branch/activity/product/index?activity_id='+activity_id)" v-if="activityData.is_visit && activityData.status_text.status == 1">
+ <view class="shopping-box" @click="gotoPage('pages/branch/activity/product/index?activity_id='+activity_id)" v-if="activityData.is_visit && activityData.status_text.status == 1 && activityData.is_verify">
<image :src="remoteImg('activity_shopping')"></image>
</view>
<!--报名成功弹窗-->
@@ -188,6 +214,8 @@
<AppShare :isAppShare="isAppShare" :appParams="appParams" @close="closeAppShare"></AppShare>
<!-- 打开活动相册 -->
<Album ref="album" :isOpenAlbum="isOpenAlbum" :activity_id="activity_id" @close="closeAlbumFunc"></Album>
+ <!-- 打开报名用户名单 -->
+ <User ref="user" :isOpenUser="isOpenUser" :activity_id="activity_id" @close="closeUserFunc"></User>
</view>
</template>
@@ -201,13 +229,15 @@
import Album from './popup/album.vue'; // 相册
import uniPopup from '@/components/uni-popup.vue';
import utils from '@/common/utils.js';
+ import User from './popup/user.vue'; // 相册
export default {
components: {
RegForm,
AppShare,
Share,
Album,
- uniPopup
+ uniPopup,
+ User,
},
data() {
return {
@@ -252,6 +282,7 @@
is_friend: false, // 是否是帮朋友报名
isShowVerify: false, // 核销选择框(针对核销时返回未报名的情况,选择是否有朋友帮报名)
verify_mobile: '', // 朋友帮报名填的手机号
+ isOpenUser: false, // 报名用户名单弹窗
}
},
onLoad(e) {
@@ -497,10 +528,12 @@
onReg(e) {
this.$refs.regForm.activityData = this.activityData;
+ /* this.$refs.regForm.branch_name = this.activityData.branch.name;
+ this.$refs.regForm.formData.branch_id = this.activityData.branch_id; */
this.is_friend = e;
- if (this.activityData.fee > 0 || e) {
+ //if (this.activityData.fee > 0 || e || !this.activityData.is_member) {
this.isOpenReg = true;
- } else {
+ /* } else {
uni.showModal({
title: '提示',
content: '确定要报名吗?',
@@ -510,7 +543,7 @@
}
}
});
- }
+ } */
},
closeRegFunc(e) {
@@ -738,7 +771,56 @@
});
//#endif
},
+
+ callPhone(){
+ uni.makePhoneCall({
+ phoneNumber: this.activityData.phone + ''
+ });
+ },
+
+ /*导航*/
+ openLocation() {
+ let self = this;
+ uni.openLocation({
+ latitude: Number(this.activityData.latitude),
+ longitude: Number(this.activityData.longitude),
+ address: this.activityData.address
+ });
+ },
+
+ // 打开报名名单
+ openUser() {
+ this.isOpenUser = true;
+ },
+
+ closeUserFunc(e) {
+ this.isOpenUser = false;
+ },
+ },
+ onShareAppMessage() {
+ if (this.activityData) {
+ return {
+ title: `${this.activityData.name}`,
+ path: `/pages/plus/business/detail?activity_id=${this.activity_id}`
+ };
+ }
+ return {
+ title: '活动详情',
+ path: `/pages/plus/business/detail?activity_id=${this.activity_id}`
+ };
+ },
+ onShareTimeline() {
+ if (this.activityData) {
+ return {
+ title: `${this.activityData.name}`,
+ path: `/pages/plus/business/detail?activity_id=${this.activity_id}`
+ };
+ }
+ return {
+ title: '活动详情',
+ path: `/pages/plus/business/detail?activity_id=${this.activity_id}`
+ };
}
}
</script>
@@ -812,26 +894,45 @@
}
.iconfont {
- margin-right: 17rpx;
+ // margin-right: 17rpx;
font-size: 34rpx;
}
.activity-item {
.avatar-list {
+ .avatar-item {
+ width: 90rpx;
+ padding-right: 10rpx;
+ }
image {
width: 70rpx;
height: 70rpx;
border-radius: 70rpx;
- border: 2rpx solid #ffffff;
- margin-left: -20rpx;
}
.more {
- position: relative;
- width: 140rpx;
- height: 70rpx;
- margin-left: -140rpx;
- background: linear-gradient(to right, rgba(255, 255, 255, 0), rgba(255, 255, 255, .9));
+ padding-left: 10rpx;
+
+ .more-icon {
+ width: 70rpx;
+ height: 70rpx;
+ border-radius: 70rpx;
+ background: #f1f1f1;
+ }
+ }
+ }
+
+ .contact {
+ .iconfont {
+ font-size: 30rpx;
+ // font-weight: bold;
+ color: #333333;
+ margin-right: 0;
+ }
+
+ .text {
+ font-size: 24rpx;
+ color: #333333;
}
}
}
@@ -1167,7 +1268,7 @@
width: 180rpx;
height: 180rpx;
position: fixed;
- bottom: 120rpx;
+ bottom: 130rpx;
right: 20rpx;
animation: pulse 0.8s infinite; /* 动画名称,持续时间,无限循环 */
}
--
Gitblit v1.9.2