|
@@ -27,6 +27,8 @@ import deepClone from '/src/helpers/deep-clone';
|
|
|
import CardPreview from '/src/components/card-preview';
|
|
|
import PreviewWindow from '/src/views/preview-window';
|
|
|
import { state } from '/src/state';
|
|
|
+import SubjectSync from '../../../model/subject-sync';
|
|
|
+import { eventGlobal } from '/src/utils';
|
|
|
|
|
|
export default defineComponent({
|
|
|
name: 'courseware-modal',
|
|
@@ -38,14 +40,20 @@ export default defineComponent({
|
|
|
const dialog = useDialog();
|
|
|
const message = useMessage();
|
|
|
const forms = reactive({
|
|
|
+ className: route.query.name as any,
|
|
|
+ classGroupId: route.query.classGroupId,
|
|
|
subjectId: route.query.subjectId ? Number(route.query.subjectId) : null,
|
|
|
coursewareList: [] as any,
|
|
|
loadingStatus: false,
|
|
|
showAttendClass: false,
|
|
|
+ attendClassType: 'select', //
|
|
|
removeIds: [] as any, // 临时删除的编号
|
|
|
drag: false,
|
|
|
+ isEdit: false, // 是否更新数据
|
|
|
+ editSubjectIds: '', // 声部编号
|
|
|
removeVisiable: false,
|
|
|
removeVisiable1: false,
|
|
|
+ subjectSyncVisiable: false, // 同步声部
|
|
|
show: false,
|
|
|
item: {} as any,
|
|
|
previewModal: false,
|
|
@@ -133,18 +141,13 @@ export default defineComponent({
|
|
|
(c: any) => c.id === item.id
|
|
|
);
|
|
|
forms.coursewareList.splice(index, 1);
|
|
|
+ forms.isEdit = true;
|
|
|
// prepareStore.setCoursewareList(forms.coursewareList);
|
|
|
// console.log(prepareStore.getCoursewareList, 'getCourseware');
|
|
|
};
|
|
|
|
|
|
// 完成编辑
|
|
|
const onOverEdit = async () => {
|
|
|
- // dialog.warning({
|
|
|
- // title: '提示',
|
|
|
- // content: `是否完成编辑?`,
|
|
|
- // positiveText: '确定',
|
|
|
- // negativeText: '取消',
|
|
|
- // onPositiveClick: async () => {
|
|
|
try {
|
|
|
const temp: any = [];
|
|
|
forms.coursewareList.forEach((item: any) => {
|
|
@@ -156,11 +159,14 @@ export default defineComponent({
|
|
|
});
|
|
|
});
|
|
|
// 保存课件
|
|
|
+ // 判断是否编辑,如果编辑则取选择的声部
|
|
|
await saveCourseware({
|
|
|
coursewareDetailKnowledgeId: prepareStore.getSelectKey,
|
|
|
lessonCoursewareId: prepareStore.getLessonCoursewareId,
|
|
|
lessonCoursewareDetailId: prepareStore.getLessonCoursewareDetailId,
|
|
|
- subjectId: prepareStore.getSubjectId,
|
|
|
+ subjectId: forms.isEdit
|
|
|
+ ? forms.editSubjectIds
|
|
|
+ : prepareStore.getSubjectId,
|
|
|
materialList: [...temp]
|
|
|
});
|
|
|
|
|
@@ -174,8 +180,6 @@ export default defineComponent({
|
|
|
} catch {
|
|
|
//
|
|
|
}
|
|
|
- // }
|
|
|
- // });
|
|
|
};
|
|
|
|
|
|
// 预览上课
|
|
@@ -266,6 +270,14 @@ export default defineComponent({
|
|
|
}
|
|
|
|
|
|
await getList();
|
|
|
+
|
|
|
+ // 动态添加数据
|
|
|
+ eventGlobal.on('onPrepareAddItem', (item: any) => {
|
|
|
+ forms.coursewareList.push(item);
|
|
|
+ prepareStore.setCoursewareList(forms.coursewareList);
|
|
|
+
|
|
|
+ forms.isEdit = true;
|
|
|
+ });
|
|
|
});
|
|
|
|
|
|
return () => (
|
|
@@ -276,7 +288,11 @@ export default defineComponent({
|
|
|
<NButton
|
|
|
type="default"
|
|
|
onClick={() => {
|
|
|
- forms.removeVisiable = true;
|
|
|
+ if (forms.isEdit) {
|
|
|
+ forms.subjectSyncVisiable = true;
|
|
|
+ } else {
|
|
|
+ forms.removeVisiable = true;
|
|
|
+ }
|
|
|
}}>
|
|
|
完成编辑
|
|
|
</NButton>
|
|
@@ -301,25 +317,31 @@ export default defineComponent({
|
|
|
</NSpace>
|
|
|
) : (
|
|
|
<NSpace>
|
|
|
- <div class={styles.btnItem}>
|
|
|
- <span class={styles.btnTitle}>上课班级:</span>
|
|
|
- <NSelect
|
|
|
- placeholder="选择声部"
|
|
|
- options={catchStore.getSubjectList}
|
|
|
- labelField="name"
|
|
|
- valueField="id"
|
|
|
- class={styles.btnClassList}
|
|
|
- value={prepareStore.getSubjectId}
|
|
|
- onUpdate:value={(val: any) => {
|
|
|
- prepareStore.setSubjectId(val);
|
|
|
- getList();
|
|
|
- }}
|
|
|
- />
|
|
|
- </div>
|
|
|
+ {forms.classGroupId && (
|
|
|
+ <div class={styles.btnItem}>
|
|
|
+ <span class={styles.btnTitle}>上课班级:</span>
|
|
|
+ <div
|
|
|
+ onClick={() => {
|
|
|
+ forms.showAttendClass = true;
|
|
|
+ forms.attendClassType = 'change';
|
|
|
+ }}>
|
|
|
+ <NSelect
|
|
|
+ placeholder="选择声部"
|
|
|
+ labelField="name"
|
|
|
+ valueField="id"
|
|
|
+ class={styles.btnClassList}
|
|
|
+ value={forms.className}
|
|
|
+ disabled
|
|
|
+ />
|
|
|
+ </div>
|
|
|
+ </div>
|
|
|
+ )}
|
|
|
+
|
|
|
<div class={styles.btnItem}>
|
|
|
<span class={styles.btnTitle}>声部:</span>
|
|
|
<NSelect
|
|
|
placeholder="选择声部"
|
|
|
+ class={styles.btnSubjectList}
|
|
|
options={catchStore.getSubjectList}
|
|
|
labelField="name"
|
|
|
valueField="id"
|
|
@@ -341,6 +363,8 @@ export default defineComponent({
|
|
|
onClick={() => {
|
|
|
forms.drag = true;
|
|
|
prepareStore.setIsEditResource(true);
|
|
|
+
|
|
|
+ // forms.subjectSyncVisiable = true;
|
|
|
}}>
|
|
|
编辑
|
|
|
</NButton>
|
|
@@ -450,6 +474,7 @@ export default defineComponent({
|
|
|
return;
|
|
|
}
|
|
|
forms.showAttendClass = true;
|
|
|
+ forms.attendClassType = 'select';
|
|
|
}}>
|
|
|
开始上课
|
|
|
</NButton>
|
|
@@ -465,6 +490,7 @@ export default defineComponent({
|
|
|
blockScroll={false}>
|
|
|
<AttendClass
|
|
|
onClose={() => (forms.showAttendClass = false)}
|
|
|
+ type={forms.attendClassType}
|
|
|
onPreview={(item: any) => {
|
|
|
if (window.matchMedia('(display-mode: standalone)').matches) {
|
|
|
state.application = window.matchMedia(
|
|
@@ -484,6 +510,12 @@ export default defineComponent({
|
|
|
window.open(href, +new Date() + '');
|
|
|
}
|
|
|
}}
|
|
|
+ onConfirm={(item: any) => {
|
|
|
+ console.log(item, 'confirm');
|
|
|
+ forms.className = item.name;
|
|
|
+ forms.classGroupId = item.classGroupId;
|
|
|
+ forms.showAttendClass = false;
|
|
|
+ }}
|
|
|
/>
|
|
|
</NModal>
|
|
|
|
|
@@ -548,6 +580,24 @@ export default defineComponent({
|
|
|
type="attend"
|
|
|
params={forms.previewParams}
|
|
|
/>
|
|
|
+
|
|
|
+ {/* 完成编辑时,选择声部 */}
|
|
|
+ <NModal
|
|
|
+ v-model:show={forms.subjectSyncVisiable}
|
|
|
+ preset="card"
|
|
|
+ class={['modalTitle background', styles.subjectSyncModal]}
|
|
|
+ title={'同步声部'}>
|
|
|
+ <SubjectSync
|
|
|
+ subjectId={prepareStore.getSubjectId as any}
|
|
|
+ onClose={() => (forms.subjectSyncVisiable = false)}
|
|
|
+ onConfirm={(subjectIds: any) => {
|
|
|
+ //
|
|
|
+ console.log(subjectIds, 'subjectIds');
|
|
|
+ forms.editSubjectIds = subjectIds.join(',');
|
|
|
+ onOverEdit();
|
|
|
+ }}
|
|
|
+ />
|
|
|
+ </NModal>
|
|
|
</div>
|
|
|
);
|
|
|
}
|