|
@@ -3,9 +3,12 @@ import styles from './index.module.less';
|
|
|
import {
|
|
|
NButton,
|
|
|
NCascader,
|
|
|
+ NForm,
|
|
|
+ NFormItem,
|
|
|
NImage,
|
|
|
NInput,
|
|
|
NModal,
|
|
|
+ NPopselect,
|
|
|
NScrollbar,
|
|
|
NSelect,
|
|
|
NSpace,
|
|
@@ -19,7 +22,7 @@ import AddTeaching, {
|
|
|
import {
|
|
|
lessonCoursewarePage,
|
|
|
lessonCoursewareRemove,
|
|
|
- bookVersionPage
|
|
|
+ api_lessonCoursewareTeacherCategory
|
|
|
} from '../../../api';
|
|
|
import iconUploadBg from '../images/icon-upload-bg.png';
|
|
|
import { useCatchStore } from '/src/store/modules/catchData';
|
|
@@ -43,26 +46,35 @@ export default defineComponent({
|
|
|
selectItem: {} as any,
|
|
|
bookVersionId: null,
|
|
|
keyword: null,
|
|
|
- currentGradeNum: null,
|
|
|
- instrumentId: null,
|
|
|
+ currentGradeNum: '' as any,
|
|
|
+ instrumentId: '' as any,
|
|
|
removeVisiable: false,
|
|
|
- removeRow: {} as any
|
|
|
- // bookType: null
|
|
|
+ removeRow: {} as any,
|
|
|
+ bookType: '' as any
|
|
|
+ });
|
|
|
+
|
|
|
+ const treeList = reactive({
|
|
|
+ tempSubjectId: null,
|
|
|
+ versionList: [] as any, // 教材
|
|
|
+ gradeList: [] as any, // 年级
|
|
|
+ bookTypeList: [] as any // 册别
|
|
|
});
|
|
|
|
|
|
const getLessonCourseware = async () => {
|
|
|
forms.loading = true;
|
|
|
try {
|
|
|
+ console.log(forms.bookVersionId, 'bookVersionId')
|
|
|
const { data } = await lessonCoursewarePage({
|
|
|
page: 1,
|
|
|
rows: 99,
|
|
|
type: 'COURSEWARE',
|
|
|
enableFlag: 1,
|
|
|
- bookVersionId: forms.bookVersionId,
|
|
|
+ bookVersionId: forms.bookVersionId === '0' ? null : forms.bookVersionId,
|
|
|
+ customFlag: forms.bookVersionId === '0' ? true : null,
|
|
|
keyword: forms.keyword,
|
|
|
currentGradeNum: forms.currentGradeNum,
|
|
|
- instrumentId: forms.instrumentId
|
|
|
- // bookType: forms.bookType
|
|
|
+ instrumentId: forms.instrumentId,
|
|
|
+ bookType: forms.bookType
|
|
|
});
|
|
|
|
|
|
forms.list = data.rows;
|
|
@@ -91,22 +103,50 @@ export default defineComponent({
|
|
|
emit('close');
|
|
|
};
|
|
|
|
|
|
+ const getSearchDetail = async () => {
|
|
|
+ try {
|
|
|
+ const { data } = await api_lessonCoursewareTeacherCategory();
|
|
|
+ console.log(data, 'data');
|
|
|
+
|
|
|
+ const result = data || []
|
|
|
+
|
|
|
+ treeList.versionList = [{
|
|
|
+ name: '全部',
|
|
|
+ id: ''
|
|
|
+ }, ...result]
|
|
|
+ } catch {
|
|
|
+ //
|
|
|
+ }
|
|
|
+ };
|
|
|
+
|
|
|
+ const selectChildObj = (item: any) => {
|
|
|
+ const obj: any = {};
|
|
|
+ item?.forEach((child: any) => {
|
|
|
+ if (child.id === forms.instrumentId) {
|
|
|
+ obj.selected = true;
|
|
|
+ obj.name = child.name;
|
|
|
+ }
|
|
|
+ });
|
|
|
+ return obj;
|
|
|
+ };
|
|
|
+
|
|
|
onMounted(async () => {
|
|
|
// 获取教材分类列表
|
|
|
try {
|
|
|
await catchStore.getSubjects();
|
|
|
- const { data } = await bookVersionPage({
|
|
|
- page: 1,
|
|
|
- rows: 99,
|
|
|
- type: 'COURSEWARE'
|
|
|
- });
|
|
|
- const temp = data.rows || [];
|
|
|
- temp.forEach((item: any) => {
|
|
|
- forms.musicTagList.push({
|
|
|
- id: item.id,
|
|
|
- name: item.name
|
|
|
- });
|
|
|
- });
|
|
|
+ // const { data } = await bookVersionPage({
|
|
|
+ // page: 1,
|
|
|
+ // rows: 99,
|
|
|
+ // type: 'COURSEWARE'
|
|
|
+ // });
|
|
|
+ // const temp = data.rows || [];
|
|
|
+ // temp.forEach((item: any) => {
|
|
|
+ // forms.musicTagList.push({
|
|
|
+ // id: item.id,
|
|
|
+ // name: item.name
|
|
|
+ // });
|
|
|
+ // });
|
|
|
+ await getSearchDetail();
|
|
|
} catch {
|
|
|
//
|
|
|
}
|
|
@@ -114,8 +154,142 @@ export default defineComponent({
|
|
|
});
|
|
|
return () => (
|
|
|
<div class={styles.selectLessonware}>
|
|
|
- <div class={styles.attendClassSearch}>
|
|
|
- <NInput
|
|
|
+ <NScrollbar class={styles.classList}>
|
|
|
+ <div class={styles.attendClassSearch}>
|
|
|
+ <NForm labelAlign="left" labelPlacement="left">
|
|
|
+ {treeList.versionList.length > 0 && <NFormItem label="教程:">
|
|
|
+ <NSpace class={styles.spaceSection}>
|
|
|
+ {treeList.versionList?.map((subject: any) => (
|
|
|
+ <span
|
|
|
+ class={[
|
|
|
+ styles.textBtn,
|
|
|
+ (forms.bookVersionId || '') ==
|
|
|
+ subject.id && styles.textBtnActive
|
|
|
+ ]}
|
|
|
+ onClick={() => {
|
|
|
+ treeList.bookTypeList = []
|
|
|
+ forms.currentGradeNum = ''
|
|
|
+ forms.bookType = ''
|
|
|
+ if(subject.children && subject.children.length > 0) {
|
|
|
+ const result = subject.children || []
|
|
|
+ treeList.gradeList = [{
|
|
|
+ name: '全部',
|
|
|
+ id: ''
|
|
|
+ }, ...result]
|
|
|
+ } else {
|
|
|
+ treeList.gradeList = []
|
|
|
+ }
|
|
|
+ forms.bookVersionId = subject.id
|
|
|
+
|
|
|
+ throttledFn()
|
|
|
+ }}>
|
|
|
+ {subject.name}
|
|
|
+ </span>
|
|
|
+ ))}
|
|
|
+ </NSpace>
|
|
|
+ </NFormItem>}
|
|
|
+
|
|
|
+ {treeList.gradeList.length > 0 && <NFormItem label="年级:">
|
|
|
+ <NSpace class={styles.spaceSection}>
|
|
|
+ {treeList.gradeList?.map((subject: any) => (
|
|
|
+ <span
|
|
|
+ class={[
|
|
|
+ styles.textBtn,
|
|
|
+ (forms.currentGradeNum || '') == subject.id &&
|
|
|
+ styles.textBtnActive
|
|
|
+ ]}
|
|
|
+ onClick={() => {
|
|
|
+ forms.bookType = ''
|
|
|
+ if(subject.children && subject.children.length > 0) {
|
|
|
+ treeList.bookTypeList = subject.children || []
|
|
|
+ const result = subject.children || []
|
|
|
+ treeList.bookTypeList = [{
|
|
|
+ name: '全部',
|
|
|
+ id: ''
|
|
|
+ }, ...result]
|
|
|
+ } else {
|
|
|
+ treeList.bookTypeList = []
|
|
|
+ }
|
|
|
+ forms.currentGradeNum = subject.id
|
|
|
+
|
|
|
+ throttledFn()
|
|
|
+ }}>
|
|
|
+ {subject.name}
|
|
|
+ </span>
|
|
|
+ ))}
|
|
|
+ </NSpace>
|
|
|
+ </NFormItem>}
|
|
|
+
|
|
|
+ {treeList.bookTypeList.length > 0 && <NFormItem label="册别:">
|
|
|
+ <NSpace class={styles.spaceSection}>
|
|
|
+ {treeList.bookTypeList?.map((subject: any) => (
|
|
|
+ <span
|
|
|
+ class={[
|
|
|
+ styles.textBtn,
|
|
|
+ (forms.bookType || '') ==
|
|
|
+ subject.id && styles.textBtnActive
|
|
|
+ ]}
|
|
|
+ onClick={() => {
|
|
|
+ forms.bookType = subject.id
|
|
|
+
|
|
|
+ throttledFn()
|
|
|
+ }}>
|
|
|
+ {subject.name}
|
|
|
+ </span>
|
|
|
+ ))}
|
|
|
+ </NSpace>
|
|
|
+ </NFormItem>}
|
|
|
+
|
|
|
+
|
|
|
+ <NFormItem label="乐器:">
|
|
|
+ <NSpace class={styles.spaceSection}>
|
|
|
+ {[
|
|
|
+ { name: '全部乐器', value: '' },
|
|
|
+ ...catchStore.getSubjectInstrumentOnly
|
|
|
+ ].map((subject: any) =>
|
|
|
+ subject.instruments && subject.instruments.length > 1 ? (
|
|
|
+ <NPopselect
|
|
|
+ options={subject.instruments}
|
|
|
+ trigger="hover"
|
|
|
+ scrollable
|
|
|
+ v-model:value={treeList.tempSubjectId}
|
|
|
+ onUpdate:value={() => {
|
|
|
+ forms.instrumentId = treeList.tempSubjectId;
|
|
|
+ throttledFn()
|
|
|
+ }}
|
|
|
+ key={subject.value}
|
|
|
+ class={[styles.popSelect]}>
|
|
|
+ <span
|
|
|
+ class={[
|
|
|
+ styles.textBtn,
|
|
|
+ selectChildObj(subject.instruments).selected &&
|
|
|
+ styles.textBtnActive
|
|
|
+ ]}>
|
|
|
+ {selectChildObj(subject.instruments).name ||
|
|
|
+ subject.name}
|
|
|
+ <i class={styles.iconArrow}></i>
|
|
|
+ </span>
|
|
|
+ </NPopselect>
|
|
|
+ ) : (
|
|
|
+ <span
|
|
|
+ class={[
|
|
|
+ styles.textBtn,
|
|
|
+ forms.instrumentId === subject.value &&
|
|
|
+ styles.textBtnActive
|
|
|
+ ]}
|
|
|
+ onClick={() => {
|
|
|
+ forms.instrumentId = subject.value;
|
|
|
+ treeList.tempSubjectId = null;
|
|
|
+ throttledFn()
|
|
|
+ }}>
|
|
|
+ {subject.name}
|
|
|
+ </span>
|
|
|
+ )
|
|
|
+ )}
|
|
|
+ </NSpace>
|
|
|
+ </NFormItem>
|
|
|
+ </NForm>
|
|
|
+ {/* <NInput
|
|
|
placeholder="请输入教材名称"
|
|
|
clearable
|
|
|
v-model:value={forms.keyword}
|
|
@@ -174,8 +348,8 @@ export default defineComponent({
|
|
|
clearable
|
|
|
filterable
|
|
|
onUpdate:value={() => throttledFn()}
|
|
|
- />
|
|
|
- {/* <NSelect
|
|
|
+ /> */}
|
|
|
+ {/* <NSelect
|
|
|
placeholder="全部册别"
|
|
|
options={
|
|
|
[
|
|
@@ -187,8 +361,7 @@ export default defineComponent({
|
|
|
clearable
|
|
|
onUpdate:value={() => throttledFn()}
|
|
|
/> */}
|
|
|
- </div>
|
|
|
- <NScrollbar class={styles.classList}>
|
|
|
+ </div>
|
|
|
<NSpin show={forms.loading} class={styles.content}>
|
|
|
<NSpace class={styles.teachingSpace}>
|
|
|
<div
|
|
@@ -206,7 +379,7 @@ export default defineComponent({
|
|
|
src={iconUploadBg}
|
|
|
lazy
|
|
|
previewDisabled={true}
|
|
|
- onLoad={e => {
|
|
|
+ onLoad={(e: any) => {
|
|
|
(e.target as any).dataset.loaded = 'true';
|
|
|
}}
|
|
|
/>
|
|
@@ -227,7 +400,7 @@ export default defineComponent({
|
|
|
src={item.coverImg}
|
|
|
lazy
|
|
|
previewDisabled={true}
|
|
|
- onLoad={e => {
|
|
|
+ onLoad={(e: any) => {
|
|
|
(e.target as any).dataset.loaded = 'true';
|
|
|
}}
|
|
|
/>
|