|
@@ -1,4 +1,11 @@
|
|
|
-import { defineComponent, onMounted, reactive, ref, watch } from 'vue';
|
|
|
+import {
|
|
|
+ defineComponent,
|
|
|
+ nextTick,
|
|
|
+ onMounted,
|
|
|
+ reactive,
|
|
|
+ ref,
|
|
|
+ watch
|
|
|
+} from 'vue';
|
|
|
import styles from './index.module.less';
|
|
|
import {
|
|
|
NButton,
|
|
@@ -38,6 +45,8 @@ import TheMessageDialog from '/src/components/TheMessageDialog';
|
|
|
import { eventGlobal, fscreen } from '/src/utils';
|
|
|
import PreviewWindow from '/src/views/preview-window';
|
|
|
import Related from './related';
|
|
|
+import Train from '../train';
|
|
|
+import ResourceMain from '../../resource-main';
|
|
|
|
|
|
export default defineComponent({
|
|
|
name: 'courseware-presets',
|
|
@@ -86,7 +95,8 @@ export default defineComponent({
|
|
|
courseId: '',
|
|
|
subjectId: '',
|
|
|
detailId: ''
|
|
|
- } as any
|
|
|
+ } as any,
|
|
|
+ workVisiable: false
|
|
|
});
|
|
|
|
|
|
const getCoursewareList = async () => {
|
|
@@ -107,13 +117,15 @@ export default defineComponent({
|
|
|
item.chapterKnowledgeList[0]?.chapterKnowledgeMaterialList[0];
|
|
|
tempList.push({
|
|
|
id: item.id,
|
|
|
+ lessonPreTrainingId: item.lessonPreTrainingId,
|
|
|
openFlag: item.openFlag,
|
|
|
openFlagEnable: item.openFlagEnable,
|
|
|
subjectNames: item.subjectNames,
|
|
|
fromChapterLessonCoursewareId: item.fromChapterLessonCoursewareId,
|
|
|
name: item.name,
|
|
|
coverImg: firstItem?.bizInfo.coverImg,
|
|
|
- type: firstItem?.bizInfo.type
|
|
|
+ type: firstItem?.bizInfo.type,
|
|
|
+ isNotWork: item.lessonPreTrainingNum <= 0 ? true : false // 是否布置作业
|
|
|
});
|
|
|
});
|
|
|
forms.tableList = tempList;
|
|
@@ -123,54 +135,6 @@ export default defineComponent({
|
|
|
forms.loading = false;
|
|
|
};
|
|
|
|
|
|
- const getOpenCoursewareList = async () => {
|
|
|
- // 查询公开课件列表
|
|
|
- forms.openLoading = true;
|
|
|
- try {
|
|
|
- // 判断是否有选择对应的课件 或声部
|
|
|
- if (!prepareStore.getSelectKey) return (forms.openLoading = false);
|
|
|
- const { data } = await api_queryOpenCoursewareByPage({
|
|
|
- subjectId: prepareStore.getSubjectId,
|
|
|
- coursewareDetailKnowledgeId: prepareStore.getSelectKey,
|
|
|
- page: 1,
|
|
|
- rows: 20
|
|
|
- });
|
|
|
- const result = data.rows || [];
|
|
|
- const tempList: any = [];
|
|
|
- result.forEach((item: any) => {
|
|
|
- // const index = forms.tableList.findIndex(
|
|
|
- // (i: any) => i.fromChapterLessonCoursewareId === item.id
|
|
|
- // );
|
|
|
- const firstItem: any =
|
|
|
- item.chapterKnowledgeList[0]?.chapterKnowledgeMaterialList[0];
|
|
|
- tempList.push({
|
|
|
- id: item.id,
|
|
|
- openFlag: item.openFlag,
|
|
|
- openFlagEnable: item.openFlagEnable,
|
|
|
- subjectNames: item.subjectNames,
|
|
|
- fromChapterLessonCoursewareId: item.fromChapterLessonCoursewareId,
|
|
|
- name: item.name,
|
|
|
- coverImg: firstItem?.bizInfo.coverImg,
|
|
|
- type: firstItem?.bizInfo.type,
|
|
|
- isAdd: item.addFlag
|
|
|
- });
|
|
|
- });
|
|
|
-
|
|
|
- forms.openTableList = tempList || [];
|
|
|
- } catch {
|
|
|
- //
|
|
|
- }
|
|
|
- forms.openLoading = false;
|
|
|
- };
|
|
|
-
|
|
|
- // const chunkArray = (array: any, size: number) => {
|
|
|
- // const result = [];
|
|
|
- // for (let i = 0; i < array.length; i += size) {
|
|
|
- // result.push(array.slice(i, i + size));
|
|
|
- // }
|
|
|
- // return result;
|
|
|
- // };
|
|
|
-
|
|
|
// 监听选择的key 左侧选择了其它的课
|
|
|
watch(
|
|
|
() => [prepareStore.getSelectKey, prepareStore.getSubjectId],
|
|
@@ -284,35 +248,36 @@ export default defineComponent({
|
|
|
checkSubjectIds();
|
|
|
}
|
|
|
|
|
|
- // useResizeObserver(
|
|
|
- // document.querySelector('#coursewarePresets') as HTMLElement,
|
|
|
- // (entries: any) => {
|
|
|
- // const entry = entries[0];
|
|
|
- // const { width } = entry.contentRect;
|
|
|
- // forms.bodyWidth = width + 'px';
|
|
|
- // }
|
|
|
- // );
|
|
|
-
|
|
|
await getCoursewareList();
|
|
|
- // await getOpenCoursewareList();
|
|
|
});
|
|
|
|
|
|
- // 重命名
|
|
|
- const onEditTitleSubmit = async () => {
|
|
|
- try {
|
|
|
- await api_updateCoursewareInfo({
|
|
|
- id: forms.selectItem.id,
|
|
|
- name: forms.editTitle
|
|
|
+ const getModalHeight = () => {
|
|
|
+ const dom: any = document.querySelector('#model-homework-height');
|
|
|
+ if (dom) {
|
|
|
+ useResizeObserver(dom as HTMLElement, (entries: any) => {
|
|
|
+ const entry = entries[0];
|
|
|
+ const { height } = entry.contentRect;
|
|
|
+ dom.style.setProperty('--window-page-lesson-height', height + 'px');
|
|
|
});
|
|
|
- message.success('修改成功');
|
|
|
- getCoursewareList();
|
|
|
- // getOpenCoursewareList()
|
|
|
- forms.editTitleVisiable = false;
|
|
|
- } catch {
|
|
|
- //
|
|
|
}
|
|
|
};
|
|
|
|
|
|
+ // 重命名
|
|
|
+ // const onEditTitleSubmit = async () => {
|
|
|
+ // try {
|
|
|
+ // await api_updateCoursewareInfo({
|
|
|
+ // id: forms.selectItem.id,
|
|
|
+ // name: forms.editTitle
|
|
|
+ // });
|
|
|
+ // message.success('修改成功');
|
|
|
+ // getCoursewareList();
|
|
|
+ // // getOpenCoursewareList()
|
|
|
+ // forms.editTitleVisiable = false;
|
|
|
+ // } catch {
|
|
|
+ // //
|
|
|
+ // }
|
|
|
+ // };
|
|
|
+
|
|
|
// 删除
|
|
|
const onRemove = async () => {
|
|
|
forms.messageLoading = true;
|
|
@@ -430,14 +395,14 @@ export default defineComponent({
|
|
|
}
|
|
|
};
|
|
|
|
|
|
- const carouselRef = ref();
|
|
|
- const onChangeSlide = (type: 'left' | 'right') => {
|
|
|
- if (type === 'left') {
|
|
|
- carouselRef.value?.prev();
|
|
|
- } else if (type === 'right') {
|
|
|
- carouselRef.value?.next();
|
|
|
- }
|
|
|
- };
|
|
|
+ // const carouselRef = ref();
|
|
|
+ // const onChangeSlide = (type: 'left' | 'right') => {
|
|
|
+ // if (type === 'left') {
|
|
|
+ // carouselRef.value?.prev();
|
|
|
+ // } else if (type === 'right') {
|
|
|
+ // carouselRef.value?.next();
|
|
|
+ // }
|
|
|
+ // };
|
|
|
return () => (
|
|
|
<div
|
|
|
class={[
|
|
@@ -497,10 +462,16 @@ export default defineComponent({
|
|
|
)
|
|
|
)}
|
|
|
</NTabs>
|
|
|
- <NScrollbar class={styles.coursewarePresets}>
|
|
|
- <div style={{ overflow: 'hidden' }}>
|
|
|
- <NSpin show={forms.loading}>
|
|
|
- <div class={styles.list}>
|
|
|
+ <NSpin show={forms.loading}>
|
|
|
+ <NScrollbar class={styles.coursewarePresets}>
|
|
|
+ <div style={{ overflow: 'hidden' }}>
|
|
|
+ <div
|
|
|
+ class={[
|
|
|
+ styles.list,
|
|
|
+ !forms.loading &&
|
|
|
+ forms.tableList.length <= 0 &&
|
|
|
+ styles.listEmpty
|
|
|
+ ]}>
|
|
|
{forms.tableList.map((item: any) => (
|
|
|
<div class={[styles.itemWrap, styles.itemBlock, 'row-nav']}>
|
|
|
<div class={styles.itemWrapBox}>
|
|
@@ -509,11 +480,11 @@ export default defineComponent({
|
|
|
isEditName
|
|
|
item={item}
|
|
|
onClick={() => onPreviewAttend(item.id)}
|
|
|
- onEditName={() => {
|
|
|
- forms.selectItem = item;
|
|
|
- forms.editTitle = item.name;
|
|
|
- forms.editTitleVisiable = true;
|
|
|
- }}
|
|
|
+ // onEditName={() => {
|
|
|
+ // forms.selectItem = item;
|
|
|
+ // forms.editTitle = item.name;
|
|
|
+ // forms.editTitleVisiable = true;
|
|
|
+ // }}
|
|
|
onEdit={() => {
|
|
|
//
|
|
|
eventGlobal.emit('teacher-slideshow', true);
|
|
@@ -530,6 +501,14 @@ export default defineComponent({
|
|
|
forms.selectItem = item;
|
|
|
forms.preRemoveVisiable = true;
|
|
|
}}
|
|
|
+ // 布置作业
|
|
|
+ onWork={() => {
|
|
|
+ forms.workVisiable = true;
|
|
|
+ forms.selectItem = item;
|
|
|
+ nextTick(() => {
|
|
|
+ getModalHeight();
|
|
|
+ });
|
|
|
+ }}
|
|
|
/>
|
|
|
</div>
|
|
|
</div>
|
|
@@ -538,24 +517,15 @@ export default defineComponent({
|
|
|
<TheEmpty class={styles.empty1} description="暂无课件" />
|
|
|
)}
|
|
|
</div>
|
|
|
- </NSpin>
|
|
|
- </div>
|
|
|
- </NScrollbar>
|
|
|
+ </div>
|
|
|
+ </NScrollbar>
|
|
|
+ </NSpin>
|
|
|
</div>
|
|
|
|
|
|
- {/* {forms.openTableList.length > 0 && ( */}
|
|
|
<div class={styles.presetsRight} id="presetsRightRef">
|
|
|
<NTooltip showArrow={false}>
|
|
|
{{
|
|
|
trigger: () => (
|
|
|
- // <i
|
|
|
- // class={[
|
|
|
- // styles.presetsArrar,
|
|
|
- // !forms.openTableShow && styles.presetsArrarActive
|
|
|
- // ]}
|
|
|
- // onClick={() =>
|
|
|
- // (forms.openTableShow = !forms.openTableShow)
|
|
|
- // }></i>
|
|
|
<div
|
|
|
class={[
|
|
|
styles.presetsArrar,
|
|
@@ -608,7 +578,7 @@ export default defineComponent({
|
|
|
/>
|
|
|
</NModal>
|
|
|
|
|
|
- <NModal
|
|
|
+ {/* <NModal
|
|
|
v-model:show={forms.editTitleVisiable}
|
|
|
preset="card"
|
|
|
class={['modalTitle', styles.removeVisiable1]}
|
|
@@ -638,7 +608,7 @@ export default defineComponent({
|
|
|
</NButton>
|
|
|
</NSpace>
|
|
|
</div>
|
|
|
- </NModal>
|
|
|
+ </NModal> */}
|
|
|
|
|
|
<NModal
|
|
|
v-model:show={forms.preRemoveVisiable}
|
|
@@ -696,6 +666,34 @@ export default defineComponent({
|
|
|
}}
|
|
|
/>
|
|
|
</NModal>
|
|
|
+
|
|
|
+ <NModal
|
|
|
+ v-model:show={forms.workVisiable}
|
|
|
+ preset="card"
|
|
|
+ class={['modalTitle background', styles.workVisiable]}
|
|
|
+ title={
|
|
|
+ forms.selectItem.lessonPreTrainingId ? '编辑作业' : '创建作业'
|
|
|
+ }>
|
|
|
+ <div id="model-homework-height" class={styles.workContainer}>
|
|
|
+ <div class={styles.workTrain}>
|
|
|
+ <Train
|
|
|
+ cardType="prepare"
|
|
|
+ lessonPreTraining={{
|
|
|
+ title: '',
|
|
|
+ chapterId: forms.selectItem.id, // 课件编号
|
|
|
+ id: forms.selectItem.lessonPreTrainingId // 作业编号
|
|
|
+ }}
|
|
|
+ onChange={(val: any) => {
|
|
|
+ forms.workVisiable = val.status;
|
|
|
+ getCoursewareList();
|
|
|
+ }}
|
|
|
+ />
|
|
|
+ </div>
|
|
|
+ <div class={styles.resourceMain}>
|
|
|
+ <ResourceMain cardType="prepare" />
|
|
|
+ </div>
|
|
|
+ </div>
|
|
|
+ </NModal>
|
|
|
</div>
|
|
|
);
|
|
|
}
|