当前位置: 首页 > article >正文

uniapp-商城-49-后台 分类数据的生成(方法加精)

        前面47和48章节对代码进行了分析和解读。但是还是又很多地方需要加精。如方法中的注释,执行中的提示,特别是添加和修改中,相关值的初始化,另外还有页面的刷新,并且在页面刷新时的异步操作 同步化实现。

但这里唯一不好的是 使用的数据传输在页面上进行的。推荐可以修改为云对象的方式。

不妨来看看代码:

<template><view class="category"><!-- 分类管理 --><!-- 第二步 --><!-- 这里的row add 中间有一个空格,下面样式就可以写成 .row.add --><view class="row add" @click="clickAdd"><view class="left"><!-- https://uviewui.com/components/icon.html 使用的是uview的icon --><u-icon name="plus" color="#576b95" size="22"></u-icon><text class="text">新增分类</text></view></view><!-- 第一步 --><view class="row" v-for="(item,index) in categoryList" :key="item._id"><view class="left"><!-- 分类名称 --><view class="name">{{item.name}}</view></view><view class="right"><!-- 编辑和删除图标 --><!-- 使用的u-icon组件,自动生成一个class名字为 u-icon --><u-icon name="edit-pen" size="26" color="#576b95" @click="updateData(item._id,item.name)"></u-icon><u-icon name="trash" size="26" color="#EC544F" @click="deleteData(item._id)"></u-icon></view></view><!-- 第三步 --><!-- https://uniapp.dcloud.net.cn/component/uniui/uni-popup.html 使用这里弹出层 官方  使用的是输入框示例 --><!-- 下载安装相应的组件  ref来获取方法进行相应的动作,uview 是通过show 来完成相应的动作 --><!-- @confirm 这是一个回调函数,我们通过这就知道输入的到底是什么 --><uni-popup ref="inputDialog"><uni-popup-dialog mode="input" :value="iptValue" placeholder="请输入分类名称" title="分类名称"@confirm="dialogConfirm"></uni-popup-dialog></uni-popup></view>
</template><script>const db = uniCloud.database()export default {data() {return {// categoryList:[{_id:1,name:"水果"},{_id:2,name:"肉类"}],// 上面是模拟数据  实际写的是空 下面这样的  真实数据来之云存储,并给该变量赋值categoryList: [],iptValue: "",updateID: null};},onLoad() {this.getCateGory()},methods: {//获取数据库中的分类getCateGory() {db.collection("green-mall-categories").get().then(res => {// console.log(res);this.categoryList = res.result.data})},//添加分类clickAdd() {// 值的初始化this.iptValue = "" // 防止修改后,该值不为空,那么新增就先置为空。this.updateID = null; //防止修改后,该值不为空,那么新增就先置为空。//https://uniapp.dcloud.net.cn/component/uniui/uni-popup.html  使用的是Popup Methods中open  // 这里的inputDialog 的属性是ref在uni-popup中// 所以这里使用的是 this.$refs.inputDialog.open();this.$refs.inputDialog.open();},//点击确认按钮   这里的name 是我们green-mall-categories 表里提供的keyasync dialogConfirm(e) {// popup的处理,解决添加时值未空的操作,应该popup有判断,但是自己还是做一个if (!e) {this.warningshow("分类名称为空");return}// 修改的判断,没有变化也不要请求数据库,这里上线了都流量费呀if (this.iptValue == e) {this.warningshow("分类名称未修改");return}//下面才是真的操作if (this.updateID) {//这里 有一个异步同步化的操作,满满的知识载荷await db.collection("green-mall-categories").doc(this.updateID).update({name: e}).then(res => {this.warningshow("修改分类成功");this.getCateGory();})} else {await db.collection("green-mall-categories").add({name: e}).then(res => {this.warningshow("添加分类成功");this.getCateGory();})}//把输入或修改的值改为空,以免下一次在调用就还有上一次的值// this.iptValue = "";},//修改一条分类updateData(id, name) {this.iptValue = name;this.updateID = id;this.$refs.inputDialog.open();},//删除一条分类deleteData(id) {uni.showModal({content: "是否删除该分类?",success: res => {if (res.confirm) {db.collection("green-mall-categories").doc(id).remove().then(res => {this.warningshow("删除分类成功");this.getCateGory();})}},fail: err => {console.log(err);}})},//弹窗提示,人性化的提示。warningshow(str) {uni.showToast({title: str})}}}
</script><style lang="scss">.category {padding: 30rpx;.row {@include flex-box();border-bottom: 1px solid $border-color-light;padding: 26rpx 0;.left {font-size: 34rpx;}.right {@include flex-box();//使用的u-icon组件,自动生成一个class名字为 u-icon .u-icon {margin-left: 30rpx;}}}// 对应的class 就是 row add.row.add {.left {color: $brand-theme-color-aux;@include flex-box();.text {font-size: 36rpx;padding-left: 10rpx;}}}}
</style>

相关文章:

uniapp-商城-49-后台 分类数据的生成(方法加精)

前面47和48章节对代码进行了分析和解读。但是还是又很多地方需要加精。如方法中的注释&#xff0c;执行中的提示&#xff0c;特别是添加和修改中&#xff0c;相关值的初始化&#xff0c;另外还有页面的刷新&#xff0c;并且在页面刷新时的异步操作 同步化实现。 但这里唯一不好…...

nginx 配置后端健康检查模块

nginx自带的针对后端节点健康检查的功能比较简单,通过默认自带的ngx_http_proxy_module 模块和ngx_http_upstream_module模块中的参数来完成,当后端节点出现故障时,自动切换到健康节点来提供访问。但是nginx不能事先知道后端节点状态是否健康,后端即使有不健康节点,负载均…...

RS485和RS232 通信配置

RS232 目前硬件上支持RS232的有以下板卡&#xff1a; LubanCat-5IO底板&#xff08;含有RS232x2&#xff09; 7.1. 引脚定义 具体的引脚定义可以参考背面的丝印 LubanCat-5IO底板 引脚定义图 7.2. 跳帽配置 LubanCat-5IO底板 鲁班买5IO底板上的RS485和RS232是共用同一组…...

zst-2001 历年真题 设计模式

设计模式 - 第1题 a 设计模式 - 第2题 一个产品可以产生多个就是抽象&#xff0c;一个就是工厂 比如这样 第二题a是意图 bc: d 设计模式 - 第3题 b 设计模式 - 第4题 类图里全是builder,疯狂暗示 设计模式 - 第5题 aa 设计模式 - 第6题 只有工厂方法是创…...

微软系统 红帽系统 网络故障排查:ping、traceroute、netstat

在微软&#xff08;Windows&#xff09;和红帽&#xff08;Red Hat Enterprise Linux&#xff0c;RHEL&#xff09;等系统中&#xff0c;网络故障排查是确保系统正常运行的重要环节。 ping、traceroute&#xff08;在Windows中为tracert&#xff09;和netstat是三个常用的网络…...

11.多用组合和少继承

11.多用组合和少继承 目录介绍 01.前言思考的介绍 1.1 组合优于继承思考1.2 实际中的案例1.3 思考继承的争议 02.绘图应用程序案例 2.1 案例的背景2.2 用继承实现多形状2.3 用组合实现多形状 03.不同鸟类程序案例 3.1 案例的背景3.2 用继承实现多鸟类3.3 继承的问题暴露3.4 用…...

【AWS+Wordpress】将本地 WordPress 网站部署到AWS

前言 自学笔记&#xff0c;解决问题为主&#xff0c;亲测有效&#xff0c;欢迎补充。 本地开发机&#xff1a;macOS&#xff08;Sequoia 15.0.1&#xff09; 服务器&#xff1a;AWS EC2&#xff08;Amazon Linux 2023&#xff09; 目标&#xff1a;从本地迁移 WordPress 到云…...

鸿蒙NEXT开发动画案例4

1.创建空白项目 2.Page文件夹下面新建Spin.ets文件&#xff0c;代码如下&#xff1a; /*** TODO SpinKit动画组件 - 双粒子旋转缩放动画* author: CSDN-鸿蒙布道师* since: 2025/05/08*/ ComponentV2 export struct SpinFour {// 参数定义Require Param spinSize: number 36…...

Java(day136):Arrays.asList() 方法:如何在 Java 中高效地将数组转化为列表!

前言 在 Java 编程中&#xff0c;数组和集合是两种常用的数据结构。数组是固定大小的容器&#xff0c;而集合则是动态扩展的容器。随着 Java 集合框架的引入&#xff0c;开发者通常更倾向于使用集合类来存储和操作数据&#xff0c;因为集合类提供了更多的功能和灵活性。 然而&a…...

XML语言

XML语言 在开始介绍Mybatis之前&#xff0c;先介绍一下XML语言&#xff0c;XML语言发明最初是用于数据的存储和传输&#xff0c;它是由一个一个的标签嵌套而成 <?xml version"1.0" encoding"UTF-8" ?> <outer> <name>阿伟</name&…...

基于SpringBoot的小区停车位管理系统

作者&#xff1a;计算机学姐 开发技术&#xff1a;SpringBoot、SSM、Vue、MySQL、JSP、ElementUI、Python、小程序等&#xff0c;“文末源码”。 专栏推荐&#xff1a;前后端分离项目源码、SpringBoot项目源码、Vue项目源码、SSM项目源码、微信小程序源码 精品专栏&#xff1a;…...

VR博物馆,足不出户云逛展

VR博物馆概念与特点 定义与由来 VR博物馆&#xff0c;即虚拟现实(Virtual Reality)博物馆&#xff0c;是利用计算机技术、互联网和虚拟现实技术&#xff0c;将实体博物馆及其藏品数字化&#xff0c;实现在虚拟空间中的展示和体验的新型博物馆形式。概念起源于20世纪90年代末&…...

uniapp|实现多终端聊天对话组件、表情选择、消息发送

基于UniApp框架,实现跨平台多终端适配的聊天对话组件开发、表情选择交互设计及消息发送,支持文本与表情混合渲染。 目录 聊天界面静态组件实现消息列表布局消息气泡双向布局辅助元素定位与样式静态数据模拟与扩展性设计表情选择器静态模块浮层实现符号网格排列多端样式适配方…...

73页最佳实践PPT《DeepSeek自学手册-从理论模型训练到实践模型应用》

这份文档是一份关于 DeepSeek 自学手册的详细指南&#xff0c;涵盖了 DeepSeek V3 和 R1 模型的架构、训练方法、性能表现以及使用技巧等内容。它介绍了 DeepSeek V3 作为强大的 MoE 语言模型在数学、代码等任务上的出色表现以及其训练过程中的创新架构如多头潜在注意力和多 To…...

stm32 WDG看门狗

目录 stm32 WDG看门狗一、WDG基础知识1&#xff09;WDG&#xff08;Watchdog&#xff09;看门狗简介 二、IWDG独立看门狗1&#xff09;IWDG键寄存器2&#xff09;IWDG超时时间 三、WWDG窗口看门狗1&#xff09;WWDG框图2&#xff09;WWDG工作特性3&#xff09;WWDG超时时间4&am…...

BUUCTF——Cookie is so stable

BUUCTF——Cookie is so stable 进入靶场 页面有点熟悉 跟之前做过的靶场有点像 先简单看一看靶场信息 有几个功能点 flag.php 随便输了个admin 根据题目提示 应该与cookie有关 抓包看看 构造payload Cookie: PHPSESSIDef0623af2c1a6d2012d57f3529427d52; user{{7*7}}有…...

用go从零构建写一个RPC(仿gRPC,tRPC)--- 版本1(Client端)

这里我们来实现这个RPC的client端 为了实现RPC的效果&#xff0c;我们调用的Hello方法&#xff0c;即server端的方法&#xff0c;应该是由代理来调用&#xff0c;让proxy里面封装网络请求&#xff0c;消息的发送和接受处理。而上一篇文章提到的服务端的代理已经在.rpc.go文件中…...

一文读懂 AI

2022年11月30日&#xff0c;OpenAI发布了ChatGPT&#xff0c;2023年3月15日&#xff0c;GPT-4引发全球轰动&#xff0c;让世界上很多人认识了ai这个词。如今已过去快两年半&#xff0c;AI产品层出不穷&#xff0c;如GPT-4、DeepSeek、Cursor、自动驾驶等&#xff0c;但很多人仍…...

第三天 车联网云架构

一、车联网技术演进与行业变革 1.1 从传统Telematics到智能网联汽车 当我们驾驶着搭载智能网联系统的汽车时,车辆每秒会产生超过1GB的数据流量。这些数据包括: 高精度地图的实时更新ADAS传感器采集的环境信息车载娱乐系统交互数据车辆状态监控信息传统基于2G/3G的Telematic…...

【LeetCode Hot100 | 每日刷题】二叉树的层序遍历

题目&#xff1a; 给你二叉树的根节点 root &#xff0c;返回其节点值的 层序遍历 。 &#xff08;即逐层地&#xff0c;从左到右访问所有节点&#xff09;。 示例 1&#xff1a; 输入&#xff1a;root [3,9,20,null,null,15,7] 输出&#xff1a;[[3],[9,20],[15,7]]示例 2&a…...

Unity垃圾回收(GC)

1.GC的作用&#xff1a;定期释放不再使用的内存空间。 注&#xff1a;C不支持GC&#xff0c;需要手动管理内存&#xff0c;使用new&#xff08;&#xff09;申请内存空间&#xff0c;使用完后通过delete&#xff08;&#xff09;释放掉&#xff0c;但可能出现忘记释放或者指针…...

SpringBoot3集成Oauth2——1(/oauth2/token方法的升级踩坑)

备注&#xff1a;本文适用于你在SpringBoot2.7以前集成过oauth2&#xff0c;并且项目已经正式投入使用的情况&#xff0c;否则&#xff0c;我建议你直接学习或者找资料学习最新的oauth2集成&#xff0c;就不要纠结于老版本的oauth2。 原因&#xff1a;Spring Security 5.x和Sp…...

MySQL 索引与事务详解

目录 一、索引&#xff08;Index&#xff09; 二、事务&#xff08;Transaction&#xff09; 三、总结 一、索引&#xff08;Index&#xff09; 索引的本质&#xff1a;一种数据结构&#xff08;如 BTree、Hash&#xff09;&#xff0c;用于快速定位数据&#xff0c;避免全…...

基于Qt开发的多线程TCP服务端

目录 一、Qt TCP服务端开发环境准备1. 项目配置2. 核心类说明 二、服务端搭建步骤详解步骤1&#xff1a;初始化服务端对象步骤2&#xff1a;启动端口监听步骤3&#xff1a;处理客户端连接 三、数据通信与状态管理1. 数据收发实现2. 客户端状态监控 四、进阶功能扩展1. 多客户端…...

【Debian】关于LubanCat-RK3588s开发板安装Debian的一些事

琐碎的事问题不少&#xff0c;甚至一度让我以为核心坏了 按照指引烧录完Debian11-gnome镜像后启动&#xff0c;此时输出的分辨率不一定匹配显示器&#xff0c;进而导致黑屏&#xff0c;此时需要使用MobaXterm的串口终端以运行一些指令&#xff0c;下载链接用xrandr指令查看显示…...

Python爬虫实战:研究网站动态滑块验证

1. 引言 1.1 研究背景与意义 在当今信息时代,Web 数据的价值日益凸显。通过爬虫技术获取公开数据并进行分析,能够为企业决策、学术研究等提供有力支持。然而,为了防止数据被恶意爬取,许多网站采用了各种反爬机制,其中动态滑块验证是一种常见且有效的方式。动态滑块验证通…...

Centos离线安装mysql、redis、nginx等工具缺乏层层依赖的解决方案

Centos离线安装mysql、redis、nginx等工具缺乏层层依赖的解决方案 引困境yum-utils破局 引 前段时间&#xff0c;有个项目有边缘部署的需求&#xff0c;一台没有的外网的Centos系统服务器&#xff0c;需要先安装jdk&#xff0c;node&#xff0c;mysql&#xff0c;reids&#xf…...

从零开始开发纯血鸿蒙应用之XML解析

从零开始开发纯血鸿蒙应用 〇、前言一、鸿蒙SDK中的 XML API1、ohos.xml2、ohos.convertxml 三、XML 解析实践1、源数据结构2、定义映射关系3、定义接收对象4、获取文章信息 四、总结 〇、前言 在前后端的数据传输方面&#xff0c;论格式化形式&#xff0c;JSON格式自然是首选…...

10.王道_HTTP

1. 互联网时代的诞生 2. HTTP的基本特点 2.1客户端-服务端模型 2.2 无状态协议 2.3 可靠性 2.4 文本协议 3. HTML,CSS和JS 4. HTTP的各个组件 4.1 客户端 4.2 服务端 4.3 代理 5. URI和URL 6. HTTP报文 HTTP报文分为两种——请求报文和响应报文。 6.1 GET请求示例 注意&#…...

解决stm32HAL库使用vscode打开,识别不到头文件及uint8_t等问题

解决stm32HAL库使用vscode打开&#xff0c;识别不到头文件及uint8_t等问题 结论&#xff0c;问题有2问题1问题2解决办法将Keil Assistant自动生成的.vscode目录复制到MDK-ARM上层目录将Keil Assistant自动生成的.vscode目录复制到MDK-ARM上层目录将Keil Assistant自动生成的.vs…...