WuYongJie 9595267ee7
Some checks failed
Tests / PHP 8.1 (push) Has been cancelled
Tests / PHP 8.2 (push) Has been cancelled
Tests / PHP 8.3 (push) Has been cancelled
chore: 导入 Akaunting 初始源码与团队协作规则
2026-07-20 18:20:25 +08:00

73 lines
5.5 KiB
PHP

<x-layouts.admin>
<x-slot name="title">{{ $connection ? '修改数据库配置' : '新增数据库配置' }}</x-slot>
<x-slot name="content">
<div class="my-6">
@include('system_settings.partials.navigation')
<form method="POST" action="{{ $connection ? route('system-settings.databases.update', $connection->id) : route('system-settings.databases.store') }}" class="max-w-4xl rounded-xl border border-gray-200 bg-white p-6 shadow-sm">
@csrf
@if ($connection) @method('PATCH') @endif
@if ($errors->any())
<div class="mb-5 rounded-lg bg-red-50 px-4 py-3 text-sm text-red-700">
@foreach ($errors->all() as $error)<p>{{ $error }}</p>@endforeach
</div>
@endif
<div class="grid grid-cols-1 gap-5 sm:grid-cols-2">
<label class="block">
<span class="text-sm font-semibold text-gray-700">配置名称 *</span>
<input name="name" value="{{ old('name', $connection?->name) }}" required maxlength="191" class="mt-1 w-full rounded-lg border border-gray-300 px-3 py-2.5 text-sm focus:border-purple focus:ring-purple">
</label>
<label class="block">
<span class="text-sm font-semibold text-gray-700">数据库类型 *</span>
<select name="driver" required class="mt-1 w-full rounded-lg border border-gray-300 px-3 py-2.5 text-sm focus:border-purple focus:ring-purple">
@foreach (['mysql' => 'MySQL', 'pgsql' => 'PostgreSQL', 'sqlite' => 'SQLite', 'sqlsrv' => 'SQL Server'] as $driver => $label)
<option value="{{ $driver }}" @selected(old('driver', $connection?->driver ?? 'mysql') === $driver)>{{ $label }}</option>
@endforeach
</select>
</label>
<label class="block">
<span class="text-sm font-semibold text-gray-700">主机地址</span>
<input name="host" value="{{ old('host', $connection?->host) }}" maxlength="191" placeholder="127.0.0.1" class="mt-1 w-full rounded-lg border border-gray-300 px-3 py-2.5 text-sm focus:border-purple focus:ring-purple">
</label>
<label class="block">
<span class="text-sm font-semibold text-gray-700">端口</span>
<input type="number" name="port" value="{{ old('port', $connection?->port) }}" min="1" max="65535" placeholder="3306" class="mt-1 w-full rounded-lg border border-gray-300 px-3 py-2.5 text-sm focus:border-purple focus:ring-purple">
</label>
<label class="block">
<span class="text-sm font-semibold text-gray-700">数据库名称 / SQLite 路径 *</span>
<input name="database_name" value="{{ old('database_name', $connection?->database_name) }}" required maxlength="191" class="mt-1 w-full rounded-lg border border-gray-300 px-3 py-2.5 text-sm focus:border-purple focus:ring-purple">
</label>
<label class="block">
<span class="text-sm font-semibold text-gray-700">字符集 *</span>
<input name="charset" value="{{ old('charset', $connection?->charset ?? 'utf8mb4') }}" required maxlength="30" class="mt-1 w-full rounded-lg border border-gray-300 px-3 py-2.5 text-sm focus:border-purple focus:ring-purple">
</label>
<label class="block">
<span class="text-sm font-semibold text-gray-700">用户名</span>
<input name="username" value="{{ old('username', $connection?->username) }}" maxlength="191" autocomplete="off" class="mt-1 w-full rounded-lg border border-gray-300 px-3 py-2.5 text-sm focus:border-purple focus:ring-purple">
</label>
<label class="block">
<span class="text-sm font-semibold text-gray-700">密码</span>
<input type="password" name="password" maxlength="1000" autocomplete="new-password" class="mt-1 w-full rounded-lg border border-gray-300 px-3 py-2.5 text-sm focus:border-purple focus:ring-purple">
@if ($connection)<span class="mt-1 block text-xs text-gray-400">留空表示保留已加密保存的密码</span>@endif
</label>
<div class="flex items-end pb-2">
<input type="hidden" name="enabled" value="0">
<label class="inline-flex items-center gap-2 text-sm font-semibold text-gray-700">
<input type="checkbox" name="enabled" value="1" @checked((bool) old('enabled', $connection?->enabled ?? true)) class="rounded border-gray-300 text-purple focus:ring-purple">
启用配置
</label>
</div>
</div>
<div class="mt-7 flex justify-end gap-3 border-t border-gray-100 pt-5">
<a href="{{ route('system-settings.databases.index') }}" class="rounded-lg px-5 py-2.5 text-sm text-gray-600 hover:bg-gray-100">取消</a>
<button type="submit" class="rounded-lg bg-green px-5 py-2.5 text-sm text-white hover:bg-green-700">保存</button>
</div>
</form>
</div>
</x-slot>
</x-layouts.admin>