import ColHeader from '@/components/col-header' import { defineComponent } from 'vue' import styles from './member-record.module.less' import { Cell, CellGroup, DatetimePicker, Grid, GridItem, Icon, Image, List, Popup, Sticky } from 'vant' import { levelMember } from '@/constant' import request from '@/helpers/request' import { formatterDate } from '@/helpers/utils' import dayjs from 'dayjs' import ColResult from '@/components/col-result' import { postMessage } from '@/helpers/native-message' import { useEventTracking } from '@/helpers/hooks' export const getAssetsHomeFile = (fileName: string) => { const path = `./images/${fileName}` const modules = import.meta.globEager('./images/*') return modules[path].default } export default defineComponent({ name: 'memberRecord', data() { return { userTrainOverView: { trainDays: 0, trainNum: 0, trainTime: 0 }, timeStatus: false, currentDate: new Date(), list: [], dataShow: true, // 判断是否有数据 loading: false, finished: false, params: { page: 1, rows: 20 } } }, async mounted() { this.getList() useEventTracking('评测记录') }, methods: { onSearch() { this.timeStatus = false this.dataShow = true this.loading = false this.finished = false this.list = [] this.params.page = 1 this.getList() }, async getList() { try { const params = this.params const res = await request.get( '/api-student/sysMusicRecord/studentTrainData', { params: { ...params, startTime: dayjs(this.currentDate).format('YYYY-MM') } } ) this.loading = false const result = res.data || {} // 在第一页的时候才处理数据显示 if (result.detail.pageNo === 1) { this.userTrainOverView = result.userTrainOverView } // 处理重复请求数据 if (this.list.length > 0 && result.detail.pageNo === 1) { return } this.list = this.list.concat(result.detail.rows || []) this.finished = result.detail.pageNo >= result.detail.totalPage this.params.page = result.detail.pageNo + 1 this.dataShow = this.list.length > 0 } catch { this.dataShow = false this.finished = true } } }, render() { return (