116 lines
		
	
	
		
			3.6 KiB
		
	
	
	
		
			Vue
		
	
	
	
	
	
		
		
			
		
	
	
			116 lines
		
	
	
		
			3.6 KiB
		
	
	
	
		
			Vue
		
	
	
	
	
	
|   | <template> | |||
|  |   <el-container id="repository" :style="{'width': '100%', 'height': mainHeight}"> | |||
|  |     <el-aside width="280px" style="overflow: hidden;border-right: 1px solid #F2F2F2"> | |||
|  |       <RepositoryMain v-if="reFresh"  ref="repositoryMain" key="repositoryMain"/> | |||
|  |     </el-aside> | |||
|  |     <el-main> | |||
|  |       <component ref="component" :is="mainContent" :uuid="uuid" :key="Math.random()" :refreshTreeParentNode="refreshTreeParentNode" :refreshTreeNode="refreshTreeNode" :treeNode="treeNode"></component> | |||
|  |     </el-main> | |||
|  |   </el-container> | |||
|  | </template> | |||
|  | 
 | |||
|  | <script> | |||
|  |   import RepositoryMain from "./RepositoryMain"; | |||
|  |   import RepositoryMainList from "./RepositoryMainList"; | |||
|  |   import RepositoryList from "./RepositoryList"; | |||
|  |     export default { | |||
|  |       name: "Repository", | |||
|  |       components: {RepositoryMain, RepositoryMainList, RepositoryList}, | |||
|  |       data(){ | |||
|  |         return { | |||
|  |           mainHeight: (parseInt(this.$store.getters.getTopMainHeightFn)) + 'px', | |||
|  |           mainContent: '', | |||
|  |           uuid: '', | |||
|  |           reFresh: false, | |||
|  |           treeNode:{}, | |||
|  |         } | |||
|  |       }, | |||
|  |       provide: function() { | |||
|  |         return { | |||
|  |           openRepositoryList: this.openRepositoryList, | |||
|  |           transferTreeNode: this.transferTreeNode | |||
|  |         } | |||
|  |       }, | |||
|  |       created() { | |||
|  |         this.getRouteParam(this.$route.query); | |||
|  |       }, | |||
|  |       methods: { | |||
|  |         getRouteParam(params) { | |||
|  |           if (JSON.stringify(params) == '{}' || !params.id) {// 无搜索,显示全部树和最近列表
 | |||
|  |             this.reFresh = false; | |||
|  |             this.mainContent = ''; | |||
|  |             this.$nextTick(()=>{ | |||
|  |               this.reFresh = true; | |||
|  |               this.mainContent = 'RepositoryMainList'; | |||
|  |             }); | |||
|  |           } else {// 有搜索,定位到符合条件的树,并且点击
 | |||
|  |             this.$refs.repositoryMain.queryTreeByIdAndPath(params.id, params.versionId, params.path); | |||
|  |           } | |||
|  |         }, | |||
|  |         openRepositoryList(id) { | |||
|  |           this.mainContent = ''; | |||
|  |           this.uuid = id; | |||
|  |           this.mainContent = 'RepositoryList'; | |||
|  |         }, | |||
|  |         transferTreeNode(obj){ | |||
|  |           this.treeNode = obj; | |||
|  |         }, | |||
|  |         refreshTreeParentNode(id) {// 刷新当前节点的父节点,即重新加载id节点
 | |||
|  |           this.$refs.repositoryMain.refreshParentNode(id); | |||
|  |         }, | |||
|  |         refreshTreeNode(id) {// 刷新当前节点的子节点,即重新加载id节点(关闭+展开)
 | |||
|  |           this.$refs.repositoryMain.refreshNode(id); | |||
|  |         } | |||
|  |       }, | |||
|  |       computed: { | |||
|  |         listenTopMainHeight() { | |||
|  |           return this.$store.getters.getTopMainHeightFn; | |||
|  |         }, | |||
|  |         listenWsId() { | |||
|  |           return this.$store.getters.getWsIdFn; | |||
|  |         }, | |||
|  |         listenTeamId() { | |||
|  |           return this.$store.getters.getTeamIdFn; | |||
|  |         } | |||
|  |       }, | |||
|  |       watch : { | |||
|  |         listenTopMainHeight: function (newd, old) { | |||
|  |           this.mainHeight = (parseInt(newd)) + 'px'; | |||
|  |         }, | |||
|  |         listenWsId: function(newd, old) { | |||
|  |           this.reFresh = false; | |||
|  |           this.mainContent = ''; | |||
|  |           this.$nextTick(()=>{ | |||
|  |             this.reFresh = true; | |||
|  |             this.mainContent = 'RepositoryMainList'; | |||
|  |           }); | |||
|  |         }, | |||
|  |         listenTeamId: function(newd, old) { | |||
|  |           this.reFresh = false; | |||
|  |           this.mainContent = ''; | |||
|  |           this.$nextTick(()=>{ | |||
|  |             this.reFresh = true; | |||
|  |             this.mainContent = 'RepositoryMainList'; | |||
|  |           }); | |||
|  |         } | |||
|  |       }, | |||
|  |       beforeRouteUpdate(to, from, next){ | |||
|  |         this.getRouteParam(to.query); | |||
|  |         next(); | |||
|  |       } | |||
|  |     } | |||
|  | </script> | |||
|  | 
 | |||
|  | <style scoped> | |||
|  |   #repository >>> .el-main { | |||
|  |     display: block; | |||
|  |     -webkit-box-flex: 1; | |||
|  |     -ms-flex: 1; | |||
|  |     flex: 1; | |||
|  |     -ms-flex-preferred-size: auto; | |||
|  |     flex-basis: auto; | |||
|  |     overflow: auto; | |||
|  |     padding: 0; | |||
|  |   } | |||
|  | </style> |