当前位置: 首页 > news >正文

DeepSeek 助力 Vue3 开发:打造丝滑的表格(Table)之添加列宽调整功能,示例Table14_03可调整列宽的固定表头表格

前言:哈喽,大家好,今天给大家分享一篇文章!并提供具体代码帮助大家深入理解,彻底掌握!创作不易,如果能帮助到大家或者给大家一些灵感和启发,欢迎收藏+关注哦 💕

共同探索软件研发!敬请关注【宝码香车】
关注描述

csdngif标识

目录

  • DeepSeek 助力 Vue3 开发:打造丝滑的表格(Table)之添加列宽调整功能,示例Table14_03可调整列宽的固定表头表格
    • 📚页面效果
      • 📘组件代码
    • 📚代码测试
    • 📚测试代码正常跑通,附其他基本代码
      • 📘编写路由 \src\router\index.js
      • 📘编写展示入口 src\App.vue
    • 📚页面效果
    • 📚展望


📚📗📕📘📖🕮💡📝🗂️✍️🛠️💻🚀🎉🏗️🌐🖼️🔗📊👉🔖⚠️🌟🔐⬇️·正文开始⬇️·🎥😊🎓📩😺🌈🤝🤖📜📋🔍✅🧰❓📄📢📈 🙋0️⃣1️⃣2️⃣3️⃣4️⃣5️⃣6️⃣7️⃣8️⃣9️⃣🔟🆗*️⃣#️⃣

DeepSeek 助力 Vue3 开发:打造丝滑的表格(Table)之添加列宽调整功能,示例Table14_03可调整列宽的固定表头表格

📚页面效果

DeepSeek 助力 Vue3 开发:打造丝滑的表格(Table)之添加列宽调整功能,示例Table14_03可调整列宽的固定表头表格

📘组件代码

<!-- TableView14_03.vue 可展开行的固定表头表格 -->
<template>
  <div class="table-demo">
    <h2>13. 添加表头固定功能,可展开行的固定表头表格</h2>
    <p class="description">使用 expandable 和相关插槽实现行展开功能</p>
    
    <div class="table-container">
      <Table
        :data="customers"
        :columns="columns"
        fixed-header
        fixed-header-height="300px"
        expandable
        :expanded-keys="expandedKeys"
        @expand="handleExpand"
        resizable
        border
        ref="tableRef"
      >
        <!-- 添加展开按钮列 -->
        <template #cell-expand="{ row }">
          <button 
            class="expand-button"
            @click="handleExpand(row)"
            :title="`ID: ${row.id}`"
          >
            {
  { expandedKeys.includes(row.id) ? '−' : '+' }}
          </button>
        </template>
        
        <!-- 展开行的内容 -->
        <template #expanded-row="{ row }">
          <div class="expanded-content">
            <h4>{
  { row.name }}的详细信息</h4>
            <div class="info-grid">
              <div class="info-item">
                <span class="label">注册时间:</span>
                <span>{
  { row.registerTime }}</span>
              </div>
              <div class="info-item">
                <span class="label">最近登录:</span>
                <span>{
  { row.lastLogin }}</span>
              </div>
              <div class="info-item">
                <span class="label">消费总额:</span>
                <span>¥{
  { row.totalSpent }}</span>
              </div>
              <div class="info-item">
                <span class="label">订单数:</span>
                <span>{
  { row.orderCount }}</span>
              </div>
            </div>
          </div>
        </template>
      </Table>
    </div>
  </div>
</template>

<script setup>
import {
      ref, onMounted } from 'vue'
import Table from '@/components/Table/Table.vue'

const tableRef = ref(null)

const customers = ref([
  {
     
    id: 1,
    name: '张三',
    age: 28,
    city: '北京',
    level: '黄金',
    registerTime: '2023-01-15',
    lastLogin: '2024-03-10',
    totalSpent: 15800,
    orderCount: 23
  },
  {
     
    id: 2,
    name: '李四',
    age: 35,
    city: '上海',
    level: '白银',
    registerTime: '2023-03-20',
    lastLogin: '2024-03-09',
    totalSpent: 8500,
    orderCount: 12
  },
  {
     
    id: 3,
    name: '王五',
    age: 42,
    city: '广州',
    level: '铂金',
    registerTime: '2022-12-10',
    lastLogin: '2024-03-08',
    totalSpent: 25600,
    orderCount: 45
  }
])

const columns = ref([
  {
      
    title: '', 
    dataIndex: 'expand', 
    width: '50px',
    fixed: 'left',
    customCell: true 
  },
  {
      title: '姓名', dataIndex: 'name', width: '120px' },
  {
      title: '年龄', dataIndex: 'age', width: '80px' },
  {
      title: '城市', dataIndex: 'city', width: '120px' },
  {
      title: '会员等级', dataIndex: 'level', width: '120px' }
])

const expandedKeys = ref([])

const handleExpand = (row) => {
     
  const index = expandedKeys.value.indexOf(row.id)
  if (index > -1) {
     
    expandedKeys.value.splice(index, 1)
  } else {
     
    expandedKeys.value.push(row.id)
  }
  expandedKeys.value = [...expandedKeys.value]
}

// 确保表格组件已经挂载
onMounted(() => {
     
  // 可以在这里进行一些初始化操作
  console.log('表格组件已挂载:', tableRef.value)
})
</script>

<style scoped>
.table-demo {
     
  padding: 20px

相关文章:

  • 机器学习与深度学习算法及工具在图像分类中的应用总结
  • 移动Android和IOS自动化中常见问题
  • NPM安装与配置全流程详解(2025最新版)
  • Nginx的流式响应配置详解
  • 【每日学点HarmonyOS Next知识】状态变量、动画UI残留、Tab控件显示、ob前缀问题、文字背景拉伸
  • 【网络编程】HTTP网络编程
  • 前后端+数据库的项目实战--学生信息管理系统-易
  • Cesium 入门教程(基于 vue3)
  • Linux学习(十五)(故障排除(ICMP,Ping,Traceroute,网络统计,数据包分析))
  • 如何查看redis的缓存时间
  • js 使用 Web Workers 来实现一个精确的倒计时,即使ios手机锁屏或页面进入后台,倒计时也不会暂停。
  • 每天一篇《目标检测》文献(二)
  • Java线程详解
  • 【Linux】线程控制
  • 第四章:深入理解框架之 GUI 模块
  • ARM64异常处理技术
  • 我与红队:一场网络安全实战的较量与成长
  • Android DUKPT - 3DES
  • 文件上传漏洞(条件竞争)
  • Android12 应用更新开机动画
  • 科普|认识谵妄:它有哪些表现?患者怎样走出“迷雾”?
  • 《制止滥用行政权力排除、限制竞争行为规定(修订草案征求意见稿)》公开征求意见
  • “多规合一”改革7年成效如何?自然资源部总规划师亮成绩单
  • 河南信阳:对违规吃喝问题不遮丑不护短,露头就打、反复敲打
  • 商务部新闻发言人就暂停17家美国实体不可靠实体清单措施答记者问
  • 袁思达已任中国科学院办公厅主任