import { Cell, Icon, Image, Popup } from 'vant'; import { PropType, defineComponent, onMounted, reactive } from 'vue'; import styles from './component.module.less'; import iconStudent from '@/common/images/icon-student-default.png'; import iconMember from '../images/icon-member.png'; import DetailModal from '../detail-modal'; import request from '@/helpers/request'; import SkeletonComponentModal from './skeleton-component-modal'; export default defineComponent({ name: 'practice-list', props: { courseId: { type: String as PropType, default: null } }, setup(props) { // schoolStudentHomework/findCourseStudentsPublic/v2 const forms = reactive({ showPopup: false, list: [] as any[], dataShow: true, detail: {} as any, loading: true }); const getList = async () => { try { const { data } = await request.post( '/api-web/schoolStudentHomework/findCourseStudentsPublic/v2', { data: { courseScheduleId: props.courseId, type: 'HOMEWORK' } } ); forms.list = data || []; } catch { // } finally { forms.dataShow = forms.list.length ? true : false; forms.loading = false; } }; const onDetail = async (item: any) => { try { forms.detail = { avatar: item.avatar, memberFlag: item.vipFlag, username: item.userName, subjectName: item.subjectName, finishFlag: item.finishFlag, list: item.studentLessonTrainingDetail || [] }; forms.showPopup = true; } catch { // } }; onMounted(() => { getList(); }); return () => (
{forms.list.map((item: any) => ( onDetail(item)}> {{ icon: () => (
), title: () => (

{item.userName}

{item.subjectName}
), value: () => (
{item.finishFlag ? '完成' : '未完成'}
) }}
))}
); } });