<template>
  <div>
    <!-- <transition name="slide-fade" enter-active-class="animate__animated animate__bounceInLeft" leave-active-class=" animate__animated animate__bounceOutLeft"> -->

    <el-container v-show="showIt" v-loading="loading">
      <el-header>
        <div class="flex a-center j-between">
          <div class="flex a-center" style="width: 28%">
            <p>实训项目</p>
            <el-select v-model.trim="projectId" placeholder="请选择" class="select" disabled @change="selectProject">
              <el-option v-for="item in topicList" :key="item.projectId" :label="item.projectName"
                :value="item.projectId"></el-option>
            </el-select>
          </div>
          <div class="countDownBox">
            <div style="margin-left: -40px;">
              <div :sendSync="sendSync" :autoStart="autoStart" :defaultVal="defaultVal">
                实训{{ text }}时间
                <span class="timeSpan">{{ day }}</span>天
                <span class="timeSpan">{{ hour }}</span>小时
                <span class="timeSpan">{{ minutes }}</span>分
                <span class="timeSpan">{{ seconds }}</span>秒
              </div>
            </div>
          </div>
          <div class="countDownBox">
            <div>
              总得分:
              <span class="gradeSpan">{{ grade }}</span>
            </div>
          </div>
          <div>
            <el-button @click="toReport" v-if="popContainer">查看实验报告</el-button>
            <el-button style="background: #202020;color: #d0d0d0;font-size:16px;" v-show="projectPermissions == 0"
              @click="reloadConfirm"
              :disabled="popContainer && (assessmentId != '' && assessmentId != 'null' && assessmentId != null)">
              重新开始
            </el-button>
            <el-button class="submit-btn" style="margin-right:7px" @click="Submit()"
              :disabled="popContainer || requires.length == 0">提交</el-button>
          </div>
        </div>
      </el-header>

      <el-container>
        <el-aside width="30%" class="flex flex-col">
          <div class="aside-header">
            <div class="header_h flex a-center">
              <i class="el-icon-s-order"></i>
              <p>实验目标</p>
            </div>
            <div class="font_css">
              <div class="experimentalGoal">
                <div class="break-all" v-html="projectManage.experimentTarget" style="font-size: 0.875rem;">
                </div>
              </div>
            </div>
          </div>
          <div class="aside-footer flex-grow">
            <div class="header_h flex a-center">
              <i class="el-icon-s-management"></i>
              <p>实验任务</p>
            </div>
            <div>
              <el-row>
                <el-col :span="24">
                  <el-card shadow="hover">
                    <el-table :data="requires" height="43.5vh" ref='testTable'>
                      <el-table-column type="index"></el-table-column>
                      <el-table-column prop="name" label="判分点" align="left">
                      </el-table-column>
                      <el-table-column prop="score" label="分值" width="60" align="center">
                      </el-table-column>
                      <el-table-column prop="right" label="完成结果" width="80" align="center">
                        <template slot-scope="scope">
                          <i v-if="scope.row.right == true" class="el-icon-check" style="color:green;"></i>
                          <i v-else-if="scope.row.right == false" class="el-icon-close" style="color:red;"></i>
                        </template>
                      </el-table-column>
                      <el-table-column prop="scores" label="得分" width="60" align="center"></el-table-column>
                    </el-table>
                  </el-card>
                </el-col>
              </el-row>
            </div>
          </div>
        </el-aside>
        <el-main>
          <el-tabs v-model.trim="activeName" type="card">
            <el-tab-pane label="案例" name="first">
              <div class="break-all" v-html="projectManage.experimentDescription"></div>
            </el-tab-pane>
            <el-tab-pane label="实验要求" name="second">
              <el-collapse :value="activeNames" accordion>
                <el-collapse-item v-for="(item, index) in requires" :key="index" :name="item.id">
                  <template slot="title" style='line-height: 0px;'>
                    <i class='el-icon-s-ticket'></i>
                    <span style="margin: 0px 10px;font-size: 1rem;">{{ item.name }}</span>
                  </template>
                  <div class="break-all" v-html="item.experimentalRequirements"></div>
                </el-collapse-item>
                <!-- <p ref="scrollTag" style="font-size:16px;"></p> -->
              </el-collapse>
            </el-tab-pane>
            <el-tab-pane label="实验提示" name="fifth" v-if="hintOpen == 0">
              <div class="break-all" v-html="projectManage.experimentHint"></div>
            </el-tab-pane>
          </el-tabs>
        </el-main>
      </el-container>
    </el-container>
    <!-- </transition> -->
    <!-- </div> -->
    <div class="panel" :class="{ active: showIt }">
      <div @click="toggleCase">
        <img src="../../assets/img/case/left.png" alt v-if="showIt" />
        <img src="../../assets/img/case/right.png" alt v-else />
      </div>
    </div>

    <div class='popContainer' v-if='popContainer'></div>

    <!-- 遮罩层 -->
    <div class="absolute z-50 h-screen bg-transparent inset-0" v-show="showIt"></div>

    <el-dialog title="提示" :visible.sync="closePaneJudge" width="30%" center>
      <h4 class="antialiased text-center text-2xl">请选择你将进行的操作</h4>
      <span slot="footer" class="dialog-footer">
        <el-button @click="closePane()">再试一次</el-button>
        <!-- <el-button type="primary" @click="closePane(true)">其他业务</el-button> -->
      </span>
    </el-dialog>

  </div>

</template>

<script>
import Cookie from 'js-cookie'
import Util from '@/libs/util'
import Setting from '@/setting'
// 引入封装好的接口
import { getProjectBySystemId, getProjectDetail, submit, getQueryCache, deleteCache, checkTest, checkTest2 } from "@/api/http.js";
import { mapMutations } from 'vuex'
import { async } from 'q';
import Bus from '@/libs/bus'
export default {
  props: {
    sendSync: {
      type: Boolean,
      default: false
    },
    autoStart: {
      type: Boolean,
      default: false
    },
    defaultVal: {
      type: Number,
      default: null
    },
    showIt: {
      type: Boolean,
      required: true
    }
  },
  data () {
    return {
      closePaneJudge: false,
      lockIt: false,
      intervalJudge: {},
      systemId: Setting.systemId,
      workbench: [],
      test: [],
      caseVisible: true,
      grade: "00",
      exampleData: "",
      codeid: "",
      judgmentPointsIds: [],
      text: "",
      isStart: false,
      globalTimer: null, //获取setInterval对象值
      millisecond: 0,
      countVal: this.defaultVal, //获取初始值
      pauseTime: 0,
      day: '00',
      seconds: '00',
      minutes: '00',
      hour: '00',
      createTime: "", //开始时间
      actEndTime: "", //倒计时结束时间
      projectId: '', //选中后绑定的对象
      // projectId: "" || sessionStorage.getItem('projectId'), //选中后绑定的对象
      value: [
        { projectName: '项目1', projectId: 1 }
      ],
      experimentalGoal: "", //实验目标
      caseDescription: "", //案例描述
      experimentSuggests: "", //实验提示
      judgmentPointsName: "", //	判分点名称
      points: [],
      // activeNames: [],
      tableData: [],
      activeName: "first",
      schoolId: '',
      studentId: "",
      courseId: "",
      assessmentId: "",
      classId: '',
      projectPermissions: 0, //项目权限(0、练习 1、考核 2、竞赛)
      competitionId: '',
      stageId: '',
      teamId: '',
      isSubmit: false,
      entryTime: Util.formatDate('yyyy-MM-dd hh:mm:ss'),
      startTime: '',
      stopTime: '',
      isSelected: false,
      userId: '',
      hintOpen: 0,
      topicList: [],
      projectManage: {},
      requires: [],
      projectName: '',
      loading: false,
      sss: 1,
      popContainer: false,
      timestamp: '',
      curSystemId: '',
      reportId: '',
      submitType: false
    }
  },
  computed: {
    needSendSunc: function () {
      return this.sendSync;
    },
    // 倒计时
    second: function () {
      return this.num(this.seconds);
    },
    minute: function () {
      return this.num(this.minutes);
    },
    activeNames () {
      // 默认展开所有
      return this.requires.map(item => item.id)
    },
  },
  watch: {
    countVal: {
      deep: true,
      handler: function (val, oldVal) {
        let vm = this;
        if (vm.needSendSunc) {
          vm.passToParent(val);
        }
      }
    },
    needSendSunc: {
      deep: true,
      handler: function (val) {
        let vm = this;
        if (val) {
          vm.passToParent(vm.countString);
        }
      }
    },
  },
  created () {
    let assessmentId = this.getQueryVariable('assessmentId')
    sessionStorage.setItem('assessmentId', assessmentId)
    this.assessmentId = assessmentId
    if (assessmentId == '' || assessmentId == null || assessmentId == 'null') {

    } else {
      this.intervalJudge = setInterval(() => {
        const data = {
          id: parseInt(sessionStorage.getItem('assessmentId')),
        }
        checkTest(data).then(data => {
          const { data: { data: { status } } } = data
          if (status !== 1) {
            this.popContainer = true
            clearInterval(this.intervalJudge)
            this.$alert('考试已结束,已自动为您提交。', '提示', {
              confirmButtonText: '确定',
              type: 'warning',
              center: true
            });
            // 提交
            this.sureSubmit(true)
          }
        })
      }, 4000)
    }
    Bus.$on('setSubmited', data => {
      this.popContainer = data
    })
  },
  mounted () {
    let token = this.getParam('token')
    let cid = this.getParam('cid')
    let systemId = this.getParam('systemId')
    let projectId = this.getParam('projectId')
    let assessmentId = this.getParam('assessmentId')
    let competitionId = this.getParam('competitionId')
    let stageId = this.getParam('stageId')
    let teamId = this.getParam('teamId')
    let classId = this.getParam('classId')
    let stopTime = this.getParam('stopTime')
    let mallId = this.getParam('mallId')
    let timestamp = +stopTime
    timestamp || sessionStorage.removeItem('timestamp')

    if (token) {
      sessionStorage.setItem('token', token)
      sessionStorage.setItem('cid', cid)
      sessionStorage.setItem('systemId', systemId)
      sessionStorage.setItem('timestamp', timestamp)
      console.log("🚀 ~ mounted ~ projectId:", token, projectId)
      sessionStorage.setItem('projectId', projectId)
      sessionStorage.setItem('assessmentId', assessmentId)
      sessionStorage.setItem('competitionId', competitionId)
      sessionStorage.setItem('stageId', stageId)
      sessionStorage.setItem('teamId', teamId)
      sessionStorage.setItem('classId', classId)
      this.assessmentId = assessmentId
      this.competitionId = competitionId
      this.stageId = stageId
      this.teamId = teamId
      this.classId = classId
      this.mallId = mallId
      this.projectId = projectId
    }
    if (token) {
      this.projectPermissions = this.assessmentId ?
        1 :
        this.competitionId ?
          2 :
          0
      this.assessmentId && this.projectId && this.checkVer()
      if (assessmentId || this.competitionId) {
        this.selectProjects({
          projectId
        })
      } else {
        this.getData()
      }
    }
  },
  methods: {
    ...mapMutations({
      setPopId: 'system/setPopId',
      setBusinessKey: 'system/setBusinessKey',
      initState: 'system/initState',
      setShowBusiness: 'system/setShowBusiness',
    }),
    clearStore () {
      // // 清空缓存
      let token = sessionStorage.getItem('token')
      let cid = sessionStorage.getItem('cid')
      let systemId = sessionStorage.getItem('systemId')
      let projectId = sessionStorage.getItem('projectId')
      let assessmentId = sessionStorage.getItem('assessmentId')
      let classId = sessionStorage.getItem('classId')
      let timestamp = sessionStorage.getItem('timestamp')
      let startTime = sessionStorage.getItem('startTime')

      const storeProjectId = sessionStorage.getItem('storeProjectId')
      Util.clearSession()
      sessionStorage.setItem('token', token)
      sessionStorage.setItem('cid', cid)
      sessionStorage.setItem('systemId', systemId)
      sessionStorage.setItem('projectId', projectId)
      sessionStorage.setItem('firstLoad2', true)
      if (assessmentId) {
        sessionStorage.setItem('assessmentId', assessmentId)
      }
      if (classId) {
        sessionStorage.setItem('classId', classId)
      }
      if (timestamp) {
        sessionStorage.setItem('timestamp', timestamp)
      }
      if (startTime) {
        sessionStorage.setItem('startTime', startTime)
      }
      if (storeProjectId) {
        sessionStorage.setItem('storeProjectId', storeProjectId)
      }


      // 初始化vuex中的state
      this.initState();
    },
    closePane (judge = false) {
      this.closePaneJudge = false
      // this.lockIt = false
      this.reload()
      if (judge) {
        this.toggleCase()
      }
    },
    // 获取参数
    getParam (field) {
      const s = sessionStorage.getItem(field)
      const routeParam = this.getQueryVariable(field)
      return routeParam ? routeParam : s !== 'null' && s !== 'undefined' && s ? s : ''
    },
    getQueryVariable (name) {
      var reg = new RegExp('(^|&)' + name + '=([^&]*)(&|$)')
      if (window.location.href.split('?')[1]) {
        var r = window.location.href.split('?')[1].match(reg)
        if (r != null) {
          return (r[2])
        } else {
          return null
        }
      }
    },
    //获取项目列表
    getData () {
      let params = {
        "systemId": sessionStorage.getItem('systemId'),
        "cId": sessionStorage.getItem('cid'),
        "permissions": 0,
        mallId: this.mallId
      }
      getProjectBySystemId(params).then((data) => {
        if (data.status == 200) {
          // this.getQueryCaches()
          //获取当前时间
          this.getBeginTime()
          this.topicList = []

          for (var i = 0; i < data.data.projects.length; i++) {
            if (data.data.projects[i].projectId) {
              this.topicList.push(data.data.projects[i])

            }

          }
          if (this.topicList.length > 0) {
            const storeProjectId = sessionStorage.getItem('storeProjectId') || this.$route.query.projectId
            if (storeProjectId) {
              this.selectProjects({
                projectId: storeProjectId
              })
            } else {
              this.selectProjects({
                projectId: this.topicList[0].projectId
              })
            }
            this.gotuQueryVariable()
            // 加的
          }
          this.getQueryCaches()
        }
      }).catch((error) => {
      })
    },
    getBeginTime () {
      let dates = new Date().getTime();
      let date = new Date(dates)
      let y = date.getFullYear();
      let MM = date.getMonth() + 1;
      MM = MM < 10 ? ('0' + MM) : MM;
      let d = date.getDate();
      d = d < 10 ? ('0' + d) : d;
      let h = date.getHours();
      h = h < 10 ? ('0' + h) : h;
      let m = date.getMinutes();
      m = m < 10 ? ('0' + m) : m;
      let s = date.getSeconds();
      s = s < 10 ? ('0' + s) : s;
      this.startTime = y + '-' + MM + '-' + d + ' ' + h + ':' + m + ':' + s;
      sessionStorage.setItem('startTime', this.startTime)
    },
    getQueryCaches () {
      getQueryCache(params).then((data) => {
        if (data.data.status == 200) {
          this.$confirm('有项目未做完,是否回到未做完的项目?', '提示', {
            center: true,
            confirmButtonText: '确定',
            cancelButtonText: '取消',
            type: 'warning'
          }).then(() => {
            this.$message({
              type: 'success',
              message: '切换成功!'
            });
            this.projectId = data.data.projectId
            let params = {
              "projectId": data.data.projectId,
            }
            sessionStorage.setItem('projectId', data.data.projectId)
            this.selectProjects(params)
          }).catch(() => {
            deleteCache().then((data) => {
              this.$message({
                type: 'info',
                message: '已取消'
              });
            }).catch(() => {
            })
            this.gotuQueryVariable()
          });
        } else {
          this.gotuQueryVariable()
        }
      }).catch((error) => {
        this.gotuQueryVariable()
      })
    },
    gotuQueryVariable () {
      let projectId = sessionStorage.getItem('projectId') || this.getQueryVariable('projectId')
      if (projectId) {
        this.projectId = projectId
      } else {
        const storeProjectId = sessionStorage.getItem('storeProjectId')
        if (storeProjectId) {
          this.projectId = storeProjectId;
        } else {
          this.projectId = this.topicList[0].projectId;
        }
      }
      sessionStorage.setItem('projectId', this.projectId)
      let params = {
        "projectId": this.projectId,
      }
      this.selectProjects(params)
    },
    selectProjects (params) {
      getProjectDetail(params).then((data) => {
        if (data.status == 200) {
          this.globalTimer = "";
          let stopTime = sessionStorage.getItem('timestamp')
          let timestamp = +stopTime;
          this.countVal = timestamp;
          this.sss = 1;
          this.hintOpen = data.data.projectManage.hintOpen;
          this.countDown(timestamp);
          this.curSystemId = data.data.projectManage.systemId
          let assessmentId = this.getQueryVariable('assessmentId')
          if (assessmentId != null && assessmentId != '' && assessmentId != 'null') {
            //获取当前时间
            this.getBeginTime()
            this.topicList = [data.data.projectManage];
            this.projectId = +params.projectId
            this.projectName = data.data.projectManage.projectName
            this.projectId = data.data.projectManage.projectId;
            this.projectManage = data.data.projectManage;
            this.requires = data.data.projectJudgmentVos;
          } else {
            this.projectName = data.data.projectManage.projectName
            this.projectId = data.data.projectManage.projectId;
            this.projectManage = data.data.projectManage;
            this.requires = data.data.projectJudgmentVos;
          }
        }
      }).catch((error) => {
      })
    },
    //选择好题目
    selectProject () {
      this.lockIt = false
      this.submitType = false
      this.$router.push('/index/list')

      this.$nextTick(() => {
        this.clearStore()
      })

      let params = {
        "projectId": this.projectId,
      }
      sessionStorage.setItem('storeProjectId', this.projectId)
      let formList = []
      sessionStorage.setItem('ruleReqs', JSON.stringify(formList))
      sessionStorage.setItem('accountVoucher', JSON.stringify(formList))
      sessionStorage.setItem('accountPasswordAll', '')
      sessionStorage.setItem('projectId', this.projectId)
      sessionStorage.removeItem('submited', 0)
      sessionStorage.removeItem('firstLoad2')
      this.setBusinessKey('')
      getProjectDetail(params).then((data) => {
        if (data.status == 200) {
          const { systemId, projectId } = data.data.projectManage
          // systemId=11 为银行项目,为其他值则是python项目,直接跳python
          if (systemId === 11) {
            this.popContainer = false;
            this.hintOpen = data.data.projectManage.hintOpen;
            this.projectName = data.data.projectManage.projectName;
            this.projectId = data.data.projectManage.projectId;
            this.projectManage = data.data.projectManage;
            this.requires = data.data.projectJudgmentVos;
            this.$router.push('/index/list')
          } else {
            const { cid, curriculumName, token, systemId } = this.$route.query
            Cookie.set('admin-assessmentId', '', -1)
            Cookie.set('admin-startTime', '', -1)
            Cookie.set('admin-stopTime', '', -1)
            Cookie.set('admin-projectId', projectId)
            Cookie.set('admin-token', token)
            Cookie.set('admin-courseId', cid)
            Cookie.set('admin-curriculumName', escape(curriculumName))
            Cookie.set('admin-systemId', systemId)
            // 8个python子系统都跳这个地址,子系统会通过cookie里的systemId识别展示哪套系统
            location.href = process.env.NODE_ENV === 'development' ?
              `http://${location.hostname}:8085/#/` :
              location.href.includes('occupationlab.com') ?
                'https://www.occupationlab.com/pyTrials' :
                `${location.origin}/pyTrials`
          }
        }
      }).catch((error) => {
      })
      //获取当前时间
      this.getBeginTime()
      this.globalTimer = "";
      this.countVal = "";
      this.day = "00";
      this.seconds = "00";
      this.minutes = "00";
      this.hour = "00";
      this.sss = 1
      this.startCountFn();
    },
    // 查看实验报告
    toReport () {
      this.popContainer = false
      // this.setShowBusiness(false)
      this.$emit('update:showIt', !this.showIt)
      this.$router.push(`/index/report?reportId=${this.reportId}`)
    },
    //提交
    Submit () {
      this.$confirm('此操作将视为结束考试, 是否继续?', '提示', {
        center: true,
        confirmButtonText: '确定',
        cancelButtonText: '取消',
        type: 'warning'
      }).then(res => {
        this.sureSubmit(true)
      }).catch(() => {
        this.$message({
          type: "info",
          message: "已取消提交"
        });
      });
    },
    async sureSubmit (judge) {
      // 初始化vuex中的state
      // this.initState();
      this.actEndTime = new Date().getTime();
      let ruleReqs = sessionStorage.getItem('ruleReqs')
      let startTime = sessionStorage.getItem('startTime') || this.entryTime
      let ruleReqsList = JSON.parse(ruleReqs);
      let lcld = []
      for (var i = 0; i < this.requires.length; i++) {
        lcld.push(this.requires[i].judgmentId)
      }
      let cid = sessionStorage.getItem('cid')
      let params = {
        "assessmentId": this.assessmentId,
        "classId": this.classId,
        "curriculumId": +cid,
        "endTime": this.actEndTime,
        "lcId": lcld,
        "projectId": this.projectId,
        "projectName": this.projectName,
        "purpose": this.projectManage.experimentTarget,
        "ruleReqs": ruleReqsList,
        "startTime": startTime,
        "submitTime": this.actEndTime,
        "systemId": this.curSystemId,
        competitionId: this.competitionId,
        stageId: this.stageId,
        teamId: this.teamId,
        mallId: this.mallId
      }
      this.loading = true;
      submit(params).then((data) => {
        if (data.status == 200) {
          sessionStorage.setItem('firstLoad2', true)
          // this.clearStore()
          const { retMap } = data.data
          this.reportId = retMap.reportId
          let firstLoad = null
          let firstLoad2 = null
          if (sessionStorage.getItem('firstLoad')) {
            firstLoad = sessionStorage.getItem('firstLoad')
          }
          if (sessionStorage.getItem('firstLoad2')) {
            firstLoad2 = sessionStorage.getItem('firstLoad2')
          }

          this.lockIt = true
          if (this.assessmentId) {
            this.submitType = true
          }
          if (firstLoad) {
            sessionStorage.setItem('firstLoad', firstLoad)
          }
          if (firstLoad2) {
            sessionStorage.setItem('firstLoad2', firstLoad2)
          }


          let datas = retMap.scoreInfo;
          let formList = []
          sessionStorage.setItem('ruleReqs', JSON.stringify(formList))
          sessionStorage.setItem('accountVoucher', JSON.stringify(formList))
          sessionStorage.setItem('accountPasswordAll', '')
          sessionStorage.setItem('submited', 1)
          let list = this.requires
          this.grade = retMap.totalScore
          for (var j = 0; j < list.length; j++) {
            for (var i = 0; i < datas.length; i++) {
              if (datas[i].lcId == list[j].judgmentId) {
                list[j].flag = datas[i].flag
                list[j].scores = datas[i].questionScore
                list[j].right = datas[i].calculate
              }
            }
          }
          this.sss = 0;
          this.popContainer = true;
          if (judge) {
            this.$message({
              type: 'success',
              message: '提交成功'
            });
          }
          this.requires.splice(0, this.requires.length, ...list)
        } else {
          this.$message({
            type: "error",
            message: data.message
          });
        }
        this.loading = false
      }).catch((error) => {
        this.loading = false
      })
    },
    //开始计时
    startCountFn () {
      if (!this.isStart) {
        // this.countVal = this.countVal ? this.countVal : 0;
        this.globalTimer = setInterval(() => {
          if (this.sss == 0) {
            this.globalTimer = null;
            clearInterval(this.globalTimer);
          } else if (this.timestamp) {
            this.counterFn(this.countVal--);
          } else {
            this.counterFn(this.countVal++);
          }
        }, 1000);
        this.isStart = true;
      }
    },
    //倒计时
    countDown (timestamp) {
      this.timestamp = timestamp
      this.sss = 1;
      this.globalTimer = null;
      clearInterval(this.globalTimer);
      this.startCountFn()
    },
    counterFn (counterTime) {
      if (this.timestamp) {
        let countDown = (new Date(counterTime).getTime() - new Date().getTime()) / 1000
        if (countDown > 0) {
          let d = Math.floor(countDown / (60 * 60 * 24));
          let h = Math.floor(countDown / (60 * 60));
          let m = Math.floor(countDown % (60 * 60) / 60);
          let s = Math.floor(countDown % (60 * 60) % 60);
          this.day = `${d > 9 ? d : `0${d}`}`;
          this.hour = `${h > 9 ? h : `0${h}`}`;
          this.minutes = `${m > 9 ? m : `0${m}`}`;
          this.seconds = `${s > 9 ? s : `0${s}`}`;
        } else {
          this.$confirm('此操作将视为结束考试, 是否继续?', '提示', {
            center: true,
            confirmButtonText: '确定',
            cancelButtonText: '取消',
            type: 'warning'
          }).then(() => {
            this.sureSubmit(true)

          }).catch(() => {
            // this.$message({
            //   type: "info",
            //   message: "已取消提交"
            // });
          });
          // this.$alert('考试已结束,已自动为您提交。', '提示', {
          //         confirmButtonText: '确定',
          //         type: 'warning',
          //         center: true
          //     });
          this.sss = 0
          this.sureSubmit(true)
          this.day = '00';
          this.hour = '00';
          this.minutes = '00';
          this.seconds = '00';
        }
      } else {
        let leave1 = counterTime % (24 * 3600 * 1); //计算天数后剩余的毫秒数
        let leave2 = leave1 % (3600 * 1); //计算小时数后剩余的毫秒数
        let leave3 = leave2 % (60 * 1); //计算分钟数后剩余的毫秒数
        let day = Math.floor(counterTime / (24 * 3600 * 1)); //计算相差天数
        let hour = Math.floor(leave1 / (3600 * 1)); //计算相差小时
        let minutes = Math.floor(leave2 / (60 * 1)); //计算相差分钟
        let seconds = Math.round(leave3 / 1); //计算相差秒
        day = day >= 10 ? day : "0" + day;
        hour = hour >= 10 ? hour : "0" + hour;
        minutes = minutes >= 10 ? minutes : "0" + minutes;
        seconds = seconds >= 10 ? seconds : "0" + seconds;
        this.day = day;
        this.hour = hour;
        this.minutes = minutes;
        this.seconds = seconds;
      }
    },
    //重新开始
    async reloadConfirm () {
      // 已提交状态则直接重新开始,未提交则询问弹框
      if (this.popContainer) {
        this.reload()
      } else {
        try {
          await this.$confirm('<p style="color: #f56c6c;">点击重新开始,之前操作会清空。</p><p>确定重新开始吗?</p>', '提示', {
            confirmButtonText: '确定',
            cancelButtonText: '取消',
            type: 'warning',
            // closeOnClickModal: false,
            dangerouslyUseHTMLString: true,
          })
          this.reload()
        } catch (e) { }
      }
    },
    reload () {
      this.submitType = false
      this.lockIt = false
      this.clearStore()
      let token = sessionStorage.getItem('token')
      let cid = sessionStorage.getItem('cid')
      let systemId = sessionStorage.getItem('systemId')
      let projectId = sessionStorage.getItem('projectId')
      let formList = []
      sessionStorage.setItem('ruleReqs', JSON.stringify(formList))
      sessionStorage.setItem('accountVoucher', JSON.stringify(formList))
      sessionStorage.setItem('accountPasswordAll', '')
      this.setPopId('')
      this.setBusinessKey('')
      let params = {
        "projectId": projectId,
      }
      this.selectProjects(params)
      this.popContainer = false
      this.sss = 1
      this.startCountFn();
      deleteCache().then((data) => {

      }).catch(() => {

      })
      this.globalTimer = "";
      this.countVal = "";
      this.day = "00";
      this.seconds = "00";
      this.minutes = "00";
      this.hour = "00";
      this.grade = '00'
      this.$router.push('/index/list')
      this.getBeginTime()
    },

    checkVer () {
      let data = {
        userId: this.userId,
        id: this.assessmentId
      }
      this.$get(this.api.qualifications, data).then(res => {
        if (res.message == 'false') {
          this.isSubmit = true;
        }
      });
    },
    // 倒计时
    timeFormat (param) {
      return param < 10 ? "0" + param : param;
    },
    toggleCase () {
      if (this.submitType) return
      // if (!this.lockIt) {
      this.$emit('update:showIt', !this.showIt)
      // } else {
      // this.closePaneJudge = true
      // }

      // this.caseVisible = !this.caseVisible
    },
    collapse () {

    },
    passToParent (data) {
      this.$emit("getDataFromChild", data);
    },
    getCookie (cookie_name) {
      //获取cookie中指定key的value
      var allcookies = document.cookie; //索引长度,开始索引的位置
      var cookie_pos = allcookies.indexOf(cookie_name); //如果找到了索引,就代表cookie存在,否则不存在
      if (cookie_pos != -1) {
        //把cookie_pos放在值的开始,只要给值加1即可
        //计算取cookie值得开始索引,加的1为“=”
        cookie_pos = cookie_pos + cookie_name.length + 1; //计算取cookie值得结束索引
        var cookie_end = allcookies.indexOf(";", cookie_pos);
        if (cookie_end == -1) {
          cookie_end = allcookies.length;
        } //得到想要的cookie的值
        var value = unescape(allcookies.substring(cookie_pos, cookie_end));
      }
      return value;
    }
  }
};
</script>

<style lang="scss" scoped>
$togetherFontSize: 16px;

/deep/ .el-tab-pane {
  font-size: 1rem !important;
}

.scrollbar {
  z-index: 100000000;
}

.popContainer {
  position: absolute;
  width: 100%;
  /*宽度设置为100%,这样才能使隐藏背景层覆盖原页面*/
  height: 100%;
  z-index: 1000;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  background: rgba(0, 0, 0, 0.3);
}

/deep/.el-container {
  height: 80%;

  &.is-vertical {
    position: fixed;
    top: 200px;
    bottom: 20px;
    left: 0;
    width: 85%;
    height: 70%;
    background-color: #f5f5f5;
    z-index: 1001;
  }

  .el-header {
    color: #333;
    padding: 0 12px 0 20px;

    .el-button {
      background-color: $main-color;
      color: #fff;
      border: none;
      margin: 5px 0px 5px 5px;
      font-size: 16px;
    }

    .submit-btn {
      padding-left: 30px;
      padding-right: 30px;
      background: $main-color url(../../assets/img/case/btn.png) 0 0/100% 100% no-repeat;
    }
  }

  .el-aside {
    font-size: $togetherFontSize;
    color: #333;

    [class*=' el-icon-'],
    [class^='el-icon-'] {
      line-height: 40px;
      font-size: 16px;
      font-size: $togetherFontSize;
    }
  }

  .el-main {
    width: 60%;
    background-color: #fff;
    color: #333;
    padding: 0;
    font-size: $togetherFontSize;
    margin: 0px 20px 10px 10px;
    white-space: pre-wrap;
    background: #fff url(../../assets/img/case/bg.png) top right no-repeat;
    // overflow: visible;
  }

  .aside-header {
    margin: 0px 10px 10px 10px;
    background-color: #fff;
    font-size: 0.875rem;
  }

  .aside-footer {
    margin: 0px 10px 10px 10px;
    background-color: #fff;
  }

  .header_h {
    height: 40px;
    background: url(../../assets/img/case/header.png) 0 0/100% 100% no-repeat;
    justify-content: center;

    i {
      color: #fff;
    }

    p {
      line-height: 40px;
      font-size: 16px;
      color: #fff;
      padding-left: 10px;
    }
  }

  .el-card {
    border: 0;
    border-radius: 0;

    .el-card__body {
      padding: 0;
    }
  }

  .select {
    flex: 1;

    input::-webkit-input-placeholder {
      color: #333;
    }

    .el-input__icon {
      line-height: 60px;
    }

    .el-select__caret:before {
      content: '\e78f';
      font-size: 16px;
      padding: 3px;
      background-color: $main-color;
      border-radius: 50%;
      color: #ffffff;
    }

    .el-input--suffix .el-input__inner {
      color: #333;
      font-size: $togetherFontSize;
      border-radius: 30px;
      border: none;
      background-color: #fff;
      margin-left: 15px;
      overflow: hidden;
      text-overflow: ellipsis;
      white-space: nowrap;
    }

    .el-input {
      padding: 10px 0;
    }
  }

  .font_css {
    margin: 0 10px;
    text-indent: 2em;
    font-size: $togetherFontSize;
    padding: 10px 0;
  }

  .countDownBox {
    font-size: $togetherFontSize;
    margin: 0 10px;
    padding: 20px 0;
  }

  .timeSpan {
    color: #333333;
    padding: 5px 15px;
    font-size: $togetherFontSize;
    background: #ffffff;
    border-radius: 18px;
    margin: 0 5px;
    text-align: center;
  }

  .gradeSpan {
    color: #878787;
    padding: 10px;
    font-size: $togetherFontSize;
    background: #e0e0e0;
    border-radius: 6px;
    text-align: center;
  }

  .el-header /deep/.el-button:hover,
  .el-button:focus,
  .el-button:active {
    background-color: $main-color;
    color: #fff;
  }

  /deep/.el-table {
    font-size: 12px;

    thead {
      color: #fff;
    }

    .el-table__cell {
      padding: 12px 0;
    }

    .cell {
      font-weight: 100;
      font-size: 12px;
    }

    td,
    th.is-leaf {
      border-bottom: 0 !important;
    }
  }

  .el-table__header-wrapper {
    thead {
      color: #ffffff;
      font-size: 12px;

      th {
        font-weight: 100;
      }
    }

    th,
    tr {
      background-color: #badfff;
    }
  }

  .el-table__row--striped {
    td {
      background-color: #badfff !important;
    }
  }

  /deep/ .el-collapse {
    font-size: 0.875rem;
  }

  .el-collapse-item__content {
    padding-left: 10px;
    padding-right: 10px;
    font-size: $togetherFontSize;
  }

  .el-collapse-item__wrap {
    border-bottom: none;
  }

  /deep/.el-collapse-item__header {
    font-size: 1rem;

    border-bottom: none;
  }

  .el-tabs__content {
    margin: 0 20px;
  }

  .el-icon-s-ticket:before {
    font-size: togetherFontSize;
    //padding: 5px;
    color: $main-color;
  }

  .el-collapse-item__arrow {
    margin: 0 5px 0 0;
  }

  .el-icon-arrow-right:before {
    font-size: 12px;
    font-size: $togetherFontSize;
    //padding: 1px;
    //margin-left: 10px;
    background-color: $main-color;
    border-radius: 50%;
    color: #ffffff;
  }

  .el-tabs__item {
    font-size: 16px;
  }

  .el-tabs--card>.el-tabs__header .el-tabs__nav {
    border: none;
  }

  .el-tabs--card>.el-tabs__header .el-tabs__item {
    border-left: none;
  }

  .el-tabs--card>.el-tabs__header {
    border-bottom: none;
  }

  .el-collapse {
    border-bottom: none;
    border-top: none;
    height: calc(100vh - 422px);
    overflow: hidden;
    overflow-y: auto;
  }

  /deep/.el-collapse-item {
    font-size: $togetherFontSize;
    background-color: red;
    color: red;
  }

  .el-tabs__item.is-active {
    color: #fff;
    background-color: $main-color;
  }

  .el-tabs__header {
    padding: 5px 20px;
  }
}

.break-all {
  font-size: 16px;
  word-break: break-all;
}

.panel {
  position: fixed;
  z-index: 10010000;
  top: 50%;

  &.active {
    //z-index: 10;
    left: 85%;
    z-index: 1001;
  }

  img {
    height: 175px;
    cursor: pointer;
  }
}
</style>