Files
DianZhanDemo/app/components/PowerStation/Model3D/ViewControls.vue

92 lines
3.1 KiB
Vue
Raw Normal View History

2025-12-11 01:01:11 +08:00
<!--
ViewControls.vue
视图控制面板组件
提供标准视图顶视图底视图前视图等的快捷按钮
-->
<template>
<div class="absolute bottom-4 right-4 z-10 pointer-events-none">
<!-- 标准视图控制面板 -->
<div
class="grid grid-cols-3 gap-1 pointer-events-auto bg-slate-900/80 p-2 rounded-lg border border-cyan-500/20 backdrop-blur-sm"
>
<!-- 第一行 -->
<el-tooltip content="顶视图" placement="top" effect="dark">
<button class="view-btn" @click="$emit('setStandardView', 'top')"></button>
</el-tooltip>
<el-tooltip content="前视图" placement="top" effect="dark">
<button class="view-btn" @click="$emit('setStandardView', 'front')"></button>
</el-tooltip>
<el-tooltip content="左视图" placement="bottom" effect="dark">
<button class="view-btn" @click="$emit('setStandardView', 'left')"></button>
</el-tooltip>
<!-- 第二行 -->
<el-tooltip content="底视图" placement="bottom" effect="dark">
<button class="view-btn" @click="$emit('setStandardView', 'bottom')"></button>
</el-tooltip>
<el-tooltip content="后视图" placement="bottom" effect="dark">
<button class="view-btn" @click="$emit('setStandardView', 'back')"></button>
</el-tooltip>
<el-tooltip content="右视图" placement="top" effect="dark">
<button class="view-btn" @click="$emit('setStandardView', 'right')"></button>
</el-tooltip>
<!-- 第三行轴侧视图跨3列 -->
<el-tooltip content="轴侧图" placement="bottom" effect="dark">
<button class="view-btn col-span-3 mt-1" @click="$emit('setStandardView', 'iso')">
轴侧视图
</button>
</el-tooltip>
</div>
</div>
</template>
<script setup lang="ts">
/**
* ViewControls 组件
* 提供标准视图的快捷切换按钮
*/
// ============================================================
// 类型定义
// ============================================================
/** 标准视图类型 */
type StandardViewType = 'top' | 'bottom' | 'front' | 'back' | 'left' | 'right' | 'iso'
// ============================================================
// Emits 定义
// ============================================================
defineEmits<{
/** 设置标准视图 */
(e: 'setStandardView', view: StandardViewType): void
}>()
</script>
<style scoped>
/* ============================================================
视图按钮样式
============================================================ */
.view-btn {
display: flex;
align-items: center;
justify-content: center;
padding: 4px 8px;
font-size: 12px;
border-radius: 4px;
background: rgba(30, 41, 59, 0.5);
border: 1px solid rgba(148, 163, 184, 0.2);
color: #cbd5e1;
cursor: pointer;
transition: all 0.2s;
}
.view-btn:hover {
background: rgba(6, 182, 212, 0.2);
border-color: #22d3ee;
color: #22d3ee;
}
</style>