2bcfb5f5 by zrj

9.3 lpt初版内容

1 parent b6c1d2ed
......@@ -880,4 +880,19 @@ export function getZNList(params) {
})
}
export function getNoteList(params) {
return request({
url: `/ztx/note/list`,
method: 'get',
params
})
}
export function getNoteDetail(id) {
return request({
url: `/ztx/note/${id}`,
method: 'get',
})
}
......
......@@ -147,3 +147,49 @@ export function getWeather() {
method: 'get'
})
}
export function getMain(id) {
return request({
url: `/league/competition/detail?id=${id}&`,
method: 'get'
})
}
export function getProjectMain(id) {
return request({
url: `/league/competitionProject/${id}`,
method: 'get'
})
}
export function getCompetitionList(query) {
return request({
url: `/league/competition/getCompetitionList`,
method: 'get',
params: query
})
}
export function getCompetitionProjectList(query) {
return request({
url: `/league/competitionProject/list`,
method: 'get',
params: query
})
}
export function getProjectTab(query) {
return request({
url: `/league/competitionProjectTab/list`,
method: 'get',
params: query
})
}
export function getImgList(query) {
return request({
url: `/league/competitionImage/list`,
method: 'get',
params: query
})
}
......
......@@ -6,7 +6,9 @@
<h3>{{ languageLibrary[language].a }}</h3>
</el-col>
</el-row>
<el-row></el-row>
<el-row>
<div class="content" v-html="itemData.content" />
</el-row>
<el-row class="contest-title" style="text-align: center">
<el-col :span="24"><h3>{{ languageLibrary[language].b }}</h3></el-col>
<el-col :span="24">
......@@ -45,6 +47,8 @@ import { onMounted, ref } from 'vue'
import { getNewsListById } from '@/apiPc/webSite'
import { useRouter } from 'vue-router'
import {useStorage} from "@vueuse/core/index";
import * as match from "@/apiPc/match";
const language = useStorage('language', 0)
const languageLibrary = ref([{
a:'关于我们',
......@@ -87,22 +91,34 @@ const form = ref({
paymentName:'',
payDeptName:'',
})
const searchParam = ref({
type:'1',
text:'',
})
const itemList = ref(['a','a','a','a','a','a','a','a','a'])
onMounted(() => {
const noteId = ref()
const itemData = ref({})
onMounted(() => {
getMain()
})
const getList = (obj) => {
getNewsListById(obj).then(res => {
newsList.value = res.rows
const getMain = () => {
match.getNoteList({
sortId:6000
}).then(res => {
if (res.code === 200) {
noteId.value = res.rows[0].noteId
getList(noteId.value)
}
})
}
const getList = (id) => {
match.getNoteDetail(id).then(res => {
if (res.code === 200) {
itemData.value = res.data
}
})
}
const goDetail = (id) => {
router.push({
path: `/photo/detail/${id}`
......@@ -110,6 +126,14 @@ const goDetail = (id) => {
}
</script>
<style lang="scss" scoped>
.content {
text-align: justify;
color: #fff;
background: #1f2644;
width: 100%;
}
.photo-space {
padding: 10px;
}
......
......@@ -3,23 +3,27 @@
<div class="box">
<el-button class="back-btn" @click="goback()">{{ languageLibrary[language].a }}</el-button>
<el-row class="detail-title">
<el-col :span="2"><span class="not-start">进行中</span></el-col>
<el-col :span="2">
<span v-if="projectMainInfo.enrollStatusStr == '未开始'" style="background: #3194FA;border-radius:6px 0 6px 0;padding: 0 4px">{{ languageLibrary[language].o }}</span>
<span v-else-if="projectMainInfo.enrollStatusStr == '进行中'" style="background: #21C9AB;border-radius:6px 0 6px 0;padding: 0 4px">{{ languageLibrary[language].p }}</span>
<span v-else style="background: #929AA0;border-radius:6px 0 6px 0;padding: 0 4px">{{ languageLibrary[language].q }}</span>
</el-col>
<el-col :span="6">
<div style="display: flex;flex-direction: column;">
<span style="font-size: 20px;font-weight: bold;margin-bottom: 5px">LPT马来西亚巡回赛</span>
<span>2023-09-08~2023-09-09</span>
<span style="font-size: 20px;font-weight: bold;margin-bottom: 5px">{{projectMainInfo.name}}</span>
<span>{{projectMainInfo.startTime + '~' + projectMainInfo.endTime}}</span>
</div>
</el-col>
<el-col style="border-left: 1px solid #929AA0;border-right: 1px solid #929AA0" :span="4">
<div style="display: flex;flex-direction: column;text-align: center">
<span style="font-size: 14px;color: #929AA0;margin-bottom: 5px">{{ languageLibrary[language].b }}</span>
<span style="color: #EEEEEE;font-size: 16px">$1111111111111111</span>
<span style="color: #EEEEEE;font-size: 16px">${{projectMainInfo.serviceFee}}</span>
</div>
</el-col>
<el-col :span="4">
<div style="display: flex;flex-direction: column;text-align: center">
<span style="font-size: 14px;color: #929AA0;margin-bottom: 5px">{{ languageLibrary[language].c }}</span>
<span style="color: #EEEEEE;font-size: 16px">11111111</span>
<span style="color: #EEEEEE;font-size: 16px">{{projectMainInfo.projectFormat}}</span>
</div>
</el-col>
</el-row>
......@@ -27,77 +31,77 @@
<el-tab-pane :label="languageLibrary[language].d" name="first">
<el-row class="detail-tabs-row-sin detail-tabs-row">
<el-col :span="4"><span>{{ languageLibrary[language].h }}</span></el-col>
<el-col :span="20"><span>11111</span></el-col>
<el-col :span="20"><span>{{projectMainTabA[0].field2}}</span></el-col>
</el-row>
<el-row class="detail-tabs-row-eve detail-tabs-row">
<el-col><span>{{ languageLibrary[language].i }}</span></el-col>
<el-col></el-col>
<el-col :span="4"><span>{{ languageLibrary[language].i }}</span></el-col>
<el-col :span="20"><span>{{projectMainTabA[1].field2}}</span></el-col>
</el-row>
<el-row class="detail-tabs-row-sin detail-tabs-row">
<el-col><span>{{ languageLibrary[language].j }}</span></el-col>
<el-col></el-col>
<el-col :span="4"><span>{{ languageLibrary[language].j }}</span></el-col>
<el-col :span="20"><span>{{projectMainTabA[2].field2}}</span></el-col>
</el-row>
<el-row class="detail-tabs-row-eve detail-tabs-row">
<el-col><span>{{ languageLibrary[language].k }}</span></el-col>
<el-col></el-col>
<el-col :span="4"><span>{{ languageLibrary[language].k }}</span></el-col>
<el-col :span="20"><span>{{projectMainTabA[3].field2}}</span></el-col>
</el-row>
<el-row class="detail-tabs-row-sin detail-tabs-row">
<el-col><span>{{ languageLibrary[language].l }}</span></el-col>
<el-col></el-col>
<el-col :span="4"><span>{{ languageLibrary[language].l }}</span></el-col>
<el-col :span="20"><span>{{projectMainTabA[4].field2}}</span></el-col>
</el-row>
<el-row class="detail-tabs-row-eve detail-tabs-row">
<el-col><span>{{ languageLibrary[language].m }}</span></el-col>
<el-col></el-col>
<el-col :span="4"><span>{{ languageLibrary[language].m }}</span></el-col>
<el-col :span="20"><span>{{projectMainTabA[5].field2}}</span></el-col>
</el-row>
<el-row class="detail-tabs-row-sin detail-tabs-row">
<el-col><span>{{ languageLibrary[language].n }}</span></el-col>
<el-col></el-col>
<el-col :span="4"><span>{{ languageLibrary[language].n }}</span></el-col>
<el-col :span="20"><span>{{projectMainTabA[6].field2}}</span></el-col>
</el-row>
<el-row class="detail-tabs-row-eve detail-tabs-row">
<el-col><span>{{ languageLibrary[language].v }}</span></el-col>
<el-col></el-col>
<el-col :span="4"><span>{{ languageLibrary[language].v }}</span></el-col>
<el-col :span="20"><span>{{projectMainTabA[7].field2}}</span></el-col>
</el-row>
</el-tab-pane>
<el-tab-pane :label="languageLibrary[language].e" name="second">
<el-table
class="contest-table"
:data="testValue"
:data="projectMainTabOther"
:cell-style="{borderColor:'#3A405B',textAlign:'center',color:'#fff',padding: '15px 20px'}"
:header-cell-style="{fontSize:'16px',background:'#3A405B !important',borderColor:'#3A405B',textAlign:'center',color:'#929AA0',padding: '15px 20px'}"
>
<el-table-column label="等级" align="left" prop="a" />
<el-table-column label="小盲" align="left" prop="b" />
<el-table-column label="大盲" align="left" prop="c" />
<el-table-column label="前置" align="left" prop="d" />
<el-table-column label="规则标识" align="left" prop="e" />
<el-table-column label="类型" align="left" prop="f" />
<el-table-column label="级别时间" align="left" prop="g" />
<el-table-column label="等级" align="left" prop="field1" />
<el-table-column label="小盲" align="left" prop="field2" />
<el-table-column label="大盲" align="left" prop="field3" />
<el-table-column label="前置" align="left" prop="field4" />
<el-table-column label="规则标识" align="left" prop="field5" />
<el-table-column label="类型" align="left" prop="field6" />
<el-table-column label="级别时间" align="left" prop="field7" />
</el-table>
</el-tab-pane>
<el-tab-pane :label="languageLibrary[language].f" name="third">
<el-table
class="contest-table"
:data="testValue"
:data="projectMainTabOther"
:cell-style="{borderColor:'#3A405B',textAlign:'center',color:'#fff',padding: '15px 20px'}"
:header-cell-style="{fontSize:'16px',background:'#3A405B !important',borderColor:'#3A405B',textAlign:'center',color:'#929AA0',padding: '15px 20px'}"
>
<el-table-column label="排名" align="left" prop="a" />
<el-table-column label="选手" align="left" prop="b" />
<el-table-column label="奖金" align="left" prop="c" />
<el-table-column label="排名" align="left" prop="field1" />
<el-table-column label="选手" align="left" prop="field2" />
<el-table-column label="奖金" align="left" prop="field3" />
</el-table>
</el-tab-pane>
<el-tab-pane :label="languageLibrary[language].g" name="fourth">
<el-table
class="contest-table"
:data="testValue"
:data="projectMainTabOther"
:cell-style="{borderColor:'#3A405B',textAlign:'center',color:'#fff',padding: '15px 20px'}"
:header-cell-style="{fontSize:'16px',background:'#3A405B !important',borderColor:'#3A405B',textAlign:'center',color:'#929AA0',padding: '15px 20px'}"
>
<el-table-column label="玩家姓名" align="left" prop="a" />
<el-table-column label="轮次" align="left" prop="b" />
<el-table-column label="筹码数量" align="left" prop="c" />
<el-table-column label="桌号" align="left" prop="d" />
<el-table-column label="座位号" align="left" prop="e" />
<el-table-column label="玩家姓名" align="left" prop="field1" />
<el-table-column label="轮次" align="left" prop="field2" />
<el-table-column label="筹码数量" align="left" prop="field3" />
<el-table-column label="桌号" align="left" prop="field4" />
<el-table-column label="座位号" align="left" prop="field5" />
</el-table>
</el-tab-pane>
</el-tabs>
......@@ -108,6 +112,7 @@
import { onMounted, onUnmounted, ref, watch } from 'vue'
import { useRoute, useRouter } from 'vue-router'
import {useStorage} from "@vueuse/core";
import {getProjectMain,getProjectTab} from '@/apiPc/webSite'
const router = useRouter()
const route = useRoute()
......@@ -128,6 +133,9 @@ const languageLibrary = ref([{
l:'剩余/总席位',
m:'开始时间',
n:'最晚参赛时间',
o:'未开始',
p:'进行中',
q:'已结束',
v:'最晚参赛等级',
},{
a:'Return',
......@@ -144,6 +152,9 @@ const languageLibrary = ref([{
l:'Remaining/Total seats',
m:'Start time',
n:'Latest entry time',
o:'Not started',
p:'In progress',
q:'Completed',
v:'Latest entry level',
},{
a:'돌아가기',
......@@ -160,6 +171,9 @@ const languageLibrary = ref([{
l:'잔여/전체 좌석',
m:'시작 시간',
n:'마지막 등록 시간',
o:'시작 전',
p:'진행 중',
q:'완료됨',
v:'마지막 등록 레벨',
},{
a:'戻る',
......@@ -176,6 +190,9 @@ const languageLibrary = ref([{
l:'残り/総座席数',
m:'開始時刻',
n:'最終エントリー時刻',
o:'未開始',
p:'進行中',
q:'完了',
v:'最終エントリーレベル',
},{
a:'Quay lại',
......@@ -192,72 +209,88 @@ const languageLibrary = ref([{
l:'Ghế còn lại/ Tổng số ghế',
m:'Thời gian bắt đầu',
n:'Thời gian đăng kí muộn nhất',
o:'Chưa bắt đầu',
p:'Đang diễn ra',
q:'Đã hoàn thành',
v:'Cấp blind cuối cùng để đăng kí',
}])
const tId = ref()
const projectMainInfo = ref({})
const projectMainTabA = ref([
{
field2:''
},
{
field2:''
},
{
field2:''
},
{
field2:''
},
{
field2:''
},
{
field2:''
},
{
field2:''
},
{
field2:''
},
])
const projectMainTabOther = ref([])
const query = ref({
pageNum:1,
pageSize:9999,
cptId:'',
type:'1',
projectId:'',
})
onMounted(() => {
tId.value = route.params.id
getMainInfo()
})
const testValue = ref([{
a:'100',
b:'100',
c:'100',
d:'100',
e:'100',
f:'100',
g:'100',
},{
a:'100',
b:'100',
c:'100',
d:'100',
e:'100',
f:'100',
g:'100',
},{
a:'100',
b:'100',
c:'100',
d:'100',
e:'100',
f:'100',
g:'100',
},{
a:'100',
b:'100',
c:'100',
d:'100',
e:'100',
f:'100',
g:'100',
},{
a:'100',
b:'100',
c:'100',
d:'100',
e:'100',
f:'100',
g:'100',
},{
a:'100',
b:'100',
c:'100',
d:'100',
e:'100',
f:'100',
g:'100',
},{
a:'100',
b:'100',
c:'100',
d:'100',
e:'100',
f:'100',
g:'100',
}])
const getMainInfo = () => {
getProjectMain(tId.value).then(res => {
if (res.code === 200) {
projectMainInfo.value = res.data
query.value.cptId = res.cptId
query.value.projectId = res.id
getProjectTabList(1)
}
})
}
onMounted(() => {
const getProjectTabList = (n) => {
query.value.type = n
getProjectTab(query.value).then(res => {
if (res.code === 200) {
if (res.rows && res.rows.length > 0) {
if (n == 1) {
res.rows.forEach((item,index) => {
projectMainTabA.value[index].field2 = item.field2
})
} else {
projectMainTabOther.value = res.rows
}
}
}
})
}
const handleClick = (n) => {
let type = +n.index + 1
getProjectTabList(type)
}
})
const goback = function () {
router.go(-1)
......
......@@ -7,10 +7,10 @@
</el-col>
<el-col :lg="9">
<div style="display: flex;align-items: center;height: 100%;">
<el-button :class="['contest-title-btn',{'btn-active': searchParam.type=='0'}]" @click="searchByType('0')">{{ languageLibrary[language].a }}</el-button>
<el-button :class="['contest-title-btn',{'btn-active': searchParam.type=='1'}]" @click="searchByType('1')">{{ languageLibrary[language].b }}</el-button>
<el-button :class="['contest-title-btn',{'btn-active': searchParam.type=='2'}]" @click="searchByType('2')">{{ languageLibrary[language].c }}</el-button>
<el-button :class="['contest-title-btn',{'btn-active': searchParam.type=='3'}]" @click="searchByType('3')">{{ languageLibrary[language].d }}</el-button>
<el-button :class="['contest-title-btn',{'btn-active': searchParam.enrollStatus==''}]" @click="searchByType('')">{{ languageLibrary[language].a }}</el-button>
<el-button :class="['contest-title-btn',{'btn-active': searchParam.enrollStatus=='0'}]" @click="searchByType('0')">{{ languageLibrary[language].b }}</el-button>
<el-button :class="['contest-title-btn',{'btn-active': searchParam.enrollStatus=='1'}]" @click="searchByType('1')">{{ languageLibrary[language].c }}</el-button>
<el-button :class="['contest-title-btn',{'btn-active': searchParam.enrollStatus=='2'}]" @click="searchByType('2')">{{ languageLibrary[language].d }}</el-button>
</div>
</el-col>
<el-col :lg="12">
......@@ -31,7 +31,7 @@
<el-row>
<el-col :lg="8" :xs="24">
<div class="imgbox">
<img style="aspect-ratio: 16/8" :src="fillImgUrl(n.picUrl)">
<img style="aspect-ratio: 16/8" :src="fillImgUrl(n.coverUrl)">
</div>
</el-col>
<el-col :lg="16" :xs="24">
......@@ -40,17 +40,19 @@
<div class="centerbox">
<div class="centerText">
<span style="font-size: 16px;">
<div style="background: #3194FA;border-radius:6px 0 6px 0;padding: 0 4px">未开始</div>
<div v-if="n.enrollStatusStr == '未开始'" style="background: #3194FA;border-radius:6px 0 6px 0;padding: 0 4px">{{ languageLibrary[language].b }}</div>
<div v-else-if="n.enrollStatusStr == '进行中'" style="background: #21C9AB;border-radius:6px 0 6px 0;padding: 0 4px">{{ languageLibrary[language].c }}</div>
<div v-else style="background: #929AA0;border-radius:6px 0 6px 0;padding: 0 4px">{{ languageLibrary[language].d }}</div>
</span>
<span style="font-size: 26px">Long Poker</span>
<span style="font-size: 18px"><img style="margin-right: 2%" src="@/assets/v1/tag01.png" />2020.1.1</span>
<span style="font-size: 18px"><img style="margin-right: 2%" src="@/assets/v1/tag02.png" />123sw23</span>
<span style="font-size: 26px">{{ n.cptName }}</span>
<span style="font-size: 18px"><img style="margin-right: 2%" src="@/assets/v1/tag01.png" />{{ n.matchTimeStr }}</span>
<span style="font-size: 18px"><img style="margin-right: 2%" src="@/assets/v1/tag02.png" />{{ n.address }}</span>
</div>
</div>
</el-col>
<el-col :lg="6" :xs="24">
<div class="endbox">
<el-button class="endBtn" @click="goDetail(n.sortId)">{{ languageLibrary[language].g }}</el-button>
<el-button class="endBtn" @click="goDetail(n.id)">{{ languageLibrary[language].g }}</el-button>
</div>
</el-col>
</el-row>
......@@ -63,7 +65,7 @@
<script setup>
import { ArrowRight, Search } from '@element-plus/icons-vue'
import { onMounted, ref } from 'vue'
import { getNewsListById } from '@/apiPc/webSite'
import { getCompetitionList } from '@/apiPc/webSite'
import { useRouter } from 'vue-router'
import {useStorage} from "@vueuse/core/index";
const language = useStorage('language', 0)
......@@ -110,66 +112,27 @@ const languageLibrary = [{
}]
const router = useRouter()
const searchParam = ref({
type:'1',
text:'',
pageNum:1,
pageSize:9999,
enrollStatus:'',
})
const newest2 = ref([{
attacthJson:'',
belongTime: "2025-01-14",
isOut:'0',
isTop:'1',
name:'2025跆拳道世锦赛筹备快报,牵手巨无霸综合体,献给世界的欢乐',
noteId:'1907041686198497281',
picUrl:'/fs/20250729/image/8638425535731875840.png',
publishType:'',
sortId:'10000000',
sortName:'官方发布',
},{
attacthJson:'',
belongTime: "2025-01-14",
isOut:'0',
isTop:'1',
name:'2025跆拳道世锦赛筹备快报,牵手巨无霸综合体,献给世界的欢乐1',
noteId:'1907041686198497281',
picUrl:'/fs/20250729/image/8638425535731875840.png',
publishType:'',
sortId:'10000001',
sortName:'官方发布',
},{
attacthJson:'',
belongTime: "2025-01-14",
isOut:'0',
isTop:'1',
name:'2025跆拳道世锦赛筹备快报,牵手巨无霸综合体,献给世界的欢乐2',
noteId:'1907041686198497281',
picUrl:'/fs/20250729/image/8638425535731875840.png',
publishType:'',
sortId:'10000002',
sortName:'官方发布',
},{
attacthJson:'',
belongTime: "2025-01-14",
isOut:'0',
isTop:'1',
name:'2025跆拳道世锦赛筹备快报,牵手巨无霸综合体,献给世界的欢乐3',
noteId:'1907041686198497281',
picUrl:'/fs/20250729/image/8638425535731875840.png',
publishType:'',
sortId:'10000003',
sortName:'官方发布',
}])
const newest2 = ref([])
onMounted(() => {
getList()
})
const searchByType = (type) => {
searchParam.value.type = type
searchParam.value.enrollStatus = type
getList()
}
const getList = (obj) => {
getNewsListById(obj).then(res => {
newsList.value = res.rows
const getList = () => {
getCompetitionList(searchParam.value).then(res => {
if (res.code == 200) {
newest2.value = res.rows
}
console.log(res)
})
}
......
......@@ -2,9 +2,25 @@
<div>
<div class="box">
<el-button class="back-btn" @click="goback()">{{ languageLibrary[language].a }}</el-button>
<div class="list-title"></div>
<div style="position: relative">
<img class="list-title" :src="fillImgUrl(mainInfo.coverUrl)">
<div style="position: absolute;color: #fff;top:15%;left:5%">
<el-row style="font-size: 16px;margin-bottom: 25px">
<div v-if="mainInfo.enrollStatusStr == '未开始'" style="background: #3194FA;border-radius:6px 0 6px 0;padding: 0 4px">{{ languageLibrary[language].g }}</div>
<div v-else-if="mainInfo.enrollStatusStr == '进行中'" style="background: #21C9AB;border-radius:6px 0 6px 0;padding: 0 4px">{{ languageLibrary[language].h }}</div>
<div v-else style="background: #929AA0;border-radius:6px 0 6px 0;padding: 0 4px">{{ languageLibrary[language].i }}</div>
</el-row>
<el-row style="font-size: 38px;margin-bottom: 25px"><span>{{mainInfo.name}}</span></el-row>
<el-row style="font-size: 20px;margin-bottom: 25px"><span>{{mainInfo.beginTime + '~' + mainInfo.endTime}}</span></el-row>
<el-row style="font-size: 20px"><span>{{mainInfo.address}}</span></el-row>
</div>
</div>
<el-row style="margin: 20px 0">
<el-select class="list-select" v-model="searchParams.type">
<el-select
class="list-select"
v-model="query.type"
@change="getList"
>
<el-option
v-for="item in optionList"
:key="item.value"
......@@ -14,23 +30,27 @@
</el-select>
</el-row>
<el-row>
<el-col v-for="item in testList" :lg="8">
<el-col v-for="item in competitionList" :lg="8">
<div class="child-card">
<el-button class="go-btn" @click="goDetail(item)"></el-button>
<el-row style="margin-bottom: 10px" class="not-start">未开始</el-row>
<el-row style="margin-bottom: 10px; font-weight: bold;font-size: 20px">LPT马拉西亚巡回赛</el-row>
<el-row style="margin-bottom: 10px;font-size: 16px">2025-11-02 9:00 ~ 2025-11-03 9:00</el-row>
<el-button class="go-btn" @click="goDetail(item.id)"></el-button>
<el-row style="margin-bottom: 10px">
<div v-if="competitionList.enrollStatusStr == '未开始'" style="background: #3194FA;border-radius:6px 0 6px 0;padding: 0 4px">{{ languageLibrary[language].g }}</div>
<div v-else-if="competitionList.enrollStatusStr == '进行中'" style="background: #21C9AB;border-radius:6px 0 6px 0;padding: 0 4px">{{ languageLibrary[language].h }}</div>
<div v-else style="background: #929AA0;border-radius:6px 0 6px 0;padding: 0 4px">{{ languageLibrary[language].i }}</div>
</el-row>
<el-row style="margin-bottom: 10px; font-weight: bold;font-size: 20px">{{item.name}}</el-row>
<el-row style="margin-bottom: 10px;font-size: 16px">{{item.startTime + '~' + item.endTime}}</el-row>
<el-row>
<el-col :span="12">
<div style="display: flex;flex-direction: column;text-align: center">
<span style="font-size: 14px;color: #929AA0;margin-bottom: 5px">{{ languageLibrary[language].d }}</span>
<span style="color: #EEEEEE;font-size: 16px">$1111111111111111</span>
<span style="color: #EEEEEE;font-size: 16px">${{item.serviceFee}}</span>
</div>
</el-col>
<el-col :span="12">
<div style="display: flex;flex-direction: column;text-align: center">
<span style="font-size: 14px;color: #929AA0;margin-bottom: 5px">{{ languageLibrary[language].e }}</span>
<span style="color: #EEEEEE;font-size: 16px">1000</span>
<span style="color: #EEEEEE;font-size: 16px">{{item.projectFormat}}</span>
</div>
</el-col>
</el-row>
......@@ -42,7 +62,7 @@
</template>
<script setup>
import { onMounted, ref } from 'vue'
import {getNewsListById, getnoteListcptid} from '@/apiPc/webSite'
import {getMain,getCompetitionProjectList} from '@/apiPc/webSite'
import { useRoute, useRouter } from 'vue-router'
import {useStorage} from "@vueuse/core/index";
const route = useRoute()
......@@ -54,30 +74,45 @@ const languageLibrary = ref([{
c:'微型赛事',
d:'总买入费用',
e:'参赛席位',
g:'未开始',
h:'进行中',
i:'已结束',
},{
a:'Return',
b:'Main event',
c:'Mini event',
d:'Total buy-in fee',
e:'Entry seats',
g:'Not started',
h:'In progress',
i:'Completed',
},{
a:'돌아가기',
b:'메인 이벤트',
c:'미니 이벤트',
d:'총 바이인 금액',
e:'엔트리 수',
g:'시작 전',
h:'진행 중',
i:'완료됨',
},{
a:'戻る',
b:'メインイベント',
c:'ミニイベント',
d:'バイイン総額',
e:'エントリー数',
g:'未開始',
h:'進行中',
i:'完了',
},{
a:'Quay lại',
b:'Giải chính',
c:'Giải phụ',
d:'Tổng phí Buy-in',
e:'Số ghế tham gia',
g:'Chưa bắt đầu',
h:'Đang diễn ra',
i:'Đã hoàn thành',
}])
......@@ -88,21 +123,37 @@ const optionList = ref([{
label: languageLibrary.value[language.value].c,
value:'2'
}])
const searchParams = ref({
const tId = ref()
const query = ref({
pageNum:1,
pageSize:9999,
cptId:'',
type:'1'
})
const testList = ref(['a','a','a','a','a','a','a','a','a','a','a'])
const competitionList = ref([])
onMounted(() => {
tId.value = route.params.id
getMainInfo()
})
const mainInfo = ref({})
const getMainInfo = () => {
getMain(tId.value).then(res => {
if (res.code === 200) {
mainInfo.value = res.data
query.value.cptId = mainInfo.value.id
getList()
}
})
}
const getList = () => {
console.log(query.value)
getNewsListById(query.value).then(res => {
newsList.value = res.rows
total.value = res.total
getCompetitionProjectList(query.value).then(res => {
if (res.code === 200) {
competitionList.value = res.rows
}
})
}
......@@ -136,7 +187,6 @@ const goback = function () {
background: url("/dev-api/fs/20250729/image/8638425535731875840.png") no-repeat;
background-size: cover;
aspect-ratio: 16/3;
padding: 10%;
}
.list-select {
width: 200px;
......
<template>
<div class="syBg">
<div class="banner">
<el-carousel :interval="10000"
<el-carousel :interval="3000"
arrow="hover"
autoplay
class="forPc"
height="450px"
@change="carouselChange">
<el-carousel-item v-for="n in maList" :key="n.id" style="height: 450px;">
<el-carousel-item v-for="n in maList" style="height: 450px;">
<div class="bannerItem">
<div class="h100" @click.stop="goMatch(n)">
<img :src="fillImgUrl(n.bgImgUrl)" class="bannerImg">
<img :src="fillImgUrl(n.picUrl)" class="bannerImg">
<div class="box forPc" style="position: absolute;top: 0;left: 0;right: 0;margin: auto;">
</div>
</div>
......@@ -42,9 +42,11 @@
<div class="centerbox">
<div class="centerText">
<span style="font-size: 16px;">
<div style="background: #3194FA;border-radius:6px 0 6px 0;padding: 0 4px">未开始</div>
<div v-if="n.enrollStatusStr == '未开始'" style="background: #3194FA;border-radius:6px 0 6px 0;padding: 0 4px">{{ languageLibrary[language].g }}</div>
<div v-else-if="n.enrollStatusStr == '进行中'" style="background: #21C9AB;border-radius:6px 0 6px 0;padding: 0 4px">{{ languageLibrary[language].h }}</div>
<div v-else style="background: #929AA0;border-radius:6px 0 6px 0;padding: 0 4px">{{ languageLibrary[language].i }}</div>
</span>
<span style="font-size: 26px">{{n.name}}</span>
<span style="font-size: 26px">{{n.cptName}}</span>
<span style="font-size: 18px"><img style="margin-right: 2%" src="@/assets/v1/tag01.png" />{{n.beginTime + '~' + n.endTime}}</span>
<span style="font-size: 18px"><img style="margin-right: 2%" src="@/assets/v1/tag02.png" />{{n.address}}</span>
</div>
......@@ -71,13 +73,12 @@
</div>
<el-row :gutter="20">
<el-col
v-for="(n,index) in newest2.slice(0,6)"
:key="n.sortId" :lg="8" :sm="8"
v-for="(n,index) in news.slice(0,6)" :lg="8" :sm="8"
:xs="24" style="margin-bottom: 10px"
>
<div class="activeItem" @click="goDetail(n)">
<div class="imgbox">
<img :src="fillImgUrl_webSite(n.picUrl)">
<img :src="fillImgUrl(n.picUrl)">
</div>
<div class="info">
<!-- <div class="date">-->
......@@ -102,13 +103,12 @@
</div>
<el-row :gutter="20">
<el-col
v-for="(n,index) in newest2.slice(0,6)"
:key="n.sortId" :lg="6" :sm="6"
v-for="(n,index) in instagramList.slice(0,6)" :lg="6" :sm="6"
:xs="24" style="margin-bottom: 10px"
>
<div class="activeItem" @click="goDetail(n)">
<div class="activeItem">
<div class="imgbox">
<img :src="fillImgUrl_webSite(n.picUrl)">
<img :src="fillImgUrl(n.picUrl)">
</div>
</div>
</el-col>
......@@ -125,9 +125,9 @@
<el-card style="background: transparent; border: none">
<el-row>
<el-col :lg="12">
<a class="liveImgbox" target="_blank" @click="golive(livelist[0])">
<a class="liveImgbox" @click="goDetail(livelist[0])">
<div class="imgBox" style="min-height: 200px">
<img :src="fillImgUrl('/fs/20250729/image/8638425535731875840.png')">
<img v-if="livelist[0]" style="aspect-ratio: 1/1" :src="fillImgUrl(livelist[0].picUrl)">
</div>
<h3 class="esp">
{{ livelist[0]?.name }}
......@@ -136,11 +136,11 @@
</el-col>
<el-col :lg="12">
<el-row class="news-l-r">
<el-col v-for="(n,index) in livelist" v-show="index>0" :lg="12">
<el-col v-for="(n,index) in livelist.slice(0,5)" v-show="index>0" :lg="12">
<div class="item" style="padding: 0;margin:0 0 20px" @click="goDetail(n)">
<div class="imgbox">
<i class="playIcon"></i>
<img :src="fillImgUrl_webSite(n.picUrl)"></div>
<img v-if="n" style="aspect-ratio: 1/1;height: auto" :src="fillImgUrl(n.picUrl)"></div>
</div>
</el-col>
</el-row>
......@@ -165,6 +165,7 @@ const router = useRouter()
const {proxy} = getCurrentInstance()
const emit = defineEmits(['pop', 'pickup', 'backNumber', 'schSearch'])
const newest2 = ref([])
const instagramList = ref([])
const news = ref([])
const display = ref([])
const livelist = ref([])
......@@ -178,6 +179,9 @@ const languageLibrary = [{
d:'图片集锦',
e:'赛事视频',
f:'查看详情',
g:'未开始',
h:'进行中',
i:'已结束',
},{
a:'Calendar',
b:'More',
......@@ -185,6 +189,9 @@ const languageLibrary = [{
d:'Gallery',
e:'Video',
f:'View details',
g:'Not started',
h:'In progress',
i:'Completed',
},{
a:'캘린더 / 일정표',
b:'더보기',
......@@ -192,6 +199,9 @@ const languageLibrary = [{
d:'사진첩',
e:'영상',
f:'자세히 보기',
g:'시작 전',
h:'진행 중',
i:'완료됨',
},{
a:'カレンダー',
b:'もっと見る',
......@@ -199,6 +209,9 @@ const languageLibrary = [{
d:'ギャラリー',
e:'動画',
f:'詳細を見る',
g:'未開始',
h:'進行中',
i:'完了',
},{
a:'Lịch thi đấu',
b:'Xem thêm',
......@@ -206,8 +219,30 @@ const languageLibrary = [{
d:'Thư viện hình ảnh',
e:'Video giải đấu',
f:'Xem chi tiết',
g:'Chưa bắt đầu',
h:'Đang diễn ra',
i:'Đã hoàn thành',
}]
const lunboParams = ref({
status: 1,
sortId: 5000,
})
const instagramParams = ref({
status: 1,
sortId: 3000,
})
const newsParams = ref({
status: 1,
sortId: 1000,
})
const liveParams = ref({
status: 1,
sortId: 2000,
})
onMounted(() => {
......@@ -216,10 +251,36 @@ onMounted(() => {
const init = () => {
match.getMaList({}).then((res) => {
newest2.value = res.rows.map(({languageSourceStr,coverUrl,name,beginTime,
endTime,address}) =>
({languageSourceStr,coverUrl,name,beginTime,endTime,address}))
console.log(newest2.value)
newest2.value = res.rows.map(({languageSourceStr,coverUrl,cptName,beginTime,
endTime,address,enrollStatusStr,id}) =>
({languageSourceStr,coverUrl,cptName,beginTime,endTime,address,enrollStatusStr,id}))
})
match.getNoteList(lunboParams.value).then(res => {
if (res.code === 200) {
maList.value = res.rows
}
})
match.getNoteList(instagramParams.value).then(res => {
if (res.code === 200) {
instagramList.value = res.rows
}
})
match.getNoteList(newsParams.value).then(res => {
if (res.code === 200) {
news.value = res.rows
}
})
match.getNoteList(liveParams.value).then(res => {
if (res.code === 200) {
livelist.value = res.rows
livelist.value.forEach(x => {
x.attacth = JSON.parse(x.attacthJson)
})
}
})
}
......@@ -237,7 +298,7 @@ const goDetail = (n) => {
const goContestDetail = (n) => {
router.push({
path: `/contest/list/${n.noteId}`
path: `/contest/list/${n.id}`
})
}
......@@ -255,9 +316,10 @@ const goNews = () => {
})
}
const goMatch = (n) => {
router.push({
path: `/match/list/${n.id}`
})
console.log(n)
// router.push({
// path: `/match/list/${n.id}`
// })
}
const goVideo = () => {
......
......@@ -9,20 +9,20 @@
<el-row>
<el-col class="photo-space" :lg="8" v-for="item in itemList">
<div class="photo-img-group">
<img class="photo-img" @click="goDetail(item)" :src="fillImgUrl('/fs/20250729/image/8638425535731875840.png')">
<img class="photo-img" :src="fillImgUrl(item.picUrl)">
</div>
</el-col>
</el-row>
<el-pagination class="photo-pagination" background layout="pager" :total="1000" />
</div>
</div>
</template>
<script setup>
import { ArrowRight, Search } from '@element-plus/icons-vue'
import { onMounted, ref } from 'vue'
import { getNewsListById } from '@/apiPc/webSite'
import { useRouter } from 'vue-router'
import {useStorage} from "@vueuse/core/index";
import * as match from "@/apiPc/match";
const language = useStorage('language', 0)
const languageLibrary = [{
a:'Instagram'
......@@ -37,26 +37,23 @@ const languageLibrary = [{
}]
const router = useRouter()
const searchParam = ref({
type:'1',
text:'',
status: 1,
sortId: 3000,
})
const itemList = ref(['a','a','a','a','a','a','a','a','a'])
const itemList = ref([])
onMounted(() => {
getList()
})
const getList = (obj) => {
getNewsListById(obj).then(res => {
newsList.value = res.rows
const getList = () => {
match.getNoteList(searchParam.value).then(res => {
if (res.code === 200) {
itemList.value = res.rows
}
})
}
const goDetail = (id) => {
router.push({
path: `/photo/detail/${id}`
})
}
</script>
<style lang="scss" scoped>
.photo-pagination {
......
......@@ -9,8 +9,8 @@
<el-row>
<el-col class="photo-space" :lg="8" v-for="item in itemList">
<div class="photo-img-group">
<img class="photo-img" :src="fillImgUrl('/fs/20250729/image/8638425535731875840.png')">
<span style="display: block;font-size: 16px;margin:5px 0;color:#fff">LPT巡回赛</span>
<img class="photo-img" :src="fillImgUrl(item.picUrl)">
<span style="display: block;font-size: 16px;margin:5px 0;color:#fff">{{item.name}}</span>
</div>
</el-col>
</el-row>
......@@ -23,6 +23,8 @@ import { onMounted, ref } from 'vue'
import { getNewsListById } from '@/apiPc/webSite'
import { useRouter } from 'vue-router'
import {useStorage} from "@vueuse/core/index";
import * as match from "@/apiPc/match";
const language = useStorage('language', 0)
const languageLibrary = ref([{
a:'周边商城',
......@@ -37,18 +39,20 @@ const languageLibrary = ref([{
}])
const router = useRouter()
const searchParam = ref({
type:'1',
text:'',
status: 1,
sortId: 4000,
})
const itemList = ref(['a','a','a','a','a','a','a','a','a'])
const itemList = ref([])
onMounted(() => {
getList()
})
const getList = (obj) => {
getNewsListById(obj).then(res => {
newsList.value = res.rows
const getList = () => {
match.getNoteList(searchParam.value).then(res => {
if (res.code === 200) {
itemList.value = res.rows
}
})
}
......
......@@ -2,28 +2,21 @@
<div>
<div class="box">
<el-button class="back-btn" @click="goback()">{{ languageLibrary[language].a }}</el-button>
<el-card v-if="form.isOld=='1'" class="mt20 mb20">
<iframe
id="newsIframe" :src="`./source${form.jumpUrl}`" width="100%" height="0" frameborder="none"
scrolling="no"
/>
</el-card>
<el-card v-else class="mt20 mb20 news-card">
<el-card class="mt20 mb20 news-card">
<div class="bpd">
<h3 class="title">1312893djsaduf9812</h3>
<h3 class="title">{{form.name}}</h3>
<div class="nInfo">
<span>发布时间:2025-01-01</span>
<span>111111111111</span>
<span>责任编辑:123</span>
<span>发布时间:{{form.publishTime}}</span>
<!-- <span>111111111111</span>-->
<span>责任编辑:{{form.createBy}}</span>
</div>
<el-divider />
<div class="content">dawjdiwoaekdweo102938931298djkq9u1389238912</div>
<!-- <div class="content" v-html="form.content" />-->
<div class="content" v-html="form.content" />
<!-- 视频-->
<div v-if="hasMp4" class="mt20">
<div v-for="(f,index) in fileList" style="aspect-ratio: 16/9">
<video-player :key="index" class="videoPlay mb20" controls :src="fillImgUrl_webSite(f.url)" />
<video-player :key="index" class="videoPlay mb20" controls :src="fillImgUrl(f.url)" />
</div>
</div>
<div v-if="!hasMp4 && fileList.length>0" class="mt20">
......@@ -49,6 +42,7 @@ import { useRoute, useRouter } from 'vue-router'
import { getHottest, getNewest, getNewsById } from '@/apiPc/webSite'
import _ from 'lodash'
import {useStorage} from "@vueuse/core";
import * as match from "@/apiPc/match";
const router = useRouter()
const route = useRoute()
......@@ -74,85 +68,24 @@ let newsId
onMounted(() => {
newsId = route.params.id
getData(newsId)
// getNew()
window.addEventListener('message', onMessage)
})
onUnmounted(() => {
window.removeEventListener('message', onMessage)
})
function onMessage(event) {
if (event.data.type == 'ready') {
const iframe = document.getElementById('newsIframe')
setIframeHeight(0, iframe)
}
}
function setIframeHeight(height, iframe, handleTimeout) {
// console.log(height, handleTimeout)
const iframeDoc = iframe.contentDocument || iframe.contentWindow.document
if (height !== iframeDoc.body.clientHeight) {
height = iframeDoc.body.clientHeight
iframe.style.height = height + 50 + 'px'
handleTimeout = setTimeout(() => {
setIframeHeight(height, iframe, handleTimeout)
}, 500)
} else {
if (handleTimeout) {
clearTimeout(handleTimeout)
}
}
}
watch(() => route.params.id, (val) => {
if (val) {
if(val==0){
return
}
getData(val)
}
})
const getNew = () => {
getNewest().then(res => {
newest.value = res.data
})
getHottest().then(res => {
hottest.value = res.data
})
}
const getData = (newsId) => {
getNewsById({ id: newsId }).then(res => {
match.getNoteDetail(newsId).then(res => {
form.value = res.data
if (form.value.attacthJson) {
fileList.value = JSON.parse(form.value.attacthJson)
hasMp4.value = _.some(fileList.value, (f) => {
return f.url.indexOf('.mp4') > -1
})
// for (var f of fileList.value) {
// if (f.url.indexOf('.mp4') > -1) {
// hasMp4.value = true
// } else {
// hasMp4.value = false
// }
// }
}
})
}
const goDetail = (n) => {
if (n.isOut == '1') {
window.open(n.jumpUrl)
} else {
router.push({
path: `/news/detail/${n.noteId}`
})
}
}
const goback = function () {
router.go(-1)
}
......
......@@ -9,7 +9,7 @@
<div style="display: flex;align-items: center;height: 100%">
<el-input class="search-input" clearable :placeholder="languageLibrary[language].c" v-model="searchParam.text">
<template #append>
<el-button class="search-btn" >
<el-button @click="getList" class="search-btn" >
<el-icon>
<Search/>
</el-icon>
......@@ -20,21 +20,30 @@
</el-col>
</el-row>
<div style="background: #1f2644;border-radius: 15px">
<div style="background: #1f2644;border-radius: 15px;box-shadow: 0 0 15px 5px rgba(0,0,0,0.36)">
<div class="newsLine" v-for="(n,index) in newsList" :key="index">
<div class="item" @click=" goDetail(n.sortId)">
<div class="item" @click="goDetail(n.noteId)">
<div class="date">
<div class="day">{{ n.belongTime?.substring(8, 10) }}</div>
<p>{{ n.belongTime?.substring(0, 7).replace(/-/g, '/') }}</p>
</div>
<div class="item-body">
<h3 v-html="n.name" />
<el-row>
<el-col :span="8">
<img style="aspect-ratio: 2/1;width: 100%;padding: 10px" :src="fillImgUrl(n.picUrl)">
</el-col>
<el-col :span="16">
<h3 >{{n.name}}</h3>
<h3 >{{n.subName}}</h3>
</el-col>
</el-row>
</div>
<a class="go" />
</div>
</div>
<div style="display: flex;align-items: center">
<el-button class="news-more-btn">{{ languageLibrary[language].b }}<div class="arrow_towDown"></div></el-button>
<el-button class="news-more-btn" @click="getMoreInfo">{{ languageLibrary[language].b }}<div class="arrow_towDown"></div></el-button>
</div>
</div>
......@@ -48,6 +57,9 @@ import { onMounted, ref } from 'vue'
import { getNewsListById } from '@/apiPc/webSite'
import { useRouter } from 'vue-router'
import {useStorage} from "@vueuse/core/index";
import * as match from "@/apiPc/match";
import {ElMessage} from "element-plus";
const language = useStorage('language', 0)
const languageLibrary = ref([{
a:'新闻资讯',
......@@ -72,67 +84,47 @@ const languageLibrary = ref([{
}])
const router = useRouter()
const totalTable = ref(0)
const searchParam = ref({
type:'1',
pageNum:1,
pageSize:10,
text:'',
status: 1,
sortId: 1000,
})
const newsList = ref([{
attacthJson:'',
belongTime: "2025-01-14",
isOut:'0',
isTop:'1',
name:'2025跆拳道世锦赛筹备快报,牵手巨无霸综合体,献给世界的欢乐',
noteId:'1907041686198497281',
picUrl:'/fs/20250729/image/8638425535731875840.png',
publishType:'',
sortId:'10000000',
sortName:'官方发布',
},{
attacthJson:'',
belongTime: "2025-01-14",
isOut:'0',
isTop:'1',
name:'2025跆拳道世锦赛筹备快报,牵手巨无霸综合体,献给世界的欢乐1',
noteId:'1907041686198497281',
picUrl:'/fs/20250729/image/8638425535731875840.png',
publishType:'',
sortId:'10000001',
sortName:'官方发布',
},{
attacthJson:'',
belongTime: "2025-01-14",
isOut:'0',
isTop:'1',
name:'2025跆拳道世锦赛筹备快报,牵手巨无霸综合体,献给世界的欢乐2',
noteId:'1907041686198497281',
picUrl:'/fs/20250729/image/8638425535731875840.png',
publishType:'',
sortId:'10000002',
sortName:'官方发布',
},{
attacthJson:'',
belongTime: "2025-01-14",
isOut:'0',
isTop:'1',
name:'2025跆拳道世锦赛筹备快报,牵手巨无霸综合体,献给世界的欢乐3',
noteId:'1907041686198497281',
picUrl:'/fs/20250729/image/8638425535731875840.png',
publishType:'',
sortId:'10000003',
sortName:'官方发布',
}])
onMounted(() => {
const newsList = ref([])
onMounted(() => {
getList()
})
const searchByType = (type) => {
searchParam.value.type = type
const getList = () => {
searchParam.value.pageNum = 1
searchParam.value.pageSize = 10
match.getNoteList(searchParam.value).then(res => {
if (res.code === 200) {
newsList.value = res.rows
totalTable.value = res.total
}
})
}
const getList = (obj) => {
getNewsListById(obj).then(res => {
newsList.value = res.rows
const getMoreInfo = () => {
if (searchParam.pageNum * searchParam.pageSize < totalTable.value) {
searchParam.pageNum += 1
getMoreList()
} else {
ElMessage.warning("已经没有啦!")
}
}
const getMoreList = ()=> {
match.getNoteList(searchParam.value).then(res => {
if (res.code === 200) {
newsList.value.push(res.rows)
totalTable.value = res.total
}
})
}
......@@ -222,13 +214,13 @@ const goDetail = (id) => {
.newsLine{
margin: 20px;
.firstItem{margin-bottom: 10px;}
.item{display: flex;position: relative;width: 100%;height: 90px;
.item{display: flex;position: relative;width: 100%;height: auto;
align-items: center;cursor: pointer;border-bottom: 1px solid #3C4259;
.date{width: 60px;height: 60px;text-align: center;background: #43445B;margin: 0 10px;
.day{color: #CAA767;transform: scaleX(0.7);font-weight: bold;font-size: 24px;}
p{font-size: 14px;margin: 0;transform: scaleX(0.7);font-weight: bold;color: #7B7F83;}
}
.item-body{width: 60%;
.item-body{width: 100%;
h3{padding: 0 10px;white-space: nowrap;overflow: hidden;text-overflow: ellipsis;font-size: 18px;color: #fff;}
}
.go{background: url("@/assets/v1/about/go.png") no-repeat center;background-size: contain;
......@@ -236,14 +228,15 @@ const goDetail = (id) => {
filter:grayscale(1);
}
}
.item:hover{background: #f7f8fc;
.item:hover{
background: #000;
.date{
background:#000;
.day{color: #fff;}
p{color: #fff;}
}
.item-body{
h3{color: #000;}
h3{color: #fff;}
}
}
}
......
......@@ -3,31 +3,40 @@
<div class="box">
<el-button class="back-btn" @click="goback()">{{ languageLibrary[language].a }}</el-button>
<el-row class="detail-title">
<el-col :span="2"><span class="not-start">进行中</span></el-col>
<el-col :span="6">
<div style="display: flex;flex-direction: column;">
<span style="font-size: 20px;font-weight: bold;margin-bottom: 5px">LPT马来西亚巡回赛</span>
<span>2023-09-08~2023-09-09</span>
</div>
<el-col :span="2">
<span v-if="projectMainInfo.enrollStatusStr == '未开始'" style="background: #3194FA;border-radius:6px 0 6px 0;padding: 0 4px">{{ languageLibrary[language].g }}</span>
<span v-else-if="projectMainInfo.enrollStatusStr == '进行中'" style="background: #21C9AB;border-radius:6px 0 6px 0;padding: 0 4px">{{ languageLibrary[language].h }}</span>
<span v-else style="background: #929AA0;border-radius:6px 0 6px 0;padding: 0 4px">{{ languageLibrary[language].i }}</span>
</el-col>
<el-col style="border-left: 1px solid #929AA0;border-right: 1px solid #929AA0" :span="4">
<div style="display: flex;flex-direction: column;text-align: center">
<span style="font-size: 14px;color: #929AA0;margin-bottom: 5px">{{ languageLibrary[language].b }}</span>
<span style="color: #EEEEEE;font-size: 16px">$1111111111111111</span>
</div>
<el-col :span="6">
<span style="font-size: 20px;font-weight: bold;margin-bottom: 5px">{{projectMainInfo.name}}</span>
<!-- <div style="display: flex;flex-direction: column;">-->
<!-- <span style="font-size: 20px;font-weight: bold;margin-bottom: 5px">{{projectMainInfo.name}}</span>-->
<!-- <span>{{projectMainInfo.beginTime + '~' + projectMainInfo.endTime}}</span>-->
<!-- </div>-->
</el-col>
<el-col :span="4">
<div style="display: flex;flex-direction: column;text-align: center">
<span style="font-size: 14px;color: #929AA0;margin-bottom: 5px">{{ languageLibrary[language].c }}</span>
<span style="color: #EEEEEE;font-size: 16px">11111111</span>
</div>
<el-col :span="16">
<span>比赛时间: {{projectMainInfo.beginTime + '~' + projectMainInfo.endTime}}</span>
</el-col>
<!-- <el-col style="border-left: 1px solid #929AA0;border-right: 1px solid #929AA0" :span="4">-->
<!-- <div style="display: flex;flex-direction: column;text-align: center">-->
<!-- <span style="font-size: 14px;color: #929AA0;margin-bottom: 5px">{{ languageLibrary[language].b }}</span>-->
<!-- <span style="color: #EEEEEE;font-size: 16px">${{projectMainInfo.serviceFee}}</span>-->
<!-- </div>-->
<!-- </el-col>-->
<!-- <el-col :span="4">-->
<!-- <div style="display: flex;flex-direction: column;text-align: center">-->
<!-- <span style="font-size: 14px;color: #929AA0;margin-bottom: 5px">{{ languageLibrary[language].c }}</span>-->
<!-- <span style="color: #EEEEEE;font-size: 16px">{{projectMainInfo.projectFormat}}</span>-->
<!-- </div>-->
<!-- </el-col>-->
</el-row>
<el-row>
<el-col class="photo-space" :lg="12" v-for="item in itemList">
<el-col class="photo-space" :lg="12" v-for="item in photoList">
<div class="photo-img-group">
<img class="photo-img" :src="fillImgUrl('/fs/20250729/image/8638425535731875840.png')">
<img class="photo-img" :src="fillImgUrl(item.path)">
</div>
</el-col>
</el-row>
......@@ -38,6 +47,7 @@
import { onMounted, onUnmounted, ref, watch } from 'vue'
import { useRoute, useRouter } from 'vue-router'
import {useStorage} from "@vueuse/core";
import {getMain,getImgList} from '@/apiPc/webSite'
const router = useRouter()
const route = useRoute()
......@@ -47,30 +57,65 @@ const languageLibrary = ref([{
a:'返回',
b:'总买入费用',
c:'参赛席位',
g:'未开始',
h:'进行中',
i:'已结束',
},{
a:'Return',
b:'Total buy-in fee',
c:'Entry seats',
g:'Not started',
h:'In progress',
i:'Completed',
},{
a:'돌아가기',
b:'총 바이인 금액',
c:'엔트리 수',
g:'시작 전',
h:'진행 중',
i:'완료됨',
},{
a:'戻る',
b:'バイイン総額',
c:'エントリー数',
g:'未開始',
h:'進行中',
i:'完了',
},{
a:'Quay lại',
b:'Tổng phí Buy-in',
c:'Số ghế tham gia',
g:'Chưa bắt đầu',
h:'Đang diễn ra',
i:'Đã hoàn thành',
}])
const itemList = ref(['a','a','a','a','a','a','a','a','a'])
const tId = ref()
const projectMainInfo = ref({})
const photoList = ref([])
onMounted(() => {
tId.value = route.params.id
getMainInfo()
getPhotoList()
})
const getMainInfo = () => {
getMain(tId.value).then(res => {
if (res.code === 200) {
projectMainInfo.value = res.data
}
})
}
const getPhotoList = () => {
getImgList({cptId:tId.value}).then(res => {
if (res.code === 200) {
photoList.value = res.rows
}
})
}
const goback = function () {
router.go(-1)
}
......
......@@ -7,19 +7,27 @@
</el-col>
</el-row>
<el-row>
<el-col class="photo-space" :lg="8" v-for="item in itemList">
<el-col class="photo-space" :lg="8" v-for="item in matchList">
<div class="photo-img-group">
<div class="photo-img-layer1"></div>
<div class="photo-img-layer2"></div>
<img class="photo-img" @click="goDetail(item)" :src="fillImgUrl('/fs/20250729/image/8638425535731875840.png')">
<img class="photo-img" @click="goDetail(item.id)" :src="fillImgUrl(item.coverUrl)">
<div class="photo-img-info">
<span style="display: block;font-size: 16px;margin:5px 0">LPT巡回赛</span>
<span style="display: block;font-size: 14px;color: #C2A165">2025-01-01</span>
<span style="display: block;font-size: 16px;margin:5px 0">{{item.cptName}}</span>
<span style="display: block;font-size: 14px;color: #C2A165">{{item.matchTimeStr}}</span>
</div>
</div>
</el-col>
</el-row>
<el-pagination class="photo-pagination" background layout="pager" :total="1000" />
<el-pagination
class="photo-pagination"
background
layout="pager"
:total="total"
v-model:current-page="searchParam.pageNum"
v-model:page-size="searchParam.pageSize"
@current-change="handleCurrentChange"
/>
</div>
</div>
</template>
......@@ -29,6 +37,7 @@ import { onMounted, ref } from 'vue'
import { getNewsListById } from '@/apiPc/webSite'
import { useRouter } from 'vue-router'
import {useStorage} from "@vueuse/core/index";
import * as match from "@/apiPc/match";
const language = useStorage('language', 0)
const languageLibrary = [{
a:'图片集锦'
......@@ -43,21 +52,30 @@ const languageLibrary = [{
}]
const router = useRouter()
const searchParam = ref({
type:'1',
text:'',
pageNum:1,
pageSize:9,
})
const itemList = ref(['a','a','a','a','a','a','a','a','a'])
const matchList = ref([])
const total = ref(0)
onMounted(() => {
getList()
})
const getList = (obj) => {
getNewsListById(obj).then(res => {
newsList.value = res.rows
const getList = () => {
match.getMaList(searchParam.value).then((res) => {
if (res.code === 200) {
matchList.value = res.rows
total.value = res.total
}
})
}
const handleCurrentChange = (val) => {
searchParam.value.pageNum = val
getList()
}
const goDetail = (id) => {
router.push({
path: `/photo/detail/${id}`
......
Styling with Markdown is supported
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!