10.21 lpt 修改图标和图片预览功能
Showing
14 changed files
with
248 additions
and
76 deletions
No preview for this file type
src/assets/pc/logoBottom.png
0 → 100644
45.2 KB
| 1 | <template> | 1 | <template> |
| 2 | <div class="footAll"> | 2 | <div class="footAll"> |
| 3 | <div class="box" style="max-width: 90%"> | 3 | <div class="box" style="width: 80%"> |
| 4 | <el-row align="middle" justify="space-between"> | 4 | <el-row align="middle" justify="space-between"> |
| 5 | <el-col :span="18"> | 5 | <el-col :span="24" style="display:flex; justify-content: center"> |
| 6 | <div class="imgFlex"> | 6 | <img style="width: 364pt;height: auto" alt="" src="@/assets/pc/logoBottom.png"> |
| 7 | <div style="text-align: center;margin-right: 50px"> | 7 | </el-col> |
| 8 | <img @click="goUrl('https://www.facebook.com/share/1BDtH7xYaS/?mibextid=wwXIfr')" class="link-img" alt="" src="@/assets/images/bottom01.svg"> | 8 | </el-row> |
| 9 | <img @click="goUrl('https://www.instagram.com/lpt__official/')" class="link-img" alt="" src="@/assets/images/bottom02.svg"> | 9 | <el-row style="margin-top: 20px" align="middle" justify="space-between"> |
| 10 | <!-- <img class="link-img" alt="" src="@/assets/images/bottom03.svg">--> | 10 | <el-col :span="24" style="display:flex; justify-content: center"> |
| 11 | <img @click="goUrl('https://www.youtube.com/channel/UCNFV48KiGZLYcf8NQocM-iQ')" class="link-img" alt="" src="@/assets/images/bottom05.svg"> | 11 | <img @click="goUrl('https://www.facebook.com/share/1BDtH7xYaS/?mibextid=wwXIfr')" class="link-img" alt="" |
| 12 | <img @click="goUrl('https://www.tiktok.com/@lpt.official')" class="link-img" alt="" src="@/assets/images/bottom06.svg"> | 12 | src="@/assets/images/bottom01.svg"> |
| 13 | </div> | 13 | <img @click="goUrl('https://www.instagram.com/lpt__official/')" class="link-img" alt="" |
| 14 | <div class="text-center copyright pd10">{{ languageLibrary[language].a }} | 14 | src="@/assets/images/bottom02.svg"> |
| 15 | <!-- <a href="https://beian.miit.gov.cn/" target="_blank">ICP备案号:苏ICP备2023054420号-2</a>--> | 15 | <!-- <img class="link-img" alt="" src="@/assets/images/bottom03.svg">--> |
| 16 | </div> | 16 | <img @click="goUrl('https://www.youtube.com/channel/UCNFV48KiGZLYcf8NQocM-iQ')" class="link-img" alt="" |
| 17 | </div> | 17 | src="@/assets/images/bottom05.svg"> |
| 18 | <img @click="goUrl('https://www.tiktok.com/@lpt.official')" class="link-img" alt="" | ||
| 19 | src="@/assets/images/bottom06.svg"> | ||
| 18 | </el-col> | 20 | </el-col> |
| 19 | <el-col :span="6"> | 21 | </el-row> |
| 20 | <div> | 22 | <el-divider class="foot-divider"></el-divider> |
| 21 | <img alt="" src="@/assets/pc/logo.png"> | 23 | <el-row align="middle" justify="space-between"> |
| 24 | <el-col :span="24" style="display:flex; justify-content: center"> | ||
| 25 | <div class="text-center copyright pd10">{{ languageLibrary[language].a }} | ||
| 26 | <!-- <a href="https://beian.miit.gov.cn/" target="_blank">ICP备案号:苏ICP备2023054420号-2</a>--> | ||
| 22 | </div> | 27 | </div> |
| 23 | </el-col> | 28 | </el-col> |
| 24 | </el-row> | 29 | </el-row> |
| ... | @@ -34,15 +39,15 @@ import {ElMessage} from "element-plus"; | ... | @@ -34,15 +39,15 @@ import {ElMessage} from "element-plus"; |
| 34 | const router = useRouter() | 39 | const router = useRouter() |
| 35 | const language = useStorage('language', 1) | 40 | const language = useStorage('language', 1) |
| 36 | const languageLibrary = [{ | 41 | const languageLibrary = [{ |
| 37 | a:'版权所有@ LONG POKER INC. ALL RIGHT RESERVED', | 42 | a: '版权所有@ LONG POKER INC. ALL RIGHT RESERVED', |
| 38 | },{ | 43 | }, { |
| 39 | a:'COPYRIGHT @ LONG POKER INC. ALL RIGHT RESERVED', | 44 | a: 'COPYRIGHT @ LONG POKER INC. ALL RIGHT RESERVED', |
| 40 | },{ | 45 | }, { |
| 41 | a:'저작권 @ LONG POKER INC. All Rights Reserved.', | 46 | a: '저작권 @ LONG POKER INC. All Rights Reserved.', |
| 42 | },{ | 47 | }, { |
| 43 | a:'著作権 © LONG POKER INC. All Rights Reserved.', | 48 | a: '著作権 © LONG POKER INC. All Rights Reserved.', |
| 44 | },{ | 49 | }, { |
| 45 | a:'Bản quyền thuộc về @ LONG POKER INC.-Giữ toàn bản quyền.', | 50 | a: 'Bản quyền thuộc về @ LONG POKER INC.-Giữ toàn bản quyền.', |
| 46 | }] | 51 | }] |
| 47 | 52 | ||
| 48 | const goHelp = () => { | 53 | const goHelp = () => { |
| ... | @@ -86,7 +91,7 @@ const goUrl = (url) => { | ... | @@ -86,7 +91,7 @@ const goUrl = (url) => { |
| 86 | right: 0; | 91 | right: 0; |
| 87 | top: 65%; | 92 | top: 65%; |
| 88 | z-index: 9; | 93 | z-index: 9; |
| 89 | 94 | ||
| 90 | .mlb { | 95 | .mlb { |
| 91 | background: #fff; | 96 | background: #fff; |
| 92 | border-radius: 10px 0 0 10px; | 97 | border-radius: 10px 0 0 10px; |
| ... | @@ -94,16 +99,16 @@ const goUrl = (url) => { | ... | @@ -94,16 +99,16 @@ const goUrl = (url) => { |
| 94 | padding: 10px 8px; | 99 | padding: 10px 8px; |
| 95 | text-align: center; | 100 | text-align: center; |
| 96 | cursor: pointer; | 101 | cursor: pointer; |
| 97 | 102 | ||
| 98 | div { | 103 | div { |
| 99 | text-transform: uppercase; | 104 | text-transform: uppercase; |
| 100 | } | 105 | } |
| 101 | 106 | ||
| 102 | div:first-child { | 107 | div:first-child { |
| 103 | border-bottom: 0.5px solid #eee; | 108 | border-bottom: 0.5px solid #eee; |
| 104 | //padding: 0 0 10px;margin-bottom: 10px; | 109 | //padding: 0 0 10px;margin-bottom: 10px; |
| 105 | } | 110 | } |
| 106 | 111 | ||
| 107 | div:hover { | 112 | div:hover { |
| 108 | .gradient-text { | 113 | .gradient-text { |
| 109 | font-weight: bold; | 114 | font-weight: bold; |
| ... | @@ -115,7 +120,7 @@ const goUrl = (url) => { | ... | @@ -115,7 +120,7 @@ const goUrl = (url) => { |
| 115 | 120 | ||
| 116 | .footAll { | 121 | .footAll { |
| 117 | //background: #E0E3E5; | 122 | //background: #E0E3E5; |
| 118 | background: #1f2644; | 123 | background: #161d39; |
| 119 | padding: 36px 0 5px; | 124 | padding: 36px 0 5px; |
| 120 | 125 | ||
| 121 | p { | 126 | p { |
| ... | @@ -123,26 +128,26 @@ const goUrl = (url) => { | ... | @@ -123,26 +128,26 @@ const goUrl = (url) => { |
| 123 | opacity: 0.88; | 128 | opacity: 0.88; |
| 124 | color: #4C5359; | 129 | color: #4C5359; |
| 125 | } | 130 | } |
| 126 | 131 | ||
| 127 | ul { | 132 | ul { |
| 128 | list-style: none; | 133 | list-style: none; |
| 129 | 134 | ||
| 130 | li { | 135 | li { |
| 131 | line-height: 30px; | 136 | line-height: 30px; |
| 132 | font-size: 14px; | 137 | font-size: 14px; |
| 133 | opacity: 1; | 138 | opacity: 1; |
| 134 | color: #fff; | 139 | color: #fff; |
| 135 | 140 | ||
| 136 | a { | 141 | a { |
| 137 | margin-left: 15px; | 142 | margin-left: 15px; |
| 138 | 143 | ||
| 139 | &:hover { | 144 | &:hover { |
| 140 | text-decoration: underline; | 145 | text-decoration: underline; |
| 141 | } | 146 | } |
| 142 | } | 147 | } |
| 143 | } | 148 | } |
| 144 | } | 149 | } |
| 145 | 150 | ||
| 146 | img { | 151 | img { |
| 147 | height: 60px; | 152 | height: 60px; |
| 148 | margin-bottom: 20px; | 153 | margin-bottom: 20px; |
| ... | @@ -163,6 +168,7 @@ const goUrl = (url) => { | ... | @@ -163,6 +168,7 @@ const goUrl = (url) => { |
| 163 | -webkit-background-clip: text; | 168 | -webkit-background-clip: text; |
| 164 | -webkit-text-fill-color: transparent; | 169 | -webkit-text-fill-color: transparent; |
| 165 | } | 170 | } |
| 171 | |||
| 166 | .link-img { | 172 | .link-img { |
| 167 | width: 40px; | 173 | width: 40px; |
| 168 | height: 40px !important; | 174 | height: 40px !important; |
| ... | @@ -170,35 +176,37 @@ const goUrl = (url) => { | ... | @@ -170,35 +176,37 @@ const goUrl = (url) => { |
| 170 | margin-right: 20px; | 176 | margin-right: 20px; |
| 171 | display: inline-block; | 177 | display: inline-block; |
| 172 | } | 178 | } |
| 179 | |||
| 173 | .imgFlex { | 180 | .imgFlex { |
| 174 | display: flex; | 181 | display: flex; |
| 175 | align-items: center; | 182 | align-items: center; |
| 176 | justify-content: center; | 183 | justify-content: center; |
| 177 | } | 184 | } |
| 185 | |||
| 178 | @media (max-width: 500px) { | 186 | @media (max-width: 500px) { |
| 179 | .forWei { | 187 | .forWei { |
| 180 | display: none; | 188 | display: none; |
| 181 | } | 189 | } |
| 182 | .footAll { | 190 | .footAll { |
| 183 | padding: 10px 0; | 191 | padding: 10px 0; |
| 184 | 192 | ||
| 185 | ul { | 193 | ul { |
| 186 | li { | 194 | li { |
| 187 | font-size: 10px; | 195 | font-size: 10px; |
| 188 | line-height: 1.4; | 196 | line-height: 1.4; |
| 189 | } | 197 | } |
| 190 | } | 198 | } |
| 191 | 199 | ||
| 192 | img { | 200 | img { |
| 193 | height: 36px; | 201 | height: 36px; |
| 194 | margin-bottom: 0; | 202 | margin-bottom: 0; |
| 195 | } | 203 | } |
| 196 | 204 | ||
| 197 | p { | 205 | p { |
| 198 | font-size: 10px; | 206 | font-size: 10px; |
| 199 | line-height: 1.4; | 207 | line-height: 1.4; |
| 200 | } | 208 | } |
| 201 | 209 | ||
| 202 | .copyright { | 210 | .copyright { |
| 203 | font-size: 10px; | 211 | font-size: 10px; |
| 204 | line-height: 1.4; | 212 | line-height: 1.4; |
| ... | @@ -212,7 +220,7 @@ const goUrl = (url) => { | ... | @@ -212,7 +220,7 @@ const goUrl = (url) => { |
| 212 | 220 | ||
| 213 | .ffoot { | 221 | .ffoot { |
| 214 | display: inline-flex; | 222 | display: inline-flex; |
| 215 | 223 | ||
| 216 | img { | 224 | img { |
| 217 | width: 20px; | 225 | width: 20px; |
| 218 | height: 20px; | 226 | height: 20px; |
| ... | @@ -222,4 +230,10 @@ const goUrl = (url) => { | ... | @@ -222,4 +230,10 @@ const goUrl = (url) => { |
| 222 | margin-right: 4px; | 230 | margin-right: 4px; |
| 223 | } | 231 | } |
| 224 | } | 232 | } |
| 233 | |||
| 234 | .foot-divider { | ||
| 235 | background: linear-gradient(90deg, #F0E1A5, #DEC172); | ||
| 236 | height: 2px; /* 设置高度 */ | ||
| 237 | margin: 50px 0; /* 设置上下边距 */ | ||
| 238 | } | ||
| 225 | </style> | 239 | </style> | ... | ... |
| ... | @@ -4,8 +4,8 @@ | ... | @@ -4,8 +4,8 @@ |
| 4 | <el-button class="back-btn" @click="goback()">{{ languageLibrary[language].a }}</el-button> | 4 | <el-button class="back-btn" @click="goback()">{{ languageLibrary[language].a }}</el-button> |
| 5 | <el-row class="detail-title"> | 5 | <el-row class="detail-title"> |
| 6 | <el-col :span="4"> | 6 | <el-col :span="4"> |
| 7 | <span v-if="projectMainInfo.enrollStatusStr == '未开始'" style="background: #3194FA;border-radius:6px 0 6px 0;padding: 0 4px">{{ languageLibrary[language].o }}</span> | 7 | <span v-if="projectMainInfo.status == '1'" style="background: #3194FA;border-radius:6px 0 6px 0;padding: 0 4px">{{ languageLibrary[language].o }}</span> |
| 8 | <span v-else-if="projectMainInfo.enrollStatusStr == '进行中'" style="background: #21C9AB;border-radius:6px 0 6px 0;padding: 0 4px">{{ languageLibrary[language].p }}</span> | 8 | <span v-else-if="projectMainInfo.status == '2'" style="background: #21C9AB;border-radius:6px 0 6px 0;padding: 0 4px">{{ languageLibrary[language].p }}</span> |
| 9 | <span v-else style="background: #929AA0;border-radius:6px 0 6px 0;padding: 0 4px">{{ languageLibrary[language].q }}</span> | 9 | <span v-else style="background: #929AA0;border-radius:6px 0 6px 0;padding: 0 4px">{{ languageLibrary[language].q }}</span> |
| 10 | </el-col> | 10 | </el-col> |
| 11 | <el-col :span="8"> | 11 | <el-col :span="8"> | ... | ... |
| ... | @@ -40,8 +40,8 @@ | ... | @@ -40,8 +40,8 @@ |
| 40 | <div class="centerbox"> | 40 | <div class="centerbox"> |
| 41 | <div class="centerText"> | 41 | <div class="centerText"> |
| 42 | <span style="font-size: 16px;"> | 42 | <span style="font-size: 16px;"> |
| 43 | <div v-if="n.enrollStatusStr == '未开始'" style="background: #3194FA;border-radius:6px 0 6px 0;padding: 0 4px">{{ languageLibrary[language].b }}</div> | 43 | <div v-if="n.enrollStatus == '1'" style="background: #3194FA;border-radius:6px 0 6px 0;padding: 0 4px">{{ languageLibrary[language].b }}</div> |
| 44 | <div v-else-if="n.enrollStatusStr == '进行中'" style="background: #21C9AB;border-radius:6px 0 6px 0;padding: 0 4px">{{ languageLibrary[language].c }}</div> | 44 | <div v-else-if="n.enrollStatus == '2'" style="background: #21C9AB;border-radius:6px 0 6px 0;padding: 0 4px">{{ languageLibrary[language].c }}</div> |
| 45 | <div v-else style="background: #929AA0;border-radius:6px 0 6px 0;padding: 0 4px">{{ languageLibrary[language].d }}</div> | 45 | <div v-else style="background: #929AA0;border-radius:6px 0 6px 0;padding: 0 4px">{{ languageLibrary[language].d }}</div> |
| 46 | </span> | 46 | </span> |
| 47 | <span style="font-size: 26px">{{ n.cptName }}</span> | 47 | <span style="font-size: 26px">{{ n.cptName }}</span> | ... | ... |
| ... | @@ -6,8 +6,8 @@ | ... | @@ -6,8 +6,8 @@ |
| 6 | <img class="list-title" :src="fillImgUrl(mainInfo.bgImgUrl)"> | 6 | <img class="list-title" :src="fillImgUrl(mainInfo.bgImgUrl)"> |
| 7 | <div style="position: absolute;color: #fff;top:15%;left:5%;width: 100%"> | 7 | <div style="position: absolute;color: #fff;top:15%;left:5%;width: 100%"> |
| 8 | <el-row class="mg-bottom" style="font-size: 16px;"> | 8 | <el-row class="mg-bottom" style="font-size: 16px;"> |
| 9 | <div v-if="mainInfo.enrollStatusStr == '未开始'" style="background: #3194FA;border-radius:6px 0 6px 0;padding: 0 4px">{{ languageLibrary[language].g }}</div> | 9 | <div v-if="mainInfo.enrollStatus == '1'" style="background: #3194FA;border-radius:6px 0 6px 0;padding: 0 4px">{{ languageLibrary[language].g }}</div> |
| 10 | <div v-else-if="mainInfo.enrollStatusStr == '进行中'" style="background: #21C9AB;border-radius:6px 0 6px 0;padding: 0 4px">{{ languageLibrary[language].h }}</div> | 10 | <div v-else-if="mainInfo.enrollStatus == '2'" style="background: #21C9AB;border-radius:6px 0 6px 0;padding: 0 4px">{{ languageLibrary[language].h }}</div> |
| 11 | <div v-else style="background: #929AA0;border-radius:6px 0 6px 0;padding: 0 4px">{{ languageLibrary[language].i }}</div> | 11 | <div v-else style="background: #929AA0;border-radius:6px 0 6px 0;padding: 0 4px">{{ languageLibrary[language].i }}</div> |
| 12 | </el-row> | 12 | </el-row> |
| 13 | <el-row class="mg-bottom" style="font-size: 38px;"><span>{{mainInfo.name}}</span></el-row> | 13 | <el-row class="mg-bottom" style="font-size: 38px;"><span>{{mainInfo.name}}</span></el-row> |
| ... | @@ -34,8 +34,8 @@ | ... | @@ -34,8 +34,8 @@ |
| 34 | <div class="child-card"> | 34 | <div class="child-card"> |
| 35 | <el-button class="go-btn" @click="goDetail(item.id)"></el-button> | 35 | <el-button class="go-btn" @click="goDetail(item.id)"></el-button> |
| 36 | <el-row style="margin-bottom: 10px"> | 36 | <el-row style="margin-bottom: 10px"> |
| 37 | <div v-if="item.statusStr == '未开始'" style="background: #3194FA;border-radius:6px 0 6px 0;padding: 0 4px">{{ languageLibrary[language].g }}</div> | 37 | <div v-if="item.status == '1'" style="background: #3194FA;border-radius:6px 0 6px 0;padding: 0 4px">{{ languageLibrary[language].g }}</div> |
| 38 | <div v-else-if="item.statusStr == '进行中'" style="background: #21C9AB;border-radius:6px 0 6px 0;padding: 0 4px">{{ languageLibrary[language].h }}</div> | 38 | <div v-else-if="item.status == '2'" style="background: #21C9AB;border-radius:6px 0 6px 0;padding: 0 4px">{{ languageLibrary[language].h }}</div> |
| 39 | <div v-else style="background: #929AA0;border-radius:6px 0 6px 0;padding: 0 4px">{{ languageLibrary[language].i }}</div> | 39 | <div v-else style="background: #929AA0;border-radius:6px 0 6px 0;padding: 0 4px">{{ languageLibrary[language].i }}</div> |
| 40 | </el-row> | 40 | </el-row> |
| 41 | <el-row style="margin-bottom: 10px; font-weight: bold;font-size: 20px">{{item.name}}</el-row> | 41 | <el-row style="margin-bottom: 10px; font-weight: bold;font-size: 20px">{{item.name}}</el-row> | ... | ... |
| ... | @@ -42,8 +42,8 @@ | ... | @@ -42,8 +42,8 @@ |
| 42 | <div class="centerbox"> | 42 | <div class="centerbox"> |
| 43 | <div class="centerText"> | 43 | <div class="centerText"> |
| 44 | <span style="font-size: 16px;"> | 44 | <span style="font-size: 16px;"> |
| 45 | <div v-if="n.enrollStatusStr == '未开始'" style="background: #3194FA;border-radius:6px 0 6px 0;padding: 0 4px">{{ languageLibrary[language].g }}</div> | 45 | <div v-if="n.enrollStatus == '1'" style="background: #3194FA;border-radius:6px 0 6px 0;padding: 0 4px">{{ languageLibrary[language].g }}</div> |
| 46 | <div v-else-if="n.enrollStatusStr == '进行中'" style="background: #21C9AB;border-radius:6px 0 6px 0;padding: 0 4px">{{ languageLibrary[language].h }}</div> | 46 | <div v-else-if="n.enrollStatus == '2'" style="background: #21C9AB;border-radius:6px 0 6px 0;padding: 0 4px">{{ languageLibrary[language].h }}</div> |
| 47 | <div v-else style="background: #929AA0;border-radius:6px 0 6px 0;padding: 0 4px">{{ languageLibrary[language].i }}</div> | 47 | <div v-else style="background: #929AA0;border-radius:6px 0 6px 0;padding: 0 4px">{{ languageLibrary[language].i }}</div> |
| 48 | </span> | 48 | </span> |
| 49 | <span style="font-size: 26px">{{n.cptName}}</span> | 49 | <span style="font-size: 26px">{{n.cptName}}</span> |
| ... | @@ -104,12 +104,12 @@ | ... | @@ -104,12 +104,12 @@ |
| 104 | </div> | 104 | </div> |
| 105 | <el-row :gutter="20"> | 105 | <el-row :gutter="20"> |
| 106 | <el-col | 106 | <el-col |
| 107 | v-for="(n,index) in instagramList.slice(0,6)" :lg="6" :sm="6" | 107 | v-for="(n,index) in instagramList.slice(0,8)" :lg="6" :sm="6" |
| 108 | :xs="24" style="margin-bottom: 10px" | 108 | :xs="24" style="margin-bottom: 10px" |
| 109 | > | 109 | > |
| 110 | <div class="activeItem"> | 110 | <div class="activeItem"> |
| 111 | <div class="imgbox"> | 111 | <div class="imgbox"> |
| 112 | <img :src="fillImgUrl(n.picUrl)"> | 112 | <img @click="openImage(index)" :src="fillImgUrl(n.picUrl)"> |
| 113 | </div> | 113 | </div> |
| 114 | </div> | 114 | </div> |
| 115 | </el-col> | 115 | </el-col> |
| ... | @@ -159,6 +159,12 @@ | ... | @@ -159,6 +159,12 @@ |
| 159 | </el-card> | 159 | </el-card> |
| 160 | </div> | 160 | </div> |
| 161 | </div> | 161 | </div> |
| 162 | |||
| 163 | <el-dialog v-model="dialogVisible" style="background: transparent" width="100%"> | ||
| 164 | <el-button @click="preImage" class="preview-button" style="left: 20px"><el-icon style="color: #fff;font-size: 50px"><ArrowLeftBold /></el-icon></el-button> | ||
| 165 | <el-button @click="nextImage" class="preview-button" style="right: 20px"><el-icon style="color: #fff;font-size: 50px"><ArrowRightBold /></el-icon></el-button> | ||
| 166 | <img style="width: 80%;margin: 20px auto" :src="dialogImageUrl" alt="" /> | ||
| 167 | </el-dialog> | ||
| 162 | </div> | 168 | </div> |
| 163 | </template> | 169 | </template> |
| 164 | <script setup> | 170 | <script setup> |
| ... | @@ -174,6 +180,7 @@ import * as match from "@/apiPc/match"; | ... | @@ -174,6 +180,7 @@ import * as match from "@/apiPc/match"; |
| 174 | const router = useRouter() | 180 | const router = useRouter() |
| 175 | const {proxy} = getCurrentInstance() | 181 | const {proxy} = getCurrentInstance() |
| 176 | const emit = defineEmits(['pop', 'pickup', 'backNumber', 'schSearch']) | 182 | const emit = defineEmits(['pop', 'pickup', 'backNumber', 'schSearch']) |
| 183 | import { fillImgUrl } from '@/utils/ruoyi' | ||
| 177 | const newest2 = ref([]) | 184 | const newest2 = ref([]) |
| 178 | const instagramList = ref([]) | 185 | const instagramList = ref([]) |
| 179 | const news = ref([]) | 186 | const news = ref([]) |
| ... | @@ -262,8 +269,8 @@ onMounted(() => { | ... | @@ -262,8 +269,8 @@ onMounted(() => { |
| 262 | const init = () => { | 269 | const init = () => { |
| 263 | match.getMaList({}).then((res) => { | 270 | match.getMaList({}).then((res) => { |
| 264 | newest2.value = res.rows.map(({languageSourceStr,coverUrl,cptName,beginTime, | 271 | newest2.value = res.rows.map(({languageSourceStr,coverUrl,cptName,beginTime, |
| 265 | endTime,address,enrollStatusStr,id,signKnow}) => | 272 | endTime,address,enrollStatus,id,signKnow}) => |
| 266 | ({languageSourceStr,coverUrl,cptName,beginTime,endTime,address,enrollStatusStr,id,signKnow})) | 273 | ({languageSourceStr,coverUrl,cptName,beginTime,endTime,address,enrollStatus,id,signKnow})) |
| 267 | }) | 274 | }) |
| 268 | 275 | ||
| 269 | match.getNoteList(lunboParams.value).then(res => { | 276 | match.getNoteList(lunboParams.value).then(res => { |
| ... | @@ -346,9 +353,42 @@ const getTimeFormate = (time) => { | ... | @@ -346,9 +353,42 @@ const getTimeFormate = (time) => { |
| 346 | 353 | ||
| 347 | return `${year}-${month.toString().padStart(2, '0')}-${date.toString().padStart(2, '0')}`; | 354 | return `${year}-${month.toString().padStart(2, '0')}-${date.toString().padStart(2, '0')}`; |
| 348 | } | 355 | } |
| 356 | |||
| 357 | const dialogVisible = ref(false) | ||
| 358 | const dialogImageUrl = ref('') | ||
| 359 | const imageIndex = ref(0) | ||
| 360 | const openImage = function (index) { | ||
| 361 | imageIndex.value = index | ||
| 362 | dialogImageUrl.value = fillImgUrl(instagramList.value[index].picUrl) | ||
| 363 | dialogVisible.value = true | ||
| 364 | } | ||
| 365 | |||
| 366 | const preImage = function () { | ||
| 367 | if (imageIndex.value >= 1) { | ||
| 368 | imageIndex.value -= 1 | ||
| 369 | } | ||
| 370 | dialogImageUrl.value = fillImgUrl(instagramList.value[imageIndex.value].picUrl) | ||
| 371 | } | ||
| 372 | |||
| 373 | const nextImage = function (url) { | ||
| 374 | if (imageIndex.value < (instagramList.value.length - 1)) { | ||
| 375 | imageIndex.value += 1 | ||
| 376 | } | ||
| 377 | dialogImageUrl.value = fillImgUrl(instagramList.value[imageIndex.value].picUrl) | ||
| 378 | } | ||
| 379 | |||
| 349 | </script> | 380 | </script> |
| 350 | 381 | ||
| 351 | <style lang="scss" scoped> | 382 | <style lang="scss" scoped> |
| 383 | .preview-button { | ||
| 384 | background: transparent; | ||
| 385 | border: none; | ||
| 386 | width: auto; | ||
| 387 | height: auto; | ||
| 388 | position: absolute; | ||
| 389 | top: 50%; | ||
| 390 | } | ||
| 391 | |||
| 352 | .syBg { | 392 | .syBg { |
| 353 | margin: 0 10%; | 393 | margin: 0 10%; |
| 354 | } | 394 | } | ... | ... |
| ... | @@ -7,12 +7,18 @@ | ... | @@ -7,12 +7,18 @@ |
| 7 | </el-col> | 7 | </el-col> |
| 8 | </el-row> | 8 | </el-row> |
| 9 | <el-row> | 9 | <el-row> |
| 10 | <el-col class="photo-space" :lg="8" v-for="item in itemList"> | 10 | <el-col class="photo-space" :lg="8" v-for="(item, index) in itemList"> |
| 11 | <div class="photo-img-group"> | 11 | <div class="photo-img-group"> |
| 12 | <img class="photo-img" :src="fillImgUrl(item.picUrl)"> | 12 | <img class="photo-img" @click="openImage(index)" :src="fillImgUrl(item.picUrl)"> |
| 13 | </div> | 13 | </div> |
| 14 | </el-col> | 14 | </el-col> |
| 15 | </el-row> | 15 | </el-row> |
| 16 | |||
| 17 | <el-dialog v-model="dialogVisible" style="background: transparent" width="100%"> | ||
| 18 | <el-button @click="preImage" class="preview-button" style="left: 20px"><el-icon style="color: #fff;font-size: 50px"><ArrowLeftBold /></el-icon></el-button> | ||
| 19 | <el-button @click="nextImage" class="preview-button" style="right: 20px"><el-icon style="color: #fff;font-size: 50px"><ArrowRightBold /></el-icon></el-button> | ||
| 20 | <img style="width: 80%;margin: 20px auto" :src="dialogImageUrl" alt="" /> | ||
| 21 | </el-dialog> | ||
| 16 | </div> | 22 | </div> |
| 17 | </div> | 23 | </div> |
| 18 | </template> | 24 | </template> |
| ... | @@ -22,6 +28,7 @@ import { onMounted, ref } from 'vue' | ... | @@ -22,6 +28,7 @@ import { onMounted, ref } from 'vue' |
| 22 | import { useRouter } from 'vue-router' | 28 | import { useRouter } from 'vue-router' |
| 23 | import {useStorage} from "@vueuse/core/index"; | 29 | import {useStorage} from "@vueuse/core/index"; |
| 24 | import * as match from "@/apiPc/match"; | 30 | import * as match from "@/apiPc/match"; |
| 31 | import { fillImgUrl } from '@/utils/ruoyi' | ||
| 25 | 32 | ||
| 26 | const language = useStorage('language', 1) | 33 | const language = useStorage('language', 1) |
| 27 | const languageLibrary = [{ | 34 | const languageLibrary = [{ |
| ... | @@ -54,8 +61,39 @@ const getList = () => { | ... | @@ -54,8 +61,39 @@ const getList = () => { |
| 54 | }) | 61 | }) |
| 55 | } | 62 | } |
| 56 | 63 | ||
| 64 | const dialogVisible = ref(false) | ||
| 65 | const dialogImageUrl = ref('') | ||
| 66 | const imageIndex = ref(0) | ||
| 67 | const openImage = function (index) { | ||
| 68 | imageIndex.value = index | ||
| 69 | dialogImageUrl.value = fillImgUrl(itemList.value[index].picUrl) | ||
| 70 | dialogVisible.value = true | ||
| 71 | } | ||
| 72 | |||
| 73 | const preImage = function () { | ||
| 74 | if (imageIndex.value >= 1) { | ||
| 75 | imageIndex.value -= 1 | ||
| 76 | } | ||
| 77 | dialogImageUrl.value = fillImgUrl(itemList.value[imageIndex.value].picUrl) | ||
| 78 | } | ||
| 79 | |||
| 80 | const nextImage = function (url) { | ||
| 81 | if (imageIndex.value < (itemList.value.length - 1)) { | ||
| 82 | imageIndex.value += 1 | ||
| 83 | } | ||
| 84 | dialogImageUrl.value = fillImgUrl(itemList.value[imageIndex.value].picUrl) | ||
| 85 | } | ||
| 57 | </script> | 86 | </script> |
| 58 | <style lang="scss" scoped> | 87 | <style lang="scss" scoped> |
| 88 | .preview-button { | ||
| 89 | background: transparent; | ||
| 90 | border: none; | ||
| 91 | width: auto; | ||
| 92 | height: auto; | ||
| 93 | position: absolute; | ||
| 94 | top: 50%; | ||
| 95 | } | ||
| 96 | |||
| 59 | .photo-pagination { | 97 | .photo-pagination { |
| 60 | justify-content: center; | 98 | justify-content: center; |
| 61 | margin: 10px; | 99 | margin: 10px; | ... | ... |
| ... | @@ -7,13 +7,19 @@ | ... | @@ -7,13 +7,19 @@ |
| 7 | </el-col> | 7 | </el-col> |
| 8 | </el-row> | 8 | </el-row> |
| 9 | <el-row> | 9 | <el-row> |
| 10 | <el-col class="photo-space" :lg="8" v-for="item in itemList"> | 10 | <el-col class="photo-space" :lg="8" v-for="(item, index) in itemList"> |
| 11 | <div class="photo-img-group"> | 11 | <div class="photo-img-group"> |
| 12 | <img class="photo-img" :src="fillImgUrl(item.picUrl)"> | 12 | <img class="photo-img" @click="openImage(index)" :src="fillImgUrl(item.picUrl)"> |
| 13 | <span style="display: block;font-size: 16px;margin:5px 0;color:#fff">{{item.text}}</span> | 13 | <span style="display: block;font-size: 16px;margin:5px 0;color:#fff">{{item.text}}</span> |
| 14 | </div> | 14 | </div> |
| 15 | </el-col> | 15 | </el-col> |
| 16 | </el-row> | 16 | </el-row> |
| 17 | |||
| 18 | <el-dialog v-model="dialogVisible" style="background: transparent" width="100%"> | ||
| 19 | <el-button @click="preImage" class="preview-button" style="left: 20px"><el-icon style="color: #fff;font-size: 50px"><ArrowLeftBold /></el-icon></el-button> | ||
| 20 | <el-button @click="nextImage" class="preview-button" style="right: 20px"><el-icon style="color: #fff;font-size: 50px"><ArrowRightBold /></el-icon></el-button> | ||
| 21 | <img style="width: 80%;margin: 20px auto" :src="dialogImageUrl" alt="" /> | ||
| 22 | </el-dialog> | ||
| 17 | </div> | 23 | </div> |
| 18 | </div> | 24 | </div> |
| 19 | </template> | 25 | </template> |
| ... | @@ -24,6 +30,7 @@ import { getNewsListById } from '@/apiPc/webSite' | ... | @@ -24,6 +30,7 @@ import { getNewsListById } from '@/apiPc/webSite' |
| 24 | import { useRouter } from 'vue-router' | 30 | import { useRouter } from 'vue-router' |
| 25 | import {useStorage} from "@vueuse/core/index"; | 31 | import {useStorage} from "@vueuse/core/index"; |
| 26 | import * as match from "@/apiPc/match"; | 32 | import * as match from "@/apiPc/match"; |
| 33 | import { fillImgUrl } from '@/utils/ruoyi' | ||
| 27 | 34 | ||
| 28 | const language = useStorage('language', 1) | 35 | const language = useStorage('language', 1) |
| 29 | const languageLibrary = ref([{ | 36 | const languageLibrary = ref([{ |
| ... | @@ -61,8 +68,41 @@ const goDetail = (id) => { | ... | @@ -61,8 +68,41 @@ const goDetail = (id) => { |
| 61 | path: `/photo/detail/${id}` | 68 | path: `/photo/detail/${id}` |
| 62 | }) | 69 | }) |
| 63 | } | 70 | } |
| 71 | |||
| 72 | const dialogVisible = ref(false) | ||
| 73 | const dialogImageUrl = ref('') | ||
| 74 | const imageIndex = ref(0) | ||
| 75 | const openImage = function (index) { | ||
| 76 | imageIndex.value = index | ||
| 77 | dialogImageUrl.value = fillImgUrl(itemList.value[index].picUrl) | ||
| 78 | dialogVisible.value = true | ||
| 79 | } | ||
| 80 | |||
| 81 | const preImage = function () { | ||
| 82 | if (imageIndex.value >= 1) { | ||
| 83 | imageIndex.value -= 1 | ||
| 84 | } | ||
| 85 | dialogImageUrl.value = fillImgUrl(itemList.value[imageIndex.value].picUrl) | ||
| 86 | } | ||
| 87 | |||
| 88 | const nextImage = function () { | ||
| 89 | if (imageIndex.value < (itemList.value.length - 1)) { | ||
| 90 | imageIndex.value += 1 | ||
| 91 | } | ||
| 92 | dialogImageUrl.value = fillImgUrl(itemList.value[imageIndex.value].picUrl) | ||
| 93 | } | ||
| 94 | |||
| 64 | </script> | 95 | </script> |
| 65 | <style lang="scss" scoped> | 96 | <style lang="scss" scoped> |
| 97 | .preview-button { | ||
| 98 | background: transparent; | ||
| 99 | border: none; | ||
| 100 | width: auto; | ||
| 101 | height: auto; | ||
| 102 | position: absolute; | ||
| 103 | top: 50%; | ||
| 104 | } | ||
| 105 | |||
| 66 | .photo-space { | 106 | .photo-space { |
| 67 | padding: 10px; | 107 | padding: 10px; |
| 68 | } | 108 | } | ... | ... |
| 1 | <template> | 1 | <template> |
| 2 | <div> | 2 | <div> |
| 3 | <div class="box"> | 3 | <div class="box"> |
| 4 | <el-button class="back-btn" @click="goback()">{{ languageLibrary[language].a }}</el-button> | 4 | <!-- <el-button class="back-btn" @click="goback()">{{ languageLibrary[language].a }}</el-button>--> |
| 5 | <el-card class="mt20 mb20 news-card"> | 5 | <el-card class="mt20 mb20 news-card"> |
| 6 | <div class="bpd"> | 6 | <div class="bpd"> |
| 7 | <h3 class="title">{{form.name}}</h3> | 7 | <h3 class="title">{{form.name}}</h3> | ... | ... |
| ... | @@ -30,7 +30,7 @@ | ... | @@ -30,7 +30,7 @@ |
| 30 | <div class="item-body"> | 30 | <div class="item-body"> |
| 31 | <el-row> | 31 | <el-row> |
| 32 | <el-col :span="8"> | 32 | <el-col :span="8"> |
| 33 | <img style="aspect-ratio: 2/1;width: 100%;padding: 10px" :src="fillImgUrl(n.picUrl)"> | 33 | <img style="width: 100%;padding: 10px" :src="fillImgUrl(n.picUrl)"> |
| 34 | </el-col> | 34 | </el-col> |
| 35 | <el-col :span="16"> | 35 | <el-col :span="16"> |
| 36 | <h3 >{{n.name}}</h3> | 36 | <h3 >{{n.name}}</h3> |
| ... | @@ -53,7 +53,7 @@ | ... | @@ -53,7 +53,7 @@ |
| 53 | </template> | 53 | </template> |
| 54 | <script setup> | 54 | <script setup> |
| 55 | import { ArrowRight, Search } from '@element-plus/icons-vue' | 55 | import { ArrowRight, Search } from '@element-plus/icons-vue' |
| 56 | import { onMounted, ref } from 'vue' | 56 | import {nextTick, onMounted, ref} from 'vue' |
| 57 | import { getNewsListById } from '@/apiPc/webSite' | 57 | import { getNewsListById } from '@/apiPc/webSite' |
| 58 | import { useRouter } from 'vue-router' | 58 | import { useRouter } from 'vue-router' |
| 59 | import {useStorage} from "@vueuse/core/index"; | 59 | import {useStorage} from "@vueuse/core/index"; |
| ... | @@ -132,9 +132,11 @@ const getMoreList = ()=> { | ... | @@ -132,9 +132,11 @@ const getMoreList = ()=> { |
| 132 | } | 132 | } |
| 133 | 133 | ||
| 134 | const goDetail = (id) => { | 134 | const goDetail = (id) => { |
| 135 | router.push({ | 135 | localStorage.setItem('scrollPosition', JSON.stringify({ x: window.pageXOffset, y: window.pageYOffset })) |
| 136 | const url = router.resolve({ | ||
| 136 | path: `/news/detail/${id}` | 137 | path: `/news/detail/${id}` |
| 137 | }) | 138 | }) |
| 139 | window.open(url.href, '_blank') | ||
| 138 | } | 140 | } |
| 139 | </script> | 141 | </script> |
| 140 | <style lang="scss" scoped> | 142 | <style lang="scss" scoped> | ... | ... |
| ... | @@ -4,8 +4,8 @@ | ... | @@ -4,8 +4,8 @@ |
| 4 | <el-button class="back-btn" @click="goback()">{{ languageLibrary[language].a }}</el-button> | 4 | <el-button class="back-btn" @click="goback()">{{ languageLibrary[language].a }}</el-button> |
| 5 | <el-row class="detail-title"> | 5 | <el-row class="detail-title"> |
| 6 | <el-col :span="4"> | 6 | <el-col :span="4"> |
| 7 | <span v-if="projectMainInfo.enrollStatusStr == '未开始'" style="background: #3194FA;border-radius:6px 0 6px 0;padding: 0 4px">{{ languageLibrary[language].g }}</span> | 7 | <span v-if="projectMainInfo.enrollStatus == '1'" style="background: #3194FA;border-radius:6px 0 6px 0;padding: 0 4px">{{ languageLibrary[language].g }}</span> |
| 8 | <span v-else-if="projectMainInfo.enrollStatusStr == '进行中'" style="background: #21C9AB;border-radius:6px 0 6px 0;padding: 0 4px">{{ languageLibrary[language].h }}</span> | 8 | <span v-else-if="projectMainInfo.enrollStatus == '2'" style="background: #21C9AB;border-radius:6px 0 6px 0;padding: 0 4px">{{ languageLibrary[language].h }}</span> |
| 9 | <span v-else style="background: #929AA0;border-radius:6px 0 6px 0;padding: 0 4px">{{ languageLibrary[language].i }}</span> | 9 | <span v-else style="background: #929AA0;border-radius:6px 0 6px 0;padding: 0 4px">{{ languageLibrary[language].i }}</span> |
| 10 | </el-col> | 10 | </el-col> |
| 11 | <el-col :span="6"> | 11 | <el-col :span="6"> |
| ... | @@ -34,12 +34,18 @@ | ... | @@ -34,12 +34,18 @@ |
| 34 | </el-row> | 34 | </el-row> |
| 35 | 35 | ||
| 36 | <el-row> | 36 | <el-row> |
| 37 | <el-col class="photo-space" :lg="12" v-for="item in photoList"> | 37 | <el-col class="photo-space" :lg="12" v-for="(item, index) in photoList"> |
| 38 | <div class="photo-img-group"> | 38 | <div class="photo-img-group"> |
| 39 | <img class="photo-img" :src="fillImgUrl(item.path)"> | 39 | <img class="photo-img" @click="openImage(index)" :src="fillImgUrl(item.path)"> |
| 40 | </div> | 40 | </div> |
| 41 | </el-col> | 41 | </el-col> |
| 42 | </el-row> | 42 | </el-row> |
| 43 | |||
| 44 | <el-dialog v-model="dialogVisible" style="background: transparent" width="100%"> | ||
| 45 | <el-button @click="preImage" class="preview-button" style="left: 20px"><el-icon style="color: #fff;font-size: 50px"><ArrowLeftBold /></el-icon></el-button> | ||
| 46 | <el-button @click="nextImage" class="preview-button" style="right: 20px"><el-icon style="color: #fff;font-size: 50px"><ArrowRightBold /></el-icon></el-button> | ||
| 47 | <img style="width: 80%;margin: 20px auto" :src="dialogImageUrl" alt="" /> | ||
| 48 | </el-dialog> | ||
| 43 | </div> | 49 | </div> |
| 44 | </div> | 50 | </div> |
| 45 | </template> | 51 | </template> |
| ... | @@ -48,6 +54,7 @@ import { onMounted, onUnmounted, ref, watch } from 'vue' | ... | @@ -48,6 +54,7 @@ import { onMounted, onUnmounted, ref, watch } from 'vue' |
| 48 | import { useRoute, useRouter } from 'vue-router' | 54 | import { useRoute, useRouter } from 'vue-router' |
| 49 | import {useStorage} from "@vueuse/core"; | 55 | import {useStorage} from "@vueuse/core"; |
| 50 | import {getMain,getImgList} from '@/apiPc/webSite' | 56 | import {getMain,getImgList} from '@/apiPc/webSite' |
| 57 | import { fillImgUrl } from '@/utils/ruoyi' | ||
| 51 | 58 | ||
| 52 | const router = useRouter() | 59 | const router = useRouter() |
| 53 | const route = useRoute() | 60 | const route = useRoute() |
| ... | @@ -118,12 +125,44 @@ const getPhotoList = () => { | ... | @@ -118,12 +125,44 @@ const getPhotoList = () => { |
| 118 | }) | 125 | }) |
| 119 | } | 126 | } |
| 120 | 127 | ||
| 128 | const dialogVisible = ref(false) | ||
| 129 | const dialogImageUrl = ref('') | ||
| 130 | const imageIndex = ref(0) | ||
| 131 | const openImage = function (index) { | ||
| 132 | imageIndex.value = index | ||
| 133 | dialogImageUrl.value = fillImgUrl(photoList.value[index].path) | ||
| 134 | dialogVisible.value = true | ||
| 135 | } | ||
| 136 | |||
| 137 | const preImage = function () { | ||
| 138 | if (imageIndex.value >= 1) { | ||
| 139 | imageIndex.value -= 1 | ||
| 140 | } | ||
| 141 | dialogImageUrl.value = fillImgUrl(photoList.value[imageIndex.value].path) | ||
| 142 | } | ||
| 143 | |||
| 144 | const nextImage = function (url) { | ||
| 145 | if (imageIndex.value < (photoList.value.length - 1)) { | ||
| 146 | imageIndex.value += 1 | ||
| 147 | } | ||
| 148 | dialogImageUrl.value = fillImgUrl(photoList.value[imageIndex.value].path) | ||
| 149 | } | ||
| 150 | |||
| 121 | const goback = function () { | 151 | const goback = function () { |
| 122 | router.go(-1) | 152 | router.go(-1) |
| 123 | } | 153 | } |
| 124 | 154 | ||
| 125 | </script> | 155 | </script> |
| 126 | <style lang="scss" scoped> | 156 | <style lang="scss" scoped> |
| 157 | .preview-button { | ||
| 158 | background: transparent; | ||
| 159 | border: none; | ||
| 160 | width: auto; | ||
| 161 | height: auto; | ||
| 162 | position: absolute; | ||
| 163 | top: 50%; | ||
| 164 | } | ||
| 165 | |||
| 127 | .box { | 166 | .box { |
| 128 | padding: 0 10%; | 167 | padding: 0 10%; |
| 129 | } | 168 | } |
| ... | @@ -166,7 +205,6 @@ const goback = function () { | ... | @@ -166,7 +205,6 @@ const goback = function () { |
| 166 | 205 | ||
| 167 | .photo-img { | 206 | .photo-img { |
| 168 | width: 100%; | 207 | width: 100%; |
| 169 | aspect-ratio: 3/2; | ||
| 170 | cursor: pointer; | 208 | cursor: pointer; |
| 171 | } | 209 | } |
| 172 | </style> | 210 | </style> | ... | ... |
| ... | @@ -63,14 +63,15 @@ onMounted(() => { | ... | @@ -63,14 +63,15 @@ onMounted(() => { |
| 63 | const getList = () => { | 63 | const getList = () => { |
| 64 | match.getTree({ | 64 | match.getTree({ |
| 65 | code: tid.value | 65 | code: tid.value |
| 66 | }).then((res) => { | 66 | }).then(async(res) => { |
| 67 | if (res.code === 200) { | 67 | if (res.code === 200) { |
| 68 | matchList.value = [] | 68 | matchList.value = [] |
| 69 | res.data.forEach(item => { | 69 | console.log(res.data.length) |
| 70 | match.getTreeDetail(item.id).then((res2) => { | 70 | for (let i=0;i<res.data.length;i++) { |
| 71 | matchList.value.push(res2.data) | 71 | console.log(res.data[i].id) |
| 72 | }) | 72 | const matchData = await match.getTreeDetail(res.data[i].id) |
| 73 | }) | 73 | matchList.value.push(matchData.data) |
| 74 | } | ||
| 74 | } | 75 | } |
| 75 | }) | 76 | }) |
| 76 | } | 77 | } |
| ... | @@ -142,7 +143,6 @@ const goback = function () { | ... | @@ -142,7 +143,6 @@ const goback = function () { |
| 142 | 143 | ||
| 143 | .photo-img { | 144 | .photo-img { |
| 144 | width: 100%; | 145 | width: 100%; |
| 145 | aspect-ratio: 2/1; | ||
| 146 | cursor: pointer; | 146 | cursor: pointer; |
| 147 | } | 147 | } |
| 148 | 148 | ... | ... |
-
Please register or sign in to post a comment