Просмотр исходного кода

feat(speaking): add NotStartedTip.vue

jimmylee 2 месяцев назад
Родитель
Сommit
58ac7b54b9
1 измененных файлов с 68 добавлено и 0 удалено
  1. 68 0
      src/views/Student/components/SpeakingClassPanel/NotStartedTip.vue

+ 68 - 0
src/views/Student/components/SpeakingClassPanel/NotStartedTip.vue

@@ -0,0 +1,68 @@
+<template>
+  <div class="not-started-overlay" @click="$emit('close')">
+    <div class="not-started-card" @click.stop>
+      <div class="icon-wrap">
+        <svg width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor"
+             stroke-width="2" stroke-linecap="round" stroke-linejoin="round">
+          <circle cx="12" cy="12" r="10" />
+          <line x1="8" y1="12" x2="16" y2="12" />
+        </svg>
+      </div>
+      <p class="name">{{ studentName }}</p>
+      <p class="msg">{{ lang.ssSpkNotStartedMsg }}</p>
+      <button class="ack-btn" @click="$emit('close')">{{ lang.ssSpkNotStartedAck }}</button>
+    </div>
+  </div>
+</template>
+
+<script lang="ts" setup>
+import { lang } from '@/main'
+
+defineProps<{ studentName: string }>()
+defineEmits<{ close: [] }>()
+</script>
+
+<style lang="scss" scoped>
+.not-started-overlay {
+  position: fixed; inset: 0;
+  background: rgba(0,0,0,.3);
+  display: flex; align-items: center; justify-content: center;
+  z-index: 50;
+}
+.not-started-card {
+  background: #fff;
+  border-radius: 16px;
+  padding: 24px 32px;
+  max-width: 280px;
+  text-align: center;
+  box-shadow: 0 20px 25px rgba(0,0,0,.1);
+}
+.icon-wrap {
+  width: 40px; height: 40px;
+  border-radius: 50%;
+  background: #f3f4f6;
+  color: #9ca3af;
+  display: flex; align-items: center; justify-content: center;
+  margin: 0 auto 12px;
+}
+.name {
+  font-size: 14px; font-weight: 500; color: #111827;
+  margin: 0 0 4px;
+}
+.msg {
+  font-size: 12px; color: #6b7280;
+  margin: 0 0 20px;
+}
+.ack-btn {
+  width: 100%;
+  padding: 8px 0;
+  font-size: 14px; font-weight: 500;
+  color: #374151;
+  background: #f3f4f6;
+  border: none;
+  border-radius: 8px;
+  cursor: pointer;
+  transition: background .15s;
+  &:hover { background: #e5e7eb; }
+}
+</style>