ddcfe3334e
部署到群晖 / deploy (push) Successful in 44s
- Phase 1: 添加纪念日合并人物创建流程(方案 B) - Phase 2: 农历提醒按 lunarMonth/Day 计算每年公历 - Phase 3: 人员数据同步到后端(新增 /api/person) - Phase 4: 新设备启动从云端恢复数据 - Phase 5: 工具函数收敛 utils/format.js - Phase 6: 同步失败入队 + 启动重试 - Phase 7: 闰月生日完整支持(含 isLeapMonth + UI 警示) - 修复 lunarInfo 数据表错位(替换为权威源 jjonline/calendar.js) Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
225 lines
3.4 KiB
Plaintext
225 lines
3.4 KiB
Plaintext
/**add-anniversary.wxss**/
|
|
.container {
|
|
min-height: 100vh;
|
|
background-color: #f5f5f5;
|
|
padding-bottom: 120rpx;
|
|
}
|
|
|
|
.form {
|
|
padding: 0 32rpx 32rpx;
|
|
}
|
|
|
|
.form-item {
|
|
background-color: #fff;
|
|
border-radius: 16rpx;
|
|
padding: 32rpx;
|
|
margin-bottom: 24rpx;
|
|
box-shadow: 0 2rpx 12rpx rgba(0, 0, 0, 0.06);
|
|
box-sizing: border-box;
|
|
}
|
|
|
|
.form-item:first-child {
|
|
margin-top: 6rpx;
|
|
}
|
|
|
|
.label {
|
|
font-size: 28rpx;
|
|
color: #333;
|
|
margin-bottom: 24rpx;
|
|
display: block;
|
|
}
|
|
|
|
.label.required::after {
|
|
content: ' *';
|
|
color: #ff5722;
|
|
}
|
|
|
|
.picker {
|
|
background-color: #f5f5f5;
|
|
border-radius: 8rpx;
|
|
padding: 24rpx;
|
|
display: flex;
|
|
align-items: center;
|
|
justify-content: space-between;
|
|
}
|
|
|
|
.picker-text {
|
|
font-size: 28rpx;
|
|
color: #333;
|
|
}
|
|
|
|
.picker-placeholder {
|
|
font-size: 28rpx;
|
|
color: #999;
|
|
}
|
|
|
|
.picker-arrow {
|
|
font-size: 36rpx;
|
|
color: #999;
|
|
}
|
|
|
|
.input {
|
|
margin-top: 0;
|
|
background-color: #f5f5f5;
|
|
border-radius: 8rpx;
|
|
padding: 24rpx;
|
|
font-size: 28rpx;
|
|
}
|
|
|
|
.input[disabled] {
|
|
color: #999;
|
|
}
|
|
|
|
.chips {
|
|
display: flex;
|
|
flex-wrap: wrap;
|
|
gap: 12rpx;
|
|
margin-top: 20rpx;
|
|
}
|
|
|
|
.chip {
|
|
font-size: 24rpx;
|
|
color: #555;
|
|
padding: 10rpx 22rpx;
|
|
background-color: #f5f5f5;
|
|
border-radius: 100rpx;
|
|
border: 2rpx solid transparent;
|
|
}
|
|
|
|
.chip-active {
|
|
color: #6366f1;
|
|
background-color: #eef0ff;
|
|
border-color: #6366f1;
|
|
}
|
|
|
|
.lunar-hint {
|
|
margin-top: 16rpx;
|
|
font-size: 26rpx;
|
|
color: #666;
|
|
display: flex;
|
|
align-items: center;
|
|
gap: 16rpx;
|
|
}
|
|
|
|
.lunar-hint-warn {
|
|
color: #d97706;
|
|
font-weight: 500;
|
|
}
|
|
|
|
.leap-tag {
|
|
font-size: 22rpx;
|
|
background-color: #fef3c7;
|
|
color: #b45309;
|
|
padding: 4rpx 14rpx;
|
|
border-radius: 100rpx;
|
|
}
|
|
|
|
.lunar-warn-detail {
|
|
margin-top: 12rpx;
|
|
padding: 14rpx 20rpx;
|
|
background-color: #fffbeb;
|
|
border-left: 4rpx solid #d97706;
|
|
border-radius: 4rpx;
|
|
font-size: 24rpx;
|
|
color: #92400e;
|
|
line-height: 1.6;
|
|
}
|
|
|
|
.radio-group {
|
|
display: flex;
|
|
flex-direction: column;
|
|
gap: 16rpx;
|
|
}
|
|
|
|
.radio-item {
|
|
display: flex;
|
|
align-items: center;
|
|
padding: 16rpx;
|
|
background-color: #f9f9f9;
|
|
border-radius: 8rpx;
|
|
}
|
|
|
|
.radio-item text {
|
|
font-size: 28rpx;
|
|
margin-left: 16rpx;
|
|
}
|
|
|
|
.importance-high {
|
|
color: #ff5722;
|
|
}
|
|
|
|
.importance-medium {
|
|
color: #ff9800;
|
|
}
|
|
|
|
.importance-low {
|
|
color: #999;
|
|
}
|
|
|
|
.switch-item {
|
|
display: flex;
|
|
align-items: center;
|
|
justify-content: space-between;
|
|
margin-bottom: 16rpx;
|
|
}
|
|
|
|
.textarea {
|
|
width: 100%;
|
|
background-color: #f5f5f5;
|
|
border-radius: 8rpx;
|
|
padding: 24rpx;
|
|
font-size: 28rpx;
|
|
min-height: 160rpx;
|
|
box-sizing: border-box;
|
|
}
|
|
|
|
.buttons {
|
|
display: flex;
|
|
gap: 24rpx;
|
|
margin-top: 40rpx;
|
|
padding: 0 32rpx 32rpx;
|
|
}
|
|
|
|
.btn {
|
|
flex: 1;
|
|
height: 96rpx;
|
|
line-height: 96rpx;
|
|
border-radius: 48rpx;
|
|
font-size: 32rpx;
|
|
font-weight: 600;
|
|
border: none;
|
|
display: flex;
|
|
align-items: center;
|
|
justify-content: center;
|
|
transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
|
|
box-shadow: 0 4rpx 16rpx rgba(0, 0, 0, 0.1);
|
|
}
|
|
|
|
.btn-cancel {
|
|
background: linear-gradient(135deg, #f5f7fa 0%, #e8eaf0 100%);
|
|
color: #666;
|
|
border: 2rpx solid rgba(102, 126, 234, 0.2);
|
|
}
|
|
|
|
.btn-cancel:active {
|
|
transform: scale(0.98);
|
|
box-shadow: 0 2rpx 8rpx rgba(0, 0, 0, 0.08);
|
|
}
|
|
|
|
.btn-submit {
|
|
background: linear-gradient(135deg, #667eea 0%, #764ba2 100%);
|
|
color: #fff;
|
|
box-shadow: 0 8rpx 24rpx rgba(102, 126, 234, 0.4);
|
|
}
|
|
|
|
.btn-submit:active {
|
|
transform: scale(0.98);
|
|
box-shadow: 0 4rpx 16rpx rgba(102, 126, 234, 0.3);
|
|
}
|
|
|
|
.btn-cancel::after,
|
|
.btn-submit::after {
|
|
border: none;
|
|
}
|
|
|