精品欧美一区二区三区在线观看 _久久久久国色av免费观看性色_国产精品久久在线观看_亚洲第一综合网站_91精品又粗又猛又爽_小泽玛利亚一区二区免费_91亚洲精品国偷拍自产在线观看 _久久精品视频在线播放_美女精品久久久_欧美日韩国产成人在线

手把手教你實(shí)現(xiàn)一個(gè)Vue無(wú)限級(jí)聯(lián)樹形表格(增刪改)

開發(fā) 前端
實(shí)現(xiàn)一個(gè)無(wú)限級(jí)聯(lián)樹形表格,什么叫做無(wú)限級(jí)聯(lián)樹形表格呢?就是下圖所展示的內(nèi)容,有一個(gè)祖元素,然后下面可能有很多子孫元素,你可以實(shí)現(xiàn)添加、編輯、刪除這樣幾個(gè)功能。

[[355275]]

本文轉(zhuǎn)載自微信公眾號(hào)「 前端歷劫之路」,作者maomin9761。轉(zhuǎn)載本文請(qǐng)聯(lián)系 前端歷劫之路公眾號(hào)。

前言

平時(shí)我們可能在做項(xiàng)目時(shí),會(huì)遇到一個(gè)業(yè)務(wù)邏輯。實(shí)現(xiàn)一個(gè)無(wú)限級(jí)聯(lián)樹形表格,什么叫做無(wú)限級(jí)聯(lián)樹形表格呢?就是下圖所展示的內(nèi)容,有一個(gè)祖元素,然后下面可能有很多子孫元素,你可以實(shí)現(xiàn)添加、編輯、刪除這樣幾個(gè)功能。

資源

  • JavaScript框架:vue.js
  • UI框架:Element UI

源碼

這里需要重點(diǎn)說(shuō)明的是,主要使用了遞歸的算法以及給數(shù)據(jù)標(biāo)識(shí)的重要性。詳細(xì)說(shuō)明可以在源碼中查看注釋,也可以通過(guò)刪改代碼融會(huì)貫通。

  1. <template> 
  2.     <div class="container"
  3.         <div class="btn-r"
  4.             <el-button 
  5.                 type="primary" 
  6.                 size="small" 
  7.                 @click="addView = true" 
  8.                 icon="el-icon-circle-plus-outline" 
  9.                 class="add" 
  10.                 >添加</el-button 
  11.             > 
  12.         </div> 
  13.         <el-table 
  14.             :data="tableData" 
  15.             style="width: 100%; margin-bottom: 20px" 
  16.             row-key="value" 
  17.             border 
  18.             default-expand-all 
  19.             size="medium" 
  20.             :tree-props="{ children: 'children', hasChildren: 'hasChildren' }" 
  21.         > 
  22.             <el-table-column prop="label" label="名稱" sortable> 
  23.             </el-table-column
  24.             <el-table-column label="操作" align="center" width="180"
  25.                 <template slot-scope="scope"
  26.                     <el-button 
  27.                         type="text" 
  28.                         size="small" 
  29.                         @click="handleClick(scope.row, scope.$index)" 
  30.                         >編輯</el-button 
  31.                     > 
  32.                     <el-button 
  33.                         type="text" 
  34.                         size="small" 
  35.                         @click="deleteClick(scope.row, scope.$index)" 
  36.                         >刪除</el-button 
  37.                     > 
  38.                 </template> 
  39.             </el-table-column
  40.         </el-table
  41.  
  42.         <!-- 添加窗口 --> 
  43.         <el-dialog 
  44.             title="添加" 
  45.             :visible.sync="addView" 
  46.             :close-on-click-modal="false" 
  47.             width="30%" 
  48.             @close="closeView" 
  49.         > 
  50.             <el-form :model="form" ref="form" :rules="rules"
  51.                 <el-form-item 
  52.                     label="位置" 
  53.                     :label-width="formLabelWidth" 
  54.                     prop="location" 
  55.                 > 
  56.                     <el-select 
  57.                         v-model="form.location" 
  58.                         placeholder="請(qǐng)選擇位置" 
  59.                         @change="locationChange" 
  60.                         size="small" 
  61.                     > 
  62.                         <el-option 
  63.                             v-for="item in locationData" 
  64.                             :key="item.id" 
  65.                             :label="item.name" 
  66.                             :value="item.id" 
  67.                         /> 
  68.                     </el-select
  69.                 </el-form-item> 
  70.                 <el-form-item 
  71.                     v-if="sonStatus" 
  72.                     label="子位置" 
  73.                     :label-width="formLabelWidth" 
  74.                     prop="childArr" 
  75.                 > 
  76.                     <el-cascader 
  77.                         size="small" 
  78.                         :key="isResouceShow" 
  79.                         v-model="form.childArr" 
  80.                         placeholder="請(qǐng)選擇子位置" 
  81.                         :label="'name'" 
  82.                         :value="'id'" 
  83.                         :options="tableData" 
  84.                         :props="{ checkStrictly: true }" 
  85.                         clearable 
  86.                         @change="getCasVal" 
  87.                     ></el-cascader> 
  88.                 </el-form-item> 
  89.                 <el-form-item 
  90.                     label="名稱" 
  91.                     :label-width="formLabelWidth" 
  92.                     prop="label" 
  93.                 > 
  94.                     <el-input 
  95.                         v-model="form.label" 
  96.                         size="small" 
  97.                         autocomplete="off" 
  98.                         placeholder="請(qǐng)輸入名稱" 
  99.                     ></el-input> 
  100.                 </el-form-item> 
  101.             </el-form> 
  102.             <span slot="footer" class="dialog-footer"
  103.                 <el-button @click="addView = false" size="small" 
  104.                     >取 消</el-button 
  105.                 > 
  106.                 <el-button type="primary" @click="okAdd('form')" size="small" 
  107.                     >確 定</el-button 
  108.                 > 
  109.             </span> 
  110.         </el-dialog> 
  111.  
  112.         <!-- 編輯窗口 --> 
  113.         <el-dialog 
  114.             title="編輯" 
  115.             :visible.sync="editView" 
  116.             :close-on-click-modal="false" 
  117.             width="30%" 
  118.         > 
  119.             <el-form :model="data" ref="data" :rules="rules"
  120.                 <el-form-item 
  121.                     label="位置" 
  122.                     :label-width="formLabelWidth" 
  123.                     prop="location" 
  124.                 > 
  125.                     <el-select 
  126.                         v-model="data.location" 
  127.                         placeholder="請(qǐng)選擇位置" 
  128.                         size="small" 
  129.                         @change="locationChange" 
  130.                     > 
  131.                         <el-option 
  132.                             v-for="item in locationData" 
  133.                             :key="item.id" 
  134.                             :label="item.name" 
  135.                             :value="item.id" 
  136.                         /> 
  137.                     </el-select
  138.                 </el-form-item> 
  139.                 <el-form-item 
  140.                     v-if="sonStatus" 
  141.                     label="子位置" 
  142.                     :label-width="formLabelWidth" 
  143.                     prop="childArr" 
  144.                 > 
  145.                     <el-cascader 
  146.                         :key="isResouceShow" 
  147.                         v-model="data.childArr" 
  148.                         placeholder="請(qǐng)選擇子位置" 
  149.                         size="small" 
  150.                         :label="'name'" 
  151.                         :value="'id'" 
  152.                         :options="tableData" 
  153.                         :props="{ checkStrictly: true }" 
  154.                         clearable 
  155.                         @change="getCasVal" 
  156.                     ></el-cascader> 
  157.                 </el-form-item> 
  158.                 <el-form-item 
  159.                     label="名稱" 
  160.                     :label-width="formLabelWidth" 
  161.                     prop="label" 
  162.                 > 
  163.                     <el-input 
  164.                         v-model="data.label" 
  165.                         autocomplete="off" 
  166.                         placeholder="請(qǐng)輸入名稱" 
  167.                         size="small" 
  168.                     ></el-input> 
  169.                 </el-form-item> 
  170.             </el-form> 
  171.             <span slot="footer" class="dialog-footer"
  172.                 <el-button @click="editView = false" size="small" 
  173.                     >取 消</el-button 
  174.                 > 
  175.                 <el-button type="primary" @click="okEdit('data')" size="small" 
  176.                     >確 定</el-button 
  177.                 > 
  178.             </span> 
  179.         </el-dialog> 
  180.     </div> 
  181. </template> 
  182.  
  183. <script> 
  184. export default { 
  185.     name'Tag'
  186.     data() { 
  187.         return { 
  188.             location: ''
  189.             isResouceShow: 1, 
  190.             addView: false
  191.             sonStatus: false
  192.             editView: false
  193.             casArr: [], 
  194.             childArr: [], 
  195.             form: {}, 
  196.             data: {}, 
  197.             idx: ''
  198.             childkey: [], 
  199.             formLabelWidth: '80px'
  200.             rules: { 
  201.                 label: [ 
  202.                     { required: true, message: '請(qǐng)輸入名稱'trigger'blur' } 
  203.                 ] 
  204.             }, 
  205.             locationData: [ 
  206.                 { 
  207.                     id: 1, 
  208.                     name'頂' 
  209.                 }, 
  210.                 { 
  211.                     id: 2, 
  212.                     name'子' 
  213.                 } 
  214.             ], 
  215.             tableData: [] 
  216.         }; 
  217.     }, 
  218.     methods: { 
  219.         // 監(jiān)聽關(guān)閉窗口 
  220.         closeView() { 
  221.             this.$refs['form'].resetFields(); // 關(guān)閉窗口,清空填寫的內(nèi)容 
  222.         }, 
  223.         // 打開編輯 
  224.         handleClick(item, index) { 
  225.             item.value.length != 1 
  226.                 ? (this.sonStatus = true
  227.                 : (this.sonStatus = false); 
  228.             this.editView = true
  229.             const obj = Object.assign({}, item); 
  230.             this.childkey = item.childkey; 
  231.             this.casArr = item.childArr; 
  232.             this.idx = index
  233.             this.data = obj; 
  234.         }, 
  235.         // 遞歸表格數(shù)據(jù)(編輯) 
  236.         findSd(arr, i, casArr) { 
  237.             if (i == casArr.length - 1) { 
  238.                 let index = casArr[i].substr(casArr[i].length - 1, 1); 
  239.                 return arr.splice(index, 1, this.data); 
  240.             } else { 
  241.                 return this.findSd( 
  242.                     arr[casArr[i].substr(casArr[i].length - 1, 1)].children, 
  243.                     (i += 1), 
  244.                     casArr 
  245.                 ); 
  246.             } 
  247.         }, 
  248.         // 確定編輯 
  249.         okEdit(data) { 
  250.             this.$refs[data].validate(valid => { 
  251.                 if (valid) { 
  252.                     if (this.data.value.length == 1) { 
  253.                         this.tableData.splice(this.idx, 1, this.data); 
  254.                         this.$message({ 
  255.                             type: 'success'
  256.                             message: '編輯成功' 
  257.                         }); 
  258.                         this.editView = false
  259.                     } else { 
  260.                         this.findSd(this.tableData, 0, this.childkey); 
  261.                         this.$message({ 
  262.                             type: 'success'
  263.                             message: '編輯成功' 
  264.                         }); 
  265.                         this.editView = false
  266.                     } 
  267.                 } else { 
  268.                     return false
  269.                 } 
  270.             }); 
  271.         }, 
  272.         // 遞歸表格數(shù)據(jù)(刪除) 
  273.         findDel(arr, i, item) { 
  274.             let casArr = item.childkey; 
  275.             if (i == casArr.length - 1) { 
  276.                 let index = casArr[i].substr(casArr[i].length - 1, 1); 
  277.                 return arr.splice(index, 1); 
  278.             } else { 
  279.                 return this.findDel( 
  280.                     arr[casArr[i].substr(casArr[i].length - 1, 1)].children, 
  281.                     (i += 1), 
  282.                     item 
  283.                 ); 
  284.             } 
  285.         }, 
  286.         // 刪除 
  287.         deleteClick(item) { 
  288.             this.$confirm(`此操作將刪除該項(xiàng), 是否繼續(xù)?`, '提示', { 
  289.                 confirmButtonText: '確定'
  290.                 cancelButtonText: '取消'
  291.                 type: 'warning' 
  292.             }) 
  293.                 .then(() => { 
  294.                     if (item.children.length != 0) { 
  295.                         this.$message.warning({ 
  296.                             message: '請(qǐng)刪除子節(jié)點(diǎn)'
  297.                             duration: 1000 
  298.                         }); 
  299.                     } else { 
  300.                         this.casArr = item.childArr; 
  301.                         ++this.isResouceShow; // 給級(jí)聯(lián)控件綁定一個(gè)key,防止報(bào)錯(cuò)。 
  302.                         if (item.value.length == 1) { // 刪除的是頂節(jié)點(diǎn) 
  303.                             console.log(1); 
  304.                             this.tableData.splice(item.value, 1); 
  305.                             this.$message({ 
  306.                                 type: 'success'
  307.                                 message: '刪除成功' 
  308.                             }); 
  309.                         } else { // 刪除的是子節(jié)點(diǎn) 
  310.                             console.log(2); 
  311.                             this.findDel(this.tableData, 0, item); 
  312.                             this.$message({ 
  313.                                 type: 'success'
  314.                                 message: '刪除成功' 
  315.                             }); 
  316.                         } 
  317.                     } 
  318.                 }) 
  319.                 .catch(err => { 
  320.                     console.log(err); 
  321.                     this.$message({ 
  322.                         type: 'info'
  323.                         message: '已取消刪除' 
  324.                     }); 
  325.                 }); 
  326.         }, 
  327.         // 是否顯示次位置 
  328.         locationChange(v) { 
  329.             if (v == 2) { 
  330.                 this.sonStatus = true
  331.             } else { 
  332.                 this.sonStatus = false
  333.             } 
  334.         }, 
  335.         // 獲取次位置 
  336.         getCasVal(v) { 
  337.             this.casArr = v; 
  338.             this.form.childArr = v; 
  339.         }, 
  340.         // 遞歸表格數(shù)據(jù)(添加) 
  341.         find(arr, i) { 
  342.             if (i == this.casArr.length - 1) { 
  343.                 return arr[this.casArr[i].substr(this.casArr[i].length - 1, 1)] 
  344.                     .children; 
  345.             } else { 
  346.                 return this.find( 
  347.                     arr[this.casArr[i].substr(this.casArr[i].length - 1, 1)] 
  348.                         .children, 
  349.                     (i += 1) 
  350.                 ); 
  351.             } 
  352.         }, 
  353.         // 確定添加 
  354.         okAdd(form) { 
  355.             this.$refs[form].validate(valid => { 
  356.                 if (valid) { 
  357.                     if (this.sonStatus == false) { 
  358.                         this.form.value = String(this.tableData.length); 
  359.                         const obj = Object.assign({}, this.form); 
  360.                         obj.children = []; 
  361.                         obj.childArr = []; 
  362.                         this.tableData.push(obj); 
  363.                         this.$message({ 
  364.                             type: 'success'
  365.                             message: '添加成功' 
  366.                         }); 
  367.                         this.addView = false
  368.                     } else { 
  369.                         let arr = this.find(this.tableData, 0); 
  370.                         this.childArr = [...this.casArr, String(arr.length)]; 
  371.                         this.form.value = 
  372.                             String(this.casArr[this.casArr.length - 1]) + 
  373.                             String(arr.length); 
  374.                         delete this.form.children; 
  375.                         const obj = Object.assign({}, this.form); 
  376.                         obj.children = []; 
  377.                         obj.childkey = [...this.casArr, String(arr.length)]; 
  378.                         arr.push(obj); 
  379.                         this.$message({ 
  380.                             type: 'success'
  381.                             message: '添加成功' 
  382.                         }); 
  383.                         this.addView = false
  384.                     } 
  385.                 } else { 
  386.                     return false
  387.                 } 
  388.             }); 
  389.         } 
  390.     } 
  391. }; 
  392. </script> 
  393.  
  394. <style lang="scss" scoped> 
  395. ::v-deep .el-form-item__content { 
  396.     width: 203px; 
  397. </style>

 

責(zé)任編輯:武曉燕 來(lái)源: 前端歷劫之路
相關(guān)推薦

2022-06-28 15:29:56

Python編程語(yǔ)言計(jì)時(shí)器

2020-12-15 08:58:07

Vue編輯器vue-cli

2022-09-22 12:38:46

antd form組件代碼

2021-06-22 10:43:03

Webpack loader plugin

2023-04-26 12:46:43

DockerSpringKubernetes

2019-08-26 09:25:23

RedisJavaLinux

2009-11-09 14:57:37

WCF上傳文件

2011-01-06 10:39:25

.NET程序打包

2021-11-10 11:40:42

數(shù)據(jù)加解密算法

2021-07-14 09:00:00

JavaFX開發(fā)應(yīng)用

2011-05-03 15:59:00

黑盒打印機(jī)

2011-01-10 14:41:26

2025-05-07 00:31:30

2022-08-26 08:01:38

DashWebJavaScrip

2016-11-01 09:46:04

2011-04-21 10:32:44

MySQL雙機(jī)同步

2021-03-12 10:01:24

JavaScript 前端表單驗(yàn)證

2020-05-15 08:07:33

JWT登錄單點(diǎn)

2022-03-29 18:26:31

優(yōu)化表格數(shù)據(jù)

2023-03-22 09:00:38

點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)

久色视频在线播放| 欧美专区在线播放| 97精品人人妻人人| 中文在线аv在线| 国产午夜亚洲精品午夜鲁丝片| 国产精品女人久久久久久| 免费观看特级毛片| 91综合精品国产丝袜长腿久久| 大桥未久av一区二区三区| 日本一区视频在线播放| 99久久久久久久| 亚洲欧美日韩专区| 毛片精品免费在线观看| 老司机福利av| 天堂久久av| 欧美伊人久久久久久久久影院 | 色噜噜狠狠一区二区三区狼国成人| 影音先锋在线视频| 国产午夜精品在线观看| 成人av中文| 在线观看日韩一区二区| 国产精品日韩久久久| 久久精品一偷一偷国产| 国产国语性生话播放| 免费看日产一区二区三区 | 国产片高清在线观看| 久久成人精品| 欧美极品少妇全裸体| 久久久久99精品成人| 欧美大片网址| 欧美大片顶级少妇| 蜜桃免费在线视频| 在线女人免费视频| 午夜亚洲福利老司机| 51xx午夜影福利| 亚乱亚乱亚洲乱妇| 不卡一区在线观看| av电影成人| 国产欧美日韩成人| 久久精品国产999大香线蕉| 欧美在线免费视频| 97人人澡人人爽人人模亚洲| 欧美日韩亚洲一区在线观看| 久久精品国产一区二区电影| 影音先锋男人在线| 国产欧美高清视频在线| 亚洲欧美日韩综合| 国产熟妇搡bbbb搡bbbb| 国产欧美一区二区三区米奇| 日韩色图在线观看| 精品久久久久成人码免费动漫| 一本久道综合久久精品| 久久久久久久久久久人体| 亚洲视频重口味| 99精品电影| 色婷婷综合久久久久中文字幕1| 亚洲av成人无码久久精品| 一本久久青青| 亚洲网址你懂得| 永久免费av无码网站性色av| 欧美一区二区三区激情视频| 亚洲一级黄色片| 精品人体无码一区二区三区| 久久亚洲国产| 久久夜精品香蕉| 久久精品视频免费在线观看| 欧美日韩亚洲一区三区| 久久久久女教师免费一区| 久久人人爽人人爽人人| 日韩视频中文| 日本视频久久久| 国产精品国产精品国产| 九九**精品视频免费播放| 国产综合久久久久久| av中文字幕免费在线观看| 国产成人福利片| 国产自产精品| 极品美乳网红视频免费在线观看 | 在线视频 日韩| 日韩啪啪网站| 在线电影中文日韩| 亚洲天堂黄色片| 欧美日韩亚洲国产精品| 午夜精品久久久久久久男人的天堂| 日本熟妇色xxxxx日本免费看| 日韩视频免费| 国产精品一区av| 国产99久一区二区三区a片 | 欧美精品一卡两卡| 日本一级大毛片a一| 日本天堂一区| 日韩性生活视频| 免费av一区二区| 日本wwwxx| 成人盗摄视频| 亚洲精品一区二三区不卡| 日本黄色激情视频| 在线欧美不卡| 国产精品久久久久久久久免费看| 精品毛片在线观看| 久久久久久久久岛国免费| 国产奶头好大揉着好爽视频| a级片在线免费观看| 日本道免费精品一区二区三区| 国产精品嫩草影院8vv8| 久久夜色精品国产噜噜av小说| 在线观看日韩av| 欧美成人aaaaⅴ片在线看| 日韩成人精品在线观看| 国产精品亚洲不卡a| av免费在线一区二区三区| 一区二区三区在线免费观看| 激情综合网婷婷| 51精品国产| 中文字幕视频在线免费欧美日韩综合在线看 | 少妇又紧又色又爽又刺激视频| 成人网页在线观看| 亚洲精品二区| 一个人看的www视频在线免费观看| 欧美丰满美乳xxx高潮www| 国产免费看av| 精品动漫3d一区二区三区免费| 国产精品视频一| 久久手机免费观看| 亚洲国产精品久久艾草纯爱| 91小视频在线播放| 精品产国自在拍| 性色av香蕉一区二区| 国产精品探花视频| 国产精品欧美极品| 97在线播放视频| 久久久久观看| 久久久久国产视频| a级片在线免费看| 国产精品乱码一区二三区小蝌蚪| 无码aⅴ精品一区二区三区浪潮| 欧美日韩中出| 日韩中文字幕网站| 96亚洲精品久久久蜜桃| 国产视频在线观看一区二区三区| 成人毛片一区二区| 国产精品qvod| 久久久免费精品| 免费观看a视频| 亚洲一区视频在线| 久久久久国产免费| 欧美午夜在线视频| 成人欧美一区二区三区在线观看 | 特级丰满少妇一级| 欧美偷拍自拍| 国产精品视频999| 9i精品一二三区| 欧美日韩在线一区二区| 国产三级av在线播放| 久久久久久婷| 日韩精品伦理第一区| 精品成人免费一区二区在线播放| 亚洲性xxxx| 国产精品传媒在线观看| 久久日一线二线三线suv| 999香蕉视频| 欧美日韩精品一区二区视频| 国产精品视频色| 国产淫片在线观看| 日韩视频免费观看高清在线视频| 免费中文字幕在线| 成人的网站免费观看| 成 年 人 黄 色 大 片大 全| 神马午夜久久| 国产精品com| 亚洲乱妇老熟女爽到高潮的片| 免费在线观看黄色| 欧美日韩国产综合久久| 亚洲怡红院在线观看| 国产一区在线观看视频| 丝袜人妻一区二区三区| 色综合久久中文| 国产精品视频久久久久| a视频在线观看| 亚洲国产精品久久久久秋霞不卡| 日韩视频在线观看一区| 中文字幕乱码久久午夜不卡| 日韩va在线观看| 精品白丝av| 日韩电影大全在线观看| 人人爱人人干婷婷丁香亚洲| 98精品国产高清在线xxxx天堂| 九一在线视频| 日韩无一区二区| 天天操天天摸天天干| 国产精品欧美久久久久无广告 | 高清久久一区| 88xx成人精品| 麻豆tv免费在线观看| 亚洲国产精品久久久久秋霞蜜臀 | 激情丁香综合五月| 欧美一级视频在线播放| 欧美艳星介绍134位艳星| 国产精品加勒比| 国产91亚洲精品久久久| 高清一区二区三区四区五区| 成年网站在线| 亚洲精品国产拍免费91在线| 97人妻一区二区精品免费视频| 99re成人在线| 欧美高清视频在线| 偷拍自拍在线| 51精品国自产在线| 伊人中文字幕在线观看| 一区二区三区毛片| 亚洲人成电影在线观看天堂色| 日韩三级av在线| 一区二区中文字幕在线| 蜜桃传媒一区二区亚洲av| 国产高清视频一区| 精品少妇无遮挡毛片| 亚洲视频久久| a级黄色片网站| 精品国产一区二区三区| 韩国成人一区| 麻豆国产一区| 国产精品中文字幕久久久| 三级在线观看视频| 欧美精品videosex极品1| 免费在线观看av| 一本色道久久88亚洲综合88| 日韩一级在线播放| 日韩午夜精品视频| 亚洲综合网av| 欧洲一区二区三区免费视频| 97超碰人人干| 亚洲图片有声小说| 国产精品免费人成网站酒店| 国产性做久久久久久| 欧美成人三级伦在线观看| 成人高清视频免费观看| 绯色av蜜臀vs少妇| 国产精品综合在线视频| 91 视频免费观看| 精品一区二区av| 97超碰人人爽| 久久精品国产99久久6| 中文字幕第17页| 六月婷婷色综合| 91高清国产视频| 麻豆中文一区二区| www.99av.com| 毛片av一区二区三区| 岛国毛片在线播放| 精品综合免费视频观看| 国产一级片自拍| 久久99国产精品久久| 看看黄色一级片| 韩国成人福利片在线播放| 天天综合天天添夜夜添狠狠添| 久久成人18免费观看| 欧美日韩理论片| 国产麻豆视频一区二区| 成人日韩在线视频| 国产一区二区精品久久| 色哟哟网站在线观看| 成人性生交大片免费看中文| 亚洲天堂av网站| 91欧美激情一区二区三区成人| aa片在线观看视频在线播放| 91麻豆产精品久久久久久| 亚洲av无码一区二区三区人| 久久av资源网| 欧美系列日韩一区| 日韩av电影中文字幕| 一区二区三区久久久久| 久久久影视传媒| 欧美日韩国产一二三区| 亚洲va久久| 不卡日韩av| 美女精品一区最新中文字幕一区二区三区 | 亚洲综合在线电影| 国产精品网站入口| 色悠久久久久综合先锋影音下载 | 欧美偷拍自拍| 强开小嫩苞一区二区三区网站| 欧美日韩亚洲一区二区三区在线| 俄罗斯av网站| 看片网站欧美日韩| 中文字幕无人区二| 久久这里只有精品首页| 中文字幕精品亚洲| 亚洲一区二区三区国产| 丰满少妇xoxoxo视频| 欧美电影一区二区| 天天射,天天干| 丝袜情趣国产精品| www欧美xxxx| 国产精品久久久久免费a∨大胸 | 蜜桃av噜噜一区| 女教师高潮黄又色视频| 久久久久久久久99精品| 青青草手机视频在线观看| 色综合色综合色综合| 99热这里只有精| 亚洲午夜精品视频| 在线观看操人| 国产精品免费观看在线| 北条麻妃一区二区三区在线观看| 日本电影一区二区三区| 欧美激情综合色综合啪啪| 青青在线视频观看| 国产成人午夜精品5599| 欧美性受xxxx黑人| 黄色一区二区在线| 国产视频手机在线观看| 亚洲视频在线免费观看| 超碰激情在线| 91久久爱成人| 日韩在线中文| 男人操女人免费| av在线不卡观看免费观看| 日韩福利小视频| 欧美在线free| 欧美美乳在线| 亚州成人av在线| 日韩一区网站| 超碰在线免费观看97| 日本在线不卡视频| 黄色国产在线观看| 亚洲一区二区三区四区的| 国产成人av免费看| www日韩中文字幕在线看| 精品国模一区二区三区| 蜜桃网站成人| 一区二区三区高清视频在线观看| 爱情岛论坛亚洲自拍| 成人免费视频在线观看| 丰满人妻一区二区三区四区| 精品亚洲男同gayvideo网站| 97蜜桃久久| 国产精品免费一区二区三区| 午夜国产精品视频| 原创真实夫妻啪啪av| 亚洲色欲色欲www在线观看| 夜夜躁狠狠躁日日躁av| 在线观看国产欧美| 国产欧美自拍| 在线综合视频网站| 麻豆91小视频| 小泽玛利亚一区二区免费| 欧美放荡的少妇| 国产黄色在线观看| 亚洲综合中文字幕在线| 欧美国产高清| 一二三区视频在线观看| 亚洲一区二区三区四区在线观看| 亚洲乱码在线观看| 国产做受69高潮| 欧美调教在线| 99久久久无码国产精品6| 久久久不卡影院| 岛国av中文字幕| 中文字幕日韩欧美在线| 亚洲欧美综合久久久久久v动漫| 9999在线观看| 国产成人在线网站| 日韩精品乱码久久久久久| 亚洲国产精品电影| 亚洲第一av| 欧美一区二区高清在线观看| 七七婷婷婷婷精品国产| 青青操在线视频观看| 欧美一区二区日韩一区二区| 成人av影院在线观看| 欧美整片在线观看| 波多野结衣家庭教师在线观看| 超碰97成人| 日韩av一区二区在线| 国产又黄又粗又猛又爽的视频| 美女福利一区| 中文字幕国产精品久久| 国产67194| 国产精品久久久亚洲一区| 国产啪精品视频| 性xxxxbbbb| 亚洲成人手机在线| 欧美精品一区二区性色a+v| 免费看a在线观看| 国产精品偷伦免费视频观看的| 在线电影一区二区| 中文文字幕文字幕高清| 欧美色视频在线观看| 黄色小说在线播放| 日本高清一区| 国产麻豆视频一区二区| 在线视频一区二区三区四区| 久久精品亚洲精品| 色综合久久中文| 中文字幕在线视频一区二区| 欧美日韩一区二区在线播放| 国产淫片在线观看| 欧洲在线视频一区| 国产成人精品影院| 黄色一区二区视频|