vue區(qū)域插件V - Distpicker前后端搭配用法

文檔:
https://distpicker.pigjian.com/
功能:vue端加載..區(qū).
流程:
1.終端vue項目下,輸入命令
a. npm install v-distpicker --save
b. yarn add v-distpicker --save
上面兩個二選一,我當時用a報錯,選擇的b指令;

2.引用插件
a.全局插件,寫在main.js里面

import VDistpicker from 'v-distpicker'
Vue.component('v-distpicker', VDistpicker)

b.單頁面引用

import VDistpicker from 'v-distpicker'
    export default {
      components: { VDistpicker }
}

3.使用

<template>
    <v-distpicker></v-distpicker>
<template>

<script>
    import VDistpicker from 'v-distpicker'

    export default {
      components: { VDistpicker },
    }
</script>

4.案例:

  <div class="region-list">
      <v-distpicker type="mobile" @selected="show_modal"></v-distpicker>
  </div>

<script>
    import VDistpicker from 'v-distpicker'

    export default {
        components: {VDistpicker},
        data() {
            return {
                address: {},
                show: false
            }
        },
        //初始化
        created() {
        },
        methods: {
            is_show() {
                this.show = true
            },
            show_modal(data) {
                this.show = !this.show
                this.address.pca = data.province.value + ' ' + data.city.value + ' ' + data.area.value
                // console.log(this.address.pca)
            },
            storeAddress() {
                const data = {
                    name: this.address.name,
                    tel: this.address.tel,
                    pca: this.address.pca,
                    detail: this.address.detail,
                }
                this.axios.post(`/api/address/store`, data).then((res) => {
                    this.$router.push({name: 'address_list'})
                })
            }
        },
    }
</script>

細節(jié):

  1. is_show是調(diào)出省市縣的選擇框,因為show默認是false,點擊is_show之后,變成true,搭配標簽內(nèi)的v-if="show"
  2. show_modal(data)是點擊之后,做了兩件事,第一件當省,市,縣都選擇之后,關(guān)閉選擇框,第二件是將選擇的省,市,縣的value屬性拼接,然后賦值到this.address.pca用于下面新增或者編輯的時候調(diào)用,data是提交的值
  3. storeAddress是點擊保存,將需要保存的數(shù)據(jù)賦值到data里面.然后傳給后端,后端拆分接收
public function store(Request $request)
    {
        $customer_id = auth('api')->user()->id;
        //將接收來的對象轉(zhuǎn)成數(shù)組
        $pca = explode(" ", $request->pca);
        Address::create([
            'customer_id' => $customer_id,
            'province' => $pca[0],
            'city' => $pca[1],
            'area' => $pca[2],
            'tel' => $request->tel,
            'detail' => $request->detail,
            'name' => $request->name,
        ]);
    }



4.編輯頁面寫法跟新增略有不同
a. 編輯頁面多一個edit顯示

init: function () {
     let id = this.$route.params.id       
     this.axios.get(`/api/address/edit/${id}`)
  .then((res) => {
     this.address = res.data.address
     this.address.pca = this.address.province + ' ' + this.address.city + ' ' + this.address.area
               })
            },

從列表頁面?zhèn)饕粋€地址id過來,編輯頁面接收id,獲取edit頁面,后端寫法
路由:Route::get('edit/{id}', 'AddressController@edit');
控制器:

public function edit($id)
    {
        $address = Address::find($id);
        return response()->json(compact('address'));
    }

b. 編輯頁面更新的時候,傳參data里面要帶id過去
后端路由:Route::put('update', 'AddressController@update');
控制器:

public function update(Request $request)
    {
        $pca = explode(" ", $request->pca);
        Address::where('id', $request->id)->update([
            'province' => $pca[0],
            'city' => $pca[1],
            'area' => $pca[2],
            'tel' => $request->tel,
            'detail' => $request->detail,
            'name' => $request->name,
        ]);
    }
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 文章分類 后臺文章分類列表頁模板導(dǎo)的詳細步驟建立數(shù)據(jù)表blog_category,并添加相應(yīng)的文章字段使用php ...
    JoyceZhao閱讀 1,863評論 0 14
  • vue概述 在官方文檔中,有一句話對Vue的定位說的很明確:Vue.js 的核心是一個允許采用簡潔的模板語法來聲明...
    li4065閱讀 7,598評論 0 25
  • vue概述sd 在官方文檔中,有一句話對Vue的定位說的很明確:Vue.js 的核心是一個允許采用簡潔的模板語法來...
    去年的牛肉閱讀 4,216評論 0 1
  • 什么是Vue Vue.js 是一套構(gòu)建用戶界面的框架 只關(guān)注視圖層 易于上手,還便于與第三方庫或即有項目整合 M...
    ef44694b25cb閱讀 930評論 0 0
  • 個人:繼續(xù)穩(wěn)定地執(zhí)行早睡早起,特別是早起,但還是沒養(yǎng)成生物鐘 還是按鬧鐘起床 家庭:帶孩子去自然博物館上樂高課,帶...
    helen_jinb閱讀 240評論 0 0

友情鏈接更多精彩內(nèi)容