Commit 2cae7524 authored by hanfeng's avatar hanfeng

修改后台用户管理

parent 8d909f23
<template>
<div class="app-container calendar-list-container">
<div class="app-container calendar-list-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" 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>
<el-table :key='tableKey' :data="list" v-loading.body="listLoading" border fit highlight-current-row style="width: 100%">
<el-table-column align="center" label="序号" width="65"> <template scope="scope">
<el-table :key='tableKey' :data="list" v-loading.body="listLoading" border fit highlight-current-row
style="width: 100%">
<el-table-column align="center" label="序号" width="65">
<template scope="scope">
<span>{{scope.row.id}}</span>
</template> </el-table-column>
<el-table-column width="200" align="center" label="姓名"> <template scope="scope">
</template>
</el-table-column>
<el-table-column width="200" align="center" label="姓名">
<template scope="scope">
<span>{{scope.row.name}}</span>
</template> </el-table-column>
<el-table-column width="110" align="center" label="账户"> <template scope="scope">
</template>
</el-table-column>
<el-table-column width="110" align="center" label="账户">
<template scope="scope">
<span>{{scope.row.username}}</span>
</template> </el-table-column>
<el-table-column width="110" align="center" label="性别"> <template scope="scope">
</template>
</el-table-column>
<el-table-column width="110" align="center" label="性别">
<template scope="scope">
<span>{{scope.row.sex}}</span>
</template> </el-table-column>
<el-table-column width="300" align="center" label="备注"> <template scope="scope">
</template>
</el-table-column>
<el-table-column width="300" align="center" label="备注">
<template scope="scope">
<span>{{scope.row.description}}</span>
</template> </el-table-column>
<el-table-column width="180" align="center" label="最后时间"> <template scope="scope">
</template>
</el-table-column>
<el-table-column width="180" align="center" label="最后时间">
<template scope="scope">
<span>{{scope.row.updTime}}</span>
</template> </el-table-column>
<el-table-column width="200" align="center" label="最后更新人"> <template scope="scope">
</template>
</el-table-column>
<el-table-column width="200" align="center" label="最后更新人">
<template scope="scope">
<span>{{scope.row.updName}}</span>
</template> </el-table-column>
<el-table-column align="center" label="操作" width="150"> <template scope="scope">
</template>
</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>
<el-button v-if="userManager_btn_del" size="small" type="danger" @click="handleDelete(scope.row)">删除
</el-button>
</template> </el-table-column>
</template>
</el-table-column>
</el-table>
<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>
<el-dialog :title="textMap[dialogStatus]" :visible.sync="dialogFormVisible">
<el-form :model="form" :rules="rules" ref="form" label-width="100px">
......@@ -55,17 +77,17 @@
</el-form-item>
<el-form-item label="性别">
<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-form-item>
<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-group>
</el-form-item>
<el-form-item label="所属片区" prop="zoneId">
<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-form-item>
<el-form-item label="所属分公司" prop="companyId">
......@@ -77,7 +99,7 @@
<!--@select="handleSelectSubordinate"-->
<!--&gt;</el-autocomplete>-->
<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-form-item>
<el-form-item label="所属角色" prop="members">
......@@ -98,15 +120,21 @@
</el-select> -->
</el-form-item>
<el-form-item label="数据权限" prop="dataState">
<el-checkbox-group v-model="form.dataLimit" >
<!--<el-checkbox v-for="item in dataOptions" :label="item.id" >{{item.val}}</el-checkbox>-->
<el-checkbox label="1">所属分公司</el-checkbox>
<el-checkbox label="2">所属片区</el-checkbox>
<el-checkbox label="3">所有数据</el-checkbox>
</el-checkbox-group>
<!-- <el-checkbox-group v-model="form.dataLimit" >-->
<!-- &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="2">所属片区</el-checkbox>-->
<!-- <el-checkbox label="3">所有数据</el-checkbox>-->
<!-- </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 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>
<div slot="footer" class="dialog-footer">
......@@ -115,42 +143,42 @@
<el-button v-else type="primary" @click="update('form')">确 定</el-button>
</div>
</el-dialog>
</div>
</div>
</template>
<script>
import{
import {
page,
addObj,
getObj,
delObj,
putObj
} from 'api/admin/user/index';
} from 'api/admin/user/index';
import { mapGetters } from 'vuex';
import {mapGetters} from 'vuex';
import {
import {
getAllCompany,
getAll
} from 'api/base_info/branch_company/';
} from 'api/base_info/branch_company/';
import {
import {
getAllZone
} from 'api/base_info/constant/';
} from 'api/base_info/constant/';
import {
import {
fetchTree,
getUserGroups,
getCurrentGroups,
listAll
} from 'api/admin/group/index';
import {getAllBranchCompanyByZoneId} from "../../../api/order/rentVehicle";
} from 'api/admin/group/index';
import {getAllBranchCompanyByZoneId} from "../../../api/order/rentVehicle";
export default {
export default {
name: 'user',
data() {
return {
membersName:'',//角色
membersName: '',//角色
form: {
username: undefined,
name: undefined,
......@@ -163,12 +191,13 @@ export default {
password: undefined,
passwordEdit: undefined,
description: undefined,
dataLimit: [],//数据权限
// dataLimit: [],//数据权限
dataLimit: undefined,//数据权限
members: [],
},
editCompanyId: undefined,//编辑时公司id
baranchQuery: {
zoneId:null
zoneId: null
},
rules: {
name: [
......@@ -218,11 +247,11 @@ export default {
trigger: 'blur'
}
],
zoneId:{
zoneId: {
required: true,
message: '请选择所属片区',
},
companyId:{
companyId: {
required: true,
message: '请选择所属分公司',
},
......@@ -242,8 +271,8 @@ export default {
},
sexOptions: ['男', '女'],
zoneOptions: ['男', '女'],
dataOptions: [{id:"1", val:"所属分公司"}, {id:"2", val:"所属片区"}, {id:"3", val:"所有数据"}],
statusOptions: [{id:1, val: '开启'}, {id:2, val: '禁用'}],
dataOptions: [{id: "1", val: "所属分公司"}, {id: "2", val: "所属片区"}, {id: "3", val: "所有数据"}],
statusOptions: [{id: 1, val: '开启'}, {id: 2, val: '禁用'}],
dialogFormVisible: false,
dialogStatus: '',
userManager_btn_edit: false,
......@@ -259,7 +288,7 @@ export default {
},
tableKey: 0,
allBranchCompany: [],//所有分公司列表
list_All:[]
list_All: []
}
},
created() {
......@@ -291,7 +320,7 @@ export default {
...mapGetters([
'elements'
]),
getAllZoneList(){
getAllZoneList() {
console.log('getAllZoneList')
this.allZoneArr = getAllZone();
return getAllZone();
......@@ -317,12 +346,12 @@ export default {
/**
* 所属分公司
* */
handleSelectSubordinate(item){
handleSelectSubordinate(item) {
this.form.companyId = item.id;
this.form.companyName = item.name;
},
// 角色
handleSelect2(item){
handleSelect2(item) {
this.form.members = item.id;
},
/**
......@@ -359,12 +388,12 @@ export default {
* */
handleUpdate(row) {
this.resetTemp();
if(row.zoneId){
if (row.zoneId) {
getAllBranchCompanyByZoneId({zoneId: row.zoneId})
.then(res => {
this.allBranchCompany = res.data;
getObj(row.id).then(response => {
this.form.id= response.data.id;
this.form.id = response.data.id;
this.editCompanyId = response.data.companyId,//所属分公司id
this.form.username = response.data.username,
this.form.name = response.data.name,
......@@ -373,29 +402,34 @@ export default {
this.form.zoneId = response.data.zoneId,//所属片区
this.form.companyId = response.data.companyId,//所属分公司id
this.form.description = response.data.description
let dataLimit = [];
if(response.data.dataCompany ) {
// let dataLimit = [];
let dataLimit = undefined;
if (response.data.dataCompany) {
let companys = response.data.dataCompany.split(",");
if(companys.includes(response.data.companyId + "")) {
dataLimit.push("1");
if (companys.includes(response.data.companyId + "")) {
// dataLimit.push("1");
dataLimit = '1'
}
}
if(response.data.dataZone) {
if (response.data.dataZone) {
let zones = response.data.dataZone.split(",");
if(zones.includes(response.data.zoneId + "")) {
dataLimit.push("2");
if (zones.includes(response.data.zoneId + "")) {
// dataLimit.push("2");
dataLimit = '2'
}
}
if(response.data.dataAll && response.data.dataAll == 1) {
dataLimit.push("3");
if (response.data.dataAll && response.data.dataAll == 1) {
// dataLimit.push("3");
dataLimit = '3'
}
let mems = [];
for(let i= 1; i < 10; i++){
this.myGroups.push({name: "q"+i, id: i});
for (let i = 1; i < 10; i++) {
this.myGroups.push({name: "q" + i, id: i});
}
this.$set(this.form, "dataLimit", dataLimit);
// console.log(JSON.stringify(this.form))
getUserGroups(response.data.id).then(result => {
if(result.data){
if (result.data) {
this.myGroups = result.data;
for (let i = 0; i < result.data.length; i++) {
mems.push(result.data[i].id);
......@@ -406,6 +440,7 @@ export default {
this.dialogFormVisible = true;
this.dialogStatus = 'update';
console.log(this.form);
// console.log(JSON.stringify(this.form))
});
});
} else {
......@@ -465,7 +500,7 @@ export default {
},
querySearch(queryString, cb) {
let selectArry = [];
this.list_All.map(function(item){
this.list_All.map(function (item) {
item.value = item.name;
selectArry.push(item);
});
......@@ -484,7 +519,7 @@ export default {
set[formName].validate(valid => {
if (valid) {
this.dialogFormVisible = false;
if(this.form.passwordEdit){
if (this.form.passwordEdit) {
this.form.password = this.form.passwordEdit;
this.form.passwordEdit = undefined;
} else {
......@@ -514,11 +549,11 @@ export default {
this.form.zoneId = item;
this.form.companyId = undefined;//片区修改后所属公司联动
this.baranchQuery.zoneId = item;
if(this.baranchQuery.zoneId){
if (this.baranchQuery.zoneId) {
getAllBranchCompanyByZoneId(this.baranchQuery)
.then(response => {debugger
.then(response => {
this.allBranchCompany = response.data;
if(this.editCompanyId){
if (this.editCompanyId) {
this.form.companyId = this.editCompanyId;
this.editCompanyId = undefined;
}
......@@ -539,7 +574,8 @@ export default {
password: undefined,
passwordEdit: undefined,
description: undefined,
dataLimit: [],//数据权限
// dataLimit: [],//数据权限
dataLimit: undefined,//数据权限
members: [],
};
// this.form = {
......@@ -572,5 +608,5 @@ export default {
// });
// }
}
}
}
</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