备份:修复前完整项目快照 2026-04-19
This commit is contained in:
@@ -0,0 +1,55 @@
|
||||
const express = require('express');
|
||||
const db = require('../db');
|
||||
const { authenticate, requireAdmin } = require('../middleware/auth');
|
||||
|
||||
const router = express.Router();
|
||||
|
||||
router.get('/', async (req, res) => {
|
||||
try {
|
||||
const { customer_id } = req.query;
|
||||
let query = `
|
||||
SELECT b.*,
|
||||
c.name as customer_name,
|
||||
u.name as manager_name
|
||||
FROM budget_projects b
|
||||
LEFT JOIN customers c ON b.customer_id = c.id
|
||||
LEFT JOIN users u ON b.project_manager_id = u.id
|
||||
`;
|
||||
|
||||
const params = [];
|
||||
if (customer_id) {
|
||||
query += ` WHERE b.customer_id = $1`;
|
||||
params.push(customer_id);
|
||||
}
|
||||
|
||||
query += ` ORDER BY b.created_at DESC`;
|
||||
|
||||
const result = await db.query(query, params);
|
||||
|
||||
const projects = result.rows.map(project => {
|
||||
try {
|
||||
return {
|
||||
...project,
|
||||
attachments: project.attachments ? JSON.parse(project.attachments) : [],
|
||||
survey_photos: project.survey_photos ? JSON.parse(project.survey_photos) : [],
|
||||
quotations: []
|
||||
};
|
||||
} catch (error) {
|
||||
console.error('解析项目数据失败:', error);
|
||||
return {
|
||||
...project,
|
||||
attachments: [],
|
||||
survey_photos: [],
|
||||
quotations: []
|
||||
};
|
||||
}
|
||||
});
|
||||
|
||||
res.json({ success: true, data: projects, count: projects.length });
|
||||
} catch (error) {
|
||||
console.error('获取预算项目失败:', error);
|
||||
res.status(500).json({ success: false, message: error.message });
|
||||
}
|
||||
});
|
||||
|
||||
module.exports = router;
|
||||
Reference in New Issue
Block a user