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.pswp.cn/web/80712.shtml
繁體地址,請注明出處:http://hk.pswp.cn/web/80712.shtml
英文地址,請注明出處:http://en.pswp.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;其環境影…