|
@@ -27,7 +27,7 @@
|
|
|
</el-select>
|
|
|
</el-form-item>
|
|
|
<el-form-item v-if="!is_template" :label="$t('Key370')">
|
|
|
- <div class="tag-list">
|
|
|
+ <div class="student-list-wrap">
|
|
|
<el-popover trigger="click" popper-class="select-student" placement="bottom-start">
|
|
|
<div class="student-list">
|
|
|
<ul>
|
|
@@ -113,17 +113,15 @@
|
|
|
<el-form :model="liveForm" label-width="100px" label-position="left">
|
|
|
<el-form-item :label="$t('Key312')">
|
|
|
<el-button @click="dialogVisible = true"> <i class="el-icon-plus"></i> {{ $t('Key373') }} </el-button>
|
|
|
- <div>
|
|
|
- <el-tag
|
|
|
+ <div class="tag-list">
|
|
|
+ <CourseItem
|
|
|
v-for="({ courseware_id, courseware_name }, i) in liveForm.coursewareInfo"
|
|
|
:key="courseware_id"
|
|
|
- color="#fff"
|
|
|
- closable
|
|
|
- :title="courseware_name"
|
|
|
- @close="closeCourse(i, 'live')"
|
|
|
- >
|
|
|
- <span>{{ courseware_name }}</span>
|
|
|
- </el-tag>
|
|
|
+ :courseware-id="courseware_id"
|
|
|
+ :courseware-name="courseware_name"
|
|
|
+ :change-course-name="curry(changeCourseName)(i)('live')"
|
|
|
+ @closeCourse="closeCourse(i, 'live')"
|
|
|
+ />
|
|
|
</div>
|
|
|
</el-form-item>
|
|
|
|
|
@@ -131,16 +129,18 @@
|
|
|
<el-upload action="no" :http-request="upload" multiple :show-file-list="false" accept="*">
|
|
|
<el-button><svg-icon icon-class="upload" /> {{ $t('Key374') }}</el-button>
|
|
|
</el-upload>
|
|
|
- <el-tag
|
|
|
- v-for="(item, i) in liveForm.file_info_list"
|
|
|
- :key="item.file_id"
|
|
|
- color="#fff"
|
|
|
- closable
|
|
|
- :title="item.file_name"
|
|
|
- @close="closeFile(i, liveForm.file_info_list)"
|
|
|
- >
|
|
|
- <span>{{ item.file_name }}</span>
|
|
|
- </el-tag>
|
|
|
+ <div class="tag-list">
|
|
|
+ <el-tag
|
|
|
+ v-for="({ file_id, file_name }, i) in liveForm.file_info_list"
|
|
|
+ :key="file_id"
|
|
|
+ color="#fff"
|
|
|
+ closable
|
|
|
+ :title="file_name"
|
|
|
+ @close="closeFile(i, liveForm.file_info_list)"
|
|
|
+ >
|
|
|
+ <span>{{ file_name }}</span>
|
|
|
+ </el-tag>
|
|
|
+ </div>
|
|
|
</el-form-item>
|
|
|
|
|
|
<el-form-item :label="$t('Key375')">
|
|
@@ -167,18 +167,15 @@
|
|
|
<el-form :model="courseForm" label-width="100px" label-position="left">
|
|
|
<el-form-item :label="$t('Key312')">
|
|
|
<el-button @click="dialogVisible = true"> <i class="el-icon-plus"></i> {{ $t('Key373') }} </el-button>
|
|
|
- <!-- <CourseList :course-list="courseForm.coursewareInfo" /> -->
|
|
|
- <div>
|
|
|
- <el-tag
|
|
|
+ <div class="tag-list">
|
|
|
+ <CourseItem
|
|
|
v-for="({ courseware_id, courseware_name }, i) in courseForm.coursewareInfo"
|
|
|
:key="courseware_id"
|
|
|
- color="#fff"
|
|
|
- closable
|
|
|
- :title="courseware_name"
|
|
|
- @close="closeCourse(i, 'course')"
|
|
|
- >
|
|
|
- <span>{{ courseware_name }}</span>
|
|
|
- </el-tag>
|
|
|
+ :courseware-id="courseware_id"
|
|
|
+ :courseware-name="courseware_name"
|
|
|
+ :change-course-name="curry(changeCourseName)(i)('course')"
|
|
|
+ @closeCourse="closeCourse(i, 'course')"
|
|
|
+ />
|
|
|
</div>
|
|
|
</el-form-item>
|
|
|
|
|
@@ -205,16 +202,18 @@
|
|
|
<el-upload action="no" :http-request="upload" multiple :show-file-list="false" accept="*">
|
|
|
<el-button><svg-icon icon-class="upload" /> {{ $t('Key152') }}</el-button>
|
|
|
</el-upload>
|
|
|
- <el-tag
|
|
|
- v-for="(item, i) in basicForm.file_info_list"
|
|
|
- :key="item.file_id"
|
|
|
- color="#fff"
|
|
|
- closable
|
|
|
- :title="item.file_name"
|
|
|
- @close="closeFile(i, basicForm.file_info_list)"
|
|
|
- >
|
|
|
- <span>{{ item.file_name }}</span>
|
|
|
- </el-tag>
|
|
|
+ <div class="tag-list">
|
|
|
+ <el-tag
|
|
|
+ v-for="({ file_id, file_name }, i) in basicForm.file_info_list"
|
|
|
+ :key="file_id"
|
|
|
+ color="#fff"
|
|
|
+ closable
|
|
|
+ :title="file_name"
|
|
|
+ @close="closeFile(i, basicForm.file_info_list)"
|
|
|
+ >
|
|
|
+ <span>{{ file_name }}</span>
|
|
|
+ </el-tag>
|
|
|
+ </div>
|
|
|
</el-form-item>
|
|
|
|
|
|
<el-form-item :label="$t('Key330')">
|
|
@@ -262,9 +261,10 @@ import { ref, provide, inject } from 'vue';
|
|
|
import { AddTaskToCSItem, UpdateTask } from '@/api/course';
|
|
|
import { useRoute, useRouter } from 'vue-router/composables';
|
|
|
import { useForm, useInit, useCourse, basicForm, courseForm, liveForm } from './newTask';
|
|
|
+import { curry } from '@/utils/common';
|
|
|
|
|
|
import SelectCourse from '@/components/select/SelectCourse.vue';
|
|
|
-import CourseList from './CourseList.vue';
|
|
|
+import CourseItem from './components/CourseItem.vue';
|
|
|
|
|
|
const router = useRouter();
|
|
|
const route = useRoute();
|
|
@@ -285,7 +285,7 @@ const { form, rules, closeFile, upload, custom_student_list, deleteStudentItem,
|
|
|
const { cs_item_begin_time, cs_item_end_time, mode_list, teacher_list, time_type, type_list, hourArr, minuteArr } =
|
|
|
useInit(form, student_list, custom_student_list);
|
|
|
|
|
|
-const { dialogVisible, closeCourse, dialogClose, selectCourse } = useCourse(form);
|
|
|
+const { dialogVisible, changeCourseName, closeCourse, dialogClose, selectCourse } = useCourse(form);
|
|
|
|
|
|
let newTaskForm = ref();
|
|
|
/**
|
|
@@ -327,6 +327,12 @@ function addTaskToCSItem() {
|
|
|
return { courseware_id, group_id_selected_info };
|
|
|
}
|
|
|
);
|
|
|
+ // 当前自定义名称列表
|
|
|
+ data['courseware_custom_name_list'] = liveForm.value.coursewareInfo
|
|
|
+ .filter((item) => 'is_custom_name' in item && item.is_custom_name === 'true')
|
|
|
+ .map(({ courseware_id, courseware_name }) => {
|
|
|
+ return { courseware_id, name: courseware_name };
|
|
|
+ });
|
|
|
}
|
|
|
|
|
|
if (teaching_type === 11) {
|
|
@@ -338,6 +344,12 @@ function addTaskToCSItem() {
|
|
|
return { courseware_id, group_id_selected_info: group_id_selected_info ?? '[]' };
|
|
|
}
|
|
|
);
|
|
|
+ // 当前自定义名称列表
|
|
|
+ data['courseware_custom_name_list'] = courseForm.value.coursewareInfo
|
|
|
+ .filter((item) => 'is_custom_name' in item && item.is_custom_name === 'true')
|
|
|
+ .map(({ courseware_id, courseware_name }) => {
|
|
|
+ return { courseware_id, name: courseware_name };
|
|
|
+ });
|
|
|
}
|
|
|
|
|
|
if (teaching_type === 12) {
|
|
@@ -428,7 +440,8 @@ function goBack() {
|
|
|
width: 140px;
|
|
|
}
|
|
|
|
|
|
- .tag-list {
|
|
|
+ // 选择学生
|
|
|
+ .student-list-wrap {
|
|
|
display: flex;
|
|
|
flex-wrap: wrap;
|
|
|
|
|
@@ -480,9 +493,14 @@ function goBack() {
|
|
|
margin: 20px 0;
|
|
|
}
|
|
|
|
|
|
- .el-tag {
|
|
|
- margin-right: 16px;
|
|
|
+ .tag-list {
|
|
|
+ display: flex;
|
|
|
+ flex-wrap: wrap;
|
|
|
+ gap: 8px 16px;
|
|
|
+ padding-top: 8px;
|
|
|
+ }
|
|
|
|
|
|
+ .el-tag {
|
|
|
> span {
|
|
|
display: inline-block;
|
|
|
max-width: 200px;
|