Commit 2cae7524 authored by hanfeng's avatar hanfeng

修改后台用户管理

parent 8d909f23
<template> <template>
<div class="app-container calendar-list-container"> <div class="app-container calendar-list-container">
<div class="filter-container"> <div class="filter-container">
<el-input @keyup.enter.native="handleFilter" style="width: 200px;" class="filter-item" placeholder="姓名或账户" v-model="listQuery.name"> </el-input> <el-input @keyup.enter.native="handleFilter" style="width: 200px;" class="filter-item" placeholder="姓名或账户"
v-model="listQuery.name"></el-input>
<el-button class="filter-item" type="primary" v-waves icon="search" @click="handleFilter">搜索</el-button> <el-button class="filter-item" type="primary" v-waves icon="search" @click="handleFilter">搜索</el-button>
<el-button class="filter-item" v-if="userManager_btn_add" style="margin-left: 10px;" @click="handleCreate" type="primary" icon="edit">添加</el-button> <el-button class="filter-item" v-if="userManager_btn_add" style="margin-left: 10px;" @click="handleCreate"
type="primary" icon="edit">添加
</el-button>
</div> </div>
<el-table :key='tableKey' :data="list" v-loading.body="listLoading" border fit highlight-current-row style="width: 100%"> <el-table :key='tableKey' :data="list" v-loading.body="listLoading" border fit highlight-current-row
<el-table-column align="center" label="序号" width="65"> <template scope="scope"> style="width: 100%">
<el-table-column align="center" label="序号" width="65">
<template scope="scope">
<span>{{scope.row.id}}</span> <span>{{scope.row.id}}</span>
</template> </el-table-column> </template>
<el-table-column width="200" align="center" label="姓名"> <template scope="scope"> </el-table-column>
<el-table-column width="200" align="center" label="姓名">
<template scope="scope">
<span>{{scope.row.name}}</span> <span>{{scope.row.name}}</span>
</template> </el-table-column> </template>
<el-table-column width="110" align="center" label="账户"> <template scope="scope"> </el-table-column>
<el-table-column width="110" align="center" label="账户">
<template scope="scope">
<span>{{scope.row.username}}</span> <span>{{scope.row.username}}</span>
</template> </el-table-column> </template>
<el-table-column width="110" align="center" label="性别"> <template scope="scope"> </el-table-column>
<el-table-column width="110" align="center" label="性别">
<template scope="scope">
<span>{{scope.row.sex}}</span> <span>{{scope.row.sex}}</span>
</template> </el-table-column> </template>
<el-table-column width="300" align="center" label="备注"> <template scope="scope"> </el-table-column>
<el-table-column width="300" align="center" label="备注">
<template scope="scope">
<span>{{scope.row.description}}</span> <span>{{scope.row.description}}</span>
</template> </el-table-column> </template>
<el-table-column width="180" align="center" label="最后时间"> <template scope="scope"> </el-table-column>
<el-table-column width="180" align="center" label="最后时间">
<template scope="scope">
<span>{{scope.row.updTime}}</span> <span>{{scope.row.updTime}}</span>
</template> </el-table-column> </template>
<el-table-column width="200" align="center" label="最后更新人"> <template scope="scope"> </el-table-column>
<el-table-column width="200" align="center" label="最后更新人">
<template scope="scope">
<span>{{scope.row.updName}}</span> <span>{{scope.row.updName}}</span>
</template> </el-table-column> </template>
<el-table-column align="center" label="操作" width="150"> <template scope="scope"> </el-table-column>
<el-table-column align="center" label="操作" width="150">
<template scope="scope">
<el-button v-if="userManager_btn_edit" size="small" type="success" @click="handleUpdate(scope.row)">编辑 <el-button v-if="userManager_btn_edit" size="small" type="success" @click="handleUpdate(scope.row)">编辑
</el-button> </el-button>
<el-button v-if="userManager_btn_del" size="small" type="danger" @click="handleDelete(scope.row)">删除 <el-button v-if="userManager_btn_del" size="small" type="danger" @click="handleDelete(scope.row)">删除
</el-button> </el-button>
</template> </el-table-column> </template>
</el-table-column>
</el-table> </el-table>
<div v-show="!listLoading" class="pagination-container"> <div v-show="!listLoading" class="pagination-container">
<el-pagination @size-change="handleSizeChange" @current-change="handleCurrentChange" :current-page.sync="listQuery.page" :page-sizes="[10,20,30, 50]" :page-size="listQuery.limit" layout="total, sizes, prev, pager, next, jumper" :total="total"> </el-pagination> <el-pagination @size-change="handleSizeChange" @current-change="handleCurrentChange"
:current-page.sync="listQuery.page" :page-sizes="[10,20,30, 50]" :page-size="listQuery.limit"
layout="total, sizes, prev, pager, next, jumper" :total="total"></el-pagination>
</div> </div>
<el-dialog :title="textMap[dialogStatus]" :visible.sync="dialogFormVisible"> <el-dialog :title="textMap[dialogStatus]" :visible.sync="dialogFormVisible">
<el-form :model="form" :rules="rules" ref="form" label-width="100px"> <el-form :model="form" :rules="rules" ref="form" label-width="100px">
...@@ -55,17 +77,17 @@ ...@@ -55,17 +77,17 @@
</el-form-item> </el-form-item>
<el-form-item label="性别"> <el-form-item label="性别">
<el-select class="filter-item" v-model="form.sex" placeholder="请选择"> <el-select class="filter-item" v-model="form.sex" placeholder="请选择">
<el-option v-for="item in sexOptions" :key="item" :label="item" :value="item"> </el-option> <el-option v-for="item in sexOptions" :key="item" :label="item" :value="item"></el-option>
</el-select> </el-select>
</el-form-item> </el-form-item>
<el-form-item label="是否开启" prop="status"> <el-form-item label="是否开启" prop="status">
<el-radio-group class="filter-item" v-model.number="form.status" > <el-radio-group class="filter-item" v-model.number="form.status">
<el-radio v-for="item in statusOptions" :key="item.val" :label="item.id">{{item.val}}</el-radio> <el-radio v-for="item in statusOptions" :key="item.val" :label="item.id">{{item.val}}</el-radio>
</el-radio-group> </el-radio-group>
</el-form-item> </el-form-item>
<el-form-item label="所属片区" prop="zoneId"> <el-form-item label="所属片区" prop="zoneId">
<el-select class="filter-item" v-model="form.zoneId" clearable placeholder="请选择" @change="getProvinceRegions"> <el-select class="filter-item" v-model="form.zoneId" clearable placeholder="请选择" @change="getProvinceRegions">
<el-option v-for="val in getAllZoneList" :key="val.id" :label="val.name" :value="val.id"> </el-option> <el-option v-for="val in getAllZoneList" :key="val.id" :label="val.name" :value="val.id"></el-option>
</el-select> </el-select>
</el-form-item> </el-form-item>
<el-form-item label="所属分公司" prop="companyId"> <el-form-item label="所属分公司" prop="companyId">
...@@ -77,7 +99,7 @@ ...@@ -77,7 +99,7 @@
<!--@select="handleSelectSubordinate"--> <!--@select="handleSelectSubordinate"-->
<!--&gt;</el-autocomplete>--> <!--&gt;</el-autocomplete>-->
<el-select class="filter-item" v-model="form.companyId" clearable filterable placeholder="请选择分公司"> <el-select class="filter-item" v-model="form.companyId" clearable filterable placeholder="请选择分公司">
<el-option v-for="val in allBranchCompany" :key="val.id" :label="val.name" :value="val.id"> </el-option> <el-option v-for="val in allBranchCompany" :key="val.id" :label="val.name" :value="val.id"></el-option>
</el-select> </el-select>
</el-form-item> </el-form-item>
<el-form-item label="所属角色" prop="members"> <el-form-item label="所属角色" prop="members">
...@@ -98,15 +120,21 @@ ...@@ -98,15 +120,21 @@
</el-select> --> </el-select> -->
</el-form-item> </el-form-item>
<el-form-item label="数据权限" prop="dataState"> <el-form-item label="数据权限" prop="dataState">
<el-checkbox-group v-model="form.dataLimit" > <!-- <el-checkbox-group v-model="form.dataLimit" >-->
<!--<el-checkbox v-for="item in dataOptions" :label="item.id" >{{item.val}}</el-checkbox>--> <!-- &lt;!&ndash;<el-checkbox v-for="item in dataOptions" :label="item.id" >{{item.val}}</el-checkbox>&ndash;&gt;-->
<el-checkbox label="1">所属分公司</el-checkbox> <!-- <el-checkbox label="1">所属分公司</el-checkbox>-->
<el-checkbox label="2">所属片区</el-checkbox> <!-- <el-checkbox label="2">所属片区</el-checkbox>-->
<el-checkbox label="3">所有数据</el-checkbox> <!-- <el-checkbox label="3">所有数据</el-checkbox>-->
</el-checkbox-group> <!-- </el-checkbox-group>-->
<el-radio-group v-model="form.dataLimit">
<el-radio label="1">所属分公司</el-radio>
<el-radio label="2">所属片区</el-radio>
<el-radio label="3">所有数据</el-radio>
</el-radio-group>
</el-form-item> </el-form-item>
<el-form-item label="描述"> <el-form-item label="描述">
<el-input type="textarea" :autosize="{ minRows: 3, maxRows: 5}" placeholder="请输入内容" v-model="form.description"> </el-input> <el-input type="textarea" :autosize="{ minRows: 3, maxRows: 5}" placeholder="请输入内容"
v-model="form.description"></el-input>
</el-form-item> </el-form-item>
</el-form> </el-form>
<div slot="footer" class="dialog-footer"> <div slot="footer" class="dialog-footer">
...@@ -115,42 +143,42 @@ ...@@ -115,42 +143,42 @@
<el-button v-else type="primary" @click="update('form')">确 定</el-button> <el-button v-else type="primary" @click="update('form')">确 定</el-button>
</div> </div>
</el-dialog> </el-dialog>
</div> </div>
</template> </template>
<script> <script>
import{ import {
page, page,
addObj, addObj,
getObj, getObj,
delObj, delObj,
putObj putObj
} from 'api/admin/user/index'; } from 'api/admin/user/index';
import { mapGetters } from 'vuex'; import {mapGetters} from 'vuex';
import { import {
getAllCompany, getAllCompany,
getAll getAll
} from 'api/base_info/branch_company/'; } from 'api/base_info/branch_company/';
import { import {
getAllZone getAllZone
} from 'api/base_info/constant/'; } from 'api/base_info/constant/';
import { import {
fetchTree, fetchTree,
getUserGroups, getUserGroups,
getCurrentGroups, getCurrentGroups,
listAll listAll
} from 'api/admin/group/index'; } from 'api/admin/group/index';
import {getAllBranchCompanyByZoneId} from "../../../api/order/rentVehicle"; import {getAllBranchCompanyByZoneId} from "../../../api/order/rentVehicle";
export default { export default {
name: 'user', name: 'user',
data() { data() {
return { return {
membersName:'',//角色 membersName: '',//角色
form: { form: {
username: undefined, username: undefined,
name: undefined, name: undefined,
...@@ -163,12 +191,13 @@ export default { ...@@ -163,12 +191,13 @@ export default {
password: undefined, password: undefined,
passwordEdit: undefined, passwordEdit: undefined,
description: undefined, description: undefined,
dataLimit: [],//数据权限 // dataLimit: [],//数据权限
dataLimit: undefined,//数据权限
members: [], members: [],
}, },
editCompanyId: undefined,//编辑时公司id editCompanyId: undefined,//编辑时公司id
baranchQuery: { baranchQuery: {
zoneId:null zoneId: null
}, },
rules: { rules: {
name: [ name: [
...@@ -218,11 +247,11 @@ export default { ...@@ -218,11 +247,11 @@ export default {
trigger: 'blur' trigger: 'blur'
} }
], ],
zoneId:{ zoneId: {
required: true, required: true,
message: '请选择所属片区', message: '请选择所属片区',
}, },
companyId:{ companyId: {
required: true, required: true,
message: '请选择所属分公司', message: '请选择所属分公司',
}, },
...@@ -242,8 +271,8 @@ export default { ...@@ -242,8 +271,8 @@ export default {
}, },
sexOptions: ['男', '女'], sexOptions: ['男', '女'],
zoneOptions: ['男', '女'], zoneOptions: ['男', '女'],
dataOptions: [{id:"1", val:"所属分公司"}, {id:"2", val:"所属片区"}, {id:"3", val:"所有数据"}], dataOptions: [{id: "1", val: "所属分公司"}, {id: "2", val: "所属片区"}, {id: "3", val: "所有数据"}],
statusOptions: [{id:1, val: '开启'}, {id:2, val: '禁用'}], statusOptions: [{id: 1, val: '开启'}, {id: 2, val: '禁用'}],
dialogFormVisible: false, dialogFormVisible: false,
dialogStatus: '', dialogStatus: '',
userManager_btn_edit: false, userManager_btn_edit: false,
...@@ -259,7 +288,7 @@ export default { ...@@ -259,7 +288,7 @@ export default {
}, },
tableKey: 0, tableKey: 0,
allBranchCompany: [],//所有分公司列表 allBranchCompany: [],//所有分公司列表
list_All:[] list_All: []
} }
}, },
created() { created() {
...@@ -291,7 +320,7 @@ export default { ...@@ -291,7 +320,7 @@ export default {
...mapGetters([ ...mapGetters([
'elements' 'elements'
]), ]),
getAllZoneList(){ getAllZoneList() {
console.log('getAllZoneList') console.log('getAllZoneList')
this.allZoneArr = getAllZone(); this.allZoneArr = getAllZone();
return getAllZone(); return getAllZone();
...@@ -317,12 +346,12 @@ export default { ...@@ -317,12 +346,12 @@ export default {
/** /**
* 所属分公司 * 所属分公司
* */ * */
handleSelectSubordinate(item){ handleSelectSubordinate(item) {
this.form.companyId = item.id; this.form.companyId = item.id;
this.form.companyName = item.name; this.form.companyName = item.name;
}, },
// 角色 // 角色
handleSelect2(item){ handleSelect2(item) {
this.form.members = item.id; this.form.members = item.id;
}, },
/** /**
...@@ -359,12 +388,12 @@ export default { ...@@ -359,12 +388,12 @@ export default {
* */ * */
handleUpdate(row) { handleUpdate(row) {
this.resetTemp(); this.resetTemp();
if(row.zoneId){ if (row.zoneId) {
getAllBranchCompanyByZoneId({zoneId: row.zoneId}) getAllBranchCompanyByZoneId({zoneId: row.zoneId})
.then(res => { .then(res => {
this.allBranchCompany = res.data; this.allBranchCompany = res.data;
getObj(row.id).then(response => { getObj(row.id).then(response => {
this.form.id= response.data.id; this.form.id = response.data.id;
this.editCompanyId = response.data.companyId,//所属分公司id this.editCompanyId = response.data.companyId,//所属分公司id
this.form.username = response.data.username, this.form.username = response.data.username,
this.form.name = response.data.name, this.form.name = response.data.name,
...@@ -373,29 +402,34 @@ export default { ...@@ -373,29 +402,34 @@ export default {
this.form.zoneId = response.data.zoneId,//所属片区 this.form.zoneId = response.data.zoneId,//所属片区
this.form.companyId = response.data.companyId,//所属分公司id this.form.companyId = response.data.companyId,//所属分公司id
this.form.description = response.data.description this.form.description = response.data.description
let dataLimit = []; // let dataLimit = [];
if(response.data.dataCompany ) { let dataLimit = undefined;
if (response.data.dataCompany) {
let companys = response.data.dataCompany.split(","); let companys = response.data.dataCompany.split(",");
if(companys.includes(response.data.companyId + "")) { if (companys.includes(response.data.companyId + "")) {
dataLimit.push("1"); // dataLimit.push("1");
dataLimit = '1'
} }
} }
if(response.data.dataZone) { if (response.data.dataZone) {
let zones = response.data.dataZone.split(","); let zones = response.data.dataZone.split(",");
if(zones.includes(response.data.zoneId + "")) { if (zones.includes(response.data.zoneId + "")) {
dataLimit.push("2"); // dataLimit.push("2");
dataLimit = '2'
} }
} }
if(response.data.dataAll && response.data.dataAll == 1) { if (response.data.dataAll && response.data.dataAll == 1) {
dataLimit.push("3"); // dataLimit.push("3");
dataLimit = '3'
} }
let mems = []; let mems = [];
for(let i= 1; i < 10; i++){ for (let i = 1; i < 10; i++) {
this.myGroups.push({name: "q"+i, id: i}); this.myGroups.push({name: "q" + i, id: i});
} }
this.$set(this.form, "dataLimit", dataLimit); this.$set(this.form, "dataLimit", dataLimit);
// console.log(JSON.stringify(this.form))
getUserGroups(response.data.id).then(result => { getUserGroups(response.data.id).then(result => {
if(result.data){ if (result.data) {
this.myGroups = result.data; this.myGroups = result.data;
for (let i = 0; i < result.data.length; i++) { for (let i = 0; i < result.data.length; i++) {
mems.push(result.data[i].id); mems.push(result.data[i].id);
...@@ -406,6 +440,7 @@ export default { ...@@ -406,6 +440,7 @@ export default {
this.dialogFormVisible = true; this.dialogFormVisible = true;
this.dialogStatus = 'update'; this.dialogStatus = 'update';
console.log(this.form); console.log(this.form);
// console.log(JSON.stringify(this.form))
}); });
}); });
} else { } else {
...@@ -465,7 +500,7 @@ export default { ...@@ -465,7 +500,7 @@ export default {
}, },
querySearch(queryString, cb) { querySearch(queryString, cb) {
let selectArry = []; let selectArry = [];
this.list_All.map(function(item){ this.list_All.map(function (item) {
item.value = item.name; item.value = item.name;
selectArry.push(item); selectArry.push(item);
}); });
...@@ -484,7 +519,7 @@ export default { ...@@ -484,7 +519,7 @@ export default {
set[formName].validate(valid => { set[formName].validate(valid => {
if (valid) { if (valid) {
this.dialogFormVisible = false; this.dialogFormVisible = false;
if(this.form.passwordEdit){ if (this.form.passwordEdit) {
this.form.password = this.form.passwordEdit; this.form.password = this.form.passwordEdit;
this.form.passwordEdit = undefined; this.form.passwordEdit = undefined;
} else { } else {
...@@ -514,11 +549,11 @@ export default { ...@@ -514,11 +549,11 @@ export default {
this.form.zoneId = item; this.form.zoneId = item;
this.form.companyId = undefined;//片区修改后所属公司联动 this.form.companyId = undefined;//片区修改后所属公司联动
this.baranchQuery.zoneId = item; this.baranchQuery.zoneId = item;
if(this.baranchQuery.zoneId){ if (this.baranchQuery.zoneId) {
getAllBranchCompanyByZoneId(this.baranchQuery) getAllBranchCompanyByZoneId(this.baranchQuery)
.then(response => {debugger .then(response => {
this.allBranchCompany = response.data; this.allBranchCompany = response.data;
if(this.editCompanyId){ if (this.editCompanyId) {
this.form.companyId = this.editCompanyId; this.form.companyId = this.editCompanyId;
this.editCompanyId = undefined; this.editCompanyId = undefined;
} }
...@@ -539,7 +574,8 @@ export default { ...@@ -539,7 +574,8 @@ export default {
password: undefined, password: undefined,
passwordEdit: undefined, passwordEdit: undefined,
description: undefined, description: undefined,
dataLimit: [],//数据权限 // dataLimit: [],//数据权限
dataLimit: undefined,//数据权限
members: [], members: [],
}; };
// this.form = { // this.form = {
...@@ -572,5 +608,5 @@ export default { ...@@ -572,5 +608,5 @@ export default {
// }); // });
// } // }
} }
} }
</script> </script>
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment