hookehuyr

refactor(teacher/formPage): 优化表单页面布局和章节数据管理

- 调整目标次数输入框宽度为相对单位
- 移除章节与课程的关联逻辑,改为独立章节列表
- 优化目标次数容器布局为两端对齐
- 设置目标次数默认值为1
......@@ -2,7 +2,7 @@
* @Author: hookehuyr hookehuyr@gmail.com
* @Date: 2025-01-20 10:00:00
* @LastEditors: hookehuyr hookehuyr@gmail.com
* @LastEditTime: 2025-06-20 16:01:50
* @LastEditTime: 2025-06-23 09:49:16
* @FilePath: /mlaj/src/views/teacher/formPage.vue
* @Description: 教师作业新增表单页面
-->
......@@ -41,7 +41,7 @@
<!-- 作业设置 -->
<div class="mb-6">
<h3 class="section-title">作业设置</h3>
<van-row>
<van-row gutter="10">
<van-col span="12">
<label class="setting-label">作业频次</label>
<van-field
......@@ -64,7 +64,7 @@
max="100"
integer
button-size="24px"
input-width="60px"
input-width="5rem"
/>
<span class="target-unit">次</span>
</div>
......@@ -122,7 +122,7 @@
<van-icon name="arrow" class="arrow-icon" @click="showCoursePicker = true" />
</div>
</div>
<div class="select-row" v-if="formData.course">
<div class="select-row">
<div class="select-item">
<van-icon name="bookmark-o" class="select-icon" />
<span class="select-label">课程章节:</span>
......@@ -278,7 +278,7 @@ const formData = ref({
description: '',
type: $route.query.type === 'homework' ? '上传附件' : '签到',
frequency: '',
target_count: 10,
target_count: 1,
start_time: new Date(),
end_time: new Date(),
course: '',
......@@ -341,36 +341,25 @@ const courses = ref([
{ id: 4, name: '物理课程' }
]);
// 章节数据 - 根据课程动态变化
const chapters = ref([]);
// 各课程对应的章节数据
const courseChapters = {
'数学课程': [
{ id: 1, name: '第一章 数与代数' },
{ id: 2, name: '第二章 几何图形' },
{ id: 3, name: '第三章 统计与概率' },
{ id: 4, name: '第四章 函数与方程' }
],
'语文课程': [
{ id: 1, name: '第一单元 现代文阅读' },
{ id: 2, name: '第二单元 古诗文阅读' },
{ id: 3, name: '第三单元 写作训练' },
{ id: 4, name: '第四单元 口语交际' }
],
'英语课程': [
{ id: 1, name: 'Unit 1 Hello World' },
{ id: 2, name: 'Unit 2 My Family' },
{ id: 3, name: 'Unit 3 School Life' },
{ id: 4, name: 'Unit 4 Hobbies' }
],
'物理课程': [
{ id: 1, name: '第一章 力学基础' },
{ id: 2, name: '第二章 热学原理' },
{ id: 3, name: '第三章 电磁学' },
{ id: 4, name: '第四章 光学现象' }
]
};
// 章节数据 - 独立的章节列表,不与课程关联
const chapters = ref([
{ id: 1, name: '第一章 数与代数' },
{ id: 2, name: '第二章 几何图形' },
{ id: 3, name: '第三章 统计与概率' },
{ id: 4, name: '第四章 函数与方程' },
{ id: 5, name: '第一单元 现代文阅读' },
{ id: 6, name: '第二单元 古诗文阅读' },
{ id: 7, name: '第三单元 写作训练' },
{ id: 8, name: '第四单元 口语交际' },
{ id: 9, name: 'Unit 1 Hello World' },
{ id: 10, name: 'Unit 2 My Family' },
{ id: 11, name: 'Unit 3 School Life' },
{ id: 12, name: 'Unit 4 Hobbies' },
{ id: 13, name: '第一章 力学基础' },
{ id: 14, name: '第二章 热学原理' },
{ id: 15, name: '第三章 电磁学' },
{ id: 16, name: '第四章 光学现象' }
]);
const activities = ref([
{ id: 1, name: '春游活动' },
......@@ -510,10 +499,6 @@ const onEndTimeConfirm = () => {
*/
const onCourseSelect = (course) => {
formData.value.course = course.name;
// 清空之前选择的章节
formData.value.chapter = '';
// 根据选择的课程更新章节数据
chapters.value = courseChapters[course.name] || [];
showCoursePicker.value = false;
courseSearchValue.value = '';
};
......@@ -728,7 +713,7 @@ onMounted(() => {
.target-count-container {
display: flex;
align-items: center;
justify-content: center;
justify-content: space-around;
gap: 8px;
}
......