提交修改

This commit is contained in:
浅念
2025-12-22 11:44:02 +08:00
parent c60dda98a4
commit 4d6c0d6901
20 changed files with 470 additions and 112 deletions
+142 -27
View File
@@ -2,17 +2,23 @@
<view class="page">
<z-paging ref="paging" :auto="false" v-model="list" @query="queryList" empty-view-text="暂无数据!">
<!-- 顶部背景 -->
<uni-nav-bar leftText=" " :fixed="true" :border="false" color="#000000" backgroundColor="#3BC8BE" :statusBar="true" title="西门子样机福利平台"></uni-nav-bar>
<view class="header">
<image src="/static/image/homebg.png" mode="aspectFill" class="bg"></image>
<!-- 弹幕组件 -->
<danmu :list="danmuList" :row="5" :visible="danmuVisible"></danmu>
<!-- 标题 -->
<view class="title">
<view>西门子样机</view>
<view>福利平台</view>
<swiper class="banner-swiper" circular autoplay :interval="4000" indicator-dots indicator-color="rgba(255,255,255,.4)"
indicator-active-color="#3F435B">
<swiper-item v-for="(banner,index) in bannerList" :key="index">
<image class="banner-img" :src="banner.image_url_pull" mode="aspectFill"></image>
</swiper-item>
</swiper>
<view class="homemap">
<image
class="homemap-img"
:src="homemapurl"
mode="widthFix"
/>
</view>
<!-- 弹幕组件 -->
<danmu :list="danmuList" :row="6" :visible="danmuVisible"></danmu>
<!-- 右侧按钮 -->
<view class="right-btns">
@@ -74,18 +80,26 @@ export default {
content:'',
list:[],
danmuList: [],
bannerList:[],
latitude:'',
longitude:''
longitude:'',
bannerurl:'',
banner:uni.getStorageSync('banner'),
homemapurl:''
};
},
onLoad() {
// 数据加载逻辑
if (!uni.getStorageSync('token')) {
this.mini_login().then(() => {
this.bannerListfn()
this.configListfn()
this.barragelist()
this.$refs.paging && this.$refs.paging.reload()
})
}else{
this.bannerListfn()
this.configListfn()
this.barragelist()
this.$refs.paging && this.$refs.paging.reload()
}
@@ -97,7 +111,82 @@ export default {
console.log(res);
}).catch(err => console.error(err));
},
onTabItemTap() {
this.reloadPage()
},
methods: {
configListfn(){
request({
url:'common/config/find',
method:'get',
data:{
code:'home_map'
}
}).then(res => {
const homemapurl = res.data.data.value_pull
const EXPIRE_TIME = 2 * 60 * 60 * 1000
const cache = uni.getStorageSync('homemapurl')
let useCache = false
// 1️⃣ 缓存存在 + 未过期 + url 相同 → 用缓存
if (
cache &&
cache.time &&
Date.now() - cache.time < EXPIRE_TIME &&
cache.data === homemapurl
) {
useCache = true
this.homemapurl = uni.getStorageSync('homemapurl')
}
// 2️⃣ 否则更新缓存
if (!useCache) {
uni.setStorageSync('banner', {
data: homemapurl,
time: Date.now()
})
uni.setStorageSync('homemapurl', homemapurl)
this.homemapurl = homemapurl
}
})
},
bannerListfn(){
request({
url:'common/banner/list',
method:'get',
data:{
module:'home_module'
}
}).then(res => {
const bannerList = res.data.data || []
this.bannerList = bannerList
// if (!bannerList.length) return
// const banner = bannerList[0]
// const EXPIRE_TIME = 2 * 60 * 60 * 1000
// const cache = uni.getStorageSync('banner')
// let useCache = false
// // 1️⃣ 缓存存在 + 未过期 + url 相同 → 用缓存
// if (
// cache &&
// cache.time &&
// Date.now() - cache.time < EXPIRE_TIME &&
// cache.data === banner.image_url
// ) {
// useCache = true
// this.bannerurl = uni.getStorageSync('bannerurl')
// }
// // 2️⃣ 否则更新缓存
// if (!useCache) {
// uni.setStorageSync('banner', {
// data: banner.image_url,
// time: Date.now()
// })
// uni.setStorageSync('bannerurl', banner.image_url_pull)
// this.bannerurl = banner.image_url_pull
// }
})
},
reloadPage() {
this.$refs.paging.reload()
},
getFuzzy() {
return new Promise((resolve, reject) => {
wx.getSetting({
@@ -122,17 +211,44 @@ export default {
});
},
tabclick(item){
const that = this
if((this.longitude==''||this.latitude=='')&&item==1){
uni.showModal({
title: '提示',
content: '请先授权地理位!',
content: '请在设置中开启模糊定位权限',
confirmText: '去设置',
success: function (res) {
if (res.confirm) {
wx.openSetting({
success: (setRes) => {
if (setRes.authSetting['scope.userFuzzyLocation']) {
that.getFuzzy().then(res => {
that.latitude = res.latitude
that.longitude = res.longitude
console.log(res);
}).catch(err => console.error(err));
} else {
reject(new Error('未开启模糊定位权限'));
}
}
});
}
},
})
return false
}
this.activeTab = item;
this.$refs.paging && this.$refs.paging.reload()
},
//获取弹幕
barragelist(){
request({
url: 'admin/barrage/list',
url: 'common/barrage/all',
method: 'GET',
}).then(res => {
if (res.data.code === 200) {
this.danmuList = res.data.data.records
this.danmuList = res.data.data
}
})
},
@@ -234,7 +350,7 @@ export default {
return {
title: '西门子样机福利平台',
path: '/pages/index/index?from=share',
imageUrl: "/static/image/share.jpg" // 封面图
imageUrl: this.bannerList[0].image_url_pull // 封面图
}
},
}
@@ -247,29 +363,28 @@ export default {
.header {
position: relative;
height: 720rpx;
}
.bg {
.banner-swiper{
width: 100%;
height: 430rpx;
}
.banner-img{
width: 100%;
height: 100%;
border-bottom-left-radius: 30rpx;
border-bottom-right-radius: 30rpx;
}
.homemap {
width: 100%;
}
.title {
position: absolute;
left: 40rpx;
top: 300rpx;
font-size: 68rpx;
line-height: 1.2;
color: #fff;
font-weight: bold;
.homemap-img {
width: 100%;
display: block; /* 防止底部留白 */
}
.right-btns {
position: absolute;
right: 40rpx;
bottom: 100rpx;
top: 420rpx;
.circle-btn {
margin-top: 20rpx;
@@ -298,7 +413,7 @@ export default {
}
.main-box {
margin: 20rpx 30rpx;
margin-top: -60rpx;
// margin-top: -60rpx;
position: relative;
background: #fff;
border-radius: 30rpx;