import { useEffect, useState } from 'react'; import { getOperatorRemarkInfo, saveOperatorRemarkInfo } from '../../api'; interface NoteModalProps { noteText: string; onNoteChange: (v: string) => void; onClose: () => void; } export const NoteModal = ({ noteText, onNoteChange, onClose }: NoteModalProps) => { const [loading, setLoading] = useState(false); const [saving, setSaving] = useState(false); const [message, setMessage] = useState(null); const operatorId = typeof window !== 'undefined' ? localStorage.getItem('operatorId') || '' : ''; const operatorName = typeof window !== 'undefined' ? localStorage.getItem('operatorName') || '未知' : '未知'; // 初始化拉取备注 useEffect(() => { if (!operatorId) return; setLoading(true); setMessage(null); getOperatorRemarkInfo({ operator_id: operatorId }) .then((res) => { if (res.Status === 200 && res.Data?.remark_content) { onNoteChange(res.Data.remark_content); } else if (res.Message) { setMessage(res.Message); } }) .catch((err) => { console.error('获取备注失败', err); setMessage('获取备注失败,请稍后重试'); }) .finally(() => setLoading(false)); }, [operatorId, onNoteChange]); const handleSave = async () => { if (!operatorId || !operatorName) { setMessage('缺少操作员信息,无法保存'); return; } if (!noteText.trim()) { setMessage('备注内容不能为空'); return; } setSaving(true); setMessage(null); try { const res = await saveOperatorRemarkInfo({ operator_id: operatorId, operator_name: operatorName, remark_content: noteText.trim(), }); if (res.Status === 200) { setMessage('保存成功'); } else { setMessage(res.Message || '保存失败'); } } catch (err) { console.error('保存备注失败', err); setMessage('保存失败,请稍后重试'); } finally { setSaving(false); } }; return (
备注窗
体检客户服务备注(仅内部可见)