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

DeepSeek 助力 Vue3 开发:打造丝滑的表格(Table)之添加行拖拽排序功能示例14,TableView16_14 拖拽自动保存示例

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

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

csdngif标识

目录

  • DeepSeek 助力 Vue3 开发:打造丝滑的表格(Table)之添加行拖拽排序功能示例14,TableView16_14 拖拽自动保存示例
    • 📚前言
    • 📚页面效果
      • 📘组件代码
    • 📚代码测试
    • 📚测试代码正常跑通,附其他基本代码
      • 📘编写路由 src\router\index.js
      • 📘编写展示入口 src\App.vue
    • 📚页面效果


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

DeepSeek 助力 Vue3 开发:打造丝滑的表格(Table)之添加行拖拽排序功能示例14,TableView16_14 拖拽自动保存示例

📚前言

高效的训练算法是 DeepSeek 模型能够快速收敛并达到优异性能的关键因素之一。在模型训练过程中,DeepSeek 运用了一系列先进的训练算法,以加速模型的收敛速度,增强训练的稳定性,并提高模型的泛化能力。

📚页面效果

DeepSeek 助力 Vue3 开发:打造丝滑的表格(Table)之添加行拖拽排序功能示例14,TableView16_14 拖拽自动保存示例

📘组件代码

<!-- TableView16_14.vue 拖拽自动保存示例 -->
<template>
  <div class="drag-demo">
    <h2>14. 拖拽自动保存</h2>
    <p class="description">拖拽排序后自动保存到本地或服务器</p>
    
    <div class="save-options">
      <div class="option">
        <input type="radio" id="saveToLocal" value="local" v-model="saveMode">
        <label for="saveToLocal">保存到本地存储</label>
      </div>
      <div class="option">
        <input type="radio" id="saveToServer" value="server" v-model="saveMode">
        <label for="saveToServer">保存到服务器 (模拟)</label>
      </div>
      <div class="option">
        <input type="checkbox" id="enableDelay" v-model="enableDelay">
        <label for="enableDelay">启用延迟保存 (500ms)</label>
      </div>
      <button class="clear-btn" @click="clearSavedData">清除已保存数据</button>
    </div>
    
    <Table
      :data="taskList"
      :columns="columns"
      draggable
      @update:data="handleDataUpdate"
      row-key="id"
      border
      stripe
      :loading="saving"
    />
    
    <div v-if="saveStatus" class="save-status" :class="statusClass">
      {
  { saveStatus }}
      <div v-if="saveProgress > 0 && saveProgress < 100" class="save-progress">
        <div class="progress-bar" :style="{ width: `${saveProgress}%` }"></div>
      </div>
    </div>
    
    <div class="save-history" v-if="saveHistory.length > 0">
      <h3>保存历史</h3>
      <ul>
        <li v-for="(record, index) in saveHistory" :key="index">
          {
  { record.action }} - {
  { record.timestamp }}
          <span class="save-location">({
  { record.mode === 'local' ? '本地存储' : '服务器' }})</span>
        </li>
      </ul>
    </div>
  </div>
</template>

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

const taskList = ref([
  {
      id: 1, task: '需求文档定稿', status: '进行中', priority: '高' },
  {
      id: 2, task: '技术方案评审', status: '已完成', priority: '高' },
  {
      id: 3, task: '项目排期计划', status: '待处理', priority: '中' },
  {
      id: 4, task: '开发环境搭建', status: '进行中', priority: '中' },
  {
      id: 5, task: '基础组件开发', status: '未开始', priority: '高' },
  {
      id: 6, task: '接口联调测试', status: '未开始', priority: '中' },
])

const columns = [
  {
      title: '任务', dataIndex: 'task', width: '250px' },
  {
      title: '状态', dataIndex: 'status', width: '120px' },
  {
      title: '优先级', dataIndex: 'priority', width: '100px' }
]

// 保存相关状态
const saving = ref(false)
const saveStatus = ref('')
const statusClass = ref('')
const saveMode = ref('local') // 'local' 或 'server'
const enableDelay = ref(true)
const saveHistory = ref([])
const saveProgress = ref(0)
const saveTimeout = ref(null)

// 初始化后从存储中加载数据
onMounted(() => {
     
  loadSavedData()
})

// 数据更新处理
const handleDataUpdate = (newData) => {
     
  taskList.value = newData
  
  // 如果启用了延迟保存
  if (enableDelay.value) {
     
    // 清除之前的计时器
    if (saveTimeout.value) {
     
      clearTimeout(saveTimeout.value)
    }
    
    // 设置状态为"即将保存"
    saveStatus.value = '即将保存...'
    statusClass.value = 'pending'
    
    // 设置新的延迟保存计时器
    saveTimeout.value = setTimeout(() => {
     
      saveData()
    }, 500)
  } else {
     
    // 立即保存
    saveData()
  }
}

// 保存数据
const saveData = async () => {
     
  try {
     
    saving.value = true
    saveStatus.value = '保存中...'
    statusClass.value = 'saving'
    saveProgress.value = 0
    
    // 根据保存模式选择保存方法
    if (saveMode.value === 'local') {
     
      // 模拟进度
      const interval = setInterval(() => {
     
        saveProgress.value += 20
        if (saveProgress.value >= 100) {
     
          clearInterval(interval)
        }
      }, 100)
      
      // 保存到本地存储
      localStorage.setItem('drag-demo-tasks', JSON.stringify(taskList.value))
      
      // 等待进度条动画完成
      await new Promise(resolve => setTimeout(resolve, 500))
      
      clearInterval(interval)
      saveProgress.value = 100
      
      // 记录保存历史
      addSaveHistory('本地保存数据')
      
      saveStatus.value = '已保存到本地存储!'
      statusClass.value = 'success'
    } else {
     
      // 模拟服务器保存 (包含进度)
      for (let i = 0; i <= 100; i += 10) {
     
        saveProgress.value = i
        await new Promise(resolve => setTimeout(resolve, 100))
      }
      
      // 记录保存历史
      addSaveHistory('保存数据到服务器')
      
      saveStatus.value = '已保存到服务器!'
      statusClass.value = 'success'
    }
  } catch (error) {
     
    saveStatus.value = '保存失败: ' + error.message
    statusClass.value = 'error'
    console.error('保存失败:', error)
  } finally {
     
    saving.value = false
    
    // 5秒后清除状态消息
    setTimeout(() => {
     
      if (statusClass.value === 'success' || statusClass.value === 'error') {
     
        saveStatus.value = ''
        statusClass.value = ''
        saveProgress.value = 0
      }
    }, 5000)
  }
}

// 加载保存的数据
const loadSavedData = () => {
     
  const savedData = localStorage.getItem('drag-demo-tasks')
  if (savedData) {
     
    try {
     
      taskList.value = JSON.parse(savedData)
      saveStatus.value = '已从本地存储加载数据'
      statusClass.value = 'info'
      
      // 添加加载历史记录
      addSaveHistory('加载本地存储数据')
      
      // 3秒后清除状态消息
      setTimeout(() => {
     
        saveStatus.value = ''
        statusClass.value = ''
      }, 3000)
    } catch (error) {
     
      console.error('加载保存数据失败:', error)
    }
  }
}

// 清除保存的数据
const clearSavedData = () => {
     
  localStorage.removeItem('drag-demo-tasks')
  saveStatus.value = '已清除保存的数据'
  statusClass.value = 'warning'
  
  // 添

相关文章:

  • python leetcode简单练习(1)
  • 【FreeRTOS】任务(TASK)——任务的创建(源码解读)
  • Qt中绘制不规则控件
  • ​Linux 中 nmap 命令详解:从基础到实战的全面指南
  • dfs记忆化搜索刷题 + 总结
  • 如何判断列表a中元素是否在列表b中
  • [leetcode]2685. 统计完全连通分量的数量
  • C++ 结构体、结构体指针与结构体指针数组详解
  • RabbitMQ 的三种集群模式
  • ETL数据集成:企业数字化转型的核心驱动力与实施策略
  • C++ Primer Plus 编程练习题 第五章 循环和关系表达式
  • 22-ArkTs 常见错误
  • DataPlatter:利用最少成本数据提升机器人操控的泛化能力
  • K8S学习之基础六十四:helm常用命令
  • 戴尔电脑安装Ubuntu双系统
  • 设计模式中的“万能转换器”——适配器模式
  • 【AI News | 20250331】每日AI进展
  • 鸿蒙编译构建-多目标产物
  • Scala循环守卫
  • vi编辑器常见命令
  • 早教网站源码/百度指数专业版app
  • 我的世界做神器指令网站/百度怎么做广告
  • 网站建设排名优化技巧/google搜索引擎入口下载
  • 网址跳转网站/郑州优化网站公司
  • 百度网站的设计风格/最新国内新闻10条
  • 中国字体设计网站/郑州短视频代运营