From 667e62e97ea3ec68b6a31a7ca79bb78314bacf66 Mon Sep 17 00:00:00 2001 From: Austin Date: Sat, 10 Oct 2026 10:08:22 +0800 Subject: [PATCH] =?UTF-8?q?feat(cultivate):=20=E6=B7=BB=E5=8A=A0=E8=8A=B1?= =?UTF-8?q?=E6=9C=B5=E9=98=B6=E6=AE=B5=E4=B8=AD=E6=96=87=E6=A0=87=E9=A2=98?= =?UTF-8?q?=E5=B9=B6=E4=BC=98=E5=8C=96=E7=BC=96=E8=BE=91=E9=A1=B5=E5=B1=95?= =?UTF-8?q?=E7=A4=BA?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 新增阶段中文名映射及转换函数,用于显示更友好的阶段名称 在编辑页中应用阶段标题,同时调整下一阶段输入框为只读展示 优化弹窗宽度样式,适配不同屏幕尺寸 --- web/src/views/cultivate/flowers/edit.vue | 18 +++++++++++++----- web/src/views/cultivate/flowers/model.ts | 9 ++++++++- 2 files changed, 21 insertions(+), 6 deletions(-) diff --git a/web/src/views/cultivate/flowers/edit.vue b/web/src/views/cultivate/flowers/edit.vue index 8e07473..45b33bf 100644 --- a/web/src/views/cultivate/flowers/edit.vue +++ b/web/src/views/cultivate/flowers/edit.vue @@ -13,9 +13,9 @@ 成长阶段 - - - + + + @@ -36,15 +36,23 @@ import { ref } from 'vue'; import { useMessage } from 'naive-ui'; import { Edit, View } from '@/api/cultivate/flowers'; -import { actionOptions, newState, rules, State, statusOptions, validateStageRules } from './model'; +import { actionOptions, newState, rules, stageTitle, State, statusOptions, validateStageRules } from './model'; const emit=defineEmits(['reloadTable']);const message=useMessage();const showModal=ref(false);const loading=ref(false);const submitting=ref(false);const formRef=ref();const formValue=ref(newState(null)); function openModal(state:State|null){showModal.value=true;formValue.value=newState(null);if(!state?.id)return;loading.value=true;View({id:state.id}).then((res)=>formValue.value=newState(res)).finally(()=>loading.value=false)} function submit(){formRef.value?.validate((errors)=>{if(errors){message.error('请检查配置内容');return}const stageError=validateStageRules(formValue.value.stageRules);if(stageError){message.error(stageError);return}submitting.value=true;Edit(formValue.value).then(()=>{message.success('配置已保存');showModal.value=false;emit('reloadTable')}).finally(()=>submitting.value=false)})} defineExpose({openModal}); + + diff --git a/web/src/views/cultivate/flowers/model.ts b/web/src/views/cultivate/flowers/model.ts index acbfe07..6be6e41 100644 --- a/web/src/views/cultivate/flowers/model.ts +++ b/web/src/views/cultivate/flowers/model.ts @@ -52,11 +52,18 @@ function stageRule(stage: string, nextStage: string, requiredPoints: number, wat return { stage, nextStage, requiredPoints, waterPoints, fertilizePoints, waitHours, allowedActions, imageFileId: '', animationFileId: '', progressTextTemplate: '', completionText: '', sortNo }; } +// 阶段枚举中文名(口径:cultivate_server 对接文档 0.4.1 花朵状态) +export const stageLabels: Record = { seed: '种子期', sprout: '发芽期', bud: '花苞期', bloom: '盛花期', removed: '已移除' }; +export function stageTitle(stage: string): string { + if (!stage) return ''; + return stageLabels[stage] ? `${stageLabels[stage]}(${stage})` : stage; +} + // 非 bloom 阶段升级阈值与等待时长不能同时为 0(与 cultivate_server 校验一致) export function validateStageRules(stageRules: StageRule[]): string | null { for (const rule of stageRules) { if (rule.stage !== 'bloom' && rule.requiredPoints === 0 && rule.waitHours === 0) { - return `阶段 ${rule.stage} 的升级成长值与等待时长不能同时为 0`; + return `阶段 ${stageTitle(rule.stage)} 的升级成长值与等待时长不能同时为 0`; } } return null;