first commit

This commit is contained in:
编码猿
2024-09-27 02:06:13 +08:00
commit 852d94fbb9
36760 changed files with 3274413 additions and 0 deletions

View File

@@ -0,0 +1,23 @@
<template lang="pug">
.info {{ id }}
</template>
<script>
export default {
data() {
return {
id: 0
}
},
onLoad(params) {
this.id = params.id
},
methods: {
}
}
</script>
<style>
</style>

View File

@@ -0,0 +1,103 @@
<template lang="pug">
.news
top
.news-content
.news-title {{NewsList.title}}
.news-date
span {{NewsList.create_time}}
span {{NewsList.viewer_count}}
div(v-html="NewsList.content" :class="isMore ? 'news-body' : ''")
.show( @click="isMore = !isMore" v-if="isMore")
img(src='/static/img/select-down.png' class='select')
button 打开APP阅读全文
recommend(:relevant="relevant",:vertical="vertical")
comment
</template>
<script>
export default {
data() {
return {
isMore: true,
NewsList: [],
relevant: [],
vertical:true
}
},
created () {
this.getVideoDetail()
},
methods: {
async getVideoDetail () {
let res = await this.$http.index.newsDetail({
id: "461"
})
this.NewsList = res.detail
this.relevant = res.recommend
console.log(res)
}
},
}
</script>
<style scoped lang="less">
.news-content {
padding-left: 23rpx;
padding-right: 25rpx;
.news-title {
font-size: 40rpx;
margin-bottom: 38rpx;
}
.news-date {
font-size: 24rpx;
span {
margin-left: 22rpx;
color: #999999;
}
}
.news-body {
height: 1131rpx;
margin-top: 38rpx;
font-size: 32rpx;
overflow: hidden;
}
.show {
//position: relative;
display: block;
margin-top: 22rpx;
text-align: center;
.select {
width: 52rpx;
}
.back {
position: absolute;
top: 0;
left: 350rpx;
z-index: -1;
opacity: 0.5;
width: 52rpx;
height: 40rpx;
}
button {
width: 702rpx;
height: 88rpx;
background-color: #d0302c;
border-radius: 8rpx;
font-size: 28rpx;
color: #ffffff;
border: none;
}
}
}
</style>

View File

@@ -0,0 +1,28 @@
<template>
<view>
<p>在包河(首页第二个)</p>
</view>
</template>
<script>
export default {
data() {
return {};
},
created(){
this.getList();
},
methods: {
async getList() {
let res = await this.$http.index.channelList({
page: this.page,
count: 20,
});
console.log(res);
},
},
};
</script>
<style>
</style>

View File

@@ -0,0 +1,104 @@
<template lang="pug">
ul
li(v-for='item in liveArr' @click="enterInfo(item)")
.li-top
img(class='context' :src='item.coverimage')
// 右上角
img(v-if='item.status == 10' class='state' src='/static/img/icon/live_lab_ing.png')
img(v-else-if='item.status == 3' class='state' src='/static/img/icon/live_lab_notice_big.png')
img(v-else='item.status == 1 || 2' class='playback' src='/static/img/icon/live_lab_playback_big.png')
.time(v-if='item.status == 10') 直播时间:{{item.start_time}}
.subscribe(v-if='item.status == 3') {{item.appointment_count}}人预约
.subscribe(v-else-if='item.status == 1 || 2') {{item.appointment_count}}人看过
.subscribe(v-else='item.status == 10') {{item.appointment_count}}人在看
span {{item.title}}
</template>
<script>
export default {
created () {
this.liveList()
},
data () {
return {
liveArr: []
}
},
methods: {
async liveList () {
let res = await this.$http.index.liveList({
})
this.liveArr = res.list
console.log(res)
},
enterInfo(item) {
uni.navigateTo({
url: `/pages/videolive/videolive?id=${item.id}`,
});
},
}
}
</script>
<style scoped lang="less">
ul{
margin-top: 31rpx;
border-top: 1rpx solid #f5f5f5;
padding-left: 21rpx;
padding-right: 23rpx;
li{
position: relative;
margin-bottom: 0.533rem;
.li-top {
.context {
width: 702rpx;
height: 309rpx;
}
.state {
position: absolute;
top: 14rpx;
right: 14rpx;
width: 114rpx;
height: 36rpx;
}
.playback {
position: absolute;
top: 14rpx;
right: 14rpx;
width: 60rpx;
height: 36rpx;
}
.time {
position: absolute;
top: 40%;
left: 50%;
transform: translate(-50%, -50%);
width: 280rpx;
height: 40rpx;
background-color: #000000;
border-radius: 20rpx;
opacity: 0.7;
align-items: center;
text-align: center;
color: #fff;
font-size: 22rpx;
}
.subscribe {
position: absolute;
right: 13rpx;
bottom: 12rpx;
font-size: 22rpx;
color: #ffffff;
}
}
}
span {
display: block;
font-size: 30rpx;
}
}
</style>

View File

@@ -0,0 +1,175 @@
<template lang="pug">
.demand
top
view
swiper(class="swiper" :indicator-dots='indicatorDots', :autoplay='autoplay', :interval='interval', :duration='duration')
swiper-item
view.swiper-item A
swiper-item
view.swiper-item B
swiper-item
view.swiper-item C
.demand_a
.demand_b( v-if="Return.detail.image_url" )
img(class="tx" :src='Return.detail.image_url')
.demand_c
p {{Return.detail.nick_name}}
span {{Return.detail.create_time}}
span {{Return.detail.content}}
comment
allComment
</template>
<script>
import swiperImg from '../../components/swiper.vue'
export default {
name: 'demand',
components:{
swiperImg
},
data () {
return {
background: ['color1', 'color2', 'color3'],
indicatorDots: true,
autoplay: true,
interval: 2000,
duration: 500,
swiperList:[
{ img:'/static/sky01.jpg',
title:'星空1',
content:'安静笼罩著夏夜巨大的星空,覆盖著整个地球,温柔地无声无息'
},
{ img:'/static/sky02.jpg',
title:'星空2',
content:'星星就像一盏盏小电灯,在空中闪烁'
},
{ img:'/static/sky03.jpg',
title:'星空3',
content: '我在星空的这一端,你在星空的那一端,相隔很远这很远。灿烂的永恒,无尽的遥远,再也无法相见..'
}, { img:'/static/sky04.jpg',
title:'星空4',
content: '一切都如生命一般,在悄然地发生着变化,就如这黑夜一样,失去了光明,却得到了星空.'
},
],
Return: {},
images: []
}
},
created () {
this.getdemand()
},
methods: {
async getdemand () {
let res = await this.$http.index.interactDetail({
id: '218'
})
console.log(res)
this.Return = res
this.images = res.detail.image
},
changeIndicatorDots(e) {
this.indicatorDots = !this.indicatorDots
},
changeAutoplay(e) {
this.autoplay = !this.autoplay
},
intervalChange(e) {
this.interval = e.target.value
},
durationChange(e) {
this.duration = e.target.value
}
// onChange (index) {
// this.current = index
// }
},
}
</script>
<style scoped lang="less">
.demand {
.van-swipe {
width: 10rem;
height: 13.427rem;
.van-swipe-item {
img {
height: 100%;
}
}
.custom-indicator {
position: absolute;
right: 5px;
bottom: 5px;
padding: 2px 5px;
font-size: 12px;
border-radius: 30%;
background: rgba(0, 0, 0, 0.1);
}
}
.demand_a {
margin: 0.333rem;
.demand_b {
display: flex;
img {
margin-right: 0.213rem;
margin-left: 0.32rem;
width: 38px;
height: 41px;
border-radius: 50%;
}
.demand_c {
p {
width: 80px;
height: 13px;
font-family: PingFangSC-Bold;
font-size: 14px;
font-weight: normal;
font-stretch: normal;
line-height: 17px;
letter-spacing: 0px;
color: #333333;
}
span {
width: 1.467rem;
height: 0.307rem;
font-family: PingFangSC-Medium;
font-size: 0.32rem;
font-weight: normal;
font-stretch: normal;
line-height: 0.747rem;
letter-spacing: 0rem;
color: #999999;
}
}
}
span {
width: 351px;
height: 85px;
font-family: PingFangSC-Medium;
font-size: 16px;
font-weight: normal;
font-stretch: normal;
line-height: 25px;
letter-spacing: 0px;
color: #333333;
}
}
.comment {
margin-bottom: 0.533rem;
}
.allComment {
margin-bottom: 0.533rem;
}
}
</style>

View File

@@ -0,0 +1,80 @@
<template>
<view class="content">
<swiperComponents :list="test"></swiperComponents>
<videoComponents
src="https://d2zihajmogu5jn.cloudfront.net/sintel/rendition/rendition.m3u8?assetId=4034862675001&videoId=4034552795001"
></videoComponents>
<image class="logo" src="/static/logo.png"></image>
<ul>
<li v-for="(item, index) in list" :key="index" @click="enterInfo(item)">
{{ item.title }}
</li>
</ul>
<uni-collapse accordion="true">
<uni-collapse-item title="标题文字">
<view style="padding: 30rpx"> 手风琴效果 </view>
</uni-collapse-item>
<uni-collapse-item title="标题文字">
<view style="padding: 30rpx"> 手风琴效果 </view>
</uni-collapse-item>
<uni-collapse-item title="标题文字">
<view style="padding: 30rpx"> 手风琴效果 </view>
</uni-collapse-item>
</uni-collapse>
</view>
</template>
<script>
import videoComponents from "../../components/video";
import swiperComponents from "../../components/swiper";
export default {
data() {
return {
test: [
{ url: 'https://zbhresources.ahtv.cn/app/uploads/202003/13/iOS_493662ea30aa7c4bede66a055ae82f3b.png' },
{ url: 'https://zbhresources.ahtv.cn/app/uploads/202003/13/iOS_152e3d7660b8d0be3d32203a0f6b2263.png' }
],
list: [
{ id: 1, title: "测试1" },
{ id: 2, title: "测试2" },
{ id: 3, title: "测试3" },
],
};
},
created() {
this.radio();
},
onLoad() {},
methods: {
async getIndex() {
let res = await this.$http.index.getIndex({
id: 455,
});
console.log(res);
},
async radio() {
let aaa = await this.$http.index.radio();
console.log(aaa);
},
enterInfo(item) {
uni.navigateTo({
url: `/pages/Info/Info?id=${item.id}`,
});
},
},
components: {
videoComponents,
swiperComponents
},
};
</script>
<style scoped lang="less">
@import "../../common/less/page/index.less";
</style>

View File

@@ -0,0 +1,173 @@
<template lang="pug">
.invitation
top
video
.invitation_a
span {{Return.detail.title}}
.invitation_b
span {{Return.detail.create_time}}
.invitation_c
.left
.left_a
img(class='xing' src='/static/img/icon/collection-icon.png')
span 收藏
.left_b
img(class='zan' src='/static/img/icon/give_thumbs-up.png')
span {{Return.detail.like_count}}
.right( @click="boom" )
span 简介
img(:src="booker ? '/static/img/icon/open-just.png' : '/static/img/icon/open-close.png'")
.invitation_d(v-show='booker')
span 简介内容简介内容简介内容简介内容简介内容简介内容简介内容简介内容简介内容
comment
allComment
</template>
<script>
export default {
name: 'invitation',
data () {
return {
booker: false,
Return: {}
}
},
created () {
this.getvideoDetail()
},
methods: {
async getvideoDetail () {
let res = await this.$http.index.videoDetail({
id: '147'
})
console.log(res)
this.Return = res
},
boom (e) {
this.booker = !this.booker;
}
},
}
</script>
<style scoped lang="less">
.invitation {
uni-video {
width: 100%;
height: 422rpx;
}
.invitation_a {
margin: 0.878rem 0.693rem 0.493rem 0.307rem;
span {
width: 337.5px;
height: 44px;
font-family: PingFangSC-Bold;
font-size: 18px;
font-weight: normal;
font-stretch: normal;
line-height: 28.5px;
letter-spacing: 0px;
color: #333333;
}
.invitation_b {
span {
width: 103.5px;
height: 9px;
font-family: PingFangSC-Medium;
font-size: 11.5px;
font-weight: normal;
font-stretch: normal;
line-height: 21.6px;
letter-spacing: 0px;
color: #999999;
}
.invitation_c {
display: flex;
justify-content: space-between;
.left {
display: flex;
.left_a {
img {
width: 14px;
height: 14px;
}
span {
width: 0.613rem;
height: 0.307rem;
font-family: PingFangSC-Medium;
font-size: 0.32rem;
font-weight: normal;
font-stretch: normal;
line-height: 0.6rem;
letter-spacing: 0rem;
}
}
.left_b {
img {
width: 14px;
height: 14px;
}
span {
width: 0.613rem;
height: 0.307rem;
font-family: PingFangSC-Medium;
font-size: 0.32rem;
font-weight: normal;
font-stretch: normal;
line-height: 0.6rem;
letter-spacing: 0rem;
}
}
}
.right {
span {
width: 0.627rem;
height: 0.307rem;
font-family: PingFangSC-Medium;
font-size: 0.32rem;
font-weight: normal;
font-stretch: normal;
line-height: 0.384rem;
letter-spacing: 0rem;
color: #999999;
}
img {
width: 8.5px;
height: 5px;
}
}
}
}
}
.invitation_d{
.active{
display: none;
}
.none{
display: block !important;
}
margin: 0.32rem;
span{
width: 348.5px;
height: 34.5px;
font-family: PingFangSC-Medium;
font-size: 14px;
font-weight: normal;
font-stretch: normal;
line-height: 23.5px;
letter-spacing: 0px;
color: #999999;
}
}
}
</style>

View File

@@ -0,0 +1,75 @@
<template>
<div class="big">
<top></top>
<videoes :src="live.play_url"></videoes>
<div class="apps">
<p class="p1">{{ live.title }}</p>
<p class="p2">{{ live.viewer_count }}人预约</p>
<div class="jianjie">
<div class="left">
<img src="/static/img/icon/give_thumbs-up.png" />
<p>{{ live.collection_count }}</p>
</div>
<div class="right" @click="dianji">
<p>简介</p>
<img
:src="
stat
? '/static/img/icon/open-close.png'
: '/static/img/icon/open-just.png'
"
/>
<div class="aaa" v-show="stat">{{ live.des }}</div>
</div>
</div>
<div class="msg" v-if="live.appointment_count == 2">
<p>{{ live.start_time }}</p>
<img src="/static/img/yuyue.png" />
</div>
</div>
<comment></comment>
</div>
</template>
<script>
//appointment_count==0表示正在直播,appointment_count==2表示有预约
export default {
data() {
return {
stat: false,
live: [],
el:{}
};
},
created() {
this.liveDetail();
console.log('----------',this.el.id);
},
onLoad(el){
this.el=el;
},
methods: {
dianji() {
this.stat = !this.stat;
},
//直播详情接口
async liveDetail() {
let res = await this.$http.index.liveDetail({
//id:478,482
live_id: this.el.id,
});
this.live = res.live;
console.log(this.live);
},
},
};
</script>
<style lang='less' scoped>
@import "../../common/less/page/vidiolive.less";
uni-video {
width: 100%;
height: 422rpx;
}
</style>

View File

@@ -0,0 +1,81 @@
<template>
<div>
<top></top>
<videoes :src='videoUrl.src'></videoes>
<view class="end-title">
  <view @tap="change(0)" :class="{ btna: btnnum == 0 }">频道</view>
 <view @tap="change(1)" :class="{ btna: btnnum == 1 }">评论</view>
</view>
<view class="end-cont" :class="{ dis: btnnum == 0 }">
<tvlist></tvlist>
</view>
<view class="end-cont" :class="{ dis: btnnum == 1 }">
<comment :comment-list="CommentArr"></comment>
</view>
</div>
</template>
<script>
export default {
//此页面需要调包河TV评论接口,拿到值保存,然后传到comment组件中去
data() {
return {
btnnum: 0,
videoUrl: [],
CommentArr: [],
dataList: [],
};
},
onLoad(el) {
this.dataList = el;
},
created() {
console.log(this.dataList.id);
console.log(this.dataList.url);
console.log(this.videoUrl.src);
this.videoUrl.push({
type: "audio/x-mpegurl",
src: this.dataList.url,
});
this.getTvComment();
},
methods: {
change(e) {
this.btnnum = e;
},
async getTvComment() {
let res = await this.$http.index.channelComment({
object_id: this.dataList.id,
});
this.CommentArr = res.list;
},
},
};
</script>
<style scoped>
.end-title {
display: flex;
height: 120rpx;
line-height: 120rpx;
}
.end-title view {
flex-grow: 1;
text-align: center;
}
.end-cont {
display: none;
}
.btna {
color: #ffffff;
color: red;
}
.dis {
display: block;
}
uni-video {
width: 100%;
}
</style>