复制常驻时,勾选批量复制
This commit is contained in:
parent
074e5e48e7
commit
275eeebd1d
@ -4,6 +4,7 @@ namespace App\Http\Controllers;
|
|||||||
|
|
||||||
use App\Models\ProgramAppends;
|
use App\Models\ProgramAppends;
|
||||||
use App\Models\Programs;
|
use App\Models\Programs;
|
||||||
|
use Carbon\Carbon;
|
||||||
use Illuminate\Http\Request;
|
use Illuminate\Http\Request;
|
||||||
use Illuminate\Routing\Controller as BaseController;
|
use Illuminate\Routing\Controller as BaseController;
|
||||||
|
|
||||||
@ -36,8 +37,18 @@ class ProgramAppendConstructController extends BaseController
|
|||||||
}
|
}
|
||||||
|
|
||||||
public function copy_view(Request $request, Programs $program) {
|
public function copy_view(Request $request, Programs $program) {
|
||||||
|
$programsId = Programs::query()->select("id")
|
||||||
|
->where("created_at", "<", $program->created_at->addWeeks(2))
|
||||||
|
->where("created_at", ">", $program->created_at->addWeeks(-2))
|
||||||
|
->pluck("id");
|
||||||
|
$broadcastList = ProgramAppends::query()->groupBy("name", "from")
|
||||||
|
->whereIn("program_id", $programsId)
|
||||||
|
->where("broadcast", "=", 1)
|
||||||
|
->select("name", "from")->selectRaw("max(id) as id")
|
||||||
|
->orderBy("id")->get();
|
||||||
return view("program.construct.append.copy_broadcast", [
|
return view("program.construct.append.copy_broadcast", [
|
||||||
"program" => $program,
|
"program" => $program,
|
||||||
|
"broadcastList" => $broadcastList,
|
||||||
]);
|
]);
|
||||||
}
|
}
|
||||||
// endregion
|
// endregion
|
||||||
@ -61,13 +72,15 @@ class ProgramAppendConstructController extends BaseController
|
|||||||
|
|
||||||
public function copy_append(Request $request, Programs $program) {
|
public function copy_append(Request $request, Programs $program) {
|
||||||
$payload = $request->validate([
|
$payload = $request->validate([
|
||||||
"id" => ["required", "numeric", "exists:App\Models\ProgramAppends,id"]
|
"ids" => ["required", "array", "exists:App\Models\ProgramAppends,id"]
|
||||||
]);
|
]);
|
||||||
$original_append = ProgramAppends::query()->findOrFail($payload["id"]);
|
$original_appends = ProgramAppends::query()->findMany($payload["ids"]);
|
||||||
$append = $original_append->replicate();
|
$appends = $original_appends->map(function ($append) {
|
||||||
$program->appends()->save($append);
|
return $append->replicate();
|
||||||
|
});
|
||||||
|
$program->appends()->saveMany($appends);
|
||||||
return redirect(route("program.construct.append.list", [
|
return redirect(route("program.construct.append.list", [
|
||||||
"program"=>$append->program->id,
|
"program"=>$program->id,
|
||||||
]));
|
]));
|
||||||
}
|
}
|
||||||
// endregion
|
// endregion
|
||||||
|
34
app/View/Components/Appends/AppendList.php
Normal file
34
app/View/Components/Appends/AppendList.php
Normal file
@ -0,0 +1,34 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
namespace App\View\Components\Appends;
|
||||||
|
|
||||||
|
use App\Models\ProgramAppends;
|
||||||
|
use Illuminate\Support\Collection;
|
||||||
|
use Illuminate\View\Component;
|
||||||
|
|
||||||
|
class AppendList extends Component
|
||||||
|
{
|
||||||
|
/**
|
||||||
|
* @var ProgramAppends[]|Collection
|
||||||
|
*/
|
||||||
|
public $appends;
|
||||||
|
/**
|
||||||
|
* @var bool
|
||||||
|
*/
|
||||||
|
public $enableEdit;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @param $appends ProgramAppends|Collection
|
||||||
|
* @param bool $enableEdit
|
||||||
|
*/
|
||||||
|
public function __construct($appends, bool $enableEdit=true)
|
||||||
|
{
|
||||||
|
$this->appends = $appends;
|
||||||
|
$this->enableEdit = $enableEdit;
|
||||||
|
}
|
||||||
|
|
||||||
|
public function render()
|
||||||
|
{
|
||||||
|
return view('components.appends.list');
|
||||||
|
}
|
||||||
|
}
|
32
app/View/Components/Appends/AppendListItem.php
Normal file
32
app/View/Components/Appends/AppendListItem.php
Normal file
@ -0,0 +1,32 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
namespace App\View\Components\Appends;
|
||||||
|
|
||||||
|
use App\Models\ProgramAppends;
|
||||||
|
use Illuminate\View\Component;
|
||||||
|
|
||||||
|
class AppendListItem extends Component
|
||||||
|
{
|
||||||
|
/**
|
||||||
|
* @var ProgramAppends
|
||||||
|
*/
|
||||||
|
public $append;
|
||||||
|
/**
|
||||||
|
* @var bool
|
||||||
|
*/
|
||||||
|
public $enableEdit;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @param $append ProgramAppends
|
||||||
|
*/
|
||||||
|
public function __construct(ProgramAppends $append, bool $enableEdit=true)
|
||||||
|
{
|
||||||
|
$this->append = $append;
|
||||||
|
$this->enableEdit = $enableEdit;
|
||||||
|
}
|
||||||
|
|
||||||
|
public function render()
|
||||||
|
{
|
||||||
|
return view('components.appends.item');
|
||||||
|
}
|
||||||
|
}
|
24
resources/views/components/appends/item.blade.php
Normal file
24
resources/views/components/appends/item.blade.php
Normal file
@ -0,0 +1,24 @@
|
|||||||
|
<tr>
|
||||||
|
<td>
|
||||||
|
@if($enableEdit)
|
||||||
|
<a href="{{route("program.construct.append.edit", ["append"=>$append->id])}}">编辑</a>
|
||||||
|
@endif
|
||||||
|
<x-links.user_link :name="$append->from" :plt-id="$append->platform_id" :mid="$append->from_mid"></x-links.user_link>
|
||||||
|
</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>
|
16
resources/views/components/appends/list.blade.php
Normal file
16
resources/views/components/appends/list.blade.php
Normal file
@ -0,0 +1,16 @@
|
|||||||
|
<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)
|
||||||
|
<x-appends.append_list_item :append="$append" :enable-edit="$enableEdit"></x-appends.append_list_item>
|
||||||
|
@endforeach
|
||||||
|
</tbody>
|
||||||
|
</table>
|
@ -25,17 +25,28 @@
|
|||||||
@endif
|
@endif
|
||||||
</label>
|
</label>
|
||||||
@endif
|
@endif
|
||||||
<label class="block my-2" id="broadcast_select">
|
<label>
|
||||||
复制的名称
|
复制的常驻留言,请选择:
|
||||||
<input class="form-input border-0 border-b-2 w-full" autocomplete="off" type="text" name="name" value="{{ old('name') }}">
|
<br>
|
||||||
<input class="form-input border-0 border-b-2 w-full" id="broadcast_id" type="hidden" name="id" value="{{ old('id') }}">
|
@foreach($broadcastList as $broadcast)
|
||||||
|
<label>
|
||||||
|
<input type="checkbox" name="ids[]" value="{{$broadcast->id}}">
|
||||||
|
【{{$broadcast->from}}】:{{$broadcast->name}}
|
||||||
|
</label>
|
||||||
|
<br>
|
||||||
|
@endforeach
|
||||||
</label>
|
</label>
|
||||||
@include("common.form_error")
|
@include("common.form_error")
|
||||||
|
@if(sizeof($broadcastList) <= 0)
|
||||||
|
<div class="block my-2 text-center">
|
||||||
|
无可复制内容
|
||||||
|
</div>
|
||||||
|
@else
|
||||||
<div class="block my-2 text-center">
|
<div class="block my-2 text-center">
|
||||||
<input class="px-6 py-2 inline-block rounded-full bg-cyan-600 text-white" type="submit">
|
<input class="px-6 py-2 inline-block rounded-full bg-cyan-600 text-white" type="submit">
|
||||||
</div>
|
</div>
|
||||||
|
@endempty
|
||||||
</form>
|
</form>
|
||||||
@include("common.footer")
|
@include("common.footer")
|
||||||
</body>
|
</body>
|
||||||
<script src="{{ mix('/js/component/broadcast_select.js') }}" rel="script"></script>
|
|
||||||
</html>
|
</html>
|
||||||
|
@ -69,42 +69,7 @@
|
|||||||
</form>
|
</form>
|
||||||
<div class="hidden lg:block lg:w-1/2">
|
<div class="hidden lg:block lg:w-1/2">
|
||||||
<div>已有记录</div>
|
<div>已有记录</div>
|
||||||
<table class="table-auto border-collapse w-full lg:border lg:border-black">
|
<x-appends.append_list :appends="$program->appends" :enable-edit="false"></x-appends.append_list>
|
||||||
<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($program->appends as $append)
|
|
||||||
<tr>
|
|
||||||
<td>
|
|
||||||
<x-links.user_link :name="$append->from" :plt-id="$append->platform_id" :mid="$append->from_mid"></x-links.user_link>
|
|
||||||
</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>
|
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
@include("common.footer")
|
@include("common.footer")
|
||||||
|
@ -9,43 +9,7 @@
|
|||||||
@include("common.header")
|
@include("common.header")
|
||||||
<a href="{{route("program.construct.append.add", ["program"=>$program->id])}}">新增</a>
|
<a href="{{route("program.construct.append.add", ["program"=>$program->id])}}">新增</a>
|
||||||
<a href="{{route("program.construct.append.copy", ["program"=>$program->id])}}">复制常驻留言</a>
|
<a href="{{route("program.construct.append.copy", ["program"=>$program->id])}}">复制常驻留言</a>
|
||||||
<table class="table-auto border-collapse w-full lg:border lg:border-black">
|
<x-appends.append_list :appends="$appends"></x-appends.append_list>
|
||||||
<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", ["append"=>$append->id])}}">编辑</a>
|
|
||||||
<x-links.user_link :name="$append->from" :plt-id="$append->platform_id" :mid="$append->from_mid"></x-links.user_link>
|
|
||||||
</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")
|
@include("common.footer")
|
||||||
</body>
|
</body>
|
||||||
</html>
|
</html>
|
||||||
|
@ -13,7 +13,6 @@ const mix = require('laravel-mix');
|
|||||||
|
|
||||||
mix
|
mix
|
||||||
.js('resources/js/component/from_select.js', 'public/js/component')
|
.js('resources/js/component/from_select.js', 'public/js/component')
|
||||||
.js('resources/js/component/broadcast_select.js', 'public/js/component')
|
|
||||||
.js('resources/js/app.js', 'public/js')
|
.js('resources/js/app.js', 'public/js')
|
||||||
.extract(['axios', 'lodash'])
|
.extract(['axios', 'lodash'])
|
||||||
.js('resources/js/webauthn.js', 'public/js')
|
.js('resources/js/webauthn.js', 'public/js')
|
||||||
|
Loading…
x
Reference in New Issue
Block a user