import OHeader from '@/components/o-header'
import { Cell, CellGroup, Grid, GridItem, Image, List, Picker, Popup, Tag } from 'vant'
import { defineComponent, onMounted, reactive } from 'vue'
import styles from './index.module.less'
import iconStudent from '@/common/images/icon_student.png'
import request from '@/helpers/request'
import OFullRefresh from '@/components/o-full-refresh'
import OEmpty from '@/components/o-empty'
import { useRoute } from 'vue-router'
export default defineComponent({
name: 'practice-detail',
setup() {
const route = useRoute()
const state = reactive({
subjectStatus: false,
subjectList: [] as any,
isClick: false,
list: [] as any,
listState: {
dataShow: true, // 判断是否有数据
loading: false,
finished: false,
refreshing: false,
height: 0 // 页面头部高度,为了处理下拉刷新用的
},
subjectName: '全部声部',
params: {
type: null,
subjectId: null,
page: 1,
rows: 20
}
})
// 获取声部
const getSubjects = async () => {
try {
const { data } = await request.post('/api-school/subjectBasicConfig/page', {
data: {
page: 1,
rows: 50
}
})
state.subjectList = data.rows || []
state.subjectList.unshift({
subjectId: '',
subjectName: '全部声部'
})
} catch {
//
}
}
// api-school/schoolWeekSalaryRecord/detailInfo/trainingPage
const getList = async () => {
try {
if (state.isClick) return
state.isClick = true
const res = await request.post(
'/api-school/schoolWeekSalaryRecord/detailInfo/trainingPage',
{
data: {
...state.params,
id: route.query.id
}
}
)
state.listState.loading = false
state.listState.refreshing = false
const result = res.data || {}
console.log(result)
// 处理重复请求数据
if (state.list.length > 0 && result.current === 1) {
return
}
const rows = result.rows || []
rows.forEach((item: any) => {
item.subjectNameList = item.subjectNames ? item.subjectNames.split(',') : []
})
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.isClick = false
} catch {
state.listState.dataShow = false
state.listState.finished = true
state.listState.refreshing = false
state.isClick = false
}
}
const onRefresh = () => {
state.params.page = 1
state.list = []
state.listState.dataShow = true // 判断是否有数据
state.listState.loading = false
state.listState.finished = false
getList()
}
onMounted(() => {
getSubjects()
getList()
})
return () => (
<>