亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 編程 > JavaScript > 正文

vue2.0結合Element-ui實戰案例

2019-11-19 12:01:57
字體:
來源:轉載
供稿:網友

前言

我們將會選擇使用一些 vue 周邊的庫vue-cli, vue-router,axios,moment,Element-ui搭建一個前端項目案例,后端數據接口,會使用json-server快速搭建一個本地的服務,方便對數據的增刪改查,

利用以上技術我們會搭建一個vue案例,效果展示圖:

以上就是我們最終要實現的全部效果,我會一塊一塊的講解,關于腳手架安裝和json-server搭建,在本次博客中,不會講解,如果想看的話,在小編的博客中,也有講解關于腳手架搭建和json-server搭建,如果想學習的話,可以看一下。

1.項目結構展示

左邊第一個是前端項目結構,第二個為json-server服務端

2.頁面搭建

在本次案例中,小編采用Element-ui快速搭建前端頁面,以提高效率。如果不了解的話,可以去官網看一下

2.1安裝element-ui

通過npm install element-ui -S 安裝前端ul框架,安裝完之后,并在main.js引入

import ElementUI from 'element-ui'<br>import 'element-ui/lib/theme-chalk/index.css'<br><br>Vue.use(ElementUI)

2.2頁面布局UserInfo.vue

直接通過element-ui中table布局,把整體建構頁面布局完成,

<h1>用戶信息管理界面</h1>  <el-row>    <el-col :span="20" :push='2'>      <div>        <el-form :inline="true">          <el-form-item style="float: left" label="查詢用戶信息:">            <el-input v-model="keyUser" placeholder="查詢所需要的內容......"></el-input>          </el-form-item>          <el-form-item style="float: right">            <el-button type="primary" size="small" icon="el-icon-edit-outline" @click="hanldeAdd()">添加</el-button>          </el-form-item>        </el-form>      </div>      <div class="table">        <el-table          :data="searchUserinfo(keyUser)"          border          style="width: 100%">          <el-table-column           type="index"           label="序號"           align="center"           width="60">          </el-table-column>          <el-table-column           label="日期"           align="center"           width="120">           <template slot-scope="scope">            <span>{{ scope.row.date | moment}}</span>           </template>          </el-table-column>          <el-table-column           label="姓名"           align="center"           width="100">           <template slot-scope="scope">            <span>{{ scope.row.name }}</span>           </template>          </el-table-column>          <el-table-column           label="郵箱"           align="center"           width="160">           <template slot-scope="scope">            <span>{{ scope.row.email }}</span>           </template>          </el-table-column>          <el-table-column           label="標題"           align="center"           width="160">           <template slot-scope="scope">            <span>{{ scope.row.title }}</span>           </template>          </el-table-column>          <el-table-column           label="評價"           align="center"           width="200">           <template slot-scope="scope">            <span>{{ scope.row.evaluate }}</span>           </template>          </el-table-column>          <el-table-column           label="狀態"           align="center"           width="160">           <template slot-scope="scope">            <span>{{ scope.row.state }}</span>           </template>          </el-table-column>          <el-table-column label="操作" fixed="right">           <template slot-scope="scope">            <el-button             size="mini"             @click="handleEdit(scope.$index, scope.row)">編輯</el-button>            <el-button             size="mini"             type="danger"             @click="handleDelete(scope.$index, scope.row)">刪除</el-button>           </template>          </el-table-column>         </el-table>      </div>    </el-col>  </el-row>

2.3頁面數據獲取并展示

通過axios請求本地搭建的服務數據,把得到的數據展示到頁面當中。

也是通過cnpm install axios --save安裝并在main.js中引入

import axios from 'axios'Vue.prototype.$axios = axios

我們需要在方法methods中定義一個getUserInfo方法,用于請求數據

data () {  return {    tableData: [], 用于存放數據    }  }
getUserInfo() { this.$axios.get('http://localhost:3000/data').then(res => {  this.tableData = res.data   })},

這是時候,數據是請求到了,但是頁面并為展示,這就關系到vue的生命周期。如果對vue生命周期不是很了解的話,可以官網仔細看一遍,

我們只需要在created這個生命周期鉤子中,調用我們請求數據的方法就可以把數據展示到頁面中。這樣我們就完成第一步了,頁面數據請求展示created:在模板渲染成html前調用,即通常初始化某些屬性值,然后再渲染成視圖。

3.添加數據

剛才我們已經完成第一步,把后臺的數據展示到前端頁面中,接下來我們對數據進行添加,頁面全部都是用element搭建

3.1頁面結構搭建,把AddUserInfo.vue組件當成一個子組件,在父組件中引入這個子組件,點擊添加按鈕,彈出這個添加對話框

<template> <div class="hello">  <el-dialog title="添加用戶信息" :visible.sync="dialogAdd.show">   <el-form :model="formDate" ref="formdong" label-width="100px" :rules="formrules">    <el-form-item label="日期" prop="date">      <el-date-picker       v-model="formDate.date"       type="date"       placeholder="選擇日期">      </el-date-picker>    </el-form-item>    <el-form-item label="姓名" prop="name">     <el-input v-model="formDate.name"></el-input>    </el-form-item>    <el-form-item label="郵箱" prop="email">     <el-input v-model="formDate.email"></el-input>    </el-form-item>    <el-form-item label="標題" prop="title">     <el-input v-model="formDate.title"></el-input>    </el-form-item>    <el-form-item label="評價" prop="evaluate">     <el-input v-model="formDate.evaluate"></el-input>    </el-form-item>    <el-form-item label="狀態" prop="state">     <el-input v-model="formDate.state"></el-input>    </el-form-item>   </el-form>   <div slot="footer" class="dialog-footer">    <el-button @click="dialogAdd.show = false">取 消</el-button>    <el-button type="primary" @click="dialogFormAdd('formdong')">確 定</el-button>   </div>  </el-dialog> </div></template>

3.2我們在父組件UserInfo中引入子組件AddUserInfo.vue,

<AddUser :dialogAdd="dialogAdd" @update="getUserInfo"></AddUser> //使用這個組件,import AddUser from './AddUserInfo.vue'  //引入組件  components:{  //注冊   AddUser, }

3.3通過點擊父組件的添加按鈕觸發子組件彈出框

dialogAdd是我們在父組件定義的的,需要傳遞給子組件,

<el-button type="primary" size="small" icon="el-icon-edit-outline" @click="hanldeAdd()">添加</el-button>

在data定義用于是否彈出添加彈出框,默認false不彈出,只有點擊添加按鈕的時候才彈出彈出框

dialogAdd:{    show:false   },

methods方法中

hanldeAdd(){ //添加 this.dialogAdd.show = true;  //彈出對話框 },

3.4子組件需要接受父組件傳遞的方法.并請求數據。實現添加

<script>export default { name: 'AddUser', props:{  dialogAdd:Object }, data () {  return {   formDate:{    date:'',    name:'',    email:'',    title:'',    evaluate:'',    state:''   },   formrules:{    date:[{required:true,message:"日期不能為空",trigger:"blur"}],    name:[{required:true,message:"用戶名不能為空",trigger:"blur"}],    email:[{required:true,message:"郵箱不能為空",trigger:"blur"}],   }  } }, methods:{  dialogFormAdd(formdong) {    this.$refs[formdong].validate((valid) => {     if (valid) {      this.$axios.post('http://localhost:3000/data',this.formDate).then(res => {        this.$message({          type:"success",          message:"添加信息成功"        })        this.dialogAdd.show = false;        this.$emit('update');         })      this.formDate = ""     } else {      console.log('error submit!!');      return false;     }    })  } }}</script>

this.$emit('update'); 子組件數據發生改變了,父組件視圖卻沒有更新,這時候通過子創父,this.$emit,想父組件發送子組件傳遞的方法,

<AddUser :dialogAdd="dialogAdd" @update="getUserInfo"></AddUser> @update="getUserInfo"  //接受子組件傳遞過來的方法去更新視圖 

4.實現刪除 

<el-button  size="mini"  type="danger" @click="handleDelete(scope.$index, scope.row)">刪除</el-button>

刪除數據需要根據id去刪除,使用es6模板字符串進行拼接

handleDelete(index,row) {    // 刪除用戶信息    this.$axios.delete(`http://localhost:3000/data/${row.id}`).then(res =>{      this.$message({        type:"success",        message:"刪除信息成功"      })      this.getUserInfo()  //刪除數據,更新視圖    })  },

5.實現編輯功能

在這里添加彈出框內容和編輯彈出框內容一模一樣,可以選擇進行封裝,封裝成一個組件,添加和編輯共同使用這一個組件,根據自定義一個字段來判斷點擊 的是添加還是編輯按鈕。在本次案例中,沒有封裝,如果想封裝的話,可以自己嘗試封裝組件,來提高效率。

5.1頁面搭建EditUser.vue組件,也是當做一個子組件,在父組件中去引入這個子組件,并把獲取的數據展示到頁面中。

<template> <div class="hello">  <el-dialog title="編輯用戶信息" :visible.sync="dialogEdit.show">   <el-form :model="form" ref="formEdit" label-width="100px" :rules="formrules">    <el-form-item label="日期" prop="date">      <el-date-picker       v-model="form.date"       type="date"       placeholder="選擇日期">      </el-date-picker>    </el-form-item>    <el-form-item label="姓名" prop="name">     <el-input v-model="form.name"></el-input>    </el-form-item>    <el-form-item label="郵箱" prop="email">     <el-input v-model="form.email"></el-input>    </el-form-item>    <el-form-item label="標題" prop="title">     <el-input v-model="form.title"></el-input>    </el-form-item>    <el-form-item label="評價" prop="evaluate">     <el-input v-model="form.evaluate"></el-input>    </el-form-item>    <el-form-item label="狀態" prop="state">     <el-input v-model="form.state"></el-input>    </el-form-item>   </el-form>   <div slot="footer" class="dialog-footer">    <el-button @click="dialogEdit.show = false">取 消</el-button>    <el-button type="primary" @click="dialogFormEdit('formEdit')">確 定</el-button>   </div>  </el-dialog> </div></template>

在父組件中定義好需要傳遞的數據字段

dialogAdd:{  //編輯彈出框,默認是false    show:false   },   form:{  //編輯信息    date:'',    name:'',    email:'',    title:'',    evaluate:'',    state:''   },

5.2也是在方法中點擊編輯按鈕,在編輯中,點擊拿一行,需要獲取那一行的字段數據,并把獲取的數據傳遞給子組件顯示到彈出框中,需要肯據row,來獲取每一行的數據。

<el-buttonsize="mini"@click="handleEdit(scope.$index, scope.row)">編輯</el-button> <el-button<br>handleEdit(index,row){ //編輯    this.dialogEdit.show = true; //顯示彈    this.form = {      date:row.date,      name:row.name,      email:row.email,      title:row.title,      evaluate:row.evaluate,      state:row.state,      id:row.id    }  },

當我門打印row的是,就是點擊哪一行的編輯按鈕,對應的數據就好打印出來,這時候我們只需要把得到的數據傳遞給子組件就行

5.3父組件得到的數據,子組件通過props接受,和添加數據幾乎一樣

<script>export default { name: 'HelloWorld', props:{  dialogEdit:Object,  form:Object }, data () {  return {   formrules:{    date:[{required:true,message:"日期不能為空",trigger:"blur"}],    name:[{required:true,message:"用戶名不能為空",trigger:"blur"}],    email:[{required:true,message:"郵箱不能為空",trigger:"blur"}],   }  } }, methods:{  dialogFormEdit(formEdit) {    this.$refs[formEdit].validate((valid) => {     if (valid) {      this.$axios.put(`http://localhost:3000/data/${this.form.id}`,this.form).then(res => {        this.$message({          type:"success",          message:"編輯信息成功"        })       console.log(res)        this.dialogEdit.show = false;        this.$emit('updateEdit')  //更新父組件數據視圖      })     } else {      console.log('error submit!!');      return false;     }    })  } }}</script>

6查詢數據

<el-form-item style="float: left" label="查詢用戶信息:"> <el-input v-model="keyUser" placeholder="查詢所需要的內容......"></el-input></el-form-item>

6.1需要定義一個查詢方法,通過filter對數組進行過濾,并返回一個新的數據,最后通過es6中includes方法,判斷查詢的條件是否包含,includes如果包含就返回true,如果不包含就返回false

searchUserinfo(keyUser) {    return this.tableData.filter((user) => {      if(user.name.includes(keyUser)) {        return user      }    })  }

把定義好的方法,綁定到data,因為這個方法會返回一個新的數組

7.時間格式化

寫到這個案例已經基本寫完了,還是一些細節需要修改,比如我我們添加日期,頁面顯示并不是我們想要的。我門只想要右邊的效果.

這時候推薦一個日期格式化插件moment.js,可以快速幫我們解決這個問題

7.1通過npm install moment --save下載

在main.js引入

import moment from 'moment'

我們定義一個全局過濾的filter,無論在那個組件都可以使用,主要調用moment

//獲取年份Vue.filter('moment', function (value, formatString) {  formatString = formatString || 'YYYY-MM-DD HH:mm:ss';  return moment(value).format("YYYY-MM-DD"); // value可以是普通日期 20170723});

8.全部代碼

8.1UserInfo.vue組件代碼

<template> <div class="info">  <h1>用戶信息管理界面</h1>  <el-row>    <el-col :span="20" :push='2'>      <div>        <el-form :inline="true">          <el-form-item style="float: left" label="查詢用戶信息:">            <el-input v-model="keyUser" placeholder="查詢所需要的內容......"></el-input>          </el-form-item>          <el-form-item style="float: right">            <el-button type="primary" size="small" icon="el-icon-edit-outline" @click="hanldeAdd()">添加</el-button>          </el-form-item>        </el-form>      </div>      <div class="table">        <el-table          :data="searchUserinfo(keyUser)"          border          style="width: 100%">          <el-table-column           type="index"           label="序號"           align="center"           width="60">          </el-table-column>          <el-table-column           label="日期"           align="center"           width="120">           <template slot-scope="scope">            <span>{{ scope.row.date | moment}}</span>           </template>          </el-table-column>          <el-table-column           label="姓名"           align="center"           width="100">           <template slot-scope="scope">            <span>{{ scope.row.name }}</span>           </template>          </el-table-column>          <el-table-column           label="郵箱"           align="center"           width="160">           <template slot-scope="scope">            <span>{{ scope.row.email }}</span>           </template>          </el-table-column>          <el-table-column           label="標題"           align="center"           width="160">           <template slot-scope="scope">            <span>{{ scope.row.title }}</span>           </template>          </el-table-column>          <el-table-column           label="評價"           align="center"           width="200">           <template slot-scope="scope">            <span>{{ scope.row.evaluate }}</span>           </template>          </el-table-column>          <el-table-column           label="狀態"           align="center"           width="160">           <template slot-scope="scope">            <span>{{ scope.row.state }}</span>           </template>          </el-table-column>          <el-table-column label="操作" fixed="right">           <template slot-scope="scope">            <el-button             size="mini"             @click="handleEdit(scope.$index, scope.row)">編輯</el-button>            <el-button             size="mini"             type="danger"             @click="handleDelete(scope.$index, scope.row)">刪除</el-button>           </template>          </el-table-column>         </el-table>      </div>    </el-col>  </el-row>  <AddUser :dialogAdd="dialogAdd" @update="getUserInfo"></AddUser>  <EditUser :dialogEdit="dialogEdit" :form="form" @updateEdit="getUserInfo"></EditUser> </div></template> <script>  import AddUser from './AddUser.vue'  import EditUser from './EditUser.vue'export default { name: 'info', data () {  return {   tableData:[],   dialogEdit:{    show:false,   },   dialogAdd:{    show:false   },   keyUser:"",   form:{  //編輯信息    date:'',    name:'',    email:'',    title:'',    evaluate:'',    state:''   },  } }, methods:{  getUserInfo() {    this.$axios.get('http://localhost:3000/data').then(res => {    console.log(res)      this.tableData = res.data    })  },  hanldeAdd(){ //添加    this.dialogAdd.show = true;  },  handleEdit(index,row){ //編輯    this.dialogEdit.show = true; //顯示彈    this.form = {      date:row.date,      name:row.name,      email:row.email,      title:row.title,      evaluate:row.evaluate,      state:row.state,      id:row.id    }   console.log(row)  },  handleDelete(index,row) {    // 刪除用戶信息    this.$axios.delete(`http://localhost:3000/data/${row.id}`).then(res =>{      this.$message({        type:"success",        message:"刪除信息成功"      })      this.getUserInfo()  //刪除數據,更新視圖    })  },  searchUserinfo(keyUser) {    return this.tableData.filter((user) => {      if(user.name.includes(keyUser)) {        return user      }    })  } }, created(){  this.getUserInfo() }, components:{  AddUser,  EditUser }}</script> <!-- Add "scoped" attribute to limit CSS to this component only --><style scoped>h1{  font-size: 30px;  color: #333;  text-align: center;  margin: 0 auto;  padding-bottom: 5px;  border-bottom: 2px solid #409EFF;  width: 300px}</style> 

8.2AddUserInfo.vue組件

<template> <div class="hello">  <el-dialog title="添加用戶信息" :visible.sync="dialogAdd.show">   <el-form :model="formDate" ref="formdong" label-width="100px" :rules="formrules">    <el-form-item label="日期" prop="date">      <el-date-picker       v-model="formDate.date"       type="date"       placeholder="選擇日期">      </el-date-picker>    </el-form-item>    <el-form-item label="姓名" prop="name">     <el-input v-model="formDate.name"></el-input>    </el-form-item>    <el-form-item label="郵箱" prop="email">     <el-input v-model="formDate.email"></el-input>    </el-form-item>    <el-form-item label="標題" prop="title">     <el-input v-model="formDate.title"></el-input>    </el-form-item>    <el-form-item label="評價" prop="evaluate">     <el-input v-model="formDate.evaluate"></el-input>    </el-form-item>    <el-form-item label="狀態" prop="state">     <el-input v-model="formDate.state"></el-input>    </el-form-item>   </el-form>   <div slot="footer" class="dialog-footer">    <el-button @click="dialogAdd.show = false">取 消</el-button>    <el-button type="primary" @click="dialogFormAdd('formdong')">確 定</el-button>   </div>  </el-dialog> </div></template> <script>export default { name: 'AddUser', props:{  dialogAdd:Object }, data () {  return {   formDate:{    date:'',    name:'',    email:'',    title:'',    evaluate:'',    state:''   },   formrules:{    date:[{required:true,message:"日期不能為空",trigger:"blur"}],    name:[{required:true,message:"用戶名不能為空",trigger:"blur"}],    email:[{required:true,message:"郵箱不能為空",trigger:"blur"}],   }  } }, methods:{  dialogFormAdd(formdong) {    this.$refs[formdong].validate((valid) => {     if (valid) {      this.$axios.post('http://localhost:3000/data',this.formDate).then(res => {        this.$message({          type:"success",          message:"添加信息成功"        })        this.dialogAdd.show = false;        this.$emit('update');       })      this.formDate = ""     } else {      console.log('error submit!!');      return false;     }    })  } }}</script> <!-- Add "scoped" attribute to limit CSS to this component only --><style scoped>  </style> 

8.3EditUser.vue編輯組件

<template> <div class="hello">  <el-dialog title="編輯用戶信息" :visible.sync="dialogEdit.show">   <el-form :model="form" ref="formEdit" label-width="100px" :rules="formrules">    <el-form-item label="日期" prop="date">      <el-date-picker       v-model="form.date"       type="date"       placeholder="選擇日期">      </el-date-picker>    </el-form-item>    <el-form-item label="姓名" prop="name">     <el-input v-model="form.name"></el-input>    </el-form-item>    <el-form-item label="郵箱" prop="email">     <el-input v-model="form.email"></el-input>    </el-form-item>    <el-form-item label="標題" prop="title">     <el-input v-model="form.title"></el-input>    </el-form-item>    <el-form-item label="評價" prop="evaluate">     <el-input v-model="form.evaluate"></el-input>    </el-form-item>    <el-form-item label="狀態" prop="state">     <el-input v-model="form.state"></el-input>    </el-form-item>   </el-form>   <div slot="footer" class="dialog-footer">    <el-button @click="dialogEdit.show = false">取 消</el-button>    <el-button type="primary" @click="dialogFormEdit('formEdit')">確 定</el-button>   </div>  </el-dialog> </div></template> <script>export default { name: 'HelloWorld', props:{  dialogEdit:Object,  form:Object }, data () {  return {   formrules:{    date:[{required:true,message:"日期不能為空",trigger:"blur"}],    name:[{required:true,message:"用戶名不能為空",trigger:"blur"}],    email:[{required:true,message:"郵箱不能為空",trigger:"blur"}],   }  } }, methods:{  dialogFormEdit(formEdit) {    this.$refs[formEdit].validate((valid) => {     if (valid) {      this.$axios.put(`http://localhost:3000/data/${this.form.id}`,this.form).then(res => {        this.$message({          type:"success",          message:"編輯信息成功"        })       console.log(res)        this.dialogEdit.show = false;        this.$emit('updateEdit')      })     } else {      console.log('error submit!!');      return false;     }    })  } }}</script> <!-- Add "scoped" attribute to limit CSS to this component only --><style scoped>  </style>

以上這次全部的案例deom,在過程中有些說的不是很好,請見諒,如果喜歡,請多多關注

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
欧美乱大交xxxxx| 精品自在线视频| 国产精品香蕉国产| 91精品国产高清久久久久久久久| 欧美洲成人男女午夜视频| 日韩av最新在线观看| 日韩欧美在线视频日韩欧美在线视频| 日韩中文字幕国产| 最近2019中文字幕mv免费看| 日韩小视频网址| 一区二区三区四区在线观看视频| 久久成人18免费网站| 8090理伦午夜在线电影| 国产成人avxxxxx在线看| 久热爱精品视频线路一| 国产精品18久久久久久麻辣| 亚洲色图激情小说| 日韩禁在线播放| 2020国产精品视频| 色视频www在线播放国产成人| 一本一本久久a久久精品牛牛影视| 亚洲精品国产免费| 国产成人jvid在线播放| xvideos国产精品| 日韩精品免费电影| 国产精品色婷婷视频| 欧美国产激情18| 午夜精品久久久久久久久久久久| 亚洲人成毛片在线播放| 欧美日本高清一区| 亚洲欧美在线免费观看| 亚洲天堂视频在线观看| 久热爱精品视频线路一| 国产精品视频在线播放| 亚洲第一精品自拍| 欧美视频中文字幕在线| 国产欧美婷婷中文| 一区二区三区www| 91久久夜色精品国产网站| 78m国产成人精品视频| 国内精品免费午夜毛片| 91视频-88av| 国产精品男人爽免费视频1| 精品国偷自产在线视频| 亚洲色图17p| 亚洲精品aⅴ中文字幕乱码| 国产成人欧美在线观看| 久久九九热免费视频| 亚洲国产欧美自拍| 555www成人网| 亚洲天堂第一页| 亚洲一区二区免费在线| 国模gogo一区二区大胆私拍| 日本成人激情视频| 亚洲男人天堂视频| 国产精品久久久久影院日本| 日韩中文字幕在线| 欧洲日韩成人av| 成人激情视频小说免费下载| 欧美精品videos性欧美| 色综合男人天堂| 中文字幕欧美日韩在线| 欧美日韩高清在线观看| 欧美一区二区大胆人体摄影专业网站| 日韩免费在线视频| 日韩电影免费观看在线| 国产激情视频一区| 在线看片第一页欧美| 亚洲高清一区二| 欧美精品久久久久久久免费观看| 亚洲色图第三页| 91香蕉亚洲精品| 美女撒尿一区二区三区| 日韩免费黄色av| 亚洲人成网7777777国产| 国产精品自产拍在线观| 国产成人精品久久| 日韩视频免费观看| 在线播放精品一区二区三区| 欧美乱人伦中文字幕在线| 欧美激情va永久在线播放| 都市激情亚洲色图| 秋霞成人午夜鲁丝一区二区三区| 国产视频亚洲精品| 中文字幕国产亚洲| 久久99久久99精品免观看粉嫩| www.亚洲天堂| 欧美www视频在线观看| 精品在线小视频| 国内精久久久久久久久久人| 欧美日韩美女视频| 久久这里有精品| 亚洲精品国产精品乱码不99按摩| 亚洲第一国产精品| 精品久久香蕉国产线看观看亚洲| 神马久久桃色视频| 国产精品va在线播放我和闺蜜| 亚洲国产91色在线| 欧美亚洲第一区| 国产精品v片在线观看不卡| 韩国欧美亚洲国产| 日韩精品久久久久久久玫瑰园| 日韩精品中文字幕在线播放| 欧美成人h版在线观看| 美乳少妇欧美精品| 欧美性猛交xxxx免费看| 日韩经典中文字幕在线观看| 欧美日韩国内自拍| 欧美大秀在线观看| 亚洲成人在线网| 欧美日韩国产综合视频在线观看中文| 欧美理论电影在线观看| 一本大道香蕉久在线播放29| 亚洲男女自偷自拍图片另类| 日韩精品视频三区| 日韩av中文字幕在线| 欧美激情视频在线观看| 国产精品jizz在线观看麻豆| 日韩不卡在线观看| 日韩美女福利视频| 欧美乱大交xxxxx另类电影| 欧美第一黄网免费网站| 国产精品羞羞答答| 久久99久国产精品黄毛片入口| 国内精品伊人久久| 久久久成人精品| 久久躁日日躁aaaaxxxx| 国产69精品久久久久9| 在线观看91久久久久久| 国产精品爽爽爽| 亚洲成人网久久久| 亚洲a一级视频| 欧美做爰性生交视频| 久久久免费在线观看| 宅男66日本亚洲欧美视频| 成人亚洲综合色就1024| 欧美综合一区第一页| 日本a级片电影一区二区| 成人黄色网免费| 668精品在线视频| 日韩欧美国产成人| 久久综合久久美利坚合众国| 国产中文字幕亚洲| 亚洲成**性毛茸茸| 久久久久久久影视| 日韩精品在线观看一区| 久久男人av资源网站| 亚洲理论在线a中文字幕| 久久天天躁日日躁| 久久久久女教师免费一区| 久久免费视频在线| 国产成人精品免费视频| 日韩中文字幕久久| 日日狠狠久久偷偷四色综合免费| 久久久亚洲欧洲日产国码aⅴ| 久久成人综合视频| 51视频国产精品一区二区| 亚洲国产天堂久久综合| 国产成人精品一区| 欧美性精品220| 日韩最新免费不卡| 亚洲精品乱码久久久久久按摩观| 国语自产精品视频在线看抢先版图片| 欧美自拍视频在线观看|