接入两个接口
This commit is contained in:
10
src/apis.js
10
src/apis.js
@@ -433,6 +433,14 @@ export const getPointBookDetailAPI = async (id) => {
|
||||
return request("GET", `/user/score/sheet/detail?id=${id}`);
|
||||
};
|
||||
|
||||
export const getPractiseDataAPI = async () => {
|
||||
export const getPointBookDataAPI = async () => {
|
||||
return request("GET", "/user/score/sheet/statistics");
|
||||
};
|
||||
|
||||
export const getPractiseDataAPI = async () => {
|
||||
return request("GET", "/user/practice/statistics");
|
||||
};
|
||||
|
||||
export const getBattleDataAPI = async () => {
|
||||
return request("GET", "/user/fight/statistics");
|
||||
};
|
||||
|
||||
@@ -1,12 +1,13 @@
|
||||
<script setup>
|
||||
import { ref } from "vue";
|
||||
import { onShow } from "@dcloudio/uni-app";
|
||||
import Container from "@/components/Container.vue";
|
||||
import Guide from "@/components/Guide.vue";
|
||||
import SButton from "@/components/SButton.vue";
|
||||
import SModal from "@/components/SModal.vue";
|
||||
import CreateRoom from "@/components/CreateRoom.vue";
|
||||
import Avatar from "@/components/Avatar.vue";
|
||||
import { getRoomAPI, joinRoomAPI, isGamingAPI } from "@/apis";
|
||||
import { getRoomAPI, joinRoomAPI, isGamingAPI, getBattleDataAPI } from "@/apis";
|
||||
import useStore from "@/store";
|
||||
import { storeToRefs } from "pinia";
|
||||
const store = useStore();
|
||||
@@ -16,6 +17,7 @@ import { debounce } from "@/util";
|
||||
const showModal = ref(false);
|
||||
const warnning = ref("");
|
||||
const roomNumber = ref("");
|
||||
const data = ref({});
|
||||
|
||||
const enterRoom = debounce(async () => {
|
||||
const isGaming = await isGamingAPI();
|
||||
@@ -60,6 +62,10 @@ const onCreateRoom = async () => {
|
||||
warnning.value = "";
|
||||
showModal.value = true;
|
||||
};
|
||||
onShow(async () => {
|
||||
const result = await getBattleDataAPI();
|
||||
data.value = result;
|
||||
});
|
||||
</script>
|
||||
|
||||
<template>
|
||||
@@ -79,23 +85,33 @@ const onCreateRoom = async () => {
|
||||
<view>
|
||||
<view>
|
||||
<view>
|
||||
<text>1111</text>
|
||||
<text>{{ data.TotalBattle }}</text>
|
||||
<text>局</text>
|
||||
</view>
|
||||
<text>约战数量</text>
|
||||
</view>
|
||||
<view>
|
||||
<view>
|
||||
<text>1111</text>
|
||||
<text>{{ data.totalArrow }}</text>
|
||||
<text>箭</text>
|
||||
</view>
|
||||
<text>射箭量</text>
|
||||
</view>
|
||||
<view>
|
||||
<view class="stars">
|
||||
<image src="../static/star-full.png" mode="widthFix" />
|
||||
<image src="../static/star-full.png" mode="widthFix" />
|
||||
<image src="../static/star-half.png" mode="widthFix" />
|
||||
<block v-for="i in 5" :key="i">
|
||||
<image
|
||||
v-if="data.totalWinningRate >= i * 0.2"
|
||||
src="../static/star-full.png"
|
||||
mode="widthFix"
|
||||
/>
|
||||
<image
|
||||
v-else-if="data.totalWinningRate >= (i - 1) * 0.2 + 0.1"
|
||||
src="../static/star-half.png"
|
||||
mode="widthFix"
|
||||
/>
|
||||
<image v-else src="../static/star-empty.png" mode="widthFix" />
|
||||
</block>
|
||||
</view>
|
||||
<text>挑战难度</text>
|
||||
</view>
|
||||
@@ -279,9 +295,9 @@ const onCreateRoom = async () => {
|
||||
}
|
||||
.my-data > view:last-child > view > view > text:first-child {
|
||||
color: #fff;
|
||||
font-size: 17px;
|
||||
font-size: 20px;
|
||||
margin-right: 5px;
|
||||
transform: translateY(3px);
|
||||
transform: translateY(4px);
|
||||
}
|
||||
.my-data > view:last-child > view:nth-child(2) {
|
||||
border-left: 1px solid #48494e;
|
||||
@@ -293,7 +309,7 @@ const onCreateRoom = async () => {
|
||||
height: 20px;
|
||||
}
|
||||
.stars > image {
|
||||
width: 5vw;
|
||||
width: 4vw;
|
||||
margin: 0 1px;
|
||||
}
|
||||
</style>
|
||||
|
||||
@@ -4,7 +4,7 @@ import { onShow } from "@dcloudio/uni-app";
|
||||
import Container from "@/components/Container.vue";
|
||||
import EditOption from "@/components/EditOption.vue";
|
||||
import SButton from "@/components/SButton.vue";
|
||||
import { getPractiseDataAPI } from "@/apis";
|
||||
import { getPointBookDataAPI } from "@/apis";
|
||||
|
||||
const expandIndex = ref(0);
|
||||
const bowType = ref({});
|
||||
@@ -60,7 +60,7 @@ const toEditPage = () => {
|
||||
}
|
||||
};
|
||||
onShow(async () => {
|
||||
const result = await getPractiseDataAPI();
|
||||
const result = await getPointBookDataAPI();
|
||||
if (result) {
|
||||
days.value = result.total_day || 0;
|
||||
arrows.value = result.total_arrow || 0;
|
||||
|
||||
@@ -1,12 +1,16 @@
|
||||
<script setup>
|
||||
import { ref } from "vue";
|
||||
import { onShow } from "@dcloudio/uni-app";
|
||||
import Container from "@/components/Container.vue";
|
||||
import Guide from "@/components/Guide.vue";
|
||||
import Avatar from "@/components/Avatar.vue";
|
||||
import { getPractiseDataAPI } from "@/apis";
|
||||
|
||||
import useStore from "@/store";
|
||||
import { storeToRefs } from "pinia";
|
||||
const store = useStore();
|
||||
const { user } = storeToRefs(store);
|
||||
const data = ref({});
|
||||
|
||||
const toPractiseOne = () => {
|
||||
uni.navigateTo({
|
||||
@@ -19,6 +23,11 @@ const toPractiseTwo = () => {
|
||||
url: "/pages/practise-two",
|
||||
});
|
||||
};
|
||||
|
||||
onShow(async () => {
|
||||
const result = await getPractiseDataAPI();
|
||||
data.value = result;
|
||||
});
|
||||
</script>
|
||||
|
||||
<template>
|
||||
@@ -40,17 +49,23 @@ const toPractiseTwo = () => {
|
||||
</view>
|
||||
<view>
|
||||
<text>已练习打卡</text>
|
||||
<text>12121</text>
|
||||
<text>{{ data.totalDay }}</text>
|
||||
<text>天</text>
|
||||
</view>
|
||||
</view>
|
||||
<view>
|
||||
<view>
|
||||
<view><text>1111</text><text>组</text></view>
|
||||
<view>
|
||||
<text>{{ data.totalGroup }}</text>
|
||||
<text>组</text>
|
||||
</view>
|
||||
<text>个人练习量</text>
|
||||
</view>
|
||||
<view>
|
||||
<view><text>1111</text><text>箭</text></view>
|
||||
<view>
|
||||
<text>{{ data.totalArrow }}</text>
|
||||
<text>箭</text>
|
||||
</view>
|
||||
<text>射箭量</text>
|
||||
</view>
|
||||
<view>
|
||||
@@ -116,7 +131,7 @@ const toPractiseTwo = () => {
|
||||
.practise-data > view:first-child > view:last-child > text:nth-child(2) {
|
||||
color: #f7d247;
|
||||
margin: 0 3px;
|
||||
font-size: 18px;
|
||||
font-size: 20px;
|
||||
font-weight: 600;
|
||||
transform: translateY(3px);
|
||||
}
|
||||
@@ -139,11 +154,11 @@ const toPractiseTwo = () => {
|
||||
align-items: flex-end;
|
||||
}
|
||||
.practise-data > view:last-child > view > view > text:nth-last-child(2) {
|
||||
font-size: 18px;
|
||||
font-size: 20px;
|
||||
font-weight: 600;
|
||||
color: #fff;
|
||||
margin: 0 3px;
|
||||
transform: translateY(3px);
|
||||
transform: translateY(5px);
|
||||
}
|
||||
.practise-data > view:last-child > view > text {
|
||||
margin-top: 5px;
|
||||
|
||||
BIN
src/static/star-empty.png
Normal file
BIN
src/static/star-empty.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 554 B |
Reference in New Issue
Block a user