import { defineComponent, onMounted, reactive } from 'vue'; import styles from './index.module.less'; import { NButton, NCascader, NForm, NFormItem, NImage, NInput, NModal, NPopselect, NScrollbar, NSelect, NSpace, NSpin, useDialog, useMessage } from 'naive-ui'; import AddTeaching, { BOOK_DATA } from '/src/views/natural-resources/model/add-teaching'; import { lessonCoursewarePage, lessonCoursewareRemove, api_lessonCoursewareTeacherCategory } from '../../../api'; import iconUploadBg from '../images/icon-upload-bg.png'; import { useCatchStore } from '/src/store/modules/catchData'; import { useThrottleFn } from '@vueuse/core'; import iconEdit from '../images/icon-edit.png'; import iconDelete from '../images/icon-delete.png'; import { modalClickMask } from '/src/state'; export default defineComponent({ name: 'select-lessonware', emits: ['close', 'confirm'], setup(props, { emit }) { const catchStore = useCatchStore(); const dialog = useDialog(); const message = useMessage(); const forms = reactive({ loading: false, list: [] as any[], teachingStatus: false, musicTagList: [] as any[], selectItem: {} as any, bookVersionId: null, keyword: null, currentGradeNum: '' as any, instrumentId: '' as any, removeVisiable: false, 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 === '0' ? null : forms.bookVersionId, customFlag: forms.bookVersionId === '0' ? true : null, keyword: forms.keyword, currentGradeNum: forms.currentGradeNum, instrumentId: forms.instrumentId, bookType: forms.bookType }); forms.list = data.rows; } catch { // } forms.loading = false; }; // 删除教材 const onDelete = async (item: any) => { try { await lessonCoursewareRemove({ id: forms.removeRow.id }); message.success('删除成功'); getLessonCourseware(); forms.removeVisiable = false; } catch (e) { console.log(e); } }; const throttledFn = useThrottleFn(() => getLessonCourseware(), 500); const onDetail = (item: any) => { emit('confirm', item); emit('close'); }; const getSearchDetail = async () => { try { const { data } = await api_lessonCoursewareTeacherCategory(); 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 // }); // }); await getSearchDetail(); } catch { // } getLessonCourseware(); }); return () => (
{treeList.versionList.length > 0 && {treeList.versionList?.map((subject: any) => ( { 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} ))} } {treeList.gradeList.length > 0 && {treeList.gradeList?.map((subject: any) => ( { 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} ))} } {treeList.bookTypeList.length > 0 && {treeList.bookTypeList?.map((subject: any) => ( { forms.bookType = subject.id throttledFn() }}> {subject.name} ))} } {[ { name: '全部乐器', value: '' }, ...catchStore.getSubjectInstrumentOnly ].map((subject: any) => subject.instruments && subject.instruments.length > 1 ? ( { forms.instrumentId = treeList.tempSubjectId; throttledFn() }} key={subject.value} class={[styles.popSelect]}> {selectChildObj(subject.instruments).name || subject.name} ) : ( { forms.instrumentId = subject.value; treeList.tempSubjectId = null; throttledFn() }}> {subject.name} ) )} {/* { if (e.code === 'Enter') { throttledFn(); } }} onClear={() => { forms.keyword = null; throttledFn(); }}> {{ prefix: () => ( throttledFn()}> ) }} throttledFn()} options={ [ { name: '全部乐器', id: null }, ...catchStore.getSubjectList ] as any } checkStrategy="child" showPath={false} childrenField="instruments" expandTrigger="hover" labelField="name" valueField="id" clearable filterable style={{ width: '400px' }} /> throttledFn()} /> throttledFn()} /> */} {/* throttledFn()} /> */}
{ forms.selectItem = {}; forms.teachingStatus = true; }}>
{ (e.target as any).dataset.loaded = 'true'; }} />
{forms.list.map((item: any, index: number) => { return (
onDetail(item)}>
{ (e.target as any).dataset.loaded = 'true'; }} /> {item.customFlag && ( <>
{ e.stopPropagation(); forms.selectItem = item; forms.teachingStatus = true; }} /> { e.stopPropagation(); forms.removeVisiable = true; forms.removeRow = item; }} />
)}
{item.name}
); })}
{/* 添加自定义教材 */} (forms.teachingStatus = false)} onConfirm={() => { getLessonCourseware(); forms.selectItem = {}; }} />

是否删除该教材

确定 (forms.removeVisiable = false)}> 取消
); } });