Browse Source

账户管理相关修改完善及角色管理部分功能

master
aBin 3 years ago
parent
commit
cd6deebdea
  1. 35
      src/api/jurisdiction.js
  2. 13
      src/views/privilegeManagement/account/index.vue
  3. 14
      src/views/privilegeManagement/role/form.vue
  4. 135
      src/views/privilegeManagement/role/index.vue
  5. 35
      src/views/privilegeManagement/role/permissions.vue

35
src/api/jurisdiction.js

@ -59,7 +59,7 @@ export function ADD_ADMIN(params) {
} }
/** /**
* 获取所有角色列表 * 账户权限管理中,获取所有角色列表
*/ */
export function GET_ROLE_ALL(params) { export function GET_ROLE_ALL(params) {
return request({ return request({
@ -68,3 +68,36 @@ export function GET_ROLE_ALL(params) {
data: params data: params
}).then(res => res.data) }).then(res => res.data)
} }
/**
* 角色权限管理中,获取所有角色列表
*/
export function GET_ROLE_LIST(params) {
return request({
url: `${role}/list`,
method: 'post',
data: params
}).then(res => res.data)
}
/**
* 添加角色
*/
export function ADD_ROLE(params) {
return request({
url: `${role}/add`,
method: 'post',
data: params
}).then(res => res.data)
}
/**
* 删除角色
*/
export function DELETE_ROLE(params) {
return request({
url: `${role}/delete`,
method: 'post',
data: params
}).then(res => res.data)
}

13
src/views/privilegeManagement/account/index.vue

@ -64,11 +64,11 @@
</el-table> </el-table>
<div class="pagination"> <div class="pagination">
<el-pagination <el-pagination
background background
:page-size="params.size" :page-size="params.pageSize"
layout="prev, pager, next" layout="prev, pager, next"
:total="count" :total="count"
@current-change="currentChange" @current-change="currentChange"
> >
</el-pagination> </el-pagination>
</div> </div>
@ -279,8 +279,7 @@
currentChange(res) { currentChange(res) {
this.params = { this.params = {
...this.params, ...this.params,
from: parseInt(res - 1) * this.params.size, pageNum: res,
size: pageSize,
}; };
this.getList() this.getList()
}, },

14
src/views/privilegeManagement/form.vue → src/views/privilegeManagement/role/form.vue

@ -1,11 +1,10 @@
<template> <template>
<div class="form-container"> <div class="form-container">
<el-form :inline="true" :model="formInline" class="demo-form-inline"> <el-form :inline="true" :model="formInline" class="demo-form-inline">
<el-form-item :label="label"> <el-form-item label="角色名称">
<el-input v-model="formInline.name" placeholder="名称搜索"></el-input> <el-input v-model="formInline.roleName" placeholder="角色名称搜索"></el-input>
</el-form-item> </el-form-item>
<el-form-item style="padding-left:30px"> <el-form-item style="padding-left:30px">
<el-button type="default" @click="resetForm1('formInline')">重置</el-button>
<el-button type="primary" @click="onSubmit">查询</el-button> <el-button type="primary" @click="onSubmit">查询</el-button>
</el-form-item> </el-form-item>
</el-form> </el-form>
@ -19,7 +18,7 @@
data() { data() {
return { return {
formInline: { formInline: {
name: '' roleName: ''
} }
} }
}, },
@ -27,13 +26,6 @@
onSubmit() { onSubmit() {
this.$emit('submit', this.formInline) this.$emit('submit', this.formInline)
}, },
resetForm1() {
this.formInline = {
name: ''
};
this.$emit('resetForm');
}
} }
} }
</script> </script>

135
src/views/privilegeManagement/role/index.vue

@ -1,6 +1,6 @@
<template> <template>
<div class="roles"> <div class="roles">
<form-container label="名称" @submit="submitForm" @resetForm="resetForm"></form-container> <form-container label="名称" @submit="submitForm"></form-container>
<div class="role"> <div class="role">
<el-row> <el-row>
<el-col :span="4" :xs="6" :md="5"> <el-col :span="4" :xs="6" :md="5">
@ -10,41 +10,39 @@
新增角色 新增角色
</el-button> </el-button>
</router-link> </router-link>
<el-table @row-click="openDetails" <el-table @row-click="openDetails" :data="lists" style="width: 100%">
:data="lists" <el-table-column label="名称">
style="width: 100%"> <template slot-scope="role">
<el-table-column <span :class="{'select':role.row.isSel}" type="text" size="small">
label="名称"> {{role.row.roleName}}
<template slot-scope="lists">
<span :class="{'select':lists.row.isSel}"
type="text"
size="small"
>
{{lists.row.name}}
</span> </span>
</template> </template>
</el-table-column> </el-table-column>
<el-table-column <el-table-column
fixed="right" fixed="right"
label="操作" label="操作"
> >
<template slot-scope="lists"> <template slot-scope="lists">
<span <span :class="{'select':lists.row.isSel}" type="text" size="small" class="option-span" @click="removeItem(lists.row.roleId)">
:class="{'select':lists.row.isSel}"
type="text"
size="small"
class="option-span"
@click="removeItem(lists.row.id)"
>
删除 删除
</span> </span>
</template> </template>
</el-table-column> </el-table-column>
</el-table> </el-table>
<div class="pagination">
<el-pagination
background
:page-size="params.pageSize"
layout="prev, pager, next"
:total="count"
@current-change="currentChange"
>
</el-pagination>
</div>
</div> </div>
</el-col> </el-col>
<el-col :span="20" :xs="18" :md="19" style="border-left: 1px solid #d9d9d9"> <el-col :span="20" :xs="18" :md="19" style="border-left: 1px solid #d9d9d9">
<Permissions :currId="id" :name="name" :permissions="permissions" @success="success"></Permissions> <Permissions :roleId="roleId" :roleName="roleName" :permissionIds="permissionIds" @success="success"></Permissions>
</el-col> </el-col>
</el-row> </el-row>
</div> </div>
@ -52,9 +50,9 @@
</template> </template>
<script> <script>
const FormContainer = () => import('../form.vue'); const FormContainer = () => import('./form.vue');
const Permissions = () => import('./permissions.vue'); const Permissions = () => import('./permissions.vue');
// import {ROLES_LIST, ROLES_DELETE} from '@/api/privilegeManagement' import { GET_ROLE_LIST, DELETE_ROLE } from '@/api/jurisdiction'
import Alert from "@/utils/alert"; import Alert from "@/utils/alert";
import {pageSize} from '../../../config'; import {pageSize} from '../../../config';
@ -66,21 +64,21 @@
}, },
data() { data() {
return { return {
id: '', roleId: '',
name: '', roleName: '',
permissions: '', permissionIds: [],
index: 0, index: 0,
params: { params: {
from: 0, roleName: '',
size: pageSize, pageNum: 1,
query: '' pageSize: 10,
}, },
lists: [] lists: [],
count: 0,
} }
}, },
mounted() { mounted() {
// this.getList() this.getList()
}, },
methods: { methods: {
@ -88,23 +86,25 @@
* 获取列表数据 * 获取列表数据
*/ */
getList() { getList() {
let idx = this.index; GET_ROLE_LIST(this.params).then(res => {
ROLES_LIST(this.params).then(res => { if(res.code === 200) {
res.map((item, index) => { this.lists = res.data.list;
item.edit = false; this.count = res.data.total - 0;
item.isSel = false; } else {
if (index === idx) { Alert.fail('查询角色列表失败,请重试')
item.isSel = true; }
}
return item
});
this.lists = res;
this.id = this.lists[idx].id;
this.permissions = this.lists[idx].permissions;
this.name = this.lists[idx].name;
}); });
}, },
//
currentChange(res) {
this.params = {
...this.params,
pageSize: res,
}
this.getList()
},
success() { success() {
this.getList() this.getList()
}, },
@ -115,35 +115,30 @@
openDetails(row) { openDetails(row) {
let lists = this.lists.map((item, index) => { let lists = this.lists.map((item, index) => {
item.isSel = false; item.isSel = false;
if (row.id == item.id) { if (row.roleId == item.roleId) {
item.isSel = true; item.isSel = true;
this.index = index; this.index = index;
} }
return item return item
}); });
this.id = row.id; this.roleId = row.roleId;
this.name = row.name; this.roleName = row.roleName;
this.permissions = row.permissions; this.permissionIds = row.permissionIds;
this.lists = lists; this.lists = lists;
}, },
removeItem(id) { removeItem(roleId) {
let params = { let params = { roleId };
id
};
this.$confirm('确定删除此角色嘛?', '提示', { this.$confirm('确定删除此角色嘛?', '提示', {
confirmButtonText: '确定', confirmButtonText: '确定',
cancelButtonText: '取消', cancelButtonText: '取消',
type: 'warning' type: 'warning'
}).then(() => { }).then(() => {
let params = { DELETE_ROLE(params).then((res) => {
id: id
};
ROLES_DELETE(params).then((res) => {
let lists = []; let lists = [];
this.lists.map((item) => { this.lists.map((item) => {
if (item.id != id) { if (item.roleId != roleId) {
lists.push(item) lists.push(item);
} }
return item; return item;
}); });
@ -151,35 +146,19 @@
}); });
Alert.success("删除成功"); Alert.success("删除成功");
this.getList() this.getList()
}).catch(() => {
}) })
}, },
/** /**
* 查询 * 查询
*/ */
submitForm(res) { submitForm(res) {
this.params = { this.params = {
...this.params, ...this.params,
query: res.name roleName: res.roleName
}; };
this.getList() this.getList()
}, },
/**
* 重置
*/
resetForm() {
this.params = {
from: 0,
size: pageSize,
query: ''
};
this.getList()
},
} }
} }
</script> </script>

35
src/views/privilegeManagement/role/permissions.vue

@ -19,16 +19,22 @@
<!-- <el-row class="rowBg" v-for="(items,index) in permissionsList"> <!-- <el-row class="rowBg" v-for="(items,index) in permissionsList">
<el-col :span="24"> <el-col :span="24">
<div class="grid-content bg-purple-dark"> <div class="grid-content bg-purple-dark">
<el-checkbox @change="handleCheckedChange(index,items.permission.checked)" <el-checkbox
v-model="items.permission.checked" @change="handleCheckedChange(index,items.permission.checked)"
:disabled="!isEdit" v-model="items.permission.checked"
:active-text="items.permission.name">{{items.permission.name}} :disabled="!isEdit"
:active-text="items.permission.name"
>
{{items.permission.name}}
</el-checkbox> </el-checkbox>
<div v-for="(item,idx) in items.subpermissions" class="child-item"> <div v-for="(item,idx) in items.subpermissions" class="child-item">
<el-checkbox @change="handleCheckedChangeChild(index,idx,item.checked)" <el-checkbox
v-model="item.checked" @change="handleCheckedChangeChild(index,idx,item.checked)"
:disabled="!isEdit || !items.permission.checked" v-model="item.checked"
:active-text="item.name">{{item.name}} :disabled="!isEdit || !items.permission.checked"
:active-text="item.name"
>
{{item.name}}
</el-checkbox> </el-checkbox>
</div> </div>
</div> </div>
@ -55,13 +61,13 @@
</el-col> </el-col>
</el-row> --> </el-row> -->
</div> </div>
<div v-show="isEdit || add" class="detail" style="border-top: 1px solid #d9d9d9"> <!-- <div v-show="isEdit || add" class="detail" style="border-top: 1px solid #d9d9d9">
<el-checkbox v-model="checkedAll" @change="handleCheckAllChange">选择全部</el-checkbox> <el-checkbox v-model="checkedAll" @change="handleCheckAllChange">选择全部</el-checkbox>
<div style="text-align: right;display: inline-block;top: 7px;"> <div style="text-align: right;display: inline-block;top: 7px;">
<el-button v-show="!add" @click="cancelEdit">取消</el-button> <el-button v-show="!add" @click="cancelEdit">取消</el-button>
<el-button type="primary" @click="confirmEdit">确认</el-button> <el-button type="primary" @click="confirmEdit">确认</el-button>
</div> </div>
</div> </div> -->
</div> </div>
</template> </template>
@ -72,7 +78,7 @@
export default { export default {
name: "permissions", name: "permissions",
props: ['currId', 'name', 'permissions'], props: ['roleId', 'roleName', 'permissionIds'],
data() { data() {
return { return {
ruleName: '', ruleName: '',
@ -108,7 +114,6 @@
{ {
permission: {name: '货道管理', value: '27'}, permission: {name: '货道管理', value: '27'},
subpermissions: [ subpermissions: [
// { name: '', value: '28' },
{name: "货道配货", value: '28'}, {name: "货道配货", value: '28'},
{name: '新建货道方案', value: '29'}, {name: '新建货道方案', value: '29'},
{name: '编辑货道方案', value: '30'}, {name: '编辑货道方案', value: '30'},
@ -186,11 +191,11 @@
}, },
watch: { watch: {
currId() { roleId() {
this.getPermissions(); this.getPermissions();
}, },
name() { roleName() {
this.ruleName = this.name this.ruleName = this.roleName
}, },
permissions() { permissions() {
} }

Loading…
Cancel
Save