💄 角色组创建表单页面样式
This commit is contained in:
@@ -11,6 +11,8 @@ use Illuminate\View\View;
|
||||
|
||||
class GroupController extends Controller
|
||||
{
|
||||
protected array $extensions = ['jpeg', 'jpg', 'png', 'gif', 'tif', 'bmp', 'ico', 'psd', 'webp'];
|
||||
|
||||
public function index(Request $request): View
|
||||
{
|
||||
$groups = Group::query()->when($request->query('keywords'), function (Builder $builder, $keywords) {
|
||||
@@ -21,13 +23,14 @@ class GroupController extends Controller
|
||||
|
||||
public function add(): View
|
||||
{
|
||||
return view('admin.group.add');
|
||||
return view('admin.group.add', ['extensions' => $this->extensions]);
|
||||
}
|
||||
|
||||
public function edit(Request $request): View
|
||||
{
|
||||
$group = Group::query()->findOrFail($request->route('id'));
|
||||
return view('admin.group.edit', compact('group'));
|
||||
$extensions = $this->extensions;
|
||||
return view('admin.group.edit', compact('group', 'extensions'));
|
||||
}
|
||||
|
||||
public function create(): Response
|
||||
|
||||
@@ -80,7 +80,7 @@ class DatabaseSeeder extends Seeder
|
||||
GroupConfigKey::LimitPerDay => 300,
|
||||
GroupConfigKey::LimitPerWeek => 600,
|
||||
GroupConfigKey::LimitPerMonth => 999,
|
||||
GroupConfigKey::AcceptedFileSuffixes => ['jpeg', 'png', 'gif', 'tif', 'bmp', 'ico', 'psd', 'webp'],
|
||||
GroupConfigKey::AcceptedFileSuffixes => ['jpeg', 'jpg', 'png', 'gif', 'tif', 'bmp', 'ico', 'psd', 'webp'],
|
||||
GroupConfigKey::PathNamingRule => '{Y}/{m}/{d}',
|
||||
GroupConfigKey::FileNamingRule => '{uniqid}',
|
||||
GroupConfigKey::CacheTtl => 2626560,
|
||||
|
||||
Vendored
+113
@@ -652,6 +652,10 @@ select {
|
||||
bottom: 0px;
|
||||
left: 0px;
|
||||
}
|
||||
.inset-y-0 {
|
||||
top: 0px;
|
||||
bottom: 0px;
|
||||
}
|
||||
.top-1 {
|
||||
top: 0.25rem;
|
||||
}
|
||||
@@ -808,6 +812,9 @@ select {
|
||||
.mb-3 {
|
||||
margin-bottom: 0.75rem;
|
||||
}
|
||||
.mt-5 {
|
||||
margin-top: 1.25rem;
|
||||
}
|
||||
.block {
|
||||
display: block;
|
||||
}
|
||||
@@ -1031,6 +1038,9 @@ select {
|
||||
.flex-nowrap {
|
||||
flex-wrap: nowrap;
|
||||
}
|
||||
.items-start {
|
||||
align-items: flex-start;
|
||||
}
|
||||
.items-center {
|
||||
align-items: center;
|
||||
}
|
||||
@@ -1171,6 +1181,18 @@ select {
|
||||
border-top-right-radius: 0.375rem;
|
||||
border-bottom-right-radius: 0.375rem;
|
||||
}
|
||||
.rounded-t-lg {
|
||||
border-top-left-radius: 0.5rem;
|
||||
border-top-right-radius: 0.5rem;
|
||||
}
|
||||
.rounded-b-lg {
|
||||
border-bottom-right-radius: 0.5rem;
|
||||
border-bottom-left-radius: 0.5rem;
|
||||
}
|
||||
.rounded-l-none {
|
||||
border-top-left-radius: 0px;
|
||||
border-bottom-left-radius: 0px;
|
||||
}
|
||||
.border {
|
||||
border-width: 1px;
|
||||
}
|
||||
@@ -1293,6 +1315,17 @@ select {
|
||||
--tw-bg-opacity: 1;
|
||||
background-color: rgb(55 65 81 / var(--tw-bg-opacity));
|
||||
}
|
||||
.bg-transparent {
|
||||
background-color: transparent;
|
||||
}
|
||||
.bg-indigo-600 {
|
||||
--tw-bg-opacity: 1;
|
||||
background-color: rgb(79 70 229 / var(--tw-bg-opacity));
|
||||
}
|
||||
.bg-red-50 {
|
||||
--tw-bg-opacity: 1;
|
||||
background-color: rgb(254 242 242 / var(--tw-bg-opacity));
|
||||
}
|
||||
.bg-opacity-75 {
|
||||
--tw-bg-opacity: 0.75;
|
||||
}
|
||||
@@ -1387,6 +1420,10 @@ select {
|
||||
padding-top: 2.5rem;
|
||||
padding-bottom: 2.5rem;
|
||||
}
|
||||
.py-0 {
|
||||
padding-top: 0px;
|
||||
padding-bottom: 0px;
|
||||
}
|
||||
.pb-6 {
|
||||
padding-bottom: 1.5rem;
|
||||
}
|
||||
@@ -1414,6 +1451,18 @@ select {
|
||||
.pb-1 {
|
||||
padding-bottom: 0.25rem;
|
||||
}
|
||||
.pl-7 {
|
||||
padding-left: 1.75rem;
|
||||
}
|
||||
.pr-12 {
|
||||
padding-right: 3rem;
|
||||
}
|
||||
.pl-2 {
|
||||
padding-left: 0.5rem;
|
||||
}
|
||||
.pr-7 {
|
||||
padding-right: 1.75rem;
|
||||
}
|
||||
.text-left {
|
||||
text-align: left;
|
||||
}
|
||||
@@ -1480,6 +1529,9 @@ select {
|
||||
.leading-7 {
|
||||
line-height: 1.75rem;
|
||||
}
|
||||
.leading-6 {
|
||||
line-height: 1.5rem;
|
||||
}
|
||||
.tracking-wider {
|
||||
letter-spacing: 0.05em;
|
||||
}
|
||||
@@ -1720,6 +1772,14 @@ select {
|
||||
--tw-bg-opacity: 1;
|
||||
background-color: rgb(37 99 235 / var(--tw-bg-opacity));
|
||||
}
|
||||
.hover\:bg-indigo-700:hover {
|
||||
--tw-bg-opacity: 1;
|
||||
background-color: rgb(67 56 202 / var(--tw-bg-opacity));
|
||||
}
|
||||
.hover\:bg-gray-500:hover {
|
||||
--tw-bg-opacity: 1;
|
||||
background-color: rgb(107 114 128 / var(--tw-bg-opacity));
|
||||
}
|
||||
.hover\:text-gray-500:hover {
|
||||
--tw-text-opacity: 1;
|
||||
color: rgb(107 114 128 / var(--tw-text-opacity));
|
||||
@@ -1847,6 +1907,10 @@ select {
|
||||
.group:hover .group-hover\:hidden {
|
||||
display: none;
|
||||
}
|
||||
.group:hover .group-hover\:bg-white {
|
||||
--tw-bg-opacity: 1;
|
||||
background-color: rgb(255 255 255 / var(--tw-bg-opacity));
|
||||
}
|
||||
.dark .dark\:bg-gray-900 {
|
||||
--tw-bg-opacity: 1;
|
||||
background-color: rgb(17 24 39 / var(--tw-bg-opacity));
|
||||
@@ -1861,6 +1925,14 @@ select {
|
||||
grid-column: span 3 / span 3;
|
||||
}
|
||||
|
||||
.sm\:col-span-4 {
|
||||
grid-column: span 4 / span 4;
|
||||
}
|
||||
|
||||
.sm\:col-span-6 {
|
||||
grid-column: span 6 / span 6;
|
||||
}
|
||||
|
||||
.sm\:-mx-6 {
|
||||
margin-left: -1.5rem;
|
||||
margin-right: -1.5rem;
|
||||
@@ -1883,6 +1955,10 @@ select {
|
||||
margin-left: 1.5rem;
|
||||
}
|
||||
|
||||
.sm\:mt-0 {
|
||||
margin-top: 0px;
|
||||
}
|
||||
|
||||
.sm\:block {
|
||||
display: block;
|
||||
}
|
||||
@@ -1937,6 +2013,18 @@ select {
|
||||
margin-bottom: calc(0.5rem * var(--tw-space-y-reverse));
|
||||
}
|
||||
|
||||
.sm\:space-x-4 > :not([hidden]) ~ :not([hidden]) {
|
||||
--tw-space-x-reverse: 0;
|
||||
margin-right: calc(1rem * var(--tw-space-x-reverse));
|
||||
margin-left: calc(1rem * calc(1 - var(--tw-space-x-reverse)));
|
||||
}
|
||||
|
||||
.sm\:space-x-2 > :not([hidden]) ~ :not([hidden]) {
|
||||
--tw-space-x-reverse: 0;
|
||||
margin-right: calc(0.5rem * var(--tw-space-x-reverse));
|
||||
margin-left: calc(0.5rem * calc(1 - var(--tw-space-x-reverse)));
|
||||
}
|
||||
|
||||
.sm\:rounded-md {
|
||||
border-radius: 0.375rem;
|
||||
}
|
||||
@@ -1959,6 +2047,11 @@ select {
|
||||
padding-right: 2.5rem;
|
||||
}
|
||||
|
||||
.sm\:px-0 {
|
||||
padding-left: 0px;
|
||||
padding-right: 0px;
|
||||
}
|
||||
|
||||
.sm\:pt-0 {
|
||||
padding-top: 0px;
|
||||
}
|
||||
@@ -1981,6 +2074,14 @@ select {
|
||||
}
|
||||
@media (min-width: 768px) {
|
||||
|
||||
.md\:col-span-1 {
|
||||
grid-column: span 1 / span 1;
|
||||
}
|
||||
|
||||
.md\:col-span-2 {
|
||||
grid-column: span 2 / span 2;
|
||||
}
|
||||
|
||||
.md\:my-10 {
|
||||
margin-top: 2.5rem;
|
||||
margin-bottom: 2.5rem;
|
||||
@@ -2018,6 +2119,10 @@ select {
|
||||
grid-template-columns: repeat(2, minmax(0, 1fr));
|
||||
}
|
||||
|
||||
.md\:grid-cols-3 {
|
||||
grid-template-columns: repeat(3, minmax(0, 1fr));
|
||||
}
|
||||
|
||||
.md\:flex-row {
|
||||
flex-direction: row;
|
||||
}
|
||||
@@ -2030,6 +2135,10 @@ select {
|
||||
justify-content: space-between;
|
||||
}
|
||||
|
||||
.md\:gap-6 {
|
||||
gap: 1.5rem;
|
||||
}
|
||||
|
||||
.md\:gap-x-4 {
|
||||
-moz-column-gap: 1rem;
|
||||
column-gap: 1rem;
|
||||
@@ -2066,6 +2175,10 @@ select {
|
||||
}
|
||||
@media (min-width: 1024px) {
|
||||
|
||||
.lg\:col-span-2 {
|
||||
grid-column: span 2 / span 2;
|
||||
}
|
||||
|
||||
.lg\:-mx-8 {
|
||||
margin-left: -2rem;
|
||||
margin-right: -2rem;
|
||||
|
||||
@@ -1,5 +1,192 @@
|
||||
<x-app-layout>
|
||||
<div class="my-6 md:my-10">
|
||||
创建角色组
|
||||
<div class="mt-5 md:mt-0 md:col-span-2">
|
||||
<ul id="tabs" class="flex space-x-2 text-sm">
|
||||
<li class="group">
|
||||
<a data-target="basic" href="javascript:void(0)" class="block rounded-t-lg px-3 py-2 bg-white group-hover:bg-white">常规配置</a>
|
||||
</li>
|
||||
<li class="group">
|
||||
<a data-target="review" href="javascript:void(0)" class="block rounded-t-lg px-3 py-2 bg-gray-200 group-hover:bg-white">鉴黄配置</a>
|
||||
</li>
|
||||
<li class="group">
|
||||
<a data-target="protection" href="javascript:void(0)" class="block rounded-t-lg px-3 py-2 bg-gray-200 group-hover:bg-white">原图保护</a>
|
||||
</li>
|
||||
<li class="group">
|
||||
<a data-target="watermark" href="javascript:void(0)" class="block rounded-t-lg px-3 py-2 bg-gray-200 group-hover:bg-white">水印配置</a>
|
||||
</li>
|
||||
</ul>
|
||||
<form action="#" method="POST">
|
||||
<div class="overflow-hidden rounded-md rounded-l-none">
|
||||
<div class="px-4 py-5 bg-white sm:p-6">
|
||||
<div data-tab="basic" class="grid grid-cols-6 gap-6">
|
||||
<div class="col-span-6">
|
||||
<label for="name" class="block text-sm font-medium text-gray-700">组名称</label>
|
||||
<input type="text" name="name" id="name" autocomplete="name" class="mt-1 focus:ring-indigo-500 focus:border-indigo-500 block w-full shadow-sm sm:text-sm border-gray-300 rounded-md" placeholder="请输入组名称">
|
||||
</div>
|
||||
|
||||
<div class="col-span-6">
|
||||
<label for="maximum_file_size" class="block text-sm font-medium text-gray-700">最大文件大小(KB)</label>
|
||||
<input type="number" name="configs[maximum_file_size]" id="maximum_file_size" autocomplete="maximum_file_size" class="mt-1 focus:ring-indigo-500 focus:border-indigo-500 block w-full shadow-sm sm:text-sm border-gray-300 rounded-md" placeholder="请输入上传文件的最大限制,单位kb">
|
||||
</div>
|
||||
|
||||
<div class="col-span-6 sm:col-span-3">
|
||||
<label for="concurrent_upload_num" class="block text-sm font-medium text-gray-700">并发上传数量</label>
|
||||
<input type="number" name="configs[concurrent_upload_num]" id="concurrent_upload_num" autocomplete="concurrent_upload_num" class="mt-1 focus:ring-indigo-500 focus:border-indigo-500 block w-full shadow-sm sm:text-sm border-gray-300 rounded-md" placeholder="请输入并发上传数量">
|
||||
</div>
|
||||
|
||||
<div class="col-span-6 sm:col-span-3">
|
||||
<label for="limit_per_minute" class="block text-sm font-medium text-gray-700">每分钟上传限制</label>
|
||||
<input type="number" name="configs[limit_per_minute]" id="limit_per_minute" autocomplete="limit_per_minute" class="mt-1 focus:ring-indigo-500 focus:border-indigo-500 block w-full shadow-sm sm:text-sm border-gray-300 rounded-md" placeholder="请输入每分钟可以上传的图片数量">
|
||||
</div>
|
||||
|
||||
<div class="col-span-6 sm:col-span-3">
|
||||
<label for="limit_per_hour" class="block text-sm font-medium text-gray-700">每小时上传限制</label>
|
||||
<input type="number" name="configs[limit_per_hour]" id="limit_per_hour" autocomplete="limit_per_hour" class="mt-1 focus:ring-indigo-500 focus:border-indigo-500 block w-full shadow-sm sm:text-sm border-gray-300 rounded-md" placeholder="请输入每小时可以上传的图片数量">
|
||||
</div>
|
||||
|
||||
<div class="col-span-6 sm:col-span-3">
|
||||
<label for="limit_per_day" class="block text-sm font-medium text-gray-700">每天上传限制</label>
|
||||
<input type="number" name="configs[limit_per_day]" id="limit_per_day" autocomplete="limit_per_day" class="mt-1 focus:ring-indigo-500 focus:border-indigo-500 block w-full shadow-sm sm:text-sm border-gray-300 rounded-md" placeholder="请输入每天可以上传的图片数量">
|
||||
</div>
|
||||
|
||||
<div class="col-span-6 sm:col-span-3">
|
||||
<label for="limit_per_week" class="block text-sm font-medium text-gray-700">每周上传限制</label>
|
||||
<input type="number" name="configs[limit_per_week]" id="limit_per_week" autocomplete="limit_per_week" class="mt-1 focus:ring-indigo-500 focus:border-indigo-500 block w-full shadow-sm sm:text-sm border-gray-300 rounded-md" placeholder="请输入每周可以上传的图片数量">
|
||||
</div>
|
||||
|
||||
<div class="col-span-6 sm:col-span-3">
|
||||
<label for="limit_per_month" class="block text-sm font-medium text-gray-700">每月上传限制</label>
|
||||
<input type="number" name="configs[limit_per_month]" id="limit_per_month" autocomplete="limit_per_month" class="mt-1 focus:ring-indigo-500 focus:border-indigo-500 block w-full shadow-sm sm:text-sm border-gray-300 rounded-md" placeholder="请输入每月可以上传的图片数量">
|
||||
</div>
|
||||
|
||||
<div class="col-span-6 sm:col-span-3">
|
||||
<label for="path_naming_rule" class="block text-sm font-medium text-gray-700">路径命名规则</label>
|
||||
<input type="number" name="configs[path_naming_rule]" id="path_naming_rule" autocomplete="path_naming_rule" class="mt-1 focus:ring-indigo-500 focus:border-indigo-500 block w-full shadow-sm sm:text-sm border-gray-300 rounded-md" placeholder="请输入路径命名规则">
|
||||
</div>
|
||||
|
||||
<div class="col-span-6 sm:col-span-3">
|
||||
<label for="file_naming_rule" class="block text-sm font-medium text-gray-700">文件命名规则</label>
|
||||
<input type="number" name="configs[file_naming_rule]" id="file_naming_rule" autocomplete="file_naming_rule" class="mt-1 focus:ring-indigo-500 focus:border-indigo-500 block w-full shadow-sm sm:text-sm border-gray-300 rounded-md" placeholder="请输入文件命名规则">
|
||||
</div>
|
||||
|
||||
<div class="col-span-6">
|
||||
<fieldset>
|
||||
<div>
|
||||
<legend class="text-base font-medium text-gray-900">是否默认</legend>
|
||||
<p class="text-sm text-gray-500">设置默认后,新用户注册以后将会属于该默认角色组。</p>
|
||||
</div>
|
||||
<div class="mt-4 space-x-6 flex items-center">
|
||||
<div class="flex items-center">
|
||||
<input id="is_default_yes" name="configs[is_default]" type="radio" class="focus:ring-indigo-500 h-4 w-4 text-indigo-600 border-gray-300" value="1">
|
||||
<label for="is_default_yes" class="ml-3 block text-sm font-medium text-gray-700">是</label>
|
||||
</div>
|
||||
<div class="flex items-center">
|
||||
<input id="is_default_no" name="configs[is_default]" type="radio" class="focus:ring-indigo-500 h-4 w-4 text-indigo-600 border-gray-300" value="0" checked>
|
||||
<label for="is_default_no" class="ml-3 block text-sm font-medium text-gray-700">否</label>
|
||||
</div>
|
||||
</div>
|
||||
</fieldset>
|
||||
</div>
|
||||
|
||||
<div class="col-span-6">
|
||||
<fieldset>
|
||||
<legend class="text-base font-medium text-gray-900">允许上传的图片类型</legend>
|
||||
<div class="flex mt-4 space-x-4">
|
||||
@foreach($extensions as $extension)
|
||||
<div class="flex items-center h-5 space-x-2">
|
||||
<input id="{{ $extension }}" name="{{ $extension }}" type="checkbox" class="focus:ring-indigo-500 h-4 w-4 text-indigo-600 border-gray-300 rounded" checked>
|
||||
<label for="{{ $extension }}" class="font-medium text-gray-700">{{ strtoupper($extension) }}</label>
|
||||
</div>
|
||||
@endforeach
|
||||
</div>
|
||||
</fieldset>
|
||||
</div>
|
||||
</div>
|
||||
<div data-tab="review" class="hidden grid grid-cols-6 gap-6">
|
||||
<div class="col-span-6">
|
||||
<fieldset>
|
||||
<div>
|
||||
<legend class="text-base font-medium text-gray-900">鉴黄审查</legend>
|
||||
<p class="text-sm text-gray-500">设置上传是否需要通过鉴黄功能审查,超过设置的阈值则会被标记为不健康的图片,或直接被删除。</p>
|
||||
</div>
|
||||
<div class="mt-4 space-x-6 flex items-center">
|
||||
<div class="flex items-center">
|
||||
<input id="is_enable_review_yes" name="configs[is_enable_review]" type="radio" class="focus:ring-indigo-500 h-4 w-4 text-indigo-600 border-gray-300" value="1">
|
||||
<label for="is_enable_review_yes" class="ml-3 block text-sm font-medium text-gray-700">是</label>
|
||||
</div>
|
||||
<div class="flex items-center">
|
||||
<input id="is_enable_review_no" name="configs[is_enable_review]" type="radio" class="focus:ring-indigo-500 h-4 w-4 text-indigo-600 border-gray-300" value="0" checked>
|
||||
<label for="is_enable_review_no" class="ml-3 block text-sm font-medium text-gray-700">否</label>
|
||||
</div>
|
||||
</div>
|
||||
</fieldset>
|
||||
</div>
|
||||
</div>
|
||||
<div data-tab="protection" class="hidden grid grid-cols-6 gap-6">
|
||||
<div class="col-span-6">
|
||||
<fieldset>
|
||||
<div>
|
||||
<legend class="text-base font-medium text-gray-900">原图保护</legend>
|
||||
<p class="text-sm text-gray-500">设置该角色组下的用户上传的图片是否应用原图保护功能,开启后图片<b>不返回直链</b>。</p>
|
||||
</div>
|
||||
<div class="mt-4 space-x-6 flex items-center">
|
||||
<div class="flex items-center">
|
||||
<input id="is_enable_original_protection_yes" name="configs[is_enable_original_protection]" type="radio" class="focus:ring-indigo-500 h-4 w-4 text-indigo-600 border-gray-300" value="1">
|
||||
<label for="is_enable_original_protection_yes" class="ml-3 block text-sm font-medium text-gray-700">是</label>
|
||||
</div>
|
||||
<div class="flex items-center">
|
||||
<input id="is_enable_original_protection_no" name="configs[is_enable_original_protection]" type="radio" class="focus:ring-indigo-500 h-4 w-4 text-indigo-600 border-gray-300" value="0" checked>
|
||||
<label for="is_enable_original_protection_no" class="ml-3 block text-sm font-medium text-gray-700">否</label>
|
||||
</div>
|
||||
</div>
|
||||
</fieldset>
|
||||
</div>
|
||||
|
||||
<div class="col-span-6 mt-4">
|
||||
<label for="cache_ttl" class="block text-sm font-medium text-gray-700">图片缓存时间(秒)</label>
|
||||
<input type="number" name="configs[cache_ttl]" id="cache_ttl" autocomplete="cache_ttl" class="mt-1 focus:ring-indigo-500 focus:border-indigo-500 block w-full shadow-sm sm:text-sm border-gray-300 rounded-md" placeholder="请输入受保护图片的缓存时间,0 为不缓存">
|
||||
</div>
|
||||
</div>
|
||||
<div data-tab="watermark" class="hidden grid grid-cols-6 gap-6">
|
||||
<p class="mb-3 text-red-600 text-sm"><i class="fas fa-exclamation"></i> 开启水印功能前请注意考虑图片版权问题。</p>
|
||||
<div class="col-span-6">
|
||||
<fieldset>
|
||||
<div>
|
||||
<legend class="text-base font-medium text-gray-900">开启水印</legend>
|
||||
<p class="text-sm text-gray-500">请注意,水印功能仅在开启了「原图保护」功能的情况下生效。</p>
|
||||
</div>
|
||||
<div class="mt-4 space-x-6 flex items-center">
|
||||
<div class="flex items-center">
|
||||
<input id="is_enable_watermark_yes" name="configs[is_enable_watermark]" type="radio" class="focus:ring-indigo-500 h-4 w-4 text-indigo-600 border-gray-300" value="1">
|
||||
<label for="is_enable_watermark_yes" class="ml-3 block text-sm font-medium text-gray-700">是</label>
|
||||
</div>
|
||||
<div class="flex items-center">
|
||||
<input id="is_enable_watermark_no" name="configs[is_enable_watermark]" type="radio" class="focus:ring-indigo-500 h-4 w-4 text-indigo-600 border-gray-300" value="0" checked>
|
||||
<label for="is_enable_watermark_no" class="ml-3 block text-sm font-medium text-gray-700">否</label>
|
||||
</div>
|
||||
</div>
|
||||
</fieldset>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="px-4 py-3 bg-gray-50 text-right sm:px-6">
|
||||
<x-button type="button" class="bg-gray-500" onclick="history.go(-1)">取消</x-button>
|
||||
<x-button>确认创建</x-button>
|
||||
</div>
|
||||
</div>
|
||||
</form>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
@push('scripts')
|
||||
<script>
|
||||
$('[data-target]').click(function () {
|
||||
$('[data-tab]').hide();
|
||||
$('[data-target]').removeClass('bg-white').addClass('bg-gray-200');
|
||||
$(`[data-tab=${$(this).data('target')}]`).show();
|
||||
$(this).removeClass('bg-gray-200').addClass('bg-white');
|
||||
});
|
||||
</script>
|
||||
@endpush
|
||||
|
||||
</x-app-layout>
|
||||
|
||||
@@ -48,42 +48,45 @@
|
||||
<label for="password" class="block text-sm font-medium text-gray-700">密码</label>
|
||||
<input type="password" name="password" id="password" placeholder="不修改请留空" autocomplete="password" class="mt-1 focus:ring-indigo-500 focus:border-indigo-500 block w-full shadow-sm sm:text-sm border-gray-300 rounded-md">
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="px-4 py-5 bg-white space-y-6 sm:p-6">
|
||||
<fieldset>
|
||||
<div>
|
||||
<legend class="text-base font-medium text-gray-900">是否自动清除预览</legend>
|
||||
<p class="text-sm text-gray-500">设置上传时,文件上传完成以后是否自动清除预览图片</p>
|
||||
<div class="col-span-6">
|
||||
<fieldset>
|
||||
<div>
|
||||
<legend class="text-base font-medium text-gray-900">是否自动清除预览</legend>
|
||||
<p class="text-sm text-gray-500">设置上传时,文件上传完成以后是否自动清除预览图片</p>
|
||||
</div>
|
||||
<div class="mt-4 space-x-6 flex items-center">
|
||||
<div class="flex items-center">
|
||||
<input id="is_auto_clear_preview_yes" name="configs[is_auto_clear_preview]" type="radio" class="focus:ring-indigo-500 h-4 w-4 text-indigo-600 border-gray-300" value="1" {{ Auth::user()->configs->get(\App\Enums\UserConfigKey::IsAutoClearPreview) ? 'checked' : '' }}>
|
||||
<label for="is_auto_clear_preview_yes" class="ml-3 block text-sm font-medium text-gray-700">是</label>
|
||||
</div>
|
||||
<div class="flex items-center">
|
||||
<input id="is_auto_clear_preview_no" name="configs[is_auto_clear_preview]" type="radio" class="focus:ring-indigo-500 h-4 w-4 text-indigo-600 border-gray-300" value="0" {{ ! Auth::user()->configs->get(\App\Enums\UserConfigKey::IsAutoClearPreview) ? 'checked' : '' }}>
|
||||
<label for="is_auto_clear_preview_no" class="ml-3 block text-sm font-medium text-gray-700">否</label>
|
||||
</div>
|
||||
</div>
|
||||
</fieldset>
|
||||
</div>
|
||||
<div class="mt-4 space-x-6 flex items-center">
|
||||
<div class="flex items-center">
|
||||
<input id="is_auto_clear_preview_yes" name="configs[is_auto_clear_preview]" type="radio" class="focus:ring-indigo-500 h-4 w-4 text-indigo-600 border-gray-300" value="1" {{ Auth::user()->configs->get(\App\Enums\UserConfigKey::IsAutoClearPreview) ? 'checked' : '' }}>
|
||||
<label for="is_auto_clear_preview_yes" class="ml-3 block text-sm font-medium text-gray-700">是</label>
|
||||
</div>
|
||||
<div class="flex items-center">
|
||||
<input id="is_auto_clear_preview_no" name="configs[is_auto_clear_preview]" type="radio" class="focus:ring-indigo-500 h-4 w-4 text-indigo-600 border-gray-300" value="0" {{ ! Auth::user()->configs->get(\App\Enums\UserConfigKey::IsAutoClearPreview) ? 'checked' : '' }}>
|
||||
<label for="is_auto_clear_preview_no" class="ml-3 block text-sm font-medium text-gray-700">否</label>
|
||||
</div>
|
||||
|
||||
<div class="col-span-6">
|
||||
<fieldset>
|
||||
<div>
|
||||
<legend class="text-base font-medium text-gray-900">图片默认权限</legend>
|
||||
<p class="text-sm text-gray-500">设置上传的图片默认的权限(公开还是私有,公开的图片将会出现在画廊中,你也可以通过图片管理单独设置权限)</p>
|
||||
</div>
|
||||
<div class="mt-4 space-x-6 flex items-center">
|
||||
<div class="flex items-center">
|
||||
<input id="private" name="configs[default_permission]" type="radio" class="focus:ring-indigo-500 h-4 w-4 text-indigo-600 border-gray-300" value="{{ \App\Enums\ImagePermission::Private }}" {{ Auth::user()->configs->get(\App\Enums\UserConfigKey::DefaultPermission) == \App\Enums\ImagePermission::Private ? 'checked' : '' }}>
|
||||
<label for="private" class="ml-3 block text-sm font-medium text-gray-700">私有</label>
|
||||
</div>
|
||||
<div class="flex items-center">
|
||||
<input id="public" name="configs[default_permission]" type="radio" class="focus:ring-indigo-500 h-4 w-4 text-indigo-600 border-gray-300" value="{{ \App\Enums\ImagePermission::Public }}" {{ Auth::user()->configs->get(\App\Enums\UserConfigKey::DefaultPermission) == \App\Enums\ImagePermission::Public ? 'checked' : '' }}>
|
||||
<label for="public" class="ml-3 block text-sm font-medium text-gray-700">公开</label>
|
||||
</div>
|
||||
</div>
|
||||
</fieldset>
|
||||
</div>
|
||||
</fieldset>
|
||||
<fieldset>
|
||||
<div>
|
||||
<legend class="text-base font-medium text-gray-900">图片默认权限</legend>
|
||||
<p class="text-sm text-gray-500">设置上传的图片默认的权限(公开还是私有,公开的图片将会出现在画廊中,你也可以通过图片管理单独设置权限)</p>
|
||||
</div>
|
||||
<div class="mt-4 space-x-6 flex items-center">
|
||||
<div class="flex items-center">
|
||||
<input id="private" name="configs[default_permission]" type="radio" class="focus:ring-indigo-500 h-4 w-4 text-indigo-600 border-gray-300" value="{{ \App\Enums\ImagePermission::Private }}" {{ Auth::user()->configs->get(\App\Enums\UserConfigKey::DefaultPermission) == \App\Enums\ImagePermission::Private ? 'checked' : '' }}>
|
||||
<label for="private" class="ml-3 block text-sm font-medium text-gray-700">私有</label>
|
||||
</div>
|
||||
<div class="flex items-center">
|
||||
<input id="public" name="configs[default_permission]" type="radio" class="focus:ring-indigo-500 h-4 w-4 text-indigo-600 border-gray-300" value="{{ \App\Enums\ImagePermission::Public }}" {{ Auth::user()->configs->get(\App\Enums\UserConfigKey::DefaultPermission) == \App\Enums\ImagePermission::Public ? 'checked' : '' }}>
|
||||
<label for="public" class="ml-3 block text-sm font-medium text-gray-700">公开</label>
|
||||
</div>
|
||||
</div>
|
||||
</fieldset>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="px-4 py-3 bg-gray-50 text-right sm:px-6">
|
||||
|
||||
Reference in New Issue
Block a user