forked from liweijie/education
1 line
12 KiB
JSON
1 line
12 KiB
JSON
{"remainingRequest":"C:\\Users\\Admin\\Desktop\\education\\frontend\\node_modules\\babel-loader\\lib\\index.js!C:\\Users\\Admin\\Desktop\\education\\frontend\\node_modules\\cache-loader\\dist\\cjs.js??ref--0-0!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\\babel.config.js","mtime":1787567871334},{"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:InVzZSBzdHJpY3QiOwoKdmFyIF9pbnRlcm9wUmVxdWlyZURlZmF1bHQgPSByZXF1aXJlKCJDOi9Vc2Vycy9BZG1pbi9EZXNrdG9wL2VkdWNhdGlvbi9mcm9udGVuZC9ub2RlX21vZHVsZXMvQGJhYmVsL3J1bnRpbWUvaGVscGVycy9pbnRlcm9wUmVxdWlyZURlZmF1bHQuanMiKS5kZWZhdWx0OwpPYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgIl9fZXNNb2R1bGUiLCB7CiAgdmFsdWU6IHRydWUKfSk7CmV4cG9ydHMuZGVmYXVsdCA9IHZvaWQgMDsKcmVxdWlyZSgiY29yZS1qcy9tb2R1bGVzL2VzLmFycmF5LnB1c2guanMiKTsKdmFyIF9vYmplY3RTcHJlYWQyID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChyZXF1aXJlKCJDOi9Vc2Vycy9BZG1pbi9EZXNrdG9wL2VkdWNhdGlvbi9mcm9udGVuZC9ub2RlX21vZHVsZXMvQGJhYmVsL3J1bnRpbWUvaGVscGVycy9vYmplY3RTcHJlYWQyLmpzIikpOwp2YXIgX2NvbXBvbmVudHMgPSByZXF1aXJlKCIuL2NvbXBvbmVudHMiKTsKdmFyIF9TZW1lc3RlckJhciA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQocmVxdWlyZSgiLi9jb21wb25lbnRzL1NlbWVzdGVyQmFyIikpOwp2YXIgX0hhbWJ1cmdlciA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQocmVxdWlyZSgiQC9jb21wb25lbnRzL0hhbWJ1cmdlciIpKTsKdmFyIF9SZXNpemVIYW5kbGVyID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChyZXF1aXJlKCIuL21peGluL1Jlc2l6ZUhhbmRsZXIiKSk7CnZhciBfdnVleCA9IHJlcXVpcmUoInZ1ZXgiKTsKdmFyIF92YXJpYWJsZXMyID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChyZXF1aXJlKCJAL2Fzc2V0cy9zdHlsZXMvdmFyaWFibGVzLnNjc3MiKSk7Ci8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCnZhciBfZGVmYXVsdCA9IGV4cG9ydHMuZGVmYXVsdCA9IHsKICBuYW1lOiAnTGF5b3V0JywKICBjb21wb25lbnRzOiB7CiAgICBBcHBNYWluOiBfY29tcG9uZW50cy5BcHBNYWluLAogICAgTmF2YmFyOiBfY29tcG9uZW50cy5OYXZiYXIsCiAgICBTaWRlYmFyOiBfY29tcG9uZW50cy5TaWRlYmFyLAogICAgVGFnc1ZpZXc6IF9jb21wb25lbnRzLlRhZ3NWaWV3LAogICAgU2VtZXN0ZXJCYXI6IF9TZW1lc3RlckJhci5kZWZhdWx0LAogICAgSGFtYnVyZ2VyOiBfSGFtYnVyZ2VyLmRlZmF1bHQKICB9LAogIG1peGluczogW19SZXNpemVIYW5kbGVyLmRlZmF1bHRdLAogIGNvbXB1dGVkOiAoMCwgX29iamVjdFNwcmVhZDIuZGVmYXVsdCkoKDAsIF9vYmplY3RTcHJlYWQyLmRlZmF1bHQpKHt9LCAoMCwgX3Z1ZXgubWFwU3RhdGUpKHsKICAgIHNpZGViYXI6IGZ1bmN0aW9uIHNpZGViYXIoc3RhdGUpIHsKICAgICAgcmV0dXJuIHN0YXRlLmFwcC5zaWRlYmFyOwogICAgfSwKICAgIGRldmljZTogZnVuY3Rpb24gZGV2aWNlKHN0YXRlKSB7CiAgICAgIHJldHVybiBzdGF0ZS5hcHAuZGV2aWNlOwogICAgfQogIH0pKSwge30sIHsKICAgIGNsYXNzT2JqOiBmdW5jdGlvbiBjbGFzc09iaigpIHsKICAgICAgcmV0dXJuIHsKICAgICAgICBoaWRlU2lkZWJhcjogIXRoaXMuc2lkZWJhci5vcGVuZWQsCiAgICAgICAgbW9iaWxlOiB0aGlzLmRldmljZSA9PT0gJ21vYmlsZScKICAgICAgfTsKICAgIH0sCiAgICB2YXJpYWJsZXM6IGZ1bmN0aW9uIHZhcmlhYmxlcygpIHsKICAgICAgcmV0dXJuIF92YXJpYWJsZXMyLmRlZmF1bHQ7CiAgICB9CiAgfSksCiAgbWV0aG9kczogewogICAgaGFuZGxlQ2xpY2tPdXRzaWRlOiBmdW5jdGlvbiBoYW5kbGVDbGlja091dHNpZGUoKSB7CiAgICAgIHRoaXMuJHN0b3JlLmRpc3BhdGNoKCdhcHAvY2xvc2VTaWRlQmFyJywgewogICAgICAgIHdpdGhvdXRBbmltYXRpb246IGZhbHNlCiAgICAgIH0pOwogICAgfSwKICAgIHRvZ2dsZVNpZGVCYXI6IGZ1bmN0aW9uIHRvZ2dsZVNpZGVCYXIoKSB7CiAgICAgIHRoaXMuJHN0b3JlLmRpc3BhdGNoKCdhcHAvdG9nZ2xlU2lkZUJhcicpOwogICAgfSwKICAgIGhhbmRsZUNsb3NlQWxsVGFiczogZnVuY3Rpb24gaGFuZGxlQ2xvc2VBbGxUYWJzKCkgewogICAgICB2YXIgX3RoaXMgPSB0aGlzOwogICAgICB0aGlzLiRzdG9yZS5kaXNwYXRjaCgndGFnc1ZpZXcvZGVsQWxsVmlld3MnKS50aGVuKGZ1bmN0aW9uIChfcmVmKSB7CiAgICAgICAgdmFyIHZpc2l0ZWRWaWV3cyA9IF9yZWYudmlzaXRlZFZpZXdzOwogICAgICAgIHZhciBsYXN0ID0gdmlzaXRlZFZpZXdzW3Zpc2l0ZWRWaWV3cy5sZW5ndGggLSAxXTsKICAgICAgICBpZiAobGFzdCkgewogICAgICAgICAgX3RoaXMuJHJvdXRlci5wdXNoKGxhc3QuZnVsbFBhdGgpLmNhdGNoKGZ1bmN0aW9uICgpIHt9KTsKICAgICAgICB9IGVsc2UgewogICAgICAgICAgX3RoaXMuJHJvdXRlci5wdXNoKCcvJykuY2F0Y2goZnVuY3Rpb24gKCkge30pOwogICAgICAgIH0KICAgICAgfSk7CiAgICB9CiAgfQp9Ow=="},{"version":3,"names":["_components","require","_SemesterBar","_interopRequireDefault","_Hamburger","_ResizeHandler","_vuex","_variables2","name","components","AppMain","Navbar","Sidebar","TagsView","SemesterBar","Hamburger","mixins","ResizeMixin","computed","_objectSpread2","default","mapState","sidebar","state","app","device","classObj","hideSidebar","opened","mobile","variables","methods","handleClickOutside","$store","dispatch","withoutAnimation","toggleSideBar","handleCloseAllTabs","_this","then","_ref","visitedViews","last","length","$router","push","fullPath","catch"],"sources":["src/layout/index.vue"],"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"],"mappings":";;;;;;;;;AAwCA,IAAAA,WAAA,GAAAC,OAAA;AACA,IAAAC,YAAA,GAAAC,sBAAA,CAAAF,OAAA;AACA,IAAAG,UAAA,GAAAD,sBAAA,CAAAF,OAAA;AACA,IAAAI,cAAA,GAAAF,sBAAA,CAAAF,OAAA;AACA,IAAAK,KAAA,GAAAL,OAAA;AACA,IAAAM,WAAA,GAAAJ,sBAAA,CAAAF,OAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iCAEA;EACAO,IAAA;EACAC,UAAA;IACAC,OAAA,EAAAA,mBAAA;IACAC,MAAA,EAAAA,kBAAA;IACAC,OAAA,EAAAA,mBAAA;IACAC,QAAA,EAAAA,oBAAA;IACAC,WAAA,EAAAA,oBAAA;IACAC,SAAA,EAAAA;EACA;EACAC,MAAA,GAAAC,sBAAA;EACAC,QAAA,MAAAC,cAAA,CAAAC,OAAA,MAAAD,cAAA,CAAAC,OAAA,MACA,IAAAC,cAAA;IACAC,OAAA,WAAAA,QAAAC,KAAA;MAAA,OAAAA,KAAA,CAAAC,GAAA,CAAAF,OAAA;IAAA;IACAG,MAAA,WAAAA,OAAAF,KAAA;MAAA,OAAAA,KAAA,CAAAC,GAAA,CAAAC,MAAA;IAAA;EACA;IACAC,QAAA,WAAAA,SAAA;MACA;QACAC,WAAA,QAAAL,OAAA,CAAAM,MAAA;QACAC,MAAA,OAAAJ,MAAA;MACA;IACA;IACAK,SAAA,WAAAA,UAAA;MACA,OAAAA,mBAAA;IACA;EAAA,EACA;EACAC,OAAA;IACAC,kBAAA,WAAAA,mBAAA;MACA,KAAAC,MAAA,CAAAC,QAAA;QAAAC,gBAAA;MAAA;IACA;IACAC,aAAA,WAAAA,cAAA;MACA,KAAAH,MAAA,CAAAC,QAAA;IACA;IACAG,kBAAA,WAAAA,mBAAA;MAAA,IAAAC,KAAA;MACA,KAAAL,MAAA,CAAAC,QAAA,yBAAAK,IAAA,WAAAC,IAAA;QAAA,IAAAC,YAAA,GAAAD,IAAA,CAAAC,YAAA;QACA,IAAAC,IAAA,GAAAD,YAAA,CAAAA,YAAA,CAAAE,MAAA;QACA,IAAAD,IAAA;UACAJ,KAAA,CAAAM,OAAA,CAAAC,IAAA,CAAAH,IAAA,CAAAI,QAAA,EAAAC,KAAA;QACA;UACAT,KAAA,CAAAM,OAAA,CAAAC,IAAA,MAAAE,KAAA;QACA;MACA;IACA;EACA;AACA","ignoreList":[]}]} |