This commit is contained in:
parent
ae331335f8
commit
a17960f61c
@ -301,6 +301,7 @@ class UsersController
|
||||
$rules = [
|
||||
'user_id' => ['required', 'regex:/^\d+$/', 'digits_between:1,10'], // 半角数字(最大10桁)
|
||||
'user_name' => ['required', 'string', 'max:255'],
|
||||
'user_pass' => ['required', 'string', 'min:8', 'confirmed'],
|
||||
// 任意
|
||||
'user_primemail' => ['nullable', 'email', 'max:255'],
|
||||
'user_gender' => ['nullable', 'in:男性,女性'],
|
||||
@ -317,6 +318,9 @@ class UsersController
|
||||
'user_id.regex' => '利用者IDは半角数字のみで入力してください。',
|
||||
'user_id.digits_between' => '利用者IDは最大10桁以内で入力してください。',
|
||||
'user_name.required' => '氏名は必須です。',
|
||||
'user_pass.required' => 'パスワードは必須です。',
|
||||
'user_pass.min' => 'パスワードは8文字以上で入力してください。',
|
||||
'user_pass.confirmed' => 'パスワードと確認用パスワードが一致しません。',
|
||||
];
|
||||
|
||||
// ▼ 属性名(日本語ラベル)
|
||||
@ -358,6 +362,7 @@ class UsersController
|
||||
*/
|
||||
public function edit(Request $request, int $seq)
|
||||
{
|
||||
|
||||
$user = DB::table('user')->where('user_seq', $seq)->first();
|
||||
if (!$user) {
|
||||
abort(404, '利用者情報が見つかりません。');
|
||||
@ -370,6 +375,21 @@ class UsersController
|
||||
|
||||
$categoryOptions = $this->buildCategoryOptions();
|
||||
|
||||
// ▼ 退会処理専用(hiddenフィールド quit_action があれば退会処理)
|
||||
if ($request->has('quit_action')) {
|
||||
DB::table('user')->where('user_seq', $seq)->update([
|
||||
'user_quit_flag' => 1,
|
||||
'user_quitday' => now()->format('Y-m-d'),
|
||||
'ope_id' => $request->input('ope_id') ?? auth()->user()->ope_id ?? null,
|
||||
'updated_at' => now(),
|
||||
]);
|
||||
|
||||
return redirect()
|
||||
->route('users_edit', ['seq' => $seq])
|
||||
->with('status', '退会処理が完了しました。');
|
||||
}
|
||||
|
||||
|
||||
if ($request->isMethod('get')) {
|
||||
return view('admin.users.edit', [
|
||||
'user' => $user,
|
||||
@ -381,6 +401,7 @@ class UsersController
|
||||
$rules = [
|
||||
'user_id' => ['required', 'regex:/^\d+$/', 'digits_between:1,10'],
|
||||
'user_name' => ['required', 'string', 'max:255'],
|
||||
'user_pass' => ['nullable', 'string', 'min:8', 'confirmed'],
|
||||
'user_primemail' => ['nullable', 'email', 'max:255'],
|
||||
'user_gender' => ['nullable', 'in:男性,女性,未入力'],
|
||||
'member_id' => ['nullable', 'string', 'max:255'],
|
||||
@ -460,4 +481,34 @@ class UsersController
|
||||
->route('users_edit', ['seq' => $seq])
|
||||
->with('status', '利用者情報を更新しました。');
|
||||
}
|
||||
|
||||
/**
|
||||
* 利用者削除(POST: 削除実行)
|
||||
* - user_seq をキーに削除処理を行う
|
||||
* - 削除前に存在確認を行い、存在しない場合はエラーを返す
|
||||
* - 削除完了後、一覧画面へリダイレクト
|
||||
*/
|
||||
public function delete(Request $request)
|
||||
{
|
||||
// ▼ パラメータ取得
|
||||
$userSeq = (int) $request->input('user_seq');
|
||||
|
||||
// ▼ 対象レコード存在確認
|
||||
$user = DB::table('user')->where('user_seq', $userSeq)->first();
|
||||
if (!$user) {
|
||||
// 該当データなし
|
||||
return redirect()
|
||||
->route('users')
|
||||
->with('error', '利用者情報が見つかりません。');
|
||||
}
|
||||
|
||||
// ▼ 削除処理実行
|
||||
DB::table('user')->where('user_seq', $userSeq)->delete();
|
||||
|
||||
// ▼ 正常終了メッセージを一覧画面に表示
|
||||
return redirect()
|
||||
->route('users')
|
||||
->with('success', '利用者を削除しました。');
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@ -64,15 +64,15 @@ class Park extends Model
|
||||
'reduction_guide_display_flag', // 減免案内表示フラグ
|
||||
'reduction_target_age', // 減免対象年齢
|
||||
'reduction_guide_display_start_month', // 減免案内表示開始月数
|
||||
'cross_year' // 年跨ぎ
|
||||
// 如有 created_at/updated_at 可省略不填
|
||||
'cross_year', // 年跨ぎ
|
||||
'reverse_use_general', // 逆利用一般
|
||||
'reverse_use_student' // 逆利用学生
|
||||
];
|
||||
|
||||
public static function search($inputs)
|
||||
{
|
||||
$list = self::query();
|
||||
if ($inputs['isMethodPost']) {
|
||||
// 搜索条件可追加
|
||||
}
|
||||
// Sort
|
||||
if ($inputs['sort']) {
|
||||
|
||||
516
resources/views/admin/users/_form.blade.php
Normal file
516
resources/views/admin/users/_form.blade.php
Normal file
@ -0,0 +1,516 @@
|
||||
{{-- 利用者マスタ 共通フォーム --}}
|
||||
<form method="post"
|
||||
id="form_edit"
|
||||
action="{{ $isEdit ? route('users_edit', ['seq' => $user->user_seq]) : route('users_add') }}"
|
||||
enctype="multipart/form-data">
|
||||
@csrf
|
||||
|
||||
<div class="card">
|
||||
<div class="card-header">
|
||||
<h3 class="card-title">基本情報</h3>
|
||||
</div>
|
||||
|
||||
<div class="card-body">
|
||||
|
||||
{{-- 利用者連番(表示のみ) --}}
|
||||
<div class="form-group row">
|
||||
<label class="col-md-2 col-form-label">利用者連番</label>
|
||||
<div class="col-md-10">
|
||||
<input type="text" class="form-control form-control-sm"
|
||||
value="{{ $isEdit ? $user->user_seq : '新規' }}" readonly>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
{{-- 利用者ID --}}
|
||||
<div class="form-group row">
|
||||
<label class="col-md-2 col-form-label">利用者ID</label>
|
||||
<div class="col-md-10">
|
||||
<input type="text" name="user_id" class="form-control form-control-sm"
|
||||
value="{{ $value('user_id') }}" readonly>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
{{-- 会員ID --}}
|
||||
<div class="form-group row">
|
||||
<label class="col-md-2 col-form-label">会員ID <span class="text-danger">*</span></label>
|
||||
<div class="col-md-10">
|
||||
<input type="text" name="member_id" class="form-control form-control-sm"
|
||||
value="{{ $value('member_id') }}" placeholder="会員ID">
|
||||
</div>
|
||||
</div>
|
||||
|
||||
{{-- パスワード --}}
|
||||
<div class="form-group row">
|
||||
<label class="col-md-2 col-form-label">パスワード</label>
|
||||
<div class="col-md-10">
|
||||
<input type="text" name="user_pass" class="form-control form-control-sm"
|
||||
value="{{ $value('user_pass') }}" readonly>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
{{-- 手動登録フラグ --}}
|
||||
<div class="form-group row">
|
||||
<label class="col-md-2 col-form-label">
|
||||
手動登録フラグ <span class="text-danger">*</span>
|
||||
</label>
|
||||
<div class="col-md-10 d-flex align-items-center">
|
||||
<div class="form-check mr-3">
|
||||
<input class="form-check-input" type="radio" name="user_manual_regist_flag"
|
||||
id="user_manual_regist_flag_1" value="1"
|
||||
{{ old('user_manual_regist_flag', '0') == '1' ? 'checked' : '' }}>
|
||||
<label for="user_manual_regist_flag_1" class="form-check-label">はい</label>
|
||||
</div>
|
||||
<div class="form-check">
|
||||
<input class="form-check-input" type="radio" name="user_manual_regist_flag"
|
||||
id="user_manual_regist_flag_0" value="0"
|
||||
{{ old('user_manual_regist_flag', '0') == '0' ? 'checked' : '' }}>
|
||||
<label for="user_manual_regist_flag_0" class="form-check-label">いいえ</label>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
@error('user_manual_regist_flag')
|
||||
<div class="col-md-10 offset-md-2">
|
||||
<small class="text-danger">{{ $message }}</small>
|
||||
</div>
|
||||
@enderror
|
||||
</div>
|
||||
|
||||
{{-- 郵送必要フラグ --}}
|
||||
<div class="form-group row">
|
||||
<label class="col-md-2 col-form-label">
|
||||
郵送必要フラグ <span class="text-danger">*</span>
|
||||
</label>
|
||||
<div class="col-md-10 d-flex align-items-center">
|
||||
<div class="form-check mr-3">
|
||||
<input class="form-check-input" type="radio" name="user_mailing_flag"
|
||||
id="user_mailing_flag_1" value="1"
|
||||
{{ old('user_mailing_flag', '0') == '1' ? 'checked' : '' }}>
|
||||
<label for="user_mailing_flag_1" class="form-check-label">はい</label>
|
||||
</div>
|
||||
<div class="form-check">
|
||||
<input class="form-check-input" type="radio" name="user_mailing_flag"
|
||||
id="user_mailing_flag_0" value="0"
|
||||
{{ old('user_mailing_flag', '0') == '0' ? 'checked' : '' }}>
|
||||
<label for="user_mailing_flag_0" class="form-check-label">いいえ</label>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
@error('user_mailing_flag')
|
||||
<div class="col-md-10 offset-md-2">
|
||||
<small class="text-danger">{{ $message }}</small>
|
||||
</div>
|
||||
@enderror
|
||||
</div>
|
||||
|
||||
{{-- 旧定期契約番号 --}}
|
||||
<div class="form-group row">
|
||||
<label class="col-md-2 col-form-label">旧定期契約番号</label>
|
||||
<div class="col-md-10">
|
||||
<input type="text" name="user_tag_serial" value="{{ old('user_tag_serial') }}"
|
||||
class="form-control" placeholder="旧定期契約番号">
|
||||
</div>
|
||||
</div>
|
||||
|
||||
{{-- タグシリアル --}}
|
||||
<div class="form-group row">
|
||||
<label class="col-md-2 col-form-label">タグシリアル</label>
|
||||
<div class="col-md-10">
|
||||
<input type="text" name="user_tag_serial" value="{{ old('user_tag_serial') }}"
|
||||
class="form-control" placeholder="タグシリアル">
|
||||
</div>
|
||||
</div>
|
||||
|
||||
{{-- タグシリアル(64) --}}
|
||||
<div class="form-group row">
|
||||
<label class="col-md-2 col-form-label">タグシリアル(64)</label>
|
||||
<div class="col-md-10">
|
||||
<input type="text" name="user_tag_serial_64" value="{{ old('user_tag_serial_64') }}"
|
||||
class="form-control" placeholder="タグシリアル(64)">
|
||||
</div>
|
||||
</div>
|
||||
|
||||
{{-- QRコード --}}
|
||||
<div class="form-group row">
|
||||
<label class="col-md-2 col-form-label">QRコード</label>
|
||||
<div class="col-md-10">
|
||||
<input type="text" name="qr_code" value="{{ old('qr_code') }}" class="form-control">
|
||||
</div>
|
||||
</div>
|
||||
|
||||
{{-- タグ/QRフラグ --}}
|
||||
<div class="form-group row">
|
||||
<label class="col-md-2 col-form-label">タグ/QRフラグ<span class="text-danger">*</span></label>
|
||||
<div class="col-md-10 d-flex align-items-center">
|
||||
<div class="form-check mr-3">
|
||||
<input class="form-check-input" type="radio" name="tag_qr_flag"
|
||||
id="tag_qr_tag" value="0"
|
||||
{{ old('tag_qr_flag', '0') == '0' ? 'checked' : '' }}>
|
||||
<label for="tag_qr_tag" class="form-check-label">QR</label>
|
||||
</div>
|
||||
<div class="form-check mr-3">
|
||||
<input class="form-check-input" type="radio" name="tag_qr_flag"
|
||||
id="tag_qr_qr" value="1"
|
||||
{{ old('tag_qr_flag', '0') == '1' ? 'checked' : '' }}>
|
||||
<label for="tag_qr_qr" class="form-check-label">タグ</label>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
{{-- AID / 設置場所QR --}}
|
||||
<div class="form-group row">
|
||||
<label class="col-md-2 col-form-label">AID</label>
|
||||
<div class="col-md-10">
|
||||
<input type="text" name="user_aid" value="{{ old('user_aid') }}" class="form-control">
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="form-group row">
|
||||
<label class="col-md-2 col-form-label">居場所通知用QRID</label>
|
||||
<div class="col-md-10">
|
||||
<input type="text" name="user_place_qrid" value="{{ old('user_place_qrid') }}" class="form-control">
|
||||
</div>
|
||||
</div>
|
||||
|
||||
{{-- 利用者属性 --}}
|
||||
<div class="form-group row">
|
||||
<label class="col-md-2 col-form-label">利用者分類ID</label>
|
||||
<div class="col-md-10">
|
||||
<input type="text" name="user_categoryid" value="{{ old('user_categoryid') }}" class="form-control">
|
||||
</div>
|
||||
</div>
|
||||
|
||||
{{-- 利用者名 --}}
|
||||
<div class="form-group row">
|
||||
<label class="col-md-2 col-form-label">利用者名 <span class="text-danger">*</span></label>
|
||||
<div class="col-md-10">
|
||||
<input type="text" name="user_name" class="form-control form-control-sm"
|
||||
value="{{ $value('user_name') }}" required>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
{{-- フリガナ --}}
|
||||
<div class="form-group row">
|
||||
<label class="col-md-2 col-form-label">フリガナ</label>
|
||||
<div class="col-md-10">
|
||||
<input type="text" name="user_phonetic" class="form-control form-control-sm"
|
||||
value="{{ $value('user_phonetic') }}">
|
||||
</div>
|
||||
</div>
|
||||
|
||||
{{-- 自宅電話番号 --}}
|
||||
<div class="form-group row">
|
||||
<label class="col-md-2 col-form-label">自宅電話番号</label>
|
||||
<div class="col-md-10">
|
||||
<input type="text" name="user_homephone" class="form-control form-control-sm"
|
||||
value="{{ $value('user_homephone') }}" placeholder="000-0000-0000">
|
||||
</div>
|
||||
</div>
|
||||
|
||||
{{-- 携帯電話番号 --}}
|
||||
<div class="form-group row">
|
||||
<label class="col-md-2 col-form-label">携帯電話番号</label>
|
||||
<div class="col-md-10">
|
||||
<input type="text" name="user_mobile" class="form-control form-control-sm"
|
||||
value="{{ $value('user_mobile') }}" placeholder="080-0000-0000">
|
||||
</div>
|
||||
</div>
|
||||
|
||||
{{-- メールアドレス --}}
|
||||
<div class="form-group row">
|
||||
<label class="col-md-2 col-form-label">メールアドレス</label>
|
||||
<div class="col-md-10">
|
||||
<input type="email" name="user_primemail" class="form-control form-control-sm"
|
||||
value="{{ $value('user_primemail') }}" placeholder="name@example.com">
|
||||
</div>
|
||||
</div>
|
||||
|
||||
{{-- 予備メールアドレス --}}
|
||||
<div class="form-group row">
|
||||
<label class="col-md-2 col-form-label">予備メールアドレス</label>
|
||||
<div class="col-md-10">
|
||||
<input type="email" name="user_submail" class="form-control form-control-sm"
|
||||
value="{{ $value('user_submail') }}" placeholder="name@example.com">
|
||||
</div>
|
||||
</div>
|
||||
|
||||
{{-- 居住所 --}}
|
||||
<div class="form-group row">
|
||||
<label class="col-md-2 col-form-label">居住所:郵便番号</label>
|
||||
<div class="col-md-10">
|
||||
<input type="text" name="user_regident_zip" class="form-control form-control-sm"
|
||||
value="{{ $value('user_regident_zip') }}">
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group row">
|
||||
<label class="col-md-2 col-form-label">居住所:都道府県</label>
|
||||
<div class="col-md-10">
|
||||
<input type="text" name="user_regident_pre" class="form-control form-control-sm"
|
||||
value="{{ $value('user_regident_pre') }}">
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group row">
|
||||
<label class="col-md-2 col-form-label">居住所:市区町村</label>
|
||||
<div class="col-md-10">
|
||||
<input type="text" name="user_regident_city" class="form-control form-control-sm"
|
||||
value="{{ $value('user_regident_city') }}">
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group row">
|
||||
<label class="col-md-2 col-form-label">居住所:住所</label>
|
||||
<div class="col-md-10">
|
||||
<input type="text" name="user_regident_add" class="form-control form-control-sm"
|
||||
value="{{ $value('user_regident_add') }}">
|
||||
</div>
|
||||
</div>
|
||||
|
||||
{{-- 関連住所 --}}
|
||||
<div class="form-group row">
|
||||
<label class="col-md-2 col-form-label">関連住所:郵便番号</label>
|
||||
<div class="col-md-10">
|
||||
<input type="text" name="user_relate_zip" class="form-control form-control-sm"
|
||||
value="{{ $value('user_relate_zip') }}">
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group row">
|
||||
<label class="col-md-2 col-form-label">関連住所:都道府県</label>
|
||||
<div class="col-md-10">
|
||||
<input type="text" name="user_relate_pre" class="form-control form-control-sm"
|
||||
value="{{ $value('user_relate_pre') }}">
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group row">
|
||||
<label class="col-md-2 col-form-label">関連住所:市区町村</label>
|
||||
<div class="col-md-10">
|
||||
<input type="text" name="user_relate_city" class="form-control form-control-sm"
|
||||
value="{{ $value('user_relate_city') }}">
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group row">
|
||||
<label class="col-md-2 col-form-label">関連住所:住所</label>
|
||||
<div class="col-md-10">
|
||||
<input type="text" name="user_relate_add" class="form-control form-control-sm"
|
||||
value="{{ $value('user_relate_add') }}">
|
||||
</div>
|
||||
</div>
|
||||
|
||||
{{-- 区民 --}}
|
||||
<div class="form-group row">
|
||||
<label class="col-md-2 col-form-label">区民</label>
|
||||
<div class="col-md-10">
|
||||
<input type="text" name="ward_residents" class="form-control form-control-sm"
|
||||
value="{{ $value('ward_residents') }}">
|
||||
</div>
|
||||
</div>
|
||||
|
||||
{{-- 勤務先 --}}
|
||||
<div class="form-group row">
|
||||
<label class="col-md-2 col-form-label">勤務先</label>
|
||||
<div class="col-md-10">
|
||||
<input type="text" name="user_workplace" class="form-control form-control-sm"
|
||||
value="{{ $value('user_workplace') }}">
|
||||
</div>
|
||||
</div>
|
||||
|
||||
{{-- 学校 --}}
|
||||
<div class="form-group row">
|
||||
<label class="col-md-2 col-form-label">学校</label>
|
||||
<div class="col-md-10">
|
||||
<input type="text" name="user_school" class="form-control form-control-sm"
|
||||
value="{{ $value('user_school') }}">
|
||||
</div>
|
||||
</div>
|
||||
|
||||
{{-- 卒業予定 --}}
|
||||
<div class="form-group row">
|
||||
<label class="col-md-2 col-form-label">卒業予定</label>
|
||||
<div class="col-md-10">
|
||||
<input type="date" name="user_graduate" class="form-control form-control-sm"
|
||||
value="{{ $value('user_graduate') }}">
|
||||
</div>
|
||||
</div>
|
||||
|
||||
{{-- 本人確認チェック済(5状態) --}}
|
||||
@php
|
||||
$options = [
|
||||
0 => '未チェック',
|
||||
1 => '自動チェックOK',
|
||||
2 => '手動チェックOK',
|
||||
3 => '手動チェックNG',
|
||||
4 => '自動チェックNG',
|
||||
];
|
||||
$current = (string) old('user_idcard_chk_flag', $isEdit ? (string)($user->user_idcard_chk_flag ?? '0') : '0');
|
||||
@endphp
|
||||
<div class="form-group row">
|
||||
<label class="col-md-2 col-form-label">本人確認チェック済 <span class="text-danger">*</span></label>
|
||||
<div class="col-md-10 d-flex flex-wrap">
|
||||
@foreach ($options as $flag => $label)
|
||||
@php $id = "user_idcard_chk_flag_{$flag}"; @endphp
|
||||
<div class="form-check mr-3">
|
||||
<input class="form-check-input" type="radio" name="user_idcard_chk_flag" id="{{ $id }}" value="{{ $flag }}"
|
||||
{{ (string)$flag === $current ? 'checked' : '' }}>
|
||||
<label class="form-check-label" for="{{ $id }}">{{ $label }}</label>
|
||||
</div>
|
||||
@endforeach
|
||||
</div>
|
||||
</div>
|
||||
|
||||
{{-- 本人確認日時 --}}
|
||||
<div class="form-group row">
|
||||
<label class="col-md-2 col-form-label">本人確認日時</label>
|
||||
<div class="col-md-10">
|
||||
<input type="date" name="user_chk_day" class="form-control form-control-sm"
|
||||
value="{{ $value('user_chk_day') }}">
|
||||
</div>
|
||||
</div>
|
||||
|
||||
{{-- 本人確認オペレータ --}}
|
||||
<div class="form-group row">
|
||||
<label class="col-md-2 col-form-label">本人確認オペレータ</label>
|
||||
<div class="col-md-10">
|
||||
<select name="ope_id" class="form-control form-control-sm">
|
||||
<option value="">本人確認オペレータID</option>
|
||||
@foreach ($operators as $operator)
|
||||
<option value="{{ $operator->ope_id }}"
|
||||
{{ (string) old('ope_id', $isEdit ? (string) ($user->ope_id ?? '') : '') === (string) $operator->ope_id ? 'selected' : '' }}>
|
||||
{{ $operator->ope_name }}
|
||||
</option>
|
||||
@endforeach
|
||||
</select>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
{{-- タグ発行関連 --}}
|
||||
<div class="form-group row">
|
||||
<label class="col-md-2 col-form-label">タグ発行数</label>
|
||||
<div class="col-md-10">
|
||||
<input type="number" name="user_tag_issue" class="form-control form-control-sm"
|
||||
value="{{ $value('user_tag_issue') }}">
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="form-group row">
|
||||
<label class="col-md-2 col-form-label">タグ発行許可<span class="text-danger">*</span></label>
|
||||
<div class="col-md-10 d-flex flex-wrap">
|
||||
<div class="form-check mr-3">
|
||||
<input class="form-check-input" type="radio" name="issue_permission"
|
||||
id="issue_permission_ok" value="1"
|
||||
{{ $value('issue_permission','1') === '1' ? 'checked' : '' }}>
|
||||
<label class="form-check-label" for="issue_permission_ok">発行許可</label>
|
||||
</div>
|
||||
<div class="form-check mr-3">
|
||||
<input class="form-check-input" type="radio" name="issue_permission"
|
||||
id="issue_permission_ng" value="0"
|
||||
{{ $value('issue_permission','1') === '0' ? 'checked' : '' }}>
|
||||
<label class="form-check-label" for="issue_permission_ng">発行済</label>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
{{-- 退会 --}}
|
||||
<div class="form-group row">
|
||||
<label class="col-md-2 col-form-label">退会フラグ<span class="text-danger">*</span></label>
|
||||
<div class="col-md-10 d-flex flex-wrap">
|
||||
<div class="form-check mr-3">
|
||||
<input class="form-check-input" type="radio" name="user_quit_flag"
|
||||
id="quit_flag_yes" value="1"
|
||||
{{ $value('user_quit_flag','0') === '1' ? 'checked' : '' }}>
|
||||
<label class="form-check-label" for="quit_flag_yes">はい</label>
|
||||
</div>
|
||||
<div class="form-check mr-3">
|
||||
<input class="form-check-input" type="radio" name="user_quit_flag"
|
||||
id="quit_flag_no" value="0"
|
||||
{{ $value('user_quit_flag','0') === '0' ? 'checked' : '' }}>
|
||||
<label class="form-check-label" for="quit_flag_no">いいえ</label>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="form-group row">
|
||||
<label class="col-md-2 col-form-label">退会日</label>
|
||||
<div class="col-md-10">
|
||||
<input type="date" name="user_quitday" class="form-control form-control-sm"
|
||||
value="{{ $value('user_quitday') }}">
|
||||
</div>
|
||||
</div>
|
||||
|
||||
@php
|
||||
use Illuminate\Support\Facades\Storage;
|
||||
$currentPhoto1 = $isEdit ? ($user->photo_filename1 ?? '') : '';
|
||||
$currentPhoto2 = $isEdit ? ($user->photo_filename2 ?? '') : '';
|
||||
@endphp
|
||||
|
||||
{{-- 本人確認写真(1) --}}
|
||||
<div class="form-group row align-items-start">
|
||||
<label class="col-md-2 col-form-label">本人確認写真ファイル1</label>
|
||||
<div class="col-md-10">
|
||||
<div class="d-flex flex-wrap align-items-center">
|
||||
<div class="mr-3 mb-2">
|
||||
<input type="file" name="id_photo1" id="id_photo1" class="form-control-file">
|
||||
<input type="hidden" name="delete_photo1" id="delete_photo1" value="0">
|
||||
</div>
|
||||
|
||||
@if ($currentPhoto1)
|
||||
<div class="d-flex align-items-center mb-2">
|
||||
<div class="mr-3">
|
||||
<a href="{{ Storage::url($currentPhoto1) }}" target="_blank">{{ basename($currentPhoto1) }}</a>
|
||||
<div class="text-muted small">現在登録済み</div>
|
||||
</div>
|
||||
<button type="button" class="btn btn-default" id="btn-delete-photo1">削除</button>
|
||||
</div>
|
||||
@else
|
||||
<div class="text-muted small mb-2">現在登録なし</div>
|
||||
@endif
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
{{-- 本人確認写真(2) --}}
|
||||
<div class="form-group row align-items-start">
|
||||
<label class="col-md-2 col-form-label">本人確認写真ファイル2</label>
|
||||
<div class="col-md-10">
|
||||
<div class="d-flex flex-wrap align-items-center">
|
||||
<div class="mr-3 mb-2">
|
||||
<input type="file" name="id_photo2" id="id_photo2" class="form-control-file">
|
||||
<input type="hidden" name="delete_photo2" id="delete_photo2" value="0">
|
||||
</div>
|
||||
|
||||
@if ($currentPhoto2)
|
||||
<div class="d-flex align-items-center mb-2">
|
||||
<div class="mr-3">
|
||||
<a href="{{ Storage::url($currentPhoto2) }}" target="_blank">{{ basename($currentPhoto2) }}</a>
|
||||
<div class="text-muted small">現在登録済み</div>
|
||||
</div>
|
||||
<button type="button" class="btn btn-default" id="btn-delete-photo2">削除</button>
|
||||
</div>
|
||||
@else
|
||||
<div class="text-muted small mb-2">現在登録なし</div>
|
||||
@endif
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
{{-- 備考 --}}
|
||||
<div class="form-group row">
|
||||
<label class="col-md-2 col-form-label">備考</label>
|
||||
<div class="col-md-10">
|
||||
<textarea name="user_remarks" rows="4" class="form-control">{{ old('user_remarks') }}</textarea>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="mt-3">
|
||||
<button type="button" class="btn btn-success" id="register_edit">登録</button>
|
||||
|
||||
{{-- 削除ボタン(別フォームを呼び出す) --}}
|
||||
<button type="button" class="btn btn-danger ml-2" id="delete_edit">削除</button>
|
||||
|
||||
<a href="{{ route('users') }}" class="btn btn-secondary ml-2">戻る</a>
|
||||
|
||||
@if ($isEdit && $hasDeleteRoute)
|
||||
<button type="button" class="btn btn-warning ml-2" id="quitForm">退会</button>
|
||||
@endif
|
||||
</div>
|
||||
|
||||
|
||||
</div> {{-- /.card-body --}}
|
||||
</div> {{-- /.card --}}
|
||||
</form>
|
||||
@ -7,7 +7,9 @@
|
||||
<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">
|
||||
<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>
|
||||
@ -44,52 +46,126 @@
|
||||
|
||||
{{-- ▼ 1列レイアウト(ラベル左 / 入力右) --}}
|
||||
<div class="form-group row">
|
||||
<label class="col-md-2 col-form-label">会員ID</label>
|
||||
<label class="col-md-2 col-form-label">会員ID <span class="text-danger">*</span></label>
|
||||
<div class="col-md-10">
|
||||
<input type="text" name="member_id" value="{{ old('member_id') }}" class="form-control">
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="form-group row">
|
||||
<label class="col-md-2 col-form-label">利用者ID <span class="text-danger">*</span></label>
|
||||
<div class="col-md-10">
|
||||
<input type="text" name="user_id" value="{{ old('user_id') }}" class="form-control" required>
|
||||
<input type="text" name="user_id" value="{{ old('user_id') }}" class="form-control"
|
||||
placeholder="会員ID">
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="form-group row">
|
||||
<label class="col-md-2 col-form-label">パスワード</label>
|
||||
<div class="col-md-10">
|
||||
<input type="password" name="user_pass" class="form-control" autocomplete="new-password">
|
||||
<input type="password" name="user_pass" class="form-control"
|
||||
placeholder="パスワード">
|
||||
</div>
|
||||
</div>
|
||||
|
||||
{{-- タグ/QR & シリアル --}}
|
||||
<div class="form-group row">
|
||||
<label class="col-md-2 col-form-label">タグ/QR</label>
|
||||
<label class="col-md-2 col-form-label">パスワード確認</label>
|
||||
<div class="col-md-10">
|
||||
<input type="password" name="user_pass_confirmation" class="form-control" autocomplete="new-password"
|
||||
placeholder="パスワード確認">
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="form-group row">
|
||||
<label class="col-md-2 col-form-label">
|
||||
手動登録フラグ <span class="text-danger">*</span>
|
||||
</label>
|
||||
<div class="col-md-10 d-flex align-items-center">
|
||||
<div class="form-check mr-3">
|
||||
<input class="form-check-input" type="radio" name="tag_qr_flag" id="tag_qr_qr" value="1" {{ old('tag_qr_flag','0')=='1'?'checked':'' }}>
|
||||
<label for="tag_qr_qr" class="form-check-label">QR</label>
|
||||
<input
|
||||
class="form-check-input"
|
||||
type="radio"
|
||||
name="user_manual_regist_flag"
|
||||
id="user_manual_regist_flag_1"
|
||||
value="1"
|
||||
{{ old('user_manual_regist_flag', '0') == '1' ? 'checked' : '' }}
|
||||
>
|
||||
<label for="user_manual_regist_flag_1" class="form-check-label">はい</label>
|
||||
</div>
|
||||
<div class="form-check">
|
||||
<input class="form-check-input" type="radio" name="tag_qr_flag" id="tag_qr_tag" value="0" {{ old('tag_qr_flag','0')=='0'?'checked':'' }}>
|
||||
<label for="tag_qr_tag" class="form-check-label">タグ</label>
|
||||
<input
|
||||
class="form-check-input"
|
||||
type="radio"
|
||||
name="user_manual_regist_flag"
|
||||
id="user_manual_regist_flag_0"
|
||||
value="0"
|
||||
{{ old('user_manual_regist_flag', '0') == '0' ? 'checked' : '' }}
|
||||
>
|
||||
<label for="user_manual_regist_flag_0" class="form-check-label">いいえ</label>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
{{-- バリデーションエラー表示(任意) --}}
|
||||
@error('user_manual_regist_flag')
|
||||
<div class="col-md-10 offset-md-2">
|
||||
<small class="text-danger">{{ $message }}</small>
|
||||
</div>
|
||||
@enderror
|
||||
</div>
|
||||
|
||||
|
||||
<div class="form-group row">
|
||||
<label class="col-md-2 col-form-label">
|
||||
郵送必要フラグ <span class="text-danger">*</span>
|
||||
</label>
|
||||
<div class="col-md-10 d-flex align-items-center">
|
||||
<div class="form-check mr-3">
|
||||
<input
|
||||
class="form-check-input"
|
||||
type="radio"
|
||||
name="user_mailing_flag"
|
||||
id="user_mailing_flag_1"
|
||||
value="1"
|
||||
{{ old('user_mailing_flag', '0') == '1' ? 'checked' : '' }}
|
||||
>
|
||||
<label for="user_mailing_flag_1" class="form-check-label">はい</label>
|
||||
</div>
|
||||
<div class="form-check">
|
||||
<input
|
||||
class="form-check-input"
|
||||
type="radio"
|
||||
name="user_mailing_flag"
|
||||
id="user_mailing_flag_0"
|
||||
value="0"
|
||||
{{ old('user_mailing_flag', '0') == '0' ? 'checked' : '' }}
|
||||
>
|
||||
<label for="user_mailing_flag_0" class="form-check-label">いいえ</label>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
{{-- バリデーションエラー表示(任意) --}}
|
||||
@error('user_mailing_flag')
|
||||
<div class="col-md-10 offset-md-2">
|
||||
<small class="text-danger">{{ $message }}</small>
|
||||
</div>
|
||||
@enderror
|
||||
</div>
|
||||
|
||||
|
||||
<div class="form-group row">
|
||||
<label class="col-md-2 col-form-label">旧定期契約番号</label>
|
||||
<div class="col-md-10">
|
||||
<input type="text" name="user_tag_serial" value="{{ old('user_tag_serial') }}" class="form-control"
|
||||
placeholder="旧定期契約番号">
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="form-group row">
|
||||
<label class="col-md-2 col-form-label">タグシリアル</label>
|
||||
<div class="col-md-10">
|
||||
<input type="text" name="user_tag_serial" value="{{ old('user_tag_serial') }}" class="form-control">
|
||||
<input type="text" name="user_tag_serial" value="{{ old('user_tag_serial') }}" class="form-control"
|
||||
placeholder="タグシリアル">
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="form-group row">
|
||||
<label class="col-md-2 col-form-label">タグシリアル(64)</label>
|
||||
<div class="col-md-10">
|
||||
<input type="text" name="user_tag_serial_64" value="{{ old('user_tag_serial_64') }}" class="form-control">
|
||||
<input type="text" name="user_tag_serial_64" value="{{ old('user_tag_serial_64') }}" class="form-control"
|
||||
placeholder="タグシリアル(64)">
|
||||
</div>
|
||||
</div>
|
||||
|
||||
@ -100,6 +176,21 @@
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="form-group row">
|
||||
<label class="col-md-2 col-form-label">タグ/QRフラグ<span class="text-danger">*</span></label>
|
||||
<div class="col-md-10 d-flex align-items-center">
|
||||
<div class="form-check mr-3">
|
||||
<input class="form-check-input" type="radio" name="tag_qr_flag" id="tag_qr_tag" value="0" {{ old('tag_qr_flag', '0') == '0' ? 'checked' : '' }}>
|
||||
<label for="tag_qr_tag" class="form-check-label">QR</label>
|
||||
</div>
|
||||
|
||||
<div class="form-check mr-3">
|
||||
<input class="form-check-input" type="radio" name="tag_qr_flag" id="tag_qr_qr" value="1" {{ old('tag_qr_flag', '0') == '1' ? 'checked' : '' }}>
|
||||
<label for="tag_qr_qr" class="form-check-label">タグ</label>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
{{-- AID / 設置場所QR --}}
|
||||
<div class="form-group row">
|
||||
<label class="col-md-2 col-form-label">AID</label>
|
||||
@ -109,7 +200,7 @@
|
||||
</div>
|
||||
|
||||
<div class="form-group row">
|
||||
<label class="col-md-2 col-form-label">設置場所QR</label>
|
||||
<label class="col-md-2 col-form-label">居場所通知用QRID</label>
|
||||
<div class="col-md-10">
|
||||
<input type="text" name="user_place_qrid" value="{{ old('user_place_qrid') }}" class="form-control">
|
||||
</div>
|
||||
@ -124,9 +215,9 @@
|
||||
</div>
|
||||
|
||||
<div class="form-group row">
|
||||
<label class="col-md-2 col-form-label">氏名 <span class="text-danger">*</span></label>
|
||||
<label class="col-md-2 col-form-label">利用者名 <span class="text-danger">*</span></label>
|
||||
<div class="col-md-10">
|
||||
<input type="text" name="user_name" value="{{ old('user_name') }}" class="form-control" required>
|
||||
<input type="text" name="user_name" value="{{ old('user_name') }}" class="form-control">
|
||||
</div>
|
||||
</div>
|
||||
|
||||
@ -139,10 +230,19 @@
|
||||
|
||||
<div class="form-group row">
|
||||
<label class="col-md-2 col-form-label">性別</label>
|
||||
<div class="col-md-10 d-flex align-items-center">
|
||||
<label class="mr-3"><input type="radio" name="user_gender" value="男性" {{ old('user_gender')=='男性'?'checked':'' }}> 男性</label>
|
||||
<label class="mr-3"><input type="radio" name="user_gender" value="女性" {{ old('user_gender')=='女性'?'checked':'' }}> 女性</label>
|
||||
<label><input type="radio" name="user_gender" value="未入力" {{ old('user_gender')=='未入力'?'checked':'' }}> 未入力</label>
|
||||
<div class="col-md-10">
|
||||
<div class="form-check form-check-inline">
|
||||
<input class="form-check-input" type="radio" name="user_gender" id="gender_male" value="男性" {{ old('user_gender') == '男性' ? 'checked' : '' }}>
|
||||
<label class="form-check-label" for="gender_male">男性</label>
|
||||
</div>
|
||||
<div class="form-check form-check-inline">
|
||||
<input class="form-check-input" type="radio" name="user_gender" id="gender_female" value="女性" {{ old('user_gender') == '女性' ? 'checked' : '' }}>
|
||||
<label class="form-check-label" for="gender_female">女性</label>
|
||||
</div>
|
||||
<div class="form-check form-check-inline">
|
||||
<input class="form-check-input" type="radio" name="user_gender" id="gender_unknown" value="未入力" {{ old('user_gender') == '未入力' ? 'checked' : '' }}>
|
||||
<label class="form-check-label" for="gender_unknown">未入力</label>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
@ -151,7 +251,10 @@
|
||||
<div class="col-md-4">
|
||||
<input type="date" name="user_birthdate" value="{{ old('user_birthdate') }}" class="form-control">
|
||||
</div>
|
||||
<label class="col-md-2 col-form-label text-md-right">年齢</label>
|
||||
</div>
|
||||
|
||||
<div class="form-group row">
|
||||
<label class="col-md-2 col-form-label">年齢</label>
|
||||
<div class="col-md-4">
|
||||
<input type="number" name="user_age" value="{{ old('user_age') }}" class="form-control">
|
||||
</div>
|
||||
@ -159,80 +262,84 @@
|
||||
|
||||
{{-- 連絡先 --}}
|
||||
<div class="form-group row">
|
||||
<label class="col-md-2 col-form-label">携帯電話番号</label>
|
||||
<label class="col-md-2 col-form-label">自宅電話番号</label>
|
||||
<div class="col-md-10">
|
||||
<input type="text" name="user_mobile" value="{{ old('user_mobile') }}" class="form-control" placeholder="080-0000-0000">
|
||||
<input type="text" name="user_homephone" value="{{ old('user_homephone') }}" class="form-control"
|
||||
placeholder="000-0000-0000">
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="form-group row">
|
||||
<label class="col-md-2 col-form-label">自宅電話番号</label>
|
||||
<label class="col-md-2 col-form-label">携帯電話番号</label>
|
||||
<div class="col-md-10">
|
||||
<input type="text" name="user_homephone" value="{{ old('user_homephone') }}" class="form-control" placeholder="000-0000-0000">
|
||||
<input type="text" name="user_mobile" value="{{ old('user_mobile') }}" class="form-control"
|
||||
placeholder="080-0000-0000">
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="form-group row">
|
||||
<label class="col-md-2 col-form-label">メールアドレス</label>
|
||||
<div class="col-md-10">
|
||||
<input type="email" name="user_primemail" value="{{ old('user_primemail') }}" class="form-control" placeholder="name@example.com">
|
||||
<input type="email" name="user_primemail" value="{{ old('user_primemail') }}" class="form-control"
|
||||
placeholder="name@example.com">
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="form-group row">
|
||||
<label class="col-md-2 col-form-label">予備メール</label>
|
||||
<label class="col-md-2 col-form-label">予備メールアドレス</label>
|
||||
<div class="col-md-10">
|
||||
<input type="email" name="user_submail" value="{{ old('user_submail') }}" class="form-control" placeholder="name@example.com">
|
||||
<input type="email" name="user_submail" value="{{ old('user_submail') }}" class="form-control"
|
||||
placeholder="name@example.com">
|
||||
</div>
|
||||
</div>
|
||||
|
||||
{{-- 現住所 --}}
|
||||
{{-- 居住所 --}}
|
||||
<div class="form-group row">
|
||||
<label class="col-md-2 col-form-label">現住所 郵便番号</label>
|
||||
<label class="col-md-2 col-form-label">居住所:郵便番号</label>
|
||||
<div class="col-md-10">
|
||||
<input type="text" name="user_regident_zip" value="{{ old('user_regident_zip') }}" class="form-control">
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group row">
|
||||
<label class="col-md-2 col-form-label">現住所 都道府県</label>
|
||||
<label class="col-md-2 col-form-label">居住所:都道府県</label>
|
||||
<div class="col-md-10">
|
||||
<input type="text" name="user_regident_pre" value="{{ old('user_regident_pre') }}" class="form-control">
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group row">
|
||||
<label class="col-md-2 col-form-label">現住所 市区町村</label>
|
||||
<label class="col-md-2 col-form-label">居住所:市区町村</label>
|
||||
<div class="col-md-10">
|
||||
<input type="text" name="user_regident_city" value="{{ old('user_regident_city') }}" class="form-control">
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group row">
|
||||
<label class="col-md-2 col-form-label">現住所 住所</label>
|
||||
<label class="col-md-2 col-form-label">居住所:住所</label>
|
||||
<div class="col-md-10">
|
||||
<input type="text" name="user_regident_add" value="{{ old('user_regident_add') }}" class="form-control">
|
||||
</div>
|
||||
</div>
|
||||
|
||||
{{-- 連絡先住所 --}}
|
||||
{{-- 関連住所 --}}
|
||||
<div class="form-group row">
|
||||
<label class="col-md-2 col-form-label">連絡先 郵便番号</label>
|
||||
<label class="col-md-2 col-form-label">関連住所:郵便番号</label>
|
||||
<div class="col-md-10">
|
||||
<input type="text" name="user_relate_zip" value="{{ old('user_relate_zip') }}" class="form-control">
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group row">
|
||||
<label class="col-md-2 col-form-label">連絡先 都道府県</label>
|
||||
<label class="col-md-2 col-form-label">関連住所:都道府県</label>
|
||||
<div class="col-md-10">
|
||||
<input type="text" name="user_relate_pre" value="{{ old('user_relate_pre') }}" class="form-control">
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group row">
|
||||
<label class="col-md-2 col-form-label">連絡先 市区町村</label>
|
||||
<label class="col-md-2 col-form-label">関連住所:市区町村</label>
|
||||
<div class="col-md-10">
|
||||
<input type="text" name="user_relate_city" value="{{ old('user_relate_city') }}" class="form-control">
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group row">
|
||||
<label class="col-md-2 col-form-label">連絡先 住所</label>
|
||||
<label class="col-md-2 col-form-label">関連住所:住所</label>
|
||||
<div class="col-md-10">
|
||||
<input type="text" name="user_relate_add" value="{{ old('user_relate_add') }}" class="form-control">
|
||||
</div>
|
||||
@ -252,13 +359,13 @@
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group row">
|
||||
<label class="col-md-2 col-form-label">学校名</label>
|
||||
<label class="col-md-2 col-form-label">学校</label>
|
||||
<div class="col-md-10">
|
||||
<input type="text" name="user_school" value="{{ old('user_school') }}" class="form-control">
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group row">
|
||||
<label class="col-md-2 col-form-label">卒業年</label>
|
||||
<label class="col-md-2 col-form-label">卒業予定</label>
|
||||
<div class="col-md-10">
|
||||
<input type="date" name="user_graduate" value="{{ old('user_graduate') }}" class="form-control">
|
||||
</div>
|
||||
@ -268,16 +375,50 @@
|
||||
<div class="form-group row">
|
||||
<label class="col-md-2 col-form-label">本人確認書類</label>
|
||||
<div class="col-md-10">
|
||||
<input type="text" name="user_idcard" value="{{ old('user_idcard') }}" class="form-control" placeholder="運転免許証 など">
|
||||
<input type="text" name="user_idcard" value="{{ old('user_idcard') }}" class="form-control"
|
||||
placeholder="運転免許証 など">
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="form-group row">
|
||||
<label class="col-md-2 col-form-label">本人確認チェック</label>
|
||||
<label class="col-md-2 col-form-label">
|
||||
本人確認チェック済 <span class="text-danger">*</span>
|
||||
</label>
|
||||
<div class="col-md-10">
|
||||
{{-- 0/1のみのDBの場合は 0=未チェック / 1=手動チェックOK で保存 --}}
|
||||
<label class="mr-3"><input type="radio" name="user_idcard_chk_flag" value="0" {{ old('user_idcard_chk_flag','0')=='0'?'checked':'' }}> 未チェック</label>
|
||||
<label><input type="radio" name="user_idcard_chk_flag" value="1" {{ old('user_idcard_chk_flag')=='1'?'checked':'' }}> 手動チェックOK</label>
|
||||
<div class="form-check form-check-inline">
|
||||
<input class="form-check-input" type="radio"
|
||||
name="user_idcard_chk_flag" id="chk_none" value="0"
|
||||
{{ old('user_idcard_chk_flag','0')=='0' ? 'checked' : '' }}>
|
||||
<label class="form-check-label" for="chk_none">未チェック</label>
|
||||
</div>
|
||||
|
||||
<div class="form-check form-check-inline">
|
||||
<input class="form-check-input" type="radio"
|
||||
name="user_idcard_chk_flag" id="chk_auto_ok" value="1"
|
||||
{{ old('user_idcard_chk_flag')=='1' ? 'checked' : '' }}>
|
||||
<label class="form-check-label" for="chk_auto_ok">自動チェックOK</label>
|
||||
</div>
|
||||
|
||||
<div class="form-check form-check-inline">
|
||||
<input class="form-check-input" type="radio"
|
||||
name="user_idcard_chk_flag" id="chk_manual_ok" value="2"
|
||||
{{ old('user_idcard_chk_flag')=='2' ? 'checked' : '' }}>
|
||||
<label class="form-check-label" for="chk_manual_ok">手動チェックOK</label>
|
||||
</div>
|
||||
|
||||
<div class="form-check form-check-inline">
|
||||
<input class="form-check-input" type="radio"
|
||||
name="user_idcard_chk_flag" id="chk_manual_ng" value="3"
|
||||
{{ old('user_idcard_chk_flag')=='3' ? 'checked' : '' }}>
|
||||
<label class="form-check-label" for="chk_manual_ng">手動チェックNG</label>
|
||||
</div>
|
||||
|
||||
<div class="form-check form-check-inline">
|
||||
<input class="form-check-input" type="radio"
|
||||
name="user_idcard_chk_flag" id="chk_auto_ng" value="4"
|
||||
{{ old('user_idcard_chk_flag')=='4' ? 'checked' : '' }}>
|
||||
<label class="form-check-label" for="chk_auto_ng">自動チェックNG</label>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
@ -303,19 +444,54 @@
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<!-- タグ発行許可 -->
|
||||
<div class="form-group row">
|
||||
<label class="col-md-2 col-form-label">発行可否</label>
|
||||
<div class="col-md-10">
|
||||
<label class="mr-3"><input type="radio" name="issue_permission" value="1" {{ old('issue_permission')=='1'?'checked':'' }}> 発行可</label>
|
||||
<label><input type="radio" name="issue_permission" value="0" {{ old('issue_permission','0')=='0'?'checked':'' }}> 発行不可</label>
|
||||
<label class="col-md-2 col-form-label">
|
||||
タグ発行許可 <span class="text-danger">*</span>
|
||||
</label>
|
||||
|
||||
<div class="col-md-10 d-flex flex-wrap">
|
||||
<!-- 発行可 -->
|
||||
<div class="form-check mr-3">
|
||||
<!-- old の既定値は '0'(= 発行不可) -->
|
||||
<input class="form-check-input" type="radio"
|
||||
name="issue_permission" id="issue_perm_yes" value="1"
|
||||
{{ old('issue_permission') == '1' ? 'checked' : '' }}>
|
||||
<label class="form-check-label" for="issue_perm_yes">発行許可</label>
|
||||
</div>
|
||||
|
||||
<!-- 発行不可 -->
|
||||
<div class="form-check mr-3">
|
||||
<input class="form-check-input" type="radio"
|
||||
name="issue_permission" id="issue_perm_no" value="0"
|
||||
{{ old('issue_permission','0') == '0' ? 'checked' : '' }}>
|
||||
<label class="form-check-label" for="issue_perm_no">発行済</label>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<!-- 退会フラグ -->
|
||||
<div class="form-group row">
|
||||
<label class="col-md-2 col-form-label">退会フラグ</label>
|
||||
<div class="col-md-10">
|
||||
<label class="mr-3"><input type="radio" name="user_quit_flag" value="1" {{ old('user_quit_flag')=='1'?'checked':'' }}> はい</label>
|
||||
<label><input type="radio" name="user_quit_flag" value="0" {{ old('user_quit_flag','0')=='0'?'checked':'' }}> いいえ</label>
|
||||
<label class="col-md-2 col-form-label">
|
||||
退会フラグ <span class="text-danger">*</span>
|
||||
</label>
|
||||
|
||||
<div class="col-md-10 d-flex flex-wrap">
|
||||
<!-- はい(= 退会済) -->
|
||||
<div class="form-check mr-3">
|
||||
<input class="form-check-input" type="radio"
|
||||
name="user_quit_flag" id="quit_yes" value="1"
|
||||
{{ old('user_quit_flag') == '1' ? 'checked' : '' }}>
|
||||
<label class="form-check-label" for="quit_yes">はい</label>
|
||||
</div>
|
||||
|
||||
<!-- いいえ(= 現在利用中) -->
|
||||
<div class="form-check mr-3">
|
||||
<input class="form-check-input" type="radio"
|
||||
name="user_quit_flag" id="quit_no" value="0"
|
||||
{{ old('user_quit_flag','0') == '0' ? 'checked' : '' }}>
|
||||
<label class="form-check-label" for="quit_no">いいえ</label>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
@ -347,11 +523,8 @@
|
||||
<textarea name="user_remarks" rows="4" class="form-control">{{ old('user_remarks') }}</textarea>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
<div class="card-footer">
|
||||
<button type="submit" class="btn btn-primary">登録</button>
|
||||
<a href="{{ route('users') }}" class="btn btn-default ml-2">戻る</a>
|
||||
<button type="submit" class="btn btn-success register">登録</button>
|
||||
<a href="{{ route('users') }}" class="btn btn-secondary ml-2">戻る</a>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
@ -360,8 +533,46 @@
|
||||
</div>
|
||||
</section>
|
||||
|
||||
<script>
|
||||
/**
|
||||
* 登録ボタン押下時の確認ダイアログ表示処理
|
||||
* 対象のフォーム送信を一時停止し、ユーザーに確認メッセージを表示する
|
||||
*/
|
||||
$(document).on('click', '.register', function (e) {
|
||||
e.preventDefault(); // デフォルトの送信動作を一旦停止
|
||||
const $form = $(this).closest('form'); // 押下されたボタンが属するフォームを取得
|
||||
|
||||
$.confirm({
|
||||
title: '確認ダイアログ',
|
||||
content: '登録してよろしいですか?',
|
||||
buttons: {
|
||||
ok: {
|
||||
text: 'はい',
|
||||
btnClass: 'btn-primary',
|
||||
keys: ['enter'],
|
||||
/**
|
||||
* 「はい」ボタン押下時の処理
|
||||
* 対象フォームを送信
|
||||
*/
|
||||
action: function () {
|
||||
$form.trigger('submit'); // 対象フォームのみ送信
|
||||
}
|
||||
},
|
||||
/**
|
||||
* 「いいえ」ボタン押下時の処理
|
||||
* 何も実行せずダイアログを閉じる
|
||||
*/
|
||||
いいえ: function () {}
|
||||
}
|
||||
});
|
||||
});
|
||||
</script>
|
||||
|
||||
|
||||
{{-- 見た目の微調整(間隔を広げる) --}}
|
||||
<style>
|
||||
.card .form-group { margin-bottom: .85rem; }
|
||||
.card .form-group {
|
||||
margin-bottom: .85rem;
|
||||
}
|
||||
</style>
|
||||
@endsection
|
||||
@ -9,18 +9,18 @@
|
||||
$value = static function (string $key, $default = '') use ($isEdit, $user) {
|
||||
return old($key, $isEdit ? ($user->{$key} ?? $default) : $default);
|
||||
};
|
||||
$hasDeleteRoute = Route::has('users_delete_confirm');
|
||||
$hasDeleteRoute = Route::has('users_delete');
|
||||
$operators = $operators ?? collect();
|
||||
$categoryOptions = $categoryOptions ?? [];
|
||||
@endphp
|
||||
|
||||
<div class="content-header">
|
||||
<div class="container-fluid">
|
||||
<div class="row mb-2 align-items-center">
|
||||
<div class="col-sm-6">
|
||||
<h1 class="m-0 text-dark">編集</h1>
|
||||
<div class="row mb-2">
|
||||
<div class="col-lg-6">
|
||||
<h1 class="m-0 text-dark">{{ $isEdit ? '編集' : '新規' }}</h1>
|
||||
</div>
|
||||
<div class="col-sm-6">
|
||||
<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('users') }}">利用者マスタ</a></li>
|
||||
@ -34,6 +34,7 @@
|
||||
<section class="content">
|
||||
<div class="container-fluid">
|
||||
|
||||
{{-- 成功/エラー表示 --}}
|
||||
@if (session('status'))
|
||||
<div class="alert alert-success">{{ session('status') }}</div>
|
||||
@endif
|
||||
@ -47,336 +48,107 @@
|
||||
</div>
|
||||
@endif
|
||||
|
||||
<form method="post"
|
||||
id="user-edit-form"
|
||||
action="{{ $isEdit ? route('users_edit', ['seq' => $user->user_seq]) : route('users_add') }}"
|
||||
enctype="multipart/form-data">
|
||||
{{-- 共通フォーム部分 --}}
|
||||
@include('admin.users._form', [
|
||||
'isEdit' => $isEdit,
|
||||
'user' => $user ?? null,
|
||||
'value' => $value,
|
||||
'operators' => $operators,
|
||||
'categoryOptions' => $categoryOptions,
|
||||
])
|
||||
|
||||
{{-- ▼ 削除用フォーム(非表示) --}}
|
||||
<form id="form_delete" action="{{ route('users_delete') }}" method="post" class="d-none">
|
||||
@csrf
|
||||
|
||||
<div class="card shadow-sm">
|
||||
<div class="card-header d-flex justify-content-between align-items-center">
|
||||
<h3 class="card-title mb-0 font-weight-bold">基本情報</h3>
|
||||
<div class="btn-group">
|
||||
<button type="submit" class="btn btn-success btn-sm px-4">登録</button>
|
||||
@if ($isEdit && $hasDeleteRoute)
|
||||
<button type="button" id="btn-quit-top" class="btn btn-outline-danger btn-sm px-4">退会</button>
|
||||
@endif
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="card-body p-0">
|
||||
<table class="table table-form mb-0">
|
||||
<tbody>
|
||||
<tr>
|
||||
<th>利用者連番</th>
|
||||
<td><input type="text" class="form-control form-control-sm bg-secondary-light" value="{{ $isEdit ? $user->user_seq : '新規' }}" readonly></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th>利用者ID<span class="text-danger ml-1">*</span></th>
|
||||
<td><input type="text" name="user_id" class="form-control form-control-sm" value="{{ $value('user_id') }}" required></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th>会員ID</th>
|
||||
<td><input type="text" name="member_id" class="form-control form-control-sm" value="{{ $value('member_id') }}"></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th>氏名<span class="text-danger ml-1">*</span></th>
|
||||
<td><input type="text" name="user_name" class="form-control form-control-sm" value="{{ $value('user_name') }}" required></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th>フリガナ</th>
|
||||
<td><input type="text" name="user_phonetic" class="form-control form-control-sm" value="{{ $value('user_phonetic') }}"></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th>パスワード</th>
|
||||
<td>
|
||||
<input type="password" name="user_pass" class="form-control form-control-sm" autocomplete="new-password">
|
||||
<small class="form-text text-muted">未入力の場合は変更されません。</small>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th>メインメールアドレス</th>
|
||||
<td><input type="email" name="user_primemail" class="form-control form-control-sm" value="{{ $value('user_primemail') }}" placeholder="name@example.com"></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th>予備メールアドレス</th>
|
||||
<td><input type="email" name="user_submail" class="form-control form-control-sm" value="{{ $value('user_submail') }}" placeholder="name@example.com"></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th>携帯電話番号</th>
|
||||
<td><input type="text" name="user_mobile" class="form-control form-control-sm" value="{{ $value('user_mobile') }}" placeholder="080-0000-0000"></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th>固定電話番号</th>
|
||||
<td><input type="text" name="user_homephone" class="form-control form-control-sm" value="{{ $value('user_homephone') }}" placeholder="03-0000-0000"></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th>性別</th>
|
||||
<td>
|
||||
@foreach (['男性','女性','未入力'] as $gender)
|
||||
@php $id = 'user_gender_'.$gender; @endphp
|
||||
<div class="custom-control custom-radio custom-control-inline">
|
||||
<input type="radio" id="{{ $id }}" name="user_gender" value="{{ $gender }}" class="custom-control-input" {{ $value('user_gender') === $gender ? 'checked' : '' }}>
|
||||
<label class="custom-control-label" for="{{ $id }}">{{ $gender }}</label>
|
||||
</div>
|
||||
@endforeach
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th>生年月日</th>
|
||||
<td><input type="date" name="user_birthdate" class="form-control form-control-sm" value="{{ $value('user_birthdate') }}"></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th>年齢</th>
|
||||
<td><input type="number" name="user_age" class="form-control form-control-sm" value="{{ $value('user_age') }}"></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th>学校名</th>
|
||||
<td><input type="text" name="user_school" class="form-control form-control-sm" value="{{ $value('user_school') }}"></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th>卒業予定</th>
|
||||
<td><input type="date" name="user_graduate" class="form-control form-control-sm" value="{{ $value('user_graduate') }}"></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th>勤務先名</th>
|
||||
<td><input type="text" name="user_workplace" class="form-control form-control-sm" value="{{ $value('user_workplace') }}"></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th>区民区分</th>
|
||||
<td><input type="text" name="ward_residents" class="form-control form-control-sm" value="{{ $value('ward_residents') }}"></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th>本人確認書類</th>
|
||||
<td><input type="text" name="user_idcard" class="form-control form-control-sm" value="{{ $value('user_idcard') }}"></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th>本人確認チェック</th>
|
||||
<td>
|
||||
@foreach ([0 => '未チェック', 1 => '手動チェックOK'] as $flag => $label)
|
||||
@php $id = 'user_idcard_chk_flag_'.$flag; @endphp
|
||||
<div class="custom-control custom-radio custom-control-inline">
|
||||
<input type="radio" id="{{ $id }}" name="user_idcard_chk_flag" value="{{ $flag }}" class="custom-control-input" {{ (string)$value('user_idcard_chk_flag','0') === (string)$flag ? 'checked' : '' }}>
|
||||
<label class="custom-control-label" for="{{ $id }}">{{ $label }}</label>
|
||||
</div>
|
||||
@endforeach
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th>本人確認日時</th>
|
||||
<td><input type="date" name="user_chk_day" class="form-control form-control-sm" value="{{ $value('user_chk_day') }}"></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th>本人確認オペレータ</th>
|
||||
<td>
|
||||
<select name="ope_id" class="form-control form-control-sm">
|
||||
<option value="">本人確認オペレータID</option>
|
||||
@foreach ($operators as $operator)
|
||||
<option value="{{ $operator->ope_id }}" {{ (string) old('ope_id', $isEdit ? (string) ($user->ope_id ?? '') : '') === (string) $operator->ope_id ? 'selected' : '' }}>
|
||||
{{ $operator->ope_name }}
|
||||
</option>
|
||||
@endforeach
|
||||
</select>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th>タグ/QRフラグ</th>
|
||||
<td>
|
||||
<div class="custom-control custom-radio custom-control-inline">
|
||||
<input type="radio" id="tag_flag_qr" name="tag_qr_flag" value="1" class="custom-control-input" {{ $value('tag_qr_flag','0') === '1' ? 'checked' : '' }}>
|
||||
<label class="custom-control-label" for="tag_flag_qr">QR</label>
|
||||
</div>
|
||||
<div class="custom-control custom-radio custom-control-inline">
|
||||
<input type="radio" id="tag_flag_tag" name="tag_qr_flag" value="0" class="custom-control-input" {{ $value('tag_qr_flag','0') === '0' ? 'checked' : '' }}>
|
||||
<label class="custom-control-label" for="tag_flag_tag">タグ</label>
|
||||
</div>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th>タグシリアル</th>
|
||||
<td><input type="text" name="user_tag_serial" class="form-control form-control-sm" value="{{ $value('user_tag_serial') }}"></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th>タグシリアル(64進)</th>
|
||||
<td><input type="text" name="user_tag_serial_64" class="form-control form-control-sm" value="{{ $value('user_tag_serial_64') }}"></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th>QRコード</th>
|
||||
<td><input type="text" name="qr_code" class="form-control form-control-sm" value="{{ $value('qr_code') }}"></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th>AID</th>
|
||||
<td><input type="text" name="user_aid" class="form-control form-control-sm" value="{{ $value('user_aid') }}"></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th>設置場所QRID</th>
|
||||
<td><input type="text" name="user_place_qrid" class="form-control form-control-sm" value="{{ $value('user_place_qrid') }}"></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th>利用者分類</th>
|
||||
<td>
|
||||
<select name="user_categoryid" class="form-control form-control-sm">
|
||||
<option value="">選択してください</option>
|
||||
@foreach ($categoryOptions as $id => $label)
|
||||
<option value="{{ $id }}"
|
||||
{{ (string) old('user_categoryid', $value('user_categoryid')) === (string) $id ? 'selected' : '' }}>
|
||||
{{ $label }}
|
||||
</option>
|
||||
@endforeach
|
||||
</select>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th>タグ発行数</th>
|
||||
<td><input type="number" name="user_tag_issue" class="form-control form-control-sm" value="{{ $value('user_tag_issue') }}"></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th>タグ発行許可</th>
|
||||
<td>
|
||||
<div class="custom-control custom-radio custom-control-inline">
|
||||
<input type="radio" id="issue_permission_ok" name="issue_permission" value="1" class="custom-control-input" {{ $value('issue_permission','1') === '1' ? 'checked' : '' }}>
|
||||
<label class="custom-control-label" for="issue_permission_ok">許可</label>
|
||||
</div>
|
||||
<div class="custom-control custom-radio custom-control-inline">
|
||||
<input type="radio" id="issue_permission_ng" name="issue_permission" value="0" class="custom-control-input" {{ $value('issue_permission','1') === '0' ? 'checked' : '' }}>
|
||||
<label class="custom-control-label" for="issue_permission_ng">発行不可</label>
|
||||
</div>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th>退会フラグ</th>
|
||||
<td>
|
||||
<div class="custom-control custom-radio custom-control-inline">
|
||||
<input type="radio" id="quit_flag_yes" name="user_quit_flag" value="1" class="custom-control-input" {{ $value('user_quit_flag','0') === '1' ? 'checked' : '' }}>
|
||||
<label class="custom-control-label" for="quit_flag_yes">退会済</label>
|
||||
</div>
|
||||
<div class="custom-control custom-radio custom-control-inline">
|
||||
<input type="radio" id="quit_flag_no" name="user_quit_flag" value="0" class="custom-control-input" {{ $value('user_quit_flag','0') === '0' ? 'checked' : '' }}>
|
||||
<label class="custom-control-label" for="quit_flag_no">在籍</label>
|
||||
</div>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th>退会日</th>
|
||||
<td><input type="date" name="user_quitday" class="form-control form-control-sm" value="{{ $value('user_quitday') }}"></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th>現住所 郵便番号</th>
|
||||
<td><input type="text" name="user_regident_zip" class="form-control form-control-sm" value="{{ $value('user_regident_zip') }}"></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th>現住所 都道府県</th>
|
||||
<td><input type="text" name="user_regident_pre" class="form-control form-control-sm" value="{{ $value('user_regident_pre') }}"></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th>現住所 市区町村</th>
|
||||
<td><input type="text" name="user_regident_city" class="form-control form-control-sm" value="{{ $value('user_regident_city') }}"></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th>現住所 番地・建物名</th>
|
||||
<td><input type="text" name="user_regident_add" class="form-control form-control-sm" value="{{ $value('user_regident_add') }}"></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th>連絡先 郵便番号</th>
|
||||
<td><input type="text" name="user_relate_zip" class="form-control form-control-sm" value="{{ $value('user_relate_zip') }}"></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th>連絡先 都道府県</th>
|
||||
<td><input type="text" name="user_relate_pre" class="form-control form-control-sm" value="{{ $value('user_relate_pre') }}"></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th>連絡先 市区町村</th>
|
||||
<td><input type="text" name="user_relate_city" class="form-control form-control-sm" value="{{ $value('user_relate_city') }}"></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th>連絡先 番地・建物名</th>
|
||||
<td><input type="text" name="user_relate_add" class="form-control form-control-sm" value="{{ $value('user_relate_add') }}"></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th>本人確認書類ファイル1</th>
|
||||
<td><input type="file" name="id_photo1" class="form-control-file"></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th>本人確認書類ファイル2</th>
|
||||
<td><input type="file" name="id_photo2" class="form-control-file"></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th>備考</th>
|
||||
<td><textarea name="user_remarks" rows="4" class="form-control form-control-sm">{{ $value('user_remarks') }}</textarea></td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
|
||||
<div class="card-footer d-flex justify-content-between align-items-center flex-wrap">
|
||||
<a href="{{ route('users') }}" class="btn btn-outline-secondary">戻る</a>
|
||||
<div class="btn-group">
|
||||
@if ($isEdit && $hasDeleteRoute)
|
||||
<button type="button" class="btn btn-outline-danger" id="btn-quit-bottom">退会</button>
|
||||
@endif
|
||||
<button type="submit" class="btn btn-success">登録</button>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<input type="hidden" name="user_seq" value="{{ $user->user_seq ?? '' }}">
|
||||
</form>
|
||||
|
||||
@if ($isEdit && $hasDeleteRoute)
|
||||
<form method="post" action="{{ route('users_delete_confirm') }}" id="quitForm" class="d-none">
|
||||
<form method="post" action="{{ route('users_delete') }}" id="quitForm" class="d-none">
|
||||
@csrf
|
||||
<input type="hidden" name="user_seq" value="{{ $user->user_seq }}">
|
||||
<input type="hidden" name="user_seq" value="{{ $user->user_seq ?? '' }}">
|
||||
</form>
|
||||
@endif
|
||||
|
||||
</div>
|
||||
</section>
|
||||
|
||||
{{-- jQuery & jquery-confirm --}}
|
||||
<script src="https://code.jquery.com/jquery-3.6.0.min.js"></script>
|
||||
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/jquery-confirm@3.3.4/css/jquery-confirm.min.css">
|
||||
<script src="https://cdn.jsdelivr.net/npm/jquery-confirm@3.3.4/js/jquery-confirm.min.js"></script>
|
||||
|
||||
@push('scripts')
|
||||
{{-- ▼ 退会ボタン確認ダイアログ --}}
|
||||
@if ($isEdit && $hasDeleteRoute)
|
||||
<script>
|
||||
(function () {
|
||||
const confirmQuit = function () {
|
||||
if (window.confirm('この利用者を退会処理します。よろしいですか?')) {
|
||||
document.getElementById('quitForm').submit();
|
||||
$(function () {
|
||||
$('#quitForm').on('click', function (e) {
|
||||
e.preventDefault();
|
||||
|
||||
$.confirm({
|
||||
title: '退会確認',
|
||||
content: 'この利用者を退会処理します。<br>よろしいですか?',
|
||||
type: 'red', // 可选: 'blue', 'green', 'orange', 'red'
|
||||
buttons: {
|
||||
はい: {
|
||||
text: 'はい',
|
||||
btnClass: 'btn-danger',
|
||||
keys: ['enter'],
|
||||
action: function () {
|
||||
// ✅ 退会専用 hidden フィールド追加
|
||||
$('<input>').attr({
|
||||
type: 'hidden',
|
||||
name: 'quit_action',
|
||||
value: '1'
|
||||
}).appendTo('#form_edit');
|
||||
$('#form_edit').submit();
|
||||
}
|
||||
};
|
||||
const btnTop = document.getElementById('btn-quit-top');
|
||||
const btnBottom = document.getElementById('btn-quit-bottom');
|
||||
if (btnTop) { btnTop.addEventListener('click', confirmQuit); }
|
||||
if (btnBottom) { btnBottom.addEventListener('click', confirmQuit); }
|
||||
})();
|
||||
},
|
||||
いいえ: {
|
||||
text: 'いいえ',
|
||||
btnClass: 'btn-default',
|
||||
action: function () {}
|
||||
}
|
||||
}
|
||||
});
|
||||
});
|
||||
});
|
||||
</script>
|
||||
@endif
|
||||
|
||||
|
||||
|
||||
{{-- ▼ 本人確認写真削除処理 --}}
|
||||
<script>
|
||||
(function () {
|
||||
const hookDelete = function(btnId, hiddenId, fileId, label) {
|
||||
const btn = document.getElementById(btnId);
|
||||
if (!btn) return;
|
||||
btn.addEventListener('click', function () {
|
||||
if (window.confirm(label + ' を削除します。よろしいですか?')) {
|
||||
const h = document.getElementById(hiddenId);
|
||||
if (h) h.value = '1';
|
||||
const f = document.getElementById(fileId);
|
||||
if (f) f.value = '';
|
||||
btn.classList.add('disabled');
|
||||
btn.textContent = '削除予定';
|
||||
}
|
||||
});
|
||||
};
|
||||
|
||||
hookDelete('btn-delete-photo1', 'delete_photo1', 'id_photo1', '本人確認写真ファイル1');
|
||||
hookDelete('btn-delete-photo2', 'delete_photo2', 'id_photo2', '本人確認写真ファイル2');
|
||||
})();
|
||||
|
||||
</script>
|
||||
@endpush
|
||||
|
||||
<style>
|
||||
.table-form {
|
||||
width: 100%;
|
||||
border-collapse: separate;
|
||||
border-spacing: 0;
|
||||
}
|
||||
.table-form th,
|
||||
.table-form td {
|
||||
border-bottom: 1px solid #e2e8f0;
|
||||
padding: 14px 18px;
|
||||
vertical-align: middle;
|
||||
}
|
||||
.table-form th {
|
||||
width: 22%;
|
||||
background: #f1f5f9;
|
||||
font-weight: 600;
|
||||
color: #334155;
|
||||
}
|
||||
.table-form td {
|
||||
background: #ffffff;
|
||||
}
|
||||
.table-form .form-control-sm,
|
||||
.table-form textarea.form-control-sm {
|
||||
background: #ffffff;
|
||||
}
|
||||
.bg-secondary-light {
|
||||
background: #f8fafc !important;
|
||||
}
|
||||
.card-footer .btn-group .btn + .btn {
|
||||
margin-left: .5rem;
|
||||
}
|
||||
.bg-secondary-light { background: #f8fafc !important; }
|
||||
.form-check { display: inline-flex; align-items: center; }
|
||||
.form-check + .form-check { margin-left: 1rem; }
|
||||
</style>
|
||||
|
||||
|
||||
@endsection
|
||||
|
||||
@ -97,7 +97,7 @@
|
||||
<div class="form-group d-flex align-items-center mb-2">
|
||||
<label class="filter-label">利用者ID</label>
|
||||
<input type="text" class="form-control filter-input" name="user_id"
|
||||
value="{{ $user_id ?? '' }}" placeholder="123456">
|
||||
value="{{ $user_id ?? '' }}" placeholder="利用者ID">
|
||||
</div>
|
||||
|
||||
<div class="form-group d-flex align-items-center mb-2">
|
||||
@ -118,7 +118,7 @@
|
||||
<div class="form-group d-flex align-items-center mb-2">
|
||||
<label class="filter-label">タグシリアル</label>
|
||||
<input type="text" class="form-control filter-input" name="user_tag_serial"
|
||||
value="{{ $user_tag_serial ?? '' }}" placeholder="キーワード…">
|
||||
value="{{ $user_tag_serial ?? '' }}" placeholder="タグシリアル">
|
||||
</div>
|
||||
|
||||
<div class="form-group d-flex align-items-center mb-2">
|
||||
@ -136,19 +136,19 @@
|
||||
<div class="form-group d-flex align-items-center mb-2">
|
||||
<label class="filter-label">フリガナ</label>
|
||||
<input type="text" class="form-control filter-input" name="user_phonetic"
|
||||
value="{{ $user_phonetic ?? '' }}" placeholder="キーワード…">
|
||||
value="{{ $user_phonetic ?? '' }}" placeholder="フリガナ">
|
||||
</div>
|
||||
|
||||
<div class="form-group d-flex align-items-center mb-2">
|
||||
<label class="filter-label">電話番号</label>
|
||||
<input type="text" class="form-control filter-input" name="phone"
|
||||
value="{{ $phone ?? '' }}" placeholder="012-3456-7890">
|
||||
value="{{ $phone ?? '' }}" placeholder="電話番号">
|
||||
</div>
|
||||
|
||||
<div class="form-group d-flex align-items-center mb-2">
|
||||
<label class="filter-label">メールアドレス</label>
|
||||
<input type="text" class="form-control filter-input" name="email"
|
||||
value="{{ $email ?? '' }}" placeholder="example@example.com">
|
||||
value="{{ $email ?? '' }}" placeholder="メールアドレス">
|
||||
</div>
|
||||
|
||||
<div class="form-group d-flex align-items-center mb-2">
|
||||
@ -180,8 +180,8 @@
|
||||
|
||||
{{-- ▼ 実行/解除 --}}
|
||||
<div class="mt-2">
|
||||
<button type="submit" class="btn btn btn-default">絞り込み</button>
|
||||
<button type="button" class="btn btn btn-default" id="btn-reset">解除</button>
|
||||
<button type="submit" class="btn btn btn-success">絞り込み</button>
|
||||
<button type="button" class="btn btn btn-outline-secondary" id="btn-reset">解除</button>
|
||||
</div>
|
||||
</form>
|
||||
</div>
|
||||
@ -244,9 +244,9 @@
|
||||
|
||||
<div class="d-flex align-items-center mb-2">
|
||||
<div>
|
||||
<a href="{{ route('users_add') }}" class="btn btn btn-default">新規</a>
|
||||
<a href="{{ route('users_add') }}" class="btn btn-primary">新規</a>
|
||||
{{-- ▼ クリックで隠しフォーム送信 --}}
|
||||
<button type="button" class="btn btn btn-default"
|
||||
<button type="button" class="btn btn-outline-success"
|
||||
onclick="document.getElementById('csvForm').submit();">CSV出力</button>
|
||||
</div>
|
||||
<div class="ml-auto">
|
||||
@ -271,7 +271,7 @@
|
||||
<th style="width:160px;" class="{{ $thClass('user_phonetic') }}">
|
||||
<a href="{{ $urlFor('user_phonetic') }}" class="header-link">フリガナ</a>
|
||||
</th>
|
||||
<th style="width:120px;">生年月日</th>
|
||||
<th style="width:160px;">生年月日</th>
|
||||
<th style="width:80px;">年齢</th>
|
||||
<th style="width:140px;" class="{{ $thClass('user_mobile') }}">
|
||||
<a href="{{ $urlFor('user_mobile') }}" class="header-link">携帯電話番号</a>
|
||||
@ -304,7 +304,7 @@
|
||||
@endphp
|
||||
<tr>
|
||||
{{-- 利用者ID(リンク) --}}
|
||||
<td class="text-nowrap"><a href="{{ $userEditUrl }}">{{ $item->user_id }}</a></td>
|
||||
<td class="text-nowrap"><a href="{{ $userEditUrl }}">{{ $item->user_id }} △ {{ $item->user_name }}</a></td>
|
||||
{{-- タグ/QR --}}
|
||||
<td>{{ $item->tag_qr_flag ? 'QR' : 'タグ' }}</td>
|
||||
{{-- 利用者分類ID/氏名/フリガナ --}}
|
||||
|
||||
@ -340,11 +340,52 @@
|
||||
|
||||
</li>
|
||||
<!-- 集計業務 -->
|
||||
<li class="nav-item">
|
||||
<a href="#" class="nav-link">
|
||||
@php
|
||||
// 集計業務:ルート名がここに含まれている場合、展開&ハイライト
|
||||
$webRoutes = [
|
||||
'news', // 最新ニュース登録
|
||||
];
|
||||
@endphp
|
||||
<li
|
||||
class="nav-item has-treeview @if(in_array(app('router')->currentRouteName(), $webRoutes)) menu-open @endif">
|
||||
<a href="#"
|
||||
class="nav-link @if(in_array(app('router')->currentRouteName(), $webRoutes)) active @endif">
|
||||
<i class="nav-icon fa fa-calculator"></i>
|
||||
<p>集計業務</p>
|
||||
<p>
|
||||
集計業務
|
||||
<i class="right fa fa-angle-down"></i>
|
||||
</p>
|
||||
</a>
|
||||
<ul class="nav nav-treeview">
|
||||
<li class="nav-item">
|
||||
<a href="{{ route('news') }}"
|
||||
class="nav-link @if(app('router')->currentRouteName() === 'news`') active @endif">
|
||||
<span style="margin-left:20px;">一時売り上げ入力</span>
|
||||
</a>
|
||||
</li>
|
||||
|
||||
<li class="nav-item">
|
||||
<a href="{{ route('news') }}"
|
||||
class="nav-link @if(app('router')->currentRouteName() === 'news`') active @endif">
|
||||
<span style="margin-left:20px;">売上年報/月報/日報</span>
|
||||
</a>
|
||||
</li>
|
||||
|
||||
<li class="nav-item">
|
||||
<a href="{{ route('news') }}"
|
||||
class="nav-link @if(app('router')->currentRouteName() === 'news`') active @endif">
|
||||
<span style="margin-left:20px;">売上詳細</span>
|
||||
</a>
|
||||
</li>
|
||||
|
||||
<li class="nav-item">
|
||||
<a href="{{ route('news') }}"
|
||||
class="nav-link @if(app('router')->currentRouteName() === 'news`') active @endif">
|
||||
<span style="margin-left:20px;">駐輪規定読み込み記録</span>
|
||||
</a>
|
||||
</li>
|
||||
</ul>
|
||||
</li>
|
||||
|
||||
@php
|
||||
// 一般ウェブ管理:ルート名がここに含まれている場合、展開&ハイライト
|
||||
|
||||
@ -102,10 +102,6 @@ Route::middleware('auth')->group(function () {
|
||||
return view('admin.placeholder', ['title' => '利用者詳細', 'feature' => 'users', 'id' => $seq]);
|
||||
})->name('user_info')->where(['seq' => '[0-9]+']);
|
||||
|
||||
Route::match(['get', 'post'], '/users/delete', function () {
|
||||
return redirect()->route('users')->with('info', '削除機能は現在実装中です。');
|
||||
})->name('users_delete');
|
||||
|
||||
Route::match(['get', 'post'], '/users/import', function () {
|
||||
return redirect()->route('users')->with('info', 'インポート機能は現在実装中です。');
|
||||
})->name('users_import');
|
||||
@ -222,7 +218,7 @@ Route::middleware('auth')->group(function () {
|
||||
Route::match(['get', 'post'], '/users/add', [UsersController::class, 'add'])->name('users_add');
|
||||
Route::match(['get', 'post'], '/users/edit/{seq}', [UsersController::class, 'edit'])->where(['seq' => '[0-9]+'])->name('users_edit');
|
||||
Route::match(['get', 'post'], '/users/export', [UsersController::class, 'export'])->name('users_export');
|
||||
Route::post('/users/delete-confirm', [UsersController::class, 'deleteConfirm'])->name('users_delete_confirm');
|
||||
Route::post('/users/delete', [UsersController::class, 'delete'])->name('users_delete');
|
||||
|
||||
// 定期契約マスタ
|
||||
Route::match(['get', 'post'], '/regularcontracts', [RegularContractController::class, 'list'])->name('regularcontracts');
|
||||
|
||||
Loading…
Reference in New Issue
Block a user