diff --git a/entry/src/main/ets/componets/bookManage/BookInfoGridManage.ets b/entry/src/main/ets/componets/bookManage/BookInfoGridManage.ets new file mode 100644 index 00000000..678e108b --- /dev/null +++ b/entry/src/main/ets/componets/bookManage/BookInfoGridManage.ets @@ -0,0 +1,77 @@ +import { BookList } from '../dataList/bookList' + +@Component +/** + * 书签_宫格 + */ +export default struct BookInfoGridManage{ + @Prop bookId:string + //标题 + @Prop title:string + //描述 + @Prop describe:string + //章节 + @Prop chapter:string + //图片 + @Prop bookImage:Resource + + @Prop isJoin:boolean + + @Prop @Watch('isCheckChange')allCheck:boolean = false + + @Link checkBookList:BookList[] + + isCheckChange(){ + if (this.allCheck) { + this.checkBookList.push(new BookList(this.bookId,this.title,this.describe,this.chapter,this.bookImage,this.isJoin)) + } else { + this.checkBookList = this.checkBookList.filter(book => book.bookId !== this.bookId); + } + } + + + build() { + Column() { + Column(){ + Flex({ + alignItems: ItemAlign.End, + justifyContent:FlexAlign.End + }){ + Checkbox({ + name: this.title + }) + .selectedColor($r('app.color.theme_color')) + .unselectedColor('rgba(255, 255, 255, 0.6)') + .select(this.allCheck) + .onClick(()=>{ + this.allCheck = !this.allCheck + }) + } + .borderRadius(10) + .backgroundColor('rgba(0, 0, 0, 0.3)') + .width(100).height(120) + } + .borderRadius(10) + .width(100).height(120) + .backgroundImage(this.bookImage) + .backgroundImageSize({width:100,height:120}) + Text(this.title) + .fontSize(15) + .fontWeight(700) + .textOverflow({ + overflow:TextOverflow.Ellipsis + }) + .ellipsisMode(EllipsisMode.END) + .maxLines(2) + + Text(this.chapter).fontSize(12).fontColor('rgb(174,174,174)') + .textOverflow({ + overflow:TextOverflow.Ellipsis + }) + .ellipsisMode(EllipsisMode.END) + .fontWeight(500) + .maxLines(1) + } + .padding({ left:8,right:8,bottom:5,top:5 }) + } +} \ No newline at end of file diff --git a/entry/src/main/ets/componets/bookManage/BookInfoManage.ets b/entry/src/main/ets/componets/bookManage/BookInfoManage.ets new file mode 100644 index 00000000..34772d92 --- /dev/null +++ b/entry/src/main/ets/componets/bookManage/BookInfoManage.ets @@ -0,0 +1,87 @@ +import { BookList } from '../dataList/bookList' +import { JSON } from '@kit.ArkTS' + +@Component +/** + * 书签 + */ +export default struct BookInfoManage{ + @Prop bookId:string + //标题 + @Prop title:string + //描述 + @Prop describe:string + //章节 + @Prop chapter:string + //图片 + @Prop bookImage:Resource + + @Prop isJoin:boolean + + @Prop @Watch('isCheckChange')allCheck:boolean = false + + @Link checkBookList:BookList[] + + isCheckChange(){ + if (this.allCheck) { + this.checkBookList.push(new BookList(this.bookId,this.title,this.describe,this.chapter,this.bookImage,this.isJoin)) + } else { + this.checkBookList = this.checkBookList.filter(book => book.bookId !== this.bookId); + } + } + + build() { + + Flex( + { + alignItems:ItemAlign.Center, + justifyContent:FlexAlign.SpaceBetween + } + ) { + Row({ + space:20 + }){ + Image(this.bookImage).width(60).height(80) + Column({ + space:24 + }) + { + Text(this.title) + .fontWeight(700) + Column(){ + Text(this.describe).fontSize(12).fontColor('rgb(174,174,174)') + .textOverflow({ + overflow:TextOverflow.Ellipsis + }) + .ellipsisMode(EllipsisMode.END) + .fontWeight(500) + .maxLines(1) + Text(this.chapter).fontSize(12).fontColor('rgb(174,174,174)') + .textOverflow({ + overflow:TextOverflow.Ellipsis + }) + .ellipsisMode(EllipsisMode.END) + .fontWeight(500) + .maxLines(1) + } + .width('40%') + .alignItems(HorizontalAlign.Start) + } + .alignItems(HorizontalAlign.Start) + } + Row() { + Checkbox({ + name: this.title + }) + .selectedColor($r('app.color.theme_color')) + .select(this.allCheck) + .onClick(()=>{ + this.allCheck = !this.allCheck + }) + } + .padding({ left: 15, right: 15, bottom: 5, top: 5 }) + } + .padding(10) + .borderRadius(10) + } +} \ No newline at end of file diff --git a/entry/src/main/ets/componets/bookManage/bookListManage.ets b/entry/src/main/ets/componets/bookManage/bookListManage.ets new file mode 100644 index 00000000..6c8e8ff9 --- /dev/null +++ b/entry/src/main/ets/componets/bookManage/bookListManage.ets @@ -0,0 +1,134 @@ +import { BookList } from '../dataList/bookList' +import { promptAction } from '@kit.ArkUI' +import BookInfoManage from './BookInfoManage' +import BookInfoGridManage from './BookInfoGridManage' +import delDialogExample from '../common/delDialog' + +@Component +export default struct bookListManage{ + @Link @Watch('onIsClearChange') isClear:boolean + @Link allCheck:boolean + @Prop @Watch('onIsEXHIBITChange') EXHIBIT:string + @State @Watch('isChangeBookList')checkBookList:BookList[] = [] + @Link showBookList:BookList[] + @Link checkNumber:number + + + //监听isClear变化 + onIsClearChange() { + if (this.checkBookList === null || this.checkBookList.length === 0) { + promptAction.showToast({ + message: '请选择要删除的内容', + duration: 1000, + }) + this.isClear = false + return + } + if (this.isClear) { + this.bookInfoDel?.open() + } + } + + deleteBook() { + for (let index = 0; index < this.checkBookList.length; index++) { + this.showBookList = this.showBookList.filter(book => book.bookId !== this.checkBookList[index].bookId); + } + console.log(JSON.stringify(this.showBookList)) + this.isClear = false + this.allCheck = false + this.checkBookList = [] + promptAction.showToast({ + message: '删除成功', + }) + } + + isChangeBookList() { + this.checkNumber = this.checkBookList.length + } + + //监听EXHIBIT变化 + onIsEXHIBITChange() { + console.log(this.EXHIBIT) + } + + //弹窗 + bookInfoDel: CustomDialogController | null = new CustomDialogController({ + builder: delDialogExample({ + cancel: ()=> { this.onCancel() }, + confirm: ()=> { this.onAccept() } + }), + cancel: this.exitApp, + autoCancel: true, + alignment: DialogAlignment.Center, + gridCount: 4, + customStyle: false, + cornerRadius: 25, + }) + + onCancel() { + this.isClear = false + } + + onAccept() { + this.deleteBook() + } + + exitApp() { + this.isClear = false + } + + build() { + if (this.showBookList === null || this.showBookList.length === 0) { + Column() { + Image($r('app.media.no_record')).width(200).height(200) + Text('暂无浏览记录').fontSize(12).fontColor('rgba(96, 96, 96, 0.6)').fontWeight(500).padding(5) + } + .margin({ top: 120 }) + + } else { + Column( + {space:10} + ){ + if (this.EXHIBIT === '宫格') { + Flex({ direction: FlexDirection.Row, wrap: FlexWrap.Wrap,alignContent:FlexAlign.Center}){ + ForEach(this.showBookList, (item: BookList,index:number) => { + BookInfoGridManage({ + bookId:item.bookId, + title: item.title + this.EXHIBIT, + describe: item.describe, + chapter: item.chapter, + bookImage: item.bookImage, + isJoin:item.isJoin, + allCheck:this.allCheck, + checkBookList:this.checkBookList + }).width('33%') + }) + } + } else { + Column( + { space: 10 } + ) { + ForEach(this.showBookList, (item: BookList,index:number) => { + BookInfoManage({ + bookId:item.bookId, + title: item.title, + describe: item.describe, + chapter: item.chapter, + bookImage: item.bookImage, + isJoin:item.isJoin, + allCheck:this.allCheck, + checkBookList:this.checkBookList + }) + }) + } + .backgroundColor('rgba(255,250,247,0.8)') + } + // Divider().vertical(false) + // Row() { + // Text('END').fontColor('rgba(84, 84, 84, 0.30)').fontWeight(500) + // } + } + + } + } +} \ No newline at end of file diff --git a/entry/src/main/ets/componets/dataList/bookList.ets b/entry/src/main/ets/componets/dataList/bookList.ets index cbee5e49..1627edc4 100644 --- a/entry/src/main/ets/componets/dataList/bookList.ets +++ b/entry/src/main/ets/componets/dataList/bookList.ets @@ -1,4 +1,6 @@ export class BookList { + + bookId:string /** * 标题 */ @@ -26,7 +28,8 @@ export class BookList { - constructor( title:string,describe:string , chapter:string, bookImage:Resource,isJoin:boolean = false) { + constructor(bookId:string, title:string,describe:string , chapter:string, bookImage:Resource,isJoin:boolean = false) { + this.bookId = bookId this.title = title this.isJoin = isJoin this.describe = describe diff --git a/entry/src/main/ets/pages/view/BookManagePage.ets b/entry/src/main/ets/pages/view/BookManagePage.ets index 16a36254..779f5777 100644 --- a/entry/src/main/ets/pages/view/BookManagePage.ets +++ b/entry/src/main/ets/pages/view/BookManagePage.ets @@ -1,7 +1,7 @@ import router from '@ohos.router'; -import cartoonPage from './bookShelf/cartoonPage'; -import novelPage from './bookShelf/novelPage'; -import soundPage from './bookShelf/soundPage'; +import bookListManage from '../../componets/bookManage/bookListManage'; +import { BookList } from '../../componets/dataList/bookList'; + class routerParams { currentIndex:number EXHIBIT:string @@ -18,17 +18,63 @@ class routerParams { struct BookManagePage { @State currentIndex: number = (router.getParams() as routerParams).currentIndex @State EXHIBIT: string = (router.getParams() as routerParams).EXHIBIT - @State isClear:boolean = false - @State isManage:boolean = true - @State allCheck:boolean = false + @State checkNumber:number = 0 + @State showBookList:BookList[] = [] + + @State bookList:BookList[] = [ + new BookList('1','仙人消失之后','会说话的肘子·未读过1','更新至·第340章 镇压',$r('app.media.cover_list'),true) + ,new BookList('2','仙人消失之后','会说话的肘子·未读过2','更新至·第340章 镇压',$r('app.media.cover_list')) + ,new BookList('3','仙人消失之后','会说话的肘子·未读过3','更新至·第340章 镇压',$r('app.media.cover_list')) + ,new BookList('4','仙人消失之后','会说话的肘子·未读过4','更新至·第340章 镇压',$r('app.media.cover_list')) + ,new BookList('5','仙人消失之后','会说话的肘子·未读过5','更新至·第340章 镇压',$r('app.media.cover_list')) + ,new BookList('6','仙人消失之后','会说话的肘子·未读过6','更新至·第340章 镇压',$r('app.media.cover_list')) + ,new BookList('7','仙人消失之后','会说话的肘子·未读过7','更新至·第340章 镇压',$r('app.media.cover_list')) + ,new BookList('8','仙人消失之后','会说话的肘子·未读过8','更新至·第340章 镇压',$r('app.media.cover_list')) + ,new BookList('9','仙人消失之后','会说话的肘子·未读过9','更新至·第340章 镇压',$r('app.media.cover_list')) + ,new BookList('10','仙人消失之后','会说话的肘子·未读过10','更新至·第340章 镇压',$r('app.media.cover_list')) + ] + + @State cartoonList:BookList[] = [ + new BookList('1','极主夫道','会说话的肘子·未读过1','更新至·第340章 镇压',$r('app.media.cover_list1'),true) + ,new BookList('2','极主夫道','会说话的肘子·未读过2','更新至·第340章 镇压',$r('app.media.cover_list1')) + ,new BookList('3','极主夫道','会说话的肘子·未读过3','更新至·第340章 镇压',$r('app.media.cover_list1')) + ,new BookList('4','极主夫道','会说话的肘子·未读过4','更新至·第340章 镇压',$r('app.media.cover_list1')) + ,new BookList('5','极主夫道','会说话的肘子·未读过5','更新至·第340章 镇压',$r('app.media.cover_list1')) + ,new BookList('6','极主夫道','会说话的肘子·未读过6','更新至·第340章 镇压',$r('app.media.cover_list1')) + ,new BookList('7','极主夫道','会说话的肘子·未读过7','更新至·第340章 镇压',$r('app.media.cover_list1')) + ,new BookList('8','极主夫道','会说话的肘子·未读过8','更新至·第340章 镇压',$r('app.media.cover_list1')) + ,new BookList('9','极主夫道','会说话的肘子·未读过9','更新至·第340章 镇压',$r('app.media.cover_list1')) + ,new BookList('10','极主夫道','会说话的肘子·未读过10','更新至·第340章 镇压',$r('app.media.cover_list1')) + ] - @State manageDelete:boolean = false + @State soundList:BookList[] = [ + new BookList('1','三体广播据','729声工厂 · 第一季 第五集 红岸基地','共101集 · 最终季 最终集 回归大宇宙',$r('app.media.cover_list2')), + new BookList('2','三体广播据','729声工厂 · 第一季 第五集 红岸基地','共101集 · 最终季 最终集 回归大宇宙',$r('app.media.cover_list2')), + new BookList('3','三体广播据','729声工厂 · 第一季 第五集 红岸基地','共101集 · 最终季 最终集 回归大宇宙',$r('app.media.cover_list2')), + new BookList('4','三体广播据','729声工厂 · 第一季 第五集 红岸基地','共101集 · 最终季 最终集 回归大宇宙',$r('app.media.cover_list2')), + new BookList('5','三体广播据','729声工厂 · 第一季 第五集 红岸基地','共101集 · 最终季 最终集 回归大宇宙',$r('app.media.cover_list2')), + new BookList('6','三体广播据','729声工厂 · 第一季 第五集 红岸基地','共101集 · 最终季 最终集 回归大宇宙',$r('app.media.cover_list2')), + new BookList('7','三体广播据','729声工厂 · 第一季 第五集 红岸基地','共101集 · 最终季 最终集 回归大宇宙',$r('app.media.cover_list2')), + new BookList('8','三体广播据','729声工厂 · 第一季 第五集 红岸基地','共101集 · 最终季 最终集 回归大宇宙',$r('app.media.cover_list2')), + new BookList('9','三体广播据','729声工厂 · 第一季 第五集 红岸基地','共101集 · 最终季 最终集 回归大宇宙',$r('app.media.cover_list2')), + new BookList('10','三体广播据','729声工厂 · 第一季 第五集 红岸基地','共101集 · 最终季 最终集 回归大宇宙',$r('app.media.cover_list2')), + new BookList('11','三体广播据','729声工厂 · 第一季 第五集 红岸基地','共101集 · 最终季 最终集 回归大宇宙',$r('app.media.cover_list2')), + new BookList('12','三体广播据','729声工厂 · 第一季 第五集 红岸基地','共101集 · 最终季 最终集 回归大宇宙',$r('app.media.cover_list2')) + ] + onCurrentIndexChange(){ + if (this.currentIndex === 0) { + this.showBookList = this.bookList + } else if(this.currentIndex === 1){ + this.showBookList = this.cartoonList + } else if(this.currentIndex === 2){ + this.showBookList = this.soundList + } + } onPageShow(): void { - console.log(this.currentIndex + '') - console.log(this.EXHIBIT + '') + this.onCurrentIndexChange() } build() { Column() { @@ -45,31 +91,17 @@ struct BookManagePage { .width("100%") this.headTitle() - Flex(){ + Flex({ + justifyContent:FlexAlign.Center + }){ Scroll(){ - if (this.currentIndex === 0){ - novelPage({ - searchValue:'最近阅读', - currentIndex:0, - isClear:this.isClear, - EXHIBIT:this.EXHIBIT, - isShowCheck:true, - allCheck:this.allCheck - // manageDelete:this.manageDelete - }) - } else if(this.currentIndex === 1) { - cartoonPage({searchValue:'最近阅读', - currentIndex:1, - isClear:this.isClear, - EXHIBIT:this.EXHIBIT, - isShowCheck:true}) - } else if(this.currentIndex === 2) { - soundPage({searchValue:'最近阅读', - currentIndex:2, - isClear:this.isClear, - EXHIBIT:this.EXHIBIT, - isShowCheck:true}) - } + bookListManage({ + isClear:this.isClear, + EXHIBIT:this.EXHIBIT, + allCheck:this.allCheck, + showBookList:this.showBookList, + checkNumber:this.checkNumber + }) } .height('80%') .align(Alignment.TopStart) @@ -100,7 +132,7 @@ struct BookManagePage { .alignItems(HorizontalAlign.Start) .width('33%') Column(){ - Text(`已选1项目`).fontSize(20).fontWeight(600) + Text(`已选${this.checkNumber}项目`).fontSize(20).fontWeight(600) }.width('33%') Column(){ Text('完成').fontSize(16) @@ -142,7 +174,7 @@ struct BookManagePage { Image($r('app.media.delete_svg')).width(20) Text('删除').fontSize(14).fontWeight(500) }.onClick(()=>{ - this.manageDelete = true + this.isClear = true }) } .height('10%') diff --git a/entry/src/main/ets/pages/view/bookShelf/BookInfo.ets b/entry/src/main/ets/pages/view/bookShelf/BookInfo.ets index a9a957cb..f3dee431 100644 --- a/entry/src/main/ets/pages/view/bookShelf/BookInfo.ets +++ b/entry/src/main/ets/pages/view/bookShelf/BookInfo.ets @@ -21,12 +21,6 @@ export default struct BookInfo{ @Prop isJoin:boolean - @Prop isShowCheck:boolean - - @Prop allCheck:boolean = false - - @Link checkBookList:BookList[] - onDelete: () => void = () => { } @@ -58,11 +52,6 @@ export default struct BookInfo{ console.info('点外围取消') } - inputBookList(){ - this.checkBookList.push(new BookList(this.title,this.describe,this.chapter,this.bookImage,this.isJoin)) - console.log(JSON.stringify(this.checkBookList)) - } - build() { Flex( @@ -114,22 +103,7 @@ export default struct BookInfo{ }) }) } - if (this.isShowCheck) { - Row() { - Checkbox({ - name: this.title - }) - .selectedColor($r('app.color.theme_color')) - .select(this.allCheck) - .onClick(()=>{ - this.allCheck = !this.allCheck - if (this.allCheck) { - this.inputBookList() - } - }) - } - .padding({ left: 15, right: 15, bottom: 5, top: 5 }) - } + if (this.searchValue === '浏览历史'){ Column({space:15}){ Row(){ diff --git a/entry/src/main/ets/pages/view/bookShelf/BookInfoGrid.ets b/entry/src/main/ets/pages/view/bookShelf/BookInfoGrid.ets index 8a82d255..c355da4f 100644 --- a/entry/src/main/ets/pages/view/bookShelf/BookInfoGrid.ets +++ b/entry/src/main/ets/pages/view/bookShelf/BookInfoGrid.ets @@ -20,8 +20,6 @@ export default struct BookInfoGrid{ @Prop isJoin:boolean - @Prop isShowCheck:boolean - onDelete: () => void = () => { } @@ -57,59 +55,7 @@ export default struct BookInfoGrid{ build() { Column() { Column(){ - if (this.isShowCheck){ - Flex({ - alignItems: ItemAlign.End, - justifyContent:FlexAlign.End - }){ - Checkbox({ - name: this.title - }) - .selectedColor($r('app.color.theme_color')) - .unselectedColor('rgba(255, 255, 255, 0.6)') - } - .borderRadius(10) - .backgroundColor(this.isShowCheck ?'rgba(0, 0, 0, 0.3)':'') - .width(100).height(120) - } - /* if (this.searchValue === '浏览历史'){ - Flex({ - justifyContent:FlexAlign.SpaceBetween, - alignItems: ItemAlign.End - }){ - Row(){ - Row({space:5}){ - Image(this.isJoin?$r("app.media.add_check"):$r("app.media.add_shelf")).width(10).height(10) - .fillColor('rgb(255, 255, 255)') - Text('书架').fontSize(8).fontColor('rgb(255, 255, 255)') - }.padding({ left:8,right:8,bottom:5,top:5 }) - } - .margin({bottom:3}) - .backgroundColor(this.isJoin?'rgba(255, 255, 255,0.5)':'') - .borderColor('rgb(255, 255, 255)') - .borderWidth(this.isJoin?0:1) - .borderRadius(50) - .onClick(()=>{ - this.isJoin = !this.isJoin - promptAction.showToast({ - message: this.isJoin?'已加入书架':'已移出书架', - duration: 1000, - }) - }) - Image($r('app.media.delete_svg')).width(17).fillColor('rgb(255, 255, 255)') - .margin({bottom:3}) - .onClick(()=>{ - if (this.bookInfoDel != null) { - this.bookInfoDel.open() - } - }) - } - .padding({left:5,right:5}) - .borderRadius(10) - .backgroundColor(this.searchValue === '浏览历史'?'rgba(0, 0, 0, 0.3)':'') - .width(90).height(120) - }*/ } .borderRadius(10) .width(100).height(120) diff --git a/entry/src/main/ets/pages/view/bookShelf/IndexShelf.ets b/entry/src/main/ets/pages/view/bookShelf/IndexShelf.ets index 15cc1c88..c91e9ab4 100644 --- a/entry/src/main/ets/pages/view/bookShelf/IndexShelf.ets +++ b/entry/src/main/ets/pages/view/bookShelf/IndexShelf.ets @@ -50,7 +50,6 @@ export default struct IndexShelf { @State isRefreshing: boolean = false @State counter: number = 0 @State RefreshingTitle:string = '松开刷新' - @State isShowCheck:boolean = false build() { Column() { Flex({ @@ -134,7 +133,6 @@ export default struct IndexShelf { .onClick(()=> { this.GROUP = '标签' this.searchValue = '浏览历史' - this.isShowCheck = false }) if (this.searchValue !== '浏览历史') { this.GroupBuilder() @@ -241,14 +239,13 @@ export default struct IndexShelf { searchValue:this.searchValue, currentIndex:0, isClear:this.isClear, - EXHIBIT:this.EXHIBIT, - isShowCheck:this.isShowCheck + EXHIBIT:this.EXHIBIT }) .zIndex(0) } else if(this.currentIndex === 1) { - cartoonPage({searchValue:this.searchValue,currentIndex:1,isClear:this.isClear,EXHIBIT:this.EXHIBIT,isShowCheck:this.isShowCheck}).zIndex(1) + cartoonPage({searchValue:this.searchValue,currentIndex:1,isClear:this.isClear,EXHIBIT:this.EXHIBIT}).zIndex(1) } else if(this.currentIndex === 2) { - soundPage({searchValue:this.searchValue,currentIndex:2,isClear:this.isClear,EXHIBIT:this.EXHIBIT,isShowCheck:this.isShowCheck}).zIndex(2) + soundPage({searchValue:this.searchValue,currentIndex:2,isClear:this.isClear,EXHIBIT:this.EXHIBIT}).zIndex(2) } } else { BookFolder() diff --git a/entry/src/main/ets/pages/view/bookShelf/cartoonPage.ets b/entry/src/main/ets/pages/view/bookShelf/cartoonPage.ets index e37b5034..1c6c1b63 100644 --- a/entry/src/main/ets/pages/view/bookShelf/cartoonPage.ets +++ b/entry/src/main/ets/pages/view/bookShelf/cartoonPage.ets @@ -9,19 +9,21 @@ import BookInfoGrid from './BookInfoGrid' @Component export default struct cartoonPage{ @Prop searchValue:string - @Prop isShowCheck:boolean @Link @Watch('onIsClearChange') isClear:boolean @Prop currentIndex:number - @State lastIndex:number = 9999 + @State lastIndex:string = '9999' @Prop @Watch('onIsEXHIBITChange') EXHIBIT:string @State cartoonList:BookList[] = [ - new BookList('极主夫道','会说话的肘子','更新至·第340章 镇压',$r('app.media.cover_list1')), - new BookList('极主夫道','会说话的肘子','更新至·第340章 镇压',$r('app.media.cover_list1')), - new BookList('极主夫道','会说话的肘子','更新至·第340章 镇压',$r('app.media.cover_list1')), - new BookList('极主夫道','会说话的肘子','更新至·第340章 镇压',$r('app.media.cover_list1')), - new BookList('极主夫道','会说话的肘子','更新至·第340章 镇压',$r('app.media.cover_list1')), - new BookList('极主夫道','会说话的肘子','更新至·第340章 镇压',$r('app.media.cover_list1')), - new BookList('极主夫道','会说话的肘子','更新至·第340章 镇压',$r('app.media.cover_list1')) + new BookList('1','极主夫道','会说话的肘子·未读过1','更新至·第340章 镇压',$r('app.media.cover_list1'),true) + ,new BookList('2','极主夫道','会说话的肘子·未读过2','更新至·第340章 镇压',$r('app.media.cover_list1')) + ,new BookList('3','极主夫道','会说话的肘子·未读过3','更新至·第340章 镇压',$r('app.media.cover_list1')) + ,new BookList('4','极主夫道','会说话的肘子·未读过4','更新至·第340章 镇压',$r('app.media.cover_list1')) + ,new BookList('5','极主夫道','会说话的肘子·未读过5','更新至·第340章 镇压',$r('app.media.cover_list1')) + ,new BookList('6','极主夫道','会说话的肘子·未读过6','更新至·第340章 镇压',$r('app.media.cover_list1')) + ,new BookList('7','极主夫道','会说话的肘子·未读过7','更新至·第340章 镇压',$r('app.media.cover_list1')) + ,new BookList('8','极主夫道','会说话的肘子·未读过8','更新至·第340章 镇压',$r('app.media.cover_list1')) + ,new BookList('9','极主夫道','会说话的肘子·未读过9','更新至·第340章 镇压',$r('app.media.cover_list1')) + ,new BookList('10','极主夫道','会说话的肘子·未读过10','更新至·第340章 镇压',$r('app.media.cover_list1')) ] onIsClearChange() { if (this.currentIndex === 1 && this.isClear) { @@ -39,19 +41,19 @@ export default struct cartoonPage{ console.log(this.EXHIBIT) } - removeListByIndex(index:number){ - if (this.lastIndex === index) { + removeListByIndex(bookId:string){ + if (this.lastIndex === bookId) { return } - this.lastIndex = index - this.cartoonList.splice(index,1) + this.lastIndex = bookId + this.cartoonList = this.cartoonList.filter(book => book.bookId !== bookId); promptAction.showToast({ message: '删除成功', duration: 1000, }) //防止快速点击删除 setTimeout(()=>{ - this.lastIndex = 9999 + this.lastIndex = '9999' },500) } @@ -75,8 +77,7 @@ export default struct cartoonPage{ bookImage: item.bookImage, isJoin:item.isJoin, searchValue: this.searchValue, - isShowCheck:this.isShowCheck, - onDelete:(): void=>this.removeListByIndex(index) + onDelete:(): void=>this.removeListByIndex(item.bookId) }).width('33%') }) } @@ -92,9 +93,7 @@ export default struct cartoonPage{ bookImage: item.bookImage, isJoin:item.isJoin, searchValue: this.searchValue, - isShowCheck:this.isShowCheck, - checkBookList:[], - onDelete:(): void=>this.removeListByIndex(index) + onDelete:(): void=>this.removeListByIndex(item.bookId) }) }) } diff --git a/entry/src/main/ets/pages/view/bookShelf/novelPage.ets b/entry/src/main/ets/pages/view/bookShelf/novelPage.ets index ec218d90..9281ac31 100644 --- a/entry/src/main/ets/pages/view/bookShelf/novelPage.ets +++ b/entry/src/main/ets/pages/view/bookShelf/novelPage.ets @@ -6,25 +6,21 @@ import BookInfoGrid from './BookInfoGrid' @Component export default struct novelPage{ @Prop searchValue:string - @Prop isShowCheck:boolean @Link @Watch('onIsClearChange') isClear:boolean @Prop currentIndex:number - @State lastIndex:number = 9999 - @Prop allCheck:boolean - // @Link @Watch('isChangeManageDelete') manageDelete:boolean + @State lastIndex:string = '9999' @Prop @Watch('onIsEXHIBITChange') EXHIBIT:string - @State checkBookList:BookList[] = [] @State bookList:BookList[] = [ - new BookList('仙人消失之后','会说话的肘子·未读过1','更新至·第340章 镇压',$r('app.media.cover_list'),true) - ,new BookList('仙人消失之后','会说话的肘子·未读过2','更新至·第340章 镇压',$r('app.media.cover_list')) - ,new BookList('仙人消失之后','会说话的肘子·未读过3','更新至·第340章 镇压',$r('app.media.cover_list')) - ,new BookList('仙人消失之后','会说话的肘子·未读过4','更新至·第340章 镇压',$r('app.media.cover_list')) - ,new BookList('仙人消失之后','会说话的肘子·未读过5','更新至·第340章 镇压',$r('app.media.cover_list')) - ,new BookList('仙人消失之后','会说话的肘子·未读过6','更新至·第340章 镇压',$r('app.media.cover_list')) - ,new BookList('仙人消失之后','会说话的肘子·未读过7','更新至·第340章 镇压',$r('app.media.cover_list')) - ,new BookList('仙人消失之后','会说话的肘子·未读过8','更新至·第340章 镇压',$r('app.media.cover_list')) - ,new BookList('仙人消失之后','会说话的肘子·未读过9','更新至·第340章 镇压',$r('app.media.cover_list')) - ,new BookList('仙人消失之后','会说话的肘子·未读过10','更新至·第340章 镇压',$r('app.media.cover_list')) + new BookList('1','仙人消失之后','会说话的肘子·未读过1','更新至·第340章 镇压',$r('app.media.cover_list'),true) + ,new BookList('2','仙人消失之后','会说话的肘子·未读过2','更新至·第340章 镇压',$r('app.media.cover_list')) + ,new BookList('3','仙人消失之后','会说话的肘子·未读过3','更新至·第340章 镇压',$r('app.media.cover_list')) + ,new BookList('4','仙人消失之后','会说话的肘子·未读过4','更新至·第340章 镇压',$r('app.media.cover_list')) + ,new BookList('5','仙人消失之后','会说话的肘子·未读过5','更新至·第340章 镇压',$r('app.media.cover_list')) + ,new BookList('6','仙人消失之后','会说话的肘子·未读过6','更新至·第340章 镇压',$r('app.media.cover_list')) + ,new BookList('7','仙人消失之后','会说话的肘子·未读过7','更新至·第340章 镇压',$r('app.media.cover_list')) + ,new BookList('8','仙人消失之后','会说话的肘子·未读过8','更新至·第340章 镇压',$r('app.media.cover_list')) + ,new BookList('9','仙人消失之后','会说话的肘子·未读过9','更新至·第340章 镇压',$r('app.media.cover_list')) + ,new BookList('10','仙人消失之后','会说话的肘子·未读过10','更新至·第340章 镇压',$r('app.media.cover_list')) ] //监听isClear变化 onIsClearChange() { @@ -62,19 +58,19 @@ export default struct novelPage{ console.log(this.EXHIBIT) } - removeListByIndex(index:number){ - if (this.lastIndex === index) { + removeListByIndex(bookId:string){ + if (this.lastIndex === bookId) { return } - this.lastIndex = index - this.bookList.splice(index,1) + this.lastIndex = bookId + this.bookList = this.bookList.filter(book => book.bookId !== bookId); promptAction.showToast({ message: '删除成功', duration: 1000, }) //防止快速点击删除 setTimeout(()=>{ - this.lastIndex = 9999 + this.lastIndex = '9999' },500) } @@ -100,8 +96,7 @@ export default struct novelPage{ bookImage: item.bookImage, isJoin:item.isJoin, searchValue: this.searchValue, - isShowCheck:this.isShowCheck, - onDelete:(): void=>this.removeListByIndex(index) + onDelete:(): void=>this.removeListByIndex(item.bookId) }).width('33%') }) } @@ -117,10 +112,7 @@ export default struct novelPage{ bookImage: item.bookImage, isJoin:item.isJoin, searchValue: this.searchValue, - isShowCheck:this.isShowCheck, - allCheck:this.allCheck, - checkBookList:this.checkBookList, - onDelete:(): void=>this.removeListByIndex(index) + onDelete:(): void=>this.removeListByIndex(item.bookId) }) }) } diff --git a/entry/src/main/ets/pages/view/bookShelf/soundPage.ets b/entry/src/main/ets/pages/view/bookShelf/soundPage.ets index a2055be1..a095fb30 100644 --- a/entry/src/main/ets/pages/view/bookShelf/soundPage.ets +++ b/entry/src/main/ets/pages/view/bookShelf/soundPage.ets @@ -4,34 +4,33 @@ import { promptAction } from '@kit.ArkUI' import BookInfoGrid from './BookInfoGrid' /** - * 漫画 + * 有书声 */ @Component export default struct soundPage{ @Prop searchValue:string - @Prop isShowCheck:boolean @Link @Watch('onIsClearChange') isClear:boolean @Prop currentIndex:number - @State lastIndex:number = 9999 + @State lastIndex:string = '9999' @Prop @Watch('onIsEXHIBITChange') EXHIBIT:string - @State cartoonList:BookList[] = [ - new BookList('三体广播据','729声工厂 · 第一季 第五集 红岸基地','共101集 · 最终季 最终集 回归大宇宙',$r('app.media.cover_list2')), - new BookList('三体广播据','729声工厂 · 第一季 第五集 红岸基地','共101集 · 最终季 最终集 回归大宇宙',$r('app.media.cover_list2')), - new BookList('三体广播据','729声工厂 · 第一季 第五集 红岸基地','共101集 · 最终季 最终集 回归大宇宙',$r('app.media.cover_list2')), - new BookList('三体广播据','729声工厂 · 第一季 第五集 红岸基地','共101集 · 最终季 最终集 回归大宇宙',$r('app.media.cover_list2')), - new BookList('三体广播据','729声工厂 · 第一季 第五集 红岸基地','共101集 · 最终季 最终集 回归大宇宙',$r('app.media.cover_list2')), - new BookList('三体广播据','729声工厂 · 第一季 第五集 红岸基地','共101集 · 最终季 最终集 回归大宇宙',$r('app.media.cover_list2')), - new BookList('三体广播据','729声工厂 · 第一季 第五集 红岸基地','共101集 · 最终季 最终集 回归大宇宙',$r('app.media.cover_list2')), - new BookList('三体广播据','729声工厂 · 第一季 第五集 红岸基地','共101集 · 最终季 最终集 回归大宇宙',$r('app.media.cover_list2')), - new BookList('三体广播据','729声工厂 · 第一季 第五集 红岸基地','共101集 · 最终季 最终集 回归大宇宙',$r('app.media.cover_list2')), - new BookList('三体广播据','729声工厂 · 第一季 第五集 红岸基地','共101集 · 最终季 最终集 回归大宇宙',$r('app.media.cover_list2')), - new BookList('三体广播据','729声工厂 · 第一季 第五集 红岸基地','共101集 · 最终季 最终集 回归大宇宙',$r('app.media.cover_list2')), - new BookList('三体广播据','729声工厂 · 第一季 第五集 红岸基地','共101集 · 最终季 最终集 回归大宇宙',$r('app.media.cover_list2')) + @State soundList:BookList[] = [ + new BookList('1','三体广播据','729声工厂 · 第一季 第五集 红岸基地','共101集 · 最终季 最终集 回归大宇宙',$r('app.media.cover_list2')), + new BookList('2','三体广播据','729声工厂 · 第一季 第五集 红岸基地','共101集 · 最终季 最终集 回归大宇宙',$r('app.media.cover_list2')), + new BookList('3','三体广播据','729声工厂 · 第一季 第五集 红岸基地','共101集 · 最终季 最终集 回归大宇宙',$r('app.media.cover_list2')), + new BookList('4','三体广播据','729声工厂 · 第一季 第五集 红岸基地','共101集 · 最终季 最终集 回归大宇宙',$r('app.media.cover_list2')), + new BookList('5','三体广播据','729声工厂 · 第一季 第五集 红岸基地','共101集 · 最终季 最终集 回归大宇宙',$r('app.media.cover_list2')), + new BookList('6','三体广播据','729声工厂 · 第一季 第五集 红岸基地','共101集 · 最终季 最终集 回归大宇宙',$r('app.media.cover_list2')), + new BookList('7','三体广播据','729声工厂 · 第一季 第五集 红岸基地','共101集 · 最终季 最终集 回归大宇宙',$r('app.media.cover_list2')), + new BookList('8','三体广播据','729声工厂 · 第一季 第五集 红岸基地','共101集 · 最终季 最终集 回归大宇宙',$r('app.media.cover_list2')), + new BookList('9','三体广播据','729声工厂 · 第一季 第五集 红岸基地','共101集 · 最终季 最终集 回归大宇宙',$r('app.media.cover_list2')), + new BookList('10','三体广播据','729声工厂 · 第一季 第五集 红岸基地','共101集 · 最终季 最终集 回归大宇宙',$r('app.media.cover_list2')), + new BookList('11','三体广播据','729声工厂 · 第一季 第五集 红岸基地','共101集 · 最终季 最终集 回归大宇宙',$r('app.media.cover_list2')), + new BookList('12','三体广播据','729声工厂 · 第一季 第五集 红岸基地','共101集 · 最终季 最终集 回归大宇宙',$r('app.media.cover_list2')) ] //监听isClear变化 onIsClearChange() { if (this.currentIndex === 2 && this.isClear) { - this.cartoonList = [] + this.soundList = [] this.isClear = false promptAction.showToast({ message: '清空成功', @@ -45,24 +44,24 @@ export default struct soundPage{ console.log(this.EXHIBIT) } - removeListByIndex(index:number){ - if (this.lastIndex === index) { + removeListByIndex(bookId:string){ + if (this.lastIndex === bookId) { return } - this.lastIndex = index - this.cartoonList.splice(index,1) + this.lastIndex = bookId + this.soundList = this.soundList.filter(book => book.bookId !== bookId); promptAction.showToast({ message: '删除成功', duration: 1000, }) //防止快速点击删除 setTimeout(()=>{ - this.lastIndex = 9999 + this.lastIndex = '9999' },500) } build() { - if (this.cartoonList === null || this.cartoonList.length === 0) { + if (this.soundList === null || this.soundList.length === 0) { Column() { Image($r('app.media.no_record')).width(200).height(200) Text('暂无浏览记录').fontSize(12).fontColor('rgba(96, 96, 96, 0.6)').fontWeight(500).padding(5) @@ -73,7 +72,7 @@ export default struct soundPage{ ){ if (this.EXHIBIT === '宫格' && this.searchValue !== '浏览历史') { Flex({ direction: FlexDirection.Row, wrap: FlexWrap.Wrap,alignContent:FlexAlign.Center}){ - ForEach(this.cartoonList, (item: BookList,index:number) => { + ForEach(this.soundList, (item: BookList,index:number) => { BookInfoGrid({ title: item.title + this.EXHIBIT, describe: item.describe, @@ -81,8 +80,7 @@ export default struct soundPage{ bookImage: item.bookImage, isJoin:item.isJoin, searchValue: this.searchValue, - isShowCheck:this.isShowCheck, - onDelete:(): void=>this.removeListByIndex(index) + onDelete:(): void=>this.removeListByIndex(item.bookId) }).width('33%') }) } @@ -90,7 +88,7 @@ export default struct soundPage{ Column( { space: 10 } ) { - ForEach(this.cartoonList, (item: BookList,index:number) => { + ForEach(this.soundList, (item: BookList,index:number) => { BookInfo({ title: item.title, describe: item.describe, @@ -98,9 +96,7 @@ export default struct soundPage{ bookImage: item.bookImage, isJoin:item.isJoin, searchValue: this.searchValue, - isShowCheck:this.isShowCheck, - checkBookList:[], - onDelete:(): void=>this.removeListByIndex(index) + onDelete:(): void=>this.removeListByIndex(item.bookId) }) }) }