Commit 67e3f569 authored by 张九刚's avatar 张九刚

feat: copyback

parent d177b5a6
......@@ -3,21 +3,12 @@
<view class="popup-content" @click.stop>
<!-- 喂养方式列表 -->
<view class="feed-list">
<view
v-for="(item, index) in feedOptions"
:key="index"
class="feed-item"
:class="{ selected: selectedIndex === index }"
@click="selectFeed(index)"
>
<view v-for="(item, index) in feedOptions" :key="index" class="feed-item"
:class="{ selected: selectedIndex === index }" @click="selectFeed(index)">
<!-- 选中背景 -->
<image
v-if="selectedIndex === index"
class="feed-item-bg"
:src="`${$baseUrl}shengzhangTool/1001/changeFeed/itemBg.png`"
mode="aspectFit"
/>
<image v-if="selectedIndex === index" class="feed-item-bg"
:src="`${$baseUrl}shengzhangTool/1001/changeFeed/itemBg.png`" mode="aspectFit" />
<!-- 喂养方式文本 -->
<text class="feed-text">{{ item.name }}</text>
</view>
......@@ -25,30 +16,21 @@
<!-- 底部按钮 -->
<view class="bottom-buttons">
<image
class="cancel-btn"
:class="{'cancel-btn-active': isCancelPressed}"
<image class="cancel-btn" :class="{ 'cancel-btn-active': isCancelPressed }"
:src="`${$baseUrl}shengzhangTool/1001/changeFeed/cancelBtn.png`"
@touchstart="handleCancelTouchStart"
@touchend="handleCancelTouchEnd"
mode="aspectFit"
/>
<image
class="ok-btn"
:class="{'ok-btn-active': isOkPressed}"
:src="`${$baseUrl}shengzhangTool/1001/changeFeed/okBtn.png`"
@touchstart="handleOkTouchStart"
@touchend="handleOkTouchEnd"
mode="aspectFit"
/>
@touchstart="handleCancelTouchStart" @touchend="handleCancelTouchEnd" mode="aspectFit" />
<image class="ok-btn" :class="{ 'ok-btn-active': isOkPressed }"
:src="`${$baseUrl}shengzhangTool/1001/changeFeed/okBtn.png`" @touchstart="handleOkTouchStart"
@touchend="handleOkTouchEnd" mode="aspectFit" />
</view>
</view>
</view>
</template>
<script setup>
import { ref, defineEmits, defineProps, onMounted } from 'vue'
import { ref, defineEmits, defineProps, watch, onMounted } from 'vue'
import md from '../md.js'
const props = defineProps({
visible: {
......@@ -109,12 +91,18 @@ const handleOkTouchStart = () => {
const handleOkTouchEnd = () => {
isOkPressed.value = false
md.sensorPopLogTake({
xcxPopClick: "true",
toolName: "生长曲线",
popName: "喂养方式选择弹窗",
buttonName: "确认"
});
const index = selectIndex.value
const selectedFeed = feedOptions.value[index]
// 发送事件通知主页面
emit('change', selectedFeed, index)//只能传一个参数
closePopup()
}
......@@ -127,11 +115,11 @@ const openFeedSelector = () => {
// 处理喂养方式选择变化
const onFeedChange = (feedOption, index) => {
isLoadingFeed.value = true
console.log('选择了喂养方式:', feedOption, index)
selectedFeedText.value = feedOption.name
currentFeedIndex.value = index
// 模拟保存数据
setTimeout(() => {
isLoadingFeed.value = false
......@@ -139,10 +127,23 @@ const onFeedChange = (feedOption, index) => {
}
const closePopup = () => {
md.sensorPopLogTake({
xcxPopClick: "true",
toolName: "生长曲线",
popName: "喂养方式选择弹窗",
buttonName: "取消"
});
emit('update:visible', false)
}
onMounted(() => {
watch(() => props.visible, (newVal) => {
if (newVal) {
md.sensorPopLogTake({
xcxPopExposure: "true",
toolName: "生长曲线",
popName: "喂养方式选择弹窗"
});
}
})
</script>
......@@ -173,7 +174,7 @@ onMounted(() => {
overflow-y: auto;
padding-left: 30rpx;
padding-right: 30rpx;
.feed-item {
position: relative;
display: flex;
......@@ -183,18 +184,18 @@ onMounted(() => {
margin-bottom: 20rpx;
border-radius: 16rpx;
background-color: #fff;
&.selected {
background-color: transparent;
}
.feed-item-bg {
position: absolute;
width: 689rpx;
height: 108rpx;
z-index: 1;
}
.feed-text {
position: relative;
z-index: 2;
......@@ -212,22 +213,22 @@ onMounted(() => {
padding-top: 20rpx;
padding-left: 30rpx;
padding-right: 30rpx;
.cancel-btn {
width: 334rpx;
height: 97rpx;
transition: transform 0.1s ease-out;
&.cancel-btn-active {
transform: scale(0.95);
}
}
.ok-btn {
width: 334rpx;
height: 97rpx;
transition: transform 0.1s ease-out;
&.ok-btn-active {
transform: scale(0.95);
}
......@@ -251,23 +252,22 @@ onMounted(() => {
display: flex;
align-items: center;
cursor: pointer; // 添加手型光标
.feeding-value {
font-size: 28rpx;
color: #666;
margin-right: 8rpx;
}
.dropdown-icon {
width: 20rpx;
height: 20rpx;
transition: transform 0.3s ease; // 添加旋转动画
}
// 可选:添加点击反馈效果
&:active {
opacity: 0.7;
}
}
</style>
......@@ -67,6 +67,7 @@
<script setup>
import { ref, defineEmits, defineProps, onMounted } from 'vue'
import { useUserStore } from "@/stores/user";
import md from '../md.js'
// const props = defineProps({
// visible: {
......@@ -104,6 +105,12 @@ const handleOkTouchStart = () => {
}
const handleOkTouchEnd = async () => {
md.sensorPopLogTake({
xcxPopClick: "true",
toolName: "生长曲线",
popName: "切换宝宝弹窗",
buttonName: "确认"
});
isOkPressed.value = false
const index = selectIndex.value;
......@@ -116,11 +123,23 @@ const handleOkTouchEnd = async () => {
}
const closePopup = () => {
md.sensorPopLogTake({
xcxPopClick: "true",
toolName: "生长曲线",
popName: "切换宝宝弹窗",
buttonName: "关闭"
});
emit('update:visible', false)
}
const selectIndex = ref(0)
const selectBaby = (index) => {
md.sensorPopLogTake({
xcxPopClick: "true",
toolName: "生长曲线",
popName: "切换宝宝弹窗",
buttonName: "宝宝列表"
});
selectIndex.value = index;
emit('update:selectedIndex', index);
}
......@@ -135,6 +154,11 @@ onMounted(() => {
const selectedIndexInList = babyList.value.findIndex(item => item.selected === true)
console.log('选中宝宝的索引:', selectedIndexInList)
selectIndex.value = selectedIndexInList;
md.sensorPopLogTake({
xcxPopExposure: "true",
toolName: "生长曲线",
popName: "切换宝宝弹窗"
});
})
......
......@@ -27,7 +27,8 @@
</template>
<script setup>
import { ref, defineEmits, defineProps } from 'vue'
import { ref, defineEmits, defineProps,watch } from 'vue'
import md from '../md.js'
const props = defineProps({
visible: {
......@@ -67,11 +68,27 @@ const handleOkTouchStart = () => {
const handleOkTouchEnd = () => {
isOkPressed.value = false
closePopup()
md.sensorPopLogTake({
xcxPopClick: "true",
toolName: "生长曲线",
popName: "测量方式提示弹窗",
buttonName: "我知道了"
});
}
const closePopup = () => {
emit('update:visible', false)
}
watch(() => props.visible, (newVal) => {
if (newVal) {
md.sensorPopLogTake({
xcxPopExposure: "true",
toolName: "生长曲线",
popName: "测量方式提示弹窗"
});
}
})
</script>
<style lang="less" scoped>
......
......@@ -65,7 +65,8 @@
</template>
<script setup>
import { ref, defineEmits, defineProps, watch, computed } from 'vue'
import { ref, defineEmits, defineProps, watch, computed,onMounted } from 'vue'
import md from '../md.js'
const props = defineProps({
visible: {
......@@ -107,6 +108,9 @@ const yearRange = computed(() => {
return yearRange
})
onMounted(() => {
})
// 生成月份范围 (1-12)
const monthRange = computed(() => {
......@@ -252,6 +256,12 @@ const handleOkTouchEnd = () => {
}
const closePopup = () => {
md.sensorPopLogTake({
xcxPopClick: "true",
toolName: "生长曲线",
popName: "选择本次测评日期弹窗",
buttonName: "关闭"
});
// 格式化日期为 YYYY-MM-DD
const year = currentDate.value.getFullYear()
const month = String(currentDate.value.getMonth() + 1).padStart(2, '0')
......
......@@ -25,7 +25,8 @@
</template>
<script setup>
import { defineProps, defineEmits } from 'vue'
import { defineProps, defineEmits,watch } from 'vue'
import md from '../md.js'
// 定义props
const props = defineProps({
......@@ -40,8 +41,24 @@ const emit = defineEmits(['close'])
// 关闭弹窗
const closePopup = () => {
md.sensorPopLogTake({
xcxPopClick: "true",
toolName: "生长曲线",
popName: "生长曲线介绍弹窗",
buttonName: "我知道了"
});
emit('close')
}
watch(() => props.visible, (newVal) => {
if (newVal) {
md.sensorPopLogTake({
xcxPopExposure: "true",
toolName: "生长曲线",
popName: "生长曲线介绍弹窗"
});
}
})
</script>
<style lang="less" scoped>
......
......@@ -135,6 +135,49 @@ const sensorComponentLogTake = (logObj) => {
sensorComponentLog(evt);
};
const sensorPopLog = (evt) => {
const _dataset = evt.currentTarget.dataset;
const logObj = _dataset.poplog;
if (!logObj) {
return;
}
const { xcxPopExposure, xcxPopClick } = logObj;
let trackObj = {};
for (let key in logObj) {
trackObj[key] = logObj[key];
}
if (xcxPopExposure && xcxPopExposure.length > 0) {
console.warn("-----xcxPopExposure-----", trackObj);
sensors.track("xcxPopExposure", {
...trackObj,
});
}
if (xcxPopClick && xcxPopClick.length > 0) {
console.warn("-----xcxPopClick-----", trackObj);
sensors.track("xcxPopClick", {
...trackObj,
});
}
};
/**
* 主动通过配置数据触发埋点
* @param {*} evt
*/
const sensorPopLogTake = (logObj) => {
if (!logObj) {
return;
}
const evt = {
currentTarget: {
dataset: {
poplog: logObj,
},
},
};
sensorPopLog(evt);
};
export default {
init,
sensors,
......@@ -143,4 +186,6 @@ export default {
sensorLogTake,
sensorComponentLog,
sensorComponentLogTake,
sensorPopLog,
sensorPopLogTake,
};
......@@ -1885,6 +1885,12 @@ async function completeRecord() {
// 显示成功弹窗
successPopup.value.open()
md.sensorPopLogTake({
xcxPopExposure: "true",
toolName: "喂养记录",
popName: "添加成功弹窗"
});
......@@ -2406,6 +2412,7 @@ function showAddFoodPopup(categoryName) {
pageName: "喂养工具首页",
buttonName: "辅食添加" + categoryName,
});
// 防连点检查
if (foodSelectionState.value.isAddingFood) {
console.log('防连点:添加辅食按钮被阻止')
......@@ -2439,7 +2446,11 @@ function showAddFoodPopup(categoryName) {
foodSelectionState.value.newFoodItem = ''
// 显示弹窗
addFoodPopup.value.open()
md.sensorPopLogTake({
xcxPopExposure: "true",
toolName: "喂养记录",
popName: "新增辅食弹窗",
});
// 立即重置防连点状态(弹窗显示后)
setTimeout(() => {
foodSelectionState.value.isAddingFood = false
......@@ -2458,6 +2469,12 @@ function toggleCategoryExpansion(categoryName) {
function cancelAddFood() {
addFoodPopup.value.close()
foodSelectionState.value.newFoodItem = ''
md.sensorPopLogTake({
xcxPopClick: "true",
toolName: "喂养记录",
popName: "新增辅食弹窗",
buttonName: "取消"
});
}
function confirmAddFood() {
......@@ -2465,6 +2482,12 @@ function confirmAddFood() {
console.log('防连点:添加辅食按钮被阻止')
return
}
md.sensorPopLogTake({
xcxPopClick: "true",
toolName: "喂养记录",
popName: "新增辅食弹窗",
buttonName: "添加"
});
foodSelectionState.value.isAddingFood = true
console.log('防连点:设置添加辅食状态为true')
......@@ -3246,7 +3269,11 @@ async function startPollingRecognitionResult(taskId) {
voiceRecognitionState.value.voiceDateTime = `${year}-${month}-${day} ${hours}:${minutes}:00`
}
voiceRecognitionState.value.showResultPage = true
md.sensorPopLogTake({
xcxPopExposure: "true",
toolName: "喂养记录",
popName: "语音识别结果弹窗"
});
// 显示识别成功提示
uni.showToast({
title: '语音识别成功',
......@@ -3402,7 +3429,12 @@ function formatRecordingDuration(seconds) {
function reRecognize() {
console.log('重新识别...')
md.sensorPopLogTake({
xcxPopClick: "true",
toolName: "喂养记录",
popName: "语音识别结果弹窗",
buttonName: "不对,重新识别"
});
// 清理轮询状态
clearPollingInterval()
......@@ -3429,6 +3461,12 @@ async function completeVoiceRecord() {
if (isSubmitting.value) {
return
}
md.sensorPopLogTake({
xcxPopClick: "true",
toolName: "喂养记录",
popName: "语音识别结果弹窗",
buttonName: "完成记录"
});
const detailText = voiceRecognitionState.value.recognizedText.trim()
......@@ -3486,6 +3524,11 @@ async function completeVoiceRecord() {
// 显示成功弹窗
successPopup.value.open()
md.sensorPopLogTake({
xcxPopExposure: "true",
toolName: "喂养记录",
popName: "添加成功弹窗"
});
} catch (error) {
console.error('保存语音记录失败:', error)
// uni.hideLoading()
......@@ -3543,11 +3586,23 @@ async function onSuccessJump() {
},
}); // 关闭弹窗
successPopup.value.close()
md.sensorPopLogTake({
xcxPopClick: "true",
toolName: "喂养记录",
popName: "添加成功弹窗",
buttonName: "关闭"
});
}
function onSuccessClose() {
// 关闭弹窗
successPopup.value.close()
md.sensorPopLogTake({
xcxPopClick: "true",
toolName: "喂养记录",
popName: "添加成功弹窗",
buttonName: "咨询专家"
});
// 跳转至记录页面
uni.navigateTo({
url: '/pages/feedingRecord/feedingRecord'
......
......@@ -723,9 +723,21 @@ function editRecord(index) {
editingRecord.value = { index, record }
showEditPopup.value = true
md.sensorPopLogTake({
xcxPopExposure: "true",
toolName: "喂养记录",
popName: "日历页确认修改内容弹窗"
});
}
function closeEditPopup() {
md.sensorPopLogTake({
xcxPopClick: "true",
toolName: "喂养记录",
popName: "日历页确认修改内容弹窗",
buttonName: "取消"
});
showEditPopup.value = false
editingRecord.value = null
editForm.value = { time: '', type: '', content: '' }
......@@ -800,6 +812,12 @@ function onEditTypeChange(event) {
}
async function saveEditRecord() {
md.sensorPopLogTake({
xcxPopClick: "true",
toolName: "喂养记录",
popName: "日历页确认修改内容弹窗",
buttonName: "保存修改"
});
if (!editForm.value.time || !editForm.value.type) {
uni.showToast({ title: '请填写完整信息', icon: 'none' })
return
......
<template>
<view>
<view class="postnatal">
<!-- 自定义头部 -->
<!-- 自定义头部 -->
<!-- <customize-navigation>
<template v-slot:navbar-content>
<view class="page-top">
......@@ -11,10 +11,10 @@
<view class="page_title">产检提醒</view>
</view>
</template>
</customize-navigation> -->
</customize-navigation> -->
<view class="postnatal-con">
<!-- 轮播图 -->
<swiper class="banner-swiper" :autoplay="true" :circular="true" v-if="bannerList.length > 0 ">
<swiper class="banner-swiper" :autoplay="true" :circular="true" v-if="bannerList.length > 0">
<swiper-item v-for="(item, index) in bannerList" :key="index">
<image class="banner-img" :src="`${item.img}`" mode="aspectFill"
@click="handleBannerClick(item, index)" />
......@@ -46,7 +46,7 @@
</view>
<!-- 产检记录 -->
<scroll-view class="postnatal-con-record" scroll-y :scroll-top="scrollTop">
<!-- <view class="postnatal-con-record"> -->
<!-- <view class="postnatal-con-record"> -->
<view :class="['record-item', `item-${index}`]"
v-for="({ id, checkupDate, index, pregnancyWeek, status, examinationItems, type }, i) in homeInfo.checkupList"
@click="onDetails(id, type)" :key="i">
......@@ -79,7 +79,7 @@
重点:{{ getProject(examinationItems) }}
</view>
</view>
<!-- </view> -->
<!-- </view> -->
</scroll-view>
</view>
<!-- 新增产检 -->
......@@ -112,9 +112,9 @@
</view>
</view>
</view>
<!-- 提示弹窗 -->
<popup-tip v-if="isTip" type="2" @statusChange="onBabyChange" @close="isTip = false"></popup-tip>
<popup-tip v-if="isTip" type="2" @statusChange="onBabyChange" @close="isTip = false"></popup-tip>
<!-- 使用封装后的日期选择器组件 -->
<DatePicker v-model:visible="visible" :default-date="time" @confirm="handleDateConfirm" />
......@@ -258,7 +258,7 @@ const backHandler = () => {
const handleBannerClick = (item, index) => {
console.log(item)
let buttonName = '';
switch(index){
switch (index) {
case 0:
buttonName = '第一张焦点图';
break;
......@@ -285,7 +285,7 @@ const handleBannerClick = (item, index) => {
})
}
}
// 新增体检
const onAdd = () => {
......@@ -306,7 +306,14 @@ const onBtn = (type) => {
switch (type) {
case 0:
// 如果授权就不弹出提醒
showPicker.value = isWxNotification.value ? true : false
showPicker.value = isWxNotification.value ? true : false
if (showPicker.value) {
md.sensorPopLogTake({
xcxPopExposure: "true",
toolName: "产检提醒",
popName: "设置提醒时间弹窗"
});
}
buttonName = '提醒'
break;
......@@ -336,6 +343,12 @@ const onBtn = (type) => {
// 提醒关闭
const close = () => {
showPicker.value = false;
md.sensorPopLogTake({
xcxPopClick: "true",
toolName: "产检提醒",
popName: "设置提醒时间弹窗",
buttonName: "取消"
});
}
// 选择提醒事件
const handleChange = (e) => {
......@@ -343,7 +356,7 @@ const handleChange = (e) => {
}
// 确认选择
const handleConfirm = () => {
selectedValue.value = options[pickerValue.value].id;
console.log(selectedValue.value, homeInfo.value.wxTemplateId, babyId.value)
close();
......@@ -382,35 +395,35 @@ const handleDateConfirm = (date) => {
}
// 添加计算滚动位置的方法
const scrollToCurrentWeek = async () => {
// 确保数据已加载
if (!homeInfo.value || !homeInfo.value.gestationalWeeks || !homeInfo.value.checkupList) return;
// 找到当前孕周对应的产检项
const currentItem = homeInfo.value.checkupList.find(
item => item.pregnancyWeek == homeInfo.value.gestationalWeeks
);
if (!currentItem) return;
// 等待DOM更新
await nextTick();
// 创建选择器查询
const query = uni.createSelectorQuery().in(proxy);
query.select(`.item-${currentItem.index}`).boundingClientRect();
query.select('.postnatal-con-record').boundingClientRect();
query.exec((rects) => {
if (!rects[0] || !rects[1]) return;
const [itemRect, containerRect] = rects;
// 计算元素在容器内的相对位置
const position = itemRect.top - containerRect.top;
// 设置滚动位置(增加20px的缓冲距离)
scrollTop.value = position + 20;
});
// 确保数据已加载
if (!homeInfo.value || !homeInfo.value.gestationalWeeks || !homeInfo.value.checkupList) return;
// 找到当前孕周对应的产检项
const currentItem = homeInfo.value.checkupList.find(
item => item.pregnancyWeek == homeInfo.value.gestationalWeeks
);
if (!currentItem) return;
// 等待DOM更新
await nextTick();
// 创建选择器查询
const query = uni.createSelectorQuery().in(proxy);
query.select(`.item-${currentItem.index}`).boundingClientRect();
query.select('.postnatal-con-record').boundingClientRect();
query.exec((rects) => {
if (!rects[0] || !rects[1]) return;
const [itemRect, containerRect] = rects;
// 计算元素在容器内的相对位置
const position = itemRect.top - containerRect.top;
// 设置滚动位置(增加20px的缓冲距离)
scrollTop.value = position + 20;
});
};
// 保存订阅消息
const getWxNotificationFn = async (notificationDate, wxTemplateId, babyId) => {
......@@ -464,16 +477,16 @@ const getInfoFn = async () => {
uni.setStorageSync('dueDate', data.dueDate)
// 新增:调用滚动方法
scrollToCurrentWeek()
scrollToCurrentWeek()
} else {
uni.showToast({
title: message,
icon: "none",
});
}
}
// 获取banner图
......@@ -495,40 +508,40 @@ const getSettingFn = () => {
success(res) {
// console.log(res.authSetting, '授权信息')
console.log(res.subscriptionsSetting, '订阅信息')
if(res.subscriptionsSetting.itemSettings){
isWxNotification.value = false
console.log("🚀 ~ success ~ isWxNotification111:", isWxNotification.value)
if (res.subscriptionsSetting.itemSettings) {
isWxNotification.value = false
console.log("🚀 ~ success ~ isWxNotification111:", isWxNotification.value)
} else {
isWxNotification.value = true
console.log("🚀 ~ success ~ isWxNotification222:", isWxNotification.value)
isWxNotification.value = true
console.log("🚀 ~ success ~ isWxNotification222:", isWxNotification.value)
}
}
})
}
// 提示弹窗回调
const onBabyChange= ()=>{
const onBabyChange = () => {
publicFn()
}
// 公共函数
const publicFn = () => {
console.log("🚀 ~ onShow ~ userStore:", userStore.babyInfo)
console.log("🚀 ~ onShow ~ userStore:", userStore.babyInfo)
const babyInfo = userStore.babyInfo
if(babyInfo && babyInfo.babyStage == 1){
if (babyInfo && babyInfo.babyStage == 1) {
isTip.value = false
babyId.value = userStore.babyInfo?.content?.id
babyId.value = userStore.babyInfo?.content?.id
getSettingFn()
// 获取banner图
postnatalJSONFn()
// 获取banner图
postnatalJSONFn()
// 获取信息
getInfoFn()
} else{
} else {
isTip.value = true
}
}
onShow(async () => {
await userStore.loadBabyInfo()
console.log('宝宝信息加载完成:', userStore.babyInfo)
publicFn()
await userStore.loadBabyInfo()
console.log('宝宝信息加载完成:', userStore.babyInfo)
publicFn()
})
onMounted(() => {
......@@ -561,8 +574,9 @@ onMounted(() => {
align-items: center;
margin-top: 50rpx;
font-weight: 500;
flex-shrink: 0;
flex-shrink: 0;
height: 32rpx;
.info-c {
width: 2rpx;
height: 22rpx;
......@@ -582,7 +596,8 @@ onMounted(() => {
display: flex;
justify-content: space-between;
margin-bottom: 30rpx;
flex-shrink: 0;
flex-shrink: 0;
.btn-item {
display: flex;
align-items: center;
......@@ -813,6 +828,7 @@ onMounted(() => {
height: 177rpx;
border-radius: 12rpx;
overflow: hidden;
.banner-img {
width: 100%;
height: 100%;
......
......@@ -459,11 +459,14 @@ const onRemind = () => {
}
// 如果授权就不弹出提醒
showPicker.value = isWxNotification.value ? true : false
}
// 提醒关闭
const close = () => {
showPicker.value = false;
}
// 选择提醒事件
......@@ -472,6 +475,7 @@ const handleChange = (e) => {
}
// 确认选择
const handleConfirm = () => {
selectedValue.value = options[pickerValue.value].id;
console.log(selectedValue.value, infoData.value.wxTemplateId, babyId.value)
close();
......
......@@ -380,6 +380,11 @@ const showDatePicker = () => {
});
console.log('显示日期选择器')
md.sensorPopLogTake({
xcxPopExposure: "true",
toolName: "生长曲线",
popName: "选择本次测评日期弹窗"
});
showDatePickerPopup.value = true
}
......
......@@ -274,11 +274,12 @@
<view id="fourthScreen" class="bottomlink">
<image class="bottombg" :src="$baseUrl + 'homepage/bottombg.png'"></image>
<view class="box">
<image class="icon" :id="'bottomLink' + index" v-for="(icon, index) in bottomLinkList" :key="index" :data-log="{
xcxClick: '首页-四屏页面点击',
pageName: '首页-四屏',
buttonName: `${qrNameList[index]}`
}" :data-comlog="{
<image class="icon" :id="'bottomLink' + index" v-for="(icon, index) in bottomLinkList" :key="index"
:data-log="{
xcxClick: '首页-四屏页面点击',
pageName: '首页-四屏',
buttonName: `${qrNameList[index]}`
}" :data-comlog="{
xcxComponentClick: 'true',
xcxComponentExposure: 'true',
pageName: '首页',
......@@ -566,7 +567,7 @@ export default {
md.sensorComponentLogTake({
xcxComponentExposure: "true",
pageName: "首页",
componentName: "焦点图",
componentName: "首页banner",
componentContent: this.swiperList[0]?.title || ''
});
......@@ -705,8 +706,7 @@ export default {
jumpLink(link, videoUrl, index, evt) {
if (evt) {
md.sensorLog(evt);
if(evt.currentTarget.dataset.comlog)
{
if (evt.currentTarget.dataset.comlog) {
md.sensorComponentLog(evt);
}
}
......@@ -890,7 +890,7 @@ export default {
md.sensorComponentLogTake({
xcxComponentExposure: "true",
pageName: "首页",
componentName: "焦点图",
componentName: "首页banner",
componentContent: this.swiperList[e.detail.current].title
});
},
......@@ -1003,6 +1003,12 @@ export default {
},
imagePopupJump() {
md.sensorPopLogTake({
xcxPopClick: "true",
toolName: "首页",
popName: this.popupImageObj.title || "北纬47°鲜活溯源之旅",
buttonName: this.popupImageObj.btnName || "立即寻宝"
});
jump({
type: this.popupImageObj.jumpType,
url: this.popupImageObj.jumpUrl,
......@@ -1010,6 +1016,11 @@ export default {
});
},
showImagePopup() {
md.sensorPopLogTake({
xcxPopExposure: "true",
toolName: "首页",
popName: this.popupImageObj.title || "北纬47°鲜活溯源之旅"
});
this.$refs.imagePopup.open('center');
},
closePop1() {
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment