Files
bim_engine/src/components/measure-panel/index.css
yuding c3bd82c03a feat: upgrade to v1.3.2 with settings panel overhaul, clear height enhancements and bug fixes
- Overhaul settings dialog: add edge line toggle, contrast/saturation/light intensity sliders, environment and ground type selectors
- Add clear height measurement options: direction (up/down) and select type (point/element) with radio button UI
- Fix right-click context menu triggering during model drag rotation (add move threshold)
- Fix measure dialog event listener leak (on → off for cleanup)
- Update mini map API to use engine.minMap.toggle()
- Replace text-based measure icons with proper SVG assets (净高/净距/坐标/面积)
- Add i18n keys for all new settings and clear height options (zh-CN / en-US)
- Bump iflow-engine-base dependency to ^2.0.5
- Rebuild dist and sync demo libs
2026-03-04 16:40:35 +08:00

402 lines
8.0 KiB
CSS
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.

/**
* 测量面板样式(只做 UI
*
* 设计目标:
* - 视觉尽量接近截图(深色半透明面板 + 图标按钮网格 + 结果区)
* - 主题颜色尽量使用 CSS 变量,保证可被 ThemeManager / Dialog 主题覆盖
*/
.bim-measure-panel {
width: 100%;
display: flex;
flex-direction: column;
box-sizing: border-box;
color: var(--bim-text-secondary);
}
.bim-measure-settings {
display: none;
box-sizing: border-box;
color: var(--bim-text-secondary);
}
.bim-measure-settings-title {
font-size: 14px;
font-weight: 600;
margin-bottom: 10px;
}
.bim-measure-settings-row {
display: flex;
align-items: center;
justify-content: space-between;
gap: 10px;
margin-bottom: 10px;
}
.bim-measure-settings-row .label {
color: var(--bim-text-secondary);
font-size: 13px;
flex: 0 0 auto;
}
.bim-measure-settings-select {
flex: 0 0 auto;
width: 120px;
height: 28px;
border-radius: 6px;
border: 1px solid var(--bim-border-default);
background: var(--bim-bg-inset);
color: var(--bim-text-primary);
padding: 0 8px;
box-sizing: border-box;
outline: none;
}
.bim-measure-settings-hint {
font-size: 12px;
line-height: 1.4;
color: var(--bim-text-tertiary);
margin-top: -4px;
margin-bottom: 8px;
}
.bim-measure-settings-actions {
margin-top: 14px;
display: flex;
justify-content: flex-start;
gap: 10px;
}
/* 注意demo 里有全局 button 样式,这里用 class 强制覆盖,避免被污染 */
.bim-measure-settings-save,
.bim-measure-settings-cancel {
flex: 0 0 auto !important;
width: auto;
min-width: 0;
height: 30px;
padding: 0 12px;
border-radius: 4px;
cursor: pointer;
box-sizing: border-box;
}
.bim-measure-settings-save {
border: none;
background: var(--bim-primary);
color: var(--bim-text-inverse);
}
.bim-measure-settings-cancel {
border: 1px solid var(--bim-border-default);
background: transparent;
color: var(--bim-text-secondary);
}
.bim-measure-settings-save:hover,
.bim-measure-settings-save:active,
.bim-measure-settings-save:focus,
.bim-measure-settings-cancel:hover,
.bim-measure-settings-cancel:active,
.bim-measure-settings-cancel:focus {
background: inherit;
outline: none;
}
.bim-measure-settings-save:hover {
background: var(--bim-primary-hover);
}
/* 顶部:测量方式按钮区 */
.bim-measure-tools {
display: flex;
flex-direction: column;
gap: 8px;
}
.bim-measure-tool-grid {
display: grid;
grid-template-columns: repeat(4, 1fr);
gap: 8px;
}
.bim-measure-tool-btn {
width: 100%;
height: 42px;
border-radius: 6px;
border: 1px solid var(--bim-border-default);
background: var(--bim-bg-inset);
cursor: pointer;
display: flex;
align-items: center;
justify-content: center;
transition: all 0.2s ease;
padding: 0;
box-sizing: border-box;
}
.bim-measure-tool-btn:hover {
background: var(--bim-component-bg-hover);
border-color: var(--bim-border-strong);
}
.bim-measure-tool-btn.is-active {
border-color: var(--bim-primary);
background: var(--bim-primary-subtle);
}
.bim-measure-tool-btn.is-active .bim-measure-tool-icon {
color: var(--bim-primary);
}
.bim-measure-tool-icon {
width: 28px;
height: 28px;
display: inline-flex;
align-items: center;
justify-content: center;
color: var(--bim-icon-default);
}
.bim-measure-tool-icon svg {
width: 100%;
height: 100%;
fill: currentColor;
}
/* 说明:测量方式图标已在 TS 中“瘦身”为纯 pathcurrentColor一般无需额外隐藏背景 rect。 */
.bim-measure-toggle {
display: flex;
justify-content: flex-end;
}
.bim-measure-toggle-btn {
height: 22px;
border-radius: 4px;
border: 1px solid var(--bim-border-default);
background: var(--bim-bg-inset);
cursor: pointer;
display: inline-flex;
align-items: center;
justify-content: center;
transition: all 0.2s ease;
padding: 0 6px;
gap: 4px;
font-size: 12px;
line-height: 1;
}
.bim-measure-toggle-btn:hover {
background: var(--bim-component-bg-hover);
border-color: var(--bim-border-strong);
}
.bim-measure-toggle-text {
color: var(--bim-text-secondary);
}
.bim-measure-toggle-icon svg {
width: 14px;
height: 14px;
fill: currentColor;
color: var(--bim-icon-default);
transition: transform 0.15s ease;
}
.bim-measure-toggle-btn.is-expanded .bim-measure-toggle-icon svg {
transform: rotate(180deg);
}
/* ========== 模式选项区(净高朝向/选择对象) ========== */
.bim-measure-mode-options {
display: none;
flex-direction: column;
gap: 8px;
margin-top: 12px;
padding-top: 12px;
border-top: 1px solid var(--bim-divider);
}
.bim-measure-mode-options.is-visible {
display: flex;
}
.bim-measure-radio-group {
display: flex;
align-items: center;
gap: 8px;
font-size: 13px;
line-height: 1.4;
}
.bim-measure-radio-group .bim-measure-radio-label {
color: var(--bim-text-secondary);
min-width: 58px;
flex: 0 0 auto;
}
.bim-measure-radio-group .bim-measure-radio-items {
display: flex;
gap: 4px;
}
.bim-measure-radio-item {
display: inline-flex;
align-items: center;
justify-content: center;
height: 26px;
padding: 0 10px;
border-radius: 4px;
border: 1px solid var(--bim-border-default);
background: var(--bim-bg-inset);
color: var(--bim-text-secondary);
font-size: 12px;
cursor: pointer;
transition: all 0.15s ease;
user-select: none;
}
.bim-measure-radio-item:hover {
border-color: var(--bim-border-strong);
color: var(--bim-text-primary);
}
.bim-measure-radio-item.is-active {
background: var(--bim-primary-subtle);
border-color: var(--bim-primary);
color: var(--bim-primary);
}
.bim-measure-result {
margin-top: 12px;
padding-top: 12px;
border-top: 1px solid var(--bim-divider);
display: flex;
flex-direction: column;
gap: 10px;
}
.bim-measure-row {
display: flex;
align-items: baseline;
gap: 8px;
font-size: 13px;
line-height: 1.4;
}
.bim-measure-row .label {
color: var(--bim-text-secondary);
min-width: 84px;
}
.bim-measure-row .value {
color: var(--bim-text-primary);
flex: 1;
word-break: break-word;
}
/* 主数据:仅数值黄色,单位使用默认颜色 */
.bim-measure-main-number {
color: #ffd24a;
}
.bim-measure-main-number.is-laser-text {
color: var(--bim-text-primary);
}
.bim-measure-main-unit {
color: var(--bim-text-primary);
}
.bim-measure-xyz {
display: flex;
flex-direction: column;
gap: 6px;
}
.bim-measure-xyz .value {
font-variant-numeric: tabular-nums;
}
/* XYZ红/绿/蓝展示 */
.bim-measure-xyz-x {
color: #ff4d4f !important;
}
.bim-measure-xyz-y {
color: #52c41a !important;
}
.bim-measure-xyz-z {
color: #1677ff !important;
}
.bim-measure-footer {
margin-top: 12px;
padding-top: 10px;
border-top: 1px solid var(--bim-divider);
display: flex;
align-items: center;
justify-content: flex-start;
gap: 10px;
}
.bim-measure-clear-btn {
background: transparent;
border: none;
color: var(--bim-danger);
cursor: pointer;
padding: 0;
font-size: 13px;
flex: 0 0 auto !important;
width: auto;
min-width: 0;
}
/* 删除按钮不需要 hover 效果 */
.bim-measure-clear-btn:hover,
.bim-measure-clear-btn:active,
.bim-measure-clear-btn:focus {
background: transparent;
border: none;
outline: none;
text-decoration: none;
}
.bim-measure-settings-btn {
/* 你要求:管理(设置)按钮去掉边框与 hover按钮按自身尺寸即可 */
width: 24px;
height: 24px;
border-radius: 4px;
border: none;
background: transparent;
cursor: pointer;
display: inline-flex;
align-items: center;
justify-content: center;
padding: 0;
/* 右侧对齐,但不扩大可点击区域 */
margin-left: auto;
/* 防止外部环境(如 demo给 button 设置 flex: 1 导致“各占一半” */
flex: 0 0 auto !important;
}
/* 你要求:设置按钮不需要 hover 效果 */
.bim-measure-settings-btn:hover,
.bim-measure-settings-btn:active,
.bim-measure-settings-btn:focus {
background: transparent;
border: none;
outline: none;
}
.bim-measure-settings-btn svg {
width: 18px;
height: 18px;
fill: currentColor;
color: var(--bim-icon-default);
}