This commit is contained in:
lipenggao 2024-05-28 10:27:58 +08:00
parent 09a974a482
commit a782d021d4
52 changed files with 772 additions and 178 deletions

View File

@ -22,8 +22,8 @@
"color": "#999999",
"selectedColor": "#5BBE04",
"backgroundColor": "#000000",
"list": [
{
"custom": false,
"list": [{
"pagePath": "pages/home/home",
"iconPath": "/static/tab/home.png",
"selectedIconPath": "/static/tab/home_selected.png",

5
app.ts
View File

@ -6,7 +6,8 @@ App({
equipmentInfo: {}
},
globalData: {
loginPromise: null
loginPromise: null,
statusBarHeight: 0
},
onLaunch() {
const loginPromise: any = new Promise((resolve: any) => {
@ -27,5 +28,7 @@ App({
});
})
this.globalData.loginPromise = loginPromise;
const { screenHeight, safeArea } = tt.getSystemInfoSync();
this.globalData.statusBarHeight = screenHeight - safeArea.bottom;
}
})

View File

@ -0,0 +1,4 @@
{
"component": true,
"usingComponents": {}
}

View File

@ -0,0 +1,49 @@
// e:\project\dy_video_all\dy_iaa_new_project\components\commTabs\commTabs.ts
Component({
data: {
list: [{
"pagePath": "/pages/home/home",
"iconPath": "/static/tab2/home.png",
"selectedIconPath": "/static/tab2/home_selected.png",
"text": "首页"
},
{
"pagePath": "/pages/recommend/recommend",
"iconPath": "/static/tab2/recommend.png",
"selectedIconPath": "/static/tab2/recommend_selected.png",
"text": "推荐"
},
{
"pagePath": "/pages/theater/theater",
"iconPath": "/static/tab2/theater.png",
"selectedIconPath": "/static/tab2/theater_selected.png",
"text": "剧场"
},
{
"pagePath": "/pages/my/my",
"iconPath": "/static/tab2/my.png",
"selectedIconPath": "/static/tab2/my_selected.png",
"text": "我的"
}
],
statusBarHeight: getApp().globalData.statusBarHeight
},
properties: {
selectedIndex: {
type: Number,
value: 0
}
},
methods: {
toPathTabs(ev: any) {
const item = ev.currentTarget.dataset.item;
console.log(item, "itemitem")
tt.switchTab({
url: item.pagePath,
fail: (faa) => {
console.log(faa, "faafaafaa")
}
});
}
}
})

View File

@ -0,0 +1,18 @@
<view class="_com_tabs_html" style="padding-bottom:{{ statusBarHeight ? 68 : 0}}rpx">
<view class="_com_tabs_con">
<view class="_com_tabs_list">
<block tt:for="{{list}}">
<view class="_com_tabs_li_item" tt:key="{{index}}" catchtap="toPathTabs" data-item="{{item}}">
<view class="_com_tabs_li_i_icon">
<image tt:if="{{selectedIndex == index}}" src="{{item.selectedIconPath}}" class="_ooo_img">
</image>
<image tt:else src="{{item.iconPath}}" class="_ooo_img"></image>
</view>
<view class="_com_tabs_li_i_name {{selectedIndex == index ? '_com_tabs_selected':''}}">
<text class="_com_tabs_li_i_na_text">{{item.text}}</text>
</view>
</view>
</block>
</view>
</view>
</view>

View File

@ -0,0 +1,54 @@
/* e:\project\dy_video_all\dy_iaa_new_project\components\commTabs\commTabs.ttss */
._com_tabs_html {
position: fixed;
bottom: 0;
left: 0;
width: 100%;
background-color: #000000;
z-index: 99999;
}
._com_tabs_con {
width: 100%;
height: 98rpx;
background-color: #000000;
}
._com_tabs_list {
display: flex;
justify-content: space-around;
}
._com_tabs_li_item {
display: flex;
flex-direction: column;
align-items: center;
padding-top: 14rpx;
cursor: pointer;
}
._com_tabs_li_i_icon {
width: 40rpx;
height: 40rpx;
}
._com_tabs_li_i_icon ._ooo_img {
display: block;
width: 100%;
height: 100%;
}
._com_tabs_li_i_name {
display: flex;
margin-top: 4rpx;
}
._com_tabs_li_i_na_text {
color: #999999;
font-size: 16rpx;
}
._com_tabs_selected ._com_tabs_li_i_na_text{
color: #5BBE04;
}

View File

@ -25,8 +25,9 @@ Page({
},
toPathVideo(ev: any) {
const sid = ev.currentTarget.dataset.sid;
const id = ev.currentTarget.dataset.id;
tt.navigateTo({
url: `/pages/videoDetail/videoDetail?sid=${sid}`,
url: `/pages/videoDetail/videoDetail?sid=${sid}&id=${id}`,
});
},
})

View File

@ -3,28 +3,29 @@
<view class="_consumption_content">
<view class="_consumption_c_list">
<block tt:for="{{moneyLogList}}">
<view class="_consumption_c_li_item" tt:key="{{item.id}}" data-sid="{{item.id}}" catchtap="toPathVideo">
<view class="_consumption_c_li_item" tt:key="{{item.id}}" data-sid="{{item.articleid}}" data-id="{{item.chapterid}}"
catchtap="toPathVideo">
<view class="_consumption_c_li_it_left">
<view class="_consumption_c_li_it_le_cover">
<image
src="https://dymgjcweb.qinjiu8.com/public/skits/2023/07/25/414c0d485788aba331337826f2efe31f.jpg"
class="__cum_img" mode="aspectFill"></image>
<image src="{{item.cover}}" class="__cum_img" mode="aspectFill"></image>
</view>
</view>
<view class="_consumption_c_li_it_right">
<view class="_consumption_c_li_it_r_top">
<view class="_consumption_c_li_it_r_t_title">
<text class="_consumption_c_li_it_r_t_ti_text">这是么么么么么么么么这是么么么么么么么么</text>
<text class="_consumption_c_li_it_r_t_ti_text">{{item.name}}</text>
</view>
<view class="_consumption_c_li_it_r_t_timer">
<text class="_consumption_c_li_it_r_t_tim_text">2024-05-17 16:34:36</text>
<text class="_consumption_c_li_it_r_t_tim_text">{{item.create_time}}</text>
</view>
</view>
<view class="_consumption_c_li_it_r_bottom">
<view class="_consumption_c_li_it_r_t_detail">
<text class="_consumption_c_li_it_r_t_de_text">这是么么么么么么么么这是么么么么么么么么</text>
<text
class="_consumption_c_li_it_r_t_de_text">话费{{item.price}}K币购买{{item.chaptername}}</text>
</view>
<view class="_consumption_c_li_it_r_t_btn">
<view class="_consumption_c_li_it_r_t_btn" data-sid="{{item.articleid}}" data-id="{{item.chapterid}}"
catchtap="toPathVideo">
<text class="_consumption_c_li_it_r_t_bt_text">继续观看</text>
</view>
</view>

View File

@ -1,6 +1,7 @@
{
"usingComponents": {
"my-modal": "/components/myModal/myModal"
"my-modal": "/components/myModal/myModal",
"comm-tabs": "/components/commTabs/commTabs"
},
"navigationBarTitleText": "首页"
}

View File

@ -6,12 +6,14 @@
</view>
<view class="_heome_swiper">
<swiper previous-margin="70rpx" next-margin="70rpx" class="_heome_swi_warp" circular="{{true}}"
bindchange="handelSwiperChange" autoplay="{{true}}" interval="{{2000}}">
bindchange="handelSwiperChange" autoplay="{{false}}" interval="{{2000}}">
<block tt:for="{{carouselChart}}">
<swiper-item class="_home_swi_item" tt:key="{{item.bookid}}">
<view class="_home_swi_it_warp {{swiperCurrent == index ? 'active' :''}}" bindtap="toPathVideo"
data-sid="{{item.bookid}}">
<image src="{{item.cover}}" class="_home_swi_it_wa_img" mode="aspectFill"></image>
<swiper-item class="_home_swi_item" tt:key="{{item.bookid}}" data-sid="{{item.bookid}}" bindtap="toPathVideo">
<view class="_home_swi_it_ppp">
<view class="_home_swi_it_warp {{swiperCurrent == index ? 'active' :''}}" bindtap="toPathVideo"
data-sid="{{item.bookid}}">
<image src="{{item.cover}}" class="_home_swi_it_wa_img" mode="aspectFill"></image>
</view>
<view class="_home_swi_it__play">
<text class="_home_swi_it__pl_text">播放</text>
</view>
@ -27,7 +29,7 @@
</view>
<view class="_home_modul_1">
<view class="_mo_1_header">
<view class="_mo_1_hea_title">精品短剧</view>
<view class="_mo_1_hea_title">最新短剧</view>
</view>
<view class="_mo_1_body">
<view class="_mo_1_bo_list">
@ -36,6 +38,9 @@
<view class="_mo_1__li_wa_item" data-sid="{{item.id}}" bindtap="toPathVideo">
<image src="{{item.cover}}" class="__wa_img" mode="aspectFill"></image>
</view>
<view class="_mo_3_con_li_it_wa_title">
<text class="_mo_3_con_li_it_wa_ti_text">{{item.name}}</text>
</view>
</view>
</block>
</view>
@ -43,7 +48,7 @@
</view>
<view class="_home_modul_2" tt:if="{{bookcase.length}}">
<view class="_mo_2_header">
<view class="_mo_2_hea_title">订阅专享</view>
<view class="_mo_2_hea_title">短剧上新</view>
<view class="_mo_2_hea_more" bindtap="toPathSubScribe">更多</view>
</view>
<scroll-view class="_mo_2_scroll_view_H" scroll-x="true" style="width: 100%" scroll-left="{{0}}">
@ -76,7 +81,7 @@
<view class="_home_modul_3">
<view class="_mo_3_header">
<view class="_mo_3_hea_title">优选好剧</view>
<view class="_mo_3_hea_title">热播短剧</view>
</view>
<view class="_mo_3_content">
<view class="_mo_3_con_list">
@ -108,7 +113,7 @@
<view class="_home_modul_4">
<view class="_mo_4_header">
<view class="_mo_4_hea_title">经典短剧</view>
<view class="_mo_4_hea_title">更多热剧</view>
</view>
<view class="_mo_4_content">
<view class="_mo_4_con_list">
@ -145,13 +150,13 @@
<view class="_home_modul_5">
<view class="_mo_5_header">
<view class="_mo_5_hea_title">最新好剧</view>
<view class="_mo_5_hea_title">更多好剧</view>
</view>
<view class="_mo_5_content">
<view class="_mo_5_con_list">
<block tt:for="{{newModule}}">
<view class="_mo_5_con_li_item" tt:key="{{item.id}}">
<view class="_mo_5_con_li_it_left" data-sid="{{item.id}}" bindtap="toPathVideo">
<view class="_mo_5_con_li_item" tt:key="{{item.id}}" data-sid="{{item.id}}" catchtap="toPathVideo">
<view class="_mo_5_con_li_it_left" >
<image src="{{item.cover}}" class="__wa_img" mode="aspectFill"></image>
<view class="_mo_5_con_li_it_le_tag">
<view class="_mo_5_con_li_it_le_ta_icon">
@ -208,4 +213,6 @@
<my-modal class="_m_modal_html" tt:ref="myModalRef" contentText="是否取消订阅?" cancelText="否" confirmText="是"
bind:handelConfirm="modalConfirm" />
<!-- <comm-tabs selectedIndex="{{0}}" /> -->
</view>

View File

@ -5,6 +5,7 @@ page {
}
._home_html {
/* padding-bottom: 166rpx; */
padding-bottom: 80rpx;
}
@ -30,12 +31,19 @@ page {
}
._home_swi_item {
position: relative;
padding: 76rpx 20rpx;
box-sizing: border-box;
border-radius: 12rpx;
overflow: hidden;
}
._home_swi_it_ppp {
position: relative;
width: 100%;
height: 100%;
}
._home_swi_it_warp {
position: relative;
width: 100%;
@ -132,7 +140,6 @@ page {
._mo_1__li_warp {
width: 33.333%;
height: 304rpx;
padding-right: 16rpx;
box-sizing: border-box;
margin-bottom: 32rpx;
@ -140,7 +147,7 @@ page {
._mo_1__li_wa_item {
width: 100%;
height: 100%;
height: 304rpx;
}
._mo_1__li_wa_item .__wa_img {

View File

@ -2,7 +2,10 @@
import { httpRequest } from "../../utils/httpReques";
Page({
data: {
module2: []
module2: [],
searchList: [],
searchFlag: false,
searchValue: ''
},
onLoad: function (options) {
@ -23,4 +26,29 @@ Page({
url: `/pages/videoDetail/videoDetail?sid=${sid}`,
});
},
handelSearchInput(ev: any) {
const val = ev.detail.value;
this.setData({
searchValue: val,
})
},
searchVideo() {
const searchValue = this.data.searchValue;
if (!searchValue) {
tt.showToast({
title: '搜索内容不能为空',
icon: 'none',
});
return;
}
httpRequest('/find', 'POST', { keyword: searchValue }).then((reults: any) => {
tt.hideLoading({});
if (reults.status == 1 && Array.isArray(reults.data)) {
this.setData({
searchList: reults.data,
searchFlag: true
})
}
})
}
})

View File

@ -7,7 +7,7 @@
<image src="/static/search_icon.png" class="__wa_img_no_radius"></image>
</view>
</view>
<view class="_leaderboard_he_in_btn">
<view class="_leaderboard_he_in_btn" catchtap="searchVideo">
<text class="_leaderboard_he_in_b_text">搜索</text>
</view>
</view>
@ -19,12 +19,12 @@
</view>
<view class="_leaderboard_list">
<view class="_leaderboard_l_ul">
<block tt:for="{{module2}}">
<block tt:for="{{ searchFlag ? searchList : module2}}">
<view class="_leaderboard_l_u_item" tt:key="{{item.id}}" data-sid="{{item.id}}" catchtap="toPathVideo">
<view class="_leaderboard_l_u_i_left">
<view class="_leaderboard_l_u_i_l_cover">
<image
src="https://dymgjcweb.qinjiu8.com/public/skits/2023/07/25/414c0d485788aba331337826f2efe31f.jpg"
src="{{item.cover}}"
class="__cove_img_l" mode="aspectFill"></image>
<view class="_leaderboard_l_u_i_l_top">
<block tt:if="{{index == 0}}">

View File

@ -1,6 +1,10 @@
{
"usingComponents": {
"my-modal": "/components/myModal/myModal"
"my-modal": "/components/myModal/myModal",
"comm-tabs": "/components/commTabs/commTabs"
},
"componentPlaceholder": {
"comm-tabs-view": "comm-tabs"
},
"navigationBarTitleText": "我的"
}

View File

@ -8,9 +8,9 @@
</view>
<view class="_my_body">
<view class="_my_step_1">
<view class="_my_ste_1_purchase" bindtap="toPathRechargeRecord">
<!-- <view class="_my_ste_1_purchase" bindtap="toPathRechargeRecord">
<text class="_my_ste_1_pu_text">购买记录</text>
</view>
</view> -->
</view>
<view class="_my_step_2">
<view class="_my_ste_2_user">
@ -109,7 +109,7 @@
<view class="_my_ste_4_history">
<scroll-view class="_my_ste_4_scr_H" scroll-x="true" style="width: 100%">
<block tt:for="{{historyList}}">
<view class="_my_ste_4_scr_H_item" tt:key="{{item.id}}" data-sid="{{item.id}}"
<view class="_my_ste_4_scr_H_item" tt:key="{{item.sid}}" data-sid="{{item.sid}}"
bindtap="toPathVideo">
<view class="_my_ste_4_scr_H_i_cover">
<image src="{{item.cover}}" class="__m_c_iiii" mode="aspectFill"></image>
@ -155,6 +155,21 @@
</view>
</view>
</view>
<view class="_my_ste_5_co_item" catchtap="toPathRechargeRecord">
<view class="_my_ste_5_co_it_left">
<view class="_my_ste_5_co_it_le_icon">
<image src="/static/purchase_records.png" class="__wa_img_no_radius"></image>
</view>
<view class="_my_ste_5_co_it_le_name">
<text class="_my_ste_5_co_it_le_na_text">购买记录</text>
</view>
</view>
<view class="_my_ste_5_co_it_right">
<view class="_my_ste_5_co_it_ri_arrow">
<image src="/static/arrow_icon.png" class="__wa_img_no_radius"></image>
</view>
</view>
</view>
<button open-type="im" data-im-id="{{userInfo.im}}" class="_my_ste_5_co_ke_fu">
<view class="_my_ste_5_co_item">
<view class="_my_ste_5_co_it_left">
@ -178,5 +193,5 @@
</view>
<my-modal class="_m_modal_html" tt:ref="myModalRef" contentText="赠送的硬币将在24小时内过期" />
<!-- <comm-tabs selectedIndex="{{3}}" /> -->
</view>

View File

@ -6,6 +6,7 @@ page {
._my_html {
position: relative;
/* padding-bottom: 186rpx; */
padding-bottom: 80rpx;
}

View File

@ -7,9 +7,11 @@ Page({
payList: [],
platform: '',
otherInfo: {},
iosIm: ''
iosIm: '',
},
onLoad(options) {
console.log(options, "options")
tt.getSystemInfo({
success: (res: any) => {
this.setData({
@ -28,7 +30,6 @@ Page({
}
})
httpRequest('/paysetting', 'POST').then((res: any) => {
console.log(res, "---------")
if (res.status == 1) {
this.setData({
payList: res.data.list,
@ -89,6 +90,13 @@ Page({
title: '支付成功',
duration: 2000
});
if (otherInfo.toStatus == 1) {
tt.redirectTo({
url: `/pages/videoDetail/videoDetail?sid=${otherInfo.sid}&id=${otherInfo.id}`
});
} else {
tt.navigateBack({});
}
}
},
fail: (payError: any) => {

View File

@ -4,9 +4,9 @@
</view>
<view class="_pay_body">
<view class="_pay_b_buy">
<view class="_pay_b_bu_btn">
<!-- <view class="_pay_b_bu_btn">
<text class="_pay_b_bu_bt_text">购买记录</text>
</view>
</view> -->
</view>
<view class="_pay_b_user">

View File

@ -24,7 +24,7 @@
._pay_b_buy {
display: flex;
justify-content: flex-end;
padding: 42rpx 32rpx;
padding: 66rpx 32rpx;
}
._pay_b_bu_btn {

View File

@ -10,10 +10,11 @@ Page({
},
onShow() {
this.getRechargerecord()
this.getRechargerecord(2)
},
getRechargerecord() {
httpRequest('/rechargerecord', 'POST').then((res: any) => {
getRechargerecord(type: any) {
// 1 书币 2vip
httpRequest('/rechargerecord', 'POST', { type: type }).then((res: any) => {
if (res.status == 1 && Array.isArray(res.data)) {
this.setData({
recordList: res.data,
@ -24,9 +25,7 @@ Page({
},
handelTabCh(ev: any) {
const idx = ev.currentTarget.dataset.idx;
if (idx == 1) {
this.getRechargerecord();
}
this.getRechargerecord(idx == 1 ? 2 : 1);
this.setData({
tabIndex: idx
})

View File

@ -16,34 +16,36 @@
<view class="_reh_rec_body">
<block tt:if="{{recordList.length && recordFlag}}">
<view class="_reh_rec_b_list">
<view class="_reh_rec_b_li_item">
<view class="_reh_rec_b_li_it_header">
<view class="_reh_rec_b_li_it_he_identi"></view>
<view class="_reh_rec_b_li_it_he_title">
<text class="_reh_rec_b_li_it_he_ti_text">2024-05-17</text>
</view>
</view>
<view class="_reh_rec_b_li_it_content">
<view class="_reh_rec_b_li_it_co_detail">
<view class="_reh_rec_b_li_it_co_de_ll">
<view class="_reh_rec_b_li_it_co__ll_name">
<text class="_reh_rec_b_li_it_co__ll_na_text">购买购买</text>
</view>
<view class="_reh_rec_b_li_it_co__ll_timer">
<text class="_reh_rec_b_li_it_co__ll_tim_text">2024-05-17 55555555</text>
</view>
<block tt:for="{{recordList}}">
<view class="_reh_rec_b_li_item" tt:key="{{index}}">
<view class="_reh_rec_b_li_it_header">
<view class="_reh_rec_b_li_it_he_identi"></view>
<view class="_reh_rec_b_li_it_he_title">
<text class="_reh_rec_b_li_it_he_ti_text">{{item.create_time}}</text>
</view>
<view class="_reh_rec_b_li_it_co_de_rr">
<view class="_reh_rec_b_li_it_co__rr_tyoe">
<text class="_reh_rec_b_li_it_co__rr_ty_text">VIP</text>
</view>
<view class="_reh_rec_b_li_it_content">
<view class="_reh_rec_b_li_it_co_detail">
<view class="_reh_rec_b_li_it_co_de_ll">
<view class="_reh_rec_b_li_it_co__ll_name">
<text class="_reh_rec_b_li_it_co__ll_na_text">{{item.description}}</text>
</view>
<view class="_reh_rec_b_li_it_co__ll_timer">
<text class="_reh_rec_b_li_it_co__ll_tim_text">{{item.create_time}}</text>
</view>
</view>
<view class="_reh_rec_b_li_it_co__rr_dddd">
<text class="_reh_rec_b_li_it_co__rr_dd_text">+3天</text>
<view class="_reh_rec_b_li_it_co_de_rr">
<view class="_reh_rec_b_li_it_co__rr_tyoe">
<text class="_reh_rec_b_li_it_co__rr_ty_text">VIP</text>
</view>
<view class="_reh_rec_b_li_it_co__rr_dddd" tt:if="{{item.vip}}">
<text class="_reh_rec_b_li_it_co__rr_dd_text">+{{item.vip}}</text>
</view>
</view>
</view>
</view>
</view>
</view>
</block>
</view>
</block>
<block tt:elif="{{recordFlag}}">

View File

@ -1,6 +1,7 @@
{
"usingComponents": {
"video-player": "ext://industry/video-player"
"video-player": "ext://industry/video-player",
"comm-tabs": "/components/commTabs/commTabs"
},
"navigationBarTitleText": "剧场"
}

View File

@ -10,7 +10,8 @@ Page({
videoPlayerCurrent: 0,
videoPlayernum: 4,
videoErrorText: '',
page: 1
page: 1,
statusBarHeight: getApp().globalData.statusBarHeight
},
onLoad() {
const videoCanIUse = tt.canIUse('video-player');
@ -144,18 +145,18 @@ Page({
})
},
toPathVideoDetail() {
console.log("toPathVideoDetail")
toPathVideo(ev: any) {
const sid = ev.currentTarget.dataset.sid;
tt.navigateTo({
url: `/pages/videoDetail/videoDetail`,
url: `/pages/videoDetail/videoDetail?sid=${sid}`,
});
},
handelCollection(ev: any) {
console.log(ev, "kkkkkkkkkkkk")
const id = ev.currentTarget.dataset.id;
let batchList: any = this.data.batchList;
const idx = batchList.findIndex((m: any) => m.id == id);
const bookcase = batchList[idx].bookcase;
const count = batchList[idx].bookcase;
batchList[idx].bookcase = bookcase == 1 ? 0 : 1;
if (bookcase) {
const params = {
@ -163,6 +164,7 @@ Page({
}
httpRequest('/chasingdramadel', 'POST', params).then((res: any) => {
if (res.status == 1) {
batchList[idx].count = this.handelCount(count - 1)
this.setData({
batchList: batchList
})
@ -178,6 +180,7 @@ Page({
}
httpRequest('/addkeep', 'POST', params).then((res: any) => {
if (res.status == 1) {
batchList[idx].count = this.handelCount(count + 1)
this.setData({
batchList: batchList
})

View File

@ -1,4 +1,5 @@
<view class="_recom_html">
<!-- style="padding-bottom:{{ statusBarHeight ? 166 : 98}}rpx;" -->
<view class="_recom_html" >
<!-- <block tt:if="{{videoCanIUse}}"> -->
<swiper bindchange="handelSeiperChange" class="_m_vi_pl_swiper" vertical="{{true}}" duration="{{100}}"
easing-function="easeInOutCubic" current="{{videoPlayerCurrent}}">
@ -68,7 +69,7 @@
<image src="{{videoInfo.cover}}" mode="aspectFill" class="__wa_img_no_radius"></image>
</view>
</block> -->
<view class="_m_v_jw_v_to_path" catchtap="toPathVideoDetail">
<view class="_m_v_jw_v_to_path" data-sid="{{item.id}}" catchtap="toPathVideo">
<text class="_m_v_jw_v_to_p_text">进入观看</text>
</view>
<view class="_m_v_w_v_operate_l">
@ -90,9 +91,9 @@
<view class="_m_vv_oper_l_collect">
<image src="/static/share_icon.png" class="__wa_img_no_radius"></image>
</view>
<!-- <view class="_m_vv_oper_l_col_sss">
<text class="_m_vv_oper_l_col_s_text">66K</text>
</view> -->
<view class="_m_vv_oper_l_col_sss">
<text class="_m_vv_oper_l_col_s_text">分享</text>
</view>
</view>
</button>
</view>
@ -115,4 +116,5 @@
</block>
</swiper>
<!-- </block> -->
<!-- <comm-tabs selectedIndex="{{1}}" /> -->
</view>

View File

@ -29,6 +29,7 @@ Page({
if (!searchValue) {
tt.showToast({
title: '搜索剧名不能为空',
icon: 'none',
});
return;
}
@ -80,5 +81,11 @@ Page({
tt.showToast({
title: '清空搜索历史成功',
});
}
},
toPathVideo(ev: any) {
const sid = ev.currentTarget.dataset.sid;
tt.navigateTo({
url: `/pages/videoDetail/videoDetail?sid=${sid}`,
});
},
})

View File

@ -35,7 +35,7 @@
<block tt:elif="{{searchFlag && searchList.length}}">
<view class="_search_con_vi_lis">
<block tt:for="{{searchList}}">
<view class="_search_con_vi_l_item">
<view class="_search_con_vi_l_item" tt:key="{{item.id}}" data-sid="{{item.id}}" catchtap="toPathVideo">
<view class="_search_con_vi_l_i_warp">
<view class="_search_con_vi_l_i_w_cover">
<image src="{{item.cover}}" class="__wa_img" mode="aspectFill"></image>

View File

@ -1,3 +1,5 @@
{
"usingComponents": {}
"usingComponents": {
"comm-tabs": "/components/commTabs/commTabs"
}
}

View File

@ -116,5 +116,5 @@
</block>
</view>
</view>
<!-- <comm-tabs selectedIndex="{{2}}" /> -->
</view>

View File

@ -3,6 +3,7 @@ page {
}
._theater_html {
/* padding-bottom: 186rpx; */
padding-bottom: 80rpx;
}

View File

@ -12,38 +12,42 @@ Page({
videoErrorText: '',
safeAreaBottom: 0,
platform: '',
anthologyFlag: false
anthologyFlag: false,
toOptions: {},
sid: "",
selectionTabs: [],
selectionConList: [],
roderCurrent: 0,
collectionItem: {},
nextbatchList: []
},
onLoad: function (options: any) {
onLoad(options: any) {
const videoCanIUse = tt.canIUse('video-player');
this.setData({
videoCanIUse,
})
this.initFn();
console.log(options, "options")
tt.getSystemInfo({
success: (res: any) => {
console.log(res, "------------")
const screenHeight = res.screenHeight;
const statusBarHeight = res.statusBarHeight;
const safeAreaHeight = res.safeArea.height;
const safeAreaBottom = screenHeight - statusBarHeight - safeAreaHeight;
console.log(safeAreaBottom, "safeAreaBottom")
this.setData({
safeAreaBottom,
platform: res.platform
platform: res.platform,
videoCanIUse,
toOptions: options,
sid: options?.sid || ''
})
}
})
},
onShow() { },
onShow() {
this.initFn();
},
async initFn() {
const sid = this.data.sid;
const options = this.data.toOptions;
console.log(options, "initFninitFninitFn")
const params = {
"uid": 127457025,
"platform": "devtools",
"is_b": 2,
"sid": "2"
...options,
sid: sid
}
const videoreadRes: any = await httpRequest('/videoread', 'POST', params);
@ -57,14 +61,32 @@ Page({
if (batchlistRes.status == 1 && Array.isArray(batchlistRes.data)) {
batchList = batchlistRes.data;
}
const ol = this.getAnthology(batchList);
let nextbatchList = [];
const nextbatchRes: any = await httpRequest('/nextbatch', 'POST', params);
if (nextbatchRes.status == 1 && Array.isArray(nextbatchRes.data)) {
nextbatchList = nextbatchRes.data;
}
this.setData({
batchList,
videoInfo
videoInfo: {
...videoInfo,
isCount: this.handelCount(videoInfo.count)
},
videoPlayerCurrent: videoInfo?.order - 1,
selectionTabs: ol.tabList,
selectionConList: ol.orderDataList,
nextbatchList,
})
// 第${videoInfo?.order}集
tt.setNavigationBarTitle({
title: `${videoInfo.title}`,
});
},
handelSeiperChange(ev: any) {
async handelSeiperChange(ev: any) {
const current = ev.detail.current;
const videoPlayerCurrent = this.data.videoPlayerCurrent;
const batchList: any = this.data.batchList;
@ -73,40 +95,70 @@ Page({
const context: any = tt.createVideoContext(`${id}`);
const nextContext: any = tt.createVideoContext(`${nextId}`);
context?.pause?.();
nextContext?.play?.();
// const collectionItem: any = this.data.collectionItem;
const sid = this.data.sid;
const videoInfo = this.data.videoInfo;
const collectionItem = batchList[current]
const params = {
sid: sid,
id: collectionItem?.id
}
const videoreadRes: any = await httpRequest('/videoread', 'POST', params);
let newVideoInfo: any = {}
if (videoreadRes.status == 1 && Array.isArray(videoreadRes.data)) {
newVideoInfo = videoreadRes.data[0];
}
this.selectComponent(`#${nextId}`, (res: any) => {
console.log(res, "resres")
res?.hidePauseIcon()
});
context?.pause?.();
if (newVideoInfo.chackpay == 1) {
nextContext?.play?.();
}
// this.selectComponent(`#${nextId}`, (res: any) => {
// res?.hidePauseIcon()
// });
this.setData({
videoInfo: {
...videoInfo,
...newVideoInfo,
},
videoPlayerCurrent: current,
anthologyFlag: false,
collectionItem: collectionItem,
videoErrorText: ''
})
},
videoPlayerEnded() {
console.log('videoPlayerEnded')
const videoPlayerCurrent = this.data.videoPlayerCurrent;
const batchList = this.data.batchList;
console.log(videoPlayerCurrent + 2, batchList.length)
// if (videoPlayerCurrent + 1 <= batchList.length) {
// const videoreadRes: any = await httpRequest('/videoread', 'POST', params);
this.setData({
videoPlayerCurrent: videoPlayerCurrent + 1,
videoErrorText: ''
videoErrorText: '',
// collectionItem
})
// }
},
videError(ev: any) {
const errMsg = ev.detail.errMsg;
let errMsgText = '';
if (errMsg == 'Video is forbidden in playletplease use video-player instead') {
errMsgText = '抱歉,当前抖音版本过低,请升级抖音'
} else {
errMsgText = errMsg;
errMsgText = '抱歉,当前抖音版本过低,请升级抖音';
this.setData({
videoErrorText: errMsgText
})
}
this.setData({
videoErrorText: errMsgText
})
// else {
// errMsgText = errMsg;
// }
},
videPlayerError(ev: any) {
@ -114,24 +166,24 @@ Page({
const errMsg = ev.detail.errMsg;
let errMsgText = '';
if (errMsg == 'Video is forbidden in playletplease use video-player instead') {
errMsgText = '抱歉,当前抖音版本过低,请升级抖音'
} else {
errMsgText = errMsg;
errMsgText = '抱歉,当前抖音版本过低,请升级抖音';
this.setData({
videoErrorText: errMsgText
})
}
this.setData({
videoErrorText: errMsgText
})
// else {
// errMsgText = errMsg;
// }
},
toPathVideoDetail() {
tt.navigateTo({
url: `pages/videoDetail/videoDetail`,
});
},
// toPathVideoDetail() {
// tt.navigateTo({
// url: `pages/videoDetail/videoDetail`,
// });
// },
anthologyTap() {
console.log('anthologyTap')
this.setData({
anthologyFlag: true
})
@ -141,5 +193,153 @@ Page({
this.setData({
anthologyFlag: false
})
},
handelCollection(ev: any) {
const id = ev.currentTarget.dataset.id;
const videoInfo: any = this.data.videoInfo
const bookcase = videoInfo.bookcase;
const count = videoInfo.count;
console.log(bookcase, "bookcasebookcase")
if (bookcase) {
const params = {
ids: id
}
httpRequest('/chasingdramadel', 'POST', params).then((res: any) => {
if (res.status == 1) {
this.setData({
videoInfo: {
...videoInfo,
bookcase: bookcase == 1 ? 0 : 1,
count: count - 1,
isCount: this.handelCount(count - 1)
}
})
tt.showToast({
title: '取消成功',
icon: 'none'
});
}
})
} else {
const params = {
sid: id
}
httpRequest('/addkeep', 'POST', params).then((res: any) => {
if (res.status == 1) {
this.setData({
videoInfo: {
...videoInfo,
bookcase: bookcase == 1 ? 0 : 1,
count: count + 1,
isCount: this.handelCount(count + 1)
},
})
tt.showToast({
title: '收藏成功',
icon: 'none'
});
}
})
}
},
handelCount(count: any) {
if (count > 999) {
const isCount: any = (count / 100000).toFixed(2);
const ik = parseFloat(isCount) * 100
return `${ik}k`;
}
return count;
},
getAnthology(ls: any) {
const num = 30;
let remain = 0;
let temp: any = [];
const mlist: any = [];
const tabList: any = [];
if (Array.isArray(ls)) {
ls.forEach((m, idx) => {
if (num * remain + num < idx + 1) {
remain += 1;
temp = [];
}
m.idx = idx;
temp.push(m);
let obj = {
firstNum: num * remain + 1,
lastNum: idx + 1,
temp: [...temp],
};
let tObj = {
name: `${num * remain + 1}-${idx + 1}`,
};
mlist[remain] = obj;
tabList[remain] = tObj;
});
}
return {
orderDataList: mlist,
tabList: tabList
}
},
handelOrderTabs(ev: any) {
const idx = ev.currentTarget.dataset.idx;
this.setData({
roderCurrent: idx
})
},
handelSelection(ev: any) {
const collectionItem = ev.currentTarget.dataset.item;
const batchList: any = this.data.batchList;
if (collectionItem.idx != 0) {
const isvip = batchList[collectionItem.idx - 1]?.isvip
if (isvip) {
tt.showToast({
title: `为了保证剧情连贯,请按顺序观看`,
icon: 'none'
});
this.setData({
collectionItem
})
return;
}
}
this.setData({
videoPlayerCurrent: collectionItem.idx,
// collectionItem
})
},
toPathPay() {
const collectionItem: any = this.data.collectionItem;
const sid = this.data.sid;
console.log(collectionItem, "collectionItem")
tt.navigateTo({
url: `/pages/pay/pay?sid=${sid}&id=${collectionItem.id}&toStatus=1`,
});
},
watchAdvertisement() {
},
toPathVideoitself(ev: any) {
const sid = ev.currentTarget.dataset.sid;
this.setData({
sid: sid,
options: {
sid
}
})
this.initFn();
},
async handelReplace() {
let nextbatchList = [];
const nextbatchRes: any = await httpRequest('/nextbatch', 'POST');
if (nextbatchRes.status == 1 && Array.isArray(nextbatchRes.data)) {
nextbatchList = nextbatchRes.data;
}
this.setData({
nextbatchList
})
}
})

View File

@ -2,19 +2,20 @@
<!-- style="padding-bottom: {{safeAreaBottom}}px;" platform style="padding-bottom: {{platform == 'ios' ? 80 : 40}}rpx;"-->
<swiper bindchange="handelSeiperChange" class="_vv_de_swiper" vertical="{{true}}" duration="{{100}}"
easing-function="easeInOutCubic" current="{{videoPlayerCurrent}}">
<!-- tt:for="{{batchList}}" tt:if="{{false}}"-->
<block tt:for="{{batchList}}">
<swiper-item>
<block
tt:if="{{index == videoPlayerCurrent || index == videoPlayerCurrent - 1 || index == videoPlayerCurrent + 1}}">
<!-- || index == videoPlayerCurrent - 1 || index == videoPlayerCurrent + 1 -->
<block tt:if="{{index == videoPlayerCurrent }}">
<view class="_swiper_item_warp">
<block tt:if="{{true}}">
<block tt:if="{{videoInfo.chackpay == 1}}">
<block tt:if="{{videoCanIUse}}">
<!-- videoPlayerCurrent == index -->
<video-player class="_m_v_w_video_player" album-id="{{videoInfo.album_id}}"
episode-id="{{videoInfo.episode_id}}" cloud-type="{{videoInfo.cloudType}}"
three-party-cloud="{{item.video_url}}" version="1"
enable-progress-gesture="{{true}}" autoplay="{{false}}" id="{{item.id}}"
enable-dark-water-mark="{{true}}" bindended="videoPlayerEnded"
enable-progress-gesture="{{true}}" autoplay="{{videoPlayerCurrent == index}}"
id="{{item.id}}" enable-dark-water-mark="{{true}}" bindended="videoPlayerEnded"
binderror="videPlayerError">
<block tt:if="{{videoPlayerCurrent == index}}">
<block tt:if="{{videoErrorText}}">
@ -70,16 +71,18 @@
</image>
</view>
<view class="_k_l_unlo_mask">
<view class="_k_l_unlo_ma_pay">
<view class="_k_l_unlo_ma_p_icon">
<image src="/static//unlock_icon.png" class="__wa_img_no_radius">
</image>
<block tt:if="{{platform != 'ios'}}">
<view class="_k_l_unlo_ma_pay" catchtap="toPathPay">
<view class="_k_l_unlo_ma_p_icon">
<image src="/static//unlock_icon.png" class="__wa_img_no_radius">
</image>
</view>
<view class="_k_l_unlo_ma_name">
<text class="_k_l_unlo_ma_na_text">充值解锁</text>
</view>
</view>
<view class="_k_l_unlo_ma_name">
<text class="_k_l_unlo_ma_na_text">充值解锁</text>
</view>
</view>
<view class="_k_l_unlo_ma_ad">
</block>
<view class="_k_l_unlo_ma_ad" catchtap="watchAdvertisement">
<view class="_k_l_unlo_ma_p_icon">
<image src="/static//unlock_icon.png" class="__wa_img_no_radius">
</image>
@ -92,15 +95,20 @@
</view>
</block>
<view class="_m_v_w_v_operate_l">
<view class="_m_vv_oper_l_col_w">
<view class="_m_vv_oper_l_col_w" data-id="{{videoInfo.sid}}" catchtap="handelCollection">
<view class="_m_vv_oper_l_collect">
<image src="/static/collect_icon.png" class="__wa_img_no_radius"></image>
<block tt:if="{{videoInfo.bookcase}}">
<image src="/static/collect_selected.png" class="__wa_img_no_radius"></image>
</block>
<block tt:else>
<image src="/static/collect_icon.png" class="__wa_img_no_radius"></image>
</block>
</view>
<view class="_m_vv_oper_l_col_sss">
<text class="_m_vv_oper_l_col_s_text">66K</text>
<text class="_m_vv_oper_l_col_s_text">{{videoInfo.isCount}}</text>
</view>
</view>
<view class="_m_vv_oper_l_col_w mt_36" bindtap="anthologyTap">
<view class="_m_vv_oper_l_col_w mt_36" catchtap="anthologyTap">
<view class="_m_vv_oper_l_collect">
<image src="/static/drama_series_icon.png" class="__wa_img_no_radius"></image>
</view>
@ -108,67 +116,111 @@
<text class="_m_vv_oper_l_col_s_text">选集</text>
</view>
</view>
<view class="_m_vv_oper_l_col_w mt_36">
<view class="_m_vv_oper_l_collect">
<image src="/static/share_icon.png" class="__wa_img_no_radius"></image>
<button open-type="share" class="_m_vv_oper_l_share">
<view class="_m_vv_oper_l_col_w mt_36">
<view class="_m_vv_oper_l_collect">
<image src="/static/share_icon.png" class="__wa_img_no_radius"></image>
</view>
<view class="_m_vv_oper_l_col_sss">
<text class="_m_vv_oper_l_col_s_text">分享</text>
</view>
</view>
<view class="_m_vv_oper_l_col_sss">
<text class="_m_vv_oper_l_col_s_text">分享</text>
</view>
</view>
</button>
</view>
<view class="_m_v_ww_info_vo">
<view class="_m_v_ww_in_vooo_title">
<text
class="_m_v_ww_in_vooo_ti_text">{{videoInfo.title}}{{videoPlayerCurrent}}{{index}}--{{item.id}}</text>
<!-- {{videoPlayerCurrent}}{{index}}--{{item.id}} -->
<text class="_m_v_ww_in_vooo_ti_text">{{videoInfo.title}}</text>
</view>
<view class="_m_v_ww_in_lll_num">
<text class="_m_v_ww_in_l_n_current">第{{videoInfo.order}}集 </text>
<text class="_m_v_ww_in_l_n_all">全剧{{100}}集</text>
</view>
<view class="_m_v_ww_in_ttt_tips">
<text
class="_m_v_ww_in_ttt_t_text">描述描述描述描述描述描述描述描述描述描述描述描述描述描述描述描述描述描述描述描述描述描述描述描述描述描述描述描述描述描述描述描述描述描述描述描述描述描述</text>
<text class="_m_v_ww_in_ttt_t_text">{{videoInfo.description}}</text>
</view>
</view>
</view>
</block>
</swiper-item>
</block>
<block tt:if="{{nextbatchList.length}}">
<swiper-item>
<view class="_play_drama_complete">
<view class="_pla_dra_com_mask">
<image src="{{videoInfo.cover}}" mode="aspectFill" class="__wa_img_no_radius"></image>
</view>
<view class="_pla_dra_com_content">
<view class="_pla__com_con_title">
<text class="_pla__com_con_ti_text">本剧已结束</text>
</view>
<view class="_pla__com_con_warp">
<view class="_pla__com_con_w_header">
<view class="_pla__com__w_he_title">更多推荐</view>
<view class="_pla__com__w_he_exit" catchtap="handelReplace">换一换</view>
</view>
<view class="_pla__com_con_w_list">
<block tt:for="{{nextbatchList}}">
<view class="_pla__com_con_w_li_item" tt:key="{{item.id}}" data-sid="{{item.id}}"
catchtap="toPathVideoitself">
<view class="_pla__com_con_w_li_it_mm">
<view class="_pla__com__w_li_it_m_cover">
<image src="{{item.cover}}" mode="aspectFill"
class="_pla__com__w_li_it_m_co_img"></image>
</view>
<view class="_pla__com__w_li_it_m_title">
<text class="_pla__com__w_li_it_m_ti_text">{{item.name}}</text>
</view>
</view>
</view>
</block>
</view>
</view>
</view>
</view>
</swiper-item>
</block>
</swiper>
<view class="_vv_det_anthology_dialog {{anthologyFlag ? 'ac_dis_blo' : ''}}">
<view class="_vv_det_ant_dia_header">
<view class="_vv_det_ant_dia_hea_name">
<text class="_vv_det_ant_dia_hea_na_text">剧名剧名剧名剧名剧名剧名剧名剧名剧名剧名剧名剧名剧名剧名</text>
<text class="_vv_det_ant_dia_hea_na_text">{{videoInfo.title}}</text>
</view>
<view class="_vv_det_ant_dia_hea_close" bindtap="handelAnthologyClose">
<view class="_vv_det_ant_dia_hea_close" catchtap="handelAnthologyClose">
<image src="/static/close_icon.png" class="__wa_img_no_radius"></image>
</view>
</view>
<view class="_vv_det_ant_dia_sort">
<scroll-view scroll-x="{{true}}" class="_vv_det_ant_dia_so_scr">
<block tt:for="{{3}}">
<view class="_vv_det_ant_dia_so_sc_item">
<text class="_vv_det_ant_dia_so_sc_it_text ac_color">1-30</text>
<block tt:for="{{selectionTabs}}">
<view class="_vv_det_ant_dia_so_sc_item" tt:key="{{item.name}}" data-name="{{item.name}}"
data-idx="{{index}}" catchtap="handelOrderTabs">
<text
class="_vv_det_ant_dia_so_sc_it_text {{roderCurrent == index ? 'ac_color':''}} ">{{item.name}}</text>
</view>
</block>
</scroll-view>
</view>
<view class="_vv_det_ant_dia_list">
<swiper class="_vv_det_ant_dia_li_warp">
<block tt:for="{{3}}">
<swiper class="_vv_det_ant_dia_li_warp" current="{{roderCurrent}}">
<block tt:for="{{selectionConList}}">
<swiper-item tt:key="{{index}}">
<view class="_vv_det_ant_dia_li_wa_ppp_li">
<view class="_vv_det_ant_dia_li_wa_p_hhhh">
<block tt:for="{{30}}" tt:for-index="idx">
<view class="_vv_det_ant_dia_li_wa_p_h_yyyy" tt:key="index_{{idx}}">
<view class="_vv_det_ant_dia_li_wa_p_h_y_ggg acv_class_color">
<text class="_vv_det_ant_dia_li_wa_p_h_y_g_t">{{idx}}</text>
<view class="_vv_det_ant_dia_li_wa_p_h_y_g_lock">
<image src="/static/ant_lock_icon.png" class="__wa_img_no_radius">
</image>
</view>
<block tt:for="{{item.temp}}" tt:for-index="idx" tt:for-item="m">
<view class="_vv_det_ant_dia_li_wa_p_h_yyyy" tt:key="index_{{m.id}}">
<view
class="_vv_det_ant_dia_li_wa_p_h_y_ggg {{videoInfo.order == m.order ? 'acv_class_color' :''}} "
catchtap="handelSelection" data-item="{{m}}">
<text class="_vv_det_ant_dia_li_wa_p_h_y_g_t">{{m.order}}</text>
<block tt:if="{{m.isvip}}">
<view class="_vv_det_ant_dia_li_wa_p_h_y_g_lock">
<image src="/static/ant_lock_icon.png" class="__wa_img_no_radius">
</image>
</view>
</block>
</view>
</view>
</block>

View File

@ -232,7 +232,7 @@
transition: transform 0.5s;
}
._vv_det_anthology_dialog.ac_dis_blo{
._vv_det_anthology_dialog.ac_dis_blo {
transform: translateY(0);
transition: transform 0.5s;
}
@ -279,6 +279,7 @@
._vv_det_ant_dia_so_sc_item {
display: inline-block;
margin-right: 40rpx;
cursor: pointer;
}
._vv_det_ant_dia_so_sc_item:last-child {
@ -360,3 +361,126 @@
width: 20rpx;
height: 24rpx;
}
._m_vv_oper_l_share {
background-color: transparent;
border: none;
padding: 0;
}
._m_vv_oper_l_share::after {
content: none;
}
._play_drama_complete {
width: 100%;
height: 100%;
z-index: 1;
box-sizing: border-box;
}
._pla_dra_com_mask {
position: absolute;
top: 0;
left: 0;
right: 0;
bottom: 0;
}
._pla_dra_com_content {
position: relative;
top: 0;
left: 0;
display: flex;
flex-direction: column;
justify-content: center;
align-items: center;
width: 100%;
height: 100%;
z-index: 2;
padding: 0 32rpx;
background: rgba(0, 0, 0, 0.4);
}
._pla_dra_com_content {
display: flex;
}
._pla__com_con_ti_text {
font-size: 56rpx;
color: #fff;
}
._pla__com_con_warp {
width: 100%;
background-color: #080B16;
margin-top: 50rpx;
border-radius: 16rpx;
padding: 32rpx 0;
}
._pla__com_con_w_header {
display: flex;
justify-content: space-between;
align-items: center;
padding: 0 32rpx;
}
._pla__com__w_he_title {
font-weight: 600;
font-size: 28rpx;
color: #fff;
}
._pla__com__w_he_exit {
font-size: 24rpx;
color: #999;
cursor: pointer;
}
._pla__com_con_w_list {
display: flex;
flex-wrap: wrap;
width: 100%;
padding-left: 22rpx;
padding-right: 8rpx;
/* margin-top: 24rpx; */
}
._pla__com_con_w_li_item {
width: 33.33%;
padding-right: 14rpx;
margin-top: 24rpx;
}
._pla__com_con_w_li_it_mm {
width: 100%;
}
._pla__com__w_li_it_m_cover {
width: 100%;
height: 284rpx;
}
._pla__com__w_li_it_m_co_img {
display: block;
width: 100%;
height: 100%;
border-radius: 16rpx;
}
._pla__com__w_li_it_m_title {
display: flex;
margin-top: 16rpx;
}
._pla__com__w_li_it_m_ti_text {
display: inline-block;
width: 100%;
font-size: 24rpx;
color: #fff;
overflow: hidden;
white-space: nowrap;
text-overflow: ellipsis;
}

BIN
static/purchase_records.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.2 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 4.4 KiB

After

Width:  |  Height:  |  Size: 3.8 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.8 KiB

After

Width:  |  Height:  |  Size: 3.4 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 4.9 KiB

After

Width:  |  Height:  |  Size: 3.6 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.4 KiB

After

Width:  |  Height:  |  Size: 3.0 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 5.8 KiB

After

Width:  |  Height:  |  Size: 3.8 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 4.2 KiB

After

Width:  |  Height:  |  Size: 3.1 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 5.5 KiB

After

Width:  |  Height:  |  Size: 4.0 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 4.8 KiB

After

Width:  |  Height:  |  Size: 3.6 KiB

BIN
static/tab2/hhh11.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.4 KiB

BIN
static/tab2/hhh1122.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.9 KiB

BIN
static/tab2/home.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.8 KiB

BIN
static/tab2/my.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.9 KiB

BIN
static/tab2/my_selected.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.4 KiB

BIN
static/tab2/recommend.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.8 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.2 KiB

BIN
static/tab2/theater.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.5 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.8 KiB