JSFiddle - React, Tailwind, and code Playground
HTML
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.7.1/jquery.min.js"></script>
<script src="https://code.jquery.com/jquery-3.7.1.min.js"></script>
<div class="order">
<p>尊貴的客戶您好,您上次的消費內容是:</p>
<p>訂單編號:<span class="order_id"></span></p>
<p>訂單內容:<span class="order_content"></span></p>
<p>訂單金額:<span class="order_amount"></span></p>
<p>希望這次也能有機會服務您!</p>
</div>
<div class="overlay"></div>
CSS
.overlay {
position: absolute;
inset: 0;
background-color: #0005;
justify-content: center;
align-items: center;
display: none;
}
.overlay.active {
display: flex;
}
.overlay::after {
content: '';
width: 30px;
height: 30px;
border-radius: 50%;
border: 5px solid #fff;
border-color: #fff #fff #fff transparent;
animation: loading 1s linear infinite;
}
@keyframes loading {
to {
transform: rotate(0);
}
from {
transform: rotate(360deg);
}
}
JavaScript
const getUserAPI = 'https://codelove.tw/fake-api/get-current-user-unstable'
const getOrdersAPI = 'https://codelove.tw/fake-api/get-orders-unstable'
const getOrderDetailsAPI = 'https://codelove.tw/fake-api/get-order-details-unstable'
async function getFinalOrderDetail() {
const overlay = $('.overlay')
overlay.addClass('active')
try {
const userData = await $.get(getUserAPI)
const userId = userData.data.user.id
const orderData = await $.get(getOrdersAPI, { user_id: userId })
const finalOrderId = orderData.data.orders.at(-1).id
const finalOrderData = await $.get(getOrderDetailsAPI, { order_id: finalOrderId })
const {id, content, amount} = finalOrderData.data.order
$('.order_id').text(id)
$('.order_content').text(content)
$('.order_amount').text(amount)
} catch(err) {
alert('抱歉,系統出了點問題,請稍後再試一次。')
} finally {
overlay.removeClass('active')
}
}
getFinalOrderDetail()