uniapp-商城-63-后台 商品列表(分类展示商品的删除)

        商品列表中的数据需要进行状态管理,如上架、下架、删除和修改等操作。对于存在错误或后期需要重新上传的商品,可以通过删除操作进行处理。

        具体到商品删除功能的实现,其基本流程如下:用户在前端页面点击删除按钮后,系统会调用后端接口,将对应商品数据从数据库中移除。

        文章介绍了商品列表状态管理的实现,特别是商品删除功能的具体流程。用户在前端点击删除按钮后,系统调用后端接口,从数据库中移除对应商品数据。删除操作包括确认提示和权限验证,确保只有具有管理权限的用户才能执行删除。删除后,页面会更新商品列表,避免频繁调用数据库。此外,文章还提到了未来可能添加上架和下架按钮,进一步完善商品管理功能。代码部分展示了删除和修改按钮的实现,以及相关的云对象数据处理逻辑。整体设计旨在提升商品管理的灵活性和安全性。

1、页面布局

存在 删除和修改,以后还可以添加上架和下架的按钮。

2、代码删除和修改的按钮

                        <view class="info">
                            <!-- 编辑修改 -->
                            <view class="icon" @click="clickEdit(row._id)">
                                <u-icon name="edit-pen" size="25"></u-icon>
                            </view>
                            <!-- 删除该商品 -->
                            <view class="icon" @click="clickRemove(row._id)">
                                <u-icon name="trash" size="25"></u-icon>
                            </view>
                        </view>

3、删除动作:clickRemove

3.1、给出删除的确认判断

            //删除某一个商品clickRemove(id){uni.showModal({title:"是否确认删除",success:res=>{if(res.confirm){this.removeGoods(id)}}})},//删除数据async removeGoods(id){let res =await goodsCloudObj.remove(id);					if(res.code==-1){uni.showToast({title:res.msg,icon:"error"})return;}		this.getGoodsList();},

3.2 调用删除数据的云对象 数据处理

let res =await goodsCloudObj.remove(id);   

const goodsCloudObj = uniCloud.importObject("green-mall-goods")

4、云对象数据处理

const goodsCloudObj = uniCloud.importObject("green-mall-goods")

4.1 代码分析

	// 接收传来的参数 id,对该id删除async remove(id) {if (!this.userInfo.uid) return {msg: "没有权限",code: -1};if (!this.userInfo.role.includes('manage')) return {msg: "没有删除权限",code: -1};let res = await db.collection("green-mall-goods").doc(id).remove();return res;},

5、页面逻辑代码

<template><view class="goodsList"><!-- 添加一个增加按钮,通过这里也可以跳转到新增商品的页面 --><navigator url="./add" class="row add"><view class="left"><!-- 一个按钮 u-icon  +  --><u-icon name="plus" color="#576b95" size="22"></u-icon><text class="text">新增商品</text></view></navigator><!-- 对商品列表goodsList 进行循环展示 --><view class="row" v-for="item in goodsList" :key="item._id"><view class="title"><!-- 标题栏显示 商品类别名https://uniapp.dcloud.net.cn/component/uniui/uni-section.html#%E4%BB%8B%E7%BB%8D --><uni-section :title="item.name" type="line"></uni-section></view><!-- 下面是该类下的商品 循环展示 在该类商品的 proGroup 列表中--><view class="goodsRow" v-for="row in item.proGroup" :key="row._id"><view class="view"><!-- 左边显示商品缩略图 --><view class="left"><!-- 如果存在就显示图的第一张【0】,不存在就显示默认图 --><image v-if="row.thumb.length" class="pic" :src="row.thumb[0].url" mode="aspectFill"></image><image v-else class="pic" src="../../static/images/logo.png" mode="aspectFill"></image></view><!-- 右边显示商品信息 --><view class="right"><!-- 显示名字,没有描述信息显示 --><view class="top">{{row.name}}</view><view class="info"><!-- 编辑修改 --><view class="icon" @click="clickEdit(row._id)"><u-icon name="edit-pen" size="25"></u-icon></view><!-- 删除该商品 --><view class="icon" @click="clickRemove(row._id)"><u-icon name="trash" size="25"></u-icon></view></view></view></view></view></view></view>
</template><script>const goodsCloudObj = uniCloud.importObject("green-mall-goods")export default {data() {return {goodsList:[]};},onShow() {this.isManage();this.getGoodsList();},methods: {//点击跳转到修改页面clickEdit(id){				uni.navigateTo({url:"./add?id="+id})},//删除某一个商品clickRemove(id){uni.showModal({title:"是否确认删除",success:res=>{if(res.confirm){this.removeGoods(id)}}})},//删除数据async removeGoods(id){let res =await goodsCloudObj.remove(id);					if(res.code==-1){uni.showToast({title:res.msg,icon:"error"})return;}		this.getGoodsList();//删除后,还要更新表,间接更新页面的展示,但最好的是更新表,不要去拉数据库的值,避免多次使用云数据库 要钱呀。},//获取商品列表async getGoodsList() {let res =await goodsCloudObj.getList();console.log(res);this.goodsList = res}}}
</script><style lang="scss" scoped>.goodsList {padding: 30rpx;.row {border-bottom: 1px solid #ededed;padding: 25rpx 0;.title {margin-left: -20rpx;}.goodsRow {.view {display: flex;padding: 10rpx 0;@include flex-box();.left {width: 150rpx;height: 150rpx;.pic {width: 100%;height: 100%;border-radius: 10rpx;}}.right {flex: 1;padding-left: 20rpx;display: flex;justify-content: space-between;flex-direction: column;height: 150rpx;.top {font-size: 36rpx;font-weight: 600;}.info {display: flex;.icon {padding: 6rpx;}}}}}}.row.add {.left {color: $brand-theme-color-aux;@include flex-box-set(start);.text {font-size: 36rpx;padding-left: 10rpx;}}}}
</style>

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

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

相关文章

学习设计模式《十》——代理模式

一、基础概念 代理模式的本质【控制对象访问】&#xff1b; 代理模式的定义&#xff1a;为其他对象提供一种代理以控制对这个对象的访问&#xff1b; 代理模式的功能&#xff1a;代理模式是通过创建一个代理对象&#xff0c;用这个代理对象去代表真实的对象&#xff1b;客户端得…

阿里云web端直播(前端部分)

阿里云&#xff1a;Web播放器快速接入_视频点播(VOD)-阿里云帮助中心 import Aliplayer from aliyun-aliplayerimport aliyun-aliplayer/build/skins/default/aliplayer-min.css<div id"J_prismPlayer" style"width: 300px; height: 300px;" />var …

深入解析OrientDB:多模型数据库的技术优势与实际应用

OrientDB 是一款开源的多模型 NoSQL 数据库&#xff0c;融合了文档数据库、图数据库和对象数据库的特性。它不仅支持灵活的数据建模&#xff0c;还提供了高性能的查询能力&#xff0c;适用于社交网络、物联网、内容管理等场景。本文详细探讨 OrientDB 的核心特性、应用场景&…

STM32控制电机

初始化时钟&#xff1a;在 STM32 的程序中&#xff0c;初始化系统时钟&#xff0c;一般会使用 RCC&#xff08;Reset and Clock Control&#xff09;相关函数来配置时钟。例如&#xff0c;对于 STM32F103 系列&#xff0c;可能会使用 RCC_APB2PeriphClockCmd 函数来使能 GPIO 和…

(05)数字化转型之生产制造:从通常的离散制造到柔性化生产的全景指南

当今制造业正经历着前所未有的数字化变革&#xff0c;从传统的离散制造到流程制造&#xff0c;再到新兴的项目制造和柔性制造&#xff0c;各种生产模式都在加速向智能化方向演进。本文将系统性地介绍制造业生产管理的完整体系&#xff0c;为企业数字化转型提供全面的方法论和实…

龙虎榜——20250520

上证指数今天缩量向上&#xff0c;个股涨多跌少&#xff0c;大盘股和小盘股总体表现都还可以。 深证同样缩量上涨&#xff0c;向上补缺口的概率增大。 2025年5月20日龙虎榜行业方向分析 宠物经济&#xff08;消费升级政策催化&#xff09; • 代表标的&#xff1a;天元宠物、…

CVE-2022-22978源码分析与漏洞复现

漏洞概述 CVE-2022-22978 是 Spring Security 框架中的一个高危认证绕过漏洞&#xff0c;影响版本包括 Spring Security 5.5.x < 5.5.7、5.6.x < 5.6.4 及更早的不受支持版本。攻击者可通过构造包含换行符&#xff08;如 %0a&#xff09;的 URL 路径&#xff0c;绕过正则…

PostGIS实现栅格数据入库【raster2pgsql】

raster2pgsql使用与最佳实践 一、工具概述 raster2pgsql是PostGIS提供的命令行工具,用于将GDAL支持的栅格格式(如GeoTIFF、JPEG、PNG等)导入PostgreSQL数据库,支持批量加载、分块切片、创建空间索引及金字塔概览,是栅格数据入库的核心工具。 二、核心功能与典型用法 1…

Redis企业级开发实战:核心应用场景与最佳实践

引言 Redis&#xff08;Remote Dictionary Server&#xff09;作为一款高性能的内存数据库&#xff0c;在企业级开发中扮演着至关重要的角色。无论是缓存加速、分布式锁、实时统计&#xff0c;还是消息队列&#xff0c;Redis都能以极低的延迟和极高的吞吐量满足业务需求。本文…

深入解析Spring Boot与Spring Cloud在微服务架构中的实践

深入解析Spring Boot与Spring Cloud在微服务架构中的实践 引言 随着云计算和分布式系统的快速发展&#xff0c;微服务架构已成为现代软件开发的主流模式。Spring Boot和Spring Cloud作为Java生态中微服务开发的核心框架&#xff0c;为开发者提供了强大的工具和组件&#xff0…

AI量化交易是什么?它是如何重塑金融世界的?

第一章&#xff1a;证券交易的进化之路 1.1 从喊价到代码&#xff1a;交易方式的革命性转变 在电子交易普及之前&#xff0c;证券交易依赖于交易所内的公开喊价系统。交易员通过手势、喊话甚至身体语言传递买卖信息&#xff0c;这种模式虽然直观&#xff0c;但效率低下且容易…

芯驰科技与安波福联合举办技术研讨会,深化智能汽车领域合作交流

5月15日&#xff0c;芯驰科技与全球移动出行技术解决方案供应商安波福&#xff08;Aptiv&#xff09;在上海联合举办以“芯智融合&#xff0c;共赢未来”为主题的技术研讨会。会上&#xff0c;双方聚焦智能座舱与智能车控的发展趋势&#xff0c;展开深入交流与探讨&#xff0c;…

大数据Spark(五十九):Standalone集群部署

文章目录 Standalone集群部署 一、节点划分 二、搭建Standalone集群 1、将下载好的Spark安装包上传解压 2、配饰spark-env.sh 3、配置workers 4、将配置好的安装包发送到node2、node3节点上 5、启动Standalone集群 三、提交任务测试 Standalone集群部署 Standalone 模…

Feign异步模式丢失上下文问题

Feign异步模式丢失上下文问题 问题描述 当我们使用异步对我们代码进行操作优化时&#xff0c;代码中使用了RequestContextHolder去获取上下文的数据&#xff0c;当我们执行原来可以执行的业务时发现报了空指针异常或数据为空&#xff0c;这是为什么呢&#xff1f; 原理解释 …

JavaScript作用域和作用域链

在JavaScript中&#xff0c;作用域和作用域链是理解代码执行和变量访问的关键概念。它们决定了变量和函数在代码中的可见性和生命周期。 一、作用域&#xff08;Scope&#xff09; &#xff08;一&#xff09;什么是作用域&#xff1f; 作用域是在运行时代码中的某些特定部分…

人工智能的“歧视”:“她数据”在算法运行中隐形

纵观人类的发展史&#xff0c;每一次科技进步都将对性别平等产生深刻影响。尤其是当下&#xff0c;人们对于借助人工智能技术快速发展来弥合性别不平等寄予厚望。 但很多人没想过&#xff0c;人工智能技术本身是客观中立、不存在“算法歧视”“性别偏见的吗&#xff1f; 弗吉…

设备全生命周期管理:从采购到报废的数字化闭环方案

在当今数字化时代&#xff0c;企业对设备的管理已不再局限于简单的维护与修理&#xff0c;而是追求从采购到报废的全生命周期数字化闭环管理。易点易动设备管理系统&#xff0c;正是这一趋势下的佼佼者&#xff0c;它为企业提供了一套高效便捷的设备管理解决方案。 采购阶段&a…

React中useState中更新是同步的还是异步的?

文章目录 前言一、useState 的基本用法二、useState 的更新机制1. 内部状态管理2. 状态初始化3. 状态更新 三、useState 的更新频率与异步行为1. 异步更新与批量更新2. 为什么需要异步更新&#xff1f; 四、如何正确处理 useState 的更新1. 使用回调函数形式的更新2. 理解异步更…

FEKO许可证与其他电磁仿真软件的比较

在电磁仿真领域&#xff0c;众多软件工具竞相争艳&#xff0c;而FEKO软件及其许可证制度在其中独树一帜。本文将对比FEKO许可证与其他电磁仿真软件&#xff0c;突出FEKO在许可证方面的卓越性能与独特优势&#xff0c;帮助您做出明智的选择。 一、许可证成本与价值比较 相较于其…

绿色云计算:数字化转型与可持续发展的完美融合

目录 引言 绿色云计算的概念与定义 云计算的环境影响与绿色云计算的重要性 绿色云计算的技术实践与策略 绿色云计算的案例研究与最佳实践 绿色云计算的挑战与限制 绿色云计算的未来趋势与预测 结论与展望 引言 随着云计算技术的迅猛发展和广泛应用&#xff0c;其环境影…