You've already forked lubo_comment_query
样式3
This commit is contained in:
@@ -1,70 +1,119 @@
|
||||
<html lang="zh">
|
||||
<head>
|
||||
<meta charset="UTF-8">
|
||||
<title>录播节目关联视频位置修改</title>
|
||||
<title>关联视频修改 - 录播查询</title>
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
|
||||
<link href="{{ mix('/css/app.css') }}" rel="stylesheet"/>
|
||||
</head>
|
||||
<body>
|
||||
<body class="bg-gray-50 dark:bg-gray-900 min-h-screen flex flex-col text-gray-900 dark:text-gray-100">
|
||||
@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="{{$program_video->id}}">
|
||||
<label class="block my-2">
|
||||
BVID
|
||||
<input class="form-input border-0 border-b-2 w-full" @if($program_video->video_bvid) disabled @endif type="text" name="video_bvid" value="{{ old("video_bvid", $program_video->video_bvid) }}">
|
||||
</label>
|
||||
<label class="block my-2">
|
||||
开始P数
|
||||
<input class="form-input border-0 border-b-2 w-full" type="number" name="start_part" value="{{ old("start_part", $program_video->start_part) }}">
|
||||
</label>
|
||||
<label class="block my-2">
|
||||
开始时间
|
||||
<input class="form-input border-0 border-b-2 w-full" step="1" type="time" name="start_time" value="{{ old("start_time", $program_video->start_time) }}">
|
||||
</label>
|
||||
<label class="block my-2">
|
||||
开始图像
|
||||
@if($program_video->start_image)
|
||||
<img src="{{$program_video->start_image}}" alt="开始图片">
|
||||
@endif
|
||||
<input class="form-input border-0 border-b-2 w-full" type="file" name="start_image">
|
||||
</label>
|
||||
<label class="block my-2">
|
||||
结束P数
|
||||
<input class="form-input border-0 border-b-2 w-full" type="number" name="stop_part" value="{{ old("stop_part", $program_video->stop_part) }}">
|
||||
</label>
|
||||
<label class="block my-2">
|
||||
结束时间
|
||||
<input class="form-input border-0 border-b-2 w-full" step="1" type="time" name="stop_time" value="{{ old("stop_time", $program_video->stop_time) }}">
|
||||
</label>
|
||||
<label class="block my-2">
|
||||
结束图像
|
||||
@if($program_video->stop_image)
|
||||
<img src="{{$program_video->stop_image}}" alt="结束图片">
|
||||
@endif
|
||||
<input class="form-input border-0 border-b-2 w-full" type="file" name="stop_image">
|
||||
</label>
|
||||
@include("common.form_error")
|
||||
<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>
|
||||
@if($program_video->video)
|
||||
<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->video_bvid}}?p={{$program_video->start_part}}&t={{$program_video->start_sec}}"
|
||||
title="P{{$program_video->start_part}}#{{$program_video->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->video_bvid}}?p={{$program_video->stop_part}}&t={{$program_video->stop_sec}}"
|
||||
title="P{{$program_video->stop_part}}#{{$program_video->stop_time}}"
|
||||
>打开至结束位置</a>
|
||||
@if($program_video->video->parts()->count() > 0)
|
||||
<a class="px-6 py-2 inline-block rounded-full bg-cyan-600 text-white"
|
||||
href="{{ url(route("program.construct.video.auto_fix_created_at", ["bvid" => $program_video->video_bvid])) }}"
|
||||
>自动修复</a>
|
||||
|
||||
<main class="flex-grow container mx-auto px-4 sm:px-6 lg:px-8 py-8">
|
||||
<div class="max-w-3xl mx-auto">
|
||||
<div class="md:flex md:items-center md:justify-between mb-8">
|
||||
<h1 class="text-2xl font-bold text-gray-900 dark:text-white">
|
||||
关联视频修改
|
||||
</h1>
|
||||
<a href="{{ route("program.construct.video.list", ["program" => $program_video->program_id]) }}" class="mt-4 md:mt-0 inline-flex items-center text-sm text-gray-500 hover:text-gray-700 dark:text-gray-400 dark:hover:text-gray-200">
|
||||
<svg class="h-4 w-4 mr-1" fill="none" stroke="currentColor" viewBox="0 0 24 24"><path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M10 19l-7-7m0 0l7-7m-7 7h18"></path></svg>
|
||||
返回列表
|
||||
</a>
|
||||
</div>
|
||||
|
||||
<div class="bg-white dark:bg-gray-800 shadow rounded-lg overflow-hidden">
|
||||
<form class="p-6 space-y-6" action="" method="post" enctype="multipart/form-data">
|
||||
@csrf
|
||||
<input type="hidden" name="id" value="{{$program_video->id}}">
|
||||
|
||||
<div class="grid grid-cols-1 md:grid-cols-2 gap-6">
|
||||
<div class="col-span-1 md:col-span-2">
|
||||
<label for="video_bvid" class="block text-sm font-medium text-gray-700 dark:text-gray-300">BVID</label>
|
||||
<div class="mt-1 flex rounded-md shadow-sm">
|
||||
<input type="text" name="video_bvid" id="video_bvid" @if($program_video->video_bvid) disabled @endif value="{{ old("video_bvid", $program_video->video_bvid) }}"
|
||||
class="flex-1 min-w-0 block w-full px-3 py-2 rounded-md border-gray-300 dark:border-gray-600 dark:bg-gray-700 dark:text-white focus:ring-indigo-500 focus:border-indigo-500 sm:text-sm">
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<!-- Start Section -->
|
||||
<div class="col-span-1 space-y-4 p-4 bg-gray-50 dark:bg-gray-700/30 rounded-lg border border-gray-200 dark:border-gray-600">
|
||||
<h3 class="text-sm font-semibold text-gray-900 dark:text-white uppercase tracking-wider">开始节点</h3>
|
||||
<div>
|
||||
<label for="start_part" class="block text-sm font-medium text-gray-700 dark:text-gray-300">P数</label>
|
||||
<input type="number" name="start_part" id="start_part" value="{{ old("start_part", $program_video->start_part) }}"
|
||||
class="mt-1 block w-full rounded-md border-gray-300 dark:border-gray-600 dark:bg-gray-700 shadow-sm focus:border-indigo-500 focus:ring-indigo-500 sm:text-sm py-2">
|
||||
</div>
|
||||
<div>
|
||||
<label for="start_time" class="block text-sm font-medium text-gray-700 dark:text-gray-300">时间点</label>
|
||||
<input type="time" step="1" name="start_time" id="start_time" value="{{ old("start_time", $program_video->start_time) }}"
|
||||
class="mt-1 block w-full rounded-md border-gray-300 dark:border-gray-600 dark:bg-gray-700 shadow-sm focus:border-indigo-500 focus:ring-indigo-500 sm:text-sm py-2">
|
||||
</div>
|
||||
<div>
|
||||
<label class="block text-sm font-medium text-gray-700 dark:text-gray-300">预览图</label>
|
||||
@if($program_video->start_image)
|
||||
<img src="{{$program_video->start_image}}" alt="Start" class="mt-2 h-32 w-full object-cover rounded-md border border-gray-300 dark:border-gray-600">
|
||||
@endif
|
||||
<input type="file" name="start_image" class="mt-2 block w-full text-sm text-gray-500 file:mr-4 file:py-2 file:px-4 file:rounded-full file:border-0 file:text-sm file:font-semibold file:bg-indigo-50 file:text-indigo-700 hover:file:bg-indigo-100 dark:file:bg-indigo-900 dark:file:text-indigo-300">
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<!-- Stop Section -->
|
||||
<div class="col-span-1 space-y-4 p-4 bg-gray-50 dark:bg-gray-700/30 rounded-lg border border-gray-200 dark:border-gray-600">
|
||||
<h3 class="text-sm font-semibold text-gray-900 dark:text-white uppercase tracking-wider">结束节点</h3>
|
||||
<div>
|
||||
<label for="stop_part" class="block text-sm font-medium text-gray-700 dark:text-gray-300">P数</label>
|
||||
<input type="number" name="stop_part" id="stop_part" value="{{ old("stop_part", $program_video->stop_part) }}"
|
||||
class="mt-1 block w-full rounded-md border-gray-300 dark:border-gray-600 dark:bg-gray-700 shadow-sm focus:border-indigo-500 focus:ring-indigo-500 sm:text-sm py-2">
|
||||
</div>
|
||||
<div>
|
||||
<label for="stop_time" class="block text-sm font-medium text-gray-700 dark:text-gray-300">时间点</label>
|
||||
<input type="time" step="1" name="stop_time" id="stop_time" value="{{ old("stop_time", $program_video->stop_time) }}"
|
||||
class="mt-1 block w-full rounded-md border-gray-300 dark:border-gray-600 dark:bg-gray-700 shadow-sm focus:border-indigo-500 focus:ring-indigo-500 sm:text-sm py-2">
|
||||
</div>
|
||||
<div>
|
||||
<label class="block text-sm font-medium text-gray-700 dark:text-gray-300">预览图</label>
|
||||
@if($program_video->stop_image)
|
||||
<img src="{{$program_video->stop_image}}" alt="Stop" class="mt-2 h-32 w-full object-cover rounded-md border border-gray-300 dark:border-gray-600">
|
||||
@endif
|
||||
<input type="file" name="stop_image" class="mt-2 block w-full text-sm text-gray-500 file:mr-4 file:py-2 file:px-4 file:rounded-full file:border-0 file:text-sm file:font-semibold file:bg-indigo-50 file:text-indigo-700 hover:file:bg-indigo-100 dark:file:bg-indigo-900 dark:file:text-indigo-300">
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
@include("common.form_error")
|
||||
|
||||
<div class="flex items-center justify-end pt-4 border-t border-gray-200 dark:border-gray-700">
|
||||
<button type="submit" class="inline-flex justify-center py-2 px-6 border border-transparent shadow-sm text-sm font-medium rounded-md text-white bg-indigo-600 hover:bg-indigo-700 focus:outline-none focus:ring-2 focus:ring-offset-2 focus:ring-indigo-500">
|
||||
保存修改
|
||||
</button>
|
||||
</div>
|
||||
</form>
|
||||
</div>
|
||||
|
||||
@if($program_video->video)
|
||||
<div class="mt-6 flex flex-wrap gap-4 justify-center md:justify-start">
|
||||
<a class="inline-flex items-center px-4 py-2 border border-gray-300 dark:border-gray-600 shadow-sm text-sm font-medium rounded-md text-gray-700 dark:text-gray-200 bg-white dark:bg-gray-800 hover:bg-gray-50 dark:hover:bg-gray-700 focus:outline-none focus:ring-2 focus:ring-offset-2 focus:ring-indigo-500"
|
||||
target="_blank"
|
||||
href="https://www.bilibili.com/video/{{$program_video->video_bvid}}?p={{$program_video->start_part}}&t={{$program_video->start_sec}}">
|
||||
<svg class="h-4 w-4 mr-2" fill="none" stroke="currentColor" viewBox="0 0 24 24"><path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M14.752 11.168l-3.197-2.132A1 1 0 0010 9.87v4.263a1 1 0 001.555.832l3.197-2.132a1 1 0 000-1.664z"></path><path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M21 12a9 9 0 11-18 0 9 9 0 0118 0z"></path></svg>
|
||||
预览开始位置
|
||||
</a>
|
||||
<a class="inline-flex items-center px-4 py-2 border border-gray-300 dark:border-gray-600 shadow-sm text-sm font-medium rounded-md text-gray-700 dark:text-gray-200 bg-white dark:bg-gray-800 hover:bg-gray-50 dark:hover:bg-gray-700 focus:outline-none focus:ring-2 focus:ring-offset-2 focus:ring-indigo-500"
|
||||
target="_blank"
|
||||
href="https://www.bilibili.com/video/{{$program_video->video_bvid}}?p={{$program_video->stop_part}}&t={{$program_video->stop_sec}}">
|
||||
<svg class="h-4 w-4 mr-2" fill="none" stroke="currentColor" viewBox="0 0 24 24"><path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M21 12a9 9 0 11-18 0 9 9 0 0118 0z"></path><path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M9 10a1 1 0 011-1h4a1 1 0 011 1v4a1 1 0 01-1 1h-4a1 1 0 01-1-1v-4z"></path></svg>
|
||||
预览结束位置
|
||||
</a>
|
||||
@if($program_video->video->parts()->count() > 0)
|
||||
<a class="inline-flex items-center px-4 py-2 border border-transparent shadow-sm text-sm font-medium rounded-md text-white bg-green-600 hover:bg-green-700 focus:outline-none focus:ring-2 focus:ring-offset-2 focus:ring-green-500"
|
||||
href="{{ url(route("program.construct.video.auto_fix_created_at", ["bvid" => $program_video->video_bvid])) }}">
|
||||
<svg class="h-4 w-4 mr-2" fill="none" stroke="currentColor" viewBox="0 0 24 24"><path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M12 8v4l3 3m6-3a9 9 0 11-18 0 9 9 0 0118 0z"></path></svg>
|
||||
自动修复时间
|
||||
</a>
|
||||
@endif
|
||||
</div>
|
||||
@endif
|
||||
</div>
|
||||
@endif
|
||||
</form>
|
||||
</main>
|
||||
@include("common.footer")
|
||||
</body>
|
||||
</html>
|
||||
</html>
|
||||
@@ -1,64 +1,95 @@
|
||||
<html lang="zh">
|
||||
<head>
|
||||
<meta charset="UTF-8">
|
||||
<title>录播节目关联视频位置查询</title>
|
||||
<title>关联视频管理 - 录播查询</title>
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
|
||||
<link href="{{ mix('/css/app.css') }}" rel="stylesheet"/>
|
||||
</head>
|
||||
<body>
|
||||
<body class="bg-gray-50 dark:bg-gray-900 min-h-screen flex flex-col text-gray-900 dark:text-gray-100">
|
||||
@include("common.header")
|
||||
<div class="block my-2">
|
||||
<a class="px-6 py-2 inline-block rounded-full bg-cyan-600 text-white"
|
||||
href="{{ route("program.construct.video.add", ["program"=>$program->id]) }}">添加</a>
|
||||
</div>
|
||||
<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>BVID</td>
|
||||
<td>节目开始时间</td>
|
||||
<td>节目开始时的画面</td>
|
||||
<td>节目结束时的画面</td>
|
||||
<td>操作</td>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
@foreach($videos as $video_pivot)
|
||||
<tr>
|
||||
<td>
|
||||
<a class="underline" target="_blank"
|
||||
href="https://www.bilibili.com/video/{{$video_pivot->video_bvid}}?p={{$video_pivot->start_part}}&t={{$video_pivot->start_sec}}"
|
||||
title="P{{$video_pivot->start_part}}#{{$video_pivot->start_time}}"
|
||||
>{{$video_pivot->video_bvid}}</a>
|
||||
</td>
|
||||
<td>{{$video_pivot->created_at}}</td>
|
||||
<td>
|
||||
<x-links.video_link :bvid="$video_pivot->video_bvid" :part="$video_pivot->start_part" :time="$video_pivot->start_time">
|
||||
<div>{{$video_pivot->created_at}} P{{$video_pivot->start_part}}#{{$video_pivot->start_time}}</div>
|
||||
@if($video_pivot->start_image)
|
||||
<img width="300" src="{{$video_pivot->start_image}}" alt="开始时的画面">
|
||||
@else
|
||||
节目开始位置
|
||||
@endif
|
||||
</x-links.video_link>
|
||||
</td>
|
||||
<td>
|
||||
<x-links.video_link :bvid="$video_pivot->video_bvid" :part="$video_pivot->stop_part" :time="$video_pivot->stop_time">
|
||||
<div>P{{$video_pivot->stop_part}}#{{$video_pivot->stop_time}}</div>
|
||||
@if($video_pivot->start_image)
|
||||
<img width="300" src="{{$video_pivot->stop_image}}" alt="结束时的画面">
|
||||
@else
|
||||
节目结束位置
|
||||
@endif
|
||||
</x-links.video_link>
|
||||
</td>
|
||||
<td>
|
||||
<a class="text-blue-600 underline"
|
||||
href="{{route("program.construct.video.edit", ["program_video" => $video_pivot->id])}}">编辑</a>
|
||||
</td>
|
||||
</tr>
|
||||
@endforeach
|
||||
</tbody>
|
||||
</table>
|
||||
|
||||
<main class="flex-grow container mx-auto px-4 sm:px-6 lg:px-8 py-8">
|
||||
<div class="max-w-7xl mx-auto">
|
||||
<div class="flex flex-col md:flex-row md:items-center md:justify-between mb-8 space-y-4 md:space-y-0">
|
||||
<div>
|
||||
<h1 class="text-2xl font-bold text-gray-900 dark:text-white">关联视频管理</h1>
|
||||
<p class="mt-1 text-sm text-gray-500 dark:text-gray-400">
|
||||
当前节目:{{ $program->name }}
|
||||
</p>
|
||||
</div>
|
||||
<div class="flex space-x-3">
|
||||
<a href="{{ route("program.construct.edit", ["program"=>$program->id]) }}" class="inline-flex items-center px-4 py-2 border border-gray-300 dark:border-gray-600 rounded-md shadow-sm text-sm font-medium text-gray-700 dark:text-gray-200 bg-white dark:bg-gray-800 hover:bg-gray-50 dark:hover:bg-gray-700 focus:outline-none focus:ring-2 focus:ring-offset-2 focus:ring-indigo-500">
|
||||
<svg class="h-4 w-4 mr-1.5" fill="none" stroke="currentColor" viewBox="0 0 24 24"><path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M11 17l-5-5m0 0l5-5m-5 5h12"></path></svg>
|
||||
返回节目
|
||||
</a>
|
||||
<a href="{{ route("program.construct.video.add", ["program"=>$program->id]) }}" class="inline-flex items-center px-4 py-2 border border-transparent rounded-md shadow-sm text-sm font-medium text-white bg-indigo-600 hover:bg-indigo-700 focus:outline-none focus:ring-2 focus:ring-offset-2 focus:ring-indigo-500">
|
||||
<svg class="h-4 w-4 mr-1.5" fill="none" stroke="currentColor" viewBox="0 0 24 24"><path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M12 4v16m8-8H4"></path></svg>
|
||||
添加关联视频
|
||||
</a>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="bg-white dark:bg-gray-800 shadow overflow-hidden rounded-lg">
|
||||
<div class="overflow-x-auto">
|
||||
<table class="min-w-full divide-y divide-gray-200 dark:divide-gray-700">
|
||||
<thead class="bg-gray-50 dark:bg-gray-700">
|
||||
<tr>
|
||||
<th scope="col" class="px-6 py-3 text-left text-xs font-medium text-gray-500 dark:text-gray-300 uppercase tracking-wider">BVID</th>
|
||||
<th scope="col" class="px-6 py-3 text-left text-xs font-medium text-gray-500 dark:text-gray-300 uppercase tracking-wider">开始时间</th>
|
||||
<th scope="col" class="px-6 py-3 text-left text-xs font-medium text-gray-500 dark:text-gray-300 uppercase tracking-wider">开始画面</th>
|
||||
<th scope="col" class="px-6 py-3 text-left text-xs font-medium text-gray-500 dark:text-gray-300 uppercase tracking-wider">结束画面</th>
|
||||
<th scope="col" class="px-6 py-3 text-left text-xs font-medium text-gray-500 dark:text-gray-300 uppercase tracking-wider">操作</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody class="bg-white dark:bg-gray-800 divide-y divide-gray-200 dark:divide-gray-700">
|
||||
@foreach($videos as $video_pivot)
|
||||
<tr class="hover:bg-gray-50 dark:hover:bg-gray-700 transition-colors">
|
||||
<td class="px-6 py-4 whitespace-nowrap text-sm font-medium">
|
||||
<a class="text-indigo-600 hover:text-indigo-900 dark:text-indigo-400 dark:hover:text-indigo-300 flex items-center"
|
||||
target="_blank"
|
||||
href="https://www.bilibili.com/video/{{$video_pivot->video_bvid}}?p={{$video_pivot->start_part}}&t={{$video_pivot->start_sec}}"
|
||||
title="P{{$video_pivot->start_part}}#{{$video_pivot->start_time}}">
|
||||
{{$video_pivot->video_bvid}}
|
||||
<svg class="h-4 w-4 ml-1 text-gray-400" fill="none" stroke="currentColor" viewBox="0 0 24 24"><path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M10 6H6a2 2 0 00-2 2v10a2 2 0 002 2h10a2 2 0 002-2v-4M14 4h6m0 0v6m0-6L10 14"></path></svg>
|
||||
</a>
|
||||
</td>
|
||||
<td class="px-6 py-4 whitespace-nowrap text-sm text-gray-500 dark:text-gray-400">
|
||||
{{$video_pivot->created_at}}
|
||||
</td>
|
||||
<td class="px-6 py-4 align-top text-sm">
|
||||
<x-links.video_link :bvid="$video_pivot->video_bvid" :part="$video_pivot->start_part" :time="$video_pivot->start_time">
|
||||
<div class="text-xs text-gray-500 mb-1">P{{$video_pivot->start_part}}#{{$video_pivot->start_time}}</div>
|
||||
@if($video_pivot->start_image)
|
||||
<img loading="lazy" class="h-20 w-32 object-cover rounded border border-gray-200 dark:border-gray-600" src="{{$video_pivot->start_image}}" alt="Start">
|
||||
@else
|
||||
<span class="text-xs text-gray-400 italic">无预览</span>
|
||||
@endif
|
||||
</x-links.video_link>
|
||||
</td>
|
||||
<td class="px-6 py-4 align-top text-sm">
|
||||
<x-links.video_link :bvid="$video_pivot->video_bvid" :part="$video_pivot->stop_part" :time="$video_pivot->stop_time">
|
||||
<div class="text-xs text-gray-500 mb-1">P{{$video_pivot->stop_part}}#{{$video_pivot->stop_time}}</div>
|
||||
@if($video_pivot->start_image)
|
||||
<img loading="lazy" class="h-20 w-32 object-cover rounded border border-gray-200 dark:border-gray-600" src="{{$video_pivot->stop_image}}" alt="End">
|
||||
@else
|
||||
<span class="text-xs text-gray-400 italic">无预览</span>
|
||||
@endif
|
||||
</x-links.video_link>
|
||||
</td>
|
||||
<td class="px-6 py-4 whitespace-nowrap text-sm font-medium">
|
||||
<a class="text-indigo-600 hover:text-indigo-900 dark:text-indigo-400 dark:hover:text-indigo-300"
|
||||
href="{{route("program.construct.video.edit", ["program_video" => $video_pivot->id])}}">
|
||||
编辑
|
||||
</a>
|
||||
</td>
|
||||
</tr>
|
||||
@endforeach
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</main>
|
||||
@include("common.footer")
|
||||
</body>
|
||||
</html>
|
||||
</html>
|
||||
@@ -1,40 +1,85 @@
|
||||
<html lang="zh">
|
||||
<head>
|
||||
<meta charset="UTF-8">
|
||||
<title>录播节目关联视频位置修改</title>
|
||||
<title>时间基准修复 - 录播查询</title>
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
|
||||
<link href="{{ mix('/css/app.css') }}" rel="stylesheet"/>
|
||||
</head>
|
||||
<body>
|
||||
<body class="bg-gray-50 dark:bg-gray-900 min-h-screen flex flex-col text-gray-900 dark:text-gray-100">
|
||||
@include("common.header")
|
||||
<form class="w-full lg:w-1/2 lg:ml-6 border-2" action="" method="post" enctype="multipart/form-data">
|
||||
<div class="text-lg font-bold">时间基准信息</div>
|
||||
<input type="hidden" name="id" value="{{$program_video->id}}">
|
||||
<label class="block my-2">
|
||||
BVID
|
||||
<input class="form-input border-0 border-b-2 w-full" disabled type="text" name="video_bvid" value="{{ $program_video->video_bvid }}">
|
||||
</label>
|
||||
<label class="block my-2">
|
||||
开始P数
|
||||
<input class="form-input border-0 border-b-2 w-full" disabled type="number" name="start_part" value="{{ $program_video->start_part }}">
|
||||
</label>
|
||||
<label class="block my-2">
|
||||
开始时间
|
||||
<input class="form-input border-0 border-b-2 w-full" disabled step="1" type="time" name="start_time" value="{{ $program_video->start_time }}">
|
||||
</label>
|
||||
<label class="block my-2">
|
||||
节目开打时间
|
||||
<input class="form-input border-0 border-b-2 w-full" disabled type="datetime-local" step="1" name="created_at" value="{{ $program_video->created_at }}">
|
||||
</label>
|
||||
<label class="block my-2">
|
||||
每P时间
|
||||
<input class="form-input border-0 border-b-2 w-full" type="time" step="1" name="each_time" value="{{ old("each_time") }}">
|
||||
</label>
|
||||
@include("common.form_error")
|
||||
<div class="block my-2 text-center">
|
||||
<input class="px-6 py-2 inline-block rounded-full bg-cyan-600 text-white" type="submit" value="修复该录播下的所有节目开始时间">
|
||||
|
||||
<main class="flex-grow container mx-auto px-4 sm:px-6 lg:px-8 py-8">
|
||||
<div class="max-w-2xl mx-auto">
|
||||
<div class="md:flex md:items-center md:justify-between mb-8">
|
||||
<h1 class="text-2xl font-bold text-gray-900 dark:text-white">
|
||||
时间基准修复
|
||||
</h1>
|
||||
<a href="{{ url()->previous() }}" class="mt-4 md:mt-0 inline-flex items-center text-sm text-gray-500 hover:text-gray-700 dark:text-gray-400 dark:hover:text-gray-200">
|
||||
<svg class="h-4 w-4 mr-1" fill="none" stroke="currentColor" viewBox="0 0 24 24"><path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M10 19l-7-7m0 0l7-7m-7 7h18"></path></svg>
|
||||
返回
|
||||
</a>
|
||||
</div>
|
||||
|
||||
<div class="bg-white dark:bg-gray-800 shadow rounded-lg overflow-hidden">
|
||||
<div class="px-6 py-4 bg-blue-50 dark:bg-blue-900/30 border-b border-blue-100 dark:border-blue-900/50">
|
||||
<div class="flex">
|
||||
<div class="flex-shrink-0">
|
||||
<svg class="h-5 w-5 text-blue-400" viewBox="0 0 20 20" fill="currentColor">
|
||||
<path fill-rule="evenodd" d="M18 10a8 8 0 11-16 0 8 8 0 0116 0zm-7-4a1 1 0 11-2 0 1 1 0 012 0zM9 9a1 1 0 000 2v3a1 1 0 001 1h1a1 1 0 100-2v-3a1 1 0 00-1-1H9z" clip-rule="evenodd" />
|
||||
</svg>
|
||||
</div>
|
||||
<div class="ml-3 flex-1 md:flex md:justify-between">
|
||||
<p class="text-sm text-blue-700 dark:text-blue-300">
|
||||
此操作将基于当前设定的时间点,批量修复该 BVID 下所有关联节目的开始时间。
|
||||
</p>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<form class="p-6 space-y-6" action="" method="post" enctype="multipart/form-data">
|
||||
@csrf
|
||||
<input type="hidden" name="id" value="{{$program_video->id}}">
|
||||
|
||||
<div class="grid grid-cols-1 md:grid-cols-2 gap-6">
|
||||
<div>
|
||||
<label class="block text-sm font-medium text-gray-700 dark:text-gray-300">BVID</label>
|
||||
<input type="text" disabled value="{{ $program_video->video_bvid }}"
|
||||
class="mt-1 block w-full rounded-md border-gray-300 dark:border-gray-600 dark:bg-gray-700 bg-gray-50 dark:text-gray-400 shadow-sm sm:text-sm py-2">
|
||||
</div>
|
||||
<div>
|
||||
<label class="block text-sm font-medium text-gray-700 dark:text-gray-300">参考 P 数</label>
|
||||
<input type="number" disabled value="{{ $program_video->start_part }}"
|
||||
class="mt-1 block w-full rounded-md border-gray-300 dark:border-gray-600 dark:bg-gray-700 bg-gray-50 dark:text-gray-400 shadow-sm sm:text-sm py-2">
|
||||
</div>
|
||||
<div>
|
||||
<label class="block text-sm font-medium text-gray-700 dark:text-gray-300">参考时间点</label>
|
||||
<input type="time" disabled step="1" value="{{ $program_video->start_time }}"
|
||||
class="mt-1 block w-full rounded-md border-gray-300 dark:border-gray-600 dark:bg-gray-700 bg-gray-50 dark:text-gray-400 shadow-sm sm:text-sm py-2">
|
||||
</div>
|
||||
<div>
|
||||
<label class="block text-sm font-medium text-gray-700 dark:text-gray-300">节目实际开始时间</label>
|
||||
<input type="datetime-local" step="1" disabled value="{{ date('Y-m-d\TH:i:s', strtotime($program_video->created_at)) }}"
|
||||
class="mt-1 block w-full rounded-md border-gray-300 dark:border-gray-600 dark:bg-gray-700 bg-gray-50 dark:text-gray-400 shadow-sm sm:text-sm py-2">
|
||||
</div>
|
||||
<div class="md:col-span-2">
|
||||
<label for="each_time" class="block text-sm font-medium text-gray-700 dark:text-gray-300">每 P 均分时长 (可选)</label>
|
||||
<input type="time" step="1" name="each_time" id="each_time" value="{{ old("each_time") }}"
|
||||
class="mt-1 block w-full rounded-md border-gray-300 dark:border-gray-600 dark:bg-gray-700 shadow-sm focus:border-indigo-500 focus:ring-indigo-500 sm:text-sm py-2">
|
||||
<p class="mt-1 text-xs text-gray-500 dark:text-gray-400">若不填写,将自动尝试计算或使用默认值。</p>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
@include("common.form_error")
|
||||
|
||||
<div class="flex items-center justify-end pt-4 border-t border-gray-200 dark:border-gray-700">
|
||||
<button type="submit" class="inline-flex justify-center py-2 px-6 border border-transparent shadow-sm text-sm font-medium rounded-md text-white bg-indigo-600 hover:bg-indigo-700 focus:outline-none focus:ring-2 focus:ring-offset-2 focus:ring-indigo-500">
|
||||
执行修复
|
||||
</button>
|
||||
</div>
|
||||
</form>
|
||||
</div>
|
||||
</div>
|
||||
</form>
|
||||
</main>
|
||||
@include("common.footer")
|
||||
</body>
|
||||
</html>
|
||||
</html>
|
||||
@@ -1,40 +1,85 @@
|
||||
<html lang="zh">
|
||||
<head>
|
||||
<meta charset="UTF-8">
|
||||
<title>录播节目关联视频位置修改</title>
|
||||
<title>时间基准修复 - 录播查询</title>
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
|
||||
<link href="{{ mix('/css/app.css') }}" rel="stylesheet"/>
|
||||
</head>
|
||||
<body>
|
||||
<body class="bg-gray-50 dark:bg-gray-900 min-h-screen flex flex-col text-gray-900 dark:text-gray-100">
|
||||
@include("common.header")
|
||||
<form class="w-full lg:w-1/2 lg:ml-6 border-2" action="" method="post" enctype="multipart/form-data">
|
||||
<div class="text-lg font-bold">时间基准信息</div>
|
||||
<input type="hidden" name="id" value="{{$program_video->id}}">
|
||||
<label class="block my-2">
|
||||
BVID
|
||||
<input class="form-input border-0 border-b-2 w-full" disabled type="text" name="video_bvid" value="{{ $program_video->video_bvid }}">
|
||||
</label>
|
||||
<label class="block my-2">
|
||||
开始P数
|
||||
<input class="form-input border-0 border-b-2 w-full" disabled type="number" name="start_part" value="{{ $program_video->start_part }}">
|
||||
</label>
|
||||
<label class="block my-2">
|
||||
开始时间
|
||||
<input class="form-input border-0 border-b-2 w-full" disabled step="1" type="time" name="start_time" value="{{ $program_video->start_time }}">
|
||||
</label>
|
||||
<label class="block my-2">
|
||||
节目开打时间
|
||||
<input class="form-input border-0 border-b-2 w-full" disabled type="datetime-local" step="1" name="created_at" value="{{ $program_video->created_at }}">
|
||||
</label>
|
||||
<label class="block my-2">
|
||||
每P时间
|
||||
<input class="form-input border-0 border-b-2 w-full" type="time" step="1" name="each_time" value="{{ old("each_time") }}">
|
||||
</label>
|
||||
@include("common.form_error")
|
||||
<div class="block my-2 text-center">
|
||||
<input class="px-6 py-2 inline-block rounded-full bg-cyan-600 text-white" type="submit" value="修复该录播下的所有节目开始时间">
|
||||
|
||||
<main class="flex-grow container mx-auto px-4 sm:px-6 lg:px-8 py-8">
|
||||
<div class="max-w-2xl mx-auto">
|
||||
<div class="md:flex md:items-center md:justify-between mb-8">
|
||||
<h1 class="text-2xl font-bold text-gray-900 dark:text-white">
|
||||
时间基准修复
|
||||
</h1>
|
||||
<a href="{{ url()->previous() }}" class="mt-4 md:mt-0 inline-flex items-center text-sm text-gray-500 hover:text-gray-700 dark:text-gray-400 dark:hover:text-gray-200">
|
||||
<svg class="h-4 w-4 mr-1" fill="none" stroke="currentColor" viewBox="0 0 24 24"><path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M10 19l-7-7m0 0l7-7m-7 7h18"></path></svg>
|
||||
返回
|
||||
</a>
|
||||
</div>
|
||||
|
||||
<div class="bg-white dark:bg-gray-800 shadow rounded-lg overflow-hidden">
|
||||
<div class="px-6 py-4 bg-blue-50 dark:bg-blue-900/30 border-b border-blue-100 dark:border-blue-900/50">
|
||||
<div class="flex">
|
||||
<div class="flex-shrink-0">
|
||||
<svg class="h-5 w-5 text-blue-400" viewBox="0 0 20 20" fill="currentColor">
|
||||
<path fill-rule="evenodd" d="M18 10a8 8 0 11-16 0 8 8 0 0116 0zm-7-4a1 1 0 11-2 0 1 1 0 012 0zM9 9a1 1 0 000 2v3a1 1 0 001 1h1a1 1 0 100-2v-3a1 1 0 00-1-1H9z" clip-rule="evenodd" />
|
||||
</svg>
|
||||
</div>
|
||||
<div class="ml-3 flex-1 md:flex md:justify-between">
|
||||
<p class="text-sm text-blue-700 dark:text-blue-300">
|
||||
此操作将基于当前设定的时间点,批量修复该 BVID 下所有关联节目的开始时间。
|
||||
</p>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<form class="p-6 space-y-6" action="" method="post" enctype="multipart/form-data">
|
||||
@csrf
|
||||
<input type="hidden" name="id" value="{{$program_video->id}}">
|
||||
|
||||
<div class="grid grid-cols-1 md:grid-cols-2 gap-6">
|
||||
<div>
|
||||
<label class="block text-sm font-medium text-gray-700 dark:text-gray-300">BVID</label>
|
||||
<input type="text" disabled value="{{ $program_video->video_bvid }}"
|
||||
class="mt-1 block w-full rounded-md border-gray-300 dark:border-gray-600 dark:bg-gray-700 bg-gray-50 dark:text-gray-400 shadow-sm sm:text-sm py-2">
|
||||
</div>
|
||||
<div>
|
||||
<label class="block text-sm font-medium text-gray-700 dark:text-gray-300">参考 P 数</label>
|
||||
<input type="number" disabled value="{{ $program_video->start_part }}"
|
||||
class="mt-1 block w-full rounded-md border-gray-300 dark:border-gray-600 dark:bg-gray-700 bg-gray-50 dark:text-gray-400 shadow-sm sm:text-sm py-2">
|
||||
</div>
|
||||
<div>
|
||||
<label class="block text-sm font-medium text-gray-700 dark:text-gray-300">参考时间点</label>
|
||||
<input type="time" disabled step="1" value="{{ $program_video->start_time }}"
|
||||
class="mt-1 block w-full rounded-md border-gray-300 dark:border-gray-600 dark:bg-gray-700 bg-gray-50 dark:text-gray-400 shadow-sm sm:text-sm py-2">
|
||||
</div>
|
||||
<div>
|
||||
<label class="block text-sm font-medium text-gray-700 dark:text-gray-300">节目实际开始时间</label>
|
||||
<input type="datetime-local" step="1" disabled value="{{ date('Y-m-d\TH:i:s', strtotime($program_video->created_at)) }}"
|
||||
class="mt-1 block w-full rounded-md border-gray-300 dark:border-gray-600 dark:bg-gray-700 bg-gray-50 dark:text-gray-400 shadow-sm sm:text-sm py-2">
|
||||
</div>
|
||||
<div class="md:col-span-2">
|
||||
<label for="each_time" class="block text-sm font-medium text-gray-700 dark:text-gray-300">每 P 均分时长 (可选)</label>
|
||||
<input type="time" step="1" name="each_time" id="each_time" value="{{ old("each_time") }}"
|
||||
class="mt-1 block w-full rounded-md border-gray-300 dark:border-gray-600 dark:bg-gray-700 shadow-sm focus:border-indigo-500 focus:ring-indigo-500 sm:text-sm py-2">
|
||||
<p class="mt-1 text-xs text-gray-500 dark:text-gray-400">若不填写,将自动尝试计算或使用默认值。</p>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
@include("common.form_error")
|
||||
|
||||
<div class="flex items-center justify-end pt-4 border-t border-gray-200 dark:border-gray-700">
|
||||
<button type="submit" class="inline-flex justify-center py-2 px-6 border border-transparent shadow-sm text-sm font-medium rounded-md text-white bg-indigo-600 hover:bg-indigo-700 focus:outline-none focus:ring-2 focus:ring-offset-2 focus:ring-indigo-500">
|
||||
执行修复
|
||||
</button>
|
||||
</div>
|
||||
</form>
|
||||
</div>
|
||||
</div>
|
||||
</form>
|
||||
</main>
|
||||
@include("common.footer")
|
||||
</body>
|
||||
</html>
|
||||
</html>
|
||||
Reference in New Issue
Block a user