提交 12e84639 authored 作者: pengxiaohui's avatar pengxiaohui

接入高级设置和类型管理接口

上级 3f8ede6a
import httpRequest from '@/utils/axios'
/* ------------------------------------高级设置------------------------------------ */
/**
* 获取角色列表
*/
export function getRoleList(params) {
return httpRequest.get('/api/cms/admin/v1/roles', { params })
}
/**
* 获取权限列表
*/
export function getPermissionList(params) {
return httpRequest.get('/api/cms/admin/v1/permissions', { params })
}
/**
* 创建角色
*/
export function createRole(data) {
return httpRequest.post('/api/cms/admin/v1/role/create', data)
}
/**
* 获取角色详情
*/
export function getRoleDetails(params) {
return httpRequest.get(`/api/cms/admin/v1/role/${params.role_id}/detail`, { params })
}
/**
* 更新角色
*/
export function updateRole(data) {
return httpRequest.put(`/api/cms/admin/v1/role/${data.role_id}/update`, data)
}
/**
* 删除角色
*/
export function deleteRole(data) {
return httpRequest.delete(`/api/cms/admin/v1/role/${data.role_id}/delete`, data)
}
/* ------------------------------------员工管理------------------------------------ */
/**
* 获取员工列表
*/
export function getStaffList(params) {
return httpRequest.get('/api/cms/admin/v1/roles', { params })
}
/* ------------------------------------类型管理------------------------------------ */
/**
* 获取类型列表
*/
export function getTypeList(params) {
return httpRequest.get('/api/cms/admin/v1/types', { params })
}
/**
* 创建类型
*/
export function createType(data) {
return httpRequest.post('/api/cms/admin/v1/type/create', data)
}
/**
* 更新角色
*/
export function updateType(data) {
return httpRequest.put(`/api/cms/admin/v1/type/${data.type_id}/update`, data)
}
\ No newline at end of file
......@@ -93,7 +93,6 @@ export default {
watch: {
$route: {
handler: function(nv) {
console.log(nv)
if (nv && nv.path) this.defaultActive = nv.path
else this.defaultActive = ''
},
......
......@@ -52,7 +52,6 @@ export default {
},
async logout() {
await this.$store.dispatch('logout')
// console.log(this.$route.fullPath)
this.$router.push(this.$route.fullPath)
}
}
......
......@@ -4,7 +4,7 @@
<el-tabs v-model="activeName" type="card">
<el-tab-pane label="角色权限" name="0" lazy>
<table-list v-bind="tableOptions" ref="tabList">
<template v-slot:table-role-name="{ row }"><span class="color-blue">{{row.role_name}}</span></template>
<template v-slot:table-role-name="{ row }"><span class="color-blue">{{row.name}}</span></template>
<!-- 操作 -->
<template v-slot:table-operate="{ row }">
<el-button type="text" @click="handleEdit(row)" size="mini">编辑名称</el-button>
......@@ -45,8 +45,7 @@
</template>
<script>
import TableList from '@/components/TableList'
import { permissionList } from './permission'
import { getRoleList } from '@/api/settings.js'
import { getRoleList, getPermissionList, createRole, deleteRole, updateRole } from '@/api/settings.js'
function recursionData(arr) {
const leafArr = []
function recursion(target) {
......@@ -57,6 +56,7 @@ function recursionData(arr) {
} else if (Array.isArray(target.children)) {
list = target.children
}
list.reverse()
list.filter(item => {
if (Array.isArray(item.children) && item.children.length > 0) {
const _prop = item.tag.replace(/-/g, '_')
......@@ -88,7 +88,7 @@ export default {
params: {}
},
columns: [
{ prop: 'role_name', label: '角色名称', slots: 'table-role-name' },
{ prop: 'name', label: '角色名称', slots: 'table-role-name' },
{ prop: 'role_owner', label: '角色拥有人' },
{ prop: 'operate', label: '操作', slots: 'table-operate' }
],
......@@ -190,7 +190,7 @@ export default {
this.selectedTableItem = val
this.dialogVisible = true
this.dialogType = 'permission'
this.reviewPermission(val.permission)
this.reviewPermission(val.permission_tags)
},
reviewPermission(permissions) {
// const permissionData = []
......@@ -200,6 +200,7 @@ export default {
targetArr.push(item.tag)
}
})
this.checkAll = this.isCheckAll
},
handleCheckAllChange(val) {
if (val) {
......@@ -230,7 +231,21 @@ export default {
handleDialogSubmit() {
this.$refs.dialogForm.validate(valid => {
if (valid) {
console.log('dialogForm')
switch (this.dialogType) {
case 'create':
this.fetchCreateRole()
break
case 'delete':
this.fetchDeleteRole()
break
case 'edit':
this.fetchUpdateRole()
break
case 'permission':
this.fetchUpdateRolePermissions()
break
}
this.dialogVisible = false
} else {
return false
}
......@@ -242,15 +257,90 @@ export default {
limit: 20
}
getRoleList(params).then((res) => {
console.log(res)
if (res.code === 0 && res.data && Array.isArray(res.data.data)) {
// console.log(res.data.data)
this.tableOptions.data = res.data.data
}
})
},
fetchCreateRole() {
const data = {
name: this.form.role_name
}
createRole(data).then((res) => {
if (res.code === 0 && res.message === 'SUCCESS') {
this.fetchRoleList()
this.$message.success('创建角色成功')
} else {
this.$message.error('创建角色失败')
}
})
},
fetchUpdateRole() {
const data = {
role_id: this.selectedTableItem.id,
name: this.form.role_name
}
updateRole(data).then((res) => {
if (res.code === 0 && res.data && res.data.status) {
this.fetchRoleList()
this.$message.success('编辑角色名称成功')
} else {
this.$message.error('编辑角色名称失败')
}
})
},
fetchPermissionList() {
const result = permissionList
fetchDeleteRole() {
const data = {
role_id: this.selectedTableItem.id
}
deleteRole(data).then((res) => {
if (res.code === 0 && res.data && res.data.status) {
this.fetchRoleList()
this.$message.success('删除角色成功')
} else {
this.$message.error('删除角色失败')
}
})
},
fetchUpdateRolePermissions() {
const permissionArr = []
Object.keys(this.form).forEach(key => {
const item = this.form[key]
if (Array.isArray(item)) {
item.forEach((it) => {
permissionArr.push(it)
})
}
})
const data = {
role_id: this.selectedTableItem.id,
permission_tags: permissionArr
}
updateRole(data).then((res) => {
if (res.code === 0 && res.data && res.data.status) {
this.fetchRoleList()
this.$message.success('权限配置成功')
} else {
this.$message.error('权限配置失败')
}
})
},
async fetchPermissionList() {
const result = await new Promise((resolve, reject) => {
getPermissionList().then((res) => {
if (res.code === 0 && Array.isArray(res.data)) {
resolve(res.data)
} else reject()
}).catch(() => {
reject()
})
})
if (result) {
const leafNodeList = recursionData(result)
this.permissionLeafCount = leafNodeList.length
this.permissionLeafList = leafNodeList
console.log(leafNodeList)
// console.log(leafNodeList)
result.forEach(item => {
item.children.forEach(subItem => {
const key = subItem.v_model_key
......@@ -261,6 +351,7 @@ export default {
this.assignForm()
}
}
}
}
</script>
<style scoped>
......
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论