80 lines
7.6 KiB
PHP
80 lines
7.6 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">
|
||
@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" role="alert">
|
||
@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 sm:col-span-2">
|
||
<span class="text-sm font-semibold text-gray-700">配置名称 *</span>
|
||
<input name="name" value="{{ old('name', $values['name']) }}" required maxlength="191" placeholder="例如:JianSun 测试库" class="mt-1 w-full rounded-lg border border-gray-300 px-3 py-2 text-sm placeholder-gray-500 focus:border-purple-700 focus:ring-purple-700">
|
||
</label>
|
||
<label class="block sm:col-span-2">
|
||
<span class="text-sm font-semibold text-gray-700">主机地址 *</span>
|
||
<input name="host" value="{{ old('host', $values['host']) }}" required maxlength="191" autocomplete="off" placeholder="数据库域名、IP 或本地隧道地址" class="mt-1 w-full rounded-lg border border-gray-300 px-3 py-2 text-sm placeholder-gray-500 focus:border-purple-700 focus:ring-purple-700">
|
||
</label>
|
||
<label class="block">
|
||
<span class="text-sm font-semibold text-gray-700">端口 *</span>
|
||
<input type="number" name="port" value="{{ old('port', $values['port']) }}" required min="1" max="65535" class="mt-1 w-full rounded-lg border border-gray-300 px-3 py-2 text-sm focus:border-purple-700 focus:ring-purple-700">
|
||
</label>
|
||
<label class="block">
|
||
<span class="text-sm font-semibold text-gray-700">数据库名称 *</span>
|
||
<input name="database_name" value="{{ old('database_name', $values['database_name']) }}" required maxlength="191" autocomplete="off" class="mt-1 w-full rounded-lg border border-gray-300 px-3 py-2 text-sm focus:border-purple-700 focus:ring-purple-700">
|
||
</label>
|
||
<label class="block">
|
||
<span class="text-sm font-semibold text-gray-700">只读账号 *</span>
|
||
<input name="username" value="{{ old('username', $values['username']) }}" required maxlength="191" autocomplete="off" class="mt-1 w-full rounded-lg border border-gray-300 px-3 py-2 text-sm focus:border-purple-700 focus:ring-purple-700">
|
||
</label>
|
||
<label class="block">
|
||
<span class="text-sm font-semibold text-gray-700">密码 {{ $connection ? '' : '*' }}</span>
|
||
<input type="password" name="password" @required(! $connection) maxlength="1000" autocomplete="new-password" class="mt-1 w-full rounded-lg border border-gray-300 px-3 py-2 text-sm focus:border-purple-700 focus:ring-purple-700">
|
||
<span class="mt-1 block text-xs text-gray-500">{{ $connection ? '留空表示保留原密码。' : '保存后不会回显。' }}</span>
|
||
</label>
|
||
<label class="block sm:col-span-2">
|
||
<span class="text-sm font-semibold text-gray-700">绑定业务来源</span>
|
||
<select name="source_key" class="mt-1 w-full rounded-lg border border-gray-300 px-3 py-2 text-sm focus:border-purple-700 focus:ring-purple-700">
|
||
<option value="">不绑定,仅保存和测试</option>
|
||
@foreach ($sourceLabels as $key => $label)
|
||
<option value="{{ $key }}" @selected(old('source_key', $values['source_key']) === $key)>{{ $label }}</option>
|
||
@endforeach
|
||
</select>
|
||
</label>
|
||
</div>
|
||
|
||
<details class="mt-6 rounded-lg border border-gray-200 px-4 py-3">
|
||
<summary class="cursor-pointer text-sm font-semibold text-gray-700">高级设置</summary>
|
||
<div class="mt-4 grid grid-cols-1 gap-5 sm:grid-cols-2">
|
||
<label class="block"><span class="text-sm font-semibold text-gray-700">ODBC 驱动</span><input name="odbc_driver" value="{{ old('odbc_driver', $values['odbc_driver']) }}" required maxlength="128" class="mt-1 w-full rounded-lg border border-gray-300 px-3 py-2 text-sm focus:border-purple-700 focus:ring-purple-700"></label>
|
||
<label class="block"><span class="text-sm font-semibold text-gray-700">TDS 版本</span><input name="tds_version" value="{{ old('tds_version', $values['tds_version']) }}" required maxlength="16" class="mt-1 w-full rounded-lg border border-gray-300 px-3 py-2 text-sm focus:border-purple-700 focus:ring-purple-700"></label>
|
||
<label class="block"><span class="text-sm font-semibold text-gray-700">连接超时(秒)</span><input type="number" name="connect_timeout" value="{{ old('connect_timeout', $values['connect_timeout']) }}" required min="1" max="30" class="mt-1 w-full rounded-lg border border-gray-300 px-3 py-2 text-sm focus:border-purple-700 focus:ring-purple-700"></label>
|
||
<label class="block"><span class="text-sm font-semibold text-gray-700">查询超时(秒)</span><input type="number" name="query_timeout" value="{{ old('query_timeout', $values['query_timeout']) }}" required min="1" max="120" class="mt-1 w-full rounded-lg border border-gray-300 px-3 py-2 text-sm focus:border-purple-700 focus:ring-purple-700"></label>
|
||
<label class="block sm:col-span-2"><span class="text-sm font-semibold text-gray-700">允许的数据范围</span><textarea name="allowed_scopes" rows="2" maxlength="4000" placeholder="绑定业务来源时填写,每行或逗号分隔" class="mt-1 w-full rounded-lg border border-gray-300 px-3 py-2 text-sm placeholder-gray-500 focus:border-purple-700 focus:ring-purple-700">{{ old('allowed_scopes', $values['allowed_scopes']) }}</textarea></label>
|
||
</div>
|
||
</details>
|
||
|
||
<div class="mt-6 flex items-center justify-between border-t border-gray-100 pt-5">
|
||
<div>
|
||
<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', $values['enabled'])) class="rounded border-gray-300 text-purple-700 focus:ring-purple-700">启用</label>
|
||
</div>
|
||
<div class="flex gap-3">
|
||
<a href="{{ route('system-settings.databases.index') }}" class="rounded-lg px-5 py-2 text-sm font-semibold text-gray-600 hover:bg-gray-100">取消</a>
|
||
<button type="submit" class="rounded-lg bg-purple-700 px-5 py-2 text-sm font-semibold text-white hover:bg-purple-800">保存</button>
|
||
</div>
|
||
</div>
|
||
</form>
|
||
</div>
|
||
</x-slot>
|
||
</x-layouts.admin>
|