|  |  | 
 |  |  | <script> | 
 |  |  | import GlobalWindow from '@/components/common/GlobalWindow' | 
 |  |  | import { createRoleMenu } from '@/api/system/role' | 
 |  |  | import { fetchTree as fetchMenuList } from '@/api/system/menu' | 
 |  |  | import { fetchTree as fetchMenuList, fetchTree1 } from '@/api/system/menu' | 
 |  |  | import { mapState } from 'vuex' | 
 |  |  | export default { | 
 |  |  |   name: 'MenuConfigWindow', | 
 |  |  |   components: { GlobalWindow }, | 
 |  |  | 
 |  |  |       selectedIds: [] | 
 |  |  |     } | 
 |  |  |   }, | 
 |  |  |   computed: { | 
 |  |  |     ...mapState(['userInfo']) | 
 |  |  |   }, | 
 |  |  |   methods: { | 
 |  |  |     /** | 
 |  |  |      * @role 角色对象 | 
 |  |  |      */ | 
 |  |  |     open (role, type=0) { | 
 |  |  |       fetchMenuList({}, type) | 
 |  |  |     open (role) { | 
 |  |  |       if (this.userInfo.type === 1) { | 
 |  |  |         fetchTree1({}) | 
 |  |  |         .then(records => { | 
 |  |  |           this.role = role | 
 |  |  |           this.menus = records | 
 |  |  | 
 |  |  |         .catch(e => { | 
 |  |  |           this.$tip.apiFailed(e) | 
 |  |  |         }) | 
 |  |  |       } else { | 
 |  |  |         fetchMenuList({}) | 
 |  |  |           .then(records => { | 
 |  |  |             this.role = role | 
 |  |  |             this.menus = records | 
 |  |  |             // 如果为固定角色,则固定菜单不可更改 | 
 |  |  |             this.__resetDisabled(this.menus, this.role) | 
 |  |  |             // 找出叶节点 | 
 |  |  |             role.menus = role.menus.filter(menu => role.menus.findIndex(m => m.parentId === menu.id) === -1) | 
 |  |  |             // 初始化选中 | 
 |  |  |             this.selectedIds = role.menus.map(r => r.id) | 
 |  |  |             this.visible = true | 
 |  |  |           }) | 
 |  |  |           .catch(e => { | 
 |  |  |             this.$tip.apiFailed(e) | 
 |  |  |           }) | 
 |  |  |       } | 
 |  |  |  | 
 |  |  |     }, | 
 |  |  |     // 确认选择菜单 | 
 |  |  |     confirm () { |