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

如何設計可視化搭建平臺的組件商店?

大數據 數據可視化
之前一直在做 lowcode 和可視化相關的項目,也圍繞可視化技術輸出了一系列技術文章,今天我繼續和大家來聊聊可視化平臺相關的話題——組件商店。

之前一直在做 lowcode 和可視化相關的項目,也圍繞可視化技術輸出了一系列技術文章,今天我繼續和大家來聊聊可視化平臺相關的話題——組件商店。這個需求其實很早在我開源 H5-Dooring 之后就有網友提出過 issue ,如下:

正好最近也做了一系列的重構和優化,覺得是時侯著手組件商店了,所以借此機會和大家詳細聊聊如何設計可視化搭建平臺的組件商店。

按照我一向的寫作風格,我會在下面列出文章的大綱,以便大家有選擇且高效率的閱讀和學習:

1.什么是組件商店,為什么要設計組件商店

2.組件商店工作流設計

3.組件商店工作流具體方案實現

  • 實現在線代碼編輯器
  • 組件提交方案設計
  • 組件審批方案設計
  • 組件上架更新方案

4.可視化搭建平臺組件商店總結及后期規劃

文章視圖如下,大家在平時在工作中也可以通過思維導圖的方式來整理思路。

什么是組件商店, 為什么要設計組件商店

“商店”大家也許并不陌生,對用戶而言,其基本用途是滿足正常的消費需求;對供應商而言,商店提供了一種銷售自身產品的營銷推廣渠道;對商店自身而言,一方面獲得了客流和利潤,另一方面還能提供自身價值在空間上的延伸。

通過以上的圖例說明,我們很容易想到一個詞——生態。因為每一個環節都在相互促進,相互影響。那么對于商店這個實體有了具象的認知之后,我們再來看看技術領域的“組件商店”。

對于可視化搭建平臺而言,其中一個核心的環節就是組件資產。用戶在設計搭建頁面時會消費各種各樣的組件,但是對于不同的用戶而言,組件的需求往往是不一樣的,大部分的 lowcode 或者 nocode 平臺都不能很好的解決用戶這些定制化的組件需求,所以為了解決這一問題,組件商店就孕育而生。

我們需要在平臺中提供一種機制,支撐生產者生產組件,定義組件,同時管理者可以對生產者生產的組件進行分類管理(比如上架/下架/刪除/排序等)。做過電商系統的朋友可能會發現,它和電商平臺的商品發布上線是一個邏輯流程:

那么接下來我就帶大家一起設計一個這樣的流程,供大家參考。

組件商店工作流設計

根據上面的介紹和分析,我們要想實現完整的組件商店工作流,需要滿足以下幾點:

  • 組件線上編輯(上傳)模塊
  • 組件審核模塊
  • 組件更新/發布模塊
  • 組件管理(上架/下架/刪除/下載)

有了以上4塊的支持,基本的組件商店就可以 work 了。具體流程如下:

組件商店工作流具體方案實現

在有了具體的規劃和設計之后,我們就可以一步步來實現了。

1.實現在線代碼編輯器

在線代碼編輯器目前市面上有幾種成熟的方案,比如:

  • react-monaco-editor
  • react-codemirror2
  • ace | 性能和功能上可以媲美本地代碼編輯器

大家可以選擇以上任意一種方案,這里筆者采用 react-codemirror2 來實現。實現后的效果如下:

由上圖可以看到我們可以在線編寫React,Css,Js 代碼,并且可以配置組件信息。首先我們來安轉一下插件:

  1. yarn add react-codemirror2 codemirror2 

codemirror 給我們提供了很多語言支持和不同風格的代碼主題,我們可以很輕松的制作不同語言的編輯面板。接下來我帶大家實現一個React代碼編輯器:

  1. import {UnControlled as CodeMirror} from 'react-codemirror2'
  2. require('codemirror/mode/jsx/jsx'); 
  3.  
  4. const react_code = `import styles from './index.less'
  5. import React, { memo, useState } from 'react'
  6. import ReactDOM from 'react-dom'
  7.  
  8. const MenuCp = memo((props) => { 
  9.   const { visible, list, bgColor, top } = props; 
  10.   return ReactDOM.createPortal( 
  11.     <div className={styles.menuWrap} style={{display: visible ? 'block' : 'none', backgroundColor: bgColor, top: (top + 6) + 'px'}}> 
  12.       H5-Dooring 
  13.     </div>, 
  14.     (document as any).querySelector('.react-grid-layout').parentNode, 
  15.   ) 
  16. })` 
  17.  
  18. const ReactEditPanel = () => { 
  19.   const codeEditorChange = ( 
  20.       _editor: CodeMirror.Editor, 
  21.       _data: CodeMirror.EditorChange, 
  22.       value: string,  
  23.       type: string 
  24.       ) => { 
  25.       console.log(_data, value, type) 
  26.     } 
  27.   return <CodeMirror 
  28.           value={react_code} 
  29.           className={styles.codeWrap} 
  30.           options={{ 
  31.               mode: 'jsx'
  32.               theme: 'material'
  33.               lineNumbers: true 
  34.           }} 
  35.           onChange={(editor, data, value) => codeEditorChange(editor, data, value, 'react')} 
  36.       /> 

以上就實現了一個簡單的React代碼編輯器,是不是很簡單呢? 同理對于 css ,js 代碼編輯器,也是同樣的方式,我們只需要定義 CodeMirror 屬性的mode 為 css ,javascript 即可。我們還可以設置 theme 來切換到我們喜歡的代碼主題,這里筆者使用的material風格。

單純實現在線代碼編輯器還不夠,我們還需要對代碼進行處理,保存,對組件進行定義,接下來我們就來看看組件是如何提交的。

2.組件提交方案設計

當“ 生產者 ”編寫好組件代碼之后,需要對組件自身進行定義。因為可視化平臺組件物料很依賴平臺的組件開發協議,我們需要按照平臺的規范去上傳規范的自定義組件,這樣平臺才能更好的理解應用組件,保持用戶認知的一致性。

組件描述信息筆者這里設計了如下字段:

  • 組件名稱 (中文)
  • 組件名 (英文,方便存庫)
  • 組件分類 (基礎,可視化,營銷,媒體等)
  • 組件默認大小 (寬高)
  • 組件圖標 (方便用戶認知,查找)

大家也可以根據自己的平臺特性來定義和規范,這樣我們就可以提交一個完整的組件數據了。

目前我的做法是將用戶提交的完整的組件數據存在庫中,以便審核轉化為可視化平臺可以消費的組件,當然大家也可以用更智能的方式,自動對組件代碼信息進行提取轉化,其缺點就是誤差率無法控制,以及無法對組件進行準確的描述。以下是我提交的效果:

組件提交邏輯也很簡單:

  1. form.validateFields().then(values => { 
  2.   codeRef.current['form'] = { 
  3.     ...values
  4.     icon: values.icon[0].url 
  5.   }; 
  6.   req.post('/visible/cp/save', codeRef.current).then(res => { 
  7.     setIsModalVisible(false); 
  8.   }) 
  9. }).catch(errorInfo => { 
  10.   console.log(errorInfo) 
  11.   setCurTab("4"
  12. }) 

我們只需要用 antd 的Form 將用戶填寫的數據收集起來提交給后臺接口即可。由于我的后臺采用 nodejs 實現,上傳接口無非就是保存組件數據,實現比較簡單,這里就不一一介紹了。對 nodejs 感興趣的朋友可以參考我之前的開源項目從零搭建全棧CMS系統。

3.組件審批方案設計

組件審批主要由網站管理人員來操作,當用戶組件提交成功之后,客戶端會通過消息信令通知管理員,管理員收到消息后會審核組件。那么整個過程也很簡單,我們可以使用 websocket 來實現消息雙向通信,完整流程如下:

我們先來實現 socket 通信,這里我就采用市面比較成熟的 socket.io,來簡單打通一個客戶端, 服務端的雙向通信流程。

首先我們先按照一下依賴:

  1. # 服務端 
  2. yarn add socket.io 
  3.  
  4. # 客戶端 
  5. yarn add socket.io-client 

對于服務端,我們需要進行如下改寫:

  1. import koa from 'koa'
  2. import http from 'http'
  3.  
  4. const app = new koa(); 
  5. const server = http.createServer(app.callback()); 
  6. const io = require('socket.io')(server); 
  7.  
  8. // 一些業務邏輯... 
  9.  
  10. // socket通信 
  11. io.on('connection', (socket) => { 
  12.     console.log('a user connected'); 
  13.     socket.on('component upload success', (msg) => { 
  14.       // 通知審批 
  15.       io.emit('component review', msg) 
  16.     }) 
  17.   }); 
  18.  
  19. server.listen(config.serverPort, () => { 
  20.     console.log(`服務器地址:xxx.xxx.xxx`) 
  21. }); 

對于客戶端,邏輯如下:

  1. import io from 'socket.io-client' 
  2. import { serverUrl } from '@/utils/tool' 
  3.  
  4. const socket = io(serverUrl); 
  5.  
  6. // ... 一些邏輯 
  7. useEffect(() => { 
  8.    socket.on('connect'function(){ 
  9.      console.log('connect'
  10.    }); 
  11.    socket.on('htmlWorked'function(data){ 
  12.      const { result, message } = data 
  13.      if(result !== 'error') { 
  14.        // ... 
  15.      }else { 
  16.        // ... 
  17.      } 
  18.       
  19.    }); 
  20.    socket.on('disconnect'function(e){ 
  21.      console.log('disconnect', e) 
  22.    }); 
  23.  }, []) 

通過以上的實現方式客戶端和服務端就可以隨時進行通信了。接下來我們看看審批的效果:

用戶在 H5-Dooring 平臺提交的組件都會流入管理后臺,管理員可以對組件進行審查以及下載源碼等操作。審批同樣會用到 codemirror 這個庫,主要是將存到數據庫的字符串代碼進行回顯。當然還可以實現線上預覽組件上線后的效果,這塊大家感興趣的可以自己嘗試一下實現方案,原理也很簡單。我們來看看審批的演示:

4. 組件上架更新方案

組件上架的方案也有很多,比如可以手動上架更新,也可以用程序自動化的完成。那么這里我介紹一下我的線上自動化上架的方案,這里還是需要借助上面介紹的 socket.io 和 nodejs。原理大致如下:

完整的流程就是平臺管理員對組件審批通過之后,會自動用 socket 向服務端發送審批通過信號,服務器會對組件數據進行解析,寫入對應類別下的組件庫里(也就是組件入庫),并將組件信息元寫入到編輯器基座,此時為了更新基座拿到最新的效果,需要 nodejs 解析構建指令線上打包基座,基座更新完之后會用 socket 發送消息給 H5-Dooring,通知用戶組件庫已更新,提示用戶是否刷新組件列表,至此,一個完整的組件上架更新流程就完成了。這里我們實現一下如何線上打包編輯器基座。

首先我們需要對 nodejs 的父子進程有一定的了解,比如 child_process。我會使用child_process 的 exec 實現解析并執行命令行指令,如果大家對 nodejs 的父子進程不太熟悉,也可以參考我之前的文章 基于NodeJS從零構建線上自動化打包工作流。

因為整個過程需要自動化的去處理,不能像我們之前打包項目一樣,手動執行 npm run build 或者 yarn build 。我們需要程序自動幫我們執行這個命令行指令,具體方案如下:

  1. import { exec } from 'child_process' 
  2. const outWorkDir = resolve(__dirname, '../h5_base_frame'
  3. const fid = uuid(8, 16) 
  4. const cmdStr = `cd ${outWorkDir} && yarn build ${fid}` 
  5.  
  6. router.post(api.generalConfig, 
  7.     auth, 
  8.     ctx => { 
  9.       // ... 
  10.       exec(cmdStr, function(err, stdout, stderr){ 
  11.        if(err) { 
  12.          console.log('api error:'+stderr); 
  13.          io.emit('htmlWorked', { result: 'error', message: stderr }) 
  14.        } else { 
  15.          io.emit('component update success', { result: 'success', message: 'xxxx' }) 
  16.        } 
  17.       }) 
  18.       // ... 
  19.     } 
  20. ); 

通過以上的方式,我們就可以線上打包更新我們的項目基座,并植入任何參數,如果需要動態寫入文件,我們只需要用 fs 模塊處理即可,通過這樣的線上工作流,我們還可以實現更復雜的邏輯,甚至實現一個小型的前端CI工作流。那么大家如果有更優雅更好的方案,也是可以隨時在評論區交流。

可視化搭建平臺組件商店總結及后期規劃

以上所有的設計方案實現都是基于實際需求來設計的,當然還有很多細節需要處理和優化,隨著需求和,業務的復雜,后期還會做組件統計,組件數據分析,組件監控等能力,大家也可以參考以上的設計方案,設計自己的組件商店。

如果大家對可視化搭建或者低代碼/零代碼感興趣, 也可以參考我往期的文章或者在評論區交流你的想法和心得。

本文轉載自微信公眾號「趣談前端」,可以通過以下二維碼關注。轉載本文請聯系趣談前端公眾號。

 

責任編輯:姜華 來源: 趣談前端
相關推薦

2021-11-19 08:30:39

H5-Dooring 可視化組件商店

2024-03-22 08:21:48

可視化搭建平臺組件商店H5-Dooring

2021-02-28 07:42:40

可視化網格線H5-Dooring

2020-12-29 08:04:16

可視化地圖組件日歷組件

2021-06-16 08:30:36

Dooring可視化數據源設計剖析

2021-06-16 07:05:03

安全

2022-01-14 07:56:38

流布局設計拖拽

2021-01-09 09:48:10

可視化自然流布局 LowCode

2023-03-16 20:46:40

可視化平臺迭代

2022-06-29 08:28:58

數據可視化數據可視化平臺

2024-02-05 13:40:00

Mathlive開源庫Web 組件

2021-07-12 17:23:47

零設計可視化引擎

2023-12-06 08:07:13

拖拽庫可視化

2022-10-14 07:25:49

2022-10-14 16:25:50

數據可視化大屏搭建BI平臺

2021-09-27 08:31:01

數據可視化柱狀圖折現圖

2010-08-12 13:52:38

Flex組件

2020-03-11 14:39:26

數據可視化地圖可視化地理信息

2010-07-30 14:00:41

Flex組件

2017-03-06 08:37:52

數據可視化設計
點贊
收藏

51CTO技術棧公眾號

国产精品xxxxxx| 欧美大片免费播放| 中文字幕在线看人| 色欧美自拍视频| 日韩欧美第一区| 久久国产成人精品国产成人亚洲| wwwxxx在线观看| 国产精品一卡二卡在线观看| 国内自拍欧美激情| 欧美成人另类视频| 亚洲综合网站| 在线亚洲一区观看| 无码人妻精品一区二区蜜桃网站| 牛牛热在线视频| 国产在线国偷精品产拍免费yy| 久久久久久久久久久免费 | 亚洲精品视频在线观看视频| 天天综合天天添夜夜添狠狠添| 黄色小说在线播放| 中文av一区二区| 国产精品自拍首页| 一级特黄aaa| 西西裸体人体做爰大胆久久久| 免费91麻豆精品国产自产在线观看 | av伦理在线| 综合久久久久久久| 日本一区二区三区在线视频 | 亚洲精品视频网上网址在线观看| 日本少妇一区二区三区| 色猫猫成人app| 精品免费在线视频| 国产精品久久久久久久久电影网| 亚洲成人三级| 国产欧美日韩精品一区| 精品国产91亚洲一区二区三区www| 一级特黄色大片| 视频一区视频二区中文字幕| 91精品国产乱码久久久久久久久| 欧美三级在线免费观看| 亚洲蜜桃视频| 中文字幕亚洲综合久久| 中国美女乱淫免费看视频| 亚洲精品aⅴ| 日韩一二三区视频| 亚洲五月激情网| 伊人久久精品| 欧美精品自拍偷拍动漫精品| 日日噜噜夜夜狠狠| 电影久久久久久| 色综合久久天天| 国产最新免费视频| 亚洲精品日产| 欧美性猛交xxxx免费看久久久| 99热亚洲精品| 国产精品原创| 欧美日韩在线视频观看| www国产精品内射老熟女| 2018av在线| 午夜精品久久久久久久久久久 | 亚洲欧美综合国产精品一区| 日韩成人精品一区二区三区| 国产成人一区在线| 亚洲a在线播放| 国产麻豆免费视频| 国产美女在线观看一区| 亚洲综合国产精品| 成人免费观看在线视频| 99免费精品视频| 麻豆91av| aiai在线| ㊣最新国产の精品bt伙计久久| 免费看av软件| 婷婷av在线| 天天综合色天天| av免费在线播放网站| 69精品久久久| 日韩一级不卡| 国产va免费精品高清在线| 亚洲精品毛片一区二区三区| 久久电影网站中文字幕| 91在线在线观看| 亚洲人妻一区二区三区| 国产欧美日产一区| 特大黑人娇小亚洲女mp4| av老司机免费在线| 欧美最新大片在线看| 亚洲 国产 图片| 中文在线综合| 亚洲欧美日韩一区二区在线 | 久久久久久免费| 亚洲成色www久久网站| 爆操欧美美女| 欧美午夜激情在线| 五月天丁香花婷婷| 日韩高清成人在线| 久久久国产精品x99av| 日本一区二区网站| 久久成人久久鬼色| 精品午夜一区二区| 黄色国产网站在线播放| 精品二区三区线观看| 亚洲一区二区在线视频观看| 国产毛片久久久| 综合欧美国产视频二区| 日本网站免费观看| 久久99国产精品久久99果冻传媒| 国产欧美亚洲日本| 日本高清中文字幕在线| 欧美午夜片在线免费观看| 老司机久久精品| 性人久久久久| 欧美日本精品在线| 中文字幕一区二区三区波野结 | 欧美裸体bbwbbwbbw| 天天躁日日躁狠狠躁av麻豆男男| 成人毛片在线| 欧美在线视频免费观看| 亚洲第一天堂网| 亚洲欧美综合网| 日本熟妇人妻xxxxx| 岛国精品一区| 欧美成人精品一区二区| 午夜视频网站在线观看| 91麻豆文化传媒在线观看| av动漫在线播放| 九九九精品视频| 亚洲欧美日韩爽爽影院| 国产一级做a爱片久久毛片a| 国产成人av电影在线观看| 亚洲一区精彩视频| 日韩美女在线看免费观看| 日韩av有码在线| 国产无码精品久久久| 国产精品一区二区果冻传媒| 麻豆中文字幕在线观看| 欧美成人一二区| 一区二区三区回区在观看免费视频| 日韩黄色在线播放| 99久久综合精品| a级免费在线观看| 试看120秒一区二区三区| 日韩一级黄色av| 中文字幕+乱码+中文乱码www| 2020国产精品| 男人操女人免费软件| 亚洲成a人片77777在线播放| 欧美亚洲一级片| 男女性高潮免费网站| 美女视频一区二区三区| 亚洲 日韩 国产第一区| 97精品国产综合久久久动漫日韩 | 日本韩国一区二区三区| av亚洲天堂网| 成人影院在线| 国产精品一区二区三区免费视频| 国产黄色在线| 91福利视频网站| 一级特黄曰皮片视频| 蜜桃视频在线观看一区| 亚洲一区三区视频在线观看| 亚洲精品成a人ⅴ香蕉片| 久久精品视频导航| www.色婷婷.com| 亚洲成人免费在线| 中文字幕 亚洲一区| 久久福利一区| 亚洲成人蜜桃| 国产乱码精品一区二区三区亚洲人 | 国产精品免费福利| 五月天婷婷在线视频| 欧美精品高清视频| 欧美三级在线免费观看| 白白色 亚洲乱淫| 99精品免费在线观看| 日本电影一区二区| 亚洲专区中文字幕| 97人人在线视频| 国产一区二区av| 国产农村妇女毛片精品| 亚洲成人精品在线观看| 日韩乱码人妻无码中文字幕久久| 蜜乳av一区二区| www.日本三级| 国产精品免费大片| 成人性生交大片免费看视频直播| 日韩专区av| 亚洲国产免费av| 中国女人一级一次看片| 亚洲综合色区另类av| 我和岳m愉情xxxⅹ视频| 秋霞电影一区二区| 国产一区二区三区小说| 免费看成人吃奶视频在线| 国产日韩在线精品av| 丁香花视频在线观看| 亚洲日韩中文字幕| 国产不卡av在线播放| 欧美性极品少妇精品网站| 色老板免费视频| 91一区二区三区在线播放| www.夜夜爽| 国产精品一卡| 今天免费高清在线观看国语| 亚洲毛片免费看| 亚洲最大av网| jvid一区二区三区| 91精品国产高清| a视频在线免费看| 国产亚洲视频在线观看| 天堂在线观看免费视频| 91精品麻豆日日躁夜夜躁| 无码人妻丰满熟妇精品| 亚洲国产精品天堂| 日韩av手机在线免费观看| 久久嫩草精品久久久精品一| 国产精品久久久久野外| 美女视频一区在线观看| 国产一区视频免费观看| 欧美啪啪一区| 中文字幕色一区二区| 久久最新网址| 国产乱子伦精品| 精品视频在线观看网站| 国产精品一二区| 欧美少妇网站| 久久久噜久噜久久综合| av片在线观看| 日韩在线中文视频| 久久久久久久久亚洲精品| 亚洲国产免费av| 日韩中文字幕免费在线观看| 91精品国产综合久久久久久漫画 | 国产三级aaa| 91麻豆免费观看| 李丽珍裸体午夜理伦片| 国产成人av影院| 欧美一级片在线免费观看| 黄页网站大全一区二区| 中文字幕第88页| 免费观看日韩电影| 污片在线免费看| 六月丁香婷婷久久| 加勒比av中文字幕| 极品美女销魂一区二区三区| 天堂av在线8| 精品一区二区av| 国产精品久久久久久9999| 久久www免费人成看片高清| 中文字幕免费高清在线| 精品中文字幕一区二区| 第一区免费在线观看| 久久se精品一区二区| 欧美激情第一区| 国产乱码字幕精品高清av| 国产成人精品一区二区三区在线观看| 国产经典欧美精品| youjizz.com日本| fc2成人免费人成在线观看播放| 女同性恋一区二区三区| 久久奇米777| 手机av在线不卡| 18欧美亚洲精品| 欧美日韩精品在线观看视频| 亚洲综合在线免费观看| 亚洲视频免费播放| 色8久久精品久久久久久蜜| 男操女视频网站| 91精品婷婷国产综合久久竹菊| 国产成人a人亚洲精品无码| 精品国产乱码久久久久久夜甘婷婷 | 国内成人免费视频| 一级黄色大片免费看| 97超碰欧美中文字幕| 亚洲天堂最新地址| 亚洲免费观看高清完整版在线 | 伊人激情综合| 亚洲熟妇av日韩熟妇在线 | 欧美一级免费在线| 成人一级片网址| 国精产品一区二区三区| 亚洲男人的天堂在线aⅴ视频| 国产精品1000| 欧美三片在线视频观看| a级片在线视频| 日韩电影免费观看在线观看| jizz亚洲| 久久久久久高潮国产精品视| 美女福利一区二区三区| 亚洲a在线播放| 亚洲精品国模| 男同互操gay射视频在线看| 一本色道久久综合亚洲精品不卡| 青青草精品视频在线观看| 国产xxx精品视频大全| 在线国产视频一区| 亚洲最新视频在线播放| 中文字幕乱码在线观看| 精品国产乱码久久久久久久久| 国产精品麻豆一区二区三区 | 日韩精品一区二区三区四区五区| 亚洲欧洲美洲一区二区三区| 337p粉嫩大胆噜噜噜鲁| 国产精品一区在线| 日本精品久久久久中文| 午夜久久久久久电影| 91中文字幕在线播放| 日韩精品中文字幕久久臀| 国产三区视频在线观看| 国产91在线高潮白浆在线观看| 国产aa精品| 欧美一级爱爱| 亚洲精品偷拍| 欧美体内she精高潮| 欧美国产精品专区| 国产精品xxxx喷水欧美| 日韩午夜小视频| 在线观看的av| 全球成人中文在线| 精品无人区一区二区| 伊人再见免费在线观看高清版 | 亚洲高清一区二区三区| 亚洲最新av网站| 亚洲香蕉av在线一区二区三区| 国产美女情趣调教h一区二区| 成人黄色在线播放| 欧美色女视频| 国产三级日本三级在线播放| 99久久99久久精品免费观看| 久久精品免费av| 91精品国产一区二区三区 | 国产欧美日韩亚州综合| 黄色av网站免费观看| 亚洲欧美国产日韩天堂区| 国产极品在线观看| 精品国产区在线| 亚洲国产日本| 四虎精品一区二区| 性久久久久久久久久久久| 亚洲风情第一页| 欧美大片免费观看| 日韩黄色av| 日韩精品一区二区三区四| 国产一区二区三区不卡在线观看| 永久免费未视频| 91精品国产综合久久婷婷香蕉| 超碰最新在线| 91国产在线免费观看| 欧美成人嫩草网站| 日韩高清一二三区| 性感美女极品91精品| 日本激情视频网站| 97av在线视频| 中文字幕中文字幕精品| 欧美亚洲日本在线观看| 欧美韩国日本不卡| 91亚洲视频在线观看| 欧美精品亚州精品| 国内毛片久久| 无码人妻丰满熟妇区毛片18| 久久久99免费| 亚洲综合网av| 欧美大成色www永久网站婷| 日韩一区二区三区精品视频第3页| 国产精品88久久久久久妇女| 国产成人av一区二区三区在线观看| 国产亚洲精品久久777777| 日韩成人激情视频| 日韩在线观看不卡| 香蕉精品视频在线| 顶级嫩模精品视频在线看| 亚洲精品男人天堂| 国产亚洲精品高潮| 国产亚洲观看| 日韩av三级在线| 欧美激情在线一区二区| 99热精品在线播放| 国产91精品青草社区| 日韩在线观看| 动漫美女无遮挡免费| 91黄色免费观看| а√中文在线8| 久久久久久a亚洲欧洲aⅴ| 日本不卡视频在线| 欧美日韩综合一区二区| 精品一区二区三区四区| 小说区图片区亚洲| 免费 成 人 黄 色| 国产精品久久久久久久午夜片| 亚洲精品一区二区三区不卡| 欧美在线观看一区二区三区| 久久日文中文字幕乱码| 理论片大全免费理伦片| 欧美日韩一区小说| av中文在线资源库| 伊人久久av导航| 99国产精品国产精品久久| 亚洲天堂视频网| 26uuu久久噜噜噜噜| 亚洲成人tv| 亚洲av无码国产精品久久|