刘翔宇-旅管家 3 years ago
parent 6faaf9d111
commit 0ab9cf600d

@ -0,0 +1,31 @@
import request from '@/utils/request'
export function listCommondepartment(params) {
return request({
url: '/api/admin/other/admin-department-list',
method: 'get',
params:params
})
}
export function listCommonuser(params) {
return request({
url: '/api/admin/other/admin-user-list',
method: 'get',
params:params
})
}
export function remoteStatistic(params) {
return request({
url: '/api/admin/other/remot-statistic',
method: 'get',
params:params
})
}

@ -14,6 +14,7 @@ export function list() {
method: 'get' method: 'get'
}) })
} }
export function del(data) { export function del(data) {
return request({ return request({
url: '/api/admin/role/delete', url: '/api/admin/role/delete',
@ -21,3 +22,12 @@ export function del(data) {
data data
}) })
} }
export function set(data) {
return request({
url: '/api/admin/admin/set-roles-many',
method: 'post',
data
})
}

@ -77,17 +77,52 @@ const componentHandler = (path) => {
return loadView(path) return loadView(path)
} }
/**
* 后台查询的菜单数据拼装成路由格式的数据
* @param routes
*/
export function generaMenu(routes, data) { export function generaMenu(routes, data) {
data.forEach(item => { data.forEach(item => {
if (item.url === "/") { if (item.url === "/") {
routes.push({
path: '/',
component: Layout,
redirect: '/dashboard',
children: [{
path: 'dashboard',
name: '系统首页',
component: () => import('@/views/dashboard/index'),
meta: {
title: '系统首页',
icon: 'dashboard'
}
}]
})
} else if (item.url === "##") {
routes.push({
path: item.path,
component: Layout,
children: [{
path: item.path,
name: item.name,
component: item.url === '#' ? Layout : loadView(item.path),
meta: {
title: item.name,
id: item.id,
roles: ['admin'],
icon: item.icon
}
}]
})
} else { } else {
var path = item.url;
if (item.path != "null" && item.path != null && item.path != "") {
path = item.path
}
const menu = { const menu = {
path: pathHandler(item.url,item.id), path: (path === '#' ? item.id + '_key' : path),
//(item.path === '#'||item.path == '' ? item.id + '_key' : item.path), redirect: (item.children.length > 0 ? "noRedirect" : ""),
component: componentHandler(item.url), component: item.url === '#' ? Layout : loadView(item.url),
//(item.path === '#'||item.path == '' ? Layout : loadView(item.path)),
// hidden: true,
// hidden: true, // hidden: true,
children: [], children: [],
name: 'menu_' + item.id, name: 'menu_' + item.id,
@ -105,11 +140,6 @@ export function generaMenu(routes, data) {
routes.push(menu) routes.push(menu)
} }
}) })
routes.push({
path: '*',
redirect: '/404',
hidden: true
})
} }
const mutations = { const mutations = {

@ -23,6 +23,8 @@
</el-table-column> </el-table-column>
<el-table-column prop="url" label="菜单路径" sortable> <el-table-column prop="url" label="菜单路径" sortable>
</el-table-column> </el-table-column>
<el-table-column prop="path" label="路由" sortable>
</el-table-column>
<el-table-column prop="icon" label="图标" sortable> <el-table-column prop="icon" label="图标" sortable>
</el-table-column> </el-table-column>
<el-table-column prop="api_prefix" label="API前缀" sortable> <el-table-column prop="api_prefix" label="API前缀" sortable>
@ -65,6 +67,13 @@
</el-form-item> </el-form-item>
</el-col> </el-col>
</el-row> </el-row>
<el-row>
<el-col :span="18">
<el-form-item label="路由" prop="path">
<el-input v-model="form.path" autocomplete="off"></el-input>
</el-form-item>
</el-col>
</el-row>
<el-row> <el-row>
<el-col :span="12"> <el-col :span="12">
@ -178,7 +187,8 @@
pname: "根菜单", pname: "根菜单",
api_prefix: "", api_prefix: "",
auth_node_tagsArr: [], auth_node_tagsArr: [],
auth_node_tags: "" auth_node_tags: "",
path: ""
}, },
actionRules: { actionRules: {
tag: [{ tag: [{

@ -1,7 +1,7 @@
<template> <template>
<div class="container"> <div class="container">
<!-- 查询配置 --> <!-- 查询配置 -->
<div> <div style="padding: 0px 20px">
<div ref="lxHeader"> <div ref="lxHeader">
<LxHeader icon="md-apps" text="角色权限" style="margin-bottom: 10px; border: 0px; margin-top: 15px"> <LxHeader icon="md-apps" text="角色权限" style="margin-bottom: 10px; border: 0px; margin-top: 15px">
<div slot="content"></div> <div slot="content"></div>
@ -26,6 +26,7 @@
<el-table-column fixed="right" label="操作" width="300"> <el-table-column fixed="right" label="操作" width="300">
<template slot-scope="scope"> <template slot-scope="scope">
<Button ghost size="small" @click="edit(scope.row)" type="primary">编辑</Button> <Button ghost size="small" @click="edit(scope.row)" type="primary">编辑</Button>
<Button ghost size="small" style="margin-left: 10px;" @click="set(scope.row)" type="primary">设置权限</Button>
<Button @click="del(scope.row)" type="error" ghost size="small" style="margin-left: 10px;">删除</Button> <Button @click="del(scope.row)" type="error" ghost size="small" style="margin-left: 10px;">删除</Button>
</template> </template>
</el-table-column> </el-table-column>
@ -47,6 +48,26 @@
<el-button type="primary" @click="submitForm('form')"> </el-button> <el-button type="primary" @click="submitForm('form')"> </el-button>
</div> </div>
</el-dialog> </el-dialog>
<el-dialog title="权限设置" :visible.sync="dialogSetVisible" width="60%">
<el-form label-position="right" :label-width="formLabelWidth">
<el-form-item label="角色名称" prop="name">
{{setForm.name}}
</el-form-item>
<el-form-item label="角色人员">
<el-transfer filterable :titles="['待选择', '已选择']" :props="{key: 'id',label: 'name'}"
:filter-method="filterMethod" :format="{ noChecked: '${total}',hasChecked: '${checked}/${total}' }"
filter-placeholder="请选择人员" v-model="setForm.ids" :data="userdata">
</el-transfer>
</el-form-item>
</el-form>
<div slot="footer" class="dialog-footer">
<el-button @click="dialogSetVisible=false"> </el-button>
<el-button type="primary" @click="submitSet()"> </el-button>
</div>
</el-dialog>
</div> </div>
</div> </div>
</template> </template>
@ -56,18 +77,27 @@
import { import {
save, save,
list, list,
del del,
set
} from "../../api/system/role.js"; } from "../../api/system/role.js";
import {
listCommondepartment,
listCommonuser
} from "../../api/common.js"
export default { export default {
components: { components: {
LxHeader LxHeader
}, },
created() { created() {
this.load(); this.load();
}, },
mounted() {}, mounted() {},
data() { data() {
return { return {
dialogSetVisible: false,
dialogFormVisible: false, dialogFormVisible: false,
formLabelWidth: "120px", formLabelWidth: "120px",
form: { form: {
@ -75,6 +105,10 @@
id: "", id: "",
sortnumber: "0" sortnumber: "0"
}, },
userdata: [],
filterMethod(query, item) {
return item.name.indexOf(query) > -1;
},
rules: { rules: {
name: [{ name: [{
required: true, required: true,
@ -87,7 +121,12 @@
searchFields: { searchFields: {
KeyWord: "" KeyWord: ""
}, },
tableData: [] tableData: [],
setForm: {
name: "",
ids: [],
role_id:""
}
} }
}, },
methods: { methods: {
@ -99,6 +138,16 @@
//reject(error) //reject(error)
}) })
}, },
loadUser() {
listCommonuser({
page_size: 999
}).
then((res) => {
this.userdata = res.data;
}).catch(error => {
console.log(error)
})
},
edit(obj) { edit(obj) {
if (obj) { if (obj) {
this.form.id = obj.id; this.form.id = obj.id;
@ -106,6 +155,35 @@
} }
this.dialogFormVisible = true; this.dialogFormVisible = true;
}, },
set(obj) {
var that = this;
this.setForm.role_id = "";
this.setForm.ids = [];
this.setForm.name = obj.name;
this.setForm.role_id=obj.id;
if (obj.admin) {
for (var m of obj.admin) {
this.setForm.ids.push(m.id);
}
}
this.dialogSetVisible = true;
this.loadUser();
},
submitSet() {
let that = this;
if (that.setForm.ids.length == 0) {
this.$Message.error("请选择人员");
return false;
}
set(that.setForm).then(response => {
this.$Message.success('操作成功');
that.load();
that.dialogSetVisible = false;
}).catch(error => {
this.$Message.error(error);
})
},
del(obj) { del(obj) {
var that = this; var that = this;
if (obj) { if (obj) {

Loading…
Cancel
Save