【批量删除】Vue3.2 后台管理系统实现批量删除的功能

一、页面表格布局

<el-table ref="multipleTableRef" :data="tableData" border style="width: 100%"
              @selection-change="handleSelectionChange" @current-change="CurrentChange"
              :header-cell-style="{ background: '#23cdab', color: '#606266' }">
              <el-table-column type="selection" width="55" />
              <el-table-column prop="name" label="活动名称" />
              <el-table-column prop="type" label="活动类型" />
              <el-table-column prop="belong" label="活动所属社团" />
              <el-table-column prop="number" label="活动人数" />
              <el-table-column prop="credit" label="活动学分" />
              <el-table-column prop="list" label="人员名单" />
              <el-table-column prop="operate" label="操作" width="300">
                <template #default="scope">
                  <el-button color="#23cdab" :icon="Edit" class="editBtn" @click="editBtn">{{ scope.row.operate.edit
                  }}</el-button>
                  <el-button type="danger" :icon="Delete" class="delBtn" @click="delBtn">{{ scope.row.operate.del
                  }}</el-button>
                  <el-button type="primary" :icon="Setting" class="showBtn" @click="showBtn">{{ scope.row.operate.show
                  }}</el-button>
                </template>
              </el-table-column>
 </el-table>

二、批量删除按钮

未选择的时候按钮置灰

<el-button type="danger" :icon="Delete" @click="batchDeletion()"
                :disabled="batchDel.length === 0">批量删除</el-button>

三、功能模块逻辑

<script setup >
//表格数据
const tableData = ref([
  {
    id: 1,
    name: '11社团',
    type: 'IT学习',
    belong: '计算机学院',
    number: '200',
    credit: '3',
    list: '安卓开发',
    operate: { edit: '编辑', del: '删除', show: '查看' },
  },
  {
    id: 2,
    name: '大数据社团',
    type: 'IT学习',
    belong: '计算机学院',
    number: '50',
    credit: '3',
    list: '互联网',
    operate: { edit: '编辑', del: '删除', show: '查看' },
  },
  {
    id: 3,
    name: '羽毛球社团',
    type: '运动',
    belong: '旅游学院',
    number: '99',
    credit: '2',
    list: '软件开发',
    operate: { edit: '编辑', del: '删除', show: '查看' },
  },
  {
    id: 4,
    name: '排球社团',
    type: '运动',
    belong: '机电学院',
    number: '20',
    credit: '2',
    list: '空乘',
    operate: { edit: '编辑', del: '删除', show: '查看' },
  },
  {
    id: 5,
    name: '篮球社团',
    type: '运动',
    belong: '机电学院',
    number: '50',
    credit: '2',
    list: '互联网',
    operate: { edit: '编辑', del: '删除', show: '查看' },
  },
  {
    id: 6,
    name: '未来社团',
    type: '运动',
    belong: '电信学院',
    number: '50',
    credit: '2',
    list: '软件开发',
    operate: { edit: '编辑', del: '删除', show: '查看' },
  },
  {
    id: 7,
    name: '羽毛球社团',
    type: '运动',
    belong: '旅游学院',
    number: '99',
    credit: '2',
    list: '软件开发',
    operate: { edit: '编辑', del: '删除', show: '查看' },
  },
  {
    id: 8,
    name: '排球社团',
    type: '运动',
    belong: '机电学院',
    number: '20',
    credit: '2',
    list: '空乘',
    operate: { edit: '编辑', del: '删除', show: '查看' },
  },
  {
    id: 9,
    name: '篮球社团',
    type: '运动',
    belong: '机电学院',
    number: '50',
    credit: '2',
    list: '互联网',
    operate: { edit: '编辑', del: '删除', show: '查看' },
  },
  {
    id: 10,
    name: '未来社团',
    type: '运动',
    belong: '电信学院',
    number: '50',
    credit: '2',
    list: '软件开发',
    operate: { edit: '编辑', del: '删除', show: '查看' },
  },
])
const batchDel = ref([])
//指向DOM元素
const multipleTableRef = ref('')
//获取当前选中的数据给到数据
const handleSelectionChange = (val) => {
  batchDel.value = []
  val.forEach(item => {
    batchDel.value.push(item.id)
  });

}
const delBtn = (id) => {
  ElMessageBox.confirm('此操作将永久删除数据, 是否继续?', '提示', {
    confirmButtonText: '确认',
    cancelButtonText: '取消',
    type: 'warning',
  })
    .then(() => {
      const index = tableData.value.findIndex((item) => item.id === id)
      tableData.value.splice(index, 1)
      ElMessage({ type: 'success', message: '删除成功' })
    })
    .catch(() => {
      ElMessage({ type: 'info', message: '取消删除' })
    })
}
//批量删除
const batchDeletion = () => {
  ElMessageBox.confirm("此操作将永久删除数据, 是否继续?", "提示", {
    confirmButtonText: "确认",
    cancelButtonText: "取消",
    type: "warning",
  }).then(() => {
    batchDel.value.forEach(id => {
      const index = tableData.value.findIndex((item) => item.id === id)
      tableData.value.splice(index, 1)
    })
    batchDel.value = []
    ElMessage({ type: 'success', message: '删除成功', })
    multipleTableRef.value.clearSelection();
  }).catch(() => {
    ElMessage({ type: 'info', message: '取消删除', })
  });
};
<script>

四、效果展示

  • 3
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
关于Vue 3.2后台管理系统,您可以使用Vue.js框架来构建一个功能强大的后台管理系统Vue 3.2版本带来了许多新的特性和改进,使得开发后台管理系统更加高效和易用。 首先,您需要安装Vue CLI,这是一个官方提供的脚手架工具,可以帮助您快速搭建和管理Vue项目。您可以使用以下命令进行安装: ``` npm install -g @vue/cli ``` 接下来,您可以使用Vue CLI创建一个新的Vue项目。在命令行中运行以下命令: ``` vue create my-admin-system ``` 然后,您可以选择手动配置项目的特性,或者选择默认配置。建议选择默认配置,以便快速开始。 一旦项目创建完成,进入项目目录并启动开发服务器: ``` cd my-admin-system npm run serve ``` 现在,您可以开始开发您的后台管理系统了。下面是一些常用的技术和功能,可以帮助您构建一个功能完善的系统: 1. 使用Vue Router进行路由管理:Vue Router允许您通过定义路由来管理不同页面之间的导航。 2. 使用Vuex进行状态管理:Vuex是Vue的官方状态管理库,可以帮助您管理应用程序的共享状态。 3. 使用Element Plus或Ant Design Vue等UI框架:这些UI框架提供了丰富的组件和样式,可以帮助您快速构建漂亮的用户界面。 4. 使用axios或Fetch进行数据请求:这些库可以帮助您与后端API进行通信,从而获取和提交数据。 5. 使用ESLint和Prettier进行代码规范和格式化:这些工具可以帮助您保持代码的一致性和可读性。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值