肝胆视频

This commit is contained in:
XiuYun CHEN 2025-05-27 13:15:22 +08:00
parent 3bdbf49577
commit 5375c26462
32 changed files with 720 additions and 20 deletions

View File

@ -17,7 +17,7 @@
], ],
"buildModeSet": [ "buildModeSet": [
{ {
"name": "debug", "name": "debug"
}, },
{ {
"name": "release" "name": "release"
@ -43,15 +43,15 @@
}, },
{ {
"name": "basic", "name": "basic",
"srcPath": "./commons/basic", "srcPath": "./commons/basic"
}, },
{ {
"name": "Home", "name": "Home",
"srcPath": "./features/Home", "srcPath": "./features/Home"
}, },
{ {
"name": "register", "name": "register",
"srcPath": "./features/register", "srcPath": "./features/register"
}, },
{ {
"name": "polyv", "name": "polyv",
@ -61,5 +61,6 @@
"name": "scene_single_video", "name": "scene_single_video",
"srcPath": "./scene_single_video" "srcPath": "./scene_single_video"
} }
] ]
} }

View File

@ -30,5 +30,9 @@ export class BasicConstant {
static readonly videoByTypeNew = BasicConstant.urlExpertApp + 'videoByTypeNew' static readonly videoByTypeNew = BasicConstant.urlExpertApp + 'videoByTypeNew'
static readonly videoDetail = BasicConstant.urlExpertAPI + "videoDetail"; static readonly videoDetail = BasicConstant.urlExpertAPI + "videoDetail";
static readonly meetingHistoryList = BasicConstant.urlExpertAPI + "meetingHistoryList"; static readonly meetingHistoryList = BasicConstant.urlExpertAPI + "meetingHistoryList";
static readonly videoRoll = BasicConstant.urlExpertAPI + "videoRoll";
static readonly expertVideoTypeList = BasicConstant.urlExpertAPI + "expertVideoTypeList";
static readonly videoByKeyWordsNew = BasicConstant.urlExpertApp + "videoByKeyWordsNew";
static readonly tagList = BasicConstant.urlExpertApp + "tagList";
} }

View File

@ -6,6 +6,7 @@ import image from '@ohos.multimedia.image';
import fs from '@ohos.file.fs'; import fs from '@ohos.file.fs';
import { fileIo } from '@kit.CoreFileKit'; import { fileIo } from '@kit.CoreFileKit';
import util from '@ohos.util'; import util from '@ohos.util';
import { i18n } from '@kit.LocalizationKit';
export class ChangeUtil { export class ChangeUtil {
/** /**
* 将HashMap转成JsonString * 将HashMap转成JsonString
@ -132,4 +133,14 @@ export class ChangeUtil {
} }
} }
static isLetter(char: string): boolean {
if (char.length !== 1) return false;
const code = char.charCodeAt(0);
return (code >= 65 && code <= 90) || (code >= 97 && code <= 122);
}
static isFirstDigit(str: string): boolean {
if (str.length === 0) return false;
return i18n.Unicode.isDigit(str.charAt(0));
}
} }

View File

@ -52,6 +52,7 @@ class HdHttp {
return httpInstance.request(fullUrl, options).then((res) => { return httpInstance.request(fullUrl, options).then((res) => {
logger.info('Response param'+JSON.stringify(extraDatas))
logger.info('Response fullUrl:' +fullUrl+ res.result); logger.info('Response fullUrl:' +fullUrl+ res.result);
const result = res.result as HdResponse<T> const result = res.result as HdResponse<T>
return result return result

View File

@ -9,3 +9,7 @@ export { VideoMore } from './src/main/ets/pages/VideoMore'
export { VideoDetailModel } from './src/main/ets/model/VideoDetailModel' export { VideoDetailModel } from './src/main/ets/model/VideoDetailModel'
export { PastVideo } from './src/main/ets/pages/PastVideo'; export { PastVideo } from './src/main/ets/pages/PastVideo';
export { VideoGandan } from './src/main/ets/pages/VideoGandan';
export { PLVMockMediaResourceData } from './src/main/ets/polyv/PLVMockMediaResourceData'

View File

@ -33,7 +33,7 @@ export struct ItemCompVideo {
Row(){ Row(){
Text(this.item.public_name).fontSize(14) Text(this.item.public_name).fontSize(14)
.fontColor($r('app.color.999999')) .fontColor($r('app.color.999999')).maxLines(1) .textOverflow({ overflow: TextOverflow.Ellipsis }).layoutWeight(1)
Blank() Blank()
Image($r('app.media.video_look')).width(18).height(11) Image($r('app.media.video_look')).width(18).height(11)
Text(this.item.readnum+'').fontSize(14) Text(this.item.readnum+'').fontSize(14)

View File

@ -59,9 +59,14 @@ export struct ListComp {
{ {
this.controller.loaded() this.controller.loaded()
} }
if(this.page==1&&json.data.list!=null&&json.data.list.length>0) if(this.page==1)
{ {
this.list = json.data.list this.list=[]
if(json.data!=null&&json.data.list!)
{
this.list = json.data.list
}
} }
else if(this.page>1) else if(this.page>1)
{ {

View File

@ -0,0 +1,119 @@
import { ItemCompVideo } from './ItemCompVideo'
import { VideoMoreModel,VideoMore } from '../model/VideoMoreModel'
import { HdGrid, HdListController,BasicConstant,hdHttp, HdResponse ,logger} from '@itcast/basic/Index'
import { promptAction, router } from '@kit.ArkUI'
import { BusinessError } from '@kit.BasicServicesKit';
import { HdLoadingDialog,EmptyViewComp } from '@itcast/basic'
import HashMap from '@ohos.util.HashMap';
@Component
export struct ListCompGandan {
@State isEmptyViewVisible: boolean = false; // 控制显隐的状态变量
@Prop@Watch('onUpdate') sort:string='2'
@Prop@Watch('onUpdate')
type_uuid:string=''
@Prop@Watch('onUpdate') keywords:string=''
@State
list: VideoMore[] = []
controller = new HdListController()
@State
page: number = 1
@State
keyword: string = ''
hashMap: HashMap<string, string> = new HashMap();
dialog: CustomDialogController = new CustomDialogController({
builder: HdLoadingDialog({ message: '加载中...' }),
customStyle: true,
alignment: DialogAlignment.Center
})
onUpdate() {
this.onRefresh()
}
onRefresh() {
this.page = 1
this.initData(0)
}
initData(type:number)
{
this.dialog.open()
this.hashMap.clear();
this.hashMap.set('keywords',this.keywords)
this.hashMap.set('page', this.page+"")
this.hashMap.set("sort", this.sort);
this.hashMap.set('typeUuid', this.type_uuid)
hdHttp.httpReq<string>(BasicConstant.videoByKeyWordsNew,this.hashMap).then(async (res: HdResponse<string>) => {
logger.info('Response videoByTypeNew'+res);
let json:VideoMoreModel = JSON.parse(res+'') as VideoMoreModel;
this.dialog.close()
if(type==0)
{
this.controller.refreshed()
}
else
{
this.controller.loaded()
}
if(this.page==1)
{
this.list=[]
if(json.data!=null&&json.data.list!)
{
this.list = json.data.list
}
}
else if(this.page>1)
{
this.list.push(...json.data.list)
}
if (this.page >= json.data.totalPage) {
this.controller.finished()
} else {
this.page++
}
if (this.list.length>0) {
this.isEmptyViewVisible = false;
} else {
this.isEmptyViewVisible = true;
}
}).catch((err: BusinessError) => {
this.dialog.close()
if (this.list.length>0) {
this.isEmptyViewVisible = false;
} else {
this.isEmptyViewVisible = true;
}
})
}
build() {
if (this.isEmptyViewVisible){
EmptyViewComp({promptText:'暂无数据',isVisibility:this.isEmptyViewVisible})
.width('100%')
.height('100%')
} else {
HdGrid({
lw: 1,
controller: this.controller,
onRefresh: () => {
this.onRefresh()
},
onLoad: () => {
this.initData(1)
}
}) {
ForEach(this.list, (items: VideoMore) => {
GridItem() {
ItemCompVideo({ item:items })
}
})
}
}
}
}

View File

@ -55,9 +55,14 @@ export struct ListCompVideo {
{ {
this.controller.loaded() this.controller.loaded()
} }
if(this.page==1&&json.data.list!=null&&json.data.list.length>0) if(this.page==1)
{ {
this.list = json.data.list this.list=[]
if(json.data!=null&&json.data.list!)
{
this.list = json.data.list
}
} }
else if(this.page>1) else if(this.page>1)
{ {

View File

@ -0,0 +1,369 @@
/*
* Copyright (c) 2024 Huawei Device Co., Ltd.
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
import HashMap from '@ohos.util.HashMap';
import { hdHttp, HdResponse ,logger,BasicConstant,ChangeUtil} from '@itcast/basic/Index'
import { BusinessError } from '@kit.BasicServicesKit';
import { VideoTypeModel,TypeList,VideoType } from '../model/VideoTypeModel'
import { ArrayList } from '@kit.ArkTS';
import { ListCompGandan } from '../components/ListCompGandan'
import { TagListModel,TagList } from '../model/TagListModel'
import { promptAction } from '@kit.ArkUI'
@Component
export struct SecondaryLink {
@State currentTagIndex: number = 0; // 一级列表焦点索引值
@State currentTagIndex2: number = -1; // 2级列表焦点索引值
@State private tagLists:VideoType[] = []; // 一级列表数据
@State contentData:TypeList[]=[]; // 二级列表数据
@State videoImg:ResourceStr=$r('app.media.video_all')
@State videoImgt:ResourceStr=$r('app.media.all_video')
@State videoText:ResourceStr=$r('app.color.848284')
@State videoTitle:string='全部视频'
@State videoSort:string='最新'
@State videoImgs:ResourceStr=$r('app.media.cb_new')
@State videoImgSe:ResourceStr=$r('app.media.cb_screen_no')
@State videoSelect:ResourceStr=$r('app.color.848284')
@State sort:string='2'
@State type_uuid:string=''
arrayList: ArrayList<TypeList[]> = new ArrayList();
@State isOpenSelect:boolean=false
@State isOpenSelect1:boolean=false//筛选
@State private tags:TagList[] = [];
@State tagPosition: TagList[] = [];
@State tagPositiontmp: TagList[] = [];
@State keywords:string=''
/**
* 生命周期函数
*/
aboutToAppear(): void {
// 构造数据
this.initList()
}
build() {
Column() {
Row()
{
Row() {
Image(this.videoImg).width(15).height(15).margin({ left:15 })
Text(this.videoTitle).maxLines(1).fontSize(14).fontColor(this.videoText).textAlign(TextAlign.Start)
.textOverflow({ overflow: TextOverflow.Ellipsis }).margin({ left:5 })
Image(this.videoImgt).width(15).height(15).margin({ left:5 })
}.layoutWeight(1).height(36)
.onClick(()=>{
this.isOpenSelect1=false
this.isOpenSelect=!this.isOpenSelect
})
Text().width(60).height(10)
Row()
{
Text(this.videoSort).fontSize(14).fontColor($r('app.color.top_title')).textAlign(TextAlign.Start)
.margin({ left:5 })
Image(this.videoImgs).width(15).height(15).margin({ left:5 })
}
.onClick(()=>{
if(this.videoSort=='最新')
{
this.sort='1'
this.videoSort='最热'
this.videoImgs=$r('app.media.cb_hot')
}
else
{
this.sort='2'
this.videoSort='最新'
this.videoImgs=$r('app.media.cb_new')
}
})
Text('').backgroundColor($r('app.color.848284')).width(0.5).height(10)
.margin({ left:5 })
Row()
{
Text('筛选').fontSize(14).fontColor(this.videoSelect).textAlign(TextAlign.Start)
.margin({ left:5 })
Image(this.videoImgSe).width(15).height(15).margin({ left:5,right:10 })
}
.onClick(()=>{
this.tagPosition = [...this.tagPositiontmp];
this.isOpenSelect=false
this.isOpenSelect1=!this.isOpenSelect1
})
}
.backgroundColor(Color.White)
.width('100%')
Row().height(10).width('100%') .backgroundColor('#efefef')
Stack({alignContent:Alignment.Top})
{
ListCompGandan({ sort:this.sort,type_uuid:this.type_uuid,keywords:this.keywords})
if(this.isOpenSelect1)
{
Column()
{
Grid() {
ForEach(this.tags, (item: TagList, index: number) => {
GridItem() {
Text(item.NAME)
.height(25)
.width('100%')
.padding({left:5,right:5})
.fontWeight(FontWeight.Regular)
.fontSize(13)
.fontColor(this.tagPosition.indexOf(item)!=-1 ? $r('app.color.top_title'): $r('app.color.848284'))
.textAlign(TextAlign.Center)
.border({ width: 1, color:this.tagPosition.indexOf(item)!=-1 ? $r('app.color.top_title'): '#999999' })
.borderRadius(30)
.onClick(() => {
if(this.tagPosition.indexOf(item)!=-1)
{
const newSelected = [...this.tagPosition];
newSelected.splice(this.tagPosition.indexOf(item), 1);
this.tagPosition = newSelected;
}
else
{
if (this.tagPosition.length >= 3) {
promptAction.showToast({ message: '最多选择三个标签!', duration: 1000 });
return;
}
this.tagPosition.push(item)
}
})
}
})
}
.padding(10)
.columnsTemplate('1fr 1fr 1fr 1fr')
.columnsGap(10)
.rowsGap(10)
.backgroundColor(Color.White)
.height('calc(100% - 175vp)')
.width('100%')
.layoutWeight(1)
Row()
{
Text('重置').height(40)
.textAlign(TextAlign.Center)
.fontColor($r('app.color.top_title') )
.border({ width: 1, color: $r('app.color.top_title') })
.borderRadius(5)
.layoutWeight(1)
.margin({left:15})
.onClick(()=>{
this.tagPosition= [];
})
Text('确定')
.height(40)
.fontColor(Color.White).textAlign(TextAlign.Center)
.border({ width: 1, color: $r('app.color.top_title') })
.borderRadius(5)
.layoutWeight(1)
.backgroundColor($r('app.color.top_title'))
.margin({left:10,right:15})
.onClick(()=>{
this.tagPositiontmp = [...this.tagPosition];
if(this.tagPosition.length>0)
{
this.videoImgSe=$r('app.media.cb_screen_yes')
this.videoSelect=$r('app.color.top_title')
this.tagPosition.forEach(element => {
this.keywords+=element.NAME+ ","
});
}
else
{
this.keywords=''
this.videoSelect=$r('app.color.848284')
this.videoImgSe=$r('app.media.cb_screen_no')
}
this.isOpenSelect1=false
})
}.width('100%')
.height(60)
.backgroundColor(Color.White)
}
.height('calc(100% - 175vp)')
}
if(this.isOpenSelect)
{
Row() {
// TODO:知识点: 2.一级列表绑定Scroller对象
List() {
// 性能知识点此处为横向列表列表项确定且数量较少使用了ForEach在列表项多的情况下推荐使用LazyForeEach
ForEach(this.tagLists, (item: VideoType, index: number) => {
ListItem() {
Text(item.name)
.width('100%')
.padding(10)
.fontWeight(FontWeight.Regular)
.fontSize(15)
.fontColor(this.currentTagIndex === index ? $r('app.color.top_title'): $r('app.color.848284'))
.textAlign(TextAlign.Center)
.backgroundColor(this.currentTagIndex === index ? $r('sys.color.ohos_id_color_background') : '')
.onClick(() => {
this.currentTagIndex = index;
this.contentData=this.arrayList[index];
})
}
})
}
.backgroundColor('#efefef')
.width('27%')
.height('calc(100% - 175vp)')
// 二级列表
List() {
if(this.currentTagIndex==0)
{
ListItem() {
Row() {
Text('全部视频')
.fontSize(15)
.padding(10)
.fontColor(this.currentTagIndex2 === -2 ? $r('app.color.top_title'): $r('app.color.848284'))
}
}.onClick(()=>{
this.videoTitle='全部视频'
this.currentTagIndex2=-2
this.changeSelectRescourse()
this.type_uuid=''
})
}
ForEach(this.contentData, (item: TypeList,index: number) => {
ListItem() {
Row() {
Text(item.name)
.fontSize(15)
.padding(10)
.fontColor(this.currentTagIndex2 === index ? $r('app.color.top_title'): $r('app.color.848284'))
}
}.onClick(()=>{
this.currentTagIndex2=index
this.videoTitle=item.name
this.type_uuid=item.uuid
this.changeSelectRescourse()
})
})
}
.backgroundColor(Color.White)
.layoutWeight(1)
.divider({
strokeWidth: 1,
color: $r('app.color.common_gray_border'),
startMargin:10,
endMargin:10
})
.height('calc(100% - 175vp)')
}.width('100%').alignItems(VerticalAlign.Top)
}
}
.layoutWeight(1)
}
}
changeSelectRescourse()
{
this.videoImg=$r('app.media.video_select')
this.videoImgt=$r('app.media.select_video')
this.videoText=$r('app.color.top_title')
this.isOpenSelect=false
}
initList()
{
let hashMap: HashMap<string, string> = new HashMap();
hdHttp.httpReq<string>(BasicConstant.expertVideoTypeList,hashMap).then(async (res: HdResponse<string>) => {
let json:VideoTypeModel = JSON.parse(res+'') as VideoTypeModel;
this.tagLists=json.data
for (let i = 0;i<this.tagLists.length;i++){
let datatagname=json.data[i].list;
let k:number[]=[];
for(let j=0;j<datatagname.length;j++)
{
let s:string;
if ("z-BMS专家端"==(datatagname[j].name)){
k.push(j);
}
let title:string = datatagname[j].name
let digit:boolean = ChangeUtil.isFirstDigit(title.charAt(0));//判断首位是否是数字
let asciiAlpha :boolean= ChangeUtil.isLetter(title.charAt(0));//字母
if(digit||asciiAlpha){
let substring:string = '';
if (title.length>=4){
substring = title.substring(0, 4);//取出来前4位
}else if(title.length>=3){
substring = title.substring(0, 3);//取出来前3位
}else if (title.length>=2){
substring = title.substring(0, 2);//取出来前2位
}
if (substring.includes("-")){//含有-
let split: string[] = substring.split("-");
if (split.length>1){
s = split[split.length - 1] + title.substring(4, title.length);
}else {
s = title.substring(4, title.length);
}
datatagname[j].name=s;
}
}
}
const indexesToRemove = new Set(k); // 使用 Set 提高查找效率
const newArr = datatagname.filter((_, index) => !indexesToRemove.has(index));
this.arrayList.add(newArr)
k=[]
}
this.contentData=this.arrayList[0];
}).catch((err: BusinessError) => {
})
let hashMap1: HashMap<string, string> = new HashMap();
hashMap1.set("type", "2")
hdHttp.post<string>(BasicConstant.tagList,{
type:'2'
} as TagModel).then(async (res: HdResponse<string>) => {
let json:TagListModel = JSON.parse(res+'') as TagListModel;
this.tags=json.data
}).catch((err: BusinessError) => {
})
}
}
interface TagModel
{
type:string
}

View File

@ -0,0 +1,91 @@
import { VideoRollModel,VideoRoll } from '../model/VideoRollModel'
import { BasicConstant,hdHttp, HdResponse ,logger} from '@itcast/basic/Index'
import { promptAction, router } from '@kit.ArkUI'
import { BusinessError } from '@kit.BasicServicesKit';
import { HdLoadingDialog } from '@itcast/basic'
import HashMap from '@ohos.util.HashMap';
@Component
export struct SwiperComp {
@State
list: VideoRoll[] = []
hashMap: HashMap<string, string> = new HashMap();
dialog: CustomDialogController = new CustomDialogController({
builder: HdLoadingDialog({ message: '加载中...' }),
customStyle: true,
alignment: DialogAlignment.Center
})
aboutToAppear(): void {
this.initData()
}
initData()
{
this.dialog.open()
this.hashMap.clear();
hdHttp.httpReq<string>(BasicConstant.videoRoll,this.hashMap).then(async (res: HdResponse<string>) => {
logger.info('Response meetingListV2'+res);
let json:VideoRollModel = JSON.parse(res+'') as VideoRollModel;
this.dialog.close();
this.list = json.data
}).catch((err: BusinessError) => {
this.dialog.close();
})
}
build() {
Column() { // 使用堆叠布局实现按钮覆盖
Swiper() {
ForEach(this.list, (item: VideoRoll) => {
Stack({alignContent:Alignment.Bottom}) {
Image(BasicConstant.urlHtml + item.imgpath)
.objectFit(ImageFit.Fill)// 图片填充模式
.width('100%')
.height(150)
Text(item.name)
.maxLines(1)
.height(30)
.fontColor('#F6F6F6')
.textAlign(TextAlign.Start)
.textOverflow({ overflow: TextOverflow.Ellipsis })
.backgroundColor('#88000000')
.width('100%')
.padding({right:100,left:5})
.margin({ bottom: 0 })
}.onClick(()=>{
})
}, (item: VideoRoll) => JSON.stringify(item))
}
.indicator(
Indicator.dot()
.right(0)
.itemWidth(4)
.itemHeight(4)
.selectedItemWidth(4)
.selectedItemHeight(4)
.color($r('app.color.common_gray_02'))
.selectedColor('#3cc9c0')
)
.loop(true)
.autoPlay(true)
.interval(3000)
.onChange((index: number) => {
})
}
.width('100%')
}
}

View File

@ -0,0 +1,15 @@
export interface TagListModel {
code:string;
data:TagList[];
message:string;
}
export interface TagList{
DES:string;
ID:string;
sort:string;
create_date:string;
TYPE:string;
NAME:string;
}

View File

@ -0,0 +1,14 @@
export interface VideoRollModel {
code:string;
data:VideoRoll[];
message:string;
}
export interface VideoRoll{
imgpath:string;
uuid:string;
name:string;
path:string;
tags:string;
}

View File

@ -0,0 +1,16 @@
export interface VideoTypeModel {
code:string;
data:VideoType[];
message:string;
}
export interface VideoType{
name:string;
list:TypeList[];
}
export interface TypeList{
uuid:string;
name:string;
create_date:string;
}

View File

@ -0,0 +1,20 @@
import { SecondaryLink } from '../components/SecondaryLink';
import router from '@ohos.router';
import { HdNav } from '@itcast/basic'
import { SwiperComp } from '../components/SwiperComp'
@Component
export struct VideoGandan {
build() {
Column() {
HdNav({ title: '肝胆视频', showRightIcon: false, showLeftIcon: false })
SwiperComp()
SecondaryLink()
}.width('100%')
.height('100%').backgroundColor($r('app.color.top_bg'))
}
}

View File

@ -31,7 +31,7 @@ export struct VideoPage {
{ {
Column() Column()
{ {
HdNav({ title: '肝胆会议', showRightIcon: false, showLeftIcon: true,showRightText:true,rightText:'扫一扫' }) HdNav({ title: '肝胆会议', showRightIcon: false, showLeftIcon: false,showRightText:false,rightText:'扫一扫' })
Row() { Row() {
Blank() Blank()
.onClick(()=>{ .onClick(()=>{
@ -82,7 +82,7 @@ export struct VideoPage {
}.width('100%').height(45) }.width('100%').height(45)
Text().Line() Text().Line()
Stack({ }) { Stack({ }) {
ListComp().padding({bottom:20}).backgroundColor($r('app.color.e4e4e4')) ListComp().backgroundColor($r('app.color.e4e4e4'))
if(this.tlistStatus) if(this.tlistStatus)
{ {
List() { List() {
@ -129,16 +129,17 @@ export struct VideoPage {
} }
.width('100%') .width('100%')
.height('100%') .height('100%')
.padding({bottom:50})
Image($r('app.media.past_metting')).width(76).height(40) Image($r('app.media.past_metting')).width(76).height(40)
.alignRules({ .alignRules({
right: { anchor: "__container__", align: HorizontalAlign.End }, right: { anchor: "__container__", align: HorizontalAlign.End },
bottom:{ anchor: "__container__", align:VerticalAlign.Bottom} bottom:{ anchor: "__container__", align:VerticalAlign.Bottom}
}) })
.margin({bottom:120}) .margin({bottom:40})
.onClick(() => { .onClick(() => {
router.pushUrl({url:'pages/VideoPage/PastVideoPage'}) router.pushUrl({url:'pages/VideoPage/PastVideoPage'})
// router.pushUrl({url:'pages/VideoPage/VideoGandanPage'})
}) })
} }

View File

@ -67,6 +67,10 @@
{ {
"name": "22000000", "name": "22000000",
"value": "#22000000" "value": "#22000000"
},
{
"name": "848284",
"value": "#848284"
} }
] ]
} }

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.5 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.5 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.7 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.7 KiB

View File

@ -2,6 +2,11 @@
import { TabBarCompModel } from '../models/TabBarCompModel' import { TabBarCompModel } from '../models/TabBarCompModel'
export const TabBarItems: TabBarCompModel[] = [ export const TabBarItems: TabBarCompModel[] = [
{
defaultIcon: $r('app.media.home_my_meeting_nor'),
activeIcon: $r('app.media.home_my_meeting_sel'),
label: '会议·直播'
},
{ {
defaultIcon: $r('app.media.video_tabbar_icon'), defaultIcon: $r('app.media.video_tabbar_icon'),
activeIcon: $r('app.media.video_tabbar_selected_icon'), activeIcon: $r('app.media.video_tabbar_selected_icon'),

View File

@ -1,4 +1,4 @@
import { VideoPage } from 'home' import { VideoPage,VideoGandan } from 'home'
import { MyHomePage } from 'mypage' import { MyHomePage } from 'mypage'
import { TabBarCompModel } from '../../models/TabBarCompModel' import { TabBarCompModel } from '../../models/TabBarCompModel'
import { TabBarItems } from '../../contants/TabBarItems' import { TabBarItems } from '../../contants/TabBarItems'
@ -39,10 +39,10 @@ export struct TabBarComp {
}) { }) {
ForEach(TabBarItems, (item: TabBarCompModel, index: number) => { ForEach(TabBarItems, (item: TabBarCompModel, index: number) => {
TabContent() { TabContent() {
if (index === 0) VideoPage() if (index === 0) VideoPage().padding({bottom:70})
// else if (index === 1) ProjectComp() else if (index === 1) VideoGandan().padding({bottom:70})
// else if (index === 2) InterviewComp() else if (index === 2) MyHomePage()
else MyHomePage() // else MyHomePage()
} }
.tabBar(this.TabBarBuilder(item, index)) .tabBar(this.TabBarBuilder(item, index))
.expandSafeArea([SafeAreaType.SYSTEM], [SafeAreaEdge.BOTTOM]) .expandSafeArea([SafeAreaType.SYSTEM], [SafeAreaEdge.BOTTOM])

View File

@ -0,0 +1,14 @@
import { VideoGandan } from 'home'
@Entry
@Component
struct VideoGandanPage {
build() {
RelativeContainer() {
VideoGandan()
}
.height('100%')
.width('100%')
}
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.9 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.3 KiB

View File

@ -23,6 +23,7 @@
"pages/VideoPage/VideoMorePage", "pages/VideoPage/VideoMorePage",
"pages/VideoPage/PLVMediaPlayerSingleVideoPage", "pages/VideoPage/PLVMediaPlayerSingleVideoPage",
"pages/WebView/LivebroadcastPages", "pages/WebView/LivebroadcastPages",
"pages/VideoPage/PastVideoPage" "pages/VideoPage/PastVideoPage",
"pages/VideoPage/VideoGandanPage"
] ]
} }