Files
education/frontend/node_modules/.cache/vue-loader/73d7d3301dbb149190a83a24653eb9c1.json
T

1 line
17 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\\views\\index.vue?vue&type=style&index=0&id=a83bd3b0&scoped=true&lang=scss","dependencies":[{"path":"C:\\Users\\Admin\\Desktop\\education\\frontend\\src\\views\\index.vue","mtime":1787567871615},{"path":"C:\\Users\\Admin\\Desktop\\education\\frontend\\node_modules\\css-loader\\dist\\cjs.js","mtime":1787309792478},{"path":"C:\\Users\\Admin\\Desktop\\education\\frontend\\node_modules\\vue-loader\\lib\\loaders\\stylePostLoader.js","mtime":1787309794547},{"path":"C:\\Users\\Admin\\Desktop\\education\\frontend\\node_modules\\postcss-loader\\src\\index.js","mtime":1787309793084},{"path":"C:\\Users\\Admin\\Desktop\\education\\frontend\\node_modules\\sass-loader\\dist\\cjs.js","mtime":1787309791955},{"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:CgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCg0KLmhvbWUgew0KICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQoMTM1ZGVnLCAjZjVmN2ZhIDAlLCAjZWVmMGY4IDUwJSwgI2Y1ZjdmYSAxMDAlKTsNCiAgbWluLWhlaWdodDogY2FsYygxMDB2aCAtIDg0cHgpOw0KICBwYWRkaW5nOiAyMHB4Ow0KICBwb3NpdGlvbjogcmVsYXRpdmU7DQoNCiAgLmJvdHRvbS1yb3cgew0KICAgIG1hcmdpbi1ib3R0b206IDIwcHg7DQogIH0NCg0KICAubW9kdWxlLWNhcmQgew0KICAgIGhlaWdodDogNDIwcHg7DQogICAgd2lkdGg6IDEwMCU7DQogICAgZGlzcGxheTogZmxleDsNCiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uOw0KICAgIGJvcmRlci1yYWRpdXM6IDEwcHg7DQogICAgYm9yZGVyOiBub25lOw0KICAgIHRyYW5zaXRpb246IGFsbCAwLjNzIGVhc2U7DQogICAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KDE4MGRlZywgI2ZmZmZmZiAwJSwgI2Y4ZjlmZCAxMDAlKTsNCiAgICBib3gtc2hhZG93OiAwIDRweCAyMHB4IHJnYmEoMCwgMTM1LCA5MCwgMC4wNik7DQoNCiAgICAmOmhvdmVyIHsNCiAgICAgIGJveC1zaGFkb3c6IDAgOHB4IDMwcHggcmdiYSgwLCAxMzUsIDkwLCAwLjEyKTsNCiAgICB9DQoNCiAgICA6OnYtZGVlcCAuZWwtY2FyZF9faGVhZGVyIHsNCiAgICAgIHBhZGRpbmc6IDE0cHggMjBweDsNCiAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCByZ2JhKDAsIDEzNSwgOTAsIDAuMDgpOw0KICAgICAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KDEzNWRlZywgdmFyKC0tZWR1LWdyZWVuLWRhcmspIDAlLCB2YXIoLS1lZHUtZ3JlZW4tcHJpbWFyeSkgMTAwJSk7DQogICAgICBib3JkZXItcmFkaXVzOiAxMHB4IDEwcHggMCAwOw0KICAgICAgZmxleC1zaHJpbms6IDA7DQogICAgfQ0KDQogICAgOjp2LWRlZXAgLmVsLWNhcmRfX2JvZHkgew0KICAgICAgZmxleDogMTsNCiAgICAgIGRpc3BsYXk6IGZsZXg7DQogICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uOw0KICAgICAgb3ZlcmZsb3c6IGhpZGRlbjsNCiAgICAgIHBhZGRpbmc6IDA7DQogICAgfQ0KICB9DQoNCiAgLmNhcmQtaGVhZGVyIHsNCiAgICBkaXNwbGF5OiBmbGV4Ow0KICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjsNCiAgICBhbGlnbi1pdGVtczogY2VudGVyOw0KICAgIGZvbnQtd2VpZ2h0OiA2MDA7DQogICAgZm9udC1zaXplOiAxNXB4Ow0KICAgIGNvbG9yOiAjZmZmZmZmOw0KDQogICAgLmNhcmQtaWNvbiB7DQogICAgICBtYXJnaW4tcmlnaHQ6IDZweDsNCiAgICAgIGNvbG9yOiB2YXIoLS1lZHUtZ3JlZW4tbGlnaHQpOw0KICAgICAgZm9udC1zaXplOiAxNnB4Ow0KICAgIH0NCg0KICAgIC5tb3JlLWJ0biB7DQogICAgICBwYWRkaW5nOiAwOw0KICAgICAgZm9udC1zaXplOiAxM3B4Ow0KICAgICAgY29sb3I6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC43NSk7DQoNCiAgICAgICY6aG92ZXIgew0KICAgICAgICBjb2xvcjogI2ZmZmZmZjsNCiAgICAgIH0NCg0KICAgICAgaSB7DQogICAgICAgIGZvbnQtc2l6ZTogMTJweDsNCiAgICAgIH0NCiAgICB9DQogIH0NCg0KICAuY2FyZC1ib2R5IHsNCiAgICBmbGV4OiAxOw0KICAgIGRpc3BsYXk6IGZsZXg7DQogICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsNCiAgICBvdmVyZmxvdy14OiBoaWRkZW47DQogICAgb3ZlcmZsb3cteTogYXV0bzsNCiAgICBwYWRkaW5nOiAxNXB4IDIwcHg7DQogICAgc2Nyb2xsYmFyLXdpZHRoOiBub25lOw0KICAgIC1tcy1vdmVyZmxvdy1zdHlsZTogbm9uZTsNCg0KICAgICY6Oi13ZWJraXQtc2Nyb2xsYmFyIHsNCiAgICAgIGRpc3BsYXk6IG5vbmU7DQogICAgfQ0KICB9DQoNCiAgLmNhcmQtZm9vdGVyIHsNCiAgICBmbGV4LXNocmluazogMDsNCiAgICBwYWRkaW5nOiAxMHB4IDIwcHggMTVweDsNCiAgICB0ZXh0LWFsaWduOiByaWdodDsNCiAgICBib3JkZXItdG9wOiAxcHggc29saWQgcmdiYSgwLCAxMzUsIDkwLCAwLjA2KTsNCiAgICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQoMTgwZGVnLCAjZmZmZmZmIDAlLCAjZjRmNmZiIDEwMCUpOw0KICAgIG92ZXJmbG93LXg6IGF1dG87DQoNCiAgICA6OnYtZGVlcCAuZWwtcGFnaW5hdGlvbl9fdG90YWwsDQogICAgOjp2LWRlZXAgLmVsLXBhZ2luYXRpb25fX2p1bXAsDQogICAgOjp2LWRlZXAgLmVsLXBhZ2VyIGxpIHsNCiAgICAgIGNvbG9yOiAjNWE1ZjdhOw0KICAgIH0NCg0KICAgIDo6di1kZWVwIC5lbC1wYWdlciBsaS5hY3RpdmUsDQogICAgOjp2LWRlZXAgLmVsLXBhZ2VyIGxpOmhvdmVyIHsNCiAgICAgIGNvbG9yOiB2YXIoLS1lZHUtZ3JlZW4tZGFyayk7DQogICAgfQ0KICB9DQoNCiAgLmVtcHR5LXN0YXRlIHsNCiAgICBmbGV4OiAxOw0KICAgIGRpc3BsYXk6IGZsZXg7DQogICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsNCiAgICBhbGlnbi1pdGVtczogY2VudGVyOw0KICAgIGp1c3RpZnktY29udGVudDogY2VudGVyOw0KICAgIG1pbi1oZWlnaHQ6IDE2MHB4Ow0KICAgIGNvbG9yOiAjOGE5MGFkOw0KDQogICAgLmVtcHR5LWljb24gew0KICAgICAgZm9udC1zaXplOiA0OHB4Ow0KICAgICAgbWFyZ2luLWJvdHRvbTogMTJweDsNCiAgICAgIGNvbG9yOiAjYjhiZWQ4Ow0KICAgIH0NCg0KICAgIHAgew0KICAgICAgbWFyZ2luOiAwOw0KICAgICAgZm9udC1zaXplOiAxNHB4Ow0KICAgIH0NCiAgfQ0KDQogIC5ub3RpY2UtbGlzdCB7DQogICAgLm5vdGljZS1pdGVtIHsNCiAgICAgIHBhZGRpbmc6IDE0cHggMDsNCiAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAjZjVmNWY1Ow0KICAgICAgY3Vyc29yOiBwb2ludGVyOw0KICAgICAgdHJhbnNpdGlvbjogYWxsIDAuMnM7DQoNCiAgICAgICY6bGFzdC1jaGlsZCB7DQogICAgICAgIGJvcmRlci1ib3R0b206IG5vbmU7DQogICAgICB9DQoNCiAgICAgICY6aG92ZXIgew0KICAgICAgICBiYWNrZ3JvdW5kOiByZ2JhKDAsIDEzNSwgOTAsIDAuMDMpOw0KICAgICAgICBtYXJnaW46IDAgLTIwcHg7DQogICAgICAgIHBhZGRpbmctbGVmdDogMjBweDsNCiAgICAgICAgcGFkZGluZy1yaWdodDogMjBweDsNCiAgICAgIH0NCg0KICAgICAgLm5vdGljZS1tYWluIHsNCiAgICAgICAgZGlzcGxheTogZmxleDsNCiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsNCiAgICAgICAgZ2FwOiA4cHg7DQogICAgICAgIG1hcmdpbi1ib3R0b206IDZweDsNCg0KICAgICAgICAubm90aWNlLXRhZyB7DQogICAgICAgICAgZmxleC1zaHJpbms6IDA7DQoNCiAgICAgICAgICAmLmVsLXRhZy0td2FybmluZyB7DQogICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDAsIDEzNSwgOTAsIDAuMDgpOw0KICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiByZ2JhKDAsIDEzNSwgOTAsIDAuMTUpOw0KICAgICAgICAgICAgY29sb3I6IHZhcigtLWVkdS1ncmVlbi1kYXJrKTsNCiAgICAgICAgICB9DQoNCiAgICAgICAgICAmLmVsLXRhZy0tc3VjY2VzcyB7DQogICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDAsIDEzNSwgOTAsIDAuMDYpOw0KICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiByZ2JhKDAsIDEzNSwgOTAsIDAuMTIpOw0KICAgICAgICAgICAgY29sb3I6IHZhcigtLWVkdS1ncmVlbi1wcmltYXJ5KTsNCiAgICAgICAgICB9DQogICAgICAgIH0NCg0KICAgICAgICAubm90aWNlLXRpdGxlIHsNCiAgICAgICAgICBmbGV4OiAxOw0KICAgICAgICAgIGZvbnQtc2l6ZTogMTNweDsNCiAgICAgICAgICBjb2xvcjogIzMwMzEzMzsNCiAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuOw0KICAgICAgICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7DQogICAgICAgICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7DQoNCiAgICAgICAgICAmOmhvdmVyIHsNCiAgICAgICAgICAgIGNvbG9yOiB2YXIoLS1lZHUtZ3JlZW4tZGFyayk7DQogICAgICAgICAgfQ0KICAgICAgICB9DQogICAgICB9DQoNCiAgICAgIC5ub3RpY2UtbWV0YSB7DQogICAgICAgIGRpc3BsYXk6IGZsZXg7DQogICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjsNCiAgICAgICAgZm9udC1zaXplOiAxMnB4Ow0KICAgICAgICBjb2xvcjogIzkwOTM5OTsNCiAgICAgICAgcGFkZGluZy1sZWZ0OiA0MnB4Ow0KICAgICAgfQ0KICAgIH0NCiAgfQ0KfQ0K"},{"version":3,"sources":["index.vue"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAsIA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA","file":"index.vue","sourceRoot":"src/views","sourcesContent":["<template>\r\n <div class=\"app-container home\">\r\n <!-- 通知公告 -->\r\n <el-row :gutter=\"20\" class=\"bottom-row\">\r\n <el-col :xs=\"24\" :sm=\"24\" :md=\"24\" :lg=\"24\">\r\n <el-card class=\"module-card notice-card\" shadow=\"hover\">\r\n <div slot=\"header\" class=\"card-header\">\r\n <span><i class=\"el-icon-bell card-icon\"></i> 通知公告</span>\r\n <el-button type=\"text\" class=\"more-btn\" @click=\"handleMore('notice')\">更多 <i class=\"el-icon-arrow-right\"></i></el-button>\r\n </div>\r\n <div class=\"card-body notice-body\" v-loading=\"noticeLoading\">\r\n <div v-if=\"noticeList.length === 0\" class=\"empty-state mini-empty\">\r\n <i class=\"el-icon-inbox empty-icon\"></i>\r\n <p>暂无公告</p>\r\n </div>\r\n <div v-else class=\"notice-list\">\r\n <div v-for=\"item in noticeList\" :key=\"item.noticeId\" class=\"notice-item\" @click=\"handleViewNotice(item)\">\r\n <div class=\"notice-main\">\r\n <el-tag size=\"mini\" :type=\"item.noticeType === '1' ? 'warning' : 'success'\" class=\"notice-tag\">\r\n {{ item.noticeType === '1' ? '通知' : '公告' }}\r\n </el-tag>\r\n <span class=\"notice-title\">{{ item.noticeTitle }}</span>\r\n </div>\r\n <div class=\"notice-meta\">\r\n <span>{{ item.createBy || '系统' }}</span>\r\n <span>{{ item.createTime }}</span>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"card-footer\">\r\n <el-pagination\r\n @size-change=\"handleNoticeSizeChange\"\r\n @current-change=\"handleNoticeCurrentChange\"\r\n :current-page=\"noticePage.currentPage\"\r\n :page-sizes=\"[5, 10, 20, 50]\"\r\n :page-size=\"noticePage.pageSize\"\r\n :total=\"noticePage.total\"\r\n layout=\"total, prev, pager, next\"\r\n small\r\n />\r\n </div>\r\n </el-card>\r\n </el-col>\r\n </el-row>\r\n\r\n <notice-detail-view ref=\"noticeViewRef\" />\r\n </div>\r\n</template>\r\n\r\n<script>\r\nimport { listNotice } from \"@/api/system/notice\"\r\nimport NoticeDetailView from \"@/layout/components/HeaderNotice/DetailView\"\r\n\r\nexport default {\r\n name: \"Index\",\r\n components: { NoticeDetailView },\r\n data() {\r\n return {\r\n version: \"3.9.2\",\r\n noticeList: [],\r\n noticeLoading: false,\r\n noticePage: {\r\n currentPage: 1,\r\n pageSize: 10,\r\n total: 0\r\n }\r\n }\r\n },\r\n mounted() {\r\n this.loadNoticeList()\r\n },\r\n methods: {\r\n goTarget(href) {\r\n window.open(href, \"_blank\")\r\n },\r\n handleMore(type) {\r\n const titleMap = {\r\n notice: '通知公告'\r\n }\r\n const targetTitle = titleMap[type]\r\n if (targetTitle) {\r\n const routes = this.$store.getters.sidebarRouters || []\r\n const findRouteByTitle = (routeList, parentPath = '') => {\r\n for (const route of routeList) {\r\n const fullPath = parentPath ? parentPath + '/' + route.path : route.path\r\n if (route.meta && route.meta.title === targetTitle) {\r\n return fullPath\r\n }\r\n if (route.children && route.children.length) {\r\n const found = findRouteByTitle(route.children, fullPath)\r\n if (found) return found\r\n }\r\n }\r\n return null\r\n }\r\n const targetPath = findRouteByTitle(routes)\r\n if (targetPath) {\r\n this.$router.push(targetPath)\r\n return\r\n }\r\n }\r\n this.$message.info(\"更多功能暂未开放\")\r\n },\r\n loadNoticeList() {\r\n this.noticeLoading = true\r\n listNotice({\r\n pageNum: this.noticePage.currentPage,\r\n pageSize: this.noticePage.pageSize\r\n }).then(response => {\r\n this.noticeList = response.rows || []\r\n this.noticePage.total = response.total || 0\r\n this.noticeLoading = false\r\n }).catch(() => {\r\n this.noticeLoading = false\r\n })\r\n },\r\n handleViewNotice(item) {\r\n this.$refs.noticeViewRef.open(item)\r\n },\r\n handleNoticeSizeChange(val) {\r\n this.noticePage.pageSize = val\r\n this.noticePage.currentPage = 1\r\n this.loadNoticeList()\r\n },\r\n handleNoticeCurrentChange(val) {\r\n this.noticePage.currentPage = val\r\n this.loadNoticeList()\r\n }\r\n }\r\n}\r\n</script>\r\n\r\n<style scoped lang=\"scss\">\r\n.home {\r\n background: linear-gradient(135deg, #f5f7fa 0%, #eef0f8 50%, #f5f7fa 100%);\r\n min-height: calc(100vh - 84px);\r\n padding: 20px;\r\n position: relative;\r\n\r\n .bottom-row {\r\n margin-bottom: 20px;\r\n }\r\n\r\n .module-card {\r\n height: 420px;\r\n width: 100%;\r\n display: flex;\r\n flex-direction: column;\r\n border-radius: 10px;\r\n border: none;\r\n transition: all 0.3s ease;\r\n background: linear-gradient(180deg, #ffffff 0%, #f8f9fd 100%);\r\n box-shadow: 0 4px 20px rgba(0, 135, 90, 0.06);\r\n\r\n &:hover {\r\n box-shadow: 0 8px 30px rgba(0, 135, 90, 0.12);\r\n }\r\n\r\n ::v-deep .el-card__header {\r\n padding: 14px 20px;\r\n border-bottom: 1px solid rgba(0, 135, 90, 0.08);\r\n background: linear-gradient(135deg, var(--edu-green-dark) 0%, var(--edu-green-primary) 100%);\r\n border-radius: 10px 10px 0 0;\r\n flex-shrink: 0;\r\n }\r\n\r\n ::v-deep .el-card__body {\r\n flex: 1;\r\n display: flex;\r\n flex-direction: column;\r\n overflow: hidden;\r\n padding: 0;\r\n }\r\n }\r\n\r\n .card-header {\r\n display: flex;\r\n justify-content: space-between;\r\n align-items: center;\r\n font-weight: 600;\r\n font-size: 15px;\r\n color: #ffffff;\r\n\r\n .card-icon {\r\n margin-right: 6px;\r\n color: var(--edu-green-light);\r\n font-size: 16px;\r\n }\r\n\r\n .more-btn {\r\n padding: 0;\r\n font-size: 13px;\r\n color: rgba(255, 255, 255, 0.75);\r\n\r\n &:hover {\r\n color: #ffffff;\r\n }\r\n\r\n i {\r\n font-size: 12px;\r\n }\r\n }\r\n }\r\n\r\n .card-body {\r\n flex: 1;\r\n display: flex;\r\n flex-direction: column;\r\n overflow-x: hidden;\r\n overflow-y: auto;\r\n padding: 15px 20px;\r\n scrollbar-width: none;\r\n -ms-overflow-style: none;\r\n\r\n &::-webkit-scrollbar {\r\n display: none;\r\n }\r\n }\r\n\r\n .card-footer {\r\n flex-shrink: 0;\r\n padding: 10px 20px 15px;\r\n text-align: right;\r\n border-top: 1px solid rgba(0, 135, 90, 0.06);\r\n background: linear-gradient(180deg, #ffffff 0%, #f4f6fb 100%);\r\n overflow-x: auto;\r\n\r\n ::v-deep .el-pagination__total,\r\n ::v-deep .el-pagination__jump,\r\n ::v-deep .el-pager li {\r\n color: #5a5f7a;\r\n }\r\n\r\n ::v-deep .el-pager li.active,\r\n ::v-deep .el-pager li:hover {\r\n color: var(--edu-green-dark);\r\n }\r\n }\r\n\r\n .empty-state {\r\n flex: 1;\r\n display: flex;\r\n flex-direction: column;\r\n align-items: center;\r\n justify-content: center;\r\n min-height: 160px;\r\n color: #8a90ad;\r\n\r\n .empty-icon {\r\n font-size: 48px;\r\n margin-bottom: 12px;\r\n color: #b8bed8;\r\n }\r\n\r\n p {\r\n margin: 0;\r\n font-size: 14px;\r\n }\r\n }\r\n\r\n .notice-list {\r\n .notice-item {\r\n padding: 14px 0;\r\n border-bottom: 1px solid #f5f5f5;\r\n cursor: pointer;\r\n transition: all 0.2s;\r\n\r\n &:last-child {\r\n border-bottom: none;\r\n }\r\n\r\n &:hover {\r\n background: rgba(0, 135, 90, 0.03);\r\n margin: 0 -20px;\r\n padding-left: 20px;\r\n padding-right: 20px;\r\n }\r\n\r\n .notice-main {\r\n display: flex;\r\n align-items: center;\r\n gap: 8px;\r\n margin-bottom: 6px;\r\n\r\n .notice-tag {\r\n flex-shrink: 0;\r\n\r\n &.el-tag--warning {\r\n background-color: rgba(0, 135, 90, 0.08);\r\n border-color: rgba(0, 135, 90, 0.15);\r\n color: var(--edu-green-dark);\r\n }\r\n\r\n &.el-tag--success {\r\n background-color: rgba(0, 135, 90, 0.06);\r\n border-color: rgba(0, 135, 90, 0.12);\r\n color: var(--edu-green-primary);\r\n }\r\n }\r\n\r\n .notice-title {\r\n flex: 1;\r\n font-size: 13px;\r\n color: #303133;\r\n overflow: hidden;\r\n white-space: nowrap;\r\n text-overflow: ellipsis;\r\n\r\n &:hover {\r\n color: var(--edu-green-dark);\r\n }\r\n }\r\n }\r\n\r\n .notice-meta {\r\n display: flex;\r\n justify-content: space-between;\r\n font-size: 12px;\r\n color: #909399;\r\n padding-left: 42px;\r\n }\r\n }\r\n }\r\n}\r\n</style>\r\n"]}]}