67 lines
1.7 KiB
Plaintext
67 lines
1.7 KiB
Plaintext
<template>
|
|
<div class="role-function-table">
|
|
<el-table ref="roleFunction" v-loading="loading" size="small" :data="list" class="table" @select="handleSelect">
|
|
<el-table-column type="selection" width="50" />
|
|
<el-table-column type="index" width="50" />
|
|
<el-table-column label="Function Name" prop="FunctionName" width="180" />
|
|
<el-table-column label="Description" prop="Note" />
|
|
</el-table>
|
|
</div>
|
|
</template>
|
|
<script>
|
|
import { getRoleFunction, updateRoleFunction } from '@/api/admin'
|
|
export default {
|
|
name: 'RoleFunction',
|
|
data() {
|
|
return {
|
|
loading: false,
|
|
list: []
|
|
}
|
|
},
|
|
methods: {
|
|
getFunctions(roleId, menuId) {
|
|
this.roleId = roleId
|
|
this.loading = true
|
|
this.list = []
|
|
getRoleFunction(roleId, menuId).then((res) => {
|
|
this.list = res.Result
|
|
this.loading = false
|
|
this.list.forEach((val) => {
|
|
this.$nextTick(() => {
|
|
this.$refs['roleFunction'].toggleRowSelection(val, val.IsSelect)
|
|
}
|
|
)
|
|
})
|
|
})
|
|
},
|
|
handleSelect(rows, row) {
|
|
const selected = rows.length && rows.indexOf(row) !== -1
|
|
const param = {
|
|
RoleId: this.roleId,
|
|
FunctionId: row.Id,
|
|
IsSelect: selected
|
|
}
|
|
updateRoleFunction(param).then((res) => {
|
|
if (res.IsSuccess) {
|
|
this.$message.success('Updated successfully')
|
|
}
|
|
})
|
|
},
|
|
resetTable() {
|
|
this.list = []
|
|
}
|
|
}
|
|
}
|
|
</script>
|
|
<style lang="scss">
|
|
.role-function-table{
|
|
thead {
|
|
.el-table-column--selection {
|
|
.cell {
|
|
display: none;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
</style>
|