From 5375c26462c363a189e38a38cd78e09cf8e47135 Mon Sep 17 00:00:00 2001 From: XiuYun CHEN Date: Tue, 27 May 2025 13:15:22 +0800 Subject: [PATCH] =?UTF-8?q?=E8=82=9D=E8=83=86=E8=A7=86=E9=A2=91?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- build-profile.json5 | 9 +- .../src/main/ets/constants/BasicConstant.ets | 4 + .../basic/src/main/ets/utils/ChangeUtil.ets | 11 + commons/basic/src/main/ets/utils/request.ets | 1 + features/Home/Index.ets | 4 + features/Home/oh-package.json5 | 2 +- .../src/main/ets/components/ItemCompVideo.ets | 2 +- .../Home/src/main/ets/components/ListComp.ets | 9 +- .../main/ets/components/ListCompGandan.ets | 119 ++++++ .../src/main/ets/components/ListCompVideo.ets | 9 +- .../src/main/ets/components/SecondaryLink.ets | 369 ++++++++++++++++++ .../src/main/ets/components/SwiperComp.ets | 91 +++++ .../Home/src/main/ets/model/TagListModel.ets | 15 + .../src/main/ets/model/VideoRollModel.ets | 14 + .../src/main/ets/model/VideoTypeModel.ets | 16 + .../Home/src/main/ets/pages/VideoGandan.ets | 20 + .../Home/src/main/ets/pages/VideoPage.ets | 9 +- .../main/resources/base/element/color.json | 4 + .../main/resources/base/media/all_video.png | Bin 0 -> 1328 bytes .../src/main/resources/base/media/cb_hot.png | Bin 0 -> 1493 bytes .../src/main/resources/base/media/cb_new.png | Bin 0 -> 1542 bytes .../resources/base/media/cb_screen_no.png | Bin 0 -> 1364 bytes .../resources/base/media/cb_screen_yes.png | Bin 0 -> 1364 bytes .../resources/base/media/select_video.png | Bin 0 -> 1332 bytes .../main/resources/base/media/video_all.png | Bin 0 -> 1785 bytes .../resources/base/media/video_select.png | Bin 0 -> 1786 bytes .../src/main/ets/contants/TabBarItems.ets | 5 + .../src/main/ets/pages/Tabbar/TabBarComp.ets | 10 +- .../ets/pages/VideoPage/VideoGandanPage.ets | 14 + .../base/media/home_my_meeting_nor.png | Bin 0 -> 1949 bytes .../base/media/home_my_meeting_sel.png | Bin 0 -> 1321 bytes .../resources/base/profile/main_pages.json | 3 +- 32 files changed, 720 insertions(+), 20 deletions(-) create mode 100644 features/Home/src/main/ets/components/ListCompGandan.ets create mode 100644 features/Home/src/main/ets/components/SecondaryLink.ets create mode 100644 features/Home/src/main/ets/components/SwiperComp.ets create mode 100644 features/Home/src/main/ets/model/TagListModel.ets create mode 100644 features/Home/src/main/ets/model/VideoRollModel.ets create mode 100644 features/Home/src/main/ets/model/VideoTypeModel.ets create mode 100644 features/Home/src/main/ets/pages/VideoGandan.ets create mode 100644 features/Home/src/main/resources/base/media/all_video.png create mode 100644 features/Home/src/main/resources/base/media/cb_hot.png create mode 100644 features/Home/src/main/resources/base/media/cb_new.png create mode 100644 features/Home/src/main/resources/base/media/cb_screen_no.png create mode 100644 features/Home/src/main/resources/base/media/cb_screen_yes.png create mode 100644 features/Home/src/main/resources/base/media/select_video.png create mode 100644 features/Home/src/main/resources/base/media/video_all.png create mode 100644 features/Home/src/main/resources/base/media/video_select.png create mode 100644 products/expert/src/main/ets/pages/VideoPage/VideoGandanPage.ets create mode 100644 products/expert/src/main/resources/base/media/home_my_meeting_nor.png create mode 100644 products/expert/src/main/resources/base/media/home_my_meeting_sel.png diff --git a/build-profile.json5 b/build-profile.json5 index f7f2fe0..d2c0f71 100644 --- a/build-profile.json5 +++ b/build-profile.json5 @@ -17,7 +17,7 @@ ], "buildModeSet": [ { - "name": "debug", + "name": "debug" }, { "name": "release" @@ -43,15 +43,15 @@ }, { "name": "basic", - "srcPath": "./commons/basic", + "srcPath": "./commons/basic" }, { "name": "Home", - "srcPath": "./features/Home", + "srcPath": "./features/Home" }, { "name": "register", - "srcPath": "./features/register", + "srcPath": "./features/register" }, { "name": "polyv", @@ -61,5 +61,6 @@ "name": "scene_single_video", "srcPath": "./scene_single_video" } + ] } \ No newline at end of file diff --git a/commons/basic/src/main/ets/constants/BasicConstant.ets b/commons/basic/src/main/ets/constants/BasicConstant.ets index a310f22..3e14cf4 100644 --- a/commons/basic/src/main/ets/constants/BasicConstant.ets +++ b/commons/basic/src/main/ets/constants/BasicConstant.ets @@ -30,5 +30,9 @@ export class BasicConstant { static readonly videoByTypeNew = BasicConstant.urlExpertApp + 'videoByTypeNew' static readonly videoDetail = BasicConstant.urlExpertAPI + "videoDetail"; 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"; } \ No newline at end of file diff --git a/commons/basic/src/main/ets/utils/ChangeUtil.ets b/commons/basic/src/main/ets/utils/ChangeUtil.ets index 271c384..f660514 100644 --- a/commons/basic/src/main/ets/utils/ChangeUtil.ets +++ b/commons/basic/src/main/ets/utils/ChangeUtil.ets @@ -6,6 +6,7 @@ import image from '@ohos.multimedia.image'; import fs from '@ohos.file.fs'; import { fileIo } from '@kit.CoreFileKit'; import util from '@ohos.util'; +import { i18n } from '@kit.LocalizationKit'; export class ChangeUtil { /** * 将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)); + } + } \ No newline at end of file diff --git a/commons/basic/src/main/ets/utils/request.ets b/commons/basic/src/main/ets/utils/request.ets index 3a036ac..cca61bf 100644 --- a/commons/basic/src/main/ets/utils/request.ets +++ b/commons/basic/src/main/ets/utils/request.ets @@ -52,6 +52,7 @@ class HdHttp { return httpInstance.request(fullUrl, options).then((res) => { + logger.info('Response param'+JSON.stringify(extraDatas)) logger.info('Response fullUrl:' +fullUrl+ res.result); const result = res.result as HdResponse return result diff --git a/features/Home/Index.ets b/features/Home/Index.ets index 303f2fd..5b49321 100644 --- a/features/Home/Index.ets +++ b/features/Home/Index.ets @@ -9,3 +9,7 @@ export { VideoMore } from './src/main/ets/pages/VideoMore' export { VideoDetailModel } from './src/main/ets/model/VideoDetailModel' export { PastVideo } from './src/main/ets/pages/PastVideo'; + +export { VideoGandan } from './src/main/ets/pages/VideoGandan'; + +export { PLVMockMediaResourceData } from './src/main/ets/polyv/PLVMockMediaResourceData' diff --git a/features/Home/oh-package.json5 b/features/Home/oh-package.json5 index 51d1ebc..f77ac6c 100644 --- a/features/Home/oh-package.json5 +++ b/features/Home/oh-package.json5 @@ -12,4 +12,4 @@ "scene_single_video": "file:../../scene_single_video", "media-player-common": "file:../../polyv" } -} +} \ No newline at end of file diff --git a/features/Home/src/main/ets/components/ItemCompVideo.ets b/features/Home/src/main/ets/components/ItemCompVideo.ets index a0b1f32..50a7479 100644 --- a/features/Home/src/main/ets/components/ItemCompVideo.ets +++ b/features/Home/src/main/ets/components/ItemCompVideo.ets @@ -33,7 +33,7 @@ export struct ItemCompVideo { Row(){ 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() Image($r('app.media.video_look')).width(18).height(11) Text(this.item.readnum+'').fontSize(14) diff --git a/features/Home/src/main/ets/components/ListComp.ets b/features/Home/src/main/ets/components/ListComp.ets index 7799621..c475fd2 100644 --- a/features/Home/src/main/ets/components/ListComp.ets +++ b/features/Home/src/main/ets/components/ListComp.ets @@ -59,9 +59,14 @@ export struct ListComp { { 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) { diff --git a/features/Home/src/main/ets/components/ListCompGandan.ets b/features/Home/src/main/ets/components/ListCompGandan.ets new file mode 100644 index 0000000..884b24c --- /dev/null +++ b/features/Home/src/main/ets/components/ListCompGandan.ets @@ -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 = 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(BasicConstant.videoByKeyWordsNew,this.hashMap).then(async (res: HdResponse) => { + 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 }) + } + }) + } + } + } +} \ No newline at end of file diff --git a/features/Home/src/main/ets/components/ListCompVideo.ets b/features/Home/src/main/ets/components/ListCompVideo.ets index 6195b58..b6af9a2 100644 --- a/features/Home/src/main/ets/components/ListCompVideo.ets +++ b/features/Home/src/main/ets/components/ListCompVideo.ets @@ -55,9 +55,14 @@ export struct ListCompVideo { { 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) { diff --git a/features/Home/src/main/ets/components/SecondaryLink.ets b/features/Home/src/main/ets/components/SecondaryLink.ets new file mode 100644 index 0000000..9b4d6a1 --- /dev/null +++ b/features/Home/src/main/ets/components/SecondaryLink.ets @@ -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 = 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 = new HashMap(); + hdHttp.httpReq(BasicConstant.expertVideoTypeList,hashMap).then(async (res: HdResponse) => { + + let json:VideoTypeModel = JSON.parse(res+'') as VideoTypeModel; + this.tagLists=json.data + for (let i = 0;i=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 = new HashMap(); + hashMap1.set("type", "2") + hdHttp.post(BasicConstant.tagList,{ + type:'2' + } as TagModel).then(async (res: HdResponse) => { + let json:TagListModel = JSON.parse(res+'') as TagListModel; + this.tags=json.data + + + }).catch((err: BusinessError) => { + + + }) + } +} + +interface TagModel +{ + type:string +} diff --git a/features/Home/src/main/ets/components/SwiperComp.ets b/features/Home/src/main/ets/components/SwiperComp.ets new file mode 100644 index 0000000..7fa2118 --- /dev/null +++ b/features/Home/src/main/ets/components/SwiperComp.ets @@ -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 = 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(BasicConstant.videoRoll,this.hashMap).then(async (res: HdResponse) => { + 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%') + + } +} \ No newline at end of file diff --git a/features/Home/src/main/ets/model/TagListModel.ets b/features/Home/src/main/ets/model/TagListModel.ets new file mode 100644 index 0000000..2f777f6 --- /dev/null +++ b/features/Home/src/main/ets/model/TagListModel.ets @@ -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; +} \ No newline at end of file diff --git a/features/Home/src/main/ets/model/VideoRollModel.ets b/features/Home/src/main/ets/model/VideoRollModel.ets new file mode 100644 index 0000000..4c61a3e --- /dev/null +++ b/features/Home/src/main/ets/model/VideoRollModel.ets @@ -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; +} \ No newline at end of file diff --git a/features/Home/src/main/ets/model/VideoTypeModel.ets b/features/Home/src/main/ets/model/VideoTypeModel.ets new file mode 100644 index 0000000..54acf3d --- /dev/null +++ b/features/Home/src/main/ets/model/VideoTypeModel.ets @@ -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; +} \ No newline at end of file diff --git a/features/Home/src/main/ets/pages/VideoGandan.ets b/features/Home/src/main/ets/pages/VideoGandan.ets new file mode 100644 index 0000000..c100947 --- /dev/null +++ b/features/Home/src/main/ets/pages/VideoGandan.ets @@ -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')) + } +} diff --git a/features/Home/src/main/ets/pages/VideoPage.ets b/features/Home/src/main/ets/pages/VideoPage.ets index 81e6ccb..7a12d50 100644 --- a/features/Home/src/main/ets/pages/VideoPage.ets +++ b/features/Home/src/main/ets/pages/VideoPage.ets @@ -31,7 +31,7 @@ export struct VideoPage { { Column() { - HdNav({ title: '肝胆会议', showRightIcon: false, showLeftIcon: true,showRightText:true,rightText:'扫一扫' }) + HdNav({ title: '肝胆会议', showRightIcon: false, showLeftIcon: false,showRightText:false,rightText:'扫一扫' }) Row() { Blank() .onClick(()=>{ @@ -82,7 +82,7 @@ export struct VideoPage { }.width('100%').height(45) Text().Line() Stack({ }) { - ListComp().padding({bottom:20}).backgroundColor($r('app.color.e4e4e4')) + ListComp().backgroundColor($r('app.color.e4e4e4')) if(this.tlistStatus) { List() { @@ -129,16 +129,17 @@ export struct VideoPage { } .width('100%') .height('100%') - .padding({bottom:50}) + Image($r('app.media.past_metting')).width(76).height(40) .alignRules({ right: { anchor: "__container__", align: HorizontalAlign.End }, bottom:{ anchor: "__container__", align:VerticalAlign.Bottom} }) - .margin({bottom:120}) + .margin({bottom:40}) .onClick(() => { router.pushUrl({url:'pages/VideoPage/PastVideoPage'}) + // router.pushUrl({url:'pages/VideoPage/VideoGandanPage'}) }) } diff --git a/features/Home/src/main/resources/base/element/color.json b/features/Home/src/main/resources/base/element/color.json index 3defca9..3a4390d 100644 --- a/features/Home/src/main/resources/base/element/color.json +++ b/features/Home/src/main/resources/base/element/color.json @@ -67,6 +67,10 @@ { "name": "22000000", "value": "#22000000" + }, + { + "name": "848284", + "value": "#848284" } ] } \ No newline at end of file diff --git a/features/Home/src/main/resources/base/media/all_video.png b/features/Home/src/main/resources/base/media/all_video.png new file mode 100644 index 0000000000000000000000000000000000000000..0e270727b8e68cbaca60b14d742dbc97e20dd97c GIT binary patch literal 1328 zcmeAS@N?(olHy`uVBq!ia0vp^av;pX1|+Qw)-3{3k|nMYCBgY=CFO}lsSJ)O`AMk? zp1FzXsX?iUDV2pMQ*9U+m=!ZaB1$5BeXNr6bM+EIYV;~{3xK*A7;Nk-3KEmEQ%e+* zQqwc@Y?a>c-mj#PnPRIHZt82`Ti~3Uk?B!Ylp0*+7m{3+ootz+WN)WnQ(*-(AUCxn zQK2F?C$HG5!d3}vt`(3C64qBz04piUwpD^SD#ABF!8yMuRl!uxR5#hc&_u!9QqR!T z(8R(}N5ROz&{*HVSl`fC*U-qyz|zXlQ~?TIxIyg#@@$ndN=gc>^!3Zj z%k|2Q_413-^$jg8E%gnI^o@*kfhu&1EAvVcD|GXUm0>2hq!uR^WfqiV=I1GZOiWD5 zFD$Tv3bSNU;+l1ennz|zM-B0$V)JVzP|XC=H|jx7ncO3BHWAB;NpiyW)Z+ZoqGVvir744~DzI`cN=+=uFAB-e&w+(vKt_H^esM;Afr7KMf<|~|UP^v> zu_jo#udkJ7UU5lcUUI6Zi>(sS0KLr26e|-W150yb7b8<(5E~l0nmd`8S-846yO_JU zS-KiH8N&3s=(PcEYmG3LE@Nvb&}n; zX4?-O*A7(A5jvBl&-Xfk;l+%l>8khGofVjW9gz9a;d!h1u%ZS>xSQ|S$t!dV62p0d zUKJ`V(VZ@|zCqZ~LNxST&?`gTOUK`2by~}^ZiKb55SG#?VRD#f)?mIR&_>|H$uj+Mtk^I`S<>B_el?gI29dr1$ z?Rhd`*-kg{%vXjFr&Q%Cgv?-`t`yEP+o5=3mQ9#Q<}UN+YF}^fobo5?$+S5|im_s) z;c=G~qSNL+HCGB}lGeHYV~@(Qm1QEAswU`O*3Qzge>B&3?Qj2t)uks3Py0u4?+X9z zI`!$6lRQOvR|AWWU&^|Zznn{g?Ymy`6zRq-pMuxBX3b&cS8{)T)8LXp@LRR*KdKDZ uY>72I$}Q3TiFJ|c{i~fn?sx8Ikzkm%qu%xK)Us=!GR)J}&t;ucLK6UbmENKN literal 0 HcmV?d00001 diff --git a/features/Home/src/main/resources/base/media/cb_hot.png b/features/Home/src/main/resources/base/media/cb_hot.png new file mode 100644 index 0000000000000000000000000000000000000000..ed71ff2504a23839527ecc2dd5b88cc23bd3f3ea GIT binary patch literal 1493 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 f}qv+&w5@8RL*(2`njxgN@xNAWP|U_ literal 0 HcmV?d00001 diff --git a/features/Home/src/main/resources/base/media/cb_screen_yes.png b/features/Home/src/main/resources/base/media/cb_screen_yes.png new file mode 100644 index 0000000000000000000000000000000000000000..b3090ef7b74a50d04685dec625eec91fa2f0a12e GIT binary patch literal 1364 zcmeAS@N?(olHy`uVBq!ia0vp^av;pX1|+Qw)-3{3k|nMYCBgY=CFO}lsSJ)O`AMk? zp1FzXsX?iUDV2pMQ*9U+m=!ZaB1$5BeXNr6bM+EIYV;~{3xK*A7;Nk-3KEmEQ%e+* zQqwc@Y?a>c-mj#PnPRIHZt82`Ti~3Uk?B!Ylp0*+7m{3+ootz+WN)WnQ(*-(AUCxn zQK2F?C$HG5!d3}vt`(3C64qBz04piUwpD^SD#ABF!8yMuRl!uxR5#hc&_u!9QqR!T z(8R(}N5ROz&{*HVSl`fC*U-qyz|zXlQ~?TIxIyg#@@$ndN=gc>^!3Zj z%k|2Q_413-^$jg8E%gnI^o@*kfhu&1EAvVcD|GXUm0>2hq!uR^WfqiV=I1GZOiWD5 zFD$Tv3bSNU;+l1ennz|zM-B0$V)JVzP|XC=H|jx7ncO3BHWAB;NpiyW)Z+ZoqGVvir744~DzI`cN=+=uFAB-e&w+(vKt_H^esM;Afr7KMf<|~|UP^v> zu_jo#udkJ7UU5lcUUI6Zi>(sS0KLr26f0*lGbblY7gtjQLnA{&S93=TQ#VH!3r8bY zXD2f!b7z=dm;B_?+|;}hnBEkGUN@Y2K`9}(0BEyIYEfocYKmJ?ey#%8$5xrR-QtYX zJgD9j+-`BfsaGH97=2K@BE>UI2$*<4On9mVa^UGcH4m8Bi-4*6O=;$B1_s8Ho-U3d z6}R3@_tjuYlsJC2O`|YIars%sr%f(Lo;^`ckI~%ugGc<-+04@?8=HmRN(Sbm<^j7`hR%hJ-1uQ|N$>wEk2d(Qv<^R2f0-p%r<9x9Wj_Dx$G%TjaC zc8z1X{dL7->c6JF?*6!Y`Ly_iDD6`}n@>J{y>51Ln$K#N>qeK^uQZBGNf-XnxbK45 zstMJmQOg(o?~8m_^~U9p>$FspsVjr>8D~$s;J9$7+wBYIc4z zbe*=5k<(gpQ!-QT;cu!ulkR6vSv_N~gT}VjQqKtYjm6D-wBC3f5~%#=Qfiy#?cSK@ z(=5yI;b`Nu-?Dh>8M|*-#B-QMmcYc%-1Ko*~0vn^}o3B hNoeV7|J(fx%nTC8JAzLKTD}F9bDpk#F6*2UngCXL_s{?U literal 0 HcmV?d00001 diff --git a/features/Home/src/main/resources/base/media/select_video.png b/features/Home/src/main/resources/base/media/select_video.png new file mode 100644 index 0000000000000000000000000000000000000000..80c925fbffd71c7a91da32a35593ea65db630d52 GIT binary patch literal 1332 zcmeAS@N?(olHy`uVBq!ia0vp^av;pX1|+Qw)-3{3k|nMYCBgY=CFO}lsSJ)O`AMk? zp1FzXsX?iUDV2pMQ*9U+m=!ZaB1$5BeXNr6bM+EIYV;~{3xK*A7;Nk-3KEmEQ%e+* zQqwc@Y?a>c-mj#PnPRIHZt82`Ti~3Uk?B!Ylp0*+7m{3+ootz+WN)WnQ(*-(AUCxn zQK2F?C$HG5!d3}vt`(3C64qBz04piUwpD^SD#ABF!8yMuRl!uxR5#hc&_u!9QqR!T z(8R(}N5ROz&{*HVSl`fC*U-qyz|zXlQ~?TIxIyg#@@$ndN=gc>^!3Zj z%k|2Q_413-^$jg8E%gnI^o@*kfhu&1EAvVcD|GXUm0>2hq!uR^WfqiV=I1GZOiWD5 zFD$Tv3bSNU;+l1ennz|zM-B0$V)JVzP|XC=H|jx7ncO3BHWAB;NpiyW)Z+ZoqGVvir744~DzI`cN=+=uFAB-e&w+(vKt_H^esM;Afr7KMf<|~|UP^v> zu_jo#udkJ7UU5lcUUI6Zi>(sS0KLr26f08;OGhIM6K7Lk5E~l0np?Oy8alf=8X38| z897>7n8NhBpRAa>Yf6RaobH1!7Zgnk>X)2ommD5^has{+u`8|dq5HX@=IRv-?nUmo z@Ai8CuencMC(dSOk9(qX_jz`xNaU|X^SQ4QxTd(|F}~S3ar2Zcao1mys+^+o&HGm- zFvWDv;VYZ_WWuqXZsM7*3~y?cMmel7U|#2{$6uDQb@PNQn`z>iyUdbRbGH|1{#<)P zcl)W<64xttEj;h)%ru>LzcYq0XLHQs&rK4`Zy9=I=S}ljzGBm#DdA?O@Ao&Ze5QKb z_I{@6nY)??yU$EG`-54c^^5MCyPZ;f4V#We-0Z$`ew#<{!+smj0dNAiqp409Qq>aT=q)Pu?~Pgg&ebxsLQ0F6W6CjbBd literal 0 HcmV?d00001 diff --git a/features/Home/src/main/resources/base/media/video_all.png b/features/Home/src/main/resources/base/media/video_all.png new file mode 100644 index 0000000000000000000000000000000000000000..d6cb6c006e4d84ec2cc12eaa1a7815c88b08db26 GIT binary patch literal 1785 zcmeAS@N?(olHy`uVBq!ia0vp^av;pX1|+Qw)-3{3k|nMYCBgY=CFO}lsSJ)O`AMk? zp1FzXsX?iUDV2pMQ*9U+m=!ZaB1$5BeXNr6bM+EIYV;~{3xK*A7;Nk-3KEmEQ%e+* zQqwc@Y?a>c-mj#PnPRIHZt82`Ti~3Uk?B!Ylp0*+7m{3+ootz+WN)WnQ(*-(AUCxn zQK2F?C$HG5!d3}vt`(3C64qBz04piUwpD^SD#ABF!8yMuRl!uxR5#hc&_u!9QqR!T z(8R(}N5ROz&{*HVSl`fC*U-qyz|zXlQ~?TIxIyg#@@$ndN=gc>^!3Zj z%k|2Q_413-^$jg8E%gnI^o@*kfhu&1EAvVcD|GXUm0>2hq!uR^WfqiV=I1GZOiWD5 zFD$Tv3bSNU;+l1ennz|zM-B0$V)JVzP|XC=H|jx7ncO3BHWAB;NpiyW)Z+ZoqGVvir744~DzI`cN=+=uFAB-e&w+(vKt_H^esM;Afr7KMf<|~|UP^v> zu_jo#udkJ7UU5lcUUI6Zi>(sS0KLr26e|}OV+#{U7iUugLnA{&S93=L7h^{!BPSC# zV^c>*LqnKem;B_?+|;}hnBEkGUKgBtK`9}(0BEyIYEfocYKmJ?ey#%8$5xrR-QtMT zJgD9j+-`BgsaGH97=2K@BE>UI2$*<4On9mVa^UGcH4m8Bi-4&*Sm4BBU}nklba4!+ zxOF5f+Cwx@BzMa$`-L~#Tc>u$ORBbhF;H6V9U{>v8WK?Fa`Ujtp(ATtl)bpCZybIR z_T`U8hnHr@q$SH+MMJLm>$8~t))0Qncx&%k=Ij*fxigLHT-e33pPjjv{`T{&>NOrJ zm)_TJ`FE}_Kw}D96!RGdHwIY;<^nr)_2-kWCwz$IIK`&MywQQXfZu}izWb$XlZ@Mv zIagdsek1K5#`f}3M;x2(rw@0T_v?Q1o>HJAw&;4}(E}{!_B8#Sd7!p8W37NK3(L#d ztTBo8if_Jsn`LNq?7>gd-`kWo#m+joJSc=UnqfBAxAkEzn{U2YfAvQmi|muvDmP4S z7;l@tAWVIg)OU^k^{S69`+YK-t5K`%82)ots9x!Xd+h5EH#4qsuy1gj;c6pr;B&wO z^9}b4CY(Mg8D!D;=iG7M3V%7KBOiCNI{r2KQLA#?^P%6T1o=as9z{RNlds$OL{Ib2 zls$KjGXyF%bbKzW*pm80{L;cnbNXv%CrK#eM6kvtd9sRr{#wv)@a_35tBZdE_z%Y@ ztmBt7c%&q8`1Lm)2?m?SYdhm+aIFn=H%{;*eBAaybi z%Z=qnj1~U;T|ea{LzlzrhKX&FeayES)SBmV>98COx*qeELqSgD@r<=Oy?geblskQ& z@!73nRzdD!5$wds8wwyW>VcI2)6yyJ>yo2ty|rFmvIRxT;IbM9?k>PNMV zz909FoJjS4(i3E{SZw2$O|F~g-S)luRDtQmyRBCQ)`~51)%kOF*53M)&8os4$~luw zwjG{f5h6FA?+#Pi*E`7)XP9+2aI>*#Uhk~Bb8~}tU?wZy1H-v>#tXN)q^+y@Bq(w3 z<4hypTBC;J3yk*VP2v+ixx6-I|JHfd78&-FS8knP)Xa(h zq$1C((yj3JpwNbLX5P9^CHpTN*C(1wuR7!P^*iIA5XsJ?|GD$s*E!yh``swAt=`+{ zXYw-P(CXl$*Nr}AvRBIIT#Bs;Z=B{8A31kQg`#~N%Q*)59sfTcUH@MDjLB8Q0^1Yo z9`A0<$~&x)z*_$))SB)7*Ij3p{;TG;nf7`e7t^`9e2Jmi*$q48_PIaYeo#AnHP7a0 zrIi-l2Z|ps$@oj2b1+Mver#$Ms~nU1gX-Jik$Nu{q&*A6I2;_y85}S Ib4q9e0MGopF#rGn literal 0 HcmV?d00001 diff --git a/features/Home/src/main/resources/base/media/video_select.png b/features/Home/src/main/resources/base/media/video_select.png new file mode 100644 index 0000000000000000000000000000000000000000..6718850dfd8427824662b5438e51b48461a97f6a GIT binary patch literal 1786 zcmaJ?c~BE)91X=IQWOR}P&t-RC@LhofdEMf5EGE72`QpRl!1_JND9fW$%X_FIaCx7 z@j_5MkctW@c)(CA!x3>RQWU(kb%cUvkxK*-vE3lh{!zL!yWcVIz2EV@Z#G@PUoqQc zkqLo7n9U931mmNv;U&(%zu$pnh4`=#^A}=k5Gke=sbB(2f<(dqS0RdmgJF>*ZgV5- zO&}QC%R_{ikhhv4MigX`0Yla)P@GL5c>C&5kvJO0fJit>u4IyWuGW$Oxr9ktPve0+ zlnu+|f$=JMO*}tD93L&FOGv&xfVYl;3n*Yr1n3koN;N~rB#r4Z@VQ}|LITDhSTvLL zB`G0K0I(4i4A96lS1|~=1DC2QTth$@N#(dl#wNTpDzt~kO~9jC-ZI#;FIVM2ietHmlg zipdcrU{DlAA{vZI!ZZC+f&!hCRjS9^gg1<$6QLA{3>r$B0P=YM4^=28(P}Ih{wLr6 z6jq1Cp)e&FRwEjf7(Y0vgCP{kV5?vehNwaiBxa(E0vUoKY8iq8Y&PJ$UapiNTJ@4K zIFHBRD%F@sDTcWmCJ7fH%jFUV$fEkwmU{)z@D@XmzbA|80r~sWJUO0hDoFRBPH;Jh zSfhZI*aTNH$)$r+at%&Upm<~stdhsVk^mK=0LCh2$fwSQGo{`*S2ATTUj9>ZDR?pz z!@2(JoF}$$^BAU+uEiIVzK4~#*;Tl!<6B;y!7mHK<*-6@Pa4)KWPFiTtVdV2$2;*| zFnU-N+1d{^UfAwLo0~CeKAh($ZNA`6GJy`r*ncf0VbrSGjq=I_m7{Y)!d@0aPlWk`>d zj#}7TXYP2#i-5osxAKUj`Mm;%&}AGmH4`LW-ep|aYi;&vou!*~r%IJJmk)S;{Arfm4R*57r;2nod`4|h zr*MfiU^Zy)LaFiZ?rUGb?mncy-Pn|9YHt4(k&f(Ku`yt)qs`LB;YU?V(u`8m*0wkv z3K2lz*#joxq_R@WX0!L;uhSz(_8PItsjbyYO0rR%o9vib(*bCnrDYY?b zNGY_roO3>X$n&vy_$u(IyOfdsfZH0F%QU^@TQDqz&ho43HLH&OQpAT`+J$6IWI66UH8BLU0FhoA|)TcP?RRiGIxz^M_Ri^qitOd z`yGkMKXuXOX2Z$;4_MnAuyn}wT7<1EB@6@uuki16+?o-Vv2rnLp8a|tf7W?Ns`~kX zY<=(X+Xv-u4j6e)&*{?~!14lpIviF_zus6`E$x!MywOpFx(`R&-8uE#EAaFK)}H

8I#ntje?Eax^PEW6E=gEo(a_)1}7xZ^Hwz>4~8}SYQ^s%OX^%@)FhugXs zH8an)d+eUJuJ_yU%8uT!@}^C1YOCtRSGr4qHfxkv8k%67_h);8>DI;7s>+*S^oHD> z7m3x=$ojsDcGFHYR=%m&qYXkWYP5+t*OQ)pCV~XHf<-@+cd*;=H{$y9Ic3WuQvU{p C)W#J6 literal 0 HcmV?d00001 diff --git a/products/expert/src/main/ets/contants/TabBarItems.ets b/products/expert/src/main/ets/contants/TabBarItems.ets index 541f0ef..d013770 100644 --- a/products/expert/src/main/ets/contants/TabBarItems.ets +++ b/products/expert/src/main/ets/contants/TabBarItems.ets @@ -2,6 +2,11 @@ import { TabBarCompModel } from '../models/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'), activeIcon: $r('app.media.video_tabbar_selected_icon'), diff --git a/products/expert/src/main/ets/pages/Tabbar/TabBarComp.ets b/products/expert/src/main/ets/pages/Tabbar/TabBarComp.ets index 9111c74..e894cfe 100644 --- a/products/expert/src/main/ets/pages/Tabbar/TabBarComp.ets +++ b/products/expert/src/main/ets/pages/Tabbar/TabBarComp.ets @@ -1,4 +1,4 @@ -import { VideoPage } from 'home' +import { VideoPage,VideoGandan } from 'home' import { MyHomePage } from 'mypage' import { TabBarCompModel } from '../../models/TabBarCompModel' import { TabBarItems } from '../../contants/TabBarItems' @@ -39,10 +39,10 @@ export struct TabBarComp { }) { ForEach(TabBarItems, (item: TabBarCompModel, index: number) => { TabContent() { - if (index === 0) VideoPage() - // else if (index === 1) ProjectComp() - // else if (index === 2) InterviewComp() - else MyHomePage() + if (index === 0) VideoPage().padding({bottom:70}) + else if (index === 1) VideoGandan().padding({bottom:70}) + else if (index === 2) MyHomePage() + // else MyHomePage() } .tabBar(this.TabBarBuilder(item, index)) .expandSafeArea([SafeAreaType.SYSTEM], [SafeAreaEdge.BOTTOM]) diff --git a/products/expert/src/main/ets/pages/VideoPage/VideoGandanPage.ets b/products/expert/src/main/ets/pages/VideoPage/VideoGandanPage.ets new file mode 100644 index 0000000..96f19cb --- /dev/null +++ b/products/expert/src/main/ets/pages/VideoPage/VideoGandanPage.ets @@ -0,0 +1,14 @@ +import { VideoGandan } from 'home' +@Entry +@Component +struct VideoGandanPage { + + + build() { + RelativeContainer() { + VideoGandan() + } + .height('100%') + .width('100%') + } +} \ No newline at end of file diff --git a/products/expert/src/main/resources/base/media/home_my_meeting_nor.png b/products/expert/src/main/resources/base/media/home_my_meeting_nor.png new file mode 100644 index 0000000000000000000000000000000000000000..5e4aeba0789b0a88b306450c90d016434c1d562f GIT binary patch literal 1949 zcmV;O2V(e%P)FS;;U+yUt7` z6820_D?t$4PK0k0;ZDy}-)g4c=zB}xVVJ#&nYIA@eJN9`qd*J{1m~B_*a^_DrIeqJ zvZkI+OW<1TbpYQ*ByROQZ`xy0b3QmYcxtg&*iVGro~ITc74RSkRuf?uptO|Iz8XzM zYkfAry8%2WrMjT$f(8n$M!W~$?EvkNQeGGZA`G+FG1Ddho1|1XL|N1Jqq24DR%h?t zkr4pz1?VCvImXcIot>S#qGZ*XY^W{Z zzVDyp`~Fy|n#p87=s4nb0Ou1S#*7gnZ1g;JpZ%WAW;>NqZxhk@9heF5tRkMv2in@tN5w{WT?vDG+_&R{jsm5*en7PP|v#U?zcFQt5;*#??|+X|2fk1_LyDh}!A0G=SC7agbca=Glj3YcML zTm$gk%(R^d4^%fZW}gU865$?Wu$dXVW3kwWnR$UR<_uM`%!h<<)_9&b zcC;GFwBTVF&SN(ASvw2h5kOokrTo=YV?husCc;Yq3a(pPR4#W6GV|rtJh6{RT*hpE z3}7)cu2rgX-Y1GZhQ^pX0lv`&NC>P*CY4=NSEdEmI(PuUmjOI4gmY;!nLNViW&C;^h!RTU*!9~J>zvnYpnpz0>}&DEJ`Mmuhmm*2%gPm zmkB|?2XK%XOO;Z#VQ44=1KDNe@|b>sh+@n<(e_~gCom(Sl-k(r{Dxup5VN_mIvH3q zBXF&C8sJ_4LsF`B&79fqVW_uF$e#ZIV9Qrq3Ru~j&ySwv`+lLBt#mqlj_W%1g?Td` z?^;kV2Q-X$7zQuc#+FEY%JaOZn>nk1haU%cr;RqVy^!=Qz_-|MMB--8^EO1WV|BC+ z{s>?xGcHz2JvDV*UGQ`|-Q~K@oA#3A^P}A}86{|~9|L$f5$wg+|NFa^|X4 zt0Ipi!Z5g-8Ec5(d7jEe0uO@VA|gBu&@L(Ec~PTe^@1R<8S@b$^fS{R0R9OxZc|Fx z<{`3Zt#1I>-iHUJR4XHa*Lq2SHc2UG-K9jPtfQFA<<2vv{5*iaNU6?=1RjRLz0CM3 zKp6l(Y6W1nYaPeL%4M>HCMuQ6C-?RBg%vDjh%rklR` zukna$9oWQR+pA+*i1>QXOZ{LXxSjjCMB-~e`51tAP%9gVj7@0Q0CX`x*GVbwnFwwR zsCUKVU7hV1ytjMjT4(PEXeB^bODVUEgV$2L>vo*Ge*O9v+wHhjdtn$n!;A|7y2O^& z6TxkfZ-0)Il+vc@V@9fd!9Q({Tr8GO?eFjZ_c(Yim;IbE^e8|hrBZ3>)Cd1)?jo1d z-!+E&0Bn;|eZjI!ddIcazXAA@%&?FB^-4u=Uf+q0`Mw|T>grSg-Ddv?GloBwN~Ok* z@g(qcI(?e!I<|y;e--5K0PIgxtD#+@BWorns74iX<0%BukujaI?Q^9+wT-tmb|Mkk z8s&t_RDf36OIZuh|9Bf59PBO@i{Am*R%G+viAYAZ$;<^J@k=4ZEy-lkc30D3ip4trws!5>(Rv$g jI-ZCco&UGqaSQ%me~=Aaoka0p00000NkvXXu0mjfxmB-z literal 0 HcmV?d00001 diff --git a/products/expert/src/main/resources/base/media/home_my_meeting_sel.png b/products/expert/src/main/resources/base/media/home_my_meeting_sel.png new file mode 100644 index 0000000000000000000000000000000000000000..c943540df8e9ecc94b4ce36613f929bb28098607 GIT binary patch literal 1321 zcmV+^1=jkBP)L}U#&!~@s;?h-2rJTWp|(;w8&%k9y1hhSq64?X2N5>!JPm3 z|L)=5x#wO8OZ1^7$_-D!Ut3jp@$jd1XKaYXGWJGd_hF5wb9r&UKPqS@FrE+ zOu(xEispbjaQ3SeC}5X49lWL0f@&!5@oQe$0#?@~)vOZYp1>=!wK zUeff~a|;396wnC_j-*bQhQO{PydO@oztTqub3-z#Zszauk+>}>`7ns> zHdT^{H)v7gup{tDNO=c@O*Ww~gb}?0$^A^YT8#h9XTdnipnX~80S5gES^0El&lxM- ztQC)}QPx7>CkOq^2m!e~y$>1zke4O68QvP!H9a=QD+ZK3pC~y-K9rMuN zaVlaQ)Y{`SJ`k1_cXyU_%xEbjra!dy*p>Dwt}6Q&c*t7>$JwOx%i{VIJ%gzkW~sRH z1JYVk$F^Pw2{qwp+-w)79&7N>%6dRG6BbsA=Evh^l-A;KoG?Z+`Wz4ePOAW`H-YE-j;6 zag2b_;)3UdfY?;4$EN;?Fk|OzsVFHLk^bi=j%><84uFAC0zPBG&(xhX%+uK1TfX_$ zyv$q?T2Vd*5tQW1HGk(zyTp;??ovlw*xsieW)>{iPf3!JF;Gx|==NWYb5_O6cs;R@ f6`#v{$%6j}sHUGjbF)R(00000NkvXXu0mjfAh&4F literal 0 HcmV?d00001 diff --git a/products/expert/src/main/resources/base/profile/main_pages.json b/products/expert/src/main/resources/base/profile/main_pages.json index 61560dc..8e57da9 100644 --- a/products/expert/src/main/resources/base/profile/main_pages.json +++ b/products/expert/src/main/resources/base/profile/main_pages.json @@ -23,6 +23,7 @@ "pages/VideoPage/VideoMorePage", "pages/VideoPage/PLVMediaPlayerSingleVideoPage", "pages/WebView/LivebroadcastPages", - "pages/VideoPage/PastVideoPage" + "pages/VideoPage/PastVideoPage", + "pages/VideoPage/VideoGandanPage" ] } \ No newline at end of file