vue 表格 vxe-table 高亮行支持取消操作
<p>在使用 vxe-table 表格组件时,默认情况下,当用户点击某一行时,该行会高亮显示(即成为当前行),并且无法通过再次点击来取消高亮。这种交互适用于需要始终选中一行的场景。</p><p>但在某些业务场景下,可能需要允许用户取消选中当前高亮的行(例如,允许不选中任何行)。vxe-table 提供了灵活的配置来实现这一需求</p>
<h2 id="实现方式">实现方式</h2>
<p>通过设置 current-row-config.strict 参数为 false,即可允许取消当前高亮行的选中状态。当 strict 为 true(默认值)时,表格会强制始终存在一个高亮行;设置为 false 后,用户可以通过再次点击已高亮的行来取消高亮。</p>
<p><img src="https://img2024.cnblogs.com/blog/3766032/202603/3766032-20260317103034199-1296038898.png"></p>
<h2 id="代码">代码</h2>
<pre><code class="language-html"><template>
<div>
<vxe-grid v-bind="gridOptions" v-on="gridEvents"></vxe-grid>
</div>
</template>
<script setup>
import { reactive } from 'vue'
const gridOptions = reactive({
height: 300,
rowConfig: {
isCurrent: true,
isHover: true
},
currentRowConfig: {
strict: false
},
columns: [
{ type: 'seq', width: 70 },
{ field: 'name', title: 'Name' },
{ field: 'sex', title: 'Sex' },
{ field: 'age', title: 'Age' },
{ field: 'address', title: 'Address', showOverflow: true }
],
data: [
{ name: 'Test1', role: 'Develop', sex: 'Man', age: 28, content: 'test abc' },
{ name: 'Test2', role: 'Test', sex: 'Women', age: 41, content: 'Guangzhou' },
{ name: 'Test3', role: 'PM', sex: 'Man', age: 32, content: 'Shanghai' },
{ name: 'Test4', role: 'Designer', sex: 'Women', age: 24, content: 'Shanghai' }
]
})
const gridEvents = {
currentRowChange ({ row, oldValue, newValue }) {
console.log(`行选中事件 ${row.name} 旧:`, oldValue, '新:', newValue)
}
}
</script>
</code></pre>
<h2 id="参数说明">参数说明</h2>
<ul>
<li>rowConfig.isCurrent:启用当前行高亮(即选中标记)。
<ul>
<li>currentRowConfig.strict:是否强制保持一个当前行。true(默认):始终有一个高亮行,无法取消选中。false:允许通过再次点击已高亮行来取消选中,此时表格可以没有任何高亮行。</li>
</ul>
</li>
</ul>
<p>当 strict: false 时,currentRowChange 事件的 row 参数在取消选中时为 null,可根据此判断是否已无选中行。</p>
<p>https://vxetable.cn</p><br><br>
来源:https://www.cnblogs.com/leid6/p/19728179
頁:
[1]