refactor(frontend): 统一工具栏按钮布局为el-row/el-col结构

重构多个视图组件中的工具栏按钮布局,使用el-row和el-col组件统一管理按钮间距和排列。调整权限指令v-hasPerm的位置使其更规范。优化表格查询表单的样式和结构。

style(frontend): 规范v-hasPerm指令的使用位置

将v-hasPerm指令统一调整到按钮属性最前面,保持代码风格一致。移除不必要的showSearch变量,简化分页组件逻辑。

fix(gencode): 修正生成代码页面的查询重置功能

修复生成代码页面中重置按钮调用错误方法的问题,将resetQuery改为handleRefresh以保持功能一致。调整表单字段命名规范,统一使用下划线风格。
This commit is contained in:
zhangtao
2025-10-06 00:29:38 +08:00
parent d943d295d0
commit 2918c0aebb
23 changed files with 684 additions and 592 deletions
+29 -19
View File
@@ -15,8 +15,8 @@
</el-form-item>
<!-- 查询、重置、展开/收起按钮 -->
<el-form-item class="search-buttons">
<el-button type="primary" icon="search" @click="handleQuery" v-hasPerm="['monitor:online:query']">查询</el-button>
<el-button icon="refresh" @click="handleResetQuery" v-hasPerm="['monitor:online:query']">重置</el-button>
<el-button v-hasPerm="['monitor:online:query']" type="primary" icon="search" @click="handleQuery">查询</el-button>
<el-button v-hasPerm="['monitor:online:query']" icon="refresh" @click="handleResetQuery">重置</el-button>
</el-form-item>
</el-form>
</div>
@@ -37,24 +37,34 @@
<!-- 功能区域 -->
<div class="data-table__toolbar">
<div class="data-table__toolbar--actions">
<el-button type="danger" icon="delete" @click="handleClear" v-hasPerm="['monitor:online:force_logout']">强退所有</el-button>
<el-row :gutter="10">
<el-col :span="1.5">
<el-button v-hasPerm="['monitor:online:force_logout']" type="danger" icon="delete" @click="handleClear">强退所有</el-button>
</el-col>
</el-row>
</div>
<div class="data-table__toolbar--tools">
<el-tooltip content="刷新">
<el-button type="primary" icon="refresh" circle @click="handleRefresh" v-hasPerm="['monitor:online:refresh']" />
</el-tooltip>
<el-tooltip content="列表筛选">
<el-dropdown trigger="click" v-hasPerm="['monitor:online:filter']">
<el-button type="default" icon="operation" circle />
<template #dropdown>
<el-dropdown-menu>
<el-dropdown-item v-for="column in tableColumns" :key="column.prop" :command="column">
<el-checkbox v-model="column.show">{{ column.label }}</el-checkbox>
</el-dropdown-item>
</el-dropdown-menu>
</template>
</el-dropdown>
</el-tooltip>
<el-row :gutter="10">
<el-col :span="1.5">
<el-tooltip content="刷新">
<el-button v-hasPerm="['monitor:online:refresh']" type="primary" icon="refresh" circle @click="handleRefresh"/>
</el-tooltip>
</el-col>
<el-col :span="1.5">
<el-tooltip content="列表筛选">
<el-dropdown v-hasPerm="['monitor:online:filter']" trigger="click">
<el-button type="default" icon="operation" circle />
<template #dropdown>
<el-dropdown-menu>
<el-dropdown-item v-for="column in tableColumns" :key="column.prop" :command="column">
<el-checkbox v-model="column.show">{{ column.label }}</el-checkbox>
</el-dropdown-item>
</el-dropdown-menu>
</template>
</el-dropdown>
</el-tooltip>
</el-col>
</el-row>
</div>
</div>
@@ -81,7 +91,7 @@
<el-table-column v-if="tableColumns.find(col => col.prop === 'login_time')?.show" key="login_time" label="登录时间" prop="login_time" min-width="180" />
<el-table-column v-if="tableColumns.find(col => col.prop === 'operation')?.show" key="operation" fixed="right" label="操作" min-width="100">
<template #default="scope">
<el-button type="danger" size="small" link icon="delete" @click="handleSubmit(scope.row.session_id)" v-hasPerm="['monitor:online:force_logout']">强退
<el-button v-hasPerm="['monitor:online:force_logout']" type="danger" size="small" link icon="delete" @click="handleSubmit(scope.row.session_id)">强退
</el-button>
</template>
</el-table-column>
+41 -25
View File
@@ -29,33 +29,49 @@
<!-- 功能区域 -->
<div class="data-table__toolbar">
<div class="data-table__toolbar--actions">
<el-button type="success" icon="plus" @click="handleUpload" v-hasPerm="['monitor:resource:upload']">上传文件</el-button>
<el-button type="primary" icon="folder-add" @click="handleCreateDir" v-hasPerm="['monitor:resource:create_dir']">新建文件夹</el-button>
<el-button type="danger" icon="delete" :disabled="selectedItems.length === 0" @click="handleBatchDelete" v-hasPerm="['monitor:resource:delete']">批量删除</el-button>
<el-row :gutter="10">
<el-col :span="1.5">
<el-button v-hasPerm="['monitor:resource:upload']" type="success" icon="plus" @click="handleUpload">上传文件</el-button>
</el-col>
<el-col :span="1.5">
<el-button v-hasPerm="['monitor:resource:create_dir']" type="primary" icon="folder-add" @click="handleCreateDir">新建文件夹</el-button>
</el-col>
<el-col :span="1.5">
<el-button v-hasPerm="['monitor:resource:delete']" type="danger" icon="delete" :disabled="selectedItems.length === 0" @click="handleBatchDelete">批量删除</el-button>
</el-col>
</el-row>
</div>
<div class="data-table__toolbar--tools">
<el-checkbox v-model="showHiddenFiles" @change="handleShowHiddenChange" v-hasPerm="['monitor:resource:show_hidden']">
显示隐藏文件
</el-checkbox>
<el-button-group>
<el-button
:type="viewMode === 'list' ? 'primary' : ''"
@click="viewMode = 'list'"
v-hasPerm="['monitor:resource:view_list']"
>
<el-icon><List /></el-icon>
</el-button>
<el-button
:type="viewMode === 'grid' ? 'primary' : ''"
@click="viewMode = 'grid'"
v-hasPerm="['monitor:resource:view_grid']"
>
<el-icon><Grid /></el-icon>
</el-button>
</el-button-group>
<el-tooltip content="刷新">
<el-button type="primary" icon="refresh" circle @click="handleRefresh" v-hasPerm="['monitor:resource:refresh']" />
</el-tooltip>
<el-row :gutter="10">
<el-col :span="1.5">
<el-checkbox v-model="showHiddenFiles" v-hasPerm="['monitor:resource:show_hidden']" @change="handleShowHiddenChange">
显示隐藏文件
</el-checkbox>
</el-col>
<el-col :span="1.5">
<el-button-group>
<el-button
v-hasPerm="['monitor:resource:view_list']"
:type="viewMode === 'list' ? 'primary' : ''"
@click="viewMode = 'list'"
>
<el-icon><List /></el-icon>
</el-button>
<el-button
v-hasPerm="['monitor:resource:view_grid']"
:type="viewMode === 'grid' ? 'primary' : ''"
@click="viewMode = 'grid'"
>
<el-icon><Grid /></el-icon>
</el-button>
</el-button-group>
</el-col>
<el-col :span="1.5">
<el-tooltip content="刷新">
<el-button v-hasPerm="['monitor:resource:refresh']" type="primary" icon="refresh" circle @click="handleRefresh"/>
</el-tooltip>
</el-col>
</el-row>
</div>
</div>