From 38e39c50dcca12534c4efe2b49355a97c396b507 Mon Sep 17 00:00:00 2001
From: shinnosuke <tantao@1hoper.com>
Date: 星期六, 10 十月 2026 11:44:05 +0800
Subject: [PATCH] 更新....

---
 talent-card-admin/src/views/TalentDetailView.vue |   19 ++++++++++++++++---
 1 files changed, 16 insertions(+), 3 deletions(-)

diff --git a/talent-card-admin/src/views/TalentDetailView.vue b/talent-card-admin/src/views/TalentDetailView.vue
index 1699298..8cad00d 100644
--- a/talent-card-admin/src/views/TalentDetailView.vue
+++ b/talent-card-admin/src/views/TalentDetailView.vue
@@ -1,6 +1,6 @@
 <script setup lang="ts">
 import { computed, onMounted, ref } from 'vue'
-import { useRoute } from 'vue-router'
+import { useRoute, useRouter } from 'vue-router'
 import { ElMessage } from 'element-plus'
 import type { FormInstance, FormRules } from 'element-plus'
 import {
@@ -15,6 +15,7 @@
 import type { AdminStaff, Talent, TalentCard } from '../types/admin'
 
 const route = useRoute()
+const router = useRouter()
 const loading = ref(false)
 const talent = ref<Talent>()
 const cards = ref<TalentCard[]>([])
@@ -45,7 +46,18 @@
 }
 const talentLevels = ['卓越人才卡', '杰出人才卡', '菁英人才卡', '普通游客']
 
-const primaryCard = computed(() => cards.value[0])
+const personalCard = computed(() => cards.value.find((card) => String(card.cardType || '').toUpperCase() === 'PERSONAL'))
+const primaryCard = computed(() => personalCard.value || cards.value[0])
+
+/**
+ * 游客:还没有个人人才卡。后端改等级要求「先有有效主卡」,所以这类持卡人只能走
+ * 「升级人才」:补认证信息 + 选等级 + 发卡;已经有卡的仍然走原来的「修改人才等级」。
+ */
+const isVisitor = computed(() => !personalCard.value)
+
+function openUpgrade() {
+  router.push(`/talents/${String(route.params.id)}/upgrade`)
+}
 
 function genderText(gender?: number) {
   if (gender === 2) return '女'
@@ -246,7 +258,8 @@
           </div>
           <strong class="card-number">卡片编号 {{ cardNo() }}</strong>
         </div>
-        <el-button type="primary" @click="openLevelDialog">修改人才等级</el-button>
+        <el-button v-if="isVisitor" type="primary" @click="openUpgrade">升级人才</el-button>
+        <el-button v-else type="primary" @click="openLevelDialog">修改人才等级</el-button>
       </div>
     </section>
 

--
Gitblit v1.7.1