From a43f0fd9e9285149e9bff3aceebfe8604b4ea78d Mon Sep 17 00:00:00 2001 From: Default User Date: Fri, 9 Jan 2026 14:39:22 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E5=A4=8D=E4=B8=8A=E6=9E=B6=E6=8C=89?= =?UTF-8?q?=E9=92=AE=E6=A0=B7=E5=BC=8F=EF=BC=8C=E4=BD=BF=E5=85=B6=E4=B8=8E?= =?UTF-8?q?=E5=8F=96=E6=B6=88=E6=8C=89=E9=92=AE=E5=A4=A7=E5=B0=8F=E4=B8=80?= =?UTF-8?q?=E8=87=B4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Reject.js | 68 +++++++++++++++++++++++++++++++++++++++++------------ supply.html | 6 ++--- 2 files changed, 56 insertions(+), 18 deletions(-) diff --git a/Reject.js b/Reject.js index 5eb59d9..3c255af 100644 --- a/Reject.js +++ b/Reject.js @@ -1349,11 +1349,14 @@ app.put('/api/supplies/:id', async (req, res) => { // 编辑货源API - /api/supplies/:id/edit console.log('正在注册编辑货源API路由: /api/supplies/:id/edit'); app.put('/api/supplies/:id/edit', async (req, res) => { - console.log('收到编辑货源请求:', req.params.id, req.body); + console.log('收到编辑货源请求:', req.params.id); + console.log('请求体中的category:', req.body.category); + console.log('请求体中的sourceType:', req.body.sourceType); + console.log('请求体中的freshness:', req.body.freshness); try { const connection = await pool.getConnection(); const productId = req.params.id; - const { productName, price, costprice, quantity, grossWeight, yolk, specification, supplyStatus, description, region, contactId, producting, imageUrls, autoOfflineTime } = req.body; + const { productName, price, costprice, quantity, grossWeight, yolk, specification, supplyStatus, description, region, contactId, producting, imageUrls, autoOfflineTime, category, sourceType, freshness, autoOfflineHours } = req.body; // 开始事务 await connection.beginTransaction(); @@ -1397,7 +1400,7 @@ app.put('/api/supplies/:id/edit', async (req, res) => { // 处理媒体文件上传(图片和视频) let uploadedImageUrls = []; - if (Array.isArray(imageUrls) && imageUrls.length > 0) { + if (imageUrls && Array.isArray(imageUrls) && imageUrls.length > 0) { console.log('开始处理编辑媒体文件上传,共', imageUrls.length, '个文件'); for (const mediaUrl of imageUrls) { @@ -1439,14 +1442,6 @@ app.put('/api/supplies/:id/edit', async (req, res) => { console.log('媒体文件处理完成,成功上传', uploadedImageUrls.length, '个文件'); } - // 如果有新上传的图片,更新imageUrls字段 - if (uploadedImageUrls.length > 0) { - await connection.query( - 'UPDATE products SET imageUrls = ? WHERE id = ?', - [JSON.stringify(uploadedImageUrls), productId] - ); - } - // 处理数量:保存所有数量值,与规格保持一致 let quantityValue = quantity; // 直接保存前端提交的数量字符串 // 如果是数字,转换为字符串 @@ -1457,25 +1452,65 @@ app.put('/api/supplies/:id/edit', async (req, res) => { quantityValue = quantity; } + // 只有当有新上传的图片时,才更新imageUrls,否则保留原有值 + let imageUrlsToUpdate = null; + if (uploadedImageUrls.length > 0) { + imageUrlsToUpdate = JSON.stringify(uploadedImageUrls); + } else { + // 如果没有新上传的图片,查询原有图片URL + const [existingProduct] = await connection.query( + 'SELECT imageUrls FROM products WHERE id = ?', + [productId] + ); + imageUrlsToUpdate = existingProduct[0].imageUrls; + } + + // 打印用于调试的更新参数 + console.log('更新参数调试:'); + console.log('productName:', productName); + console.log('price:', (price || '').toString()); + console.log('costprice:', costprice || ''); + console.log('quantityValue:', quantityValue); + console.log('grossWeight:', grossWeight); + console.log('yolk:', yolk); + console.log('specification:', specification); + console.log('producting:', producting); + console.log('supplyStatus:', supplyStatus); + console.log('description:', description); + console.log('region:', region); + console.log('category:', category); + console.log('sourceType:', sourceType); + console.log('freshness:', freshness); + console.log('productContact:', productContact); + console.log('contactPhone:', contactPhone); + console.log('imageUrlsToUpdate:', imageUrlsToUpdate); + console.log('autoOfflineTime:', autoOfflineTime || null); + console.log('autoOfflineHours:', autoOfflineHours || 24); + console.log('productId:', productId); + // 更新货源信息 const updateQuery = ` UPDATE products SET productName = ?, price = ?, costprice = ?, quantity = ?, grossWeight = ?, yolk = ?, specification = ?, producting = ?, supplyStatus = ?, description = ?, region = ?, + category = ?, sourceType = ?, freshness = ?, product_contact = ?, contact_phone = ?, imageUrls = ?, autoOfflineTime = ?, autoOfflineHours = ?, updated_at = ? WHERE id = ? `; - await connection.query(updateQuery, [ + const [result] = await connection.query(updateQuery, [ productName, (price || '').toString(), costprice || '', quantityValue, grossWeight, yolk, specification, producting, supplyStatus, description, region, - productContact, contactPhone, JSON.stringify(uploadedImageUrls), + category, sourceType, freshness, + productContact, contactPhone, imageUrlsToUpdate, autoOfflineTime || null, // 自动下架时间 - req.body.autoOfflineHours || 24, // 默认24小时 + autoOfflineHours || 24, // 默认24小时 new Date(), // 更新updated_at字段 productId ]); + + console.log('更新结果:', result); // 提交事务 await connection.commit(); @@ -1495,10 +1530,13 @@ app.put('/api/supplies/:id/edit', async (req, res) => { grossWeight, yolk, specification, + category, + sourceType, + freshness, + producting, supplyStatus, description, region, - producting, imageUrls: uploadedImageUrls.length > 0 ? uploadedImageUrls : imageUrls } }); diff --git a/supply.html b/supply.html index fbb0bd5..815f37d 100644 --- a/supply.html +++ b/supply.html @@ -6838,17 +6838,17 @@ if (isLocked) { // 锁定状态:按钮变灰色,不可点击 saveButton.textContent = publishMode ? '已锁定' : '已锁定'; - saveButton.className = 'btn-disabled'; + saveButton.className = 'modal-btn btn-disabled'; saveButton.onclick = null; } else { // 未锁定状态:正常功能 if (publishMode) { saveButton.textContent = '上架'; - saveButton.className = 'btn-primary'; + saveButton.className = 'modal-btn modal-btn-primary'; saveButton.onclick = publishSupplyAfterEdit; } else { saveButton.textContent = '保存'; - saveButton.className = 'btn-primary'; + saveButton.className = 'modal-btn modal-btn-primary'; saveButton.onclick = saveEditSupply; } }