巡查的权限

master
刘翔宇-旅管家 4 years ago
parent ec720efac2
commit a2ecf5a97a

@ -7,7 +7,7 @@
<slot> <slot>
<div> <div>
<Input style="width: 200px; margin-right: 10px" v-model="searchFields.KeyWord" placeholder="关键字搜索" /> <Input style="width: 200px; margin-right: 10px" v-model="searchFields.KeyWord" placeholder="关键字搜索" />
<Button type="primary" @click="load" style="margin-left: 10px">查询</Button> <Button type="primary" @click="load" style="margin-left: 10px">查询</Button>
<Button type="primary" @click="edit()" style="margin-left: 10px">新增</Button> <Button type="primary" @click="edit()" style="margin-left: 10px">新增</Button>
</div> </div>
</slot> </slot>
@ -15,20 +15,26 @@
</div> </div>
<div ref="lxTable"> <div ref="lxTable">
<el-table :data="tableData" class="v-table" :height="tableHeight" style="width: 100%"> <el-table :data="tableData" class="v-table" :height="tableHeight" style="width: 100%">
<el-table-column type="index" width="50" label="序号" align="center"> </el-table-column> <el-table-column type="index" width="50" label="序号" align="center" :fixed="left"> </el-table-column>
<el-table-column :prop="column.field" :align="column.align" v-for="(column,index) in columns" <el-table-column :prop="column.field" :align="column.align" v-for="(column,index) in columns"
:label="column.title" :width="column.width"> :label="column.title" :width="column.width" :fixed="column.fixed">
<template slot-scope="scope"> <template slot-scope="scope">
<div v-if="column.type=='opt'"> <div v-if="column.type=='opt'">
<Button ghost size="small" @click="edit(scope.row)" type="primary" <Button ghost size="small" @click="edit(scope.row)" type="primary"
style="margin-left: 10px;">编辑</Button> style="margin-left: 10px;">编辑</Button>
<Button ghost size="small" @click="del(scope.row)" type="error" style="margin-left: 10px;">删除</Button> <Button ghost size="small" @click="del(scope.row)" type="error" style="margin-left: 10px;">删除</Button>
</div> </div>
<div v-else-if="column.type=='format'"> <div v-else-if="column.type=='format'">
{{scope.row[column.field]?scope.row[column.field].name:""}}
</div> <div v-if="column.field=='menu'">
<div v-else>{{scope.row[column.field]}}</div> {{showMenu(scope.row["allow_menu_list"])}}
</template> </div>
<div v-else>
{{scope.row[column.field]?scope.row[column.field].name:""}}
</div>
</div>
<div v-else>{{scope.row[column.field]}}</div>
</template>
</el-table-column> </el-table-column>
</el-table> </el-table>
<div class="pagination"> <div class="pagination">
@ -40,69 +46,57 @@
<el-dialog class="common-dialog" title="账号编辑" :visible.sync="dialogFormVisible" width="40%"> <el-dialog class="common-dialog" title="账号编辑" :visible.sync="dialogFormVisible" width="40%">
<div class="dialogConcent"> <div class="dialogConcent">
<el-scrollbar style="flex: 1"> <el-scrollbar style="flex: 1">
<el-form :model="form" :rules="rules" ref="form" label-position="right" :label-width="formLabelWidth"> <el-form :model="form" :rules="rules" ref="form" label-position="right" :label-width="formLabelWidth">
<el-row> <el-row>
<el-col :span="24"> <el-col :span="24">
<el-form-item label="名字" prop="name"> <el-form-item label="名字" prop="name">
<el-input v-model="form.name" placeholder="请填写名字" autocomplete="off"></el-input> <el-input v-model="form.name" placeholder="请填写名字" autocomplete="off"></el-input>
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="24"> <el-col :span="24">
<el-form-item label="账号" prop="username"> <el-form-item label="账号" prop="username">
<el-input v-model="form.username" placeholder="请填写账号" autocomplete="off"></el-input> <el-input v-model="form.username" placeholder="请填写账号" autocomplete="off"></el-input>
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="24"> <el-col :span="24">
<el-form-item label="密码" prop="password"> <el-form-item label="密码" prop="password">
<el-input v-model="form.password" placeholder="请填写密码" autocomplete="off"></el-input> <el-input v-model="form.password" placeholder="请填写密码" autocomplete="off"></el-input>
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="24"> <el-col :span="24">
<el-form-item label="所属片区" prop="area_id"> <el-form-item label="所属片区" prop="area_id">
<el-select style="width:100%" v-model="form.area_id" placeholder="请选择所属片区"> <el-select style="width:100%" v-model="form.area_id" placeholder="请选择所属片区">
<el-option <el-option v-for="item in areaList" :key="item.id" :label="item.name" :value="item.id">
v-for="item in areaList" </el-option>
:key="item.id" </el-select>
:label="item.name" </el-form-item>
:value="item.id"> </el-col>
</el-option> <el-col :span="24">
</el-select> <el-form-item label="所属养护单位" prop="maintain_id">
</el-form-item> <el-select style="width:100%" v-model="form.maintain_id" placeholder="请选择所属养护单位">
</el-col> <el-option v-for="item in maintainList" :key="item.id" :label="item.name" :value="item.id">
<el-col :span="24"> </el-option>
<el-form-item label="所属养护单位" prop="maintain_id"> </el-select>
<el-select style="width:100%" v-model="form.maintain_id" placeholder="请选择所属养护单位"> </el-form-item>
<el-option </el-col>
v-for="item in maintainList" <el-col :span="24">
:key="item.id" <el-form-item label="巡查养护组" prop="group_id">
:label="item.name" <el-select style="width:100%" v-model="form.group_id" placeholder="请选择巡查养护组">
:value="item.id"> <el-option v-for="item in groupList" :key="item.id" :label="item.name" :value="item.id">
</el-option> </el-option>
</el-select> </el-select>
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="24"> <el-col :span="24">
<el-form-item label="巡查养护组" prop="group_id"> <el-form-item label="用户权限" prop="role_id">
<el-select style="width:100%" v-model="form.group_id" placeholder="请选择巡查养护组"> <el-checkbox-group v-model="roleArr">
<el-option <el-checkbox v-for="item in roleList" :label="item.id">{{item.value}}</el-checkbox>
v-for="item in groupList" </el-checkbox-group>
:key="item.id" </el-form-item>
:label="item.name" </el-col>
:value="item.id">
</el-option>
</el-select>
</el-form-item>
</el-col>
<el-col :span="24">
<el-form-item label="用户权限" prop="role_id">
<el-checkbox-group v-model="roleArr">
<el-checkbox v-for="item in roleList" :label="item.id">{{item.value}}</el-checkbox>
</el-checkbox-group>
</el-form-item>
</el-col>
</el-row> </el-row>
</el-form> </el-form>
@ -119,22 +113,22 @@
</div> </div>
</template> </template>
<script> <script>
import { import {
listaccount, listaccount,
get, get,
store, store,
save, save,
del del
} from '../../../api/basic/account.js' } from '../../../api/basic/account.js'
import { import {
listarea listarea
} from '../../../api/basic/area.js' } from '../../../api/basic/area.js'
import { import {
listmaintain listmaintain
} from '../../../api/basic/unit.js' } from '../../../api/basic/unit.js'
import { import {
listgroup listgroup
} from '../../../api/basic/group.js' } from '../../../api/basic/group.js'
import LxHeader from "@/components/LxHeader/index.vue"; import LxHeader from "@/components/LxHeader/index.vue";
@ -146,65 +140,61 @@
return { return {
tableHeight: 0, tableHeight: 0,
dialogFormVisible: false, dialogFormVisible: false,
formLabelWidth: "120px", formLabelWidth: "120px",
tableData: [], tableData: [],
areaList:[], areaList: [],
maintainList:[], maintainList: [],
groupList:[], groupList: [],
tableHeight: 0, tableHeight: 0,
searchFields: { searchFields: {
KeyWord: "" KeyWord: ""
}, },
roleList:[{ roleList: [{
id:1, id: "1",
value:"巡查管理" value: "巡查管理"
},{ }, {
id:2, id: "2",
value:"养护管理" value: "养护管理"
},{ }, {
id:3, id: "3",
value:"监督考核" value: "监督考核"
},{ }, {
id:4, id: "4",
value:"通用巡查" value: "通用巡查"
},], }, ],
roleArr:[], roleArr: [],
paginations: { paginations: {
page: 1, page: 1,
page_size: 15, page_size: 15,
total: 0 total: 0
}, },
form: { form: {
name:"", name: "",
username:"", username: "",
password:"", password: "",
area_id:"", area_id: "",
maintain_id:"", maintain_id: "",
group_id:"" group_id: "",
allow_menu_ids: ""
}, },
rules: { rules: {
name:[{ name: [{
required: true, required: true,
message: '请填写名字', message: '请填写名字',
trigger: 'blur', trigger: 'blur',
}], }],
username:[{ username: [{
required: true, required: true,
message: '请填写账号', message: '请填写账号',
trigger: 'blur', trigger: 'blur',
}],
password:[{
required: true,
message: '请填写密码',
trigger: 'blur',
}] }]
}, },
columns: [{ columns: [{
field: "name", field: "name",
title: "名字", title: "名字",
type: "string", type: "string",
align: "center" align: "center"
}, },
@ -219,38 +209,38 @@
title: "所属片区", title: "所属片区",
type: "format", type: "format",
align: "center" align: "center"
}, },
{ {
field: "maintain", field: "maintain",
title: "所属养护单位", title: "所属养护单位",
type: "format", type: "format",
align: "center" align: "center"
}, },
{ {
field: "group", field: "group",
title: "所属巡查养护组", title: "所属巡查养护组",
type: "format", type: "format",
align: "center" align: "center"
}, },
// { {
// field: "admin_id", field: "menu",
// title: "", title: "功能权限",
// type: "string", type: "format",
// align: "center", align: "center"
// width:180 },
// }, {
{ field: "created_at",
field: "created_at", title: "提交日期",
title: "提交日期", type: "string",
type: "string", align: "center",
align: "center", width: 180
width:180
}, },
{ {
field: "操作", field: "操作",
title: "操作", title: "操作",
width: 220, width: 220,
type: "opt", type: "opt",
fixed: "right"
} }
], ],
} }
@ -261,6 +251,23 @@
}, },
methods: { methods: {
showMenu(listMenu) {
if (listMenu.length == 0) {
return "不限";
} else {
var sb = [];
for (var m of listMenu) {
var r = this.roleList.filter((item) => {
return item.id == m;
});
if (r.length == 1) {
sb.push(r[0].value);
}
}
return sb.join(",");
}
},
initLoad() { initLoad() {
var that = this; var that = this;
var clientHeight = document.documentElement.clientHeight var clientHeight = document.documentElement.clientHeight
@ -285,44 +292,45 @@
}).catch(error => { }).catch(error => {
console.log(error) console.log(error)
reject(error) reject(error)
}); });
listarea({ listarea({
page: 1, page: 1,
page_size: 999, page_size: 999,
}).then(response => { }).then(response => {
this.areaList = response.data; this.areaList = response.data;
}).catch(error => { }).catch(error => {
console.log(error) console.log(error)
reject(error) reject(error)
}); });
listmaintain({ listmaintain({
page: 1, page: 1,
page_size: 999, page_size: 999,
}).then(response => { }).then(response => {
this.maintainList = response.data; this.maintainList = response.data;
}).catch(error => { }).catch(error => {
console.log(error) console.log(error)
reject(error) reject(error)
}); });
listgroup({ listgroup({
page: 1, page: 1,
page_size: 999, page_size: 999,
}).then(response => { }).then(response => {
this.groupList = response.data; this.groupList = response.data;
}).catch(error => { }).catch(error => {
console.log(error) console.log(error)
reject(error) reject(error)
}); });
}, },
show(obj) { show(obj) {
// this.clientHeight = document.documentElement.clientHeight - 84 - 110; // this.clientHeight = document.documentElement.clientHeight - 84 - 110;
this.dialogViewVisible = false; this.dialogViewVisible = false;
this.info(obj); this.info(obj);
}, },
info(obj) { info(obj) {
@ -331,45 +339,48 @@
let result = Object.assign(that.form, res); let result = Object.assign(that.form, res);
// this.$set(that.form,res); // this.$set(that.form,res);
that.form = result; that.form = result;
that.roleArr = result.allow_menu_list;
}).catch(error => { }).catch(error => {
//reject(error) //reject(error)
}) })
}, },
edit(obj) { edit(obj) {
this.form = this.$options.data().form this.form = this.$options.data().form;
if (obj) { this.roleArr = [];
this.info(obj) if (obj) {
} this.info(obj)
this.dialogFormVisible = true; }
}, this.dialogFormVisible = true;
del(obj) { },
var that = this; del(obj) {
if (obj) { var that = this;
this.$Modal.confirm({ if (obj) {
title: '确认要删除数据?', this.$Modal.confirm({
onOk: () => { title: '确认要删除数据?',
del(obj.id).then(response => { onOk: () => {
this.$Message.success('操作成功'); del(obj.id).then(response => {
that.load(); this.$Message.success('操作成功');
}).catch(error => { that.load();
console.log(error) }).catch(error => {
reject(error) console.log(error)
}) reject(error)
}, })
onCancel: () => { },
//this.$Message.info('Clicked cancel'); onCancel: () => {
} //this.$Message.info('Clicked cancel');
}); }
} });
}
}, },
submitForm(formName) { submitForm(formName) {
var that = this; var that = this;
console.log(that.form); console.log(that.form);
// return; // return;
this.$refs[formName].validate((valid) => { this.$refs[formName].validate((valid) => {
if (valid) { if (valid) {
that.form.allow_menu_ids = that.roleArr.join(",");
if (that.form.id) { if (that.form.id) {
save(that.form).then(response => { save(that.form).then(response => {
this.$Message.success('操作成功'); this.$Message.success('操作成功');
@ -393,12 +404,12 @@
return false; return false;
} }
}); });
}, },
resetForm(formName) { resetForm(formName) {
var that = this; var that = this;
this.$refs[formName].resetFields(); this.$refs[formName].resetFields();
that.dialogFormVisible = false; that.dialogFormVisible = false;
} }
} }
} }
@ -407,8 +418,9 @@
<style> <style>
.dialogConcent { .dialogConcent {
overflow-y: auto; overflow-y: auto;
} }
.width100{
width:100%; .width100 {
width: 100%;
} }
</style> </style>

Loading…
Cancel
Save