From f538cbaa892a33fde69526af048845e0c30377be Mon Sep 17 00:00:00 2001 From: sunlian Date: Mon, 18 Dec 2023 16:28:04 +0800 Subject: [PATCH] =?UTF-8?q?=E6=96=B0=E5=A2=9E=E6=88=91=E7=9A=84=E9=A1=B5?= =?UTF-8?q?=E9=9D=A2=EF=BC=8C=E4=BF=AE=E6=94=B9=E5=9C=86=E8=A7=92=E3=80=81?= =?UTF-8?q?=E5=8A=A8=E7=94=BB=E5=AE=9E=E7=8E=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: sunlian --- .../MyMusic/entry/src/main/ets/view/Mine.ets | 88 +++---------- .../entry/src/main/ets/view/MineActivity.ets | 42 +++++++ .../entry/src/main/ets/view/MineHead.ets | 65 +++++----- .../entry/src/main/ets/view/MineListItem.ets | 31 ++--- .../entry/src/main/ets/view/MineMusic.ets | 95 ++++++++++++++ .../entry/src/main/ets/view/MinePodCast.ets | 116 ++++++++++++++++++ .../entry/src/main/ets/view/PodCast.ets | 5 +- .../entry/src/main/ets/view/PodCastHead.ets | 42 ++----- .../src/main/ets/view/PodCastHeadRight.ets | 36 ++++++ .../entry/src/main/ets/view/RadioItem.ets | 1 - .../src/main/ets/viewmodel/MainViewModel.ets | 16 ++- 11 files changed, 390 insertions(+), 147 deletions(-) create mode 100644 scenario/arkui/MyMusic/entry/src/main/ets/view/MineActivity.ets create mode 100644 scenario/arkui/MyMusic/entry/src/main/ets/view/MineMusic.ets create mode 100644 scenario/arkui/MyMusic/entry/src/main/ets/view/MinePodCast.ets create mode 100644 scenario/arkui/MyMusic/entry/src/main/ets/view/PodCastHeadRight.ets diff --git a/scenario/arkui/MyMusic/entry/src/main/ets/view/Mine.ets b/scenario/arkui/MyMusic/entry/src/main/ets/view/Mine.ets index c5260136..5bd3b30b 100644 --- a/scenario/arkui/MyMusic/entry/src/main/ets/view/Mine.ets +++ b/scenario/arkui/MyMusic/entry/src/main/ets/view/Mine.ets @@ -19,6 +19,9 @@ import { MineInfo } from './MineInfo'; import { MineListItem } from './MineListItem'; import MineListItemData from '../viewmodel/MineListItemData'; import mainViewModel from '../viewmodel/MainViewModel'; +import MineMusic from './MineMusic'; +import MinePodCast from './MinePodCast'; +import MineActivity from './MineActivity'; /** @@ -29,10 +32,9 @@ export default struct Mine { @State subCurrentIndex: number = CommonConstants.HOME_TAB_INDEX; @State subCurrentIndex2: number = 0; @State headBackground: number = 0; - @Provide addVisibility: Visibility = Visibility.Visible - @Provide nameVisibility: Visibility = Visibility.None + @Provide addVisibility: boolean = true + @Provide nameVisibility: boolean = false private tabsController: TabsController = new TabsController(); - private tabsController2: TabsController = new TabsController(); private scroller: Scroller = new Scroller() @Builder @@ -58,21 +60,6 @@ export default struct Mine { }) } - @Builder - TabBuilder2(title: string, index: number) { - Column() { - Text(title) - .fontSize($r('app.float.little_text_size')) - .width('30%') - .textAlign(TextAlign.Center) - .fontColor(this.subCurrentIndex2 === index ? $r('app.color.mainPage_selected') : $r('app.color.mainPage_normal')) - } - .onClick(() => { - this.subCurrentIndex2 = index; - this.tabsController2.changeIndex(this.subCurrentIndex2); - }) - } - build() { Stack({ alignContent: Alignment.Top }) { Scroll(this.scroller) { @@ -93,61 +80,20 @@ export default struct Mine { controller: this.tabsController }) { TabContent() { - Tabs({ - barPosition: BarPosition.End, - controller: this.tabsController2 - }) { - TabContent() { - List({ space: 10 }) { - ForEach(mainViewModel.getMineListItemData(), (item: MineListItemData) => { - ListItem() { - MineListItem({ item }) - } - .align(Alignment.Start) - }, (item: MineListItemData) => JSON.stringify(item)) - }.margin('12vp') - .edgeEffect(EdgeEffect.Spring) - .nestedScroll({ - scrollForward: NestedScrollMode.PARENT_FIRST, - scrollBackward: NestedScrollMode.SELF_FIRST - }) - }.align(Alignment.Top) - .tabBar(this.TabBuilder2('近期', 0)) - - TabContent() { - List({ space: 10 }) { - ForEach(mainViewModel.getMineListItemData(), (item: MineListItemData) => { - ListItem() { - MineListItem({ item }) - } - .align(Alignment.Start) - }, (item: MineListItemData) => JSON.stringify(item)) - }.margin('12vp') - .edgeEffect(EdgeEffect.Spring) - .nestedScroll({ - scrollForward: NestedScrollMode.PARENT_FIRST, - scrollBackward: NestedScrollMode.SELF_FIRST - }) - }.align(Alignment.Top) - .tabBar(this.TabBuilder2('创建', 1)) - } - .barPosition(BarPosition.Start) - .onChange((index: number) => { - this.subCurrentIndex2 = index; - }) + MineMusic() } .align(Alignment.Top) .tabBar(this.TabBuilder('音乐', 0, $r('app.media.ic_screenshot_line_select'), $r('app.media.ic_screenshot_line'))) TabContent() { - Text('121212123221') + MinePodCast() } .tabBar(this.TabBuilder('播客', 1, $r('app.media.ic_screenshot_line_select'), $r('app.media.ic_screenshot_line'))) TabContent() { - Text('121212123221') + MineActivity() } .tabBar(this.TabBuilder('动态', 2, $r('app.media.ic_screenshot_line_select'), $r('app.media.ic_screenshot_line'))) @@ -156,7 +102,7 @@ export default struct Mine { .width(CommonConstants.FULL_PARENT) .margin({ top: '24vp' }) .barHeight($r('app.float.mainPage_barHeight')) - .barMode(BarMode.Scrollable) + .barMode(BarMode.Fixed) .barPosition(BarPosition.Start) .borderRadius('12vp') .backgroundColor('#F9F9F9') @@ -178,21 +124,21 @@ export default struct Mine { let scrollStep: number = Math.abs(this.scroller.currentOffset().yOffset / 300); this.headBackground = scrollStep; if (scrollStep > 0.4) { - if (this.addVisibility !== Visibility.None) { - this.addVisibility = Visibility.None + if (this.addVisibility !== false) { + this.addVisibility = false } } else { - if (this.addVisibility !== Visibility.Visible) { - this.addVisibility = Visibility.Visible + if (this.addVisibility !== true) { + this.addVisibility = true } } if (scrollStep > 0.6) { - if (this.nameVisibility !== Visibility.Visible) { - this.nameVisibility = Visibility.Visible + if (this.nameVisibility !== true) { + this.nameVisibility = true } } else { - if (this.nameVisibility !== Visibility.None) { - this.nameVisibility = Visibility.None + if (this.nameVisibility !== false) { + this.nameVisibility = false } } }) diff --git a/scenario/arkui/MyMusic/entry/src/main/ets/view/MineActivity.ets b/scenario/arkui/MyMusic/entry/src/main/ets/view/MineActivity.ets new file mode 100644 index 00000000..840e6ccd --- /dev/null +++ b/scenario/arkui/MyMusic/entry/src/main/ets/view/MineActivity.ets @@ -0,0 +1,42 @@ +/* + * Copyright (c) 2023 Shenzhen Kaihong Digital Industry Development 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 CommonConstants from '../common/constants/CommonConstants'; +import { MineListItem } from './MineListItem'; +import MineListItemData from '../viewmodel/MineListItemData'; +import mainViewModel from '../viewmodel/MainViewModel'; + + +/** + * Home tab content + */ +@Component +export default struct MineActivity { + build() { + List({ space: 10 }) { + ForEach(mainViewModel.getMineListItemData(), (item: MineListItemData) => { + ListItem() { + MineListItem({ item }) + } + .align(Alignment.Start) + }, (item: MineListItemData) => JSON.stringify(item)) + }.margin('12vp') + .edgeEffect(EdgeEffect.Spring) + .nestedScroll({ + scrollForward: NestedScrollMode.PARENT_FIRST, + scrollBackward: NestedScrollMode.SELF_FIRST + }) + } +} diff --git a/scenario/arkui/MyMusic/entry/src/main/ets/view/MineHead.ets b/scenario/arkui/MyMusic/entry/src/main/ets/view/MineHead.ets index 98ab3f02..ed0cf91e 100644 --- a/scenario/arkui/MyMusic/entry/src/main/ets/view/MineHead.ets +++ b/scenario/arkui/MyMusic/entry/src/main/ets/view/MineHead.ets @@ -17,13 +17,14 @@ * List item information component. */ import curves from '@ohos.curves' +import prompt from '@ohos.promptAction'; @Component export struct MineHead { @State handlePopup1: boolean = false @State handlePopup2: boolean = false - @Consume addVisibility: Visibility - @Consume nameVisibility: Visibility + @Consume addVisibility: boolean + @Consume nameVisibility: boolean build() { Row() { @@ -36,32 +37,40 @@ export struct MineHead { .bindPopup(this.handlePopup1, { message: '这是个人菜单.', }) - Row() { - Image($r('app.media.ic_public_add')) - .width('20vp') - .height('20vp') - .borderRadius('16vp') - Text('添加状态') - .margin({ left: '4vp' }) - }.visibility(this.addVisibility) - .alignItems(VerticalAlign.Center) - .transition(TransitionEffect.OPACITY - .animation({ curve: curves.springMotion() }) - .combine(TransitionEffect.move(TransitionEdge.TOP))) - - Row() { - Image($r('app.media.brand')) - .width('28vp') - .height('28vp') - .borderRadius('16vp') - Text('闲潭春半') - .fontSize('20fp') - .margin({ left: '4vp' }) - }.visibility(this.nameVisibility) - .alignItems(VerticalAlign.Center) - .transition(TransitionEffect.OPACITY - .animation({ curve: curves.springMotion() }) - .combine(TransitionEffect.move(TransitionEdge.TOP))) + if (this.addVisibility) { + Row() { + Image($r('app.media.ic_public_add')) + .width('20vp') + .height('20vp') + .borderRadius('16vp') + Text('添加状态') + .margin({ left: '4vp' }) + } + .alignItems(VerticalAlign.Center) + .transition(TransitionEffect.OPACITY + .animation({ curve: curves.springMotion() }) + .combine(TransitionEffect.move(TransitionEdge.TOP))) + .onClick(() => { + prompt.showToast({ + message: '添加状态' + }) + }) + } + if (this.nameVisibility) { + Row() { + Image($r('app.media.brand')) + .width('28vp') + .height('28vp') + .borderRadius('16vp') + Text('闲潭春半') + .fontSize('20fp') + .margin({ left: '4vp' }) + } + .alignItems(VerticalAlign.Center) + .transition(TransitionEffect.OPACITY + .animation({ curve: curves.springMotion() }) + .combine(TransitionEffect.move(TransitionEdge.TOP))) + } Row() { Image($r('app.media.search')) diff --git a/scenario/arkui/MyMusic/entry/src/main/ets/view/MineListItem.ets b/scenario/arkui/MyMusic/entry/src/main/ets/view/MineListItem.ets index 18f35268..4fe3a048 100644 --- a/scenario/arkui/MyMusic/entry/src/main/ets/view/MineListItem.ets +++ b/scenario/arkui/MyMusic/entry/src/main/ets/view/MineListItem.ets @@ -53,22 +53,25 @@ export struct MineListItem { Blank() Row() { - Image($r('app.media.ic_public_favor')) + Row() { + Image($r('app.media.ic_public_favor')) + .height('10vp') + .width('10vp') + Text('心动模式') + .fontSize('12fp') + .margin({ left: '2vp' }) + }.backgroundColor($r('app.color.mainPage_backgroundColor')) + .padding('4vp') + .borderRadius('4vp') + .visibility(this.item.patternVisibility) + Blank() + Image($r('app.media.ic_public_more_list')) .height('10vp') .width('10vp') - Text('心动模式') - .fontSize('12fp') - .margin({ left: '2vp' }) - }.backgroundColor($r('app.color.mainPage_backgroundColor')) - .padding('4vp') - .borderRadius('4vp') - .visibility(this.item.patternVisibility) - - Image($r('app.media.ic_public_more_list')) - .height('10vp') - .width('10vp') - .margin('1vp') - .visibility(this.item.moreVisibility) + .margin('1vp') + .visibility(this.item.moreVisibility) + }.justifyContent(FlexAlign.SpaceBetween) + .width('20%') } .justifyContent(FlexAlign.SpaceBetween) diff --git a/scenario/arkui/MyMusic/entry/src/main/ets/view/MineMusic.ets b/scenario/arkui/MyMusic/entry/src/main/ets/view/MineMusic.ets new file mode 100644 index 00000000..0c8cbfc4 --- /dev/null +++ b/scenario/arkui/MyMusic/entry/src/main/ets/view/MineMusic.ets @@ -0,0 +1,95 @@ +/* + * Copyright (c) 2023 Shenzhen Kaihong Digital Industry Development 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 CommonConstants from '../common/constants/CommonConstants'; +import { MineListItem } from './MineListItem'; +import MineListItemData from '../viewmodel/MineListItemData'; +import mainViewModel from '../viewmodel/MainViewModel'; + + +/** + * Home tab content + */ +@Component +export default struct MineMusic { + @State subCurrentIndex: number = CommonConstants.HOME_TAB_INDEX; + @State headBackground: number = 0; + private tabsController: TabsController = new TabsController(); + + @Builder + TabBuilder(title: string, subTitle: string, index: number) { + Row() { + Text(title) + .fontSize($r('app.float.little_text_size')) + .width('30%') + .textAlign(TextAlign.Center) + .fontColor(this.subCurrentIndex === index ? $r('app.color.mainPage_selected') : $r('app.color.mainPage_normal')) + Text(subTitle) + .fontSize('8fp') + .fontColor(this.subCurrentIndex === index ? $r('app.color.mainPage_selected') : $r('app.color.mainPage_normal')) + } + .onClick(() => { + this.subCurrentIndex = index; + this.tabsController.changeIndex(this.subCurrentIndex); + }) + } + + build() { + Tabs({ + barPosition: BarPosition.End, + controller: this.tabsController + }) { + TabContent() { + List({ space: 10 }) { + ForEach(mainViewModel.getMineListItemData(), (item: MineListItemData) => { + ListItem() { + MineListItem({ item }) + } + .align(Alignment.Start) + }, (item: MineListItemData) => JSON.stringify(item)) + }.margin('12vp') + .edgeEffect(EdgeEffect.Spring) + .nestedScroll({ + scrollForward: NestedScrollMode.PARENT_FIRST, + scrollBackward: NestedScrollMode.SELF_FIRST + }) + }.align(Alignment.Top) + .tabBar(this.TabBuilder('近期', '', 0)) + + TabContent() { + List({ space: 10 }) { + ForEach(mainViewModel.getMineListItemDataCreate(), (item: MineListItemData) => { + ListItem() { + MineListItem({ item }) + } + .align(Alignment.Start) + }, (item: MineListItemData) => JSON.stringify(item)) + }.margin('12vp') + .edgeEffect(EdgeEffect.Spring) + .nestedScroll({ + scrollForward: NestedScrollMode.PARENT_FIRST, + scrollBackward: NestedScrollMode.SELF_FIRST + }) + }.align(Alignment.Top) + .tabBar(this.TabBuilder('创建', '8', 1)) + } + .barPosition(BarPosition.Start) + .barMode(BarMode.Fixed) + .barWidth('40%') + .onChange((index: number) => { + this.subCurrentIndex = index; + }) + } +} diff --git a/scenario/arkui/MyMusic/entry/src/main/ets/view/MinePodCast.ets b/scenario/arkui/MyMusic/entry/src/main/ets/view/MinePodCast.ets new file mode 100644 index 00000000..6d5f6770 --- /dev/null +++ b/scenario/arkui/MyMusic/entry/src/main/ets/view/MinePodCast.ets @@ -0,0 +1,116 @@ +/* + * Copyright (c) 2023 Shenzhen Kaihong Digital Industry Development 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 CommonConstants from '../common/constants/CommonConstants'; +import { MineListItem } from './MineListItem'; +import MineListItemData from '../viewmodel/MineListItemData'; +import mainViewModel from '../viewmodel/MainViewModel'; + + +/** + * Home tab content + */ +@Component +export default struct MinePodCast { + @State subCurrentIndex: number = CommonConstants.HOME_TAB_INDEX; + private tabsController: TabsController = new TabsController(); + + @Builder + TabBuilder(title: string, subTitle: string, index: number) { + Row() { + Text(title) + .fontSize($r('app.float.little_text_size')) + .width('30%') + .textAlign(TextAlign.Center) + .fontColor(this.subCurrentIndex === index ? $r('app.color.mainPage_selected') : $r('app.color.mainPage_normal')) + Text(subTitle) + .fontSize('8fp') + .fontColor(this.subCurrentIndex === index ? $r('app.color.mainPage_selected') : $r('app.color.mainPage_normal')) + } + .onClick(() => { + this.subCurrentIndex = index; + this.tabsController.changeIndex(this.subCurrentIndex); + }) + } + + build() { + Tabs({ + barPosition: BarPosition.End, + controller: this.tabsController + }) { + TabContent() { + List({ space: 10 }) { + ForEach(mainViewModel.getMineListItemData(), (item: MineListItemData) => { + ListItem() { + MineListItem({ item }) + } + .align(Alignment.Start) + }, (item: MineListItemData) => JSON.stringify(item)) + }.margin('12vp') + .edgeEffect(EdgeEffect.Spring) + .nestedScroll({ + scrollForward: NestedScrollMode.PARENT_FIRST, + scrollBackward: NestedScrollMode.SELF_FIRST + }) + }.align(Alignment.Top) + .tabBar(this.TabBuilder('全部', '2', 0)) + + TabContent() { + Column() { + Text('暂无收藏播客') + .fontColor('#e0e0e0') + .fontSize('16fp') + .margin('6vp') + Row() { + Text('发现更多播客') + .fontSize('20fp') + Image($r('app.media.ic_public_arrow_right')) + .width('24vp') + .height('24vp') + } + .alignItems(VerticalAlign.Center) + .borderWidth('1vp') + .borderRadius('20vp') + .borderColor('#e9e9e9') + .padding('8vp') + } + }.align(Alignment.Top) + .tabBar(this.TabBuilder('播客', '', 1)) + + TabContent() { + List({ space: 10 }) { + ForEach(mainViewModel.getMineListItemDataCreate(), (item: MineListItemData) => { + ListItem() { + MineListItem({ item }) + } + .align(Alignment.Start) + }, (item: MineListItemData) => JSON.stringify(item)) + }.margin('12vp') + .edgeEffect(EdgeEffect.Spring) + .nestedScroll({ + scrollForward: NestedScrollMode.PARENT_FIRST, + scrollBackward: NestedScrollMode.SELF_FIRST + }) + }.align(Alignment.Top) + .tabBar(this.TabBuilder('有声书', '2', 2)) + } + .barPosition(BarPosition.Start) + .barMode(BarMode.Fixed) + .barWidth('80%') + .onChange((index: number) => { + this.subCurrentIndex = index; + }) + } +} diff --git a/scenario/arkui/MyMusic/entry/src/main/ets/view/PodCast.ets b/scenario/arkui/MyMusic/entry/src/main/ets/view/PodCast.ets index f57d1888..234f257e 100644 --- a/scenario/arkui/MyMusic/entry/src/main/ets/view/PodCast.ets +++ b/scenario/arkui/MyMusic/entry/src/main/ets/view/PodCast.ets @@ -15,6 +15,7 @@ import CommonConstants from '../common/constants/CommonConstants'; import { PodCastHead } from './PodCastHead'; +import { PodCastHeadRight } from './PodCastHeadRight'; import PodCastContentFirst from './PodCastContentFirst'; import PodCastContentSecond from './PodCastContentSecond'; import PodCastContentThird from './PodCastContentThird'; @@ -86,13 +87,15 @@ export default struct PodCast { } .width(CommonConstants.FULL_PARENT) .barHeight($r('app.float.mainPage_barHeight')) + .barWidth('70%') .barMode(BarMode.Scrollable) .barPosition(BarPosition.Start) .onChange((index: number) => { this.subCurrentIndex = index; }) - PodCastHead() + PodCastHead().width('10%').position({x:'5%',y:0}) + PodCastHeadRight().width('10%').position({x:'90%',y:0}) Search({ placeholder: '大家都在听 爵士的音乐解读' }) diff --git a/scenario/arkui/MyMusic/entry/src/main/ets/view/PodCastHead.ets b/scenario/arkui/MyMusic/entry/src/main/ets/view/PodCastHead.ets index f1b71281..fc711ea7 100644 --- a/scenario/arkui/MyMusic/entry/src/main/ets/view/PodCastHead.ets +++ b/scenario/arkui/MyMusic/entry/src/main/ets/view/PodCastHead.ets @@ -18,37 +18,19 @@ */ @Component export struct PodCastHead { - @State handlePopup1: boolean = false - @State handlePopup2: boolean = false + @State handlePopup: boolean = false build() { - Row() { - Image($r('app.media.ic_public_drawer')) - .objectFit(ImageFit.Contain) - .width($r('app.float.home_homeCell_size')) - .height($r('app.float.home_homeCell_size')) - .onClick(() => { - this.handlePopup1 = !this.handlePopup1 - }) - .bindPopup(this.handlePopup1, { - message: '这是个人菜单.', - }) - Blank() - Image($r('app.media.ic_public_add_norm_filled')) - .objectFit(ImageFit.Contain) - .width($r('app.float.home_homeCell_size')) - .height($r('app.float.home_homeCell_size')) - .onClick(() => { - this.handlePopup2 = !this.handlePopup2 - }) - .bindPopup(this.handlePopup2, { - message: '声音创作.', - }) - } - .padding({ left: $r('app.float.mainPage_padding'), right: $r('app.float.mainPage_padding') }) - .height($r('app.float.home_homeCell_size')) - .justifyContent(FlexAlign.SpaceBetween) - .width('100%') - .margin({ top: $r('app.float.mainPage_baseTab_margin') }) + Image($r('app.media.ic_public_drawer')) + .objectFit(ImageFit.Contain) + .width('24vp') + .height('24vp') + .onClick(() => { + this.handlePopup = !this.handlePopup + }) + .bindPopup(this.handlePopup, { + message: '这是个人菜单.', + }) + .margin({ top: $r('app.float.mainPage_baseTab_margin')}) } } \ No newline at end of file diff --git a/scenario/arkui/MyMusic/entry/src/main/ets/view/PodCastHeadRight.ets b/scenario/arkui/MyMusic/entry/src/main/ets/view/PodCastHeadRight.ets new file mode 100644 index 00000000..be87e51e --- /dev/null +++ b/scenario/arkui/MyMusic/entry/src/main/ets/view/PodCastHeadRight.ets @@ -0,0 +1,36 @@ +/* + * Copyright (c) 2023 Shenzhen Kaihong Digital Industry Development 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. + */ + +/** + * List item information component. + */ +@Component +export struct PodCastHeadRight { + @State handlePopup: boolean = false + + build() { + Image($r('app.media.ic_public_add_norm_filled')) + .objectFit(ImageFit.Contain) + .width('24vp') + .height('24vp') + .onClick(() => { + this.handlePopup = !this.handlePopup + }) + .bindPopup(this.handlePopup, { + message: '声音创作.', + }) + .margin({ top: $r('app.float.mainPage_baseTab_margin')}) + } +} \ No newline at end of file diff --git a/scenario/arkui/MyMusic/entry/src/main/ets/view/RadioItem.ets b/scenario/arkui/MyMusic/entry/src/main/ets/view/RadioItem.ets index 9f4d5835..9a2c7b6e 100644 --- a/scenario/arkui/MyMusic/entry/src/main/ets/view/RadioItem.ets +++ b/scenario/arkui/MyMusic/entry/src/main/ets/view/RadioItem.ets @@ -23,7 +23,6 @@ import prompt from '@ohos.promptAction'; @Component export struct RadioItem { private items: ItemData[] = new Array(); - ; @Consume playingTitle: string; @Consume playingArtist: string; @Consume playingImg: Resource; diff --git a/scenario/arkui/MyMusic/entry/src/main/ets/viewmodel/MainViewModel.ets b/scenario/arkui/MyMusic/entry/src/main/ets/viewmodel/MainViewModel.ets index ac83c7cf..2293dce3 100644 --- a/scenario/arkui/MyMusic/entry/src/main/ets/viewmodel/MainViewModel.ets +++ b/scenario/arkui/MyMusic/entry/src/main/ets/viewmodel/MainViewModel.ets @@ -232,8 +232,8 @@ export class MainViewModel { new MidItemData('挪威天才 AW Faded! 神曲完美了上亿人的愿望', $r('app.media.new'), '24万', ''), new MidItemData('节奏控系列【抖腿-ing】', $r('app.media.brand'), '47万', ''), new MidItemData('下班回家时超适合放松的歌单', $r('app.media.found'), '475万', '收藏过万'), - new MidItemData('节奏控系列【抖腿-ing】', $r('app.media.brand'), '47万', ''), - new MidItemData('下班回家时超适合放松的歌单', $r('app.media.found'), '475万', '收藏过万') + new MidItemData('节奏控系列【抖腿-ing】11', $r('app.media.brand'), '47万', ''), + new MidItemData('下班回家时超适合放松的歌单11', $r('app.media.found'), '475万', '收藏过万') ]; return aGridData; } @@ -373,6 +373,18 @@ export class MainViewModel { ]; return listData; } + getMineListItemDataCreate(): Array { + let listData: MineListItemData[] = [ + new MineListItemData('日推01', $r("app.media.brand1"), '32首·0次播放', Visibility.Visible, Visibility.None), + new MineListItemData('2023-1 漫天之尘', $r("app.media.fig3"), '歌单·19首·闲潭春半', Visibility.Visible, Visibility.None), + new MineListItemData('2022-1 飘渺之缘', $r("app.media.fig5"), '歌单·17首·闲潭春半', Visibility.Visible, Visibility.None), + new MineListItemData('2021-2 荒芜之路', $r("app.media.fig21"), '歌单·20首·闲潭春半', Visibility.Visible, Visibility.None), + new MineListItemData('2018-3 彷徨之伤', $r("app.media.fig4"), '歌单·42首·闲潭春半', Visibility.Visible, Visibility.None), + new MineListItemData('时空之力', $r("app.media.fig2"), '歌单·26首·闲潭春半', Visibility.Visible, Visibility.None), + new MineListItemData('新建歌单', $r("app.media.ic_public_add"), '', Visibility.None, Visibility.None) + ]; + return listData; + } getSettingListData(): Array { let listData: ItemData[] = [ -- Gitee