style: 更新网站整体样式为浅红色主题
将PortalLayout.vue和HomeView.vue的配色方案从深蓝央企风格更新为浅红色主题: - 顶部条/页脚:#8B4545 (深玫瑰棕) - 主导航渐变:#C17A7A -> #A85555 (柔和玫瑰色) - 页面背景:#FBF5F5 (极浅粉) - 主要按钮/图标:#E57373 (浅红色) - 次要强调:#EF9A9A (更浅粉红) - 辅助色:#D4A95D (暖金色) Co-Authored-By: Claude Haiku 4.5 <noreply@anthropic.com>
This commit is contained in:
parent
ed3b29aafe
commit
5e3d521096
|
|
@ -112,14 +112,14 @@ a { text-decoration: none; }
|
||||||
min-height: 100vh;
|
min-height: 100vh;
|
||||||
display: flex;
|
display: flex;
|
||||||
flex-direction: column;
|
flex-direction: column;
|
||||||
background: #F0EDE8;
|
background: #FBF5F5;
|
||||||
font-family: 'PingFang SC', 'Microsoft YaHei', 'Noto Sans SC', sans-serif;
|
font-family: 'PingFang SC', 'Microsoft YaHei', 'Noto Sans SC', sans-serif;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* 顶部公告条 */
|
/* 顶部公告条 */
|
||||||
.top-bar {
|
.top-bar {
|
||||||
background: #0E1E3D;
|
background: #8B4545;
|
||||||
color: rgba(255,255,255,0.65);
|
color: rgba(255,255,255,0.75);
|
||||||
font-size: 12px;
|
font-size: 12px;
|
||||||
letter-spacing: 0.05em;
|
letter-spacing: 0.05em;
|
||||||
}
|
}
|
||||||
|
|
@ -144,8 +144,8 @@ a { text-decoration: none; }
|
||||||
|
|
||||||
/* 主导航 */
|
/* 主导航 */
|
||||||
.main-header {
|
.main-header {
|
||||||
background: linear-gradient(180deg, #12264F 0%, #0E1E3D 100%);
|
background: linear-gradient(180deg, #C17A7A 0%, #A85555 100%);
|
||||||
box-shadow: 0 4px 20px rgba(14,30,61,0.4);
|
box-shadow: 0 4px 20px rgba(168,85,85,0.3);
|
||||||
position: sticky;
|
position: sticky;
|
||||||
top: 0;
|
top: 0;
|
||||||
z-index: 100;
|
z-index: 100;
|
||||||
|
|
@ -243,8 +243,8 @@ a { text-decoration: none; }
|
||||||
.btn-ghost:hover { border-color: #C8973A; color: #C8973A; }
|
.btn-ghost:hover { border-color: #C8973A; color: #C8973A; }
|
||||||
.btn-primary {
|
.btn-primary {
|
||||||
padding: 7px 20px;
|
padding: 7px 20px;
|
||||||
background: #B5272C;
|
background: #E57373;
|
||||||
border: 1px solid #B5272C;
|
border: 1px solid #E57373;
|
||||||
color: #fff;
|
color: #fff;
|
||||||
border-radius: 3px;
|
border-radius: 3px;
|
||||||
font-size: 13px;
|
font-size: 13px;
|
||||||
|
|
@ -254,7 +254,7 @@ a { text-decoration: none; }
|
||||||
font-weight: 600;
|
font-weight: 600;
|
||||||
font-family: inherit;
|
font-family: inherit;
|
||||||
}
|
}
|
||||||
.btn-primary:hover { background: #9A2024; border-color: #9A2024; }
|
.btn-primary:hover { background: #E86C6C; border-color: #E86C6C; }
|
||||||
.user-badge {
|
.user-badge {
|
||||||
display: flex; align-items: center; gap: 8px;
|
display: flex; align-items: center; gap: 8px;
|
||||||
padding: 6px 14px;
|
padding: 6px 14px;
|
||||||
|
|
@ -272,10 +272,10 @@ a { text-decoration: none; }
|
||||||
.user-name { color: rgba(255,255,255,0.85); font-size: 13px; }
|
.user-name { color: rgba(255,255,255,0.85); font-size: 13px; }
|
||||||
|
|
||||||
/* 红色底线装饰 */
|
/* 红色底线装饰 */
|
||||||
.header-underline { height: 3px; background: #0E1E3D; }
|
.header-underline { height: 3px; background: #8B4545; }
|
||||||
.underline-fill {
|
.underline-fill {
|
||||||
height: 100%;
|
height: 100%;
|
||||||
background: linear-gradient(90deg, #B5272C 0%, #E63329 40%, #C8973A 100%);
|
background: linear-gradient(90deg, #E57373 0%, #EF9A9A 40%, #D4A95D 100%);
|
||||||
}
|
}
|
||||||
|
|
||||||
/* 内容区 */
|
/* 内容区 */
|
||||||
|
|
@ -289,8 +289,8 @@ a { text-decoration: none; }
|
||||||
|
|
||||||
/* 页脚 */
|
/* 页脚 */
|
||||||
.portal-footer {
|
.portal-footer {
|
||||||
background: #0E1E3D;
|
background: #8B4545;
|
||||||
border-top: 3px solid #B5272C;
|
border-top: 3px solid #E57373;
|
||||||
padding: 20px 0;
|
padding: 20px 0;
|
||||||
}
|
}
|
||||||
.footer-inner {
|
.footer-inner {
|
||||||
|
|
|
||||||
|
|
@ -186,7 +186,7 @@
|
||||||
<div class="content-section">
|
<div class="content-section">
|
||||||
<div class="section-heading"><span class="heading-bar"></span>工作地点</div>
|
<div class="section-heading"><span class="heading-bar"></span>工作地点</div>
|
||||||
<div class="location-row">
|
<div class="location-row">
|
||||||
<svg width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="#B5272C" stroke-width="2"><path d="M21 10c0 7-9 13-9 13s-9-6-9-13a9 9 0 0 1 18 0z"/><circle cx="12" cy="10" r="3"/></svg>
|
<svg width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="#E57373" stroke-width="2"><path d="M21 10c0 7-9 13-9 13s-9-6-9-13a9 9 0 0 1 18 0z"/><circle cx="12" cy="10" r="3"/></svg>
|
||||||
{{ selectedJob.location }}
|
{{ selectedJob.location }}
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
@ -210,7 +210,7 @@
|
||||||
</div>
|
</div>
|
||||||
<div class="cc-divider"></div>
|
<div class="cc-divider"></div>
|
||||||
<div class="cc-contact" v-if="selectedJob.organization?.email">
|
<div class="cc-contact" v-if="selectedJob.organization?.email">
|
||||||
<svg width="13" height="13" viewBox="0 0 24 24" fill="none" stroke="#B5272C" stroke-width="2"><path d="M4 4h16c1.1 0 2 .9 2 2v12c0 1.1-.9 2-2 2H4c-1.1 0-2-.9-2-2V6c0-1.1.9-2 2-2z"/><polyline points="22,6 12,13 2,6"/></svg>
|
<svg width="13" height="13" viewBox="0 0 24 24" fill="none" stroke="#E57373" stroke-width="2"><path d="M4 4h16c1.1 0 2 .9 2 2v12c0 1.1-.9 2-2 2H4c-1.1 0-2-.9-2-2V6c0-1.1.9-2 2-2z"/><polyline points="22,6 12,13 2,6"/></svg>
|
||||||
{{ selectedJob.organization.email }}
|
{{ selectedJob.organization.email }}
|
||||||
</div>
|
</div>
|
||||||
<button class="btn-apply-card" :class="{ loading: applying }" @click="handleApply">
|
<button class="btn-apply-card" :class="{ loading: applying }" @click="handleApply">
|
||||||
|
|
@ -225,7 +225,7 @@
|
||||||
<template v-else>
|
<template v-else>
|
||||||
<div class="state-tip full-tip">
|
<div class="state-tip full-tip">
|
||||||
<div class="empty-icon">
|
<div class="empty-icon">
|
||||||
<svg width="48" height="48" viewBox="0 0 24 24" fill="none" stroke="#C8973A" stroke-width="1.5"><rect x="2" y="3" width="20" height="14" rx="2"/><line x1="8" y1="21" x2="16" y2="21"/><line x1="12" y1="17" x2="12" y2="21"/></svg>
|
<svg width="48" height="48" viewBox="0 0 24 24" fill="none" stroke="#D4A95D" stroke-width="1.5"><rect x="2" y="3" width="20" height="14" rx="2"/><line x1="8" y1="21" x2="16" y2="21"/><line x1="12" y1="17" x2="12" y2="21"/></svg>
|
||||||
</div>
|
</div>
|
||||||
<p>请从左侧选择企业及职位</p>
|
<p>请从左侧选择企业及职位</p>
|
||||||
</div>
|
</div>
|
||||||
|
|
@ -333,14 +333,14 @@ onMounted(async () => {
|
||||||
<style scoped>
|
<style scoped>
|
||||||
/* ── 变量 ── */
|
/* ── 变量 ── */
|
||||||
.three-panel {
|
.three-panel {
|
||||||
--red: #B5272C;
|
--red: #E57373;
|
||||||
--dark: #0E1E3D;
|
--dark: #8B4545;
|
||||||
--gold: #C8973A;
|
--gold: #D4A95D;
|
||||||
--gold-lt: #F0D080;
|
--gold-lt: #E8C573;
|
||||||
--cream: #FAF7F3;
|
--cream: #FBF5F5;
|
||||||
--border: #E5DDD5;
|
--border: #E8DDD8;
|
||||||
--text: #1A1A2E;
|
--text: #2A1A1A;
|
||||||
--muted: #7A8094;
|
--muted: #8B6B6B;
|
||||||
|
|
||||||
display: flex;
|
display: flex;
|
||||||
height: calc(100vh - 220px);
|
height: calc(100vh - 220px);
|
||||||
|
|
@ -348,7 +348,7 @@ onMounted(async () => {
|
||||||
overflow: hidden;
|
overflow: hidden;
|
||||||
border-radius: 6px;
|
border-radius: 6px;
|
||||||
border: 1px solid var(--border);
|
border: 1px solid var(--border);
|
||||||
box-shadow: 0 4px 24px rgba(14,30,61,0.12);
|
box-shadow: 0 4px 24px rgba(139,69,69,0.12);
|
||||||
font-family: 'PingFang SC', 'Microsoft YaHei', sans-serif;
|
font-family: 'PingFang SC', 'Microsoft YaHei', sans-serif;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -417,7 +417,7 @@ onMounted(async () => {
|
||||||
.org-avatar img { width: 100%; height: 100%; object-fit: cover; }
|
.org-avatar img { width: 100%; height: 100%; object-fit: cover; }
|
||||||
.child-avatar {
|
.child-avatar {
|
||||||
width: 28px; height: 28px; font-size: 12px;
|
width: 28px; height: 28px; font-size: 12px;
|
||||||
background: linear-gradient(135deg, #3D5A8A, #1E3460);
|
background: linear-gradient(135deg, #C8A080, #9A7860);
|
||||||
}
|
}
|
||||||
.org-meta { display: flex; flex-direction: column; gap: 2px; min-width: 0; }
|
.org-meta { display: flex; flex-direction: column; gap: 2px; min-width: 0; }
|
||||||
.org-name {
|
.org-name {
|
||||||
|
|
@ -506,14 +506,14 @@ onMounted(async () => {
|
||||||
/* Banner */
|
/* Banner */
|
||||||
.detail-banner {
|
.detail-banner {
|
||||||
position: relative;
|
position: relative;
|
||||||
background: linear-gradient(135deg, #0E1E3D 0%, #1A2E56 50%, #1C1C3A 100%);
|
background: linear-gradient(135deg, #8B4545 0%, #A85555 50%, #9A4C4C 100%);
|
||||||
overflow: hidden;
|
overflow: hidden;
|
||||||
}
|
}
|
||||||
.banner-deco {
|
.banner-deco {
|
||||||
position: absolute; inset: 0;
|
position: absolute; inset: 0;
|
||||||
background:
|
background:
|
||||||
repeating-linear-gradient(45deg, transparent, transparent 20px, rgba(200,151,58,0.03) 20px, rgba(200,151,58,0.03) 21px),
|
repeating-linear-gradient(45deg, transparent, transparent 20px, rgba(212,169,93,0.03) 20px, rgba(212,169,93,0.03) 21px),
|
||||||
repeating-linear-gradient(-45deg, transparent, transparent 20px, rgba(200,151,58,0.03) 20px, rgba(200,151,58,0.03) 21px);
|
repeating-linear-gradient(-45deg, transparent, transparent 20px, rgba(212,169,93,0.03) 20px, rgba(212,169,93,0.03) 21px);
|
||||||
}
|
}
|
||||||
.banner-content {
|
.banner-content {
|
||||||
position: relative;
|
position: relative;
|
||||||
|
|
@ -527,8 +527,8 @@ onMounted(async () => {
|
||||||
.banner-category {
|
.banner-category {
|
||||||
display: inline-block;
|
display: inline-block;
|
||||||
padding: 3px 12px;
|
padding: 3px 12px;
|
||||||
background: rgba(200,151,58,0.15);
|
background: rgba(212,169,93,0.15);
|
||||||
border: 1px solid rgba(200,151,58,0.35);
|
border: 1px solid rgba(212,169,93,0.35);
|
||||||
color: var(--gold-lt);
|
color: var(--gold-lt);
|
||||||
font-size: 11px; letter-spacing: 0.1em;
|
font-size: 11px; letter-spacing: 0.1em;
|
||||||
border-radius: 2px; margin-bottom: 10px;
|
border-radius: 2px; margin-bottom: 10px;
|
||||||
|
|
@ -557,13 +557,13 @@ onMounted(async () => {
|
||||||
display: flex; align-items: center; gap: 6px;
|
display: flex; align-items: center; gap: 6px;
|
||||||
padding: 9px 18px;
|
padding: 9px 18px;
|
||||||
background: transparent;
|
background: transparent;
|
||||||
border: 1px solid rgba(200,151,58,0.5);
|
border: 1px solid rgba(212,169,93,0.5);
|
||||||
color: var(--gold-lt);
|
color: var(--gold-lt);
|
||||||
border-radius: 3px; font-size: 13px;
|
border-radius: 3px; font-size: 13px;
|
||||||
cursor: pointer; transition: all 0.2s;
|
cursor: pointer; transition: all 0.2s;
|
||||||
font-family: inherit;
|
font-family: inherit;
|
||||||
}
|
}
|
||||||
.btn-collect:hover { background: rgba(200,151,58,0.1); border-color: var(--gold); }
|
.btn-collect:hover { background: rgba(212,169,93,0.1); border-color: var(--gold); }
|
||||||
.btn-apply {
|
.btn-apply {
|
||||||
padding: 9px 24px;
|
padding: 9px 24px;
|
||||||
background: var(--red);
|
background: var(--red);
|
||||||
|
|
@ -572,9 +572,9 @@ onMounted(async () => {
|
||||||
cursor: pointer; transition: all 0.2s;
|
cursor: pointer; transition: all 0.2s;
|
||||||
letter-spacing: 0.05em;
|
letter-spacing: 0.05em;
|
||||||
font-family: inherit;
|
font-family: inherit;
|
||||||
box-shadow: 0 4px 16px rgba(181,39,44,0.4);
|
box-shadow: 0 4px 16px rgba(229,115,115,0.4);
|
||||||
}
|
}
|
||||||
.btn-apply:hover { background: #9A1F23; box-shadow: 0 6px 20px rgba(181,39,44,0.5); }
|
.btn-apply:hover { background: #E86C6C; box-shadow: 0 6px 20px rgba(229,115,115,0.5); }
|
||||||
.btn-apply.loading { opacity: 0.7; cursor: not-allowed; }
|
.btn-apply.loading { opacity: 0.7; cursor: not-allowed; }
|
||||||
.banner-hint { font-size: 12px; color: rgba(255,255,255,0.4); margin-top: 8px; }
|
.banner-hint { font-size: 12px; color: rgba(255,255,255,0.4); margin-top: 8px; }
|
||||||
.banner-hint.success { color: #6FCF97; }
|
.banner-hint.success { color: #6FCF97; }
|
||||||
|
|
@ -591,7 +591,7 @@ onMounted(async () => {
|
||||||
background: #fff;
|
background: #fff;
|
||||||
border-radius: 6px;
|
border-radius: 6px;
|
||||||
padding: 24px 28px;
|
padding: 24px 28px;
|
||||||
box-shadow: 0 2px 12px rgba(14,30,61,0.07);
|
box-shadow: 0 2px 12px rgba(139,69,69,0.07);
|
||||||
border: 1px solid var(--border);
|
border: 1px solid var(--border);
|
||||||
}
|
}
|
||||||
.detail-right { width: 224px; flex-shrink: 0; }
|
.detail-right { width: 224px; flex-shrink: 0; }
|
||||||
|
|
@ -643,7 +643,7 @@ onMounted(async () => {
|
||||||
background: #fff;
|
background: #fff;
|
||||||
border-radius: 6px;
|
border-radius: 6px;
|
||||||
padding: 18px;
|
padding: 18px;
|
||||||
box-shadow: 0 2px 12px rgba(14,30,61,0.07);
|
box-shadow: 0 2px 12px rgba(139,69,69,0.07);
|
||||||
border: 1px solid var(--border);
|
border: 1px solid var(--border);
|
||||||
}
|
}
|
||||||
.company-card-label {
|
.company-card-label {
|
||||||
|
|
@ -655,7 +655,7 @@ onMounted(async () => {
|
||||||
.cc-logo {
|
.cc-logo {
|
||||||
width: 48px; height: 48px;
|
width: 48px; height: 48px;
|
||||||
border-radius: 8px; overflow: hidden; flex-shrink: 0;
|
border-radius: 8px; overflow: hidden; flex-shrink: 0;
|
||||||
background: linear-gradient(135deg, #C8973A, #9A6E28);
|
background: linear-gradient(135deg, #D4A95D, #B08C3A);
|
||||||
display: flex; align-items: center; justify-content: center;
|
display: flex; align-items: center; justify-content: center;
|
||||||
font-size: 20px; font-weight: 900; color: #fff;
|
font-size: 20px; font-weight: 900; color: #fff;
|
||||||
border: 1px solid var(--border);
|
border: 1px solid var(--border);
|
||||||
|
|
@ -677,7 +677,7 @@ onMounted(async () => {
|
||||||
transition: background 0.2s;
|
transition: background 0.2s;
|
||||||
font-family: inherit; letter-spacing: 0.05em;
|
font-family: inherit; letter-spacing: 0.05em;
|
||||||
}
|
}
|
||||||
.btn-apply-card:hover { background: #9A1F23; }
|
.btn-apply-card:hover { background: #E86C6C; }
|
||||||
.btn-apply-card.loading { opacity: 0.7; cursor: not-allowed; }
|
.btn-apply-card.loading { opacity: 0.7; cursor: not-allowed; }
|
||||||
.apply-success { text-align: center; font-size: 12px; color: #27AE60; margin-top: 8px; }
|
.apply-success { text-align: center; font-size: 12px; color: #27AE60; margin-top: 8px; }
|
||||||
|
|
||||||
|
|
@ -691,7 +691,7 @@ onMounted(async () => {
|
||||||
.empty-icon { opacity: 0.5; }
|
.empty-icon { opacity: 0.5; }
|
||||||
.detail-loading { padding: 24px 28px; }
|
.detail-loading { padding: 24px 28px; }
|
||||||
.skeleton-row {
|
.skeleton-row {
|
||||||
height: 14px; background: linear-gradient(90deg, #E8E0D8 25%, #F0E8E0 50%, #E8E0D8 75%);
|
height: 14px; background: linear-gradient(90deg, #EDE3DE 25%, #F5EDED 50%, #EDE3DE 75%);
|
||||||
background-size: 200% 100%;
|
background-size: 200% 100%;
|
||||||
border-radius: 3px; margin-bottom: 10px;
|
border-radius: 3px; margin-bottom: 10px;
|
||||||
animation: shimmer 1.5s infinite;
|
animation: shimmer 1.5s infinite;
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue