我使用的是element ui V1.4.3
以下圖是我要實現的效果:html
<template> <div> <el-button type="text" @click="dialogTableVisible = true">點擊顯示 Dialog</el-button> <el-dialog title="個性化菜單設置" :visible.sync="dialogTableVisible" size="tiny" > <el-form :model="form"> <el-form-item label="左側菜單欄默認狀態" > <el-select v-model="form.region" placeholder="請選擇"> <el-option label="展開" value="extendedmenus"></el-option> <el-option label="收起" value="retractmenus"></el-option> </el-select> </el-form-item> <el-form-item> <el-table :data="gridData" border height="300" > <el-table-column property="name" label="菜單名稱" ></el-table-column> <el-table-column property="menusstate" label="默認展開"> <template scope="scope"> <el-switch on-text ="是" off-text = "否" on-color="#5B7BFA" off-color="#dadde5" v-model="scope.row.menusstate" @change=change(scope.$index,scope.row) > </el-switch> </template> </el-table-column> </el-table> </el-form-item> <el-form-item> <el-button class="menusStateTrue" >肯定</el-button> <el-button>取消</el-button> </el-form-item> </el-form> </el-dialog> </div> </template> <script> export default { data() { return { dialogTableVisible: false, //是否顯示 Dialog form: { name: '', region: '', date1: '', date2: '', delivery: false, type: [], resource: '', desc: '' }, gridData:[ { name:"劃款指令", menusstate:false, }, { name:"基礎信息管理", menusstate:false, }, { name:"監管報表", menusstate:false, }, { name:"劃款指令", menusstate:false, }, { name:"基礎信息管理", menusstate:false, }, { name:"監管報表", menusstate:false, }, { name:"劃款指令", menusstate:false, }, { name:"基礎信息管理", menusstate:false, }, { name:"監管報表", menusstate:false, }, { name:"劃款指令", menusstate:false, }, { name:"基礎信息管理", menusstate:false, }, { name:"監管報表", menusstate:false, }, { name:"劃款指令", menusstate:false, }, { name:"基礎信息管理", menusstate:false, }, { name:"監管報表", menusstate:false, }, { name:"劃款指令", menusstate:false, }, { name:"基礎信息管理", menusstate:false, }, { name:"監管報表", menusstate:false, } ], } }, methods:{ change:function(index,row){ console.log(index,row); } } } </script> <style> .menusStateTrue{ background: #5B7BFA; color:white; } .menusStateTrue:hover{ background: #5B7BFA; color:white; } </style>
剛開始沒寫 template scope="scope",而後就不知道el-switch中的v-model的值該怎麼獲取,後面加上 template scope="scope", v-model="scope.row.menusstate" 就能夠達到想要的效果,關於template scope="scope"的解釋,能夠看下這篇文:
vue中的scope使用詳解vue
轉載請註明出處:https://www.cnblogs.com/fangnianqin/p/8819862.htmlpython