「駐輪場マスタ」画面修正
All checks were successful
Deploy main / deploy (push) Successful in 23s

This commit is contained in:
你的名字 2025-09-03 11:04:04 +09:00
parent 542a910aa5
commit 7c5ba49a47
5 changed files with 211 additions and 104 deletions

View File

@ -30,6 +30,7 @@ class ParkController extends Controller
'p.alert_flag', 'p.alert_flag',
'p.print_number', 'p.print_number',
'p.keep_alive', 'p.keep_alive',
'p.operator_id',
]); ]);
if ($request->filled('park_name')) { if ($request->filled('park_name')) {
@ -69,7 +70,7 @@ class ParkController extends Controller
$park->fill($validated); $park->fill($validated);
$park->save(); $park->save();
return redirect()->route('parks')->with('success', '登録しました'); return redirect()->route('parks')->with('success', '新規登録に完了しました');
} }
return view('admin.parks.add', [ return view('admin.parks.add', [

View File

@ -26,10 +26,15 @@
<div class="alert alert-danger"><ul class="mb-0">@foreach($errors->all() as $e)<li>{{ $e }}</li>@endforeach</ul></div> <div class="alert alert-danger"><ul class="mb-0">@foreach($errors->all() as $e)<li>{{ $e }}</li>@endforeach</ul></div>
@endif @endif
{{-- 成功メッセージ表示 --}}
@if (session('success'))
<div class="alert alert-success">{{ session('success') }}</div>
@endif
{{-- 入力フォーム --}} {{-- 入力フォーム --}}
<div class="card"> <div class="card">
<div class="card-body"> <div class="card-body">
<form method="post" action="{{ route('news_add') }}"> <form method="post" action="{{ route('news_add') }}" id="news-add-form">
@csrf @csrf
<div class="form-group"> <div class="form-group">
<label>ニュース内容 <span class="text-danger">*</span></label> <label>ニュース内容 <span class="text-danger">*</span></label>
@ -63,7 +68,7 @@
</div> </div>
<div class="text-right"> <div class="text-right">
<a href="{{ route('news') }}" class="btn btn-outline-secondary">戻る</a> <a href="{{ route('news') }}" class="btn btn-outline-secondary">戻る</a>
<button class="btn btn-primary">登録</button> <button type="button" class="btn btn-primary" id="register-btn">登録</button>
</div> </div>
</form> </form>
</div> </div>
@ -71,3 +76,14 @@
</div> </div>
</section> </section>
@endsection @endsection
@push('scripts')
<script>
// 登録ボタン押下時に確認ダイアログ
document.getElementById('register-btn').addEventListener('click', function(e) {
if (confirm('登録してよろしいですか?')) {
document.getElementById('news-add-form').submit();
}
});
</script>
@endpush

View File

@ -2,18 +2,43 @@
@section('title', '駐輪場マスタ 新規') @section('title', '駐輪場マスタ 新規')
@section('content') @section('content')
<div class="container-fluid page-park py-3"> <div class="container-fluid page-park py-3">
{{-- 画面上部のツールバー(新規は登録だけ/目标图一致) --}} {{-- 成功メッセージ表示 --}}
@if (session('success'))
<div class="alert alert-success">{{ session('success') }}</div>
@endif
{{-- パンくず --}}
<div class="content-header">
<div class="container-fluid">
<div class="row mb-2">
<div class="col-lg-6">
<h1 class="m-0 text-dark">新規</h1>
</div>
<div class="col-lg-6">
<ol class="breadcrumb float-sm-right text-sm">
<li class="breadcrumb-item"><a href="{{ route('home') }}">ホーム</a></li>
<li class="breadcrumb-item"><a href="{{ route('parks') }}">駐輪場マスタ</a></li>
<li class="breadcrumb-item active">新規</li>
</ol>
</div>
</div>
</div>
</div>
{{-- 画面上部のツールバー(登録ボタン)
<div class="screen-toolbar mb-2"> <div class="screen-toolbar mb-2">
<div class="left"> <div class="left">
<button type="submit" form="park-add-form" class="btn btn-success btn-sm">登録</button> <button type="submit" form="park-add-form" class="btn btn-success btn-sm">登録</button>
</div> </div>
<div class="right"><!-- 新規は削除無し --></div> <div class="right"><!-- 新規は削除無し --></div>
</div> </div>--}}
{{-- 本体フォーム(白背景のカード) --}} {{-- 本体フォーム(白背景のカード) --}}
<form id="park-add-form" method="POST" action="{{ route('parks.store') }}" enctype="multipart/form-data" class="card card-body form-card"> <form id="park-add-form" method="POST" action="{{ route('parks.store') }}" enctype="multipart/form-data"
class="card card-body form-card">
@csrf @csrf
@include('admin.parks._form') @include('admin.parks._form')
@ -24,6 +49,7 @@
</form> </form>
</div> </div>
@push('scripts')
<script> <script>
document.getElementById('register-btn').addEventListener('click', function (e) { document.getElementById('register-btn').addEventListener('click', function (e) {
if (confirm('登録してよろしいですか?')) { if (confirm('登録してよろしいですか?')) {
@ -51,19 +77,66 @@ document.getElementById('register-btn').addEventListener('click', function(e) {
} }
}); });
</script> </script>
@endpush
<style> <style>
.page-park{background:#f4f6f9;} .page-park {
.form-card{border:1px solid #e5e7eb;box-shadow:0 1px 1px rgba(0,0,0,.04)} background: #f4f6f9;
.screen-toolbar{display:flex;justify-content:space-between;align-items:center} }
.screen-toolbar .btn{border-radius:3px;padding:.35rem .7rem}
.screen-toolbar .btn-light{background:#fff;border:1px solid #dcdfe3;color:#333} .form-card {
.form-group{margin-bottom:.6rem} border: 1px solid #e5e7eb;
.col-form-label{padding-top:.55rem;font-weight:600} box-shadow: 0 1px 1px rgba(0, 0, 0, .04)
.req:after{content:" *";color:#dc3545} }
input.form-control,select.form-control{height:34px;padding:.25rem .5rem}
textarea.form-control{min-height:72px} .screen-toolbar {
.img-thumbnail{border:1px dashed #d0d7de;background:repeating-linear-gradient(45deg,#fafafa,#fafafa 8px,#f3f4f6 8px,#f3f4f6 16px)} display: flex;
.form-footer{border-top:1px dashed #e9ecef} justify-content: space-between;
align-items: center
}
.screen-toolbar .btn {
border-radius: 3px;
padding: .35rem .7rem
}
.screen-toolbar .btn-light {
background: #fff;
border: 1px solid #dcdfe3;
color: #333
}
.form-group {
margin-bottom: .6rem
}
.col-form-label {
padding-top: .55rem;
font-weight: 600
}
.req:after {
content: " *";
color: #dc3545
}
input.form-control,
select.form-control {
height: 34px;
padding: .25rem .5rem
}
textarea.form-control {
min-height: 72px
}
.img-thumbnail {
border: 1px dashed #d0d7de;
background: repeating-linear-gradient(45deg, #fafafa, #fafafa 8px, #f3f4f6 8px, #f3f4f6 16px)
}
.form-footer {
border-top: 1px dashed #e9ecef
}
</style> </style>
@endsection @endsection

View File

@ -2,6 +2,23 @@
@section('title', '駐輪場マスタ 編集') @section('title', '駐輪場マスタ 編集')
@section('content') @section('content')
{{-- パンくず --}}
<div class="content-header">
<div class="container-fluid">
<div class="row mb-2">
<div class="col-lg-6">
<h1 class="m-0 text-dark">編集</h1>
</div>
<div class="col-lg-6">
<ol class="breadcrumb float-sm-right text-sm">
<li class="breadcrumb-item"><a href="{{ route('home') }}">ホーム</a></li>
<li class="breadcrumb-item"><a href="{{ route('parks') }}">駐輪場マスタ</a></li>
<li class="breadcrumb-item active">編集</li>
</ol>
</div>
</div>
</div>
</div>
<div class="container-fluid page-park py-3"> <div class="container-fluid page-park py-3">
{{-- 画面上部のツールバー(左:登録/その他、右:削除) --}} {{-- 画面上部のツールバー(左:登録/その他、右:削除) --}}

View File

@ -2,6 +2,14 @@
@section('content') @section('content')
<div class="container-fluid pt-4"> <div class="container-fluid pt-4">
{{-- フラッシュメッセージ --}}
@if(session('success'))
<div class="alert alert-success">{{ session('success') }}</div>
@endif
@if(session('error'))
<div class="alert alert-danger">{{ session('error') }}</div>
@endif
<div class="d-flex justify-content-between align-items-center mb-3"> <div class="d-flex justify-content-between align-items-center mb-3">
<h3 class="mb-0">駐輪場マスタ</h3> <h3 class="mb-0">駐輪場マスタ</h3>
<ol class="breadcrumb float-sm-right text-sm mb-0" style="background: #f8f9fa;"> <ol class="breadcrumb float-sm-right text-sm mb-0" style="background: #f8f9fa;">
@ -67,10 +75,10 @@
<th>住所</th> <th>住所</th>
<th>閉設フラグ</th> <th>閉設フラグ</th>
<th>閉設日</th> <th>閉設日</th>
<th>価格メモ</th>
<th>残警告チェックフラグ</th> <th>残警告チェックフラグ</th>
<th>印字数</th> <th>印字数</th>
<th>最新キープアライブ</th> <th>最新キープアライブ</th>
<th>更新オペレータID</th>
<th>更新期間開始日</th> <th>更新期間開始日</th>
<th>更新期間開始時</th> <th>更新期間開始時</th>
<th>更新期間終了日</th> <th>更新期間終了日</th>
@ -137,6 +145,7 @@
<td class='sm-item text-left'><span>{{ $park->alert_flag }}</span></td> <td class='sm-item text-left'><span>{{ $park->alert_flag }}</span></td>
<td class='sm-item text-left'><span>{{ $park->print_number }}</span></td> <td class='sm-item text-left'><span>{{ $park->print_number }}</span></td>
<td class='sm-item text-left'><span>{{ $park->keep_alive }}</span></td> <td class='sm-item text-left'><span>{{ $park->keep_alive }}</span></td>
<td class='sm-item text-left'><span>{{ $park->operator_id ?? '' }}</span></td>
</tr> </tr>
@endforeach @endforeach
</tbody> </tbody>
@ -149,16 +158,6 @@
</div> </div>
@endsection @endsection
@push('scripts')
@extends('layouts.app')
@section('content')
<div class="container-fluid pt-4">
{{-- ここにテーブルやフォーム --}}
</div>
@endsection
@push('scripts') @push('scripts')
<script> <script>
// チェックボックス全選択 // チェックボックス全選択
@ -167,12 +166,13 @@ document.getElementById('check_all')?.addEventListener('change', function () {
cb.checked = this.checked; cb.checked = this.checked;
}); });
}); });
</script>
@endpush // jQuery fallbackもしjQueryが使われていれば
<script> if (window.$) {
$('#check_all').on('change', function () { $('#check_all').on('change', function () {
$('.row_checkbox').prop('checked', this.checked); $('.row_checkbox').prop('checked', this.checked);
}); });
}
// 削除ボタンの確認ダイアログ // 削除ボタンの確認ダイアログ
document.getElementById('delete-btn').addEventListener('click', function () { document.getElementById('delete-btn').addEventListener('click', function () {