Commit 4c4ea099 authored by 周健威's avatar 周健威

添加数据权限相关代码

parent 71d69b01
...@@ -101,4 +101,15 @@ export function getMenuAuthority(id) { ...@@ -101,4 +101,15 @@ export function getMenuAuthority(id) {
}); });
} }
/**
*
* @param id
*/
export function getCurrentGroups() {
return fetch({
url: '/api/admin/current/groups',
method: 'get'
});
}
...@@ -49,19 +49,29 @@ ...@@ -49,19 +49,29 @@
<el-form-item v-if="dialogStatus == 'create'" label="密码" placeholder="请输入密码" prop="password"> <el-form-item v-if="dialogStatus == 'create'" label="密码" placeholder="请输入密码" prop="password">
<el-input type="password" v-model="form.password"></el-input> <el-input type="password" v-model="form.password"></el-input>
</el-form-item> </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-select>
</el-form-item>
<el-form-item label="是否开启" prop="status"> <el-form-item label="是否开启" prop="status">
<el-radio-group class="filter-item" v-model="form.status" > <el-radio-group class="filter-item" v-model="form.status" >
<el-radio v-for="item in statusOptions" :key="item" :label="item" :value="item" ></el-radio> <el-radio v-for="item in statusOptions" :key="item" :label="item" :value="item" ></el-radio>
</el-radio-group> </el-radio-group>
</el-form-item> </el-form-item>
<el-form-item label="所属片区"> <el-form-item label="所属片区" prop="zone">
<el-select class="filter-item" v-model="form.zone" placeholder="请选择"> <el-select class="filter-item" v-model="form.zone" placeholder="请选择">
<el-option v-for="(val, key, index) in getAllZone()" :key="val.code" :label="val.val" :value="val.code"> </el-option> <el-option v-for="(val, key, index) in getAllZone()" :key="val.code" :label="val.val" :value="val.code"> </el-option>
</el-select> </el-select>
</el-form-item> </el-form-item>
<el-form-item label="性别"> <el-form-item label="所属分公司" prop="companyId">
<el-select class="filter-item" v-model="form.sex" placeholder="请选择"> <el-select class="filter-item" v-model="form.companyId" placeholder="请选择分公司">
<el-option v-for="item in sexOptions" :key="item" :label="item" :value="item"> </el-option> <el-option v-for="item in allCompanies" :key="item.id" :label="item.name" :value="item.id"> </el-option>
</el-select>
</el-form-item>
<el-form-item label="所属角色" prop="groupId">
<el-select v-model="members" multiple filterable remote placeholder="请选择角色" :remote-method="remoteGroupsMethod" :loading="loading">
<el-option v-for="item in myGroups" :key="item.id" :label="item.name" :value="item.id"> </el-option>
</el-select> </el-select>
</el-form-item> </el-form-item>
<el-form-item label="描述"> <el-form-item label="描述">
...@@ -78,7 +88,7 @@ ...@@ -78,7 +88,7 @@
</template> </template>
<script> <script>
import { import{
page, page,
addObj, addObj,
getObj, getObj,
...@@ -88,11 +98,20 @@ import { ...@@ -88,11 +98,20 @@ import {
import { mapGetters } from 'vuex'; import { mapGetters } from 'vuex';
import {
getAllCompany
} from 'api/base_info/branch_company/';
import { import {
getAllZone, getAllZone,
getZone getZone
} from 'api/base_info/constant/'; } from 'api/base_info/constant/';
import {
fetchTree,
getCurrentGroups
} from 'api/admin/group/index';
export default { export default {
name: 'user', name: 'user',
data() { data() {
...@@ -102,6 +121,8 @@ export default { ...@@ -102,6 +121,8 @@ export default {
name: undefined, name: undefined,
sex: '男', sex: '男',
status: '开启', status: '开启',
zone: undefined,
companyId: undefined,
password: undefined, password: undefined,
description: undefined description: undefined
}, },
...@@ -149,6 +170,11 @@ export default { ...@@ -149,6 +170,11 @@ export default {
{ {
required: true required: true
} }
],
zone: [
{
required: true
}
] ]
}, },
list: null, list: null,
...@@ -167,6 +193,10 @@ export default { ...@@ -167,6 +193,10 @@ export default {
userManager_btn_edit: false, userManager_btn_edit: false,
userManager_btn_del: false, userManager_btn_del: false,
userManager_btn_add: false, userManager_btn_add: false,
allCompanies: {},
myGroups: [],
members: [],
loading: false,
textMap: { textMap: {
update: '编辑', update: '编辑',
create: '创建' create: '创建'
...@@ -176,6 +206,18 @@ export default { ...@@ -176,6 +206,18 @@ export default {
}, },
created() { created() {
this.getList(); this.getList();
getAllCompany(codeAndBranchCompany => {
this.allCompanies = codeAndBranchCompany;
});
getCurrentGroups(result => {
this.myGroups = result.data;
const mems = [];
for (let i = 0; i < result.data.length; i++) {
mems.push(result.data[i].id);
}
this.members = mems;
console.log(this.myGroups);
});
this.userManager_btn_edit = this.elements['userManager:btn_edit']; this.userManager_btn_edit = this.elements['userManager:btn_edit'];
this.userManager_btn_del = this.elements['userManager:btn_del']; this.userManager_btn_del = this.elements['userManager:btn_del'];
this.userManager_btn_add = this.elements['userManager:btn_add']; this.userManager_btn_add = this.elements['userManager:btn_add'];
...@@ -186,6 +228,21 @@ export default { ...@@ -186,6 +228,21 @@ export default {
]) ])
}, },
methods: { methods: {
remoteGroupsMethod(query) {
if (query !== '') {
this.loading = true;
this.loading = false;
fetchTree({
name: query
}).then(response => {
this.myGroups = response.data.rows;
// this.total = response.data.total;
this.loading = false;
});
} else {
this.myGroups = [];
}
},
getList() { getList() {
this.listLoading = true; this.listLoading = true;
page(this.listQuery) page(this.listQuery)
...@@ -291,12 +348,28 @@ export default { ...@@ -291,12 +348,28 @@ export default {
sex: '男', sex: '男',
status: '开启', status: '开启',
zone: undefined, zone: undefined,
companyId: undefined,
password: undefined, password: undefined,
description: undefined description: undefined
}; };
}, },
getAllZone, getAllZone,
getZone getZone
// initGroups() {
// getUsers(this.groupId).then(response => {
// this.lItems = response.data.leaders;
// this.mItems = response.data.members;
// const mems = [], leas = [];
// for (let i = 0; i < response.data.members.length; i++) {
// mems.push(response.data.members[i].id);
// }
// for (let i = 0; i < response.data.leaders.length; i++) {
// leas.push(response.data.leaders[i].id);
// }
// this.members = mems;
// this.leaders = leas;
// });
// }
} }
} }
</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