| 
					
				 | 
			
			
				@@ -24,33 +24,63 @@ import { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				   getCurrentInstance, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				   ComputedRef 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 } from "vue"; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-import { RouteConfigs, relativeStorageType, tagsViewsType } from "../../types"; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-import { emitter } from "/@/utils/mitt"; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-import { templateRef } from "@vueuse/core"; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-import { handleAliveRoute, delAliveRoutes } from "/@/router"; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-import { storageLocal } from "/@/utils/storage"; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-import { useRoute, useRouter } from "vue-router"; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-import { usePermissionStoreHook } from "/@/store/modules/permission"; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-import { toggleClass, removeClass, hasClass } from "/@/utils/operate"; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-import { transformI18n } from "/@/utils/i18n"; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import close from "/@/assets/svg/close.svg"; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import refresh from "/@/assets/svg/refresh.svg"; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import closeAll from "/@/assets/svg/close_all.svg"; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import closeLeft from "/@/assets/svg/close_left.svg"; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+import arrowLeft from "/@/assets/svg/arrow-left.svg"; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+import arrowRight from "/@/assets/svg/arrow-right.svg"; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import closeOther from "/@/assets/svg/close_other.svg"; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import closeRight from "/@/assets/svg/close_right.svg"; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-let refreshButton = "refresh-button"; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-const instance = getCurrentInstance(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+import { emitter } from "/@/utils/mitt"; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+import { templateRef } from "@vueuse/core"; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+import { transformI18n } from "/@/utils/i18n"; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+import { storageLocal } from "/@/utils/storage"; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+import { useRoute, useRouter } from "vue-router"; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+import { handleAliveRoute, delAliveRoutes } from "/@/router"; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+import { usePermissionStoreHook } from "/@/store/modules/permission"; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+import { toggleClass, removeClass, hasClass } from "/@/utils/operate"; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+import { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  RouteConfigs, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  relativeStorageType, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  tagsViewsType, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  scrollbarDomType 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+} from "../../types"; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-// 响应式storage 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-let relativeStorage: relativeStorageType; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 const route = useRoute(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 const router = useRouter(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+const translateX = ref<number>(0); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+const activeIndex = ref<number>(-1); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+let refreshButton = "refresh-button"; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+const instance = getCurrentInstance(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+let relativeStorage: relativeStorageType; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 const showTags = ref(storageLocal.getItem("tagsVal") || false); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+const tabDom = templateRef<HTMLElement | null>("tabDom", null); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 const containerDom = templateRef<HTMLElement | null>("containerDom", null); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-const activeIndex = ref(-1); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+const scrollbarDom = templateRef<scrollbarDomType>("scrollbarDom", null); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+const handleScroll = (offset: number): void => { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  const scrollbarDomWidth = scrollbarDom.value?.wrap 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    ? scrollbarDom.value?.wrap.offsetWidth 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    : 0; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  const tabDomWidth = tabDom.value ? tabDom.value.offsetWidth : 0; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  if (offset > 0) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    translateX.value = Math.min(0, translateX.value + offset); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  } else { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    if (scrollbarDomWidth < tabDomWidth) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      if (translateX.value >= -(tabDomWidth - scrollbarDomWidth)) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        translateX.value = Math.max( 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          translateX.value + offset, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          scrollbarDomWidth - tabDomWidth 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        ); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    } else { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      translateX.value = 0; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+}; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 const tagsViews = ref<Array<tagsViewsType>>([ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				   { 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -469,40 +499,55 @@ onBeforeMount(() => { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 <template> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				   <div ref="containerDom" class="tags-view" v-if="!showTags"> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    <el-scrollbar wrap-class="scrollbar-wrapper" class="scroll-container"> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    <arrowLeft @click="handleScroll(200)" /> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    <el-scrollbar 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      tag="span" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      ref="scrollbarDom" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      wrap-class="scrollbar-wrapper" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      class="scroll-container" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    > 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				       <div 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        v-for="(item, index) in dynamicTagList" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        :key="index" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        :ref="'dynamic' + index" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        :class="[ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-          'scroll-item is-closable', 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-          $route.path === item.path ? 'is-active' : '', 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-          $route.path === item.path && showModel === 'card' ? 'card-active' : '' 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        ]" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        @contextmenu.prevent="openMenu(item, $event)" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        @mouseenter.prevent="onMouseenter(item, index)" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        @mouseleave.prevent="onMouseleave(item, index)" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        class="tab" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        ref="tabDom" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        :style="{ transform: `translateX(${translateX}px)` }" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				       > 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        <router-link :to="item.path" @click="tagOnClick(item)">{{ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-          transformI18n(item.meta.title, item.meta.i18n) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        }}</router-link> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        <el-icon 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-          v-if=" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            ($route.path === item.path && index !== 0) || 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            (index === activeIndex && index !== 0) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-          " 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-          class="el-icon-close" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-          @click="deleteMenu(item)" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        > 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-          <CloseBold /> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        </el-icon> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         <div 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-          :ref="'schedule' + index" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-          v-if="showModel !== 'card'" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-          :class="[$route.path === item.path ? 'schedule-active' : '']" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        ></div> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          :ref="'dynamic' + index" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          v-for="(item, index) in dynamicTagList" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          :key="index" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          :class="[ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            'scroll-item is-closable', 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            $route.path === item.path ? 'is-active' : '', 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            $route.path === item.path && showModel === 'card' 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+              ? 'card-active' 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+              : '' 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          ]" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          @contextmenu.prevent="openMenu(item, $event)" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          @mouseenter.prevent="onMouseenter(item, index)" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          @mouseleave.prevent="onMouseleave(item, index)" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        > 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          <router-link :to="item.path" @click="tagOnClick(item)">{{ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            transformI18n(item.meta.title, item.meta.i18n) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          }}</router-link> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          <el-icon 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            v-if=" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+              ($route.path === item.path && index !== 0) || 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+              (index === activeIndex && index !== 0) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            " 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            class="el-icon-close" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            @click="deleteMenu(item)" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          > 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            <CloseBold /> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          </el-icon> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          <div 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            :ref="'schedule' + index" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            v-if="showModel !== 'card'" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            :class="[$route.path === item.path ? 'schedule-active' : '']" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          ></div> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        </div> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				       </div> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     </el-scrollbar> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    <arrowRight @click="handleScroll(-200)" /> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     <!-- 右键菜单按钮 --> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     <transition name="el-zoom-in-top"> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				       <ul 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -563,277 +608,5 @@ onBeforeMount(() => { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 </template> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 <style lang="scss" scoped> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-@keyframes scheduleInWidth { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-  from { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    width: 0; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-  } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-  to { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    width: 100%; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-  } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-@keyframes scheduleOutWidth { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-  from { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    width: 100%; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-  } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-  to { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    width: 0; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-  } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-@-webkit-keyframes rotate { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-  from { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    -webkit-transform: rotate(0deg); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-  } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-  to { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    -webkit-transform: rotate(360deg); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-  } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-@-moz-keyframes rotate { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-  from { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    -moz-transform: rotate(0deg); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-  } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-  to { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    -moz-transform: rotate(360deg); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-  } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-@-o-keyframes rotate { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-  from { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    -o-transform: rotate(0deg); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-  } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-  to { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    -o-transform: rotate(360deg); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-  } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-@keyframes rotate { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-  from { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    transform: rotate(0deg); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-  } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-  to { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    transform: rotate(360deg); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-  } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-.tags-view { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-  width: 100%; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-  font-size: 14px; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-  display: flex; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-  box-shadow: 0 0 1px #888; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-  .scroll-item { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    border-radius: 3px 3px 0 0; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    padding: 2px 6px; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    display: inline-block; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    position: relative; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    margin-right: 4px; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    height: 28px; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    line-height: 25px; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    transition: all 0.4s; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    .el-icon-close { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      font-size: 10px; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      color: #1890ff; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      cursor: pointer; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      transform: fontsize3s; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      &:hover { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        border-radius: 50%; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        color: #fff; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        background: #b4bccc; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        font-size: 14px; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    &.is-closable:not(:first-child) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      &:hover { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        padding-right: 8px; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-  } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-  a { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    text-decoration: none; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    color: #666; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    padding: 0 4px 0 4px; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-  } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-  .scroll-container { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    padding: 5px 0; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    white-space: nowrap; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    position: relative; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    width: 100%; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    background: #fff; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    .scroll-item { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      &:nth-child(1) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        margin-left: 5px; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    .scrollbar-wrapper { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      position: absolute; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      height: 40px; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      overflow-x: hidden !important; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-  } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-  // 右键菜单 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-  .contextmenu { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    margin: 0; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    background: #fff; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    position: absolute; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    list-style-type: none; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    padding: 5px 0; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    border-radius: 4px; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    color: #000000d9; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    font-weight: normal; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    font-size: 13px; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    white-space: nowrap; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    outline: 0; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    box-shadow: 0 2px 8px rgb(0 0 0 / 15%); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    li { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      width: 100%; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      margin: 0; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      padding: 7px 12px; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      cursor: pointer; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      display: flex; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      align-items: center; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      &:hover { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        background: #eee; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      svg { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        display: block; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        margin-right: 0.5em; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-  } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-.right-button { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-  display: flex; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-  align-items: center; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-  background: #fff; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-  font-size: 16px; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-  li { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    width: 40px; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    height: 38px; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    line-height: 38px; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    text-align: center; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    border-right: 1px solid #ccc; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    cursor: pointer; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-  } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-.el-dropdown-menu { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-  padding: 0; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-  li { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    width: 100%; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    margin: 0; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    padding: 0 12px; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    cursor: pointer; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    display: flex; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    align-items: center; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    svg { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      display: block; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      margin-right: 0.5em; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-  } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-.el-dropdown-menu__item:not(.is-disabled):hover { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-  color: #606266; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-  background: #f0f0f0; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-:deep(.el-dropdown-menu__item) i { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-  margin-right: 10px; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-.el-dropdown-menu__item--divided::before { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-  margin: 0; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-.el-dropdown-menu__item.is-disabled { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-  cursor: not-allowed; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-.is-active { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-  background-color: #eaf4fe; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-  position: relative; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-  color: #fff; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-  a { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    color: #1890ff; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-  } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-// 卡片模式 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-.card-active { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-  border: 1px solid #1890ff; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-// 卡片模式下鼠标移入显示蓝色边框 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-.card-in { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-  border: 1px solid #1890ff; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-  color: #1890ff; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-  a { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    color: #1890ff; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-  } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-// 卡片模式下鼠标移出隐藏蓝色边框 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-.card-out { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-  border: none; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-  color: #666; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-  a { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    color: #666; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-  } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-// 灵动模式 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-.schedule-active { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-  width: 100%; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-  height: 2px; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-  position: absolute; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-  left: 0; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-  bottom: 0; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-  background: #1890ff; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-// 灵动模式下鼠标移入显示蓝色进度条 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-.schedule-in { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-  width: 100%; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-  height: 2px; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-  position: absolute; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-  left: 0; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-  bottom: 0; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-  background: #1890ff; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-  animation: scheduleInWidth 400ms ease-in; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-// 灵动模式下鼠标移出隐藏蓝色进度条 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-.schedule-out { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-  width: 0; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-  height: 2px; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-  position: absolute; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-  left: 0; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-  bottom: 0; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-  background: #1890ff; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-  animation: scheduleOutWidth 400ms ease-in; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-// 刷新按钮动画效果 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-.refresh-button { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-  -webkit-animation: rotate 600ms linear infinite; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-  -moz-animation: rotate 600ms linear infinite; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-  -o-animation: rotate 600ms linear infinite; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-  animation: rotate 600ms linear infinite; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+@import "./index.scss"; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 </style> 
			 |