更新分组密码

This commit is contained in:
2026-05-29 22:55:10 +08:00
parent dfd308873a
commit 26e42dd2a4
14 changed files with 308 additions and 14 deletions
@@ -32,9 +32,16 @@
</div>
</a>
@foreach($data as $index => $group)
@if(!empty($group['is_group_locked']))
<a href="javascript:void(0);" class="tab-link group-password-link" data-group-id="{{ $group['id'] }}" data-group-name="{{ $group['gp_name'] }}" aria-expanded="false" role="tab">
@else
<a href="#group-{{ $group['id'] }}" class="tab-link" data-bs-toggle="tab" aria-expanded="false" role="tab" data-toggle="tab">
@endif
<span class="tab-title">
{{ $group['gp_name'] }}
@if(!empty($group['is_group_locked']))
<i class="uil-lock-alt"></i>
@endif
</span>
<div class="img-checkmark">
<img src="/assets/hyper/images/check.png">
@@ -98,6 +105,24 @@
</div>
@endforeach
</div>
<div class="modal fade" id="group-password-modal" tabindex="-1" role="dialog" aria-hidden="true">
<div class="modal-dialog modal-dialog-centered">
<div class="modal-content">
<div class="modal-header">
<h5 class="modal-title">{{ __('dujiaoka.prompt.goods_group_password_title') }}</h5>
<button type="button" class="close" data-dismiss="modal" aria-hidden="true">×</button>
</div>
<div class="modal-body">
<input type="hidden" id="group-password-id">
<div class="mb-2" id="group-password-name"></div>
<input type="password" class="form-control" id="group-password-input" placeholder="{{ __('dujiaoka.prompt.goods_group_password_placeholder') }}">
</div>
<div class="modal-footer">
<button type="button" class="btn btn-primary" id="group-password-submit">{{ __('dujiaoka.prompt.goods_group_password_submit') }}</button>
</div>
</div>
</div>
</div>
<div class="modal fade" id="notice-modal" tabindex="-1" role="dialog" aria-hidden="true">
<div class="modal-dialog modal-dialog-centered">
<div class="modal-content">
@@ -125,8 +150,29 @@
$(".category").show();
}
});
$('.group-password-link').click(function() {
$('#group-password-id').val($(this).data('group-id'));
$('#group-password-name').text($(this).data('group-name'));
$('#group-password-input').val('');
$('#group-password-modal').modal();
});
$('#group-password-submit').click(function() {
$.post("{{ url('verify-group-password') }}", {
_token: "{{ csrf_token() }}",
group_id: $('#group-password-id').val(),
password: $('#group-password-input').val()
}, function(res) {
if (res.code === 200) {
window.location.reload();
} else {
$.NotificationApp.send("{{ __('hyper.home_tip') }}", res.msg, "top-center", "rgba(0,0,0,0.2)", "error");
}
});
});
function sell_out_tip() {
$.NotificationApp.send("{{ __('hyper.home_tip') }}","{{ __('hyper.home_sell_out_tip') }}","top-center","rgba(0,0,0,0.2)","info");
}
</script>
@stop
@stop
@@ -73,8 +73,8 @@
</body>
<script id="cateTpl" type="text/html">
<div class="cate-box" data-key="<< d.key >>">
<p><< d.gp_name >></p>
<div>{{ __('luna.goods_num') }}<< d.goods.length >></div>
<p><< d.gp_name >><<# if(d.is_group_locked){ >> 🔒<<# }; >></p>
<div><<# if(d.is_group_locked){ >>{{ __('dujiaoka.prompt.goods_group_password_required_short') }}<<# } else { >>{{ __('luna.goods_num') }}<< d.goods.length >><<# }; >></div>
</div>
</script>
<script id="goodsTpl" type="text/html">
@@ -101,8 +101,12 @@
</script>
<script>
let title = "{{ __('dujiaoka.site_announcement') }}",
goodsMsg = {!! json_encode($data) !!};
let title = "{{ __('dujiaoka.site_announcement') }}",
goodsMsg = {!! json_encode($data) !!},
groupPasswordVerifyUrl = "{{ url('verify-group-password') }}",
groupPasswordCsrfToken = "{{ csrf_token() }}",
groupPasswordTitle = "{{ __('dujiaoka.prompt.goods_group_password_title') }}",
groupPasswordPlaceholder = "{{ __('dujiaoka.prompt.goods_group_password_placeholder') }}",
groupPasswordSubmit = "{{ __('dujiaoka.prompt.goods_group_password_submit') }}";
</script>
@endsection
@@ -48,7 +48,11 @@
</li>
@foreach($data as $index => $group)
<li class="nav-item">
<a href="#group-{{ $group['id'] }}" data-bs-toggle="tab" class="btn btn-outline-secondary">{{ $group['gp_name'] }}</a>
@if(!empty($group['is_group_locked']))
<a href="javascript:void(0);" class="btn btn-outline-secondary group-password-link" data-group-id="{{ $group['id'] }}" data-group-name="{{ $group['gp_name'] }}">{{ $group['gp_name'] }} <i class="ali-icon">&#xe62d;</i></a>
@else
<a href="#group-{{ $group['id'] }}" data-bs-toggle="tab" class="btn btn-outline-secondary">{{ $group['gp_name'] }}</a>
@endif
</li>
@endforeach
</ul>
@@ -171,6 +175,25 @@
</section>
<!-- main end -->
<div class="modal fade" id="group-password-modal" tabindex="-1" aria-hidden="true">
<div class="modal-dialog modal-dialog-centered">
<div class="modal-content">
<div class="modal-header">
<h5 class="modal-title">{{ __('dujiaoka.prompt.goods_group_password_title') }}</h5>
<button type="button" class="btn-close" data-bs-dismiss="modal" aria-label="Close">×</button>
</div>
<div class="modal-body">
<input type="hidden" id="group-password-id">
<div class="mb-2" id="group-password-name"></div>
<input type="password" class="form-control" id="group-password-input" placeholder="{{ __('dujiaoka.prompt.goods_group_password_placeholder') }}">
</div>
<div class="modal-footer">
<button type="button" class="btn btn-primary" id="group-password-submit">{{ __('dujiaoka.prompt.goods_group_password_submit') }}</button>
</div>
</div>
</div>
</div>
@stop
@section('js')
@@ -185,5 +208,35 @@
$(".col").show();
}
});
function showGroupPasswordModal() {
var modalEl = document.getElementById('group-password-modal');
if (typeof bootstrap !== 'undefined' && bootstrap.Modal) {
bootstrap.Modal.getOrCreateInstance(modalEl).show();
} else {
$('#group-password-modal').modal();
}
}
$('.group-password-link').click(function() {
$('#group-password-id').val($(this).data('group-id'));
$('#group-password-name').text($(this).data('group-name'));
$('#group-password-input').val('');
showGroupPasswordModal();
});
$('#group-password-submit').click(function() {
$.post("{{ url('verify-group-password') }}", {
_token: "{{ csrf_token() }}",
group_id: $('#group-password-id').val(),
password: $('#group-password-input').val()
}, function(res) {
if (res.code === 200) {
window.location.reload();
} else {
alert(res.msg);
}
});
});
</script>
@stop