| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768 |
- <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>
|