Initial commit: 心理咨询预约系统

PHP 前后端一体:首页咨询师列表、预约表单、管理后台、二维码准入与邮件通知;敏感配置与提交数据通过 .gitignore 排除。

Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
litianming
2026-06-04 10:17:09 +08:00
commit 08ce60344d
49 changed files with 3490 additions and 0 deletions

143
css/admin.css Normal file
View File

@@ -0,0 +1,143 @@
.admin-page {
min-height: 100vh;
padding: var(--space-md);
padding-bottom: calc(var(--space-xl) + var(--safe-bottom));
}
.admin-login {
max-width: 360px;
margin: 80px auto 0;
}
.admin-login__title {
font-size: 22px;
font-weight: 700;
text-align: center;
margin-bottom: var(--space-xl);
}
.admin-login .form-field {
margin-bottom: var(--space-lg);
}
.admin-header {
display: flex;
align-items: center;
justify-content: space-between;
margin-bottom: var(--space-lg);
padding-top: var(--space-md);
}
.admin-header__title {
font-size: 20px;
font-weight: 700;
}
.admin-actions {
display: flex;
gap: var(--space-sm);
margin-bottom: var(--space-md);
flex-wrap: wrap;
}
.admin-actions .btn {
flex: 1;
min-width: 120px;
font-size: 14px;
min-height: 40px;
}
.submission-card {
background: var(--color-surface);
border-radius: var(--radius-md);
padding: var(--space-md);
margin-bottom: var(--space-md);
box-shadow: var(--shadow-sm);
border-left: 3px solid var(--color-primary);
}
.submission-card__time {
font-size: 12px;
color: var(--color-text-muted);
margin-bottom: var(--space-sm);
}
.submission-card__row {
font-size: 14px;
margin-bottom: 4px;
}
.submission-card__row strong {
color: var(--color-text-secondary);
font-weight: 500;
}
.submission-card__desc {
font-size: 13px;
color: var(--color-text-muted);
margin-top: var(--space-sm);
display: -webkit-box;
-webkit-line-clamp: 2;
-webkit-box-orient: vertical;
overflow: hidden;
}
.admin-empty {
text-align: center;
padding: var(--space-xl);
color: var(--color-text-muted);
}
.qr-page {
padding: var(--space-lg) var(--space-md);
text-align: center;
max-width: 400px;
margin: 0 auto;
}
.qr-page__title {
font-size: 20px;
font-weight: 700;
margin-bottom: var(--space-sm);
}
.qr-page__desc {
font-size: 14px;
color: var(--color-text-secondary);
margin-bottom: var(--space-xl);
}
.qr-canvas-wrap {
display: inline-block;
padding: var(--space-md);
background: #fff;
border-radius: var(--radius-lg);
box-shadow: var(--shadow-md);
margin-bottom: var(--space-lg);
}
.qr-url-box {
background: var(--color-surface);
border: 1px solid var(--color-border);
border-radius: var(--radius-md);
padding: var(--space-md);
font-size: 12px;
word-break: break-all;
text-align: left;
margin-bottom: var(--space-md);
color: var(--color-text-secondary);
}
.qr-actions {
display: flex;
flex-direction: column;
gap: var(--space-sm);
}
.qr-note {
margin-top: var(--space-xl);
font-size: 12px;
color: var(--color-text-muted);
line-height: 1.6;
text-align: left;
}