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

金喜正规买球

甘特圖控件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
日韩高清不卡在线视频观看 | 国产精品1024香蕉在线观看 | 国产91爱剪辑直播在线观看 | 亚洲+欧美+国产 | 欧美日韩亚洲国 | 国一产区视频 | 国产一区二区精品久电影 | 在线观看精品国产 | 视频在线播放在线观看 | 国产激情a∨在线视频播放 国产激情自拍亚洲精品国产精品精 | 精品国产高清自在线 | 开开影院 | 中文字幕精品乱码亚洲一区 | 亚洲精品国产自在现线最新 | 国产偷v国产偷v | 伊人久色 | 欧美巨大黑人暴力xxxxx黑人 | 亚洲国产精品福利在线 | 成年免费视频播放网站推荐 | 精品国产免费人成电影在线观 | 在线看国产精品 | 欧美日韩精品中文字幕 | 亚洲精品国产精品国自产 | 丝袜国产精品视频二区 | 中文字幕一区二 | 人在线观看 | 国产高清在线不卡 | 56prom精品视频在放免费 | 国产欧美日韩综合一区在线 | 欧美特黄特刺激a一级淫片 日本中文字幕在线播放 | 精品一4区| 亚洲国产一区二区日韩专区 | 国产亚洲tv在线观看 | 国内精品视频在线播放一区 | 91最新精品视频在线 | 亚洲一区二区三区 | 亚洲三级带中字 | 亚洲欧美日韩国产色另类 | а8天堂资源在线官网 | 在线免费在线观看的a | 亚洲精品欧美二区三区中文字幕 | 亚洲欧美激情小说另类 | 欧美亚洲精品一区二区在线观看 | 亚洲精品一二三区尤物tv | 专区一乛方 | 亚洲一区二区影视 | 欧美视频在线一区 | 高清免费a级在线观看国产 最新福利电影在线看 | 午夜韩国理论片在线观看 | 欧美v亚洲v综合v国产v | 国产专区在线播放 | 两个人高清在线观 | 在线午夜看片福利深夜导航 | 高清影视大全 | 婷婷精品在线 | 亚洲一区二区三区高清视频 | 亚洲国产精品va在线播放 | 伊人国产在线视频 | 高清欧美日韩一区二区三区在线 | 手机国产乱子伦精品视频 | 91精品国产免费青青碰在线观看 | 国产精选污视频在线观看 | 日韩高清在线高清免费 | 亚洲综合色一区二区三区另类 | 日韩欧美一区二区三区视频在线 | 日本免费一级婬片a级中文字幕 | 精品国产一区二区三区四区色 | 国产精品99| 亚洲精品高清 | 日本在线| 日本亚洲视频在线不卡免费 | 国产免费人成 | 国产又粗又黄又爽的大片 | 青青国产精| 日本成熟丰满老妇xxxx | 亚洲欧洲国产码专区在线观看 | 亚洲欧美日韩国产综合在线看片 | 国产日产亚洲系列最新 | 国产69| 国产成a人| 亚洲精品视在线看1 | 91干逼 | 好男人好资源神马在线 | 亚洲天堂网一区二区三区四区 | 不卡电影网 | 日本日本乱码伦视频在线观看 | 午夜丁香婷婷免费手机在线观 | 最新电影电视剧观看 | 美女禁区a级全片免费观看 113美女写真 | 蜜桃传媒视频 | 中文字幕亚洲综合久 | 国产高清视频 | 小黄文污到你湿 | 97人人揉人人捏人人添电影 | 欧美日韩在线播放一区二区三区 | 欧美精品高清乱伦 | 国产熟女绯色一区二区三区免费 | 国产激情国语对白 | 国产精品欧美一区二区三区 | 成年免费大片黄在线观看一 | 免费国产污网站在线观看 | 精品成人福利在线播放 | 国产精品高清尿小便嘘嘘 | 精品免费美剧网排行榜在线看 | 欧美人与动交zoz0 | 欧美日韩精品一区二蜜桃在线观 | 色一情一乱一伦 | 51精品国产人成在线观看 | 国产91精品在线观看导航 | 三年片免费观看大全 | 成+人+黄+色+免费观看 | 天天综合网~永久入口 | 91区国产福利在线观看午夜 | 亚洲一区二区三区在线 | 国产高清在线视频一区 | 精品免费一 | 日本免费一区二区在线看片 | 欧美日韩不卡高清在线看 | 国产亚洲精品高清在线 | 91免费看片 | 精品第一国产综合精品蜜芽 | 国产高清在线精 | 不用播放器的a网站 | 亚洲国产一区二区在线免费 | 18岁禁止入内 | 国产精品播放一 | 午夜国产在线一区二区三区 | 野花日本大全免费观看中文7 | 国产美女一区二区丝袜美腿 | 欧美午夜理伦三级在线 | 日本一区二区三区在线观看网站 | 亚洲国产中文国产一区二区三区 | 大胆gogo无 | 午夜福利在线观看国产精品 | 伊伊人成亚洲综合人网香 | 处女的诱惑在线观 | 欧美又粗又 | 国产h片在线观看视 | 97精产国品一二三产区 | 欧美日韩日本中国高清视频在线 | 99久热国产| 在在线播放 | 成人午夜影院 | 丰满岳乱妇 | 亚洲国产一区二区三区a毛 国产美女淫秽一区二区三区 | 亚洲小说第一区 | 看日韩精品视频在线观看 | 免费国产人做人视频在线观看 | 午夜在线观看免费观看大全 | 色琪琪原网站亚洲香蕉 | 国产aⅴ视频免费观看国语 91大神在线视频免费观看 | 97超视频在线观看视频在线 | 极速影院 | 在线观看免费高清 | 欧美一区二区三区性视频 | 一品二品国精破解 | 婷婷综合尤物精品国产 | 精品一区二区免费视频 | 男男女女爽爽爽免费视频 | 村长巨大开嫩苞 | 豆国产96在线 | 97碰碰碰成年免费视频s | 亚洲一区二区在线欧洲 | 亚洲国产aⅴ精品一区二区女女 | 91精品国产人成网站 | а√天堂中文官网在线8 | 在线观看福利影院 | 成年美女黄 | 日韩中文字幕v亚洲中文字幕 | 亚洲色中文字幕在线播放 | 欧美日韩国产码高清 | 欧美特黄特色三级视频在线观看 | 国产在线播放不卡 | 免费看男人j放进女人p的视频 | 国产综合 | 日韩综羞羞视频免费网站欧美 | 中文字幕v亚洲ⅴv天堂 | 国产欧美日韩va另类在 | 国产一区二区三区美女 | 国产又粗又大又长又猛在线视频 | 国产精品自产拍在线观看 | 午夜福免费福利在线观看 | 日韩专区在线观看 | 大地影院mv在线观看高清 | 日韩不卡高清中文字幕 | 国产色综合天天综合网 | 日本在线观看的免费 | 三区在线播放 | 青青青在线播 | 亚洲人成亚洲精品 | 色吊丝*性观看网站大全 | 国产制服丝袜你 | 国产一级一片免费播放放 | 亚洲国产在一二区三区不卡 | 免费观看国产一区二区三区 | 欧美激情日韩 | 两性色午夜视频免费国产 | 亚洲一区二区三区中文字幕在线 | 午夜a级理论片在线播放不卡 | 国产欧美日本在 | 成人影片一区免费观看 | 日韩激情成 | 国产又爽又黄又刺激的视频 | 亚洲欧美国产国产一区二区三区 | 99香蕉国产精品偷在线观看 | 国产精品日韩亚洲一区二区 | 成年女人 | 午夜理论片y | 伊人精品 | 国产一区视频在线观看免费 | 综合一区二区 | 野花日本完 | 国产系列欧美系列每日更新 | 亚洲欧美成ⅴ人在线观看 | 国产一区二区在 | 精品一区二区三区夜夜嗨 | 成人国产精品高清 | 最好看免费观看高清电影大全 | 激情精品一区二区在线观看 | 国产男生夜间福利免费网站 | 自拍偷拍欧美图片 | 精品91一区二区三区 | 国产精品一区成人精品果冻传媒 | 中文一区二区 | 国产精品亚洲日韩au在线 | 天天影视| 国产精品亚洲综合视频 | 热门电影、电视剧、动 | 白色丝袜| 亚洲人成网站在线观看 | 国产精品13页 | 片在线观看导航 | 91视频在线 | 国产开嫩苞实拍在线播放视频 | 国产91丝袜在线播放网站 | 国产精品视频高清在线播放 | 国产精品一区二区精品视频导航 | 国产午夜福利精品一区二区三区 | 国产高清在线精品一区在线 | 国产大片特黄高清视频 | 欧美精品人在线观看 | 草的舒服点网站在线观看 | 国产主播福利片在 | 自拍一区综合图区 | 性生大片免 | 国产亚洲男人的天堂在线观看 | 午夜级理论片在线播放202 | 亚洲最大国产成 | 免费午夜伦费影视在线观看 | 好看的日韩电影 | 国产盗摄精品一区二区三区 | 电视剧大全免费全集观看。 | 真实国产乱子伦对白在线 | 99久在线观看 | 国产日韩精品一区在线观看 | 日本中文字幕有码在线播放 | 最新高清电影免费在线观看 | 欧美日韩在线亚洲 | 巨熟乳波霸中文观看免费 | 天堂亚洲日韩专二区 | 偷窥视频| 又污又爽无 | 亚洲欧洲国产视频 | 欧美日本韩国一 | 欧美+国产+日产+韩国 | 拍国产真| 国产乱码一区二区三区免费 | 亚洲精品r级在线观看网站 国产黄大片在线观看画质 欧美无砖专区一中文字幕 欧美亚日韩国产aⅴ精品中极品 | 国产吹潮视频在线观看 | 欧美日韩精品专区在线 | 亚洲精品永久在线观看 | xxxx迷奷在线观看 | 日韩成人午夜在线视频 | 热门电影综艺电视剧手机在线观看 | 午夜理论电影在线观看亚洲 | 国产福利在线观看视频 | 国产午夜不卡 | 国产99视频精品免视看7 | 国产日本欧美高清免费区 | 国产直播视频在线播放 | 苍苍影院 | 性欧美午夜高清在线观看 | 伦视频中文字幕亚洲天堂网 | 欧美视频综合二区 | 九九热视频在线免费观看 | 欧美性猛交xxxx乱大交极品 | 国内揄拍国内 | 草莓视频免费观看 | 亚洲性爱国| 999zyz玖| 亚洲日韩在线观看 | 国产亚洲精品精品精品 | 91电影在线观看 | 性生大片免费观看网站 | 影视先锋| 国产一区二区在 | 成视频在线播放免费人成 | 亚洲成在人线中文字幕 | 最新国产乱 | 五月天婷婷激情 | 日韩一级香蕉片在线观看 | 国产伦精品一区二区三区免.费 | 三级在线观看免费观看电影 | 精品国产污污免费网站入口 | 这里只有精品在线观看视频 | 99日韩a及免费视频 91精品手机国产在线观 | 国产精品视频露脸 | 免费电影推荐 | 一级a爱片免费观看高清完整 | 美丽的姑娘高清版在线观看 | 精品免费国产一区二区三 | 国产一区二区三区精品专区 | 国产欧美一区二区精品婷婷 | 亚洲国精产 | 老司机精品一区在线视 | 高清在线精品一区 | 成人欧美一区二区三区白人 | 亚洲中文字幕乱码熟女在线 | 香蕉在线精品视频在线观看2 | 国产精品成人免费福利 | 国产精品成人免费视频网站京东 | 在线观看日韩欧美 | 国产精品91天 | 免费国产午夜激情片 | 中文字幕在线日亚州9 | 99热这里只有精品国产4 | 欧美精品三区 | 国产亚洲精品看片在线观看 | 999热这里只 | 日本最新在线一区二区 | 亚洲精品一本四区91 | 精品亚洲一区二区三区在线播放 | 梦乃爱华作品在线观看播放 | 一本大道在线 | 亚洲人色大成年网站在线观看 | 国产免费人成视频在线观看播放 | 亚精一区二 | 国产精品视频国产永久视频 | 国产揄拍视频在线观看 | 日本有码中文 | 日本三级私人电影网 | 中文中幕a在线 | 美丽的姑娘高清版在线观看 | 国产欧美精品一 | 国产福利导 | 老女人牲 | 国产在线精品一区二区 | 亚洲欧美国产国产一区二区三区 | 日韩在线观看不卡 | 国产又色又爽又黄 | 最新高清私人vip视频资源 | 日本va欧美va精品发布 | 91啦视频在线观看 | 欧美国产日韩a在线观看 | 在线观看国产福利91啪 | 97精品亚成在人线免视频 | 国产香蕉国产精品偷在线观看 | 国产高清一 | 福利国产视频一区二区 | 在线成人亚洲一区电影 | 国产亚洲精品国产91 | 亚洲欧美人高清精品a∨ | 国产一区二区视频在线关看 | 日本一本精品中文字幕视频 | 最近中文字幕完整版hd | 国产免费私拍一区二区三区 | 自拍偷自拍亚洲精品偷一 | 免费人成在线视频无 | 99久re热视频这里只有精品6 | 最近2025年好看中文字幕视频 | 欧美一区二区三区婷婷月色 | 四川w搡bbb搡wbbb搡按摩 | 国产一区二区四五区在线视频 | 亚洲国产精品国自产拍a∨ 麻花影视在线看电视剧软件 | 欧美激情欧美狂野欧美精品免费 | 亚洲欧美日韩国产另例 | 国产小视频福利在线观看高清完整 | 国产v在线在线观 | аⅴ资源中文在线天堂 | 成人午夜福 | 国产欧美亚洲一区二区三区 | a∨中文字幕另类 | 韩欧美一区二区 | 七十路熟女交尾hd | 99精品国产自在现线观看 | 国产偷精品免费观看 | 在线播放亚洲综合 | 免费看成年视频在线入口完整版 | 天堂а√在线地址8中文种子 | 国产精品免费网站 | 欧美日本免费一 | 国产精品v日韩精品 | 羞羞影院午夜男女爽爽 | 日韩综合精品一区二区 | 女人扒开 | 99热精品免费 | 天堂中文最新版在线中文 | 亚洲欧美日韩一区中文字幕 | 小小的日本高清在 | 亚洲欧美日韩精品高清 | 日韩精品一区二区三区四区蜜桃 | 亚洲一区二区在线免费观看 | 国产精品v欧美精品v日韩 | 亚洲精品字幕中文在线播放 | 国产一区二区三区精品观看啪 | 超前点播最新电影电视剧 | 欧美激情在线精品video | 好看的高清电影大全 | 国产精品一区韩国电影日本 | 在线久色| 日本激情在线观看免费观看 | 国产亚洲美女精 | 国产视频一区二区在线观看 | 日本激情猛烈在线看免费观看 | 一级特黄高清aaa | 欧美xxxx黑人又粗又长精品 | 在线播放亚洲综合 | а√天堂资源在线官网 | 欧美一级精品视频一区 | 热门事件黑料不打烊吃瓜 | 亚洲人成在线观看 | 一卡二卡三四卡国产乱码 | 欧美亚洲| 日本乱码乱码免费高清视频 | 乱仑图片 | 亚洲人成电影在线小说网色 | 另类专区亚洲 | 国产高清超 | 国产精品九九九午夜 | 在线点播亚洲日韩国产欧美 | 免费电影资源 | 成人国产一区二区 | 午夜一区二区三区 | 日韩精品午夜视频一区二区三区 | 色吊丝中文字 | 天堂а√在线中文在线 | 国产在线视频欧美亚综合 | 亚洲国产精品sss在线观 | 五月婷婷中文字幕 | 日本欧美欧美一级毛卡片 | 国产乱伦视 | 99爱在线观看精品视频 | 97久视| 午夜国产福利看片 | 在线观看视频 | 48国产吹潮在线观看 | 成人国产精品免费视频 | 日本黄大片在线观看视频 | 日韩精品三级一区二区 | 在线日产精品一区 | 日本aⅴ | 日韩在线视频一区二区 | 精品国产自在在线在线观看 | 国产乱色国产精品免费视频 | 成人v视频网 | 天美传媒果冻传媒国产日本 | 欧美黑人ⅹxxx猛交 日日狠狠 | 亚洲日韩一区二区 | 日韩主播大秀在 | 中文字幕巨大乳在线看 | 无色码中文字幕亚洲精品 | 99视频热这里只有精品 | 亚洲精品沙发午睡系列 | 国产一区欧美亚洲 | 中文字幕一区日韩高清 | 国产91丝袜在线精品 | 国产日韩免费视频在线观看 | 免费观看一区二区三区 | 在线视频播放 | 日韩中文字幕高清在线 | 亚洲精品国产精品乱码不卡√ | 国产精品免费视频观看拍拍 | 写真福利理论片在线播放 | 欧美综合自拍亚洲综合网 | 国产婷婷| 亚洲欧美精品福利一区二区 | 欧美级韩国三级日本三级 | 国产精选在线观看播放 | 青春娱乐国产分类精品二 | 国产精品xxx在线 | 99久热海外精品视频 | 国产不卡福利片在线观看 | 日产亚洲一卡2卡3卡4卡网站 | 亚洲国产日韩欧美综合a | 欧美a级情欲片手机在线播放 | 91精品啪在线观看国产在线 | 国产在线国偷精品免费 | 日本天堂天v在线播放 | 欧美中文日韩在线观看 | 免费人成视频在线观看播放网站 | 国产欧美va欧美va日韩精品 | 日本日本乱码伦视频在线观看 | 亚洲老妈激情一区二区三区 | 日韩午夜在线视频 | 亚洲国产精品va在线观看香蕉 | 日本一卡2卡三卡4卡网站 | 日本中文字幕网 | 国产在线观看www | 欧美人与性动交α欧美精品 | 国产精品一区二区在线观看网站 | 亚洲一区二区精品 | 又硬又粗又长又爽免费看 | 日本视频| 国产精品亚洲片在 | 午夜三级a三级三点窝 | 天美麻花星空免费 | 国产精品欧美亚洲韩国日本 | 最新国产99视 | 亚洲国产精品自在拍在线播放蜜臀 | 中文天堂最新版在线网 | 国产高清一区二区三区视频 | 成人美女国产精品免费视 | 起碰97在线视频国产 | 国内精品一区二区 | 日韩精品一线二线三线优势 | 中文第一页在线视频 | 在线丝瓜| 亚洲国产成a人v在线观看 | 在线观看午夜亚洲一区 | 亚洲高清视频一区 | 人成视频在线观看国产 | 一区二区三区免费观看 | 亚洲精品一区二区观看 | 亚洲精品一二三四区 | 大胆gogo无| 欧美视频综合二区 | 国产又大又粗 | 国产精品中文 | 国产精品网站在线观看免费传媒 | 超清乱人 | 三级视频网站在线观看视频 | 国精一二二产品无人区 | 精品成人一区二区三区电影 | 在线日本妇人成熟免费 | 日本护士视频欧美无砖专区 | 区小说区激情区图片区 | 成年免费大片黄在看 | 特黄特色的大片观看免费视 | 成人影视网 | 精品福利 | 99亚洲综合精品 | 韩国三级bd高清在线观看 | 国产99视频精品专区 | 福利片免费视频在线观看 | 999zyz玖玖资源网免费 | 中文字幕无线码中文字幕网站 | 欧美视频在线 | 精品国内一区二区三区蜜桃 | 欧美三茎同入 | 九九在线免费视频 | 免费人成在线观看网站免费观看 | 亚洲男人夜夜精品电影 | 亚洲成a人 | 国产精品国语自产拍在线观看 | 韩国免费视频一区二区三区 | 国产免费人成视频在线观看 | 欧美、另类亚洲日本一区二区 | 亚洲中文字幕30页 | 中文字幕午夜福利片午夜福利片 | 亚洲曰韩精 | 日本日本乱码伦视频在线观看 | 欧美激情刺激爽爽影院 | 国产小视频在线播放 | 亚洲国产一区二区在线 | 中文字幕日韩wm二在线看 | 丁香美女社区 | 国产亚洲精品一区二区在线 | 伊人影视网 | 伊人网视频在线观看 | 亚洲欧美中文字幕国产 | 国产成本人三级在线观看网站 | 无人区码一码二码三 | 一区二区三区四区无限乱码 | 黑人巨茎大战亚洲白妇 | 国产欧美日韩精品丝袜高跟鞋 | 国产一级二级亚洲 | 日韩欧美精品一区二区三区 | 美女足脚交一区二区三区 | 国产激情a∨在线视频播放 国产激情自拍亚洲精品国产精品精 | 91精品国产自产91精品 | 偷窥清纯综合图区 | 亚洲五月花在线观看 | 国产一级特黄aa大片在线观看 | 亚洲精品伊人 | 最近的中文字幕 | 日韩精品一区二区三区中文3d | 午夜国产精品理论 | 国产又爽又黄又刺激的视频 | 国产老肥熟一区二区三区 | 丁香九月月小说图片区 | 在线播放国产精品三级 | 欧美日韩在线亚洲 | 一区二区精品日韩欧美在 | 免费a级 | 国产一区二区三区猎奇视频 | 国产丝袜视频在 | 国产精品伊人 | 国语自产 | 最新热播电影完整版 | 4日本国产vps私人大片 | 国产精彩视频一区二区在线观看 | 亚洲欧美日韩二区三区 | 国产一区在线视 | 欧美蜜桃臀在线观看一区 | 最近免费中文字幕视频高清在线看 | 日韩一区二区三区免费视频 | 国产初次在线观看 | 欧美超高清xxxhd | 私人小影院 | 色色色色色色资源女人天堂 | 欧美日韩精品一区二区在线观看 | 999国内精品永久免费观看 | 尤物网红麻酥酥 | 欧洲精品免费高清在线视频 | 日韩精品视频一区二区三区 | 国产小视频福利在线观看高清完整 | 九九九国产视频 | 粗大挺进| 欧美在线激情视频 | 国产嘿嘿嘿视频在线观看 | 国产精品视频高清在线播放 | 三年片在线观看大全中国 | 国产精品视频国产永久视频 | 91啦视频在线观看 | 国产日产高清dvd碟片 | 亚洲综合另类小说 | 天天影视| 亚洲欧洲国产韩国va在线 | 91看片淫黄大片在看 | 国产精品成人aaaaa网站 | 国产欧美视频综合二区 | 国产欧美日韩精 | 亚洲欧洲另类春色 | 视频在线华人精品草 | 亚洲精品456在线播放 | 国产高清成免费视频 | 国产视频高清在线观看 | 欧美日韩在线观看免费 | 亚洲欧美日韩精品中文乱码 | 一区二区三区影院在线午夜 | 91人人澡人人 | 国产美女嘘嘘嘘嘘嘘 | 小罗莉极品一线天在线 | 国产系列丝袜熟女精品网站 | 在线欧美日韩亚洲国产一区 | 玖玖免费视频在线观看 | 国产黄大片在线观看 | 国产男生夜间福利免费网站 | 欧美日韩中文字幕免费看 | 日本高清不卡一道免费观看 | 亚洲欧美日本人成在线观看 | 国产最新精品自产在线观看 | 国产一区自拍欧美 | 一区二区欧美 | 高清精品一区二区三区 | 国产资源在线观看 | 日本中文在线观看欧美 | 国产精品自在拍一区二区不卡 | 国产网红精品紫薇视频 | 苍苍影院| 亚洲精品中文字幕不卡在线 | 欧洲一卡2| 免费亚洲大片app下载 | 日韩中文在线视频 | 精品国产污 | 中文字幕日本有码视频在线 | 免费一级欧美片在线观看 | 亚洲911精品一区二区 | 国产乱了真 | 日本亚洲欧美综合视频 | 欧美激情一区二区三级高清视频 | 99在线精品免费视频九九视 | 日韩一本之道一 | 欧美日韩日本中国高清视频在线 | 伊人影视网 | 看片免费人成视频 | 日国产一区三区三区在线观看 | 偷拍自产在线观看蜜桃 | 精品一区二区三区电影 | 欧美日韩在线第一页 | 妖精视频一区二区免费 | 最近中文字幕mv免费高清视频 | 久热官网 | 国产一区二区三区精品观看啪 | 国产精品偷伦费观看 | 国产欧美日韩va另类在线播放 | 亚洲无线码一区国产欧美国日 | 日韩国产欧| 欧美一级鲁丝 | 国产第二页页在线播放 | 夫妻之间免费观看完整版 | 国产二区三区午夜免费视频 | 蜜桃视频一区二区在线观看 | 日韩欧美精品综合一区二区三 | 午夜福利试看120秒体验区 | 中文免费高清特 | 大地资源高清在线视频播放 | 日本三级带日本三级带黄首页 | 中文字幕国产专区99 | 91精品啪在线观看国产在线 | 国产精品自在拍一区二区不卡 | 99热门精品一区二区三区无 | 国产亚洲国际精品福利 | 亚州大尺 | 日韩精品一区二区三区vr | 国产超清精品在线观看 | 国产精品日产三级在线观看 | 亚洲精品乱码电影在线观看 | 国产一区日韩二区欧美三区 | 美女国产毛| 性夜影院爽黄a爽免费看不卡 | 国精产品48x国精产品 | 日本精品无人区1区2区3区 | 午夜福利电影影院 | 国产三香港三韩国三 | 欧美变态口 | 欧美性猛交xxxx黑人猛交 | 国产国产人免费人成 | 国产又黄又猛又粗又爽 | 在线观看精品亚洲 | 天下第一日本在线观看视频 | 日本一区二区在线播放 | 中国免费高清视频在线观看 | 日本一道 | 国产乱色国产精品免费视频 | 国产91刘玥在线观看 | 一本之道高清 | 最美情侣高清视频大全 | 日韩精品极品视频在线观看免费 | 二线三线小说 | 国产三区四区五区 | 中文字幕乱码免费不 | 99在线热播| 91精品国产高清一区二区 | 国产人成激情视频在线观看 | 亚洲国产丝袜一区二区 | a级精品国产片在线观看 | 国产主播福利片在 | 亚洲日韩欧美综合网 | 免费人成再在线观看视频 | 妖精视频一区二区免费 | 成人国产一区二区三区精品 | 亚洲欧美国产精品制服 | 中文字幕巨大乳在线看 | 国产午夜免费福利红片 | 国产免费中文字幕v在线 | 国产乱码1卡二卡3卡四卡 | 国产精品欧美激情一区二区亚洲 | 最新免费电影大全 | 99国产精品永久免费视频 | 国产免费爽爽视频 | 按摩推油在线观看国产 | ww网站免 | 中文字幕不卡欧美日韩在线 | 国产精品欧美日韩视频一区 | 一本到加勒比东 | 狼天天狼天天香蕉综 | 国产日韩在线亚洲字幕中文 | 在线免费视频一区二区 | 国产亚洲精品看片在线观看 | 国产精品一 | 国产精品伊人 | 国产精品亚洲一区二区三区在线 | 亚洲高清无在码在 | 在线日本高清不卡免费v | 日本精品一卡高清 | 国产亚洲成aⅴ人片在线观看 | 欧美综合图片 | 老妇喷水一区二 | 免费高清乱伦无 | 手机电影 | 最新精品国偷自产在线观看 | 欧美伦理电影大全 | 一个人看的免费高清www视频 | 在线观看国产色一二三区 | 日韩精品欧美激情亚洲综合 | 亚洲欧美日韩精品综合网 | 强伦轩一区二区三区四区播放方式 | 国产日韩免费视频在线观看 | 96国产xxxx免费视频 | 国产系列欧美系列每日更新 | 精精国产xxxx视频在线 | 欧美一区二区制服在线 | 91精品专区国产盗摄 | 99精品在线视频 | 大地影视mv高清视频在线观看 | 在线观看高清三级综合 | 国产高清在线a视频 | 亚洲国产一区二区日韩专区 | 国产宅男宅女在线观看 | 又粗又大又硬又爽的免费视频 | 欧美性猛交xxxx乱大交极品 | 亚洲中文字幕在线一区 | 亚洲综合另类小说 | 韩日国产精品一区二区三区 | 一区二区三区日韩免费 | 男女午夜爽爽大片免费 | 女人靠逼视频不卡的 | 成人午夜污污在线观看网站 |