添加点播信息建设内容
This commit is contained in:
parent
4f31bd50c3
commit
27ac801b33
53
app/Http/Controllers/ProgramAppendConstructController.php
Normal file
53
app/Http/Controllers/ProgramAppendConstructController.php
Normal file
@ -0,0 +1,53 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
namespace App\Http\Controllers;
|
||||||
|
|
||||||
|
use App\Models\ProgramAppends;
|
||||||
|
use App\Models\Programs;
|
||||||
|
use Illuminate\Http\Request;
|
||||||
|
use Illuminate\Routing\Controller as BaseController;
|
||||||
|
|
||||||
|
class ProgramAppendConstructController extends BaseController
|
||||||
|
{
|
||||||
|
public function construct(Request $request, Programs $program) {
|
||||||
|
return view("program.construct.append.index", [
|
||||||
|
"program" => $program,
|
||||||
|
"appends" => $program->appends,
|
||||||
|
]);
|
||||||
|
}
|
||||||
|
|
||||||
|
public function add(Request $request, Programs $program) {
|
||||||
|
return view("program.construct.append.create", [
|
||||||
|
"program" => $program,
|
||||||
|
"append" => new ProgramAppends()
|
||||||
|
]);
|
||||||
|
}
|
||||||
|
|
||||||
|
public function create(Request $request, Programs $program) {
|
||||||
|
$createPayload = $request->only(["name", "from", "price", "append"]);
|
||||||
|
$append = $program->appends()->create($createPayload);
|
||||||
|
$append->is_original = $request->post("is_original", 0);
|
||||||
|
$append->save();
|
||||||
|
return redirect(route("program.construct.append.list", [
|
||||||
|
"program"=>$program->id,
|
||||||
|
]));
|
||||||
|
}
|
||||||
|
|
||||||
|
public function edit(Request $request, Programs $program, ProgramAppends $append) {
|
||||||
|
return view("program.construct.append.create", [
|
||||||
|
"program" => $program,
|
||||||
|
"append" => $append
|
||||||
|
]);
|
||||||
|
}
|
||||||
|
|
||||||
|
public function submit(Request $request, Programs $program, ProgramAppends $append) {
|
||||||
|
$submitPayload = $request->only(["name", "from", "price", "append"]);
|
||||||
|
$append->update($submitPayload);
|
||||||
|
$append->is_original = $request->post("is_original", 0);
|
||||||
|
$append->save();
|
||||||
|
return redirect(route("program.construct.append.list", [
|
||||||
|
"program"=>$program->id,
|
||||||
|
]));
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
@ -6,5 +6,6 @@ use Illuminate\Database\Eloquent\Model;
|
|||||||
|
|
||||||
class ProgramAppends extends Model
|
class ProgramAppends extends Model
|
||||||
{
|
{
|
||||||
|
protected $fillable = ["name", "from", "price", "append"];
|
||||||
|
protected $dateFormat = "U";
|
||||||
}
|
}
|
||||||
|
@ -23,7 +23,7 @@ class ProgramVideos extends Model
|
|||||||
public function startSec(): Attribute
|
public function startSec(): Attribute
|
||||||
{
|
{
|
||||||
return Attribute::get(function ($_, $attributes) {
|
return Attribute::get(function ($_, $attributes) {
|
||||||
if (!$attributes['start_time']) {
|
if (!isset($attributes['start_time'])) {
|
||||||
return "";
|
return "";
|
||||||
}
|
}
|
||||||
return Carbon::createFromFormat("H:i:s", $attributes['start_time'])->secondsSinceMidnight();
|
return Carbon::createFromFormat("H:i:s", $attributes['start_time'])->secondsSinceMidnight();
|
||||||
@ -33,7 +33,7 @@ class ProgramVideos extends Model
|
|||||||
public function stopSec(): Attribute
|
public function stopSec(): Attribute
|
||||||
{
|
{
|
||||||
return Attribute::get(function ($_, $attributes) {
|
return Attribute::get(function ($_, $attributes) {
|
||||||
if (!$attributes['stop_time']) {
|
if (!isset($attributes['stop_time'])) {
|
||||||
return "";
|
return "";
|
||||||
}
|
}
|
||||||
return Carbon::createFromFormat("H:i:s", $attributes['stop_time'])->secondsSinceMidnight();
|
return Carbon::createFromFormat("H:i:s", $attributes['stop_time'])->secondsSinceMidnight();
|
||||||
|
@ -0,0 +1,58 @@
|
|||||||
|
<html lang="zh">
|
||||||
|
<head>
|
||||||
|
<meta charset="UTF-8">
|
||||||
|
<title>录播节目点播信息修改</title>
|
||||||
|
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
|
||||||
|
<link href="{{ asset('css/app.css') }}" rel="stylesheet"/>
|
||||||
|
</head>
|
||||||
|
<body>
|
||||||
|
@include("common.header")
|
||||||
|
<form class="w-full lg:w-1/2 lg:ml-6 border-2" action="" method="post" enctype="multipart/form-data">
|
||||||
|
<input type="hidden" name="id" value="{{$append->id}}">
|
||||||
|
<input type="hidden" name="program_id" value="{{$program->id}}">
|
||||||
|
@if($program->video_pivots->last()->stop_image)
|
||||||
|
<label class="block my-2">
|
||||||
|
结束图像
|
||||||
|
<img src="{{$program->video_pivots->last()->stop_image}}" alt="结束图片">
|
||||||
|
</label>
|
||||||
|
@endif
|
||||||
|
<label class="block my-2">
|
||||||
|
追加内容(点播可不填)
|
||||||
|
<input class="form-input border-0 border-b-2 w-full" type="text" name="name" value="{{$append->name}}">
|
||||||
|
</label>
|
||||||
|
<label class="block my-2">
|
||||||
|
点播老板
|
||||||
|
<input class="form-input border-0 border-b-2 w-full" type="text" name="from" value="{{$append->from}}">
|
||||||
|
</label>
|
||||||
|
<label class="block my-2">
|
||||||
|
是否点播(不是追加)
|
||||||
|
<input class="form-checkbox" type="checkbox" name="is_original" value="1" @if($append->is_original == 1) checked @endif>
|
||||||
|
</label>
|
||||||
|
<label class="block my-2">
|
||||||
|
分
|
||||||
|
<input class="form-input border-0 border-b-2 w-full" type="number" step="0.5" name="price" value="{{$append->price}}">
|
||||||
|
</label>
|
||||||
|
<label class="block my-2">
|
||||||
|
补充说明
|
||||||
|
<input class="form-input border-0 border-b-2 w-full" type="text" name="append" value="{{$append->append}}">
|
||||||
|
</label>
|
||||||
|
<div class="block my-2 text-center">
|
||||||
|
<input class="px-6 py-2 inline-block rounded-full bg-cyan-600 text-white" type="submit">
|
||||||
|
</div>
|
||||||
|
<div class="block my-2">
|
||||||
|
<a class="px-6 py-2 inline-block rounded-full bg-cyan-600 text-white" target="_blank"
|
||||||
|
href="https://www.bilibili.com/video/{{$program->video_pivots->first()->video_bvid}}?p={{$program->video_pivots->first()->start_part}}&t={{$program->video_pivots->first()->start_sec}}"
|
||||||
|
title="P{{$program->video_pivots->first()->start_part}}#{{$program->video_pivots->first()->start_time}}"
|
||||||
|
>打开至开始位置</a>
|
||||||
|
<a class="px-6 py-2 inline-block rounded-full bg-cyan-600 text-white" target="_blank"
|
||||||
|
href="https://www.bilibili.com/video/{{$program->video_pivots->last()->video_bvid}}?p={{$program->video_pivots->last()->stop_part}}&t={{$program->video_pivots->last()->stop_sec}}"
|
||||||
|
title="P{{$program->video_pivots->last()->stop_part}}#{{$program->video_pivots->last()->stop_time}}"
|
||||||
|
>打开至结束位置</a>
|
||||||
|
<a class="px-6 py-2 inline-block rounded-full bg-cyan-600 text-white"
|
||||||
|
href="{{route('program.construct.append.list', ['program'=>$program->id])}}"
|
||||||
|
>返回列表</a>
|
||||||
|
</div>
|
||||||
|
</form>
|
||||||
|
@include("common.footer")
|
||||||
|
</body>
|
||||||
|
</html>
|
@ -0,0 +1,66 @@
|
|||||||
|
<html lang="zh">
|
||||||
|
<head>
|
||||||
|
<meta charset="UTF-8">
|
||||||
|
<title>录播节目点播信息维护</title>
|
||||||
|
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
|
||||||
|
<link href="{{ asset('css/app.css') }}" rel="stylesheet"/>
|
||||||
|
</head>
|
||||||
|
<body>
|
||||||
|
@include("common.header")
|
||||||
|
<a href="{{route("program.construct.append.add", ["program"=>$program->id])}}">新增</a>
|
||||||
|
<table class="table-auto border-collapse w-full lg:border lg:border-black">
|
||||||
|
<thead>
|
||||||
|
<tr class="border border-black sticky bg-white lg:static top-0 left-0 right-0">
|
||||||
|
<td>老板</td>
|
||||||
|
<td>类型</td>
|
||||||
|
<td>要求</td>
|
||||||
|
<td>分值</td>
|
||||||
|
<td>补充说明</td>
|
||||||
|
</tr>
|
||||||
|
</thead>
|
||||||
|
<tbody>
|
||||||
|
@foreach($appends as $append)
|
||||||
|
<tr>
|
||||||
|
<td>
|
||||||
|
<a href="{{route("program.construct.append.edit", ["program"=>$append->program_id, "append"=>$append->id])}}">编辑</a>
|
||||||
|
@switch($append->platform_id)
|
||||||
|
@case(1)
|
||||||
|
<img class="w-4 h-4 inline-block" src="https://cdn.jerryyan.net/luboimg/bilibili.ico" alt="B站">
|
||||||
|
<a class="underline" href="https://space.bilibili.com/{{$append->from_mid}}" target="_blank">{{$append->from}}</a>
|
||||||
|
@break
|
||||||
|
@case(2)
|
||||||
|
<img class="w-4 h-4 inline-block" src="https://cdn.jerryyan.net/luboimg/ixigua.ico" alt="西瓜视频">
|
||||||
|
<a class="underline" href="https://www.ixigua.com/home/{{$append->from_mid}}/" target="_blank">{{$append->from}}</a>
|
||||||
|
@break
|
||||||
|
@case(3)
|
||||||
|
<img class="w-4 h-4 inline-block" src="https://cdn.jerryyan.net/luboimg/douyin.ico" alt="抖音">
|
||||||
|
{{$append->from}}
|
||||||
|
@break
|
||||||
|
@default
|
||||||
|
{{$append->from}}
|
||||||
|
@break
|
||||||
|
@endswitch
|
||||||
|
</td>
|
||||||
|
<td>
|
||||||
|
@if($append->is_original)
|
||||||
|
点播
|
||||||
|
@else
|
||||||
|
追加
|
||||||
|
@endif
|
||||||
|
</td>
|
||||||
|
<td>
|
||||||
|
@if($append->is_original)
|
||||||
|
点播
|
||||||
|
@else
|
||||||
|
{{$append->name}}
|
||||||
|
@endif
|
||||||
|
</td>
|
||||||
|
<td>{{$append->price}}</td>
|
||||||
|
<td>{{$append->append}}</td>
|
||||||
|
</tr>
|
||||||
|
@endforeach
|
||||||
|
</tbody>
|
||||||
|
</table>
|
||||||
|
@include("common.footer")
|
||||||
|
</body>
|
||||||
|
</html>
|
@ -37,6 +37,10 @@
|
|||||||
class="block px-6 py-2 inline-block rounded-full bg-cyan-600 text-white">
|
class="block px-6 py-2 inline-block rounded-full bg-cyan-600 text-white">
|
||||||
关联视频列表
|
关联视频列表
|
||||||
</a>
|
</a>
|
||||||
|
<a href="{{route("program.construct.append.list", ["program"=>$program->id])}}"
|
||||||
|
class="block px-6 py-2 inline-block rounded-full bg-cyan-600 text-white">
|
||||||
|
关联点播老板列表
|
||||||
|
</a>
|
||||||
</div>
|
</div>
|
||||||
</form>
|
</form>
|
||||||
<div class="w-full lg:w-1/2 lg:ml-6 flex justify-between px-4">
|
<div class="w-full lg:w-1/2 lg:ml-6 flex justify-between px-4">
|
||||||
|
@ -16,21 +16,22 @@
|
|||||||
<table class="table-auto border-collapse w-full lg:border lg:border-black">
|
<table class="table-auto border-collapse w-full lg:border lg:border-black">
|
||||||
<thead>
|
<thead>
|
||||||
<tr class="border border-black sticky bg-white lg:static top-0 left-0 right-0">
|
<tr class="border border-black sticky bg-white lg:static top-0 left-0 right-0">
|
||||||
<td>节目名称</td>
|
<th class="border border-black">节目名称</th>
|
||||||
<td>点播及追加</td>
|
<th class="border border-black">点播及追加</th>
|
||||||
<td>节目开始</td>
|
<th class="border border-black">节目开始</th>
|
||||||
<td>节目结束</td>
|
<th class="border border-black">节目结束</th>
|
||||||
</tr>
|
</tr>
|
||||||
</thead>
|
</thead>
|
||||||
<tbody>
|
<tbody>
|
||||||
@foreach($programs as $program)
|
@foreach($programs as $program)
|
||||||
<tr>
|
<tr>
|
||||||
<td>
|
<td class="border">
|
||||||
<span title="节目">{{$program->name}}</span>
|
<span title="节目">{{$program->name}}</span>
|
||||||
<span title="难度">{{$program->difficulty}}</span>
|
<span title="难度">{{$program->difficulty}}</span>
|
||||||
<span title="要求">{{$program->desc}}</span>
|
<span title="要求">{{$program->desc}}</span>
|
||||||
|
<a href="{{route("program.construct.edit", ["program"=>$program->id])}}" class="block">{{$program->created_at}}</a>
|
||||||
</td>
|
</td>
|
||||||
<td>
|
<td class="border">
|
||||||
@foreach($program->appends as $append)
|
@foreach($program->appends as $append)
|
||||||
@if($append->is_original)
|
@if($append->is_original)
|
||||||
<div>
|
<div>
|
||||||
@ -58,7 +59,7 @@
|
|||||||
@endif
|
@endif
|
||||||
</div>
|
</div>
|
||||||
@else
|
@else
|
||||||
<div>
|
<div class="my-2">
|
||||||
@switch($append->platform_id)
|
@switch($append->platform_id)
|
||||||
@case(1)
|
@case(1)
|
||||||
<img class="w-4 h-4 inline-block" src="https://cdn.jerryyan.net/luboimg/bilibili.ico" alt="B站">
|
<img class="w-4 h-4 inline-block" src="https://cdn.jerryyan.net/luboimg/bilibili.ico" alt="B站">
|
||||||
@ -84,8 +85,11 @@
|
|||||||
</div>
|
</div>
|
||||||
@endif
|
@endif
|
||||||
@endforeach
|
@endforeach
|
||||||
|
@if(sizeof($program->appends) === 0)
|
||||||
|
<a href="{{route('program.construct.append.list', ['program'=>$program->id])}}">去建设</a>
|
||||||
|
@endif
|
||||||
</td>
|
</td>
|
||||||
<td>
|
<td class="border">
|
||||||
@foreach($program->video_pivots as $video_pivot)
|
@foreach($program->video_pivots as $video_pivot)
|
||||||
<a
|
<a
|
||||||
target="_blank"
|
target="_blank"
|
||||||
@ -96,11 +100,12 @@
|
|||||||
<img width="300" src="{{$video_pivot->start_image}}" alt="开始时的画面">
|
<img width="300" src="{{$video_pivot->start_image}}" alt="开始时的画面">
|
||||||
@else
|
@else
|
||||||
节目开始位置
|
节目开始位置
|
||||||
|
<a href="{{route('program.construct.video.edit', ['program_video'=>$video_pivot->id])}}">去建设</a>
|
||||||
@endif
|
@endif
|
||||||
</a>
|
</a>
|
||||||
@endforeach
|
@endforeach
|
||||||
</td>
|
</td>
|
||||||
<td>
|
<td class="border">
|
||||||
@foreach($program->video_pivots as $video_pivot)
|
@foreach($program->video_pivots as $video_pivot)
|
||||||
@if($video_pivot->stop_part)
|
@if($video_pivot->stop_part)
|
||||||
<a
|
<a
|
||||||
@ -115,11 +120,7 @@
|
|||||||
@endif
|
@endif
|
||||||
</a>
|
</a>
|
||||||
@else
|
@else
|
||||||
@if($video_pivot->stop_image)
|
<a href="{{route('program.construct.video.edit', ['program_video'=>$video_pivot->id])}}">去建设</a>
|
||||||
<img width="300" src="{{$video_pivot->stop_image}}" alt="结束时的画面">
|
|
||||||
@else
|
|
||||||
<div>暂无</div>
|
|
||||||
@endif
|
|
||||||
@endif
|
@endif
|
||||||
@endforeach
|
@endforeach
|
||||||
</td>
|
</td>
|
||||||
|
@ -27,6 +27,7 @@ Route::get("/programs/construct/{program}/video", ["\\App\\Http\\Controllers\\Pr
|
|||||||
Route::get("/programs/construct/video/{program_video}", ["\\App\\Http\\Controllers\\ProgramVideoConstructController","edit"])->name("program.construct.video.edit");
|
Route::get("/programs/construct/video/{program_video}", ["\\App\\Http\\Controllers\\ProgramVideoConstructController","edit"])->name("program.construct.video.edit");
|
||||||
Route::post("/programs/construct/video/{program_video}", ["\\App\\Http\\Controllers\\ProgramVideoConstructController","submit"])->name("program.construct.video.submit");
|
Route::post("/programs/construct/video/{program_video}", ["\\App\\Http\\Controllers\\ProgramVideoConstructController","submit"])->name("program.construct.video.submit");
|
||||||
Route::get('/programs/construct/{program}/append', ["\\App\\Http\\Controllers\\ProgramAppendConstructController","construct"])->name("program.construct.append.list");
|
Route::get('/programs/construct/{program}/append', ["\\App\\Http\\Controllers\\ProgramAppendConstructController","construct"])->name("program.construct.append.list");
|
||||||
Route::post('/programs/construct/{program}/append', ["\\App\\Http\\Controllers\\ProgramAppendConstructController","create"])->name("program.construct.append.create");
|
Route::get('/programs/construct/{program}/append/add', ["\\App\\Http\\Controllers\\ProgramAppendConstructController","add"])->name("program.construct.append.add");
|
||||||
Route::get('/programs/construct/{program}/append/{program_append}', ["\\App\\Http\\Controllers\\ProgramAppendConstructController","edit"])->name("program.construct.append.edit");
|
Route::post('/programs/construct/{program}/append/add', ["\\App\\Http\\Controllers\\ProgramAppendConstructController","create"])->name("program.construct.append.create");
|
||||||
Route::post('/programs/construct/{program}/append/{program_append}', ["\\App\\Http\\Controllers\\ProgramAppendConstructController","submit"])->name("program.construct.append.submit");
|
Route::get('/programs/construct/{program}/append/{append}', ["\\App\\Http\\Controllers\\ProgramAppendConstructController","edit"])->name("program.construct.append.edit");
|
||||||
|
Route::post('/programs/construct/{program}/append/{append}', ["\\App\\Http\\Controllers\\ProgramAppendConstructController","submit"])->name("program.construct.append.submit");
|
||||||
|
Loading…
x
Reference in New Issue
Block a user