<template>
  <div class="error">
    <div>
      <slot name="content">
        <div class="error-code">{{ code }}</div>
      </slot>
      <div class="text-lg text-tx-secondary mt-7 mb-7">{{ title }}</div>
      <!-- <el-button v-if="showBtn" type="primary" @click="router.go(-1)">
        {{ second }} 秒后返回上一页
      </el-button> -->
    </div>
  </div>
</template>

<script lang="ts" setup>
import { onUnmounted, ref } from 'vue'
import { useRouter } from 'vue-router'
const props = defineProps({
  code: String,
  title: String,
  showBtn: {
    type: Boolean,
    default: true,
  },
})

let timer: number | undefined

const second = ref(5)
const router = useRouter()
props.showBtn &&
  (timer = window.setInterval(() => {
    if (second.value === 0) {
      clearInterval(timer)
      router.go(-1)
    } else {
      second.value--
    }
  }, 1000))
onUnmounted(() => {
  timer && clearInterval(timer)
})
</script>
<style lang="scss" scoped>
.error {
  text-align: center;
  height: 100vh;
  display: flex;
  justify-content: center;
  align-items: center;
  .error-code {
    color: #409eff;
    font-size: 150px;
  }
  .el-button {
    width: 176px;
  }
}
</style>
