日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区

您的位置:首頁技術文章
文章詳情頁

Vue+Bootstrap收藏(點贊)功能邏輯與具體實現

瀏覽:212日期:2022-11-14 17:47:37

Vue+Bootstrap收藏(點贊)功能邏輯與具體實現(原創),供大家參考,具體內容如下

點贊功能邏輯

點贊功能說明:連接了數據庫,在有登錄功能的基礎上。

點贊功能具體實現目標,如下:

1、用戶點擊一次加入收藏,數量加一,再次點擊取消收藏,數量減一 ;2、當多用戶收藏,喜歡數量累加 ;3、如果用戶已收藏,顯示紅心(點亮圖標),未收藏,否之。 ;

點贊功能說明:點贊功能用到兩個表,點贊表和數據表的count。

Vue+Bootstrap收藏(點贊)功能邏輯與具體實現

Vue+Bootstrap收藏(點贊)功能邏輯與具體實現

功能分析:

Vue+Bootstrap收藏(點贊)功能邏輯與具體實現

具體實現如圖,可把該功能分為兩個部分,分別實現。

1.紅心部分邏輯:

1.1 加載數據時顯示:獲取登陸者的id,通過id查詢點贊表,獲取該id下的所有喜歡(點贊)的數據,放入一個全局變量數組,然后加載數據時,通過數組判斷喜歡(點贊)顯示已收藏或未收藏。注釋:用到了兩個全局變量數組。1.1用到的數組:存放對應數據id。1.2用到的數組結構:下標存數據id,內容存0或1。)1.2 實現點擊在已收藏(點贊)和未收藏(點贊)狀態之間切換:通過全局變量數組(1.1注釋),判斷當前是已收藏還是未收藏,若已收藏,則點擊后顯示未收藏,反之類似。

2.數值部分邏輯:

2.1 數值用數據表的count顯示:若數據表中的count不為空,則數值直接用count顯示。若數據表中的count為空,則通過數據id,在點贊表查找,如果點贊表中未有該數據id,count置0,如果有該數據id,計算個數,放入count。2.2 實現點擊,若已收藏,值加1,取消收藏,值減1:通過1.1.2的全局變量數組,判斷當前是已收藏還是未收藏,若已收藏,則點擊后count減1,把點贊表中當前用戶刪除。若未收藏,則點擊后count加1,在點贊表中添加當前用戶。

點贊功能具體實現

通過bootstrap+Vue來實現的。

當按鈕的class是glyphicon glyphicon-heart-empty顯示空心,是glyphicon glyphicon-heart顯示紅心。數值由count顯示。

Vue+Bootstrap收藏(點贊)功能邏輯與具體實現

前端收藏按鈕代碼。

// 點贊按鈕<button type='button' v-on:click='love(d.cid)' class='btn btn-default btn-lg'> <span : style='color:red;font-size:20px;' aria-hidden='true'><p style='float:right;font-size:18px;'>{{d.count}}</p></span></button>

聲明的全局變量。還有當前登錄者的id要用到(沒寫)。

//存儲數據表的所有數據datas: ’’,//給count賦值countCid: [],//點擊時使用lvs: [],//更新點贊表時使用loveDatas: { type: ’’, uid: ’’, cid: ’’ },//更新數據表時使用 updateDatas: { cid: ’’, count: ’’}

加載時,調用函數。

//遍歷整個點贊表,放入一個全局數組變量·數組作用是統計某一數據對應點贊的個數(點贊的個數=同一數據在點贊表的個數)this.listLoveDatas(); //給數據表中的count賦值 this.listData(); //若已收藏,顯示紅心,反之,空心。this.formData.uid是本次登錄者的id this.listLove(this.formData.uid);

首先,調用 listLoveDatas() 函數。

listLoveDatas : function(){ var target = this; //獲取點贊表的所有數據 axios.post(’/bac/love/selectAll?ps=10000’) .then(function (response) { var loves = response.data.result.data; var length = response.data.result.data.length; for(var i=0;i<length;i++){ var d = loves[i]; if(target.countCid[d.cid]==null){ //當查詢到點贊表的第一個數據,給countCid賦值為1 target.countCid[d.cid]=1; }else{ //當查詢到2、3、4條等,依次累加 target.countCid[d.cid] = target.countCid[d.cid] +1; } } }) .catch(function (error) { console.log(error); });}

其次,調用 listData() 函數。

listData : function(){ var target = this; //獲取所有數據表的數據,給count使用countCid賦值 axios.post(’/bac/culture/selectAll?ps=10000’) .then(function (response) { target.datas = response.data.result.data; var length = response.data.result.data.length; for(var i=0;i<length;i++){ var d = target.datas[i]; //數據表中的count是不是為空,若為空并且點贊表中有這個數據,直接給count賦值。若為空,直接賦0 if(d.count==null&&target.countCid[d.cid]){ target.datas[i].count=target.countCid[d.cid]; //給要更新的數據賦值 target.updateDatas.cid = d.cid; target.updateDatas.count = target.countCid[d.cid]; //更新數據表 axios.post(’/bac/culture/updateByPrimaryKeySelective’,target.updateDatas) .then(function (response) { var success = response.data.success; if(success==false){ alert(response.data.errorName); }else{ } }) .catch(function (error) { console.log(error); }); }else if(d.count==null){ target.datas[i].count=0; //給要更新的數據賦值 target.updateDatas.cid = d.cid; target.updateDatas.count = 0; //更新數據表 axios.post(’/bac/culture/updateByPrimaryKeySelective’,target.updateDatas) .then(function (response) { var success = response.data.success; if(success==false){ alert(response.data.errorName); }else{ } }) .catch(function (error) { console.log(error); }); } } }) .catch(function (error) { console.log(error); });}

最后,調用 listLove() 函數。

listLove : function(uid){ var target = this; var myChar; //在點贊表中查出所有登陸者點贊的數據 axios.post(’/bac/love/selectByUid?uid=’+uid) .then(function (response) { var loveDatas = response.data.result.data; var length = response.data.result.data.length; for(var i=0;i<length;i++){ var l = loveDatas[i]; //該數組,點擊收藏按鈕時用 target.lvs[l.cid]=l.type; for(var j=0;j<target.datas.length;j++){ var d = target.datas[j]; if(l.cid==d.cid){ //獲取某個按鈕id myChar = document.getElementById(d.cid); //給已收藏的變為紅心狀態 myChar.className = 'glyphicon glyphicon-heart'; } } } }) .catch(function (error) { console.log(error); });}

點擊調用該函數。

love : function(cid){ var target = this; //獲取點擊收藏數據的id var myChar = document.getElementById(cid); //如果沒登錄,提示,this.formData.uid是當前登陸者id if(this.formData.uid==undefined){ alert('請先登錄'); }else{ //該數組存儲了已經收藏的數據 if(this.lvs[cid]==1){ //由紅心變為空心 myChar.className = 'glyphicon glyphicon-heart-empty'; //通過數據id和用戶id獲取點贊表的id axios.post(’/bac/love/selectByCidAndUid?cid=’+cid+’&uid=’+target.formData.uid) .then(function (response) { var id = response.data.result.data.id; //通過點贊表的id刪除取消收藏的數據 axios.post(’/bac/love/delete?objectId=’+id) .then(function (response) { var success = response.data.success; if(success==false){ alert(response.data.errorName); }else{ console.log('刪除成功'); } }) .catch(function (error) { console.log(error); }); }) .catch(function (error) { console.log(error); }); //把數組中某數據id等2,使下次點擊由空心變紅心,相當于開關 target.lvs[cid]=2; for(var i=0;i<target.datas.length;i++){ if(target.datas[i].cid==cid){ target.datas[i].count = target.datas[i].count-1; target.updateDatas.cid = target.datas[i].cid; target.updateDatas.count = target.datas[i].count; //更新數據表 axios.post(’/bac/culture/updateByPrimaryKeySelective’,target.updateDatas) .then(function (response) { var success = response.data.success; if(success==false){ alert(response.data.errorName); }else{ } }) .catch(function (error) { console.log(error); }); } } }else{ //變為紅心 myChar.className = 'glyphicon glyphicon-heart'; //獲取數據id、用戶id、喜歡的狀態,插入點贊表 target.loveDatas.cid = cid; target.loveDatas.uid = target.formData.uid; target.loveDatas.type = 1; //插入點贊表 axios.post(’/bac/love/insert’,target.loveDatas) .then(function (response) { var success = response.data.success; if(success==false){ alert(response.data.errorName); }else{ console.log('插入成功'); } }) .catch(function (error) { console.log(error); }); //使下次點擊由紅心變空心 target.lvs[cid]=1; for(var i=0;i<target.datas.length;i++){ if(target.datas[i].cid==cid){ //使數值加1 target.datas[i].count = target.datas[i].count+1; //獲取需要更新的數據表的id和count target.updateDatas.cid = target.datas[i].cid; target.updateDatas.count = target.datas[i].count; //更新數據表 axios.post(’/bac/culture/updateByPrimaryKeySelective’,target.updateDatas) .then(function (response) { var success = response.data.success; if(success==false){ alert(response.data.errorName); }else{ } }) .catch(function (error) { console.log(error); }); } } } }}

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持好吧啦網。

標簽: Vue
相關文章:
日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区
亚洲乱亚洲高清| 婷婷中文字幕一区| 性一交一乱一区二区洋洋av| 99久精品视频在线观看视频| 国产欧美一区二区三区精品酒店| 日韩欧乱色一区二区三区在线| 石原莉奈在线亚洲三区| 首页欧美精品中文字幕| 玖玖精品视频| 男女性色大片免费观看一区二区 | 一本综合精品| 亚洲有吗中文字幕| 亚洲一区二区三区四区电影 | 蜜桃视频在线网站| 福利欧美精品在线| 日韩大片在线播放| 久久精品播放| 午夜国产精品视频免费体验区| 亚洲婷婷在线| 午夜在线一区二区| 亚洲精品伊人| 国产女人18毛片水真多18精品| 国产精品亚洲欧美一级在线| 久久精品国产在热久久| 色爱综合网欧美| 久久精品成人| 国产精品日本| 亚洲性视频在线| 7777精品| 国产网站在线| 欧美91视频| 视频一区二区国产| 日韩福利视频网| 国产成人精品亚洲线观看| 成人羞羞视频播放网站| 亚洲视频播放| 国产日韩欧美一区二区三区在线观看| 久久精品国产亚洲aⅴ| 日韩专区精品| 免费成人性网站| 国产精品自在| 日韩一区欧美| 伊人久久大香线蕉av超碰演员| 中文无码日韩欧| 久久99蜜桃| 激情婷婷亚洲| 日韩va欧美va亚洲va久久| 成人精品视频| 视频一区国产视频| 国产精品99久久免费观看| se01亚洲视频| 亚洲va久久久噜噜噜久久| 精品一区二区三区免费看| 激情五月综合| 国产欧美午夜| 欧美1级日本1级| 国产欧美亚洲精品a| 日韩av在线播放网址| 樱桃成人精品视频在线播放| 欧美日本不卡| 亚洲二区在线| 国产精品一国产精品k频道56| 欧美综合另类| 国产精品视频一区二区三区四蜜臂| 99久久夜色精品国产亚洲1000部| 日韩高清电影免费| 国产99久久久国产精品成人免费| 97精品资源在线观看| 久久五月天小说| 国产精品片aa在线观看| 伊人成人网在线看| 精品久久视频| 偷拍亚洲精品| 国产精品国产一区| 热久久久久久久| 日韩免费av| 国产伦理一区| 丝袜美腿亚洲色图| 日本不卡免费高清视频在线| 日本一不卡视频| 91精品国产91久久久久久黑人| 国产午夜久久av| 91成人精品| 国产精品成久久久久| 色综合视频一区二区三区日韩| 欧美日韩在线网站| 欧美激情网址| 日韩影片在线观看| se01亚洲视频| 久久av电影| 亚洲精品黄色| 国产高清一区二区| 久久久久久一区二区| 欧美日韩一区二区三区四区在线观看| 日韩视频在线一区二区三区 | 日韩精品乱码av一区二区| 久久视频国产| 久久久一本精品| 国产精品久久免费视频| 午夜在线精品偷拍| 国产精品av一区二区| 久久久久久婷| 精品一区二区三区的国产在线观看| 免费视频一区二区| 精品中文一区| 999国产精品999久久久久久| 激情综合婷婷| 麻豆国产精品| 久久激五月天综合精品| 亚洲综合中文| 亚洲一区二区日韩| 欧美日韩国产精品一区二区亚洲| 播放一区二区| 伊人久久av| 国产精品高清一区二区| 亚洲人成高清| 男女精品网站| 亚洲主播在线| 亚洲资源av| 亚洲欧美日韩一区在线观看| 91成人网在线观看| 亚洲二区视频| 国产一区亚洲| 1024精品一区二区三区| 欧洲av不卡| 999国产精品视频| 日本国产精品| 亚洲福利精品| 伊人成人网在线看| 五月天久久777| 怡红院精品视频在线观看极品| 欧美不卡在线| 亚洲欧洲另类| 亚洲影院天堂中文av色| 日韩美女精品| 国产精品欧美一区二区三区不卡| 国产情侣久久| 美女高潮久久久| 国产精品国产一区| 丁香六月综合| 欧美va天堂在线| 亚洲中午字幕| 亚洲a级精品| 久久国产欧美日韩精品| 日韩一区二区三区四区五区| 日韩一区二区三区免费视频| 国产日韩欧美高清免费| 久久久久伊人| 激情黄产视频在线免费观看| 91精品蜜臀一区二区三区在线 | 福利片在线一区二区| 国产一区二区精品久| 麻豆mv在线观看| 99久久夜色精品国产亚洲狼 | 国产无遮挡裸体免费久久| 国产精品天天看天天狠| 国产精品久久久久久久久妇女| 欧美aa一级| 亚洲深夜av| 欧美一级二级三级视频| 精品中文字幕一区二区三区| 久久久久99| 免费黄网站欧美| 国产精品入口久久| 不卡一二三区| 国产精品嫩草99av在线| 热久久久久久| 久久精品一本| 欧美不卡在线| 97se亚洲| 都市激情国产精品| 影音先锋国产精品| 日本午夜精品久久久久| 四虎成人av| 免费成人在线影院| 久久精品一区二区三区中文字幕| 日韩精品一区二区三区免费观看| 亚洲综合日韩| 久久精品三级| 黄色欧美日韩| 日本午夜精品久久久| 色一区二区三区| 亚洲精品护士| 色偷偷色偷偷色偷偷在线视频| 丝袜亚洲另类欧美| 精品一级视频| 亚洲欧美日本视频在线观看| 美女在线视频一区| 在线精品小视频| 久久av网站| 巨乳诱惑日韩免费av| 精品中文在线| 在线免费观看亚洲| 福利片在线一区二区| 免费在线观看精品| 精品免费av一区二区三区| 99亚洲视频| 精品入口麻豆88视频| 三级一区在线视频先锋| 国产一区二区三区四区|