62 lines
		
	
	
		
			1.4 KiB
		
	
	
	
		
			Vue
		
	
	
	
	
	
			
		
		
	
	
			62 lines
		
	
	
		
			1.4 KiB
		
	
	
	
		
			Vue
		
	
	
	
	
	
| <template>
 | |
|   <keep-alive include="GmList">
 | |
|     <component :is="currentPage" v-bind="$props" @change="onChange"/>
 | |
|   </keep-alive>
 | |
| </template>
 | |
| 
 | |
| <script>
 | |
| import List from './components/list'
 | |
| import ApplyList from './components/ApplyList'
 | |
| import Add from './components/add'
 | |
| import ApplyDetail from './components/ApplyDetail'
 | |
| import ApplyAdd from './components/ApplyAdd'
 | |
| import Family from './components/Family'
 | |
| import MonitorUser from './components/MonitorUser'
 | |
| import GmList from "./components/gmList";
 | |
| 
 | |
| export default {
 | |
|   name: "AppGridMember",
 | |
|   label: "网格管理员",
 | |
|   props: {
 | |
|     instance: Function,
 | |
|     dict: Object,
 | |
|     permissions: Function
 | |
|   },
 | |
|   computed: {
 | |
|     currentPage() {
 | |
|       let {hash} = this.$route
 | |
|       return hash == "#Family" ? Family :
 | |
|           hash == "#MonitorUser" ? MonitorUser :
 | |
|               hash == "#Add" ? Add :
 | |
|                   hash == "#ApplyAdd" ? ApplyAdd :
 | |
|                       hash == "#ApplyDetail" ? ApplyDetail :
 | |
|                           GmList
 | |
|     }
 | |
|   },
 | |
|   components: {
 | |
|     GmList,
 | |
|     Add,
 | |
|     List,
 | |
|     Family,
 | |
|     ApplyList,
 | |
|     ApplyDetail,
 | |
|     MonitorUser,
 | |
|     ApplyAdd
 | |
|   },
 | |
| 
 | |
|   methods: {
 | |
|     onChange(data) {
 | |
|       let {type, params: query} = data,
 | |
|           hash = ["ApplyList", "list"].includes(type) ? "" : "#" + type
 | |
|       this.$router.push({hash, query})
 | |
|     }
 | |
|   }
 | |
| }
 | |
| </script>
 | |
| 
 | |
| <style lang="scss">
 | |
| .AppGridMember {
 | |
|   height: 100%;
 | |
| }
 | |
| </style>
 |