import {
  NButton,
  NSpace,
  useMessage,
  NForm,
  NFormItem,
  NSelect,
  NImage,
  NScrollbar
} from 'naive-ui';
import { defineComponent, onMounted, reactive, ref } from 'vue';
import styles from '@/views/classList/index.module.less';
import TrainType from '@/views/attend-class/model/train-type';
import defultHeade from '@/components/layout/images/teacherIcon.png';
import noSub from '@/views/classList/images/nosub.png';
import qualified from '@/views/classList/images/qualified.png';
import unqualified from '@/views/classList/images/unqualified.png';
import { evaluateDifficult } from '/src/utils/contants';
import dayjs from 'dayjs';
import { getTrainingStudentDetail } from '../../classList/api';
export default defineComponent({
  props: {
    activeRow: {
      type: Object,
      default: () => ({ id: '' })
    },
    total: {
      type: Number,
      default: 0
    },
    current: {
      type: Number,
      default: 0
    }
  },
  name: 'studentTraomomhDetails',
  emits: ['close'],

  setup(props, { emit, expose }) {
    const data = reactive({
      uploading: false
    });
    const teacherInfo = ref({
      teacherName: '',
      createTime: '',
      expireDate: '',
      teacherAvatar: '',
      studentLessonTrainingDetails: [] as any
    } as any);
    const message = useMessage();
    const foemsRef = ref();
    const typeFormat = (trainingType: string, configJson: any) => {
      let tList: string[] = [];

      if (trainingType === 'EVALUATION') {
        tList = [
          `${evaluateDifficult[configJson.evaluateDifficult]}`,
          '全部小节',
          // `速度${configJson.evaluateSpeed}`,
          `${configJson.trainingTimes}分合格`
        ];
        console.log('configJson.evaluateDifficult--', tList);
      } else {
        tList = [
          `${configJson.practiceChapterBegin}-${configJson.practiceChapterEnd}小节`,
          `速度${configJson.practiceSpeed}`,
          `${configJson.trainingTimes}分钟`
        ];
        console.log('configJson.evaluateDifficult', tList);
      }
      return tList;
    };
    const getTrainingDetail = async (id: any) => {
      console.log(id, 'getTrainingDetail');
      try {
        const res = await getTrainingStudentDetail({
          studentLessonTrainingId: id
        });
        const arr = res.data.studentLessonTrainingDetails.map((item: any) => {
          const tList = typeFormat(
            item.trainingType,
            JSON.parse(item.trainingContent)
          );
          return {
            ...item,
            coverImg: item.titleImg,
            allTimes: JSON.parse(item.trainingContent).trainingTimes,
            typeList: tList || []
          };
        });

        console.log(arr, 'arr');
        teacherInfo.value = {
          ...res.data,

          studentLessonTrainingDetails: arr
        };
      } catch (e) {
        console.log(e);
      }
    };
    expose({ getTrainingDetail });
    onMounted(() => {
      getTrainingDetail(props.activeRow.id);
    });

    return () => (
      <div class={[styles.trainingDetails]}>
        <div class={styles.studentList}>
          <div class={styles.studentHeaderWrap}>
            <div class={styles.studentHeader}>
              <div class={styles.studentHeaderBorder}>
                <NImage
                  class={styles.studentHeaderImg}
                  src={
                    teacherInfo.value.teacherAvatar
                      ? teacherInfo.value.teacherAvatar
                      : defultHeade
                  }
                  previewDisabled></NImage>
              </div>
            </div>

            <div class={styles.workafterInfo}>
              <h4>
                {teacherInfo.value.teacherName}{' '}
                <div
                  class={[
                    styles.workafterInfoDot,
                    styles.workafterTeacherInfoDot
                  ]}>
                  老师
                </div>
              </h4>
              <p>
                开始时间：
                {teacherInfo.value.createTime
                  ? dayjs(new Date(teacherInfo.value.createTime)).format(
                      'YYYY-MM-DD'
                    )
                  : '--'}{' '}
                | 结束时间：
                {dayjs(new Date(teacherInfo.value.expireDate)).format(
                  'YYYY-MM-DD'
                )}
              </p>
            </div>
          </div>
          {teacherInfo.value.trainingStatus == 'UNSUBMITTED' ? (
            <NImage
              previewDisabled
              class={styles.workStatus}
              src={noSub}></NImage>
          ) : null}
          {teacherInfo.value.trainingStatus == 'SUBMITTED' ? (
            <NImage
              previewDisabled
              class={styles.workStatus}
              src={unqualified}></NImage>
          ) : null}
          {teacherInfo.value.trainingStatus == 'TARGET' ? (
            <NImage
              previewDisabled
              class={styles.workStatus}
              src={qualified}></NImage>
          ) : null}
        </div>
        <NScrollbar style="max-height:400px" trigger="none">
          <div class={styles.workList}>
            {teacherInfo.value.studentLessonTrainingDetails.map((item: any) => (
              <TrainType
                style={{ marginBottom: '20px' }}
                isDisabled={true}
                isDelete={false}
                isCLassWork={false}
                item={item}></TrainType>
            ))}
          </div>
        </NScrollbar>
      </div>
    );
  }
});
