diff --git a/src/api/base/server.ts b/src/api/base/server.ts
index 4bb95bd..5120982 100644
--- a/src/api/base/server.ts
+++ b/src/api/base/server.ts
@@ -62,6 +62,13 @@ export const xsXkListApi = async (params: any) => {
return await get("/mobile/jz/xsxk/list", params);
};
+/**
+ * 查询学生选课列表
+ */
+export const xsXkkcListApi = async (params: any) => {
+ return await get("/mobile/jz/xkkc/list", params);
+};
+
/**
* 查询学生考试场次
*/
diff --git a/src/pages/base/components/XkCountdown/index.vue b/src/pages/base/components/XkCountdown/index.vue
new file mode 100644
index 0000000..e2a33de
--- /dev/null
+++ b/src/pages/base/components/XkCountdown/index.vue
@@ -0,0 +1,208 @@
+
+
+
+ {{ countdownTitle }}
+
+
+ {{ countdownTime.hours }}
+ 时
+
+ :
+
+ {{ countdownTime.minutes }}
+ 分
+
+ :
+
+ {{ countdownTime.seconds }}
+ 秒
+
+
+
+
+
+
+ 选课已经结束
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/src/pages/base/components/XkPicker/index.vue b/src/pages/base/components/XkPicker/index.vue
new file mode 100644
index 0000000..2ea5272
--- /dev/null
+++ b/src/pages/base/components/XkPicker/index.vue
@@ -0,0 +1,196 @@
+
+
+
+
+ {{ curXk.xkmc }}
+ 选课信息
+
+ 切换
+
+
+
+
+
+
+
+
+ {{ xk.xkmc }}
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/src/pages/base/components/XsPicker/index.vue b/src/pages/base/components/XsPicker/index.vue
new file mode 100644
index 0000000..ca4c860
--- /dev/null
+++ b/src/pages/base/components/XsPicker/index.vue
@@ -0,0 +1,353 @@
+
+
+
+
+
+
+
+
+ {{ curXs.xm }}
+
+
+ {{ curXs.njmc }} {{ curXs.bjmc }}
+
+
+
+
+
+
+ 切换
+
+
+
+
+
+
+
+
+ {{ curXs.xm }}
+ {{ curXs.njmc }} {{ curXs.bjmc }}
+
+ 切换
+
+
+
+
+
+
+
+
+
+
+ {{ xs.xm }}
+ {{ xs.njmc }} {{ xs.bjmc }}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/src/pages/base/course-selection/club-selection copy.vue b/src/pages/base/course-selection/club-selection copy.vue
index 2fcf235..8210a6b 100644
--- a/src/pages/base/course-selection/club-selection copy.vue
+++ b/src/pages/base/course-selection/club-selection copy.vue
@@ -14,7 +14,7 @@
@@ -132,7 +132,7 @@
>
diff --git a/src/pages/base/course-selection/club-selection.vue b/src/pages/base/course-selection/club-selection.vue
index 46eb4c8..b324946 100644
--- a/src/pages/base/course-selection/club-selection.vue
+++ b/src/pages/base/course-selection/club-selection.vue
@@ -3,75 +3,29 @@
-
+
{{ course.kcmc }}
- 报名情况:
+ 上课人数:
{{ course.ybmr }}
- | {{ course.maxNum }}
详情暂无课程数据
-
-
-
-
-
- 点击报名 (已选{{ selectedCoursesCount }}门)
-
- 点击报名
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- {{ xs.xm }}
- {{ xs.njmc }} {{ xs.bjmc }}
-
-
-
-
-
-
-
-
+
+
@@ -775,97 +192,6 @@ onBeforeUnmount(() => {
flex-direction: column;
gap: 15px;
- .title-section {
- .title {
- font-size: 24px;
- font-weight: bold;
- }
-
- .subtitle {
- font-size: 14px;
- opacity: 0.8;
- }
- }
-
- // 学生选择栏样式
- .student-selector-bar {
- display: flex;
- align-items: center;
- background-color: rgba(255, 255, 255, 0.1);
- border-radius: 10px;
- padding: 10px;
-
- .user-avatar {
- width: 40px;
- height: 40px;
- border-radius: 50%;
- background-color: #fff;
- overflow: hidden;
- margin-right: 10px;
- }
-
- .student-info {
- flex: 1;
- display: flex;
- flex-direction: column;
-
- .student-name {
- font-size: 16px;
- font-weight: 500;
- margin-bottom: 2px;
- }
-
- .student-class {
- font-size: 12px;
- opacity: 0.8;
- }
- }
-
- .switch-btn {
- padding: 4px 12px;
- background-color: rgba(255, 255, 255, 0.2);
- color: #fff;
- border-radius: 20px;
- font-size: 13px;
- }
- }
-
- .countdown-section {
- .countdown-title {
- font-size: 14px;
- margin-bottom: 8px;
- }
-
- .countdown-timer {
- display: flex;
- align-items: center;
-
- .time-block {
- background-color: rgba(255, 255, 255, 0.2);
- border-radius: 6px;
- min-width: 40px;
- padding: 5px 8px;
- text-align: center;
-
- .time-value {
- font-size: 20px;
- font-weight: bold;
- display: block;
- }
-
- .time-unit {
- font-size: 12px;
- opacity: 0.9;
- }
- }
-
- .time-separator {
- font-size: 20px;
- font-weight: bold;
- margin: 0 5px;
- }
- }
- }
}
}
@@ -959,82 +285,6 @@ onBeforeUnmount(() => {
}
}
-/* 学生选择器弹窗样式 */
-.student-selector {
- background-color: #ffffff;
- border-top-left-radius: 12px;
- border-top-right-radius: 12px;
- padding-bottom: 20px;
-
- .selector-header {
- display: flex;
- justify-content: space-between;
- align-items: center;
- padding: 15px;
- border-bottom: 1px solid #f2f2f2;
-
- .selector-title {
- font-size: 16px;
- font-weight: 500;
- color: #303133;
- }
- }
-
- .student-list {
- padding: 0 15px;
-
- .student-item {
- display: flex;
- align-items: center;
- padding: 15px 0;
- border-bottom: 1px solid #f2f2f2;
-
- &:last-child {
- border-bottom: none;
- }
-
- &-active {
- background-color: rgba(64, 158, 255, 0.05);
- }
-
- .student-avatar {
- width: 45px;
- height: 45px;
- border-radius: 50%;
- background-color: #f0f0f0;
- overflow: hidden;
- flex-shrink: 0;
- }
-
- .student-info {
- flex: 1;
- margin-left: 12px;
-
- .student-name {
- font-size: 15px;
- font-weight: 500;
- color: #303133;
- margin-bottom: 4px;
- }
-
- .student-class {
- font-size: 13px;
- color: #606266;
- }
- }
- }
- }
-}
-
-/* 全局图片样式 */
-.w-full {
- width: 100%;
-}
-
-.h-full {
- height: 100%;
-}
-
// 暂无数据样式
.empty-course-list {
display: flex;
diff --git a/src/pages/base/course-selection/enrolled.vue b/src/pages/base/course-selection/enrolled.vue
index daa32d6..36f007d 100644
--- a/src/pages/base/course-selection/enrolled.vue
+++ b/src/pages/base/course-selection/enrolled.vue
@@ -18,7 +18,7 @@
@@ -164,7 +164,7 @@ const studentInfo = ref({
xm: getData.value.studentInfo.xm,
njmc: getData.value.studentInfo.njmc,
bjmc: getData.value.studentInfo.bjmc,
- avatar: getData.value.studentInfo.avatar,
+ xstxUrl: getData.value.studentInfo.xstxUrl,
});
// 已报名课程信息
diff --git a/src/pages/base/course-selection/index.vue b/src/pages/base/course-selection/index.vue
index 3ae027b..860a208 100644
--- a/src/pages/base/course-selection/index.vue
+++ b/src/pages/base/course-selection/index.vue
@@ -14,7 +14,7 @@
@@ -129,7 +129,7 @@
>
diff --git a/src/pages/base/home/index.vue b/src/pages/base/home/index.vue
index ee1e696..129c70a 100644
--- a/src/pages/base/home/index.vue
+++ b/src/pages/base/home/index.vue
@@ -8,35 +8,15 @@
-
-
-
-
-
-
- {{ curXs.xm }}
-
-
- {{ curXs.njmc }} {{ curXs.bjmc }}
-
-
-
-
-
-
- 新增学生
-
-
-
- 切换
-
-
+
+
+
+
+
+ 新增学生
-
-
-
-
-
-
-
-
-
-
-
-
-
- {{ xs.xm }}
- {{ xs.njmc }} {{ xs.bjmc }}
-
-
-
-
-
-
-
-
@@ -337,99 +251,29 @@ onMounted(async () => {
}
}
- .user-content {
+ .glxs-btn {
+ position: absolute;
+ right: 0;
+ bottom: 0;
display: flex;
align-items: center;
- position: relative;
- z-index: 2;
+ justify-content: center;
+ gap: 4px;
+ padding: 8px 16px;
+ background: linear-gradient(135deg, #4A90E2 0%, #357ABD 100%);
+ color: #ffffff;
+ border-top-left-radius: 20px;
+ border-bottom-right-radius: 20px;
+ font-size: 13px;
+ font-weight: 500;
+ box-shadow: 0 4px 12px rgba(74, 144, 226, 0.3);
+ transition: all 0.3s ease;
+ flex-shrink: 0;
+ min-width: 60px;
+ height: 16px;
- .user-avatar {
- position: relative;
- width: 70px;
- height: 70px;
- border-radius: 50%;
- overflow: hidden;
- box-shadow: 0 4px 16px rgba(74, 144, 226, 0.3);
- border: 3px solid #ffffff;
- flex-shrink: 0;
-
- .avatar-img {
- width: 100%;
- height: 100%;
- object-fit: cover;
- }
-
- .avatar-ring {
- position: absolute;
- top: -3px;
- left: -3px;
- width: calc(100% + 6px);
- height: calc(100% + 6px);
- border-radius: 50%;
- border: 2px solid rgba(74, 144, 226, 0.3);
- animation: pulse 2s infinite;
- }
- }
-
- .user-details {
- flex: 1;
- margin-left: 15px;
- display: flex;
- flex-direction: column;
- justify-content: center;
-
- .user-name {
- font-size: 18px;
- font-weight: 600;
- color: white;
- margin-bottom: 8px;
- line-height: 1.2;
- }
-
- .user-class-container {
- display: flex;
- align-items: center;
-
- .class-tag {
- background: linear-gradient(135deg, #4A90E2 0%, #357ABD 100%);
- color: #ffffff;
- padding: 4px 12px;
- border-radius: 12px;
- font-size: 12px;
- font-weight: 500;
- box-shadow: 0 2px 8px rgba(74, 144, 226, 0.3);
-
- .user-class {
- line-height: 1;
- }
- }
- }
- }
-
- .switch-btn {
- display: flex;
- align-items: center;
- justify-content: center;
- gap: 4px;
- padding: 8px 16px;
- background: linear-gradient(135deg, #4A90E2 0%, #357ABD 100%);
- color: #ffffff;
- border-radius: 20px;
- font-size: 13px;
- font-weight: 500;
- box-shadow: 0 4px 12px rgba(74, 144, 226, 0.3);
- transition: all 0.3s ease;
- flex-shrink: 0;
- min-width: 60px;
- height: 16px;
-
- &:active {
- transform: scale(0.95);
- }
-
- text {
- line-height: 1;
- }
+ text {
+ line-height: 1;
}
}
}
@@ -662,160 +506,12 @@ onMounted(async () => {
}
}
-/* 学生选择器弹窗样式 */
-.student-selector {
- background: linear-gradient(135deg, #ffffff 0%, #f8faff 100%);
- border-top-left-radius: 20px;
- border-top-right-radius: 20px;
- padding-bottom: 30px;
-
- .selector-header {
- display: flex;
- justify-content: space-between;
- align-items: center;
- padding: 20px;
- border-bottom: 1px solid #f0f2f5;
-
- .selector-title {
- font-size: 18px;
- font-weight: 600;
- color: #303133;
- line-height: 1;
- }
-
- .close-btn {
- width: 32px;
- height: 32px;
- background-color: #f5f7fa;
- border-radius: 50%;
- display: flex;
- align-items: center;
- justify-content: center;
- transition: all 0.3s ease;
- flex-shrink: 0;
-
- &:active {
- transform: scale(0.9);
- background-color: #e6e8eb;
- }
- }
- }
-
- .student-list {
- padding: 0 20px;
-
- .student-item {
- display: flex;
- align-items: center;
- padding: 16px 0;
- border-bottom: 1px solid #f5f7fa;
- transition: all 0.3s ease;
- border-radius: 12px;
- margin-bottom: 8px;
-
- &:last-child {
- border-bottom: none;
- margin-bottom: 0;
- }
-
- &-active {
- background: linear-gradient(135deg, rgba(74, 144, 226, 0.08) 0%, rgba(53, 122, 189, 0.05) 100%);
- padding: 16px 12px;
- }
-
- .student-avatar {
- width: 50px;
- height: 50px;
- border-radius: 50%;
- overflow: hidden;
- flex-shrink: 0;
- box-shadow: 0 2px 8px rgba(74, 144, 226, 0.15);
- border: 2px solid #ffffff;
-
- .avatar-img {
- width: 100%;
- height: 100%;
- object-fit: cover;
- }
- }
-
- .student-info {
- flex: 1;
- margin-left: 15px;
- display: flex;
- flex-direction: column;
- justify-content: center;
- min-width: 0;
-
- .student-name {
- font-size: 16px;
- font-weight: 600;
- color: #303133;
- margin-bottom: 4px;
- line-height: 1.2;
- }
-
- .student-class {
- font-size: 13px;
- color: #606266;
- font-weight: 400;
- line-height: 1;
- }
- }
-
- .check-icon {
- width: 24px;
- height: 24px;
- border-radius: 50%;
- background: linear-gradient(135deg, #4A90E2 0%, #357ABD 100%);
- display: flex;
- align-items: center;
- justify-content: center;
- box-shadow: 0 2px 8px rgba(74, 144, 226, 0.3);
- flex-shrink: 0;
- }
- }
- }
-}
-
-/* 动画效果 */
-@keyframes pulse {
- 0% {
- transform: scale(1);
- opacity: 1;
- }
- 50% {
- transform: scale(1.05);
- opacity: 0.7;
- }
- 100% {
- transform: scale(1);
- opacity: 1;
- }
-}
-
-@keyframes fadeInUp {
- from {
- opacity: 0;
- transform: translateY(30px);
- }
- to {
- opacity: 1;
- transform: translateY(0);
- }
-}
-
/* 响应式优化 */
@media (max-width: 375px) {
.content-container {
padding: 12px;
}
-
- .user-info-card .user-content .user-avatar {
- width: 60px;
- height: 60px;
- }
-
+
.grid-menu .grid-item {
padding: 15px 8px;
}