| | |
| | | <template> |
| | | <view class="container"> |
| | | <view> |
| | | <role-list :roleData="roleData"></role-list> |
| | | <role-list :roleData="roleData" @select="select"></role-list> |
| | | </view> |
| | | |
| | | |
| | | <view class="cur-btn"> |
| | | <u-button type="primary" text="确定"></u-button> |
| | | <u-button @click="submit" type="primary" text="确定"></u-button> |
| | | </view> |
| | | |
| | | <u-loading-page :loading="loading"></u-loading-page> |
| | | </view> |
| | | </template> |
| | | |
| | | <script> |
| | | import store from "@/store/index.js" |
| | | import roleList from "@/subPackage/user/components/roleList.vue" |
| | | |
| | | import { |
| | | dynamicMenu, |
| | | getRoleListByIds, |
| | | } from "@/api/system/role.js" |
| | | export default { |
| | | components: { |
| | | roleList |
| | | }, |
| | | |
| | | |
| | | data() { |
| | | return { |
| | | cellGroupData: [ |
| | | { |
| | | title: '我的家人', |
| | | icon: 'account-fill', |
| | | url: '' |
| | | }, |
| | | { |
| | | title: '切换角色', |
| | | icon: 'account-fill', |
| | | url: '' |
| | | }, |
| | | { |
| | | title: '修改密码', |
| | | icon: 'account-fill', |
| | | url: '' |
| | | }, |
| | | { |
| | | title: '退出登录', |
| | | icon: 'account-fill', |
| | | url: '' |
| | | } |
| | | ], |
| | | roleData: [ |
| | | { |
| | | roleName: '居民', |
| | | iconName: 'account-fill' |
| | | }, |
| | | { |
| | | roleName: '场所负责人', |
| | | iconName: 'account-fill' |
| | | }, |
| | | { |
| | | roleName: '网格员', |
| | | iconName: 'account-fill' |
| | | }, |
| | | { |
| | | roleName: '系统管理员', |
| | | iconName: 'account-fill' |
| | | }, |
| | | ] |
| | | roleData: [], |
| | | selectRole: {}, |
| | | |
| | | loading: false, |
| | | } |
| | | }, |
| | | created() { |
| | | this.getUserRole() |
| | | }, |
| | | |
| | | methods: { |
| | | |
| | | //获取当前角色的所有权限列表 |
| | | async getUserRole() { |
| | | this.loading = !this.loading |
| | | |
| | | const res = await getRoleListByIds({ |
| | | roleIds: this.userInfo.role_id |
| | | }) |
| | | this.roleData = [] |
| | | let data = res.data |
| | | console.log(data) |
| | | data.forEach(e => { |
| | | |
| | | this.roleData.push({ |
| | | id: e.id, |
| | | iconName: 'account-fill', |
| | | roleName: e.roleName, |
| | | active: e.id == this.activeRoleId ? true : false |
| | | }) |
| | | }) |
| | | |
| | | this.loading = !this.loading |
| | | |
| | | }, |
| | | |
| | | select(item) { |
| | | this.selectRole = item |
| | | }, |
| | | |
| | | async submit() { |
| | | //保存当前激活的角色 |
| | | store.commit("setActiveRoleId", this.selectRole.id) |
| | | |
| | | //获取角色菜单 |
| | | const res = await dynamicMenu(this.selectRole.id) |
| | | |
| | | //把菜单存入store中 |
| | | let data = res.data |
| | | const appMenu = data.filter(e => e.name == 'app')[0] |
| | | console.log("菜单:", appMenu) |
| | | |
| | | |
| | | this.$u.func.showToast("切换角色成功") |
| | | } |
| | | } |
| | | } |
| | | </script> |
| | |
| | | display: flex; |
| | | flex-direction: column; |
| | | background: #F9F9FA; |
| | | |
| | | |
| | | .cur-btn { |
| | | margin: 0 20rpx; |
| | | position: absolute; |