소스 검색

Merge branch 'refs/heads/master' into stable

moshaorui 1 일 전
부모
커밋
cd17801097
1개의 변경된 파일22개의 추가작업 그리고 3개의 파일을 삭제
  1. 22 3
      app/Admin/Controllers/SiteAlbumController.php

+ 22 - 3
app/Admin/Controllers/SiteAlbumController.php

@@ -267,7 +267,7 @@ JS
                     $data = [];
                     foreach ($video as $value) {
                         if ($value['_remove_'] != 1){
-                            $data[] = ['cover'=>$value['cover'],'video_title'=>$value['video_title'],'video_en_title' => $value['video_en_title'],'video_src'=>$value['video_src']];
+                            $data[] = ['cover'=>$value['cover'],'video_title'=>$value['video_title'],'video_en_title' => $value['video_en_title'],'video_src'=>$value['video_src'],'order'=>$value['order']];
                         }
                     }
                     SitePreviewVideo::updatePreviewVideo($id,$data);
@@ -361,6 +361,11 @@ JS
                     $form->text('video_title',admin_trans_label('video_title'))->required();
                     $form->text('video_en_title',admin_trans_label('video_en_title'))->required();
                     $form->hidden('cover',admin_trans_label('video_cover'))->placeholder('自动生成')->readOnly();
+                    //排序
+                    $form->number('order')
+                        ->default(0)
+                        ->attribute('style','width:40px;')
+                        ->rules('numeric');
 
                     $form->tradFile('video_src')
                         ->retainable()//禁止删OSS图
@@ -374,13 +379,27 @@ JS
                         ->chunkSize(1024)
                         ->required();
                 })->useTable()
-                    ->customFormat(function ($data) {return json_decode($data,true);})
+                    ->customFormat(function ($data) {
+                        $arr =  json_decode($data,true);
+                        foreach ($arr as $key => $value) {
+                            if (isset($arr[$key]['order']) == false) {
+                                $arr[$key]['order'] = 0;
+                            }
+                        }
+                        // 按 order 字段对数组进行排序
+                        usort($arr, function($a, $b) {
+                            #return $a['order'] <=> $b['order']; // 升序排序
+                            // 如需降序排序:return $b['order'] <=> $a['order'];
+                            return $b['order'] <=> $a['order'];
+                        });
+                        return $arr;
+                    })
                     ->setView('admin.form_custom.hasmanytable')
                     ->saving(function ($input) {
                         $data = [];
                         foreach ($input as $value) {
                             if ($value['_remove_'] != 1){
-                                $data[] = ['cover'=>$value['cover'],'video_title'=>$value['video_title'],'video_en_title' => $value['video_en_title'],'video_src'=>$value['video_src']];
+                                $data[] = ['cover'=>$value['cover'],'video_title'=>$value['video_title'],'video_en_title' => $value['video_en_title'],'video_src'=>$value['video_src'],'order'=>$value['order']];
                             }
                         }
                         return json_encode($data);