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

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

      if (trainingType === 'EVALUATION') {
        tList = [
          `${evaluateDifficult[configJson.evaluateDifficult]}`,
          `${configJson.practiceChapterBegin || 0}-${configJson.practiceChapterEnd || 0}小节`,
          `速度${configJson.evaluateSpeed || 0}`,
          `${configJson.trainingTimes}分达标`
        ];
      } else {
        tList = [
          `${configJson.practiceChapterBegin}-${configJson.practiceChapterEnd}小节`,
          `速度${configJson.practiceSpeed || 0}`,
          `${configJson.trainingTimes}分钟`
        ];
      }
      return tList;
    };
    const getTrainingDetail = async (id: any) => {
      loading.value = true;
      try {
        const res = await getTrainingClassDetail({
          trainingId: 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 || []
          };
        });
        teacherInfo.value = {
          ...res.data,

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

    return () => (
      <div class={[styles.trainingDetails]}>
        <NSpin show={loading.value}>
          <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'
                    )
                    : '--'}{' '}
                  | 结束时间：
                  {teacherInfo.value.expireDate
                    ? dayjs(new Date(teacherInfo.value.expireDate)).format(
                      'YYYY-MM-DD'
                    )
                    : '--'}
                </p>
              </div>
            </div>
          </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}
                    isLarge
                    isCLassWork={true}
                    item={item}></TrainType>
                )
              )}
            </div>
          </NScrollbar>
        </NSpin>
      </div>
    );
  }
});
