update:代码备份
This commit is contained in:
108
src/pages/training/components/ScorePanel2.vue
Normal file
108
src/pages/training/components/ScorePanel2.vue
Normal file
@@ -0,0 +1,108 @@
|
|||||||
|
<script setup>
|
||||||
|
import { computed } from "vue";
|
||||||
|
|
||||||
|
const props = defineProps({
|
||||||
|
arrows: {
|
||||||
|
type: Array,
|
||||||
|
default: () => [],
|
||||||
|
},
|
||||||
|
total: {
|
||||||
|
type: Number,
|
||||||
|
default: 0,
|
||||||
|
},
|
||||||
|
});
|
||||||
|
|
||||||
|
const getDisplayText = (arrow = {}) => {
|
||||||
|
if (!arrow || !arrow.ring) return "";
|
||||||
|
return arrow.ringX ? "X" : String(arrow.ring);
|
||||||
|
};
|
||||||
|
|
||||||
|
const isLowScore = (arrow = {}) => {
|
||||||
|
if (!arrow || !arrow.ring || arrow.ringX) return false;
|
||||||
|
return Number(arrow.ring) < 8;
|
||||||
|
};
|
||||||
|
|
||||||
|
const displayArrows = computed(() => {
|
||||||
|
const list = [...props.arrows];
|
||||||
|
if (props.total > 0 && list.length < props.total) {
|
||||||
|
list.push(null);
|
||||||
|
}
|
||||||
|
return list;
|
||||||
|
});
|
||||||
|
</script>
|
||||||
|
|
||||||
|
<template>
|
||||||
|
<view v-if="displayArrows.length" class="score-panel">
|
||||||
|
<view class="score-grid">
|
||||||
|
<view
|
||||||
|
v-for="(arrow, index) in displayArrows"
|
||||||
|
:key="index"
|
||||||
|
class="score-card"
|
||||||
|
>
|
||||||
|
<image class="score-card-bg" src="../../../static/training-difficulty-design/block-gold.png"></image>
|
||||||
|
<text
|
||||||
|
class="score-value"
|
||||||
|
:class="{ 'score-value--low': isLowScore(arrow) }"
|
||||||
|
>
|
||||||
|
{{ getDisplayText(arrow) }}
|
||||||
|
</text>
|
||||||
|
</view>
|
||||||
|
</view>
|
||||||
|
</view>
|
||||||
|
</template>
|
||||||
|
|
||||||
|
<style scoped lang="scss">
|
||||||
|
.score-panel {
|
||||||
|
width: 100%;
|
||||||
|
padding: 30rpx 40rpx 0 40rpx;
|
||||||
|
box-sizing: border-box;
|
||||||
|
}
|
||||||
|
|
||||||
|
.score-grid {
|
||||||
|
display: flex;
|
||||||
|
flex-wrap: wrap;
|
||||||
|
}
|
||||||
|
|
||||||
|
.score-card {
|
||||||
|
position: relative;
|
||||||
|
width: 100rpx;
|
||||||
|
height: 56rpx;
|
||||||
|
display: flex;
|
||||||
|
align-items: center;
|
||||||
|
justify-content: center;
|
||||||
|
overflow: hidden;
|
||||||
|
margin-right: 14rpx;
|
||||||
|
margin-bottom: 14rpx;
|
||||||
|
}
|
||||||
|
|
||||||
|
.score-card:nth-child(6n) {
|
||||||
|
margin-right: 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
.score-card-bg {
|
||||||
|
position: absolute;
|
||||||
|
top: 0;
|
||||||
|
left: 0;
|
||||||
|
width: 100rpx;
|
||||||
|
height: 56rpx;
|
||||||
|
}
|
||||||
|
|
||||||
|
.score-value {
|
||||||
|
position: relative;
|
||||||
|
z-index: 1;
|
||||||
|
min-width: 28rpx;
|
||||||
|
text-align: center;
|
||||||
|
font-size: 34rpx;
|
||||||
|
line-height: 1;
|
||||||
|
font-weight: 700;
|
||||||
|
font-style: italic;
|
||||||
|
color: #f6e3b2;
|
||||||
|
text-shadow: 0 2rpx 0 rgba(36, 36, 48, 0.5);
|
||||||
|
margin-left: -10rpx;
|
||||||
|
}
|
||||||
|
|
||||||
|
.score-value--low {
|
||||||
|
color: #cfcfcf;
|
||||||
|
text-shadow: 0 2rpx 0 rgba(0, 0, 0, 0.5);
|
||||||
|
}
|
||||||
|
</style>
|
||||||
@@ -4,7 +4,7 @@ import { onLoad } from "@dcloudio/uni-app";
|
|||||||
import Container from "@/components/Container.vue";
|
import Container from "@/components/Container.vue";
|
||||||
import ShootProgress from "./components/ShootProgress.vue";
|
import ShootProgress from "./components/ShootProgress.vue";
|
||||||
import BowTarget from "./components/BowTarget.vue";
|
import BowTarget from "./components/BowTarget.vue";
|
||||||
import ScorePanel2 from "@/components/ScorePanel2.vue";
|
import ScorePanel2 from "./components/ScorePanel2.vue";
|
||||||
import ScoreResult from "@/components/ScoreResult.vue";
|
import ScoreResult from "@/components/ScoreResult.vue";
|
||||||
import Avatar from "@/components/Avatar.vue";
|
import Avatar from "@/components/Avatar.vue";
|
||||||
import BowPower from "@/components/BowPower.vue";
|
import BowPower from "@/components/BowPower.vue";
|
||||||
@@ -153,15 +153,23 @@ onBeforeUnmount(() => {
|
|||||||
mode="aspectFit"
|
mode="aspectFit"
|
||||||
/>
|
/>
|
||||||
</button>
|
</button>
|
||||||
<view class="bat-text-box">
|
<view class="bat-text-big-box">
|
||||||
<image
|
<image
|
||||||
class="dao-icon"
|
class="dao-icon"
|
||||||
src="/static/dao-icon.png"
|
src="../../static/training-difficulty-design/dao-icon.png"
|
||||||
mode="widthFix"
|
mode="widthFix"
|
||||||
/>
|
/>
|
||||||
|
<view class="bat-text-box">
|
||||||
|
<view class="bat-text-small-box">
|
||||||
|
<view class="text-round-box">
|
||||||
|
<view class="text1">每箭命中9环之上</view>
|
||||||
|
<view class="text2">剩余<text class="text2-yellow">3</text>箭</view>
|
||||||
|
</view>
|
||||||
|
</view>
|
||||||
|
</view>
|
||||||
</view>
|
</view>
|
||||||
</view>
|
</view>
|
||||||
<ScorePanel2 :arrows="scores" />
|
<ScorePanel2 :arrows="scores" :total="total" />
|
||||||
<ScoreResult
|
<ScoreResult
|
||||||
v-if="practiseResult.details"
|
v-if="practiseResult.details"
|
||||||
:rowCount="6"
|
:rowCount="6"
|
||||||
@@ -223,16 +231,13 @@ onBeforeUnmount(() => {
|
|||||||
.sound-text-box{
|
.sound-text-box{
|
||||||
height: 125rpx;
|
height: 125rpx;
|
||||||
padding: 0 56rpx;
|
padding: 0 56rpx;
|
||||||
background: pink;
|
display: flex;
|
||||||
|
align-items: flex-end;
|
||||||
}
|
}
|
||||||
.sound-btn {
|
.sound-btn {
|
||||||
width: 76rpx;
|
width: 76rpx;
|
||||||
height: 70rpx;
|
height: 70rpx;
|
||||||
border: none;
|
border: none;
|
||||||
display: flex;
|
|
||||||
align-items: center;
|
|
||||||
justify-content: center;
|
|
||||||
margin-left: 56rpx;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
.sound-btn::after {
|
.sound-btn::after {
|
||||||
@@ -243,7 +248,7 @@ onBeforeUnmount(() => {
|
|||||||
width: 76rpx;
|
width: 76rpx;
|
||||||
height: 70rpx;
|
height: 70rpx;
|
||||||
}
|
}
|
||||||
.bat-bext-box{
|
.bat-text-big-box{
|
||||||
flex: 1;
|
flex: 1;
|
||||||
position: relative;
|
position: relative;
|
||||||
}
|
}
|
||||||
@@ -254,4 +259,42 @@ onBeforeUnmount(() => {
|
|||||||
left: 0;
|
left: 0;
|
||||||
bottom: 0;
|
bottom: 0;
|
||||||
}
|
}
|
||||||
|
.text-round-box{
|
||||||
|
width: 100%;
|
||||||
|
}
|
||||||
|
.bat-text-box{
|
||||||
|
display: flex;
|
||||||
|
}
|
||||||
|
.bat-text-small-box{
|
||||||
|
background: rgba(0, 0, 0, 0.5);
|
||||||
|
width: auto;
|
||||||
|
min-width: 100rpx;
|
||||||
|
border-radius: 16rpx 60rpx 60rpx 16rpx;
|
||||||
|
display: flex;
|
||||||
|
flex-direction: column;
|
||||||
|
justify-content: center;
|
||||||
|
padding-left: 176rpx;
|
||||||
|
height: 112rpx;
|
||||||
|
padding-right: 30rpx;
|
||||||
|
font-size: 30rpx;
|
||||||
|
color: #E7BA80;
|
||||||
|
}
|
||||||
|
.text1{
|
||||||
|
font-size: 30rpx;
|
||||||
|
font-weight: 400;
|
||||||
|
color: #E7BA80;
|
||||||
|
line-height: 42rpx;
|
||||||
|
}
|
||||||
|
.text2{
|
||||||
|
color: #FFFFFF;
|
||||||
|
font-size: 26rpx;
|
||||||
|
font-weight: 400;
|
||||||
|
line-height: 36rpx;
|
||||||
|
}
|
||||||
|
.text2-yellow{
|
||||||
|
font-size: 30rpx;
|
||||||
|
color: #FFD947;
|
||||||
|
font-weight: 500;
|
||||||
|
margin: 0 4rpx;
|
||||||
|
}
|
||||||
</style>
|
</style>
|
||||||
|
|||||||
BIN
src/static/training-difficulty-design/block-gold.png
Normal file
BIN
src/static/training-difficulty-design/block-gold.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 10 KiB |
BIN
src/static/training-difficulty-design/block-gray.png
Normal file
BIN
src/static/training-difficulty-design/block-gray.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 5.1 KiB |
BIN
src/static/training-difficulty-design/cha.png
Normal file
BIN
src/static/training-difficulty-design/cha.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 1.5 KiB |
BIN
src/static/training-difficulty-design/gou.png
Normal file
BIN
src/static/training-difficulty-design/gou.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 1.4 KiB |
Reference in New Issue
Block a user