|  | @@ -1,6 +1,6 @@
 | 
	
		
			
				|  |  |  import request from '@/helpers/request'
 | 
	
		
			
				|  |  |  import { state } from '@/state'
 | 
	
		
			
				|  |  | -import { Button, Empty, Grid, GridItem, Icon, showConfirmDialog, showToast } from 'vant'
 | 
	
		
			
				|  |  | +import { Button, Cell, CellGroup, Empty, Grid, GridItem, Icon, Image, Loading, showConfirmDialog, showToast } from 'vant'
 | 
	
		
			
				|  |  |  import { defineComponent, onMounted, reactive, onUnmounted, ref } from 'vue'
 | 
	
		
			
				|  |  |  import styles from './uni-test.module.less'
 | 
	
		
			
				|  |  |  import { useRoute, useRouter } from 'vue-router'
 | 
	
	
		
			
				|  | @@ -13,7 +13,11 @@ import {
 | 
	
		
			
				|  |  |  import OEmpty from '@/components/o-empty'
 | 
	
		
			
				|  |  |  import iconLook from './image/look.svg'
 | 
	
		
			
				|  |  |  import iconCourse from '@/views/courseList/image/icon-course.png'
 | 
	
		
			
				|  |  | +import iconCourseLock from '@/views/courseList/image/icon-course-lock.png'
 | 
	
		
			
				|  |  |  import { browser } from '@/helpers/utils'
 | 
	
		
			
				|  |  | +import OSticky from '@/components/o-sticky'
 | 
	
		
			
				|  |  | +import OHeader from '@/components/o-header'
 | 
	
		
			
				|  |  | +import iconList from '@/views/courseList/image/icon-list.png'
 | 
	
		
			
				|  |  |  export default defineComponent({
 | 
	
		
			
				|  |  |    name: 'uni-test',
 | 
	
		
			
				|  |  |    setup() {
 | 
	
	
		
			
				|  | @@ -24,8 +28,23 @@ export default defineComponent({
 | 
	
		
			
				|  |  |      const forms = ref({} as any)
 | 
	
		
			
				|  |  |      const data = reactive({
 | 
	
		
			
				|  |  |        loading: true,
 | 
	
		
			
				|  |  | +      detail: {
 | 
	
		
			
				|  |  | +        cover: '',
 | 
	
		
			
				|  |  | +        name: '',
 | 
	
		
			
				|  |  | +        des: ''
 | 
	
		
			
				|  |  | +      },
 | 
	
		
			
				|  |  |        list: [] as any
 | 
	
		
			
				|  |  |      })
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +    /** 获取课件详情 */
 | 
	
		
			
				|  |  | +    const getDetail = async () => {
 | 
	
		
			
				|  |  | +      const res: any = await request.get(`${state.platformApi}/lessonCourseware/detail/${route.query.lessonCoursewareId}`)
 | 
	
		
			
				|  |  | +      if (res?.data){
 | 
	
		
			
				|  |  | +        data.detail.cover = res.data.coverImg
 | 
	
		
			
				|  |  | +        data.detail.name = res.data.name
 | 
	
		
			
				|  |  | +        data.detail.des = res.data.lessonTargetDesc
 | 
	
		
			
				|  |  | +      }
 | 
	
		
			
				|  |  | +    }
 | 
	
		
			
				|  |  |      const getList = async () => {
 | 
	
		
			
				|  |  |        data.loading = true
 | 
	
		
			
				|  |  |        try {
 | 
	
	
		
			
				|  | @@ -47,6 +66,7 @@ export default defineComponent({
 | 
	
		
			
				|  |  |        data.loading = false
 | 
	
		
			
				|  |  |      }
 | 
	
		
			
				|  |  |      onMounted(() => {
 | 
	
		
			
				|  |  | +      getDetail()
 | 
	
		
			
				|  |  |        forms.value = { ...JSON.parse(sessionStorage.getItem('unit-create') || '{}') } as any
 | 
	
		
			
				|  |  |        getList()
 | 
	
		
			
				|  |  |      })
 | 
	
	
		
			
				|  | @@ -65,37 +85,72 @@ export default defineComponent({
 | 
	
		
			
				|  |  |      }
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |      return () => (
 | 
	
		
			
				|  |  | -      <div style={{ paddingTop: '14px' }}>
 | 
	
		
			
				|  |  | -        {data.list.length > 0 ? (
 | 
	
		
			
				|  |  | -          <Grid gutter={14} columnNum={3} class={styles.grid}>
 | 
	
		
			
				|  |  | -            {data.list.map((item: any) => {
 | 
	
		
			
				|  |  | -              return (
 | 
	
		
			
				|  |  | -                <GridItem>
 | 
	
		
			
				|  |  | -                  <div class={styles.gridItem} onClick={() => handleClick(item)}>
 | 
	
		
			
				|  |  | -                    <img src={iconCourse} class={styles.cover} />
 | 
	
		
			
				|  |  | -                    <div class={styles.title}>
 | 
	
		
			
				|  |  | -                      <div class={styles.coreTitle}>{item.name}</div>
 | 
	
		
			
				|  |  | -                      {<div>已使用 {item.useNum} 次</div>}
 | 
	
		
			
				|  |  | -                    </div>
 | 
	
		
			
				|  |  | +      <div class={styles.uniTest}>
 | 
	
		
			
				|  |  | +        <OSticky
 | 
	
		
			
				|  |  | +          onGetHeight={(height: number) => {
 | 
	
		
			
				|  |  | +            document.documentElement.style.setProperty('--header-height', height + 'px')
 | 
	
		
			
				|  |  | +          }}
 | 
	
		
			
				|  |  | +        >
 | 
	
		
			
				|  |  | +          <OHeader
 | 
	
		
			
				|  |  | +            border={false}
 | 
	
		
			
				|  |  | +            background="transparent"
 | 
	
		
			
				|  |  | +            color="rgba(124, 61, 18, 1)"
 | 
	
		
			
				|  |  | +            title="选择教材"
 | 
	
		
			
				|  |  | +          />
 | 
	
		
			
				|  |  | +        </OSticky>
 | 
	
		
			
				|  |  | +        <div class={styles.periodContent}>
 | 
	
		
			
				|  |  | +          <Image class={styles.cover} src={data.detail.cover}>
 | 
	
		
			
				|  |  | +            {{
 | 
	
		
			
				|  |  | +              loading: () => <Loading />, 
 | 
	
		
			
				|  |  | +            }}
 | 
	
		
			
				|  |  | +          </Image>
 | 
	
		
			
				|  |  | +          {/* <img class={styles.cover} src={data.detail.cover} /> */}
 | 
	
		
			
				|  |  | +          <div>
 | 
	
		
			
				|  |  | +            <div class={styles.contentTitle}>{data.detail.name}</div>
 | 
	
		
			
				|  |  | +            <div class={styles.contentLabel}>
 | 
	
		
			
				|  |  | +              教学目标:{data.detail.des}
 | 
	
		
			
				|  |  | +            </div>
 | 
	
		
			
				|  |  | +          </div>
 | 
	
		
			
				|  |  | +        </div>
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | -                    {/* <div class={styles.num}>
 | 
	
		
			
				|  |  | -                      查看
 | 
	
		
			
				|  |  | -                      <Icon name="play-circle-o" class={styles.playIcon} />
 | 
	
		
			
				|  |  | -                    </div> */}
 | 
	
		
			
				|  |  | +        <div class={styles.periodTitle}>
 | 
	
		
			
				|  |  | +          <img class={styles.pIcon} src={iconList} />
 | 
	
		
			
				|  |  | +          <div class={styles.pTitle}>课程列表</div>
 | 
	
		
			
				|  |  | +          <div class={styles.pNum}>共{data.list.length}课</div>
 | 
	
		
			
				|  |  | +        </div>
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | -                    {!item.unLockFlag && (
 | 
	
		
			
				|  |  | -                      <div class={styles.look} onClick={(e: Event) => e.stopPropagation()}>
 | 
	
		
			
				|  |  | -                        <Icon name={iconLook} /> 未解锁
 | 
	
		
			
				|  |  | +        <div class={styles.periodList}>
 | 
	
		
			
				|  |  | +          <CellGroup inset>
 | 
	
		
			
				|  |  | +            {data.list.map((item: any) => {
 | 
	
		
			
				|  |  | +              const isLock = !item.unLockFlag
 | 
	
		
			
				|  |  | +              return (
 | 
	
		
			
				|  |  | +                <Cell
 | 
	
		
			
				|  |  | +                  border
 | 
	
		
			
				|  |  | +                  center
 | 
	
		
			
				|  |  | +                  title={item.name}
 | 
	
		
			
				|  |  | +                  label={`已使用${item.useNum}次`}
 | 
	
		
			
				|  |  | +                  onClick={() => !isLock && handleClick(item)}
 | 
	
		
			
				|  |  | +                >
 | 
	
		
			
				|  |  | +                  {{
 | 
	
		
			
				|  |  | +                    icon: () => (
 | 
	
		
			
				|  |  | +                      <div class={styles.periodItem}>
 | 
	
		
			
				|  |  | +                        <div class={styles.periodItemModel}>
 | 
	
		
			
				|  |  | +                          <img src={isLock ? iconCourseLock : iconCourse} />
 | 
	
		
			
				|  |  | +                        </div>
 | 
	
		
			
				|  |  |                        </div>
 | 
	
		
			
				|  |  | -                    )}
 | 
	
		
			
				|  |  | -                  </div>
 | 
	
		
			
				|  |  | -                </GridItem>
 | 
	
		
			
				|  |  | +                    ),
 | 
	
		
			
				|  |  | +                    value: () => (
 | 
	
		
			
				|  |  | +                      <>
 | 
	
		
			
				|  |  | +                        <Button disabled={isLock} class={[styles.baseBtn, isLock ? styles.disable : styles.look]}>选择</Button>
 | 
	
		
			
				|  |  | +                      </>
 | 
	
		
			
				|  |  | +                    )
 | 
	
		
			
				|  |  | +                  }}
 | 
	
		
			
				|  |  | +                </Cell>
 | 
	
		
			
				|  |  |                )
 | 
	
		
			
				|  |  |              })}
 | 
	
		
			
				|  |  | -          </Grid>
 | 
	
		
			
				|  |  | -        ) : (
 | 
	
		
			
				|  |  | -          <OEmpty></OEmpty>
 | 
	
		
			
				|  |  | -        )}
 | 
	
		
			
				|  |  | +          </CellGroup>
 | 
	
		
			
				|  |  | +        </div>
 | 
	
		
			
				|  |  | +        {!data.loading && !data.list.length && <OEmpty tips="暂无内容" />}
 | 
	
		
			
				|  |  |        </div>
 | 
	
		
			
				|  |  |      )
 | 
	
		
			
				|  |  |    }
 |