成人无码视频,亚洲精品久久久久av无码,午夜精品久久久久久毛片,亚洲 中文字幕 日韩 无码

資訊專欄INFORMATION COLUMN

webpack+vue項(xiàng)目實(shí)戰(zhàn)(二,開(kāi)發(fā)管理系統(tǒng)主頁(yè)面)

Harpsichord1207 / 2529人閱讀

摘要:運(yùn)行一下,發(fā)現(xiàn)路由變了,當(dāng)前項(xiàng)有標(biāo)識(shí)了,子菜單的顯示與隱藏也有了原理也很簡(jiǎn)單。

1.前言

上篇文章(webpack+vue項(xiàng)目實(shí)戰(zhàn)(一,搭建運(yùn)行環(huán)境和相關(guān)配置))搭建了好了基本的一個(gè)項(xiàng)目目錄,安好好了一些要用到的依賴,以及把項(xiàng)目跑了起來(lái)。接下來(lái),我們就進(jìn)行第二步的操作,第二步就是做好一個(gè)開(kāi)發(fā)系統(tǒng)的主頁(yè)面,這個(gè)頁(yè)面主要也就是一個(gè)側(cè)邊欄,通過(guò)側(cè)邊欄的各個(gè)選項(xiàng)來(lái)進(jìn)行操作(切換各個(gè)組件)。比如回款管理,訂單管理,物流管理等等的操作。

2.頂部組件

開(kāi)始屬于排版這一塊了,是時(shí)候在index.js引入一個(gè)公用樣式了,相當(dāng)于一個(gè)樣式重置表。

需求有一個(gè),頁(yè)面上面需要放一個(gè)退出的登錄按鈕,我就寫(xiě)了一個(gè)頂部組件的文件。首先就是創(chuàng)建這個(gè)文件

代碼如下





然后入口文件(index.js)引用這個(gè)文件,并且在vue中注冊(cè)組件import topbarComponent from "./../components/admin_base/topbar.vue";

然后入口模板文件,index.html引入標(biāo)簽

頁(yè)面結(jié)果(基于上一篇文章,已經(jīng)跑起來(lái)的結(jié)果)

頁(yè)面上的class在公用樣式里面有寫(xiě)好樣式,還有一些樣式是element-ui提供的,
退出登錄就是element-ui提供的組件,在入口文件index.js已經(jīng)引入了element-ui。這里直接用就好!

這個(gè)比較簡(jiǎn)單,我就不多說(shuō)了。

3.側(cè)邊欄組件

這個(gè)側(cè)邊欄就是這篇文章的重點(diǎn),也是整個(gè)項(xiàng)目操作的重點(diǎn)。先在目錄上創(chuàng)建這樣一個(gè)的側(cè)邊欄的組件文件。

下面圖片是我們要實(shí)現(xiàn)的效果,那些排版切圖的樣式我不多說(shuō)了,相信不會(huì)難倒大家

1.首先,創(chuàng)建一下這個(gè)側(cè)邊欄所需要的數(shù)據(jù)

從上面的效果圖的看到。有3個(gè)菜單(首頁(yè),銷售消息通知,銷售管理)。而且首頁(yè)這個(gè)菜單可以點(diǎn)擊,執(zhí)行跳轉(zhuǎn),其它兩個(gè)菜單又有子菜單,點(diǎn)擊只是一個(gè)子菜單顯示與隱藏的操作。
所以,側(cè)邊欄的數(shù)據(jù)肯定是一個(gè)數(shù)組,并且是一個(gè)對(duì)象數(shù)組。每個(gè)對(duì)象至少有四個(gè)屬性(要顯示的文字,跳轉(zhuǎn)的url,是否有子菜單,是否當(dāng)前菜單)。然后對(duì)于有子菜單的菜單,要給一個(gè)屬性控制是否展開(kāi)顯示子菜單,要一個(gè)屬性,儲(chǔ)存子菜單。
如下面文字

[
    {
        菜單名:"菜單名稱(首頁(yè))",
        跳轉(zhuǎn)的url:"url(/index)",
        是否當(dāng)前標(biāo)識(shí):"一個(gè)標(biāo)志string(0)",
        是否有子菜單:"是否     true||false"
    },
    {
        菜單名:"菜單名稱(首頁(yè))",
        跳轉(zhuǎn)的url:"url(/index)",
        是否當(dāng)前標(biāo)識(shí):"一個(gè)標(biāo)志string(0)",
        是否有子菜單:"true||false",
        是否展示:"是否     true||false",
        子菜單:[]
    }
]

對(duì)于子菜單,由于沒(méi)有子菜單了,所以需要三個(gè)屬性(要顯示的文字,跳轉(zhuǎn)的url,是否當(dāng)前標(biāo)識(shí):"一個(gè)標(biāo)志string(0)")就好。由于子菜單不止一個(gè),所以,子子菜單這個(gè)肯定也是一個(gè)數(shù)組,每個(gè)子菜單也有屬性,所以,也是一個(gè)對(duì)象屬性,所以,數(shù)據(jù)大概如下面。

[
    {
        菜單名:"菜單名稱   (首頁(yè))",
        跳轉(zhuǎn)的url:"url  (/index)",
        是否當(dāng)前標(biāo)識(shí):"一個(gè)標(biāo)志string   (0)",
        是否有子菜單:"是否     true||false"
    },
    {
        菜單名:"菜單名稱  (首頁(yè))",
        跳轉(zhuǎn)的url:"url  (/index)",
        是否當(dāng)前標(biāo)識(shí):"一個(gè)標(biāo)志string    (1)",
        是否有子菜單:"是否     true||false",
        是否展示:"是否    true||false",
        子菜單:[
            {
                菜單名:"菜單名稱    (首頁(yè))",
                跳轉(zhuǎn)的url:"url   (/index)",
                是否當(dāng)前標(biāo)識(shí):"一個(gè)標(biāo)志string   (1_1)"
            },
            {
                菜單名:"菜單名稱   (首頁(yè))",
                跳轉(zhuǎn)的url:"url   (/index)",
                是否當(dāng)前標(biāo)識(shí):"一個(gè)標(biāo)志string   (1_2)"
            }
        ]
    }
]

最后,整理出來(lái)的數(shù)據(jù)就是?。╰ag這個(gè)標(biāo)識(shí)數(shù)據(jù),是我自己起的,大家也可以隨意起。這個(gè)標(biāo)識(shí)在下面會(huì)用到,在這里可以暫時(shí)不關(guān)注)

data(){
    return {
        currentTag: "0",
        menus: [
            {
                name: "首頁(yè)",
                url: "/index",
                tag: "0",
                hasExtend: false, //是否有二級(jí)菜單
            },
            {
                name: "銷售消息通知",
                url: "/saleR",
                tag: "sale",
                hasExtend: true, //是否有二級(jí)菜單
                fold: true, //是否展開(kāi)
                extend: [
                    {
                        name: "待確認(rèn)訂單",
                        url: "/order/list/0?ordConfirmStatus=0",
                        tag: "1_1",
                    },
                    {
                        name: "待出庫(kù)物流",
                        url: "/logistics/logisticsList/0",
                        tag: "1_2"
                    },
                    {
                        name: "待發(fā)貨物流",
                        url: "/logistics/logisticsList/1",
                        tag: "1_3"
                    },
                    {
                        name: "待收貨物流",
                        url: "/logistics/logisticsList/2",
                        tag: "1_4"
                    },
                    {
                        name: "待確認(rèn)回款",
                        url: "/cash/cashList/0",
                        tag: "1_5"
                    },
                    {
                        name: "待開(kāi)票申請(qǐng)",
                        url: "/invoice/invoiceWriteList/0",
                        tagIndex: "1_6"
                    }
                ]
            },
            {
                name: "銷售管理",
                url: "/workbench",
                hasExtend: true, //是否有二級(jí)菜單
                fold: true,  //是否展開(kāi)
                extend: [
                    {
                        name: "創(chuàng)建銷售單",
                        url: "/order/create",
                        tag: "2_1"
                    },
                    {
                        name: "銷售單管理",
                        url: "/order/list",
                        tag: "2_2"
                    },
                    {
                        name: "物流管理",
                        url: "/logistics/logisticsList",
                        tag: "2_3"
                    },
                    {
                        name: "回款管理",
                        url: "/cash/cashList",
                        tag: "2_4"
                    },
                    {
                        name: "開(kāi)票管理",
                        url: "/invoice/invoiceWriteList",
                        tag: "2_9"
                    },
                    {
                        name: "票據(jù)管理",
                        url: "/invoice/invoiceManageList",
                        tag: "2_5"
                    },
                    {
                        name: "提成管理",
                        url: "/commission/commissionList",
                        tag: "2_6"
                    },
                    {
                        name: "提成設(shè)置",
                        url: "/commission/commissionSet",
                        tag: "2_7",
                    },
                    {
                        name: "合同管理",
                        url: "/contract/contractList",
                        tag: "2_8"
                    },
                ]
            },
        ],
    }
},

上面的數(shù)據(jù)相信大家都沒(méi)什么問(wèn)題,一一對(duì)應(yīng)上就好(name--菜單名稱, url--跳轉(zhuǎn)的url,tag--當(dāng)前的標(biāo)識(shí), hasExtend--是否有二級(jí)菜單,fold--是否展開(kāi)extend--子菜單)

2.遍歷側(cè)邊欄的數(shù)據(jù)

flodswitchNav這個(gè)兩個(gè)屬性大家暫時(shí)不需要關(guān)注,下面會(huì)用到

遍歷數(shù)據(jù)這個(gè),大家看了上面的代碼和注釋,很好理解。我就不多說(shuō)了!然后,在index.js里面,引入和注冊(cè)這個(gè)組件。

然后index.html頁(yè)面引用

然后ctrl+s一下,就可以看到效果了(前面在webpack.config.label.js已經(jīng)配置了熱刷新。所以直接就可以看到效果,保存一下,或者改了一些代碼后,一段時(shí)間沒(méi)操作了,瀏覽器都會(huì)刷新,如下圖

看到運(yùn)行結(jié)果,側(cè)邊欄出來(lái)了。然后,下一步!

3.給側(cè)邊欄寫(xiě)相關(guān)的一些操作

關(guān)于側(cè)邊欄的操作,比較簡(jiǎn)單,無(wú)非就是點(diǎn)擊菜單,跳轉(zhuǎn)路由,標(biāo)志當(dāng)前項(xiàng)以及菜單下面子菜單的顯示與隱藏。
1.首先,觸發(fā)路由的跳轉(zhuǎn)和標(biāo)志當(dāng)前項(xiàng)
我們用到的是是上面代碼的switchNav這個(gè)方法;
我們簡(jiǎn)單分析一下,這個(gè)方法,要實(shí)現(xiàn)跳轉(zhuǎn)路由,標(biāo)志當(dāng)前項(xiàng)。就必須要接收兩個(gè)參數(shù)(要跳轉(zhuǎn)路由的url,當(dāng)前的標(biāo)識(shí))。下面就實(shí)現(xiàn)下

switchNav(url,tag){
    //標(biāo)識(shí)當(dāng)前導(dǎo)航
    this.currentTag = tag;
    //router導(dǎo)航
    this.$router.push({
        "path": url,
        "query": {
            "tag": tag
        }
    });
}

看著代碼是不是特別簡(jiǎn)單,每次點(diǎn)擊的時(shí)候,用一個(gè)變量this.currentTag記錄當(dāng)前的tag,在html遍歷的時(shí)候,如果遍歷道的tag等于currentTag的話,就加上active的類名,標(biāo)志當(dāng)前項(xiàng),不等于就不加類名。

比如一開(kāi)始‘this.currentTag="0",然后,首頁(yè)的tag又是等于"0",所以遍歷道‘首頁(yè)’的時(shí)候,就會(huì)給‘首頁(yè)’那個(gè)菜單加上active的類名’


然后跳轉(zhuǎn)路由那個(gè)沒(méi)有什么可以說(shuō)的了,就把url當(dāng)成參數(shù)傳進(jìn)去而已。

2.最后,實(shí)現(xiàn)菜單下面子菜單的顯示與隱藏。這個(gè)方法就一行代碼。

 //展開(kāi)收起導(dǎo)航面板
flod(index){
    this.menus[index].fold = !this.menus[index].fold;
},

因?yàn)橹挥袃杉?jí),所以,只是根據(jù)傳進(jìn)來(lái)的索引(index)來(lái)操作menus這個(gè)數(shù)組而已,把要操作的項(xiàng)的fold屬性,取反。

運(yùn)行一下,發(fā)現(xiàn)路由變了,當(dāng)前項(xiàng)有標(biāo)識(shí)了,子菜單的顯示與隱藏也有了!原理也很簡(jiǎn)單。

運(yùn)行完了,附上這個(gè)文件(snav-component.vue)的代碼大概就是這樣






有一點(diǎn)要注意下,除了點(diǎn)擊首頁(yè)能看到一張圖片之外,點(diǎn)擊其它的菜單,右邊都是白色的一片。因?yàn)槠渌牟藛蔚膗rl。并沒(méi)有對(duì)應(yīng)的組件。

比如:這個(gè)url在路由里面并沒(méi)有對(duì)應(yīng)的組件。

怎么知道?在上一篇文件說(shuō)到的router.js里面,并沒(méi)有配置‘/order/list/0?ordConfirmStatus=0’這個(gè)url對(duì)應(yīng)的組件。所以在index.html輸出的就是空白的一片?,F(xiàn)在這里算是復(fù)習(xí)上一篇的內(nèi)容了。也是給下一篇埋了一個(gè)伏筆。下一篇就講這個(gè)配置。

4.未完待續(xù)

今天就到這里了。主要就是一個(gè)主頁(yè)面,主要是側(cè)邊欄的一個(gè)開(kāi)發(fā)。這個(gè)側(cè)邊欄就是根據(jù)控制錄用的變化。技術(shù)棧主要也就是vuevue-router。原理就是根據(jù)路由的變化執(zhí)行組件的切換。達(dá)到一個(gè)頁(yè)面跳轉(zhuǎn)的效果。下一篇就會(huì)說(shuō)到,配置路由和路由對(duì)應(yīng)的組件。希望能幫到大家。最后還是那句老話-如果大家發(fā)現(xiàn)我哪里寫(xiě)錯(cuò)了,或者是哪里寫(xiě)得不好,歡迎指點(diǎn)下。

文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請(qǐng)注明本文地址:http://m.hztianpu.com/yun/83811.html

相關(guān)文章

  • webpack+vue項(xiàng)目實(shí)戰(zhàn)(三,配置功能操作頁(yè)和組件的按需加載)

    摘要:但是實(shí)際上,回款管理和開(kāi)票管理的組件文件也是加載了。所以下面引用按需加載來(lái)處理。是不是小很多了,然后和是按需加載的,就是需要的時(shí)候才加載。 1.前言 上篇文章(webpack+vue項(xiàng)目實(shí)戰(zhàn)(二,開(kāi)發(fā)管理系統(tǒng)主頁(yè)面)),實(shí)現(xiàn)了,側(cè)邊欄的一個(gè)操作,點(diǎn)擊側(cè)邊欄的一些操作,最重要的就是路由的切換。看了上一篇的伙伴也不難發(fā)現(xiàn),除了點(diǎn)擊側(cè)邊欄‘首頁(yè)’之外,點(diǎn)擊其它的都是白色的一片。原因我想大家都...

    endless_road 評(píng)論0 收藏0
  • webpack+vue項(xiàng)目實(shí)戰(zhàn)(五,監(jiān)聽(tīng)路由,實(shí)現(xiàn)同個(gè)頁(yè)不同狀態(tài)的切換)

    摘要:好了,閑話不多說(shuō)今天要說(shuō)的時(shí)利用監(jiān)聽(tīng)路由的方式,實(shí)現(xiàn)同個(gè)頁(yè)面不同狀態(tài)的切換。只要等于,那么頁(yè)面就是待確認(rèn)回款頁(yè)面進(jìn)入待確認(rèn)回款頁(yè)面中,回款狀態(tài)的篩選標(biāo)簽要加上。 1.前言 今天發(fā)完這一篇,就要這個(gè)系列告一段落了!以后如果有什么要補(bǔ)充的會(huì)繼續(xù)補(bǔ)充!因?yàn)樵诤笈_(tái)管理項(xiàng)目上,搭建的話,主要就是這樣了!還有的一些是具體到交互的處理,那個(gè)是要根據(jù)后端的需求,來(lái)進(jìn)來(lái)比較細(xì)化的工作,我在這里就不說(shuō)了!...

    guyan0319 評(píng)論0 收藏0
  • 《從零構(gòu)建前后分離的web項(xiàng)目實(shí)戰(zhàn) - 欲善其事必先利其器 繼續(xù)打磨前端架構(gòu)

    摘要:工欲善其事必先利其器繼續(xù)打磨前端架構(gòu)抱歉生病拖更了,快樂(lè)本文永久更新地址填坑上回還真的有同學(xué)提到了這個(gè)問(wèn)題,感謝細(xì)心的你。既實(shí)現(xiàn)了攔截又實(shí)現(xiàn)了狀態(tài)的共享。愉快的拿到了數(shù)據(jù)這樣,前后分離的項(xiàng)目可以這樣借助測(cè)試接口,不需要騷擾任何人。 工欲善其事必先利其器 - 繼續(xù)打磨前端架構(gòu) 抱歉生病拖更了,1024快樂(lè) 本文永久更新地址 填坑 上回還真的有同學(xué)提到了這個(gè)問(wèn)題,感謝細(xì)心的你。@_noob...

    Mike617 評(píng)論0 收藏0
  • 2017年1月前端月報(bào)

    摘要:平日學(xué)習(xí)接觸過(guò)的網(wǎng)站積累,以每月的形式發(fā)布。年以前看這個(gè)網(wǎng)址概況在線地址前端開(kāi)發(fā)群月報(bào)提交原則技術(shù)文章新的為主。 平日學(xué)習(xí)接觸過(guò)的網(wǎng)站積累,以每月的形式發(fā)布。2017年以前看這個(gè)網(wǎng)址:http://www.kancloud.cn/jsfron... 概況 在線地址:http://www.kancloud.cn/jsfront/month/82796 JS前端開(kāi)發(fā)群月報(bào) 提交原則: 技...

    FuisonDesign 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

閱讀需要支付1元查看
<