后台项目 Express-Mysql-Vue3-TS-Pinia 角色删除

236 阅读2分钟

携手创作,共同成长!这是我参与「掘金日新计划 · 8 月更文挑战」的第24天,点击查看活动详情

角色删除

引言

通过之前一段时间 ExpressMysql 的学习

这里尝试来搭建一个 后台系统 来巩固下学习的技术。

角色删除

上一节,将 角色更新 的这个功能,前后端均实现完毕

这一节,我们完成 角色删除 功能

api接口

首先通过 Express 来定义我们的后端接口

角色删除的 sql 文件位置 controller\sys\sql.js

sql 代码为:

const deleteRole = `delete from role where id=?;`

sql 代码写完后,我们就可以去处理后端逻辑

角色删除的 逻辑代码 文件位置 controller\sys\index.js

  • 主要是去判断传来的是否是数字(通过正则来进行判断)

    • const reg = /^[\d]+$/

代码如下

const deleteRole = (req, res, next) => {
  try {
    const id = req.params.id

    const reg = /^[\d]+$/

    if (reg.test(id)) {
      const sql = sqlAll.deleteRole
      const sqlArr = [id]
      const callback = (error, results) => {
        if (error) {
          console.log('连接出错')
          return
        }
        const code = 200
        const data = {
          message: '删除成功!'
        }
        useResSend(res, code, data)
      }
      sqlConnect(sql, sqlArr, callback)
    } else {
      const code = 400
      const data = {
        message: '删除失败'
      }
      useResSend(res, code, data)
    }
  } catch (err) {
    next(err)
  }
}

我们将接口进行定义,和暴露给前端:

文件位置 router\sys\index.js

const Api = {
  deleteRole: '/delete-role/:id',
}

前端

前端首先定义下,删除的接口,最终通过 axios 来进行请求

文件位置 src\api\sys\index.ts

export const deleteRole = (id: any) => DELETE(commonAPI + prefix + API.deleteRole + `/${id}`)

定义好了之后,我们在 角色管理 页面,点击红色的删除按钮,来实现删除的逻辑

  • 首先通过 popconfirm 来提示,是否进行删除,以防止用户进行 误触碰 操作

  • 当点击确定后,实现删除逻辑

  • 最后重新请求 角色列表,来刷新列表,将最新数据展示到页面中

import { deleteRole } from '@/api'

const deleteFunc = (row) => {
  deleteRole(row.id).then((res: any) => {
    ElMessage.success(res.message)
    getRoles()
  })
}

image.png

总结

通过 Express-Mysql-Vue3-TS-Pinia 做出一个 后台系统 项目

完成了前后端代码, 实现了 角色删除 功能,