You can not select more than 25 topics
			Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
		
		
		
		
		
			
		
			
				
					
					
						
							129 lines
						
					
					
						
							3.4 KiB
						
					
					
				
			
		
		
		
			
			
			
				
					
				
				
					
				
			
		
		
	
	
							129 lines
						
					
					
						
							3.4 KiB
						
					
					
				| <template> | |
|   <div | |
|     v-loading.fullscreen.lock="loading" | |
|     :element-loading-text="$t('loading')" | |
|     :class="[ | |
|       'g-bd', | |
|       { 'z-sidebar--fold': $store.state.sidebarFold }, | |
|       { | |
|         'z-sidebar--noside': true, | |
|       }, | |
|     ]" | |
|   > | |
|     <template v-if="!loading"> | |
|       <main-navbar ref="ref_navbar" /> | |
|       <div class="g-cnt"> | |
|         <main-content | |
|           v-if="!$store.state.contentIsNeedRefresh" | |
|           @changeCustomerName="changeCustomerName" | |
|         /> | |
|       </div> | |
|     </template> | |
|   </div> | |
| </template> | |
| 
 | |
| <script> | |
| import MainNavbar from "./main-navbar"; | |
| import MainContent from "./main-content"; | |
| import debounce from "lodash/debounce"; | |
| import { mapGetters } from "vuex"; | |
| import nextTick from "dai-js/tools/nextTick"; | |
| import { requestPost } from "@/js/dai/request"; | |
| 
 | |
| export default { | |
|   provide() { | |
|     return { | |
|       // 刷新 | |
|       refresh() { | |
|         this.$store.state.contentIsNeedRefresh = true; | |
|         this.$nextTick(() => { | |
|           this.$store.state.contentIsNeedRefresh = false; | |
|         }); | |
|       }, | |
|     }; | |
|   }, | |
|   data() { | |
|     return { | |
|       loading: true, | |
|       userType: localStorage.getItem("userType"), | |
|     }; | |
|   }, | |
|   components: { | |
|     MainNavbar, | |
|     MainContent, | |
|   }, | |
| 
 | |
|   watch: { | |
|     $route: "routeHandle", | |
|   }, | |
|   async created() { | |
|     this.windowResizeHandle(); | |
|     this.routeHandle(this.$route); | |
|     Promise.all([this.getWorkUserInfo()]).then(() => { | |
|       this.loading = false; | |
|     }); | |
|   }, | |
|   computed: {}, | |
|   methods: { | |
|     changeCustomerName(customerName) { | |
|       this.$refs["ref_navbar"].changeCustomerName(customerName); | |
|     }, | |
|     // 窗口改变大小 | |
|     windowResizeHandle() { | |
|       this.$store.state.sidebarFold = | |
|         document.documentElement["clientWidth"] <= 992 || false; | |
|       window.addEventListener( | |
|         "resize", | |
|         debounce(() => { | |
|           this.$store.state.sidebarFold = | |
|             document.documentElement["clientWidth"] <= 992 || false; | |
|         }, 150) | |
|       ); | |
|     }, | |
|     // 路由, 监听 | |
|     routeHandle(route) { | |
|       if (!route.meta.isTab) { | |
|         return false; | |
|       } | |
|       var tab = this.$store.state.contentTabs.filter( | |
|         (item) => item.name === route.name | |
|       )[0]; | |
|       if (!tab) { | |
|         tab = { | |
|           ...window.SITE_CONFIG["contentTabDefault"], | |
|           ...route.meta, | |
|           name: route.name, | |
|           params: { ...route.params }, | |
|           query: { ...route.query }, | |
|         }; | |
|         this.$store.state.contentTabs = | |
|           this.$store.state.contentTabs.concat(tab); | |
|       } | |
| 
 | |
|       this.$store.state.mainShuju.activeName = tab.menuId; | |
|       this.$store.state.mainShuju.contentTabsActiveName = tab.name; | |
|     }, | |
| 
 | |
|     // 获取当前管理员信息 | |
|     async getWorkUserInfo() { | |
|       const url = "/epmetuser/customerstaff/staffbasicinfo"; | |
|       let params = {}; | |
|       const { data, code, msg } = await requestPost(url, params); | |
|       if (code === 0) { | |
|         this.$store.state.user = { ...data }; | |
|         console.log("user---hahha", this.$store.state.user); | |
|         localStorage.setItem("roleList", data.roleList); | |
|         localStorage.setItem("customerId", data.customerId); | |
|         localStorage.setItem("staffId", data.id); | |
|         if (!localStorage.getItem("customerName")) { | |
|           localStorage.setItem("customerName", data.customerName || ""); | |
|         } | |
|       } else { | |
|         this.$message.error(rspMsg); | |
|       } | |
|     }, | |
|   }, | |
| }; | |
| </script> | |
| 
 | |
| <style lang="scss" src="@/assets/scss/main-shuju.scss" scoped></style>
 | |
| 
 |