20260915170028

This commit is contained in:
oneao committed 2026-09-15 17:00:29 +08:00
1 parent d26afb5fec
commit 1f56cc3efb
89 files changed
+1135 -397

No files matched your search

@@ -650,7 +650,7 @@ defineExpose({
:show-overflow="showOverflow"
:empty-cell-text="''"
:area-selection="editable"
:bordered="false"
:bordered="bordered ? 'v' : false"
@area-selection-change="handleAreaSelectionChange"
@row-order-change="handleRowOrderChange"
>
@@ -710,9 +710,8 @@ defineExpose({
}
}
/* 自绘行分隔线(库 bordered=false 时不画任何边框):
单元格只画 border-bottom,外框(含四角圆弧描边)由外层 .fms-table--bordered 统一承担,
避免库渐变线叠加与最后一行/外框的双线问题 */
/* 外框由 .fms-table--bordered 负责;StkTable 的 v 模式负责竖向分割线,
本组件只补充库 v 模式关闭的横向行分隔线。 */
.fms-table__inner.stk-table {
th,
td {
@@ -720,6 +719,20 @@ defineExpose({
}
}
/* bordered="v" 仍会给 StkTable 根节点绘制方形外框背景,且最后一列会绘制右侧渐变线;
这些边缘由外层圆角容器提供,去掉库的外边缘后只保留单元格之间的竖线。 */
.fms-table__inner.stk-table.bordered-v {
border-left: none;
background-image: none;
}
.fms-table__inner.stk-table.bordered-v {
th:last-child,
td:last-child {
background-image: none;
}
}
.fms-checkbox {
display: flex;
align-items: center;
@@ -182,19 +182,11 @@ function onContextMenu(e) {
@dragend="onDragEnd"
@contextmenu.stop="onContextMenu"
>
<!-- 拖拽手柄:整行唯一可发起拖拽的区域(按下时才把本行置为 draggable);不可拖拽的节点不渲染 -->
<span
v-if="ctx.props.draggable && !dragDisabled"
class="tree-node-grip"
title="拖拽调整顺序"
@mousedown="armDrag"
>
<GripVertical :aria-hidden="true" />
</span>
<!-- 展开/收起箭头:非叶子渲染真实箭头,叶子渲染等宽透明占位。
占位不是多占地方,而是对齐机制:没有它,叶子标题会左移一个箭头宽,
比同层非叶子靠左、并与父级标题齐平(缩进不足),层级关系丢失。 -->
比同层非叶子靠左、并与父级标题齐平(缩进不足),层级关系丢失。
位置在拖拽手柄之前:占位是「缩进带」的一部分(叶子行它是空白),
放到手柄之后会让手柄与标题之间空出一个箭头宽,读起来像多余空隙。 -->
<span
v-if="!leaf"
class="tree-node-switcher"
@@ -213,6 +205,16 @@ function onContextMenu(e) {
</span>
<span v-else class="tree-node-switcher is-placeholder" :aria-hidden="true"></span>
<!-- 拖拽手柄:整行唯一可发起拖拽的区域(按下时才把本行置为 draggable);不可拖拽的节点不渲染 -->
<span
v-if="ctx.props.draggable && !dragDisabled"
class="tree-node-grip"
title="拖拽调整顺序"
@mousedown="armDrag"
>
<GripVertical :aria-hidden="true" />
</span>
<span v-if="ctx.props.checkable" class="tree-node-checkbox">
<Checkbox
:model-value="isChecked"