Feat(页面):页面埋点配置

This commit is contained in:
lifizer
2024-06-17 23:13:22 +08:00
parent 19914b5b0d
commit cef0177716
55 changed files with 552 additions and 377 deletions
@@ -130,7 +130,7 @@ export default {
// this.videoContext = uni.createVideoContext('myVideo');
// this.videoContext.requestFullScreen();
this.$yrouter.push('/pages/VideoPlayBackList/VideoPlayBackDetail?videoUrl='+video.video);
this.$yrouter.push('/pages/VideoPlayBackList/VideoPlayBackDetail?videoUrl='+video.video + '&id=' + video.id);
},
liveClick:function(video){
var liveAppId = this.$WX_LIVE_APPID;
@@ -4,16 +4,18 @@
</view>
</template>
<script>
import uniPopup from '@/components/uni-popup/uni-popup.vue';
import uniPopup from '@/components/uni-popup/uni-popup.vue'
import { pageListenMixins } from '@/mixins/pageListenMixins'
export default {
components:{
uniPopup
uniPopup
},
mixins: [pageListenMixins],
data() {
return {
curPlayVideoUrl:'',
isVideoPopupShow:false
curPlayVideoUrl:'',
isVideoPopupShow:false,
pageKeyId: ''
}
},
onReady: function(res) {
@@ -21,10 +23,9 @@ export default {
this.videoContext.requestFullScreen();
},
onLoad:function(e){
this.curPlayVideoUrl = e.videoUrl;
//this.$refs.popup.open();
this.curPlayVideoUrl = e.videoUrl
const id = options.id
this.pageKeyId = `findVideo_videoId_${id}`
},
methods: {
videoErrorCallback: function(e) {
+27 -29
View File
@@ -32,71 +32,69 @@
</template>
<script>
import {getStoreVideoType, getArticleList} from "@/api/public";
import {getVideoList} from "@/api/user";
import {getStoreVideoType, getArticleList} from '@/api/public'
import {getVideoList} from '@/api/user'
import { pageListenMixins } from '@/mixins/pageListenMixins'
export default {
mixins: [pageListenMixins],
data() {
return {
webUrl: this.$VUE_APP_RESOURCES_URL,
typeList: [{"label": "全部", "value": ""}],
type: "",
typeList: [{'label': '全部', 'value': ''}],
type: '',
page: 1,
limit: 10,
keyword: "",
keyword: '',
list: [],
isWait: false
isWait: false,
pageKeyId: Object.freeze('findVideoList')
}
},
onLoad() {
this.getType();
this.fetchList();
this.getType()
this.fetchList()
},
onReachBottom() {
this.page++;
this.fetchList();
this.page++
this.fetchList()
},
methods: {
getType() {
getStoreVideoType().then(({data}) => {
if (data.length > 0) {
data.forEach(item => {
this.typeList.push(item);
this.typeList.push(item)
})
}
});
})
},
changeType(item) {
this.type = item.value;
this.page = 1;
this.list = [];
this.fetchList();
this.type = item.value
this.page = 1
this.list = []
this.fetchList()
},
fetchList() {
if (this.isWait) return;
this.isWait = true;
let params = {
if (this.isWait) return
this.isWait = true
const params = {
type: this.type,
page: this.page,
limit: this.limit
};
}
getVideoList(params).then(res => {
if (res.status === 200) {
for (let i = 0; i < res.data.length; i++) {
res.data[i].hide = true;
res.data[i].hide = true
this.list.push(res.data[i])
}
}
this.isWait = false;
});
this.isWait = false
})
},
goDetail(item) {
this.$yrouter.push("/pages/VideoPlayBackList/VideoPlayBackDetail?videoUrl=" + item.video);
this.$yrouter.push("/pages/VideoPlayBackList/VideoPlayBackDetail?videoUrl=" + item.video + '&id=' + item.id)
}
}
}
+7 -1
View File
@@ -225,10 +225,12 @@ import {
cartGoodChangeAttr
} from '@/api/store'
import CheckboxIcon from '@/components/CheckboxIcon.vue'
import { pageListenMixins } from '@/mixins/pageListenMixins'
export default {
components: {
CheckboxIcon
},
mixins: [pageListenMixins],
data() {
return {
statusBarHeight: uni.getSystemInfoSync().statusBarHeight,
@@ -241,7 +243,8 @@ export default {
productAttr: [],
productValueArr: []
},
showAttr: false
showAttr: false,
pageKeyId: Object.freeze('landmarkGoodsIndex')
}
},
computed: {
@@ -274,6 +277,9 @@ export default {
this.closeAttr()
this.getCart()
},
onHide() {
this.pageToHideHandle()
},
methods: {
async getCart() {
const res = await getCartGroup()
+31 -8
View File
@@ -141,28 +141,27 @@ import MescrollMixins from '@/mixins/mescroll-mixins.js'
import {fetchCity} from '@/api/wenwan'
import MescrollBody from '@/components/mescroll-uni/mescroll-body.vue'
import {getCurAddress, getLocation} from '@/utils/common.js'
import { pageListenMixins } from '@/mixins/pageListenMixins'
export default {
name: 'ChoseCity',
components: {
MescrollBody
},
props: {},
mixins: [
MescrollMixins({
getPageData(mescroll) {
// 此时mescroll会携带page的参数:
// let pageNum = mescroll.num; // 页码, 默认从1开始
// let pageSize = mescroll.size; // 页长, 默认每页10条
mescroll.endSuccess(10)
}
})
}),
pageListenMixins
],
data() {
return {
webUrl: this.$VUE_APP_RESOURCES_URL,
upOption: {
noMoreSize: 10, //如果列表已无数据,可设置列表的总数量要大于半页才显示无更多数据;避免列表数据过少(比如只有一条数据),显示无更多数据会不好看; 默认5
// 如果列表已无数据,可设置列表的总数量要大于半页才显示无更多数据;避免列表数据过少(比如只有一条数据),显示无更多数据会不好看; 默认5
noMoreSize: 10,
auto: false,
empty: {
tip: '暂无城市'
@@ -176,14 +175,38 @@ export default {
listCity: [],
navActive: 0,
keyword: '',
// 0、特产;1、文玩;2、七彩云上;3、特色礼品;4、康养食材;5、千县名品;6、景点门票
type: null,
location: '',
banner: {},
recommendInfo: null // 推荐信息
// 推荐信息
recommendInfo: null,
pageKeyId: ''
}
},
onLoad(options) {
this.type = Number(options.type)
const type = Number(options.type)
this.type = type
switch(type) {
case 0:
this.pageKeyId = 'goodsIndex'
break
case 1:
this.pageKeyId = 'wenwanIndex'
break
case 3:
this.pageKeyId = 'customizedGiftIndex'
break
case 4:
this.pageKeyId = 'wellnessFoodIndex'
break
case 5:
this.pageKeyId = 'countyFamousIndex'
break
default:
this.pageKeyId = ''
break
}
this.location = options.city
if (this.location === undefined) {
this.getMapData()
+5 -2
View File
@@ -79,10 +79,12 @@
import { getHotelList, getHotelTypeList } from "@/api/inn.js"
import { getCurAddress, getLocation } from "@/utils/common"
import FunHotelItem from './components/HotelItem'
import { pageListenMixins } from '@/mixins/pageListenMixins'
export default {
components: {
FunHotelItem
},
mixins: [pageListenMixins],
data() {
return {
webUrl: this.$VUE_APP_RESOURCES_URL,
@@ -92,7 +94,8 @@ export default {
typeIndex: 0,
cityName: '',
hotelList: [],
isLoad: false
isLoad: false,
pageKeyId: Object.freeze('findFunIndex')
}
},
computed: {
@@ -132,7 +135,7 @@ export default {
},
goInnDetail(item) {
uni.navigateTo({
url: `/pagesInn/inn/innHome?id=${item.id}`
url: `/pagesInn/inn/innHome?id=${item.id}&from=fun`
})
},
async getMapData() {
+3
View File
@@ -415,6 +415,9 @@ export default {
// this.getBastList()
// }
},
onHide() {
this.pageToHideHandle()
},
onShareAppMessage() {
return {
title: '探寻有趣有味的生活方式',
+11 -3
View File
@@ -26,7 +26,7 @@
:key="index"
class="item"
:style="{'left':item.gx+'rpx','top':item.gy+'rpx'}"
@click="$global.navToGoods(item.productId)"
@click="goGoods(item.productId)"
>
<view class="round">
<view class="line" :class="'line-'+directionClass[item.labelDirection]"></view>
@@ -48,7 +48,7 @@
</view>
<view class="main-box" v-if="mapData.recommended.storeImage"
@click="$global.navToGoods(mapData.recommended.productId)">
@click="goGoods(mapData.recommended.productId)">
<image class="bg-main" :src="mapData.recommended.storeImage" mode="scaleToFill"/>
<view class="box-mask flex flex-col jc-end">
<view class="one-t bold">{{ mapData.recommended.title }}</view>
@@ -57,7 +57,7 @@
</view>
<view class="list-box flex flex-wrap">
<view class="item" v-for="item in goods" :key="item.id" @click="$global.navToGoods(item.productId)">
<view class="item" v-for="item in goods" :key="item.id" @click="goGoods(item.productId)">
<image :src="item.storeImage" mode="scaleToFill"/>
<view class="content flex flex-col jc-between">
<view class="more-t bold">{{ item.title }}</view>
@@ -110,6 +110,9 @@ export default {
onLoad() {
this.getNavList();
},
onHide() {
this.pageToHideHandle()
},
onReachBottom() {
this.page++;
this.fetchGoods();
@@ -159,6 +162,11 @@ export default {
this.goods.push(data[i]);
}
})
},
goGoods(id) {
uni.navigateTo({
url: `/pages/shop/GoodsCon/index?id=${id}&from=landmark`
})
}
}
}
+88 -85
View File
@@ -44,99 +44,102 @@
</template>
<script>
import {
orderDetail,
getRefundReason,
postOrderRefund
} from "@/api/order";
import {
trim
} from "@/utils";
import {
VUE_APP_API_URL
} from "@/config";
import {
orderDetail,
getRefundReason,
postOrderRefund
} from "@/api/order";
import {
trim
} from "@/utils";
import {
VUE_APP_API_URL
} from "@/config";
import { pageListenMixins } from '@/mixins/pageListenMixins'
export default {
name: "goodsReturn",
components: {
// VueCoreImageUpload
export default {
name: "goodsReturn",
components: {
// VueCoreImageUpload
},
mixins: [pageListenMixins],
data() {
return {
url: `${VUE_APP_API_URL}/upload/image`,
headers: {
Authorization: "Bearer " + this.$store.state.token
},
id: 0,
orderInfo: {},
reasonList: [],
reason: "",
refundReasonWapExplain: "",
pageKeyId: Object.freeze('userOrderRefundApply')
};
},
methods: {
changeReason(e) {
this.reason = this.reasonList[e.mp.detail.value];
},
data() {
return {
url: `${VUE_APP_API_URL}/upload/image`,
headers: {
Authorization: "Bearer " + this.$store.state.token
},
id: 0,
orderInfo: {},
reasonList: [],
reason: "",
refundReasonWapExplain: ""
};
},
methods: {
changeReason(e) {
this.reason = this.reasonList[e.mp.detail.value];
},
getOrderDetail() {
orderDetail(this.id)
.then(res => {
this.orderInfo = res.data;
})
.catch(err => {
uni.showToast({
title: err.msg || err.response.data.msg|| err.response.data.message,
icon: 'none',
duration: 2000
});
});
},
getRefundReason() {
getRefundReason().then(res => {
this.reasonList = res.data;
});
},
submit() {
const refundReasonWapExplain = trim(this.refundReasonWapExplain),
text = this.reason;
if (!text) {
getOrderDetail() {
orderDetail(this.id)
.then(res => {
this.orderInfo = res.data;
})
.catch(err => {
uni.showToast({
title: "请选择退款原因",
title: err.msg || err.response.data.msg|| err.response.data.message,
icon: 'none',
duration: 2000
});
return
}
postOrderRefund({
text,
uni: this.orderInfo.orderId,
refundReasonWapExplain
})
.then(res => {
uni.showToast({
title: res.msg,
icon: "success",
duration: 2000
});
setTimeout(() => {
this.$yrouter.back();
}, 1500);
})
.catch(err => {
uni.showToast({
title: err.msg || err.response.data.msg|| err.response.data.message,
icon: 'none',
duration: 2000
});
});
}
});
},
mounted() {
this.id = this.$yroute.query.id || 0;
this.getOrderDetail();
this.getRefundReason();
getRefundReason() {
getRefundReason().then(res => {
this.reasonList = res.data;
});
},
submit() {
const refundReasonWapExplain = trim(this.refundReasonWapExplain),
text = this.reason;
if (!text) {
uni.showToast({
title: "请选择退款原因",
icon: 'none',
duration: 2000
});
return
}
postOrderRefund({
text,
uni: this.orderInfo.orderId,
refundReasonWapExplain
})
.then(res => {
uni.showToast({
title: res.msg,
icon: "success",
duration: 2000
});
setTimeout(() => {
this.$yrouter.back();
}, 1500);
})
.catch(err => {
uni.showToast({
title: err.msg || err.response.data.msg|| err.response.data.message,
icon: 'none',
duration: 2000
});
});
}
};
},
mounted() {
this.id = this.$yroute.query.id || 0;
this.getOrderDetail();
this.getRefundReason();
}
};
</script>
<style scoped>
.apply-return .list .item .inp {
+3
View File
@@ -145,9 +145,11 @@ import {cancelOrderHandle, payOrderHandle, takeOrderHandle} from "@/libs/order";
import Loading from "@/components/Loading";
import Payment from "@/components/Payment";
import {mapGetters} from "vuex";
import { pageListenMixins } from '@/mixins/pageListenMixins'
export default {
name: "MyOrder",
mixins: [pageListenMixins],
data() {
return {
webUrl: this.$VUE_APP_RESOURCES_URL,
@@ -172,6 +174,7 @@ export default {
showExtend: false,
delayId: null,
pageKeyId: Object.freeze('userOrderIndex')
};
},
components: {
+4 -2
View File
@@ -265,6 +265,7 @@ import DataFormat from "@/components/DataFormat";
import {copyClipboard} from "@/utils";
import {mapGetters} from "vuex";
import {cancelOrderHandle, delOrderHandle, payOrderHandle, takeOrderHandle, yuePayOrderHandle} from "@/libs/order";
import { pageListenMixins } from '@/mixins/pageListenMixins'
const STATUS = [
"待付款",
@@ -288,7 +289,7 @@ export default {
DataFormat,
passkeyborad
},
props: {},
mixins: [pageListenMixins],
data: function () {
return {
isShowPayPwdPop: false,
@@ -308,7 +309,8 @@ export default {
mapKay: "",
mapShow: false,
payPassword: null,
webUrl: this.$VUE_APP_RESOURCES_URL
webUrl: this.$VUE_APP_RESOURCES_URL,
pageKeyId: Object.freeze('userOrderInfo')
};
},
computed: {
+4 -1
View File
@@ -256,6 +256,7 @@ import {isNullOrEmpty, isWeixin} from "@/utils";
import blPaymentPasswordInput from '@/components/blPaymentPasswordInput.vue';
import uniPopup from '@/components/uni-popup/uni-popup.vue';
import CouponsPopup from "@/components/CouponsPopup.vue"
import { pageListenMixins } from '@/mixins/pageListenMixins'
const NAME = "OrderSubmission",
_isWeixin = isWeixin();
@@ -269,6 +270,7 @@ export default {
passkeyborad,
CouponsPopup
},
mixins: [pageListenMixins],
props: {},
data: function () {
return {
@@ -317,7 +319,8 @@ export default {
// 订单是否可以使用积分
canUsePoints: false,
// 订单最大可使用积分数量
maxPoints: 0
maxPoints: 0,
pageKeyId: Object.freeze('orderConfirm')
};
},
computed: mapGetters(["userInfo", "storeItems"]),
+4 -1
View File
@@ -48,12 +48,14 @@
<script>
import {getOrderList} from "@/api/order";
import Loading from "@/components/Loading";
import { pageListenMixins } from '@/mixins/pageListenMixins'
export default {
name: "ReturnList",
components: {
Loading
},
mixins: [pageListenMixins],
data() {
return {
webUrl: this.$VUE_APP_RESOURCES_URL,
@@ -61,7 +63,8 @@ export default {
page: 1,
limit: 20,
loading: false,
loaded: false
loaded: false,
pageKeyId: Object.freeze('userOrderRefundList')
};
},
methods: {
+4 -2
View File
@@ -125,9 +125,10 @@ import {
getUserPointInfo,
getUserPointBill
} from '@/api/user'
import { pageListenMixins } from '@/mixins/pageListenMixins'
export default {
name: 'UserPoints',
props: {},
mixins: [pageListenMixins],
data: function() {
return {
webUrl: this.$VUE_APP_RESOURCES_URL,
@@ -145,7 +146,8 @@ export default {
totalUsedPoints: 0, // 累计使用积分
pointsRule: ''
},
show: false
show: false,
pageKeyId: Object.freeze('userPointsBill')
}
},
created() {
+4 -1
View File
@@ -251,8 +251,10 @@ import {
} from "@/api/user"
import {isWeixin} from "@/utils"
import cookie from "@/utils/store/cookie"
import { pageListenMixins } from '@/mixins/pageListenMixins'
export default {
name: 'UserPage',
mixins: [pageListenMixins],
data() {
return {
statusBarHeight: uni.getSystemInfoSync().statusBarHeight,
@@ -330,7 +332,8 @@ export default {
}
],
bannerBgUrl: '',
userCenterBannerUrl: ''
userCenterBannerUrl: '',
pageKeyId: Object.freeze('userIndex')
}
},
computed: mapGetters(['userInfo']),
+4 -2
View File
@@ -30,12 +30,13 @@
<script>
import { getCommissionInfo } from "@/api/user";
import Loading from "@/components/Loading";
import { pageListenMixins } from '@/mixins/pageListenMixins'
export default {
name: "UserBill",
components: {
Loading
},
props: {},
mixins: [pageListenMixins],
data: function() {
return {
types: 0,
@@ -45,7 +46,8 @@ export default {
},
list: [],
loaded: false,
loading: false
loading: false,
pageKeyId: Object.freeze('userBalanceBill')
};
},
watch: {
+4 -2
View File
@@ -55,13 +55,14 @@ import attrs, {chs_extphone, required} from "@/utils/validate";
import {validatorDefaultCatch} from "@/utils/dialog";
// import { openAddress } from "@/libs/wechat";
import {isWeixin} from "@/utils";
import { pageListenMixins } from '@/mixins/pageListenMixins'
export default {
name: "AddAddress",
components: {
CitySelect
},
computed: {},
mixins: [pageListenMixins],
data() {
return {
district: [],
@@ -69,7 +70,8 @@ export default {
userAddress: {isDefault: 0},
address: {},
isWechat: isWeixin(),
addressText: ""
addressText: "",
pageKeyId: Object.freeze('userAddressEdit')
};
},
mounted: function () {
@@ -81,11 +81,13 @@
import {getAddressDefaultSet, getAddressList, getAddressRemove} from "@/api/user";
import Loading from "@/components/Loading";
import {isWeixin} from "@/utils";
import { pageListenMixins } from '@/mixins/pageListenMixins'
export default {
components: {
Loading
},
mixins: [pageListenMixins],
data() {
return {
webUrl: this.$VUE_APP_RESOURCES_URL,
@@ -96,7 +98,8 @@ export default {
loadTitle: "",
loading: false,
loadend: false,
isWechat: isWeixin()
isWechat: isWeixin(),
pageKeyId: Object.freeze('userAddressIndex')
};
},
mounted: function () {
@@ -41,13 +41,14 @@
<script>
import { getCommissionInfo, getSpreadInfo } from "@/api/user";
import Loading from "@/components/Loading";
import { pageListenMixins } from '@/mixins/pageListenMixins'
export default {
name: "CommissionDetails",
components: {
Loading
},
props: {},
mixins: [pageListenMixins],
data: function() {
return {
info: [],
@@ -58,7 +59,8 @@ export default {
},
types: 9,//3,
loaded: false,
loading: false
loading: false,
pageKeyId: Object.freeze('userSpreadBill')
};
},
mounted: function() {
+4 -2
View File
@@ -126,13 +126,14 @@
<script>
import {getSpreadUser} from "@/api/user";
import Loading from "@/components/Loading";
import { pageListenMixins } from '@/mixins/pageListenMixins'
export default {
name: "PromoterList",
components: {
Loading
},
props: {},
mixins: [pageListenMixins],
data: function () {
return {
fixedState: false,
@@ -153,7 +154,8 @@ export default {
loadTitle: "",
first: "",
second: "",
webUrl: this.$VUE_APP_RESOURCES_URL
webUrl: this.$VUE_APP_RESOURCES_URL,
pageKeyId: Object.freeze('userSpreadStat')
};
},
mounted: function () {
+4 -2
View File
@@ -62,12 +62,13 @@
<script>
import { getSpreadOrder, getUserSpreadRule } from "@/api/user";
import Loading from "@/components/Loading";
import { pageListenMixins } from '@/mixins/pageListenMixins'
export default {
name: "PromoterOrder",
components: {
Loading
},
props: {},
mixins: [pageListenMixins],
data: function() {
return {
list: [],
@@ -79,7 +80,8 @@ export default {
loading: false,
loadTitle: '',
count: '',
ruleText: ''
ruleText: '',
pageKeyId: Object.freeze('userSpreadOrder')
}
},
mounted() {
+4 -3
View File
@@ -100,11 +100,11 @@
import { getSpreadInfo } from "@/api/user";
import { pageListenMixins } from '@/mixins/pageListenMixins'
export default {
name: "UserPromotion",
components: {},
props: {},
mixins: [pageListenMixins],
data: function() {
return {
Info: {
@@ -112,7 +112,8 @@ export default {
extractCount: 0,
commissionCount: 0
},
webUrl:this.$VUE_APP_RESOURCES_URL
webUrl:this.$VUE_APP_RESOURCES_URL,
pageKeyId: Object.freeze('userSpreadIndex')
};
},
mounted: function() {