日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

品牌新增页面分析

發布時間:2024/4/13 编程问答 27 豆豆
生活随笔 收集整理的這篇文章主要介紹了 品牌新增页面分析 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

品牌的新增

昨天我們完成了品牌的查詢,接下來就是新增功能。點擊新增品牌按鈕

Brand.vue頁面有一個提交按鈕:

點擊觸發addBrand方法:

把數據模型之的show置為true,而頁面中有一個彈窗與show綁定:

彈窗中有一個表單子組件,并且是一個局部子組件,有頁面可以找到該組件:

頁面實現

重置表單

重置表單相對簡單,因為v-form組件已經提供了reset方法,用來清空表單數據。只要我們拿到表單組件對象,就可以調用方法了。

我們可以通過$refs內置對象來獲取表單組件。

首先,在表單上定義ref屬性:

然后,在頁面查看this.$refs屬性:

reset(){// 重置表單console.log(this);}

查看如下:

看到this.$refs中只有一個屬性,就是myBrandForm

我們在clear中來獲取表單對象并調用reset方法:

要注意的是,這里我們還手動把this.categories清空了,因為我寫的級聯選擇組件并沒有跟表單結合起來。需要手動清空。

表單校驗

校驗規則

Vuetify的表單校驗,是通過rules屬性來指定的:

校驗規則的寫法:

說明:

  • 規則是一個數組

  • 數組中的元素是一個函數,該函數接收表單項的值作為參數,函數返回值兩種情況:

    • 返回true,代表成功,

    • 返回錯誤提示信息,代表失敗

編寫校驗

我們有四個字段:

  • name:做非空校驗和長度校驗,長度必須大于1

  • letter:首字母,校驗長度為1,非空。

  • image:圖片,不做校驗,圖片可以為空

  • categories:非空校驗,自定義組件已經幫我們完成,不用寫了

首先,我們定義規則:

然后,在頁面標簽中指定:

<v-text-field v-model="brand.name" label="請輸入品牌名稱" hint="例如:oppo" :rules="[rules.required, rules.nameLength]"></v-text-field> <v-text-field v-model="brand.letter" label="請輸入品牌首字母" hint="例如:O" :rules="[rules.letter]"></v-text-field>

效果:

表單提交

在submit方法中添加表單提交的邏輯:

submit() {console.log(this.$qs);// 表單校驗if (this.$refs.myBrandForm.validate()) {// 定義一個請求參數對象,通過解構表達式來獲取brand中的屬性{categories letter name image}const {categories, letter, ...params} = this.brand; // params:{name, image, cids, letter}// 數據庫中只要保存分類的id即可,因此我們對categories的值進行處理,只保留id,并轉為字符串params.cids = categories.map(c => c.id).join(",");// 將字母都處理為大寫params.letter = letter.toUpperCase();// 將數據提交到后臺// this.$http.post('/item/brand', this.$qs.stringify(params))this.$http({method: this.isEdit ? 'put' : 'post',url: '/item/brand',data: params}).then(() => {// 關閉窗口this.$emit("close");this.$message.success("保存成功!");}).catch(() => {this.$message.error("保存失敗!");});} }
  • 通過this.$refs.myBrandForm選中表單,然后調用表單的validate方法,進行表單校驗。返回boolean值,true代表校驗通過

  • 通過解構表達式來獲取brand中的值,categories需要處理,單獨獲取。其它的存入params對象中

  • 品牌和商品分類的中間表只保存兩者的id,而brand.categories中保存的是對象數組,里面有id和name屬性,因此這里通過數組的map功能轉為id數組,然后通過join方法拼接為字符串

  • 發起請求

  • 彈窗提示成功還是失敗,這里用到的是我們的自定義組件功能message組件:

  • 這個插件把$message對象綁定到了Vue的原型上,因此我們可以通過this.$message來直接調用。

    包含以下常用方法:

    • info、error、success、warning等,彈出一個帶有提示信息的窗口,色調與為普通(灰)、錯誤(紅色)、成功(綠色)和警告(黃色)。使用方法:this.$message.info("msg")

    • confirm:確認框。用法:this.$message.confirm("確認框的提示信息"),返回一個Promise。

    ?

    總結

    以上是生活随笔為你收集整理的品牌新增页面分析的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。