main
gaotian 1 year ago
parent ef02692d25
commit 658e347d72
  1. 23
      .gitignore
  2. 24
      README.md
  3. 5
      babel.config.js
  4. 1
      dist/css/314.e30a0c38.css
  5. 1
      dist/css/385.30cbd4cf.css
  6. 1
      dist/css/app.4e64690e.css
  7. BIN
      dist/favicon.ico
  8. BIN
      dist/img/bg.02ddd4c0.webp
  9. BIN
      dist/img/bg.97c24e8a.webp
  10. BIN
      dist/img/line.29e26566.webp
  11. BIN
      dist/img/rank001.11b9f65d.webp
  12. BIN
      dist/img/rank001.c798826f.webp
  13. BIN
      dist/img/rank002.1f35ed55.webp
  14. BIN
      dist/img/rank002.cf723e8d.webp
  15. BIN
      dist/img/rank003.a26e93a7.webp
  16. BIN
      dist/img/rank003.e21b7995.webp
  17. BIN
      dist/img/rank01.b7834c9d.webp
  18. BIN
      dist/img/rank02.469c9665.webp
  19. BIN
      dist/img/title.50f67b86.webp
  20. BIN
      dist/img/title.670eb715.webp
  21. BIN
      dist/img/tx.725c0bb3.png
  22. 1
      dist/index.html
  23. 2
      dist/js/314.478fc575.js
  24. 1
      dist/js/314.478fc575.js.map
  25. 2
      dist/js/385.450020f9.js
  26. 1
      dist/js/385.450020f9.js.map
  27. 2
      dist/js/60.75349199.js
  28. 1
      dist/js/60.75349199.js.map
  29. 2
      dist/js/app.56767b63.js
  30. 1
      dist/js/app.56767b63.js.map
  31. 8
      dist/js/chunk-vendors.1de1bcc8.js
  32. 1
      dist/js/chunk-vendors.1de1bcc8.js.map
  33. 19
      jsconfig.json
  34. 19715
      package-lock.json
  35. 49
      package.json
  36. BIN
      public/favicon.ico
  37. 17
      public/index.html
  38. 25
      src/App.vue
  39. 29
      src/api/lingyuge.js
  40. BIN
      src/assets/lingyungeImages/mobile/avaBg.png
  41. BIN
      src/assets/lingyungeImages/mobile/avaBg.webp
  42. BIN
      src/assets/lingyungeImages/mobile/bg.png
  43. BIN
      src/assets/lingyungeImages/mobile/bg.webp
  44. BIN
      src/assets/lingyungeImages/mobile/btn.png
  45. BIN
      src/assets/lingyungeImages/mobile/btn.webp
  46. BIN
      src/assets/lingyungeImages/mobile/line.webp
  47. BIN
      src/assets/lingyungeImages/mobile/rank001.png
  48. BIN
      src/assets/lingyungeImages/mobile/rank001.webp
  49. BIN
      src/assets/lingyungeImages/mobile/rank002.png
  50. BIN
      src/assets/lingyungeImages/mobile/rank002.webp
  51. BIN
      src/assets/lingyungeImages/mobile/rank003.png
  52. BIN
      src/assets/lingyungeImages/mobile/rank003.webp
  53. BIN
      src/assets/lingyungeImages/mobile/rank01.png
  54. BIN
      src/assets/lingyungeImages/mobile/rank01.webp
  55. BIN
      src/assets/lingyungeImages/mobile/rank02.png
  56. BIN
      src/assets/lingyungeImages/mobile/rank02.webp
  57. BIN
      src/assets/lingyungeImages/mobile/rank03.png
  58. BIN
      src/assets/lingyungeImages/mobile/rank03.webp
  59. BIN
      src/assets/lingyungeImages/mobile/rank04.png
  60. BIN
      src/assets/lingyungeImages/mobile/rank04.webp
  61. BIN
      src/assets/lingyungeImages/mobile/rank05.png
  62. BIN
      src/assets/lingyungeImages/mobile/rank05.webp
  63. BIN
      src/assets/lingyungeImages/mobile/rule.png
  64. BIN
      src/assets/lingyungeImages/mobile/rule.webp
  65. BIN
      src/assets/lingyungeImages/mobile/tips.png
  66. BIN
      src/assets/lingyungeImages/mobile/tips.webp
  67. BIN
      src/assets/lingyungeImages/mobile/title.png
  68. BIN
      src/assets/lingyungeImages/mobile/title.webp
  69. BIN
      src/assets/lingyungeImages/pc/bg.png
  70. BIN
      src/assets/lingyungeImages/pc/bg.webp
  71. BIN
      src/assets/lingyungeImages/pc/itemBg.png
  72. BIN
      src/assets/lingyungeImages/pc/itemBg.webp
  73. BIN
      src/assets/lingyungeImages/pc/rank001.png
  74. BIN
      src/assets/lingyungeImages/pc/rank001.webp
  75. BIN
      src/assets/lingyungeImages/pc/rank002.png
  76. BIN
      src/assets/lingyungeImages/pc/rank002.webp
  77. BIN
      src/assets/lingyungeImages/pc/rank003.png
  78. BIN
      src/assets/lingyungeImages/pc/rank003.webp
  79. BIN
      src/assets/lingyungeImages/pc/rank004.png
  80. BIN
      src/assets/lingyungeImages/pc/rank004.webp
  81. BIN
      src/assets/lingyungeImages/pc/rank005.png
  82. BIN
      src/assets/lingyungeImages/pc/rank005.webp
  83. BIN
      src/assets/lingyungeImages/pc/rank01.png
  84. BIN
      src/assets/lingyungeImages/pc/rank01.webp
  85. BIN
      src/assets/lingyungeImages/pc/rank02.png
  86. BIN
      src/assets/lingyungeImages/pc/rank02.webp
  87. BIN
      src/assets/lingyungeImages/pc/rank03.png
  88. BIN
      src/assets/lingyungeImages/pc/rank03.webp
  89. BIN
      src/assets/lingyungeImages/pc/tips.png
  90. BIN
      src/assets/lingyungeImages/pc/tips.webp
  91. BIN
      src/assets/lingyungeImages/pc/title.png
  92. BIN
      src/assets/lingyungeImages/pc/title.webp
  93. BIN
      src/assets/lingyungeImages/tx.png
  94. BIN
      src/assets/logo.png
  95. 58
      src/components/HelloWorld.vue
  96. 4
      src/config.js
  97. 46
      src/http/axios.js
  98. 6
      src/main.js
  99. 69
      src/pages/lingyunge/demo.vue
  100. 517
      src/pages/lingyunge/lingyungeMobile/index.vue
  101. Some files were not shown because too many files have changed in this diff Show More

23
.gitignore vendored

@ -0,0 +1,23 @@
.DS_Store
node_modules
# local env files
.env.local
.env.*.local
# Log files
npm-debug.log*
yarn-debug.log*
yarn-error.log*
pnpm-debug.log*
# Editor directories and files
.idea
.vscode
*.suo
*.ntvs*
*.njsproj
*.sln
*.sw?

@ -1,2 +1,24 @@
# lingyunge_uni
# lingyunge
## Project setup
```
npm install
```
### Compiles and hot-reloads for development
```
npm run serve
```
### Compiles and minifies for production
```
npm run build
```
### Lints and fixes files
```
npm run lint
```
### Customize configuration
See [Configuration Reference](https://cli.vuejs.org/config/).

@ -0,0 +1,5 @@
module.exports = {
presets: [
'@vue/cli-plugin-babel/preset'
],
}

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

@ -0,0 +1 @@
#app,body,html{width:100%;height:100%;margin:0;padding:0}

BIN
dist/favicon.ico vendored

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 360 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 88 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 33 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 13 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 12 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 10 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 8.8 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 9.0 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 9.0 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 36 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 25 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 14 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 88 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 8.2 KiB

1
dist/index.html vendored

@ -0,0 +1 @@
<!doctype html><html lang=""><head><meta charset="utf-8"><meta http-equiv="X-UA-Compatible" content="IE=edge"><meta name="viewport" content="width=device-width,initial-scale=1"><link rel="icon" href="/web/favicon.ico"><title>lingyunge</title><script defer="defer" src="/web/js/chunk-vendors.1de1bcc8.js"></script><script defer="defer" src="/web/js/app.56767b63.js"></script><link href="/web/css/app.4e64690e.css" rel="stylesheet"></head><body><noscript><strong>We're sorry but lingyunge doesn't work properly without JavaScript enabled. Please enable it to continue.</strong></noscript><div id="app"></div></body></html>

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

@ -0,0 +1,19 @@
{
"compilerOptions": {
"target": "es5",
"module": "esnext",
"baseUrl": "./",
"moduleResolution": "node",
"paths": {
"@/*": [
"src/*"
]
},
"lib": [
"esnext",
"dom",
"dom.iterable",
"scripthost"
]
}
}

19715
package-lock.json generated

File diff suppressed because it is too large Load Diff

@ -0,0 +1,49 @@
{
"name": "lingyunge",
"version": "0.1.0",
"private": true,
"scripts": {
"serve": "vue-cli-service serve",
"build": "vue-cli-service build",
"lint": "vue-cli-service lint"
},
"dependencies": {
"axios": "^1.5.0",
"core-js": "^3.8.3",
"sass": "^1.66.1",
"sass-loader": "^13.3.2",
"swiper": "^10.2.0",
"vue": "^3.2.13",
"vue-router": "^4.2.4"
},
"devDependencies": {
"@babel/core": "^7.12.16",
"@babel/eslint-parser": "^7.12.16",
"@vue/cli-plugin-babel": "~5.0.0",
"@vue/cli-plugin-eslint": "~5.0.0",
"@vue/cli-service": "~5.0.0",
"eslint": "^7.32.0",
"eslint-plugin-vue": "^8.0.3",
"image-webpack-loader": "^8.1.0"
},
"eslintConfig": {
"root": true,
"env": {
"node": true
},
"extends": [
"plugin:vue/vue3-essential",
"eslint:recommended"
],
"parserOptions": {
"parser": "@babel/eslint-parser"
},
"rules": {}
},
"browserslist": [
"> 1%",
"last 2 versions",
"not dead",
"not ie 11"
]
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.2 KiB

@ -0,0 +1,17 @@
<!DOCTYPE html>
<html lang="">
<head>
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width,initial-scale=1.0">
<link rel="icon" href="<%= BASE_URL %>favicon.ico">
<title><%= htmlWebpackPlugin.options.title %></title>
</head>
<body>
<noscript>
<strong>We're sorry but <%= htmlWebpackPlugin.options.title %> doesn't work properly without JavaScript enabled. Please enable it to continue.</strong>
</noscript>
<div id="app"></div>
<!-- built files will be auto injected -->
</body>
</html>

@ -0,0 +1,25 @@
<template>
<router-view>
</router-view>
</template>
<script>
export default {
name: 'App',
components: {
},
}
</script>
<style>
/* 全局样式 */
html,
body,
#app {
width: 100%;
height: 100%;
margin: 0;
padding: 0;
}
</style>

@ -0,0 +1,29 @@
// 导入axios实例
import httpRequest from '@/http/axios'
// //post示例
// export function postDemo() {
// return httpRequest({
// url: '',
// method: 'post',
// data: param,
// })
// }
// //get示例
// export function getDemo(id) {
// return httpRequest({
// url: `xxx?id=${id}`,
// method: 'get',
// })
// }
//lingyungeJS
let base_ling = "https://lyg.tsl3060.com/index.php/api";
export function getList() {
return httpRequest({
url: `${base_ling}/index/index`,
method: 'get',
})
}
//lingyungeJS结束

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.0 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.1 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 88 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 11 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.5 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 33 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 49 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 13 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 36 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 10 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 32 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 9.0 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 13 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.5 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 10 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.6 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 10 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.6 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 8.9 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 8.9 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 706 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 776 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 42 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 14 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 12 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 360 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 36 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.5 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 76 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 12 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 56 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 8.8 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 56 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 9.0 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 46 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.6 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 46 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.6 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 164 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 36 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 113 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 25 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 97 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 22 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.0 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 291 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 88 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 8.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.7 KiB

@ -0,0 +1,58 @@
<template>
<div class="hello">
<h1>{{ msg }}</h1>
<p>
For a guide and recipes on how to configure / customize this project,<br>
check out the
<a href="https://cli.vuejs.org" target="_blank" rel="noopener">vue-cli documentation</a>.
</p>
<h3>Installed CLI Plugins</h3>
<ul>
<li><a href="https://github.com/vuejs/vue-cli/tree/dev/packages/%40vue/cli-plugin-babel" target="_blank" rel="noopener">babel</a></li>
<li><a href="https://github.com/vuejs/vue-cli/tree/dev/packages/%40vue/cli-plugin-eslint" target="_blank" rel="noopener">eslint</a></li>
</ul>
<h3>Essential Links</h3>
<ul>
<li><a href="https://vuejs.org" target="_blank" rel="noopener">Core Docs</a></li>
<li><a href="https://forum.vuejs.org" target="_blank" rel="noopener">Forum</a></li>
<li><a href="https://chat.vuejs.org" target="_blank" rel="noopener">Community Chat</a></li>
<li><a href="https://twitter.com/vuejs" target="_blank" rel="noopener">Twitter</a></li>
<li><a href="https://news.vuejs.org" target="_blank" rel="noopener">News</a></li>
</ul>
<h3>Ecosystem</h3>
<ul>
<li><a href="https://router.vuejs.org" target="_blank" rel="noopener">vue-router</a></li>
<li><a href="https://vuex.vuejs.org" target="_blank" rel="noopener">vuex</a></li>
<li><a href="https://github.com/vuejs/vue-devtools#vue-devtools" target="_blank" rel="noopener">vue-devtools</a></li>
<li><a href="https://vue-loader.vuejs.org" target="_blank" rel="noopener">vue-loader</a></li>
<li><a href="https://github.com/vuejs/awesome-vue" target="_blank" rel="noopener">awesome-vue</a></li>
</ul>
</div>
</template>
<script>
export default {
name: 'HelloWorld',
props: {
msg: String
}
}
</script>
<!-- Add "scoped" attribute to limit CSS to this component only -->
<style scoped>
h3 {
margin: 40px 0 0;
}
ul {
list-style-type: none;
padding: 0;
}
li {
display: inline-block;
margin: 0 10px;
}
a {
color: #42b983;
}
</style>

@ -0,0 +1,4 @@
module.exports = {
ROUTER_BASEURL:"/web/",//路由根目录baseUrl,
BASE_URL:"/web/",//发布BaseUrl
}

@ -0,0 +1,46 @@
import axios from 'axios'
// 创建一个 axios 实例
const service = axios.create({
baseURL: '/api', // 所有的请求地址前缀部分
timeout: 60000, // 请求超时时间毫秒
withCredentials: true, // 异步请求携带cookie
headers: {
// 设置后端需要的传参类型
'Content-Type': 'application/json',
// 'token': 'token',
},
})
// 添加请求拦截器
service.interceptors.request.use(
function (config) {
// 在发送请求之前做些什么
return config
},
function (error) {
// 对请求错误做些什么
console.log(error,'请求错误')
return Promise.reject(error)
}
)
// 添加响应拦截器
service.interceptors.response.use(
function (response) {
console.log(response)
// 成功码范围内的状态码都会触发该函数。
// 对响应数据做点什么
// dataAxios 是 axios 返回数据中的 data
const dataAxios = response.data
// 这个状态码是和后端约定的
const code = dataAxios.reset
return dataAxios
},
function (error) {
// 超出成功码范围的状态码都会触发该函数。
// 对响应错误做点什么
console.log(error)
return Promise.reject(error)
}
)
export default service

@ -0,0 +1,6 @@
import { createApp } from 'vue'
import App from './App.vue'
//引入router
import router from "./router";
//
createApp(App).use(router).mount('#app')

@ -0,0 +1,69 @@
<template>
<view class="pdd">
<div class="text">
{{ text }}
</div>
<input type="text" :value="value" />
<button @click="queryClick">点击发送</button>
</view>
</template>
<script>
import axios from 'axios';
export default {
components: {},
data() {
return {
text: '',
value: '',
};
},
computed: {},
onShow() { },
methods: {
async query(data) {
// axios.defaults.headers.post['Access-Control-Allow-Origin'] = '*';
// axios.post('/api/v1/prediction/cf4f7471-7301-4bd6-aaa3-87c16e615b84', JSON.stringify(data), {
// headers: {
// 'Authorization': 'Bearer ZT1v19tYfMb4+2Y6VX7gtf9oacNEy6J03SabP8yfa6w=',
// 'Content-Type': 'application/json',
// }
// }).then(function (resp) {
// console.log(resp)
// }).catch(function (error) {
// console.log(error);
// })
// axios
// .post('v1/prediction/cf4f7471-7301-4bd6-aaa3-87c16e615b84', JSON.stringify(data), {
// headers: {
// 'Authorization': 'Bearer ZT1v19tYfMb4+2Y6VX7gtf9oacNEy6J03SabP8yfa6w=',
// 'Content-Type': 'application/json',
// },
// })
// .then(function (response) {
// console.log(response);
// })
// .catch(function (error) {
// console.log(error);
// });
const response = await fetch('/api/v1/prediction/cf4f7471-7301-4bd6-aaa3-87c16e615b84', {
headers: {
'Authorization': 'Bearer ZT1v19tYfMb4+2Y6VX7gtf9oacNEy6J03SabP8yfa6w=',
'Content-Type': 'application/json',
},
method: 'POST',
body: JSON.stringify(data),
});
const result = await response.json();
return result;
},
queryClick() {
let msg = this.query('hello');
console.log(msg);
},
},
};
</script>
<style scoped lang="scss"></style>

@ -0,0 +1,517 @@
<template>
<div class='content'>
<div class="bg">
<div class="cnt">
<div class="cntBg"></div>
<div class="cntRank">
<div class="rank1">
<img class="rankBg" src="../../../assets/lingyungeImages/mobile/rank01.webp" alt="">
<img class="rankAva" :src="top01.avatar" alt="">
<div class="rankNum">{{ top01.score }}</div>
<div class="rankName">{{ top01.position_name }}-{{ top01.name }}</div>
</div>
<div class="rank2">
<img class="rankBg" src="../../../assets/lingyungeImages/mobile/rank02.webp" alt="">
<img class="rankAva" :src="top02.avatar" alt="">
<div class="rankNum">{{ top02.score }}</div>
<div class="rankName">{{ top02.position_name }}-{{ top02.name }}</div>
</div>
<div class="rank3">
<img class="rankBg" src="../../../assets/lingyungeImages/mobile/rank03.webp" alt="">
<img class="rankAva" :src="top03.avatar" alt="">
<div class="rankNum">{{ top03.score }}</div>
<div class="rankName">{{ top03.position_name }}-{{ top03.name }}</div>
</div>
<div class="rank4">
<img class="rankBg" src="../../../assets/lingyungeImages/mobile/rank04.webp" alt="">
<img class="rankAva" :src="top04.avatar" alt="">
<div class="rankNum">{{ top04.score }}</div>
<div class="rankName">{{ top04.position_name }}-{{ top04.name }}</div>
</div>
<div class="rank5">
<img class="rankBg" src="../../../assets/lingyungeImages/mobile/rank05.webp" alt="">
<img class="rankAva" :src="top05.avatar" alt="">
<div class="rankNum">{{ top05.score }}</div>
<div class="rankName">{{ top05.position_name }}-{{ top05.name }}</div>
</div>
</div>
<div class="line"></div>
<div class="list">
<div class="rule" @click="mask = true">
<img class="ruleImg" src="../../../assets/lingyungeImages/mobile/rule.webp" alt="">
积分说明
</div>
<div style="overflow: hidden;height: 310px;">
<div class="listItem" :class="{ 'animate-up': animateUp }" v-for="(item, index) in topList"
:key="index">
<div class="itemBg">{{ item.index }}</div>
<div class="itemAva">
<img class="itemAvaImg" :src="item.avatar" alt="">
</div>
<div class="itemText">{{ item.position_name }}-{{ item.name }}</div>
<div class="itemNum">{{ item.score }}</div>
</div>
</div>
</div>
</div>
</div>
<!-- mask -->
<div class="mask" v-if="mask">
<div class="maskContent">
<div class="title">积分说明</div>
<div class="tips">此积分为各成员参与凌云阁活动累计积分</div>
<div class="btn" @click="mask = false">知道了</div>
</div>
</div>
</div>
</template>
<script setup lang="js">
import { ref, onMounted } from "vue";
const mask = ref(false);
const showMask = () => {
console.log(mask)
}
//
const animateUp = ref(false);
import { getList } from '../../../api/lingyuge'
const defaultImg = require('../../../assets/lingyungeImages/tx.png')
const top01 = ref({});
const top02 = ref({});
const top03 = ref({});
const top04 = ref({});
const top05 = ref({});
const topList = ref([]);
const getListArray = () => {
getList().then((res) => {
let data = res.data;
for (let i in data) {
data[i].index = Number(i) + 1;
if (data[i].avatar.indexOf('storage') < 0) {
data[i].avatar = defaultImg;
}
}
data.forEach((item, index) => {
if (index == 0) { if (item.avatar.indexOf('storage') < 0) { item.avatar = defaultImg } top01.value = item };
if (index == 1) { if (item.avatar.indexOf('storage') < 0) { item.avatar = defaultImg } top02.value = item };
if (index == 2) { if (item.avatar.indexOf('storage') < 0) { item.avatar = defaultImg } top03.value = item };
if (index == 3) { if (item.avatar.indexOf('storage') < 0) { item.avatar = defaultImg } top04.value = item };
if (index == 4) { if (item.avatar.indexOf('storage') < 0) { item.avatar = defaultImg } top05.value = item };
if (index > 4) {
topList.value.push(item);
}
});
})
}
getListArray();
const scrollAnimate = () => {
animateUp.value = true;
setTimeout(() => {
animateUp.value = false
topList.value.push(topList.value[0]);
topList.value.shift();
}, 1000)
}
onMounted(() => {
const timer = setInterval(scrollAnimate, 1500);
});
</script>
<style lang="scss" scoped>
.animate-up {
transition: all 1s ease-in-out;
transform: translateY(-50px);
}
.bg {
background-image: url("../../../assets/lingyungeImages/mobile/bg.webp");
width: 100%;
height: 100vh;
overflow: hidden;
background-size: 100% 100%;
padding: 0 12px;
box-sizing: border-box;
padding-top: 33px;
.cnt {
border: 1px solid #F8BE5E;
border-radius: 12px 12px 0 0;
// width: 350px;
margin: 0 auto;
background: rgba(18, 44, 90, 0.6);
margin-top: 30px;
max-width: 350px;
}
.cntBg {
background-image: url("../../../assets/lingyungeImages/mobile/title.webp");
width: 327px;
height: 48px;
background-size: 327px 48px;
margin: 0 auto;
display: block;
position: relative;
top: -24px;
}
@media screen and (max-width:320px){
.bg{
padding: 0 12rpx;
}
.cntBg{
left:-15px;
}
}
.cntRank {
position: relative;
min-height: 265px;
max-width: 350px;
margin: 0 auto;
.rank1 {
background-image: url("../../../assets/lingyungeImages/mobile/rank001.webp");
width: 153px;
height: 168px;
background-size: 153px 168px;
position: absolute;
left: 50%;
margin-left: -76px;
z-index: 5;
.rankBg {
width: 58px;
height: 62px;
position: relative;
left: 50%;
margin-left: -29px;
margin-top: 17px;
}
.rankAva {
width: 34px;
height: 34px;
border-radius: 50%;
position: relative;
left: 50%;
margin-left: -46px;
top: -15px;
}
.rankNum {
font-size: 18px;
text-align: center;
font-weight: bold;
color: #fff;
}
.rankName {
font-size: 13px;
text-align: center;
color: #fff;
}
}
.rank2 {
background-image: url("../../../assets/lingyungeImages/mobile/rank002.webp");
width: 119px;
height: 134px;
background-size: 119px 134px;
position: absolute;
z-index: 4;
left: 5px;
top: 30px;
.rankBg {
width: 50px;
height: 54px;
position: relative;
left: 50%;
margin-left: -25px;
margin-top: 11px;
}
.rankAva {
width: 28px;
height: 28px;
border-radius: 50%;
position: relative;
left: 50%;
margin-left: -40px;
top: -15px;
}
.rankNum {
font-size: 14px;
text-align: center;
font-weight: bold;
color: #fff;
}
.rankName {
font-size: 12px;
text-align: center;
color: #fff;
}
}
.rank3 {
background-image: url("../../../assets/lingyungeImages/mobile/rank002.webp");
width: 119px;
height: 134px;
background-size: 119px 134px;
position: absolute;
z-index: 4;
right: 5px;
top: 30px;
.rankBg {
width: 50px;
height: 54px;
position: relative;
left: 50%;
margin-left: -25px;
margin-top: 11px;
}
.rankAva {
width: 28px;
height: 28px;
border-radius: 50%;
position: relative;
left: 50%;
margin-left: -40px;
top: -15px;
}
.rankNum {
font-size: 14px;
text-align: center;
font-weight: bold;
color: #fff;
}
.rankName {
font-size: 12px;
text-align: center;
color: #fff;
}
}
.rank4 {
background-image: url("../../../assets/lingyungeImages/mobile/rank003.webp");
width: 110px;
height: 123px;
background-size: 110px 123px;
position: absolute;
z-index: 3;
left: 18%;
top: 139px;
.rankBg {
width: 46px;
height: 51px;
position: relative;
left: 50%;
margin-left: -23px;
margin-top: 9px;
}
.rankAva {
width: 26px;
height: 26px;
border-radius: 50%;
position: relative;
left: 50%;
margin-left: -37px;
top: -15px;
}
.rankNum {
font-size: 13px;
text-align: center;
font-weight: bold;
color: #fff;
}
.rankName {
font-size: 12px;
text-align: center;
color: #fff;
}
}
.rank5 {
background-image: url("../../../assets/lingyungeImages/mobile/rank003.webp");
width: 110px;
height: 123px;
background-size: 110px 123px;
position: absolute;
z-index: 3;
right: 18%;
top: 139px;
.rankBg {
width: 46px;
height: 51px;
position: relative;
left: 50%;
margin-left: -23px;
margin-top: 9px;
}
.rankAva {
width: 26px;
height: 26px;
border-radius: 50%;
position: relative;
left: 50%;
margin-left: -37px;
top: -15px;
}
.rankNum {
font-size: 13px;
text-align: center;
font-weight: bold;
color: #fff;
}
.rankName {
font-size: 12px;
text-align: center;
color: #fff;
}
}
}
.line {
// width: 330px;
height: 3px;
background-image: url("../../../assets/lingyungeImages/mobile/line.webp");
width: 331px;
height: 24px;
background-size: 331px 24px;
margin: 0 auto;
position: relative;
top: -10px;
// background: linear-gradient(79deg, rgba(93, 175, 254, 0) 0%, rgba(115, 193, 254, 0.5) 19%, #C0FEFF 46%, rgba(120, 213, 255, 0.5) 80%, rgba(96, 199, 255, 0) 100%);
}
.list {
box-sizing: border-box;
padding: 0 12px;
margin-top:-10px;
.rule {
height: 20px;
text-align: right;
color: #F8BE5E;
font-size: 14px;
.ruleImg {
width: 17px;
height: 17px;
position: relative;
top: 3px;
}
}
.listItem {
display: flex;
margin: 10px 0;
.itemBg {
background-image: url("../../../assets/lingyungeImages/mobile/tips.webp");
width: 27px;
height: 30px;
background-size: 27px 30px;
text-align: center;
color: #fff;
font-weight: bold;
position: relative;
top: 7px;
line-height: 24px;
}
.itemAva {
background-image: url("../../../assets/lingyungeImages/mobile/avaBg.webp");
width: 40px;
height: 40px;
background-size: 40px 40px;
position: relative;
margin-left: 20px;
.itemAvaImg {
width: 32px;
height: 32px;
border-radius: 50%;
position: absolute;
top: 5px;
left: 4px;
}
}
.itemText {
font-size: 15px;
color: #fff;
flex: 1;
line-height: 40px;
padding: 0 10px;
}
.itemNum {
font-size: 18px;
// font-weight: bold;
color: #F8BE5E;
line-height: 40px;
}
}
}
}
// mask
.mask {
background: rgba(60, 61, 63, 0.8);
width: 100%;
min-height: 100%;
position: fixed;
top: 0;
left: 0;
z-index: 5;
.maskContent {
background: #fff;
width: 320px;
box-sizing: border-box;
padding: 20px;
border-radius: 12px;
margin: 0 auto;
margin-top: 50%;
.title {
text-align: center;
font-size: 17px;
font-weight: bold;
margin-bottom: 16px;
}
.tips {
color: #3C3D3F;
font-size: 14px;
line-height: 25px;
}
.btn {
width: 120px;
height: 40px;
background-size: 120px 40px;
background-image: url("../../../assets/lingyungeImages/mobile/btn.webp");
text-align: center;
color: #fff;
font-size: 15px;
font-weight: bold;
line-height: 40px;
display: block;
margin: 0 auto;
margin-top: 40px;
}
}
}
</style>

Some files were not shown because too many files have changed in this diff Show More

Loading…
Cancel
Save