mirror of
				https://gitee.com/hhyykk/ipms-sjy.git
				synced 2025-10-31 18:28:43 +08:00 
			
		
		
		
	v3.8.4:优化页面内嵌iframe切换tab不刷新数据
This commit is contained in:
		
							
								
								
									
										24
									
								
								yudao-ui-admin/src/layout/components/IframeToggle/index.vue
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										24
									
								
								yudao-ui-admin/src/layout/components/IframeToggle/index.vue
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,24 @@ | ||||
| <template> | ||||
|   <transition-group name="fade-transform" mode="out-in"> | ||||
|     <inner-link | ||||
|         v-for="(item, index) in iframeViews" | ||||
|         :key="item.path" | ||||
|         :iframeId="'iframe' + index" | ||||
|         v-show="$route.path === item.path" | ||||
|         :src="item.meta.link" | ||||
|     ></inner-link> | ||||
|   </transition-group> | ||||
| </template> | ||||
|  | ||||
| <script> | ||||
| import InnerLink from "../InnerLink/index.vue" | ||||
|  | ||||
| export default { | ||||
|   components: { InnerLink }, | ||||
|   computed: { | ||||
|     iframeViews() { | ||||
|       return this.$store.state.tagsView.iframeViews | ||||
|     } | ||||
|   } | ||||
| } | ||||
| </script> | ||||
							
								
								
									
										47
									
								
								yudao-ui-admin/src/layout/components/InnerLink/index.vue
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										47
									
								
								yudao-ui-admin/src/layout/components/InnerLink/index.vue
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,47 @@ | ||||
| <template> | ||||
|   <div :style="'height:' + height" v-loading="loading" element-loading-text="正在加载页面,请稍候!"> | ||||
|     <iframe | ||||
|         :id="iframeId" | ||||
|         style="width: 100%; height: 100%" | ||||
|         :src="src" | ||||
|         frameborder="no" | ||||
|     ></iframe> | ||||
|   </div> | ||||
| </template> | ||||
|  | ||||
| <script> | ||||
| export default { | ||||
|   props: { | ||||
|     src: { | ||||
|       type: String, | ||||
|       default: "/" | ||||
|     }, | ||||
|     iframeId: { | ||||
|       type: String | ||||
|     } | ||||
|   }, | ||||
|   data() { | ||||
|     return { | ||||
|       loading: false, | ||||
|       height: document.documentElement.clientHeight - 94.5 + "px;" | ||||
|     }; | ||||
|   }, | ||||
|   mounted() { | ||||
|     var _this = this; | ||||
|     const iframeId = ("#" + this.iframeId).replace(/\//g, "\\/"); | ||||
|     const iframe = document.querySelector(iframeId); | ||||
|     // iframe页面loading控制 | ||||
|     if (iframe.attachEvent) { | ||||
|       this.loading = true; | ||||
|       iframe.attachEvent("onload", function () { | ||||
|         _this.loading = false; | ||||
|       }); | ||||
|     } else { | ||||
|       this.loading = true; | ||||
|       iframe.onload = function () { | ||||
|         _this.loading = false; | ||||
|       }; | ||||
|     } | ||||
|   } | ||||
| }; | ||||
| </script> | ||||
		Reference in New Issue
	
	Block a user
	 YunaiV
					YunaiV