Vue.js 案例——商品管理

一.需要做出的效果图:

二.实现的步骤

首先,先建一个项目,命名Table在Table项目中的components里新建一个MyTable.vue文件

第二步,在原有的 HelloWorld.vue中写入代码。

HelloWorld.vue代码如下:

<script setup>
import { ref } from 'vue'defineProps({msg: String,
})const count = ref(0)
</script><template><h1>{{ msg }}</h1><div class="card"><button type="button" @click="count++">count is {{ count }}</button><p>Edit<code>components/HelloWorld.vue</code> to test HMR</p></div><p>Check out<a href="https://vuejs.org/guide/quick-start.html#local" target="_blank">create-vue</a>, the official Vue + Vite starter</p><p>Install<a href="https://github.com/johnsoncodehk/volar" target="_blank">Volar</a>in your IDE for a better DX</p><p class="read-the-docs">Click on the Vite and Vue logos to learn more</p>
</template><style scoped>
.read-the-docs {color: #888;
}
</style>

MyTable.vue代码如下:

<template><table class="table table-striped table-bordered"><!-- 表格标题区域 --><thead><tr><slot name="header"></slot></tr></thead><!-- 表格主体区域 --><tbody><tr v-for="(item, index) in goodsList" :key="item.id"><slot name="body" :row="item" :index="index"></slot></tr></tbody></table>
</template><script setup>
const props = defineProps({goodsList: {type: Array,required: true,default: []}
})
</script>

在App.vue中写入代码:

<template><h4>商品管理</h4><MyTable :goodsList="goodsList"><template v-slot:header><th scope="col">#</th><th scope="col">商品名称</th><th scope="col">价格</th><th scope="col">标签</th><th scope="col">操作</th></template><template #body="{ row, index }"><td>{{ index + 1 }}</td><td>{{ row.goods_name }}</td><td>¥{{ row.goods_price }}</td><td><input type="text" v-if="row.inputVisible" class="form-control form-control-sm ipt-tag" v-focusv-model="row.inputValue" @keyup.esc="row.inputValue = ''"@blur="onInputConfig(row)"@keyup.enter="onInputConfig(row)"/><button class="btn btn-outline-primary rounded-pill" v-else @click="row.inputVisible = true">+Tag</button><span class="btn btn-outline-dark" v-for="item in row.tags" :key="item">{{ item }}</span></td><td><button type="button" class="btn btn-outline-danger btn-sm" @click="onRemove(row.id)">删除</button></td></template></MyTable>
</template><script setup>
import MyTable from './components/MyTable.vue'import { ref } from 'vue'const goodsList = ref([{id: 1,goods_name: '夏季专柜同款女鞋',goods_price: 298,tags: ['舒适', '透气'],inputVisible: false,inputValue: ''},{id: 2,goods_name: '冬季保暖女士休闲雪地靴 舒适加绒防水短靴 防滑棉鞋',goods_price: 89,tags: ['保暖', '防滑'],inputVisible: false,inputValue: ''},{id: 3,goods_name: '秋冬新款女士毛衣 套头宽松针织衫 简约上衣',goods_price: 199,tags: ['秋冬', '毛衣'],inputVisible: false,inputValue: ''},{id: 4,goods_name: '2023春秋装新款大码女装 衬衫 上衣',goods_price: 19,tags: ['雪纺衫', '打底'],inputVisible: false,inputValue: ''},{id: 5,goods_name: '长款长袖圆领女士毛衣 2022秋装新款假两件连衣裙',goods_price: 178,tags: ['圆领', '连衣裙'],inputVisible: false,inputValue: ''}
])const onRemove = id => {goodsList.value = goodsList.value.filter(item => item.id != id)
}const vFocus = el => { el.focus() }const onInputConfig = row => {const val = row.inputValuerow.inputValue = ''row.inputVisible = falseif (!val || row.tags.indexOf(val) !== -1) {return}row.tags.push(val)
}
</script><style scoped>
th {text-align: center;
}
td {line-height: 30px;
}
.ipt-tag {width: 80px;display: inline;
}
input, span, button {margin-right: 10px;
}
</style>

最后,修改main.js的代码:

import { createApp } from 'vue'
import './bootstrap.css'
import App from './App.vue'createApp(App).mount('#app')

三.运行结果

ctrl+s保存,运行其结果:

点击+Tag可以添加不同的标签,例如:

点击删除也可以删除该行,删除如上第一行,如下所示:

今天就分享到此,感谢预览~

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/web/39963.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

KumiaoQQ机器人框架源码

源码介绍 酷喵机器人框架基于PC协议与MGCH的结合&#xff0c;MGCH即 MiraiGO-CQhttp&#xff08;代码类型&#xff1a;易语言&#xff09;基本的API功能已经实现&#xff0c;具体可自测&#xff08;教程/日志/说明文本已附带&#xff09;开放源码仅供参考学习交流&#xff0c;…

远超美国!中国AI专利数量全球第一!商汤推出面向C端用户大模型“Vimi”,可生成分钟级视频!|AI日报

文章推荐 苹果获得OpenAI董事会观察员职位&#xff01;Runway正筹集新一轮融资&#xff0c;估值40亿美元&#xff01;&#xff5c;AI日报 AI基准测评&#xff08;下&#xff09;&#xff1a;视频生成、代码能力、逻辑推理&#xff0c;AI是否已经超越人类&#xff1f; 联合国…

【linux高级IO(一)】理解五种IO模型

&#x1f493;博主CSDN主页:杭电码农-NEO&#x1f493;   ⏩专栏分类:Linux从入门到精通⏪   &#x1f69a;代码仓库:NEO的学习日记&#x1f69a;   &#x1f339;关注我&#x1faf5;带你学更多操作系统知识   &#x1f51d;&#x1f51d; Linux高级IO 1. 前言2. 重谈对…

kubernetes dashboard安装

1.查看符合自己版本的kubernetes Dashboard 比如我使用的是1.23.0版本 https://github.com/kubernetes/dashboard/releases?page5 对应版本 kubectl apply -f https://raw.githubusercontent.com/kubernetes/dashboard/v2.5.1/aio/deploy/recommended.yaml修改对应的yaml,…

adb不插usb线通过wifi调试

说起做手机开发也有好多年了&#xff0c;说来惭愧&#xff0c;我最近才知道安卓手机是可以不插数据线进行开发调试的。起因是公司近期采购了一批安卓一卡通设备&#xff0c;需要对其进行定制开发APP,但是由于我插USB调试发现没有反应。通过询问厂家才知道可以通过WIFI进行调试。…

请注意,以下这几种操作都会导致流量卡被停用!

最近一段时间&#xff0c;小编经常收到一些反馈&#xff0c;明明是刚办理的手机号还没有用几天就被停用了&#xff0c;今天&#xff0c;这篇文章我们要了解就是手机号被停用的问题。 ​ 对于新办理的手机号会被停用这个问题&#xff0c;主要还是因为运营商为了防止电话诈骗&…

java数据结构集合复习之包装类和泛型

前言: 这是我最一年学习java的一部分的回顾总结 1.包装类 在Java中&#xff0c;由于基本类型不是继承自Object&#xff0c;为了在泛型代码中可以支持基本类型&#xff0c;Java给每个基本类型都对应了一个包装类型。 1.1基本数据类型和对应的包装类 ----—基本数据类型包装类…

ubuntu软件源的两种格式和环境变量

1. ubuntu的/etc是什么目录&#xff1f; 在Ubuntu操作系统中&#xff0c;/etc/是一个特殊的目录&#xff0c;它包含系统的配置文件。这些配置文件用于设置各种系统和应用程序的参数和选项。 一般来说&#xff0c;用户可以在这个目录下找到各种重要的配置文件&#xff0c;如网络…

Web3 ETF的主要功能

Web3 ETF的主要功能可以概括为以下几点&#xff0c;Web3 ETF仍是一项新兴投资产品&#xff0c;其长期表现仍存在不确定性。投资者在投资Web3 ETF之前应仔细研究相关风险&#xff0c;并做好充分的风险评估。北京木奇移动技术有限公司&#xff0c;专业的软件外包开发公司&#xf…

商务办公优选!AOC Q27E3S2商用显示器,打造卓越新体验!

摘要&#xff1a;助办公室一族纵横职场&#xff0c;实现高效舒适办公&#xff01; 在日常商务办公中&#xff0c;对于办公室一族来说总有太多“难难难难难点”&#xff1a;工作任务繁琐&#xff0c;熬夜加班心力交瘁、长时间伏案工作导致颈椎、眼睛等出现问题&#xff0c;职业…

BBA车主,千万别去试驾问界M9

文 | AUTO芯球 作者 | 雷慢&响铃 我劝你啊&#xff0c;千万别去试驾问界M9&#xff0c; 不然啊&#xff0c;可能1个小时50万就没了&#xff0c; 不信你看这个“大冤种”&#xff0c; 他曾经发誓打死不买电车&#xff0c; 考虑了三、四年换宝马X5&#xff0c; 结果谈完…

前端面试题5(前端常见的加密方式)

前端常见的加密方式 在前端进行数据加密主要是为了保护用户的隐私和提升数据传输的安全性。前端数据加密可以采用多种方法&#xff0c;以下是一些常见的加密技术和方法&#xff1a; 1. HTTPS 虽然不是直接的前端加密技术&#xff0c;但HTTPS是保障前端与后端数据传输安全的基…

关于MCU-Cortex M7的存储结构(flash与SRAM)

MCU并没有DDR&#xff0c;所以他把代码存储在flash上&#xff0c;临时变量和栈运行在SRAM上。之所以这么做是因为MCU的cpu频率很低&#xff0c;都是几十MHZ到一二百MHZ&#xff0c;flash的读取速度能够满足cpu 的取指需求&#xff0c;但flash 的写入速度很慢&#xff0c;所以引…

刚办理的手机号被停用,你可能遇到这些问题了!

很多朋友都会遇到手机号被停用的情况&#xff0c;那么你知道你的手机号为什么会被停用吗&#xff1f;接下来&#xff0c;关于手机号被停用的问题&#xff0c;跟着小编一块来了解一下吧。 ​停机的两种形态&#xff1a; 1、第一个是局方停机&#xff0c;即语音、短信和流量都不…

xmind2testcase工具将测试用例从Xmind转为CSV导入禅道

使用xmind编写测试用例&#xff0c;使用xmind2testcase工具将测试用例从Xmind转为CSV导入禅道&#xff0c;便于管理。 1.工具准备 第一步&#xff1a;安装python 第二步&#xff1a;安装xmind2testcase工具 运行-cmd-打开命令提示符弹窗&#xff0c;输入安装命令 安装命令&…

意图数据集HWU、Banking预处理

当谈到意图数据集时&#xff0c;HWU、Banking和Clinc是三个常见的数据集。以下是关于这三个数据集的介绍&#xff1a; 目录 一、数据集介绍 HWU数据集 Banking数据集 Clinc数据集 二、数据集预处理 数据处理 数据存储 数据类别分析 句子长度统计 一、数据集介绍 HW…

AI产品经理能力模型的重点素质:人文素养和灵魂境界

在AI产品经理的能力模型中&#xff0c;我最想提的差异化关键点&#xff0c;就是“人文素养和灵魂境界”。 1 为什么“人文素养和灵魂境界”非常重要&#xff1f; 一、“人文素养和灵魂境界”如何影响AI产品设计&#xff1f; 例1&#xff1a;面对一个具体的AI场景&#xff0…

25考研,数二全程跟的张宇老师请问660(做了一半)880和张宇1000题应该怎么选择?

跟张宇老师&#xff0c;也可以做其他的题集&#xff0c;不一定非要做1000题 我当初考研复习的时候&#xff0c;也听了张宇老师的课程&#xff0c;但是我并没有做1000题 因为1000题对于我来说太难了。做了一章之后&#xff0c;就换成其他的题目了。 对于大家来说&#xff0c;…

ppt接单渠道大公开‼️

PPT 接单主要分两种&#xff1a;PPT 模板投稿和PPT 定制接单&#xff0c;我们先从简单的 PPT 模板投稿说起。 PPT 模板投稿 利用业余时间&#xff0c;做一些 PPT 模板上传到平台&#xff0c;只要有人下载你的模板&#xff0c;你就有收入。如果模板质量高&#xff0c;简直就是一…

【设计模式】观察者模式(定义 | 特点 | Demo入门讲解)

文章目录 定义结构Demo | 代码Subject目标类Observer抽象观察者观察者1 | CPU监听器观察者2 | 内存监听器客户端 | Client 优点适合场景 定义 所谓观察者模式就是你是被观察的那个对象&#xff0c;你爸爸妈妈就是观察者&#xff0c;一天24h盯着你&#xff0c;一旦你不听话&…