Commit d486defb authored by lixy's avatar lixy

后台用户管理

parent 50cb5450
...@@ -69,28 +69,33 @@ ...@@ -69,28 +69,33 @@
</el-select> </el-select>
</el-form-item> </el-form-item>
<el-form-item label="所属分公司" prop="companyId"> <el-form-item label="所属分公司" prop="companyId">
<!-- <el-autocomplete--> <!--<el-autocomplete-->
<!-- class="inline-input"--> <!--class="inline-input"-->
<!-- v-model="form.state2"--> <!--v-model="form.companyName"-->
<!-- :fetch-suggestions="querySearch"--> <!--:fetch-suggestions="querySearch"-->
<!-- placeholder="请输入内容"--> <!--placeholder="请输入内容"-->
<!-- @select="handleSelect1"--> <!--@select="handleSelectSubordinate"-->
<!-- ></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="item in allCompaniesArr" :key="item.id" :label="item.name" :value="item.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="groupId"> <el-form-item label="所属角色" prop="members">
<el-select v-model="form.members" multiple filterable remote placeholder="请选择角色" :remote-method="remoteGroupsMethod" :loading="loading"> <el-select v-model="form.members" multiple filterable placeholder="请选择" :loading="loading" :remote-method="remoteGroupsMethod" remote @change="changeMembers">
<el-option v-for="item in myGroups" :key="item.id" :label="item.name" :value="item.id"> </el-option> <el-option
v-for="item in myGroups"
:key="item.id"
:label="item.name"
:value="item.id">
</el-option>
</el-select> </el-select>
<!-- <el-select v-model="form.members" multiple filterable placeholder="请选择角色" >-->
<!-- <el-option v-for="item in myGroups" :key="item.id" :label="item.name" :value="item.id"> </el-option>-->
<!-- </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> <!--<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>
</el-form-item> </el-form-item>
<el-form-item label="描述"> <el-form-item label="描述">
...@@ -142,8 +147,9 @@ export default { ...@@ -142,8 +147,9 @@ export default {
name: undefined, name: undefined,
sex: '男', sex: '男',
status: 1, status: 1,
zoneId: undefined, zoneId: undefined,//所属片区
companyId: undefined, companyId: undefined,//所属分公司id
companyName: "",//所属公司
state2: '', state2: '',
password: undefined, password: undefined,
passwordEdit: undefined, passwordEdit: undefined,
...@@ -202,14 +208,19 @@ export default { ...@@ -202,14 +208,19 @@ export default {
trigger: 'blur' trigger: 'blur'
} }
], ],
zoneId: [ zoneId:{
{
type: 'integer',
required: true, required: true,
message: '请选择', message: '请选择所属片区',
trigger: 'blur' },
} companyId:{
], required: true,
message: '请选择所属分公司',
},
// members:{
// type: 'array',
// required: true,
// message: '请选择角色'
// }
}, },
list: null, list: null,
total: null, total: null,
...@@ -230,13 +241,14 @@ export default { ...@@ -230,13 +241,14 @@ export default {
userManager_btn_add: false, userManager_btn_add: false,
allCompanies: {}, allCompanies: {},
allCompaniesArr: [], allCompaniesArr: [],
myGroups: [], myGroups: [],//角色列表
loading: false, loading: false,
textMap: { textMap: {
update: '编辑', update: '编辑',
create: '创建' create: '创建'
}, },
tableKey: 0 tableKey: 0,
allBranchCompany: [],//所有分公司列表
} }
}, },
created() { created() {
...@@ -248,6 +260,7 @@ export default { ...@@ -248,6 +260,7 @@ export default {
getAllCompany(codeAndBranchCompany => { getAllCompany(codeAndBranchCompany => {
this.allCompanies = codeAndBranchCompany; this.allCompanies = codeAndBranchCompany;
}); });
this.remoteGroupsMethod('');
// getCurrentGroups().then(result => { // getCurrentGroups().then(result => {
// this.myGroups = result.data; // this.myGroups = result.data;
// const mems = []; // const mems = [];
...@@ -273,7 +286,7 @@ export default { ...@@ -273,7 +286,7 @@ export default {
methods: { methods: {
getAllZone, getAllZone,
remoteGroupsMethod(query) { remoteGroupsMethod(query) {
if (query !== '') { // if (query !== '') {
this.loading = true; this.loading = true;
this.loading = false; this.loading = false;
fetchTree({ fetchTree({
...@@ -283,10 +296,20 @@ export default { ...@@ -283,10 +296,20 @@ export default {
// this.total = response.data.total; // this.total = response.data.total;
this.loading = false; this.loading = false;
}); });
} else { // } else {
this.myGroups = []; // this.myGroups = [];
} // }
},
/**
* 所属分公司
* */
handleSelectSubordinate(item){
this.form.companyId = item.id;
this.form.companyName = item.name;
}, },
/**
* 获取后台用户管理列表数据
* */
getList() { getList() {
this.listLoading = true; this.listLoading = true;
page(this.listQuery) page(this.listQuery)
...@@ -313,41 +336,65 @@ export default { ...@@ -313,41 +336,65 @@ export default {
this.dialogStatus = 'create'; this.dialogStatus = 'create';
this.dialogFormVisible = true; this.dialogFormVisible = true;
}, },
/**
* 编辑后台账号
* */
handleUpdate(row) { handleUpdate(row) {
this.resetTemp(); this.resetTemp();
getObj(row.id) if(row.zoneId){
.then(response => { getAllBranchCompanyByZoneId({zoneId: row.zoneId})
this.form = response.data; .then(res => {
let dataLimit = new Array(); this.allBranchCompany = res.data;
if(response.data.dataCompany != undefined&& response.data.dataCompany != '') { getObj(row.id).then(response => {
this.form.username = response.data.username,
this.form.name = response.data.name,
this.form.sex = response.data.sex,
this.form.status = response.data.status,
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 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");
} }
} }
if(response.data.dataZone != undefined && 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");
} }
} }
if(response.data.dataAll != undefined && response.data.dataAll == 1) { if(response.data.dataAll && response.data.dataAll == 1) {
dataLimit.push("3"); dataLimit.push("3");
} }
let mems = [];
for(let i= 1; i < 10; i++){
this.myGroups.push({name: "q"+i, id: i});
}
this.$set(this.form, "dataLimit", dataLimit); this.$set(this.form, "dataLimit", dataLimit);
getUserGroups(response.data.id).then(result => { getUserGroups(response.data.id).then(result => {
if(result.data){
this.myGroups = result.data; this.myGroups = result.data;
let mems = [];
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);
} }
this.form.members = mems; this.$set(this.form, "members", mems)
}
}); });
this.dialogFormVisible = true; this.dialogFormVisible = true;
this.dialogStatus = 'update'; this.dialogStatus = 'update';
console.log(this.form);
});
}); });
} else {
this.dialogFormVisible = true;
this.dialogStatus = 'update';
}
},
changeMembers(){debugger
this.$set(this.form, "members", this.form.members)
}, },
handleDelete(row) { handleDelete(row) {
this.$confirm('此操作将永久删除, 是否继续?', '提示', { this.$confirm('此操作将永久删除, 是否继续?', '提示', {
...@@ -369,18 +416,11 @@ export default { ...@@ -369,18 +416,11 @@ export default {
}); });
}); });
}, },
/**
* 创建后台账号
* */
create(formName) { create(formName) {
const set = this.$refs; const set = this.$refs;
if(!this.form.state2 || this.form.state2 == "全部"){
this.form.companyId = undefined;
// this.$notify({
// title: '失败',
// message: '请选择分公司',
// type: 'warning',
// duration: 2000
// });
// return;
}
set[formName].validate(valid => { set[formName].validate(valid => {
if (valid) { if (valid) {
addObj(this.form) addObj(this.form)
...@@ -405,7 +445,7 @@ export default { ...@@ -405,7 +445,7 @@ export default {
}, },
querySearch(queryString, cb) { querySearch(queryString, cb) {
let selectArry = []; let selectArry = [];
this.allCompaniesArr.map(function(item){ this.allBranchCompany.map(function(item){
item.value = item.name; item.value = item.name;
selectArry.push(item); selectArry.push(item);
}); });
...@@ -414,14 +454,6 @@ export default { ...@@ -414,14 +454,6 @@ export default {
// 调用 callback 返回建议列表的数据 // 调用 callback 返回建议列表的数据
cb(results); cb(results);
}, },
handleSelect1(item){
if(item.value == "全部"){
this.form.companyId = undefined;
} else {
this.form.companyId = item.id;
}
console.log(item);
},
createFilter(queryString) { createFilter(queryString) {
return (restaurant) => { return (restaurant) => {
return (restaurant.name.indexOf(queryString.toLowerCase()) != -1); return (restaurant.name.indexOf(queryString.toLowerCase()) != -1);
...@@ -454,33 +486,30 @@ export default { ...@@ -454,33 +486,30 @@ export default {
} }
}); });
}, },
//监听change事件 /**
* 所属片区改变事件
* @param item
*/
getProvinceRegions(item) { getProvinceRegions(item) {
this.form.zoneId = item this.form.zoneId = item;
console.log('getProvinceRegions:item='+JSON.stringify(item)) this.form.companyId = undefined;//片区修改后所属公司联动
this.baranchQuery.zoneId = item;
// console.log('begin'+JSON.stringify(this.allCompaniesArr))
this.baranchQuery.zoneId = item
getAllBranchCompanyByZoneId(this.baranchQuery) getAllBranchCompanyByZoneId(this.baranchQuery)
.then(response => { .then(response => {
this.allCompaniesArr = response.data; this.allBranchCompany = response.data;
// console.log('end'+JSON.stringify(this.allCompaniesArr))
}) })
}, },
resetTemp() { resetTemp() {
this.form = { this.form = {
username: undefined, username: undefined,
name: undefined, name: undefined,
sex: '男', sex: '男',
status: 1,
zoneId: undefined, zoneId: undefined,
passwordEdit:undefined, passwordEdit:undefined,
companyId: undefined, companyId: undefined,
state2: '',
password: "", password: "",
description: undefined, description: undefined,
dataLimit: [], dataLimit: undefined,
members: [], members: [],
}; };
}, },
......
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