国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

谷粒商城第七天-商品服務之分類管理下的刪除、新增以及修改商品分類

這篇具有很好參考價值的文章主要介紹了谷粒商城第七天-商品服務之分類管理下的刪除、新增以及修改商品分類。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。

目錄

一、總述

1.1 前端思路

1.2 后端思路

二、前端部分

2.1 刪除功能

2.2 新增功能

2.3 修改功能

三、后端部分

3.1 刪除接口

3.2 新增接口

3.3 修改接口

四、總結


一、總述

1.1 前端思路

?刪除和新增以及修改的前端無非就是點擊按鈕,就向后端發(fā)送請求,交與后端真正的執(zhí)行相關操作。

具體來說,就是正確的找到按鈕,合理的綁定好點擊事件,然后處理的方法寫好:使用引入的請求對象,使用請求對象發(fā)送請求

對于刪除操作前和操作后是需要進行消息框提示的,這可以直接使用若依框架提供給我們進行提示。

對于新增和修改都是需要點擊后彈出一個彈窗,新增的話就是在表單輸入信息,然后將信息動態(tài)綁定到數據域中的字段,然后點擊提交將信息提交給后端完成新增操作即可,新增通常有些字段是需要有默認值的,修改和新增差不多,就字段而言的話,就只是某幾個字段的修改,不涉及到默認值什么的,就將修改的幾個字段提交給后端就行了,這點區(qū)別還是次要的,修改最關鍵的就是內容回顯,需要回顯最新的數據,這點需要注意。就是打開彈窗,需要向后端獲取到最新數據,然后綁定到數據域中,由于和表單信息進行了綁定,表單里面的信息就能正常顯示最新信息了。

這里代碼如果要不冗余的話,那個彈窗完全就可以復用,當點擊新增或者是修改按鈕的時候,記錄下當前是什么情況打開的這個彈窗,然后最后點擊提交時按照不同的情況,做不同的處理。

1.2 后端思路

后端就沒什么了,簡單的增刪還有獲取信息接口,具體實現交由MyBatisPlus完成增刪獲取操作。

注意:增刪并不是直接無腦的使用,還是需要配置一些東西的。否則的話,會出現一些小的bug,比較煩躁,下面我會進行說明

二、前端部分

現在還是分類管理,所以不需要創(chuàng)建新的組件,仍然使用原先 顯示三級分類列表的那個組件就行了。下面我將以此介紹增刪改這三個功能的前端實現:

2.1 刪除功能

這個刪除功能的前端邏輯就那樣很簡單:

1. 當點擊刪除按鈕給予提示信息,是否確認刪除

2. 當點擊確認刪除之后,向后端發(fā)送請求,服務器進行刪除

3. 當成功刪除之后,基于刪除成功的提示信息

代碼:

谷粒商城第七天-商品服務之分類管理下的刪除、新增以及修改商品分類,谷粒商城,vue,SpringBoot,vue.js,spring boot,項目

谷粒商城第七天-商品服務之分類管理下的刪除、新增以及修改商品分類,谷粒商城,vue,SpringBoot,vue.js,spring boot,項目

remove(node, data) {
      this.$modal
        .confirm('是否確認刪除類別名稱為"' + data.name + '"的類別?')
        .then(function () {
          var ids = [];
          ids.push(data.catId);
          return deleteCategory(ids);
        })
        .then(() => {
          this.getTreeList();
          this.selectCids.push(data.parentCid);
          this.$modal.msgSuccess("刪除成功");
        })
        .catch(() => {});
    }

注意:新增和刪除之前要先調好彈窗

谷粒商城第七天-商品服務之分類管理下的刪除、新增以及修改商品分類,谷粒商城,vue,SpringBoot,vue.js,spring boot,項目

谷粒商城第七天-商品服務之分類管理下的刪除、新增以及修改商品分類,谷粒商城,vue,SpringBoot,vue.js,spring boot,項目

<el-dialog :title="title" :visible.sync="dialogVisible" width="30%">
      <el-form :model="category">
        <el-form-item label="分類名稱">
          <el-input v-model="category.name" autocomplete="off" ></el-input>
        </el-form-item>
        <el-form-item label="圖標地址">
          <el-input v-model="category.icon" autocomplete="off"></el-input>
        </el-form-item>
        <el-form-item label="計量單位">
          <el-input v-model="category.productUnit" autocomplete="off"></el-input>
        </el-form-item>
      </el-form>
      <span slot="footer" class="dialog-footer">
        <el-button @click="dialogVisible = false">取 消</el-button>
        <el-button type="primary" @click="submitData">確 定</el-button>
      </span>
    </el-dialog>

當然這里發(fā)請求最重要的請求對象別落下:

谷粒商城第七天-商品服務之分類管理下的刪除、新增以及修改商品分類,谷粒商城,vue,SpringBoot,vue.js,spring boot,項目

export function deleteCategory(data) {
    return request({
        url: '/product/category',
        method: 'delete',
        data: data
    })
}

不要忘記在組件中進行導入哦!??!?

2.2 新增功能

新增的話,我在前端思路那里已經說了,其實很簡單

1. 點擊新增按鈕,打開彈窗(也就是修改彈窗的屬性值,參考elementUI官網),并根據父級分類設置好當前新增分類的必要屬性值(層級、父id),并保存打開彈窗的方式是新增的狀態(tài)(以便提交的時候作判斷)

注意:因為這里新增和刪除要到了同一套的屬性,一旦修改過后,其某些屬性其實已經就有值了,倘若新增時不清空掉屬性值,就會出現錯誤的值,而新增我們是需要字段屬性都為空的。

先在數據域中定義好數據:

谷粒商城第七天-商品服務之分類管理下的刪除、新增以及修改商品分類,谷粒商城,vue,SpringBoot,vue.js,spring boot,項目

新增按鈕位置:?

谷粒商城第七天-商品服務之分類管理下的刪除、新增以及修改商品分類,谷粒商城,vue,SpringBoot,vue.js,spring boot,項目?關鍵代碼:

谷粒商城第七天-商品服務之分類管理下的刪除、新增以及修改商品分類,谷粒商城,vue,SpringBoot,vue.js,spring boot,項目

append(data) {
      this.dialogType = "add";
      this.title = "添加分類";
      this.category.parentCid = data.catId;
      this.category.catLevel = data.catLevel+1;
      this.category.name = "";
      this.category.icon = "";
      this.category.productUnit = "";
      this.dialogVisible = true;
    }

2. 點擊提交的時候,將數據域中的信息提交給后端,完成添加操作,之后關閉彈窗,并給予添加成功的提示,最后注意要”還原現場“:也就是新增之后不要收縮起來,新增之后就要展開顯示這個新增,這里就參考elementUI文檔,展開當前新增節(jié)點的父節(jié)點(注意這部分的邏輯都是單獨寫在一個方法中,最終點擊提交的時候,再去調用這個方法,至于為什么會調用這個方法而不會調用修改分類方法,原因就是當初打開彈窗的時候保存了狀態(tài),再最終提交的時候做了判斷)

?谷粒商城第七天-商品服務之分類管理下的刪除、新增以及修改商品分類,谷粒商城,vue,SpringBoot,vue.js,spring boot,項目

addCategoty() {
      console.log(this.category);
      addCategory(this.category).then((response) => {
        this.dialogVisible = false;
        this.$modal.msgSuccess("添加成功");
        this.getTreeList();
        this.selectCids.push(this.category.parentCid);
      });
    }

谷粒商城第七天-商品服務之分類管理下的刪除、新增以及修改商品分類,谷粒商城,vue,SpringBoot,vue.js,spring boot,項目

submitData(){
        if(this.dialogType == "add"){
            this.addCategory();
        }
        if(this.dialogType == "edit"){
            this.editCategory();
        }
    }

最后重要的請求對象不要忘記編寫:

谷粒商城第七天-商品服務之分類管理下的刪除、新增以及修改商品分類,谷粒商城,vue,SpringBoot,vue.js,spring boot,項目

export function addCategory(data) {
    return request({
        url: '/product/category',
        method: 'post',
        data: data
    })
}

2.3 修改功能

修改和新增類似

1. 同樣也是點擊修改按鈕之后,打開彈窗,需要保存打開方式是修改的狀態(tài)

在打開彈窗之前,向后端發(fā)送請求獲取到分類的最新信息,綁定到數據域里面去,由于表單的字段屬性值與數據域中的進行了綁定,因此分類的最新信息就能進行回顯

修改按鈕位置:

谷粒商城第七天-商品服務之分類管理下的刪除、新增以及修改商品分類,谷粒商城,vue,SpringBoot,vue.js,spring boot,項目

?關鍵代碼:

谷粒商城第七天-商品服務之分類管理下的刪除、新增以及修改商品分類,谷粒商城,vue,SpringBoot,vue.js,spring boot,項目

edit(data){
        this.dialogType = "edit";
        this.title = "修改分類";
        //拿到分類的最新信息
        getCategory(data.catId).then((response)=>{
            this.category.name = response.data.name;
            this.category.icon = response.data.icon;
            this.category.productUnit = response.data.productUnit;
            this.category.parentCid = response.data.parentCid;
            this.category.catId = response.data.catId;
        })
        this.dialogVisible = true;
    }

2. 填寫好信息,填寫好的信息會動態(tài)的更新數據域中的信息(因為進行了綁定),抽取需要的信息發(fā)送到后端,完成分類信息的修改,然后和新增一樣也是關閉彈窗,給予提示,最后展開其當前修改節(jié)點的父節(jié)點

谷粒商城第七天-商品服務之分類管理下的刪除、新增以及修改商品分類,谷粒商城,vue,SpringBoot,vue.js,spring boot,項目

editCategory(){
        var {name,icon,productUnit,catId} = this.category;
        updateCategory({name,icon,productUnit,catId}).then((response)=>{
            this.dialogVisible = false;
            this.$modal.msgSuccess("修改成功");
            this.getTreeList();
            this.selectCids.push(this.category.parentCid);
        })
    }

?最終邏輯,封裝的

谷粒商城第七天-商品服務之分類管理下的刪除、新增以及修改商品分類,谷粒商城,vue,SpringBoot,vue.js,spring boot,項目

submitData(){
        if(this.dialogType == "add"){
            this.addCategory();
        }
        if(this.dialogType == "edit"){
            this.editCategory();
        }
    }

?同樣請求對象:

谷粒商城第七天-商品服務之分類管理下的刪除、新增以及修改商品分類,谷粒商城,vue,SpringBoot,vue.js,spring boot,項目

export function updateCategory(data) {
    return request({
        url: '/product/category',
        method: 'put',
        data: data
    })
}

三、后端部分

3.1 刪除接口

沒什么好說的

controller:

/**
     * 刪除商品三級分類
     */
    @ApiOperation("刪除商品三級分類")
    //@PreAuthorize("@ss.hasPermi('product:category:remove')")
    @Log(title = "商品三級分類", businessType = BusinessType.DELETE)
    @DeleteMapping
    public AjaxResult remove(@RequestBody Long[] catIds) {
        return toAjax(categoryService.removeMenuByIds(Arrays.asList(catIds)));
    }

service:

接口:

boolean removeMenuByIds(List<Long> list);

實現:

 @Override
    public boolean removeMenuByIds(List<Long> list) {
        boolean result = removeByIds(list);
        return result;
    }

這里直接使用的MP的批量刪除方法,所以就沒有顯式寫dao層了,逆向代碼自動生成的

注意:

1. 這里是邏輯刪除,不是物理刪除,所以可以在MP的全局配置中配一下字段,另外這里與實際含義相反,所以得在實體類中指明好

谷粒商城第七天-商品服務之分類管理下的刪除、新增以及修改商品分類,谷粒商城,vue,SpringBoot,vue.js,spring boot,項目

實際上刪除時0的,在實體類中標明一下:

谷粒商城第七天-商品服務之分類管理下的刪除、新增以及修改商品分類,谷粒商城,vue,SpringBoot,vue.js,spring boot,項目

2. 這里我在測試的時候遇到一個坑,就是刪除不了,不知道主鍵是什么字段,因為我這是使用的MP的自帶的根據主鍵進行刪除,就需要指定好實體類哪個屬性是主鍵,得告訴MP

使用@TableId注解進行標識?

/**
     * 新增商品三級分類
     */
    @ApiOperation("新增商品三級分類")
    //@PreAuthorize("@ss.hasPermi('product:category:add')")
    @Log(title = "商品三級分類", businessType = BusinessType.INSERT)
    @PostMapping
    public AjaxResult add(@RequestBody Category category) {
        return toAjax(categoryService.save(category));
    }

所以最好實體類最開始就把這個注解加上,因為根據主鍵來進行修改或者是刪除這樣的操作實在是太多了。?

3. 明明聲明主鍵的注解也加上了,可是還是刪除不了,也不報錯。

最終是由于jdk版本高的緣故,MP對于高版本的jdk還不支持根據主鍵刪除的方法,將jdk修改為8可以解決

3.2 新增接口

這沒什么好說的也是直接使用MP的現成方法,也就是MP中直接插入對象

controller:

/**
     * 新增商品三級分類
     */
    @ApiOperation("新增商品三級分類")
    //@PreAuthorize("@ss.hasPermi('product:category:add')")
    @Log(title = "商品三級分類", businessType = BusinessType.INSERT)
    @PostMapping
    public AjaxResult add(@RequestBody Category category) {
        return toAjax(categoryService.save(category));
    }

反正直接使用的MP中現成的service接口中的方法,我這里就不寫出來了。

注意:

默認的話新增的話,MP默認新增的主鍵值是按照雪花算法生成的,并不是我們通常想要的主鍵自增,所以得在配置文件中,在MP的配置那里加上主鍵自增的配置。這也是使用MP時經常容易忘記的

谷粒商城第七天-商品服務之分類管理下的刪除、新增以及修改商品分類,谷粒商城,vue,SpringBoot,vue.js,spring boot,項目

這是全局配置

3.3 修改接口

同樣也是直接使用MP的現成方法

controller:

@ApiOperation("修改商品三級分類")
    //@PreAuthorize("@ss.hasPermi('product:category:edit')")
    @Log(title = "商品三級分類", businessType = BusinessType.UPDATE)
    @PutMapping
    public AjaxResult edit(@RequestBody Category category) {
        return toAjax(categoryService.updateById(category));
    }

下面沒什么好些的,都是MP的service

注意:這里和刪除一樣,一定得記得在實體類上標明哪個字段是主鍵,否則找不到

四、總結

前端部分依舊是寫組件中的相關內容。

這里主要是方法邏輯的編寫,新增刪除修改,新的東西也就是elementUI中的彈窗了,用一下。

其實最終練習的目的就是掌握,一張表的增刪改查操作,得掌握這種套路,都差不多的,當然這里主要是練習,因為這里代碼很是固定,因此之后都不需要我們再去一個一個的自己去寫了,可以使用若依幫我們逆向自動生成的,可見逆向生成器是多么的厲害,后端代碼給我們生成好了一套,前端的組件以及api也幫我們生成好了。我們程序員只需要關注核心業(yè)務即可。

后端部分更沒什么好說的,基本上我都不需要寫什么,只是實際在測試的過程中發(fā)現了一些問題,

主要是MP的配置上面,比如說主鍵的指定,主鍵的增長方式等,以后注意即可。文章來源地址http://www.zghlxwxcb.cn/news/detail-618814.html

到了這里,關于谷粒商城第七天-商品服務之分類管理下的刪除、新增以及修改商品分類的文章就介紹完了。如果您還想了解更多內容,請在右上角搜索TOY模板網以前的文章或繼續(xù)瀏覽下面的相關文章,希望大家以后多多支持TOY模板網!

本文來自互聯(lián)網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。如若轉載,請注明出處: 如若內容造成侵權/違法違規(guī)/事實不符,請點擊違法舉報進行投訴反饋,一經查實,立即刪除!

領支付寶紅包贊助服務器費用

相關文章

  • 谷粒商城筆記+踩坑(9)——上架商品spu到ES索引庫

    谷粒商城筆記+踩坑(9)——上架商品spu到ES索引庫

    導航: 谷粒商城筆記+踩坑匯總篇 目錄 1、ES回顧 2、ES整合商品上架? 2.1、分析 2.2、創(chuàng)建sku的es索引庫 2.2.1、兩種索引庫設計方案分析 2.2.2、最終選用的索引庫方案,nested類型 2.3、SkuEsModel模型類 2.4、【庫存模塊】庫存量查詢 2.5、【查詢模塊】保存ES文檔 2.5.1、常量類 2.5.2、

    2024年02月05日
    瀏覽(28)
  • 谷粒商城第十一天-完善商品分組(主要添上關聯(lián)屬性)

    谷粒商城第十一天-完善商品分組(主要添上關聯(lián)屬性)

    目錄 一、總述 二、前端部分 2.1 改良前端獲取分組列表接口及其調用 2.2 添加關聯(lián)的一整套邏輯 三、后端部分 四、總結 前端部分和之前的商品品牌添加分類差不多。 也是修改一下前端的分頁獲取列表的接口,還有就是加上關聯(lián)的那一套邏輯,包括基本構件的引入、數據域的

    2024年02月13日
    瀏覽(104)
  • 【七天入門數據庫】第七天 MySQL的事務管理

    【七天入門數據庫】第一天 MySQL的安裝部署 【七天入門數據庫】第二天 數據庫理論基礎 【七天入門數據庫】第三天 MySQL的庫表操作 【七天入門數據庫】第四天 數據操作語言DML 【七天入門數據庫】第五天 MySQL的備份恢復 【七天入門數據庫】第六天 MySQL的視圖與索引 【七天

    2024年02月15日
    瀏覽(90)
  • 谷粒商城第十天-獲取分類屬性分組(前端組件抽取&父子組件交互)

    谷粒商城第十天-獲取分類屬性分組(前端組件抽取&父子組件交互)

    目錄 一、總述 1.1 前端思路 1.2 后端思路 二、前端部分 2.1?將分類樹前端代碼抽取成一個組件 2.2 使用elementUI的組件實現左右組件功能 2.3?使用事件機制進行組件通信 三、后端部分 四、總結 說一下今天需要實現一個什么樣子的功能: 很簡單,就是在屬性分組的那個頁面,左

    2024年02月14日
    瀏覽(86)
  • 001-谷粒商城-微服務剖析

    001-谷粒商城-微服務剖析

    還是很強的,該有的都有 SpringCloudAlibaba組件包括 Sentinel Nacos RocketMQ Seata 搭配SpringCloudAlibaba組件 OpenFeign GateWay Ribbn gateway使用了SpringWebFlux,前幾天研究到,為什么springboot不直接使用SpringWebFlux, 還是依然使用tomcat的servelet,內部NIO進行處理請求。 Spring WebFlux 使用 Reactor庫來實現

    2024年04月16日
    瀏覽(230)
  • 谷粒商城-訂單服務

    谷粒商城-訂單服務

    目錄 商城業(yè)務-訂單服務-RabbitMQ延時隊列 商城業(yè)務-訂單服務-延時隊列定時關單模擬 商城業(yè)務-訂單服務-創(chuàng)建業(yè)務交換機隊列 商城業(yè)務-訂單服務-監(jiān)聽庫存解鎖 商城業(yè)務-訂單服務-庫存解鎖邏輯 商城業(yè)務-訂單服務-庫存自動解鎖完成 商城業(yè)務-訂單服務-測試庫存自動解鎖 商城

    2023年04月08日
    瀏覽(98)
  • 谷粒商城第十二天-基本屬性&銷售屬性管理功能的實現

    目錄 一、總述 二、前端部分 三、后端部分 四、總結 前端的話,依舊是直接使用老師給的。 前端的話還是那些增刪改查,業(yè)務復雜一點的話,無非就是設計到多個字段多個表的操作,當然這是后端的事了,前端這里不做深究,走一下流程,知道哪些數據,需要綁定哪些事件

    2024年02月13日
    瀏覽(89)
  • Spring Boot + Vue的網上商城之商品分類

    在網上商城中,商品分類是非常重要的一個功能,它可以幫助用戶更方便地瀏覽和篩選商品。本文將介紹如何使用Spring Boot和Vue來實現商品分類的功能,包括一級分類和二級分類的管理以及前臺按分類瀏覽商品的實現。 數據庫設計:設計商品分類表和商品表,商品分類表包含

    2024年02月09日
    瀏覽(105)
  • 2023最新谷粒商城筆記之支付服務篇(全文總共13萬字,超詳細)

    2023最新谷粒商城筆記之支付服務篇(全文總共13萬字,超詳細)

    這里我們是使用的支付寶進行支付,所以需要調用支付寶的相關API,下面來了解一下怎樣使用支付寶進行線上支付。 支付寶開放平臺傳送門: 支付寶開放平臺 網站支付DEMO傳送門: 手機網站支付 DEMO | 網頁移動應用 RSA、加密加簽、密鑰等 對稱加密 對稱加密 :發(fā)送方和接收

    2024年02月09日
    瀏覽(90)
  • 谷粒商城P139集——云服務器frp內網穿透+nginx

    谷粒商城P139集——云服務器frp內網穿透+nginx

    我注冊的域名是第一年14元的 (1)購買域名并備案 (2)域名解析 測試:如域名為gulimall.com 則在瀏覽器中輸入 gulimall.com:9200 (前提是9200端口已經開放) (1)下載 wget https://github.com/fatedier/frp/releases/download/v0.20.0/frp_0.20.0_linux_amd64.tar.gz 云服務器下載linux版本注意frps的配置即可

    2024年02月09日
    瀏覽(95)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領取紅包,優(yōu)惠每天領

二維碼1

領取紅包

二維碼2

領紅包