| 
					
				 | 
			
			
				@@ -0,0 +1,169 @@ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+import OEmpty from '@/components/o-empty' 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+import OHeader from '@/components/o-header' 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+import OSearch from '@/components/o-search' 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+import OSticky from '@/components/o-sticky' 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+import { ActionSheet, Button, Cell, CellGroup, Icon, Image, List } from 'vant' 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+import { defineComponent, reactive } from 'vue' 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+import styles from './index.module.less' 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+import iconEdit from './images/icon-edit.png' 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+import { useRouter } from 'vue-router' 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+export default defineComponent({ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  name: 'unit-test', 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  setup() { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    const router = useRouter() 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    const form = reactive({ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      oPopover: false, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      list: [] as any, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      listState: { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        dataShow: true, // 判断是否有数据 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        loading: false, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        finished: false 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      }, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      statusText: '全部测验', 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      params: { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        keyword: null, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        status: null, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        page: 1, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        rows: 20 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      }, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      isClick: false 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    }) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    const getList = async () => { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      try { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        if (form.isClick) return 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        form.isClick = true 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        // const res = await request.post('/api-school/schoolStaff/page', { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        //   data: { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        //     ...form.params, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        //     schoolId: state.user.data.school.id 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        //   } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        // }) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        // form.listState.loading = false 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        // const result = res.data || {} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        // // 处理重复请求数据 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        // if (form.list.length > 0 && result.current === 1) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        //   return 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        // } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        // form.list = form.list.concat(result.rows || []) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        // form.listState.finished = result.current >= result.pages 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        // form.params.page = result.current + 1 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        // form.listState.dataShow = form.list.length > 0 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        form.isClick = false 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      } catch { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        form.listState.dataShow = false 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        form.listState.finished = true 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        form.isClick = false 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    const onSearch = () => { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      form.params.page = 1 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      form.list = [] 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      form.listState.dataShow = true // 判断是否有数据 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      form.listState.loading = false 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      form.listState.finished = false 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      getList() 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    return () => ( 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      <div class={styles.unitTest}> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        <OSticky position="top"> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          <OHeader /> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          <OSearch 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            placeholder="请输入测验名称" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            inputBackground="white" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            background="#f6f8f9" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            onSearch={(val: any) => { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+              form.params.keyword = val 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+              onSearch() 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            }} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            v-slots={{ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+              left: () => ( 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                <div 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                  class={styles.searchBand} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                  style={{ marginRight: '13px' }} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                  onClick={() => (form.oPopover = true)} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                > 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                  {form.statusText} <Icon name={form.oPopover ? 'arrow-up' : 'arrow-down'} /> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                </div> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+              ) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            }} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          /> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        </OSticky> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        {form.listState.dataShow ? ( 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          <List 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            v-model:loading={form.listState.loading} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            finished={form.listState.finished} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            finishedText=" " 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            class={[styles.liveList]} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            onLoad={getList} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            immediateCheck={false} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          > 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            {[1, 2, 3, 4].map((item: any) => ( 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+              <CellGroup inset class={styles.cellGroup} border={false}> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                <Cell center isLink clickable={false}> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                  {{ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    icon: () => <Image src={iconEdit} class={styles.img} />, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    title: () => ( 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                      <span class={[styles.unitTitle, 'van-ellipsis']}>长笛班-第一次单元测验</span> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    ), 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    value: () => <span class={styles['no-start']}>未完成</span> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                  }} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                </Cell> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                <Cell center class={styles.unitSection}> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                  {{ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    title: () => ( 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                      <div class={styles.unitInformation}> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                        <div class={styles.name}>武汉小学2022标准团</div> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                        <div class={styles.endTime}>截止时间:2022-10-24 21:00</div> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                        <div class={styles.unitBtnGroup}> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                          <Button color="#FFF0E6" round block style={{ color: '#F67146' }}> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                            练习模式 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                          </Button> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                          <Button 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                            type="primary" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                            round 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                            block 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                            onClick={() => { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                              router.push('/unit-detail') 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                            }} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                          > 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                            开始测验 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                          </Button> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                        </div> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                      </div> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    ) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                  }} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                </Cell> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+              </CellGroup> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            ))} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          </List> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        ) : ( 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          <OEmpty tips="暂无单元测验" /> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        )} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        <ActionSheet 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          v-model:show={form.oPopover} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          cancelText="取消" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          actions={ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            [ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+              { name: '全部测验', id: 'ALL' }, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+              { name: '未完成', id: 'ING' }, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+              { name: '不合格', id: 'LOCKED' }, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+              { name: '合格', id: 'ACTIVATION' } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            ] as any 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          onSelect={(val: any) => { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            form.statusText = val.name 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            form.params.status = val.id === 'ALL' ? null : val.id 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            form.oPopover = false 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            onSearch() 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          }} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        /> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      </div> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    ) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+}) 
			 |