vue cli2.0 + php + mysql 面向過(guò)程升級(jí)成面向?qū)ο?/h1>

上期內(nèi)容回顧

一奄容、前言

? ? ? ?上期用最簡(jiǎn)單技術(shù)形式走通了前后臺(tái)的需求,制作了一個(gè)任務(wù)管理系統(tǒng)锨侯,方便記錄并規(guī)劃每天的成長(zhǎng)嫩海。

? ? ? ? 寫(xiě)任務(wù)的核心是為了更好的規(guī)劃時(shí)間冬殃,想象讓你做一個(gè)計(jì)劃系統(tǒng)你該如何考慮囚痴?

? ? ? ? 1)首先你必須有地方去寫(xiě),有地方展示

? ? ? ? 2)展示時(shí)需區(qū)別未完成已完成的狀態(tài)

? ? ? ? 3)需要規(guī)定一個(gè)結(jié)束日期审葬,并且加入提醒深滚,到指定時(shí)間未完成的任務(wù)奕谭,需要寫(xiě)清理由。

? ? ? ? 4)......

所以這期做一下調(diào)整:

1. 整體界面需要重新修改

2.PHP從面向過(guò)程升級(jí)成面向?qū)ο?/b>

3.刪除接口從物理刪除變?yōu)?b>邏輯刪除

4.因布局調(diào)整所影響前端邏輯的改良

5.基礎(chǔ)SQL語(yǔ)法舉一反三

二痴荐、調(diào)整樣式

修改前
修改后

三血柳、業(yè)務(wù)梳理

?前端邏輯主要是練習(xí)vue基本語(yǔ)法,以及事件觸發(fā)之間的邏輯關(guān)系生兆,如何跟php交互數(shù)據(jù)难捌。

????主要功能:

? ? 用戶輸入添加后變?yōu)榇k項(xiàng),完成后用戶勾選變?yōu)橐艳k項(xiàng)鸦难,每一項(xiàng)計(jì)劃可刪除和編輯根吁,還記錄了計(jì)劃的條數(shù)和未完成的條數(shù)

勾選的樣子


修改內(nèi)容的樣子


四、前端布局

上期的布局及樣式完全推倒重做合蔽,代碼如下:

?<div?class="hello"

???????id="box">

????<h4>任務(wù)便簽</h4>

????<p?style="font-size:12px;">總數(shù)為?<span?style="color:#35b96d;">{{?arr.length}}</span>個(gè)击敌,還有?<span?style="color:#35b96d;">{{?choose()?}}</span>個(gè)未完成</p>

????<p?style="font-size:12px;?text-align:?right;">【<span?style="color:#35b96d;"

????????????class="span1"

????????????@click='finish()'>清除已選</span>】【<span?class="span1"

????????????@click='Allfinish()'

????????????style="color:#35b96d;">全部清除</span>】</p>

????<ul>

??????<li?v-for="(item,index)?in?arr"

??????????v-bind:class='{finish:?item.bol}'>

????????<span?class="icon_num">{{index+1}}</span>

????????<input?type="checkbox"

???????????????v-model='item.bol'

???????????????@change="updataFn()"></input>

????????<span?v-text='item.des'

??????????????v-show='!item.edit'

??????????????@click='edit(index)'></span>

????????<input?type="text"

???????????????v-model='item.des'

???????????????v-show='item.edit'

???????????????v-on:keyup.13='item.edit?=?!item.edit'

???????????????@blur='item.edit?=?false;updataFn()'>

????????<span?class="redStyle?delBtn"

??????????????@click='del(item.des)'></span>

??????</li>

????</ul>

????<textarea?placeholder="安排新的任務(wù)吧"

??????????????type="text"

??????????????class="add"

??????????????v-model='msg'

??????????????v-on:keyup.13="add"></textarea><button?@click='add()'>保存</button>

??</div>

-------------------------------------------------------------------------------------------------------------------

export?default?{

??name:?'HelloWorld',

??data?()?{

????return?{

??????arr:?[

????????//?數(shù)據(jù)結(jié)構(gòu):

????????//?des:?任務(wù)描述

????????//?bol:?任務(wù)完成標(biāo)志

????????//?edit:?任務(wù)編輯標(biāo)志

????????//?{?des:'設(shè)計(jì)',?bol:false,?edit:false?}

??????],

??????msg:?''

????}

??},

??created?()?{

????if?(localStorage.getItem('msg'))?{

??????//如果有就讀取msg存到arr數(shù)組中

??????this.arr?=?JSON.parse(localStorage.getItem('msg'))

????}

??},

??methods:?{

????//?添加(判斷msg是否為空,如果不為空就給arr數(shù)組里push內(nèi)容拴事,然后在把msg設(shè)置為空)

????add:?function?()?{

??????if?(this.msg.replace(/[\r\n]/g,?"")?==?'')?{

????????this.msg?=?''

????????alert('請(qǐng)輸入名稱(chēng)');

????????return;

??????}?else?{

????????for?(var?i?=?0;?i?<?this.arr.length;?i++)?{

??????????if?(this.arr[i].des?==?this.msg.replace(/[\r\n]/g,?""))?{

????????????this.msg?=?''

????????????alert('任務(wù)名稱(chēng)不能重復(fù)');

????????????return;

??????????}

????????}

??????}

??????this.arr.push({?des:?this.msg.replace(/[\r\n]/g,?""),?bol:?false,?edit:?false?});

??????localStorage.setItem('msg',?JSON.stringify(this.arr))

??????this.msg?=?''

????},

????//更新到本地存儲(chǔ)中

????updataFn:?function?()?{

??????localStorage.setItem('msg',?JSON.stringify(this.arr))

????},

????//?返回未完成的數(shù)量

????choose:?function?()?{

??????var?num?=?0;????//?未完成的數(shù)量

??????this.arr.forEach(function?(item)?{

????????if?(!item.bol)?{

??????????num?+=?1;

????????}

??????});

??????return?num;

????},

????//?返回未完成的任務(wù)

????finish:?function?()?{

??????var?forNum?=?0;

??????for?(var?i?=?0;?i?<?this.arr.length;?i++)?{

????????if?(this.arr[i].bol)?{

??????????forNum++

????????}

??????}

??????if?(forNum?==?0)?{

????????alert('您需要選中復(fù)選框刪除');

??????}

??????var?temp?=?this.arr;

??????this.arr?=?[]

??????for?(var?i?=?0;?i?<?temp.length;?i++)?{

????????if?(!temp[i].bol)?{

??????????this.arr.push(temp[i]);

??????????console.log(temp[i])

????????}

??????}

??????this.updataFn();

????},

????//單條刪除

????del?(des)?{

??????var?index?=?this.arr.findIndex(item?=>?{

????????if?(item.des?==?des)?{

??????????return?true

????????}

??????})

??????this.arr.splice(index,?1)

??????this.updataFn();

????},

????//清除每條數(shù)據(jù)

????Allfinish?()?{

??????if?(this.arr.length?==?0)?{

????????alert('沒(méi)有可刪除的選項(xiàng)')

??????}?else?{

????????this.arr?=?[];

????????this.updataFn();

??????}

????},

????//?編輯

????edit:?function?(i)?{

??????if?(this.arr[i].bol)?{

????????return;

??????}

??????this.arr[i].edit?=?true;

????}

??}

}

</script>

--------------------------------------------------------------------------------------------------------------

.redStyle{background:#ccc;display:inline-block;width:20px;height:20px;vertical-align:middle}

h4{color:#252434}

.delBtn{margin-top:15px;float:right;background:url(../../src/assets/del.png) no-repeat;background-size:60%;vertical-align:middle}

#box{width:580px;margin:30px auto;background:#fff;color:#222131;padding:30px 50px;border:1px solid #252434;border-bottom-width:4px;border-radius:3px;font-family:"Helvetica Neue,Helvetica,PingFang SC,Hiragino Sans GB,Microsoft YaHei"}

li:nth-child(2n+2){margin-right:0}

.icon_num{opacity:.8;color:#fff;box-sizing:border-box;border-radius:100%;display:inline-block;background:#35b96d;font-size:11px;left:-5px;width:15px;height:15px;line-height:15px;vertical-align:middle;text-align:center;bottom:-8px;border-radius:100%}

input[type=text]{outline:0;width:100%;border:1px solid #f9f9f9}

li{position:relative;background:#fff;border:1px solid #ccc;border-radius:3px;box-sizing:border-box;padding:0 11px;list-style-type:none;width:47%;line-height:40px;font-size:14px;color:#5e5d6d;margin-bottom:10px;margin-right:16px;float:left;font-size:12px;overflow:hidden}

ul{padding-left:0;margin-top:30px;margin-bottom:20px;overflow:hidden}

.add{width:100%;height:80px;margin-right:10px;margin-bottom:5px;outline:0}

.span1{color:#87ceeb}

.finish{box-sizing:border-box;color:#ccc;text-decoration:line-through;height:40px;line-height:40px;background:#eee;font-size:14px;border:none}

textarea{border:1px solid #252434;font-family:"Helvetica Neue,Helvetica,PingFang SC,Hiragino Sans GB,Microsoft YaHei";padding:5px 10px;box-sizing:border-box;background:#fff;color:#252434}

button{outline:0;width:100%;background:#252434;border:none;height:40px;color:#ccc}

五沃斤、后臺(tái)邏輯


六、下期預(yù)告

? 下期會(huì)增加定時(shí)提醒(包含聲音和彈窗提示)刃宵,歷史查詢和顯示以天為單位衡瓶。

? 下期會(huì)增加刪除的再次詢問(wèn)功能,避免誤刪组去。

? 下期會(huì)調(diào)整修改的布局樣式鞍陨。

? 下下期做一個(gè)響應(yīng)式布局,來(lái)適配手機(jī)端从隆、平板诚撵、pc端。

?? 下下期加入登錄和注冊(cè)功能键闺,加入users表寿烟。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者

  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市辛燥,隨后出現(xiàn)的幾起案子筛武,更是在濱河造成了極大的恐慌,老刑警劉巖挎塌,帶你破解...
    沈念sama閱讀 221,820評(píng)論 6 515
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件徘六,死亡現(xiàn)場(chǎng)離奇詭異,居然都是意外死亡榴都,警方通過(guò)查閱死者的電腦和手機(jī)待锈,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 94,648評(píng)論 3 399
  • 文/潘曉璐 我一進(jìn)店門(mén),熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)嘴高,“玉大人竿音,你說(shuō)我怎么就攤上這事和屎。” “怎么了春瞬?”我有些...
    開(kāi)封第一講書(shū)人閱讀 168,324評(píng)論 0 360
  • 文/不壞的土叔 我叫張陵柴信,是天一觀的道長(zhǎng)。 經(jīng)常有香客問(wèn)我宽气,道長(zhǎng)随常,這世上最難降的妖魔是什么? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 59,714評(píng)論 1 297
  • 正文 為了忘掉前任萄涯,我火速辦了婚禮线罕,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘窃判。我一直安慰自己钞楼,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 68,724評(píng)論 6 397
  • 文/花漫 我一把揭開(kāi)白布袄琳。 她就那樣靜靜地躺著询件,像睡著了一般。 火紅的嫁衣襯著肌膚如雪唆樊。 梳的紋絲不亂的頭發(fā)上宛琅,一...
    開(kāi)封第一講書(shū)人閱讀 52,328評(píng)論 1 310
  • 那天,我揣著相機(jī)與錄音逗旁,去河邊找鬼嘿辟。 笑死,一個(gè)胖子當(dāng)著我的面吹牛片效,可吹牛的內(nèi)容都是我干的红伦。 我是一名探鬼主播,決...
    沈念sama閱讀 40,897評(píng)論 3 421
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼淀衣,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼昙读!你這毒婦竟也來(lái)了?” 一聲冷哼從身側(cè)響起膨桥,我...
    開(kāi)封第一講書(shū)人閱讀 39,804評(píng)論 0 276
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤蛮浑,失蹤者是張志新(化名)和其女友劉穎,沒(méi)想到半個(gè)月后只嚣,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體沮稚,經(jīng)...
    沈念sama閱讀 46,345評(píng)論 1 318
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 38,431評(píng)論 3 340
  • 正文 我和宋清朗相戀三年册舞,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了蕴掏。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 40,561評(píng)論 1 352
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖囚似,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情线得,我是刑警寧澤饶唤,帶...
    沈念sama閱讀 36,238評(píng)論 5 350
  • 正文 年R本政府宣布,位于F島的核電站贯钩,受9級(jí)特大地震影響募狂,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜角雷,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,928評(píng)論 3 334
  • 文/蒙蒙 一祸穷、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧勺三,春花似錦雷滚、人聲如沸。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 32,417評(píng)論 0 24
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)。三九已至商源,卻和暖如春车份,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背牡彻。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 33,528評(píng)論 1 272
  • 我被黑心中介騙來(lái)泰國(guó)打工扫沼, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人庄吼。 一個(gè)月前我還...
    沈念sama閱讀 48,983評(píng)論 3 376
  • 正文 我出身青樓缎除,卻偏偏與公主長(zhǎng)得像,于是被迫代替她去往敵國(guó)和親总寻。 傳聞我的和親對(duì)象是個(gè)殘疾皇子伴找,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,573評(píng)論 2 359