精品欧美一区二区三区在线观看 _久久久久国色av免费观看性色_国产精品久久在线观看_亚洲第一综合网站_91精品又粗又猛又爽_小泽玛利亚一区二区免费_91亚洲精品国偷拍自产在线观看 _久久精品视频在线播放_美女精品久久久_欧美日韩国产成人在线

如何用vue實(shí)現(xiàn)模態(tài)框組件

開發(fā) 前端
基本上每個(gè)項(xiàng)目都需要用到模態(tài)框組件,由于在最近的項(xiàng)目中,alert組件和confirm是兩套完全不一樣的設(shè)計(jì),所以我將他們分成了兩個(gè)組件,本文主要討論的是confirm組件的實(shí)現(xiàn)。

基本上每個(gè)項(xiàng)目都需要用到模態(tài)框組件,由于在最近的項(xiàng)目中,alert組件和confirm是兩套完全不一樣的設(shè)計(jì),所以我將他們分成了兩個(gè)組件,本文主要討論的是confirm組件的實(shí)現(xiàn)。

組件結(jié)構(gòu) 

  1. <template> 
  2.     <div class="modal" v-show="show" transition="fade"
  3.         <div class="modal-dialog"
  4.             <div class="modal-content"
  5.                 <!--頭部--> 
  6.                 <div class="modal-header"
  7.                     <slot name="header"
  8.                         <p class="title">{{modal.title}}</p> 
  9.                     </slot> 
  10.                     <a v-touch:tap="close(0)" class="close" href="javascript:void(0)"></a> 
  11.                 </div> 
  12.                 <!--內(nèi)容區(qū)域--> 
  13.                 <div class="modal-body"
  14.                     <slot name="body"
  15.                         <p class="notice">{{modal.text}}</p> 
  16.                     </slot> 
  17.                 </div> 
  18.                 <!--尾部,操作按鈕--> 
  19.                 <div class="modal-footer"
  20.                     <slot name="button"
  21.                         <a v-if="modal.showCancelButton" href="javascript:void(0)" class="button {{modal.cancelButtonClass}}" v-touch:tap="close(1)">{{modal.cancelButtonText}}</a> 
  22.                         <a v-if="modal.showConfirmButton" href="javascript:void(0)" class="button {{modal.confirmButtonClass}}" v-touch:tap="submit">{{modal.confirmButtonText}}</a> 
  23.                     </slot> 
  24.                 </div> 
  25.             </div> 
  26.         </div> 
  27.     </div> 
  28.     <div v-show="show" class="modal-backup" transition="fade"></div> 
  29. </template>   

 模態(tài)框結(jié)構(gòu)分為三部分,分別為頭部、內(nèi)部區(qū)域和操作區(qū)域,都提供了slot,可以根據(jù)需要定制。

樣式 

  1. .modal { 
  2.     position: fixed; 
  3.     left: 0; 
  4.     top: 0; 
  5.     right: 0; 
  6.     bottom: 0; 
  7.     z-index: 1001; 
  8.     -webkit-overflow-scrolling: touch; 
  9.     outline: 0; 
  10.     overflow: scroll
  11.     margin: 30/@rate auto; 
  12. .modal-dialog { 
  13.     position: absolute
  14.     left: 50%; 
  15.     top: 0; 
  16.     transform: translate(-50%,0); 
  17.     width: 690/@rate; 
  18.     padding: 50/@rate 40/@rate; 
  19.     background: #fff; 
  20. .modal-backup { 
  21.     position: fixed; 
  22.     top: 0; 
  23.     right: 0; 
  24.     bottom: 0; 
  25.     left: 0; 
  26.     z-index: 1000; 
  27.     background: rgba(0, 0, 0, 0.5); 
  28.  

這里只是一些基本樣式,沒什么好說的,這次項(xiàng)目是在移動(dòng)端,用了淘寶的自適應(yīng)布局方案,@rate是切稿時(shí)候的轉(zhuǎn)換率。

接口定義 

  1. /** 
  2.  * modal 模態(tài)接口參數(shù) 
  3.  * @param {string} modal.title 模態(tài)框標(biāo)題 
  4.  * @param {string} modal.text 模態(tài)框內(nèi)容 
  5.  * @param {boolean} modal.showCancelButton 是否顯示取消按鈕 
  6.  * @param {string} modal.cancelButtonClass 取消按鈕樣式 
  7.  * @param {string} modal.cancelButtonText 取消按鈕文字 
  8.  * @param {string} modal.showConfirmButton 是否顯示確定按鈕 
  9.  * @param {string} modal.confirmButtonClass 確定按鈕樣式 
  10.  * @param {string} modal.confirmButtonText 確定按鈕標(biāo)文字 
  11.  */ 
  12. props: ['modalOptions'], 
  13. computed: { 
  14.     /** 
  15.      * 格式化props進(jìn)來的參數(shù),對(duì)參數(shù)賦予默認(rèn)值 
  16.      */ 
  17.     modal: { 
  18.         get() { 
  19.             let modal = this.modalOptions; 
  20.             modal = { 
  21.                 title: modal.title || '提示'
  22.                 text: modal.text, 
  23.                 showCancelButton: typeof modal.showCancelButton === 'undefined' ? true : modal.showCancelButton, 
  24.                 cancelButtonClass: modal.cancelButtonClass ? modal.showCancelButton : 'btn-default'
  25.                 cancelButtonText: modal.cancelButtonText ? modal.cancelButtonText : '取消'
  26.                 showConfirmButton: typeof modal.showConfirmButton === 'undefined' ? true : modal.cancelButtonClass, 
  27.                 confirmButtonClass: modal.confirmButtonClass ? modal.confirmButtonClass : 'btn-active'
  28.                 confirmButtonText: modal.confirmButtonText ? modal.confirmButtonText : '確定'
  29.             }; 
  30.             return modal; 
  31.         }, 
  32.     }, 
  33. },  

這里定義了接口的參數(shù),可以自定義標(biāo)題、內(nèi)容、是否顯示按鈕和按鈕的樣式,用一個(gè)computed來做參數(shù)默認(rèn)值的控制。

模態(tài)框內(nèi)部方法 

  1. data() { 
  2.     return { 
  3.         show: false,   // 是否顯示模態(tài)框 
  4.         resolve: ''
  5.         reject: ''
  6.         promise: '',  // 保存promise對(duì)象 
  7.     }; 
  8. }, 
  9. methods: { 
  10.     /** 
  11.      * 確定,將promise斷定為完成態(tài) 
  12.      */ 
  13.     submit() { 
  14.         this.resolve('submit'); 
  15.     }, 
  16.     /** 
  17.      * 關(guān)閉,將promise斷定為reject狀態(tài) 
  18.      * @param type {number} 關(guān)閉的方式 0表示關(guān)閉按鈕關(guān)閉,1表示取消按鈕關(guān)閉 
  19.      */ 
  20.     close(type) { 
  21.         this.show = false
  22.         this.reject(type); 
  23.     }, 
  24.     /** 
  25.      * 顯示confirm彈出,并創(chuàng)建promise對(duì)象 
  26.      * @returns {Promise} 
  27.      */ 
  28.     confirm() { 
  29.         this.show = true
  30.         this.promise = new Promise((resolve, reject) => { 
  31.             this.resolve = resolve; 
  32.             this.reject = reject; 
  33.         }); 
  34.         return this.promise;   //返回promise對(duì)象,給父級(jí)組件調(diào)用 
  35.     }, 
  36. },  

在模態(tài)框內(nèi)部定義了三個(gè)方法,最核心部分confirm方法,這是一個(gè)定義在模態(tài)框內(nèi)部,但是是給使用模態(tài)框的父級(jí)組件調(diào)用的方法,該方法返回的是一個(gè)promise對(duì)象,并將resolve和reject存放于modal組件的data中,點(diǎn)擊取消按鈕時(shí),斷定為reject狀態(tài),并將模態(tài)框關(guān)閉掉,點(diǎn)確定按鈕時(shí),斷定為resolve狀態(tài),模態(tài)框沒有關(guān)閉,由調(diào)用modal組件的父級(jí)組件的回調(diào)處理完成后手動(dòng)控制關(guān)閉模態(tài)框。

調(diào)用 

  1. <!-- template --> 
  2. <confirm v-ref:dialog :modal-options.sync="modal"></confirm> 
  3. <!-- methods --> 
  4. this.$refs.dialog.confirm().then(() => { 
  5.     // 點(diǎn)擊確定按鈕的回調(diào)處理 
  6.     callback(); 
  7.     this.$refs.dialog.show = false;  
  8. }).catch(() => { 
  9.     // 點(diǎn)擊取消按鈕的回調(diào)處理 
  10.     callback(); 
  11. });  

用v-ref創(chuàng)建一個(gè)索引,就很方便拿到模態(tài)框組件內(nèi)部的方法了。這樣一個(gè)模態(tài)框組件就完成了。

其他實(shí)現(xiàn)方法

在模態(tài)框組件中,比較難實(shí)現(xiàn)的應(yīng)該是點(diǎn)擊確定和取消按鈕時(shí),父級(jí)的回調(diào)處理,我在做這個(gè)組件時(shí),也參考了一些其實(shí)實(shí)現(xiàn)方案。

使用事件轉(zhuǎn)發(fā)

這個(gè)方法是我的同事實(shí)現(xiàn)的,用在上一個(gè)項(xiàng)目,采用的是$dispatch和$broadcast來派發(fā)或廣播事件。

首先在根組件接收dispatch過來的transmit事件,再將transmit事件傳遞過來的eventName廣播下去 

  1. events: { 
  2.     /** 
  3.      * 轉(zhuǎn)發(fā)事件 
  4.      * @param  {string} eventName 事件名稱 
  5.      * @param  {object} arg       事件參數(shù) 
  6.      * @return {null
  7.      */ 
  8.     'transmit'function (eventName, arg) { 
  9.         this.$broadcast(eventName, arg); 
  10.     } 
  11. },  

其次是模態(tài)框組件內(nèi)部接收從父級(jí)組件傳遞過來的確定和取消按鈕所觸發(fā)的事件名,點(diǎn)擊取消和確定按鈕的時(shí)候觸發(fā) 

  1. // 接收事件,獲得需要取消和確定按鈕的事件名 
  2. events: { 
  3.     'tip'function(obj) { 
  4.         this.events = { 
  5.             cancel: obj.events.cancel, 
  6.             confirm: obj.events.confirm 
  7.         } 
  8.     } 
  9. // 取消按鈕 
  10. cancel:function() { 
  11.     this.$dispatch('transmit',this.events.cancel); 
  12. // 確定按鈕 
  13. submit: function() { 
  14.     this.$dispatch('transmit',this.events.submit); 
  15.  

在父級(jí)組件中調(diào)用模態(tài)框如下: 

  1. this.$dispatch('transmit','tip',{ 
  2.     events: { 
  3.         confirm: 'confirmEvent' 
  4.     } 
  5. }); 
  6. this.$once('confirmEvent',function() { 
  7.     callback(); 
  8.  

先是傳遞tip事件,將事件名傳遞給模態(tài)框,再用$once監(jiān)聽確定或取消按鈕所觸發(fā)的事件,事件觸發(fā)后進(jìn)行回調(diào)。

這種方法看起來是不是很暈?所以vue 2.0取消了$dispatch和$broadcast,我們?cè)谧罱捻?xiàng)目中雖然還在用1.0,但是也不再用$dispatch和$broadcast,方便以后的升級(jí)。

使用emit來觸發(fā)

這種方法來自vue-bootstrap-modal,點(diǎn)擊取消和確定按鈕的時(shí)候分別emit一個(gè)事件,直接在組件上監(jiān)聽這個(gè)事件,這種做法的好處是事件比較容易追蹤。 

  1. // 確定按鈕 
  2. ok () { 
  3.     this.$emit('ok'); 
  4.     if (this.closeWhenOK) { 
  5.         this.show = false
  6.     } 
  7. }, 
  8. // 取消按鈕 
  9. cancel () { 
  10.     this.$emit('cancel'); 
  11.     this.show = false
  12. },  

調(diào)用:

  1. <modal title="Modal Title" :show.sync="show" @ok="ok" @cancel="cancel"
  2.     Modal Text 
  3. </modal>  

但是我們?cè)谑褂玫臅r(shí)候經(jīng)常會(huì)遇到這樣的場(chǎng)景,在一個(gè)組件的內(nèi)部,經(jīng)常會(huì)用到多個(gè)對(duì)話框,對(duì)話框可能只是文字有點(diǎn)區(qū)別,回調(diào)不同,這時(shí)就需要在template中為每個(gè)對(duì)話框都寫一次<modal></modal>,有點(diǎn)麻煩。不想每次寫,可以用v-for來遍歷,這篇文章關(guān)于 vue 彈窗組件的一些感想有我與作者的討論,可以參考一下。

參考資料

責(zé)任編輯:龐桂玉 來源: segmentfault
相關(guān)推薦

2017-10-11 16:19:36

jquery留言框設(shè)計(jì)

2023-05-17 10:05:35

組件設(shè)計(jì)(Modal)組件

2016-09-06 19:45:18

javascriptVue前端

2011-07-01 11:33:00

Qt 模態(tài) 非模態(tài)

2022-02-20 19:02:16

RollupVue 2JavaScrip

2011-03-15 09:10:47

iptablesNAT

2011-03-15 14:26:23

iptablesNAT

2020-05-09 10:38:31

Python透視表數(shù)據(jù)

2024-01-23 09:15:33

Vue3組件拖拽組件內(nèi)容編輯

2018-04-16 14:39:10

Vue輪播切換

2020-09-24 14:06:19

Vue

2015-07-22 12:42:36

Pivot行列轉(zhuǎn)換

2017-10-27 22:03:35

javascrip

2016-09-19 13:44:54

vue翻頁組件Web

2024-08-13 09:26:07

2010-05-24 10:23:34

實(shí)現(xiàn)MySQL

2020-02-21 11:08:24

瀏覽器HTML設(shè)計(jì)

2022-04-26 05:55:06

Vue.js異步組件

2023-02-26 01:37:57

goORM代碼

2015-07-09 09:49:39

PHPSocket服務(wù)器
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)

老司机精品在线| 国产色在线观看| 快she精品国产999| 在线观看视频99| 曰本三级日本三级日本三级| av日韩国产| 久久久久国产精品人| 成人免费xxxxx在线观看| 免费在线观看黄色av| 日韩理论电影中文字幕| 欧美日韩精品福利| 欧美啪啪免费视频| 黄色成人影院| 国产亚洲一二三区| 成人精品一二区| 特级西西444www高清大视频| 精品动漫3d一区二区三区免费版| 亚洲无亚洲人成网站77777| 在线观看日本www| 日本在线播放一二三区| 自拍偷拍亚洲综合| 奇米精品在线| 手机看片一区二区| 国产麻豆视频一区| 国产成人精品一区二区在线| 久久久久免费看| 日韩国产综合| 亚洲精品视频在线观看视频| 粗大的内捧猛烈进出视频| 欧美性片在线观看| 狠狠躁天天躁日日躁欧美| 日韩精品福利片午夜免费观看| 久久久久国产精品嫩草影院| 国产伦精品一区二区三区视频青涩 | 成人av网站在线| 成人黄色免费网站在线观看| 国产午夜无码视频在线观看| 亚洲美女黄色| 久久久久久久91| 九九视频免费在线观看| 91精品国产乱码久久久久久| 一本色道久久综合狠狠躁篇怎么玩 | √天堂资源在线| 日韩毛片中文字幕| 国产精品美女久久久| 久久99伊人| 亚洲天堂一区二区三区| 亚洲天天在线日亚洲洲精| 蜜臀av午夜一区二区三区| 日本孕妇大胆孕交无码| ㊣最新国产の精品bt伙计久久| 日韩av电影免费在线观看| 日韩黄色影片| 91老师国产黑色丝袜在线| 国产一区再线| 亚洲色大成网站www| www.欧美日韩| 精品乱码一区| 亚洲av片在线观看| 久久精品亚洲精品国产欧美kt∨ | 中文日韩在线观看| 欧洲av一区二区三区| 竹菊久久久久久久| 国产视频丨精品|在线观看| www国产视频| 日本成人7777| 亚洲人成电影在线观看天堂色| 老司机福利av| 人人狠狠综合久久亚洲婷| 在线观看欧美成人| 成人免费视频入口| 欧美fxxxxxx另类| 久久久视频精品| 女人十八岁毛片| 日本成人在线电影网| 国产一区二中文字幕在线看| 一本一道人人妻人人妻αv| 狠狠色丁香久久婷婷综合_中| 亚洲综合小说区| 人妻一区二区三区四区| 久久久久久久久岛国免费| 亚洲日本精品| wwww亚洲| 在线观看亚洲精品| 美女被艹视频网站| 青青草这里只有精品| 在线播放亚洲激情| 久久午夜无码鲁丝片| 免费亚洲视频| 91免费电影网站| 天天爱天天干天天操| 91亚洲永久精品| 国产精品波多野结衣| 国产精品偷拍| 欧美日韩一卡二卡| 怡红院一区二区| 成人a'v在线播放| 欧美激情在线狂野欧美精品| 无码人妻丰满熟妇区bbbbxxxx| 精品一区二区三区在线观看国产| 国产精品久久久久久久久久久久午夜片| 深夜影院在线观看| 一区二区三区中文在线观看| 国产精品69页| 6080亚洲理论片在线观看| 亚洲人在线视频| 中文字幕在线2021| 久久一区精品| 国产91免费视频| av在线收看| 亚洲国产精品久久久男人的天堂| 丝袜制服一区二区三区| 国产精品男女| 久久精品国产精品| 国产成人精品一区二区色戒| 波多野结衣一区二区三区| 一区二区三区不卡在线| 日本在线啊啊| 欧美白人最猛性xxxxx69交| 国产精品理论在线| 午夜在线视频一区二区区别| 亚洲一区久久久| 香蕉视频网站在线观看| 欧美性高潮在线| 曰本三级日本三级日本三级| 爽成人777777婷婷| 国产极品jizzhd欧美| 天堂网2014av| 亚洲一二三区在线观看| 在线a免费观看| 91综合久久一区二区| 日韩av手机在线观看| 天天干天天色天天| 亚洲成人免费电影| 波多野结衣三级视频| 99久久夜色精品国产亚洲1000部| 日韩av电影在线免费播放| 日本免费网站在线观看| 亚洲国产另类av| 黑人无套内谢中国美女| 欧美日韩国产高清| 99re视频在线| 色呦呦久久久| 欧美不卡一区二区三区| 欧美极品aaaaabbbbb| 国产一区二区免费看| 在线观看精品视频| 小说区图片区亚洲| 久久福利视频网| 国产情侣一区二区| 亚洲精选视频免费看| 韩国一区二区在线播放| 91精品国产调教在线观看| 国产在线日韩在线| 中文字幕中文字幕在线十八区| 欧美高清hd18日本| 少妇被躁爽到高潮无码文| 国产精品123| www污在线观看| 少妇高潮一区二区三区| 欧美性视频在线| 三级在线播放| 欧美日韩色综合| 亚洲天堂黄色片| 国产成人av电影| 国产免费黄色av| 极品美女一区二区三区| 国产精品视频午夜| 自拍亚洲图区| 亚洲国产精品久久91精品| 久草国产精品视频| 国产午夜精品在线观看| 亚洲一级免费观看| 女生裸体视频一区二区三区| 成人午夜电影在线播放| 日本不卡1234视频| 日韩亚洲综合在线| 亚洲精品一区二区三区区别| 福利视频导航一区| 亚欧精品视频一区二区三区| 激情综合色丁香一区二区| 国产成人亚洲综合无码| 欧美激情影院| 成人激情av在线| 国产福利在线免费观看| 亚洲欧洲午夜一线一品| 国产精品无码天天爽视频| 亚洲自拍偷拍综合| 人妻精品久久久久中文| 国产一区亚洲一区| 自慰无码一区二区三区| 99久久精品国产亚洲精品| 国产精品视频一区二区三区经| 桃色一区二区| 久久99视频免费| 国产小视频福利在线| 欧美一区二区视频网站| 69国产精品视频免费观看| 国产精品久久久久三级| 欧美熟妇精品一区二区蜜桃视频| 日韩成人一区二区三区在线观看| 国产又粗又爽又黄的视频| 日韩有码av| 岛国视频一区| 国产情侣一区二区三区| 97在线看福利| 超碰免费在线播放| 亚洲欧美中文字幕| 亚洲精华国产精华精华液网站| 在线亚洲欧美专区二区| 日本a在线观看| 中文字幕制服丝袜成人av| 我和岳m愉情xxxⅹ视频| 国产精品18久久久久久久久 | crdy在线观看欧美| 日本亚洲欧美三级| av蜜臀在线| 欧美国产日韩精品| 麻豆网在线观看| 亚洲三级av在线| 天天干,夜夜操| 日韩精品专区在线影院观看| 中文字幕一区二区三区四区免费看| 亚洲成人1区2区| 欧美日韩人妻精品一区二区三区| 中文在线一区二区 | 一区二区导航| 精品欧美一区二区在线观看视频 | 亚洲啊v在线| 欧美劲爆第一页| 午夜伦理大片视频在线观看| 日韩综合中文字幕| 2017亚洲天堂1024| 中文字幕久热精品在线视频| 你懂的在线观看视频网站| 精品国产乱码久久久久久1区2区| 国产精品一区二区三区在线免费观看| 在线观看一区二区精品视频| 国产伦精品一区二区三区视频我| 午夜精品影院在线观看| 日韩福利片在线观看| 亚洲一区免费观看| 国产在线视频在线观看| 一区二区免费看| 久久精品美女视频| 亚洲小说欧美激情另类| 中文字幕一区二区三区手机版 | 一区二区www| 欧美日韩精品一区二区三区四区 | 日本一区二区电影| 国产精品黄页免费高清在线观看| 新片速递亚洲合集欧美合集| 国产福利成人在线| 成人国产精品| 91免费的视频在线播放| 亚洲一区二区免费在线观看| www.成人av| 美女扒开腿让男人桶爽久久动漫| 精品欧美一区二区在线观看视频 | 久久精品一区二区三区四区| 欧美特黄一区二区三区| 久久精品视频网| 欧美福利第一页| 最新久久zyz资源站| 午夜69成人做爰视频| 亚洲国产一区在线观看| 天天操夜夜操视频| 欧美在线三级电影| 国产欧美一区二区三区视频在线观看 | 日本精品久久久久久久久久| 日韩一级大片| 久草在在线视频| 韩国欧美国产一区| 艳妇乳肉豪妇荡乳xxx| 久久久久一区二区三区四区| 在线观看天堂av| 亚洲一区二区三区国产| 精品免费囯产一区二区三区 | 四虎影视2018在线播放alocalhost| 久久爱www成人| 日韩高清一区在线| 欧美揉bbbbb揉bbbbb| 97国产精东麻豆人妻电影| 国产一区成人| 在线观看免费的av| 成人av电影在线观看| 欧美大波大乳巨大乳| 亚洲欧美另类综合偷拍| 中文字幕高清视频| 国产欧美日韩视频在线| 亚洲精品自在在线观看| 精品96久久久久久中文字幕无| aa在线免费观看| 韩国一区二区三区| 中文字幕在线免费看线人| 国产精品久久久久一区| 国产无遮挡又黄又爽又色| 在线亚洲精品福利网址导航| 午夜老司机福利| 国产一区二区久久精品| 国产丝袜在线观看视频| 国产精品影片在线观看| 奇米影视777在线欧美电影观看| 亚洲最新免费视频| 亚洲欧美久久久| 无码人妻久久一区二区三区蜜桃| 国产亚洲福利社区一区| 国产精品自拍视频一区| 欧美男女性生活在线直播观看| 亚洲人午夜射精精品日韩| 色与欲影视天天看综合网| 精品国模一区二区三区| 国产区日韩欧美| 欧美日韩福利| 久国产精品视频| 欧美极品美女视频| 成人精品在线看| 精品美女一区二区| 中文字幕资源网在线观看| 国产日韩av高清| 红桃成人av在线播放| 欧美日韩在线中文| 成人免费毛片a| 青娱乐国产在线| 91精品国产乱| 求av网址在线观看| 国产精品视频xxx| 精品国产一区二区三区小蝌蚪| 欧美日韩不卡在线视频| 国产精品91一区二区| 卡通动漫亚洲综合| 欧美日本在线视频| 午夜视频成人| 国产精品久久久久久久电影| 台湾色综合娱乐中文网| 玩弄中年熟妇正在播放| 成人午夜免费电影| 成人免费看片98| 欧美不卡视频一区| 黄色影院在线看| 粉嫩av四季av绯色av第一区| 欧美有码视频| 日本亚洲一区二区三区| 一区二区三区在线观看视频| 国产模特av私拍大尺度| 久久手机免费视频| 欧美日韩午夜电影网| 日本黄xxxxxxxxx100| 国产一区二区三区在线观看免费| 亚洲视频重口味| 欧美一区二区三区视频| 日本理论片午伦夜理片在线观看| 亚洲xxxx在线| 国一区二区在线观看| 成熟妇人a片免费看网站| 五月婷婷激情综合| 欧美精品久久久久久久久久丰满| 国产成人精品久久二区二区91| 狠狠操综合网| 欧美激情国内自拍| 一区二区在线电影| 亚洲 美腿 欧美 偷拍| 国产99视频在线观看| 四虎成人av| 国产综合内射日韩久| 欧美色videos| h网站在线免费观看| 91情侣偷在线精品国产| 狠狠噜噜久久| 久久精品无码一区| 欧美人牲a欧美精品| 26uuu亚洲电影在线观看| 国产精品免费观看高清| 久久久久国产一区二区| 国产乱子轮xxx农村| 亚洲精品一线二线三线无人区| 蜜桃av在线| 正在播放亚洲| eeuss国产一区二区三区| 国产男人搡女人免费视频| 久久视频在线免费观看| 久久久久高潮毛片免费全部播放| 国产免费视频传媒| 亚洲精品日韩专区silk| 你懂的在线播放| 亚洲在线www| 日韩在线a电影| 久久久久国产精品夜夜夜夜夜| 亚洲女在线观看| 日韩中文一区二区| 免费午夜视频在线观看| 亚洲女与黑人做爰| 青青免费在线视频| 2014亚洲精品| 蜜臀久久99精品久久久画质超高清| 精品少妇久久久| 中文字幕久久久av一区| 日韩高清影视在线观看| 91网址在线观看精品| 在线观看日韩国产|