国产精品青草久-国产精品情侣愉拍-国产精品区网红主-国产精品区一区二-国产精品热久久-国产精品热热热-国产精品人aⅴ-国产精品人成在线-国产精品人妻人伦-国产精品人人

金喜正规买球

甘特圖控件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等)簡單集合,滿足多種定制開發需求。

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

DHTMLX 甘特圖最新下載


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

第一步 創建一個項目

啟動Visual Studio 2022并創建一個新的項目。選擇:創建一個新的項目。

使用 ASP.NET Core 創建項目的 dhtmlxGantt

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

使用 ASP.NET Core 創建項目的 dhtmlxGantt

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

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

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

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

進入wwwroot并創建一個index.html文件。

dhtmlx甘特與ASP.NET核心2創建一個項目

dhtmlx甘特與ASP.NET核心2創建一個項目

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

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

<!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,所以用戶對甘特圖的所有修改都將被保存到后臺。后臺還沒有實現,所以以后會更有意義。
接下來進入Program.cs,告訴應用程序使用index.html頁面。為了做到這一點,你需要將應用程序配置為從wwwroot文件夾中提供靜態文件。為此,你需要添加app.UseDefaultFiles()方法。你可以在這里找到更多細節。

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()

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

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

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

第三步 創建模型和數據庫

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

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

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

然后,這兩種模型之間的映射應該被實現。

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

任務模型
首先,為任務創建一個類。在Models文件夾中創建一個文件,命名為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; } } }

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

鏈接模型
再添加一個文件,為鏈接創建一個類:

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

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

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

  • 在Models文件夾中添加GanttContext.cs文件
  • 在創建的文件中定義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;  } }

向數據庫添加第一批記錄
現在你可以向數據庫添加記錄了。讓我們創建數據庫初始化器,將任務填充到數據庫中。在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(); } } } }

注冊數據庫
現在你應該在Program.cs中注冊數據庫。但首先你需要一個連接字符串。它將被存儲在應用程序設置的JSON文件中。創建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(); 

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

讓我們首先創建一個初始化的類。在Models文件夾中創建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和映射
現在是定義將用于Web API的DTO類的時候了。讓我們從任務的DTO類開始。在Models文件夾中創建一個文件并定義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 所有型號

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

第四步 實現網絡API

現在是實際實現REST API的時候了。

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

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

任務控制器
讓我們為任務創建一個控制器。它將定義甘特任務的基本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" }); } } }

鏈接控制器
接下來你應該為鏈接創建一個控制器:

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" }); } } }

數據控制器
最后,你需要為一個數據動作創建一個控制器:

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

歡迎加入群交流討論,獲得更多幫助請聯系


標簽:

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


為你推薦

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


添加微信 立即咨詢

電話咨詢

客服熱線
023-68661681

TOP
国产亚av手机在 | 午夜精品自在自线之la | 国产日韩特色一一区二区三区 | 国产精品国内免费一区二区三区 | 亚洲v欧美v日韩v国产v在线 | 一级特黄aaa大片 | 久久99网 | 韩国精品视频一区二区在线播放 | 亚洲国产av无码精品果冻传媒 | 国产强伦姧 | 午夜精品久久久无码 | 精品尹人在线观看 | 欧美日韩变态另类在线观看 | 国产旗袍丝袜在线观看视频 | 999精品国产人妻无码系列 | 亚洲一卡一卡二 | 国产激情综合在线看 | 国产操逼视频 | 亚洲无码黄色视频在线 | 国产亚洲一级毛片 | 日本精品在线观看 | 日产亚洲一| a级久久久久久久久精 | 欧美精品久久久 | 中文字幕乱码亚洲∧v日本1 | 精品国产亚洲av麻豆映画 | 国产日韩一区二区免费在线观看 | 好吊视频一区二区三区 | 色婷婷久久综合中文久久蜜桃av | 蜜月国产日韩久久久久精品 | 九九久久精品视频 | 91精品国产色综合久久 | 囯产精品一品二区三区 | 久久www免费人成看片老司机 | 国产成人av大片在线观看 | 精品伊人 | 国产成人久久精品毛片 | 国产高清一级在线观看 | 无忧影院| 国产一区二区三区综合网 | 国产乱码久久精品无码专区免费 | 国产亚洲精品影视在线产 | 国产一区二区粉嫩在线观看 | 国产精品久久久久精品综合 | 99久久精品免费看国产一区二区三 | 亚洲αv久久久噜噜噜噜噜 亚洲а∨精品天堂在线 | 一级生性活片全黄在线观看 | 高潮又爽又大又黄无遮挡免费 | 亚洲aν伊人久久综合密臀性色 | 91麻豆精品国产91久久久久久久久 | 亚洲国产成人精品久久 | 国产无遮挡无码免费视频在线抪 | 国产一级av国片免费 | 国产又粗又猛又黄又爽无遮挡 | 精品亚洲av无码专区毛片 | 久久99精品久久 | 蜜臀av一区二区三区久久 | 欧美熟妇性饥渴在线观看 | 日韩精品熟女一区二区 | 深夜国产一区二区三区在线看 | 亚洲a无码综合a国产av中文 | 午夜毛片不 | 无码av免费毛片一区二区 | 婷婷久久亚洲综合国产 | 午夜福利理论片 | 成人午夜爽a| 香蕉欧美成人精品a∨在线观看 | 国产成人高清亚洲一区 | 欧美a级片免费观看 | 欧美日韩专区在线观看 | 亚洲美女激情毛片视频 | 91精品一区国产高清在线 | 黄毛片网站免费在线观看 | 亚洲精品无码av人在线播放 | 在线观看国产精品 | 99热视热频这 | 国内一级| 国产sm精品调教在线 | 国产精品色综合久久 | 中文字幕无码视频专区在线播放 | av网址导航精品 | 在线天堂8高清版在线观看 在线天堂官网 | 91啦视频在线观看 | 日韩一区二区三区不卡视频 | 成人免费网站视频ww | 亚洲欧美日韩国产精品专区四 | 91精品国产91久久久久久青草 | 97看片| 日韩三级在 | 婷婷久久综合九色综合97 | 亚洲av人| 国产在线91精品入口 | 亚洲国产一区二区三区四久久 | 亚洲中文字幕无码久久 | 亚洲中文字幕无码av | 无码日韩免费视频一区二区二区 | 亚洲av无码国产精品夜色午夜 | 精品一区二区三区国产在线观看 | 香蕉视频在线观看福利国产 | 欧美在线日韩 | 成年人在线免费看视频 | 国产精品4p露脸在线播放 | 91大香蕉视频 | 91丝袜美腿的无尽魅力呈现 | 无码精品国产一区二区 | 高清亚洲香蕉在线播放av | 国产午夜福利片在线观看 | 亚洲精品无码专区久久久 | 91桃色短视频app | 丰满女邻居做爰bd中文字幕 | 久草精品在线观看 | 四虎国产精品永久免费网址 | 亚洲自偷自偷偷色无码中文 | 二区三区三区不卡 | 91在线无码精品秘入口色 | 日本久久久久久久中文字幕 | 成人自拍视频 | 麻豆果冻传媒新剧国产杜鹃 | 91偷伦一区二区三区蜜臀 | 日本激情在线视频www | 午夜播放器免费下载手机版v1.5 | 午夜国产精 | md豆传媒一二三区入口 | 99综合久久成人国产欧美 | 三级片中文字幕在线无码 | 亚洲无码国产片 | 国产精品粉嫩在 | 中文字幕乱码字幕在线视频 | 国产白丝jk制服在线视频 | 国产一级av国片免费 | 亚洲第一区国产一区二区精品 | 色欲色欲日韩www在线观看 | 91啪国自产在线高清观看 | 国产传媒一二三区av | 日韩人妻无码一区二区三区久久99 | 国产911视频在线观看 | 国产成年女人免费视频播放a | 无码专区视频免费播放 | 黄网站色视频大全免费看 | 亚洲中文字幕精品一区 | 91视频大全 | 国产一区二区丝袜美腿在线 | 无码国产精成人午夜视频不卡 | 免费一区二区福利视频在线 | 91版手游平台下载 | 丰满多水的寡妇毛片免费看 | 亚洲美女一区二区三区 | 99久久人妻精品免费一区 | 亚洲性爱av免费在线播放 | 亚洲av自拍偷拍精品区 | 日韩亚av无码一区二区三区 | 亚洲中文字幕无线无码 | 国产超级va在线观看视频 | 国产高清午 | 国产成年无码av片在线韩国 | 国产高清无码在线视频播放 | 中文字幕久久久久人妻 | 国产av旗袍丝袜精品无码麻豆 | 精品亚洲aⅴ在线观看 | 国产一级淫片免费大片 | 欧美熟妇sexfree | 97在线视频人妻无码 | 国产三级国产经典国产av | 波多野结衣2完整版电影在线 | 精品国内自产拍在线观看网站 | av色综合久久天堂av色综合 | 亚洲精品9999久久久久 | 无码午夜人妻一区二区三区不卡视频 | 欧美日韩加勒比精品一区 | 国产高清视频 | 91麻豆精品国产一区色欲噜噜噜 | 成人欧美精品久久久久影院 | 麻豆果冻传媒av人妻少妇无码 | 欧美另类重口 | 成人看片黄a免费看那个网址 | 国产亚洲一级毛片 | 日韩av免费观看中文字幕 | 国产露出精品一区二区三区91 | 91在线无精精品秘?入口 | 成人亚洲国产精品一区不卡 | 亚洲精选av| 亚洲免费人成视频在线观看 | 亚洲欧美日韩综合久久 | 国产免费无码午夜福利电影 | 91免费伊人 | a∨片亚洲国产男人的天堂 aⅴ片在线观看 | 国产精品久久久久久久午夜 | 国产精品亚洲αv天堂无码 国产精品亚洲а∨天堂2025 | 亚洲国产激情电影综合在线观看 | 成人乱人乱一区二区三区 | 精品无码av毛片一区二区三区 | 成人免费网站视频www | 国产蜜桃一区二区三区在线观看 | 成人无码区免费aⅴ片www软件 | 日韩精品无码久久久久久 | 一区二区三区a级毛片 | 亚洲国产中文精品无码专区网站 | 免费无码av片在线观看潮喷 | 国产美女一级a在线 | 国产成人精品国产成人亚洲 | 国产成人综合亚洲亚洲欧美 | 精品狼人久久久久影院 | 日韩精品免 | 色一情一乱一伦一区二区三欧美 | 欧美久久久久久精品一区 | 日本永久精品视频在线观看 | 天堂网www天堂在线中文 | 国产成人无码午夜视频在线观看 | 麻豆精品久久精品色综合 | 国语对白一级片女主播 | 午夜大胆裸体a级人体片 | 桃蜜桃av秘无码一区二区三区 | 国产一级久久久久久毛片 | 日韩精品成 | 在线观看午夜亚洲一区 | 国产女人aaa级久久久级 | 人妻无码αv中文字幕久久 人妻无码不卡在线看 | 91欧美一| 在线看片人成免费视频播放 | 97碰碰碰| 日本xxxx裸体xxxx免费 | 东京热无码中文字幕av百度 | 国产亚洲精品久久久999功能介绍 | 精品国产乱码久久久久夜深人妻 | 中文字幕中出在线观看 | 亚洲日韩中文字幕 | 精品不卡秀 | 国产精品综合久久新视频 | 97成人无码免费一区二区中文 | 狠狠躁夜夜躁人人爽天天开心 | 在线视频中文 | 97密桃75hd中字在线观看 | 久久不见久久见免费影院www日本 | 日本黄色视频 | a级国产乱理伦片在线观看 a级国产乱理伦片在线观看al | 丰满气质白嫩少妇呻吟高潮 | 91果冻传媒官网 | 精品黑人一区二区三区 | 91麻豆天美精东蜜桃传媒老 | 日本在线免费观看视频 | 精品免费亚洲三级 | a人成日韩视频在线观看 | 果冻文化传媒公司官网网站 | 亚洲精品亚洲人成在线下载 | 久久99精品久久久久久噜噜噜 | 久久不见久久见免费影院 | 国产男生夜间福利免费网站 | 国产福利91精品一区二区三区 | 99久久综 | 精品国产app | 国产一级高清在线观看 | 国产美女流出白浆在线观看 | 91在线免| 人人操人人干人人玩 | 国产av+刺激+无码 | 国产中文字幕亚洲 | 国产精品2025不卡在线观看 | 激情欧美日韩一区二区 | 亚洲综合色婷婷在线观看 | 色婷婷综合久久久中文字幕 | 国产v一区二区综合 | 少妇熟女视频一区 | 亚洲综合精品一区二区三区中文 | 久久99热国产精品免费 | 国产精品白丝祙喷水视 | 成人91 | 亚洲av无码久久无遮挡 | 在线免费一区 | 午夜无码s片在线观看影院 午夜无码不卡中文字幕最新 | 国产av剧情中文正在播放 | 1区2区3区内容究竟如何?无需下载 | 亚洲午夜理论片在线观看 | 国产日本一区二区三区 | 亚洲av不卡一区二区三区 | 在线观看人成免费视频 | 91大神精品视频 | 99久久国产精品免费人妻 | 亚洲第一无码精 | 无人区麻豆乱码久久久 | 99久无码中文字幕一本久道 | 精品国语任你躁在线播放 | 日日做夜夜爽夜夜爽 | 91久久亚洲亚洲综合精品 | 国产精产国品一二三产区伦理电影 | 国产女主播高潮在线播放 | 99热这里国产免费久久 | 果冻传媒2025网站入口下载 | 特级丰满少妇一级aaaa爱毛片 | www.91香蕉视频 | 国产精品高潮久久久久无码av | 日本三级香港三级人妇久久 | 日韩精品午夜视频一区二区三区 | 国产v无码专区亚洲v桃花庵 | 99久久无色码中文字幕人妻 | 国产精品日韩精 | 亚洲国产成人五月综合网 | 在线视频欧美日韩一区 | 国产区精品一区二区 | 9lporm自拍| 欧美综合缴情五月丁香六月婷 | 国产免费午夜a无码v视频 | 婷婷色国产精品视频一区二区 | 91精品国产手机 | 无码精品人妻一区二区三区中 | 欧美高清性色生活片 | av免费观看网址 | 亚洲乱码精品久久久久.. | 国产日韩综合在线视频 | 国产乱码精品一区二区三区四川 | 午夜成人亚洲理伦片在线观看 | 亚洲精品无码一区二区三天美 | www.色| 人妻无码 | 亚洲国产成人久久综合一 | 欧美日韩成人综合网站 | 国产91精品一区二区麻豆亚洲 | 午夜无码福利 | 国产一区二区三区成人欧美日韩在 | 精品国产日韩亚洲一区 | 亚洲国产精品成人va在线观看 | 国产乱码卡二卡三卡4w | 91精品专区国产在线观看高清 | 精品国产91久久久久久 | 97精品国产97久久久久久免费 | 亚洲欧美成人精 | 欧美人妻一区二区三区 | 亚洲国产精品无码第一区 | 精品一区二区三区在线观看视频 | 亚洲中文字幕无码中文字 | 国户一区二区免费视频 | 在线观看国产亚洲av | 国产一级一级一级国产片 | 美奶福利视频一区二区三区 | 欧美日韩人妻精品系列一区二区三区 | 国产在线观看无遮挡 | 中文字幕韩国三级理论无码 | 无线码一区二区三区 | 亚洲欧美日韩在线一区 | 国产精品一区二区20p发布 | 国产精品高清一区二区三区久久你 | 国产91熟女高潮一区二区 | 国产精品成av人在线观看片 | 动漫亚洲国产二区精品 | 亚洲国产欧美日本韩国中文在线字幕 | 国产午夜性爱无码视频 | 精品人人妻人人澡人人爽牛牛 | 国偷自拍视频在线观看 | 精品国产成人高清在线 | 97香蕉超级碰碰碰久久兔费 | 在线视频精 | 国产精品综合av一区二区 | 精品免费亚洲三级 | 国产精品天干天干在线综合 | 91麻豆国产| 欧洲日韩国 | 亚洲91av视频在线观看 | 欧美精品偷自拍另类在线观看 | 精品免费国产一区二区女 | 亚洲av无码专区一级婬片毛片 | 国产精品乱视频 | 99热这里是精品与其他应用相比 | 国产精品一区中文字幕 | 成人国产精品日本在线观看 | 国产专区亚洲精品无码 | 精品中文字幕制服中文 | 欧美猛交喷潮在线播放 | h无码精品动漫在线观看 | 人妻无码中文久久久久专区 | 亚洲国产精品日韩专区av | 99久久er热在这里只有精品16 | 欧美精品高清 | 国产精品无码午夜福利 | 欧美高清一区三区在线专区 | 少妇三级 | 97在线观看 | 国产人妻人伦精品 | 日韩中文字幕 | 成人国产精品日本在线观看 | 99久高清| 精品国产成av人片不卡无码 | 国内在线| 亚洲尺码一区二区三区 | 特级做a爰片毛片免费看无码 | 日本一二三不卡免费视频 | 国产精品毛片久久久久久 | 午夜精品一区二区三区av | 牛牛影视亚洲av片在线播放 | 黄色视频在线 | 日韩免费高清大片在线 | 中文字幕av影视精品不卡 | 97久久精品久久免费观看 | 国产视频91福利一区二区三区 | 国产午夜福利电影免费在线观看 | 日本经典电影在线观看 | 高清无码在线二区亚洲无码精品免费 | 精品综合久久久久久97 | 中文字幕亚洲乱码高清 | 人妻无码久久精品人妻 | 白丝袜白高跟鞋 | 中文字幕精品一区二区精品 | 欧美亚洲欧美 | 国产精品无码一区二区三区在 | 91桃色无码国产在线观看二区 | 亚洲免费人成视频在线观看 | 91大神精品 | 91精品国产自产在线观看不卡 | 国产午夜福利一区在线观看 | 91精品国产闺蜜国产在线闺蜜 | 日本免费中文字幕 | 精品无码国产社区野花在线观 | 丰满熟妇被猛烈进入高清片 | 成人亚洲欧美久久久久 | 日韩精品久久无码中文字幕 | 国产午夜福利在线观看视频 | 国产欧美日本在线观看 | 一区二区欧美日韩高 | 99成人国产精品视频 | 精品一区二区无码av | 成人aaa片一区国产精 | 中文字幕大香视频蕉 | 国产精品v片在线观看 | 91av在线观看国产日本视频 | 亚洲成熟丰满熟妇高潮xxxxx | 精品一区二区三区四区在线 | 日本高清在线播放一区二区三区 | 91无人区卡一卡二卡三乱码 | 亚洲av成人无码网站 | 欧美久久综合九色 | 欧美一区三区究竟代表什么 | 极品美女国产精品免费一区 | 天天看天天操 | 老司机免费高清av本道 | 国产一级一级毛片真人视频 | 日本理伦片午夜理伦片 | 精品99久久久久久999 | 97青草| 亚洲精品网站在 | 午夜理论片yy4080私人影院 | 91九色porny永久地址 | 99久久精品国产综合 | 国产不卡福利片在线观看浪潮 | 国产乱码精品一区二区三区 | 国产丝袜调教视频免费的 | 人人狠狠久久综合亚洲婷婷 | 午夜理理伦电影a片无码 | 国产成人免费在线观看 | 午夜视频在线观看网站 | 中文字幕乱码中文字幕电视剧 | av在线亚洲男人的天堂 | h国产在线 | 中文性按摩1区2区3区 | 国产黄色第一级黄色毛片 | 办公室爆乳女秘在线hd | 欧美日韩高清一区二区三区电影 | 日韩黄色一级片欧美一级网址 | 97在线| 国产强奷在线播放免 | 国产高清在线精品一区二区 | 国产99久久九九精品无码 | 欧美色精品视频在线观看免费 | 黄瓜视频在线观看 | 亚洲v天堂v手机在线观看 | 亚洲av无码午夜嘿嘿嘿 | 亚洲a视频在线观看 | 99精品国产99久久久久久97 | 波多野结衣一区二区无码 | 国产精品欧美一区喷水 | 无码国产偷倩在线播 | 一区二区免费在线 | 亚洲成色在线综 | 最新国产自产视频 | 亚洲vα中文字幕无码久久 亚洲v国产v天堂a无码二区 | 精品国产大片免费色综合久久久 | 日韩人妻无码潮喷中文视频 | 国产欧美日韩一区二区三区蜜桃 | 色综合99久久久无码国产精品 | 国产成人精品久久一区二区精品 | 欧美激情在线日韩 | 中文字幕乱码亚洲中文在线 | 国产99久 | 国产午夜不卡av高清 | 色婷婷综合久久久中文字幕 | 日韩乱码人妻无码中文 | 国产日韩av大片一区二区 | 精品久久久无码人妻中文字幕 | 欧美a级毛欧美1级a 欧美a级片免费观看 | 国产国产人精品视频69 | 亚洲国产成人片在线观看 | 国内免费无码自拍视频网 | 国产精品乱视频 | 最新国产av无码专区亚洲 | 91电影在线观看 | 国产单男3p在线观看 | 日本免费一区二区三区久久 | 国产欧美久久一区二区三区 | 成人午夜啪啪免费网站 | 色国产精品一区在线观看 | 国产精品毛片 | 日本一区欧美国产日韩 | 国产成人av综合久久 | 女子口述第一次被按摩师进入身体 | 国产乱码精品一区二区三区四川人 | 日韩一区二区三区免费播放 | 亚洲综合精品网站在线观看 | 91麻豆国产在线观看 | 亚洲首页国产精品丝袜 | 欧美动漫排行榜推荐 | 免费午夜福利视频在线观看 | 91视频精品| 欧美高清在线观看 | 久久99精品视频在 | 国产在线观看高清视频黄网 | 国内91视频亚洲毛片在线看 | 成人区人 | 欧洲国产伦久久久久久久 | 三颗国产精品视频一区二区免费 | 精品少妇人妻av免费久久洗澡 | 麻豆av在线播放免费网站 | 九九免费精品视频 | av天堂精品 | 91久久久久久国产精品 | a级伦国产乱理片在线观看 a级毛片 | jk极品白丝 | 国产日韩欧美亚洲综合在线 | 国产一级做a爰片在线看免费 | 欧美日韩加勒比精品一区 | 91精产品一永久下载app官方正 | 午夜亚洲国产理论片中文飘 | 国产内地激情精品毛片在线一 | 一区二区国产高清视频在线 | 国产精品视频免费播放 | 白丝护士高潮喷水免费网站 | 不卡网国产精品一区二 | 精品综合久久久久久97 | 国产精品免费播放一区二区 | 国产白丝jk制服在线视频 | 午夜dj在线观看免费动漫大全 | 91国产天堂网 | 国产亚洲精品a在线看 | 激情五月色综合国产精品 | 亚洲精品第一国产综合野 | 无码高清影视网免费观看超清 | 无码专区3d动漫精品一区二区 | 亚洲国精产品二二三三区 | 国产精品国产三级国产an首页 | 日日做夜夜爽夜夜爽 | 国产91精品高跟丝袜在线 | 专区中文字幕视频专区 | 国产不卡在线观看视频 | 狠狠色丁香九九婷婷综合五月 | 天天插狠狠干 | 亚洲爆乳无 | 亚洲av高清一区二区毛片下卡 | 日本高清一区二区三区中文字幕 | 午夜啪啪啪视频 | 久久99视频免费 | 亚洲av无码乱码在线观看性色扶 | av剧情麻豆映画国产在线观看 | 国产精品99 | 欧美精品18禁 | 欧美日韩国产成人在线观看 | 亚洲欧美精品中文字幕 | 成全视频在 | 亚洲产精品va在线观看 | 日本高清一区二区在线 | 精品无码一区二区三区东京热 | 精品一区二区成人 | 91精品国产91久久综合 | 国产欧美日韩综合精品久久一 | 国产精品对白清晰受不了了 | 亚洲成aⅴ人片久青草影院 亚洲成aⅴ人片在线观看www | 国产成人av乱码在线观看 | 国产精品一区二区国产馆蜜桃 | 国产视频一区二区在线观看 | 91成人在线日本中文字幕免费 | 在线观看免费视频一区 | 人妻中文字幕无码老熟妇 | 精品国产免费网站二区二区 | 在线精品国精品国产尤物 | 区不卡二区不卡三区 | 成人a视频片在线观看免 | 精品久久久久久性色av | 亚洲v欧美v日韩v国产v在线 | 国内精品91最新在线观看 | 国产又色又爽又黄刺激视频 | 色婷婷日 | 高潮胡言乱语对白刺激国产 | 国产乱子伦精品免费无码专区 | 国产成人av综合久久 | 91无码人妻精品一区二区 | 国产成人高清亚洲第一 | 精品无码国产自产在线观看水 | 国产大胆露出精品视 | 亚洲vα中文字幕无码久久 亚洲v国产v天堂a无码二区 | 99国产精品热久久婷婷 | 国产在线一区二区三区四区 | 色综合天天综合网在线观看 | 国产精品亚洲a∨天堂不卡 国产精品亚洲av高清二区 | 日韩精品专区 | 二区久久hs| 久久99精品久久久久久久清纯 | 香蕉久久精品 | 3d动漫精品啪啪一 | 在线观看免费av无码不卡 | 成a人片在线观看免费 | 999精品国产人妻无码系列 | 极品尤物国产在线播放 | 亚洲女人被黑人巨大进入 | 国产特级亚州一级淫片 | 欧美精品中文字幕亚洲专区 | 无码人妻av免费一区二区 | 精人妻无码一区二 | 神马午夜福利久久免费观看 | 成年黄页网站大全免费连接 | 日本一本免费一区二区三区免 | 国产剧情av不卡在线观看 | av天堂热无码手机版 | 91影视永久 | 亚洲美女人黄网成人女 | 91香蕉高清国产线观看免费 | 黄色成年人视频在线 | 日韩中文人妻无码不卡 | 欧美性猛交xxxx黑人 | 亚洲精品少妇久久久久久希岛爱理 | 国产99视频精品免费视频36 | 欧洲熟妇性| 一区二区三区久久久狼 | 91午夜| 国产麻豆天美果冻无码视频 | 91久久91久久精品麻豆 | 久久99热只有频精品 | 黄色网址在线免费观看 | 99热最新地址永久 | 精品国产一卡2卡3卡二 | 欧美高清熟妇啪啪内射不卡自拍 | 午夜成人亚洲理论片在线观看 | 国产精品99久久免 | 白丝爆浆18禁一区二区三区 | 看片中文字幕 | 在线亚洲精品福利网址导航 | 91精品国产免费久久 | 欧美日韩精品一区二区在线视频 | 午夜亚洲精品福利一区二区 | 成人性生交片无码免费看人 | 在线视频www色 | www.色| 国产亚洲中文日韩欧美综合网 | 多人伦交性欧美 | 日本婷婷天堂吧 | 国内精品久久久久久蜜芽 | 日本一区二区在线播放 | 精品无码av系列网站 | 国产精品高潮呻吟久久v | 韩国三级中文字幕hd久久精品 | 国产l精| 精品人妻无码一区二区色欲aⅴ | 亚洲国产美女主播在线观看 | 久久超碰精品一 | 中文字幕1区无码影片 | 亚洲国产综合自在线婷婷 | 一区二区三区免费在线观看 | 日产学生妹在线观看 | 午夜成人亚洲理论片在线观看 | 国产午夜福利电影在线观看2 | 日本xxxwww在线观看 | 东京热免费视频 | 日韩一区二区综合精品 | 国产在线视频八区 | 91久久综合伊人 | av不卡激情在 | 自拍熟女日韩高清 | 亚洲成av人影院在线观看 | 亚洲丰满爆乳肉感无码一区二区三 | 无码无套少妇毛多18pxxxx | 日本美女一级视频 | 激情福利社 | 综合福利网站 | 97久久精品无码一区二区欧美人 | 91三级视频在线观看 | 99爱视频在线观看免费播放 | 国产日韩精品在线一区二区 | 日本久久久久 | 日韩午夜无码专区 | 国产精品高清全国免费观看 | 97无码免费人妻超级碰碰夜夜 | 国产综合久久久久久蜜桃 | 国产蜜桃av视频一区二区 | 午夜国产毛片v区一区二区三区 | av不卡中文 | 欧美日韩高清中文在线 | 韩国理论电影午夜三级在线观看 | 一区二区在 | 免费无遮拦无码视频在线观看 | 欧美日韩亚洲综合一区二区三区激 | 日本久久久久久久中文字幕 | 无码人妻丰满熟妇片毛片 | 69av中文字幕在线观看 | 国产91丝袜在线观看 | 91视频免费 | 亚洲午夜福利院在线观看 | 99精品视频久久精品视频 | 国产福利91| 久久99精品久久久久久秒播 | 欧美午夜精品 | 国产白富美在 | 亚洲av日韩在线播放 | 亚洲av极品视觉盛宴 | 精品伊人 | 精品少妇人妻av免费久久洗澡 | 成人免费aaaaa毛片 | 国产精品免费观看 | 国产va在线 | 午夜不卡在线观看 | 人与动物| 亚洲熟女www一区二区三区 | 国产精品日韩无码一区二区 | 天天免费国产永久入口 | 一区二区自拍中文字幕福 | 国产精品丝袜久久久久久不卡 | 国产三a级日本三级日产三级 | 日韩欧美中文字幕54av | 中文字幕不卡高清视频在线 | 国内精品久久久久久久久蜜桃 | 91视频免费版app下载 | 国产亚洲人 | 精品自拍视频 | 国产伦精品一区二区三区网站 | 国产精产国品一二三产区伦理电影 | 日韩免费一区二区人妻丝袜 | 动漫男啪动漫女视频在线 | 91在线精品麻豆欧美在线 | 国产日产久久高清欧美一区 | 久久99精品久久久久久妇女 | 亚洲午夜久久久影院伊人 | 国产免费人成在线观看视频 | 亚洲一级无码中文字幕 | 亚洲a∨毛片无码专区国产乱码 | 亚洲av婷婷一区二区三区网站 | 国产产区一 | 99久久午夜精品一区二区欧美 | 国产在线无码视频观看草草视频 | 午夜成人影院 | 亚洲av无码一区二区三区在线 | 国产综合精品一区三区 | 国产精品vā在线观看无码 国产精品va在线观看无码不卡 | 日韩在线视频二 | 无码视少妇视频一区二区三区 | 日本激情午夜在线电影观看 | 亚洲av无码乱码国产麻豆穿越 | 中文字幕在文字幕乱码一二三 | 成年人免费在线看的惊悚动作片 | 天天拍夜夜添久久精品 | 国产亚洲精品无码专区高清 | 麻豆一区二区三区四区 | 91人人双人人妻人人澡 | 日韩av激情中文在线观看 | 欧美日韩精品久久久免费观看 | 亚洲午夜av无码专区 | 日韩中文字幕精品视频在线 | 国产精品福利小视频 | 日韩av片无码一区二区三区不 | 亚洲av无码不卡在线观看 | 黑人与中国少妇xxxx视频 | av天堂午夜精品一区 | 国产天堂亚洲 | 久久97超碰色中文字幕 | 任你躁国语自产一区在 | 天天爽夜夜爽夜夜爽精品视频 | 国产狼友视频一区 | 国产aⅴ无码久久丝袜美腿 国产aⅴ无码专 | 欧美精品久久久久久久久爆乳 | 国自产精品手机在线观看 | 波多野结衣一区二区三区在线 | 国产精品熟女 | 最新国内久久免费视频 | 日韩免费不卡 | 国产成人午夜福利电 | 风流老太婆大bbw | 国精品无码一区二区三区 | 日韩免费无码视频一区二区三 | 国产超碰人人模人人爽人人添 | 日韩精品在线第二页 | 国产福利影院 | 国产办公室秘书无码精品99 | 成人无码免费一区二区三区 | 国内一区 | 亚洲第一网站 | 日韩无码一区二区 | 亚洲日韩手机在线专区 | 亚洲a∨无码成人精品区在线观看 | 国产的视频91 | 午夜热门精品一区二区三区 | 日韩一区二区在线视频 | 亚洲国产欧美日韩在线 | 成人欧美一区二区三区在线电影 | 国产伦精品一区二区三区网 | 精品在线看| 无码精品一区二区三区免费视频 | 亚洲91视 |