Files
DianZhanDemo/app/components/PowerStation/Model3D/ViewControls.vue
ch197511161 908b4361ed init3
2025-12-11 01:01:11 +08:00

92 lines
3.1 KiB
Vue
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<!--
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>