This commit is contained in:
蔡同学
2025-08-25 11:20:35 +08:00
parent 25df08ec69
commit 6df8112e7b
251 changed files with 34346 additions and 0 deletions
+49
View File
@@ -0,0 +1,49 @@
<template>
<view>
<swiper class="home-swiper-banner" indicator-color="rgba(255, 255, 255, 0.3)" indicator-active-color="#FFFFFF" :indicator-dots="true" :autoplay="true" :interval="3000" :duration="500">
<swiper-item v-for="(item,index) in banners" :key="index" @tap="detail(item.link,0)">
<image :src="item.src" mode="aspectFill" style="border-radius: 16rpx"></image>
</swiper-item>
</swiper>
</view>
</template>
<script>
export default{
props: ['banners'],
data(){
return {
banners1:[],
}
},
methods:{
detail(url,mid) {
console.log('ok')
console.log(url)
var fxpid = 1
if (uni.getStorageSync("userinfo")) {
fxpid = uni.getStorageSync("userinfo").id
}
uni.navigateTo({
url: '/'+url + '?mid=' + mid + '&fxpid=' + fxpid
})
},
}
}
</script>
<style>
.home-swiper-banner{
height: 350rpx;
box-shadow: 0rpx 4rpx 32rpx 0rpx rgba(0, 0, 0, 0.04);
border-radius: 10rpx;
overflow: hidden;
}
.home-swiper-banner image{
width: 100%;
height: 350rpx;
}
</style>
+149
View File
@@ -0,0 +1,149 @@
<template>
<view>
<!-- style="margin-bottom: 80upx;" -->
<view class="pd16_15">
<view class="flex alcenter space" style="margin-bottom: 30upx;">
<view class="flex alcenter">
<image style="width: 28rpx;height: 28rpx;"
src="https://wx.yaohe.hnjrdzkj.xyz/static/wechat/shop/wechat/static/star.png"></image>
<text class="ft16 ftw600 cl-main ml15">最新热播</text>
</view>
<navigator url="/pages/client/tuan/search">
<view class="ft14 cl-notice">大家都在看的热播好剧</view>
</navigator>
</view>
<view class="flex " style="overflow-x: auto; flex-wrap: wrap;">
<!-- <block v-for="(value,key) in datasa" :key="key">
<view class=" pb10 mb15 videoItem" @click="detail(value.id,0)">
<image class="integral-mall-goods" mode="scaleToFill" :src="value.img"></image>
<view class=" ft14 ftw500 text-over cl-main">{{ value.name }}</view>
<view class=" ft10 ftw500 cl-999 text-over cl-main">{{ value.text }}</view>
</view>
</block> -->
<block v-for="(value,key) in datasa" :key="key">
<view class=" pb10 defaultItem" style="width:207rpx; display: inline-block; border-radius:20rpx;"
@click="detail(value)">
<image class="integral-mall-goods" mode="scaleToFill" :src="value.img"></image>
<view class=" ft14 ftw500 text-over cl-main">{{ value.name }}</view>
<view class=" ft10 ftw500 cl-999 text-over cl-main">{{ value.text }}</view>
</view>
</block>
</view>
</view>
<!-- <view class="home-main" style="height: 50upx;">
<com-copyright></com-copyright>
</view> -->
<dialog-couponshareget @loginAct="showLoginCouponShareGet" v-if="showCouponShareGet"
@closed="showCouponShareGet = false"></dialog-couponshareget>
</view>
</template>
<script>
export default {
props: ['datasa'],
data() {
return {
isLogin: false,
showBirthday: false,
showLogin: false,
showQrcode: false,
showCouponShareGet: false,
}
},
created() {
// uni.setNavigationBarTitle({
// title: '夜趣小视频'
// });
// setTimeout(()=>{
// this.showCouponShareGet = true;
// },1000);
},
methods: {
//'/pages/client/tuan/detail?id='+value.id
detail(data) {
uni.navigateTo({
url: '/pagesA/player/detailPlayer?vid=' + data.id + '&mid=' + 0
})
},
showLoginAct() {
this.showLogin = true;
},
showLoginCouponShareGet() {
this.showLogin = true;
},
loginYes() {
}
}
}
</script>
<style scoped>
.home-header {
height: 304rpx;
width: 100%;
position: relative;
background: #363B4D;
border-radius: 0rpx 0rpx 48rpx 48rpx;
}
.home-main {
width: 100%;
position: relative;
margin-top: -156rpx;
padding: 0 30rpx;
}
.home-mendian {
width: 100%;
height: 84rpx;
background: rgba(255, 255, 255, 0.1);
border-radius: 42rpx;
}
.tuan-product-l {
width: 320rpx;
height: 240rpx;
border-radius: 16rpx;
background: #F2F2F2;
}
.videoItem {
width: 330rpx;
position: relative;
}
.integral-mall-goods {
width: 330rpx;
background: #F2F2F2;
border-radius: 16upx;
}
.integral-mall-goods {
min-width: 206rpx;
width: 100%;
height: 280rpx;
background: #F2F2F2;
border-radius: 16upx;
}
.tuan-product-r {
width: calc(100% - 320rpx);
}
.defaultItem {
margin-right: 30rpx;
}
.defaultItem:nth-of-type(3n) {
margin-right: 0;
}
</style>
+211
View File
@@ -0,0 +1,211 @@
<template>
<view class="flex alcenter space">
<button v-if="getGridOne!=null && getGridOne.model=='share'" open-type="share" class="grid-left-box">
<view class="main pd16_15">
<view class="ft16 ftw600 cl-default">{{getGridOne.name}}</view>
<view class="mt4 ft12" :style="{color:tempColor}">{{getGridOne.desc}}</view>
<view class="btn-go" :style="{background:tempColor}">GO<text class="iconfont iconicon_arrow_small ft12"></text></view>
</view>
<image class="left-bg" :src="statics.gridLeft"></image>
<image class="left-icon" :src="getGridOne.icon"></image>
</button>
<view v-if="getGridOne!=null && getGridOne.model!='share'" :data-model="getGridOne.model" @click="linkTo" class="grid-left-box">
<view class="main pd16_15">
<view class="ft16 ftw600 cl-default">{{getGridOne.name}}</view>
<view class="mt4 ft12" :style="{color:tempColor}">{{getGridOne.desc}}</view>
<view class="btn-go" :style="{background:tempColor}">GO<text class="iconfont iconicon_arrow_small ft12"></text></view>
</view>
<image class="left-bg" :src="statics.gridLeft"></image>
<image class="left-icon" :src="getGridOne.icon"></image>
</view>
<view>
<button v-if="getGridTwo!=null && getGridTwo.model=='share'" open-type="share" class="grid-right-box">
<view class="main pd16_15">
<view class="ft16 ftw600 cl-default">{{getGridTwo.name}}</view>
<view class="mt4 ft12" :style="{color:tempColor}">{{getGridTwo.desc}}</view>
<view class="btn-go" :style="{background:tempColor}">GO<text class="iconfont iconicon_arrow_small ft12"></text></view>
</view>
<image class="right-bg" :src="statics.gridRight"></image>
<image class="right-icon" :src="getGridTwo.icon"></image>
</button>
<view v-if="getGridTwo!=null && getGridTwo.model!='share'" :data-model="getGridTwo.model" @click="linkTo" class="grid-right-box">
<view class="main pd16_15">
<view class="ft16 ftw600 cl-default">{{getGridTwo.name}}</view>
<view class="mt4 ft12" :style="{color:tempColor}">{{getGridTwo.desc}}</view>
<view class="btn-go" :style="{background:tempColor}">GO<text class="iconfont iconicon_arrow_small ft12"></text></view>
</view>
<image class="right-bg" :src="statics.gridRight"></image>
<image class="right-icon" :src="getGridTwo.icon"></image>
</view>
<view class="mt15">
<button v-if="getGridThree!=null && getGridThree.model=='share'" open-type="share" class="grid-right-box">
<view class="main pd16_15">
<view class="ft16 ftw600 cl-default">{{getGridThree.name}}</view>
<view class="mt4 ft12" :style="{color:tempColor}">{{getGridThree.desc}}</view>
<view class="btn-go" :style="{background:tempColor}">GO<text class="iconfont iconicon_arrow_small ft12"></text></view>
</view>
<image class="right-bg" :src="statics.gridRight"></image>
<image class="right-icon" :src="getGridThree.icon"></image>
</button>
<view v-if="getGridThree!=null && getGridThree.model!='share'" :data-model="getGridThree.model" @click="linkTo" class="grid-right-box">
<view class="main pd16_15">
<view class="ft16 ftw600 cl-default">{{getGridThree.name}}</view>
<view class="mt4 ft12" :style="{color:tempColor}">{{getGridThree.desc}}</view>
<view class="btn-go" :style="{background:tempColor}">GO<text class="iconfont iconicon_arrow_small ft12"></text></view>
</view>
<image class="right-bg" :src="statics.gridRight"></image>
<image class="right-icon" :src="getGridThree.icon"></image>
</view>
</view>
</view>
</view>
</template>
<script>
export default{
data(){
return {
gridData:[
{name:'VIP特惠',desc:'尊享会员折上折',model:'tuan',icon:this.$config.staticUrl +'vipcard_home_tehui@2x.png',show:1},
{name:'领优惠券',desc:'领券更省钱',model:'coupon',icon:this.$config.staticUrl +'vipcard_home_coupon@2x.png',show:1},
{name:'邀请好友',desc:'越邀请,越优惠',model:'share',icon:this.$config.staticUrl +'vipcard_home_invite@2x.png',show:0},
{name:'积分商城',desc:'小积分兑豪礼',model:'integral',icon:this.$config.staticUrl +'vipcard_home_integralmall@2x.png',show:1},
{name:'开通次卡',desc:'省钱升级必备',model:'card',icon:this.$config.staticUrl +'vipcard_home_cika@2x.png',show:0},
]
}
},
computed:{
getGridDatas(){
let arr = new Array;
for(var a in this.gridData){
if(this.gridData[a].show == 1){
arr.push(this.gridData[a]);
}
}
return arr;
},
getGridOne(){
return this.getGridDatas[0] ? this.getGridDatas[0] : null;
},
getGridTwo(){
return this.getGridDatas[1] ? this.getGridDatas[1] : null;
},
getGridThree(){
return this.getGridDatas[2] ? this.getGridDatas[2] : null;
}
},
methods:{
linkTo(e){
let model = e.currentTarget.dataset.model;
let url = '';
switch(model){
case 'coupon':
url = '/pages/client/coupon/index';
break;
case 'integral':
url = '/pages/client/integral/index';
break;
case 'card':
url = '/pages/client/card/index';
break;
case 'tuan':
url = '/pages/client/tuan/index';
break;
}
if(url == '') return;
uni.navigateTo({
url:url
})
}
}
}
</script>
<style>
.grid-left-box{
width: 330rpx;
height: 430rpx;
background: #FFFFFF;
box-shadow: 0rpx 4rpx 32rpx 0rpx rgba(0, 0, 0, 0.04);
border-radius: 32rpx;
position: relative;
overflow: hidden;
margin: 0;
padding: 0;
line-height: 1;
text-align: left;
}
.grid-right-box{
width: 330rpx;
height: 200rpx;
background: #FFFFFF;
box-shadow: 0rpx 4rpx 32rpx 0rpx rgba(0, 0, 0, 0.04);
border-radius: 32rpx;
position: relative;
overflow: hidden;
margin: 0;
padding: 0;
line-height: 1;
text-align: left;
}
.grid-left-box .main,.grid-right-box .main{
width: 100%;
height: 100%;
position: absolute;
left: 0;
top: 0;
z-index: 3;
}
.grid-left-box .left-bg{
width: 100%;
height: 140rpx;
position: absolute;
left: 0;
bottom: 0;
z-index: 1;
}
.grid-left-box .left-icon{
width: 200rpx;
height: 200rpx;
position: absolute;
right: 0;
bottom: 0;
z-index: 2;
}
.grid-right-box .right-icon{
width: 120rpx;
height: 120rpx;
position: absolute;
right: 0;
bottom: 0;
z-index: 2;
}
.grid-right-box .right-bg{
width: 100%;
height: 74rpx;
position: absolute;
left: 0;
bottom: 0;
z-index: 1;
}
.btn-go{
display: block;
width: 92rpx;
height: 40rpx;
border-radius: 20rpx;
text-align: center;
margin-top: 40rpx;
display: flex;
justify-content: center;
align-items: center;
font-size: 28rpx;
font-weight: 600;
color: #FFFFFF;
font-style:italic;
}
.btn-go text{
font-weight: 400;
margin-left: 8rpx;
}
</style>
+138
View File
@@ -0,0 +1,138 @@
<template>
<view>
<view class="pd16_15" style="margin-bottom: 80upx;">
<view class="" style="">
<block v-for="(value,key) in datasa" :key="key">
<view @click="detail(value.id,0)" style="" class="flex alcenter mb16 showStyle">
<image mode="aspectFill" class="tuan-product-l" :src="value.img"></image>
<!-- <view class="btn-mini" style="position: absolute; top: 40upx; left: 280upx; border-radius: 10upx;font-size: 18upx;width: 60upx; height: 36upx;" :style="getBtnStyle">{{value.lxname}}</view> -->
<view class="tuan-product-r pl15">
<view class="ft16 ftw600 cl-main text-over1">{{value.name}}</view>
<view class="mt5">
<text class="ft14 cl-main text-over4" style="line-height: 50upx;">{{value.story}}</text>
</view>
<!-- <view class="mt16 flex space alcenter">
<view class="ft14 cl-notice">{{value.mname}}</view>
<view class="btn-vip-adviser ml15">继续观看</view>
</view> -->
</view>
</view>
</block>
</view>
</view>
<view class="home-main" style="height: 50upx;">
<!-- <com-copyright></com-copyright> -->
</view>
<!-- <dialog-couponshareget @loginAct="showLoginCouponShareGet" v-if="showCouponShareGet" @closed="showCouponShareGet = false"></dialog-couponshareget>-->
</view>
</template>
<script>
export default{
props: ['datasa'],
data(){
return {
isLogin:false,
showBirthday:false,
showLogin:false,
showQrcode:false,
showCouponShareGet:false,
}
},
created(){
// uni.setNavigationBarTitle({
// title: '夜趣小视频'
// });
// setTimeout(()=>{
// this.showCouponShareGet = true;
// },1000);
},
methods:{
//'/pages/client/tuan/detail?id='+value.id
detail(vid,mid){
uni.navigateTo({
url:'/pages/client/tuan/detail?vid='+vid+'&mid='+mid
})
},
showLoginAct(){
this.showLogin = true;
},
showLoginCouponShareGet(){
this.showLogin = true;
},
loginYes(){
}
}
}
</script>
<style>
.showStyle::before{
content:'';
position:'absolute';
top: 0;
right: 0;
bottom: 0;
left: 0;
background-color: rgba(31, 33, 41, 0.4);
z-index:-1;
backdrop-filter:blur(80px);
}
.showStyle{
position: relative;
}
.home-header{
height: 304rpx;
width: 100%;
position: relative;
background: #363B4D;
border-radius: 0rpx 0rpx 48rpx 48rpx;
}
.home-main{
width: 100%;
position: relative;
margin-top: -156rpx;
padding: 0 30rpx;
}
.home-mendian{
width: 100%;
height: 84rpx;
background:rgba(255,255,255,0.1);
border-radius: 42rpx;
}
.tuan-product-l{
width: 200rpx;
height: 260rpx;
border-radius: 16rpx;
background: #F2F2F2;
}
.tuan-product-r{
width: calc(100% - 200rpx);
height:260rpx;
}
.btn-vip-adviser{
width: 200rpx;
height: 60rpx;
border-radius: 20rpx;
display: flex;
justify-content: center;
align-items: center;
font-size: 28rpx;
/* font-weight: 600; */
background: #FF6600;
color:#FFFFFF;
}
.integral-mall-goods{
width: 100%;
height: 280rpx;
background: #F2F2F2;
border-radius: 16upx;
}
</style>
+180
View File
@@ -0,0 +1,180 @@
<template>
<view>
<view v-if="userinfo.isLogin" class="box pd16_15">
<navigator url="/pages/client/vipcard/index">
<view class="home-vip-tag-box">
<image class="bg" v-if="userinfo.group_id == 1" :src="statics.vipbg"></image>
<image class="bg" v-else :src="statics.vipBgHas"></image>
<view v-if="userinfo.group_id == 1" class="main plr15 flex alcenter space">
<view class="tag-no-vip">普通用户</view>
<view class="flex alcenter">
<text class="ft12 cl-default mr15 ftw500">升级VIP,省更多钱</text>
<image class="right-icon" :src="statics.rightIcon"></image>
</view>
</view>
<view v-else class="main plr15 flex alcenter space">
<view class="tag-has-vip flex alcenter center">
<image class="vip-level-icon" :src="statics.vipLevelImg[0]"></image>
<text class="vip-level-means">VIP会员</text>
</view>
<view class="flex alcenter">
<view v-if="userinfo.dqts<0" class="ft12 cl-default mr15 ftw500">您好!尊敬的VIP<br>您的会员已经到期{{-userinfo.dqts}}天</view>
<view v-if="userinfo.dqts>=0" class="ft12 cl-default mr15 ftw500">您好!尊敬的VIP<br>您的会员{{userinfo.dqts}}天后到期</view>
<image class="right-icon" :src="statics.rightIcon"></image>
</view>
</view>
</view>
</navigator>
<view class="mt24 flex space">
<view class="col3 text-center">
<navigator url="/pages/client/vipcard/moneylog">
<view class="cl-notice ft12">余额</view>
<view class="mt8 ft20 ftw600 cl-default">{{userinfo.money}}</view>
</navigator>
</view>
<view class="col3 text-center" style="display: none;">
<!-- <navigator url="/pages/client/coupon/mine/index"> -->
<view class="cl-notice ft12">优惠券</view>
<view class="mt8 ft20 ftw600 cl-default">0</view>
<!-- </navigator> -->
</view>
<view class="col3 text-center">
<navigator url="/pages/client/vipcard/integrallog">
<view class="cl-notice ft12">积分</view>
<view class="mt8 ft20 ftw600 cl-default">{{userinfo.score}}</view>
</navigator>
</view>
</view>
<view class="flex space alcenter mt24" style="padding-bottom: 16rpx;">
<view class="flex alcenter">
<navigator url="/pages/client/vipcard/recharge">
<view class="btn-vip-money" :style="getBtnStyle">充值</view>
</navigator>
<navigator v-if="userinfo.zstx>0" url="/pages/client/member/tx">
<view class="btn-vip-adviser ml15" :style="getBtnPlanStyle">提现</view>
</navigator>
</view>
<!-- #ifdef MP-WEIXIN -->
<view @click="showQrcodeAct" v-if="userinfo.config.iskq==1" class="vip-qrcode-tag" :style="getBtnStyle">
<!-- <text class="iconfont iconbtn_card_ma-copy ft20 cl-w"></text> -->
<image style="width: 50upx; height: 50upx;" src="/static/share-fill.png"></image>
</view>
<!-- #endif -->
<!-- #ifndef MP-WEIXIN -->
<view @click="wdfxm" v-if="userinfo.config.iskq==1" class="vip-qrcode-tag" :style="getBtnStyle">
<text class="iconfont iconbtn_card_ma-copy ft20 cl-w"></text>
</view>
<!-- #endif -->
</view>
</view>
<view v-else class="box pd24_15">
<view class="text-center ft14 cl-info2">您还没登录,登录后即可体验VIP会员</view>
<view class="flex center mt24">
<button class="btn-mid" @click="loginAct" :style="getBtnStyle">立即登录</button>
</view>
</view>
</view>
</template>
<script>
export default{
props: ['userinfo'],
data(){
return {
isLogin:true,
vipLevel:0,//普通用户
}
},
methods:{
loginAct(){
this.$emit('loginAct');
},
showQrcodeAct(){
this.$emit('qrcode');
},
wdfxm(){
uni.navigateTo({
url:'/pages/client/member/qrshare'
})
}
}
}
</script>
<style>
.home-vip-tag-box{
height: 100rpx;
width: 100%;
position: relative;
overflow: hidden;
border-radius: 8rpx;
}
.home-vip-tag-box .main{
width: 100%;
height: 100rpx;
position: absolute;
z-index: 2;
left: 0;
top: 0;
}
.home-vip-tag-box .bg{
width: 100%;
height: 100rpx;
}
.tag-no-vip{
width: 128rpx;
height: 40rpx;
background: #FFFFFF;
border-radius: 20rpx;
font-size: 24rpx;
font-weight: 600;
color:#8A8D99;
text-align: center;
line-height: 40rpx;
}
.tag-has-vip{
width: 200rpx;
height: 40rpx;
background: linear-gradient(180deg, #333333 0%, #000000 100%);
border-radius: 20rpx;
}
.tag-has-vip .vip-level-icon{
width: 36rpx;
height: 36rpx;
}
.tag-has-vip .vip-level-means{
font-size: 24rpx;
margin-left: 8rpx;
font-weight: 500;
background: linear-gradient(180deg, #F2DCA9 0%, #C79556 100%);
-webkit-background-clip: text;
-webkit-text-fill-color: transparent;
}
.home-vip-tag-box .main .right-icon{
width: 40rpx;
height: 40rpx;
}
.vip-qrcode-tag{
width: 80rpx;
height: 80rpx;
border-radius: 40rpx;
display: flex;
justify-content: center;
align-items: center;
}
.btn-vip-money,.btn-vip-adviser{
width: 208rpx;
height: 80rpx;
border-radius: 40rpx;
display: flex;
justify-content: center;
align-items: center;
font-size: 28rpx;
font-weight: 600;
color:#FFFFFF;
}
</style>