style(ops-web): unify table actions as circular icon buttons
Replace the mixed text-link / button action lists in Accounts, AdminUsers, and SiteDomainMappings with a shared .table-actions-row + .action-* class set in styles.css. Each row now renders compact icon buttons (edit/delete/approve/revoke/key/kol/reset/play) tinted by intent, matching the new KolSubscriptions console look. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -84,24 +84,49 @@
|
||||
{{ formatDate(record.created_at) }}
|
||||
</template>
|
||||
<template v-else-if="column.key === 'actions'">
|
||||
<a-space>
|
||||
<a @click="openEdit(record)">编辑</a>
|
||||
<a @click="openKol(record)">KOL身份</a>
|
||||
<a-popconfirm
|
||||
title="确认恢复当前套餐默认额度?文章生成次数和 AI 点数会恢复到套餐默认值。"
|
||||
:ok-button-props="{ danger: true, loading: resetUsageLoadingId === record.id }"
|
||||
@confirm="resetPlanUsage(record)"
|
||||
>
|
||||
<a>恢复额度</a>
|
||||
</a-popconfirm>
|
||||
<a @click="openResetPassword(record)">重置密码</a>
|
||||
<a-popconfirm
|
||||
:title="record.status === 'active' ? '确认停用该用户?' : '确认启用该用户?'"
|
||||
@confirm="toggleStatus(record)"
|
||||
>
|
||||
<a>{{ record.status === "active" ? "停用" : "启用" }}</a>
|
||||
</a-popconfirm>
|
||||
</a-space>
|
||||
<div class="table-actions-row">
|
||||
<a-tooltip title="编辑">
|
||||
<a-button type="text" shape="circle" size="small" class="action-btn action-edit" @click="openEdit(record)">
|
||||
<EditOutlined />
|
||||
</a-button>
|
||||
</a-tooltip>
|
||||
|
||||
<a-tooltip title="KOL身份">
|
||||
<a-button type="text" shape="circle" size="small" class="action-btn action-kol" @click="openKol(record)">
|
||||
<IdcardOutlined />
|
||||
</a-button>
|
||||
</a-tooltip>
|
||||
|
||||
<a-tooltip title="恢复套餐默认额度">
|
||||
<a-popconfirm
|
||||
title="确认恢复当前套餐默认额度?文章生成次数和 AI 点数会恢复到套餐默认值。"
|
||||
:ok-button-props="{ danger: true, loading: resetUsageLoadingId === record.id }"
|
||||
@confirm="resetPlanUsage(record)"
|
||||
>
|
||||
<a-button type="text" shape="circle" size="small" class="action-btn action-reset">
|
||||
<ReloadOutlined />
|
||||
</a-button>
|
||||
</a-popconfirm>
|
||||
</a-tooltip>
|
||||
|
||||
<a-tooltip title="重置密码">
|
||||
<a-button type="text" shape="circle" size="small" class="action-btn action-key" @click="openResetPassword(record)">
|
||||
<KeyOutlined />
|
||||
</a-button>
|
||||
</a-tooltip>
|
||||
|
||||
<a-tooltip :title="record.status === 'active' ? '停用用户' : '启用用户'">
|
||||
<a-popconfirm
|
||||
:title="record.status === 'active' ? '确认停用该用户?' : '确认启用该用户?'"
|
||||
@confirm="toggleStatus(record)"
|
||||
>
|
||||
<a-button type="text" shape="circle" size="small" :class="['action-btn', record.status === 'active' ? 'action-revoke' : 'action-play']">
|
||||
<StopOutlined v-if="record.status === 'active'" />
|
||||
<PlayCircleOutlined v-else />
|
||||
</a-button>
|
||||
</a-popconfirm>
|
||||
</a-tooltip>
|
||||
</div>
|
||||
</template>
|
||||
</template>
|
||||
</a-table>
|
||||
@@ -212,6 +237,14 @@
|
||||
</template>
|
||||
|
||||
<script setup lang="ts">
|
||||
import {
|
||||
EditOutlined,
|
||||
IdcardOutlined,
|
||||
ReloadOutlined,
|
||||
KeyOutlined,
|
||||
StopOutlined,
|
||||
PlayCircleOutlined,
|
||||
} from "@ant-design/icons-vue";
|
||||
import type { TableColumnsType, TablePaginationConfig } from "ant-design-vue";
|
||||
import { message } from "ant-design-vue";
|
||||
import dayjs from "dayjs";
|
||||
|
||||
Reference in New Issue
Block a user