From 865ba9f41f07474de0783b90a27320e347189f9e Mon Sep 17 00:00:00 2001 From: Ycc Date: Mon, 10 Nov 2025 16:08:25 +0800 Subject: [PATCH 1/3] =?UTF-8?q?=E4=BF=AE=E6=94=B9=E5=9C=B0=E5=9D=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/views/feedback/CustomerDetail.jsx | 2 +- src/views/feedback/Detail.jsx | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/src/views/feedback/CustomerDetail.jsx b/src/views/feedback/CustomerDetail.jsx index bd83b4a..5afc15b 100644 --- a/src/views/feedback/CustomerDetail.jsx +++ b/src/views/feedback/CustomerDetail.jsx @@ -54,7 +54,7 @@ function Detail() { try { const { vpiGriSn, vpiVeiSn } = extractVpiSn(file[0].key); console.log(parseInt(vpiGriSn),parseInt(vpiVeiSn),file.length); - await fetch(`http://202.103.69.110:8007/multimodal/overseas_image_records`, { + await fetch(config.HT_HOST+`/ht3-multimodal/multimodal/overseas_image_records`, { method: "POST", headers: { "Content-Type": "application/json", diff --git a/src/views/feedback/Detail.jsx b/src/views/feedback/Detail.jsx index 0a74556..f972a77 100644 --- a/src/views/feedback/Detail.jsx +++ b/src/views/feedback/Detail.jsx @@ -55,7 +55,7 @@ function Detail() { try { const { vpiGriSn, vpiVeiSn } = extractVpiSn(file[0].key); console.log(parseInt(vpiGriSn),parseInt(vpiVeiSn),file.length); - await fetch(`http://202.103.69.110:8007/multimodal/overseas_image_records`, { + await fetch(config.HT_HOST+`/ht3-multimodal/multimodal/overseas_image_records`, { method: "POST", headers: { "Content-Type": "application/json", From 3d1c7efaef4184e1511a251890cd5e6f7975bd3f Mon Sep 17 00:00:00 2001 From: ybc <2483488988@qq.com> Date: Mon, 10 Nov 2025 16:08:56 +0800 Subject: [PATCH 2/3] =?UTF-8?q?=E5=A2=9E=E5=8A=A0=E6=B5=B7=E5=A4=96?= =?UTF-8?q?=E5=B9=B3=E5=8F=B0=E4=B8=8A=E4=BC=A0=E5=9B=BE=E7=89=87=E5=9B=9E?= =?UTF-8?q?=E8=B0=83?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/components/ImageUploader.jsx | 4 ++-- src/stores/Feedback.js | 21 +++++++++++++++++ src/views/feedback/CustomerDetail.jsx | 34 +++++---------------------- src/views/feedback/Detail.jsx | 34 +++++---------------------- 4 files changed, 35 insertions(+), 58 deletions(-) diff --git a/src/components/ImageUploader.jsx b/src/components/ImageUploader.jsx index bdadf73..7b6e840 100644 --- a/src/components/ImageUploader.jsx +++ b/src/components/ImageUploader.jsx @@ -121,8 +121,8 @@ export const ImageUploader = props => { const newImages = fileList.filter(item => item.encrypt_key !== file.encrypt_key); if (props.onChange) { props.onChange(newImages); - props.save_database(newImages); } + props.handleSaveDatabase(newImages); setFileList(newImages); //console.log("删除成功"); } else { @@ -143,8 +143,8 @@ export const ImageUploader = props => { getImageList(key, false, ignore_case).then(newImages => { if (props.onChange) { props.onChange(newImages); - props.save_database(newImages); } + props.handleSaveDatabase(newImages); setFileList(prevList => { // 找到当前正在上传的文件并移除 const index = prevList.findIndex(item => item.status === "uploading"); diff --git a/src/stores/Feedback.js b/src/stores/Feedback.js index 837b106..bbee957 100644 --- a/src/stores/Feedback.js +++ b/src/stores/Feedback.js @@ -8,6 +8,27 @@ import { devtools } from 'zustand/middleware'; const { HT_HOST } = config; +/*保存上传图片信息到数据库 + GRI_SN 团SN + travelAgencyId 供应商SN + */ +export const save_database = async (GRI_SN, travelAgencyId, file) => { +try { + await fetch(`http://202.103.70.124:8007/multimodal/overseas_image_records`, { + method: "POST", + headers: { + "Content-Type": "application/json", + }, + body: JSON.stringify({ + VPI_GRI_SN: parseInt(GRI_SN), + VPI_VEI_SN: parseInt(travelAgencyId), + VPI_PicNum: file.length + }), + }); + } catch (error) { + console.error("保存数据库失败:", error); + } +} /* 查询反馈表信息 GRI_SN 团SN VEI_SN 供应商SN diff --git a/src/views/feedback/CustomerDetail.jsx b/src/views/feedback/CustomerDetail.jsx index bd83b4a..9271648 100644 --- a/src/views/feedback/CustomerDetail.jsx +++ b/src/views/feedback/CustomerDetail.jsx @@ -3,7 +3,7 @@ import { useEffect, useState } from 'react'; import { Row, Col, Space, Button, Divider, Form, Typography, Rate, Radio, Upload, Input, App, Card } from 'antd'; import { PlusOutlined } from '@ant-design/icons'; import * as config from '@/config'; -import { getFeedbackDetail, getCustomerFeedbackDetail, getFeedbackImages, getFeedbackInfo, removeFeedbackImages, postFeedbackInfo } from '@/stores/Feedback'; +import { save_database,getFeedbackDetail, getCustomerFeedbackDetail, getFeedbackImages, getFeedbackInfo, removeFeedbackImages, postFeedbackInfo } from '@/stores/Feedback'; import BackBtn from '@/components/BackBtn'; import { usingStorage } from '@/hooks/usingStorage'; import {ImageUploader} from '@/components/ImageUploader'; @@ -43,32 +43,6 @@ function Detail() { }); }, [GRI_SN]); - const extractVpiSn = (filePath) => { - // 提取 VPI_GRI_SN: 第一个/和-之间的数字 - const vpiGriSn = filePath.match(/\/(\d+)-/)[1]; - // 提取 VPI_VEI_SN: travel-agency-后面的数字 - const vpiVeiSn = filePath.match(/travel-agency-(\d+)/)[1]; - return { vpiGriSn, vpiVeiSn }; - } - const save_database = async (file) => { - try { - const { vpiGriSn, vpiVeiSn } = extractVpiSn(file[0].key); - console.log(parseInt(vpiGriSn),parseInt(vpiVeiSn),file.length); - await fetch(`http://202.103.69.110:8007/multimodal/overseas_image_records`, { - method: "POST", - headers: { - "Content-Type": "application/json", - }, - body: JSON.stringify({ - VPI_GRI_SN: parseInt(vpiGriSn), - VPI_VEI_SN: parseInt(vpiVeiSn), - VPI_PicNum: file.length - }), - }); - } catch (error) { - console.error("保存数据库失败:", error); - } - } const HWO_Guide = feedbackRate && feedbackRate.HWO_Guide ? feedbackRate.HWO_Guide : []; const HWO_Driver = feedbackRate && feedbackRate.HWO_Driver ? feedbackRate.HWO_Driver : []; @@ -95,6 +69,10 @@ function Detail() { return removeFeedbackImages(info.url); }; + const handleSaveDatabase = (fileList) => { + save_database(GRI_SN, travelAgencyId, fileList); + }; + const onFinish = (values) => { // console.log("Success:", values); if (values) { @@ -209,7 +187,7 @@ function Detail() { onRemove={handRemove}> - + { - // 提取 VPI_GRI_SN: 第一个/和-之间的数字 - const vpiGriSn = filePath.match(/\/(\d+)-/)[1]; - // 提取 VPI_VEI_SN: travel-agency-后面的数字 - const vpiVeiSn = filePath.match(/travel-agency-(\d+)/)[1]; - return { vpiGriSn, vpiVeiSn }; - } - const save_database = async (file) => { - try { - const { vpiGriSn, vpiVeiSn } = extractVpiSn(file[0].key); - console.log(parseInt(vpiGriSn),parseInt(vpiVeiSn),file.length); - await fetch(`http://202.103.69.110:8007/multimodal/overseas_image_records`, { - method: "POST", - headers: { - "Content-Type": "application/json", - }, - body: JSON.stringify({ - VPI_GRI_SN: parseInt(vpiGriSn), - VPI_VEI_SN: parseInt(vpiVeiSn), - VPI_PicNum: file.length - }), - }); - } catch (error) { - console.error("保存数据库失败:", error); - } - } const HWO_Guide = feedbackRate && feedbackRate.HWO_Guide ? feedbackRate.HWO_Guide : 0; const HWO_Driver = feedbackRate && feedbackRate.HWO_Driver ? feedbackRate.HWO_Driver : 0; @@ -97,6 +71,10 @@ function Detail() { return removeFeedbackImages(info.url); }; + const handleSaveDatabase = (fileList) => { + save_database(GRI_SN, travelAgencyId, fileList); + }; + const onFinish = values => { // console.log("Success:", values); if (values) { @@ -209,7 +187,7 @@ function Detail() { onRemove={handRemove}> - + Date: Mon, 10 Nov 2025 16:20:11 +0800 Subject: [PATCH 3/3] =?UTF-8?q?=E4=BF=AE=E6=94=B9=E6=8E=A5=E5=8F=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/stores/Feedback.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/stores/Feedback.js b/src/stores/Feedback.js index bbee957..943c787 100644 --- a/src/stores/Feedback.js +++ b/src/stores/Feedback.js @@ -14,7 +14,7 @@ const { HT_HOST } = config; */ export const save_database = async (GRI_SN, travelAgencyId, file) => { try { - await fetch(`http://202.103.70.124:8007/multimodal/overseas_image_records`, { + await fetch(config.HT_HOST+`/ht3-multimodal/multimodal/overseas_image_records`, { method: "POST", headers: { "Content-Type": "application/json",