Vue3初学之商品的增,删,改功能

ops/2025/1/23 17:14:54/

用一个商品的后台管理进行增,删,改的实现。

案例进行学习:

<template><div><el-button type="primary" @click="handleNew">新增商品</el-button><el-table :data="goodsList" style="width: 100%"><el-table-column prop="id" label="商品ID" /><el-table-column prop="name" label="商品名称" /><el-table-column prop="price" label="价格" /><el-table-column prop="stock" label="库存" /><el-table-column fixed="right" label="操作" width="180"><template #default="{row}"><el-button type="text" size="small" @click="handleEdit(row)">编辑</el-button><el-button type="text" size="small" @click="handleDelete(row)">删除</el-button></template></el-table-column></el-table><!-- 新增/编辑商品弹窗 --><el-dialog v-model="dialogVisible" :title="dialogTitle"><el-form :model="form" label-width="100px"><el-form-item label="商品名称"><el-input v-model="form.name" placeholder="请输入商品名称"></el-input></el-form-item><el-form-item label="价格"><el-input-number v-model="form.price" placeholder="请输入价格" :min="0"></el-input-number></el-form-item><el-form-item label="库存"><el-input-number v-model="form.stock" placeholder="请输入库存" :min="0"></el-input-number></el-form-item></el-form><span slot="footer" class="dialog-footer"><el-button @click="dialogVisible = false">取消</el-button><el-button type="primary" @click="handleSubmit">确定</el-button></span></el-dialog></div>
</template><script setup>
import { ref } from 'vue';
import { ElMessageBox } from 'element-plus';const goodsList = ref([{ id: 1, name: '商品1', price: 100, stock: 50 },{ id: 2, name: '商品2', price: 200, stock: 30 }
]);const dialogVisible = ref(false);
const dialogTitle = ref('');
const form = ref({ name: '', price: 0, stock: 0 });// 新增商品
const handleNew = () => {dialogTitle.value = '新增商品';form.value = { name: '', price: 0, stock: 0 };dialogVisible.value = true;
};// 编辑商品
const handleEdit = (row) => {dialogTitle.value = '编辑商品';form.value = { ...row };dialogVisible.value = true;
};// 删除商品
const handleDelete = (row) => {ElMessageBox.confirm('确定要删除该商品吗?', '提示', {confirmButtonText: '确定',cancelButtonText: '取消',type: 'warning'}).then(() => {const index = goodsList.value.findIndex(item => item.id === row.id);goodsList.value.splice(index, 1);});
};// 提交表单
const handleSubmit = () => {if (dialogTitle.value === '新增商品') {const newId = goodsList.value.length + 1;goodsList.value.push({ ...form.value, id: newId });} else {const index = goodsList.value.findIndex(item => item.id === form.value.id);goodsList.value[index] = { ...form.value };}dialogVisible.value = false;
};
</script>

效果:
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述


http://www.ppmy.cn/ops/152516.html

相关文章

实现简单的TCP服务器

首先我们先选择一个端口号用于 TCP 或 UDP 网络通信。如果你运行一个服务或应用程序&#xff0c;监听端口就是通过该端口接收来自客户端的请求。 这里我们选择2048 先在ubuntu系统中输入netstat -anop | grep 2048&#xff0c;会显示以下信息 这代表此时2048端口号没有被占用…

Spring Boot 3.4.x 和 Micrometer 2.0 的结合 案例 以及使用方法

Spring Boot 3.4.x 和 Micrometer 2.0 的结合&#xff0c;主要是为了更好地进行应用性能监控。Micrometer 是一个应用性能监控工具&#xff0c;它可以与 Spring Boot 集成&#xff0c;提供一个统一的度量系统&#xff0c;并与各种监控系统&#xff08;如 Prometheus, Graphite,…

Linux探秘坊-------4.进度条小程序

1.缓冲区 #include <stdio.h> int main() {printf("hello bite!");sleep(2);return 0; }执行此代码后&#xff0c;会 先停顿两秒&#xff0c;再打印出hello bite&#xff0c;但是明明打印在sleep前面&#xff0c;为什么会后打印呢&#xff1f; 因为&#xff…

1.移动零

LeetCode 283. 移动零 1. 题目描述 给定一个数组 nums&#xff0c;编写一个函数将所有 0 移动到数组的末尾&#xff0c;同时保持非零元素的相对顺序。 注意&#xff1a;必须在 原地 对数组进行操作&#xff0c;不得额外分配新数组。 示例 示例 1: 输入: nums [0,1,0,3,1…

试题转excel;word转excel;大风车excel(1.1更新)

更新了大风车excel1.1版本 主要优化在算法层面&#xff1a; 1.0版本试题解析的成功率为95%&#xff0c;现在1.1版本已经优化到解析成功率为99% 一、问题描述 一名教师朋友&#xff0c;偶尔会需要整理一些高质量的题目到excel中 以往都是手动复制搬运&#xff0c;几百道题几…

HippoRAG:受海马体启发的长时记忆模型,提升大语言模型的知识整合能力

论文地址&#xff1a;https://arxiv.org/pdf/2405.14831 1. 背景与挑战 1.1 哺乳动物大脑与长时记忆 进化优势: 哺乳动物的大脑进化出强大的长时记忆系统&#xff0c;能够存储大量关于世界的知识&#xff0c;并不断整合新信息&#xff0c;同时避免灾难性遗忘。知识整合能力: …

代码随想录day15

110. 知道平衡二叉树的概念即可。 /** lc appleetcode.cn id110 langcpp** [110] 平衡二叉树*/// lc codestart /*** Definition for a binary tree node.* struct TreeNode {* int val;* TreeNode *left;* TreeNode *right;* TreeNode() : val(0), left(nul…

AI赋能前端性能工程:突破技术边界,迈向智能化开发

前端性能工程对于用户体验至关重要。一个加载缓慢、反应迟钝的网站会直接导致用户流失&#xff0c;影响业务转化率。然而&#xff0c;在快速迭代的现代前端开发中&#xff0c;我们常常面临着效率瓶颈&#xff1a;代码冗余、资源加载缓慢、渲染性能低下等问题层出不穷。传统的手…