Files
chatroom/resources/views/admin/wechat_bot/edit.blade.php

141 lines
11 KiB
PHP
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
@extends('admin.layouts.app')
@section('title', '微信机器人配置')
@section('content')
<div class="bg-white rounded-xl shadow-sm border border-gray-100 overflow-hidden">
<div class="p-6 border-b border-gray-100 flex justify-between items-center bg-gray-50">
<div>
<h2 class="text-lg font-bold text-gray-800">微信机器人全站配置</h2>
<p class="text-xs text-gray-500 mt-1">保存后如涉及 Kafka 参数修改,需要重启后端消息消费守护进程。</p>
</div>
</div>
@if (session('success'))
<div class="mx-6 mt-4 p-3 bg-green-50 border border-green-200 rounded-lg text-green-700 text-sm">
{{ session('success') }}
</div>
@endif
<div class="p-6">
<form action="{{ route('admin.wechat_bot.update') }}" method="POST" enctype="multipart/form-data">
@csrf
@method('PUT')
<!-- 1. Kafka API 基础配置 -->
<div class="mb-8">
<h3 class="text-md font-bold text-gray-800 border-b pb-2 mb-4">核心参数 (Kafka / API)</h3>
<div class="grid grid-cols-1 md:grid-cols-2 gap-6">
<div>
<label class="block text-sm font-bold text-gray-700 mb-1">Kafka Brokers</label>
<input type="text" name="kafka_brokers" value="{{ old('kafka_brokers', $config['kafka']['brokers'] ?? '') }}" class="w-full border-gray-300 rounded-md shadow-sm p-2.5 bg-gray-50 border" placeholder="如 10.10.11.18:9092">
</div>
<div>
<label class="block text-sm font-bold text-gray-700 mb-1">Kafka Topic</label>
<input type="text" name="kafka_topic" value="{{ old('kafka_topic', $config['kafka']['topic'] ?? '') }}" class="w-full border-gray-300 rounded-md shadow-sm p-2.5 bg-gray-50 border" placeholder="监听的主题">
</div>
<div>
<label class="block text-sm font-bold text-gray-700 mb-1">Kafka Group ID</label>
<input type="text" name="kafka_group_id" value="{{ old('kafka_group_id', $config['kafka']['group_id'] ?? 'chatroom_wechat_bot') }}" class="w-full border-gray-300 rounded-md shadow-sm p-2.5 bg-gray-50 border" placeholder="消费组ID">
</div>
<div>
<label class="block text-sm font-bold text-gray-700 mb-1">机器人微信号 (对外展示)</label>
<input type="text" name="kafka_bot_wxid" value="{{ old('kafka_bot_wxid', $config['kafka']['bot_wxid'] ?? '') }}" class="w-full border-gray-300 rounded-md shadow-sm p-2.5 bg-gray-50 border" placeholder="供用户添加好友用的微信号">
</div>
<div>
<label class="block text-sm font-bold text-gray-700 mb-1">机器人二维码 (对外展示图)</label>
<input type="file" name="qrcode_image" accept="image/*" class="w-full border-gray-300 rounded-md shadow-sm p-2 bg-gray-50 border">
@if(!empty($config['api']['qrcode_image']))
<div class="mt-2">
<img src="{{ Storage::url($config['api']['qrcode_image']) }}" alt="QR Code" class="h-20 w-auto rounded border border-gray-200">
</div>
@endif
</div>
<div>
<label class="block text-sm font-bold text-gray-700 mb-1">被调用方机器人服务基础API URL</label>
<input type="text" name="api_base_url" value="{{ old('api_base_url', $config['api']['base_url'] ?? '') }}" class="w-full border-gray-300 rounded-md shadow-sm p-2.5 bg-gray-50 border" placeholder="如 http://10.10.11.14:8848">
</div>
<div>
<label class="block text-sm font-bold text-gray-700 mb-1">机器人 Key (必需)</label>
<input type="text" name="api_bot_key" value="{{ old('api_bot_key', $config['api']['bot_key'] ?? '') }}" class="w-full border-gray-300 rounded-md shadow-sm p-2.5 bg-gray-50 border" placeholder="机器人的对接 Key">
</div>
</div>
</div>
<!-- 2. 全局推送时间设置 -->
<div class="mb-8">
<h3 class="text-md font-bold text-gray-800 border-b pb-2 mb-4">全局推送时间设置 (免打扰)</h3>
<div class="mb-4">
<p class="text-sm text-gray-600 mb-4">设置系统允许进行微信通知包含群聊与私聊的时间段留空则全天24小时允许推送。适用于避免夜间打扰。</p>
<div class="flex items-center space-x-4 max-w-lg">
<div class="flex-1">
<label class="block text-sm font-bold text-gray-700 mb-1">允许推送开始时间</label>
<input type="time" name="global_start_time" value="{{ old('global_start_time', $config['global_notify']['start_time'] ?? '08:00') }}" class="w-full border-gray-300 rounded-md shadow-sm p-2.5 bg-gray-50 border">
</div>
<span class="text-gray-500 font-bold mt-6"></span>
<div class="flex-1">
<label class="block text-sm font-bold text-gray-700 mb-1">允许推送结束时间</label>
<input type="time" name="global_end_time" value="{{ old('global_end_time', $config['global_notify']['end_time'] ?? '22:00') }}" class="w-full border-gray-300 rounded-md shadow-sm p-2.5 bg-gray-50 border">
</div>
</div>
</div>
</div>
<!-- 3. 群通知设置 -->
<div class="mb-8">
<h3 class="text-md font-bold text-gray-800 border-b pb-2 mb-4">群聊通知设置</h3>
<div class="mb-6 max-w-lg">
<label class="block text-sm font-bold text-gray-700 mb-1">目标微信群 Wxid</label>
<input type="text" name="group_target_wxid" value="{{ old('group_target_wxid', $config['group_notify']['target_wxid'] ?? '') }}" class="w-full border-gray-300 rounded-md shadow-sm p-2.5 bg-gray-50 border" placeholder="群的wxid标识">
<p class="text-xs mt-1 text-gray-500">以下开关针对此群发送通知</p>
</div>
<div class="space-y-4">
<label class="flex items-center cursor-pointer">
<input type="hidden" name="toggle_admin_online" value="0">
<input type="checkbox" name="toggle_admin_online" value="1" class="form-checkbox h-5 w-5 text-indigo-600 rounded border-gray-300 focus:ring-indigo-500" {{ !empty($config['group_notify']['toggle_admin_online']) ? 'checked' : '' }}>
<span class="ml-2 text-sm text-gray-700 font-bold">管理员上线通知</span>
</label>
<label class="flex items-center cursor-pointer">
<input type="hidden" name="toggle_baccarat_result" value="0">
<input type="checkbox" name="toggle_baccarat_result" value="1" class="form-checkbox h-5 w-5 text-indigo-600 rounded border-gray-300 focus:ring-indigo-500" {{ !empty($config['group_notify']['toggle_baccarat_result']) ? 'checked' : '' }}>
<span class="ml-2 text-sm text-gray-700 font-bold">百家乐开奖通知</span>
</label>
<label class="flex items-center cursor-pointer">
<input type="hidden" name="toggle_lottery_result" value="0">
<input type="checkbox" name="toggle_lottery_result" value="1" class="form-checkbox h-5 w-5 text-indigo-600 rounded border-gray-300 focus:ring-indigo-500" {{ !empty($config['group_notify']['toggle_lottery_result']) ? 'checked' : '' }}>
<span class="ml-2 text-sm text-gray-700 font-bold">彩票开奖通知</span>
</label>
</div>
</div>
<!-- 3. 点对点私聊通知设置 -->
<div class="mb-8">
<h3 class="text-md font-bold text-gray-800 border-b pb-2 mb-4">一对一私聊通知设置 (目标为用户微信)</h3>
<div class="space-y-4">
<label class="flex items-center cursor-pointer">
<input type="hidden" name="toggle_friend_online" value="0">
<input type="checkbox" name="toggle_friend_online" value="1" class="form-checkbox h-5 w-5 text-indigo-600 rounded border-gray-300 focus:ring-indigo-500" {{ !empty($config['personal_notify']['toggle_friend_online']) ? 'checked' : '' }}>
<span class="ml-2 text-sm text-gray-700 font-bold">好友上线 (带有30分钟冷却机制判断)</span>
</label>
<label class="flex items-center cursor-pointer">
<input type="hidden" name="toggle_spouse_online" value="0">
<input type="checkbox" name="toggle_spouse_online" value="1" class="form-checkbox h-5 w-5 text-indigo-600 rounded border-gray-300 focus:ring-indigo-500" {{ !empty($config['personal_notify']['toggle_spouse_online']) ? 'checked' : '' }}>
<span class="ml-2 text-sm text-gray-700 font-bold">夫妻上线 (带有30分钟冷却机制判断)</span>
</label>
<label class="flex items-center cursor-pointer">
<input type="hidden" name="toggle_level_change" value="0">
<input type="checkbox" name="toggle_level_change" value="1" class="form-checkbox h-5 w-5 text-indigo-600 rounded border-gray-300 focus:ring-indigo-500" {{ !empty($config['personal_notify']['toggle_level_change']) ? 'checked' : '' }}>
<span class="ml-2 text-sm text-gray-700 font-bold">等级变动</span>
</label>
</div>
</div>
<div class="mt-8 pt-6 border-t flex space-x-3">
<button type="submit" class="px-6 py-2 bg-indigo-600 text-white rounded-md font-bold hover:bg-indigo-700 shadow-sm transition">保存配置</button>
</div>
</form>
</div>
</div>
@endsection