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

有關(guān)多表單系統(tǒng)的介紹和設(shè)計(jì)思路

開(kāi)發(fā) 后端
“多表單系統(tǒng)”,顧名思義,就是多個(gè)不同形式的表單構(gòu)成的一個(gè)系統(tǒng),是一個(gè)極其抽象的概念。本文介紹什么是多表單系統(tǒng),以及其設(shè)計(jì)和實(shí)現(xiàn)思路。

在企業(yè)呆了3年,接觸最多的就是表單了,各式各樣的表單,千變?nèi)f化,好在它們之間有共同點(diǎn),就是“表單內(nèi)容+動(dòng)作名稱”。企業(yè)辦公最常見(jiàn)的業(yè)務(wù)就是和表單打交道,不管什么請(qǐng)假申請(qǐng)單,權(quán)限申請(qǐng)單等等,都需要經(jīng)過(guò)一系列的工作流程來(lái)完成它。由于此類業(yè)務(wù)頻繁,在信息化發(fā)展迅速的今天,開(kāi)發(fā)此類系統(tǒng)是很有必要的。

1.多表單系統(tǒng)是什么?

“多表單系統(tǒng)”,顧名思義,就是多個(gè)不同形式的表單構(gòu)成的一個(gè)系統(tǒng),是一個(gè)極其抽象的概念。它在企業(yè)內(nèi)部也是一種常見(jiàn)的管理信息系統(tǒng),每個(gè)表單的內(nèi)容和流程不盡相同,也可以說(shuō)每個(gè)表單是一個(gè)子系統(tǒng)。在企業(yè)內(nèi)部,各單位的需求不一致,以至于設(shè)計(jì)一個(gè)通用的表單系統(tǒng)非常困難。盡管不能通用,并且也避免不了新表單的增加和已有表單的修改,但是還是可以抽象出一些共同的東東來(lái),如表單的動(dòng)作名稱,因此,我們可以將不變的部分抽象出來(lái),以方便維護(hù)和增加新需求。

2.多表單系統(tǒng)的需求

(1).需求概述

某單位主管向軟件開(kāi)發(fā)部提出,我們單位有一個(gè)申請(qǐng)單,想把它做成Web網(wǎng)頁(yè)形式的。流程是:

本部門工程師填寫申請(qǐng)單;

然后本人來(lái)審核,審核不通過(guò),則退回申請(qǐng)人重新申請(qǐng),審核通過(guò),則跑到處理單位主管那里審核;

處理單位主管審核不通過(guò),則退回申請(qǐng)人重新申請(qǐng),審核通過(guò),則分派給處理人員處理;

處理人員處理完成,則通知處理單位主管結(jié)案、通知申請(qǐng)人。

這個(gè)表單流程就算跑完了。流程圖:

表單流程圖

(2).功能需求

根據(jù)以上需求,我們可以設(shè)計(jì)如下功能:

表單申請(qǐng):申請(qǐng)表單1、申請(qǐng)表單2、……、申請(qǐng)表單n

表單查詢:申請(qǐng)表單查詢、歷史表單查詢

表單審核:審核工作、代理審核

代理設(shè)置:默認(rèn)代理設(shè)置、代理區(qū)間設(shè)置

表單管理:工作分派、工作清單、處理狀況

報(bào)表管理:報(bào)表1、報(bào)表2、……、報(bào)表n

系統(tǒng)管理:表單設(shè)置、角色管理、流程管理、處理單位管理、(包括表單共同部分設(shè)置)

(3).表單動(dòng)作需求

有了系統(tǒng)功能結(jié)構(gòu),但不同表單還有不同動(dòng)作,概括起來(lái),表單共有以下動(dòng)作:

申請(qǐng) (Apply)

修改 (Modify)

重新申請(qǐng) (Return)

取消 (Cancel)

檢視 (View)

審核 (Sign)

分派 (Assign)

處理 (Process)

撤單 (Revoke)

結(jié)案 (Close)

審核可能有好幾步,如上面例子,申請(qǐng)人主管和處理單位主管審核,有的表單有可能在處理單位主管審核前還有好幾步審核。

(4).UI需求

首先看看UI抽象圖:

UI抽象圖

 從UI層面來(lái)分析,表單系統(tǒng)也只有“表單內(nèi)容”(也就是上圖中陰影部分)在變化,各個(gè)表單的內(nèi)容不一樣,有簡(jiǎn)單的,有復(fù)雜的。簡(jiǎn)單的表單,也就是一個(gè)實(shí)體(可理解成一張數(shù)據(jù)庫(kù)表)就可以滿足要求。復(fù)雜的表單,那就需要n個(gè)實(shí)體的組合才能滿足需要。

關(guān)于UI邏輯,對(duì)于不同表單動(dòng)作,有不同的UI界面,也就是要考慮UI的顯示邏輯,例如某審核頁(yè)面需要能修改某個(gè)欄位,如“希望完成時(shí)間”,甚至有的審核頁(yè)面可以修改所有內(nèi)容,另外表單處理的頁(yè)面和表單檢視的頁(yè)面也不一樣,處理頁(yè)要上傳處理報(bào)告,還有根據(jù)當(dāng)前登錄者的角色判斷什么欄位顯示,什么欄位不顯示,什么功能顯示,什么功能不顯示,這就是操作權(quán)限和UI的聯(lián)系。

關(guān)于UI需求應(yīng)該還有很多,沒(méi)有想出來(lái),盼謝大家?guī)兔ρa(bǔ)充一下。

(5).業(yè)務(wù)需求

從業(yè)務(wù)層面來(lái)看,每個(gè)表單的動(dòng)作不一樣,也就是每個(gè)動(dòng)作處理的邏輯不同,簡(jiǎn)單的動(dòng)作只要將資料插入一張表或?qū)⒛硞€(gè)字段值改一下之類的簡(jiǎn)單操作,復(fù)雜的動(dòng)作就是要操作n張表,包括判斷,插入,修改,刪除等等。

業(yè)務(wù)邏輯這東西不知道怎么講好,這塊在寫起來(lái)是比較復(fù)雜的,也是系統(tǒng)的最難寫的部分,呵呵,個(gè)人體會(huì)。

(6).變化需求

像這樣的多表單系統(tǒng),最煩人的就是用戶不斷地變更需求,這在開(kāi)發(fā)企業(yè)管理信息系統(tǒng)中是不可避免的。下面就簡(jiǎn)單描述一下幾個(gè)常見(jiàn)的變化:

增加欄位。這點(diǎn)只有修改代碼,想不修改也難,除非自動(dòng)生成表單什么的,但是自動(dòng)生成有其局限性,不能完全滿足需求。

增加功能。這點(diǎn)也要修改代碼。

增加審核流程。這點(diǎn)需要增加頁(yè)面和動(dòng)作處理邏輯了,這點(diǎn)只要系統(tǒng)的擴(kuò)展性好(采用接口設(shè)計(jì)),加一個(gè)流程也不是很麻煩。

面對(duì)需求變化,我們應(yīng)該有應(yīng)對(duì)變化的方法,盡量減少我們修改代碼的地方。

3.多表單系統(tǒng)的設(shè)計(jì)

(1)技術(shù)框架

我們采取大家熟悉的.NET平臺(tái)來(lái)構(gòu)建B/S模式的多表單系統(tǒng),以下是主要技術(shù)框架:

.NET Framework 3.5

ASP.NET WebForm

ASP.NET Ajax

JQuery

由于企業(yè)應(yīng)用需求變更頻繁,實(shí)體修改在所難免,為了修改方便,避免更改多處代碼,所以沒(méi)有使用ORM技術(shù),而是直接SQL的方式編寫。

(2)目錄結(jié)構(gòu)

首先看看目錄結(jié)構(gòu)圖:

目錄結(jié)構(gòu)圖

  從圖中我們可以看出工程中有三個(gè)項(xiàng)目Booking、Common、Workflow。

Common類庫(kù)項(xiàng)目是存放系統(tǒng)公共的業(yè)務(wù)。

Workflow類庫(kù)項(xiàng)目是存放系統(tǒng)工作流業(yè)務(wù)。

Booking項(xiàng)目是WebApplication,幾個(gè)主要文件夾和頁(yè)面如圖所示。

(3)系統(tǒng)關(guān)鍵設(shè)計(jì)

系統(tǒng)的關(guān)鍵技巧就在于,每個(gè)表單子系統(tǒng)所有業(yè)務(wù)都使用上面圖中幾個(gè)頁(yè)面來(lái)完成作業(yè)的,不必為每個(gè)表單添加相應(yīng)功能的頁(yè)面。每個(gè)頁(yè)面(除了一些List頁(yè)面)有一個(gè)Panel控件,其是每個(gè)表單內(nèi)容呈現(xiàn)的容器,真正的內(nèi)容是通過(guò)動(dòng)態(tài)載入Editor和Viewer來(lái)實(shí)現(xiàn)的,每個(gè)表單有兩個(gè)用戶控件(Editor和Viewer)和一個(gè)Control類,Editor是表單編輯者,Viewer是表單的監(jiān)視器,Control是表單的控制者。

下面是各控件和頁(yè)面之間的繼承關(guān)系圖:

頁(yè)面和控件繼承關(guān)系圖

圖中的FormControl的FormApply等表單動(dòng)作方法都是虛方法,真正的業(yè)務(wù)邏輯是在Editor和Viewer中覆寫的。FormControl中GetShowMode方法默認(rèn)申請(qǐng)、修改、重新申請(qǐng)頁(yè)面為載入Editor控件,其他頁(yè)面載入Viewer控件。若其他頁(yè)面需載入Editor控件,則可以在每個(gè)表單的Control類中覆寫GetShowMode方法。

#p#

下面是幾個(gè)主要類別的代碼:

  1. public class FormControl : BaseControl  
  2. {  
  3.  /// < summary>  
  4.  /// 取得頁(yè)面顯示模型?  
  5.  /// < /summary>  
  6.  /// < param name="pageType">頁(yè)面類型< /param>  
  7.  /// < param name="signStep">審核步驟< /param>  
  8.  /// < returns>< /returns>  
  9.  public virtual string GetShowMode(Type pageType, string signStep)  
  10.  {  
  11.   if (pageType == typeof(Web.FormApply)  
  12.    || pageType == typeof(Web.FormReturn)  
  13.    || pageType == typeof(Web.FormModify))  
  14.   {  
  15.    return "Editor";  
  16.   }  
  17.   else 
  18.   {  
  19.    return "Viewer";  
  20.   }  
  21.  }  
  22.  
  23.  public virtual void FormApply()  
  24.  {  
  25.   throw new NotImplementedException();  
  26.  }  
  27.  
  28.  public virtual void FormReturn()  
  29.  {  
  30.   throw new NotImplementedException();  
  31.  }  
  32.  
  33.  public virtual void FormModify()  
  34.  {  
  35.   throw new NotImplementedException();  
  36.  }  
  37.  
  38.  public virtual void FormCancel(string cancelReason)  
  39.  {  
  40.   throw new NotImplementedException();  
  41.  }  
  42.  
  43.  public virtual void FormSign(bool isAgree, string signComments)  
  44.  {  
  45.   throw new NotImplementedException();  
  46.  }  
  47.  
  48.  public virtual void FormAssign()  
  49.  {  
  50.   throw new NotImplementedException();  
  51.  }  
  52.  
  53.  public virtual void FormProcess()  
  54.  {  
  55.   throw new NotImplementedException();  
  56.  }  
  57.  
  58.  public virtual void FormRevoke(string revokeType, string revokeReason)  
  59.  {  
  60.   throw new NotImplementedException();  
  61.  }  
  62.  
  63.  public virtual void FormClose(string closeType)  
  64.  {  
  65.   throw new NotImplementedException();  
  66.  }  
  67. }  
  68. public class FormControlFactory  
  69. {  
  70.  public static FormControl GetControl(string type)  
  71.  {  
  72.   string className = String.Format("Known.Booking.{0}Control", type);  
  73.  
  74.   Type controlType = Type.GetType(className);  
  75.   if (controlType == null)  
  76.   {  
  77.    return new FormControl();  
  78.    //throw new Exception(String.Format("找不到{0}表單控件類型!", type));  
  79.   }  
  80.  
  81.   FormControl control = Activator.CreateInstance(controlType) as FormControl;  
  82.   if (control == null)  
  83.   {  
  84.    throw new Exception(String.Format("找不到{0}表單控件類型!", type));  
  85.   }  
  86.  
  87.   return control;  
  88.  }  
  89. }  
  90. public class FormPage : BasePage  
  91. {  
  92.  public string FormNo  
  93.  {  
  94.   get { return Request.QueryString["formno"]; }  
  95.  }  
  96.  
  97.  public string SignStep  
  98.  {  
  99.   get { return Request.QueryString["step"]; }  
  100.  }  
  101.  
  102.  public string SignRole  
  103.  {  
  104.   get { return Request.QueryString["role"]; }  
  105.  }  
  106.  
  107.  public string FormType  
  108.  {  
  109.   get 
  110.   {  
  111.    string formType = Request.QueryString["type"];  
  112.  
  113.    if (String.IsNullOrEmpty(formType))  
  114.    {  
  115.     formType = Request.QueryString["type"];  
  116.    }  
  117.  
  118.    return formType;  
  119.   }  
  120.  }  
  121.  
  122.  public string FormName  
  123.  {  
  124.   get { return FormType + "申請(qǐng)單"; }  
  125.  }  
  126.  
  127.  private FormControl formControl;  
  128.  public FormControl FormControl  
  129.  {  
  130.   get 
  131.   {  
  132.    if (formControl == null)  
  133.    {  
  134.     FormControl form = FormControlFactory.GetControl(FormType);  
  135.     string format =  
  136.      SysSetting.Instance.FormModelPath.EndsWith("/")  
  137.      ? "{0}{1}/{2}.ascx" 
  138.      : "{0}/{1}/{2}.ascx";  
  139.  
  140. string modelPath = String.Format(format, SysSetting.Instance.FormModelPath, FormType, form.GetShowMode(PageType, SignStep));  
  141.  
  142.     formControl = LoadControl(modelPath) as FormControl;  
  143.  
  144.     if (formControl == null)  
  145.     {  
  146.    throw new Exception(String.Format("請(qǐng)確認(rèn){0}是否繼承自FormControl!", modelPath));  
  147.     }  
  148.    }  
  149.    return formControl;  
  150.   }  
  151.  }  
  152. }  
  153. public class Test1Control : FormControl  
  154. {  
  155.  public override string GetShowMode(Type pageType, string signStep)  
  156.  {  
  157.   if (pageType == typeof(FormSign) && signStep == "AL")  
  158.   {  
  159.    return "Editor";  
  160.   }  
  161.   return base.GetShowMode(pageType, signStep);  
  162.  }  
  163. }  

4.這樣開(kāi)發(fā)優(yōu)劣在哪里?

優(yōu)勢(shì):新增一個(gè)表單時(shí),只需要在UControls下面添加像Test1一樣的控件,表單的內(nèi)容和邏輯都在控件中實(shí)現(xiàn),這樣寫不需要為每個(gè)表單增加相應(yīng)的頁(yè)面,維護(hù)時(shí)也不用改動(dòng)多個(gè)頁(yè)面,這是集中開(kāi)發(fā),集中維護(hù)。

劣勢(shì):這樣寫就將一切邏輯都集中在一起,造成代碼很長(zhǎng),這點(diǎn)局限也可以讓它有所改變,就是將表單對(duì)象數(shù)據(jù)的組裝和呈現(xiàn)寫在控件中,將業(yè)務(wù)處理抽出來(lái)寫在Control類中。

5.結(jié)束語(yǔ)

這個(gè)系統(tǒng)的設(shè)計(jì),我可能沒(méi)有講的太透徹,但是原理是很簡(jiǎn)單的,就是動(dòng)態(tài)加載用戶控件,我們把控件看成是一個(gè)表單對(duì)象,表單對(duì)象的動(dòng)作就在控件中實(shí)現(xiàn),頁(yè)面中的功能按鈕事件響應(yīng)控件中的方法。關(guān)鍵的一個(gè)類就是FormControl,一切表單的動(dòng)作都定義在此類中。

以上就介紹了多表單系統(tǒng)的設(shè)計(jì)思路。本文來(lái)自閣老的博客:《多表單系統(tǒng)框架設(shè)計(jì)》。

【編輯推薦】

  1. ASP.NET表單的Session和Cookie
  2. 描述ASP.NET頁(yè)面表單
  3. 如何用ASP.NET服務(wù)器自定義控件還原表單
  4. ASP.NET開(kāi)發(fā)技巧之Theme功能淺析
  5. 詳解ASP.NET動(dòng)態(tài)編譯
責(zé)任編輯:yangsai 來(lái)源: 閣老的博客
相關(guān)推薦

2010-03-02 09:13:55

Android手機(jī)系統(tǒng)

2010-02-03 16:03:44

Python系統(tǒng)文件

2023-12-12 09:06:06

2011-12-06 09:24:10

網(wǎng)頁(yè)設(shè)計(jì)

2025-09-29 04:55:00

高并發(fā)關(guān)單系統(tǒng)算法

2017-07-06 00:27:17

虛擬訂單中心京東數(shù)據(jù)

2017-04-24 23:22:23

2024-06-27 12:26:32

2009-12-25 17:11:40

ADO方法

2024-05-09 08:20:29

AC架構(gòu)數(shù)據(jù)庫(kù)冗余存儲(chǔ)

2010-02-02 14:54:28

Python語(yǔ)法

2010-02-02 13:05:58

Python代碼

2009-07-11 10:47:15

綜合布線設(shè)計(jì)寫字樓

2016-02-18 10:09:23

12306核心思路架構(gòu)

2018-05-07 16:03:55

工單開(kāi)源跟蹤系統(tǒng)

2019-02-27 15:24:54

馬蜂窩游搶單系統(tǒng)

2009-08-19 15:50:52

松散耦合

2010-01-07 09:42:02

Linux遠(yuǎn)程監(jiān)控系統(tǒng)

2009-12-07 10:27:51

WCF分頁(yè)

2010-02-24 17:22:59

Python項(xiàng)目
點(diǎn)贊
收藏

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

亚洲美女在线播放| 精品无码国模私拍视频| www.我爱av| 在线一区免费观看| 中文字幕亚洲欧美日韩在线不卡| jizz18女人| 国产盗摄一区二区| 国产日产欧美一区| 成人毛片网站| 久久国产黄色片| **女人18毛片一区二区| 日韩国产高清视频在线| 日韩欧美理论片| 日韩电影免费观| 亚洲自拍偷拍综合| 亚洲黄色成人久久久| 四虎永久在线精品免费网址| 久久国产精品99精品国产| 97激碰免费视频| 日韩高清dvd碟片| 免费成人结看片| 精品国内片67194| 天堂网在线免费观看| 在线毛片观看| 亚洲免费高清视频在线| 五月天综合网| 牛牛热在线视频| 成人免费观看av| 999视频在线观看| 亚洲资源在线播放| 日韩电影在线观看一区| 久久久亚洲影院| 波多野结衣亚洲一区二区| 琪琪久久久久日韩精品 | 国产suv精品一区二区69| 天堂精品中文字幕在线| 2019最新中文字幕| 国产精品二区一区二区aⅴ| 中文字幕一区二区三区欧美日韩| 中文字幕久久亚洲| 中字幕一区二区三区乱码| 妖精视频一区二区三区免费观看 | 成人在线视频网站| 中文字幕一级片| 日韩激情一二三区| 国产成人精品网站| 无码人妻av免费一区二区三区| 国产一区导航| 奇米4444一区二区三区| 六月丁香激情综合| 亚洲欧美高清| 国产精品pans私拍| 日本视频www色| 日韩avvvv在线播放| 国产精品免费一区| 一区二区视频在线免费观看| 蜜臀久久久久久久| 国产在线播放不卡| 国产精品人人爽| 国产精品中文有码| 国产伦精品一区二区三区照片| 手机在线精品视频| 91色九色蝌蚪| 亚洲国产成人不卡| av在线免费网站| 一个色妞综合视频在线观看| 免费看毛片的网址| 涩涩视频在线| 欧美日韩在线一区二区| www.亚洲自拍| 成午夜精品一区二区三区软件| 日韩天堂在线观看| 成熟妇人a片免费看网站| 偷拍精品福利视频导航| 在线播放日韩欧美| 日本福利片在线观看| 国产精品激情| 日本亚洲欧洲色α| 国产露脸无套对白在线播放| 成人网在线播放| 色综合视频二区偷拍在线| 日本美女高清在线观看免费| 亚洲成人中文在线| 国产超碰在线播放| 日韩精品一级| 亚洲人成电影网站色| 色欲一区二区三区精品a片| 亚洲人成高清| 国产美女精品视频| 欧美视频在线观看一区二区三区| 久久精品亚洲麻豆av一区二区| 中文精品一区二区三区| 嗯~啊~轻一点视频日本在线观看| 日本久久一区二区| 一级黄色大片免费看| 九九精品久久| 精品少妇一区二区30p| 亚洲欧美自拍视频| 国产精品一区二区久久不卡| 欧美极品一区| 牛牛电影国产一区二区| 欧美三级一区二区| 好吊一区二区三区视频| 久久中文字幕av一区二区不卡| 69**夜色精品国产69乱| 国产精品久久久久久免费播放| 91在线视频在线| 97精品国产97久久久久久粉红| 成人小电影网站| 欧美大片免费久久精品三p| 国产成人福利在线| 亚洲国产高清一区二区三区| 91精品视频网站| 国产色在线 com| 欧美日韩国产精品| 小日子的在线观看免费第8集| 欧美亚洲国产精品久久| 68精品久久久久久欧美| 好吊色视频一区二区| 国产精品久久久久久久久免费樱桃| 精品人妻一区二区三区四区在线 | 欧美1o一11sex性hdhd| 最爽无遮挡行房视频在线| 欧美色精品在线视频| 国产精品无码一区二区三区免费| 欧美日韩一区自拍| 91最新在线免费观看| 888av在线| 欧洲亚洲国产日韩| 加勒比综合在线| 国产日韩欧美一区二区三区在线观看| 114国产精品久久免费观看| 日本电影在线观看网站| 欧美日韩一区中文字幕| 香蕉视频久久久| 爽好久久久欧美精品| 久久99精品久久久久久秒播放器 | 国产美女精品免费电影| 大乳在线免费观看| 欧美探花视频资源| 中文字幕黄色网址| 奇米精品一区二区三区在线观看 | chinese偷拍一区二区三区| 色妹子一区二区| 一区二区三区四区免费| 久久精品一区二区国产| 日本欧美精品久久久| 奇米777日韩| 在线看福利67194| 在线观看你懂的网站| 国产日产亚洲精品系列| 丝袜制服一区二区三区| 97视频热人人精品免费| 国产欧美一区二区三区在线| 色网站免费在线观看| 欧美精选一区二区| 欧美黑人一级片| 粉嫩aⅴ一区二区三区四区五区| 日韩视频 中文字幕| y111111国产精品久久久| 久久免费在线观看| 色哟哟在线观看| 欧日韩精品视频| 免费黄色激情视频| 国产精品亚洲а∨天堂免在线| 国产色一区二区三区| 亚洲人亚洲人色久| 成人av.网址在线网站| 91精品国产91久久久久久青草| 日韩精品一区二| 亚洲欧美一区二区三区在线观看| 欧美国产精品一区二区| 亚洲制服中文字幕| 在线精品一区二区| 性欧美大战久久久久久久免费观看| 欧美少妇激情| 高清一区二区三区四区五区| 精品av中文字幕在线毛片| 欧美亚一区二区| 欧美日韩偷拍视频| 久久嫩草精品久久久精品一| 婷婷六月天在线| 国产精品v日韩精品v欧美精品网站| 国产一区二区三区奇米久涩| 日本一道高清亚洲日美韩| 九九久久综合网站| 猫咪在线永久网站| 日韩三区在线观看| 4438国产精品一区二区| 亚洲欧美日韩在线| 91精品人妻一区二区| 国内精品伊人久久久久av一坑| 精品这里只有精品| 亚洲国产精品久久久天堂| 精品国产一区二区三区麻豆免费观看完整版 | 国产v综合v亚洲欧| 国产男女激情视频| 欧美aa国产视频| 色播亚洲婷婷| 欧美午夜寂寞| 91久久精品www人人做人人爽 | 欧美主播一区二区三区| 九九热精品免费视频| 中文字幕精品—区二区四季| jjzzjjzz欧美69巨大| 久久激情综合网| 日韩中文字幕二区| 激情久久久久| 自拍偷拍视频在线| 国内精品久久久久久99蜜桃| 国产传媒一区二区| 亚洲精品aaa| 国产福利视频一区二区| 九色porny自拍视频在线观看| 久久精品最新地址| 3d成人动漫在线| 亚洲天堂免费观看| 无码精品一区二区三区在线| 日韩美女主播在线视频一区二区三区| 怡红院男人的天堂| 色狠狠色狠狠综合| 国产成人精品网| 亚洲福中文字幕伊人影院| 天天综合天天做| ㊣最新国产の精品bt伙计久久| 国产肥白大熟妇bbbb视频| 99久久精品免费| 午夜视频在线观看国产| 国产成人三级在线观看| 99中文字幕在线| 狠狠色丁香九九婷婷综合五月| www.久久久精品| 日韩av电影天堂| 色悠悠久久综合网| 免费人成精品欧美精品| 一区二区三区免费播放| 日本亚洲视频在线| 日本新janpanese乱熟| 日本欧美大码aⅴ在线播放| 日韩一级免费在线观看| 爽好多水快深点欧美视频| 欧美三级午夜理伦三级| 久久精品一区二区国产| 色诱视频在线观看| 视频在线在亚洲| 亚洲少妇久久久| 黑人巨大精品欧美黑白配亚洲| 亚洲综合20p| 国产美女主播视频一区| 日本黄色大片在线观看| proumb性欧美在线观看| 完美搭档在线观看| www国产亚洲精品久久麻豆| 少妇精品一区二区三区| 亚洲国产高清aⅴ视频| 日本在线观看网址| 亚洲免费大片在线观看| 国产亚洲精品av| 日韩欧美aaa| 伊人亚洲综合网| 日韩一区二区在线观看视频| 三级小视频在线观看| 国产婷婷成人久久av免费高清 | 欧美精品在线免费播放| 精精国产xxxx视频在线中文版| 97精品国产97久久久久久| 成人观看网址| 亚洲97在线观看| 久久xxx视频| 亚洲一区二区在线| 欧美a一欧美| 亚洲精品无人区| 欧美日韩国产色综合一二三四| 午夜免费福利小电影| 日本视频中文字幕一区二区三区 | 91麻豆精品一区二区三区| 免费看91的网站| 亚洲欧美国产毛片在线| 久久艹免费视频| 欧美人狂配大交3d怪物一区| 成人免费公开视频| 国产一区二区三区在线视频| 二区在线播放| 欧美在线视频播放| 国产精品日韩精品在线播放 | 国语精品一区| 国产福利视频在线播放| 国产一区二区美女诱惑| 日本黄色网址大全| 亚洲精品综合在线| 一级黄色在线视频| 91精品国产色综合久久| 久久经典视频| 欧美高清在线观看| 91看片一区| 国产一区二区免费电影| 91精品国产乱码久久久久久久| 色综合av综合无码综合网站| 国产在线精品一区二区夜色 | 美女又黄又免费的视频| 久久精品视频在线免费观看| 国产精品19乱码一区二区三区| 欧美日韩国产大片| 日本天堂在线| 午夜精品久久久久久久99热| a屁视频一区二区三区四区| 99久久99久久| 久久资源中文字幕| 玩弄japan白嫩少妇hd| 99久久综合色| 欧美人妻一区二区| 欧美日韩国产一级| 国产黄色在线播放| 欧洲成人在线观看| 精品网站aaa| 97超碰在线人人| 国产精品99久久久久久久女警 | 在线免费播放av| 亚洲激情一二三区| 91久久精品无码一区二区| 亚洲午夜未满十八勿入免费观看全集| 女人黄色免费在线观看| 亚洲一区二区三区久久| 天天射综合网视频| 少妇一级淫免费放| 国产日产欧美精品一区二区三区| 亚洲日本视频在线观看| 日韩电影中文字幕一区| 波多野结依一区| 超碰97网站| 激情视频一区| 国产精品熟妇一区二区三区四区| 亚洲欧美另类久久久精品| 97人妻精品一区二区三区动漫 | 青青青免费在线视频| 国产69精品久久久久9999apgf| 欧美日韩一区二区国产| 日韩精品国产一区| 亚洲激情自拍偷拍| 亚洲经典一区二区三区| 欧美激情国内偷拍| 99久久香蕉| 日韩国产欧美亚洲| 97超碰欧美中文字幕| yjizz国产| 国产亚洲精品久久久久久| 福利一区二区免费视频| 一区二区日本伦理| 国产精品一区二区三区四区| 久久亚洲AV无码| 亚洲黄色在线看| 亚洲www.| 一区二区三区四区在线视频| 久久99精品久久久久久| 国产性xxxx| 亚洲精品一区二区三区福利| 色吧亚洲日本| 日韩av一区二区三区美女毛片| 久久精品国内一区二区三区| 成人自拍小视频| 精品电影一区二区三区| 中文在线8资源库| 一区二区不卡视频| 国产成人午夜高潮毛片| 狠狠躁夜夜躁人人爽天天高潮| 亚洲人高潮女人毛茸茸| 亚洲成人高清| 国产综合中文字幕| 欧美国产日本视频| 精品国产九九九| 欧美一级电影在线| 色男人天堂综合再现| 无码人妻一区二区三区精品视频 | 妺妺窝人体色www在线观看| 亚洲欧美综合色| 四虎影院在线播放| 国产精品中文久久久久久久| 国产精品a级| 欧洲av一区二区三区| 欧美一级午夜免费电影| 中老年在线免费视频| 中日韩在线视频| av成人动漫在线观看| 亚洲天堂手机版| 91精品国产高清自在线| 久久国产成人精品| 欧美激情一区二区三区p站| 欧美制服丝袜第一页| 欧洲一区二区三区| 日本一区视频在线| 国产v综合v亚洲欧| 最近中文字幕在线视频| 久久久久久久999精品视频| 精品国产a一区二区三区v免费| 巨乳女教师的诱惑| 在线观看亚洲成人| 波多一区二区| 成人午夜免费剧场| 国产欧美日韩不卡免费| 女人18毛片一区二区三区|