fix: keep mobile filters compact and visible
Some checks failed
Build and tests / test (push) Has been cancelled
Some checks failed
Build and tests / test (push) Has been cancelled
This commit is contained in:
@@ -3137,18 +3137,18 @@
|
||||
<button type="button" class="btn btn-secondary share-refresh-btn" @click="refreshShareResources" aria-label="刷新分享资源">
|
||||
<i class="fas fa-sync-alt"></i><span class="share-action-label">刷新</span>
|
||||
</button>
|
||||
<button type="button" class="btn btn-primary share-create-btn" @click="switchView('files')">
|
||||
<button type="button" class="btn btn-primary share-create-btn" @click="switchView('files')" aria-label="创建分享" title="创建分享">
|
||||
<i class="fas fa-plus"></i><span class="share-action-label">创建分享</span>
|
||||
</button>
|
||||
</div>
|
||||
</header>
|
||||
|
||||
<nav class="share-resource-tabs" aria-label="分享资源分类">
|
||||
<button type="button" :class="{ active: shareResourceTab === 'shares' }" @click="shareResourceTab = 'shares'; showMobileShareFilters = false">
|
||||
<button type="button" :class="{ active: shareResourceTab === 'shares' }" @click="shareResourceTab = 'shares'">
|
||||
<i class="fas fa-share-alt"></i> 分享链接
|
||||
<span>{{ shares.length }}</span>
|
||||
</button>
|
||||
<button type="button" :class="{ active: shareResourceTab === 'directLinks' }" @click="shareResourceTab = 'directLinks'; showMobileShareFilters = false">
|
||||
<button type="button" :class="{ active: shareResourceTab === 'directLinks' }" @click="shareResourceTab = 'directLinks'">
|
||||
<i class="fas fa-link"></i> 文件直链
|
||||
<span>{{ directLinks.length }}</span>
|
||||
</button>
|
||||
@@ -3161,22 +3161,12 @@
|
||||
<span><i class="fas fa-shield-alt"></i> 状态 <strong>运行正常</strong></span>
|
||||
</div>
|
||||
|
||||
<div class="share-toolbar shares-toolbar" :class="{ 'share-filters-open': showMobileShareFilters, 'share-toolbar-direct': shareResourceTab === 'directLinks' }">
|
||||
<div class="share-toolbar shares-toolbar" :class="{ 'share-toolbar-direct': shareResourceTab === 'directLinks' }">
|
||||
<div class="share-search-field">
|
||||
<i class="fas fa-search"></i>
|
||||
<input type="text" v-model="shareFilters.keyword" :placeholder="shareResourceTab === 'shares' ? '搜索文件名、链接或分享码' : '搜索文件名或直链地址'">
|
||||
</div>
|
||||
<button
|
||||
v-if="shareResourceTab === 'shares'"
|
||||
type="button"
|
||||
class="mobile-share-filter-toggle"
|
||||
:class="{ active: activeShareFilterCount > 0 }"
|
||||
:aria-expanded="showMobileShareFilters"
|
||||
@click="showMobileShareFilters = !showMobileShareFilters">
|
||||
<i class="fas fa-sliders-h"></i><span>筛选</span>
|
||||
<span v-if="activeShareFilterCount > 0" class="mobile-share-filter-count">{{ activeShareFilterCount }}</span>
|
||||
</button>
|
||||
<div v-if="shareResourceTab === 'shares'" class="share-filter-controls" :class="{ 'is-open': showMobileShareFilters }">
|
||||
<div v-if="shareResourceTab === 'shares'" class="share-filter-controls">
|
||||
<select v-model="shareFilters.type" aria-label="分享类型">
|
||||
<option value="all">全部类型</option>
|
||||
<option value="file">文件</option>
|
||||
@@ -4051,14 +4041,13 @@
|
||||
<h3 style="margin: 0;">用户管理</h3>
|
||||
<button
|
||||
type="button"
|
||||
class="mobile-admin-users-filter-toggle"
|
||||
:class="{ active: showMobileAdminUserFilters || activeAdminUserFilterCount > 0 }"
|
||||
:aria-expanded="showMobileAdminUserFilters ? 'true' : 'false'"
|
||||
@click="showMobileAdminUserFilters = !showMobileAdminUserFilters"
|
||||
class="mobile-admin-users-reset-btn"
|
||||
:disabled="activeAdminUserFilterCount === 0"
|
||||
@click="resetAdminUserFilters"
|
||||
aria-label="重置用户筛选"
|
||||
title="重置筛选"
|
||||
>
|
||||
<i class="fas fa-sliders"></i>
|
||||
<span>筛选</span>
|
||||
<span v-if="activeAdminUserFilterCount" class="mobile-admin-users-filter-count">{{ activeAdminUserFilterCount }}</span>
|
||||
<i class="fas fa-filter-circle-xmark"></i>
|
||||
</button>
|
||||
<button type="button" class="btn btn-secondary admin-users-refresh-btn" @click="loadUsers" :disabled="adminUsersLoading" style="min-width: 92px;" aria-label="刷新用户列表">
|
||||
<i :class="adminUsersLoading ? 'fas fa-spinner fa-spin' : 'fas fa-rotate'"></i>
|
||||
@@ -4066,23 +4055,23 @@
|
||||
</button>
|
||||
</div>
|
||||
|
||||
<div class="admin-users-toolbar" :class="{ 'is-open': showMobileAdminUserFilters }">
|
||||
<div class="admin-users-toolbar">
|
||||
<div class="admin-users-filter admin-users-filter-search">
|
||||
<label>搜索</label>
|
||||
<input type="text" v-model.trim="adminUserFilters.keyword" @input="triggerAdminUsersKeywordSearch" placeholder="ID / 用户名 / 邮箱">
|
||||
</div>
|
||||
<div class="admin-users-filter">
|
||||
<label>角色</label>
|
||||
<select v-model="adminUserFilters.role" @change="handleAdminUsersFilterChange">
|
||||
<option value="all">全部</option>
|
||||
<select v-model="adminUserFilters.role" @change="handleAdminUsersFilterChange" aria-label="用户角色">
|
||||
<option value="all">全部角色</option>
|
||||
<option value="admin">管理员</option>
|
||||
<option value="user">普通用户</option>
|
||||
</select>
|
||||
</div>
|
||||
<div class="admin-users-filter">
|
||||
<label>状态</label>
|
||||
<select v-model="adminUserFilters.status" @change="handleAdminUsersFilterChange">
|
||||
<option value="all">全部</option>
|
||||
<select v-model="adminUserFilters.status" @change="handleAdminUsersFilterChange" aria-label="用户状态">
|
||||
<option value="all">全部状态</option>
|
||||
<option value="active">正常</option>
|
||||
<option value="banned">已封禁</option>
|
||||
<option value="unverified">未激活</option>
|
||||
@@ -4091,8 +4080,8 @@
|
||||
</div>
|
||||
<div class="admin-users-filter">
|
||||
<label>存储</label>
|
||||
<select v-model="adminUserFilters.storage" @change="handleAdminUsersFilterChange">
|
||||
<option value="all">全部</option>
|
||||
<select v-model="adminUserFilters.storage" @change="handleAdminUsersFilterChange" aria-label="用户存储类型">
|
||||
<option value="all">全部存储</option>
|
||||
<option value="local">当前本地</option>
|
||||
<option value="oss">当前OSS</option>
|
||||
<option value="local_only">仅本地</option>
|
||||
@@ -4102,7 +4091,7 @@
|
||||
</div>
|
||||
<div class="admin-users-filter">
|
||||
<label>排序</label>
|
||||
<select v-model="adminUserFilters.sort" @change="handleAdminUsersFilterChange">
|
||||
<select v-model="adminUserFilters.sort" @change="handleAdminUsersFilterChange" aria-label="用户排序方式">
|
||||
<option value="created_desc">注册时间(新到旧)</option>
|
||||
<option value="created_asc">注册时间(旧到新)</option>
|
||||
<option value="username_asc">用户名(A-Z)</option>
|
||||
@@ -4113,10 +4102,10 @@
|
||||
</div>
|
||||
<div class="admin-users-filter admin-users-filter-page-size">
|
||||
<label>每页</label>
|
||||
<select v-model.number="adminUsersPageSize" @change="handleAdminUsersPageSizeChange">
|
||||
<option :value="20">20</option>
|
||||
<option :value="50">50</option>
|
||||
<option :value="100">100</option>
|
||||
<select v-model.number="adminUsersPageSize" @change="handleAdminUsersPageSizeChange" aria-label="每页用户数量">
|
||||
<option :value="20">20 条</option>
|
||||
<option :value="50">50 条</option>
|
||||
<option :value="100">100 条</option>
|
||||
</select>
|
||||
</div>
|
||||
<div class="admin-users-filter admin-users-filter-reset">
|
||||
|
||||
Reference in New Issue
Block a user