优化按钮组件逻辑.

This commit is contained in:
lijiahang
2024-09-29 10:20:45 +08:00
parent ef57040e1d
commit 3b1d6ab8a4
24 changed files with 417 additions and 275 deletions

View File

@@ -25,17 +25,17 @@
</div>
<!-- 操作 -->
<div class="tree-card-handler">
<div v-permission="['asset:host-group:create']"
class="click-icon-wrapper handler-icon-wrapper"
title="根节点添加"
@click="addRootNode">
<a-button v-permission="['asset:host-group:create']"
class="handler-icon-wrapper icon-button mr4"
title="根节点添加"
@click="addRootNode">
<icon-plus />
</div>
<div class="click-icon-wrapper handler-icon-wrapper"
title="刷新"
@click="refreshTree">
</a-button>
<a-button class="handler-icon-wrapper icon-button"
title="刷新"
@click="refreshTree">
<icon-refresh />
</div>
</a-button>
</div>
</div>
<!-- 主机分组树 -->
@@ -177,9 +177,8 @@
display: flex;
.handler-icon-wrapper {
margin-left: 2px;
padding: 4px;
font-size: 16px;
width: 24px;
height: 24px;
background: unset;
&:hover {

View File

@@ -17,7 +17,7 @@
<template #leftHandle>
<!-- 角色授权 -->
<a-button v-permission="['asset:host-identity:grant']"
class="card-header-icon-wrapper"
class="card-header-button"
@click="$router.push({ name: GrantRouteName, query: { key: GrantKey.HOST_IDENTITY_ROLE }})">
角色授权
<template #icon>
@@ -26,7 +26,7 @@
</a-button>
<!-- 用户授权 -->
<a-button v-permission="['asset:host-identity:grant']"
class="card-header-icon-wrapper"
class="card-header-button"
@click="$router.push({ name: GrantRouteName, query: { key: GrantKey.HOST_IDENTITY_USER }})">
用户授权
<template #icon>
@@ -114,7 +114,7 @@
<template #extra="{ record }">
<a-space>
<!-- 更多操作 -->
<a-dropdown trigger="hover">
<a-dropdown trigger="hover" :popup-max-height="false">
<icon-more class="card-extra-icon" />
<template #content>
<!-- 修改 -->

View File

@@ -17,7 +17,7 @@
<template #leftHandle>
<!-- 角色授权 -->
<a-button v-permission="['asset:host-key:grant']"
class="card-header-icon-wrapper"
class="card-header-button"
@click="$router.push({ name: GrantRouteName, query: { key: GrantKey.HOST_KEY_ROLE }})">
角色授权
<template #icon>
@@ -26,7 +26,7 @@
</a-button>
<!-- 用户授权 -->
<a-button v-permission="['asset:host-key:grant']"
class="card-header-icon-wrapper"
class="card-header-button"
@click="$router.push({ name: GrantRouteName, query: { key: GrantKey.HOST_KEY_USER }})">
用户授权
<template #icon>
@@ -42,7 +42,7 @@
<template #extra="{ record }">
<a-space>
<!-- 更多操作 -->
<a-dropdown trigger="hover">
<a-dropdown trigger="hover" :popup-max-height="false">
<icon-more class="card-extra-icon" />
<template #content>
<!-- 详情 -->

View File

@@ -17,7 +17,7 @@
<template #leftHandle>
<!-- 主机分组 -->
<a-button v-permission="['asset:host-group:update']"
class="card-header-icon-wrapper"
class="card-header-button"
@click="emits('openHostGroup')">
主机分组
<template #icon>
@@ -26,7 +26,7 @@
</a-button>
<!-- 角色授权 -->
<a-button v-permission="['asset:host-group:grant']"
class="card-header-icon-wrapper"
class="card-header-button"
@click="$router.push({ name: GrantRouteName, query: { key: GrantKey.HOST_GROUP_ROLE }})">
角色授权
<template #icon>
@@ -35,7 +35,7 @@
</a-button>
<!-- 用户授权 -->
<a-button v-permission="['asset:host-group:grant']"
class="card-header-icon-wrapper"
class="card-header-button"
@click="$router.push({ name: GrantRouteName, query: { key: GrantKey.HOST_GROUP_USER }})">
用户授权
<template #icon>
@@ -142,7 +142,7 @@
<template #extra="{ record }">
<a-space>
<!-- 更多操作 -->
<a-dropdown trigger="hover">
<a-dropdown trigger="hover" :popup-max-height="false">
<icon-more class="card-extra-icon" />
<template #content>
<!-- 修改 -->
@@ -182,6 +182,22 @@
<icon-delete /> 删除
</span>
</a-doption>
<!-- SSH -->
<a-doption v-if="record.type === hostType.SSH.type"
v-permission="['asset:host-terminal:access']"
@click="openNewRoute({ name: 'terminal', query: { connect: record.id, type: 'SSH' } })">
<span class="more-doption normal">
<icon-thunderbolt /> SSH
</span>
</a-doption>
<!-- SFTP -->
<a-doption v-if="record.type === hostType.SSH.type"
v-permission="['asset:host-terminal:access']"
@click="openNewRoute({ name: 'terminal', query: { connect: record.id, type: 'SFTP' } })">
<span class="more-doption normal">
<icon-folder /> SFTP
</span>
</a-doption>
</template>
</a-dropdown>
</a-space>
@@ -202,12 +218,13 @@
import { dataColor, objectTruthKeyCount, resetObject } from '@/utils';
import { deleteHost, getHostPage, updateHostStatus } from '@/api/asset/host';
import { Message, Modal } from '@arco-design/web-vue';
import { hostStatusKey, hostTypeKey, tagColor } from '../types/const';
import { hostStatusKey, hostType, hostTypeKey, tagColor } from '../types/const';
import { copy } from '@/hooks/copy';
import { useDictStore } from '@/store';
import { GrantKey, GrantRouteName } from '@/views/asset/grant/types/const';
import useLoading from '@/hooks/loading';
import fieldConfig from '../types/card.fields';
import { openNewRoute } from '@/router';
import TagMultiSelector from '@/components/meta/tag/multi-selector/index.vue';
const emits = defineEmits(['openAdd', 'openUpdate', 'openUpdateConfig', 'openHostGroup', 'openCopy']);