diff --git a/src/main/resources/templates/themes/campus-glow/assets/css/main.css b/src/main/resources/templates/themes/campus-glow/assets/css/main.css index a16cc7d..bdbb40e 100644 --- a/src/main/resources/templates/themes/campus-glow/assets/css/main.css +++ b/src/main/resources/templates/themes/campus-glow/assets/css/main.css @@ -400,3 +400,257 @@ button { font-family: inherit; cursor: pointer; } .cg-gallery-item img { height: 230px; } .cg-qr:hover img { transform: scale(1.6); } } + + +/* ===================================================================== + 首页布局模式区块补齐(v2 手册 §A.3 · P-A3,S7) + 对应 fragments/home-blocks.html 新增的 5 个 fragment:compact / image_wall / links / quick_links / notice_bar。 + 本包三条硬约束说明: + · §2.5 坑③(全宽区块根补 grid-column)在本包**不适用**:.cg-home 无任何布局规则(非网格), + 区块用"全幅 section > .cg-container"惯用结构天然占满整行——补 grid-column 只会留死声明。 + · 网格轨道一律 minmax(0,1fr)(本包 .cg-news-grid/.cg-media-grid 基线用的是裸 1fr, + 新节按记忆教训改用 minmax,避免中文 min-content 撑破窄视口;不动既有两行以守住"已有形态不改")。 + · 颜色只用本包既有令牌;#fff 与 color-mix() 是本包既有习惯(顶栏/导航/侧栏已如此写),未新增色值。 + ===================================================================== */ + +/* 区块壳:与 .cg-block-card / .cg-media-card 同值(本包习惯是各形态各写一份,不合并选择器) */ +.cg-compact, .cg-wall, .cg-friend, .cg-quick { padding: 40px 0 0; } +.cg-sec-card { + background: var(--cg-card-bg); border: 1px solid var(--cg-border); + border-radius: var(--cg-radius); box-shadow: var(--cg-shadow); padding: 26px 30px; +} + +/* 形态四 compact:圆角日期块 + 单行标题 */ +.cg-compact-list { display: grid; grid-template-columns: 1fr 1fr; column-gap: 48px; } +.cg-compact-list li { + display: flex; align-items: center; gap: 14px; min-width: 0; + padding: 11px 2px; border-bottom: 1px dashed var(--cg-border); +} +.cg-compact-list li:nth-last-child(-n+2) { border-bottom: 0; } +.cg-date-chip { + flex: none; display: inline-flex; flex-direction: column; align-items: center; justify-content: center; + width: 56px; line-height: 1.25; color: #fff; border-radius: 10px; + background: linear-gradient(135deg, var(--cg-primary), var(--cg-primary-dark)); + box-shadow: 0 3px 8px rgba(10, 98, 68, .22); +} +.cg-date-chip b { font-size: 20px; font-weight: 700; } +.cg-date-chip i { font-style: normal; font-size: 11px; opacity: .82; letter-spacing: .5px; } +.cg-compact-title { + flex: 1; min-width: 0; font-size: 15px; color: var(--cg-text); + white-space: nowrap; overflow: hidden; text-overflow: ellipsis; +} +.cg-compact-title:hover { color: var(--cg-primary); } + +/* 形态五 image_wall:四列图墙 + 底部渐变题注(渐变写法同 .cg-gallery-cap,色值为该规则既有) */ +.cg-wall-grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 14px; } +.cg-wall-item { position: relative; border-radius: 10px; overflow: hidden; } +.cg-wall-item a { display: block; } +.cg-wall-item img { + width: 100%; height: 156px; object-fit: cover; + transition: transform .3s ease, box-shadow .3s ease; +} +.cg-wall-item:hover img { transform: translateY(-4px); box-shadow: 0 14px 28px rgba(10, 98, 68, .22); } +.cg-wall-cap { + position: absolute; left: 0; right: 0; bottom: 0; padding: 26px 12px 9px; + color: #fff; font-size: 14px; + background: linear-gradient(180deg, rgba(0, 0, 0, 0), rgba(0, 0, 0, .55)); + white-space: nowrap; overflow: hidden; text-overflow: ellipsis; +} + +/* 形态六 links:友情链接分组(分组标题带强调色竖条;logo 用页脚同款 .cg-link-logo) */ +.cg-friend-group { + margin: 16px 0 8px; padding-left: 10px; font-size: 14px; font-weight: 600; + color: var(--cg-primary-dark); border-left: 3px solid var(--cg-accent); +} +.cg-friend-group:first-of-type { margin-top: 0; } +.cg-friend-links { display: flex; flex-wrap: wrap; gap: 8px 12px; } +.cg-friend-links li { flex: none; } +.cg-friend-links a { + display: inline-flex; align-items: center; gap: 6px; padding: 5px 14px; + font-size: 13px; color: var(--cg-text); background: var(--cg-bg); + border: 1px solid var(--cg-border); border-radius: 999px; transition: color .2s, border-color .2s; +} +.cg-friend-links a:hover { color: var(--cg-primary); border-color: var(--cg-primary); } + +/* 新区块一 quick_links:六列宫格 → 三列 → 两列(入口名居中,悬停走本包渐变语言) */ +.cg-quick-grid { display: grid; grid-template-columns: repeat(6, minmax(0, 1fr)); gap: 12px; } +.cg-quick-link { + display: flex; align-items: center; justify-content: center; min-height: 58px; padding: 8px 10px; + font-size: 14px; text-align: center; color: var(--cg-text); + background: var(--cg-bg); border: 1px solid var(--cg-border); border-radius: 10px; + transition: color .2s, background .2s, transform .2s, box-shadow .2s; +} +.cg-quick-link:hover { + color: #fff; background: linear-gradient(135deg, var(--cg-primary), var(--cg-primary-dark)); + border-color: var(--cg-primary); transform: translateY(-3px); box-shadow: var(--cg-shadow); +} + +/* 新区块二 notice_bar:整幅横条(与 .cg-ticker 同层级,不是卡片)。 + info 用主色浅底、warn 用强调色浅底——本包有 --cg-accent 令牌,故不需要像 mint-breeze 那样自持 warn 三件套。 */ +.cg-notice { border-top: 1px solid var(--cg-border); border-bottom: 1px solid var(--cg-border); background: var(--cg-card-bg); } +.cg-notice-inner { display: flex; align-items: center; flex-wrap: wrap; gap: 12px; padding-top: 12px; padding-bottom: 12px; font-size: 14px; } +.cg-notice-tag { + flex: none; font-size: 13px; font-weight: 600; color: #fff; padding: 4px 14px; border-radius: 0 0 10px 10px; + background: linear-gradient(135deg, var(--cg-primary), var(--cg-primary-dark)); +} +.cg-notice-link, .cg-notice-text { flex: 1; min-width: 0; color: var(--cg-text); } +.cg-notice-link { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; } +.cg-notice-link:hover { color: var(--cg-primary); text-decoration: underline; text-underline-offset: 3px; } +.cg-notice-info { border-top-color: color-mix(in srgb, var(--cg-primary) 30%, var(--cg-border)); background: color-mix(in srgb, var(--cg-primary) 7%, var(--cg-card-bg)); } +.cg-notice-warn { border-top-color: color-mix(in srgb, var(--cg-accent) 45%, var(--cg-border)); background: color-mix(in srgb, var(--cg-accent) 9%, var(--cg-card-bg)); } +.cg-notice-warn .cg-notice-tag { background: linear-gradient(135deg, var(--cg-accent), #ff9f4d); } +.cg-notice-warn .cg-notice-link:hover { color: var(--cg-accent); } + +@media (max-width: 992px) { + .cg-sec-card { padding: 20px 18px; } + .cg-wall-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); } + .cg-quick-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); } +} +@media (max-width: 768px) { + .cg-compact-list { grid-template-columns: 1fr; } + .cg-compact-list li:nth-last-child(-n+2) { border-bottom: 1px dashed var(--cg-border); } + .cg-compact-list li:last-child { border-bottom: 0; } + .cg-compact, .cg-wall, .cg-friend, .cg-quick { padding-top: 26px; } + .cg-quick-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); } + .cg-notice-inner { flex-direction: column; align-items: flex-start; gap: 4px; } + .cg-notice-link { white-space: normal; } +} + +/* ===================================================================== + 服务中心 / 事项指南(v2 手册 §A.3 · P-A3,S7 新建 service.html + guide.html) + 页壳、面包屑、页题、分页、空态、标题/元信息/正文全部复用本包既有 + .cg-list-main / .cg-page-card / .cg-breadcrumb / .cg-page-title / .cg-pagination / + .cg-empty / .cg-article-title / .cg-article-meta / .cg-article-content, + 本节只补事项特有的件;色值只用本包令牌(#fff、#ff9f4d 为本包既有习惯)。 + ===================================================================== */ + +/* 筛选面板:分组行 + 胶囊选项(active 走本包主色渐变) */ +.cg-svc-filters { + border: 1px solid var(--cg-border); border-radius: 10px; + background: var(--cg-bg); padding: 8px 14px; margin-bottom: 18px; +} +.cg-svc-filter-group { display: flex; align-items: flex-start; gap: 12px; padding: 7px 0; } +.cg-svc-filter-group + .cg-svc-filter-group { border-top: 1px dashed var(--cg-border); } +.cg-svc-filter-label { flex: none; min-width: 60px; font-size: 13px; font-weight: 600; color: var(--cg-primary-dark); padding-top: 3px; } +.cg-svc-filter-options { display: flex; flex-wrap: wrap; gap: 8px; min-width: 0; } +.cg-chip { + display: inline-flex; align-items: center; gap: 5px; padding: 2px 12px; + font-size: 13px; color: var(--cg-text-light); + background: var(--cg-card-bg); border: 1px solid var(--cg-border); border-radius: 999px; + transition: color .2s, border-color .2s, background .2s; +} +.cg-chip em { font-style: normal; font-size: 12px; opacity: .75; } +.cg-chip:hover { color: var(--cg-primary); border-color: var(--cg-primary); } +.cg-chip.active { + color: #fff; border-color: var(--cg-primary); + background: linear-gradient(135deg, var(--cg-primary), var(--cg-primary-dark)); +} + +/* 工具条:搜索框(圆角同 .cg-site-search,但方角贴合卡片)+ 清除筛选 */ +.cg-svc-toolbar { display: flex; align-items: center; justify-content: space-between; gap: 12px; margin-bottom: 16px; } +.cg-svc-search { display: flex; flex: 1; min-width: 0; } +.cg-svc-search input { + flex: 1; min-width: 0; padding: 9px 14px; font-size: 14px; font-family: inherit; + border: 1px solid var(--cg-border); border-right: 0; border-radius: 8px 0 0 8px; + background: var(--cg-bg); color: var(--cg-text); outline: none; +} +.cg-svc-search input:focus { border-color: var(--cg-primary); background: var(--cg-card-bg); } +.cg-svc-search button { + flex: none; padding: 9px 24px; border: 0; border-radius: 0 8px 8px 0; + background: var(--cg-primary); color: #fff; font-size: 14px; transition: background .2s; +} +.cg-svc-search button:hover { background: var(--cg-primary-dark); } +.cg-svc-clear { flex: none; font-size: 13px; color: var(--cg-primary); } +.cg-svc-clear:hover { color: var(--cg-accent); text-decoration: underline; text-underline-offset: 3px; } + +/* 事项卡网格:三列 → 两列 → 单列;轨道 minmax(0,·) 防中文 min-content 撑破窄视口 */ +.cg-svc-list { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 16px; } +.cg-svc-item { + display: flex; gap: 14px; align-items: flex-start; min-width: 0; padding: 16px; + background: var(--cg-card-bg); border: 1px solid var(--cg-border); border-radius: 10px; + transition: transform .25s ease, box-shadow .25s ease, border-color .25s ease; +} +.cg-svc-item:hover { transform: translateY(-3px); border-color: var(--cg-primary); box-shadow: var(--cg-shadow); } +.cg-svc-item-cover { flex: none; width: 108px; border-radius: 8px; overflow: hidden; } +.cg-svc-item-cover img { width: 100%; height: 72px; object-fit: cover; } +.cg-svc-item-body { flex: 1; min-width: 0; display: flex; flex-direction: column; gap: 6px; } +.cg-svc-item-title { display: flex; align-items: center; flex-wrap: wrap; gap: 6px; min-width: 0; } +.cg-svc-item-name { + font-size: 15px; font-weight: 600; color: var(--cg-text); line-height: 1.5; + display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; +} +.cg-svc-item:hover .cg-svc-item-name { color: var(--cg-primary); } +.cg-svc-item-summary { + font-size: 13px; color: var(--cg-text-light); + display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; +} +.cg-svc-item-meta { margin-top: auto; display: flex; flex-wrap: wrap; gap: 4px 12px; font-size: 12px; color: var(--cg-text-light); } + +/* 标签:办理方式用主色浅底;"可在线办理"是第二优先级信息,用强调色描边区分而不是引入新色相 */ +.cg-tag { + flex: none; font-size: 12px; line-height: 1.6; padding: 1px 9px; border-radius: 4px; + color: var(--cg-primary); background: color-mix(in srgb, var(--cg-primary) 10%, var(--cg-card-bg)); +} +.cg-tag.online { color: var(--cg-accent); background: transparent; border: 1px solid color-mix(in srgb, var(--cg-accent) 55%, transparent); } + +/* 指南页:办理按钮、基本信息表、章节题、附件、跳转条、相关服务 */ +.cg-svc-apply { display: flex; align-items: center; gap: 14px; margin: 18px 0; } +.cg-svc-apply-btn { + display: inline-block; padding: 10px 32px; font-size: 15px; color: #fff; + border-radius: 999px; background: linear-gradient(135deg, var(--cg-primary), var(--cg-primary-dark)); + box-shadow: 0 6px 16px rgba(10, 98, 68, .26); transition: transform .2s ease, box-shadow .2s ease; +} +.cg-svc-apply-btn:hover { transform: translateY(-2px); box-shadow: 0 10px 22px rgba(10, 98, 68, .34); } +.cg-svc-apply-hint { font-size: 13px; color: var(--cg-text-light); } +.cg-svc-summary { font-size: 15px; color: var(--cg-text-light); line-height: 1.85; margin-bottom: 18px; } + +.cg-svc-info { width: 100%; border-collapse: collapse; margin-bottom: 18px; font-size: 14px; } +.cg-svc-info th, .cg-svc-info td { border: 1px solid var(--cg-border); padding: 10px 14px; text-align: left; vertical-align: top; } +.cg-svc-info th { width: 132px; font-weight: 500; color: var(--cg-text-light); background: var(--cg-bg); } + +.cg-svc-section { margin-top: 22px; } +.cg-svc-section h2 { + font-size: 18px; font-weight: 600; color: var(--cg-primary-dark); + padding-left: 12px; margin-bottom: 10px; border-left: 4px solid var(--cg-accent); +} +.cg-svc-section .cg-article-content { padding-top: 0; } +.cg-svc-attachments > ul { display: flex; flex-direction: column; gap: 8px; } +.cg-svc-attachments a { font-size: 14px; color: var(--cg-primary-dark); } +.cg-svc-attachments a:hover { color: var(--cg-primary); text-decoration: underline; text-underline-offset: 3px; } +.cg-svc-att-size { margin-left: 8px; font-size: 12px; color: var(--cg-text-light); } + +.cg-svc-links { display: flex; flex-wrap: wrap; gap: 12px; margin-top: 24px; padding-top: 18px; border-top: 1px dashed var(--cg-border); } +.cg-svc-links a { + padding: 4px 18px; font-size: 14px; color: var(--cg-primary); + border: 1px solid var(--cg-primary); border-radius: 999px; transition: color .2s, background .2s; +} +.cg-svc-links a:hover { color: #fff; background: var(--cg-primary); } + +.cg-svc-related { margin-top: 30px; padding: 18px 20px; border: 1px solid var(--cg-border); border-radius: 10px; background: var(--cg-bg); } +.cg-svc-related-title { font-size: 17px; font-weight: 600; color: var(--cg-primary-dark); margin-bottom: 6px; } +.cg-svc-related-list > li + li { border-top: 1px dashed var(--cg-border); } +.cg-svc-related-list a { display: flex; align-items: center; justify-content: space-between; gap: 12px; padding: 10px 0; min-width: 0; } +.cg-svc-related-name { flex: 1; min-width: 0; font-size: 14px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; } +.cg-svc-related-list a:hover .cg-svc-related-name { color: var(--cg-primary); } +.cg-svc-related-meta { flex: none; display: inline-flex; align-items: center; gap: 8px; font-size: 12px; color: var(--cg-text-light); } + +/* 表格 caption 仅面向读屏(本包 .cg-skip-link 是跳转链接专用,语义不同,不复用) */ +.cg-visually-hidden { + position: absolute; width: 1px; height: 1px; margin: -1px; padding: 0; + overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; border: 0; +} + +@media (max-width: 992px) { + .cg-svc-list { grid-template-columns: repeat(2, minmax(0, 1fr)); } +} +@media (max-width: 768px) { + .cg-svc-list { grid-template-columns: minmax(0, 1fr); } + .cg-svc-toolbar { flex-direction: column; align-items: stretch; } + .cg-svc-clear { align-self: flex-start; } + .cg-svc-info th { width: 92px; padding: 9px 10px; } + .cg-svc-info td { padding: 9px 10px; } + .cg-svc-item { flex-direction: column; } + .cg-svc-item-cover { width: 100%; } + .cg-svc-item-cover img { height: 158px; } + .cg-svc-apply { flex-wrap: wrap; gap: 8px; } +} diff --git a/src/main/resources/templates/themes/campus-glow/fragments/home-blocks.html b/src/main/resources/templates/themes/campus-glow/fragments/home-blocks.html index 7a3132f..a505ebc 100644 --- a/src/main/resources/templates/themes/campus-glow/fragments/home-blocks.html +++ b/src/main/resources/templates/themes/campus-glow/fragments/home-blocks.html @@ -148,3 +148,133 @@ + + + +
+
+
+
+

通知公告

+ + + +
+ +
+

栏目暂无内容

+

内容发布后将在此展示

+
+
+
+
+ + +
+
+
+
+

图片新闻

+ + + +
+ +
+

栏目暂无内容

+

内容发布后将在此展示

+
+
+
+
+ + +
+
+
+
+

友情链接

+
+ +

分组

+ +
+
+
+
+ + +
+
+
+
+

快捷通道

+ 更多 > +
+ +
+

暂无可用入口

+

请在首页布局中配置快捷通道

+
+
+
+
+ + +
+
+ 公告 + 公告正文 + 公告正文 +
+
diff --git a/src/main/resources/templates/themes/campus-glow/guide.html b/src/main/resources/templates/themes/campus-glow/guide.html new file mode 100644 index 0000000..21ad730 --- /dev/null +++ b/src/main/resources/templates/themes/campus-glow/guide.html @@ -0,0 +1,135 @@ + + + + +
+ + +
+
+ + + +
+

事项服务暂时不可用,请稍后再试

+

事项数据服务暂不可达,稍后刷新即可恢复

+
+ +
+

事项名称

+ + + +
+ 我要办理 + 进入服务大厅在线办理 +
+ +

简介

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
事项基本信息
服务对象服务对象
事项类别事项类别
办理地点办理地点
办理时限办理时限
承诺时限承诺时限
咨询电话咨询电话
监督投诉监督投诉电话
+ +
+

办理流程

+
办理流程
+
+
+

所需材料

+
所需材料
+
+
+

注意事项

+
注意事项
+
+ +
+

相关材料下载

+ +
+ + +
+ + +
+
+ + + + + diff --git a/src/main/resources/templates/themes/campus-glow/home.html b/src/main/resources/templates/themes/campus-glow/home.html index b3b96a6..7bae0f5 100644 --- a/src/main/resources/templates/themes/campus-glow/home.html +++ b/src/main/resources/templates/themes/campus-glow/home.html @@ -23,24 +23,31 @@ - - - - - - - - - - + + + + + + + + + + + + + + + + + + + - - - - diff --git a/src/main/resources/templates/themes/campus-glow/service.html b/src/main/resources/templates/themes/campus-glow/service.html new file mode 100644 index 0000000..8eda08b --- /dev/null +++ b/src/main/resources/templates/themes/campus-glow/service.html @@ -0,0 +1,114 @@ + + + + +
+ + +
+
+ + +

服务中心

+ + +
+

事项服务暂时不可用,请稍后再试

+

事项数据服务暂不可达,稍后刷新即可恢复

+
+ +
+
+ 服务对象 + +
+
+ 事项类别 + +
+
+ 服务部门 + +
+
+ +
+ + 清除筛选 +
+ + +
+

未找到符合条件的服务事项

+

服务中心暂未上架事项

+

换个筛选条件或关键词试试

+

事项发布后将在此展示

+
+ + + +
+
+ +
+ + +