92 lines
3.1 KiB
Vue
92 lines
3.1 KiB
Vue
<!--
|
||
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>
|