Files
education/frontend/node_modules/.cache/vue-loader/0bb71541b31bf4c786b89d745088b2c2.json
T

1 line
8.6 KiB
JSON

{"remainingRequest":"C:\\Users\\Admin\\Desktop\\education\\frontend\\node_modules\\vue-loader\\lib\\index.js??vue-loader-options!C:\\Users\\Admin\\Desktop\\education\\frontend\\src\\layout\\index.vue?vue&type=script&lang=js","dependencies":[{"path":"C:\\Users\\Admin\\Desktop\\education\\frontend\\src\\layout\\index.vue","mtime":1787567993828},{"path":"C:\\Users\\Admin\\Desktop\\education\\frontend\\node_modules\\cache-loader\\dist\\cjs.js","mtime":1787309791955},{"path":"C:\\Users\\Admin\\Desktop\\education\\frontend\\node_modules\\babel-loader\\lib\\index.js","mtime":1787309793142},{"path":"C:\\Users\\Admin\\Desktop\\education\\frontend\\node_modules\\cache-loader\\dist\\cjs.js","mtime":1787309791955},{"path":"C:\\Users\\Admin\\Desktop\\education\\frontend\\node_modules\\vue-loader\\lib\\index.js","mtime":1787309793790}],"contextDependencies":[],"result":[{"type":"Buffer","data":"base64:Ly8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KDQppbXBvcnQgeyBBcHBNYWluLCBOYXZiYXIsIFNpZGViYXIsIFRhZ3NWaWV3IH0gZnJvbSAnLi9jb21wb25lbnRzJw0KaW1wb3J0IFNlbWVzdGVyQmFyIGZyb20gJy4vY29tcG9uZW50cy9TZW1lc3RlckJhcicNCmltcG9ydCBIYW1idXJnZXIgZnJvbSAnQC9jb21wb25lbnRzL0hhbWJ1cmdlcicNCmltcG9ydCBSZXNpemVNaXhpbiBmcm9tICcuL21peGluL1Jlc2l6ZUhhbmRsZXInDQppbXBvcnQgeyBtYXBTdGF0ZSB9IGZyb20gJ3Z1ZXgnDQppbXBvcnQgdmFyaWFibGVzIGZyb20gJ0AvYXNzZXRzL3N0eWxlcy92YXJpYWJsZXMuc2NzcycNCg0KZXhwb3J0IGRlZmF1bHQgew0KICBuYW1lOiAnTGF5b3V0JywNCiAgY29tcG9uZW50czogew0KICAgIEFwcE1haW4sDQogICAgTmF2YmFyLA0KICAgIFNpZGViYXIsDQogICAgVGFnc1ZpZXcsDQogICAgU2VtZXN0ZXJCYXIsDQogICAgSGFtYnVyZ2VyDQogIH0sDQogIG1peGluczogW1Jlc2l6ZU1peGluXSwNCiAgY29tcHV0ZWQ6IHsNCiAgICAuLi5tYXBTdGF0ZSh7DQogICAgICBzaWRlYmFyOiBzdGF0ZSA9PiBzdGF0ZS5hcHAuc2lkZWJhciwNCiAgICAgIGRldmljZTogc3RhdGUgPT4gc3RhdGUuYXBwLmRldmljZQ0KICAgIH0pLA0KICAgIGNsYXNzT2JqKCkgew0KICAgICAgcmV0dXJuIHsNCiAgICAgICAgaGlkZVNpZGViYXI6ICF0aGlzLnNpZGViYXIub3BlbmVkLA0KICAgICAgICBtb2JpbGU6IHRoaXMuZGV2aWNlID09PSAnbW9iaWxlJw0KICAgICAgfQ0KICAgIH0sDQogICAgdmFyaWFibGVzKCkgew0KICAgICAgcmV0dXJuIHZhcmlhYmxlcw0KICAgIH0NCiAgfSwNCiAgbWV0aG9kczogew0KICAgIGhhbmRsZUNsaWNrT3V0c2lkZSgpIHsNCiAgICAgIHRoaXMuJHN0b3JlLmRpc3BhdGNoKCdhcHAvY2xvc2VTaWRlQmFyJywgeyB3aXRob3V0QW5pbWF0aW9uOiBmYWxzZSB9KQ0KICAgIH0sDQogICAgdG9nZ2xlU2lkZUJhcigpIHsNCiAgICAgIHRoaXMuJHN0b3JlLmRpc3BhdGNoKCdhcHAvdG9nZ2xlU2lkZUJhcicpDQogICAgfSwNCiAgICBoYW5kbGVDbG9zZUFsbFRhYnMoKSB7DQogICAgICB0aGlzLiRzdG9yZS5kaXNwYXRjaCgndGFnc1ZpZXcvZGVsQWxsVmlld3MnKS50aGVuKCh7IHZpc2l0ZWRWaWV3cyB9KSA9PiB7DQogICAgICAgIGNvbnN0IGxhc3QgPSB2aXNpdGVkVmlld3NbdmlzaXRlZFZpZXdzLmxlbmd0aCAtIDFdDQogICAgICAgIGlmIChsYXN0KSB7DQogICAgICAgICAgdGhpcy4kcm91dGVyLnB1c2gobGFzdC5mdWxsUGF0aCkuY2F0Y2goKCkgPT4ge30pDQogICAgICAgIH0gZWxzZSB7DQogICAgICAgICAgdGhpcy4kcm91dGVyLnB1c2goJy8nKS5jYXRjaCgoKSA9PiB7fSkNCiAgICAgICAgfQ0KICAgICAgfSkNCiAgICB9DQogIH0NCn0NCg=="},{"version":3,"sources":["index.vue"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAwCA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA","file":"index.vue","sourceRoot":"src/layout","sourcesContent":["<template>\r\n <div\r\n :class=\"classObj\"\r\n class=\"app-wrapper\"\r\n :style=\"{\r\n '--current-color': '#0B6B55',\r\n '--current-color-light': '#0B6B551a',\r\n '--current-color-dark-bg': '#0B6B5533'\r\n }\"\r\n >\r\n <div v-if=\"device==='mobile'&&sidebar.opened\" class=\"drawer-bg\" @click=\"handleClickOutside\"/>\r\n\r\n <!-- 顶部全宽 Header -->\r\n <div class=\"top-header\">\r\n <div class=\"top-header__left\">\r\n <hamburger\r\n v-if=\"device === 'mobile'\"\r\n id=\"mobile-hamburger\"\r\n :is-active=\"sidebar.opened\"\r\n class=\"mobile-hamburger\"\r\n @toggleClick=\"toggleSideBar\"\r\n />\r\n <span class=\"sys-title\" title=\"关闭所有已打开的页签\" @click=\"handleCloseAllTabs\">教学管理信息系统</span>\r\n </div>\r\n <semester-bar class=\"top-header__center\" />\r\n <navbar class=\"top-header__right\" :header-mode=\"true\" />\r\n </div>\r\n\r\n <!-- 下方:侧边栏 + 主内容 -->\r\n <div class=\"lower-container\" :class=\"{sidebarHide:sidebar.hide}\">\r\n <sidebar v-if=\"!sidebar.hide\" class=\"sidebar-container\"/>\r\n <div :class=\"{hasTagsView:true,sidebarHide:sidebar.hide}\" class=\"main-container\">\r\n <tags-view/>\r\n <app-main/>\r\n </div>\r\n </div>\r\n </div>\r\n</template>\r\n\r\n<script>\r\nimport { AppMain, Navbar, Sidebar, TagsView } from './components'\r\nimport SemesterBar from './components/SemesterBar'\r\nimport Hamburger from '@/components/Hamburger'\r\nimport ResizeMixin from './mixin/ResizeHandler'\r\nimport { mapState } from 'vuex'\r\nimport variables from '@/assets/styles/variables.scss'\r\n\r\nexport default {\r\n name: 'Layout',\r\n components: {\r\n AppMain,\r\n Navbar,\r\n Sidebar,\r\n TagsView,\r\n SemesterBar,\r\n Hamburger\r\n },\r\n mixins: [ResizeMixin],\r\n computed: {\r\n ...mapState({\r\n sidebar: state => state.app.sidebar,\r\n device: state => state.app.device\r\n }),\r\n classObj() {\r\n return {\r\n hideSidebar: !this.sidebar.opened,\r\n mobile: this.device === 'mobile'\r\n }\r\n },\r\n variables() {\r\n return variables\r\n }\r\n },\r\n methods: {\r\n handleClickOutside() {\r\n this.$store.dispatch('app/closeSideBar', { withoutAnimation: false })\r\n },\r\n toggleSideBar() {\r\n this.$store.dispatch('app/toggleSideBar')\r\n },\r\n handleCloseAllTabs() {\r\n this.$store.dispatch('tagsView/delAllViews').then(({ visitedViews }) => {\r\n const last = visitedViews[visitedViews.length - 1]\r\n if (last) {\r\n this.$router.push(last.fullPath).catch(() => {})\r\n } else {\r\n this.$router.push('/').catch(() => {})\r\n }\r\n })\r\n }\r\n }\r\n}\r\n</script>\r\n\r\n<style lang=\"scss\" scoped>\r\n @import \"~@/assets/styles/mixin.scss\";\r\n @import \"~@/assets/styles/variables.scss\";\r\n\r\n .app-wrapper {\r\n @include clearfix;\r\n position: relative;\r\n height: 100%;\r\n width: 100%;\r\n display: flex;\r\n flex-direction: column;\r\n }\r\n\r\n /* 顶部全宽 Header */\r\n .top-header {\r\n flex-shrink: 0;\r\n height: 60px;\r\n display: flex;\r\n align-items: center;\r\n background: linear-gradient(104deg, #0b6b55 0%, #095b49 58%, #084c3f 100%);\r\n border-bottom: 1px solid rgba(198, 155, 60, 0.5);\r\n box-shadow: 0 3px 12px rgba(8, 51, 42, 0.16);\r\n padding: 0 20px;\r\n z-index: 10;\r\n\r\n &__left {\r\n display: flex;\r\n align-items: center;\r\n flex-shrink: 0;\r\n height: 100%;\r\n gap: 14px;\r\n\r\n .mobile-hamburger {\r\n display: flex;\r\n align-items: center;\r\n justify-content: center;\r\n height: 36px;\r\n width: 36px;\r\n border-radius: 8px;\r\n cursor: pointer;\r\n color: #fff;\r\n transition: background 0.25s ease;\r\n\r\n &:hover {\r\n background: rgba(255, 255, 255, 0.15);\r\n }\r\n }\r\n\r\n .sys-title {\r\n font-size: 19px;\r\n font-weight: 700;\r\n color: #fff;\r\n white-space: nowrap;\r\n letter-spacing: 1.5px;\r\n text-shadow: 0 1px 2px rgba(0, 0, 0, 0.12);\r\n cursor: pointer;\r\n border-radius: 5px;\r\n padding: 4px 10px;\r\n transition: background 0.25s ease;\r\n\r\n &:hover {\r\n background: rgba(255, 255, 255, 0.15);\r\n }\r\n }\r\n }\r\n\r\n &__center {\r\n flex: 1;\r\n min-width: 0;\r\n display: flex;\r\n justify-content: center;\r\n height: 100%;\r\n }\r\n\r\n &__right {\r\n flex-shrink: 0;\r\n height: 100%;\r\n }\r\n }\r\n\r\n /* 下方主体 */\r\n .lower-container {\r\n flex: 1;\r\n min-height: 0;\r\n display: flex;\r\n position: relative;\r\n }\r\n\r\n .sidebar-container {\r\n flex-shrink: 0;\r\n }\r\n\r\n .main-container {\r\n flex: 1;\r\n min-width: 0;\r\n display: flex;\r\n flex-direction: column;\r\n position: relative;\r\n overflow: hidden;\r\n height: 100%;\r\n background-color: var(--edu-color-canvas);\r\n }\r\n\r\n .drawer-bg {\r\n background: #000;\r\n opacity: 0.3;\r\n width: 100%;\r\n top: 0;\r\n height: 100%;\r\n position: absolute;\r\n z-index: 999;\r\n }\r\n</style>\r\n"]}]}