如果你想開發(fā)一個(gè)應(yīng)用(1-16)

timg.jpg

首頁

上一章我們已經(jīng)完成了登錄功能附井,根據(jù)上一章的設(shè)計(jì),登錄完成之后两残,將進(jìn)入首頁永毅,我們看一下首頁的原型圖:

再次強(qiáng)調(diào),這個(gè)項(xiàng)目并不是正規(guī)的開發(fā)流程人弓,可以說的難聽些沼死,就是想到哪做到哪,隨便蔓延崔赌。

1.png

總體布局

經(jīng)過原型圖意蛀,我們可以分析出首頁的大概結(jié)構(gòu):

  1. 頭部是一個(gè)包含三個(gè)item的tab,用于控制內(nèi)容區(qū)域顯示不同的組件
  2. 足部是疑似導(dǎo)航效果的三個(gè)按鈕,分別對(duì)應(yīng)開啟新記錄健芭,開啟新的圖片記錄县钥,以及當(dāng)前月的記錄數(shù)目。

剩下的就是內(nèi)容主題部分慈迈。

暫時(shí)只考慮日記這個(gè)tab節(jié)點(diǎn)的內(nèi)容部分若贮。它是一個(gè)月份列表內(nèi)嵌套了一個(gè)本月的日記的列表,所以需要一個(gè)月份字段痒留,并且由于日記是分組的谴麦,當(dāng)前顯示的組也需要記錄,同時(shí)伸头,還要知道頁面內(nèi)正在顯示的月是哪一個(gè)月匾效,也就是,在頁面右下角記錄條目要知道根據(jù)那個(gè)月份和組來進(jìn)行計(jì)算恤磷。

然后看記錄的框框內(nèi)都有什么內(nèi)容:

首先面哼,是記錄時(shí)間,包括星期扫步,日期魔策,時(shí)間,但這些可以用一個(gè)date對(duì)象代表锌妻,然后日記的標(biāo)題代乃,日記內(nèi)容旬牲,發(fā)送日記時(shí)候的心情仿粹,天氣搁吓,以及是否打了標(biāo)記,這些為了前后端方便吭历,均用int型來表示堕仔。

所以最終經(jīng)過分析最終的數(shù)據(jù)模型設(shè)計(jì)如下:

indexTodos:[
    {
        month:0,              //月份
        default:1,            //正在顯示的月份
        todos:[{
            createTime:new Date(),   //記錄時(shí)間
            item:'',                 //標(biāo)題
            content:'',              //內(nèi)容
            weather:0,               //天氣
            mood:0,                  //心情
            bookmark:0,              //標(biāo)記
            groupid:0,               //所屬組
        }]
    }
]

接下來我們完成首頁,首先在Views文件夾內(nèi)創(chuàng)建Index.vue文件晌区,然后安裝登錄頁一樣摩骨,完成一個(gè)基本的Vue文件的結(jié)構(gòu):

Index.vue:

<style scoped>
</style>
<template>
    <div id="main">
        <!--白云背景圖-->
        <img src="../assets/bg.png" class="background">
    </div>
</template>
<script>
    export default {
    }
</script>

接下來按照剛剛的分析,將其分為頭--內(nèi)容--足三層結(jié)構(gòu):

<div id="main">
    <img src="../assets/bg.png" class="background">
    <div class="head">
    </div>
    <div id="contentPanel">
    </div>
    <div class="foot">
    </div>
</div>

接下來朗若,由于內(nèi)容部分需要?jiǎng)討B(tài)切換恼五,所以我們先給他加上動(dòng)畫效果,在考慮其他:

<div id="main">
    <img src="../assets/bg.png" class="background">
    <div class="head">
    </div>
    <div id="contentPanel">
        <transition   name="custom-classes-transition"
        enter-active-class="animated bounceInLeft"
        leave-active-class="animated fadeOut"
        :duration="{ enter: 700, leave: 200 }">
        </transition>
    </div>
    <div class="foot">
    </div>
</div>

頭部

接下來頭部比較簡單哭懈,直接先duang的一些放入MuseUI的控件:

<div class="head">
    <mu-tabs class="tabtitle" :value="indexTab" lineClass="lineClass"  v-on:change="tabChange">
        <mu-tab value="tab1" :class="tab1Class" class="left-tab" title="日記" />
        <mu-tab value="tab2" :class="tab2Class" title="日歷" />
        <mu-tab value="tab3" :class="tab3Class" class="right-tab" title="記錄" />
    </mu-tabs>
</div>

你可能已經(jīng)注意到了灾馒,這里面多了好多class,還有一個(gè)change的事件遣总,其中class是因?yàn)樗哪J(rèn)樣式與我們需要的不符睬罗,所以需要對(duì)組件進(jìn)行一些修改,再次對(duì)不懂less感到懺悔旭斥,這是class的代碼:

.tabtitle{
    background: #fff;
    padding-right: 30px;
    padding-left: 30px;
}
.tabtitle .tab{
    color: #5e35b1;
    border: 2px solid #5e35b1;
    border-width: 2px 0px;
    padding: 2px;
    margin-top: 20px;
    margin-bottom: 20px;
    min-height: 30px;
    font-weight: bold;
}
.tabtitle .tab-active{
    color: #fff;
    background: #5e35b1;
    border: 2px solid #5e35b1;
    border-width: 2px 0px;
    padding: 2px;
    margin-top: 20px;
    margin-bottom: 20px;
    min-height: 30px;
    font-weight: bold;
}
.tabtitle .left-tab{
    border-radius: 10px 0px 0px 10px;
    border: 2px solid #5e35b1;
    margin:0px;
    margin-left: 5px;
}
.tabtitle .right-tab{
    border-radius: 0px 10px 10px 0px;
    border: 2px solid #5e35b1;
    margin-right: 5px;
}
.lineClass{
    display: none;
}

注意tab項(xiàng)的左右樣式不一致容达。

然后是change事件,根據(jù)文檔可知垂券,change的事件會(huì)帶一個(gè)參數(shù)花盐,參數(shù)值為tab項(xiàng)的值:

methods: {
    tabChange:function(event){
        //模擬hover偽類
        this.indexTab = event
        for (var i = 1;i<=3;i++){
            this['tab' + i + 'Class'] = 'tab'
        }
        this[event + 'Class'] = 'tab-active'
        switch (event) {
            case 'tab1':
            //記錄操作
            break
            case 'tab2':
            //日歷操作
            break
            case 'tab3':
            //我的操作
            break
        }
    }
}

同樣在節(jié)點(diǎn)內(nèi)有多個(gè)值都是綁定的,比如class的類名菇爪,以及tabitem默認(rèn)值的指向等卒暂,綁定的值同樣定義在script內(nèi),具體綁定值如下:

data () {
    return {
        indexTab:"tab1",
        tab1Class:"tab-active",
        tab2Class:"tab",
        tab3Class:"tab",
    }
},

足部

完成頭部之后娄帖,接下來就開始弄足部也祠,足部也很簡單,同樣使用MuseUIDD組件近速,這次我們使用Bottom Navigation,當(dāng)然同樣需要修改css和添加不同的事件诈嘿,足部暫時(shí)的代碼如下:

<div class="foot">
    <mu-bottom-nav class="bottom-nav"  shift v-on:change="navChange">
        <mu-bottom-nav-item value="edit" title="" class="navItemClass" iconClass="iconclass" activeClass="iconclass" icon="edit"/>
        <mu-bottom-nav-item value="photo" title=""  class="navItemClass" style="width:34%" iconClass="iconclass" activeClass="iconclass" icon="local_see"/>
        <div class="navItemClass"  >{{ itemnumber }}篇日記</div>
    </mu-bottom-nav>
</div>

首先看到的應(yīng)該就是第三個(gè)item,并沒有使用mu-bottom-nav-item而是使用了一個(gè)普通的div削葱,并綁定了一個(gè)itemnumber奖亚,將itemnumber添加到data內(nèi)后的代碼:

data () {
    return {
        itemnumber:1,
        indexTab:"tab1",
        tab1Class:"tab-active",
        tab2Class:"tab",
        tab3Class:"tab",
    }
},

然后,是對(duì)mu-bottom-nav樣式的修改析砸,這個(gè)因?yàn)槎际庆o態(tài)的昔字,比起頭部來說就簡單多了:

.bottomNav{
    position: absolute;
    bottom: 0px;
    background: #fff;
    color: #757575;
}
.navItemClass{
    width:33%;
}
.iconclass{
    color: #757575;
}

然后就是這個(gè)組件的change事件,由于這個(gè)組件沒有設(shè)置默認(rèn)值,所以只要點(diǎn)擊即觸發(fā)change事件:

navChange:function(event){
    if(event=='edit'){
        //新建日記
    }else if(event=='photo'){
        //拍照
    }
},

當(dāng)前效果

經(jīng)過書寫后作郭,當(dāng)前的效果如下:

2.png

目前來看陨囊,基本符合電影截圖中的樣式,然后就是最最重要的內(nèi)容頁了夹攒,下一章將繼續(xù)完善.

謝謝觀看

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末蜘醋,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子咏尝,更是在濱河造成了極大的恐慌压语,老刑警劉巖,帶你破解...
    沈念sama閱讀 216,997評(píng)論 6 502
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件编检,死亡現(xiàn)場(chǎng)離奇詭異胎食,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)允懂,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,603評(píng)論 3 392
  • 文/潘曉璐 我一進(jìn)店門斥季,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人累驮,你說我怎么就攤上這事酣倾。” “怎么了谤专?”我有些...
    開封第一講書人閱讀 163,359評(píng)論 0 353
  • 文/不壞的土叔 我叫張陵躁锡,是天一觀的道長。 經(jīng)常有香客問我置侍,道長映之,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,309評(píng)論 1 292
  • 正文 為了忘掉前任蜡坊,我火速辦了婚禮杠输,結(jié)果婚禮上挪鹏,老公的妹妹穿的比我還像新娘狱从。我一直安慰自己姥敛,他們只是感情好筐眷,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,346評(píng)論 6 390
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著厘托,像睡著了一般羹幸。 火紅的嫁衣襯著肌膚如雪钙皮。 梳的紋絲不亂的頭發(fā)上勇吊,一...
    開封第一講書人閱讀 51,258評(píng)論 1 300
  • 那天曼追,我揣著相機(jī)與錄音,去河邊找鬼汉规。 笑死礼殊,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播晶伦,決...
    沈念sama閱讀 40,122評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼碟狞,長吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來了坝辫?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 38,970評(píng)論 0 275
  • 序言:老撾萬榮一對(duì)情侶失蹤射亏,失蹤者是張志新(化名)和其女友劉穎近忙,沒想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體智润,經(jīng)...
    沈念sama閱讀 45,403評(píng)論 1 313
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡及舍,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,596評(píng)論 3 334
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了窟绷。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片锯玛。...
    茶點(diǎn)故事閱讀 39,769評(píng)論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖兼蜈,靈堂內(nèi)的尸體忽然破棺而出攘残,到底是詐尸還是另有隱情,我是刑警寧澤为狸,帶...
    沈念sama閱讀 35,464評(píng)論 5 344
  • 正文 年R本政府宣布歼郭,位于F島的核電站,受9級(jí)特大地震影響辐棒,放射性物質(zhì)發(fā)生泄漏病曾。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,075評(píng)論 3 327
  • 文/蒙蒙 一漾根、第九天 我趴在偏房一處隱蔽的房頂上張望泰涂。 院中可真熱鬧,春花似錦辐怕、人聲如沸逼蒙。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,705評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽其做。三九已至,卻和暖如春赁还,著一層夾襖步出監(jiān)牢的瞬間妖泄,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 32,848評(píng)論 1 269
  • 我被黑心中介騙來泰國打工艘策, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留蹈胡,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 47,831評(píng)論 2 370
  • 正文 我出身青樓,卻偏偏與公主長得像罚渐,于是被迫代替她去往敵國和親却汉。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,678評(píng)論 2 354

推薦閱讀更多精彩內(nèi)容