refactor(diy-components): 统一使用@tap.stop替换@click事件处理

将组件中的@click事件统一替换为@tap.stop,避免在小程序环境中可能出现的点击事件冒泡问题,提升交互体验的一致性。同时移除冗余的@tap事件绑定,保持代码简洁。

主要修改包括:
- 表单提交按钮
- 分享功能
- 热区点击
- 富文本点击
- 视频播放
- 直播入口
- 商品品牌
- 客服功能
- 快捷导航
- 公告弹窗
- 文章列表
- 底部导航
- 商品列表
- 浮动按钮
- 优惠券
- 搜索功能
- 店铺相关
- 文本组件
- 分类页面
- 魔方组件
- 秒杀功能
- 拼团功能
- 预售功能
- 砍价功能
- 分销商品
- 图片广告
- 支付二维码
- 图片导航
- 音频控制
- 地图导航
- 笔记功能
- 商户列表
- 图片组件
- 会员订单
- 图文导航
- 首页分类
- 商品推荐
- 团购功能
- 限时折扣
- 商品分类
- 商品列表
- 优惠券
- 搜索功能
- 店铺相关
- 文本组件
- 分类页面
- 魔方组件
- 秒杀功能
- 拼团功能
- 预售功能
- 砍价功能
- 分销商品
- 图片广告
- 支付二维码
- 图片导航
- 音频控制
- 地图导航
- 笔记功能
- 商户列表
- 图片组件
- 会员订单
- 图文导航
- 首页分类
- 商品推荐
- 团购功能
- 限时折扣
- 商品分类
This commit is contained in:
2026-01-26 15:05:36 +08:00
parent 2a5214df11
commit 0dc4dec616
44 changed files with 194 additions and 211 deletions

View File

@@ -4,7 +4,7 @@
<view class="common-wrap info-wrap" :class="[`data-style-${value.style}`]">
<view class="member-info" :style="memberInfoStyle">
<view class="info-wrap" :style="infoStyle" v-if="memberInfo">
<view class="headimg" @click="getWxAuth">
<view class="headimg" @tap.stop="getWxAuth">
<image :src="memberInfo.headimg ? $util.img(memberInfo.headimg) : $util.getDefaultImage().head"
mode="widthFix" @error="memberInfo.headimg = $util.getDefaultImage().head" />
</view>
@@ -12,10 +12,10 @@
<!-- #ifdef MP -->
<block
v-if="(memberInfo.nickname.indexOf('u_') != -1 && memberInfo.nickname == memberInfo.username) || memberInfo.nickname == memberInfo.mobile">
<view class="nickname"><text class="name" @click="getWxAuth">点击授权头像昵称</text></view>
<view class="nickname"><text class="name" @tap.stop="getWxAuth">点击授权头像昵称</text></view>
</block>
<view class="nickname" v-else>
<text class="name" @click="getWxAuth">{{ memberInfo.nickname }}</text>
<text class="name" @tap.stop="getWxAuth">{{ memberInfo.nickname }}</text>
<view class="member-level"
v-if="(value.style == 1 || value.style == 2) && memberInfo.member_level">
<!-- <text class="icondiy icon-system-huangguan"></text> -->
@@ -36,10 +36,10 @@
<!-- #ifdef H5 -->
<block
v-if="$util.isWeiXin() && ((memberInfo.nickname.indexOf('u_') != -1 && memberInfo.nickname == memberInfo.username) || memberInfo.nickname == memberInfo.mobile)">
<view class="nickname"><text class="name" @click="getWxAuth">点击获取微信头像</text></view>
<view class="nickname"><text class="name" @tap.stop="getWxAuth">点击获取微信头像</text></view>
</block>
<view class="nickname" v-else>
<text class="name" @click="redirect('/pages_tool/member/info')">{{ memberInfo.nickname
<text class="name" @tap.stop="redirect('/pages_tool/member/info')">{{ memberInfo.nickname
}}</text>
<view class="member-level"
v-if="(value.style == 1 || value.style == 2) && memberInfo.member_level">
@@ -61,10 +61,10 @@
</view>
<view v-if="ischina == 1"
style="background: #fff;height: 60rpx;width: 60rpx;border-radius: 50rpx;line-height:65rpx;text-align: center;color:#000"
@click.stop="modifyInfo()">{{ langIndex == 0 ? 'CN' : 'EN' }}</view>
@tap.stop="modifyInfo()">{{ langIndex == 0 ? 'CN' : 'EN' }}</view>
</view>
<view class="info-wrap" v-else :style="infoStyle" @click="redirect($util.MEMBER_PAGE_URL)">
<view class="info-wrap" v-else :style="infoStyle" @tap.stop="redirect($util.MEMBER_PAGE_URL)">
<view class="headimg">
<image :src="$util.getDefaultImage().head" mode="widthFix"></image>
</view>
@@ -75,12 +75,12 @@
<view v-if="ischina == 1"
style="background: #fff;height: 60rpx;width: 60rpx;border-radius: 50rpx;line-height:65rpx;text-align: center;color:#000"
@click.stop="modifyInfo()">{{ langIndex == 0 ? 'CN' : 'EN' }}</view>
@tap.stop="modifyInfo()">{{ langIndex == 0 ? 'CN' : 'EN' }}</view>
</view>
<view class="account-info" v-show="value.style == 1"
:style="{ 'margin-left': parseInt(value.infoMargin) * 2 + 'rpx', 'margin-right': parseInt(value.infoMargin) * 2 + 'rpx' }">
<view class="account-item" @click="redirect('/pages_tool/member/balance')">
<view class="account-item" @tap.stop="redirect('/pages_tool/member/balance')">
<view class="value price-font">
{{ memberInfo ? (parseFloat(memberInfo.balance) +
parseFloat(memberInfo.balance_money)).toFixed(2) : '--' }}
@@ -88,12 +88,12 @@
<view class="title">{{ $lang('balance') }}</view>
</view>
<view class="solid"></view>
<view class="account-item" @click="redirect('/pages_tool/member/point_detail')">
<view class="account-item" @tap.stop="redirect('/pages_tool/member/point_detail')">
<view class="value price-font">{{ memberInfo ? parseFloat(memberInfo.point) : '--' }}</view>
<view class="title">{{ $lang('point') }}</view>
</view>
<view class="solid"></view>
<view class="account-item" @click="redirect('/pages_tool/member/coupon')">
<view class="account-item" @tap.stop="redirect('/pages_tool/member/coupon')">
<view class="value price-font">
{{ memberInfo && memberInfo.coupon_num != undefined ? memberInfo.coupon_num : '--' }}
</view>
@@ -110,8 +110,8 @@
<text>超级会员</text>
</view>
<view class="super-text">
<text class="see" v-if="memberInfo && memberInfo.member_level_type" @click="redirectBeforeAuth('/pages_tool/member/card')">查看特权</text>
<text class="see" v-else @click="redirectBeforeAuth('/pages_tool/member/card_buy')">会员可享更多权益</text>
<text class="see" v-if="memberInfo && memberInfo.member_level_type" @tap.stop="redirectBeforeAuth('/pages_tool/member/card')">查看特权</text>
<text class="see" v-else @tap.stop="redirectBeforeAuth('/pages_tool/member/card_buy')">会员可享更多权益</text>
<text class="iconfont icon-right"></text>
</view>
</block>
@@ -121,8 +121,8 @@
<view class="desc">开通可享更多权益</view>
</view>
<view class="super-text">
<text class="see" v-if="memberInfo && memberInfo.member_level_type" @click="redirectBeforeAuth('/pages_tool/member/card')">查看特权</text>
<text class="see" v-else @click="redirectBeforeAuth('/pages_tool/member/card_buy')">立即开通</text>
<text class="see" v-if="memberInfo && memberInfo.member_level_type" @tap.stop="redirectBeforeAuth('/pages_tool/member/card')">查看特权</text>
<text class="see" v-else @tap.stop="redirectBeforeAuth('/pages_tool/member/card_buy')">立即开通</text>
</view>
</block>
</view>
@@ -134,25 +134,25 @@
<view class="desc">开通可享更多权益</view>
</view>
<view class="super-text" :class="{ 'more' : memberInfo && memberInfo.member_level_type }">
<text class="see" v-if="memberInfo && memberInfo.member_level_type" @click="redirectBeforeAuth('/pages_tool/member/card')">查看更多权益</text>
<text class="see" v-else @click="redirectBeforeAuth('/pages_tool/member/card_buy')">立即开通</text>
<text class="see" v-if="memberInfo && memberInfo.member_level_type" @tap.stop="redirectBeforeAuth('/pages_tool/member/card')">查看更多权益</text>
<text class="see" v-else @tap.stop="redirectBeforeAuth('/pages_tool/member/card_buy')">立即开通</text>
</view>
</view>
<view class="account-info" :style="{ 'margin-left': parseInt(value.infoMargin) * 2 + 'rpx', 'margin-right': parseInt(value.infoMargin) * 2 + 'rpx' }">
<view class="account-item" @click="redirect('/pages_tool/member/balance_detail')">
<view class="account-item" @tap.stop="redirect('/pages_tool/member/balance_detail')">
<view class="value price-font">
{{ memberInfo ? (parseFloat(memberInfo.balance) + parseFloat(memberInfo.balance_money)).toFixed(2) : '--' }}
</view>
<view class="title">余额</view>
</view>
<view class="solid"></view>
<view class="account-item" @click="redirect('/pages_tool/member/point_detail')">
<view class="account-item" @tap.stop="redirect('/pages_tool/member/point_detail')">
<view class="value price-font">{{ memberInfo ? parseFloat(memberInfo.point) : '--' }}
</view>
<view class="title">积分</view>
</view>
<view class="solid"></view>
<view class="account-item" @click="redirect('/pages_tool/member/coupon')">
<view class="account-item" @tap.stop="redirect('/pages_tool/member/coupon')">
<view class="value price-font">
{{ memberInfo && memberInfo.coupon_num != undefined ? memberInfo.coupon_num : '--' }}
</view>
@@ -161,7 +161,7 @@
</view>
<view class="style4-other">
<view class="style4-btn-wrap">
<view @click="redirect('/pages_tool/recharge/list')" class="recharge-btn">余额充值</view>
<view @tap.stop="redirect('/pages_tool/recharge/list')" class="recharge-btn">余额充值</view>
</view>
</view>
</view> -->
@@ -169,18 +169,18 @@
<view class="account-info" v-show="value.style == 2"
:style="{ 'margin-left': parseInt(value.infoMargin) * 2 + 'rpx', 'margin-right': parseInt(value.infoMargin) * 2 + 'rpx' }">
<view class="account-item" @click="redirect('/pages_tool/member/balance')">
<view class="account-item" @tap.stop="redirect('/pages_tool/member/balance')">
<view class="value price-font">{{ memberInfo ? (parseFloat(memberInfo.balance) +
parseFloat(memberInfo.balance_money)).toFixed(2) : '--' }}</view>
<view class="title">{{ $lang('balance') }}</view>
</view>
<view class="solid"></view>
<view class="account-item" @click="redirect('/pages_tool/member/point_detail')">
<view class="account-item" @tap.stop="redirect('/pages_tool/member/point_detail')">
<view class="value price-font">{{ memberInfo ? parseFloat(memberInfo.point) : '--' }}</view>
<view class="title">{{ $lang('point') }}</view>
</view>
<view class="solid"></view>
<view class="account-item" @click="redirect('/pages_tool/member/coupon')">
<view class="account-item" @tap.stop="redirect('/pages_tool/member/coupon')">
<view class="value price-font">
{{ memberInfo && memberInfo.coupon_num != undefined ? memberInfo.coupon_num : '--' }}
</view>
@@ -196,7 +196,7 @@
<view class="head">
<text class="title">获取您的昵称头像</text>
<text class="color-tip tips">获取用户头像昵称完善个人资料主要用于向用户提供具有辨识度的用户中心界面</text>
<text class="iconfont icon-close color-tip" @click="cancelCompleteInfo"></text>
<text class="iconfont icon-close color-tip" @tap.stop="cancelCompleteInfo"></text>
</view>
<!-- #ifdef MP-WEIXIN -->
<view class="item-wrap">
@@ -227,7 +227,7 @@
<input type="nickname" placeholder="请输入昵称" v-model="nickName" @blur="blurNickName" />
</view>
<!-- #endif -->
<button type="default" class="save-btn" @click="saveCompleteInfo" :disabled="isDisabled">保存</button>
<button type="default" class="save-btn" @tap.stop="saveCompleteInfo" :disabled="isDisabled">保存</button>
</view>
</uni-popup>
</view>