SWA-59画面修正

This commit is contained in:
kin.rinzen 2025-10-03 18:27:14 +09:00
parent 5d44071e36
commit 87ab6edd98
11 changed files with 488 additions and 669 deletions

View File

@ -18,7 +18,7 @@ class OpeController extends Controller
$inputs = [ $inputs = [
'isMethodPost' => $request->isMethod('post'), 'isMethodPost' => $request->isMethod('post'),
'sort' => $request->input('sort', 'ope_id'), 'sort' => $request->input('sort', 'ope_id'),
'sort_type' => $request->input('sort_type', 'desc'), 'sort_type' => $request->input('sort_type', 'asc'),
'isExport' => false, 'isExport' => false,
]; ];
@ -37,17 +37,17 @@ class OpeController extends Controller
public function add(Request $request) public function add(Request $request)
{ {
if ($request->isMethod('get')) { if ($request->isMethod('get')) {
// add.blade.php は include する _form が期待する変数名を使う
return view('admin.opes.add', [ return view('admin.opes.add', [
'isEdit' => 0,
'isInfo' => 0, 'isEdit' => false,
// 初期値存在しなくてもOKだが、Notice 防止のために入れておく) 'record' => new Ope(),
'ope_id' => null, 'ope_id' => null,
'ope_name' => '', 'ope_name' => '',
'ope_type' => '', 'ope_type' => '',
'ope_mail' => '', 'ope_mail' => '',
'ope_phone'=> '', 'ope_phone'=> '',
// 以下はフォームで参照される可能性のあるキーを空で用意
'ope_sendalart_que1' => 0, 'ope_sendalart_que2' => 0, 'ope_sendalart_que3' => 0, 'ope_sendalart_que1' => 0, 'ope_sendalart_que2' => 0, 'ope_sendalart_que3' => 0,
'ope_sendalart_que4' => 0, 'ope_sendalart_que5' => 0, 'ope_sendalart_que6' => 0, 'ope_sendalart_que4' => 0, 'ope_sendalart_que5' => 0, 'ope_sendalart_que6' => 0,
'ope_sendalart_que7' => 0, 'ope_sendalart_que8' => 0, 'ope_sendalart_que9' => 0, 'ope_sendalart_que7' => 0, 'ope_sendalart_que8' => 0, 'ope_sendalart_que9' => 0,
@ -58,21 +58,46 @@ class OpeController extends Controller
]); ]);
} }
// 入力値を一旦取得
$data = $request->all();
// --- バリデーション ---
$rules = [ $rules = [
'login_id' => 'required|string|max:255|unique:ope,login_id',
'ope_name' => 'required|string|max:255', 'ope_name' => 'required|string|max:255',
'ope_type' => 'required|string|max:50', 'ope_type' => 'required|string|max:50',
'ope_mail' => 'nullable|email|max:255', 'ope_mail' => [
'required',
function ($attribute, $value, $fail) {
// ; でも , でもOK、保存時は ; に統一
$emails = array_map('trim', explode(';', str_replace(',', ';', $value)));
foreach ($emails as $email) {
if ($email !== '' && !filter_var($email, FILTER_VALIDATE_EMAIL)) {
$fail("無効なメールアドレス形式です: {$email}");
}
}
}
],
'ope_phone' => 'nullable|string|max:50', 'ope_phone' => 'nullable|string|max:50',
'password' => 'required|string|min:8|confirmed',
]; ];
$this->validate($request, $rules);
$request->validate($rules);
// --- 保存用にメールを ; 区切りに統一 ---
$emails = array_filter(array_map('trim', explode(';', str_replace(',', ';', $data['ope_mail']))));
$data['ope_mail'] = implode(';', $emails);
// 保存処理
$ope = new Ope(); $ope = new Ope();
$ope->fill($request->only($ope->getFillable())); $ope->fill($data);
$ope->save(); $ope->save();
return redirect()->route('opes')->with('success', 'オペレータを登録しました。'); return redirect()->route('opes')->with('success', '登録しました。');
} }
/** /**
* 編集GET 画面 / POST 更新) * 編集GET 画面 / POST 更新)
*/ */
@ -82,63 +107,76 @@ class OpeController extends Controller
if (!$ope) abort(404); if (!$ope) abort(404);
if ($request->isMethod('get')) { if ($request->isMethod('get')) {
// edit.blade.php が参照する変数名に合わせて渡す return view('admin.opes.edit', [
return view('admin.opes.edit', array_merge( 'isEdit' => true,
[ 'record' => $ope,
'isEdit' => 1, ]);
'isInfo' => 0,
'ope_id' => $ope->ope_id,
],
$ope->toArray()
));
} }
// 入力値を一旦取得
$data = $request->all();
// --- バリデーション ---
$rules = [ $rules = [
'login_id' => "required|string|max:255|unique:ope,login_id,{$id},ope_id", // 編集時は自分を除外
'ope_name' => 'required|string|max:255', 'ope_name' => 'required|string|max:255',
'ope_type' => 'required|string|max:50', 'ope_type' => 'required|string|max:50',
'ope_mail' => 'nullable|email|max:255',
'ope_phone' => 'nullable|string|max:50', 'ope_phone' => 'nullable|string|max:50',
'ope_mail' => [
'required',
function ($attribute, $value, $fail) {
// , でも ; でもOKにする
$emails = array_map('trim', explode(';', str_replace(',', ';', $value)));
foreach ($emails as $email) {
if ($email !== '' && !filter_var($email, FILTER_VALIDATE_EMAIL)) {
$fail("無効なメールアドレス形式です: {$email}");
}
}
}
],
'password' => 'nullable|string|min:8|confirmed', // 編集時は任意
]; ];
$this->validate($request, $rules);
$ope->fill($request->only($ope->getFillable())); $request->validate($rules);
// --- 保存用にメールを ; 区切りに統一 ---
if (!empty($data['ope_mail'])) {
$emails = array_filter(array_map('trim', explode(';', str_replace(',', ';', $data['ope_mail']))));
$data['ope_mail'] = implode(';', $emails);
}
// パスワード空なら更新しない
if (empty($data['password'])) {
unset($data['password']);
}
// 保存処理
$ope->fill($data);
$ope->save(); $ope->save();
return redirect()->route('opes')->with('success', 'オペレータを更新しました。'); return redirect()->route('opes')->with('success', '更新しました。');
} }
/**
* 詳細
*/
public function info($id)
{
$ope = Ope::getByPk($id);
if (!$ope) abort(404);
// info.blade.php が参照する変数に合わせてセット
return view('admin.opes.info', array_merge(
[
'isEdit' => 0,
'isInfo' => 1,
'ope_id' => $ope->ope_id,
],
$ope->toArray()
));
}
/** /**
* 削除(単体 / 複数) * 削除(単体 or 複数)
*/ */
public function delete(Request $request) public function delete(Request $request)
{ {
$ids = []; $ids = [];
// 単体削除
if ($request->filled('id')) { if ($request->filled('id')) {
$ids[] = (int) $request->input('id'); $ids[] = (int) $request->input('id');
} }
if ($request->filled('ids') && is_array($request->input('ids'))) {
$ids = array_merge($ids, array_map('intval', $request->input('ids'))); // 複数削除
if ($request->filled('ids')) {
$ids = array_merge($ids, array_map('intval', (array)$request->input('ids')));
} }
$ids = array_values(array_unique($ids));
$ids = array_unique($ids);
if (!$ids) { if (!$ids) {
return back()->with('error', '削除対象が選択されていません。'); return back()->with('error', '削除対象が選択されていません。');

View File

@ -21,7 +21,6 @@ class TaxController extends Controller
// 絞り込み // 絞り込み
$keyword = trim((string) $request->input('kw')); $keyword = trim((string) $request->input('kw'));
if ($keyword !== '') { if ($keyword !== '') {
// 数値型でも互換のため部分一致を残す
$query->where('tax_percent', 'like', "%{$keyword}%"); $query->where('tax_percent', 'like', "%{$keyword}%");
} }
$from = $request->input('from'); $from = $request->input('from');
@ -33,15 +32,15 @@ class TaxController extends Controller
$query->whereDate('tax_day', '<=', $to); $query->whereDate('tax_day', '<=', $to);
} }
// ソート(既定:適用日 降順) // ソート(既定:ID 昇順)
$sort = $request->input('sort', 'tax_day'); $sort = $request->input('sort', 'tax_id');
$type = strtolower($request->input('sort_type', 'desc')); $type = strtolower($request->input('sort_type', 'asc'));
$allow = ['tax_day', 'tax_percent', 'updated_at', 'created_at', 'tax_id']; $allow = ['tax_day', 'tax_percent', 'updated_at', 'created_at', 'tax_id'];
if (!in_array($sort, $allow, true)) { if (!in_array($sort, $allow, true)) {
$sort = 'tax_day'; $sort = 'tax_id';
} }
if (!in_array($type, ['asc', 'desc'], true)) { if (!in_array($type, ['asc', 'desc'], true)) {
$type = 'desc'; $type = 'asc';
} }
$query->orderBy($sort, $type); $query->orderBy($sort, $type);
@ -57,12 +56,13 @@ class TaxController extends Controller
]); ]);
} }
public function add(Request $request) public function add(Request $request)
{ {
if ($request->isMethod('post')) { if ($request->isMethod('post')) {
$data = $request->validate([ $data = $request->validate([
'tax_percent' => ['required', 'numeric', 'min:0', 'max:1000'], 'tax_percent' => ['required', 'numeric', 'min:0', 'max:1000'],
'tax_day' => ['required', 'date', 'unique:tax,tax_day'], 'tax_day' => ['required', 'date'],
]); ]);
$data['operator_id'] = optional(\Auth::user())->ope_id ?? null; $data['operator_id'] = optional(\Auth::user())->ope_id ?? null;
$data['tax_percent'] = number_format((float)$data['tax_percent'], 2, '.', ''); $data['tax_percent'] = number_format((float)$data['tax_percent'], 2, '.', '');
@ -85,7 +85,7 @@ class TaxController extends Controller
if ($request->isMethod('post')) { if ($request->isMethod('post')) {
$data = $request->validate([ $data = $request->validate([
'tax_percent' => ['required', 'numeric', 'min:0', 'max:1000'], 'tax_percent' => ['required', 'numeric', 'min:0', 'max:1000'],
'tax_day' => ['required', 'date', 'unique:tax,tax_day,' . $tax->tax_id . ',tax_id'], 'tax_day' => ['required', 'date'],
]); ]);
$data['operator_id'] = optional(\Auth::user())->ope_id ?? null; $data['operator_id'] = optional(\Auth::user())->ope_id ?? null;
$data['tax_percent'] = number_format((float)$data['tax_percent'], 2, '.', ''); $data['tax_percent'] = number_format((float)$data['tax_percent'], 2, '.', '');

View File

@ -33,29 +33,31 @@ class Ope extends Authenticatable
*/ */
protected $fillable = [ protected $fillable = [
'//TODO オペレータID not found in database specs', '//TODO オペレータID not found in database specs',
'ope_name', // オペレータ名 'login_id', // ログインID
'ope_type', // オペレータ種別 'password', // パスワード
'ope_mail', // メールアドレス 'ope_name', // オペレータ名
'ope_phone', // 電話番号 'ope_type', // オペレータ種別
'ope_sendalart_que1', // キュー1アラート送信 'ope_mail', // メールアドレス(複数可)
'ope_sendalart_que2', // キュー2アラート送信 'ope_phone', // 電話番号
'ope_sendalart_que3', // キュー3アラート送信 'ope_sendalart_que1',
'ope_sendalart_que4', // キュー4アラート送信 'ope_sendalart_que2',
'ope_sendalart_que5', // キュー5アラート送信 'ope_sendalart_que3',
'ope_sendalart_que6', // キュー6アラート送信 'ope_sendalart_que4',
'ope_sendalart_que7', // キュー7アラート送信 'ope_sendalart_que5',
'ope_sendalart_que8', // キュー8アラート送信 'ope_sendalart_que6',
'ope_sendalart_que9', // キュー9アラート送信 'ope_sendalart_que7',
'ope_sendalart_que10', // キュー10アラート送信 'ope_sendalart_que8',
'ope_sendalart_que11', // キュー11アラート送信 'ope_sendalart_que9',
'ope_sendalart_que12', // キュー12アラート送信 'ope_sendalart_que10',
'ope_sendalart_que13', // キュー13アラート送信 'ope_sendalart_que11',
'ope_auth1', // 権限1 'ope_sendalart_que12',
'ope_auth2', // 権限2 'ope_sendalart_que13',
'ope_auth3', // 権限3 'ope_auth1',
'ope_auth4', // 権限4 'ope_auth2',
'ope_quit_flag', // 退職フラグ 'ope_auth3',
'ope_quitday' // 退職日 'ope_auth4',
'ope_quit_flag',
'ope_quitday',
]; ];
/** /**
@ -124,7 +126,7 @@ class Ope extends Authenticatable
// POST検索条件の処理 // POST検索条件の処理
if ($inputs['isMethodPost']) { if ($inputs['isMethodPost']) {
// 検索条件があればここに追加
} }
// ソート処理 // ソート処理
@ -136,12 +138,14 @@ class Ope extends Authenticatable
if ($inputs['isExport']) { if ($inputs['isExport']) {
$list = $list->get(); $list = $list->get();
} else { } else {
$list = $list->paginate(\App\Utils::item_per_page); // ページネーション件数を20に固定
$list = $list->paginate(20);
} }
return $list; return $list;
} }
/** /**
* プライマリキーでオペレータを取得 * プライマリキーでオペレータを取得
* *

View File

@ -257,6 +257,10 @@ return [
// SWA-59 // SWA-59
'ope_id' => 'オペレータID', 'ope_id' => 'オペレータID',
// 'ope_id' => 'オペレータ名', // 'ope_id' => 'オペレータ名',
'ope_belong' => 'オペレータ所属名',
'login_id' => 'ログインID',
'ope_pass' => 'パスワード',
'ope_pass_confirmation' => 'パスワード確認',
'ope_name' => 'オペレータ名', 'ope_name' => 'オペレータ名',
'ope_type' => 'オペレータ種別', 'ope_type' => 'オペレータ種別',
'ope_mail' => 'メールアドレス', 'ope_mail' => 'メールアドレス',
@ -399,5 +403,6 @@ return [
'payment_companyname' => '事業者名', 'payment_companyname' => '事業者名',
], ],
]; ];

View File

@ -6,13 +6,13 @@
@elseif(Session::has('error')) @elseif(Session::has('error'))
<div class="alert alert-danger alert-dismissible"> <div class="alert alert-danger alert-dismissible">
<button type="button" class="close" data-dismiss="alert" aria-hidden="true">×</button> <button type="button" class="close" data-dismiss="alert" aria-hidden="true">×</button>
<h4><i class="icon fa fa-ban"></i> {{ __('誤差') }}:</h4> <h4><i class="icon fa fa-ban"></i> {{ __(' 入力内容に不備があります:') }}:</h4>
{!! Session::get('error') !!} {!! Session::get('error') !!}
</div> </div>
@elseif(isset($errorMsg)) @elseif(isset($errorMsg))
<div class="alert alert-danger alert-dismissible"> <div class="alert alert-danger alert-dismissible">
<button type="button" class="close" data-dismiss="alert" aria-hidden="true">×</button> <button type="button" class="close" data-dismiss="alert" aria-hidden="true">×</button>
<h4><i class="icon fa fa-ban"></i> {{ __('誤差') }}:</h4> <h4><i class="icon fa fa-ban"></i> {{ __(' 入力内容に不備があります:') }}:</h4>
{!! $errorMsg !!} {!! $errorMsg !!}
</div> </div>
@endif @endif
@ -68,11 +68,11 @@
{{-- 所属駐輪場 --}} {{-- 所属駐輪場 --}}
<div class="form-group col-3"> <div class="form-group col-3">
<label class="required">{{ __('駐輪場名') }}</label> <label class="required">{{ __('所属駐輪場ID') }}</label>
</div> </div>
<div class="form-group col-9"> <div class="form-group col-9">
<select class="form-control form-control-lg mb10" name="manager_parkid"> <select class="form-control form-control-lg mb10" name="manager_parkid">
<option value="">{{ __('validation.attributes.park_name') }}</option> <option value="">{{ __('所属駐輪場ID') }}</option>
@foreach($parks as $key => $val) @foreach($parks as $key => $val)
<option value="{{ $key }}" @if((string)old('manager_parkid', $manager_parkid) === (string)$key) selected @endif> <option value="{{ $key }}" @if((string)old('manager_parkid', $manager_parkid) === (string)$key) selected @endif>
{{ $val }} {{ $val }}

View File

@ -6,446 +6,304 @@
@elseif(Session::has('error')) @elseif(Session::has('error'))
<div class="alert alert-danger alert-dismissible"> <div class="alert alert-danger alert-dismissible">
<button type="button" class="close" data-dismiss="alert" aria-hidden="true">×</button> <button type="button" class="close" data-dismiss="alert" aria-hidden="true">×</button>
<h4><i class="icon fa fa-ban"></i> {{__('誤差')}}:</h4> <h4><i class="icon fa fa-ban"></i> {{__('入力内容に不備があります')}}:</h4>
{!! Session::get('error') !!} {!! Session::get('error') !!}
</div> </div>
@elseif(isset($errorMsg)) @elseif(isset($errorMsg))
<div class="alert alert-danger alert-dismissible"> <div class="alert alert-danger alert-dismissible">
<button type="button" class="close" data-dismiss="alert" aria-hidden="true">×</button> <button type="button" class="close" data-dismiss="alert" aria-hidden="true">×</button>
<h4><i class="icon fa fa-ban"></i> {{__('誤差')}}:</h4> <h4><i class="icon fa fa-ban"></i> {{__('入力内容に不備があります')}}:</h4>
{!! $errorMsg !!} {!! $errorMsg !!}
</div> </div>
@endif @endif
<div class="card-body"> <div class="card-body">
<div class="row"> @if ($errors->any())
@if($isInfo || $isEdit) <div class="alert alert-danger">
<!-- オペレータID --> <h4>入力内容に不備があります:</h4>
<div class="form-group col-3"> <ol>
<label>{{__('validation.attributes.ope_id')}}</label> @foreach ($errors->all() as $error)
</div> <li>{{ $error }}</li>
<div class="form-group col-9"> @endforeach
<div class="input-group"> </ol>
<input type="text" value="{{ $ope_id }}"
class="form-control form-control-lg" readonly/>
</div>
</div> </div>
@endif @endif
<!-- オペレータ名 --> <div class="row">
<div class="form-group col-3"> {{-- オペレータID編集時のみ表示 --}}
<label @if(!$isInfo) class="required" @endif>{{__('validation.attributes.ope_name')}}</label> @if($isEdit)
</div> <div class="form-group col-3">
<div class="form-group col-9"> <label>{{ __('validation.attributes.ope_id') }}</label>
<div class="input-group"> </div>
<input type="text" value="{{ $ope_name }}" <div class="form-group col-9">
name="ope_name" <input type="text" value="{{ $record->ope_id ?? '' }}"
class="form-control form-control-lg" class="form-control form-control-lg" readonly>
@if($isInfo) readonly @else placeholder="{{__('validation.attributes.ope_name')}}" @endif/> </div>
</div> @endif
</div>
<!-- /.form group - オペレータ名 -->
@if(!$isInfo) <!-- オペレータ名 -->
<div class="form-group col-3"> <div class="form-group col-3">
<label class="required">{{__('validation.attributes.password')}}</label> <label class="required">{{ __('validation.attributes.ope_name') }}</label>
</div>
<div class="form-group col-9">
<div class="input-group">
<input type="text"
name="ope_name"
value="{{ old('ope_name', $isEdit ? $record->ope_name : '') }}"
class="form-control form-control-lg"
placeholder="{{ __('validation.attributes.ope_name') }}">
</div>
</div>
<!-- /.form group - オペレータ名 -->
<!-- ログインID -->
<div class="form-group col-3">
<label class="required">{{ __('validation.attributes.login_id') }}</label>
</div>
<div class="form-group col-9">
<div class="input-group">
<input type="text"
name="login_id"
class="form-control form-control-lg"
value="{{ old('login_id', $isEdit ? $record->login_id : '') }}"
maxlength="255"
autocomplete="off"
placeholder="{{ __('validation.attributes.login_id') }}">
</div>
</div>
<!-- /.form group - ログインID -->
{{-- パスワード(新規必須 / 編集任意) --}}
<div class="form-group col-3">
<label class="@if(!$isEdit) required @endif">{{ __('validation.attributes.password') }}</label>
</div>
<div class="form-group col-9">
<div class="input-group">
<input type="password"
name="password"
class="form-control form-control-lg"
placeholder="{{ __('validation.attributes.password') }}"
autocomplete="new-password">
</div>
</div>
<div class="form-group col-3">
<label class="@if(!$isEdit) required @endif">{{ __('validation.attributes.password_confirmation') }}</label>
</div>
<div class="form-group col-9">
<div class="input-group">
<input type="password"
name="password_confirmation"
class="form-control form-control-lg"
placeholder="{{ __('validation.attributes.password_confirmation') }}">
</div>
</div>
<!-- オペレータ種別 -->
<div class="form-group col-3">
<label class="required">{{__('validation.attributes.ope_type')}}</label>
</div>
<div class="form-group col-9">
<div class="input-group">
<select name="ope_type" class="form-control form-control-lg">
<option value="">{{ __('validation.attributes.ope_type') }}</option>
@foreach(\App\Models\Ope::OPE_TYPE as $key => $item)
<option value="{{ $key }}"
{{ old('ope_type', $isEdit ? $record->ope_type : '') == $key ? 'selected' : '' }}>
{{ $item }}
</option>
@endforeach
</select>
</div>
</div>
<!-- /.form group - オペレータ種別 -->
<!-- メールアドレス -->
<div class="col-3 form-group">
<label class="required">{{ __('validation.attributes.ope_mail') }}</label>
</div>
<div class="col-9 form-group">
<input type="email"
name="ope_mail"
class="form-control form-control-lg"
value="{{ old('ope_mail', $isEdit ? $record->ope_mail : '') }}"
maxlength="128"
placeholder="{{ __('validation.attributes.ope_mail') }}">
</div>
<!-- /.form group - メールアドレス -->
<!-- 電話番号 -->
<div class="col-3 form-group">
<label class="required">{{ __('validation.attributes.ope_phone') }}</label>
</div>
<div class="col-9 form-group">
<input type="text"
name="ope_phone"
class="form-control form-control-lg"
value="{{ old('ope_phone', $isEdit ? $record->ope_phone : '') }}"
maxlength="15"
placeholder="{{ __('validation.attributes.ope_phone') }}">
</div>
<!-- /.form group - 電話番号 -->
{{-- キュー1〜13アラート送信 --}}
@for ($i = 1; $i <= 13; $i++)
<div class="form-group col-3">
<label>{{ __('validation.attributes.ope_sendalart_que'.$i) }}</label>
</div>
<div class="form-group col-9">
<div class="row">
<div class="col-2 offset-1 form-check">
<input type="radio" class="minimal" name="ope_sendalart_que{{ $i }}" value="1"
{{ old('ope_sendalart_que'.$i, $isEdit ? $record->{'ope_sendalart_que'.$i} : 0) == 1 ? 'checked' : '' }}>
<label class="form-check-label">{{ __('はい') }}</label>
</div> </div>
<div class="form-group col-9"> <div class="col-2 form-check">
<div class="input-group"> <input type="radio" class="minimal" name="ope_sendalart_que{{ $i }}" value="0"
<input type="password" name="password" class="form-control form-control-lg" {{ old('ope_sendalart_que'.$i, $isEdit ? $record->{'ope_sendalart_que'.$i} : 0) == 0 ? 'checked' : '' }}>
placeholder="{{__('validation.attributes.password')}}"> <label class="form-check-label">{{ __('いいえ') }}</label>
</div>
</div> </div>
<div class="form-group col-3"> </div>
<label class="required">{{__('validation.attributes.password_confirmation')}}</label> </div>
@endfor
{{-- キュー1〜13 --}}
<!-- 管理者権限付与 -->
<div class="form-group col-3">
<label>{{__('validation.attributes.ope_auth1')}}</label>
</div>
<div class="form-group col-9">
<div class="row">
<div class="col-4 offset-1 form-check">
<input type="radio" class="minimal" name="ope_auth1" value="管理者権限付与"
{{ old('ope_auth1', $isEdit ? $record->ope_auth1 : '付与しない') == '管理者権限付与' ? 'checked' : '' }}>
<label class="form-check-label">{{__("管理者権限付与")}}</label>
</div> </div>
<div class="form-group col-9"> <div class="col-2 form-check">
<div class="input-group"> <input type="radio" class="minimal" name="ope_auth1" value="付与しない"
<input type="password" name="password_confirmation" class="form-control form-control-lg" {{ old('ope_auth1', $isEdit ? $record->ope_auth1 : '付与しない') == '付与しない' ? 'checked' : '' }}>
placeholder="{{__('validation.attributes.password_confirmation')}}"> <label class="form-check-label">{{__("付与しない")}}</label>
</div>
</div> </div>
</div>
</div>
<!-- エリアマネージャー権限付与 -->
<div class="form-group col-3">
<label>{{__('validation.attributes.ope_auth2')}}</label>
</div>
<div class="form-group col-9">
<div class="row">
<div class="col-4 offset-1 form-check">
<input type="radio" class="minimal" name="ope_auth2" value="エリアマネージャー権限付与"
{{ old('ope_auth2', $isEdit ? $record->ope_auth2 : '付与しない') == 'エリアマネージャー権限付与' ? 'checked' : '' }}>
<label class="form-check-label">{{__("エリアマネージャー権限付与")}}</label>
</div>
<div class="col-2 form-check">
<input type="radio" class="minimal" name="ope_auth2" value="付与しない"
{{ old('ope_auth2', $isEdit ? $record->ope_auth2 : '付与しない') == '付与しない' ? 'checked' : '' }}>
<label class="form-check-label">{{__("付与しない")}}</label>
</div>
</div>
</div>
<!-- エリアオペレーター権限付与 -->
<div class="form-group col-3">
<label>{{__('validation.attributes.ope_auth3')}}</label>
</div>
<div class="form-group col-9">
<div class="row">
<div class="col-4 offset-1 form-check">
<input type="radio" class="minimal" name="ope_auth3" value="エリアオペレーター権限付与"
{{ old('ope_auth3', $isEdit ? $record->ope_auth3 : '付与しない') == 'エリアオペレーター権限付与' ? 'checked' : '' }}>
<label class="form-check-label">{{__("エリアオペレーター権限付与")}}</label>
</div>
<div class="col-2 form-check">
<input type="radio" class="minimal" name="ope_auth3" value="付与しない"
{{ old('ope_auth3', $isEdit ? $record->ope_auth3 : '付与しない') == '付与しない' ? 'checked' : '' }}>
<label class="form-check-label">{{__("付与しない")}}</label>
</div>
</div>
</div>
<!-- オペレーター権限付与 -->
<div class="form-group col-3">
<label>{{__('validation.attributes.ope_auth4')}}</label>
</div>
<div class="form-group col-9">
<div class="row">
<div class="col-4 offset-1 form-check">
<input type="radio" class="minimal" name="ope_auth4" value="オペレーター権限付与"
{{ old('ope_auth4', $isEdit ? $record->ope_auth4 : '付与しない') == 'オペレーター権限付与' ? 'checked' : '' }}>
<label class="form-check-label">{{__("オペレーター権限付与")}}</label>
</div>
<div class="col-2 form-check">
<input type="radio" class="minimal" name="ope_auth4" value="付与しない"
{{ old('ope_auth4', $isEdit ? $record->ope_auth4 : '付与しない') == '付与しない' ? 'checked' : '' }}>
<label class="form-check-label">{{__("付与しない")}}</label>
</div>
</div>
</div>
<!-- 退職フラグ -->
<div class="form-group col-3">
<label>{{__('validation.attributes.ope_quit_flag')}}</label>
</div>
<div class="form-group col-9">
<div class="row">
<div class="col-4 offset-1 form-check">
<input type="radio" class="minimal" name="ope_quit_flag" value="1"
{{ old('ope_quit_flag', $isEdit ? $record->ope_quit_flag : 0) == 1 ? 'checked' : '' }}>
<label class="form-check-label">{{__('退職')}}</label>
</div>
<div class="col-2 form-check">
<input type="radio" class="minimal" name="ope_quit_flag" value="0"
{{ old('ope_quit_flag', $isEdit ? $record->ope_quit_flag : 0) == 0 ? 'checked' : '' }}>
<label class="form-check-label">{{__('退職しない')}}</label>
</div>
</div>
</div>
<!-- /.form group - 退職フラグ -->
<!-- 退職日 -->
<div class="col-3 form-group">
<label>{{ __('validation.attributes.ope_quitday') }}</label>
</div>
<div class="col-9 form-group">
<input type="date"
name="ope_quitday"
class="form-control form-control-lg"
value="{{ old('ope_quitday', $isEdit ? $record->ope_quitday : '') }}">
</div>
<!-- /.form group - 退職日 -->
</div>
{{-- 下部ボタン --}}
<div class="row mt-4">
<div class="form-group col-md-10 d-flex align-items-center gap-2 justify-content-start">
{{-- 登録ボタン --}}
@if($isEdit)
<button type="button" id="register_edit" class="btn btn-lg btn-success mr-2">
{{ __('登録') }}
</button>
@else
<button type="button" id="register" class="btn btn-lg btn-success mr-2 register">
{{ __('登録') }}
</button>
@endif @endif
<!-- オペレータ種別 --> {{-- 削除ボタン(編集時のみ表示) --}}
<div class="form-group col-3"> @if($isEdit)
<label @if(!$isInfo) class="required" @endif>{{__('validation.attributes.ope_type')}}</label> <button type="button" id="delete_edit" class="btn btn-lg btn-danger">
</div> {{ __('削除') }}
<div class="form-group col-9"> </button>
<div class="input-group"> @endif
<select name="ope_type" class="form-control form-control-lg" @if($isInfo) disabled @endif>
<option value="">{{ __('validation.attributes.ope_type') }}</option>
@foreach(\App\Models\Ope::OPE_TYPE as $key => $item)
<option value="{{ $key }}" @if($key == $ope_type) selected @endif>{{ $item }}</option>
@endforeach
</select>
</div>
</div>
<!-- /.form group - オペレータ種別 -->
<!-- メールアドレス -->
<div class="form-group col-3">
<label @if(!$isInfo) class="required" @endif>{{__('validation.attributes.ope_mail')}}</label>
</div>
<div class="form-group col-9">
<div class="input-group">
<input type="text" value="{{ $ope_mail }}"
name="ope_mail"
class="form-control form-control-lg"
@if($isInfo) readonly @else placeholder="{{__('validation.attributes.ope_mail')}}" @endif/>
</div>
</div>
<!-- /.form group - メールアドレス -->
<!-- 電話番号 -->
<div class="form-group col-3">
<label>{{__('validation.attributes.ope_phone')}}</label>
</div>
<div class="form-group col-9">
<div class="input-group">
<input type="text" value="{{ $ope_phone }}"
name="ope_phone"
class="form-control form-control-lg"
@if($isInfo) readonly @else placeholder="{{__('validation.attributes.ope_phone')}}" @endif/>
</div>
</div>
<!-- /.form group - 電話番号 -->
<!-- キュー1アラート送信 -->
<div class="form-group col-3">
<label>{{__('validation.attributes.ope_sendalart_que1')}}</label>
</div>
<div class="form-group col-9">
<div class="row">
<div class="col-2 offset-1 form-check">
<input type="radio" class="minimal" name="ope_sendalart_que1" @if($isInfo) disabled @endif value="1" {{$ope_sendalart_que1? 'checked':''}}>
<label class="form-check-label">{{__("はい")}}</label>
</div>
<div class="col-2 form-check">
<input type="radio" class="minimal" name="ope_sendalart_que1" @if($isInfo) disabled @endif value="0" {{!$ope_sendalart_que1? 'checked':''}}>
<label class="form-check-label">{{__("いいえ")}}</label>
</div>
</div>
</div>
<!-- /.form group - キュー1アラート送信 -->
<!-- キュー2アラート送信 -->
<div class="form-group col-3">
<label>{{__('validation.attributes.ope_sendalart_que2')}}</label>
</div>
<div class="form-group col-9">
<div class="row">
<div class="col-2 offset-1 form-check">
<input type="radio" class="minimal" name="ope_sendalart_que2" @if($isInfo) disabled @endif value="1" {{$ope_sendalart_que2? 'checked':''}}>
<label class="form-check-label">{{__("はい")}}</label>
</div>
<div class="col-2 form-check">
<input type="radio" class="minimal" name="ope_sendalart_que2" @if($isInfo) disabled @endif value="0" {{!$ope_sendalart_que2? 'checked':''}}>
<label class="form-check-label">{{__("いいえ")}}</label>
</div>
</div>
</div>
<!-- /.form group - キュー2アラート送信 -->
<!-- キュー3アラート送信 -->
<div class="form-group col-3">
<label>{{__('validation.attributes.ope_sendalart_que3')}}</label>
</div>
<div class="form-group col-9">
<div class="row">
<div class="col-2 offset-1 form-check">
<input type="radio" class="minimal" name="ope_sendalart_que3" @if($isInfo) disabled @endif value="1" {{$ope_sendalart_que3? 'checked':''}}>
<label class="form-check-label">{{__("はい")}}</label>
</div>
<div class="col-2 form-check">
<input type="radio" class="minimal" name="ope_sendalart_que3" @if($isInfo) disabled @endif value="0" {{!$ope_sendalart_que3? 'checked':''}}>
<label class="form-check-label">{{__("いいえ")}}</label>
</div>
</div>
</div>
<!-- /.form group - キュー3アラート送信 -->
<!-- キュー4アラート送信 -->
<div class="form-group col-3">
<label>{{__('validation.attributes.ope_sendalart_que4')}}</label>
</div>
<div class="form-group col-9">
<div class="row">
<div class="col-2 offset-1 form-check">
<input type="radio" class="minimal" name="ope_sendalart_que4" @if($isInfo) disabled @endif value="1" {{$ope_sendalart_que4? 'checked':''}}>
<label class="form-check-label">{{__("はい")}}</label>
</div>
<div class="col-2 form-check">
<input type="radio" class="minimal" name="ope_sendalart_que4" @if($isInfo) disabled @endif value="0" {{!$ope_sendalart_que4? 'checked':''}}>
<label class="form-check-label">{{__("いいえ")}}</label>
</div>
</div>
</div>
<!-- /.form group - キュー4アラート送信 -->
<!-- キュー5アラート送信 -->
<div class="form-group col-3">
<label>{{__('validation.attributes.ope_sendalart_que5')}}</label>
</div>
<div class="form-group col-9">
<div class="row">
<div class="col-2 offset-1 form-check">
<input type="radio" class="minimal" name="ope_sendalart_que5" @if($isInfo) disabled @endif value="1" {{$ope_sendalart_que5? 'checked':''}}>
<label class="form-check-label">{{__("はい")}}</label>
</div>
<div class="col-2 form-check">
<input type="radio" class="minimal" name="ope_sendalart_que5" @if($isInfo) disabled @endif value="0" {{!$ope_sendalart_que5? 'checked':''}}>
<label class="form-check-label">{{__("いいえ")}}</label>
</div>
</div>
</div>
<!-- /.form group - キュー5アラート送信 -->
<!-- キュー6アラート送信 -->
<div class="form-group col-3">
<label>{{__('validation.attributes.ope_sendalart_que6')}}</label>
</div>
<div class="form-group col-9">
<div class="row">
<div class="col-2 offset-1 form-check">
<input type="radio" class="minimal" name="ope_sendalart_que6" @if($isInfo) disabled @endif value="1" {{$ope_sendalart_que6? 'checked':''}}>
<label class="form-check-label">{{__("はい")}}</label>
</div>
<div class="col-2 form-check">
<input type="radio" class="minimal" name="ope_sendalart_que6" @if($isInfo) disabled @endif value="0" {{!$ope_sendalart_que6? 'checked':''}}>
<label class="form-check-label">{{__("いいえ")}}</label>
</div>
</div>
</div>
<!-- /.form group - キュー6アラート送信 -->
<!-- キュー7アラート送信 -->
<div class="form-group col-3">
<label>{{__('validation.attributes.ope_sendalart_que7')}}</label>
</div>
<div class="form-group col-9">
<div class="row">
<div class="col-2 offset-1 form-check">
<input type="radio" class="minimal" name="ope_sendalart_que7" @if($isInfo) disabled @endif value="1" {{$ope_sendalart_que7? 'checked':''}}>
<label class="form-check-label">{{__("はい")}}</label>
</div>
<div class="col-2 form-check">
<input type="radio" class="minimal" name="ope_sendalart_que7" @if($isInfo) disabled @endif value="0" {{!$ope_sendalart_que7? 'checked':''}}>
<label class="form-check-label">{{__("いいえ")}}</label>
</div>
</div>
</div>
<!-- /.form group - キュー7アラート送信 -->
<!-- キュー8アラート送信 -->
<div class="form-group col-3">
<label>{{__('validation.attributes.ope_sendalart_que8')}}</label>
</div>
<div class="form-group col-9">
<div class="row">
<div class="col-2 offset-1 form-check">
<input type="radio" class="minimal" name="ope_sendalart_que8" @if($isInfo) disabled @endif value="1" {{$ope_sendalart_que8? 'checked':''}}>
<label class="form-check-label">{{__("はい")}}</label>
</div>
<div class="col-2 form-check">
<input type="radio" class="minimal" name="ope_sendalart_que8" @if($isInfo) disabled @endif value="0" {{!$ope_sendalart_que8? 'checked':''}}>
<label class="form-check-label">{{__("いいえ")}}</label>
</div>
</div>
</div>
<!-- キュー9アラート送信 -->
<div class="form-group col-3">
<label>{{__('validation.attributes.ope_sendalart_que9')}}</label>
</div>
<div class="form-group col-9">
<div class="row">
<div class="col-2 offset-1 form-check">
<input type="radio" class="minimal" name="ope_sendalart_que9" @if($isInfo) disabled @endif value="1" {{$ope_sendalart_que9? 'checked':''}}>
<label class="form-check-label">{{__("はい")}}</label>
</div>
<div class="col-2 form-check">
<input type="radio" class="minimal" name="ope_sendalart_que9" @if($isInfo) disabled @endif value="0" {{!$ope_sendalart_que9? 'checked':''}}>
<label class="form-check-label">{{__("いいえ")}}</label>
</div>
</div>
</div>
<!-- キュー10アラート送信 -->
<div class="form-group col-3">
<label>{{__('validation.attributes.ope_sendalart_que10')}}</label>
</div>
<div class="form-group col-9">
<div class="row">
<div class="col-2 offset-1 form-check">
<input type="radio" class="minimal" name="ope_sendalart_que10" @if($isInfo) disabled @endif value="1" {{$ope_sendalart_que10? 'checked':''}}>
<label class="form-check-label">{{__("はい")}}</label>
</div>
<div class="col-2 form-check">
<input type="radio" class="minimal" name="ope_sendalart_que10" @if($isInfo) disabled @endif value="0" {{!$ope_sendalart_que10? 'checked':''}}>
<label class="form-check-label">{{__("いいえ")}}</label>
</div>
</div>
</div>
<!-- キュー11アラート送信 -->
<div class="form-group col-3">
<label>{{__('validation.attributes.ope_sendalart_que11')}}</label>
</div>
<div class="form-group col-9">
<div class="row">
<div class="col-2 offset-1 form-check">
<input type="radio" class="minimal" name="ope_sendalart_que11" @if($isInfo) disabled @endif value="1" {{$ope_sendalart_que11? 'checked':''}}>
<label class="form-check-label">{{__("はい")}}</label>
</div>
<div class="col-2 form-check">
<input type="radio" class="minimal" name="ope_sendalart_que11" @if($isInfo) disabled @endif value="0" {{!$ope_sendalart_que11? 'checked':''}}>
<label class="form-check-label">{{__("いいえ")}}</label>
</div>
</div>
</div>
<!-- キュー12アラート送信 -->
<div class="form-group col-3">
<label>{{__('validation.attributes.ope_sendalart_que12')}}</label>
</div>
<div class="form-group col-9">
<div class="row">
<div class="col-2 offset-1 form-check">
<input type="radio" class="minimal" name="ope_sendalart_que12" @if($isInfo) disabled @endif value="1" {{$ope_sendalart_que12? 'checked':''}}>
<label class="form-check-label">{{__("はい")}}</label>
</div>
<div class="col-2 form-check">
<input type="radio" class="minimal" name="ope_sendalart_que12" @if($isInfo) disabled @endif value="0" {{!$ope_sendalart_que12? 'checked':''}}>
<label class="form-check-label">{{__("いいえ")}}</label>
</div>
</div>
</div>
<!-- キュー13アラート送信 -->
<div class="form-group col-3">
<label>{{__('validation.attributes.ope_sendalart_que13')}}</label>
</div>
<div class="form-group col-9">
<div class="row">
<div class="col-2 offset-1 form-check">
<input type="radio" class="minimal" name="ope_sendalart_que13" @if($isInfo) disabled @endif value="1" {{$ope_sendalart_que13? 'checked':''}}>
<label class="form-check-label">{{__("はい")}}</label>
</div>
<div class="col-2 form-check">
<input type="radio" class="minimal" name="ope_sendalart_que13" @if($isInfo) disabled @endif value="0" {{!$ope_sendalart_que13? 'checked':''}}>
<label class="form-check-label">{{__("いいえ")}}</label>
</div>
</div>
</div>
<!-- 管理者権限付与 -->
<div class="form-group col-3">
<label>{{__('validation.attributes.ope_auth1')}}</label>
</div>
<div class="form-group col-9">
<div class="row">
<div class="col-3 offset-1 form-check">
<input type="radio" class="minimal" name="ope_auth1" @if($isInfo) disabled @endif value="{{__("管理者権限付与")}}" {{$ope_auth1 == __("管理者権限付与")? 'checked':''}}>
<label class="form-check-label">{{__("管理者権限付与")}}</label>
</div>
<div class="col-2 form-check">
<input type="radio" class="minimal" name="ope_auth1" @if($isInfo) disabled @endif value="{{__("付与しない")}}" {{$ope_auth1 == __("付与しない")? 'checked':''}}>
<label class="form-check-label">{{__("付与しない")}}</label>
</div>
</div>
</div>
<!-- エリアマネージャー権限付与. -->
<div class="form-group col-3">
<label>{{__('validation.attributes.ope_auth2')}}</label>
</div>
<div class="form-group col-9">
<div class="row">
<div class="col-4 offset-1 form-check">
<input type="radio" class="minimal" name="ope_auth2" @if($isInfo) disabled @endif value="{{__("エリアマネージャー権限付与")}}" {{$ope_auth2 == __("エリアマネージャー権限付与")? 'checked':''}}>
<label class="form-check-label">{{__("エリアマネージャー権限付与")}}</label>
</div>
<div class="col-2 form-check">
<input type="radio" class="minimal" name="ope_auth2" @if($isInfo) disabled @endif value="{{__("付与しない")}}" {{$ope_auth2 == __("付与しない")? 'checked':''}}>
<label class="form-check-label">{{__("付与しない")}}</label>
</div>
</div>
</div>
<!-- エリアオペレーター権限付与. -->
<div class="form-group col-3">
<label>{{__('validation.attributes.ope_auth3')}}</label>
</div>
<div class="form-group col-9">
<div class="row">
<div class="col-4 offset-1 form-check">
<input type="radio" class="minimal" name="ope_auth3" @if($isInfo) disabled @endif value="{{__("エリアオペレーター権限付与")}}" {{$ope_auth3 == __("エリアオペレーター権限付与")? 'checked':''}}>
<label class="form-check-label">{{__("エリアオペレーター権限付与")}}</label>
</div>
<div class="col-2 form-check">
<input type="radio" class="minimal" name="ope_auth3" @if($isInfo) disabled @endif value="{{__("付与しない")}}" {{$ope_auth3 == __("付与しない")? 'checked':''}}>
<label class="form-check-label">{{__("付与しない")}}</label>
</div>
</div>
</div>
<!-- オペレーター権限付与. -->
<div class="form-group col-3">
<label>{{__('validation.attributes.ope_auth4')}}</label>
</div>
<div class="form-group col-9">
<div class="row">
<div class="col-4 offset-1 form-check">
<input type="radio" class="minimal" name="ope_auth4" @if($isInfo) disabled @endif value="{{__("オペレーター権限付与")}}" {{$ope_auth4 == __("オペレーター権限付与")? 'checked':''}}>
<label class="form-check-label">{{__("オペレーター権限付与")}}</label>
</div>
<div class="col-2 form-check">
<input type="radio" class="minimal" name="ope_auth4" @if($isInfo) disabled @endif value="{{__("付与しない")}}" {{$ope_auth4 == __("付与しない")? 'checked':''}}>
<label class="form-check-label">{{__("付与しない")}}</label>
</div>
</div>
</div>
<!-- 退職フラグ -->
<div class="form-group col-3">
<label>{{__('validation.attributes.ope_quit_flag')}}</label>
</div>
<div class="form-group col-9">
<div class="row">
<div class="col-2 offset-1 form-check">
<input type="radio" class="minimal" name="ope_quit_flag" @if($isInfo) disabled @endif value="1" {{$ope_quit_flag? 'checked':''}}>
<label class="form-check-label">{{__('退職')}}</label>
</div>
<div class="col-2 form-check">
<input type="radio" class="minimal" name="ope_quit_flag" @if($isInfo) disabled @endif value="0" {{!$ope_quit_flag? 'checked':''}}>
<label class="form-check-label">{{__('退職しない')}}</label>
</div>
</div>
</div>
<!-- /.form group - 退職フラグ -->
<!-- 退職日 -->
<div class="form-group col-3">
<label>{{__('validation.attributes.ope_quitday')}}</label>
</div>
<div class="form-group col-9">
<div class="input-group">
<input type="date" value="{{$ope_quitday}}" @if(!$isInfo) placeholder="{{__('validation.attributes.ope_quitday')}}" @endif name="ope_quitday" class="form-control form-control-lg" @if($isInfo) readonly @endif/>
</div>
</div>
<!-- /.form group - 退職日 -->
</div> </div>
{{-- 下部ボタン --}} </div>
@if($isEdit)
<button type="submit" class="btn btn-lg btn-success register">{{ __('保存') }}</button>
<button type="submit" class="btn btn-lg btn-secondary register">{{ __('戻る') }}</button>
@else
<button type="submit" class="btn btn-lg btn-success register">{{ __('登録') }}</button>
<button type="submit" class="btn btn-lg btn-danger register">{{ __('削除') }}</button>
@endif
</div> </div>

View File

@ -1,43 +1,44 @@
@extends('layouts.app') @extends('layouts.app')
@section('title', '[東京都|〇〇駐輪場] オペレータマスタ') @section('title', '新規')
@section('content') @section('content')
<!-- Content Header (Page header) --> <!-- Content Header -->
<div class="content-header"> <div class="content-header">
<div class="container-fluid"> <div class="container-fluid">
<div class="row mb-2"> <div class="row mb-2">
<div class="col-lg-6"> <div class="col-lg-6">
<h1 class="m-0 text-dark">新規登録</h1> <h1 class="m-0 text-dark">新規</h1>
</div><!-- /.col --> </div>
<div class="col-lg-6">
<ol class="breadcrumb float-sm-right text-sm"> <div class="col-lg-6">
<li class="breadcrumb-item"><a href="./index2.html">ホーム</a></li> <ol class="breadcrumb float-sm-right text-sm">
<!-- <li class="breadcrumb-item"><a href="./index3.html">[東京都|〇〇駐輪場]</a></li> --> <li class="breadcrumb-item">
<li class="breadcrumb-item"><a href="{{ route('opes') }}">オペレータマスタ</a></li> <a href="./index2.html">ホーム</a>
<li class="breadcrumb-item active">新規登録</li> </li>
</ol> <li class="breadcrumb-item">
</div><!-- /.col --> <a href="{{ route('opes') }}">オペレータマスタ</a>
</div><!-- /.row --> </li>
</div><!-- /.container-fluid --> <li class="breadcrumb-item active">新規</li>
</ol>
</div>
</div>
</div> </div>
<!-- /.content-header --> </div>
<!-- Main Content -->
<!-- Main content --> <section class="content">
<section class="content"> <div class="container-fluid">
<div class="container-fluid"> <div class="row">
<!-- SELECT2 EXAMPLE --> <div class="col-lg-12">
<div class="row"> <div class="card">
<div class="col-lg-12"> <div class="card-body">
<div class="card"> <form id="form_register" action="{{ route('opes_add') }}" method="POST">
<form method="post" action="{{ route('opes_add') }}" enctype="multipart/form-data">
@csrf @csrf
@include('admin.opes._form', ['isEdit' => 0, 'isInfo' => 0]) @include('admin.opes._form', ['isEdit' => false])
</form> </form>
</div> </div>
</div> </div>
</div> </div>
</div> </div>
</section> </div>
<!-- /.content --> </section>
@endsection @endsection

View File

@ -1,48 +1,55 @@
@extends('layouts.app') @extends('layouts.app')
@section('title', '[東京都|〇〇駐輪場] オペレータマスタ') @section('title', '編集')
@section('content') @section('content')
<!-- Content Header (Page header) --> {{-- Content Header --}}
<div class="content-header"> <div class="content-header">
<div class="container-fluid"> <div class="container-fluid">
<div class="row mb-2"> <div class="row mb-2">
<div class="col-lg-6"> <div class="col-lg-6">
<h1 class="m-0 text-dark">編集</h1> <h1 class="m-0 text-dark">編集</h1>
</div><!-- /.col --> </div>
<div class="col-lg-6"> <div class="col-lg-6">
<ol class="breadcrumb float-sm-right text-sm"> <ol class="breadcrumb float-sm-right text-sm">
<li class="breadcrumb-item"><a href="./index2.html">ホーム</a></li> <li class="breadcrumb-item">
<!-- <li class="breadcrumb-item"><a href="./index3.html">[東京都|〇〇駐輪場]</a></li> --> <a href="./index2.html">ホーム</a>
<li class="breadcrumb-item"><a href="{{ route('opes') }}">オペレータマスタ</a></li> </li>
<li class="breadcrumb-item">
<a href="{{ route('opes') }}">オペレータマスタ</a>
</li>
<li class="breadcrumb-item active">編集</li> <li class="breadcrumb-item active">編集</li>
</ol> </ol>
</div><!-- /.col --> </div>
</div><!-- /.row --> </div>
</div><!-- /.container-fluid --> </div>
</div> </div>
<!-- /.content-header -->
<!-- Main content --> {{-- Main Content --}}
<section class="content"> <section class="content">
<div class="container-fluid"> <div class="container-fluid">
<!-- SELECT2 EXAMPLE -->
<div class="row"> <div class="row">
<div class="col-lg-12"> <div class="col-lg-12">
<div class="card"> <div class="card">
<form method="post" action="{{ route('opes_edit', ['id' => $ope_id]) }}" enctype="multipart/form-data"> {{-- Edit Form --}}
<form id="form_edit"
action="{{ route('opes_edit', ['id' => $record->ope_id]) }}"
method="POST">
@csrf @csrf
@include('admin.opes._form', ['isEdit' => 1, 'isInfo' => 0]) @include('admin.opes._form', ['isEdit' => true])
</form>
{{-- Delete Form --}}
<form id="form_delete"
action="{{ route('opes_delete') }}"
method="POST"
style="display:none;">
@csrf
<input type="hidden" name="id" value="{{ $record->ope_id }}">
</form> </form>
</div> </div>
</div> </div>
</div> </div>
<!-- <div class="container-fluid mb20">
<button type="submit" class="btn btn-sm btn-default mr10">{{ __('削除') }}</button>
<button type="submit" class="btn btn-sm btn-default mr10">{{ __('インポート') }}</button>
<button type="submit" class="btn btn-sm btn-default mr10">{{ __('CSV出力') }}</button>
</div> -->
</div> </div>
</section> </section>
<!-- /.content -->
@endsection @endsection

View File

@ -1,48 +0,0 @@
@extends('layouts.app')
@section('title', '[東京都|〇〇駐輪場] オペレータマスタ')
@section('content')
<!-- Content Header (Page header) -->
<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><!-- /.col -->
<div class="col-lg-6">
<ol class="breadcrumb float-sm-right text-sm">
<li class="breadcrumb-item"><a href="./index2.html">XX様info(ホーム)</a></li>
<li class="breadcrumb-item"><a href="./index3.html">[東京都|〇〇駐輪場]</a></li>
<li class="breadcrumb-item">オペレータマスタ</li>
<li class="breadcrumb-item active">利用者マスタ</li>
</ol>
</div><!-- /.col -->
</div><!-- /.row -->
</div><!-- /.container-fluid -->
</div>
<!-- /.content-header -->
<!-- Main content -->
<section class="content">
<div class="container-fluid">
<!-- SELECT2 EXAMPLE -->
<div class="row">
<div class="col-lg-12">
<div class="card">
<form method="post" action="{{ route('opes_info', ['id' => $ope_id]) }}" enctype="multipart/form-data">
@csrf
@include('admin.opes._form', ['isEdit' => 0, 'isInfo' => 1])
</form>
</div>
</div>
</div>
<!-- <div class="container-fluid mb20">
<button type="submit" class="btn btn-sm btn-default mr10">{{ __('削除') }}</button>
<button type="submit" class="btn btn-sm btn-default mr10">{{ __('インポート') }}</button>
<button type="submit" class="btn btn-sm btn-default mr10">{{ __('CSV出力') }}</button>
</div> -->
</div>
</section>
<!-- /.content -->
@endsection

View File

@ -1,5 +1,5 @@
@extends('layouts.app') @extends('layouts.app')
@section('title', '[東京都|〇〇駐輪場] オペレータマスタ') @section('title', 'オペレータマスタ')
@section('content') @section('content')
<div class="content-header"> <div class="content-header">
@ -32,8 +32,7 @@
<div class="container-fluid mb20"> <div class="container-fluid mb20">
<button type="button" class="btn btn-sm btn-default mr10" onclick="location.href='{{ route('opes_add') }}'">新規</button> <button type="button" class="btn btn-sm btn-default mr10" onclick="location.href='{{ route('opes_add') }}'">新規</button>
<button type="button" class="btn btn-sm btn-default mr10" id="delete">削除</button> <button type="button" class="btn btn-sm btn-default mr10" id="delete">削除</button>
<button type="submit" class="btn btn-sm btn-default mr10" formaction="{{ route('opes_import') }}">インポート</button>
<button type="submit" class="btn btn-sm btn-default mr10" formaction="{{ route('opes_export') }}">CSV出力</button>
<div class="d-flex justify-content-end"> <div class="d-flex justify-content-end">
{{ $list->appends(['sort' => $sort, 'sort_type' => $sort_type])->links('pagination') }} {{ $list->appends(['sort' => $sort, 'sort_type' => $sort_type])->links('pagination') }}
</div> </div>
@ -49,13 +48,13 @@
@elseif(Session::has('error')) @elseif(Session::has('error'))
<div class="alert alert-danger alert-dismissible"> <div class="alert alert-danger alert-dismissible">
<button type="button" class="close" data-dismiss="alert" aria-hidden="true">×</button> <button type="button" class="close" data-dismiss="alert" aria-hidden="true">×</button>
<h4><i class="icon fa fa-ban"></i> エラー:</h4> <h4><i class="icon fa fa-ban"></i> 入力内容に不備があります。</h4>
{!! Session::get('error') !!} {!! Session::get('error') !!}
</div> </div>
@elseif(isset($errorMsg)) @elseif(isset($errorMsg))
<div class="alert alert-danger alert-dismissible"> <div class="alert alert-danger alert-dismissible">
<button type="button" class="close" data-dismiss="alert" aria-hidden="true">×</button> <button type="button" class="close" data-dismiss="alert" aria-hidden="true">×</button>
<h4><i class="icon fa fa-ban"></i> エラー:</h4> <h4><i class="icon fa fa-ban"></i> 入力内容に不備があります。</h4>
{!! $errorMsg !!} {!! $errorMsg !!}
</div> </div>
@endif @endif
@ -70,19 +69,21 @@
<thead> <thead>
<tr> <tr>
<th style="width:140px;" class="text-left"> <th style="width:140px;" class="text-left">
<input type="checkbox" onclick="$('input[name*=\'pk\']').prop('checked', this.checked);"> <input type="checkbox" onclick="$('input[name=\'ids[]\']').prop('checked', this.checked);">
</th> </th>
<th class="sorting {{ ($sort=='ope_id') ? ($sort_type=='asc'?'sorting_asc':'sorting_desc') : '' }}" sort="ope_id"><span>オペレータID</span></th> <th class="sorting {{ ($sort=='ope_id') ? ($sort_type=='asc'?'sorting_asc':'sorting_desc') : '' }}" sort="ope_id"><span>オペレータID</span></th>
<th class="sorting {{ ($sort=='ope_name') ? ($sort_type=='asc'?'sorting_asc':'sorting_desc') : '' }}" sort="ope_name"><span>オペレータ名</span></th> <th class="sorting {{ ($sort=='ope_name') ? ($sort_type=='asc'?'sorting_asc':'sorting_desc') : '' }}" sort="ope_name"><span>オペレータ名</span></th>
<th><span>パスワード</span></th> <!-- <th><span>パスワード</span></th> -->
<th class="sorting {{ ($sort=='ope_type') ? ($sort_type=='asc'?'sorting_asc':'sorting_desc') : '' }}" sort="ope_type"><span>オペレータ種別</span></th> <th class="sorting {{ ($sort=='ope_type') ? ($sort_type=='asc'?'sorting_asc':'sorting_desc') : '' }}" sort="ope_type"><span>オペレータ種別</span></th>
<th><span>メールアドレス</span></th> <th><span>メールアドレス</span></th>
<th class="sorting {{ ($sort=='ope_phone') ? ($sort_type=='asc'?'sorting_asc':'sorting_desc') : '' }}" sort="ope_phone"><span>電話番号</span></th> <th class="sorting {{ ($sort=='ope_phone') ? ($sort_type=='asc'?'sorting_asc':'sorting_desc') : '' }}" sort="ope_phone"><span>電話番号</span></th>
<th><span>キュー1~13アラート送信</span></th> @for ($i = 1; $i <= 13; $i++)
<th><span>管理者権限</span></th> <th class="text-center sorting {{ ($sort=='ope_sendalart_que'.$i) ? ($sort_type=='asc'?'sorting_asc':'sorting_desc') : '' }}" sort="ope_sendalart_que{{$i}}"><span>キュー{{ $i }}アラート送信</span></th>
<th><span>エリアマネージャー</span></th> @endfor
<th><span>エリアオペレーター</span></th> <th class="sorting {{ ($sort=='ope_auth1') ? ($sort_type=='asc'?'sorting_asc':'sorting_desc') : '' }}" sort="ope_auth1"><span>管理者権限付与</span></th>
<th><span>オペレーター権限</span></th> <th class="sorting {{ ($sort=='ope_auth2') ? ($sort_type=='asc'?'sorting_asc':'sorting_desc') : '' }}" sort="ope_auth2"><span>エリアマネージャー権限付与</span></th>
<th class="sorting {{ ($sort=='ope_auth3') ? ($sort_type=='asc'?'sorting_asc':'sorting_desc') : '' }}" sort="ope_auth3"><span>エリアオペレーター権限付与</span></th>
<th class="sorting {{ ($sort=='ope_auth4') ? ($sort_type=='asc'?'sorting_asc':'sorting_desc') : '' }}" sort="ope_auth4"><span>オペレーター権限付与</span></th>
<th class="sorting {{ ($sort=='ope_quit_flag') ? ($sort_type=='asc'?'sorting_asc':'sorting_desc') : '' }}" sort="ope_quit_flag"><span>退職フラグ</span></th> <th class="sorting {{ ($sort=='ope_quit_flag') ? ($sort_type=='asc'?'sorting_asc':'sorting_desc') : '' }}" sort="ope_quit_flag"><span>退職フラグ</span></th>
<th class="sorting {{ ($sort=='ope_quitday') ? ($sort_type=='asc'?'sorting_asc':'sorting_desc') : '' }}" sort="ope_quitday"><span>退職日</span></th> <th class="sorting {{ ($sort=='ope_quitday') ? ($sort_type=='asc'?'sorting_asc':'sorting_desc') : '' }}" sort="ope_quitday"><span>退職日</span></th>
</tr> </tr>
@ -92,31 +93,21 @@
<tr> <tr>
<td class="align-middle" style="background-color:#faebd7;"> <td class="align-middle" style="background-color:#faebd7;">
<div class="d-flex align-items-center"> <div class="d-flex align-items-center">
<input type="checkbox" class="m-0 checkbox" name="pk[]" value="{{ $item->ope_id }}"> <input type="checkbox" class="m-0 checkbox" name="ids[]" value="{{ $item->ope_id }}">
<a href="{{ route('opes_edit', ['id' => $item->ope_id]) }}" class="btn btn-sm btn-default ml10">編集</a> <a href="{{ route('opes_edit', ['id' => $item->ope_id]) }}" class="btn btn-sm btn-default ml10">編集</a>
</div> </div>
</td> </td>
<td class="sm-item text-left align-middle">{{ $item->ope_id }}</td> <td class="sm-item text-left align-middle">{{ $item->ope_id }}</td>
<td class="sm-item text-left align-middle">{{ $item->ope_name }}</td> <td class="sm-item text-left align-middle">{{ $item->ope_name }}</td>
<td class="sm-item text-left align-middle">{{ $item->ope_pass }}</td> <!-- <td class="sm-item text-left align-middle">{{ $item->ope_pass }}</td> -->
<td class="sm-item text-left align-middle">{{ \App\Models\Ope::OPE_TYPE[$item->ope_type] }}</td> <td class="sm-item text-left align-middle">{{ \App\Models\Ope::OPE_TYPE[$item->ope_type] }}</td>
<td class="sm-item text-left align-middle">{{ $item->ope_mail }}</td> <td class="sm-item text-left align-middle">{{ $item->ope_mail }}</td>
<td class="sm-item text-left align-middle">{{ $item->ope_phone }}</td> <td class="sm-item text-left align-middle">{{ $item->ope_phone }}</td>
<td class="sm-item text-left align-middle"> @for ($i = 1; $i <= 13; $i++)
{{ $item->ope_sendalart_que1 ? 'はい' : 'いいえ' }} / <td class="text-center">
{{ $item->ope_sendalart_que2 ? 'はい' : 'いいえ' }} / {{ $item->{'ope_sendalart_que'.$i} ? 'はい' : 'いいえ' }}
{{ $item->ope_sendalart_que3 ? 'はい' : 'いいえ' }} / </td>
{{ $item->ope_sendalart_que4 ? 'はい' : 'いいえ' }} / @endfor
{{ $item->ope_sendalart_que5 ? 'はい' : 'いいえ' }} /
{{ $item->ope_sendalart_que6 ? 'はい' : 'いいえ' }} /
{{ $item->ope_sendalart_que7 ? 'はい' : 'いいえ' }} /
{{ $item->ope_sendalart_que8 ? 'はい' : 'いいえ' }} /
{{ $item->ope_sendalart_que9 ? 'はい' : 'いいえ' }} /
{{ $item->ope_sendalart_que10 ? 'はい' : 'いいえ' }} /
{{ $item->ope_sendalart_que11 ? 'はい' : 'いいえ' }} /
{{ $item->ope_sendalart_que12 ? 'はい' : 'いいえ' }} /
{{ $item->ope_sendalart_que13 ? 'はい' : 'いいえ' }}
</td>
<td class="sm-item text-left align-middle">{{ $item->ope_auth1 }}</td> <td class="sm-item text-left align-middle">{{ $item->ope_auth1 }}</td>
<td class="sm-item text-left align-middle">{{ $item->ope_auth2 }}</td> <td class="sm-item text-left align-middle">{{ $item->ope_auth2 }}</td>
<td class="sm-item text-left align-middle">{{ $item->ope_auth3 }}</td> <td class="sm-item text-left align-middle">{{ $item->ope_auth3 }}</td>
@ -134,43 +125,5 @@
</div> </div>
</section> </section>
<form action="{{ route('opes_export') }}" method="GET" id="form_export"></form>
@push('scripts')
<script>
// // 全選択
// document.getElementById('checkbox_all')?.addEventListener('change', function(e){
// document.querySelectorAll('.checkbox').forEach(cb => cb.checked = e.target.checked);
// });
// 削除確認
document.getElementById('delete')?.addEventListener('click', function(){
const anyChecked = Array.from(document.querySelectorAll('.checkbox')).some(cb => cb.checked);
if (!anyChecked) {
alert('削除対象が選択されていません。');
return;
}
if (confirm('削除してよろしいですか?')) {
document.getElementById('form_delete').submit();
}
});
// ソート
document.querySelectorAll('th.sorting').forEach(th => {
th.addEventListener('click', function(){
const form = document.getElementById('list-form');
const current = "{{ $sort ?? '' }}";
const currentType = "{{ $sort_type ?? '' }}";
const nextCol = this.getAttribute('sort');
let nextType = 'asc';
if (current === nextCol) {
nextType = (currentType === 'asc') ? 'desc' : 'asc';
}
form.querySelector('[name=sort]').value = nextCol;
form.querySelector('[name=sort_type]').value = nextType;
form.submit();
});
});
</script>
@endpush
@endsection @endsection

View File

@ -51,12 +51,13 @@
inputmode="decimal" inputmode="decimal"
pattern="^\d+(\.\d{1,2})?$" pattern="^\d+(\.\d{1,2})?$"
class="form-control text-end" class="form-control text-end"
value="{{ old('tax_percent', is_numeric($tax->tax_percent ?? null) ? rtrim(rtrim($tax->tax_percent, '0'), '.') : '') }}" value="{{ old('tax_percent', isset($tax->tax_percent) ? rtrim(rtrim($tax->tax_percent, '0'), '.') : '') }}"
placeholder="消費税率"> placeholder="消費税率">
</div> </div>
</div> </div>
</div> </div>
{{-- 適用日(必須・日付型) --}} {{-- 適用日(必須・日付型) --}}
<div class="row mb-3"> <div class="row mb-3">
<div class="col-3 form-group"> <div class="col-3 form-group">