- - - - - 📊 - 招生数据 - - - 查看详情 - - - - - - {{ stats.total || 0 }} - 总招生人数 - - - - {{ stats.today || 0 }} - 今日新增 - - - - {{ stats.week || 0 }} - 本周新增 - - - - - - 🚀 - 快捷操作 + + + + + 预报名 - - - - - - 预报名 + + + - - - - - 我的招生 - - - - - - 个人中心 + 我的招生 + + + + + 个人中心 @@ -244,179 +222,121 @@ onShow(async () => { padding-bottom: calc(20rpx + env(safe-area-inset-bottom)); } -/* 顶部渐变背景 */ -.header-bg { - background: linear-gradient(135deg, #3B82F6 0%, #2563EB 100%); - padding: 80rpx 30rpx 80rpx; - border-radius: 0 0 40rpx 40rpx; -} +/* 顶部区域 */ +.header-section { + display: flex; + flex-direction: column; + align-items: center; + padding: 40rpx 30rpx; + position: relative; + + .school-logo { + width: 350rpx; + height: 350rpx; + margin-top: -40rpx; + margin-bottom: -80rpx; + } -.header-content { .welcome-text { + text-align: center; + margin-bottom: -100rpx; + .title { font-size: 40rpx; font-weight: 600; - color: #FFFFFF; + color: #000000; margin-bottom: 12rpx; } .subtitle { font-size: 28rpx; - color: rgba(255, 255, 255, 0.8); + color: #333333; } } + + .home-image { + width: calc(100% + 60rpx); + margin-left: -30rpx; + margin-right: -30rpx; + } } /* 主要内容区域 */ .main-content { - margin-top: 20rpx; - padding: 0 30rpx; + padding: 0 30rpx 30rpx; position: relative; z-index: 1; } -/* 数据概览卡片 */ -.stats-card { - background: #FFFFFF; - border-radius: 24rpx; - padding: 30rpx; - margin-bottom: 30rpx; - box-shadow: 0 4rpx 20rpx rgba(0, 0, 0, 0.06); +/* 快捷操作标题 */ +.section-title { + display: flex; + align-items: center; + font-size: 32rpx; + font-weight: 600; + color: #000000; + padding: 20rpx 0; + position: absolute; + bottom: 50rpx; + left: 30rpx; + z-index: 10; - .card-header { - display: flex; - justify-content: space-between; - align-items: center; - margin-bottom: 30rpx; - - .card-title { - display: flex; - align-items: center; - font-size: 32rpx; - font-weight: 600; - color: #1F2937; - - .title-icon { - margin-right: 12rpx; - font-size: 36rpx; - } - } - - .view-more { - display: flex; - align-items: center; - font-size: 26rpx; - color: #3B82F6; - - text { - margin-right: 8rpx; - } - } - } - - .stats-grid { - display: flex; - align-items: center; - justify-content: space-around; - - .stat-item { - flex: 1; - text-align: center; - - .stat-value { - font-size: 48rpx; - font-weight: 700; - margin-bottom: 12rpx; - - &.blue { - color: #3B82F6; - } - &.green { - color: #10B981; - } - &.orange { - color: #F97316; - } - } - - .stat-label { - font-size: 26rpx; - color: #6B7280; - } - } - - .stat-divider { - width: 2rpx; - height: 80rpx; - background-color: #E5E7EB; - } + .title-icon { + margin-right: 12rpx; + width: 10rpx; + height: 32rpx; + background: linear-gradient(135deg, #3B82F6 0%, #2563EB 100%); + border-radius: 3rpx; } } /* 快捷操作 */ .quick-actions { - background: #FFFFFF; - border-radius: 24rpx; - padding: 30rpx; - margin-bottom: 30rpx; - box-shadow: 0 4rpx 20rpx rgba(0, 0, 0, 0.06); + display: flex; + flex-direction: row; + justify-content: space-between; + gap: 20rpx; + margin-top: -30rpx; - .section-title { + .action-item { + flex: 1; display: flex; + flex-direction: column; align-items: center; - font-size: 32rpx; - font-weight: 600; - color: #1F2937; - margin-bottom: 30rpx; + background: #FFFFFF; + border-radius: 24rpx; + padding: 30rpx 20rpx; + box-shadow: 0 4rpx 20rpx rgba(0, 0, 0, 0.06); - .title-icon { - margin-right: 12rpx; - font-size: 36rpx; - } - } - - .action-grid { - display: flex; - justify-content: space-between; - - &.three-column { - justify-content: space-around; + &:active { + opacity: 0.7; } - .action-item { + .action-icon { + width: 100rpx; + height: 100rpx; + border-radius: 24rpx; display: flex; - flex-direction: column; align-items: center; + justify-content: center; + margin-bottom: 16rpx; + box-shadow: 0 4rpx 12rpx rgba(0, 0, 0, 0.1); - &:active { - opacity: 0.7; + &.blue { + background: linear-gradient(135deg, #3B82F6 0%, #2563EB 100%); } - - .action-icon { - width: 100rpx; - height: 100rpx; - border-radius: 24rpx; - display: flex; - align-items: center; - justify-content: center; - margin-bottom: 16rpx; - box-shadow: 0 4rpx 12rpx rgba(0, 0, 0, 0.1); - - &.blue { - background: linear-gradient(135deg, #3B82F6 0%, #2563EB 100%); - } - &.green { - background: linear-gradient(135deg, #10B981 0%, #059669 100%); - } - &.purple { - background: linear-gradient(135deg, #8B5CF6 0%, #7C3AED 100%); - } + &.green { + background: linear-gradient(135deg, #10B981 0%, #059669 100%); } - - .action-text { - font-size: 26rpx; - color: #4B5563; + &.purple { + background: linear-gradient(135deg, #8B5CF6 0%, #7C3AED 100%); } } + + .action-text { + font-size: 26rpx; + color: #1F2937; + font-weight: 500; + } } } diff --git a/uniapp/src/pages/login/login.vue b/uniapp/src/pages/login/login.vue index 100af98d..9f7be461 100644 --- a/uniapp/src/pages/login/login.vue +++ b/uniapp/src/pages/login/login.vue @@ -17,7 +17,7 @@ - + @@ -35,7 +35,7 @@ :customStyle="{ height: '100rpx' }" hover-class="none" > - 手机号登录 + 使用账号登录 @@ -173,7 +173,7 @@ >密码登录 - 验证码登录 - - --> + diff --git a/uniapp/src/pages/my_recruitment/my_recruitment.vue b/uniapp/src/pages/my_recruitment/my_recruitment.vue index 481434c3..921cbd10 100644 --- a/uniapp/src/pages/my_recruitment/my_recruitment.vue +++ b/uniapp/src/pages/my_recruitment/my_recruitment.vue @@ -1,398 +1,263 @@ diff --git a/uniapp/src/pages/pre_registration/pre_registration.vue b/uniapp/src/pages/pre_registration/pre_registration.vue index 570dd8a6..541ca6a1 100644 --- a/uniapp/src/pages/pre_registration/pre_registration.vue +++ b/uniapp/src/pages/pre_registration/pre_registration.vue @@ -342,7 +342,14 @@ const validateForm = () => { } const submit = async () => { - if (!validateForm()) return + console.log('========== 开始提交 ==========') + console.log('当前表单数据:', JSON.parse(JSON.stringify(formData))) + + if (!validateForm()) { + console.log('表单验证失败') + return + } + console.log('表单验证通过') submitting.value = true @@ -360,22 +367,31 @@ const submit = async () => { recruitmentTeacherId: formData.recruitmentTeacherId } + console.log('========== 准备提交数据 ==========') console.log('提交数据:', submitData) + console.log('majorId:', submitData.majorId, '类型:', typeof submitData.majorId) + console.log('recruitmentTeacherId:', submitData.recruitmentTeacherId, '类型:', typeof submitData.recruitmentTeacherId) uni.showLoading({ title: '提交中...', mask: true }) + console.log('========== 开始调用 addStudent ==========') const res = await addStudent(submitData) + console.log('========== addStudent 调用完成 ==========') uni.hideLoading() console.log('接口返回结果:', res) + console.log('返回code:', res?.code) + console.log('返回msg:', res?.msg) + console.log('返回data:', res?.data) - if (res.code === 1) { + if (res?.code === 1) { + console.log('提交成功') uni.showToast({ - title: '提交成功', + title: res?.msg || '提交成功', icon: 'success', duration: 2000 }) @@ -384,21 +400,27 @@ const submit = async () => { router.navigateTo('/pages/submit_success/submit_success') }, 1500) } else { + console.log('提交失败:', res?.msg || '未知错误') uni.showToast({ - title: res.msg || '提交失败', + title: res?.msg || '提交失败', icon: 'none', duration: 2000 }) } - } catch (error) { + } catch (error: any) { uni.hideLoading() - console.error('提交失败:', error) + console.error('========== 提交异常 ==========') + console.error('错误对象:', error) + console.error('错误类型:', typeof error) + console.error('错误消息:', error?.message || error) + console.error('错误堆栈:', error?.stack) uni.showToast({ title: '网络错误,请重试', icon: 'none', duration: 2000 }) } finally { + console.log('========== 提交结束 ==========') submitting.value = false } } diff --git a/uniapp/src/pages/user/user.vue b/uniapp/src/pages/user/user.vue index 1bb19408..bf893ed2 100644 --- a/uniapp/src/pages/user/user.vue +++ b/uniapp/src/pages/user/user.vue @@ -1,7 +1,12 @@