260 lines
7.1 KiB
Vue
260 lines
7.1 KiB
Vue
<template>
|
|
<mobile-sub-layout :title="$t('deposit.title2')">
|
|
<view class="deposit-order-detail-container">
|
|
<view
|
|
v-if="pageData.orderDetail.status === 1"
|
|
class="flex-column flex-acenter"
|
|
style="padding: 60rpx 30rpx;"
|
|
>
|
|
<theme-image
|
|
src="@/static/wallet/icon-succeed.png"
|
|
mode="aspectFit"
|
|
style="width: 140rpx; height: 140rpx"
|
|
/>
|
|
<view class="color-success ft18 mt32">
|
|
{{ $t("deposit.status.success") }}
|
|
</view>
|
|
<view class="cfff mt20" style="font-size: 60rpx">
|
|
{{ appStore.currencySign }}
|
|
{{ $formatThousandDot(pageData.orderDetail.amount) }}
|
|
</view>
|
|
</view>
|
|
<view
|
|
v-else
|
|
class="flex-column flex-acenter"
|
|
style="padding: 60rpx 30rpx;"
|
|
>
|
|
<theme-image
|
|
src="@/static/wallet/icon-pending.png"
|
|
mode="aspectFit"
|
|
style="width: 140rpx; height: 140rpx"
|
|
/>
|
|
<view class="color-panding ft18 mt32">
|
|
{{ $t("deposit.status.pending") }}
|
|
</view>
|
|
<view class="cfff mt20" style="font-size: 60rpx">
|
|
{{ appStore.currencySign }}
|
|
{{ $formatThousandDot(pageData.orderDetail.amount) }}
|
|
</view>
|
|
</view>
|
|
<view class="plr30 mb24">
|
|
<view
|
|
class="list-item-content"
|
|
:style="{ background: themeStore.theme.lightBgColor }"
|
|
>
|
|
<view
|
|
class="title"
|
|
:style="{ color: themeStore.theme.text.subtitle }"
|
|
>
|
|
{{ $t("deposit.depositType") }}:
|
|
</view>
|
|
<view
|
|
class="subtitle"
|
|
:style="{ color: themeStore.theme.text.normal }"
|
|
>
|
|
{{ pageData.orderDetail.rechargeType || "" }}
|
|
</view>
|
|
</view>
|
|
</view>
|
|
<view v-if="pageData.orderDetail.arrivedOn" class="plr30 mb24">
|
|
<view
|
|
class="list-item-content"
|
|
:style="{ background: themeStore.theme.lightBgColor }"
|
|
>
|
|
<view
|
|
class="title"
|
|
:style="{ color: themeStore.theme.text.subtitle }"
|
|
>
|
|
{{ $t("deposit.creationTime") }}:
|
|
</view>
|
|
<view
|
|
class="subtitle"
|
|
:style="{ color: themeStore.theme.text.normal }"
|
|
>
|
|
{{ pageData.orderDetail.arrivedOn || "" }}
|
|
</view>
|
|
</view>
|
|
</view>
|
|
<view class="plr30 mb24">
|
|
<view
|
|
class="list-item-content"
|
|
:style="{ background: themeStore.theme.lightBgColor }"
|
|
>
|
|
<view
|
|
class="title"
|
|
:style="{ color: themeStore.theme.text.subtitle }"
|
|
>
|
|
{{ $t("deposit.arrivalTime") }}:
|
|
</view>
|
|
<view
|
|
class="subtitle"
|
|
:style="{ color: themeStore.theme.text.normal }"
|
|
>
|
|
{{ pageData.orderDetail.orderedOn || "" }}
|
|
</view>
|
|
</view>
|
|
</view>
|
|
<view class="plr30 mb24">
|
|
<view
|
|
class="list-item-content"
|
|
:style="{ background: themeStore.theme.lightBgColor }"
|
|
>
|
|
<view
|
|
class="title"
|
|
:style="{ color: themeStore.theme.text.subtitle }"
|
|
>
|
|
{{ $t("deposit.orderNo") }}:
|
|
</view>
|
|
<view class="flex-acenter">
|
|
<view
|
|
class="subtitle mr24"
|
|
:style="{ color: themeStore.theme.text.normal }"
|
|
>
|
|
{{ pageData.orderDetail.orderNo || "" }}
|
|
</view>
|
|
<theme-image
|
|
@click.stop="handleCopyClick(pageData.orderDetail.orderNo)"
|
|
src="@/static/icon-copy.png"
|
|
mode="aspectFit"
|
|
style="width: 30rpx; height: 30rpx"
|
|
/>
|
|
</view>
|
|
</view>
|
|
</view>
|
|
<view class="ft15 plr30 pt16">
|
|
{{ $t("deposit.message.tipsDetail1") }}
|
|
</view>
|
|
<view v-if="depositStore.fillOrderSwitch && isShowUtr" class="plr30 mt24">
|
|
<SelfServiceUtrItem
|
|
:orderId="pageData.orderId"
|
|
:pendingCount="pageData.manualPendingCount"
|
|
/>
|
|
</view>
|
|
<!-- <view
|
|
v-if="
|
|
depositStore.fillOrderSwitch &&
|
|
pageData.orderDetail.manualRechargeStatus === 1
|
|
"
|
|
class="plr30 mt24"
|
|
>
|
|
<SelfServiceUtrFinishItem :orderId="pageData.orderId" />
|
|
</view> -->
|
|
<view class="plr30 mt24">
|
|
<DepositServiceItem />
|
|
</view>
|
|
</view>
|
|
</mobile-sub-layout>
|
|
</template>
|
|
|
|
<script setup>
|
|
import { onLoad } from "@dcloudio/uni-app";
|
|
import { onMounted, reactive, computed } from "vue";
|
|
import { useThemeStore } from "@/store/useThemeStore";
|
|
import { useAppStore } from "@/store/useAppStore";
|
|
import DepositServiceItem from "./components/DepositServiceItem.vue";
|
|
import SelfServiceUtrItem from "./components/SelfServiceUtrItem.vue";
|
|
import SelfServiceUtrFinishItem from "./components/SelfServiceUtrFinishItem.vue";
|
|
import { requestOrderDetail } from "@/api/deposit.js";
|
|
import Toast from "@/module/toast/toast.js";
|
|
import { useI18n } from "vue-i18n";
|
|
import { useDepositStore } from "@/store/useDepositStore.js";
|
|
// import { useUserStore } from "@/store/useUserStore.js";
|
|
|
|
const { t } = useI18n();
|
|
const themeStore = useThemeStore();
|
|
const appStore = useAppStore();
|
|
const depositStore = useDepositStore();
|
|
// const userStore = useUserStore();
|
|
|
|
const pageData = reactive({
|
|
orderId: "",
|
|
orderDetail: {},
|
|
});
|
|
|
|
const isShowUtr = computed(() => {
|
|
if (
|
|
pageData.orderDetail.status === 0 &&
|
|
pageData.orderDetail.manualRechargeStatus === 0
|
|
) {
|
|
const createTime = new Date(pageData.orderDetail.orderedOn).getTime();
|
|
const passTime = new Date().getTime() - createTime;
|
|
|
|
let minTime = 60;
|
|
let maxTime = 259200;
|
|
const strTime = depositStore.chargeInfo.manualRechargeTime;
|
|
|
|
if (strTime) {
|
|
const jsonTime = JSON.parse(strTime);
|
|
minTime = jsonTime[0] || 60;
|
|
maxTime = jsonTime[1] || 259200;
|
|
}
|
|
return passTime >= minTime * 1000 && passTime < maxTime * 1000;
|
|
}
|
|
return false;
|
|
});
|
|
|
|
onLoad((option) => {
|
|
pageData.orderId = option.orderId;
|
|
loadData();
|
|
depositStore.getChargeInfo();
|
|
});
|
|
|
|
const loadData = async () => {
|
|
Toast.showLoading("Loading");
|
|
const { code, data } = await requestOrderDetail({
|
|
id: pageData.orderId,
|
|
});
|
|
Toast.hideLoading();
|
|
if (code !== 200) {
|
|
return;
|
|
}
|
|
pageData.orderDetail = data || {};
|
|
};
|
|
|
|
const handleCopyClick = (text) => {
|
|
uni.setClipboardData({
|
|
data: text,
|
|
success() {
|
|
uni.showToast({
|
|
title: t("deposit.toast.text4"),
|
|
icon: "success",
|
|
});
|
|
},
|
|
});
|
|
};
|
|
</script>
|
|
|
|
<style lang="scss" scoped>
|
|
.deposit-order-detail-container {
|
|
min-height: 100vh;
|
|
|
|
.color-panding {
|
|
color: #e88a35;
|
|
}
|
|
|
|
.color-success {
|
|
color: #126e51;
|
|
}
|
|
|
|
.list-item-content {
|
|
border-radius: 20rpx;
|
|
background-color: #922222;
|
|
height: 88rpx;
|
|
display: flex;
|
|
align-items: center;
|
|
justify-content: space-between;
|
|
padding: 0rpx 30rpx;
|
|
|
|
.title {
|
|
font-size: 24rpx;
|
|
color: #ff9b9b;
|
|
}
|
|
|
|
.subtitle {
|
|
font-size: 24rpx;
|
|
color: #fff;
|
|
}
|
|
}
|
|
}
|
|
</style>
|