|
@@ -0,0 +1,260 @@
|
|
|
|
+<template>
|
|
|
|
+ <div class="sunshineRun">
|
|
|
|
+ <div class="sunshineRun-left">
|
|
|
|
+ <div class="sunshineRun-title">智慧阳光跑</div>
|
|
|
|
+ <div class="list-box">
|
|
|
|
+ <div class="sunshineRun-columns-title">
|
|
|
|
+ <div class="title">实时数据</div>
|
|
|
|
+ </div>
|
|
|
|
+ <div class="list">
|
|
|
|
+ <ul>
|
|
|
|
+ <li></li>
|
|
|
|
+ </ul>
|
|
|
|
+ </div>
|
|
|
|
+ </div>
|
|
|
|
+ </div>
|
|
|
|
+ <div class="sunshineRun-right">
|
|
|
|
+ <div class="sunshineRun-columns-title">
|
|
|
|
+ <div class="title">排行榜</div>
|
|
|
|
+ </div>
|
|
|
|
+ <div class="reportList">
|
|
|
|
+ <ul>
|
|
|
|
+ <li v-for="(item, index) in reportList" :key="index">
|
|
|
|
+ <div class="left">
|
|
|
|
+ <div class="pic"><img :src="item.face_pic || item.logo_url || item.student_icon_url" /></div>
|
|
|
|
+ <div class="txt">
|
|
|
|
+ <div>
|
|
|
|
+ <div class="name">{{ item.student_name }}</div>
|
|
|
|
+ <div class="className">{{ item.class_name }}</div>
|
|
|
|
+ </div>
|
|
|
|
+ </div>
|
|
|
|
+ </div>
|
|
|
|
+ <div class="right" v-if="['basketballv1', 'footballv1'].includes(parameter.project)">
|
|
|
|
+ <div class="score">{{ proxy?.$utils.runTime(item.result, true, false) }}
|
|
|
|
+ </div>
|
|
|
|
+ </div>
|
|
|
|
+ <div class="right" v-else>
|
|
|
|
+ <div class="score">{{ item.result }}
|
|
|
|
+ </div>
|
|
|
|
+ <div class="unit">{{ unit }}</div>
|
|
|
|
+ </div>
|
|
|
|
+ </li>
|
|
|
|
+ </ul>
|
|
|
|
+ </div>
|
|
|
|
+ </div>
|
|
|
|
+ </div>
|
|
|
|
+</template>
|
|
|
|
+
|
|
|
|
+<script setup name="SunshineRun" lang="ts">
|
|
|
|
+const { proxy } = getCurrentInstance() as any;
|
|
|
|
+const router = useRouter();
|
|
|
|
+const reportScrollRef = ref();
|
|
|
|
+
|
|
|
|
+const data = reactive<any>({
|
|
|
|
+ reportList: []
|
|
|
|
+});
|
|
|
|
+
|
|
|
|
+const {
|
|
|
|
+ reportList
|
|
|
|
+} = toRefs(data);
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+onBeforeMount(() => {
|
|
|
|
+})
|
|
|
|
+
|
|
|
|
+onMounted(() => {
|
|
|
|
+})
|
|
|
|
+
|
|
|
|
+onBeforeUnmount(() => {
|
|
|
|
+})
|
|
|
|
+</script>
|
|
|
|
+
|
|
|
|
+<style lang="scss" scoped>
|
|
|
|
+.sunshineRun {
|
|
|
|
+ width: 100%;
|
|
|
|
+ height: 100%;
|
|
|
|
+ padding: 1.5vw 0 1vw 0;
|
|
|
|
+ display: flex;
|
|
|
|
+ box-sizing: border-box;
|
|
|
|
+ justify-content: space-evenly;
|
|
|
|
+ background: #3BDDCE url("@/assets/images/sunshineRun/bg.png") top center no-repeat;
|
|
|
|
+ background-size: cover;
|
|
|
|
+
|
|
|
|
+ .sunshineRun-title {
|
|
|
|
+ width: 100%;
|
|
|
|
+ text-align: center;
|
|
|
|
+ position: absolute;
|
|
|
|
+ top: -1vw;
|
|
|
|
+ font-size: 38px;
|
|
|
|
+ // font-weight: bold;
|
|
|
|
+ line-height: normal;
|
|
|
|
+ letter-spacing: 6px;
|
|
|
|
+ color: #0E1824;
|
|
|
|
+ padding-left: 10%;
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ .sunshineRun-columns-title {
|
|
|
|
+ display: flex;
|
|
|
|
+
|
|
|
|
+ .title {
|
|
|
|
+ border-top-left-radius: 18px;
|
|
|
|
+ border-top-right-radius: 18px;
|
|
|
|
+ background: radial-gradient(374% 336% at 36% 50%, #FFFFFF 0%, #07FFE7 100%);
|
|
|
|
+ box-shadow: inset 0px 1px 0px 2px rgba(255, 255, 255, 0.5577);
|
|
|
|
+ font-size: 28px;
|
|
|
|
+ padding: 4px 35px;
|
|
|
|
+ letter-spacing: 5px;
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ .sunshineRun-left {
|
|
|
|
+ width: 76%;
|
|
|
|
+ display: flex;
|
|
|
|
+ flex-direction: column;
|
|
|
|
+ position: relative;
|
|
|
|
+
|
|
|
|
+ .list-box {
|
|
|
|
+ display: flex;
|
|
|
|
+ flex-direction: column;
|
|
|
|
+ height: 100%;
|
|
|
|
+
|
|
|
|
+ .list {
|
|
|
|
+ width: 100%;
|
|
|
|
+ height: 100%;
|
|
|
|
+ border-radius: 18px;
|
|
|
|
+ background: linear-gradient(170deg, #276066 -13%, #09111B 87%);
|
|
|
|
+ box-sizing: border-box;
|
|
|
|
+ border: 1px solid #FFFFFF;
|
|
|
|
+ box-shadow: 0px 0px 6px 2px rgba(255, 255, 255, 0.5);
|
|
|
|
+ border-top-left-radius: 0px;
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ .sunshineRun-right {
|
|
|
|
+ width: 21%;
|
|
|
|
+ display: flex;
|
|
|
|
+ flex-direction: column;
|
|
|
|
+
|
|
|
|
+ .sunshineRun-right-title {}
|
|
|
|
+
|
|
|
|
+ .reportList {
|
|
|
|
+ width: 100%;
|
|
|
|
+ border-radius: 18px;
|
|
|
|
+ background: radial-gradient(90% 90% at 50% 100%, #38869E 0%, #38869E 50%, #17323D 100%);
|
|
|
|
+ box-sizing: border-box;
|
|
|
|
+ border: 1px solid #FFFFFF;
|
|
|
|
+ display: flex;
|
|
|
|
+ flex-direction: column;
|
|
|
|
+ height: 100%;
|
|
|
|
+ border-top-left-radius: 0px;
|
|
|
|
+
|
|
|
|
+ .title {
|
|
|
|
+ height: 7.05vh;
|
|
|
|
+ line-height: 7.05vh;
|
|
|
|
+ width: 100%;
|
|
|
|
+ text-align: center;
|
|
|
|
+ color: #1A293A;
|
|
|
|
+ font-size: 1.65rem;
|
|
|
|
+ background: radial-gradient(120% 126% at 5% 93%, #8EFFA9 0%, #07FFE7 100%);
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ ul {
|
|
|
|
+ height: 100%;
|
|
|
|
+ overflow-y: scroll;
|
|
|
|
+
|
|
|
|
+ li {
|
|
|
|
+ border-bottom: 1px solid #48677E;
|
|
|
|
+ padding: 8px 30px;
|
|
|
|
+ display: flex;
|
|
|
|
+ justify-content: space-between;
|
|
|
|
+ align-items: center;
|
|
|
|
+ cursor: pointer;
|
|
|
|
+ transition: all 0.2s;
|
|
|
|
+
|
|
|
|
+ &:hover {
|
|
|
|
+ background: rgba(255, 255, 255, 0.4);
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ .left {
|
|
|
|
+ display: flex;
|
|
|
|
+
|
|
|
|
+ .pic {
|
|
|
|
+ width: 7.5vh;
|
|
|
|
+ height: 7.5vh;
|
|
|
|
+ border-radius: 50%;
|
|
|
|
+ display: flex;
|
|
|
|
+ justify-content: center;
|
|
|
|
+ align-items: center;
|
|
|
|
+ overflow: hidden;
|
|
|
|
+ box-sizing: border-box;
|
|
|
|
+ border: 1px solid rgba(255, 255, 255, 0.5);
|
|
|
|
+ margin-right: 13px;
|
|
|
|
+ flex-shrink: 0;
|
|
|
|
+
|
|
|
|
+ img {
|
|
|
|
+ width: 100%;
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ .txt {
|
|
|
|
+ display: flex;
|
|
|
|
+ align-items: center;
|
|
|
|
+
|
|
|
|
+ .name {
|
|
|
|
+ color: #F9F9F9;
|
|
|
|
+ font-size: 1.38rem;
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ .className {
|
|
|
|
+ color: #13ED84;
|
|
|
|
+ font-size: 1.1rem;
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ .right {
|
|
|
|
+ display: flex;
|
|
|
|
+ font-weight: bold;
|
|
|
|
+ align-items: center;
|
|
|
|
+
|
|
|
|
+ .score {
|
|
|
|
+ color: #ffffff;
|
|
|
|
+ font-size: 1.1rem;
|
|
|
|
+ font-family: 'Saira-ExtraBold';
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ .unit {
|
|
|
|
+ color: #ffffff;
|
|
|
|
+ font-size: 0.8rem;
|
|
|
|
+ margin-left: 2px;
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ &::-webkit-scrollbar {
|
|
|
|
+ width: 0px;
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ &::-webkit-scrollbar-thumb {
|
|
|
|
+ border-width: 2px;
|
|
|
|
+ border-radius: 4px;
|
|
|
|
+ border-style: dashed;
|
|
|
|
+ border-color: transparent;
|
|
|
|
+ background-color: rgba(216, 216, 216, 0.8);
|
|
|
|
+ background-clip: padding-box;
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ &::-webkit-scrollbar-button:hover {
|
|
|
|
+ border-radius: 6px;
|
|
|
|
+ background: rgba(216, 216, 216, 0.8);
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+}
|
|
|
|
+</style>
|