import MHeader from '@/components/m-header'; import MSticky from '@/components/m-sticky'; import { defineComponent, onMounted, reactive, ref } from 'vue'; import styles from './index.module.less'; import { useRoute, useRouter } from 'vue-router'; import { Button, Cell, CellGroup, Checkbox, CheckboxGroup, Image, List, showToast } from 'vant'; import iconBook from './images/icon-book.png'; import request from '@/helpers/request'; import MEmpty from '@/components/m-empty'; import { browser } from '@/helpers/utils'; import { postMessage } from '@/helpers/native-message'; export default defineComponent({ name: 'wroing-book', setup() { const route = useRoute(); const router = useRouter(); const checkboxRefs = ref([] as any); const forms = reactive({ type: route.query.type, list: [] as any, checked: [] as any, isClick: false, listState: { dataShow: true, // 判断是否有数据 loading: false, finished: false }, params: { page: 1, rows: 20 } }); const getList = async () => { try { if (forms.isClick) return; forms.isClick = true; const res = await request.post('/edu-app/knowledgePoint/list ', { data: { ...forms.params } }); forms.listState.loading = false; const result = res.data || {}; // 处理重复请求数据 if (forms.list.length > 0 && result.current === 1) { return; } forms.list = forms.list.concat(result.rows || []); forms.listState.finished = result.current >= result.pages; forms.params.page = result.current + 1; forms.listState.dataShow = forms.list.length > 0; forms.isClick = false; } catch { forms.listState.dataShow = false; forms.listState.finished = true; forms.isClick = false; } }; const checkboxToggle = (index: number) => { checkboxRefs.value[index].toggle(); }; const onSubmit = () => { try { if (forms.checked.length <= 0) { showToast('请选择知识点'); return; } if (forms.type === 'TEST') { // 模拟测试 router.push({ path: '/examination-mode', query: { knowledgePointIds: forms.checked.join(',') } }); } else { router.push({ path: '/practice-mode', query: { knowledgePointIds: forms.checked.join(',') } }); } } catch { // } }; onMounted(() => { getList(); }); return () => (
{{ content: () => (
{ if (browser().isApp) { postMessage({ api: 'goBack' }); } else { router.back(); } }} class={[ 'van-badge__wrapper van-icon van-icon-arrow-left van-nav-bar__arrow', styles.leftArrow ]}>
) }}
请选择知识点
{forms.listState.dataShow ? ( {forms.list.map((item: any, index: number) => ( checkboxToggle(index)} class={styles.cell}> {{ icon: () => ( ), title: () => (
{item.name}
), label: () => (

{item.questionNum}道题

), 'right-icon': () => ( (checkboxRefs.value[index] = el)} onClick={(e: MouseEvent) => e.stopPropagation()} /> ) }}
))}
) : ( )}
{/* {forms.list.length <= 0 && !forms.loading && (
)} */}
); } });