import { defineComponent, onMounted, reactive, ref } from 'vue'; import styles from './index.module.less'; import MSticky from '@/components/m-sticky'; import MHeader from '@/components/m-header'; import MSearch from '@/components/m-search'; import SkeletonModal from './skeleton-modal'; import { Cell, CellGroup, DropdownItem, DropdownMenu, Image, List } from 'vant'; import { useRouter } from 'vue-router'; import MFullRefresh from '@/components/m-full-refresh'; import request from '@/helpers/request'; import iconTeacher from '@/common/images/icon-student-default.png'; import MEmpty from '@/components/m-empty'; import { coursesType } from '@/helpers/constant'; import DropDownModal from './drop-down-modal'; import dayjs from 'dayjs'; import DropDownMoreModal from './drop-down-more-modal'; export default defineComponent({ name: 'student-leave-record', setup() { const dropDownItemRef = ref(); const dropDownItemRef1 = ref(); const router = useRouter(); const forms = reactive({ listState: { loading: true, dataShow: true, finished: false, refreshing: false }, isClick: false, params: { createTime: [dayjs().format('YYYY'), dayjs().format('MM')], musicGroupIds: '', classGroupType: '', courseScheduleType: '', search: '', page: 1, rows: 20 }, orchestraColumns: [] as any, list: [] }); const onDropDownClose = (item: any) => { item.value && item.value.toggle(); }; const getList = async () => { try { if (forms.isClick) return; forms.isClick = true; const { createTime, ...res } = forms.params; const startTime = createTime.join('-') + '-01'; const endTime = dayjs(startTime).endOf('month').format('YYYY-MM-DD'); const { data } = await request.post( '/api-web/schoolStudentHomework/queryStudentLeave', { data: { ...res, startTime, endTime } } ); const result = data || {}; // 判断是否有数据 if (forms.listState.refreshing) { forms.list = result.rows || []; } else { forms.list = forms.list.concat(result.rows || []); } forms.listState.finished = result.pageNo >= result.totalPage; forms.params.page = result.pageNo + 1; } catch { // forms.listState.finished = true; } finally { forms.listState.dataShow = forms.list.length > 0; forms.listState.refreshing = false; forms.listState.loading = false; forms.isClick = false; } }; const formatTime = (time: string) => { if (!time) { return ''; } return time.substring(0, 5); }; const onRefresh = () => { forms.params.page = 1; getList(); }; // 乐团列表 const musicGroupPage = async () => { try { const { data } = await request.get( '/api-web/cooperationOrgan/musicGroupPage' ); (data || []).forEach((item: any) => { forms.orchestraColumns.push({ text: item.name, value: item.id }); }); } catch { // } }; onMounted(() => { musicGroupPage(); getList(); }); return () => (
{coursesType[item.courseScheduleType]}· {item.classGroupName}
{item.username} {item.phone && {item.phone}}
{item.remark}