CodeMaster/node_modules/.cache/vue-loader/251a52eb0d24ce5a357c4102e85a294f.json
2025-05-16 19:22:00 +08:00

1 line
12 KiB
JSON

{"remainingRequest":"/Users/shuguang/Desktop/毕设/CodeMaster/CodeMaster/node_modules/vue-loader/lib/index.js??vue-loader-options!/Users/shuguang/Desktop/毕设/CodeMaster/CodeMaster/src/layouts/GlobalLayout.vue?vue&type=style&index=0&id=6cf2f728&lang=less","dependencies":[{"path":"/Users/shuguang/Desktop/毕设/CodeMaster/CodeMaster/src/layouts/GlobalLayout.vue","mtime":1747391264501},{"path":"/Users/shuguang/Desktop/毕设/CodeMaster/CodeMaster/node_modules/css-loader/dist/cjs.js","mtime":1743264596127},{"path":"/Users/shuguang/Desktop/毕设/CodeMaster/CodeMaster/node_modules/vue-loader/lib/loaders/stylePostLoader.js","mtime":1743264597030},{"path":"/Users/shuguang/Desktop/毕设/CodeMaster/CodeMaster/node_modules/postcss-loader/src/index.js","mtime":1743264596321},{"path":"/Users/shuguang/Desktop/毕设/CodeMaster/CodeMaster/node_modules/less-loader/dist/cjs.js","mtime":1743264596730},{"path":"/Users/shuguang/Desktop/毕设/CodeMaster/CodeMaster/node_modules/cache-loader/dist/cjs.js","mtime":1743264595665},{"path":"/Users/shuguang/Desktop/毕设/CodeMaster/CodeMaster/node_modules/vue-loader/lib/index.js","mtime":1743264596512}],"contextDependencies":[],"result":[{"type":"Buffer","data":"base64:CkBpbXBvcnQgIn5hbnQtZGVzaWduLXZ1ZS9lcy9zdHlsZS90aGVtZXMvZGVmYXVsdC5sZXNzIjsKCi8vIOWumuS5ieS4u+mimOiJsuWPmOmHjwpAcHJpbWFyeS1jb2xvcjogIzE4OTBmZjsKQHByaW1hcnktaG92ZXI6ICM0MGE5ZmY7CkBsYXlvdXQtaGVhZGVyLWJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudCg5MGRlZywgIzE4OTBmZiwgIzM2Y2ZjOSk7CkBtZW51LWRhcmstYmc6ICMwMDE1Mjk7CkBtZW51LWRhcmstc3VibWVudS1iZzogIzAwMGMxNzsKCi5hbnQtcHJvLWdsb2JhbC1oZWFkZXIgewogIGJhY2tncm91bmQ6IEBsYXlvdXQtaGVhZGVyLWJhY2tncm91bmQ7CiAgYm94LXNoYWRvdzogMCAycHggOHB4IHJnYmEoMjQsIDE0NCwgMjU1LCAwLjE1KTsKICBiYWNrZHJvcC1maWx0ZXI6IGJsdXIoOHB4KTsKICAKICAuYW50LWJyZWFkY3J1bWIgewogICAgbWFyZ2luLWxlZnQ6IDE2cHg7CiAgICAKICAgIGEsIHNwYW4gewogICAgICBjb2xvcjogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjg1KTsKICAgICAgdHJhbnNpdGlvbjogY29sb3IgMC4zczsKICAgICAgCiAgICAgICY6aG92ZXIgewogICAgICAgIGNvbG9yOiAjZmZmZmZmOwogICAgICB9CiAgICB9CiAgfQp9CgouYW50LXByby1zaWRlci1tZW51LWxvZ28gewogIHBvc2l0aW9uOiByZWxhdGl2ZTsKICBoZWlnaHQ6IDY0cHg7CiAgcGFkZGluZzogMCAyNHB4OwogIG92ZXJmbG93OiBoaWRkZW47CiAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KDE4MGRlZywgIzE4OTBmZiwgIzA5NmRkOSk7CiAgY3Vyc29yOiBwb2ludGVyOwogIHRyYW5zaXRpb246IGFsbCAwLjNzOwoKICBoMSB7CiAgICBjb2xvcjogd2hpdGU7CiAgICBmb250LXNpemU6IDIwcHg7CiAgICBtYXJnaW46IDAgMCAwIDEycHg7CiAgICBmb250LXdlaWdodDogNjAwOwogICAgb3BhY2l0eTogMTsKICAgIHRyYW5zaXRpb246IGFsbCAwLjNzOwogICAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KDkwZGVnLCAjZmZmLCAjZTZmN2ZmKTsKICAgIC13ZWJraXQtYmFja2dyb3VuZC1jbGlwOiB0ZXh0OwogICAgLXdlYmtpdC10ZXh0LWZpbGwtY29sb3I6IHRyYW5zcGFyZW50OwogIH0KCiAgJjpob3ZlciB7CiAgICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQoMTgwZGVnLCAjMDk2ZGQ5LCAjMTg5MGZmKTsKICB9Cn0KCi5hbnQtbWVudS1kYXJrIHsKICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQoMTgwZGVnLCAjMDAxNTI5LCAjMDAyMTQwKTsKCiAgLmFudC1tZW51LWl0ZW0gewogICAgbWFyZ2luOiA0cHggOHB4OwogICAgcGFkZGluZzogMCAxNnB4OwogICAgYm9yZGVyLXJhZGl1czogNHB4OwogICAgdHJhbnNpdGlvbjogYWxsIDAuM3MgY3ViaWMtYmV6aWVyKDAuNCwgMCwgMC4yLCAxKTsKCiAgICAmOmhvdmVyIHsKICAgICAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KDkwZGVnLCAjMTg5MGZmLCAjNDBhOWZmKSAhaW1wb3J0YW50OwogICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoNHB4KTsKICAgIH0KCiAgICAmLmFudC1tZW51LWl0ZW0tc2VsZWN0ZWQgewogICAgICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQoOTBkZWcsICMxODkwZmYsICM0MGE5ZmYpICFpbXBvcnRhbnQ7CiAgICAgIGJveC1zaGFkb3c6IDAgMnB4IDhweCByZ2JhKDI0LCAxNDQsIDI1NSwgMC4yKTsKICAgICAgJjo6YWZ0ZXIgewogICAgICAgIGRpc3BsYXk6IG5vbmU7CiAgICAgIH0KICAgIH0KICB9CgogIC5hbnQtbWVudS1zdWJtZW51IHsKICAgICYtdGl0bGUgewogICAgICBtYXJnaW46IDRweCA4cHg7CiAgICAgIHBhZGRpbmc6IDAgMTZweDsKICAgICAgYm9yZGVyLXJhZGl1czogNHB4OwogICAgICB0cmFuc2l0aW9uOiBhbGwgMC4zczsKCiAgICAgICY6aG92ZXIgewogICAgICAgIGJhY2tncm91bmQ6IHJnYmEoMjQsIDE0NCwgMjU1LCAwLjEpICFpbXBvcnRhbnQ7CiAgICAgIH0KICAgIH0KCiAgICAmLW9wZW4gewogICAgICBiYWNrZ3JvdW5kOiByZ2JhKDAsIDAsIDAsIDAuMik7CiAgICAgIGJvcmRlci1yYWRpdXM6IDRweDsKICAgIH0KICB9Cn0KCi5hbnQtcHJvLWJhc2ljTGF5b3V0LWNvbnRlbnQgewogIG1hcmdpbjogMjRweDsKICBwYWRkaW5nOiAyNHB4OwogIGJhY2tncm91bmQ6ICNmIGYgZjsKICBib3JkZXItcmFkaXVzOiA4cHg7CiAgYm94LXNoYWRvdzogMCAycHggMTJweCByZ2JhKDAsIDAsIDAsIDAuMDUpOwogIG1pbi1oZWlnaHQ6IGNhbGMoMTAwdmggLSAxMjhweCk7Cn0KCi5mb290ZXItY29udGFpbmVyIHsKICB0ZXh0LWFsaWduOiBjZW50ZXI7CiAgY29sb3I6IHJnYmEoMCwgMCwgMCwgMC40NSk7CiAgcGFkZGluZzogMTZweDsKICBiYWNrZ3JvdW5kOiB3aGl0ZTsKICBib3JkZXItcmFkaXVzOiA0cHg7CiAgbWFyZ2luOiAwIDI0cHg7CiAgYm94LXNoYWRvdzogMCAxcHggNHB4IHJnYmEoMCwgMCwgMCwgMC4wNSk7CiAgCiAgJjpob3ZlciB7CiAgICBjb2xvcjogcmdiYSgwLCAwLCAwLCAwLjY1KTsKICB9Cn0KCi5hbnQtcHJvLWdsb2JhbC1oZWFkZXItaW5kZXgtcmlnaHQgewogIG1hcmdpbi1yaWdodDogMTZweDsKICBkaXNwbGF5OiBmbGV4OwogIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgaGVpZ2h0OiAxMDAlOwoKICAuYW50LXByby1nbG9iYWwtaGVhZGVyLWluZGV4LWFjdGlvbiB7CiAgICBwYWRkaW5nOiAwIDEycHg7CiAgICBjdXJzb3I6IHBvaW50ZXI7CiAgICBkaXNwbGF5OiBmbGV4OwogICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgIGhlaWdodDogMTAwJTsKICAgIGNvbG9yOiB3aGl0ZTsKICAgIHRyYW5zaXRpb246IGFsbCAwLjNzOwoKICAgICY6aG92ZXIgewogICAgICBiYWNrZ3JvdW5kOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMSk7CiAgICB9CiAgfQoKICAuYW50LWF2YXRhciB7CiAgICBtYXJnaW4tcmlnaHQ6IDhweDsKICAgIGJvcmRlcjogMnB4IHNvbGlkIHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4yKTsKICAgIGJveC1zaGFkb3c6IDAgMnB4IDhweCByZ2JhKDAsIDAsIDAsIDAuMTUpOwogIH0KfQo="},{"version":3,"sources":["GlobalLayout.vue"],"names":[],"mappings":";AAyGA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA","file":"GlobalLayout.vue","sourceRoot":"src/layouts","sourcesContent":["<template>\n <pro-layout\n :menus=\"menus\"\n :collapsed=\"collapsed\"\n :mediaQuery=\"query\"\n :isMobile=\"isMobile\"\n :handleMediaQuery=\"handleMediaQuery\"\n :handleCollapse=\"handleCollapse\"\n :logo=\"'/logo.png'\"\n title=\"竞赛管理系统\"\n fixedHeader\n fixSiderbar\n :headerHeight=\"64\"\n :siderWidth=\"256\"\n primaryColor=\"#1890ff\"\n >\n <template #menuHeaderRender>\n <a-avatar src=\"/logo.png\" :size=\"40\" />\n <h1>竞赛管理系统</h1>\n </template>\n <template #rightContentRender>\n <div :class=\"rightContentClass\">\n <LoginState />\n </div>\n </template>\n <template #footerRender>\n <div class=\"footer-container\">\n 校园信息化-竞赛管理系统 ©2024 Created by 陕西科技大学镐京学院\n </div>\n </template>\n <template #headerContentRender>\n <a-breadcrumb\n style=\"height: 64px; line-height: 64px\"\n class=\"breadcrumb\"\n :routes=\"$route.matched\"\n >\n <template #itemRender=\"{ route }\">\n {{ route.meta.title }}\n </template>\n </a-breadcrumb>\n </template>\n <TabLayout />\n </pro-layout>\n</template>\n\n<script>\nimport { mapGetters } from \"vuex\";\nimport { filterRoutes } from \"@/router\";\nimport { routes } from \"@/router\";\nimport ProLayout from \"@ant-design-vue/pro-layout\";\nimport TabLayout from \"@/layouts/TabLayout\";\nimport LoginState from \"@/components/common/LoginState.vue\";\n\nexport default {\n name: \"GlobalLayout\",\n components: {\n ProLayout,\n LoginState,\n TabLayout,\n },\n data() {\n return {\n collapsed: false,\n autoHideHeader: false,\n query: {},\n layout: \"sidemenu\",\n contentWidth: \"Fluid\",\n theme: \"dark\",\n isMobile: false,\n };\n },\n computed: {\n ...mapGetters([\"permissions\"]),\n menus() {\n const root = routes.find((v) => v.path === \"/\");\n return filterRoutes(root?.children || [], this.permissions);\n },\n rightContentClass() {\n return [\n \"ant-pro-global-header-index-right\",\n this.layout === \"topmenu\" &&\n `ant-pro-global-header-index-${this.theme}`,\n ];\n },\n },\n methods: {\n handleCollapse(collapsed) {\n this.collapsed = collapsed;\n },\n handleMediaQuery(query) {\n this.query = query;\n if (this.isMobile && !query[\"screen-xs\"]) {\n this.isMobile = false;\n return;\n }\n if (!this.isMobile && query[\"screen-xs\"]) {\n this.isMobile = true;\n this.collapsed = false;\n }\n },\n },\n};\n</script>\n\n<style lang=\"less\">\n@import \"~ant-design-vue/es/style/themes/default.less\";\n\n// 定义主题色变量\n@primary-color: #1890ff;\n@primary-hover: #40a9ff;\n@layout-header-background: linear-gradient(90deg, #1890ff, #36cfc9);\n@menu-dark-bg: #001529;\n@menu-dark-submenu-bg: #000c17;\n\n.ant-pro-global-header {\n background: @layout-header-background;\n box-shadow: 0 2px 8px rgba(24, 144, 255, 0.15);\n backdrop-filter: blur(8px);\n \n .ant-breadcrumb {\n margin-left: 16px;\n \n a, span {\n color: rgba(255, 255, 255, 0.85);\n transition: color 0.3s;\n \n &:hover {\n color: #ffffff;\n }\n }\n }\n}\n\n.ant-pro-sider-menu-logo {\n position: relative;\n height: 64px;\n padding: 0 24px;\n overflow: hidden;\n background: linear-gradient(180deg, #1890ff, #096dd9);\n cursor: pointer;\n transition: all 0.3s;\n\n h1 {\n color: white;\n font-size: 20px;\n margin: 0 0 0 12px;\n font-weight: 600;\n opacity: 1;\n transition: all 0.3s;\n background: linear-gradient(90deg, #fff, #e6f7ff);\n -webkit-background-clip: text;\n -webkit-text-fill-color: transparent;\n }\n\n &:hover {\n background: linear-gradient(180deg, #096dd9, #1890ff);\n }\n}\n\n.ant-menu-dark {\n background: linear-gradient(180deg, #001529, #002140);\n\n .ant-menu-item {\n margin: 4px 8px;\n padding: 0 16px;\n border-radius: 4px;\n transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);\n\n &:hover {\n background: linear-gradient(90deg, #1890ff, #40a9ff) !important;\n transform: translateX(4px);\n }\n\n &.ant-menu-item-selected {\n background: linear-gradient(90deg, #1890ff, #40a9ff) !important;\n box-shadow: 0 2px 8px rgba(24, 144, 255, 0.2);\n &::after {\n display: none;\n }\n }\n }\n\n .ant-menu-submenu {\n &-title {\n margin: 4px 8px;\n padding: 0 16px;\n border-radius: 4px;\n transition: all 0.3s;\n\n &:hover {\n background: rgba(24, 144, 255, 0.1) !important;\n }\n }\n\n &-open {\n background: rgba(0, 0, 0, 0.2);\n border-radius: 4px;\n }\n }\n}\n\n.ant-pro-basicLayout-content {\n margin: 24px;\n padding: 24px;\n background: #f f f;\n border-radius: 8px;\n box-shadow: 0 2px 12px rgba(0, 0, 0, 0.05);\n min-height: calc(100vh - 128px);\n}\n\n.footer-container {\n text-align: center;\n color: rgba(0, 0, 0, 0.45);\n padding: 16px;\n background: white;\n border-radius: 4px;\n margin: 0 24px;\n box-shadow: 0 1px 4px rgba(0, 0, 0, 0.05);\n \n &:hover {\n color: rgba(0, 0, 0, 0.65);\n }\n}\n\n.ant-pro-global-header-index-right {\n margin-right: 16px;\n display: flex;\n align-items: center;\n height: 100%;\n\n .ant-pro-global-header-index-action {\n padding: 0 12px;\n cursor: pointer;\n display: flex;\n align-items: center;\n height: 100%;\n color: white;\n transition: all 0.3s;\n\n &:hover {\n background: rgba(255, 255, 255, 0.1);\n }\n }\n\n .ant-avatar {\n margin-right: 8px;\n border: 2px solid rgba(255, 255, 255, 0.2);\n box-shadow: 0 2px 8px rgba(0, 0, 0, 0.15);\n }\n}\n</style>\n"]}]}