vue3+elementui plus 实现多选分页列表的新增和修改

在Vue 3和Element Plus中实现多选分页列表的新增和修改功能,可以通过以下步骤实现:

  1. 使用<el-table>组件实现分页列表展示,并开启多选功能。
  2. 使用<el-pagination>组件实现分页功能。
  3. 使用<el-dialog>组件实现新增和修改数据的对话框。
  4. 在对话框中使用<el-form>组件收集用户输入。
  5. 使用Vue的响应式数据和方法处理新增和修改逻辑。

以下是简化的代码示例:




<template>
  <div>
    <el-table
      :data="tableData"
      style="width: 100%"
      @selection-change="handleSelectionChange"
    >
      <el-table-column
        type="selection"
        width="55">
      </el-table-column>
      <el-table-column
        prop="date"
        label="日期"
        width="180">
      </el-table-column>
      <!-- 其他列 -->
      <el-table-column
        label="操作">
        <template #default="scope">
          <el-button size="small" @click="handleEdit(scope.$index, scope.row)">编辑</el-button>
        </template>
      </el-table-column>
    </el-table>
    
    <el-pagination
      @size-change="handleSizeChange"
      @current-change="handleCurrentChange"
      :current-page="currentPage"
      :page-sizes="[10, 20, 30, 40]"
      :page-size="pageSize"
      layout="total, sizes, prev, pager, next, jumper"
      :total="total">
    </el-pagination>
 
    <el-dialog title="编辑" :visible.sync="dialogVisible">
      <el-form :model="form">
        <!-- 表单内容 -->
      </el-form>
      <template #footer>
        <span class="dialog-footer">
          <el-button @click="dialogVisible = false">取消</el-button>
          <el-button type="primary" @click="submitForm">确定</el-button>
        </span>
      </template>
    </el-dialog>
  </div>
</template>
 
<script setup>
import { ref } from 'vue';
 
const tableData = ref([]); // 表格数据
const multipleSelection = ref([]); // 多选的数据
const currentPage = ref(1); // 当前页
const pageSize = ref(10); // 每页显示条数
const total = ref(0); // 总条数
const dialogVisible = ref(false); // 对话框显示状态
const form = ref({}); // 表单数据
 
// 分页大小改变
const handleSizeChange = (val) => {
  pageSize.value = val;
  // 重新加载数据
};
 
// 当前页改变
const handleCurrentChange = (val) => {
  currentPage.value = val;
  // 重新加载数据
};
 
// 多选改变
const handleSelectionChange = (val) => {
  multipleSelection.value = val;
};
 
// 编辑操作
const handleEdit = (index, row) => {
  dialogVisible.value = true;
  form.value = Object.assign({}, row); // 复制行数据到表单
};
 
// 提交表单
const submitForm = () => {
  // 更新或新增逻辑
  dialogVisible.value = false;
};
 
// 初始化加载数据
// 模拟数据加载函数
const loadData = () => {
  // 从服务器获取数据,并更新tableData, total等值
}

评论已关闭

推荐阅读

Vue中使用mind-map实现在线思维导图
2024年08月04日
VUE
Web前端最全Vue实现免密登录跳转的方式_vue怎么样不登录返回首页,最强技术实现
2024年08月04日
VUE
vue3 项目搭建教程(基于create-vue,vite,Vite + Vue)
2024年08月04日
VUE
Vue-颜色选择器实现方案——>Vue-Color( 实战*1+ Demo*7)
2024年08月04日
VUE
Vue项目卡顿慢加载?这些优化技巧告诉你!_vue数据多渲染卡顿
2024年08月04日
VUE
vue中的keep-alive详解与应用场景
2024年08月04日
VUE
Vue、React实现excel导出功能(三种实现方式保姆级讲解)
2024年08月04日
vue-office/docx插件实现docx文件预览
2024年08月04日
VUE
java调用js文件的两种方法(支持V8引擎)
2024年08月04日
JavaScript:解决计算精度问题/mathjs/bignumber.js/big.js/decimal.js
2024年08月04日
两周从爬虫小白变大神 _yjs_js_security_passport
2024年08月04日
JS笔记(对象、函数、数组)
2024年08月04日
Markdown.js:强大的纯JavaScript Markdown解析器
2024年08月04日
Vue项目:js模拟点击a标签下载文件并重命名,URL文件地址下载方法、请求接口下载文件方法总结。
2024年08月04日
vue 父组件怎么获取子组件里面的data数据
2024年08月04日
VUE
个人开发实现AI套壳网站快速搭建(Vue+elementUI+SpringBoot)
2024年08月04日
el-table 表格封装并改造实现单元格可编辑
2024年08月04日
none
nodejs环境下创建vue项目、SSH密钥登陆!!!
2024年08月04日
vue+quill+element-ui实现视频、图片上传及缩放保姆级教程,轻松使用富文本
2024年08月04日
【three.js】22. Imported Models导入模型
2024年08月04日