直接放图,这里做的是权限控制
<table width="100%">
<tbody>
<tr v-for="(permissionTop,topIndex) in tableData" :key="topIndex">
<th style="line-height:48px;border:1px solid #1E9FFF;padding:0 10px;width: 150px;">
<el-checkbox :indeterminate="permissionTop.indeterminate"
:key="topIndex" v-model="permissionTop.mychecked"
:label="permissionTop.id"
@change="onChangeTop(topIndex, permissionTop.id, $event)">
{{permissionTop.name}}</el-checkbox>
</th>
<td style="border:1px solid #1E9FFF;padding:0 10px">
<el-checkbox-group v-model="checkedCities">
<el-checkbox
v-model="permissionSon.mychecked"
v-for="permissionSon in permissionTop.dataList" :key="permissionSon.id"
@change="onChangeSon(topIndex, permissionSon.id, permissionTop.id, $event)"
:label="permissionSon.id" >{{permissionSon.name}}</el-checkbox>
</el-checkbox-group>
</td>
</tr>
</tbody>
</table>
onChangeTop(index, topId, e) { //父级change事件
let that = this
that.tableData[index].mychecked = e //父级勾选后,子级全部勾选或者取消
if (e == false) that.tableData[index].indeterminate = false //去掉不确定状态
var childrenArray = that.tableData[index].dataList //这里注意是选取一级下的二级数据
var len = childrenArray.length;
if (that.tableData[index].mychecked == true){
// 点击全选往v-model添加选中的id
for (var i = 0; i < childrenArray.length; i++)
that.checkedCities.push(childrenArray[i].id)
}else{
//取消全选删除重复的id
that.checkedCities = that.checkedCities.filter(item => !childrenArray.some(ele=>ele.id===item));
}
},
onChangeSon(topIndex, sonId, topId, e) { //子级change事件
let that = this
var childrenArray = that.tableData[topIndex].dataList//这里注意是选取一级下的二级数据
var tickCount = 0,
unTickCount = 0,
len = childrenArray.length
console.log(childrenArray)
for (var i = 0; i < len; i++) {
if (sonId == childrenArray[i].id) childrenArray[i].mychecked = e
if (childrenArray[i].mychecked == true) tickCount++
if (childrenArray[i].mychecked == false) unTickCount++
}
if (tickCount == len) { //子级全勾选
that.tableData[topIndex].mychecked = true
that.tableData[topIndex].indeterminate = false
} else if (unTickCount == len) { //子级全不勾选
that.tableData[topIndex].mychecked = false
that.tableData[topIndex].indeterminate = false
} else {
that.tableData[topIndex].mychecked = true
that.tableData[topIndex].indeterminate = true //添加不确定状态
}
},
数据格式
{
"data":[
{
"id":1,
"name":"角色管理",
"remark":"",
"mychecked":false,
"indeterminate":false,
"dataList":[
{
"id":1,
"typeID":1,
"name":"角色查询",
"remark":"",
"mychecked":false,
"indeterminate":false
},
{
"id":2,
"typeID":1,
"name":"新增角色",
"remark":"",
"mychecked":false,
"indeterminate":false
},
{
"id":3,
"typeID":1,
"name":"删除角色",
"remark":"",
"mychecked":false,
"indeterminate":false
},
{
"id":4,
"typeID":1,
"name":"权限设置",
"remark":"",
"mychecked":false,
"indeterminate":false
},
{
"id":12,
"typeID":1,
"name":"导出",
"remark":"",
"mychecked":false,
"indeterminate":false
}
]
},
{
"id":2,
"name":"员工管理",
"remark":"",
"mychecked":false,
"indeterminate":false,
"dataList":[
{
"id":5,
"typeID":2,
"name":"员工查询",
"remark":"",
"mychecked":false,
"indeterminate":false
},
{
"id":6,
"typeID":2,
"name":"添加员工",
"remark":"",
"mychecked":false,
"indeterminate":false
},
{
"id":8,
"typeID":2,
"name":"删除员工",
"remark":"",
"mychecked":false,
"indeterminate":false
},
{
"id":9,
"typeID":2,
"name":"登录限制",
"remark":"",
"mychecked":false,
"indeterminate":false
},
{
"id":10,
"typeID":2,
"name":"修改密码",
"remark":"",
"mychecked":false,
"indeterminate":false
},
{
"id":11,
"typeID":2,
"name":"导出数据",
"remark":"",
"mychecked":false,
"indeterminate":false
},
{
"id":78,
"typeID":2,
"name":"导入员工",
"remark":"",
"mychecked":false,
"indeterminate":false
}
]
},
{
"id":3,
"name":"员工穿着",
"remark":"",
"mychecked":false,
"indeterminate":false,
"dataList":[
{
"id":13,
"typeID":3,
"name":"穿着查询",
"remark":"",
"mychecked":false,
"indeterminate":false
},
{
"id":14,
"typeID":3,
"name":"添加穿着",
"remark":"",
"mychecked":false,
"indeterminate":false
},
{
"id":16,
"typeID":3,
"name":"删除穿着",
"remark":"",
"mychecked":false,
"indeterminate":false
},
{
"id":18,
"typeID":3,
"name":"批量导入",
"remark":"",
"mychecked":false,
"indeterminate":false
},
{
"id":19,
"typeID":3,
"name":"批量导出",
"remark":"",
"mychecked":false,
"indeterminate":false
}
]
},
{
"id":4,
"name":"员工终端",
"remark":"",
"mychecked":false,
"indeterminate":false,
"dataList":[
{
"id":20,
"typeID":4,
"name":"终端查询",
"remark":"",
"mychecked":false,
"indeterminate":false
},
{
"id":21,
"typeID":4,
"name":"添加终端",
"remark":"",
"mychecked":false,
"indeterminate":false
},
{
"id":22,
"typeID":4,
"name":"删除终端",
"remark":"",
"mychecked":false,
"indeterminate":false
},
{
"id":23,
"typeID":4,
"name":"终端启用",
"remark":"",
"mychecked":false,
"indeterminate":false
},
{
"id":24,
"typeID":4,
"name":"批量导入",
"remark":"",
"mychecked":false,
"indeterminate":false
},
{
"id":25,
"typeID":4,
"name":"批量导出",
"remark":"",
"mychecked":false,
"indeterminate":false
}
]
},
{
"id":5,
"name":"员工奖惩",
"remark":"",
"mychecked":false,
"indeterminate":false,
"dataList":[
{
"id":26,
"typeID":5,
"name":"奖惩查询",
"remark":"",
"mychecked":false,
"indeterminate":false
}
]
},
{
"id":6,
"name":"排班管理",
"remark":"",
"mychecked":false,
"indeterminate":false,
"dataList":[
{
"id":27,
"typeID":6,
"name":"排班查询",
"remark":"",
"mychecked":false,
"indeterminate":false
},
{
"id":28,
"typeID":6,
"name":"添加排班",
"remark":"",
"mychecked":false,
"indeterminate":false
},
{
"id":29,
"typeID":6,
"name":"排班导出",
"remark":"",
"mychecked":false,
"indeterminate":false
},
{
"id":79,
"typeID":6,
"name":"删除排班",
"remark":"",
"mychecked":false,
"indeterminate":false
}
]
},
{
"id":7,
"name":"考勤管理",
"remark":"",
"mychecked":false,
"indeterminate":false,
"dataList":[
{
"id":30,
"typeID":7,
"name":"打卡记录",
"remark":"",
"mychecked":false,
"indeterminate":false
},
{
"id":31,
"typeID":7,
"name":"统计分析",
"remark":"",
"mychecked":false,
"indeterminate":false
},
{
"id":32,
"typeID":7,
"name":"请假记录",
"remark":"",
"mychecked":false,
"indeterminate":false
}
]
},
{
"id":8,
"name":"车辆类别",
"remark":"",
"mychecked":false,
"indeterminate":false,
"dataList":[
{
"id":33,
"typeID":8,
"name":"类别查询",
"remark":"",
"mychecked":false,
"indeterminate":false
},
{
"id":34,
"typeID":8,
"name":"添加类别",
"remark":"",
"mychecked":false,
"indeterminate":false
},
{
"id":35,
"typeID":8,
"name":"删除类别",
"remark":"",
"mychecked":false,
"indeterminate":false
},
{
"id":36,
"typeID":8,
"name":"类别启用",
"remark":"",
"mychecked":false,
"indeterminate":false
}
]
},
{
"id":9,
"name":"车辆信息",
"remark":"",
"mychecked":false,
"indeterminate":false,
"dataList":[
{
"id":37,
"typeID":9,
"name":"车辆查询",
"remark":"",
"mychecked":false,
"indeterminate":false
},
{
"id":38,
"typeID":9,
"name":"添加车辆",
"remark":"",
"mychecked":false,
"indeterminate":false
},
{
"id":39,
"typeID":9,
"name":"删除车辆",
"remark":"",
"mychecked":false,
"indeterminate":false
},
{
"id":41,
"typeID":9,
"name":"车辆导入",
"remark":"",
"mychecked":false,
"indeterminate":false
},
{
"id":42,
"typeID":9,
"name":"车辆导出",
"remark":"",
"mychecked":false,
"indeterminate":false
}
]
},
{
"id":10,
"name":"车辆异常统计",
"remark":"",
"mychecked":false,
"indeterminate":false,
"dataList":[
{
"id":43,
"typeID":10,
"name":"异常查询",
"remark":"",
"mychecked":false,
"indeterminate":false
},
{
"id":44,
"typeID":10,
"name":"删除",
"remark":"",
"mychecked":false,
"indeterminate":false
},
{
"id":45,
"typeID":10,
"name":"处理",
"remark":"",
"mychecked":false,
"indeterminate":false
}
]
},
{
"id":11,
"name":"车辆费用",
"remark":"",
"mychecked":false,
"indeterminate":false,
"dataList":[
{
"id":46,
"typeID":11,
"name":"费用分析",
"remark":"",
"mychecked":false,
"indeterminate":false
},
{
"id":47,
"typeID":11,
"name":"费用统计",
"remark":"",
"mychecked":false,
"indeterminate":false
},
{
"id":48,
"typeID":11,
"name":"分析导出",
"remark":"",
"mychecked":false,
"indeterminate":false
},
{
"id":49,
"typeID":11,
"name":"统计导出",
"remark":"",
"mychecked":false,
"indeterminate":false
}
]
},
{
"id":12,
"name":"用油管理",
"remark":"",
"mychecked":false,
"indeterminate":false,
"dataList":[
{
"id":50,
"typeID":12,
"name":"用油查询",
"remark":"",
"mychecked":false,
"indeterminate":false
},
{
"id":51,
"typeID":12,
"name":"添加用油",
"remark":"",
"mychecked":false,
"indeterminate":false
},
{
"id":52,
"typeID":12,
"name":"导入用油",
"remark":"",
"mychecked":false,
"indeterminate":false
},
{
"id":53,
"typeID":12,
"name":"导出用油",
"remark":"",
"mychecked":false,
"indeterminate":false
},
{
"id":77,
"typeID":12,
"name":"删除用油",
"remark":"",
"mychecked":false,
"indeterminate":false
}
]
},
{
"id":13,
"name":"维保管理",
"remark":"",
"mychecked":false,
"indeterminate":false,
"dataList":[
{
"id":54,
"typeID":13,
"name":"维保查询",
"remark":"",
"mychecked":false,
"indeterminate":false
},
{
"id":55,
"typeID":13,
"name":"添加维保",
"remark":"",
"mychecked":false,
"indeterminate":false
},
{
"id":56,
"typeID":13,
"name":"删除维保",
"remark":"",
"mychecked":false,
"indeterminate":false
},
{
"id":57,
"typeID":13,
"name":"导出维保",
"remark":"",
"mychecked":false,
"indeterminate":false
},
{
"id":58,
"typeID":13,
"name":"维保提醒",
"remark":"",
"mychecked":false,
"indeterminate":false
},
{
"id":59,
"typeID":13,
"name":"统计分析",
"remark":"",
"mychecked":false,
"indeterminate":false
}
]
},
{
"id":14,
"name":"保险管理",
"remark":"",
"mychecked":false,
"indeterminate":false,
"dataList":[
{
"id":60,
"typeID":14,
"name":"保险查询",
"remark":"",
"mychecked":false,
"indeterminate":false
},
{
"id":61,
"typeID":14,
"name":"添加保险",
"remark":"",
"mychecked":false,
"indeterminate":false
},
{
"id":62,
"typeID":14,
"name":"删除保险",
"remark":"",
"mychecked":false,
"indeterminate":false
},
{
"id":63,
"typeID":14,
"name":"导出保险",
"remark":"",
"mychecked":false,
"indeterminate":false
},
{
"id":64,
"typeID":14,
"name":"保险提醒",
"remark":"",
"mychecked":false,
"indeterminate":false
}
]
},
{
"id":15,
"name":"年检管理",
"remark":"",
"mychecked":false,
"indeterminate":false,
"dataList":[
{
"id":65,
"typeID":15,
"name":"年检查询",
"remark":"",
"mychecked":false,
"indeterminate":false
},
{
"id":66,
"typeID":15,
"name":"添加年检",
"remark":"",
"mychecked":false,
"indeterminate":false
},
{
"id":67,
"typeID":15,
"name":"删除年检",
"remark":"",
"mychecked":false,
"indeterminate":false
},
{
"id":68,
"typeID":15,
"name":"导入年检",
"remark":"",
"mychecked":false,
"indeterminate":false
},
{
"id":70,
"typeID":15,
"name":"导出年检",
"remark":"",
"mychecked":false,
"indeterminate":false
},
{
"id":71,
"typeID":15,
"name":"年检提醒",
"remark":"",
"mychecked":false,
"indeterminate":false
}
]
},
{
"id":16,
"name":"违规管理",
"remark":"",
"mychecked":false,
"indeterminate":false,
"dataList":[
{
"id":72,
"typeID":16,
"name":"违规查询",
"remark":"",
"mychecked":false,
"indeterminate":false
},
{
"id":73,
"typeID":16,
"name":"添加违规",
"remark":"",
"mychecked":false,
"indeterminate":false
},
{
"id":74,
"typeID":16,
"name":"删除违规",
"remark":"",
"mychecked":false,
"indeterminate":false
},
{
"id":75,
"typeID":16,
"name":"导入违规",
"remark":"",
"mychecked":false,
"indeterminate":false
},
{
"id":76,
"typeID":16,
"name":"导出违规",
"remark":"",
"mychecked":false,
"indeterminate":false
}
]
}
],
"state":10001,
"msg":"ok",
"code":0,
"count":0,
"extraParams":null
}