@@ -94,6 +76,9 @@ const username = ref('')
const password = ref('')
const confirmPassword = ref('')
+// 定义 emit
+const emit = defineEmits(['login'])
+
// 错误信息
const usernameError = ref('')
const passwordError = ref('')
@@ -144,14 +129,14 @@ const validateConfirmPassword = () => {
const isVaptchaVerified = ref(false)
// 计算表单是否有效
const isFormValid = computed(() => {
- return !usernameError.value &&
- !passwordError.value &&
- !confirmPasswordError.value &&
- username.value &&
- password.value &&
- confirmPassword.value &&
- VAPTCHAObj.value && // 确保人机验证已初始化
- isVaptchaVerified.value // 确保人机验证已通过
+ return !usernameError.value &&
+ !passwordError.value &&
+ !confirmPasswordError.value &&
+ username.value &&
+ password.value &&
+ confirmPassword.value &&
+ VAPTCHAObj.value && // 确保人机验证已初始化
+ isVaptchaVerified.value // 确保人机验证已通过
})
@@ -189,54 +174,44 @@ onMounted(() => {
})
const handleRegister = async () => {
- try {
- // 验证表单
- if (!validateUsername() || !validatePassword() || !validateConfirmPassword()) {
- return
- }
- // 验证人机验证
- if (!isVaptchaVerified.value || !VAPTCHAObj.value) {
- alert('请完成人机验证')
- return
- }
-
- // 获取验证token
- try {
- const serverToken = await VAPTCHAObj.value.getServerToken()
- console.log('获取到的 serverToken:', serverToken)
-
- if (!serverToken || !serverToken.token || !serverToken.server) {
- alert('获取验证token失败,请重新验证')
- return
- }
-
- // 构造注册请求参数
- const registerData = {
- qq_code: username.value,
- password: password.value,
- server: serverToken.server,
- token: serverToken.token
- }
- console.log('注册请求参数:', registerData)
-
- // 发送注册请求
- await userRegister(
- registerData.qq_code,
- registerData.password,
- registerData.server,
- registerData.token
- )
- alert('注册成功')
- // 切换到登录模块
- emit('login')
- } catch (tokenError) {
- console.error('获取验证token失败:', tokenError)
- alert('获取验证token失败,请重新验证')
- }
- } catch (error) {
- console.error('注册失败:', error)
- alert(error.message || '注册失败')
+ // 验证表单
+ if (!validateUsername() || !validatePassword() || !validateConfirmPassword()) {
+ return
}
+ // 验证人机验证
+ if (!isVaptchaVerified.value || !VAPTCHAObj.value) {
+ alert('请完成人机验证')
+ return
+ }
+
+ // 获取验证token
+ const serverToken = await VAPTCHAObj.value.getServerToken()
+ console.log('获取到的 serverToken:', serverToken)
+
+ if (!serverToken || !serverToken.token || !serverToken.server) {
+ alert('获取验证token失败,请重新验证')
+ return
+ }
+
+ // 构造注册请求参数
+ const registerData = {
+ qq_code: username.value,
+ password: password.value,
+ server: serverToken.server,
+ token: serverToken.token
+ }
+ console.log('注册请求参数:', registerData)
+
+ // 发送注册请求
+ await userRegister(
+ registerData.qq_code,
+ registerData.password,
+ registerData.server,
+ registerData.token
+ )
+ alert('注册成功')
+ // 切换到登录模块
+ emit('login')
}
diff --git a/src/router/index.js b/src/router/index.js
index c5a3d63..55d5b8b 100644
--- a/src/router/index.js
+++ b/src/router/index.js
@@ -16,7 +16,8 @@ const routes = [
{
path: 'demands',
name: 'DemandList',
- component: () => import('@/views/index/DemandList.vue')
+ component: () => import('@/views/index/DemandList.vue'),
+ meta: { requiresAuth: true }
},
{
path: 'maps',
@@ -36,17 +37,32 @@ const routes = [
{
path: 'weapon-match',
name: 'WeaponMatch',
- component: () => import('@/views/index/WeaponMatch.vue')
+ component: () => import('@/views/index/WeaponMatch.vue'),
+ meta: { requiresAuth: true }
},
{
path: 'competition',
name: 'Competition',
- component: () => import('@/views/index/Competition.vue')
+ component: () => import('@/views/index/Competition.vue'),
+ meta: { requiresAuth: true }
},
{
- path: 'competition/:id',
+ path: 'competition/add',
+ name: 'AddCompetition',
+ component: () => import('@/views/index/AddContestant.vue'),
+ meta: { requiresAuth: true }
+ },
+ {
+ path: 'competition/detail',
name: 'CompetitionDetail',
- component: () => import('@/views/index/CompetitionDetail.vue')
+ component: () => import('@/views/index/CompetitionDetail.vue'),
+ meta: { requiresAuth: true }
+ },
+ {
+ path: 'competition/signup',
+ name: 'CompetitionSignUp',
+ component: () => import('@/views/index/CompetitionSignUp.vue'),
+ meta: { requiresAuth: true }
}
]
},
diff --git a/src/utils/http.js b/src/utils/http.js
deleted file mode 100644
index e69de29..0000000
diff --git a/src/views/backend/Dashboard.vue b/src/views/backend/Dashboard.vue
index dc4961c..08e0189 100644
--- a/src/views/backend/Dashboard.vue
+++ b/src/views/backend/Dashboard.vue
@@ -1,5 +1,4 @@
-
退出登录
@@ -26,7 +25,7 @@ const handleLogout = () => {
// 清除本地存储的 token
localStorage.removeItem('access_token')
// 跳转到登录页面
- router.push('/backend/login')
+ router.push('/')
}
diff --git a/src/views/index.vue b/src/views/index.vue
index eaced02..fcfa385 100644
--- a/src/views/index.vue
+++ b/src/views/index.vue
@@ -1,5 +1,9 @@
@@ -10,14 +14,14 @@
红色警戒3数据分析中心
最近上传地图
热门下载地图
- Weapon 匹配
- 赛程信息
- 办事大厅
+ Weapon 匹配
+ 赛程信息
+ 办事大厅