fix
This commit is contained in:
parent
144feb66a6
commit
e8ee371974
@ -7,6 +7,7 @@
|
||||
name="viewport"
|
||||
content="width=device-width,initial-scale=1,shrink-to-fit=no,maximum-scale=1,minimum-scale=1,user-scalable=0,minimal-ui,viewport-fit=cover"
|
||||
/>
|
||||
<meta name="google" content="notranslate">
|
||||
<title>Web</title>
|
||||
</head>
|
||||
<body>
|
||||
|
@ -14,6 +14,8 @@ export default {
|
||||
// user
|
||||
USER_INFO: "/user/info",
|
||||
USER_SET_FULLNAME: "/user/set-fullname",
|
||||
USER_SET_GENDER: "/user/set-gender",
|
||||
USER_MONEY_LOGS: "user/money-logs",
|
||||
|
||||
// game
|
||||
GAME_INFO: "/product/info",
|
||||
|
@ -16,7 +16,7 @@ const submit = () => {
|
||||
if (amount.value > 0) {
|
||||
router.push({ name: "Channel", query: { money: amount.value } });
|
||||
} else {
|
||||
showFailToast("Số tiền sai");
|
||||
showFailToast("Số điểm sai");
|
||||
}
|
||||
};
|
||||
</script>
|
||||
@ -45,7 +45,7 @@ const submit = () => {
|
||||
<div class="content recharge">
|
||||
<form class="van-form" @submit.prevent="submit">
|
||||
<div class="form-item">
|
||||
<div class="form-item-title">Vui lòng nhập số tiền nạp</div>
|
||||
<div class="form-item-title">Vui lòng nhập số điểm nạp</div>
|
||||
<div>
|
||||
<div
|
||||
class="van-cell van-field"
|
||||
@ -59,7 +59,7 @@ const submit = () => {
|
||||
v-model.number="amount"
|
||||
type="text"
|
||||
name="money"
|
||||
placeholder="Vui lòng nhập số tiền nạp"
|
||||
placeholder="Vui lòng nhập số điểm nạp"
|
||||
class="van-field__control"
|
||||
style="color: #323233"
|
||||
/>
|
||||
|
@ -94,10 +94,10 @@ onRefresh();
|
||||
>Trả tiền</span
|
||||
>
|
||||
<span v-else-if="item.status == 0">Chưa thanh toán</span>
|
||||
<span style="color: rgb(7, 193, 96)" v-else
|
||||
<span style="color: #ff253f" v-else
|
||||
>Thanh toán thất bại</span
|
||||
>
|
||||
<span>Số tiền:{{ formatNumber(item.amount) }}Đ</span>
|
||||
<span>Số điểm: {{ formatNumber(item.amount) }}Đ</span>
|
||||
</div>
|
||||
<div class="desc">
|
||||
<span>Minh họa:{{ item.note }}</span>
|
||||
|
@ -1,10 +1,30 @@
|
||||
<script setup>
|
||||
|
||||
import { ref } from "vue";
|
||||
import { Swiper, SwiperSlide } from "swiper/vue";
|
||||
import { EffectCoverflow } from "swiper/modules";
|
||||
import { dataGirl, dataBoPhieu } from "./index.js"
|
||||
import { dataGirl, dataBoPhieu } from "./index.js";
|
||||
import "swiper/css";
|
||||
import "swiper/css/effect-coverflow";
|
||||
|
||||
import axios from "@/axios";
|
||||
import API from "@/api";
|
||||
import { handleRequest } from "@/helpers/request";
|
||||
|
||||
const gameList = ref([]);
|
||||
|
||||
const getGameIcon = (idx) => {
|
||||
return dataBoPhieu[idx % dataBoPhieu.length]?.ico
|
||||
}
|
||||
const getGameList = () => {
|
||||
handleRequest(axios.get(API.PRODUCT_LIST)).then((res) => {
|
||||
if (res.success) {
|
||||
gameList.value = res.data;
|
||||
}
|
||||
});
|
||||
};
|
||||
|
||||
getGameList();
|
||||
|
||||
</script>
|
||||
<template>
|
||||
<div class="home-container">
|
||||
@ -78,21 +98,19 @@ import "swiper/css/effect-coverflow";
|
||||
<div class="hot-items-div">
|
||||
<div class="van-grid">
|
||||
<router-link
|
||||
to="/Lottery"
|
||||
:to="{ path: 'Lottery', query: { id: item.id }}"
|
||||
class="van-grid-item"
|
||||
style="flex-basis: 25%"
|
||||
v-for="bp in dataBoPhieu"
|
||||
v-for="item, index in gameList"
|
||||
:key="index"
|
||||
>
|
||||
<div
|
||||
class="van-grid-item__content van-grid-item__content--center"
|
||||
>
|
||||
<div class="game_item_img van-image">
|
||||
<img
|
||||
class="van-image__img"
|
||||
:src="bp.ico"
|
||||
/>
|
||||
<img class="van-image__img" :src="getGameIcon(index)" />
|
||||
</div>
|
||||
<span>{{bp.name}}</span>
|
||||
<span>{{ item.name }}</span>
|
||||
</div>
|
||||
</router-link>
|
||||
</div>
|
||||
@ -108,9 +126,14 @@ import "swiper/css/effect-coverflow";
|
||||
</div>
|
||||
<div role="feed" class="van-list">
|
||||
<div class="movie_list_n">
|
||||
<router-link :to="`/HomeDetail/${girl.id}`" class="movie-list-n-item" v-for="girl in dataGirl" :key="girl.id">
|
||||
<router-link
|
||||
:to="`/HomeDetail/${girl.id}`"
|
||||
class="movie-list-n-item"
|
||||
v-for="girl in dataGirl"
|
||||
:key="girl.id"
|
||||
>
|
||||
<div class="movie-list-n-title">
|
||||
{{girl.name}}
|
||||
{{ girl.name }}
|
||||
</div>
|
||||
<div class="movie-list-n-img">
|
||||
<div class="movie-list-n-img van-image" lazy="loading">
|
||||
@ -122,7 +145,7 @@ import "swiper/css/effect-coverflow";
|
||||
/>
|
||||
</div>
|
||||
<div class="movie-list-n-lab">
|
||||
{{girl.address}}
|
||||
{{ girl.address }}
|
||||
</div>
|
||||
</div>
|
||||
<div class="movie-list-n-item-bottomm">
|
||||
|
@ -1,22 +1,20 @@
|
||||
<script setup>
|
||||
const games = [
|
||||
{
|
||||
id: 1,
|
||||
name: "BỎ PHIẾU 1",
|
||||
},
|
||||
{
|
||||
id: 2,
|
||||
name: "BỎ PHIẾU 2",
|
||||
},
|
||||
{
|
||||
id: 3,
|
||||
name: "BỎ PHIẾU 3",
|
||||
},
|
||||
{
|
||||
id: 4,
|
||||
name: "ĐẶC BIỆT",
|
||||
},
|
||||
];
|
||||
import { ref } from "vue";
|
||||
import axios from "@/axios";
|
||||
import API from "@/api";
|
||||
import { handleRequest } from "@/helpers/request";
|
||||
|
||||
const games = ref([]);
|
||||
const getGameList = () => {
|
||||
handleRequest(axios.get(API.PRODUCT_LIST)).then((res) => {
|
||||
if (res.success) {
|
||||
games.value = res.data;
|
||||
}
|
||||
});
|
||||
};
|
||||
|
||||
getGameList();
|
||||
|
||||
</script>
|
||||
|
||||
<template>
|
||||
|
@ -114,7 +114,7 @@ const confirmOrder = () => {
|
||||
}
|
||||
|
||||
if (!amount.value) {
|
||||
return showFailToast("Vui lòng nhập số tiền.");
|
||||
return showFailToast("Vui lòng nhập số điểm.");
|
||||
}
|
||||
|
||||
isShowConfirmOrder.value = true;
|
||||
@ -320,7 +320,7 @@ const formatResultText2 = (r) => {
|
||||
v-model.number="amount"
|
||||
type="number"
|
||||
inputmode="numeric"
|
||||
placeholder="Vui lòng nhập số tiền"
|
||||
placeholder="Vui lòng nhập số điểm"
|
||||
class="van-field__control"
|
||||
/>
|
||||
</div>
|
||||
|
@ -107,7 +107,7 @@ onRefresh();
|
||||
<span style="color: rgb(7, 193, 96)"></span>
|
||||
</div>
|
||||
<div class="time topInfoSp">
|
||||
<span>Số tiền đặt cược:{{ formatNumber(item.amount )}} Đ</span>
|
||||
<span>Số điểm đặt cược:{{ formatNumber(item.amount )}} Đ</span>
|
||||
</div>
|
||||
<div class="time">
|
||||
<span>Thời gian phục vụ:{{ formatDateTime(item.createdAt) }}</span>
|
||||
|
@ -6,12 +6,18 @@ import { storeToRefs } from "pinia";
|
||||
import { formatNumber } from "@/helpers/format";
|
||||
import { useRouter } from "vue-router";
|
||||
|
||||
import axios from "@/axios";
|
||||
import API from "@/api";
|
||||
import { handleRequest } from "@/helpers/request";
|
||||
|
||||
import VipTableImage from "@/assets/images/common/vip-table.jpg";
|
||||
|
||||
const router = useRouter();
|
||||
const userStore = useUserStore();
|
||||
const { userInfo, isLogin } = storeToRefs(userStore);
|
||||
|
||||
const loadingMoney = ref(false);
|
||||
const loadingScore = ref(false);
|
||||
const showVipTable = ref(false);
|
||||
|
||||
const withdrawLink = computed(() => {
|
||||
@ -21,6 +27,32 @@ const withdrawLink = computed(() => {
|
||||
const vipImgeSrc = computed(() => {
|
||||
return `/vip/vip${userInfo?.value?.vip ?? 1}.png`;
|
||||
});
|
||||
|
||||
const loadMoney = () => {
|
||||
loadingMoney.value = true;
|
||||
handleRequest(axios.get(API.USER_INFO + "/" + "money"))
|
||||
.then((res) => {
|
||||
userStore.updateUserInfo({ money: res.data })
|
||||
})
|
||||
.finally(() => {
|
||||
setTimeout(() => {
|
||||
loadingMoney.value = false;
|
||||
}, 500);
|
||||
});
|
||||
};
|
||||
|
||||
const loadScore = () => {
|
||||
loadingScore.value = true;
|
||||
handleRequest(axios.get(API.USER_INFO + "/" + "score"))
|
||||
.then((res) => {
|
||||
userStore.updateUserInfo({ score: res.data })
|
||||
})
|
||||
.finally(() => {
|
||||
setTimeout(() => {
|
||||
loadingScore.value = false;
|
||||
}, 500);
|
||||
});
|
||||
};
|
||||
</script>
|
||||
<template>
|
||||
<div class="mine page">
|
||||
@ -121,16 +153,28 @@ const vipImgeSrc = computed(() => {
|
||||
<span class="font-28 font-gray" style="font-size: 14px"
|
||||
>(100 Đ=100,000 VND)</span
|
||||
>
|
||||
<div class="refresh-btn">
|
||||
<div
|
||||
class="refresh-btn"
|
||||
:class="[
|
||||
loadingMoney
|
||||
? 'van-loading__spinner van-loading__spinner--circular'
|
||||
: '',
|
||||
]"
|
||||
@click="loadMoney"
|
||||
>
|
||||
<i class="van-icon van-icon-replay"></i>
|
||||
</div>
|
||||
</div>
|
||||
<div class="part-2">
|
||||
<p class="balance van-ellipsis" style="font-size: 24px">100/100</p>
|
||||
<p class="balance van-ellipsis" style="font-size: 24px"> {{ userInfo?.score }}/100</p>
|
||||
<span class="font-28 font-gray" style="font-size: 14px">
|
||||
Điểm tín nhiệm</span
|
||||
>
|
||||
<div class="refresh-btn">
|
||||
<div class="refresh-btn" :class="[
|
||||
loadingScore
|
||||
? 'van-loading__spinner van-loading__spinner--circular'
|
||||
: '',
|
||||
]" @click="loadScore">
|
||||
<i class="van-icon van-icon-replay"></i>
|
||||
</div>
|
||||
</div>
|
||||
|
@ -27,7 +27,7 @@ const { userInfo } = storeToRefs(userStore);
|
||||
<p class="title">Số lượng nhiệm vụ(Đ)</p>
|
||||
<p class="value">{{ formatNumber(userInfo.money) }}Đ</p>
|
||||
<p class="tip">
|
||||
Công thức tính lợi nhuận: số tiền thắng - số tiền nhiệm vụ
|
||||
Công thức tính lợi nhuận: số điểm thắng - số điểm nhiệm vụ
|
||||
</p>
|
||||
</div>
|
||||
<div class="content">
|
||||
@ -39,7 +39,7 @@ const { userInfo } = storeToRefs(userStore);
|
||||
</div>
|
||||
<div class="datalistitem">
|
||||
<div class="datalistitemValue">{{ formatNumber(userInfo?.moneyDeposit ?? 0) }}Đ</div>
|
||||
<div class="datalistitemKey">Số tiền nạp</div>
|
||||
<div class="datalistitemKey">Số điểm nạp</div>
|
||||
<div class="datalistitemRightLine"></div>
|
||||
</div>
|
||||
<div class="datalistitem">
|
||||
@ -49,7 +49,7 @@ const { userInfo } = storeToRefs(userStore);
|
||||
</div>
|
||||
<div class="datalistitem">
|
||||
<div class="datalistitemValue">{{ formatNumber(userInfo?.moneyWin ?? 0) }}Đ</div>
|
||||
<div class="datalistitemKey">Số tiền chiến thắng</div>
|
||||
<div class="datalistitemKey">Số điểm chiến thắng</div>
|
||||
<div class="datalistitemRightLine"></div>
|
||||
</div>
|
||||
</div>
|
||||
|
@ -43,14 +43,14 @@ const { userInfo } = storeToRefs(userStore);
|
||||
<router-link to="/Setsex" class="item van-hairline--bottom">
|
||||
<div class="left">Giới tính</div>
|
||||
<div class="right">
|
||||
<span class="desc">Không xác định</span
|
||||
<span class="desc">{{ userInfo.gender == 1 ? 'Nam giới' : userInfo.gender == 2 ? 'Nữ giới' : 'Không xác định'}}</span
|
||||
><i class="van-icon van-icon-arrow"></i>
|
||||
</div>
|
||||
</router-link>
|
||||
<router-link to="/Setbank" class="item van-hairline--bottom">
|
||||
<div class="left">Liên kết thông tin thẻ ngân hàng</div>
|
||||
<div class="right">
|
||||
<span class="desc">Không có</span
|
||||
<span class="desc">{{ userInfo.isSetBank ? 'Ràng buộc': 'Không có' }}</span
|
||||
><i class="van-icon van-icon-arrow"></i>
|
||||
</div>
|
||||
</router-link>
|
||||
|
@ -1,3 +1,60 @@
|
||||
<script setup>
|
||||
import { reactive, ref } from "vue";
|
||||
import axios from "@/axios";
|
||||
import API from "@/api";
|
||||
import { handleRequest } from "@/helpers/request";
|
||||
import { formatNumber, formatDateTime } from "@/helpers/format";
|
||||
import { showToast } from "vant";
|
||||
|
||||
const list = ref([]);
|
||||
const loading = ref(false);
|
||||
const finished = ref(false);
|
||||
const refreshing = ref(false);
|
||||
|
||||
const params = reactive({
|
||||
page: 1,
|
||||
size: 10,
|
||||
});
|
||||
|
||||
const onLoad = async () => {
|
||||
const data = await getData();
|
||||
loading.value = false;
|
||||
if (refreshing.value) {
|
||||
list.value = data;
|
||||
refreshing.value = false;
|
||||
return showToast("Làm mới thành công.");
|
||||
}
|
||||
|
||||
list.value.unshift(...data);
|
||||
if (data.length < params.size) {
|
||||
finished.value = true;
|
||||
}
|
||||
};
|
||||
|
||||
const onRefresh = () => {
|
||||
params.page = 1;
|
||||
finished.value = false;
|
||||
loading.value = true;
|
||||
onLoad();
|
||||
};
|
||||
|
||||
const getData = async () => {
|
||||
const res = await handleRequest(axios.get(API.USER_MONEY_LOGS, { params }));
|
||||
if (res.success) {
|
||||
params.page += 1;
|
||||
return res.data;
|
||||
}
|
||||
return [];
|
||||
};
|
||||
|
||||
const colorStyle = (amount) => {
|
||||
return amount > 0 ? {
|
||||
color: "#07c160"
|
||||
} : {}
|
||||
}
|
||||
onRefresh();
|
||||
</script>
|
||||
|
||||
<template>
|
||||
<div class="container page">
|
||||
<div class="header">
|
||||
@ -14,11 +71,48 @@
|
||||
</div>
|
||||
</div>
|
||||
<div class="content">
|
||||
<div class="van-pull-refresh">
|
||||
<div class="van-pull-refresh__track" style="transition-duration: 0ms">
|
||||
<div class="van-pull-refresh__head"></div>
|
||||
</div>
|
||||
</div>
|
||||
<van-pull-refresh
|
||||
v-model="refreshing"
|
||||
@refresh="onRefresh"
|
||||
pulling-text="Kéo lên để làm mới..."
|
||||
loading-text="Đang tải..."
|
||||
loosing-text="Phát hiện có thể làm mới được"
|
||||
style="height: 100%; overflow: auto"
|
||||
>
|
||||
<van-empty description="Dữ liệu trống" v-if="!list.length" />
|
||||
<van-list
|
||||
v-else
|
||||
v-model:loading="loading"
|
||||
error-text="Lỗi"
|
||||
loading-text="Đang tải..."
|
||||
:finished="finished"
|
||||
finished-text=""
|
||||
@load="onLoad"
|
||||
>
|
||||
<div v-for="item in list" :key="item" class="listItem">
|
||||
<div>
|
||||
<div class="listTitle">{{ item.note }}</div>
|
||||
<div class="listTime">
|
||||
<div class="listTimeText">{{ formatDateTime(item.createAt) }}</div>
|
||||
</div>
|
||||
</div>
|
||||
<div style="flex: 1 1 0%"></div>
|
||||
<div class="listMoney" :style="colorStyle(item.amount > 0)">{{ formatNumber(item.amount) }}Đ</div>
|
||||
</div>
|
||||
</van-list>
|
||||
</van-pull-refresh>
|
||||
</div>
|
||||
</div>
|
||||
</template>
|
||||
<style scoped>
|
||||
.listItem {
|
||||
margin-bottom: 2.667vw;
|
||||
padding: 2.667vw;
|
||||
position: relative;
|
||||
color: #000;
|
||||
background-color: #fff;
|
||||
display: flex;
|
||||
justify-content: center;
|
||||
align-items: center;
|
||||
}
|
||||
</style>
|
||||
|
@ -1,18 +1,35 @@
|
||||
<script setup>
|
||||
import { ref } from "vue";
|
||||
import { showFailToast } from "vant";
|
||||
import { useUserStore } from "@/store/user";
|
||||
import { storeToRefs } from "pinia";
|
||||
import { formatNumber } from "@/helpers/format"
|
||||
import { formatNumber } from "@/helpers/format";
|
||||
import { computed } from "vue";
|
||||
// const router = useRouter();
|
||||
|
||||
import axios from "@/axios";
|
||||
import API from "@/api";
|
||||
import { handleRequest } from "@/helpers/request";
|
||||
|
||||
const userStore = useUserStore();
|
||||
const { userInfo } = storeToRefs(userStore);
|
||||
|
||||
const banks = ref([]);
|
||||
|
||||
const setBankLink = computed(() => {
|
||||
return userInfo.value.isSetPayPass ? "/BindCard" : "/SetPayPassword";
|
||||
});
|
||||
|
||||
const getBankList = () => {
|
||||
handleRequest(axios.get(API.BANK_LIST)).then(res => {
|
||||
if(res.success) {
|
||||
banks.value = res.data;
|
||||
}
|
||||
});
|
||||
};
|
||||
|
||||
getBankList();
|
||||
|
||||
</script>
|
||||
<template>
|
||||
<div class="container page">
|
||||
@ -28,10 +45,21 @@ const setBankLink = computed(() => {
|
||||
</div>
|
||||
</div>
|
||||
<div class="wrapper" style="background-color: #f2f2f5">
|
||||
<router-link :to="setBankLink" class="add-card">
|
||||
<router-link
|
||||
:to="setBankLink"
|
||||
class="add-card"
|
||||
v-if="!userInfo.isSetBank"
|
||||
>
|
||||
<i class="van-icon van-icon-plus"></i
|
||||
><span>Thêm tài khoản ngân hàng</span>
|
||||
</router-link>
|
||||
<div class="bank" v-else>
|
||||
<div class="info" v-for="item, index in banks" :key="index">
|
||||
<div class="row-content">{{ item.bankName }}</div>
|
||||
<div class="row-content">{{ item.holder }}</div>
|
||||
<div class="row-content"></div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="tips">
|
||||
Nhắc nhở: Vui lòng liên kết với ngân hàng. Nếu cần sửa đổi, vui lòng
|
||||
liên hệ bộ phận chăm sóc khách hàng trực tuyến
|
||||
|
@ -1,6 +1,31 @@
|
||||
<script setup>
|
||||
import { ref } from "vue";
|
||||
const checked = ref("1");
|
||||
import { useRouter } from 'vue-router'
|
||||
import { useUserStore } from "@/store/user";
|
||||
import { storeToRefs } from "pinia";
|
||||
|
||||
import axios from "@/axios";
|
||||
import API from "@/api";
|
||||
import { handleRequest } from "@/helpers/request";
|
||||
import { showFailToast } from "vant";
|
||||
|
||||
const router = useRouter();
|
||||
const userStore = useUserStore();
|
||||
const { userInfo } = storeToRefs(userStore);
|
||||
|
||||
const checked = ref(userInfo.value?.gender ?? 0);
|
||||
|
||||
const onChangeGender = (e) => {
|
||||
handleRequest(axios.post(API.USER_SET_GENDER, { gender: e })).then((res) => {
|
||||
if (res.success) {
|
||||
showFailToast('Thành công.')
|
||||
router.push("/Infomation")
|
||||
} else {
|
||||
showFailToast(res.message ?? "Lỗi")
|
||||
}
|
||||
});
|
||||
};
|
||||
|
||||
</script>
|
||||
<template>
|
||||
<div class="container page">
|
||||
@ -16,9 +41,9 @@ const checked = ref("1");
|
||||
</div>
|
||||
</div>
|
||||
<div class="sex">
|
||||
<van-radio-group v-model="checked">
|
||||
<van-radio name="1">Nam giới</van-radio>
|
||||
<van-radio name="2">Nữ giới</van-radio>
|
||||
<van-radio-group v-model="checked" @change="onChangeGender">
|
||||
<van-radio :name="1">Nam giới</van-radio>
|
||||
<van-radio :name="2">Nữ giới</van-radio>
|
||||
</van-radio-group>
|
||||
</div>
|
||||
</div>
|
||||
|
@ -21,14 +21,14 @@ const formData = reactive({
|
||||
|
||||
const submit = () => {
|
||||
if (isNaN(formData.amount) || formData.amount <= 0) {
|
||||
return showFailToast("Vui lòng điền số tiền chính xác.");
|
||||
return showFailToast("Vui lòng điền số điểm chính xác.");
|
||||
}
|
||||
if (!formData.password_withdraw) {
|
||||
return showFailToast("Vui lòng nhập mật khẩu rút tiền");
|
||||
return showFailToast("Vui lòng nhập mật khẩu rút");
|
||||
}
|
||||
handleRequest(axios.post(API.TRANSACTION_WITHDRAW, formData)).then((res) => {
|
||||
if (res.success) {
|
||||
showFailToast("Rút tiền thành công.");
|
||||
showFailToast("Rút thành công.");
|
||||
router.push("/mine");
|
||||
} else {
|
||||
showFailToast(res.message ?? "Lỗi");
|
||||
|
@ -89,13 +89,13 @@ onRefresh();
|
||||
<div v-for="item in list" :key="item" class="item_list">
|
||||
<div class="topInfo">
|
||||
<span style="color: rgb(7, 193, 96)" v-if="item.status == 1"
|
||||
>Trả tiền</span
|
||||
>Trả điểm</span
|
||||
>
|
||||
<span v-else-if="item.status == 0">Chưa thanh toán</span>
|
||||
<span style="color: rgb(7, 193, 96)" v-else
|
||||
<span style="color: #ff253f" v-else
|
||||
>Thanh toán thất bại</span
|
||||
>
|
||||
<span>Số tiền:{{ formatNumber(item.amount) }}Đ</span>
|
||||
<span>Số điểm: {{ formatNumber(item.amount) }}Đ</span>
|
||||
</div>
|
||||
<div class="desc">
|
||||
<span>Minh họa:{{ item.note }}</span>
|
||||
|
Loading…
x
Reference in New Issue
Block a user