必填
-
+ @update:model-value="() => toggleInspector('b_required')"
+ />
只读
-
+ @update:model-value="() => toggleInspector('b_readonly')"
+ />
禁用
-
+ @update:model-value="() => toggleInspector('b_disabled')"
+ />
显示
-
+ @update:model-value="() => toggleInspector('b_visible')"
+ />
-
{
启用
-
+ @update:model-value="toggleBandEnable"
+ />
操作
@@ -1833,81 +1803,17 @@ onBeforeUnmount(() => {
justify-content: flex-end;
}
+/* 编辑方式:ui RadioGroup(紧凑字号) */
.mm-edit__mode {
- display: inline-flex;
- align-items: center;
- gap: 3px;
- padding: 3px;
- border: 1px solid var(--fms-border);
- border-radius: var(--fms-control-radius);
- background: var(--fms-secondary);
-}
-
-.mm-edit__mode-btn {
- height: 26px;
- padding: 0 12px;
- border: none;
- border-radius: 4px;
- background: transparent;
- color: var(--fms-text-secondary);
font-size: 12px;
- white-space: nowrap;
- cursor: pointer;
-
- &.is-active {
- background: var(--fms-card);
- color: var(--fms-text);
- font-weight: 600;
- box-shadow: 0 1px 3px rgba(30, 45, 64, 0.12);
- }
-
- &:disabled {
- opacity: 0.5;
- cursor: not-allowed;
- }
}
+/* 视图切换:ui Tabs nav-only */
.mm-edit__view-switch {
- display: inline-flex;
- align-items: center;
- gap: 3px;
- padding: 3px;
- border: 1px solid var(--fms-border);
- border-radius: var(--fms-control-radius);
- background: var(--fms-secondary);
-}
-
-.mm-edit__view-btn {
- height: 26px;
- padding: 0 12px;
- border: none;
- border-radius: 4px;
- background: transparent;
- color: var(--fms-text-secondary);
font-size: 12px;
- cursor: pointer;
-
- &.is-active {
- background: var(--fms-card);
- color: var(--fms-text);
- font-weight: 600;
- box-shadow: 0 1px 3px rgba(30, 45, 64, 0.12);
- }
-}
-
-/* ---- 快捷键帮助(右上角 ? 图标,hover 展示) ---- */
-.mm-edit__help {
- position: relative;
- display: inline-flex;
- align-items: center;
- align-self: center;
-
- &:hover .mm-edit__help-pop,
- &:focus-within .mm-edit__help-pop {
- display: block;
- }
}
+/* ---- 快捷键帮助(右上角 ? 图标,ui Popover hover 展示) ---- */
.mm-edit__help-icon {
display: inline-flex;
align-items: center;
@@ -1935,20 +1841,6 @@ onBeforeUnmount(() => {
}
}
-.mm-edit__help-pop {
- display: none;
- position: absolute;
- top: calc(100% + 8px);
- right: 0;
- z-index: 50;
- width: 230px;
- padding: 10px 12px;
- border: 1px solid var(--fms-border);
- border-radius: 8px;
- background: var(--fms-card);
- box-shadow: 0 6px 20px rgba(30, 45, 64, 0.14);
-}
-
.mm-edit__help-title {
margin-bottom: 6px;
color: var(--fms-text);
@@ -2115,19 +2007,20 @@ onBeforeUnmount(() => {
overflow: hidden;
}
-.mm-fdesign__panel-expand {
+/* 展开属性面板(覆盖 ui Button 默认尺寸) */
+.mm-fdesign__panel-expand.button {
display: flex;
align-items: flex-start;
justify-content: center;
width: 100%;
height: 100%;
+ min-height: 0;
padding-top: 10px;
- border: none;
background: transparent;
color: color-mix(in srgb, var(--fms-text-secondary) 70%, var(--fms-text));
- cursor: pointer;
- &:hover {
+ &:hover:not(:disabled) {
+ background: transparent;
color: var(--fms-primary);
}
}
@@ -2154,49 +2047,34 @@ onBeforeUnmount(() => {
font-size: 10px;
}
-.mm-fdesign__collapse {
+/* 折叠属性面板(覆盖 ui Button 默认尺寸) */
+.mm-fdesign__collapse.button {
display: inline-flex;
align-items: center;
justify-content: center;
width: 20px;
height: 20px;
+ min-height: 0;
padding: 0;
- border: none;
border-radius: 4px;
background: transparent;
color: color-mix(in srgb, var(--fms-text-secondary) 70%, var(--fms-text));
- cursor: pointer;
- transition:
- background 0.15s,
- color 0.15s;
+ transform: none;
- &:hover {
+ &:hover:not(:disabled) {
background: var(--fms-secondary);
color: var(--fms-text);
}
}
/* ---- 左栏字段库 ---- */
-.mm-fdesign__lib-search {
- width: 100%;
+/* 搜索框:压缩 ui Input 高度(覆盖默认 --fms-control-height) */
+.mm-fdesign__lib-search.input-wrapper {
height: 26px;
+ min-height: 0;
padding: 0 8px;
- border: 1px solid var(--fms-border);
- border-radius: 4px;
- color: var(--fms-text);
- background: var(--fms-card);
font-size: 11px;
margin-bottom: 10px;
- outline: none;
-
- &::placeholder {
- color: var(--fms-text-placeholder, #9ca3af);
- }
-
- &:focus {
- border-color: var(--fms-primary);
- box-shadow: 0 0 0 1.5px color-mix(in srgb, var(--fms-primary) 25%, transparent);
- }
}
.mm-fdesign__lib-group {
@@ -2631,25 +2509,12 @@ onBeforeUnmount(() => {
font-size: 11px;
}
-.mm-fdesign__prop-input {
- width: 100%;
+/* 带标题:压缩 ui Input 高度 */
+.mm-fdesign__prop-input.input-wrapper {
height: 26px;
+ min-height: 0;
padding: 0 8px;
- border: 1px solid var(--fms-border);
- border-radius: 4px;
- background: var(--fms-card);
- color: var(--fms-text);
font-size: 11px;
- outline: none;
-
- &:focus {
- border-color: var(--fms-primary);
- box-shadow: 0 0 0 1.5px color-mix(in srgb, var(--fms-primary) 20%, transparent);
- }
-
- &:disabled {
- opacity: 0.5;
- }
}
.mm-fdesign__span-control {
@@ -2660,34 +2525,28 @@ onBeforeUnmount(() => {
flex: 1;
min-width: 0;
}
+}
- input[type='number'] {
- flex: none;
- width: 48px;
- height: 26px;
- padding: 0 4px;
- border: 1px solid var(--fms-border);
- border-radius: 4px;
- background: var(--fms-card);
- color: var(--fms-text);
- font-size: 11px;
+/* 自定义列宽数字输入:压缩 ui Input 高度 */
+.mm-fdesign__span-input.input-wrapper {
+ flex: none;
+ width: 48px;
+ height: 26px;
+ min-height: 0;
+ padding: 0 4px;
+ font-size: 11px;
+
+ :deep(.input) {
text-align: center;
- outline: none;
-
- &:focus {
- border-color: var(--fms-primary);
- }
-
- &:disabled {
- opacity: 0.5;
- }
}
}
-.mm-fdesign__step {
+/* 列宽步进钮(覆盖 ui Button 默认尺寸) */
+.mm-fdesign__step.button {
flex: none;
width: 22px;
height: 26px;
+ min-height: 0;
padding: 0;
border: 1px solid var(--fms-border);
border-radius: 4px;
@@ -2695,7 +2554,6 @@ onBeforeUnmount(() => {
color: var(--fms-text-secondary);
font-size: 12px;
line-height: 1;
- cursor: pointer;
&:hover:not(:disabled) {
border-color: var(--fms-primary);
@@ -2721,40 +2579,6 @@ onBeforeUnmount(() => {
font-size: 11px;
}
-.mm-fdesign__toggle {
- width: 30px;
- height: 16px;
- padding: 2px;
- border: none;
- border-radius: 999px;
- background: #bdc7d2;
- cursor: pointer;
- transition: background-color 0.16s ease;
-
- &::after {
- content: '';
- display: block;
- width: 12px;
- height: 12px;
- border-radius: 50%;
- background: #fff;
- transition: transform 0.16s ease;
- }
-
- &.is-on {
- background: var(--fms-primary);
-
- &::after {
- transform: translateX(14px);
- }
- }
-
- &:disabled {
- opacity: 0.5;
- cursor: not-allowed;
- }
-}
-
.mm-fdesign__delete {
margin-top: 10px;
width: 100%;