import OSticky from '@/components/o-sticky' import { Button, DatePicker, Grid, GridItem, Icon, Image, List, Picker, Popover, Popup } from 'vant' import { defineComponent, nextTick, onMounted, reactive } from 'vue' import styles from './information.module.less' import iconSaveImage from '../images/icon-save-image.png' import iconWechat from '../images/icon-wechat.png' import OQrcode from '@/components/o-qrcode' import request from '@/helpers/request' import { useRoute } from 'vue-router' import { CountUp } from 'countup.js' import OEmpty from '@/components/o-empty' import dayjs from 'dayjs' export default defineComponent({ name: 'detail-information', setup() { const route = useRoute() const state = reactive({ timeShow: false, currentData: [dayjs().year() + ''], showPopover: false, actionText: '上学期', actionType: 'up', actionTerm: [ { text: '上学期', color: 'var(--van-primary-color)', value: 'up' }, { text: '下学期', value: 'down' } ], oPopover: false, check: [], checkboxRefs: [] as any, showQrcode: false, isLoading: false, list: [] as any, listState: { dataShow: true, // 判断是否有数据 loading: false, finished: false }, params: { startTime: dayjs().year() + '-03-01 00:00:00', endTime: dayjs().year() + '-09-01 00:00:00', page: 1, rows: 20 } }) // 选择学期 const onSelect = (val: any) => { console.log(val) state.actionTerm.forEach((item: any) => { item.color = null }) val.color = 'var(--van-primary-color)' state.actionText = val.text state.actionType = val.value if (val === 'up') { state.params.startTime = dayjs().year() + '-03-01 00:00:00' state.params.endTime = dayjs().year() + '-09-01 00:00:00' } else if (val === 'down') { state.params.startTime = dayjs().year() + '-09-01 00:00:00' state.params.endTime = dayjs().add(1, 'year').year() + '-03-01 00:00:00' } onSearch() } const onConfirmDate = (date: any) => { state.currentData = date.selectedValues if (state.actionType == 'up') { state.params.startTime = date.selectedValues[0] + '-03-01 00:00:00' state.params.endTime = date.selectedValues[0] + '-09-01 00:00:00' } else if (state.actionType == 'down') { state.params.startTime = date.selectedValues[0] + 1 + '-03-01 00:00:00' state.params.endTime = date.selectedValues[0] + 1 + '-09-01 00:00:00' } state.timeShow = false console.log(state.params) onSearch() } const getDetails = async () => { try { const { data } = await request.get('/api-school/orchestra/detail/' + route.query.id) // console.log(data) } catch { // } } // 班级列表 const getList = async () => { try { if (state.isLoading) return state.isLoading = true const res = await request.post('/api-school/classGroup/page', { data: { ...state.params, orchestraId: route.query.id } }) state.listState.loading = false const result = res.data || {} // 处理重复请求数据 if (state.list.length > 0 && result.current === 1) { return } const rows = result.rows || [] state.list = state.list.concat(rows) state.listState.finished = result.current >= result.pages state.params.page = result.current + 1 state.listState.dataShow = state.list.length > 0 state.isLoading = false } catch { state.listState.dataShow = false state.listState.finished = true state.isLoading = false } } const onSearch = () => { state.params.page = 1 state.list = [] state.listState.dataShow = true // 判断是否有数据 state.listState.loading = false state.listState.finished = false getList() } const initNumCountUp = () => { nextTick(() => { // 在读学生 new CountUp('currentStudentNum', Math.random() * 1000).start() new CountUp('time1', Math.random() * 100).start() new CountUp('time2', Math.random() * 100).start() new CountUp('time3', Math.random() * 100).start() }) } onMounted(() => { getDetails() getList() initNumCountUp() }) return () => ( <>
0 名
在读学生
0%
到课率
0%
作业提交率
0%
练习合格率
{item.preStudentNum || 0}
在读学生
{item.teacherName || '/'}
伴学指导
{item.completeCourseScheduleNum || 0}/{item.courseScheduleNum || 0}
课时