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;