|
|
|
@ -12,12 +12,151 @@ function Index() {
|
|
|
|
|
const evaluationScores = vendorScoresData.EvaluationScores ? vendorScoresData.EvaluationScores[0] : [];
|
|
|
|
|
useEffect(() => {}, []);
|
|
|
|
|
|
|
|
|
|
const columns_month = [
|
|
|
|
|
const primaryData = vendorScoresData.EvaluationScores
|
|
|
|
|
? [comm.pick(vendorScoresData.EvaluationScores[0], ['Groups', 'PersonNum', 'AmountUSD', 'EvaluationScore', 'TPReviews', 'TPReviewRate', 'Complaints', 'ComplaintRate'])]
|
|
|
|
|
: [];
|
|
|
|
|
|
|
|
|
|
const evaluationScoresData = [
|
|
|
|
|
{ category: 'DMC Services', item: 'Guide', value: evaluationScores.FRTGuide, note: evaluationScores.FRTText },
|
|
|
|
|
{ category: 'DMC Services', item: 'Driver & Vehicle', value: evaluationScores.FRTGriver },
|
|
|
|
|
{ category: 'DMC Services', item: 'Food Arrangement', value: evaluationScores.FRTMeal },
|
|
|
|
|
{ category: 'DMC Services', item: 'Activity', value: evaluationScores.FRTProduct },
|
|
|
|
|
{ category: 'Itinerary Arrangements', item: 'Hotel', value: evaluationScores.FRTHotel, },
|
|
|
|
|
{ category: 'Itinerary Arrangements', item: 'Travel Advisor’s Planning', value: evaluationScores.FRTAdvisor },
|
|
|
|
|
];
|
|
|
|
|
const columns_evaluation = [
|
|
|
|
|
{ title: 'Category', dataIndex: 'category', key: 'category',align: 'center', onCell: (_, index) => ({ rowSpan: index === 0 ? 4 : index === 4 ? 2 : 0 }) },
|
|
|
|
|
{ title: 'Item', dataIndex: 'item', key: 'item', align: 'center' },
|
|
|
|
|
{ title: 'Your Scores', dataIndex: 'value', key: 'value',align: 'center', },
|
|
|
|
|
{ title: 'Note', dataIndex: 'note', key: 'note',align: 'center', onCell: (_, index) => ({ rowSpan: index === 0 ? 7 : 0 })},
|
|
|
|
|
];
|
|
|
|
|
|
|
|
|
|
const columns_DMC_customer_satisfaction = [
|
|
|
|
|
{ title: 'Customer Satisfaction', dataIndex: 'item', key: 'item',align: 'center', },
|
|
|
|
|
{ title: '3 scores', dataIndex: 'stand_3', key: 'stand_3', align: 'center', onCell: (_, index) => ({ colSpan: (index === 2 || index===4) ? 3 : 1 }) },
|
|
|
|
|
{ title: '4 scores', dataIndex: 'stand_4', key: 'stand_4',align: 'center',onCell: (_, index) => ({ colSpan: (index === 2 || index===4) ? 0 : 1 }) },
|
|
|
|
|
{ title: '5 scores', dataIndex: 'stand_5', key: 'stand_5',align: 'center',onCell: (_, index) => ({ colSpan: (index === 2 || index===4) ? 0 : 1 }) },
|
|
|
|
|
{ title: 'Your Scores', dataIndex: 'value', key: 'value',align: 'center', },
|
|
|
|
|
{ title: 'Final Scores', dataIndex: 'final_score', key: 'final_score',align: 'center', onCell: (_, index) => ({ rowSpan: index === 0 ? 5 : 0 })},
|
|
|
|
|
{ title: 'Note', dataIndex: 'note', key: 'note',align: 'center', },
|
|
|
|
|
];
|
|
|
|
|
const DMCData_customer_satisfaction = [
|
|
|
|
|
{
|
|
|
|
|
item: 'TP review rating',
|
|
|
|
|
stand_3: '\\',
|
|
|
|
|
stand_4: '30%',
|
|
|
|
|
stand_5: '60%',
|
|
|
|
|
value: evaluationScores.TPReviewRating,
|
|
|
|
|
final_score: evaluationScores.AvgCusSatisfaction,
|
|
|
|
|
note: evaluationScores.TPReviewRatingText,
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
item: 'Post tour complaints',
|
|
|
|
|
stand_3: '1',
|
|
|
|
|
stand_4: '0',
|
|
|
|
|
stand_5: '0',
|
|
|
|
|
value: evaluationScores.PostTourComplaints,
|
|
|
|
|
// final_score: evaluationScores.AvgCusSatisfaction,
|
|
|
|
|
note: evaluationScores.PostTourComplaintsText,
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
item: 'Complaints resolved during the tour',
|
|
|
|
|
stand_3: '3',
|
|
|
|
|
// stand_4: '0',
|
|
|
|
|
// stand_5: '0',
|
|
|
|
|
value: evaluationScores.ComplaintsDuringTour,
|
|
|
|
|
note: evaluationScores.ComplaintsDuringTourText,
|
|
|
|
|
},
|
|
|
|
|
{ item: 'Customer photos', stand_3: '\\', stand_4: '30%', stand_5: '50%', value: evaluationScores.CustomerPhotoRate, note: evaluationScores.CustomerPhotoRateText },
|
|
|
|
|
{ item: 'Evaluation scores', stand_3: '4.5', value: evaluationScores.EvaluationFormScore, note: evaluationScores.EvaluationFormScoreText },
|
|
|
|
|
];
|
|
|
|
|
|
|
|
|
|
const columns_DMC_sopport_local = [
|
|
|
|
|
{ title: 'Operator Support & Local resources', dataIndex: 'item', key: 'item',align: 'center', },
|
|
|
|
|
{ title: '3 scores', dataIndex: 'stand_3', key: 'stand_3', align: 'center', },
|
|
|
|
|
{ title: '4 scores', dataIndex: 'stand_4', key: 'stand_4',align: 'center', },
|
|
|
|
|
{ title: '5 scores', dataIndex: 'stand_5', key: 'stand_5',align: 'center', },
|
|
|
|
|
{ title: 'Your Scores', dataIndex: 'value', key: 'value',align: 'center', },
|
|
|
|
|
{ title: 'Final Scores', dataIndex: 'final_score', key: 'final_score',align: 'center', onCell: (_, index) => ({ rowSpan: index === 0 ? 6 : 0 })},
|
|
|
|
|
{ title: 'Note', dataIndex: 'note', key: 'note',align: 'center', },
|
|
|
|
|
];
|
|
|
|
|
const DMCData_sopport_local = [
|
|
|
|
|
{
|
|
|
|
|
item: 'Response efficiency',
|
|
|
|
|
stand_3: '1d',
|
|
|
|
|
stand_4: '6hrs',
|
|
|
|
|
stand_5: '3hrs',
|
|
|
|
|
value: evaluationScores.ResponseEfficiency,
|
|
|
|
|
final_score: evaluationScores.AvgLocalResources,
|
|
|
|
|
note: evaluationScores.ResponseEfficiencyText,
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
item: 'Provide suggestions and alternatives',
|
|
|
|
|
stand_3: '\\',
|
|
|
|
|
stand_4: '√',
|
|
|
|
|
stand_5: '√',
|
|
|
|
|
value: evaluationScores.ProvideSuggestions,
|
|
|
|
|
// final_score: evaluationScores.AvgCusSatisfaction,
|
|
|
|
|
note: evaluationScores.ProvideSuggestionsText,
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
item: 'Provide local tourism information',
|
|
|
|
|
stand_3: '\\',
|
|
|
|
|
stand_4: '√',
|
|
|
|
|
stand_5: '√',
|
|
|
|
|
value: evaluationScores.ProvideLocalInfo,
|
|
|
|
|
note: evaluationScores.ProvideLocalInfoText,
|
|
|
|
|
},
|
|
|
|
|
{ item: 'Assist in developing exclusive products',
|
|
|
|
|
stand_3: '\\',
|
|
|
|
|
stand_4: '\\',
|
|
|
|
|
stand_5: '√', value: evaluationScores.ExclusiveProducts, note: evaluationScores.ExclusiveProductsText },
|
|
|
|
|
{ item: 'Dedicated tour guide team for AH',
|
|
|
|
|
stand_3: '\\',
|
|
|
|
|
stand_4: '√',
|
|
|
|
|
stand_5: '√', value: evaluationScores.DedicatedTourGuide, note: evaluationScores.DedicatedTourGuideText },
|
|
|
|
|
{ item: 'Partner hotels with contracted rate',
|
|
|
|
|
stand_3: '\\',
|
|
|
|
|
stand_4: '√',
|
|
|
|
|
stand_5: '√', value: evaluationScores.PartnerHotels, note: evaluationScores.PartnerHotelsText },
|
|
|
|
|
];
|
|
|
|
|
const columns_DMC_pricing = [
|
|
|
|
|
{ title: 'Pricing & Settlement (20%)', dataIndex: 'item', key: 'item',align: 'center', },
|
|
|
|
|
{ title: '3 scores', dataIndex: 'stand_3', key: 'stand_3', align: 'center', },
|
|
|
|
|
{ title: '4 scores', dataIndex: 'stand_4', key: 'stand_4',align: 'center', },
|
|
|
|
|
{ title: '5 scores', dataIndex: 'stand_5', key: 'stand_5',align: 'center', },
|
|
|
|
|
{ title: 'Your Scores', dataIndex: 'value', key: 'value',align: 'center', },
|
|
|
|
|
{ title: 'Final Scores', dataIndex: 'final_score', key: 'final_score',align: 'center', onCell: (_, index) => ({ rowSpan: index === 0 ? 3 : 0 })},
|
|
|
|
|
{ title: 'Note', dataIndex: 'note', key: 'note',align: 'center', },
|
|
|
|
|
];
|
|
|
|
|
const DMCData_pricing = [
|
|
|
|
|
{
|
|
|
|
|
title: "Date",
|
|
|
|
|
dataIndex: "VMonth",
|
|
|
|
|
key: "VMonth",
|
|
|
|
|
item: 'Quotation',
|
|
|
|
|
stand_3: 'Package',
|
|
|
|
|
stand_4: 'Day tours',
|
|
|
|
|
stand_5: 'Individual services',
|
|
|
|
|
value: evaluationScores.Quotation,
|
|
|
|
|
final_score: evaluationScores.AvgPricingAndSettlement,
|
|
|
|
|
note: evaluationScores.QuotationText,
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
item: 'Settlement',
|
|
|
|
|
stand_3: 'Prepayment',
|
|
|
|
|
stand_4: 'Monthly Prepayment',
|
|
|
|
|
stand_5: 'Monthly settlement after the tours',
|
|
|
|
|
value: evaluationScores.Settlement,
|
|
|
|
|
note: evaluationScores.SettlementText,
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
item: 'Cancellation policy',
|
|
|
|
|
stand_3: '30 days',
|
|
|
|
|
stand_4: '21 days',
|
|
|
|
|
stand_5: '1 day',
|
|
|
|
|
value: evaluationScores.CancellationPolicy,
|
|
|
|
|
note: evaluationScores.CancellationPolicyText,
|
|
|
|
|
},];
|
|
|
|
|
|
|
|
|
|
const columns_primary = [
|
|
|
|
|
{
|
|
|
|
|
title: "Groups",
|
|
|
|
|
dataIndex: "Groups",
|
|
|
|
@ -63,6 +202,8 @@ function Index() {
|
|
|
|
|
},
|
|
|
|
|
];
|
|
|
|
|
|
|
|
|
|
const columns_month = [{ title: 'Date', dataIndex: 'VMonth', key: 'VMonth' }, ...columns_primary];
|
|
|
|
|
|
|
|
|
|
const columns_guide = [
|
|
|
|
|
{
|
|
|
|
|
title: "Name",
|
|
|
|
@ -120,6 +261,18 @@ function Index() {
|
|
|
|
|
key: "ECI_Content",
|
|
|
|
|
},
|
|
|
|
|
];
|
|
|
|
|
const columns_commend_criticizescores = [
|
|
|
|
|
{
|
|
|
|
|
title: "Reference Number",
|
|
|
|
|
dataIndex: "GRI_No",
|
|
|
|
|
key: "GRI_No",
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
title: "Essential Comments",
|
|
|
|
|
dataIndex: "ECI_Content",
|
|
|
|
|
key: "ECI_Content",
|
|
|
|
|
},
|
|
|
|
|
];
|
|
|
|
|
|
|
|
|
|
const { toPDF, targetRef } = usePDF({
|
|
|
|
|
method: "save",
|
|
|
|
@ -182,40 +335,7 @@ function Index() {
|
|
|
|
|
<Divider orientation="center">
|
|
|
|
|
<Typography.Title level={3} type="success">Primary Data</Typography.Title>
|
|
|
|
|
</Divider>
|
|
|
|
|
<div className="ant-table-wrapper ant-spin-nested-loading css-3op25v css-dev-only-do-not-override-3op25v ">
|
|
|
|
|
<div className="ant-spin-container ant-table ant-table-bordered">
|
|
|
|
|
<div className="ant-table-container">
|
|
|
|
|
<div className="ant-table-content">
|
|
|
|
|
<table style={{ textAlign: "center" }}>
|
|
|
|
|
<thead className="ant-table-thead">
|
|
|
|
|
<tr>
|
|
|
|
|
<th scope="col">Groups</th>
|
|
|
|
|
<th scope="col">Number of People</th>
|
|
|
|
|
<th scope="col">Transaction Amount(USD)</th>
|
|
|
|
|
<th scope="col">Evaluation Score</th>
|
|
|
|
|
<th scope="col">TP Reviews</th>
|
|
|
|
|
<th scope="col">TP Reviews Rate</th>
|
|
|
|
|
<th scope="col">Complaints</th>
|
|
|
|
|
<th scope="col">Complaint Rate</th>
|
|
|
|
|
</tr>
|
|
|
|
|
</thead>
|
|
|
|
|
<tbody className="ant-table-tbody">
|
|
|
|
|
<tr className="ant-table-row ant-table-row-level-0">
|
|
|
|
|
<td>{evaluationScores.Groups}</td>
|
|
|
|
|
<td>{evaluationScores.PersonNum}</td>
|
|
|
|
|
<td>{comm.formatPrice(evaluationScores.AmountUSD)}</td>
|
|
|
|
|
<td>{evaluationScores.EvaluationScore}</td>
|
|
|
|
|
<td>{evaluationScores.TPReviews}</td>
|
|
|
|
|
<td>{comm.formatPercent(evaluationScores.TPReviewRate)}</td>
|
|
|
|
|
<td>{evaluationScores.Complaints}</td>
|
|
|
|
|
<td>{comm.formatPercent(evaluationScores.ComplaintRate)}</td>
|
|
|
|
|
</tr>
|
|
|
|
|
</tbody>
|
|
|
|
|
</table>
|
|
|
|
|
</div>
|
|
|
|
|
</div>
|
|
|
|
|
</div>
|
|
|
|
|
</div>
|
|
|
|
|
<Table dataSource={primaryData} columns={columns_primary} pagination={false} bordered />
|
|
|
|
|
</Col>
|
|
|
|
|
|
|
|
|
|
<Col md={24} lg={24} xxl={16}>
|
|
|
|
@ -229,172 +349,12 @@ function Index() {
|
|
|
|
|
<Divider orientation="center">
|
|
|
|
|
<Typography.Title level={3} type="success">DMC Assessment Criteria</Typography.Title>
|
|
|
|
|
</Divider>
|
|
|
|
|
<div className="ant-table-wrapper ant-spin-nested-loading css-3op25v css-dev-only-do-not-override-3op25v ">
|
|
|
|
|
<div className="ant-spin-container ant-table ant-table-bordered">
|
|
|
|
|
<div className="ant-table-container">
|
|
|
|
|
<div className="ant-table-content">
|
|
|
|
|
<table style={{ textAlign: "center" }}>
|
|
|
|
|
<thead className="ant-table-thead">
|
|
|
|
|
<tr>
|
|
|
|
|
<th scope="col">Customer Satisfaction</th>
|
|
|
|
|
<th scope="col">3 scores</th>
|
|
|
|
|
<th scope="col">4 scores</th>
|
|
|
|
|
<th scope="col">5 scores</th>
|
|
|
|
|
<th scope="col">Your Scores</th>
|
|
|
|
|
<th scope="col">Final Scores</th>
|
|
|
|
|
<th scope="col">Note</th>
|
|
|
|
|
</tr>
|
|
|
|
|
</thead>
|
|
|
|
|
<tbody className="ant-table-tbody">
|
|
|
|
|
<tr className="ant-table-row ant-table-row-level-0">
|
|
|
|
|
<td>TP review rating</td>
|
|
|
|
|
<td>\</td>
|
|
|
|
|
<td>30%</td>
|
|
|
|
|
<td>60%</td>
|
|
|
|
|
<td>{evaluationScores.TPReviewRating}</td>
|
|
|
|
|
<td rowSpan="5">{evaluationScores.AvgCusSatisfaction}</td>
|
|
|
|
|
<td>{evaluationScores.TPReviewRatingText}</td>
|
|
|
|
|
</tr>
|
|
|
|
|
<tr className="ant-table-row ant-table-row-level-0">
|
|
|
|
|
<td>Post tour complaints</td>
|
|
|
|
|
<td>1</td>
|
|
|
|
|
<td>0</td>
|
|
|
|
|
<td>0</td>
|
|
|
|
|
<td>{evaluationScores.PostTourComplaints}</td>
|
|
|
|
|
<td>{evaluationScores.PostTourComplaintsText}</td>
|
|
|
|
|
</tr>
|
|
|
|
|
<tr className="ant-table-row ant-table-row-level-0">
|
|
|
|
|
<td>Complaints resolved during the tour</td>
|
|
|
|
|
<td colSpan={3}>3</td>
|
|
|
|
|
<td>{evaluationScores.ComplaintsDuringTour}</td>
|
|
|
|
|
<td>{evaluationScores.ComplaintsDuringTourText}</td>
|
|
|
|
|
</tr>
|
|
|
|
|
<tr className="ant-table-row ant-table-row-level-0">
|
|
|
|
|
<td>Customer photos</td>
|
|
|
|
|
<td>\</td>
|
|
|
|
|
<td>30%</td>
|
|
|
|
|
<td>50%</td>
|
|
|
|
|
<td>{evaluationScores.CustomerPhotoRate}</td>
|
|
|
|
|
<td>{evaluationScores.CustomerPhotoRateText}</td>
|
|
|
|
|
</tr>
|
|
|
|
|
<tr className="ant-table-row ant-table-row-level-0">
|
|
|
|
|
<td>Evaluation scores</td>
|
|
|
|
|
<td colSpan={3}>4.5</td>
|
|
|
|
|
<td>{evaluationScores.EvaluationFormScore}</td>
|
|
|
|
|
<td>{evaluationScores.EvaluationFormScoreText}</td>
|
|
|
|
|
</tr>
|
|
|
|
|
</tbody>
|
|
|
|
|
</table>
|
|
|
|
|
<Table dataSource={DMCData_customer_satisfaction} columns={columns_DMC_customer_satisfaction} pagination={false} bordered />
|
|
|
|
|
<br />
|
|
|
|
|
<table style={{ textAlign: "center" }}>
|
|
|
|
|
<thead className="ant-table-thead">
|
|
|
|
|
<tr>
|
|
|
|
|
<th scope="col">Operator Support & Local resources</th>
|
|
|
|
|
<th scope="col">3 scores</th>
|
|
|
|
|
<th scope="col">4 scores</th>
|
|
|
|
|
<th scope="col">5 scores</th>
|
|
|
|
|
<th scope="col">Your Scores</th>
|
|
|
|
|
<th scope="col">Final Scores</th>
|
|
|
|
|
<th scope="col">Note</th>
|
|
|
|
|
</tr>
|
|
|
|
|
</thead>
|
|
|
|
|
<tbody className="ant-table-tbody">
|
|
|
|
|
<tr className="ant-table-row ant-table-row-level-0">
|
|
|
|
|
<td>Response efficiency</td>
|
|
|
|
|
<td>1d</td>
|
|
|
|
|
<td>6hrs</td>
|
|
|
|
|
<td>3hrs</td>
|
|
|
|
|
<td>{evaluationScores.ResponseEfficiency}</td>
|
|
|
|
|
<td rowSpan="6">{evaluationScores.AvgLocalResources}</td>
|
|
|
|
|
<td>{evaluationScores.ResponseEfficiencyText}</td>
|
|
|
|
|
</tr>
|
|
|
|
|
<tr className="ant-table-row ant-table-row-level-0">
|
|
|
|
|
<td>Provide suggestions and alternatives</td>
|
|
|
|
|
<td>\</td>
|
|
|
|
|
<td>√</td>
|
|
|
|
|
<td>√</td>
|
|
|
|
|
<td>{evaluationScores.ProvideSuggestions}</td>
|
|
|
|
|
<td>{evaluationScores.ProvideSuggestionsText}</td>
|
|
|
|
|
</tr>
|
|
|
|
|
<tr className="ant-table-row ant-table-row-level-0">
|
|
|
|
|
<td>Provide local tourism information</td>
|
|
|
|
|
<td>\</td>
|
|
|
|
|
<td>√</td>
|
|
|
|
|
<td>√</td>
|
|
|
|
|
<td>{evaluationScores.ProvideLocalInfo}</td>
|
|
|
|
|
<td>{evaluationScores.ProvideLocalInfoText}</td>
|
|
|
|
|
</tr>
|
|
|
|
|
<tr className="ant-table-row ant-table-row-level-0">
|
|
|
|
|
<td>Assist in developing exclusive products</td>
|
|
|
|
|
<td>\</td>
|
|
|
|
|
<td>\</td>
|
|
|
|
|
<td>√</td>
|
|
|
|
|
<td>{evaluationScores.ExclusiveProducts}</td>
|
|
|
|
|
<td>{evaluationScores.ExclusiveProductsText}</td>
|
|
|
|
|
</tr>
|
|
|
|
|
<tr className="ant-table-row ant-table-row-level-0">
|
|
|
|
|
<td>Dedicated tour guide team for AH</td>
|
|
|
|
|
<td>\</td>
|
|
|
|
|
<td>√</td>
|
|
|
|
|
<td>√</td>
|
|
|
|
|
<td>{evaluationScores.DedicatedTourGuide}</td>
|
|
|
|
|
<td>{evaluationScores.DedicatedTourGuideText}</td>
|
|
|
|
|
</tr>
|
|
|
|
|
<tr className="ant-table-row ant-table-row-level-0">
|
|
|
|
|
<td>Partner hotels with contracted rate</td>
|
|
|
|
|
<td>\</td>
|
|
|
|
|
<td>√</td>
|
|
|
|
|
<td>√</td>
|
|
|
|
|
<td>{evaluationScores.PartnerHotels}</td>
|
|
|
|
|
<td>{evaluationScores.PartnerHotelsText}</td>
|
|
|
|
|
</tr>
|
|
|
|
|
</tbody>
|
|
|
|
|
</table>
|
|
|
|
|
<Table dataSource={DMCData_sopport_local} columns={columns_DMC_sopport_local} pagination={false} bordered />
|
|
|
|
|
<br />
|
|
|
|
|
<table style={{ textAlign: "center" }}>
|
|
|
|
|
<thead className="ant-table-thead">
|
|
|
|
|
<tr>
|
|
|
|
|
<th scope="col">Pricing & Settlement (20%)</th>
|
|
|
|
|
<th scope="col">3 scores</th>
|
|
|
|
|
<th scope="col">4 scores</th>
|
|
|
|
|
<th scope="col">5 scores</th>
|
|
|
|
|
<th scope="col">Your Scores</th>
|
|
|
|
|
<th scope="col">Final Scores</th>
|
|
|
|
|
<th scope="col">Note</th>
|
|
|
|
|
</tr>
|
|
|
|
|
</thead>
|
|
|
|
|
<tbody className="ant-table-tbody">
|
|
|
|
|
<tr className="ant-table-row ant-table-row-level-0">
|
|
|
|
|
<td>Quotation</td>
|
|
|
|
|
<td>Package</td>
|
|
|
|
|
<td>Day tours</td>
|
|
|
|
|
<td>Individual services</td>
|
|
|
|
|
<td>{evaluationScores.Quotation}</td>
|
|
|
|
|
<td rowSpan="3">{evaluationScores.AvgPricingAndSettlement}</td>
|
|
|
|
|
<td>{evaluationScores.QuotationText}</td>
|
|
|
|
|
</tr>
|
|
|
|
|
<tr className="ant-table-row ant-table-row-level-0">
|
|
|
|
|
<td>Settlement</td>
|
|
|
|
|
<td>Prepayment</td>
|
|
|
|
|
<td>Monthly Prepayment</td>
|
|
|
|
|
<td>Monthly settlement after the tours</td>
|
|
|
|
|
<td>{evaluationScores.Settlement}</td>
|
|
|
|
|
<td>{evaluationScores.SettlementText}</td>
|
|
|
|
|
</tr>
|
|
|
|
|
<tr className="ant-table-row ant-table-row-level-0">
|
|
|
|
|
<td>Cancellation policy</td>
|
|
|
|
|
<td>30 days</td>
|
|
|
|
|
<td>21 days</td>
|
|
|
|
|
<td>1 day</td>
|
|
|
|
|
<td>{evaluationScores.CancellationPolicy}</td>
|
|
|
|
|
<td>{evaluationScores.CancellationPolicyText}</td>
|
|
|
|
|
</tr>
|
|
|
|
|
</tbody>
|
|
|
|
|
</table>
|
|
|
|
|
</div>
|
|
|
|
|
</div>
|
|
|
|
|
</div>
|
|
|
|
|
</div>
|
|
|
|
|
<Table dataSource={DMCData_pricing} columns={columns_DMC_pricing} pagination={false} bordered />
|
|
|
|
|
|
|
|
|
|
<Divider orientation="right">
|
|
|
|
|
<Typography.Title level={3} type="danger">
|
|
|
|
|
Final Scores: {evaluationScores.FinalScores}
|
|
|
|
@ -426,55 +386,8 @@ function Index() {
|
|
|
|
|
<Divider orientation="center">
|
|
|
|
|
<Typography.Title level={3} type="success">Evaluation Scores</Typography.Title>
|
|
|
|
|
</Divider>
|
|
|
|
|
<div className="ant-table-wrapper ant-spin-nested-loading css-3op25v css-dev-only-do-not-override-3op25v ">
|
|
|
|
|
<div className="ant-spin-container ant-table ant-table-bordered">
|
|
|
|
|
<div className="ant-table-container">
|
|
|
|
|
<div className="ant-table-content">
|
|
|
|
|
<table style={{ textAlign: "center" }}>
|
|
|
|
|
<thead className="ant-table-thead">
|
|
|
|
|
<tr>
|
|
|
|
|
<th scope="col">Category</th>
|
|
|
|
|
<th scope="col">Item</th>
|
|
|
|
|
<th scope="col">Your Scores</th>
|
|
|
|
|
<th scope="col">Note</th>
|
|
|
|
|
</tr>
|
|
|
|
|
</thead>
|
|
|
|
|
<tbody className="ant-table-tbody">
|
|
|
|
|
<tr className="ant-table-row ant-table-row-level-0">
|
|
|
|
|
<td rowSpan="4">DMC Services</td>
|
|
|
|
|
<td>Guide</td>
|
|
|
|
|
<td>{evaluationScores.FRTGuide}</td>
|
|
|
|
|
<td rowSpan="7">{evaluationScores.FRTText}</td>
|
|
|
|
|
</tr>
|
|
|
|
|
|
|
|
|
|
<tr className="ant-table-row ant-table-row-level-0">
|
|
|
|
|
<td>Driver & Vehicle</td>
|
|
|
|
|
<td>{evaluationScores.FRTGriver}</td>
|
|
|
|
|
</tr>
|
|
|
|
|
<tr className="ant-table-row ant-table-row-level-0">
|
|
|
|
|
<td>Food Arrangement</td>
|
|
|
|
|
<td>{evaluationScores.FRTMeal}</td>
|
|
|
|
|
</tr>
|
|
|
|
|
<tr className="ant-table-row ant-table-row-level-0">
|
|
|
|
|
<td>Activity</td>
|
|
|
|
|
<td>{evaluationScores.FRTProduct}</td>
|
|
|
|
|
</tr>
|
|
|
|
|
<Table dataSource={evaluationScoresData} columns={columns_evaluation} pagination={false} bordered />
|
|
|
|
|
|
|
|
|
|
<tr className="ant-table-row ant-table-row-level-0">
|
|
|
|
|
<td rowSpan="2">Itinerary Arrangements</td>
|
|
|
|
|
<td>Hotel</td>
|
|
|
|
|
<td>{evaluationScores.FRTHotel}</td>
|
|
|
|
|
</tr>
|
|
|
|
|
<tr className="ant-table-row ant-table-row-level-0">
|
|
|
|
|
<td>Travel Advisor's Planning</td>
|
|
|
|
|
<td>{evaluationScores.FRTAdvisor}</td>
|
|
|
|
|
</tr>
|
|
|
|
|
</tbody>
|
|
|
|
|
</table>
|
|
|
|
|
</div>
|
|
|
|
|
</div>
|
|
|
|
|
</div>
|
|
|
|
|
</div>
|
|
|
|
|
</Col>
|
|
|
|
|
<Col md={24} lg={24} xxl={16}>
|
|
|
|
|
<Divider orientation="center">
|
|
|
|
@ -495,7 +408,7 @@ function Index() {
|
|
|
|
|
<Divider orientation="center">
|
|
|
|
|
<Typography.Title level={3} type="success">Suggestions from Customers</Typography.Title>
|
|
|
|
|
</Divider>
|
|
|
|
|
<Table dataSource={commendScoresData.CriticizeScores} columns={columns_commend} pagination={false} bordered />
|
|
|
|
|
<Table dataSource={commendScoresData.CriticizeScores} columns={columns_commend_criticizescores} pagination={false} bordered />
|
|
|
|
|
</Col>
|
|
|
|
|
</Row>
|
|
|
|
|
</Space>
|
|
|
|
|