日韩av黄I国产麻豆传媒I国产91av视频在线观看I日韩一区二区三区在线看I美女国产在线I麻豆视频国产在线观看I成人黄色短片

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) >

10-大事件

發(fā)布時(shí)間:2023/12/8 38 豆豆
生活随笔 收集整理的這篇文章主要介紹了 10-大事件 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

資源地址

  • 線上 DEMO 項(xiàng)目地址:http://www.escook.cn:8086/
  • 項(xiàng)目的 API 接口地址: https://www.showdoc.cc/escook?page_id=3707158761215217
  • Layui : https://layui.itze.cn/index.html
  • 項(xiàng)目的 API 接口文檔地址: https://www.showdoc.cc/escook?page_id=3707158761215217
  • 項(xiàng)目前期的準(zhǔn)備工作

    初始化項(xiàng)目結(jié)構(gòu)

    • 將 素材 目錄下的 assets 和 home 文件夾,拷貝到 code 目錄下
      • assets > css 文件夾 自己編寫(xiě)的css代碼
      • assets > fonts 字體圖標(biāo)文件夾
      • assets > images 存放圖標(biāo)文件夾
      • assets > js 自己js代碼的文件夾
      • assets > lib 第三方依賴(lài)的文件夾
      • home > dashboard.html 后臺(tái)首頁(yè)的頁(yè)面效果
    • 在 code 目錄下新建 login.html 和 index.html 頁(yè)面

    使用GitHub管理大事件的項(xiàng)目

  • 在 code 目錄中運(yùn)行 git init 命令
  • 在 code 目錄中運(yùn)行 git add . 命令
  • 在 code 目錄下運(yùn)行 git commit -m "init project" 命令
  • 新建 Github 倉(cāng)庫(kù) web_bigevent
  • 將本地倉(cāng)庫(kù)和Github倉(cāng)庫(kù)建立關(guān)聯(lián)關(guān)系
  • 將本地倉(cāng)庫(kù)的代碼推送到Github倉(cāng)庫(kù)中
  • 運(yùn)行 git checkout -b login 命令,創(chuàng)建并切換到 login 分支
  • 1.登錄注冊(cè)

    1.登錄和注冊(cè)表單的切換

    注冊(cè)單擊事件,切換表單點(diǎn)擊了對(duì)應(yīng)按鈕,讓對(duì)應(yīng)的div進(jìn)行顯示,另外一個(gè)進(jìn)行隱藏

    // 1.點(diǎn)擊注冊(cè),顯示注冊(cè)框,隱藏登錄框$("#link_reg").on("click", function () {$(".reg-box").show();$(".login-box").hide();});// 2.點(diǎn)擊登錄,顯示注登錄框,隱藏注冊(cè)$("#link_login").on("click", function () {$(".reg-box").hide();$(".login-box").show();});

    2.發(fā)起注冊(cè)用戶的Ajax請(qǐng)求

    1實(shí)現(xiàn)登錄表單的驗(yàn)證

    • 在layui中,默認(rèn)有幫我們驗(yàn)證表單元素的邏輯

    • 導(dǎo)入 layui 的 js 文件

    • 為需要驗(yàn)證的表單項(xiàng)添加 lay-verify 屬性,同時(shí)指定具體的校驗(yàn)規(guī)則即可。

    • 并且可以添加多個(gè)校驗(yàn)規(guī)則,規(guī)則名用|隔開(kāi)

    verify()里面要傳一個(gè)對(duì)象,屬性名是校驗(yàn)規(guī)則名,屬性值可以是一個(gè)回調(diào)函數(shù),也可以是一個(gè)數(shù)組。 **function(value, item){ }//參數(shù)value:表單的值;參數(shù)item:表單的DOM對(duì)象 **數(shù)組的兩個(gè)值分別代表:[正則匹配、匹配不符時(shí)的提示文字] // 自定義表單校驗(yàn)規(guī)則layui.form.verify({// 規(guī)則的名稱(chēng):規(guī)則定義pass: [/^[\S]{6,12}$/, "密碼必須6到12位,且不能出現(xiàn)空格"],// 判斷密碼框和確認(rèn)密碼框的值是否一樣regpwd: function (value, item) {var pwd = $("#form_reg input[name='password']").val();if (pwd !== value) {// value 使用此規(guī)則表單的value 的值// item 使用此規(guī)則表單的元素return "兩次輸入結(jié)果不一樣";}},});

    2.發(fā)起注冊(cè)用戶的Ajax請(qǐng)求

    查閱接口文檔,關(guān)注以下幾個(gè)重點(diǎn)信息

    • 請(qǐng)求URL
    • 請(qǐng)求方式
    • 參數(shù)名
    • 響應(yīng)數(shù)據(jù)
    /* 3.1)注冊(cè)表單submit 事件 2).阻止表單默認(rèn)行為 3)收集表單事件 (使用layui內(nèi)置的表單驗(yàn)證功能) 4)發(fā)送ajax 請(qǐng)求 */$("#form_reg").on("submit", function (e) {e.preventDefault();console.log($(this).serialize());$.ajax({method: "post",url: "/api/reguser",data: $(this).serialize(),success: function (res) {console.log(res);if (res.status !== 0) {// return alert("注冊(cè)失敗");return layui.layer.msg(res.message, { icon: 5 });}// alert("注冊(cè)成功");layui.layer.msg(res.message, { icon: 6 });// 手動(dòng)點(diǎn)擊$("#link_login").click();},});});

    3.發(fā)起登錄的Ajax請(qǐng)求

    • 查閱接口文檔,關(guān)注幾個(gè)重點(diǎn)要(請(qǐng)求URL,請(qǐng)求方式,請(qǐng)求參數(shù),響應(yīng)數(shù)據(jù))
    • 請(qǐng)求成功之后提示用戶,保存token信息到本地存儲(chǔ),跳轉(zhuǎn)到后臺(tái)主頁(yè)
    token 用來(lái)標(biāo)識(shí)用戶是否登錄的令牌。后臺(tái)的頁(yè)面需要用戶登錄之后才能查閱,那么權(quán)限校驗(yàn)的機(jī)制也就出來(lái)了,需要檢驗(yàn)權(quán)限的頁(yè)面后臺(tái)先判斷請(qǐng)求頭里面是否有token,以此來(lái)判斷是否是登錄狀態(tài)。 // 登錄功能$("#form_login").on("submit", function (e) {e.preventDefault(); // 阻止跳轉(zhuǎn)// 獲取表單數(shù)據(jù)var data = $(this).serialize();console.log(data);// 發(fā)送ajax請(qǐng)求$.ajax({method: "post",url: "/api/login",data: data,success: function (res) {console.log(res);if (res.status !== 0) {// 不通過(guò)時(shí)設(shè)置 layui.layer的提示信息return layui.layer.msg(res.message, { icon: 5 });}// 保留用戶的授權(quán)接口信息,后面操作數(shù)據(jù)時(shí)需要用// 登錄成功之后 ,返回的token數(shù)據(jù)保存到本地存儲(chǔ)中,為以后調(diào)用其他接口準(zhǔn)備localStorage.setItem("token", res.token);layui.layer.msg(res.message, { icon: 6 }, function () {// 跳轉(zhuǎn)到后臺(tái)首頁(yè)location.href = "/index.html";});},});}); `$.ajax() > ajaxPrefilter過(guò)濾器 -> 發(fā)送請(qǐng)求給服務(wù)器`
    • jQuery.ajaxPrefilter()函數(shù)用于指定預(yù)先處理Ajax參數(shù)選項(xiàng)的回調(diào)函數(shù)
    • 在所有參數(shù)選項(xiàng)被jQuery.ajax()函數(shù)處理之前,你可以使用該函數(shù)設(shè)置的回調(diào)函數(shù)來(lái)預(yù)先更改任何參數(shù)選項(xiàng)。
    $.ajaxPrefilter( function(options){// options:(對(duì)象)當(dāng)前AJAX請(qǐng)求的所有參數(shù)選項(xiàng),包含:url、contentType等options.url = ''; // 修改ajax請(qǐng)求的地址 }); // 通過(guò)ajax的預(yù)處理函數(shù),給請(qǐng)求的url拼接根地址 // 發(fā)送ajax前進(jìn)行配置的一些屬性,url設(shè)置全局改變一處,所有跟隨改變 $.ajaxPrefilter(function (options) {// 拼接跟地址// options ajax發(fā)送請(qǐng)求前配置的參數(shù)options.url = "http://www.liulongbin.top:3007" + options.url;// 給有權(quán)限的接口,設(shè)置請(qǐng)求頭// 判斷當(dāng)前的請(qǐng)求地址 , 是否需要驗(yàn)證(url 地址中是否包含'/my/')if (options.url.indexOf("/my/") !== -1) {options.headers = { Authorization: localStorage.getItem("token") };} });

    4.提交login分支的代碼到GitHub

    • 運(yùn)行 git add . 命令
    • 運(yùn)行 git commit -m "完成了登錄和注冊(cè)的功能" 命令
    • 運(yùn)行 git push -u origin login 命令 (把本地的login分支推送到遠(yuǎn)程的login分支)
    • 運(yùn)行 git checkout master 命令(切換到master分支)
    • 運(yùn)行 git merge login 命令(把本地的login分支合并到master分支)
    • 運(yùn)行 git push 命令(把本地的master分支推送到遠(yuǎn)程master分支)
    • 運(yùn)行 git checkout -b index 命令(創(chuàng)建index分支,用于開(kāi)發(fā)后臺(tái)index頁(yè)面)

    5.iframe標(biāo)簽

    // 1.默認(rèn)選中首頁(yè) layui-this <li class="layui-nav-item layui-this"><a href="/home/dashboard.html" target="fm"> <span class="iconfont icon-home"></span>首頁(yè) </a> </li>// 2.默認(rèn)顯示首頁(yè) <div class="layui-body"><!-- 內(nèi)容主體區(qū)域 --><iframe name="fm" src="/home/dashboard.html" frameborder="0"></iframe> </div>// 3.去掉動(dòng)畫(huà),隱藏滾動(dòng)條 .layui-body {overflow: hidden; }a {transition: none !important; }

    6.獲取用戶基本信息

    • 定義一個(gè) getUserInfo 函數(shù)(用來(lái)獲取用戶信息),當(dāng)頁(yè)面加載完畢之后調(diào)用這個(gè)函數(shù)
    • 利用 $.ajax() 進(jìn)行網(wǎng)絡(luò)請(qǐng)求,查閱文檔,獲取關(guān)鍵信息
    • 我們請(qǐng)求的時(shí)候就需要設(shè)置請(qǐng)求頭信息,把我們獲取到的 token 傳遞給后臺(tái)
    • 數(shù)據(jù)獲取失敗提示用戶
    // 調(diào)用獲取用戶信息的函數(shù)getUserInfo();// 1.封裝獲取用戶信息的函數(shù)function getUserInfo() {$.ajax({method: "get",url: "/my/userinfo",// 設(shè)置請(qǐng)求頭攜帶 token 數(shù)據(jù)// headers: { Authorization: localStorage.getItem("token") },success: function (res) {if (res.status !== 0) {return layui.layer.msg(res.message, { icon: 5 });}layui.layer.msg(res.message, { icon: 6 });// 調(diào)用渲染用戶信息的函數(shù)renderAvatar(res.data);},});}

    7.渲染用戶頭像和名稱(chēng)

    如果請(qǐng)求成功,我們根據(jù)服務(wù)器返回的數(shù)據(jù)來(lái)渲染頁(yè)面

    • 定義 renderAvatar 函數(shù),接收服務(wù)器返回的用戶數(shù)據(jù)
    • 獲取用戶的名稱(chēng)
    • 設(shè)置歡迎的文本,找到關(guān)鍵元素進(jìn)行設(shè)置
    • 按需渲染用戶的頭像,如果用戶有頭像,那么就直接設(shè)置圖片頭像,如果沒(méi)有設(shè)置文本頭像
    // 1.1封裝一個(gè)渲染用戶信息的函數(shù)function renderAvatar(user) {console.log(user);// 渲染歡迎語(yǔ) ,如果有名稱(chēng)就顯示名稱(chēng),沒(méi)有就顯示原來(lái)的var name = user.nickname || user.username;$("#welcome").html(`歡迎 ${name}`);// 判斷用戶是否有頭像if (user.user_pic) {// 隱藏文字框,設(shè)置圖片的src并顯示$(".text-avatar").hide();$(".layui-nav-img").attr("src", user.user_pic);} else {// 隱藏頭像,設(shè)置文字頭像的內(nèi)容大寫(xiě)并顯示$(".layui-nav-img").hide();var first = name[0].toUpperCase();$(".text-avatar").html(first);}}

    8.統(tǒng)一為有權(quán)限的接口設(shè)置headers請(qǐng)求頭

    • 在 baseAPI的 ajaxPrefilter 中添加如下代碼
    • 判斷url 里面是否攜帶 /my/
    • 如果攜帶,那么我們就設(shè)置 options.headers
    // 給有權(quán)限的接口,設(shè)置請(qǐng)求頭// 判斷當(dāng)前的請(qǐng)求地址 , 是否需要驗(yàn)證(url 地址中是否包含'/my/')if (options.url.indexOf("/my/") !== -1) {options.headers = { Authorization: localStorage.getItem("token") };}

    9.實(shí)現(xiàn)退出功能

    • 給退出按鈕綁定點(diǎn)擊事件,取消a標(biāo)簽的默認(rèn)行為
    • 用戶點(diǎn)擊后,彈出提示框(layui中有彈出層的相關(guān)代碼),如果用戶點(diǎn)擊確認(rèn)
    • https://www.layui.com/doc/modules/layer.html#layer.confirm
    • 移除本地緩存的 token,并且跳轉(zhuǎn)到登錄頁(yè)面
    // 點(diǎn)擊按鈕,實(shí)現(xiàn)退出功能$('#btnLogout').on('click', function() {// 提示用戶是否確認(rèn)退出layer.confirm('確定退出登錄?', { icon: 3, title: '提示' }, function(index) {// 1. 清空本地存儲(chǔ)中的 tokenlocalStorage.removeItem('token')// 2. 重新跳轉(zhuǎn)到登錄頁(yè)面location.href = '/login.html'// 關(guān)閉 confirm 詢(xún)問(wèn)框layer.close(index)})})

    10.控制用戶的訪問(wèn)權(quán)限

    在調(diào)用有權(quán)限接口的時(shí)候,指定complete回調(diào)函數(shù):

    // 限制用戶的訪問(wèn)權(quán)限(未登錄直接強(qiáng)制跳轉(zhuǎn)到登錄頁(yè)面)// 不論成功還是失敗,最終都會(huì)調(diào)用 complete 回調(diào)函數(shù)options.complete = function (xhr) {if (xhr.responseJSON.status == 1 && xhr.responseJSON.message === "身份認(rèn)證失敗!") {// 強(qiáng)制清空 token 數(shù)據(jù)localStorage.removeItem("token");// 跳轉(zhuǎn)到登錄頁(yè)location.href = "/login.html";}};

    11.優(yōu)化權(quán)限控制的代碼

    將權(quán)限控制的代碼,從每個(gè)請(qǐng)求中,抽離到 ajaxPrefilter 中:

    // 通過(guò)ajax的預(yù)處理函數(shù),給請(qǐng)求的url拼接根地址 // 發(fā)送ajax前進(jìn)行配置的一些屬性,url設(shè)置全局改變一處,所有跟隨改變 $.ajaxPrefilter(function (options) {// 拼接跟地址// options ajax發(fā)送請(qǐng)求前配置的參數(shù)options.url = "http://www.liulongbin.top:3007" + options.url;// 給有權(quán)限的接口,設(shè)置請(qǐng)求頭// 判斷當(dāng)前的請(qǐng)求地址 , 是否需要驗(yàn)證(url 地址中是否包含'/my/')if (options.url.indexOf("/my/") !== -1) {options.headers = { Authorization: localStorage.getItem("token") };}// 限制用戶的訪問(wèn)權(quán)限(未登錄直接強(qiáng)制跳轉(zhuǎn)到登錄頁(yè)面)options.complete = function (xhr) {if (xhr.responseJSON.status === 1 && xhr.responseJSON.message === "身份認(rèn)證失敗!") {// 強(qiáng)制清空 token 數(shù)據(jù)localStorage.removeItem("token");// 跳轉(zhuǎn)到登錄頁(yè)location.href = "/login.html";}}; });

    提交GIT代碼

    2.基本資料

    隱藏的和只讀的輸入框

    // 隱藏的輸入框 <input type="hidden" name="id">// 只讀的不能修改值的輸入框 readonly(只讀) disabled(禁用) <input type="text" name="username" required disabled class="layui-input" readonly />

    1.獲取用戶的基本信息

    // 1.獲取渲染用戶信息initUserinfo();function initUserinfo() {$.ajax({method: "get",url: "/my/userinfo",success: function (res) {console.log(res);if (res.status !== 0) {return layui.layer.msg(res.message, { icon: 5 });}// 快速為表單賦值layui.form.val("formUserInfo", res.data);},});}

    2.使用form.val方法快速為表單賦值

    // 為表單達(dá)快速賦值 layui.form.val() <form class="layui-form" action="" lay-filter="formUserInfo"> </form>// 為表單達(dá)快速賦值 ("表單名稱(chēng)",數(shù)據(jù)) layui.form.val("formUserInfo", res.data);

    3.發(fā)起請(qǐng)求更新用戶的信息,驗(yàn)證昵稱(chēng)規(guī)則

    // 2.驗(yàn)證昵稱(chēng)規(guī)則layui.form.verify({nickname: function (value) {if (value.length > 6) return "昵稱(chēng)的長(zhǎng)度不能超過(guò)六位";},});// ------------------------------------// 2.修改表單的數(shù)據(jù)$(".layui-form").on("submit", function (e) {e.preventDefault();var data = $(this).serialize();// 發(fā)起 ajax 數(shù)據(jù)請(qǐng)求$.ajax({method: "post",url: "/my/userinfo",data: data,success: function (res) {if (res.status != 0) {return layui.layer.msg(res.message, { icon: 5 });}layui.layer.msg(res.message, { icon: 6 });// 修改完表單數(shù)據(jù)自動(dòng)更新歡迎語(yǔ)// 調(diào)用父頁(yè)面index.js 中的全局函數(shù)getUserInfo// user_info.html 和 indexedDB.html 是父子關(guān)系,需要調(diào)用父類(lèi)的方法// 把index.html 中的獲取信息和渲染信息提到全局作用域中// 調(diào)用父頁(yè)面中的方法,重新渲染用戶的頭像和用戶的信息window.parent.getUserInfo();},});});

    注意:<iframe> 中的子頁(yè)面,如果想要調(diào)用父頁(yè)面中的方法,使用 window.parent 即可。

    3.重置密碼

    1.為密碼框定義校驗(yàn)規(guī)則

    定義如下的三個(gè)校驗(yàn)規(guī)則:

    // 驗(yàn)證密碼的格式(6-12)layui.form.verify({pwd: [/^\S{6,12}$/, "密碼必須是6到12位非空字符"],// 新密碼不能和原始密碼一樣samPwd: function (value) {var oldPwd = $("input[name=oldPwd]").val().trim();console.log(oldPwd);if (value === oldPwd) {return "新舊密碼不能一樣";}},// 新密碼和確認(rèn)新密碼一致的規(guī)則rePwd: function (value) {var newPwd = $("input[name=newPwd]").val().trim();if (newPwd !== value) {return "兩次密碼不一致";}},});

    2.發(fā)起請(qǐng)求實(shí)現(xiàn)重置密碼的功能

    // 修改密碼重置$(".layui-form").on("submit", function (e) {e.preventDefault();let data = $(this).serialize();$.ajax({method: "post",url: "/my/updatepwd",data: data,success: function (res) {if (res.status !== 0) {return layui.layer.msg(res.message, { icon: 5 });}layui.layer.msg(res.message, { icon: 6 });// 重置表單,reset只能用于DOM元素[0]$(".layui-form")[0].reset();},});});

    4.更換頭像

    cropper基本用法.pdf

    • 通過(guò) accept 屬性,可以指定,允許用戶選擇什么類(lèi)型的文件
    // 通過(guò) accept 屬性,可以指定,允許用戶選擇什么類(lèi)型的文件 <input type="file" id="file" accept="image/png,image/jpeg" />
    • 獲取拿到用戶選擇的文件 e.target.files
    function (e) // 獲取用戶選擇的文件 var filelist = e.target.files;// 拿到用戶選擇的文件 var file = e.target.files[0];
    • 將文件轉(zhuǎn)化為文件路徑 ( URL.createObjectURL )
    • 減少向服務(wù)器發(fā)送請(qǐng)求次數(shù)
    var newImgURL = URL.createObjectURL(file)

    1.實(shí)現(xiàn)裁剪區(qū)域圖片的替換

    實(shí)現(xiàn)基本裁剪效果:

    // 1.1 獲取裁剪區(qū)域的 DOM 元素var $image = $('#image')// 1.2 配置選項(xiàng)const options = {// 縱橫比aspectRatio: 1,// 指定預(yù)覽區(qū)域preview: '.img-preview'}// 1.3 創(chuàng)建裁剪區(qū)域$image.cropper(options)
    • 單擊上傳按鈕彈出文件選擇框
    // 單擊上傳按鈕彈出文件選擇框$("#btnChooseImage").on("click", function () {$("#file").click();});
    • 為文件選擇框綁定 change 事件
    // 為文件選擇框綁定 change 事件$("#file").on("change", function (e) {// 獲取用戶選擇的文件var filelist = e.target.files;if (filelist.length === 0) {return layer.msg("請(qǐng)選擇照片!");}// 1. 拿到用戶選擇的文件var file = e.target.files[0];// 2. 將文件,轉(zhuǎn)化為路徑var imgURL = URL.createObjectURL(file);// 3. 重新初始化裁剪區(qū)域$image.cropper("destroy") // 銷(xiāo)毀舊的裁剪區(qū)域.attr("src", imgURL) // 重新設(shè)置圖片路徑.cropper(options); // 重新初始化裁剪區(qū)域});

    2.將裁剪后的頭像上傳到服務(wù)器

    將裁剪后的圖片,輸出為 base64 格式的字符串

    文件轉(zhuǎn)base64的網(wǎng)址

    // 為確定按鈕,綁定點(diǎn)擊事件$('#btnUpload').on('click', function() {// 1. 要拿到用戶裁剪之后的頭像var dataURL = $image.cropper('getCroppedCanvas', {// 創(chuàng)建一個(gè) Canvas 畫(huà)布width: 100,height: 100}).toDataURL('image/png') // 將 Canvas 畫(huà)布上的內(nèi)容,轉(zhuǎn)化為 base64 格式的字符串// 2. 調(diào)用接口,把頭像上傳到服務(wù)器$.ajax({method: 'POST',url: '/my/update/avatar',data: {avatar: dataURL},success: function(res) {if (res.status !== 0) {return layer.msg('更換頭像失敗!')}layer.msg('更換頭像成功!')window.parent.getUserInfo()}})})

    本地代碼推送到 Git Hub

    • user 分支推送到 Git Hub 上 git push -u origin user
    • user 分支和 master 合并 git merge user
    • master 推送到 Git Hub 上 git push

    5.文章分類(lèi)

    1.獲取并使用模板引擎渲染表格的數(shù)據(jù)(查)

  • 在頁(yè)面底部導(dǎo)入模板引擎:

    <script src="/assets/lib/template-web.js"></script>
  • 定義模板:

  • <!-- 表格數(shù)據(jù)的模板 --><script type="text/html" id="tpl-cate">{{each data}}<tr><td>{{$value.name}}</td><td>{{$value.alias}}</td><td><button type="button" class="layui-btn layui-btn-xs btn-edit" data-id='{{$value.Id}}'>編輯</button><button type="button" class="layui-btn layui-btn-danger layui-btn-xs btn-delete" data-id='{{$value.Id}}'>刪除</button></td></tr>{{/each}}</script>
  • 發(fā)起請(qǐng)求獲取數(shù)據(jù):
  • //!【1】封裝一個(gè)獲取分類(lèi)數(shù)據(jù)的函數(shù),渲染到頁(yè)面 (查)initArtCateList();function initArtCateList() {$.ajax({url: "/my/article/cates",success: function (res) {if (res.status !== 0) {return layui.layer.msg(res.message, { icon: 5 });}console.log(res);// layui.layer.msg(res.message, { icon: 6 });// 調(diào)用模版var htmlStr = template("tpl-cate", res);// 數(shù)據(jù)渲染到頁(yè)面$("tbody").html(htmlStr);},});}

    2.點(diǎn)擊按鈕彈出模態(tài)框,添加分類(lèi) (增)

  • 點(diǎn)擊按鈕彈出模態(tài)框
  • // 定義全局變量.保存 添加分類(lèi) 模態(tài)框的索引var indexAdd;$("#btnAddCate").on("click", function () {indexAdd = layer.open({type: 1,title: "類(lèi)別添加",area: ["500px", "300px"],// 模版內(nèi)容拿到設(shè)為 content 的值content: $("#dialog-add").html(),});});
  • 獲取表單數(shù)據(jù),添加分類(lèi)
  • // 添加分類(lèi)的表單是通過(guò)模態(tài)框渲染到頁(yè)面的// 通過(guò)事件委托動(dòng)態(tài)給表單祖冊(cè) submit 事件$("body").on("submit", "#form-add", function (e) {e.preventDefault();// 獲取表單數(shù)據(jù)let data = $(this).serialize();console.log(data);// 發(fā)送ajax請(qǐng)求$.ajax({method: "post",url: "/my/article/addcates",data: data,success: function (res) {console.log(res);if (res.status !== 0) {return layui.layer.msg(res.message, { icon: 5 });}// layui.layer.msg(res.message, { icon: 6 });// 關(guān)閉模態(tài)框layui.layer.close(indexAdd);// 重新渲染頁(yè)面initArtCateList();},});});

    3.點(diǎn)擊按鈕彈出模態(tài)框,編輯分類(lèi) (改)

  • 點(diǎn)擊按鈕彈出模態(tài)框,點(diǎn)擊事件委托給tbody
  • // 定義關(guān)閉模態(tài)框的索引var indexEdit;// 1.點(diǎn)擊按鈕彈出模態(tài)框,點(diǎn)擊事件委托給tbody$("tbody").on("click", ".btn-edit", function () {indexEdit = layer.open({type: 1,title: "類(lèi)別添加",area: ["500px", "300px"],// 模版內(nèi)容拿到設(shè)為 content 的值content: $("#dialog-edit").html(),});// 獲取分類(lèi)的id,獲取分類(lèi)的數(shù)據(jù)let id = $(this).attr("data-id");// 發(fā)送ajax請(qǐng)求渲染頁(yè)面數(shù)據(jù)$.ajax({url: "/my/article/cates/" + id,success: function (res) {if (res.status !== 0) {return layui.layer.msg(res.message, { icon: 5 });}// layui.layer.msg(res.message, { icon: 6 });// 給表單賦值(layui中可以一鍵賦值);(要賦值的表單,數(shù)據(jù))layui.form.val("form-edit", res.data);},});});
  • 編輯的表單賦值(事件委托body)
  • $("body").on("submit", "#form-edit", function (e) {e.preventDefault();// 獲取表單數(shù)據(jù)let data = $(this).serialize();$.ajax({method: "post",url: "/my/article/updatecate",data: data,success: function (res) {console.log(res);if (res.status !== 0) {return layui.layer.msg(res.message, { icon: 5 });}layui.layer.msg(res.message, { icon: 6 });// 關(guān)閉模態(tài)框layui.layer.close(indexEdit);// 數(shù)據(jù)編輯成功重新渲染頁(yè)面initArtCateList();},});});

    4.刪除分類(lèi) (刪)

  • 給刪除按鈕注冊(cè) click 事件,事件委托
  • $("body").on("click", ".btn-delete", function () {// 獲取分類(lèi)的id,獲取分類(lèi)的數(shù)據(jù)let id = $(this).attr("data-id");// 詢(xún)問(wèn)是否確定要?jiǎng)h除layer.confirm("確定要?jiǎng)h除?", { icon: 3, title: "提示" }, function (index) {$.ajax({url: "/my/article/deletecate/" + id,success: function (res) {if (res.status !== 0) {return layui.layer.msg(res.message, { icon: 5 });}layui.layer.msg(res.message, { icon: 6 });// 數(shù)據(jù)刪除成功重新渲染頁(yè)面initArtCateList();},});// 關(guān)閉彈框layer.close(index);});});

    6.發(fā)布文章

    1.渲染文章類(lèi)別對(duì)應(yīng)的下拉選擇框結(jié)構(gòu)

  • 獲取分類(lèi)數(shù)據(jù)(封裝一個(gè)函數(shù)并調(diào)用)
  • // 1.獲取分類(lèi)數(shù)據(jù)(封裝一個(gè)函數(shù)并調(diào)用)initCate();function initCate() {$.ajax({url: "/my/article/cates",success: function (res) {if (res.status !== 0) {return layui.layer.msg(res.status, { icon: 5 });}// 2.渲染數(shù)據(jù)到下拉列表var htmlStr = template("tpl-cate", res);$("select").html(htmlStr); // 更新渲染表單元素(因?yàn)槭莿?dòng)態(tài)插入到頁(yè)面的)// 更新渲染表單元素(因?yàn)槭莿?dòng)態(tài)插入到頁(yè)面的)layui.form.render();},});}
  • 定義列表數(shù)據(jù)的模板結(jié)構(gòu)
  • <!-- 定義列表數(shù)據(jù)的模板結(jié)構(gòu) --><script type="text/html" id="tpl-cate"><select name="cate_id" lay-verify="required">{{each data }}<option value="{{$value.Id}}">{{$value.name}}</option>{{/each}}</select></script>

    2.渲染封面裁剪區(qū)域

    參考 富文本和封面.pdf

    //! 【2】初始化富文本編輯器initEditor();//! 【3】 初始化圖片裁剪區(qū)(插件)// 1. 初始化圖片裁剪器var $image = $("#image");// 2. 裁剪選項(xiàng)var options = {aspectRatio: 400 / 280,preview: ".img-preview",};// 3. 初始化裁剪區(qū)域$image.cropper(options);

    3.更換裁剪區(qū)域的圖片

  • 單擊"選擇封面",彈出文件選擇框
  • // 1.單擊"選擇封面",彈出文件選擇框$("#btnChooseImage").on("click", function () {// 隱藏的文件框打開(kāi)$("#coverFile").click();});
  • 監(jiān)聽(tīng) coverFile 的 change 事件,獲取用戶選擇的文件列表:
  • // 用戶選擇了新文件則更換裁剪區(qū)$("#coverFile").on("change", function () {// 獲取選中的文件列表let fileList = this.files;// 判斷有沒(méi)有選擇文件if (fileList.length <= 0) {return "沒(méi)有選中文件";}// 獲取到選擇的文件let file = fileList[0];// 根據(jù)選擇的文件,創(chuàng)建一個(gè)對(duì)應(yīng)的 URL 地址:let newImgURL = URL.createObjectURL(file);$image.cropper("destroy") // 銷(xiāo)毀舊的裁剪區(qū)域.attr("src", newImgURL) // 重新設(shè)置圖片路徑.cropper(options); // 重新初始化裁剪區(qū)域});

    4.定義文章的發(fā)布狀態(tài)

    // 全局變量,保存轉(zhuǎn)態(tài)的值var state = "已發(fā)布";$("#btnSave2").on("click", function () {state = "草稿";});

    5.基于Form表單創(chuàng)建FormData對(duì)象

  • 基于Form表單創(chuàng)建FormData對(duì)象,綁定submit事件
  • $("#form-pub").on("submit", function (e) {e.preventDefault();// 1.收集數(shù)據(jù)(FormData對(duì)象)// var fd = new FormData(form表單dom對(duì)象);var fd = new FormData(this);// 2.追加文章轉(zhuǎn)態(tài)的數(shù)據(jù)fd.append("state", state);// 3.裁剪封面,轉(zhuǎn)成二進(jìn)制文件,追加到fd中$image.cropper("getCroppedCanvas", {// 創(chuàng)建一個(gè) Canvas 畫(huà)布width: 400,height: 280,}).toBlob(function (blob) {// 將 Canvas 畫(huà)布上的內(nèi)容,轉(zhuǎn)化為文件對(duì)象// 得到文件對(duì)象后,進(jìn)行后續(xù)的操作// 裁剪完畢后,調(diào)用此回調(diào)函數(shù),參數(shù)blob就是裁剪后的二進(jìn)制文件fd.append("cover_img", blob);// fd.forEach(function (value, item) {// console.log(item, value);// });// 調(diào)用發(fā)布文章的方法;publishArticle(fd);});});

    6.發(fā)起Ajax請(qǐng)求實(shí)現(xiàn)發(fā)布文章的功能

  • 定義一個(gè)發(fā)布文章的方法:
  • function publishArticle(fd) {$.ajax({method: "post",url: "/my/article/add",data: fd,// 注意:如果向服務(wù)器提交的是 FormData 格式的數(shù)據(jù),// 必須添加以下兩個(gè)配置項(xiàng)contentType: false,processData: false,success: function (res) {if (res.status !== 0) {return layui.layer.msg(res.message, { icon: 5 });}// 提示框關(guān)閉后自哦動(dòng)自動(dòng)執(zhí)行此函數(shù)// 跳轉(zhuǎn)到文章列表// 獲取父頁(yè)面index.html中“文章列表”按鈕標(biāo)簽layui.layer.msg(res.message, { icon: 6 }, function () {window.parent.$("#article-list").click();// 發(fā)布文章成功后,跳轉(zhuǎn)到文章列表頁(yè)面// location.href = "/article/art_list.html";});},});}

    7.將開(kāi)發(fā)完成的項(xiàng)目代碼推送到GitHub

  • 運(yùn)行 git add . 命令
  • 運(yùn)行 git commit -m "完成文章管理相關(guān)功能的開(kāi)發(fā)" 命令
  • 運(yùn)行 git push -u origin article 命令
  • 運(yùn)行 git checkout master 命令
  • 運(yùn)行 git merge article 命令
  • 運(yùn)行 git push 命令
  • 7.文章列表

    1.獲取文章數(shù)據(jù),展示到頁(yè)面(查)

  • 封裝一個(gè)函數(shù),獲取文章數(shù)據(jù)

  • 調(diào)用函數(shù)

  • // 定義一個(gè)全局變量,保存參數(shù)var p = {pagenum: 1, // 頁(yè)碼值,默認(rèn)請(qǐng)求第一頁(yè)的數(shù)據(jù)pagesize: 2, // 每頁(yè)顯示多少條數(shù)據(jù)cate_id: "", // 文章分類(lèi)的 Idstate: "", // 文章的狀態(tài)};getArticeList();function getArticeList() {$.ajax({url: "/my/article/list",data: p,success: function (res) {if (res.status !== 0) {return layui.layer.msg(res.message, { icon: 5 });}var htmlStr = template("tpl-list", res);$("tbody").html(htmlStr);renderPage(res.total);},});}
  • 把文章渲染到頁(yè)面(模版引擎)
  • <!-- 列表模版 --><script type="text/html" id="tpl-list">{{each data}}<tr><td>{{$value.title}}</td><td>{{$value.cate_name}}</td><td>{{$value.pub_date|dataFormat}}</td><td>{{$value.state}}</td><td><button type="button" class="layui-btn layui-btn-xs btn-edit" article_id="{{$value.Id}}">編輯</button><button type="button" class="layui-btn layui-btn-danger layui-btn-xs btn-delete" data-id="{{$value.Id}}">刪除</button></td></tr> {{/each}}</script>

    2.定義過(guò)濾器函數(shù),對(duì)發(fā)布時(shí)間進(jìn)行格式化

    template.defaults.imports.dataFormat = function (date) {const dt = new Date(date);var y = dt.getFullYear();var m = padZero(dt.getMonth() + 1);var d = padZero(dt.getDate());var hh = padZero(dt.getHours());var mm = padZero(dt.getMinutes());var ss = padZero(dt.getSeconds());return y + "-" + m + "-" + d + " " + hh + ":" + mm + ":" + ss;};// 定義補(bǔ)零的函數(shù)function padZero(n) {return n > 9 ? n : "0" + n;}

    3.根據(jù)文章的分類(lèi)和轉(zhuǎn)態(tài)篩選數(shù)據(jù)

  • 把所有數(shù)據(jù)展示到下拉列表中
  • initCate();function initCate() {$.ajax({url: "/my/article/cates",success: function (res) {if (res.status !== 0) {return layui.layer.msg(res.message, { icon: 5 });}var htmlStr = template("tpl-cate", res);$("select[name=cate_id]").html(htmlStr);layui.form.render();},});}
  • 給篩選表單,綁定submit提交事件
  • $("#form-search").on("submit", function (e) {e.preventDefault();// 獲取分類(lèi)的id ,獲取文章的轉(zhuǎn)態(tài)var cate_id = $("[name=cate_id]").val();var state = $("[name=state]").val();// 修改查詢(xún)參數(shù)對(duì)象 pp.cate_id = cate_id;p.state = state;// 調(diào)用函數(shù)獲取文章getArticeList();});

    4.渲染分頁(yè)按鈕

    function renderPage(total) {layui.laypage.render({elem: "pageBox", // 存放按鈕的容器,沒(méi)有#count: total, // 數(shù)據(jù)的總量limit: p.pagesize, // 每頁(yè)顯示的條數(shù)curr: p.pagenum, // 當(dāng)前是第幾頁(yè)// 自定義頁(yè)面按鈕的排版layout: ["page", "next", "prev", "count", "limit", "skip"],limits: [2, 4, 6, 8, 10], // 每頁(yè)顯示條數(shù)的選項(xiàng)// 1)當(dāng)?shù)谝淮武秩痉猪?yè)按鈕時(shí),jump回調(diào)函數(shù)就會(huì)被調(diào)用一次// 2)當(dāng)切換分頁(yè)時(shí),jump 回調(diào)函數(shù)就會(huì)被執(zhí)行jump: function (obj, first) {// obj.分頁(yè)的配置對(duì)象,(obj.limit, obj.curr 當(dāng)前點(diǎn)擊的頁(yè)碼)// first(true,undefined)// 判斷一下是否被點(diǎn)擊,避免無(wú)限循環(huán)if (!first) {// 獲取當(dāng)前的最新頁(yè)碼,更改查詢(xún)參數(shù),調(diào)用函數(shù)重新獲取文章數(shù)據(jù)p.pagenum = obj.curr;// 獲取當(dāng)前最新的每頁(yè)的條數(shù),更改查詢(xún)參數(shù),調(diào)用函數(shù)重新獲取文章數(shù)據(jù)p.pagesize = obj.limit;getArticeList();}},});}

    5.刪除文章(刪)

    1.給刪除按鈕綁定click事件(事件委托)

    2.獲取文章id

    3.詢(xún)問(wèn)

    4.調(diào)接口刪除文章

    5.重新渲染(判斷當(dāng)前是否在第一頁(yè))

    $("tbody").on("click", ".btn-delete", function () {var id = $(this).attr("data-id");// 單擊刪除按鈕時(shí),統(tǒng)計(jì)刪除按鈕的數(shù)量,并保存var len = $(".btn-delete").length;layer.confirm("是否要?jiǎng)h?", { icon: 3, title: "提示" }, function (index) {$.ajax({url: "/my/article/delete/" + id,success: function (res) {if (res.status !== 0) {return layui.layer.msg(res.message, { icon: 5 });}layui.layer.msg(res.message, { icon: 6 });// 判斷一下是否是當(dāng)前頁(yè)最后一條數(shù)據(jù)if (len === 1) {// 大于一頁(yè)的時(shí)候再減p.pagenum > 1 && p.pagenum--;}getArticeList();},});// 關(guān)閉提示框layer.close(index);});});

    6.單擊編輯按鈕跳到編輯頁(yè)面

    // 1.編輯按鈕是動(dòng)態(tài)添加的,用事件委托$("tbody").on("click", ".btn-edit", function () {// 2.存儲(chǔ)文章的id 本地存儲(chǔ)localStorage.setItem("article_id", $(this).attr("article_id"));// 3.跳轉(zhuǎn)到編輯頁(yè)location.href = "/article/art_edit.html";});

    8.文章編輯

    1.頁(yè)面初始化操作(查)

  • 分類(lèi)的下拉列表
  • initCate();function initCate() {// 獲取所有分類(lèi)數(shù)據(jù)$.ajax({url: "/my/article/cates",success: function (res) {if (res.status !== 0) {return layui.layer.msg(res.message, { icon: 5 });}// 渲染數(shù)據(jù)到下拉列表var htmlStr = template("tpl-cate", res);// console.log(htmlStr);$("select").html(htmlStr);// 更新渲染表單元素(因?yàn)槭莿?dòng)態(tài)插入到頁(yè)面的)layui.form.render();},});}
  • 初始化富文本編輯器

  • 初始化裁剪區(qū)域

  • // 2.初始化富文本編輯器initEditor();// 初始化圖片裁剪區(qū)(插件)// 1. 初始化圖片裁剪器var $image = $("#image");// 2. 裁剪選項(xiàng)var options = {aspectRatio: 400 / 280,preview: ".img-preview",};// 3. 初始化裁剪區(qū)域$image.cropper(options);

    2.根據(jù)id獲取文章數(shù)據(jù),并渲染到表單中

    geteditData();function geteditData() {$.ajax({url: "/my/article/" + id,success: function (res) {console.log(res);if (res.status !== 0) {return layui.layer.msg(res, message, { icon: 5 });}// 拼接服務(wù)器中的圖片地址$image.cropper("destroy") // 銷(xiāo)毀舊的裁剪區(qū)域.attr("src", "http://www.liulongbin.top:3007" + res.data.cover_img) // 重新設(shè)置圖片路徑.cropper(options); // 重新初始化裁剪區(qū)域// 3).給表單賦值(layui中可以一鍵賦值)layui.form.val("form-edit", res.data);},});}

    3.獲取表單數(shù)據(jù),上傳服務(wù)器

    // 點(diǎn)擊選擇封面上傳文件框打開(kāi)$("#btnChooseImage").on("click", function () {$("#coverFile").click();});// 用戶選擇了新文件則更換裁剪區(qū)$("#coverFile").on("change", function () {// 獲取選中的文件列表var fileList = this.files;// 判斷有沒(méi)有選擇文件if (fileList.length <= 0) {return layui.layer.msg("請(qǐng)選擇文件", { icon: 5 });}var file = fileList[0];// 根據(jù)選擇的文件,創(chuàng)建一個(gè)對(duì)應(yīng)的 URL 地址:var newImgURL = URL.createObjectURL(file);$image.cropper("destroy") // 銷(xiāo)毀舊的裁剪區(qū)域.attr("src", newImgURL) // 重新設(shè)置圖片路徑.cropper(options); // 重新初始化裁剪區(qū)域});

    獲取數(shù)據(jù)

    $("#form-edit").on("submit", function (e) {e.preventDefault();// 收集數(shù)據(jù)(FormData對(duì)象)// var fd = new FormData(form表單dom對(duì)象);var fd = new FormData(this);$image.cropper("getCroppedCanvas", {// 創(chuàng)建一個(gè) Canvas 畫(huà)布width: 400,height: 280,}).toBlob(function (blob) {// 將 Canvas 畫(huà)布上的內(nèi)容,轉(zhuǎn)化為文件對(duì)象// 得到文件對(duì)象后,進(jìn)行后續(xù)的操作// 裁剪完畢后,調(diào)用此回調(diào)函數(shù),參數(shù)blob就是裁剪后的二進(jìn)制文件// 裁剪文章圖片,并追加到fd 中fd.append("cover_img", blob);fd.forEach(function (value, item) {console.log(item, value);});ediltlishArticle(fd);});});

    封裝一個(gè)調(diào)用發(fā)布文章的接口

    // 封裝一個(gè)調(diào)用發(fā)布文章的接口function ediltlishArticle(fd) {$.ajax({method: "post",url: "/my/article/edit",data: fd,// 數(shù)據(jù)是FormData對(duì)象需要配置兩個(gè)額外參數(shù)contentType: false,processData: false,success: function (res) {if (res.status !== 0) {return layui.layer.msg(res.message, { icon: 5 });}layui.layer.msg(res.message, { icon: 6 }, function () {// 提示框關(guān)閉后自哦動(dòng)自動(dòng)執(zhí)行此函數(shù)// 跳轉(zhuǎn)到文章列表// 獲取父頁(yè)面index.html中“文章列表”按鈕標(biāo)簽window.parent.document.getElementById("article-list").click();});},});}

    總結(jié)

    以上是生活随笔為你收集整理的10-大事件的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

    如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。

    99久久久久久久久久 | 欧美日韩精品久久久 | 欧美日韩不卡在线观看 | 亚洲日本色| 免费观看91视频大全 | 日韩精品久久一区二区 | 国产亚洲精品电影 | 日韩中文字幕一区 | 国产精品视频你懂的 | 狠狠久久婷婷 | www.夜色321.com | 欧美精品久久久久久久久久久 | 日本h在线播放 | 人人干97| 久久五月婷婷丁香社区 | 久久99精品国产99久久 | 久久中文欧美 | 东方av在 | 24小时日本在线www免费的 | 韩日视频在线 | 天天爽天天做 | 国产视频亚洲视频 | 亚洲最大在线视频 | 人人干干人人 | 在线观看视频日韩 | 日韩国产欧美在线播放 | 久久免费成人网 | 日韩av图片 | 日韩欧美高清在线 | 97超碰中文字幕 | 国产高清视频免费观看 | 国产一级黄色电影 | 国产中文字幕大全 | 又黄又刺激的视频 | 婷婷丁香色综合狠狠色 | 麻豆久久久久 | 亚洲日本激情 | 国产精品免费久久久 | 久久涩涩网站 | 久久五月婷婷丁香社区 | 天天操夜夜干 | 久久试看 | 五月天丁香亚洲 | av直接看| 黄色视屏免费在线观看 | 99精品国产一区二区三区不卡 | 国产视频一区二区在线观看 | www.夜夜操 | 91精品999| 成人精品视频 | 狠狠干美女 | 精品国产区 | 国产一区二区影院 | 黄色在线视频网址 | 在线v片免费观看视频 | 超碰久热 | 91av在线国产 | 国产美女网站视频 | 人人澡人人爱 | 天天干天天操人体 | 国产精品久久久久久久久久久久冷 | 亚洲乱码精品久久久 | 一区二区三区免费网站 | 五月天久久精品 | 欧美日韩激情视频8区 | 成人毛片100免费观看 | 国产九色视频在线观看 | 国产成人精品一区二区三区免费 | 在线观看岛国片 | 天堂av色婷婷一区二区三区 | 88av网站| 久久在线精品 | 国产视频中文字幕 | 精品综合久久 | 超碰成人免费电影 | 久久av中文字幕片 | 亚洲成a人片在线观看网站口工 | 久草热久草视频 | 久久网站免费 | 最近免费在线观看 | 综合天天久久 | 精品国产乱码久久久久久天美 | 在线观看黄色 | 国产精品21区 | 天天色天天操天天爽 | 亚洲黄色区 | 色婷婷激情网 | 国产精品永久久久久久久久久 | 国产91精品高清一区二区三区 | 黄色毛片电影 | 国产一级精品绿帽视频 | 天天综合狠狠精品 | 久久精品毛片 | 91亚洲欧美 | 国产不卡网站 | 国产精品一区二区三区99 | 黄色片免费在线 | 国产区第一页 | 五月婷丁香网 | 久久精品伊人 | 国产一区二区免费 | 成人a级网站 | 久久久国产影视 | 欧洲在线免费视频 | 国产视频在线观看一区二区 | av在线免费网 | 在线视频 国产 日韩 | 日韩在线视频线视频免费网站 | 国产在线播放一区二区 | 日韩精品视频在线免费观看 | 69国产精品视频 | 久久久久国产一区二区三区 | 国产视频 亚洲视频 | 97精品欧美91久久久久久 | a级片韩国 | 国产午夜视频在线观看 | 久久综合免费 | 女人魂免费观看 | 色福利网| 中文字幕av一区二区三区四区 | 欧美精品一区二区蜜臀亚洲 | 精品亚洲一区二区 | 狠狠狠狠狠狠狠 | 天天操夜夜逼 | 在线看v片成人 | 国外调教视频网站 | 中文字幕一区在线观看视频 | www.伊人网| 中文字幕一区二区三区四区 | 草久视频在线 | 国产成人精品一区二区三区福利 | 天天操天天操天天操天天操天天操天天操 | 免费日韩三级 | 亚洲精品国产第一综合99久久 | 狠狠躁18三区二区一区ai明星 | 亚洲最大激情中文字幕 | 欧美日韩伦理在线 | 国产只有精品 | 亚洲aⅴ在线 | 国产成人一级电影 | 天天干天天干天天操 | 中文在线8资源库 | 亚洲三级网 | 久久久精品日本 | 亚洲三级网 | 日韩精品三区四区 | 国产黄色资源 | 韩国av电影在线观看 | 欧美日韩国产亚洲乱码字幕 | 国产欧美精品一区二区三区四区 | 免费看的黄色片 | 精品国产免费人成在线观看 | 亚洲精品国精品久久99热 | 在线蜜桃视频 | 国产成人99久久亚洲综合精品 | 久久综合国产伦精品免费 | 狠狠综合久久 | 91亚色视频在线观看 | 亚洲精品成人 | 亚洲,国产成人av | 亚洲成aⅴ人片久久青草影院 | 波多野结衣资源 | 国产精品白浆视频 | 99久久国产免费,99久久国产免费大片 | 97人人看| 日本黄色免费观看 | bayu135国产精品视频 | 黄色三级免费网址 | 91在线观看高清 | 欧美成人中文字幕 | 国产一区二区免费看 | 麻豆影视网站 | 一级黄色在线免费观看 | 一级大片在线观看 | 国产精品乱码高清在线看 | 在线观看视频你懂得 | 91精品啪在线观看国产81旧版 | 中文字幕在线观看第一页 | 香蕉久久国产 | 干 操 插| 蜜臀av网站 | 在线色亚洲| 日韩国产高清在线 | 有码一区二区三区 | 午夜视频在线瓜伦 | 国内久久久 | 久久久国产一区二区三区四区小说 | 国产一区二区在线看 | 特级毛片在线 | 午夜成人免费影院 | 日韩一区二区三区在线看 | 日韩av看片| 欧美日韩国产伦理 | 久久都是精品 | 综合国产在线观看 | 高潮久久久久久 | 欧美与欧洲交xxxx免费观看 | 欧美激情视频一区二区三区 | 91精品夜夜| 黄色在线观看污 | 美女网站一区 | 成人一区二区在线 | 国产精品一区二区久久精品爱微奶 | 久久黄色片子 | 一级免费观看 | 日本丰满少妇免费一区 | 丁香婷婷激情网 | 欧美一区二区三区四区夜夜大片 | 日韩va欧美va亚洲va久久 | 久久a免费视频 | 91麻豆看国产在线紧急地址 | 中文字幕一区二区在线播放 | 欧美日韩在线精品一区二区 | 国产精品原创 | 成人免费大片黄在线播放 | 亚洲在线视频免费观看 | av免费电影网站 | 久久一精品 | 中文字幕久久久精品 | 成人久久18免费 | 日韩av一区二区在线播放 | 一区免费视频 | 91av视频免费在线观看 | 欧美日韩在线免费视频 | 精品在线观看国产 | 亚洲精品久久久久久久蜜桃 | 欧美精品少妇xxxxx喷水 | 97av精品 | 精品国产一区二区三区久久久久久 | 五月婷婷激情 | 欧美日韩啪啪 | 欧美日韩视频在线播放 | 天堂av免费看 | 免费看一及片 | 在线观看网站你懂的 | 91大神精品视频在线观看 | 91福利视频久久久久 | www.夜色321.com | 一级α片免费看 | 日本久久久久久 | 欧美日韩另类视频 | 91av中文 | 久久久精品 | 国产精品久久久久久久久久免费看 | 99久久精品免费看 | 久久久免费精品国产一区二区 | 午夜久久久精品 | 久久国产露脸精品国产 | 国产一级电影网 | 免费午夜av | 久久久久国产一区二区三区 | 五月激情天 | 国产玖玖在线 | 在线日韩 | 中文字幕a在线 | 天堂av在线网站 | 亚洲精品在线播放视频 | 四虎小视频 | 亚洲热久久| www日韩精品| 日本乱视频 | 天天视频色版 | 久久精品视频日本 | 精品欧美乱码久久久久久 | 97人人模人人爽人人喊中文字 | 久久理论电影 | 99综合视频 | 2023年中文无字幕文字 | 国产99久久久国产 | 亚洲最新av在线网址 | 国内精品久久久久影院日本资源 | 2022国产精品视频 | 91黄色在线视频 | 午夜电影久久久 | 久久久91精品国产 | 亚洲成人蜜桃 | 午夜视频在线瓜伦 | 亚洲一区二区精品在线 | 久草视频观看 | 99久久国产免费看 | 日韩av线观看 | 婷婷久久网 | japanesefreesex中国少妇 | 免费观看成年人视频 | 日韩高清网站 | 日韩午夜电影 | 日本三级吹潮在线 | 很黄很污的视频网站 | 肉色欧美久久久久久久免费看 | 一二三四精品 | 久久精品99国产精品日本 | 91亚洲精品在线 | 九九国产精品视频 | 欧美精品久久久久久久久久 | 日本不卡123 | 九九色综合 | 日日操夜夜操狠狠操 | 色成人亚洲 | 亚洲激情在线播放 | 亚洲黄色片在线 | 国产精品久久久久久久婷婷 | 亚洲另类视频 | 在线观看亚洲免费视频 | 国产99一区 | 国产系列在线观看 | 欧美黑人猛交 | 中文字幕在线观看一区 | 粉嫩av一区二区三区四区 | 999精品| 精品国产一区在线观看 | 婷婷亚洲激情 | 人人爽人人 | 色av网站 | 亚洲精品久久久久久久不卡四虎 | 91精品久久久久久久久久入口 | 97av影院| 中文字幕在线视频免费播放 | 午夜精品久久久久久久99热影院 | 久久精品999| 爱色婷婷 | 婷婷中文字幕综合 | 久久99精品国产99久久6尤 | 岛国精品一区二区 | 日本午夜在线观看 | 亚洲精品在线观看视频 | 91干干干| 欧美久久久久久久久中文字幕 | 国产高清在线a视频大全 | 午夜色婷婷 | 欧美激情视频在线免费观看 | 97在线视频免费看 | 久久免费大片 | 亚洲理论电影网 | 欧美va天堂va视频va在线 | av在线播放国产 | 性色av一区二区三区在线观看 | 日韩精品一区二区免费视频 | 欧美美女视频在线观看 | 亚洲精品97 | 香蕉影院在线观看 | 天天鲁天天干天天射 | 九九免费在线观看 | 少妇资源站 | 韩国av一区 | 成人网色 | 97综合网 | 国产精品99久久久久的智能播放 | 超碰97.com | 国产在线 一区二区三区 | 婷婷av色综合 | 91精品资源| 日韩一区二区三免费高清在线观看 | 亚洲女同ⅹxx女同tv | 国产在线日本 | 97免费在线视频 | 久久免费精品视频 | 99久久精品视频免费 | 国产做aⅴ在线视频播放 | 99视频在线 | 亚洲国产精品影院 | 成人黄色在线观看视频 | 91高清视频| 99精品色| 五月天精品视频 | 亚洲精品色| 在线色网站 | 麻豆视频免费入口 | 香蕉精品视频在线观看 | 国产成人精品在线观看 | 成年人黄色免费看 | 能在线看的av | 在线观看不卡视频 | 国产精品完整版 | 91资源在线免费观看 | 在线导航av | 欧美日韩久久不卡 | 国产美女免费视频 | 伊人婷婷色 | 国产资源在线播放 | 91pony九色丨交换 | 久久久久女教师免费一区 | 日韩一级电影在线观看 | 97偷拍视频 | 激情五月婷婷丁香 | japanesefreesex中国少妇 | 在线免费成人 | 欧美国产不卡 | 天天操夜夜做 | 久久欧美综合 | 亚洲视频中文 | 美女福利视频一区二区 | 91在线蜜桃臀 | 又黄又爽的视频在线观看网站 | 精品国产久 | 免费www视频| 九九九免费视频 | 亚洲综合五月天 | 欧美日韩视频在线观看免费 | 国产免费av一区二区三区 | 亚洲国产经典视频 | 日韩试看 | 日韩毛片在线播放 | 9ⅰ精品久久久久久久久中文字幕 | 亚洲国产精品第一区二区 | 三级黄色网络 | 午夜久久久久久久久久久 | 五月激情视频 | 色国产在线 | 国产不卡在线看 | 久久久国产高清 | www.黄色片网站 | 久久久久欧美精品 | 91成人久久| 成人一区二区三区在线观看 | 亚洲精选久久 | www.久久久com | 天天操网站 | 最近最新最好看中文视频 | 久久成人精品电影 | 久久激情影院 | 91精品一区二区三区久久久久久 | 国产成人精品一区二区三区在线观看 | 美女很黄免费网站 | 亚洲国产资源 | 久久视频99 | 天天操天天弄 | 91精品爽啪蜜夜国产在线播放 | 草久视频在线观看 | 精品福利国产 | 国产成人av免费在线观看 | 日韩欧美视频一区二区三区 | 亚洲一级理论片 | a精品视频 | 深爱激情亚洲 | 婷婷精品在线 | 99久久精品国产免费看不卡 | 久久精品中文字幕 | 视频在线观看日韩 | 午夜视频欧美 | 色黄久久久久久 | av综合网址 | 色丁香综合 | 精品国产片 | 国产免费成人 | 操高跟美女 | 天天射天天干天天爽 | 婷婷色中文网 | 国产精品成人一区二区三区 | 久久久久久免费 | 国产成人精品一区二区在线观看 | 91福利国产在线观看 | 在线免费av观看 | 97超碰人人模人人人爽人人爱 | 亚洲一级电影 | 成人黄色大片在线观看 | 国产精品美乳一区二区免费 | 国产精品久久久久9999 | 在线播放视频一区 | 黄色一级在线免费观看 | 国产成人一区二区三区久久精品 | 成年人黄色大片在线 | 91精品婷婷国产综合久久蝌蚪 | 伊人狠狠 | 69国产成人综合久久精品欧美 | 国产亚洲午夜高清国产拍精品 | 国产一二三四在线视频 | 国产资源精品在线观看 | 九色视频网站 | 国产资源| 日本黄色黄网站 | 日韩中文字幕在线不卡 | 亚洲精品在线一区二区三区 | 欧美激情在线看 | 噜噜色官网| 久久久蜜桃一区二区 | 亚洲视频久久久 | 日韩国产欧美在线播放 | 91精品办公室少妇高潮对白 | 97国产情侣爱久久免费观看 | 黄色av电影一级片 | 五月天综合激情 | 日本一区二区三区视频在线播放 | 在线黄色免费av | 成人啪啪18免费游戏链接 | 亚洲综合精品视频 | 亚洲欧美一区二区三区孕妇写真 | 欧美日韩一级视频 | 亚洲一级免费观看 | 在线之家免费在线观看电影 | 久久免费视频3 | 99精品视频在线观看视频 | 免费看的黄色的网站 | 国产免费成人av | 国内精品视频在线播放 | 91精品国自产在线偷拍蜜桃 | 日日夜夜免费精品 | 99热高清 | 91久久丝袜国产露脸动漫 | 久久综合电影 | 免费在线观看av | 女人久久久久 | 国产亚洲资源 | 91香蕉视频黄色 | 国产资源站 | 免费看污污视频的网站 | 国产手机视频在线播放 | 激情五月婷婷丁香 | 欧美日韩在线播放一区 | 夜夜躁狠狠躁日日躁 | 亚洲精品乱码久久久久久按摩 | a级免费观看 | 新版资源中文在线观看 | 成人理论电影 | 欧美午夜精品久久久久 | 免费观看久久 | 国产一级免费在线 | 最近中文字幕在线播放 | 久久精品久久精品久久精品 | 91精品1区 | 中文字幕在线不卡国产视频 | a视频免费在线观看 | 日韩中文字幕免费在线观看 | 国产精品无 | 国产精品乱码久久久 | 不卡的av在线 | 香蕉影视app | 日韩午夜电影 | 人人插人人澡 | 国产99在线 | 国产亚洲资源 | 亚洲黄色免费在线看 | 在线亚洲精品 | 欧美成人中文字幕 | 成年人电影免费看 | 日韩av有码在线 | 国产高清在线永久 | 1区2区3区在线观看 三级动图 | 免费日韩在线 | 久影院| 国产精品久久久久免费 | 久久综合偷偷噜噜噜色 | 狠狠色香婷婷久久亚洲精品 | 中文字幕乱码电影 | 亚洲另类视频在线 | av日韩av| av在线一| 日韩免费福利 | 丁香婷婷基地 | 超碰个人在线 | 久久精品欧美一区二区三区麻豆 | 日韩在线视频一区二区三区 | 中文字幕在线观看网站 | 婷婷久久一区 | 国产又黄又猛又粗 | 国产精品毛片完整版 | 美女网站在线免费观看 | 免费三级黄色片 | 亚洲精品资源 | 中文字幕日本特黄aa毛片 | 日韩一区正在播放 | 久久久久久高潮国产精品视 | 91视频最新网址 | 天天摸日日摸人人看 | 久久国产精品99久久久久久丝袜 | 香蕉视频91| 久久狠狠亚洲综合 | 亚洲蜜桃av | 狠狠狠狠狠狠狠 | 99在线热播精品免费99热 | 国产精品国产自产拍高清av | 日韩在线观看的 | 欧美伦理电影一区二区 | 欧美在线视频第一页 | 欧美精品乱码久久久久久按摩 | 精品一区二区视频 | 91精品国产欧美一区二区 | 97国产人人 | 天天av综合网 | 欧美日一级片 | 天天爽天天碰狠狠添 | 国产日韩欧美视频 | 精品在线视频播放 | 久草视频在线新免费 | 国产一级一片免费播放放a 一区二区三区国产欧美 | 天天干夜夜操视频 | 欧美精品久久久久 | 欧美aa级| 久久精品精品电影网 | 亚洲欧美va | 五月开心婷婷网 | 久久久久久美女 | 日日操天天操夜夜操 | 久久久久久高潮国产精品视 | 精品国产伦一区二区三区观看体验 | 国产精彩视频一区二区 | 中文字幕日韩高清 | 成人蜜桃网 | 99久久精品国产系列 | 色综合天天在线 | 国内精品久久久 | 久久国产美女 | 久久久穴 | 久久1电影院 | 国产偷在线 | 久久中文欧美 | 亚洲日本va午夜在线电影 | 天天做天天爱天天爽综合网 | 91精品导航 | 午夜三级在线 | 成人国产精品免费观看 | 午夜精品福利影院 | 成人午夜电影在线观看 | 亚洲精品毛片一级91精品 | 国产精品 日韩 | 美女一二三区 | 中文不卡视频在线 | 日韩中文字幕免费电影 | 最新久久久 | 国产精品毛片一区 | 在线观看网站你懂的 | 啪啪免费观看网站 | 中文字幕资源在线 | 一区二区三区在线不卡 | 久久在视频| 国产精品美女在线观看 | 色综合天天综合 | 国产精品中文字幕在线 | 91av视频网| 天堂va欧美va亚洲va老司机 | 中文字幕大全 | 色在线国产| av大全免费在线观看 | 国产成人精品综合 | 黄色成年 | 毛片久久久 | 五月婷婷综合激情网 | 97操操操 | 国产精品激情在线观看 | 五月激情视频 | 日韩欧美精品在线观看视频 | 久久夜夜操 | 天天操天天能 | 免费日p视频 | 久久精品观看 | 中文在线天堂资源 | 中文字幕国语官网在线视频 | 18女毛片 | 中文在线天堂资源 | 婷婷色在线播放 | 欧美精品xxx | 久久久久久久久久久高潮一区二区 | 欧美精品九九 | 日b视频在线观看网址 | 欧美日韩精品区 | 91av蜜桃 | 免费美女久久99 | 久久国产免费视频 | 国产成人久久精品一区二区三区 | 国产日本亚洲 | 欧美日韩精品二区第二页 | 五月天综合 | 精品a在线 | 狠狠色综合欧美激情 | a天堂一码二码专区 | 激情视频区 | 在线国产一区二区三区 | 精品在线观看国产 | 麻豆视频在线观看免费 | 欧美性大战久久久久 | 婷婷六月天丁香 | 精品96久久久久久中文字幕无 | 免费视频一区二区 | av先锋中文字幕 | 欧美精品午夜 | 激情婷婷综合 | 一区二区三区视频在线 | 日韩a在线播放 | 久久欧美视频 | 日韩xxx视频 | 好看的国产精品视频 | 国产91精品一区二区 | 黄色a一级视频 | 日本中文字幕电影在线免费观看 | 精品在线观看视频 | 亚洲国产精品一区二区久久,亚洲午夜 | 免费精品视频 | 最新日韩在线观看 | 人人操日日干 | 97av影院| 国产精品美女久久久网av | 国产高清视频免费 | 成全免费观看视频 | 天天操天天艹 | 超碰在线观看av | 视频三区在线 | 亚洲黄色成人网 | 亚洲国产精品va在线看 | 手机在线小视频 | 综合国产在线观看 | 日韩电影在线看 | 国产欧美最新羞羞视频在线观看 | 亚洲精品国产综合久久 | 日韩av免费大片 | 国产精品 日韩 欧美 | 东方av在 | 99夜色 | 久保带人 | 国产精品久久久久久久免费大片 | 国产精品免费观看国产网曝瓜 | 看黄色91 | 97超碰人人澡人人爱学生 | 精品日韩在线 | 久久成人一区二区 | 国产黄色片久久久 | 中文字幕人成不卡一区 | 99久久www | 国产资源在线视频 | 久久久久久久综合色一本 | 午夜色影院 | 久久免费观看少妇a级毛片 久久久久成人免费 | 91av视频观看 | 国产小视频在线观看 | 午夜电影久久久 | 久久精彩免费视频 | 久久在线精品视频 | 国产精品久久久久久久久搜平片 | 午夜精品久久 | 草久热| 高清av网 | 日韩一区二区三免费高清在线观看 | 午夜精品在线看 | 久久久高清免费视频 | 一区二区三区播放 | 久久精品免费观看 | av片子在线观看 | 天天射网 | 日韩免费一区二区在线观看 | 亚洲精品中文字幕在线 | 亚洲黄色片一级 | 永久免费视频国产 | 国产视频午夜 | 日韩免费高清在线 | www婷婷| 伊人久久一区 | 国产精品岛国久久久久久久久红粉 | 三级黄色片子 | 国产视频精品免费播放 | 成年人免费看的视频 | 97电影手机| 黄色在线小网站 | 欧美日韩性视频在线 | 久久免费视频一区 | 亚洲第一成网站 | 九九精品视频在线观看 | 亚洲一级黄色片 | 97超碰中文字幕 | 美女黄频 | 日韩a免费 | 麻豆传媒视频在线播放 | a视频在线播放 | 亚洲国产成人精品在线 | 999一区二区三区 | 欧美在线视频一区二区三区 | 黄色日视频 | 开心激情久久 | 综合色天天 | 美女久久久| 成人网444ppp| 四虎在线免费观看视频 | 日日天天狠狠 | 亚洲综合欧美日韩狠狠色 | 精品国产91亚洲一区二区三区www | 国产精品欧美久久久久天天影视 | 黄色在线观看污 | 欧美日韩在线精品 | 在线免费视频你懂的 | 国产成人精品免高潮在线观看 | 色网站免费在线看 | 国产视频一区精品 | 成人在线黄色 | 狠狠操导航 | 在线 日韩 av| 欧美一级片在线免费观看 | 蜜臀av性久久久久蜜臀aⅴ四虎 | 日韩欧美精品一区 | 亚色视频在线观看 | 日韩高清一二三区 | 青青草国产免费 | 国产 日韩 欧美 在线 | 九九免费在线看完整版 | 国产淫片 | 九九在线精品视频 | 国产精品久久网站 | 午夜视频在线观看一区二区 | 久久亚洲福利视频 | 日韩电影精品 | 在线观看网站黄 | 日韩免费在线观看 | 国产精品午夜av | 久久久久亚洲精品成人网小说 | 久久免费av电影 | 欧美色综合久久 | 麻豆91在线播放 | 亚洲国产中文在线 | 四虎在线观看视频 | 91日韩精品一区 | 香蕉网在线观看 | 天天干天天干天天干 | 久久影视一区 | 天天做天天爱天天爽综合网 | 国产一区免费视频 | 国产91粉嫩白浆在线观看 | 777xxx欧美| 狠狠操狠狠干天天操 | av一本久道久久波多野结衣 | 国产免费又粗又猛又爽 | 日韩欧美99 | japanesexxxhd奶水 91在线精品一区二区 | 中文永久免费观看 | 97精品国产97久久久久久久久久久久 | 99精品国产99久久久久久福利 | 在线观看a视频 | 婷婷色网 | 国产999精品视频 | 日韩欧美高清一区二区 | 亚洲国产mv| www.看片网站 | 国产精品久久久久久久久久尿 | 在线看国产视频 | 精品国产一区二区三区四区在线观看 | 国产黄大片在线观看 | 婷婷国产v亚洲v欧美久久 | 日日干日日色 | 免费日韩 精品中文字幕视频在线 | 欧美一级乱黄 | 久久色视频 | 黄色成人在线 | 国产99久久久精品 | 久久视频网址 | 亚洲精品97| 亚洲做受高潮欧美裸体 | 国产日韩视频在线 | 国产精彩视频 | 在线看片日韩 | 日韩美av在线| 色婷婷国产精品一区在线观看 | 国产一区二区三区免费在线观看 | 国产精品小视频网站 | 福利精品在线 | a在线免费观看视频 | 久久国内精品99久久6app | 久久精品国产第一区二区三区 | 久久色视频 | 久久精品爱爱视频 | 狠狠色噜噜狠狠狠狠 | 一区二区三区精品在线 | 六月丁香婷婷网 | 国产在线一区二区 | 一级片免费在线 | 中文字幕资源网在线观看 | 狠狠亚洲 | 久久国产精品久久久久 | 亚洲一区二区三区91 | 中文字幕在线观看第一页 | 最近免费观看的电影完整版 | 福利视频区 | 91精品1区| 九九在线视频免费观看 | 国产精品免费观看网站 | 国产午夜精品av一区二区 | 国产日产在线观看 | 欧美日本国产在线观看 | 91在线欧美 | 亚洲最大在线视频 | 国产99一区 | 日韩欧美在线观看 | 久久久久久久免费看 | 中文字幕高清有码 | 91在线免费观看网站 | 国产精品久久久久久模特 | av三级av| 狠狠躁日日躁夜夜躁av | 在线免费av网站 | 久久精品视频播放 | 欧美精品少妇xxxxx喷水 | 亚洲精品乱码久久久久久蜜桃欧美 | 国产精品一区二区三区免费看 | 六月丁香激情综合 | 中文字幕 成人 | 成年人av在线播放 | 免费久久99精品国产婷婷六月 | 国产一线天在线观看 | 国产91在线 | 美洲 | 久久久综合香蕉尹人综合网 | 日韩久久在线 | 久久黄色网| 亚洲综合色站 | 欧美国产高清 | 韩国av免费观看 | 人人射人人射 | 国产精品初高中精品久久 | 成人av高清在线观看 | 日韩中文字幕亚洲一区二区va在线 | 久久久久久久国产精品 | 亚洲四虎影院 | 欧美日本不卡视频 | 97国产大学生情侣白嫩酒店 | 免费色视频网站 | 亚洲国产精彩中文乱码av | 天天草天天干天天射 | 免费a级大片 | 色妞久久福利网 | 99久久婷婷| 亚洲一区精品二人人爽久久 | 久久免费视频在线观看6 | 在线观看成年人 | 日日碰狠狠添天天爽超碰97久久 | 综合在线观看色 | 国产精品中文字幕在线 | 欧美视频在线观看免费网址 | 久久久www成人免费精品张筱雨 | 欧美激情xxxx | 亚洲黄色小说网址 | 国产视频 亚洲视频 | 国产又粗又猛又黄视频 | 亚洲影视九九影院在线观看 | 国产一级视屏 | 99精品免费久久久久久久久 | 水蜜桃亚洲一二三四在线 | 国产成人三级在线播放 | 天天干,天天射,天天操,天天摸 | 黄色av网站在线免费观看 | 国产黄色电影 | 97超视频免费观看 | 91麻豆操 | 国产精品美女免费看 | 天天摸天天操天天爽 | 日韩电影一区二区三区在线观看 | 国产精品成人a免费观看 | 国产精品s色| 欧美夫妻性生活电影 | 久久久久久久久国产 | 狠狠狠狠狠操 | 亚洲aⅴ在线 | 超碰在线人人艹 | www最近高清中文国语在线观看 | 欧美性爽爽 | 国产在线观看网站 | 99视频精品| 午夜 久久 tv | 99视频在线看 | 色综合久久久久久久久五月 | 91桃色在线播放 | 亚洲码国产日韩欧美高潮在线播放 | 97超碰精品| 99热在线精品观看 | 欧美精品久久久久久久 | 中文字幕av专区 | 黄网站色欧美视频 | www国产亚洲 | 综合视频在线 | 黄色国产在线观看 | 久久久久久久亚洲精品 | 色视频国产直接看 | 国产亚洲午夜高清国产拍精品 | 日韩精品中文字幕在线观看 | 久久亚洲私人国产精品va | 在线观看国产www | 一级黄色片在线免费看 | 操操操干干干 | 最近免费观看的电影完整版 | 中文字幕4| 国产精品国产亚洲精品看不卡15 | 国产69精品久久久久9999apgf | 国产亚洲在线 | 日韩一区在线播放 | 天天综合久久综合 | 欧美专区国产专区 | 综合久久久久久久久 | 操高跟美女 | 免费在线色电影 | www免费在线观看 | 日韩欧美在线视频一区二区 | 一区二区三区日韩在线 | 久久九九久久 | av女优中文字幕在线观看 | 久久国产一区 | 国产99久久久精品视频 | 国产做a爱一级久久 | 免费三级黄色片 | 久久久久久久久久久久99 | 69av免费视频 | 夜夜爱av | 人人澡人摸人人添学生av | 亚洲午夜剧场 | 日韩精品第1页 | 91精品国产91久久久久 | 精品国产乱码一区二区三区在线 |