Merge branch 'main' of github.com:hainatravel/GHHub

release
Jimmy Liow 2 years ago
commit 2ef1468c55

@ -19,3 +19,8 @@ antd https://ant-design.antgroup.com/components/upload-cn#uploadfile
Bucket 名称global-highlights-hub Bucket 名称global-highlights-hub
Endpointoss-cn-hongkong.aliyuncs.com Endpointoss-cn-hongkong.aliyuncs.com
global-highlights-hub.oss-cn-hongkong.aliyuncs.com global-highlights-hub.oss-cn-hongkong.aliyuncs.com
反馈表测试链接
http://202.103.68.111:5173/feedback/330948

@ -19,6 +19,7 @@ import ReservationPrint from "@/views/reservation/Print";
import ReservationNameCard from "@/views/reservation/NameCard"; import ReservationNameCard from "@/views/reservation/NameCard";
import FeedbackIndex from "@/views/feedback/Index"; import FeedbackIndex from "@/views/feedback/Index";
import FeedbackDetail from "@/views/feedback/Detail"; import FeedbackDetail from "@/views/feedback/Detail";
import NoticeIndex from "@/views/notice/Index";
configure({ configure({
@ -43,6 +44,7 @@ const router = createBrowserRouter([
{ path: "reservation/:reservationId/name-card", element: <ReservationNameCard />}, { path: "reservation/:reservationId/name-card", element: <ReservationNameCard />},
{ path: "feedback", element: <FeedbackIndex />}, { path: "feedback", element: <FeedbackIndex />},
{ path: "feedback/:GRI_SN", element: <FeedbackDetail />}, { path: "feedback/:GRI_SN", element: <FeedbackDetail />},
{ path: "notice", element: <NoticeIndex />},
] ]
}, },
{ {

@ -10,7 +10,7 @@ class Auth {
login = { login = {
userId: 1, userId: 1,
username: 'Vu Xuan Giang(ANP)', username: 'Vu Xuan Giang(ANP)',
travelAgencyId: 32531 travelAgencyId: 32531 //30008供应商id对应HT的VEI_SN
} }
} }

@ -77,6 +77,7 @@ function App() {
{ key: "/reservation/newest", label: <Link to="/reservation/newest">Reservation</Link> }, { key: "/reservation/newest", label: <Link to="/reservation/newest">Reservation</Link> },
{ key: "/feedback", label: <Link to="/feedback">Feedback</Link> }, { key: "/feedback", label: <Link to="/feedback">Feedback</Link> },
{ key: "/invoice/list", label: <Link to="/invoice/list">Invoice</Link> }, { key: "/invoice/list", label: <Link to="/invoice/list">Invoice</Link> },
{ key: "/notice", label: <Link to="/notice">Notice</Link> },
]} ]}
/> />
</Col> </Col>

@ -12,14 +12,14 @@ import * as config from "@/config";
function Detail() { function Detail() {
const navigate = useNavigate(); const navigate = useNavigate();
const { GRI_SN } = useParams(); const { GRI_SN } = useParams();
const { feedbackStore } = useStore(); const { feedbackStore, authStore } = useStore();
const { feedbackRate, feedbackReview } = feedbackStore; const { feedbackRate, feedbackReview } = feedbackStore;
const [value, setValue] = useState(3); const [value, setValue] = useState(3);
const desc = ["none", "Unacceptable", "Poor", "Fair", "Very Good", "Excellent"]; const desc = ["none", "Unacceptable", "Poor", "Fair", "Very Good", "Excellent"];
useEffect(() => { useEffect(() => {
console.info("Detail.useEffect: " + GRI_SN); console.info("Detail.useEffect: " + GRI_SN);
feedbackStore.getFeedbackDetail(30008, GRI_SN); feedbackStore.getFeedbackDetail(authStore.login.travelAgencyId, GRI_SN);
}, [GRI_SN]); }, [GRI_SN]);
const HWO_Guide = feedbackRate && feedbackRate.HWO_Guide ? feedbackRate.HWO_Guide : 0; const HWO_Guide = feedbackRate && feedbackRate.HWO_Guide ? feedbackRate.HWO_Guide : 0;
@ -29,6 +29,7 @@ function Detail() {
const HWO_Activity = feedbackRate && feedbackRate.HWO_Activity ? feedbackRate.HWO_Activity : 0; const HWO_Activity = feedbackRate && feedbackRate.HWO_Activity ? feedbackRate.HWO_Activity : 0;
const OtherThoughts = feedbackRate && feedbackRate.OtherThoughts ? feedbackRate.OtherThoughts : ""; const OtherThoughts = feedbackRate && feedbackRate.OtherThoughts ? feedbackRate.OtherThoughts : "";
const PhotoPermission = feedbackRate && feedbackRate.PhotoPermission && feedbackRate.PhotoPermission == "YES" ? true : false; const PhotoPermission = feedbackRate && feedbackRate.PhotoPermission && feedbackRate.PhotoPermission == "YES" ? true : false;
const ECI_Content = feedbackReview && feedbackReview.ECI_Content ? feedbackReview.ECI_Content : "None";
const [fileList, setFileList] = useState([ const [fileList, setFileList] = useState([
{ {
@ -58,22 +59,22 @@ function Detail() {
]); ]);
const handleChange = info => { const handleChange = info => {
console.log(info); console.log(info);
// ({ fileList: newFileList }) => setFileList(newFileList) // ({ fileList: newFileList }) => setFileList(newFileList)
let newFileList = [...info.fileList]; let newFileList = [...info.fileList];
newFileList = newFileList.map(file => { newFileList = newFileList.map(file => {
if (file.response) { if (file.response) {
file.url = file.response.url; file.url = file.response;
} }
return file; return file;
}); });
setFileList(newFileList); setFileList(newFileList);
}; };
const handRemove=info=>{ const handRemove = info => {
console.log(info); console.log(info);
return true return true;
} };
return ( return (
<Space direction="vertical" style={{ width: "100%" }}> <Space direction="vertical" style={{ width: "100%" }}>
@ -145,6 +146,21 @@ function Detail() {
</Col> </Col>
<Col span={4}></Col> <Col span={4}></Col>
</Row> </Row>
<Row gutter={16}>
<Col span={20}>
<Title level={4}>站外好评</Title>
</Col>
<Col span={4}></Col>
</Row>
<Row gutter={16}>
<Col span={4}></Col>
<Col span={18}>
<Text>{ECI_Content}</Text>
</Col>
<Col span={4}></Col>
</Row>
<Row gutter={16}> <Row gutter={16}>
<Col span={20}> <Col span={20}>
<Title level={4}>地接社的反馈</Title> <Title level={4}>地接社的反馈</Title>
@ -156,25 +172,33 @@ function Detail() {
<Col span={4}></Col> <Col span={4}></Col>
<Col span={18}> <Col span={18}>
<Form labelCol={{ span: 5 }}> <Form labelCol={{ span: 5 }}>
<Divider orientation="left">地接社反馈</Divider>
<Form.Item>
<Input.TextArea rows={6}></Input.TextArea>
</Form.Item>
<Divider orientation="left">上传照片</Divider> <Divider orientation="left">上传照片</Divider>
<Form.Item> <Form.Item>
<Upload name="ghhfile" accept="image/*" action={"http://202.103.68.157:890/service-fileServer/FileTransfer?filename=test11111.jpg"}> <Upload
<Button type="primary">上传</Button> name="ghhfile"
</Upload> accept="image/*"
</Form.Item> multiple={true}
<Form.Item> action={config.HT_HOST + `/service-fileServer/FileUpload?GRI_SN=${GRI_SN}&VEI_SN=${authStore.login.travelAgencyId}`}
<Upload name="ghhfile-111" accept="image/*" action={config.HT_HOST + "/service-fileServer/FileTransfer?filename=test11111.jpg"} fileList={fileList} listType="picture-card" onChange={handleChange} onRemove={handRemove}> fileList={fileList}
listType="picture-card"
onChange={handleChange}
onRemove={handRemove}>
<div> <div>
<PlusOutlined /> <PlusOutlined />
<div style={{ marginTop: 8 }}>Click to Upload</div> <div style={{ marginTop: 8 }}>Click to Upload</div>
</div> </div>
</Upload> </Upload>
</Form.Item> </Form.Item>
<Divider orientation="left">地接社反馈信息</Divider>
<Form.Item>
<Input.TextArea rows={6}></Input.TextArea>
</Form.Item>
<Form.Item>
<Button type="primary" onClick={() => console.info("submit")}>
Submit
</Button>
</Form.Item>
</Form> </Form>
</Col> </Col>
<Col span={4}></Col> <Col span={4}></Col>

@ -37,7 +37,7 @@ const feedbackListColumns = [
]; ];
function Index() { function Index() {
const { feedbackStore } = useStore(); const { feedbackStore, authStore } = useStore();
const { feedbackList } = feedbackStore; const { feedbackList } = feedbackStore;
const [selectedDateRange, onDateRangeChange] = useState([config.DATE_PRESETS[0].value]); const [selectedDateRange, onDateRangeChange] = useState([config.DATE_PRESETS[0].value]);
const [referenceNo, onNumberChange] = useState(""); const [referenceNo, onNumberChange] = useState("");
@ -71,7 +71,7 @@ function Index() {
/> />
</Col> </Col>
<Col md={24} lg={4} xxl={4}> <Col md={24} lg={4} xxl={4}>
<Button type="primary" loading={feedbackStore.loading} onClick={() => feedbackStore.searchFeedbackList(30008, referenceNo, selectedDateRange[0], selectedDateRange[1] + " 23:59")}> <Button type="primary" loading={feedbackStore.loading} onClick={() => feedbackStore.searchFeedbackList(authStore.login.travelAgencyId, referenceNo, selectedDateRange[0], selectedDateRange[1] + " 23:59")}>
搜索 搜索
</Button> </Button>
</Col> </Col>

@ -0,0 +1,59 @@
import { NavLink } from "react-router-dom";
import { useEffect, useState } from "react";
import { observer } from "mobx-react";
import { toJS } from "mobx";
import { Row, Col, Space, Button, Table, Input, Typography, DatePicker, Radio } from "antd";
import { useStore } from "@/stores/StoreContext.js";
import * as config from "@/config";
import * as comm from "@/utils/commons";
import dayjs from "dayjs";
const { Title, Paragraph, Text } = Typography;
function Index() {
const { feedbackStore } = useStore();
useEffect(() => {
console.info("feedback.useEffect");
}, []);
const [ellipsis, setEllipsis] = useState(true);
return (
<Space direction="vertical" style={{ width: "100%" }}>
<Row gutter={16}>
<Col span={4}></Col>
<Col span={18}>
<Title level={2}>Guidelines and Resources</Title>
<Paragraph ellipsis={{ expandable: true, rows: 5 }}>
We supply a series of design principles, practical patterns and high quality design resources (<Text code>Sketch</Text> and <Text code>Axure</Text>), to help people create their product prototypes beautifully and We
supply a series of design principles, practical patterns and high quality design resources (<Text code>Sketch</Text> and <Text code>Axure</Text>), to help people create their product prototypes beautifully and We
supply a series of design principles, practical patterns and high quality design resources (<Text code>Sketch</Text> and <Text code>Axure</Text>), to help people create their product prototypes beautifully and We
supply a series of design principles, practical patterns and high quality design resources (<Text code>Sketch</Text> and <Text code>Axure</Text>), to help people create their product prototypes beautifully and
efficiently. efficiently. We supply a series of design principles, practical patterns and high quality design resources (<Text code>Sketch</Text> and <Text code>Axure</Text>), to help people create their product
prototypes beautifully and We supply a series of design principles, practical patterns and high quality design resources (<Text code>Sketch</Text> and <Text code>Axure</Text>), to help people create their product
prototypes beautifully and efficiently. efficiently. We supply a series of design principles, practical patterns and high quality design resources (<Text code>Sketch</Text> and <Text code>Axure</Text>), to help
people create their product prototypes beautifully and We supply a series of design principles, practical patterns and high quality design resources (<Text code>Sketch</Text> and <Text code>Axure</Text>), to help
people create their product prototypes beautifully and efficiently. efficiently. efficiently. efficiently.
</Paragraph>
<Title level={2}>第二个公告</Title>
<Paragraph ellipsis={{ expandable: true, rows: 5 }}>
We supply a series of design principles, practical patterns and high quality design resources (<Text code>Sketch</Text> and <Text code>Axure</Text>), to help people create their product prototypes beautifully and We
supply a series of design principles, practical patterns and high quality design resources (<Text code>Sketch</Text> and <Text code>Axure</Text>), to help people create their product prototypes beautifully and We
supply a series of design principles, practical patterns and high quality design resources (<Text code>Sketch</Text> and <Text code>Axure</Text>), to help people create their product prototypes beautifully and We
supply a series of design principles, practical patterns and high quality design resources (<Text code>Sketch</Text> and <Text code>Axure</Text>), to help people create their product prototypes beautifully and
efficiently. efficiently. We supply a series of design principles, practical patterns and high quality design resources (<Text code>Sketch</Text> and <Text code>Axure</Text>), to help people create their product
prototypes beautifully and We supply a series of design principles, practical patterns and high quality design resources (<Text code>Sketch</Text> and <Text code>Axure</Text>), to help people create their product
prototypes beautifully and efficiently. efficiently. We supply a series of design principles, practical patterns and high quality design resources (<Text code>Sketch</Text> and <Text code>Axure</Text>), to help
people create their product prototypes beautifully and We supply a series of design principles, practical patterns and high quality design resources (<Text code>Sketch</Text> and <Text code>Axure</Text>), to help
people create their product prototypes beautifully and efficiently. efficiently. efficiently. efficiently.
</Paragraph>
</Col>
<Col span={4}></Col>
</Row>
</Space>
);
}
export default observer(Index);
Loading…
Cancel
Save