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

降本增效,攜程市場DIY商品卡片系統的設計與實現

開發 新聞
由于傳統商卡開發模式無法適應當前業務的快速發展,我們通過對開發中現有問題的分析,將UI和邏輯解耦設計了商卡系統,通過對CSS模塊的抽象,設計了商卡各個字段組件。

一、背景

攜程各個BU各個時期都有不同營銷頁面,數量眾多,其中很重要的一塊是產品模塊,運營需求的產品卡片樣式眾多,各個BU展示字段差別巨大,無法利用通用樣式,因此如需新增卡片或字段,傳統做法是運營提需求給設計,再提需求給開發,經過需求評審,正式開發,發布測試上線等等。

每次遇到大促活動或者接入新的業務方,都需要重新設計及開發商卡,而新的商卡大多只是新增一些換膚樣式,或個別字段,這卻需要開發人員多寫一套樣式代碼或新增字段樣式,同一個樣式應用于不同的業務方也需要重新進行開發,極大地浪費了開發和設計資源。

在DIY商品卡片系統開發前,由于開發成本的限制,營銷頁面上常用的商品卡片樣式基本固定為十幾種,這在用戶看來缺乏新意,吸引力不足,從而在一定程度上影響了營銷頁面商卡的點擊量。

綜上所述,為解決傳統商卡存在的以下問題:

  • 即使樣式差別很小也需要重復開發,耗時耗力。
  • 沒法多平臺統一卡片樣式,難于管理、復用性低。
  • 樣式固定、對用戶吸引力低導致點擊率及訂單轉化率低。

我們從UI和邏輯解耦,UI模板在平臺配置生成的角度考慮解決問題,設計了DIY商品卡片系統。

二、系統介紹

商卡系統將UI和邏輯進行解耦,UI部分可在商卡配置后臺進行配置,邏輯部分由開發人員處理后引入原子UI組件進行最終渲染。

圖片

2.1 商卡配置后臺

UI在商卡配置后臺中由產品或者運營人員參照設計稿進行自由拖拽式配置,并且給每個模塊綁定字段,同一套配置可以同時應用于H5和React Native。

2.2 原子UI組件

原子UI組件是顆粒度更小的一種靜態組件(React, React Native),可以通過手動開發或配合“產品畫布”DIY這兩種方式為業務組件提供渲染模板,其他使用方也可以提供一些固定的數據(契約)直接渲染單卡片樣式。開發人員只需在組件內引入原子組件的npm包,對業務邏輯進行處理后把相應字段的值傳給原子組件即可最終渲染真實產品信息。通過原子組件的模式,可以讓所有組件都“引用”線上的公共UI組件,直接應用在各商卡的業務方,輕松實現商品卡片樣式的統一,避免了每個業務方重復開發同一套樣式。下圖為商卡搭建的部分樣式:

圖片

2.3 效果

  • 商品卡片樣式現已擺脫對開發人員的依賴,產品運營團隊可以直接通過拖拽配置的方式,輕松定制全新的樣式。
  • 當同一商卡模板需要更新樣式時,僅需在商卡配置系統中進行配置更新,便可實現一鍵跨端修改的效果,使所有使用該模板的業務方同步更新。
  • 針對需要定制展示內容的業務方,我們提供了定制渲染能力,允許他們在整體樣式統一的基礎上,保留部分商卡內容的獨特風格。
  • 目前,我們已擁有400多張商卡和40多種常用模板,廣泛應用于攜程營銷頁面、特賣、星球號以及攜程直播等多個場景。
  • 商卡樣式的更新換代速度得到了極大提升,為用戶帶來更加新穎的體驗,從而增強了點擊欲望。經過AB實驗測試,我們發現商卡系統搭建的樣式相較于過去固定的樣式,在點擊率上有了顯著提升。

三、系統設計

DIY商品卡片系統主要由2部分組成:商卡渲染和配置平臺。

圖片

3.1 DIY商品卡片渲染

DIY商品卡片可以通過以下三種渲染方式渲染,可以根據需求和配置難度選擇合適的方式:

1)字段的寬高和位置都固定渲染

渲染組件按照在配置平臺上的布局進行商品卡片的渲染,字段之間沒有聯動設計,只能進行簡單卡片的渲染。

渲染稍復雜的卡片時面臨的問題主要有以下兩個:

  • 同一行的兩個字段,不能根據前一個字段的寬度動態改變后一個字段的位置。如下圖,第一張圖中顯示正常,第二張圖中當第一個字段評分變化為4分時,3797點評的位置還在原處,就會留有不合理的間距。

圖片

圖片

  • 卡片的高度也不能根據字段的長短和是否有缺失字段進行動態調整,如下圖,缺失兩個標簽后下方的字段并不會自動向上填補空白,卡片高度也不會相應減小,在實際應用場景中,很多商品卡片都不是固定高度,在展示商品時更傾向于緊湊的商品卡片布局,即卡片的高度要根據商品數據進行動態調整。

圖片

圖片

2) 字段的寬高和位置通過數據進行動態計算,依舊采用絕對布局的方式

  • 卡片橫向的動態布局

增加了行容器組件,將同一行的字段放進同一個行容器中就可以讓字段位置不再依賴固定坐標。

以React版渲染組件為例,行容器是一個flex布局的<div></div>,去掉放入行容器里的字段的絕對布局屬性,通過設置justify-content即可控制同一行字段的排列方式,自動補齊位置。

  • 卡片縱向的動態布局

獲取到商品數據和渲染數據后,先不對商品卡片進行渲染。通過動態算法和canvas渲染對字段是否存在和字段長度進行校驗,并根據校驗結果修改渲染數據。修改完成的渲染數據可以達到卡片高度和字段位置動態適應的效果。

動態算法分為以下幾個步驟:

a. 當字段所需高度增加或者減少時,檢查哪些字段的位置會受到當前字段高度變化的影響,將受影響字段和需要進行的調整收集起來。

b. 校驗所有字段后,對收集的字段對應的渲染數據進行調整。

c. 調整完成后開始根據渲染數據進行商品卡片渲染。

d. 商品卡片渲染完成后檢測每個字段是否正確渲染,對于計算有偏差的字段調整,根據真實渲染情況再次進行微調。

3)字段之間采用相對布局的方式進行排列

對于縱向的動態布局,依賴通過商品數據和渲染數據進行計算也會帶來一些問題,比如在渲染數據的調整上,調整后的商品卡片可能會和配置略有差異,有一些準確性的問題。

為了達到和手工開發一樣的效果,增加了垂直方向的容器,稱為垂直容器。放入垂直容器的字段,會被調整為相對布局的定位方式,字段依次向下排列,不依賴定位屬性。

考慮到商品卡片普遍情況下都是采用比較規則的布局方式,所以使用行容器加垂直容器層層嵌套的方式可以實現去絕對布局的效果,所有字段都自動根據前面的字段動態調整位置。

4)總體渲染流程

接入方將數據處理為契約中的格式,傳給原子UI組件進行渲染。商卡渲染時,通過場景號和版本從接口中讀取兩部分配置數據:

  • 商卡總體配置JSON:包含有效期時間、卡片寬高、背景色、圓角等。
  • 商卡內字段組件列表:包含每個字段組件的css和react native樣式以及一些聯動邏輯的配置。

當獲取到的字段組件列表長度大于0時,我們開始循環處理列表內的組件,不同的字段類型渲染成不同的組件,若遇到容器則進行遞歸,直到容器中的內容全都處理完。

圖片

3.2 配置平臺

考慮到解放開發人力,大部分布局不復雜的商卡可以由產品或者運營人員根據設計稿進行配置。為了易于非開發人員操作和理解、提高配置效率,我們在以下幾個模塊的設計上增加了許多考量。

1)字段組件設計

目前支持的字段組件有普通字段、圖片、普通容器、垂直容器、橫向布局容器以及內聯容器,這基本可以滿足設計稿的布局。普通容器主要存放需要浮動的元素。垂直容器和橫向容器其實就是flex布局的兩種形式。內聯容器是為了解決行內元素換行問題,正常用橫向布局容器是沒辦法實現這個效果的,內聯容器內的元素我們一律轉成inline元素。內聯容器主要應用在如下圖所示的情況:套餐名稱超出一行需要換行,星級以及金鉆標簽緊跟其后。

圖片

2)畫布交互設計

為簡化操作,我們將商卡系統設計成拖拽配置的形式,配置人員可以從左側可選字段組件中直接將組件拖進畫布。若畫布中已配置了容器,則可以直接拖進相應容器中,字段間的順序以及位置也是可以直接進行拖動調整,至于細微的位置調整,可以通過字段的樣式配置進行調整。

3)字段樣式配置

下圖所示的樣式配置基本上就是簡單的css屬性,在浮動類型這有個特殊處理:浮動類型為浮動即positinotallow="absolute"時,距離上、右、底,左邊實際上代表top、right、bottom,left;浮動類型為不浮動即positinotallow="relative"時,距離上、右、底,左邊實際上代表 margin-top、margin-right、margin-bottom,margin-left,這樣可以減少配置項。在行容器和垂直容器的配置中,額外還有對齊方式的配置,對應的是flex布局中justify-content和align-items,容器的子元素配置中也有壓縮和彈性比例系數的配置,即flex-shrink以及flex。目前的配置項幾乎可以達到還原設計稿的目的。

4)特殊問題處理

  • 問題:接口重復調用
  • 解決方案:發布訂閱

商品卡片的渲染schema獲取是在每一個商品卡片里進行的,渲染商品列表時就會有重復調用接口的問題。

通過一些方式將接口請求次數盡可能減少很重要,但因為各商品卡片之間相互獨立,并不能在某一個商品卡片中知道頁面中都有哪些商品卡片模版ID,我們減少請求次數的方案也就是對于同一個商品卡片模版,只請求一次。

商品卡片在獲取到卡片模版ID后,檢查當前ID是否已經有請求到的數據,有數據則直接從window上取對應的數據進行渲染,如果沒有則檢查該ID是否已經被標記為已經在請求數據,對于已經在請求數據的情況,監聽當前數據請求成功的消息,數據請求成功后觸發請求的商品卡片會通過消息推送當前模版ID的渲染schema,并將此數據存在window上。過程如圖中所示。

圖片

一些商品數據字段在攜程的應用場景中也是比較固定的,對于這樣的一些商品數據字段,我們通過提供默認樣式的方式減少配置時的工作量,配置人員只需要關心這樣的字段的位置、大小以及一些顏色方面的配置,不需要再關心如前綴圖標、復雜組合形式等問題。

  • 問題:RN樣式差異
  • 解決方案:手動進行兼容性處理

與h5不同的是,rn的樣式需要進行單獨處理,大部分樣式處理都在商卡配置后臺中用“css-to-react-native“包進行了轉換,某些特殊樣式由rn版原子組件單獨處理。例如:h5中的內聯容器在rn中要用<Text><Text/>當最外層容器,里面所有子容器也由<Text><Text/>包裹,這樣才能實現元素內換行。其他還有漸變背景色用LinearGradient組件處理、背景圖片轉換成<Image/>標簽、border拆分成borderWidth和borderColor來處理、下發的rn樣式適配屏幕寬高等等。

  • 問題:業務關聯
  • 解決方案:字段聯動

在一些場景下,商品卡片的數據之間也是有關聯關系的,我們提供了字段之間關聯的一些配置,如兩個字段互斥,永遠只出現其中一個字段;兩個字段也可以是必須同時出現的關系,當一個字段有值時另一個才出現,比如有酒店LOGO時才展示酒店名稱;還有的時候字段需要根據另一個字段進行樣式和展示形式的調整,比如在價格為0時商品卡片的搶購按鈕變為“免費”文案的純文字。

圖片

  • 問題:商卡展示不夠靈活
  • 解決方案:Render props

DIY商品卡片提供了自定義插槽,渲染時可以直接傳入一個JSX函數在配置位置渲染,例如:接入方傳入一個直播流播放器。這樣配置上更加靈活,DIY商品卡片組件也無需引入過多第三方組件。這樣的做法還帶來一個好處,留有一定的空間供開發人員介入,對于一些難以配置的數據展示形式,可以指定該數據的展示使用開發人員定制開發的數據展示模塊,開發和配置混合的形式極大地補充了DIY商品卡片的展示能力。

圖片

  • 問題:多點擊事件
  • 解決方案:自定義點擊事件函數

商卡有默認的點擊事件,一般用于商品的跳轉,若一張大卡內有多個點擊區域,可以用透明蒙層配置在點擊區域的上方,并綁定相應的字段。數據傳入時只需要傳入點擊事件對象數組,商卡會根據對象的name和綁定的字段名進行匹配,將對象的函數綁定在對應的字段上。通過name進行匹配就無需在新增點擊事件時在代碼內手動將點擊事件與字段進行綁定,這帶來的好處是可以減少商卡本身的開發改動,更加靈活,只需要配置字段和傳入字段一一對應即可。

圖片

  • 問題:卡片重復配置
  • 解決方案:父子商卡

對于一些重復度較高的商品卡片,將相同的部分保留作為公共部分,不同的部分抽取出來單獨配置是一種更合理的方式。

我們將這種模式的卡片配置稱為父子模塊,在配置時父模塊和子模塊沒有區別,兩種模塊都可以作為一個單獨的商品卡片進行渲染。

在卡片上配置一個空間,定義該空間的key,在渲染商品卡片時將key對應的子模塊ID和商品數據一起傳入父模塊,父模塊在配置在渲染時將子模塊渲染在預留空間里,即可實現兩個商品卡片的拼接。

圖片

四、商品卡片配置系統功能點

圖片

4.1 導入導出

導出數據:導出該頁面上的商卡樣式,導出格式為txt文件,方便進行備份和復用。

導入數據:為了使配置操作更為簡單,可導入已有的商卡模板或部分字段組件素材,導入后在此模板上進行增刪改操作,避免從0開始搭建。

4.2 版本切換

畫布可分為三個版本:線上版本、可編輯版本、歷史版本。線上版本為真實版本,歷史版本為上一次保存的線上版本。只有在可編輯版本內才可以編輯,編輯后可以保存或者上線,只有選擇上線才能替換線上版本。

可編輯版本的設計可以將線上與編輯隔離,以免未編輯完成的畫布影響線上,同時歷史版本在一定程度上也是一種備份。

4.3 預覽

畫布提供h5版本或app版預覽,預覽的版本為當前選中版本。預覽的商卡數據源分為兩種,一種是通用數據源,即樂高平臺內針對不同業務方預先配置好的數據字段;另一種為自定義數據,配置人員可以根據具體的需求以JSON的形式在樂高平臺內新增數據字段。通過預覽,配置人員可以在商卡上線前看到實時效果,同時通過自定義數據也可模擬一些極端情況,如某些字段缺失后,卡片布局是否會變形等

4.4 卡片配置

圖片

為簡化配置流程,重復利用素材,商卡配置后臺支持其他商卡導出的素材txt文件以及設計稿導出的元素素材txt文件導入進畫布。設計稿導出的為較小顆粒度的元素,如一個名稱字段、商品圖片,不包含容器類大顆粒度元素的導出。設計稿直出可以省略部分基礎配置,如:字號,字體顏色,圖片寬高,邊框及圓角等,配置人員只需專注于布局的配置即可,減少了基礎樣式的配置時間。其他商卡導出的素材可直接完美復制原效果,包括字段綁定的名稱等,這種方式導出的素材不止是小顆粒度的元素,也可以是整個容器甚至整張卡片。

除了直接導入,商卡系統有自帶的組件庫,可將其中的組件直接拖拽添加進畫布。目前支持的組件有字段、圖片、背景方塊、橫向布局容器、垂直布局容器、內聯容器和普通容器。通過選中畫布中的某個字段或容器可以配置其css屬性、調整容器內子元素的順序和對齊方式等。除了樣式配置,還有字段屬性配置,字段要與對應的字段名進行綁定才能正常顯示,若畫布中配置了某個字段組件,但數據中沒有此字段名,最終上線后也是不展示此字段組件的,唯有一一對應才能正常展示。

配置完成后可以先通過預覽查看實時效果,避免上線后出現問題。上線后接入方通過唯一的商卡場景號調用該商卡,按照契約內容傳入字段即可成功渲染。

五、接入樣例

DIY商品卡片組件主要通過npm包的形式引入,按照契約傳遞數據即可渲染。

傳遞給組件的數據分為三類:

a. 商品信息

渲染商品卡片所必需的數據,如酒店名、酒店星級、價格、主圖鏈接等商品信息。

b. 自定義處理邏輯

在我們的商品卡片中,可自定義的處理邏輯主要是在點擊事件中。組件支持對整個商品卡片的點擊方法進行覆蓋,也支持對單個字段如酒店標簽進行添加點擊事件處理邏輯。

c. 定義渲染信息

對于商品卡片的渲染,提供了0%~100%程度的自定義渲染方式。0%,就是接入方開發人員只需要傳遞商品數據,無需關心數據的渲染。100%,即是接入方開發人員可以將對應商品數據的整個渲染完全覆蓋掉,DIY商品卡片組件使用render props的方式渲染接入方傳遞進來的渲染方法。不到100%又高于0%程度的渲染,則是提供給接入方傳入指定商品數據的CSS以追加的形式修改原有CSS的能力。

圖片

六、總結

由于傳統商卡開發模式無法適應當前業務的快速發展,我們通過對開發中現有問題的分析,將UI和邏輯解耦設計了商卡系統,通過對CSS模塊的抽象,設計了商卡各個字段組件。商卡系統這使得我們能夠以低代碼平臺的方式實現通用的樣式跨端解決方案,從而達到降低成本和提高效率的目的。這個系統同時表明,前端工程師不僅需要關注樣式和解決渲染問題,還可以通過對CSS、渲染機制、數據結構和框架的深入理解來解決更廣泛的問題。

責任編輯:張燕妮 來源: 攜程技術
相關推薦

2024-09-30 08:47:07

數據分析降本增效覆蓋用戶

2024-03-27 12:31:54

數據分析降本增效促銷活動

2022-07-13 14:54:52

邊緣計算人工智能機器學習

2023-07-28 09:48:37

2024-08-07 11:06:49

2022-06-02 14:39:11

混沌工程實驗微服務

2024-09-20 08:20:20

2015-09-30 14:48:37

中石化北明軟件華為

2024-02-20 13:29:04

網絡安全研發

2024-07-05 15:05:00

2024-02-19 14:14:02

云計算人工智能大語言模型

2023-12-25 15:38:55

2023-10-12 19:05:13

研發管理降本增效AI

2022-03-28 14:31:01

Python編程語言工具包

2023-09-25 15:13:57

數字化轉型

2016-08-10 21:22:34

大數據運營商
點贊
收藏

51CTO技術棧公眾號

免费成人在线观看av| 欧美激情在线狂野欧美精品| jizz18女人| 欧美黑人xx片| 久久久综合视频| 成人在线播放av| 欧美成人精品欧美一级乱黄| 精品视频网站| 欧美大片免费久久精品三p| 3d动漫一区二区三区| av影片免费在线观看| 国产成人免费高清| 国产精品久久久久久久久久东京| 欧美成人片在线观看| 久久av超碰| 日韩欧美国产三级| 99热手机在线| 麻豆蜜桃在线观看| 1000部国产精品成人观看| 久久久亚洲综合网站| 国产三级在线观看视频| 视频一区欧美精品| 欧美精品国产精品日韩精品| 99久久99久久精品免费| 久久精品66| 欧美一区日本一区韩国一区| 男人的天堂日韩| 国产白浆在线免费观看| 亚洲婷婷国产精品电影人久久| 欧美日韩免费高清| 欧美 日韩 国产 精品| 国产尤物一区二区在线| 国产免费成人av| 神马久久久久久久| 一区在线免费观看| 欧美肥婆姓交大片| 国产一区二区播放| 香蕉综合视频| 菠萝蜜影院一区二区免费| 偷拍夫妻性生活| 亚洲精品亚洲人成在线| 亚洲第一视频网站| 亚洲欧洲国产视频| 国产精品国产亚洲精品| 欧美日韩小视频| 奇米影音第四色| 午夜日韩成人影院| 91福利国产精品| 日韩手机在线观看视频| 不卡福利视频| 欧美日韩国产丝袜另类| 国产av天堂无码一区二区三区| 日本在线观看大片免费视频| 亚洲欧美色一区| 天堂av免费看| 中中文字幕av在线| 一区二区三区成人| 欧美成人精品免费| 麻豆理论在线观看| 色狠狠综合天天综合综合| 亚洲熟妇av一区二区三区| 欧美粗大gay| 91久久免费观看| 三上悠亚在线一区二区| 日本综合视频| 欧美精品在欧美一区二区少妇| 五月天激情播播| 欧美午夜网站| 精品国产亚洲在线| 欧美黑人欧美精品刺激| 欧美色图激情小说| 不卡av日日日| 欧美日韩中文视频| 亚洲欧美视频| 欧美最猛性xxxx| 蜜臀99久久精品久久久久小说| 日韩高清一区在线| 91精品久久久久久久| 国产高清视频免费| av在线一区二区三区| 欧美二区三区| 男人天堂久久久| 亚洲最大成人综合| 妞干网在线免费视频| 成人在线高清| 亚洲福利视频久久| 国产7777777| 欧美人成在线| 日韩av三级在线观看| 一区二区三区免费在线| 懂色av一区二区三区免费观看| 久久亚洲高清| 麻豆网站视频在线观看| 亚洲国产精品麻豆| caoporn超碰97| 一区二区三区视频播放| 国产亚洲精品久久久| 永久看片925tv| 日韩在线一区二区| 国产精品免费视频一区二区| 国产九九在线| 一区二区三区四区在线| 波多野结衣天堂| 精品女人视频| 久久久999国产| 高清乱码免费看污| 国产99久久久久久免费看农村| 日本精品一区| 91超碰在线免费| 欧美人成免费网站| 老司机福利av| 欧美特黄视频| 国产噜噜噜噜久久久久久久久| 好吊色一区二区三区| 亚洲国产激情av| 免费无遮挡无码永久视频| 99综合久久| 国产亚洲欧洲高清| 一级片免费网址| 国产精品一区二区久久不卡| 亚洲成人午夜在线| 性爽视频在线| 欧美videossexotv100| 亚洲欧美卡通动漫| 久久九九电影| 精品一区二区久久久久久久网站| 成人高清免费在线| 欧美军同video69gay| 午夜精产品一区二区在线观看的| 99xxxx成人网| 国产日韩一区二区三区| 黄色羞羞视频在线观看| 欧美一区二区免费视频| 国产探花在线视频| 久久福利视频一区二区| 色女孩综合网| 999国产精品亚洲77777| 国产一区二区三区高清在线观看| 性无码专区无码| 97久久精品人人做人人爽50路| 日韩a级黄色片| 免费观看在线一区二区三区| 久久国产一区二区三区| 国产又黄又大又爽| 国产精品理伦片| 午夜激情av在线| 波多野结衣在线播放一区| 国产精品久久久av久久久| 精品美女视频在线观看免费软件| 欧美性xxxx| 日本aaa视频| 日韩精品成人一区二区在线| 色大师av一区二区三区| 国产精品久久久久久吹潮| 爽爽爽爽爽爽爽成人免费观看| 中文字幕777| 国产精品久久久一本精品| 玖玖爱视频在线| 亚洲国产一成人久久精品| 91视频免费网站| 2021国产在线| 亚洲国产成人爱av在线播放| 日韩手机在线观看| 国产亚洲欧美中文| 青青草久久伊人| 综合视频在线| 精品国产一区二区三区四区vr| 高端美女服务在线视频播放| 亚洲欧美日韩图片| 怡春院在线视频| 亚洲一区二区中文在线| 少妇一级淫片免费放播放| 国产精品久久久久久久免费软件 | 久久综合五月天婷婷伊人| 国产 福利 在线| 日韩成人精品一区二区| 91精品视频免费看| 大桥未久在线播放| 亚洲性视频网站| 国产视频在线免费观看| 性做久久久久久免费观看欧美| 国内精品久久99人妻无码| 麻豆精品久久精品色综合| www国产免费| 一道本一区二区三区| 国产精品综合久久久| 免费男女羞羞的视频网站在线观看| 精品视频久久久久久| 中文字幕永久在线观看| 亚洲一级电影视频| 一级在线观看视频| 成人天堂资源www在线| 国产免费999| 亚洲高清免费| 手机成人av在线| 色天下一区二区三区| 成人a在线视频| 伊人久久视频| 欧美极品少妇xxxxⅹ免费视频 | 亚洲欧洲韩国日本视频| 中文字幕人妻一区| 日本大胆欧美人术艺术动态| 中文字幕日韩精品无码内射| 国产伦一区二区三区| 成人欧美一区二区三区在线观看| 亚洲成人不卡| 97超级碰碰碰| 青青在线视频| 丝袜一区二区三区| 韩国免费在线视频| 精品999久久久| 国产绿帽一区二区三区| 色噜噜狠狠色综合欧洲selulu| 欧美日韩激情在线观看| 国产精品色呦呦| 白白色免费视频| 成人av在线影院| 三级网站免费看| 老司机精品视频一区二区三区| www.中文字幕在线| 黄色日韩精品| 国内外成人激情免费视频| 日韩毛片视频| 日韩高清dvd| 自拍偷拍精品| 精品欧美国产| 日韩影视在线观看| 国产精品免费一区二区三区| 国模大尺度视频一区二区| 国产成人97精品免费看片| 国产美女精品写真福利视频| 欧美日韩国产成人在线| 羞羞网站在线免费观看| 久久最新资源网| 国产一二区在线观看| 色偷偷偷亚洲综合网另类| 91caoporm在线视频| 国产午夜精品免费一区二区三区| 男人天堂综合| 亚洲久久久久久久久久久| 亚洲欧洲国产综合| 日韩国产在线播放| 偷拍自拍在线| 亚洲精品中文字幕有码专区| 深夜福利在线看| 亚洲欧美一区二区精品久久久| 欧美精品少妇| 国产亚洲精品美女| 在线免费观看黄色网址| 丝袜情趣国产精品| av香蕉成人| 久久久久久有精品国产| 国产欧洲在线| 国产成人久久久| 成人黄色在线| 亚洲一区二区少妇| 亚洲一区 二区| 韩国成人一区| 综合干狼人综合首页| 亚洲成人精品电影在线观看| 国产精品成人一区二区不卡| 日本黄网站色大片免费观看| 亚洲高清不卡| 日韩毛片在线免费看| 免费黄网站欧美| 日本一二三区在线| jvid福利写真一区二区三区| 国产av自拍一区| 国产精品久久看| 久久国产在线视频| 欧美色道久久88综合亚洲精品| 波多野结衣一区二区在线| 欧美另类z0zxhd电影| 性中国xxx极品hd| 亚洲精品中文字| 国产不卡在线| 97精品一区二区视频在线观看| av成人免费看| 国产精品国产三级欧美二区| 沈樵精品国产成av片| 自拍偷拍亚洲色图欧美| 亚洲伦伦在线| 日韩高清第一页| 不卡电影一区二区三区| 手机看片福利视频| 亚洲综合精品自拍| 欧美特级黄色片| 精品国产一二三区| 香蕉视频在线免费看| 久久全国免费视频| 国产第一亚洲| 国产一区二区三区高清| 色一区二区三区四区| 日韩网站在线免费观看| 热久久久久久久| 日韩Av无码精品| 国产精品久久久久久一区二区三区| 久久精品国产亚洲AV无码男同| 欧洲视频一区二区| 亚洲伦理在线观看| 日韩在线欧美在线国产在线| 9765激情中文在线| 成人亚洲激情网| 国内精品伊人久久久| 无码人妻少妇伦在线电影| 蜜桃av一区二区| 免费在线观看成年人视频| 一区二区三区在线免费观看| 中文字幕一区二区三区四区欧美| 精品少妇一区二区三区日产乱码 | 人妻少妇偷人精品久久久任期| 久久久电影一区二区三区| 黄色一级片在线| 911国产精品| wwwxxx在线观看| 欧美一区二区三区免费观看| 成人影院中文字幕| 黄黄视频在线观看| 国内久久婷婷综合| 丰满的亚洲女人毛茸茸| 欧美日韩在线观看视频| 少妇av一区二区| 美女精品久久久| **日韩最新| 一区二区三区不卡在线| 日韩中文字幕不卡| 欧美bbbbb性bbbbb视频| 五月婷婷激情综合网| 精品黑人一区二区三区在线观看| 日韩中文字幕网站| 欧美大片1688网站| 日本高清不卡一区二区三| 亚洲欧美日本日韩| 91av在线免费| 精品久久久久久中文字幕| 黄色片网站免费在线观看| 欧美高清在线播放| 亚洲视频精选| 日本五级黄色片| 夫妻av一区二区| 久草网视频在线观看| 日韩精品一区二区三区视频在线观看| 黄色小网站在线观看| 成人国产精品一区二区| 天天综合久久| 自拍一级黄色片| 亚洲综合男人的天堂| 国产小视频一区| 性色av一区二区三区红粉影视| 精品按摩偷拍| 国产极品粉嫩福利姬萌白酱| 91免费小视频| 青青视频在线免费观看| 中文字幕av一区| 自拍偷拍亚洲图片| 日韩在线视频在线| 99久久夜色精品国产网站| 影音先锋亚洲天堂| 亚洲一区二区黄| 999色成人| 国产激情片在线观看| www.欧美日韩| 天干夜夜爽爽日日日日| 日韩中文字幕在线播放| 国产麻豆一区二区三区| 岛国大片在线播放| 久久综合久久综合久久综合| 国产精品第6页| 日韩在线播放视频| 国产一级成人av| 成年人视频在线免费| 中文字幕一区免费在线观看| 国产极品久久久| 2021久久精品国产99国产精品| 国产精品亚洲人成在99www| 亚洲免费999| 图片区小说区国产精品视频| 国产高清自拍视频在线观看| 91久久久久久久久久久| 一本久道久久综合狠狠爱| 蜜臀久久99精品久久久久久| 正在播放亚洲一区| 中文字幕在线官网| 不卡中文字幕在线| 9l国产精品久久久久麻豆| 在线视频精品免费| 久久久久亚洲精品| 国产精品一区二区99| 色哟哟免费视频| 91久久线看在观草草青青| 免费电影视频在线看| 丝袜美腿玉足3d专区一区| 成人高清视频免费观看| 在线免费观看一级片| 性欧美亚洲xxxx乳在线观看| 日韩在线二区| 五级黄高潮片90分钟视频| 91精品国产综合久久香蕉麻豆| 日韩久久一区二区三区| 免费看欧美一级片|