|
@@ -31,7 +31,8 @@ import {
|
|
|
api_lessonCoursewareDetail,
|
|
|
api_classLessonCoursewarePage,
|
|
|
api_classLessonCoursewareDetail,
|
|
|
- api_tenantInfoDetail
|
|
|
+ api_tenantInfoDetail,
|
|
|
+ api_subjectList
|
|
|
} from './api';
|
|
|
import { NImage } from 'naive-ui';
|
|
|
import { state } from '@/state';
|
|
@@ -76,9 +77,16 @@ export default defineComponent({
|
|
|
const goback = () => {
|
|
|
postMessage({ api: 'goBack' });
|
|
|
};
|
|
|
+ const coursewareStorage = localStorage.getItem('courseware-list')
|
|
|
+ ? JSON.parse(localStorage.getItem('courseware-list') as any)
|
|
|
+ : {};
|
|
|
const forms = reactive({
|
|
|
- currentGradeNum: null,
|
|
|
- bookVersionId: null as any,
|
|
|
+ currentGradeNum: coursewareStorage.currentGradeNum || null,
|
|
|
+ bookVersionId: coursewareStorage.bookVersionId || (null as any),
|
|
|
+ subjectId:
|
|
|
+ coursewareStorage.subjectId ||
|
|
|
+ state.user.data?.subjectId ||
|
|
|
+ (null as any),
|
|
|
page: 1,
|
|
|
rows: 999,
|
|
|
type: 'COURSEWARE'
|
|
@@ -105,6 +113,7 @@ export default defineComponent({
|
|
|
tab: 'all',
|
|
|
details: [] as any[],
|
|
|
bookData: {} as any,
|
|
|
+ subjectList: [] as any,
|
|
|
showBook: false,
|
|
|
book: {} as DOMRect
|
|
|
});
|
|
@@ -121,6 +130,13 @@ export default defineComponent({
|
|
|
|
|
|
baseBookVerionList.value = data.bookVersionList || [];
|
|
|
bookVersionList.value = deepClone(baseBookVerionList.value);
|
|
|
+ const index = baseBookVerionList.findIndex(
|
|
|
+ (item: any) => item.bookVersionId == coursewareStorage.bookVersoinId
|
|
|
+ );
|
|
|
+ // 判断列表中是存在,缓存的教材数据
|
|
|
+ if (index < 0) {
|
|
|
+ forms.bookVersionId = null;
|
|
|
+ }
|
|
|
}
|
|
|
} catch {
|
|
|
//
|
|
@@ -143,10 +159,9 @@ export default defineComponent({
|
|
|
});
|
|
|
}
|
|
|
data.loading = false;
|
|
|
- setTimeout(()=>{
|
|
|
+ setTimeout(() => {
|
|
|
isShowGuide.value = true;
|
|
|
- },100)
|
|
|
-
|
|
|
+ }, 100);
|
|
|
};
|
|
|
const getFavoriteList = async () => {
|
|
|
data.loading = true;
|
|
@@ -155,6 +170,7 @@ export default defineComponent({
|
|
|
userId: state.user?.data?.id,
|
|
|
page: forms.page,
|
|
|
rows: forms.rows,
|
|
|
+ subjectId: forms.subjectId,
|
|
|
bookVersionId: forms.bookVersionId != -1 ? forms.bookVersionId : '',
|
|
|
currentGradeNum: forms.currentGradeNum ? forms.currentGradeNum : ''
|
|
|
});
|
|
@@ -177,6 +193,7 @@ export default defineComponent({
|
|
|
bookVersionId: forms.bookVersionId ? forms.bookVersionId : '',
|
|
|
page: forms.page,
|
|
|
rows: forms.rows,
|
|
|
+ subjectId: forms.subjectId,
|
|
|
currentGradeNum: forms.currentGradeNum ? forms.currentGradeNum : ''
|
|
|
});
|
|
|
if (res?.code === 200 && Array.isArray(res?.data?.rows)) {
|
|
@@ -214,8 +231,22 @@ export default defineComponent({
|
|
|
}
|
|
|
getData();
|
|
|
};
|
|
|
- onMounted(() => {
|
|
|
- getTanentList();
|
|
|
+
|
|
|
+ const getSubjectList = async () => {
|
|
|
+ try {
|
|
|
+ const res = await api_subjectList({
|
|
|
+ enableFlag: true,
|
|
|
+ delFlag: 0,
|
|
|
+ page: 1,
|
|
|
+ rows: 999
|
|
|
+ });
|
|
|
+ console.log(res.data, ' subjectList');
|
|
|
+ data.subjectList = res.data.rows || [];
|
|
|
+ } catch {}
|
|
|
+ };
|
|
|
+ onMounted(async () => {
|
|
|
+ await getTanentList();
|
|
|
+ await getSubjectList();
|
|
|
getData();
|
|
|
});
|
|
|
|
|
@@ -245,7 +276,10 @@ export default defineComponent({
|
|
|
/** 学生端根据教材编号获取关联的单元、章节 */
|
|
|
const getDetail = async (item: any) => {
|
|
|
if (data.tab === 'course') {
|
|
|
- const res = await api_classLessonCoursewareDetail(item.id);
|
|
|
+ const res = await api_classLessonCoursewareDetail({
|
|
|
+ id: item.id,
|
|
|
+ subjectId: forms.subjectId
|
|
|
+ });
|
|
|
if (res?.code == 200 && Array.isArray(res?.data?.lessonList)) {
|
|
|
data.details = res.data.lessonList || [];
|
|
|
data.bookData = res.data;
|
|
@@ -265,7 +299,10 @@ export default defineComponent({
|
|
|
return;
|
|
|
}
|
|
|
} else {
|
|
|
- const res = await api_lessonCoursewareDetail(item.id);
|
|
|
+ const res = await api_lessonCoursewareDetail({
|
|
|
+ id: item.id,
|
|
|
+ subjectId: forms.subjectId
|
|
|
+ });
|
|
|
if (res?.code == 200 && Array.isArray(res?.data?.lessonList)) {
|
|
|
data.details = res.data.lessonList || [];
|
|
|
data.bookData = res.data;
|
|
@@ -321,6 +358,7 @@ export default defineComponent({
|
|
|
styles.downBtn,
|
|
|
(data.tab != 'course' && forms.bookVersionId > 0) ||
|
|
|
(data.tab == 'course' && forms.bookVersionId) ||
|
|
|
+ forms.subjectId ||
|
|
|
forms.currentGradeNum
|
|
|
? styles.activeBtn
|
|
|
: ''
|
|
@@ -439,6 +477,7 @@ export default defineComponent({
|
|
|
<TheBook
|
|
|
show={data.showBook}
|
|
|
bookData={data.bookData}
|
|
|
+ subjectId={forms.subjectId}
|
|
|
tab={data.tab}
|
|
|
rect={data.book}
|
|
|
onClose={() => {
|
|
@@ -473,6 +512,18 @@ export default defineComponent({
|
|
|
</Tag>
|
|
|
))}
|
|
|
</div>
|
|
|
+
|
|
|
+ <div class={styles.popoverTitle}>选择声部</div>
|
|
|
+ <div class={[styles.popupList, styles.versionList]}>
|
|
|
+ {data.subjectList.map((item: any) => (
|
|
|
+ <Tag
|
|
|
+ plain={forms.subjectId == item.id}
|
|
|
+ round
|
|
|
+ onClick={() => (forms.subjectId = item.id)}>
|
|
|
+ {item.name}
|
|
|
+ </Tag>
|
|
|
+ ))}
|
|
|
+ </div>
|
|
|
</div>
|
|
|
|
|
|
<div class={styles.btnGroup}>
|
|
@@ -481,6 +532,7 @@ export default defineComponent({
|
|
|
onClick={() => {
|
|
|
forms.bookVersionId = null;
|
|
|
forms.currentGradeNum = null;
|
|
|
+ forms.subjectId = state.user.data?.subjectId || null;
|
|
|
}}>
|
|
|
重置
|
|
|
</Button>
|
|
@@ -488,6 +540,15 @@ export default defineComponent({
|
|
|
round
|
|
|
class={styles.btnSure}
|
|
|
onClick={() => {
|
|
|
+ // 保存缓存
|
|
|
+ localStorage.setItem(
|
|
|
+ 'courseware-list',
|
|
|
+ JSON.stringify({
|
|
|
+ bookVersionId: forms.bookVersionId,
|
|
|
+ currentGradeNum: forms.currentGradeNum,
|
|
|
+ subjectId: forms.subjectId
|
|
|
+ })
|
|
|
+ );
|
|
|
getData();
|
|
|
popoverShow.value = false;
|
|
|
}}>
|