From d911d434830d06b77e8530b77d59ad535fc97d23 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E7=A7=A6=E6=B1=89?= <5725748+qin_and_han_dynasties@user.noreply.gitee.com> Date: Sat, 25 Apr 2026 16:36:25 +0800 Subject: [PATCH] =?UTF-8?q?=E5=8F=AF=E4=BB=A5=E9=85=8D=E7=BD=AE=E4=BB=BB?= =?UTF-8?q?=E5=8A=A1=E7=9A=84=E6=9D=80=E6=80=AA=E7=B1=BB=E5=9E=8B=EF=BC=8C?= =?UTF-8?q?=E5=B9=B6=E4=B8=94=E6=8E=A5=E5=8F=96=E4=BB=BB=E5=8A=A1=E7=9A=84?= =?UTF-8?q?=E6=97=B6=E5=80=99=E6=98=BE=E7=A4=BA=E4=BB=BB=E5=8A=A1=E7=9A=84?= =?UTF-8?q?=E9=9C=80=E6=B1=82?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Frontend/src/views/admin/MissionView.vue | 13 ++++++++----- Build_God_Game/src/views/DailyMissionView.vue | 17 +++++++++++++---- 2 files changed, 21 insertions(+), 9 deletions(-) diff --git a/Build_God_Admin_Frontend/Frontend/src/views/admin/MissionView.vue b/Build_God_Admin_Frontend/Frontend/src/views/admin/MissionView.vue index c8cca2c..64784fb 100644 --- a/Build_God_Admin_Frontend/Frontend/src/views/admin/MissionView.vue +++ b/Build_God_Admin_Frontend/Frontend/src/views/admin/MissionView.vue @@ -11,6 +11,7 @@ import { GetPillList } from '@/api/pill' import { ICONS } from '@/constants/theme' import { GetEquipmentTemplateList, type EquipmentTemplate } from '@/api/equipment' import { GetMissionProgresses, CreateMissionProgress, UpdateMissionProgress, DeleteMissionProgress, GetProgressTargetTypes, type MissionProgress } from '@/api/missionProgress' +import { GetMonsterList, type Monster } from '@/api/monster' const missions = ref([]) @@ -213,10 +214,12 @@ const progressTargetTypeChange = async (id: number) => { progressFormData.value.targetItemId = 0 progressFormData.value.targetItemName = '鱼类' } else if (id === 3) { - // KillMonster - no item selection needed - progressSelectData.value = [] - progressFormData.value.targetItemId = 0 - progressFormData.value.targetItemName = '怪物' + // KillMonster - load monster list + const monsters = await GetMonsterList() + const monsterList = Array.isArray(monsters) ? monsters : (monsters.items || []) + progressSelectData.value = monsterList.map(m => ({ id: m.id, name: m.name })) + progressFormData.value.targetItemId = progressSelectData.value.length ? progressSelectData.value[0]!.id : null + if (progressFormData.value.targetItemId) onProgressItemChange(progressFormData.value.targetItemId) } else if (id === 4) { const pills = await GetPillList() progressSelectData.value = (Array.isArray(pills) ? pills : []).map(p => ({ id: p.id, name: p.name })) @@ -705,7 +708,7 @@ const fetchEquipments = async (): Promise => { - + diff --git a/Build_God_Game/src/views/DailyMissionView.vue b/Build_God_Game/src/views/DailyMissionView.vue index 014821e..d0f617d 100644 --- a/Build_God_Game/src/views/DailyMissionView.vue +++ b/Build_God_Game/src/views/DailyMissionView.vue @@ -140,9 +140,18 @@ const getRewardIcon = (type: RewardType) => { const getProgressText = (mission: DailyMission) => { if (!mission.progresses || mission.progresses.length === 0) return '' const progress = mission.progresses[0] - const targetType = progress.targetType === ProgressTargetType.CollectItem ? '收集' : '狩猎' + const targetTypeLabel = progress.targetType === ProgressTargetType.CollectItem ? '收集' + : progress.targetType === ProgressTargetType.KillMonster ? '击杀' + : progress.targetType === ProgressTargetType.Fish ? '钓鱼' + : progress.targetType === ProgressTargetType.ConsumeItem ? '消耗' + : progress.targetType === ProgressTargetType.Custom ? '挂机' + : '完成' const targetName = progress.targetItemName || (progress.targetType === ProgressTargetType.KillMonster ? '怪物' : '物品') - return `${targetType} ${progress.currentCount}/${progress.targetCount} ${targetName}` + // Pending状态显示目标数量,进行中/已完成显示当前进度 + const displayCount = mission.status === DailyMissionStatus.Pending + ? `0/${progress.targetCount}` + : `${progress.currentCount}/${progress.targetCount}` + return `${targetTypeLabel} ${displayCount} ${targetName}` } const getMissionIcon = (type: MissionType, difficulty: MissionDifficulty) => { @@ -189,9 +198,9 @@ const MissionCardContent = defineComponent({ h('div', { class: 'card-difficulty' }, [ h('span', { class: ['difficulty-badge', getDifficultyClass(props.mission.difficulty)] }, getDifficultyLabel(props.mission.difficulty)), ]), - props.mission.progresses && props.mission.progresses.length > 0 && props.mission.status !== DailyMissionStatus.Pending + props.mission.progresses && props.mission.progresses.length > 0 ? h('div', { class: 'card-progress' }, [ - h('span', { class: 'progress-label' }, '进度:'), + h('span', { class: 'progress-label' }, '目标:'), h('span', { class: 'progress-value' }, getProgressText(props.mission)), ]) : null,