Эх сурвалжийг харах

长按歌单的歌曲可以拖动排序后要保存排序

onecold 9 сар өмнө
parent
commit
c37a8f97f0

+ 7 - 5
entry/src/main/ets/pages/PlaylistDetailPage.ets

@@ -57,7 +57,7 @@ export struct PlaylistDetailPage {
   @State neighborScale: number = -1
   @State offsetY: number = 0
   private dragRefOffset: number = 0
-  private ITEM_INTV: number = 78
+  private ITEM_INTV: number = 70
   //播放列表的拖动List 重新排序
   @State sonDataSource: LazyDataSource<VideoItem> = new LazyDataSource(this.songList)
   scaleSelect(item: number): number {
@@ -70,14 +70,15 @@ export struct PlaylistDetailPage {
     }
   }
 
-
-  itemMove(index: number, newIndex: number): void {
+  async itemMove(index: number, newIndex: number): Promise<void> {
     if (newIndex < 0 || newIndex >= this.songList.length) {
       return;
     }
     let tmp = this.songList.splice(index, 1);
     this.songList.splice(newIndex, 0, tmp[0]);
     this.sonDataSource.pushArrayData(this.songList)
+    // 3. 更新数据库中的sortOrder
+    await this.updateAllSongsSortOrder()
   }
 
   aboutToAppear() {
@@ -1017,11 +1018,11 @@ export struct PlaylistDetailPage {
 
                 )
                   .onCancel(() => {
-                    animateTo({ curve: curves.interpolatingSpring(0, 1, 400, 38) }, () => {
+                    this.getUIContext().animateTo({ curve: curves.interpolatingSpring(0, 1, 400, 38) }, () => {
                       this.dragItem = -1
                       this.neighborItem = -1
                     })
-                    animateTo({
+                    this.getUIContext().animateTo({
                       curve: curves.interpolatingSpring(14, 1, 170, 17), delay: 150
                     }, () => {
                       this.scaleItem = -1
@@ -1297,6 +1298,7 @@ export struct PlaylistDetailPage {
 
     // 2. 触发UI更新
     this.songList = [...this.songList]
+    this.sonDataSource.pushArrayData(this.songList)
 
     // 3. 更新数据库中的sortOrder
     await this.updateAllSongsSortOrder()