fix: 操作列更多优化 (Plans 3个以内不折叠 / 去掉前面竖线 / hover打开下拉)

1. Plans 操作列只有 3 个按钮 (修改/审核/结算), 不需要更多折叠
   - 还原为直接展示 3 个 el-link
   - 删除 onMorePlan 函数 + ArrowDown import
   - width 120 → 160

2. main.scss .op-dropdown 删除 border-left 竖线分隔
   - 加 cursor: pointer + color: primary + hover 色变浅
   - 加 padding 0 4px 与 el-link 视觉对齐
   - 加 user-select: none 避免点击选中

3. Meetings / Projects el-dropdown trigger: click → hover
   - hover 鼠标进入触发, 离开关闭
   - 更符合操作列多按钮场景的直觉
This commit is contained in:
guoju0808
2026-08-26 12:01:43 +00:00
parent 61303a822b
commit d7107436a6
4 changed files with 12 additions and 22 deletions
+6 -1
View File
@@ -151,8 +151,13 @@ h1, h2, h3, h4, h5, h6 { margin: 0; font-weight: 600; color: var(--el-text-color
display: inline-flex;
align-items: center;
gap: 2px;
border-left: 1px solid var(--brand-slate-200);
padding: 0 4px;
font-size: 13px;
color: var(--el-color-primary);
cursor: pointer;
user-select: none;
}
.table-actions .op-dropdown:hover { color: var(--el-color-primary-light-3); }
.table-actions .op-caret {
font-size: 10px;
margin-left: 2px;
+4 -19
View File
@@ -70,21 +70,11 @@
</el-table-column>
<el-table-column prop="projectNo" label="项目编号" width="140" align="center" />
<el-table-column prop="remark" label="备注" min-width="160" show-overflow-tooltip />
<el-table-column label="操作" width="120" fixed="right">
<el-table-column label="操作" width="160" fixed="right">
<template #default="{ row }"><div class="table-actions">
<el-link :underline="false" type="primary" @click="goEdit(row)">修改</el-link>
<el-dropdown trigger="click" @command="(cmd) => onMorePlan(row, cmd)">
<span class="op-dropdown">
更多
<el-icon class="op-caret"><ArrowDown /></el-icon>
</span>
<template #dropdown>
<el-dropdown-menu>
<el-dropdown-item command="audit" :disabled="row.planStatus !== '0'">审核</el-dropdown-item>
<el-dropdown-item command="settle" :disabled="row.isSettled === 'Y'">结算</el-dropdown-item>
</el-dropdown-menu>
</template>
</el-dropdown>
<el-link :underline="false" type="primary" @click="onAudit(row)" :class="{ 'is-disabled': row.planStatus !== '0' }">审核</el-link>
<el-link v-if="row.isSettled!=='Y'" :underline="false" type="primary" @click="onSettle(row)">结算</el-link>
</div></template>
</el-table-column>
</GrTable>
@@ -160,7 +150,6 @@ import { bizList, bizUpdate } from '@/api/public'
import GrTable from '@/components/GrTable.vue'
import request from '@/utils/request'
import { ElMessage } from 'element-plus'
import { ArrowDown } from '@element-plus/icons-vue'
import DictSelect from '@/components/DictSelect.vue'
import AuditStatusTag from '@/components/AuditStatusTag.vue'
@@ -315,11 +304,7 @@ const settleOpen = ref(false)
const settleForm = reactive({ planId:'', planName:'' })
function onSettle(row) { settleForm.planId = row.planId; settleForm.planName = row.planName; settleOpen.value = true }
// 操作列"更多"下拉统一入口
function onMorePlan(row, cmd) {
if (cmd === 'audit') onAudit(row)
else if (cmd === 'settle') onSettle(row)
}
async function submitSettle() {
try {
submitting.value = true
+1 -1
View File
@@ -127,7 +127,7 @@
<div class="op-cell">
<el-link :underline="false" type="primary" @click="doCreateMeeting(row)">建会</el-link>
<el-link :underline="false" type="primary" @click="doAssign(row)">分配</el-link>
<el-dropdown trigger="click" @command="(cmd) => onAction(cmd, row)">
<el-dropdown trigger="hover" @command="(cmd) => onAction(cmd, row)">
<el-link :underline="false" type="primary" class="op-dropdown">
更多<el-icon class="op-caret"><ArrowDown /></el-icon>
</el-link>
+1 -1
View File
@@ -78,7 +78,7 @@
<el-link :underline="false" v-if="isRole('manager') && isCompliancePending(row)" type="warning" @click="onAudit(row)">审核</el-link>
<el-link :underline="false" v-if="isRole('admin', 'manager')" type="primary" @click="viewDetail(row)">编辑材料</el-link>
<!-- 更多: admin/manager 视角 7 个次操作折叠 (sponsor 视角只 1 个审核, 始终走外置) -->
<el-dropdown v-if="isRole('admin', 'manager')" trigger="click" @command="(cmd) => onMoreAction(cmd, row)">
<el-dropdown v-if="isRole('admin', 'manager')" trigger="hover" @command="(cmd) => onMoreAction(cmd, row)">
<el-link :underline="false" type="primary" class="op-dropdown">
更多<el-icon class="op-caret"><ArrowDown /></el-icon>
</el-link>