diff --git a/backend/routes/tickets.js b/backend/routes/tickets.js index 93b37d2..c686931 100644 --- a/backend/routes/tickets.js +++ b/backend/routes/tickets.js @@ -277,6 +277,17 @@ router.post('/:id/response', authenticate, async (req, res) => { res.status(201).json({ message: '回复成功' }); }); +router.post('/:id/anon-response', async (req, res) => { + const { content } = req.body; + if (!content) return res.status(400).json({ error: '内容不能为空' }); + const cookieToken = req.headers.cookie?.split('; ').find(c => c.startsWith('tracking_token='))?.split('=')[1]; + if (!cookieToken) return res.status(403).json({ error: '无权操作,请先提交工单获取追踪标识' }); + const t = await getRow('SELECT * FROM tickets WHERE id = ? AND tracking_token = ?', [req.params.id, cookieToken]); + if (!t) return res.status(404).json({ error: '工单不存在或无权操作' }); + await query("INSERT INTO responses(ticket_id, content, is_staff) VALUES (?,?,0)", [req.params.id, content]); + res.status(201).json({ message: '补充成功' }); +}); + async function notifyStatusChange(ticket, newStatus) { if (ticket.user_id) { await sendEmailForTicket(ticket, 'ticket_updated', { ticket_status: SL[newStatus]||newStatus, ticket_status_color: SC[newStatus]||'#6b7280' }); diff --git a/public/js/pages/home.js b/public/js/pages/home.js index 07f2854..f0e6c43 100644 --- a/public/js/pages/home.js +++ b/public/js/pages/home.js @@ -46,7 +46,15 @@ const HomePage = { API.get(`/tickets/tracking?token=${token}`).then(tickets => { const t = tickets.find(x=>x.id===id); if(!t) return; - document.getElementById('tkd').innerHTML = `
如需回复请注册账号
`; + document.getElementById('tkd').innerHTML = `