Node+Vue3+mysql+ant design实现前后端分离——表格的添加、修改和删除

news/2024/10/21 10:13:56/

在上一篇文章中,我们分享了如何运用NodeJS、Vue、MySQL以及其他技术来实现后台管理系统中的表格查询功能。今天,我们将继续探讨另外三个重要的功能实现原则。这些原则在构建后台管理系统时至关重要,同时还有导入和导出这两种功能也必不可少。关于导入和导出功能,我们会在下一次更新中详细介绍。下文中与上一篇文章重复的部分就不再进行详述,不懂的同学可以先看看上篇文章哦。

一、MySQL建表

首先,利用Navicat软件,在项目文件夹内创建"user_list"表格,并添置相关字段。此举便于nodejs连接数据库时提供特定需要的信息。如下图所示:

为了后续便于前端更好的联调数据,这里建议在创建完表后,添加一条相应的数据。

二、nodejs模拟数据并连接数据库

初始表格数据及增删改操作,本节和上篇文章一样可用NodeJS进行模拟,无需额外在服务器端的 routes 目录创建新文件夹。为保持一致性,相关代码将与上篇文章所述查询数据置于同一文件内。数据库的连接与之前方法也相同,仅需进行一次配置。

var express = require('express');
var router = express.Router();
//连接数据库
var connection=require('../db/sql.js');//用户表格接口
router.get('/api/user/getUserList', (req, res) => {const sqlStr = 'select * from user_list';connection.query(sqlStr, (error, results) => {if (error) return res.json({code: 404,message: '数据不存在',affextedRows: 0})res.json({code: 200,message: results,affextedRows: results.affextedRows})})
})//条件查找--请查看上篇文章//添加用户信息
router.post('/api/user/addUserList', (req, res) => {// console.log(req,'是')const username = req.body.username;const userPwd = req.body.userPwd;const phone = req.body.phone;const imgUrl=req.body.imgUrl||'https://img0.baidu.com/it/u=1307225259,750358157&fm=253&fmt=auto?w=500&h=500';const nickName=req.body.nickName;const sqlStr = "insert into user_list(username,userPwd,phone,imgUrl,nickName) values('" + username + "','" + userPwd + "','" + phone + "','" + imgUrl + "','" + nickName + "')";connection.query(sqlStr,(err, results) => {if (err) return res.json({code: 404,message: err,affectedRows: 0});res.json({code: 200,message: '添加成功',affectedRows: results.affectedRows});})
});//修改用户信息
router.post('/api/user/updateUserList', (req, res) => {// console.log(req.body,'是')const id = req.body.id;const username = req.body.username;const userPwd = req.body.userPwd;const phone = req.body.phone;const imgUrl=req.body.imgUrl||'https://img0.baidu.com/it/u=1307225259,750358157&fm=253&fmt=auto?w=500&h=500';const nickName=req.body.nickName;const sqlStr = "update user_list set username='" + username + "',userPwd='" + userPwd + "',phone='" + phone + "',imgUrl='" + imgUrl + "',nickName='" + nickName + "'where id=" + idconnection.query(sqlStr,(err, results) => {if (err) return res.json({code: 404,message: err,affectedRows: 0});res.json({code: 200,message: '修改成功',affectedRows: results.affectedRows});})
});//删除用户信息
router.get('/api/user/deleteUserList/', (req, res) => {const id = req.query.id;// console.log(req.query,'shuju ')// console.log(name,'name')const sqlStr = "delete from user_list where id=? ";connection.query(sqlStr, id,(err, results) => {if (err){console.log(err,'错误信息提示:')return res.json({code: 404,message: err,affextedRows: 0});}res.json({code: 200,message: '删除成功',affextedRows: results.affextedRows});})
})
module.exports = router;

三、前端界面开发

在上述操作都完成后,接下来就是前端界面的开发以及数据联调了。

(1)表格的添加和修改前端思想使用了ant design组件中的模态框以及表单,利用其表单的双向绑定来实现添加和修改数据,具体代码如下:

<template><div class="user-tab"><!-- 新增用户 --><div class="tab-add-btn" @click="handleAddUser"><i class="iconfont icon-jiahaotianjia"></i><span>新增用户</span></div><!-- 表格 --><div class="tab-body"><a-table:columns="columns"bordered:data-source="dataSource":pagination="pagination":loading="tableLoading"rowKey="id":scroll="{ y: 'calc(100vh - 380px - 10px)', x: 200 }"><template #index="{ index }">{{ index + 1 }}</template><template #picture="{ record }"><img style="width: 100px; heigth: 100px" :src="record.picture" /></template><template #action="{ record }"><a href="javascript:void(0)" @click="editGroup(record)">修改</a>&nbsp;&nbsp;<a href="javascript:void(0)" @click="removeGroup(record)">删除</a></template></a-table></div><!-- 弹窗 --><div class="tab-modal"><a-modal v-model:visible="visible" :footer="null" ok-text="确认"cancel-text="取消"><a-tabs><a-tab-pane key="1" :tab="submitDialogText === '1' ? '新增用户' : submitDialogText === '2' ? '修改信息' : ''"><a-form:label="{ span: 12, offset: 24 }"layout="horizontal":rules="rules":model="submitForm"style="padding: 15px 0 0 60px"><a-row><a-col :span="20"><a-form-item ref="adminName" label="用户账号" name="adminName"><a-input v-model:value="submitForm.adminName" placeholder="请输入账号" /></a-form-item></a-col><a-col :span="20"><a-form-item ref="adminPwd" label="用户密码" name="adminPwd"><a-input v-model:value="submitForm.adminPwd" placeholder="请

http://www.ppmy.cn/news/1435834.html

相关文章

Android Studio实现内容丰富的安卓养老平台

获取源码请点击文章末尾QQ名片联系&#xff0c;源码不免费&#xff0c;尊重创作&#xff0c;尊重劳动 158安卓养老 1.开发环境 后端用springboot框架&#xff0c;安卓的用android studio开发android stuido3.6 jak1.8 idea mysql tomcat 2.功能介绍 安卓端&#xff1a; 1.注册登…

【安卓13】解决带GMS编译报super分区空间不足错误

1、错误信息 2、解决方案 不同供应商修改分区大小的文件路径不一样&#xff0c;但是万变不离其宗&#xff0c;根据报错信息全局搜索关键词BOARD_SUPER_PARTITION_SIZE 这里以RK供应商和AML供应商修改为例&#xff1a; &#xff08;1&#xff09;RK改法&#xff1a; 根目录下…

【前端】vue数组去重的3种方法

提示&#xff1a;文章写完后&#xff0c;目录可以自动生成&#xff0c;如何生成可参考右边的帮助文档 文章目录 前言一、数组去重说明二、Vue数组去重的3种方法 前言 随着开发语言及人工智能工具的普及&#xff0c;使得越来越多的人会主动学习使用一些开发工具&#xff0c;本文…

安信可 ESP_01SWIFI模块的使用 (电脑通过usb转tll模块连接wifi模块进行调试)

一&#xff1a;需要用到的模块 &#xff08;1&#xff09;安信可的ESP_01wifi模块 ESP-01是深圳安信可科技基于ESP8266芯片开发的串口wifi模块&#xff0c;模组集成了透传功能&#xff0c;即买即用&#xff0c;支持串口指令集&#xff0c;用户通过串口即可实现网络访问…

kafka可视化工具Kafka Tool安装使用

kafka可视化工具Kafka Tool安装使用 Kafka Tool是一款 Kafka 的可视化客户端工具&#xff0c;可以非常方便的查看 Topic 的队列信息、消费者信息以及 kafka 节点信息。 这款软件支持在 Windows、Mac 和 Linux 上面运行&#xff0c;我们到其官网选择合适的版本下载安装即可&am…

【C++庖丁解牛】C++11---统一的列表初始化 | auto | decltype | nullptr | STL中一些变化

&#x1f341;你好&#xff0c;我是 RO-BERRY &#x1f4d7; 致力于C、C、数据结构、TCP/IP、数据库等等一系列知识 &#x1f384;感谢你的陪伴与支持 &#xff0c;故事既有了开头&#xff0c;就要画上一个完美的句号&#xff0c;让我们一起加油 目录 1. C11简介2. 统一的列表…

【数据库】Oracle11g与Oceanbase3.2.3对比

一、数据库体系结构对比 数据库的体系结构是从某一个角度来分析和考察数据库的组成、工作过程与原理&#xff0c;以及数据在数据库中的组织与管理机制。 Oracle11g作为传统关系数据库的代表、Oceanbase作为分布式关系数据库的代表&#xff0c;体系结构上的设计差别很大。 &a…

C语言如何⽤指针为函数传递数组?

一、问题 如何⽤指针为函数传递数组呢&#xff1f; 二、解答 我们可以知道数组名就是数组的⾸地址&#xff0c;当实参向形参传递数组名时&#xff0c;实际上就是传递数组的地址&#xff0c;当形参得到该地址后&#xff0c;就与主调函数中的实参指向同⼀数组。 那么在被调函数中…