import { useParams, useNavigate } from 'react-router-dom'; 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 useAuthStore from '@/stores/Auth'; import { getFeedbackDetail, getCustomerFeedbackDetail, getFeedbackImages, getFeedbackInfo, removeFeedbackImages, postFeedbackInfo } from '@/stores/Feedback'; const { Title, Text, Paragraph } = Typography; function Detail() { const navigate = useNavigate(); const { GRI_SN, RefNo, CII_SN } = useParams(); const [travelAgencyId, token] = useAuthStore((state) => [state.loginUser.travelAgencyId, state.loginUser.token]); const desc = ['none', 'Unacceptable', 'Poor', 'Fair', 'Very Good', 'Excellent']; const { notification } = App.useApp(); const [form] = Form.useForm(); const [feedbackRate, setFeedbackRate] = useState({}); const [feedbackReview, setFeedbackReview] = useState({}); const [feedbackImages, setFeedbackImages] = useState([]); const [feedbackInfo, setFeedbackInfo] = useState({}); useEffect(() => { console.info('Detail.useEffect: ' + GRI_SN); getFeedbackDetail(travelAgencyId, GRI_SN).then((res) => { setFeedbackRate(res.feedbackRate); setFeedbackReview(res.feedbackReview); }); getCustomerFeedbackDetail(travelAgencyId, GRI_SN, CII_SN).then((res) => setFeedbackRate(res)); getFeedbackImages(travelAgencyId, GRI_SN).then((res) => setFeedbackImages(res)); getFeedbackInfo(travelAgencyId, GRI_SN).then((v) => { form.setFieldsValue({ info_content: v.EEF_Content }); setFeedbackInfo(v); }); }, [GRI_SN]); const HWO_Guide = feedbackRate && feedbackRate.HWO_Guide ? feedbackRate.HWO_Guide : []; const HWO_Driver = feedbackRate && feedbackRate.HWO_Driver ? feedbackRate.HWO_Driver : []; const HWO_Activity = feedbackRate && feedbackRate.HWO_Activity ? feedbackRate.HWO_Activity : []; const OtherThoughts = feedbackRate && feedbackRate.OtherThoughts ? feedbackRate.OtherThoughts : ''; const signatureData = feedbackRate && feedbackRate.signatureData ? feedbackRate.signatureData : ''; const PhotoPermission = feedbackRate?.PhotoPermission === 1; const cityName = feedbackRate?.cityName || ''; const ECI_Content = feedbackReview && feedbackReview.ECI_Content ? feedbackReview.ECI_Content : 'None'; const fileList = feedbackImages; const handleChange = (info) => { let newFileList = [...info.fileList]; newFileList = newFileList.map((file) => { if (file.response && file.response.result) { file.url = file.response.result.file_url; } return file; }); setFeedbackImages(newFileList); }; const handRemove = (info) => { return removeFeedbackImages(info.url); }; const onFinish = (values) => { // console.log("Success:", values); if (values) { postFeedbackInfo(feedbackInfo.EEF_VEI_SN, feedbackInfo.EEF_GRI_SN, feedbackInfo.EEF_EOI_SN, values.info_content).then(() => { notification.success({ message: `Notification`, description: 'Submit Successful', placement: 'top', duration: 4, }); }); } }; return ( Post Survey {RefNo} in {cityName} }>
How satisfied were you with your tour guide? {HWO_Guide.map((ele) => ( {desc[ele.rate]} ))} How about the Driver and Car/Van? {HWO_Driver.map((ele) => ( {desc[ele.rate]} ))} General Experience with: {HWO_Activity.map((ele) => ( {desc[ele.rate]} ))} Would you like to give us permission to use the photos taken by the tour guide(s) during your trip which contain your portrait? {PhotoPermission ? ( <> Yes No ) : ( <> Yes No )} Other thoughts you want to share with us: {OtherThoughts} Signature: {signatureData ? customer signature : null}
External Reviews}> {ECI_Content} Feedback from local agent}>
Upload photos
); } export default Detail;