vue3 结合 element-plus 框架实现增删改查功能(不连接数据库)
一、效果图
二、代码
2.1、导入依赖(已经安装过node.js)
npm install element-plus --save
注意:要是安装失败,可以使用淘宝镜像进行下载,如下:
2.2、设置淘宝镜像源
由于 npm 原始源在国外,下载速度比较慢,所以最好切换为国内镜像源,这里选择 淘宝镜像源
2.2.1、安装nrm
首先我们来安装一下nrm
,nrm
能够管理npm源
npm install -g nrm --registry https://registry.npmmirror.com/
安装完 nrm
后,可以通过下面的命令来查看当前可用源
nrm ls
运行结果:
2.2.2、设置npm的镜像源
- 查看npm当前镜像源
npm config get registry
设置npm使用淘宝镜像源
npm config set registry https://registry.npmmirror.com/
- 查看结果
2.3、引入(main.ts文件)
import { createApp } from 'vue'
import ElementPlus from 'element-plus'
import 'element-plus/dist/index.css'
import App from './App.vue'
import router from './router' createApp(App).use(ElementPlus).use(router).mount('#app')
2.4、使用(实现curd功能)
<template >
<h2>商品管理</h2>
<div id="big">
<!-- 导入element框架的表格 -->
<el-table :data="tableData" border style="width: 100%">
<el-table-column type="selection" width="55" align="center" />
<el-table-column prop="id" label="商品编号" align="center" />
<el-table-column prop="name" label="名称" align="center" />
<el-table-column prop="price" label="价格" align="center" />
<el-table-column prop="LoadingDate" label="上货日期" align="center" />
<el-table-column prop="isSold" label="是否下架" align="center" #default="scope">
<input type="checkbox" v-model="scope.row.isSold">
</el-table-column>
<el-table-column label="操作" align="center" width="200" #default="scope">
<el-button type="danger" size="small" @click="del(scope.$index)">删除</el-button>
<el-button type="primary" size="small" @click="show(scope.$index,scope.row)">修改</el-button>
<el-button type="info" size="small">详情</el-button>
</el-table-column> </el-table>
</div> <!-- 模式窗口 -->
<fieldset>
<legend>商品详情</legend>
商品编号:<input type="text" placeholder="请输入商品编号" v-model="productInfo.id">
<br /><br />
商品名称:<input type="text" placeholder="请输入商品名称" v-model="productInfo.name">
<br /><br />
商品价格:<input type="number" placeholder="请输入商品价格" v-model="productInfo.price">
<br /><br />
上货日期:<input type="date" v-model="productInfo.LoadingDate">
<br /><br />
是否下架:<input type="radio" value="true" name="dates" v-model="productInfo.isSold"> 是
<input type="radio" value="false" name="dates" checked v-model="productInfo.isSold"> 否
<br /><br /> <el-button type="success" @click="add()">添加</el-button>
<el-button type="primary" @click="update()">修改</el-button>
<el-button type="danger">批量删除</el-button> </fieldset> </template>
<script lang="ts">
import { reactive } from 'vue'; export default {
setup() {
// 定义要渲染到页面的初始数据
const tableData = reactive([
{
id: "201300001",
name: '农夫山泉',
price: "1.2",
LoadingDate: "2013-01-07",
isSold: "true"
},
{
id: "201300002",
name: '百岁山',
price: "3.5",
LoadingDate: "2014-09-21",
isSold: "true"
},
{
id: "201300003",
name: '棒棒糖',
price: "1.5",
LoadingDate: "2015-02-01",
isSold: "false"
},
{
id: "201300004",
name: '冰激凌',
price: "8",
LoadingDate: "2019-06-13",
isSold: "true"
},
{
id: "201300005",
name: '蛋糕',
price: "66",
LoadingDate: "2021-11-12",
isSold: "false"
},
]); // 文本框双向绑定的值
const productInfo = reactive({ id: "", name: "", price: "", LoadingDate: "", isSold: "" }); // 删除功能,传索引行数
function del(index: number) {
// splice方法,传两个参数:第几行开始,删除多少条(如果未规定此参数,则删除从 index 开始到原数组结尾的所有元素)
tableData.splice(index, 1)
} // 添加功能
function add() {
// 定义对象,存储从文本框获取到的数据
const addArray = {
id: productInfo.id,
name: productInfo.name,
price: productInfo.price,
LoadingDate: productInfo.LoadingDate,
isSold: productInfo.isSold,
}
// push方法,添加一条数据到初始数据的数组中
tableData.push(addArray);
} // 点击表格上的修改按钮,把该行信息显示到文本框里
// 传该行的下标(index)与该行(row)信息过来,渲染文本框
// 注意:要是index参数虽然在这里看似没有用上,但是不写index参数会不实现功能的!!!!
function show(index:number,row:any){
productInfo.id = row.id;
productInfo.name = row.name;
productInfo.price = row.price;
productInfo.LoadingDate = row.LoadingDate;
productInfo.isSold = row.isSold;
} // 修改功能
function update() {
// 也是一样的定义一个对象,用于存储文本框的数据
const updateArray = {
id: productInfo.id,
name: productInfo.name,
price: productInfo.price,
LoadingDate: productInfo.LoadingDate,
isSold: productInfo.isSold,
}
// 返回传入一个测试条件(函数)符合条件的数组第一个元素位置。
// 大意就是:传入一个参数(id),让id与文本框里的id对比,找到两个id相同的哪个元素,保存
const index = tableData.findIndex(o => o.id === updateArray.id);
// 然后删掉index找到的那一条元素,先删,然后再添加文本框里面的数据到数组中
// splice方法的第三个参数是添加一条新元素到数组里
tableData.splice(index, 1, updateArray)
} // 暴露方法到页面上
return { tableData, del, productInfo,add,show,update }
}
}
</script>
<style scoped>
h2 {
text-align: center;
} #big {
width: 80%;
margin: auto;
} fieldset {
width: 40%;
margin-left: 10%;
margin-top: 30px;
}
</style>
vue3 结合 element-plus 框架实现增删改查功能(不连接数据库)的更多相关文章
- tp框架的增删改查
首先,我们来看一下tp框架里面的查询方法: 查询有很多种,代码如下: <?php namespace Admin\Controller; use Think\Controller; class ...
- Yii2.0高级框架数据库增删改查的一些操作(转)
yii2.0框架是PHP开发的一个比较高效率的框架,集合了作者的大量心血,下面通过用户为例给大家详解yii2.0高级框架数据库增删改查的一些操作 --------------------------- ...
- Yii2.0高级框架数据库增删改查的一些操作
yii2.0框架是PHP开发的一个比较高效率的框架,集合了作者的大量心血,下面通过用户为例给大家详解yii2.0高级框架数据库增删改查的一些操作 --------------------------- ...
- Entity - 使用EF框架进行增删改查 - 模型先行
模型先行:先创建数据库实体模型,然后再进行数据库的增删改查. 基本步骤是不变的,可参照 <Entity - 使用EF框架进行增删改查 - 数据库先行> 其中的不同是,在创建数据库实体模型的 ...
- springmvc+spring3+hibernate4框架简单整合,简单实现增删改查功能
转自:https://blog.csdn.net/thinkingcao/article/details/52472252 C 所用到的jar包 数据库表 数据库表就不用教大家了,一张表,很简 ...
- ssm 框架实现增删改查CRUD操作(Spring + SpringMVC + Mybatis 实现增删改查)
ssm 框架实现增删改查 SpringBoot 项目整合 一.项目准备 1.1 ssm 框架环境搭建 1.2 项目结构图如下 1.3 数据表结构图如下 1.4 运行结果 二.项目实现 1. Emplo ...
- BootstrapTable与KnockoutJS相结合实现增删改查功能
http://www.jb51.net/article/83910.htm KnockoutJS是一个JavaScript实现的MVVM框架.通过本文给大家介绍BootstrapTable与Knock ...
- JQuery Easyui/TopJUI 用JS创建数据表格并实现增删改查功能
JQuery Easyui/TopJUI 用JS创建数据表格并实现增删改查功能 html <table id="productDg"></table> &l ...
- jQuery EasyUI/TopJUI实现数据表格的增删改查功能(不写js,纯HTML实现!!!)
jQuery EasyUI/TopJUI实现数据表格的增删改查功能(不写js,纯HTML实现!!!) 废话不多说,直接贴上代码 <table id="configEdatagrid&q ...
- 【BootStrap】--具有增删改查功能的表格Demo
[BootStrap]--具有增删改查功能的表格Demo 目录(?)[+] 前言 版本一 样式 代码 版本二 样式 代码 版本三 样式 代码 总结 前言 bootstrap的表格样式,有类似EasyU ...
随机推荐
- flutter系列之:移动端的手势基础GestureDetector
目录 简介 Pointers和Listener GestureDetector 手势冲突 总结 简介 移动的和PC端有什么不同呢?同样的H5可以运行在APP端,也可以运行在PC端.两者最大的区别就是移 ...
- 微服务网关Gateway实践总结
有多少请求,被网关截胡: 一.Gateway简介 微服务架构中,网关服务通常提供动态路由,以及流量控制与请求识别等核心能力,在之前的篇幅中有说过Zuul组件的使用流程,但是当下Gateway组件是更常 ...
- KingbaseES 如何把一个schema下的所有对象访问权限授权给其他用户
用户需求:新建一个用户 B,需要能够查询A用户的所有表,并且对以后新建的表也要有select权限. 问题分析:对于现有的表可以通过动态sql批量进行授权,但是未来新建的表要如何进行授权呢? 查询了帮助 ...
- Linux下自动删除过期备份和自动异地备份
每天自动删除过期备份 首先编写一个简单的Shell脚本DeleteExpireBackup.sh: #!/bin/bash # 修改需要删除的路径 location="/database/b ...
- Redis 的大 Key 对持久化有什么影响?
作者:小林coding 图解计算机基础(操作系统.计算机网络.计算机组成.数据库等)网站:https://xiaolincoding.com 大家好,我是小林. 上周有位读者字节一二面时,被问到:Re ...
- windows下 Rust 环境配置
搭建 Visual Studio Code 开发环境 首先,需要安装最新版的 Rust 编译工具和 Visual Studio Code. Rust 编译工具:https://www.rust-lan ...
- Elastic App Search 入门
官方文档地址:https://swiftype.com/documentation/app-search/getting-started Elastic App Search 架构图: 它的特点是帮助 ...
- ingress-nginx自带认证功能【nginx自带】
问题:通过nginx可以给某些web网站设置登录使用的用户名和密码,现在网站部署到k8s中,通过配置nginx-ingress->service->pod来访问的,怎么给这个网站再配置上访 ...
- Kubernetes角色访问控制RBAC和权限规则(Role+ClusterRole)
文章转载自:https://blog.csdn.net/BigData_Mining/article/details/88849696 基于角色的访问控制(Role-Based Access Cont ...
- Docker — 从入门到实践(v1.2.0)
在线地址:https://www.bookstack.cn/read/docker_practice-1.2.0 pdf文件下载地址:https://files.cnblogs.com/files/s ...