欧美日韩亚-欧美日韩亚州在线-欧美日韩亚洲-欧美日韩亚洲第一区-欧美日韩亚洲二区在线-欧美日韩亚洲高清精品

金喜正规买球

甘特圖控件DHTMLX Gantt 教程:dhtmlxGantt與ASP.NET Core(上)

翻譯|使用教程|編輯:顏馨|2023-04-18 13:49:00.143|閱讀 220 次

概述:本章講述dhtmlxGantt在ASP.NET Core上的使用方法,歡迎查閱!

# 界面/圖表報表/文檔/IDE等千款熱門軟控件火熱銷售中 >>

相關鏈接:

DHTMLX甘特圖是用于跨瀏覽器和超平臺應用程序的功能齊備的甘特圖。可滿足項目管理應用程序的大部分需求,具備完善的甘特圖表庫,功能強大,價格方便,提供豐厚而靈活的JavaScript API接口,與各種服務端技術(PHP,ASP.NET,Java等)簡單集合,滿足多種定制開發(fā)需求。

DHTMLX JavaScript UI 庫所開發(fā)的 JavaScript 組合易于使用和功能豐富,非常適合結合任何領導地位和任何復合性的解決方案,能力足足夠省創(chuàng)造和維保業(yè)務應用程序的時間,提供高生產力。

DHTMLX 甘特圖最新下載


本教程將逐步指導您如何使用 ASP.NET Core 在服務端創(chuàng)建甘特圖。

第一步 創(chuàng)建一個項目

啟動Visual Studio 2022并創(chuàng)建一個新的項目。選擇:創(chuàng)建一個新的項目。

使用 ASP.NET Core 創(chuàng)建項目的 dhtmlxGantt

接下來來選擇“ASP.NET Core Web App”并命名為DHX.Gantt。

使用 ASP.NET Core 創(chuàng)建項目的 dhtmlxGantt

dhtmlxGantt 使用 ASP.NET Core 配置一個項目項目

dhtmlxGantt 使用 ASP.NET Core 配置一個項目項目

自此,你已經創(chuàng)建了一個項目,可以繼續(xù)為甘特圖添加標記和腳本。

第二步 添加甘特圖標記和JS

進入wwwroot并創(chuàng)建一個index.html文件。

dhtmlx甘特與ASP.NET核心2創(chuàng)建一個項目

dhtmlx甘特與ASP.NET核心2創(chuàng)建一個項目

在新創(chuàng)建的文件中,為甘特圖制作一個簡單的頁面。

請注意,甘特圖文件是在此演示中從 CDN 添加的。如果您有該組件的專業(yè)版本, 您需要手動將甘特圖文件添加到項目中。

<!DOCTYPE html> <html> <head> <meta name="viewport" content="width=device-width" /> <title>Index</title> <link  rel="stylesheet" type="text/css" /> <script src="http://cdn.dhtmlx.com/gantt/edge/dhtmlxgantt.js"></script> <script> document.addEventListener("DOMContentLoaded", function(event) { // specifying the date format gantt.config.date_format = "%Y-%m-%d %H:%i"; // initializing gantt gantt.init("gantt_here");  // initiating data loading gantt.load("/api/data"); // initializing dataProcessor var dp = new gantt.dataProcessor("/api/"); // and attaching it to gantt dp.init(gantt); // setting the REST mode for dataProcessor dp.setTransactionMode("REST"); }); </script> </head> <body> <div id="gantt_here" style="width: 100%; height: 100vh;"></div> </body> </html>

當頁面被加載時,除了初始化甘特圖的數據加載外,還立即調用dataProcessor,所以用戶對甘特圖的所有修改都將被保存到后臺。后臺還沒有實現(xiàn),所以以后會更有意義。
接下來進入Program.cs,告訴應用程序使用index.html頁面。為了做到這一點,你需要將應用程序配置為從wwwroot文件夾中提供靜態(tài)文件。為此,你需要添加app.UseDefaultFiles()方法。你可以在這里找到更多細節(jié)。

var builder = WebApplication.CreateBuilder(args);  // Add services to the container. builder.Services.AddRazorPages();  var app = builder.Build();  // Configure the HTTP request pipeline. if (!app.Environment.IsDevelopment()) { app.UseExceptionHandler("/Error"); // The default HSTS value is 30 days. // You may want to change this for production scenarios, // see //aka.ms/aspnetcore-hsts. app.UseHsts(); }  app.UseHttpsRedirection();  app.UseDefaultFiles();  app.UseStaticFiles();  app.UseRouting();  app.UseAuthorization();  app.MapRazorPages();  app.Run();

該方法允許提供默認文件。它將搜索wwwroot文件夾中的以下文件:app.UseDefaultFiles()

  • index.html
  • index.htm
  • default.html
  • default.htm

 因此,你可以選擇其中的任何一個,而在本教程中使用的是 "index.html"。只是一個URL-rewriter,并不實際提供文件。為此,你還需要添加文件。UseDefaultFiles()UseStaticFiles()

一旦你完成了它,當你運行應用程序時,一個空的甘特圖就會出現(xiàn)在頁面上。注意,右上角的 "無效數據 "標簽顯示,因為因為仍然沒有合適的后臺來提供數據,所以被調用。當控制器實現(xiàn)后,gantt將能夠顯示任務和鏈接。gantt.load()

dhtmlx甘特與ASP.NET核心2添加甘特圖

現(xiàn)在基本部分已經完成,是時候實現(xiàn)后端了。讓我們從實現(xiàn)模型類開始,之后再進行WebAPI控制器。

第三步 創(chuàng)建模型和數據庫

讓我們從數據模型開始。甘特的數據模型包括鏈接和任務,從.NET世界的角度來看,dhtmlxGantt對模型屬性使用非常規(guī)的名稱。有時客戶端的模型也包含一些客戶端或后端邏輯的屬性,但這些屬性不應該存儲在數據庫中。

為了處理這個問題,將使用數據傳輸對象(DTO)模式。兩種模型將被定義:

  • 領域模型類,它將被用于EF Core和應用程序內部
  • DTO類,將用于與Web API進行通信。

然后,這兩種模型之間的映射應該被實現(xiàn)。

模型
在項目文件夾中創(chuàng)建一個名為Models的新文件夾。這是實現(xiàn)模型類和 EF 上下文的位置。

任務模型
首先,為任務創(chuàng)建一個類。在Models文件夾中創(chuàng)建一個文件,命名為Task.cs。這可以通過調用Models文件夾的上下文菜單并選擇Add->Class來完成。

這個模型必須是這樣的:

namespace DHX.Gantt.Models { public class Task { public int Id { get; set; } public string? Text { get; set; } public DateTime StartDate { get; set; } public int Duration { get; set; } public decimal Progress { get; set; } public int? ParentId { get; set; } public string? Type { get; set; } } }

你可以查詢任務對象的所有屬性列表。

鏈接模型
再添加一個文件,為鏈接創(chuàng)建一個類:

namespace DHX.Gantt.Models { public class Link { public int Id { get; set; } public string? Type { get; set; } public int SourceTaskId { get; set; } public int TargetTaskId { get; set; } } }

模型已經準備好了,你可以開始配置數據庫連接。
為了配置數據庫連接,你需要采取下面列出的步驟:

安裝Entity Framework Core
Entity Framework Core將被用來管理應用程序與數據庫的通信。讓我們來安裝該框架:

  • 在項目樹中找到DHTMLX.Gantt的依賴項
  • 調用上下文菜單并選擇管理NuGet包
  • 打開瀏覽標簽并安裝Microsoft.EntityFrameworkCore.SqlServer, Microsoft.EntityFrameworkCore和Microsoft.EntityFrameworkCore.Design

或者使用軟件包管理器命令行:

PM> Install-Package Microsoft.EntityFrameworkCore.SqlServer PM> Install-Package Microsoft.EntityFrameworkCore PM> Install-Package Microsoft.EntityFrameworkCore.Design

實體框架核心將用來管理應用程序與數據庫的通信。

創(chuàng)建實體上下文
接下來你需要定義一個與數據庫的會話,并啟用加載和保存數據。為此,創(chuàng)建Context:

  • 在Models文件夾中添加GanttContext.cs文件
  • 在創(chuàng)建的文件中定義GanttContext類
using Microsoft.EntityFrameworkCore;  namespace DHX.Gantt.Models { public class GanttContext : DbContext { public GanttContext(DbContextOptions<GanttContext> options) : base(options) { } public DbSet<Task> Tasks { get; set; } = null; public DbSet<Link> Links { get; set; } = null;  } }

向數據庫添加第一批記錄
現(xiàn)在你可以向數據庫添加記錄了。讓我們創(chuàng)建數據庫初始化器,將任務填充到數據庫中。在Models文件夾中定義一個類,并將其稱為GanttSeeder。該類將有Seed()方法,將添加任務和鏈接到數據庫。

using Microsoft.EntityFrameworkCore;  namespace DHX.Gantt.Models { public static class GanttSeeder { public static void Seed(GanttContext context) { if (context.Tasks.Any()) { return; // DB has been seeded }  using (var transaction = context.Database.BeginTransaction()) { List<Task> tasks = new List<Task>() { new Task() { Id = 1, Text = "Project #2", StartDate = DateTime.Today.AddDays(-3), Duration = 18, Progress = 0.4m, ParentId = null }, new Task() { Id = 2, Text = "Task #1", StartDate = DateTime.Today.AddDays(-2), Duration = 8, Progress = 0.6m, ParentId = 1 }, new Task() { Id = 3, Text = "Task #2", StartDate = DateTime.Today.AddDays(-1), Duration = 8, Progress = 0.6m, ParentId = 1 } };  tasks.ForEach(s => context.Tasks.Add(s)); context.Database.ExecuteSqlRaw("SET IDENTITY_INSERT Tasks ON;"); context.SaveChanges();  context.Database.ExecuteSqlRaw("SET IDENTITY_INSERT Tasks OFF;"); List<Link> links = new List<Link>() { new Link() {Id = 1, SourceTaskId = 1, TargetTaskId = 2, Type = "1"}, new Link() {Id = 2, SourceTaskId = 2, TargetTaskId = 3, Type = "0"} };  links.ForEach(s => context.Links.Add(s)); context.Database.ExecuteSqlRaw("SET IDENTITY_INSERT Links ON;"); context.SaveChanges(); context.Database.ExecuteSqlRaw("SET IDENTITY_INSERT Links OFF;"); transaction.Commit(); } } } }

注冊數據庫
現(xiàn)在你應該在Program.cs中注冊數據庫。但首先你需要一個連接字符串。它將被存儲在應用程序設置的JSON文件中。創(chuàng)建appsettings.json文件(如果你已經有了,則打開它),并為數據庫添加一個連接字符串:

{ "ConnectionStrings": { "DefaultConnection": "Server=(localdb)\\mssqllocaldb; Database=GanttDatabase;Trusted_Connection=True;" } }

數據庫上下文將通過依賴關系注入進行注冊。
將以下命名空間添加到 Program.cs:

using Microsoft.EntityFrameworkCore; using DHX.Gantt.Models;

該聲明將看起來像這樣:

var connectionString = builder.Configuration.GetConnectionString("DefaultConnection"); builder.Services.AddDbContext<GanttContext>( options => options.UseSqlServer(connectionString));

要啟用控制器,需要調用services.AddControllers()方法:

builder.Services.AddControllers();

然后我們調用app.MapControllers()來注冊我們的控制器路線:

app.MapControllers();

下面是Program.cs的完整代碼:

using Microsoft.EntityFrameworkCore; using DHX.Gantt.Models;  var builder = WebApplication.CreateBuilder(args);  // Add services to the container. builder.Services.AddRazorPages();  var connectionString = builder.Configuration.GetConnectionString("DefaultConnection"); builder.Services.AddDbContext<GanttContext>( options => options.UseSqlServer(connectionString));  builder.Services.AddControllers();  var app = builder.Build();  // Configure the HTTP request pipeline. if (!app.Environment.IsDevelopment()) { app.UseExceptionHandler("/Error"); // The default HSTS value is 30 days. // You may want to change this for production scenarios, // see //aka.ms/aspnetcore-hsts. app.UseHsts(); }  app.UseHttpsRedirection();  app.UseDefaultFiles();  app.UseStaticFiles();  app.UseRouting();  app.UseAuthorization();  app.MapRazorPages();  app.MapControllers();  app.Run(); 

最后,你需要在應用啟動時初始化和播種數據庫。通常情況下,你會希望使用遷移來完成這個任務,但為了簡單起見,這里沒有使用遷移。

讓我們首先創(chuàng)建一個初始化的類。在Models文件夾中創(chuàng)建GanttInitializerExtension.cs文件:

namespace DHX.Gantt.Models { public static class GanttInitializerExtension { public static IHost InitializeDatabase(this IHost webHost) { var serviceScopeFactory = (IServiceScopeFactory?)webHost.Services.GetService(typeof(IServiceScopeFactory));  using (var scope = serviceScopeFactory!.CreateScope()) { var services = scope.ServiceProvider; var dbContext = services.GetRequiredService<GanttContext>(); dbContext.Database.EnsureDeleted(); dbContext.Database.EnsureCreated(); GanttSeeder.Seed(dbContext); }  return webHost; } } }

接下來調用InitializeDatabase():

app.InitializeDatabase();

正如上面提到的,本教程中沒有使用遷移。而是使用簡單的EnsureCreated和種子。

當前部分已經完成,讓我們回到甘特圖。

定義DTOs和映射
現(xiàn)在是定義將用于Web API的DTO類的時候了。讓我們從任務的DTO類開始。在Models文件夾中創(chuàng)建一個文件并定義WebApiTask.cs類:

namespace DHX.Gantt.Models { public class WebApiTask { public int id { get; set; } public string? text { get; set; } public string? start_date { get; set; } public int duration { get; set; } public decimal progress { get; set; } public int? parent { get; set; } public string? type { get; set; } public bool open { get { return true; } set { } }  public static explicit operator WebApiTask(Task task) { return new WebApiTask { id = task.Id, text = task.Text, start_date = task.StartDate.ToString("yyyy-MM-dd HH:mm"), duration = task.Duration, parent = task.ParentId, type = task.Type, progress = task.Progress }; }  public static explicit operator Task(WebApiTask task) { return new Task { Id = task.id, Text = task.text, StartDate = task.start_date != null ? DateTime.Parse(task.start_date, System.Globalization.CultureInfo.InvariantCulture) : new DateTime(), Duration = task.duration, ParentId = task.parent, Type = task.type, Progress = task.progress }; } } }

而這是定義在Models文件夾中名為WebApiLink.cs的文件中的Link的DTO類:

namespace DHX.Gantt.Models { public class WebApiLink { public int id { get; set; } public string? type { get; set; } public int source { get; set; } public int target { get; set; }  public static explicit operator WebApiLink(Link link) { return new WebApiLink { id = link.Id, type = link.Type, source = link.SourceTaskId, target = link.TargetTaskId }; }  public static explicit operator Link(WebApiLink link) { return new Link { Id = link.id, Type = link.type, SourceTaskId = link.source, TargetTaskId = link.target }; } } }

當你完成這一步驟時,你應該得到以下的文件夾結構:

甘特圖 ASP.NET Core 2 所有型號

現(xiàn)在你可以運行該應用程序,以檢查一切是否到位。如果你沒有看到一個運行時錯誤,那么一切都很好。

第四步 實現(xiàn)網絡API

現(xiàn)在是實際實現(xiàn)REST API的時候了。

添加控制器
創(chuàng)建控制器文件夾并創(chuàng)建三個空的API控制器:一個用于任務,另一個用于鏈接,還有一個用于整個數據集:

甘特圖 ASP.NET Core 2 添加控制器

任務控制器
讓我們?yōu)槿蝿談?chuàng)建一個控制器。它將定義甘特任務的基本CRUD操作。

它是如何工作的:

在GET請求中,任務從數據庫加載,輸出是任務的數據傳輸對象;
在PUT/POST請求中,任務作為WebAPITask類來自客戶端。它們在dhtmlxGantt中以這種方式表示。因此,你應該把它們轉換為我們的EntityFramework數據模型的格式(任務類)。之后,就可以在DatabaseContext中保存更改。

using Microsoft.AspNetCore.Mvc; using DHX.Gantt.Models;  namespace DHX.Gantt.Controllers { [Produces("application/json")] [Route("api/task")] public class TaskController : Controller { private readonly GanttContext _context; public TaskController(GanttContext context) { _context = context; }  // GET api/task [HttpGet] public IEnumerable<WebApiTask> Get() { return _context.Tasks .ToList() .Select(t => (WebApiTask)t); }  // GET api/task/5 [HttpGet("{id}")] public Models.Task? Get(int id) { return _context .Tasks .Find(id); }  // POST api/task [HttpPost] public ObjectResult Post(WebApiTask apiTask) { var newTask = (Models.Task)apiTask;  _context.Tasks.Add(newTask); _context.SaveChanges();  return Ok(new { tid = newTask.Id, action = "inserted" }); }  // PUT api/task/5 [HttpPut("{id}")] public ObjectResult? Put(int id, WebApiTask apiTask) { var updatedTask = (Models.Task)apiTask; var dbTask = _context.Tasks.Find(id); if (dbTask == null) { return null; } dbTask.Text = updatedTask.Text; dbTask.StartDate = updatedTask.StartDate; dbTask.Duration = updatedTask.Duration; dbTask.ParentId = updatedTask.ParentId; dbTask.Progress = updatedTask.Progress; dbTask.Type = updatedTask.Type;  _context.SaveChanges();  return Ok(new { action = "updated" }); }  // DELETE api/task/5 [HttpDelete("{id}")] public ObjectResult DeleteTask(int id) { var task = _context.Tasks.Find(id); if (task != null) { _context.Tasks.Remove(task); _context.SaveChanges(); }  return Ok(new { action = "deleted" }); } } }

鏈接控制器
接下來你應該為鏈接創(chuàng)建一個控制器:

using Microsoft.EntityFrameworkCore; using Microsoft.AspNetCore.Mvc; using DHX.Gantt.Models;  namespace DHX.Gantt.Controllers { [Produces("application/json")] [Route("api/link")] public class LinkController : Controller { private readonly GanttContext _context; public LinkController(GanttContext context) { _context = context; }  // GET api/Link [HttpGet] public IEnumerable<WebApiLink> Get() { return _context.Links .ToList() .Select(t => (WebApiLink)t); }  // GET api/Link/5 [HttpGet("{id}")] public Link? Get(int id) { return _context .Links .Find(id); }  // POST api/Link [HttpPost] public ObjectResult Post(WebApiLink apiLink) { var newLink = (Link)apiLink;  _context.Links.Add(newLink); _context.SaveChanges();  return Ok(new { tid = newLink.Id, action = "inserted" }); }  // PUT api/Link/5 [HttpPut("{id}")] public ObjectResult Put(int id, WebApiLink apiLink) { var updatedLink = (Link)apiLink; updatedLink.Id = id; _context.Entry(updatedLink).State = EntityState.Modified;   _context.SaveChanges();  return Ok(new { action = "updated" }); }  // DELETE api/Link/5 [HttpDelete("{id}")] public ObjectResult DeleteLink(int id) { var Link = _context.Links.Find(id); if (Link != null) { _context.Links.Remove(Link); _context.SaveChanges(); }  return Ok(new { action = "deleted" }); } } }

數據控制器
最后,你需要為一個數據動作創(chuàng)建一個控制器:

using Microsoft.AspNetCore.Mvc; using DHX.Gantt.Models;  namespace DHX.Gantt.Controllers { [Produces("application/json")] [Route("api/data")] public class DataController : Controller { private readonly GanttContext _context; public DataController(GanttContext context) { _context = context; }  // GET api/data [HttpGet] public object Get() { return new { 數據 = _context.Tasks.ToList().Select(t => (WebApiTask)t), 鏈接 = _context.Links.ToList().Select(l => (WebApiLink)l)  }; }  } }

一切都準備好了。你可以運行該應用程序,看到成熟的甘特圖。

甘特圖 ASP.NET Core 甘特圖已準備就緒

你也可以在 GitHub 上查看完整的源代碼。

DHTMLX甘特圖享有超過十年的聲望,支持跨瀏覽器和跨平臺,性能比高,可滿足項目管理應用程序的所有需求,是最擅長的甘特圖表庫。


甘特圖控件交流群:764148812

歡迎加入群交流討論,獲得更多幫助請聯(lián)系


標簽:

本站文章除注明轉載外,均為本站原創(chuàng)或翻譯。歡迎任何形式的轉載,但請務必注明出處、不得修改原文相關鏈接,如果存在內容上的異議請郵件反饋至chenjj@fc6vip.cn


為你推薦

  • 推薦視頻
  • 推薦活動
  • 推薦產品
  • 推薦文章
  • 慧都慧問
掃碼咨詢


添加微信 立即咨詢

電話咨詢

客服熱線
023-68661681

TOP
激情综合色五月丁香六月欧美 | 免费高清欧美亚洲视频 | 免费现黄频在线观看国产 | 国产精品宾馆在线精品酒店↗ | 精品成人一区二区三区免费视频 | 国产日韩精品一区在线观看 | 午夜福利不卡片在线播放免费 | 国产一区二区在线播放女友 | 丰满的女房东在线观看6 | 精品国产免费第一区二区 | 最新国产精品精品视频 | 国产肥熟老胖女在线看 | 亚洲二三区 | 欧美日韩在线精品一区二区三区 | 欧美日韩国产丝袜另类 | 永久在线观看免费视频 | 亚洲丝袜在线 | 五月丁香激激情亚洲综合 | 从后面进入嗯啊视频 | 又色又爽又黄刺激在线观看 | 日本一卡2卡三卡4卡网站 | 国产免费一区二区视频 | 国产又大又硬又粗 | 91青娱乐免费国产视频 | 精品欧美亚洲影视 | 国产灌醉极品在线观看 | 在线观看中文 | 欧美老年人草逼视频 | 亚洲人午夜射 | 亚洲欧洲一区二 | 亚洲制服丝袜自拍中文字幕 | 欧美人兽一区 | 国产小主播野外在线播放 | 日韩精品免费一区二区三区 | 亚洲中文字幕乱码一区 | 天天躁日日躁狼狼 | 欧美高清一区二 | 在线看免费看国产精品视频 | 国产欧美日韩综合一区 | 欧美日韩一区二区三区在线播放 | 天天夜夜欢性恔免费视频 | 日韩v亚洲v欧美v精品综合 | 亚洲一区二区三区深夜天堂 | 日韩免费福利试看3分钟 | 欧美日韩日本中国高清视频在线 | 老女人擦 | 国产费视频在线观看 | 国产高清在线精品一区在线 | 亚洲精品一区二区三区人妖 | 一国产一国产 | 国产精品第一区亚洲精品 | 又黄的免费视频 | 中文字幕在线不卡精品视频99 | 欧美特黄特色三级视频在线观看 | 国产大片特黄高清视频 | 日韩欧美一区二 | 色老头一区二区三区 | 日韩精品一区二区三区中 | 日韩高清不卡在线视频观看 | 欧美日韩国产综合视频在线看 | 欧美亚洲 | 99精品欧美一区二 | 三级三级三级a级全黄 | 久夜色精品国产一区二区三区 | 国产精品露脸 | 国产精品亚洲日韩aⅴ在线 亚洲成a人v欧美综 国产美女嘘嘘嘘嘘嘘 | 国产欧美不卡 | 日韩四级片在线看 | 国产v亚| 日日爽夜夜 | 亚洲春色在线视频 | 亚洲第一页在线视频 | 国产精品视频免费网站 | 洋妞国产全集在线观看 | 国产尤物在线观看 | 亚洲国产剧情一区在线观看 | 亚洲最新精品每日一更新 | 国产综合精品一区二区青青 | 亚洲激情一区二区 | 亚洲成年看片在线观看 | 无人区一码二码三码四码区 | 日本三级韩国三 | 美女视频免费观看18网站 | 精品午夜免费高清视频 | 亚洲网站视频在线观看 | 综合三级中 | 女同精品一区二区 | 国产在线视频无卡a | 末发育娇| 欧美国产剧情一区二区 | 免费在线宅男精品视频 | 免免费看 | 亚洲第一区日韩欧美精品 | 国产人成网线在线播放va | 91短视频app免费 | 亚洲国产一区在线观看 | 精品国产福利在观看91啪 | 99免费精品 | 黑色午夜| 国产一区二区三区在线观看免费 | 日本精品99 | 国产精品后 | 国产情侣一区二区三区 | 天天看片高清观看免费国产 | 中文字幕在线视频在线看 | 一级一黄免费视频在线看 | 一级a爱片免费观看高清完整 | 人人爰人人人人人鲁 | 免费99精品 | 精品不卡| 手机免费看电影 | 欧美日韩国产亚洲 | 国产在线91精品 | 亚洲成在人线影视天堂网 | 男女午夜爽爽大片免费 | 日韩中文字幕v亚洲中文字幕 | www.俺去也.com影院99 | 乱中年女人伦一 | 欧美精品成人3d在线 | 午夜男女羞羞爽爽爽视 | 亚洲qvod图片区电影 | 日韩欧美在线综合网高清 | 成人精品视频99在线观看免费 | 91九色精品国产自产精品 | 91福利在线视频 | 国产精品亚洲综合天堂夜夜 | 亚洲欧美自偷自拍另类视 | 日韩中文字幕视频在线 | 搡老女人露脸 | 欧美特级理论片免费看 | 亚洲欧美综合人成在线 | 两性色午夜视频免费播放 | 91视频app污 看看永久 | 最近高清中文在线字幕在线观看 | 成人免费在线视频 | 国产吹潮视频在线观看 | 无毒不卡在线观看无需下载 | 一级毛卡 | 国产精品9 | 伦理片mp4| 国产大秀视频一 | 精品国偷自产在线视频 | 欧美日韩一区观看 | 亚洲欧美乱伦日本 | 日韩欧美精品国产亚洲综合 | 亚洲欧洲精品国产区 | 国产精品吹潮在线观看中文 | 日本三级a∨在线观看 | 热门海量电影资源在线观看 | 最新电视剧免费观看 | 国产精品亚洲欧美大片在线看 | 中文字幕在线免费看线人 | 在线视频有码国产欧美 | 国产又黄又硬又粗 | 日产中文字乱码卡一卡二卡 | 精品一区二区三卡四卡网站 | 精品香蕉一区二区三区 | 国产精品视频全国免费观看 | 国产午夜福利亚洲第一 | 免费精品三级乱伦 | 一二三区理论片 | 欧美日韩亚洲国产综合在线观 | 一区二三国产好的精华液 | 97国产在线一区不卡 | 亚洲国产精品第一区二区 | 二区高清 | 三级乱伦国产欧美 | 日韩不卡在线视频 | 久艹伊人精品综合在线 | 亚洲中文字幕在线观看 | 成视人a| 三区噜噜噜 | 日本亚洲一区二区 | 中文字幕免费高清电视剧网站 | 午夜在线观看免费观看大全 | 一二三四在线观看免费中文吗中文 | 日本高清不卡一道免费观看 | 日本最新高清不卡一区二区 | 国产又粗又长又黄又猛 | 香蕉香蕉国产片一级一级毛 | 日本国产一区二区三区在线观看 | 91人成在线观看网站 | 国产专区91| 一本大道之中文日本香蕉 | 国产98在线 | 日韩精品永久免费播放平台 | 最近在线观看免费完整版高清电影 | 亚洲国产精品美女 | 欧美制服丝袜在线 | 国产伦一区二区三区蜜桃 | 国产精品第一页第一页 | 成人免费午夜在线观看 | 國產精品爽爽va免費觀看 | 又爽又大又光又色的午夜视频 | 爱我免费视频观看在线www | 在线视频一区二区三区 | 亚洲中文在线精品国产 | 日产精品一线二线三线芒果 | 亚洲国产日韩欧美视频二区 | 99国产精品这里只有精品 | 欧美三级不卡在线观看 | 91视频直播 | 日本免费一区二区 | 亚洲欧洲国产1区二区 | 亚洲一区二区三区四区在线 | 日本中文字幕 | 8x8ⅹ国产精品 | 欧美视频一区在线 | 中文字幕高清免费日韩视频在线 | 日韩精品一线二线三线优势 | 2025免费高清电影大全 | 欧美人与性动交α欧美精品 | 91导航小污女导航天天夜夜爽 | xnxxfreeporn | 国产老肥熟一区二区三区 | 亚洲熟女精品一区二区成人 | 国产精品伦一区二区三级视频 | 美国特黄三级完整在线电 | 国产亚韩欧美联合在线 | 国产免费中文综合 | 亚洲精品一区二区三区视频在线观 | 国产自产视 | 在线观看视频导 | 第一区二区香蕉 | 亚洲国产欧美在线观看 | 三级高清在线 | 国产又色 | 欧美剧免费在线观看 | 乱子伦精品视频 | 中文字幕免费播放 | 亚洲十欧美十 | 国内外成人激情免费在线视频 | 成人欧美一区二区三区在线蜜 | 欧美mv日韩mv国产网站 | 办公室激情上司和秘书小说 | 日韩成人激情影院 | 中文字幕一区二区三区四区在线 | 日韩欧美在线国产一区二区 | 亚洲欧洲日本精品永久在线观看 | 国产一级二级三级经典在线 | 国产精品福利在线72国 | 欧美日本高清视频在线观看 | 国产suv精品一区二区 | 国产精品香蕉在线的人尹人 | 日产精品一品二品三品 | 成人年鲁鲁在线观 | 国产福利一区二区精品秒拍 | 在线视频一区二区三区在线播放 | xxxx性欧美极品v | 91精品国产一区蜜桃 | 免费人成在线观看视频品爱网 | 亚洲欧美日韩、中文 | 五月天在线观看视频网站 | 亚洲一二三区视频 | xx性欧美肥妇欧美 | 欧美一区二区成人精品视频 | 免费动漫成本人视频网站 | 国产v欧美v日韩v亚洲老妇 | 亚洲色自偷自拍另类小说 | 欧美性a视频| 成人区精品一区二区不卡亚 | 91视频网站免费 | 日本免费一区二区三区在线播放 | 成人国产精品日本在线观看 | 国产目拍亚洲精品二区 | 亚洲精品偷拍区 | 2025最新电视剧 | 亚洲色大成网站www 十年造就经典 | 国产在线精品国偷产拍 | 歐美性猛交xxxx亂大交3 | 欧美日韩国产综 | 99热这里只有精品 | 亚洲日本aⅴ精品一区二区 在线观看成人影院 | 福利第二页精品推荐在线观看 | 区三区免费中文字幕 | 海量高清影片免费观看 | 一区二区三区激情 | 国产精品91视频免费 | 亚洲一区二区三区不卡视频 | 看片免费人成视频 | 五月天亚洲婷婷综合 | 亚洲成a人片在线观看天堂无 | 国产视频在线一二区精品分类 | 亚洲精品久荜中文字幕 | www.亚洲最大夜色伊人 | 99热只有这里有99精品 | 神马影视 | 欧美色欧美亚洲高清在线视 | 夜夜嗨一区二 | 99视频在线精品66 | 国产中文字幕视频在线播放 | 香蕉香蕉国产片一级一级毛 | 亚洲欧美精品日韩片 | 国产欧美 | 欧美亚洲视| 国产免费一级视频在线 | 亚洲综合成人精品成人精品 | 国产伦精品一区二区三区免.费 | 风流老熟女一区二区三区 | 免费aⅴ在线视频 | 国产在线观看一区二区91精品 | 亚洲成在人线在线播放 | a4yy在线播 | 国产日韩另类视频一区爱 | 欧美日韩精品一区二区在线观看 | 日韩精品a在线视频 | 国产男女猛视频在线观看 | 国产一区二区三区免费看视频 | 91牛牛国产在线无弹窗 | 91精品丝袜国产在线一区 | 国产日韩在线看 | 在线看国产精品 | 2025精品 | 在线一区二区三区 | 亚洲欧美日韩人成在线播放 | 国产国产裸模裸模私拍视频 | 日本亚洲欧 | 日本欧美一区二区三区在线播放 | 日韩欧美国产一区二区浪潮 | 日本二区 | 亚洲视频网站在线观看 | 人人天天夜夜曰曰狠狠狠肉感 | 国产夜夜爽 | 日韩精品在线视频一区二区三区 | 老司机深夜免费福 | 国产在线精品成人一区二区 | 欧美精选一区二区 | 亚洲男人的天堂在线aⅴ视频 | 最新国产ts人妖系列视频 | 91中文字日产乱幕 | 天天人守人婷 | 欧美日韩精品在线播放 | 欧美亚洲综合卡通另类区 | 日日摸处处碰夜夜爽 | 蜜桃视频一区二区三区在线观看 | 欧美一区二区不卡视频 | 国产亚洲精品资源在 | 2025中文字幕无 | 国产一区二区色婬影院 | 亚洲视频欧美视频在线视频 | 青青久在线视频 | 国产亚洲一区二区三区 | 另类亚洲小说图片综合区 | 国产综合在线观看 | 亚洲精品国产精品国自产网站 | 午夜伦理电影网电影午夜伦理 | 一区二区三区免费高清视频 | 日韩精品电影一区亚洲 | 在线日韩不 | 羞羞视频免费网 | 欧美日韩第一区第138页 | 天天看片高清观看免费国产 | 亚洲变态欧美另类精品 | 国产一区二区三区高清在线观看 | 国产精品亚洲片夜色在线 | 免费国产乱理伦片在线观看 | 国产伦精 | 在线观看网站人成亚洲小说 | 亚洲色一色噜一噜噜噜人与 | 青青成人福 | 日韩欧美另类一区二区三区 | 中文日产无乱码v在线观 | 综合欧美日 | 国产又黄又猛又粗又爽的a 羞羞影视 | 一级一片免费播放 | 福利片一区二区 | 国产伦精品一区二区三区无广告 | 911国产自产精品a | 天天舔天天射 | 在线精品国产一区二区 | 国产一区二区三区不卡在线 | 免费看美女脱了全身衣服直播 | 国内自拍网 | 日本免费a视频 | 日本激情猛烈在线看免费观看 | 国产日本欧美亚洲精品视 | 一级欧美一级日韩片 | 国产精品91视频免费 | 日韩争樱花起源 | 亚洲第一区欧美日韩 | 亚洲国产午| 91精品人成在线观看 | 亚洲日本v中文字幕区 | bt自拍另类综合欧美 | 视频二区日韩 | 国产乱码一区二区三区爽爽爽 | 亚洲午夜视频在线观看 | 国产99久9在线视频 欧美日韩国产综合视频 | 亚洲经典一区二区三区爱妃记歌词 | 911亚洲精品国产自产 | 午夜福利试看120秒体验区 | 免费观看又污又黄的网站 | 91精品视频免费在线观看 | 一本之道高清 | 成人不卡| 99精品福利国产精品一区 | 两个人www在线观看免费视频 | 二区62 | 99国产在线精品国自产在 | 国产欧美精品一区二区三区四 | 免费国产午夜激情片 | www日韩免费高清视频 | 国产欧美日韩精品福利98 | 国产男人午夜视频在线观看 | 97精品亚成在人线免视频 | 日韩高清码中文字幕日韩 | 日韩一区高清在线观看 | 亚洲v日韩v欧美高清在线观看 | 成人啪精品视频网站午夜 | 亚洲天堂色在线 | 欧美重口另类在线播放二区 | 海量高清影片免费观看 | 朋友的妈妈2在完整有限中字第 | 亚洲人成依人成综合网 | a男人的天堂 | 51国产愉自视频区视频 | 欧美性爱另类丝袜一二三区 | 欧美国产日韩二区 | 亚洲+欧洲+日本+国产 | 国产欧美一区二区 | 精品亚洲一区二区在线播放 | 国产91| 国产精品一区二区三区四区 | 99视频精品全部国产盗摄视频 | 99热精品免费 | 日韩在线中文字幕欧美 | 亚洲国产香蕉碰碰人人 | 国产精品丝袜一区二区三区 | 日韩欧美中文精品电影 | 国产精品对白 | 99热这里只有 | 影视最全更新最快 | 欧美综合自拍亚洲综合图 | 国产在线欧美日韩一区二区 | 欧美三级极品视频在线观看 | 国产又黄又爽刺激视频 | 99re热视频精品首页 | 亚洲天堂日韩中文 | 国内精品伊 | 免费在线观看网址入口 | 国产亚洲精品自在在线观看 | 亚洲欧美视频在线 | 国产精品导航一区二区 | 正在播放国产真实哭都没用 | 又湿又紧又大又爽又a视频 日韩视频免播放在线观看 欧美亚洲日韩国 | 国产乱伦视频 | 亚洲区小说区激情区图片区 | 日韩欧美一卡二区 | 中文字幕精品视频第一区第二区 | 中文字幕日韩欧免费视频 | 在线网站 | 国产免费一区二区三区在线 | 韩国高清乱理伦片中文字幕 | 国产a级三级三区成人国产一级婬 | 亚洲午夜成人va在线 | 国产乱子伦一区二区三区视频播放 | 亚洲人在线观看影院 | 精品成人一区 | 91影视永久福| 国产香蕉尹人综合在线观看 | 婷婷开心激情综合五月天 | 日韩精品视频网站在线 | 国产精品免费视频能看 | 欧美女视频网站大全在线观看 | 亚洲一本之道高清在线观看 | 国产欧美一区二区精品久 | 国产猛男猛女超爽免费视频 | 欧美一级特黄aaa大片在线观看 | 日本成年人黄a大片 | 日本成年人| 精品h一区不卡免费视频国产 | 国产精品一区在线免费观看 | 日韩精品一区二区三区中文在线 | 色老头在线永久免费视频 | 亚洲精品国产乱码在线看天美 | 97超级碰碰碰碰精品 | 欧美性黑人极品hd另类 | 亚洲欧美在线观看品 | 日本公与 | 免费三级 | 欧美a级毛欧美1级a大片式放 | 免费女人| 草草视频在线 | 中文字幕乱码亚洲无线三区 | 国产乱码在线精品可播放 | 99高清国产自产拍 | 日本黄页网址在线看免费不卡 | 在线综合亚洲欧洲综合网站 | 精品91自产拍 | 大地资源高清日本 | 九九综合九色综合网站 | 东京男人的天 | 亚洲欧美精品福利一区二区 | 亚洲一区二 | 2025亚洲日韩新视频 | 日本伦理片在线看 | 国产国产精品 | 免费国外性视频网站 | 日韩一级在线精品国产 | 国产日韩欧美精品大秀 | 永久免费精品影视网站 | 日韩精品欧美精品国产精品 | 国产精品玩偶在线 | 在线观看国产高清免费不卡黄 | 日韩精品一区二区三区在线观看 | 99视频经典在线观看的 | 99这里只有精品在线观看视频播 | 日本精品大乳一区 | 激情婷婷 | 在线国产| 经典国产精品 | 国产福利萌白酱精品tv一区 | 日韩精品永久免费播放平台 | 国产精品r级最新在线观看 夜夜爽免费看 | 午夜福利一区二区电影 | 欧美日韩变态另类在线观看 | 国产又大又粗又猛又爽的视频 | 国产精品成年片在线观看 | 久一线视| 日韩欧美精品综合一区二区三 | 国产在线精品观看一区 | 国产特级婬片免费看 | 亚洲日韩国产成网在线观看 | 亚洲中文字幕一二三四区 | 又大又粗又硬又爽 | 在线精品自拍亚洲第一区 | 99亚洲综合精品 | 日本道vs高清一区二区三区 | 国内一区二区三区在线观看 | 香蕉一区二区在线观看 | 含羞草国产亚洲精品岁国产精品 | 尤物在线精品视频 | 国产羞羞视频在线观看 | 51精品免费视频国 | 国亚洲一厂区二厂区三厂区 | 欧美日韩一区二区综合在线 | 国产精品伦一区二区三级视频 | 欧美日产国产精品 | 国产一区二区三区四区免费观看 | 国产黄在线观看免费视频45分钟 | 国内精品手机在线观看视频 | 亚洲一级在线中文字幕 | 视频区国产图片区小说区 | 热播影视剧在线观看 | 一区二区三区四区国产免费 | 国产免费一区二区视频 | 中文字幕亚洲综合久 | 在线看片 | 理论片在线观看 | 在线成人国产公开视 | 婷婷蜜桃国产精品一区 | 成人啪精品视频网站午夜 | 国产盗摄一区二 | 2025国产每日福利更新 | 亚洲欧美综合一区二区三区黄大片 | 国产乱子伦对白视频 | 日韩精品视频网站在线 | 一道免费一区二区三 | 妇女偷汉对白视频 | 曰本还a大片免费视频 | 日本中文在线观看欧美 | 日本欧美 | 日本黄页网站免费观看 | a国产精品视频 | 日本免费在线看aⅴ | 亚洲一区二区三区精品动漫 | 国产日韩精品欧美一区色 | 中文字幕无线码一区2025青青 | 99视频 | 日韩精品一区二区三区观看 | 性刺激的 | 亚洲高清国产拍精品动图 | 国产高清乱码又大又圆 | 亚洲无限| 青草青草久热精品视频在线观看 | 新片速递 | 国产精品大片在线看 | 高清一区二区三区欧美激情 | 午夜福利小视频400 日本三级做a全过程在线观看 | 亚洲精品有码在线观看 | 国产在线精品一区二区不卡 | 午夜国产精品蝌蚪在线观看 | 国产欧美日韩一区二区三区 | 精产国品 | 99re视频在线| 成年女人免费毛 | 国产乱码卡二卡三卡4 | 91国内自产 | 私人影视 | 三级三级三级a级全黄 | 亚洲欧美中日韩中文字幕 | 国产精品色一区二区三区 | 亚洲精品成人区在线观看 | 成人亚欧网站 | 亚洲精品日韩在线观看高清不卡 | 国产美女自卫慰视频福利 | 国产二区三区午夜免费视频 | 国产欧美一区二区三区精品 | 国产精品三三级在线 | 91最懂男人的午夜社区 | 四川妇女bbbwbbbwm村妓 | 在线影视网站 | 午夜日韩综合激 | 在线观看精品国产 | 国产老人一区v二三区 | 一区二区三区在线播放 | 亚洲精品男女视频在线 | 亚洲中文字幕在线一区 | 99国产欧 | 激情文学小说区另 | 精品女同一区二区三区免费站 | a级日本| 欧美野人三级经典在线观看 | 国产不卡免费视频 | 国产亚洲sss在线播放 | 亚洲国产精品福利在线 | 欧美日韩免费观看 | 日韩国产经典欧美午夜福利 | 日本三级带日本三级带黄首页 | 色一情一伦一区二区三 | 国产精品拍综合在线 | 新片速递 | 亚洲精品一品区二品区三品区 | 国产精品成人一区二区不卡 | 欧美另类制服丝袜国产 | 日本动漫精品一区二区三区 | 国产精品第一区第27 | 亚洲男人第一天堂 | 国产亚洲日韩欧美一区二区三区 | 日本高清一级婬片a级中文字幕 | 午夜男女羞羞爽爽爽视 | 日本精品高清一区二区 | 136福利| 91成人深夜在线观看 | 国产群p视频在线观看 | 在线观看视频一区精 | 国产精品国语自产拍在线观看 | 国产精品冒白 | 免费手机在线看片 | 亚洲人成亚洲精品 | 欧美日韩国产精品视频 | 国产精品一区成人精品果冻传媒 | 国产在线成观看视频播放 | 日韩精品欧美精品国产精品 | 美国十次啦超级大导航 | 中文字幕免费高清电视剧网站 | 最新国产一区二 | 亚洲精品动漫免费二区 | 日韩欧美精品一区二区三区 | 亚洲日韩国产欧 | 无人区乱码一区二区三区 | 福利片+国产+合集 | 狠狠狠狼鲁欧美综合网免费 | 国产亚洲一区二区 | 一区二区三区四区电影 | 在线播放不收费 | 亚洲精品一本四区91 | 91精品啪在线观看国产色 | 成人爽爽激 | 一区二区三区精品视频 | 二区三区国产亚洲综合 | 污污污视频在线免费观看 | 免费国产黄线在线播放 | 国产91福利小视频在线观看 | 91国偷自产中文字幕婷婷 | 国产精品1区2区3区在线播放 | 性生生活12分钟免费 | 在线国产视 | 在线视频一区二区三区 | 51国产愉自视频区视频 | 欧美精品一区日韩国产 | 亚洲成脛∨人片在线观看福利 | 播放国语介绍动漫更新视 | 中文字字幕乱码无线精品精品 | 欧美亚洲人成网站在线观看 | 国产国产人在线成免费视频69 | 欧美日皮片| 国产精品亚洲一区二区三区欲 | 欧美日本免费一区二区三区 | 青青国产在线播放 | 国产直播视频在线播放 | 久一在线视频 | 国产亚洲欧洲精品 | 国产精品99精品一区二区 | h片在线观看免 | 337p日本欧洲亚洲 | 精品国产品国语在线不卡 | 亚洲热线99精品视频 | 午夜综合网 | 真实国产乱子伦视频 | 亚洲国产一区二区在线 | 欧美精品视频一区二区三区 | 激情综合五月天 | 日本香蕉尹人在线视频 | 精品精品国产欧美在线观看 | 亚洲区日韩精品中文字暮 | 亚洲精品一区二区三区在 | 精品国产香 | 国产欧美日韩一区二区三区视频 | 欧美一级特黄aaa大片在线观 | 国产大片a免费在线手机观看 | 成人免费看www网址入口 | 欧美日韩免费在线观看 | 加勒比色| 手机免费在线观看日韩电影 | 97在线精品国自产拍中文 | 中文字字幕乱码高清二本道资源站 | 欧美精品日韩精品一卡 | 国产成a人 | 国产一区不卡在线观看 | 国产理论片高清 | 国语对白精品视频在 | 国产又色又爽又黄的网站在线 | 最近免费中文字幕视频高清在线看 | 欧美最猛黑人xxxx黑人猛交 | 国产精品一区二区精品视频导航 | 日本三级韩国三级欧美三级 | 在线日韩中文字幕 | 最新国产精品亚洲 | 精品国产亚洲一区二区三区在线观 | 久热韩国综合中文字幕视频 | 精品国产男人的天 | 亚洲日本va午夜在线电影 | 亚洲国产精品不卡高清在 | 亚洲人色大成年网站在线观看 | 色戒在线完整 | 手机电视剧全集观看 | 2025精品国夜夜天天拍 | 91精品啪在线观看 | 亚洲福利一区福利三区 | 中文字幕欧美中日韩精品 | 欧美视频综合二区 | 91高清免费国产自产拍不卡 | 亚洲图片偷拍视频区 | 亚欧乱色国产精品免费九库 | 国内成人福利短视频在线 | 又刺激又爽又黄的视频在线观看 | 二区日韩国产精品 | 永久免费4k观影站 | 国产人免费视频成69 | 囯产精品一区二区三区乱码 | 日本精品国产 | 欧美色吊丝人人添人人摸 | 最近日本电影免费观看全集 | 亚洲欧美国产另类 | 好看动漫 | 91精品专区国产在线观看高清 | 国产高清不卡一区二区 | 亚洲高清不卡在线观看 | 国产又大又粗 | 日本在线理| 天堂中文最新版在线中文 | 亚洲一区二区三区在线观看播放 | 免费人成网站在线观看欧美 | 国产女饥渴熟女专区九色 | 国产三区四区五区 | 老子影院午夜伦不卡 | 亚洲第一免费视频 | 午夜网站在线观看www | 国产丰满老熟女重口对白 | 精品国产一区二区在线观看 | 99久热国产精品视 | 国产伦子伦对白视频 | 97视频精品全国免费观看 | 羞羞视频下载 | 国产在线不卡人成视频 | 乱码在线观看 | 国产91尤物在线观看互 | 神马视频 | 亚洲欧洲自拍偷拍 | 免费人成视频在线播放视频 | 国产又色又爽又黄又刺激的视 | 成年女人黄小视频 | 精品视频在线观看免费观看 | 一级在线免费观看 | 亚洲天堂偷拍日韩中文字 | 精品国产手机自 | 国产精品自在线 | 亚洲精品高清 | 日本欧美真人三级在线a | 国产一区二区精品免费播放 | 国产亚洲一区二区 | 成人又黄又爽又色的网站 | aa级亚洲电影| 国产精品91视频免费 | 日本电影中文字 | 国产精品极品美女自在线观看 | 亚洲91视 | 免费在线观看小说区激情另类 | 欧美一区二区三区日韩免费播 | 91精品国产白产91精品 | 免费无毒a网站在线观看 | 亚洲欧美国产18 | 日本亚洲欧美国产电影在线观看 | 区三区影院视频 | 制服丝袜欧美中文 | 精品一区二区三区在线免 | 国产精品免费入口视频 | 欧美日韩一区二区三区在线播放 |