pages
|
|
@ -69,7 +69,9 @@
|
||||||
"@dcloudio/uni-stat": "^2.0.2-3061420221215001",
|
"@dcloudio/uni-stat": "^2.0.2-3061420221215001",
|
||||||
"@vue/shared": "^3.0.0",
|
"@vue/shared": "^3.0.0",
|
||||||
"core-js": "^3.8.3",
|
"core-js": "^3.8.3",
|
||||||
|
"echarts": "^5.4.3",
|
||||||
"flyio": "^0.6.2",
|
"flyio": "^0.6.2",
|
||||||
|
"uview-ui": "2.0.36",
|
||||||
"vue": ">= 2.6.14 < 2.7",
|
"vue": ">= 2.6.14 < 2.7",
|
||||||
"vuex": "^3.2.0"
|
"vuex": "^3.2.0"
|
||||||
},
|
},
|
||||||
|
|
@ -92,6 +94,8 @@
|
||||||
"cross-env": "^7.0.2",
|
"cross-env": "^7.0.2",
|
||||||
"jest": "^25.4.0",
|
"jest": "^25.4.0",
|
||||||
"postcss-comment": "^2.0.0",
|
"postcss-comment": "^2.0.0",
|
||||||
|
"sass": "^1.69.5",
|
||||||
|
"sass-loader": "10",
|
||||||
"vue-template-compiler": ">= 2.6.14 < 2.7"
|
"vue-template-compiler": ">= 2.6.14 < 2.7"
|
||||||
},
|
},
|
||||||
"browserslist": [
|
"browserslist": [
|
||||||
|
|
|
||||||
|
|
@ -68,9 +68,15 @@ dependencies:
|
||||||
core-js:
|
core-js:
|
||||||
specifier: ^3.8.3
|
specifier: ^3.8.3
|
||||||
version: 3.8.3
|
version: 3.8.3
|
||||||
|
echarts:
|
||||||
|
specifier: ^5.4.3
|
||||||
|
version: 5.4.3
|
||||||
flyio:
|
flyio:
|
||||||
specifier: ^0.6.2
|
specifier: ^0.6.2
|
||||||
version: 0.6.2
|
version: 0.6.2
|
||||||
|
uview-ui:
|
||||||
|
specifier: 2.0.36
|
||||||
|
version: 2.0.36
|
||||||
vue:
|
vue:
|
||||||
specifier: '>= 2.6.14 < 2.7'
|
specifier: '>= 2.6.14 < 2.7'
|
||||||
version: 2.6.14
|
version: 2.6.14
|
||||||
|
|
@ -120,7 +126,7 @@ devDependencies:
|
||||||
version: 5.0.0(@vue/cli-service@5.0.1)(core-js@3.8.3)(vue@2.6.14)
|
version: 5.0.0(@vue/cli-service@5.0.1)(core-js@3.8.3)(vue@2.6.14)
|
||||||
'@vue/cli-service':
|
'@vue/cli-service':
|
||||||
specifier: ~5.0.0
|
specifier: ~5.0.0
|
||||||
version: 5.0.1(vue-template-compiler@2.6.14)(vue@2.6.14)
|
version: 5.0.1(sass-loader@10.5.0)(vue-template-compiler@2.6.14)(vue@2.6.14)
|
||||||
babel-plugin-import:
|
babel-plugin-import:
|
||||||
specifier: ^1.11.0
|
specifier: ^1.11.0
|
||||||
version: 1.11.0
|
version: 1.11.0
|
||||||
|
|
@ -133,6 +139,12 @@ devDependencies:
|
||||||
postcss-comment:
|
postcss-comment:
|
||||||
specifier: ^2.0.0
|
specifier: ^2.0.0
|
||||||
version: 2.0.0
|
version: 2.0.0
|
||||||
|
sass:
|
||||||
|
specifier: ^1.69.5
|
||||||
|
version: 1.69.5
|
||||||
|
sass-loader:
|
||||||
|
specifier: '10'
|
||||||
|
version: 10.5.0(sass@1.69.5)(webpack@4.47.0)
|
||||||
vue-template-compiler:
|
vue-template-compiler:
|
||||||
specifier: '>= 2.6.14 < 2.7'
|
specifier: '>= 2.6.14 < 2.7'
|
||||||
version: 2.6.14
|
version: 2.6.14
|
||||||
|
|
@ -2915,7 +2927,7 @@ packages:
|
||||||
dependencies:
|
dependencies:
|
||||||
'@babel/core': 7.23.5
|
'@babel/core': 7.23.5
|
||||||
'@vue/babel-preset-app': 5.0.8(@babel/core@7.23.5)(core-js@3.8.3)(vue@2.6.14)
|
'@vue/babel-preset-app': 5.0.8(@babel/core@7.23.5)(core-js@3.8.3)(vue@2.6.14)
|
||||||
'@vue/cli-service': 5.0.1(vue-template-compiler@2.6.14)(vue@2.6.14)
|
'@vue/cli-service': 5.0.1(sass-loader@10.5.0)(vue-template-compiler@2.6.14)(vue@2.6.14)
|
||||||
'@vue/cli-shared-utils': 5.0.8
|
'@vue/cli-shared-utils': 5.0.8
|
||||||
babel-loader: 8.3.0(@babel/core@7.23.5)(webpack@5.89.0)
|
babel-loader: 8.3.0(@babel/core@7.23.5)(webpack@5.89.0)
|
||||||
thread-loader: 3.0.4(webpack@5.89.0)
|
thread-loader: 3.0.4(webpack@5.89.0)
|
||||||
|
|
@ -2936,7 +2948,7 @@ packages:
|
||||||
peerDependencies:
|
peerDependencies:
|
||||||
'@vue/cli-service': ^3.0.0 || ^4.0.0 || ^5.0.0-0
|
'@vue/cli-service': ^3.0.0 || ^4.0.0 || ^5.0.0-0
|
||||||
dependencies:
|
dependencies:
|
||||||
'@vue/cli-service': 5.0.1(vue-template-compiler@2.6.14)(vue@2.6.14)
|
'@vue/cli-service': 5.0.1(sass-loader@10.5.0)(vue-template-compiler@2.6.14)(vue@2.6.14)
|
||||||
'@vue/cli-shared-utils': 5.0.8
|
'@vue/cli-shared-utils': 5.0.8
|
||||||
transitivePeerDependencies:
|
transitivePeerDependencies:
|
||||||
- encoding
|
- encoding
|
||||||
|
|
@ -2947,10 +2959,10 @@ packages:
|
||||||
peerDependencies:
|
peerDependencies:
|
||||||
'@vue/cli-service': ^3.0.0 || ^4.0.0 || ^5.0.0-0
|
'@vue/cli-service': ^3.0.0 || ^4.0.0 || ^5.0.0-0
|
||||||
dependencies:
|
dependencies:
|
||||||
'@vue/cli-service': 5.0.1(vue-template-compiler@2.6.14)(vue@2.6.14)
|
'@vue/cli-service': 5.0.1(sass-loader@10.5.0)(vue-template-compiler@2.6.14)(vue@2.6.14)
|
||||||
dev: true
|
dev: true
|
||||||
|
|
||||||
/@vue/cli-service@5.0.1(vue-template-compiler@2.6.14)(vue@2.6.14):
|
/@vue/cli-service@5.0.1(sass-loader@10.5.0)(vue-template-compiler@2.6.14)(vue@2.6.14):
|
||||||
resolution: {integrity: sha512-lhTW1d8waZv1VaRSvhE5pWWfkdmAgRTRSluDfyxkehZHMAWi//rd7a9zppN3k9Zr4X3oYVii+u7wR/RcTlr9cQ==}
|
resolution: {integrity: sha512-lhTW1d8waZv1VaRSvhE5pWWfkdmAgRTRSluDfyxkehZHMAWi//rd7a9zppN3k9Zr4X3oYVii+u7wR/RcTlr9cQ==}
|
||||||
engines: {node: ^12.0.0 || >= 14.0.0}
|
engines: {node: ^12.0.0 || >= 14.0.0}
|
||||||
hasBin: true
|
hasBin: true
|
||||||
|
|
@ -3024,6 +3036,7 @@ packages:
|
||||||
postcss: 8.4.32
|
postcss: 8.4.32
|
||||||
postcss-loader: 6.2.1(postcss@8.4.32)(webpack@5.89.0)
|
postcss-loader: 6.2.1(postcss@8.4.32)(webpack@5.89.0)
|
||||||
progress-webpack-plugin: 1.0.16(webpack@5.89.0)
|
progress-webpack-plugin: 1.0.16(webpack@5.89.0)
|
||||||
|
sass-loader: 10.5.0(sass@1.69.5)(webpack@4.47.0)
|
||||||
ssri: 8.0.1
|
ssri: 8.0.1
|
||||||
terser-webpack-plugin: 5.3.9(webpack@5.89.0)
|
terser-webpack-plugin: 5.3.9(webpack@5.89.0)
|
||||||
thread-loader: 3.0.4(webpack@5.89.0)
|
thread-loader: 3.0.4(webpack@5.89.0)
|
||||||
|
|
@ -4056,6 +4069,7 @@ packages:
|
||||||
/binary-extensions@2.2.0:
|
/binary-extensions@2.2.0:
|
||||||
resolution: {integrity: sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==}
|
resolution: {integrity: sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==}
|
||||||
engines: {node: '>=8'}
|
engines: {node: '>=8'}
|
||||||
|
requiresBuild: true
|
||||||
|
|
||||||
/bindings@1.5.0:
|
/bindings@1.5.0:
|
||||||
resolution: {integrity: sha512-p2q/t/mhvuOj/UeLlV6566GD/guowlr0hHxClI0W9m7MWYkL1F0hLo+0Aexs9HSPCtR1SXQ0TD3MMKrXZajbiQ==}
|
resolution: {integrity: sha512-p2q/t/mhvuOj/UeLlV6566GD/guowlr0hHxClI0W9m7MWYkL1F0hLo+0Aexs9HSPCtR1SXQ0TD3MMKrXZajbiQ==}
|
||||||
|
|
@ -5601,6 +5615,13 @@ packages:
|
||||||
jsbn: 0.1.1
|
jsbn: 0.1.1
|
||||||
safer-buffer: 2.1.2
|
safer-buffer: 2.1.2
|
||||||
|
|
||||||
|
/echarts@5.4.3:
|
||||||
|
resolution: {integrity: sha512-mYKxLxhzy6zyTi/FaEbJMOZU1ULGEQHaeIeuMR5L+JnJTpz+YR03mnnpBhbR4+UYJAgiXgpyTVLffPAjOTLkZA==}
|
||||||
|
dependencies:
|
||||||
|
tslib: 2.3.0
|
||||||
|
zrender: 5.4.4
|
||||||
|
dev: false
|
||||||
|
|
||||||
/ee-first@1.1.1:
|
/ee-first@1.1.1:
|
||||||
resolution: {integrity: sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow==}
|
resolution: {integrity: sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow==}
|
||||||
|
|
||||||
|
|
@ -6798,6 +6819,10 @@ packages:
|
||||||
resolution: {integrity: sha512-XXOFtyqDjNDAQxVfYxuF7g9Il/IbWmmlQg2MYKOH8ExIT1qg6xc4zyS3HaEEATgs1btfzxq15ciUiY7gjSXRGQ==}
|
resolution: {integrity: sha512-XXOFtyqDjNDAQxVfYxuF7g9Il/IbWmmlQg2MYKOH8ExIT1qg6xc4zyS3HaEEATgs1btfzxq15ciUiY7gjSXRGQ==}
|
||||||
dev: false
|
dev: false
|
||||||
|
|
||||||
|
/immutable@4.3.4:
|
||||||
|
resolution: {integrity: sha512-fsXeu4J4i6WNWSikpI88v/PcVflZz+6kMhUfIwc5SY+poQRPnaf5V7qds6SUyUN3cVxEzuCab7QIoLOQ+DQ1wA==}
|
||||||
|
dev: true
|
||||||
|
|
||||||
/import-fresh@3.3.0:
|
/import-fresh@3.3.0:
|
||||||
resolution: {integrity: sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==}
|
resolution: {integrity: sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==}
|
||||||
engines: {node: '>=6'}
|
engines: {node: '>=6'}
|
||||||
|
|
@ -6909,6 +6934,7 @@ packages:
|
||||||
/is-binary-path@2.1.0:
|
/is-binary-path@2.1.0:
|
||||||
resolution: {integrity: sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==}
|
resolution: {integrity: sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==}
|
||||||
engines: {node: '>=8'}
|
engines: {node: '>=8'}
|
||||||
|
requiresBuild: true
|
||||||
dependencies:
|
dependencies:
|
||||||
binary-extensions: 2.2.0
|
binary-extensions: 2.2.0
|
||||||
|
|
||||||
|
|
@ -9803,6 +9829,7 @@ packages:
|
||||||
/readdirp@3.6.0:
|
/readdirp@3.6.0:
|
||||||
resolution: {integrity: sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==}
|
resolution: {integrity: sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==}
|
||||||
engines: {node: '>=8.10.0'}
|
engines: {node: '>=8.10.0'}
|
||||||
|
requiresBuild: true
|
||||||
dependencies:
|
dependencies:
|
||||||
picomatch: 2.3.1
|
picomatch: 2.3.1
|
||||||
|
|
||||||
|
|
@ -10124,6 +10151,41 @@ packages:
|
||||||
- supports-color
|
- supports-color
|
||||||
dev: true
|
dev: true
|
||||||
|
|
||||||
|
/sass-loader@10.5.0(sass@1.69.5)(webpack@4.47.0):
|
||||||
|
resolution: {integrity: sha512-VsU71W7VR6SChMJZUqtrfLeMSA8ns7QTHbnA7cfevtjb3c392mX93lr0Dmr4uU1ch5uIbEmfmHjdrDYcXXkQ7w==}
|
||||||
|
engines: {node: '>= 10.13.0'}
|
||||||
|
peerDependencies:
|
||||||
|
fibers: '>= 3.1.0'
|
||||||
|
node-sass: ^4.0.0 || ^5.0.0 || ^6.0.0 || ^7.0.0 || ^8.0.0 || ^9.0.0
|
||||||
|
sass: ^1.3.0
|
||||||
|
webpack: ^4.36.0 || ^5.0.0
|
||||||
|
peerDependenciesMeta:
|
||||||
|
fibers:
|
||||||
|
optional: true
|
||||||
|
node-sass:
|
||||||
|
optional: true
|
||||||
|
sass:
|
||||||
|
optional: true
|
||||||
|
dependencies:
|
||||||
|
klona: 2.0.6
|
||||||
|
loader-utils: 2.0.4
|
||||||
|
neo-async: 2.6.2
|
||||||
|
sass: 1.69.5
|
||||||
|
schema-utils: 3.3.0
|
||||||
|
semver: 7.5.4
|
||||||
|
webpack: 4.47.0
|
||||||
|
dev: true
|
||||||
|
|
||||||
|
/sass@1.69.5:
|
||||||
|
resolution: {integrity: sha512-qg2+UCJibLr2LCVOt3OlPhr/dqVHWOa9XtZf2OjbLs/T4VPSJ00udtgJxH3neXZm+QqX8B+3cU7RaLqp1iVfcQ==}
|
||||||
|
engines: {node: '>=14.0.0'}
|
||||||
|
hasBin: true
|
||||||
|
dependencies:
|
||||||
|
chokidar: 3.5.3
|
||||||
|
immutable: 4.3.4
|
||||||
|
source-map-js: 1.0.2
|
||||||
|
dev: true
|
||||||
|
|
||||||
/sax@1.3.0:
|
/sax@1.3.0:
|
||||||
resolution: {integrity: sha512-0s+oAmw9zLl1V1cS9BtZN7JAd0cW5e0QH4W3LWEK6a4LaLEA2OTpGYWDY+6XasBLtz6wkm3u1xRw95mRuJ59WA==}
|
resolution: {integrity: sha512-0s+oAmw9zLl1V1cS9BtZN7JAd0cW5e0QH4W3LWEK6a4LaLEA2OTpGYWDY+6XasBLtz6wkm3u1xRw95mRuJ59WA==}
|
||||||
dev: true
|
dev: true
|
||||||
|
|
@ -11084,6 +11146,10 @@ packages:
|
||||||
punycode: 2.3.1
|
punycode: 2.3.1
|
||||||
dev: true
|
dev: true
|
||||||
|
|
||||||
|
/tslib@2.3.0:
|
||||||
|
resolution: {integrity: sha512-N82ooyxVNm6h1riLCoyS9e3fuJ3AMG2zIZs2Gd1ATcSFjSA23Q0fzjjZeh0jbJvWVDZ0cJT8yaNNaaXHzueNjg==}
|
||||||
|
dev: false
|
||||||
|
|
||||||
/tslib@2.6.2:
|
/tslib@2.6.2:
|
||||||
resolution: {integrity: sha512-AEYxH93jGFPn/a2iVAwW87VuUIkR1FVUKB77NwMF7nBTDkDrrT/Hpt/IrCJ0QXhW27jTBDcf5ZY7w6RiqTMw2Q==}
|
resolution: {integrity: sha512-AEYxH93jGFPn/a2iVAwW87VuUIkR1FVUKB77NwMF7nBTDkDrrT/Hpt/IrCJ0QXhW27jTBDcf5ZY7w6RiqTMw2Q==}
|
||||||
dev: true
|
dev: true
|
||||||
|
|
@ -11327,6 +11393,11 @@ packages:
|
||||||
hasBin: true
|
hasBin: true
|
||||||
dev: true
|
dev: true
|
||||||
|
|
||||||
|
/uview-ui@2.0.36:
|
||||||
|
resolution: {integrity: sha512-ASSZT6M8w3GTO1eFPbsgEFV0U5UujK+8pTNr+MSUbRNcRMC1u63DDTLJVeArV91kWM0bfAexK3SK9pnTqF9TtA==}
|
||||||
|
engines: {HBuilderX: ^3.1.0}
|
||||||
|
dev: false
|
||||||
|
|
||||||
/v8-to-istanbul@4.1.4:
|
/v8-to-istanbul@4.1.4:
|
||||||
resolution: {integrity: sha512-Rw6vJHj1mbdK8edjR7+zuJrpDtKIgNdAvTSAcpYfgMIw+u2dPDntD3dgN4XQFLU2/fvFQdzj+EeSGfd/jnY5fQ==}
|
resolution: {integrity: sha512-Rw6vJHj1mbdK8edjR7+zuJrpDtKIgNdAvTSAcpYfgMIw+u2dPDntD3dgN4XQFLU2/fvFQdzj+EeSGfd/jnY5fQ==}
|
||||||
engines: {node: 8.x.x || >=10.10.0}
|
engines: {node: 8.x.x || >=10.10.0}
|
||||||
|
|
@ -12154,3 +12225,9 @@ packages:
|
||||||
resolution: {integrity: sha512-RXRJzMiK6U2ye0BlGGZnmpwJDPgakn6aNQ0A7gHRbD4I0uvK4TW6UqkK1V0pp9jskjJBAXd3dRrbzWkqJ+6cxA==}
|
resolution: {integrity: sha512-RXRJzMiK6U2ye0BlGGZnmpwJDPgakn6aNQ0A7gHRbD4I0uvK4TW6UqkK1V0pp9jskjJBAXd3dRrbzWkqJ+6cxA==}
|
||||||
engines: {node: '>= 4.0.0'}
|
engines: {node: '>= 4.0.0'}
|
||||||
dev: false
|
dev: false
|
||||||
|
|
||||||
|
/zrender@5.4.4:
|
||||||
|
resolution: {integrity: sha512-0VxCNJ7AGOMCWeHVyTrGzUgrK4asT4ml9PEkeGirAkKNYXYzoPJCLvmyfdoOXcjTHPs10OZVMfD1Rwg16AZyYw==}
|
||||||
|
dependencies:
|
||||||
|
tslib: 2.3.0
|
||||||
|
dev: false
|
||||||
|
|
|
||||||
|
|
@ -12,6 +12,7 @@
|
||||||
}
|
}
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
<style>
|
<style lang="scss">
|
||||||
/*每个页面公共css */
|
@import "uview-ui/index.scss";
|
||||||
|
@import url("static/css/base.css");
|
||||||
</style>
|
</style>
|
||||||
|
|
|
||||||
|
|
@ -0,0 +1,64 @@
|
||||||
|
<template>
|
||||||
|
<view class="table">
|
||||||
|
<view class="table-header">
|
||||||
|
<view class="table-tr">
|
||||||
|
<view v-for="(item, index) in header" :key="index" class="table-td">{{ item }}</view>
|
||||||
|
</view>
|
||||||
|
</view>
|
||||||
|
<view class="table-body">
|
||||||
|
<view v-for="(item, index) in list" :key="index" class="table-tr">
|
||||||
|
<view class="table-td">{{ index + 1 }}</view>
|
||||||
|
<view class="table-td">
|
||||||
|
<view class="avatar">
|
||||||
|
<image src="https://via.placeholder.com/64x64.png?text=A">
|
||||||
|
</view>
|
||||||
|
<view class="name">{{ item.name }}</view>
|
||||||
|
</view>
|
||||||
|
<view class="table-td">{{ item.score }}</view>
|
||||||
|
</view>
|
||||||
|
</view>
|
||||||
|
</view>
|
||||||
|
</template>
|
||||||
|
|
||||||
|
<script>
|
||||||
|
export default {
|
||||||
|
name: 'Rank',
|
||||||
|
props: ['header', 'list'],
|
||||||
|
data() {
|
||||||
|
return {}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
</script>
|
||||||
|
|
||||||
|
<style scoped>
|
||||||
|
.table {
|
||||||
|
background-color: white;
|
||||||
|
}
|
||||||
|
.table-header {
|
||||||
|
width: 100%;
|
||||||
|
border: 1px solid #e5e5e5;
|
||||||
|
border-left: none;
|
||||||
|
border-right: none;
|
||||||
|
}
|
||||||
|
.table-td {
|
||||||
|
display: flex;
|
||||||
|
justify-content: center;
|
||||||
|
align-items: center;
|
||||||
|
text-align: center;
|
||||||
|
padding: 0 20rpx;
|
||||||
|
}
|
||||||
|
.table-tr {
|
||||||
|
display: flex;
|
||||||
|
justify-content: space-between;
|
||||||
|
padding: 15rpx 0;
|
||||||
|
}
|
||||||
|
.avatar ::v-deep uni-image {
|
||||||
|
border-radius: 30rpx;
|
||||||
|
width: 64rpx;
|
||||||
|
height: 64rpx;
|
||||||
|
}
|
||||||
|
.name {
|
||||||
|
line-height: 64rpx;
|
||||||
|
margin-left: 10rpx;
|
||||||
|
}
|
||||||
|
</style>
|
||||||
|
|
@ -1,8 +1,10 @@
|
||||||
import Vue from 'vue'
|
import Vue from 'vue'
|
||||||
import App from './App'
|
import App from './App'
|
||||||
import './uni.promisify.adaptor'
|
import './uni.promisify.adaptor'
|
||||||
|
import uView from 'uview-ui'
|
||||||
|
|
||||||
Vue.config.productionTip = false
|
Vue.config.productionTip = false
|
||||||
|
Vue.use(uView)
|
||||||
|
|
||||||
App.mpType = 'app'
|
App.mpType = 'app'
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -1,66 +1,67 @@
|
||||||
{
|
{
|
||||||
"name": "",
|
"name" : "PartyRank",
|
||||||
"appid": "",
|
"appid" : "__UNI__828F200",
|
||||||
"description": "",
|
"description" : "五星党建",
|
||||||
"versionName": "1.0.0",
|
"versionName" : "1.0.0",
|
||||||
"versionCode": "100",
|
"versionCode" : "100",
|
||||||
"transformPx": false,
|
"transformPx" : false,
|
||||||
"app-plus": { /* 5+App特有相关 */
|
"app-plus" : {
|
||||||
"usingComponents": true,
|
/* 5+App特有相关 */
|
||||||
"splashscreen": {
|
"usingComponents" : true,
|
||||||
"alwaysShowBeforeRender": true,
|
"splashscreen" : {
|
||||||
"waiting": true,
|
"alwaysShowBeforeRender" : true,
|
||||||
"autoclose": true,
|
"waiting" : true,
|
||||||
"delay": 0
|
"autoclose" : true,
|
||||||
},
|
"delay" : 0
|
||||||
"modules": { /* 模块配置 */
|
},
|
||||||
|
"modules" : {},
|
||||||
},
|
/* 模块配置 */
|
||||||
"distribute": { /* 应用发布信息 */
|
"distribute" : {
|
||||||
"android": { /* android打包配置 */
|
/* 应用发布信息 */
|
||||||
"permissions": ["<uses-permission android:name=\"android.permission.CHANGE_NETWORK_STATE\"/>",
|
"android" : {
|
||||||
"<uses-permission android:name=\"android.permission.MOUNT_UNMOUNT_FILESYSTEMS\"/>",
|
/* android打包配置 */
|
||||||
"<uses-permission android:name=\"android.permission.READ_CONTACTS\"/>",
|
"permissions" : [
|
||||||
"<uses-permission android:name=\"android.permission.VIBRATE\"/>",
|
"<uses-permission android:name=\"android.permission.CHANGE_NETWORK_STATE\"/>",
|
||||||
"<uses-permission android:name=\"android.permission.READ_LOGS\"/>",
|
"<uses-permission android:name=\"android.permission.MOUNT_UNMOUNT_FILESYSTEMS\"/>",
|
||||||
"<uses-permission android:name=\"android.permission.ACCESS_WIFI_STATE\"/>",
|
"<uses-permission android:name=\"android.permission.READ_CONTACTS\"/>",
|
||||||
"<uses-feature android:name=\"android.hardware.camera.autofocus\"/>",
|
"<uses-permission android:name=\"android.permission.VIBRATE\"/>",
|
||||||
"<uses-permission android:name=\"android.permission.WRITE_CONTACTS\"/>",
|
"<uses-permission android:name=\"android.permission.READ_LOGS\"/>",
|
||||||
"<uses-permission android:name=\"android.permission.ACCESS_NETWORK_STATE\"/>",
|
"<uses-permission android:name=\"android.permission.ACCESS_WIFI_STATE\"/>",
|
||||||
"<uses-permission android:name=\"android.permission.CAMERA\"/>",
|
"<uses-feature android:name=\"android.hardware.camera.autofocus\"/>",
|
||||||
"<uses-permission android:name=\"android.permission.RECORD_AUDIO\"/>",
|
"<uses-permission android:name=\"android.permission.WRITE_CONTACTS\"/>",
|
||||||
"<uses-permission android:name=\"android.permission.GET_ACCOUNTS\"/>",
|
"<uses-permission android:name=\"android.permission.ACCESS_NETWORK_STATE\"/>",
|
||||||
"<uses-permission android:name=\"android.permission.MODIFY_AUDIO_SETTINGS\"/>",
|
"<uses-permission android:name=\"android.permission.CAMERA\"/>",
|
||||||
"<uses-permission android:name=\"android.permission.READ_PHONE_STATE\"/>",
|
"<uses-permission android:name=\"android.permission.RECORD_AUDIO\"/>",
|
||||||
"<uses-permission android:name=\"android.permission.CHANGE_WIFI_STATE\"/>",
|
"<uses-permission android:name=\"android.permission.GET_ACCOUNTS\"/>",
|
||||||
"<uses-permission android:name=\"android.permission.WAKE_LOCK\"/>",
|
"<uses-permission android:name=\"android.permission.MODIFY_AUDIO_SETTINGS\"/>",
|
||||||
"<uses-permission android:name=\"android.permission.CALL_PHONE\"/>",
|
"<uses-permission android:name=\"android.permission.READ_PHONE_STATE\"/>",
|
||||||
"<uses-permission android:name=\"android.permission.FLASHLIGHT\"/>",
|
"<uses-permission android:name=\"android.permission.CHANGE_WIFI_STATE\"/>",
|
||||||
"<uses-permission android:name=\"android.permission.ACCESS_COARSE_LOCATION\"/>",
|
"<uses-permission android:name=\"android.permission.WAKE_LOCK\"/>",
|
||||||
"<uses-feature android:name=\"android.hardware.camera\"/>",
|
"<uses-permission android:name=\"android.permission.CALL_PHONE\"/>",
|
||||||
"<uses-permission android:name=\"android.permission.ACCESS_FINE_LOCATION\"/>",
|
"<uses-permission android:name=\"android.permission.FLASHLIGHT\"/>",
|
||||||
"<uses-permission android:name=\"android.permission.WRITE_SETTINGS\"/>"
|
"<uses-permission android:name=\"android.permission.ACCESS_COARSE_LOCATION\"/>",
|
||||||
]
|
"<uses-feature android:name=\"android.hardware.camera\"/>",
|
||||||
},
|
"<uses-permission android:name=\"android.permission.ACCESS_FINE_LOCATION\"/>",
|
||||||
"ios": { /* ios打包配置 */
|
"<uses-permission android:name=\"android.permission.WRITE_SETTINGS\"/>"
|
||||||
|
]
|
||||||
},
|
},
|
||||||
"sdkConfigs": { /* SDK配置 */
|
"ios" : {},
|
||||||
|
/* ios打包配置 */
|
||||||
}
|
"sdkConfigs" : {}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"quickapp": { /* 快应用特有相关 */
|
/* SDK配置 */
|
||||||
|
"quickapp" : {},
|
||||||
},
|
/* 快应用特有相关 */
|
||||||
"mp-weixin": { /* 微信小程序特有相关 */
|
"mp-weixin" : {
|
||||||
"appid": "",
|
/* 微信小程序特有相关 */
|
||||||
"setting": {
|
"appid" : "",
|
||||||
"urlCheck": false
|
"setting" : {
|
||||||
},
|
"urlCheck" : false
|
||||||
"usingComponents": true
|
},
|
||||||
},
|
"usingComponents" : true
|
||||||
"mp-alipay" : {
|
},
|
||||||
|
"mp-alipay" : {
|
||||||
"usingComponents" : true
|
"usingComponents" : true
|
||||||
},
|
},
|
||||||
"mp-baidu" : {
|
"mp-baidu" : {
|
||||||
|
|
@ -71,5 +72,15 @@
|
||||||
},
|
},
|
||||||
"mp-qq" : {
|
"mp-qq" : {
|
||||||
"usingComponents" : true
|
"usingComponents" : true
|
||||||
|
},
|
||||||
|
"h5" : {
|
||||||
|
"title" : "五星党建",
|
||||||
|
"router" : {
|
||||||
|
"mode" : "history",
|
||||||
|
"base" : "/h5/"
|
||||||
|
},
|
||||||
|
"devServer" : {
|
||||||
|
"https" : false
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -3,14 +3,89 @@
|
||||||
{
|
{
|
||||||
"path": "pages/index/index",
|
"path": "pages/index/index",
|
||||||
"style": {
|
"style": {
|
||||||
"navigationBarTitleText": "uni-app"
|
"navigationBarTitleText": "五星党建"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"path": "pages/auth/login",
|
||||||
|
"style": {
|
||||||
|
"navigationBarTitleText": "登录"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"path" : "pages/score/category",
|
||||||
|
"style" :
|
||||||
|
{
|
||||||
|
"navigationBarTitleText" : "填报"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"path" : "pages/score/form",
|
||||||
|
"style" :
|
||||||
|
{
|
||||||
|
"navigationBarTitleText" : "填报"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"path" : "pages/score/user-rank",
|
||||||
|
"style" :
|
||||||
|
{
|
||||||
|
"navigationBarTitleText" : "排行榜"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"path" : "pages/user/profile",
|
||||||
|
"style" :
|
||||||
|
{
|
||||||
|
"navigationBarTitleText" : "个人中心",
|
||||||
|
"navigationBarBackgroundColor": "white",
|
||||||
|
"navigationBarTextStyle": "black"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"path" : "pages/article/detail",
|
||||||
|
"style" :
|
||||||
|
{
|
||||||
|
"navigationBarTitleText" : "文章详细"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"path" : "pages/feedback/add",
|
||||||
|
"style" :
|
||||||
|
{
|
||||||
|
"navigationBarTitleText" : "书记信箱"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
|
"tabBar": {
|
||||||
|
"backgroundColor": "#FFFFFF",
|
||||||
|
"color": "#B2B2B2",
|
||||||
|
"selectedColor": "#C20000",
|
||||||
|
"borderStyle": "white",
|
||||||
|
"list": [{
|
||||||
|
"pagePath": "pages/index/index",
|
||||||
|
"iconPath": "static/images/home.png",
|
||||||
|
"selectedIconPath": "static/images/home-active.png",
|
||||||
|
"text": "首页"
|
||||||
|
}, {
|
||||||
|
"pagePath": "pages/score/category",
|
||||||
|
"iconPath": "static/images/form.png",
|
||||||
|
"selectedIconPath": "static/images/form-active.png",
|
||||||
|
"text": "填报"
|
||||||
|
}, {
|
||||||
|
"pagePath": "pages/user/profile",
|
||||||
|
"iconPath": "static/images/user.png",
|
||||||
|
"selectedIconPath": "static/images/user-active.png",
|
||||||
|
"text": "我的"
|
||||||
|
}]
|
||||||
|
},
|
||||||
"globalStyle": {
|
"globalStyle": {
|
||||||
"navigationBarTextStyle": "black",
|
"navigationBarTextStyle": "white",
|
||||||
"navigationBarTitleText": "uni-app",
|
"navigationBarTitleText": "五星党建",
|
||||||
"navigationBarBackgroundColor": "#F8F8F8",
|
"navigationBarBackgroundColor": "#C20000",
|
||||||
"backgroundColor": "#F8F8F8"
|
"backgroundColor": "#efefef"
|
||||||
|
},
|
||||||
|
"easycom": {
|
||||||
|
"^u-(.*)": "uview-ui/components/u-$1/u-$1.vue"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -0,0 +1,37 @@
|
||||||
|
<template>
|
||||||
|
<view class="page">
|
||||||
|
<view class="title">文章标题文章标题文章标题文章标题文章标题文章标题文章标题文章标题文章标题文章标题文章标题文章标题文章标题文章标题文章标题文章标题文章标题文章标题</view>
|
||||||
|
<view class="content">
|
||||||
|
<rich-text :nodes="content" />
|
||||||
|
</view>
|
||||||
|
</view>
|
||||||
|
</template>
|
||||||
|
|
||||||
|
<script>
|
||||||
|
export default {
|
||||||
|
data() {
|
||||||
|
return {
|
||||||
|
content: '<p>1111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111</p>'
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
</script>
|
||||||
|
|
||||||
|
<style scoped>
|
||||||
|
.page {
|
||||||
|
padding: 20rpx;
|
||||||
|
}
|
||||||
|
.title {
|
||||||
|
font-size: 36rpx;
|
||||||
|
font-weight: bold;
|
||||||
|
text-align: center;
|
||||||
|
}
|
||||||
|
.content {
|
||||||
|
margin-top: 30rpx;
|
||||||
|
background-color: white;
|
||||||
|
word-break: break-all;
|
||||||
|
overflow-wrap: break-word;
|
||||||
|
width: 100%;
|
||||||
|
line-height: 1.6;
|
||||||
|
}
|
||||||
|
</style>
|
||||||
|
|
@ -0,0 +1,88 @@
|
||||||
|
<template>
|
||||||
|
<view class="page">
|
||||||
|
<view class="title">您好,欢迎登录!</view>
|
||||||
|
<view class="form">
|
||||||
|
<view class="item">
|
||||||
|
<view class="label">帐号</view>
|
||||||
|
<view class="control">
|
||||||
|
<input v-model="username" type="text" class="input" name="username" focus placeholder="请输入账号" />
|
||||||
|
</view>
|
||||||
|
</view>
|
||||||
|
<view class="item">
|
||||||
|
<view class="label">密码</view>
|
||||||
|
<view class="control">
|
||||||
|
<input v-model="password" type="password" class="input" name="password" placeholder="请输入密码" />
|
||||||
|
</view>
|
||||||
|
</view>
|
||||||
|
<view class="item submit">
|
||||||
|
<button class="btn btn-danger" @click="submit">立即登录</button>
|
||||||
|
</view>
|
||||||
|
</view>
|
||||||
|
</view>
|
||||||
|
</template>
|
||||||
|
|
||||||
|
<script>
|
||||||
|
export default {
|
||||||
|
data() {
|
||||||
|
return {
|
||||||
|
username: '',
|
||||||
|
password: ''
|
||||||
|
}
|
||||||
|
},
|
||||||
|
onLoad() {},
|
||||||
|
methods: {
|
||||||
|
submit() {
|
||||||
|
if (!this.username) {
|
||||||
|
return uni.showToast({
|
||||||
|
icon: 'error',
|
||||||
|
title: '账号必填'
|
||||||
|
})
|
||||||
|
}
|
||||||
|
if (!this.username) {
|
||||||
|
return uni.showToast({
|
||||||
|
icon: 'error',
|
||||||
|
title: '密码必填'
|
||||||
|
})
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
</script>
|
||||||
|
|
||||||
|
<style>
|
||||||
|
.page {
|
||||||
|
background-color: white;
|
||||||
|
padding-top: 150rpx;
|
||||||
|
padding-left: 60rpx;
|
||||||
|
padding-right: 60rpx;
|
||||||
|
}
|
||||||
|
.title {
|
||||||
|
background-color: white;
|
||||||
|
font-size: 56rpx;
|
||||||
|
font-weight: bold;
|
||||||
|
text-align: center;
|
||||||
|
margin-top: 150rpx;
|
||||||
|
}
|
||||||
|
|
||||||
|
.form {
|
||||||
|
margin-top: 95rpx;
|
||||||
|
}
|
||||||
|
.form .label {
|
||||||
|
font-size: 15px;
|
||||||
|
font-weight: bolder;
|
||||||
|
}
|
||||||
|
.form .item {
|
||||||
|
margin-top: 30rpx;
|
||||||
|
}
|
||||||
|
|
||||||
|
.form .input {
|
||||||
|
padding: 14px 0;
|
||||||
|
border-radius: 0;
|
||||||
|
border-bottom: 0.5px solid #dadbde;
|
||||||
|
}
|
||||||
|
.form .submit {
|
||||||
|
font-size: 34rpx;
|
||||||
|
margin-top: 200rpx;
|
||||||
|
font-weight: 700;
|
||||||
|
}
|
||||||
|
</style>
|
||||||
|
|
@ -0,0 +1,51 @@
|
||||||
|
<template>
|
||||||
|
<view class="page">
|
||||||
|
<view class="form">
|
||||||
|
<textarea v-model="content" name="content" placeholder="请填写内容" focus auto-height />
|
||||||
|
</view>
|
||||||
|
<view class="block">
|
||||||
|
<button class="btn-danger" @click="submit">提交</button>
|
||||||
|
</view>
|
||||||
|
</view>
|
||||||
|
</template>
|
||||||
|
|
||||||
|
<script>
|
||||||
|
export default {
|
||||||
|
data() {
|
||||||
|
return {
|
||||||
|
content: ''
|
||||||
|
}
|
||||||
|
},
|
||||||
|
methods: {
|
||||||
|
submit() {
|
||||||
|
if (!this.content) {
|
||||||
|
return uni.showToast({
|
||||||
|
title: '请填写内容',
|
||||||
|
icon: 'error'
|
||||||
|
})
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
</script>
|
||||||
|
|
||||||
|
<style>
|
||||||
|
.form {
|
||||||
|
padding: 20rpx;
|
||||||
|
margin-top: 150rpx;
|
||||||
|
}
|
||||||
|
::v-deep uni-textarea {
|
||||||
|
border: 1px solid #ddd;
|
||||||
|
width: 100%;
|
||||||
|
box-sizing: border-box;
|
||||||
|
padding: 10rpx;
|
||||||
|
min-height: 400rpx;
|
||||||
|
}
|
||||||
|
.block {
|
||||||
|
padding: 20rpx;
|
||||||
|
margin-top: 40rpx;
|
||||||
|
}
|
||||||
|
.block .btn-danger {
|
||||||
|
width: 100%;
|
||||||
|
}
|
||||||
|
</style>
|
||||||
|
|
@ -1,49 +1,143 @@
|
||||||
<template>
|
<template>
|
||||||
<view class="content">
|
<view class="page">
|
||||||
<image class="logo" src="/static/logo.png"></image>
|
<swiper class="swiper" autoplay circular>
|
||||||
<view>
|
<swiper-item v-for="item in banners" :key="item.id">
|
||||||
<text class="title">{{title}}</text>
|
<image :src="item.image" style="height: 300rpx;width: 100%;" />
|
||||||
|
</swiper-item>
|
||||||
|
</swiper>
|
||||||
|
<view class="app-content">
|
||||||
|
<view class="item" @click="navigateArticle">
|
||||||
|
<view class="icon">
|
||||||
|
<image src="../../static/images/form-active.png" />
|
||||||
|
</view>
|
||||||
|
<view class="title">共性指标</view>
|
||||||
|
</view>
|
||||||
|
<view class="item" @click="navigateArticle">
|
||||||
|
<view class="icon">
|
||||||
|
<image src="../../static/images/form-active.png" />
|
||||||
|
</view>
|
||||||
|
<view class="title">进阶指标</view>
|
||||||
|
</view>
|
||||||
|
<view class="item" @click="feedback">
|
||||||
|
<view class="icon">
|
||||||
|
<image src="../../static/images/form-active.png" />
|
||||||
|
</view>
|
||||||
|
<view class="title">书记信箱</view>
|
||||||
|
</view>
|
||||||
|
</view>
|
||||||
|
<view class="rank">
|
||||||
|
<view class="header">
|
||||||
|
<text class="title">五星党员</text>
|
||||||
|
<text class="tool" @click="userRank">更多</text>
|
||||||
|
</view>
|
||||||
|
<view class="body">
|
||||||
|
<rank :header="header" :list="list" />
|
||||||
|
</view>
|
||||||
|
</view>
|
||||||
|
<view class="rank">
|
||||||
|
<view class="header">
|
||||||
|
<text class="title">五星党员</text>
|
||||||
|
<text class="tool">更多</text>
|
||||||
|
</view>
|
||||||
|
<view class="body">
|
||||||
|
<rank :header="header" :list="list" />
|
||||||
|
</view>
|
||||||
</view>
|
</view>
|
||||||
</view>
|
</view>
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
<script>
|
<script>
|
||||||
|
import Rank from '../../components/rank.vue'
|
||||||
export default {
|
export default {
|
||||||
|
components: { Rank },
|
||||||
data() {
|
data() {
|
||||||
return {
|
return {
|
||||||
title: 'Hello'
|
header: ['排名', '党员', '得分'],
|
||||||
|
list: [
|
||||||
|
{ name: '党员1', score: 100 }
|
||||||
|
],
|
||||||
|
banners: [
|
||||||
|
{id: 1, 'image': 'https://via.placeholder.com/800x300.png?text=1'},
|
||||||
|
{id: 2, 'image': 'https://via.placeholder.com/800x300.png?text=2'},
|
||||||
|
{id: 3, 'image': 'https://via.placeholder.com/800x300.png?text=3'},
|
||||||
|
]
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
onLoad() {
|
onLoad() {
|
||||||
|
|
||||||
},
|
},
|
||||||
methods: {
|
methods: {
|
||||||
|
userRank() {
|
||||||
|
uni.navigateTo({
|
||||||
|
url: '/pages/score/user-rank'
|
||||||
|
})
|
||||||
|
},
|
||||||
|
navigateArticle() {
|
||||||
|
uni.navigateTo({
|
||||||
|
url: '/pages/article/detail'
|
||||||
|
})
|
||||||
|
},
|
||||||
|
feedback() {
|
||||||
|
uni.navigateTo({
|
||||||
|
url: '/pages/feedback/add'
|
||||||
|
})
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
<style>
|
<style>
|
||||||
.content {
|
.swiper {
|
||||||
|
height: 300rpx;
|
||||||
|
}
|
||||||
|
|
||||||
|
.app-content {
|
||||||
|
background-color: white;
|
||||||
|
border-radius: 20rpx;
|
||||||
|
padding: 10px;
|
||||||
|
margin: 10px;
|
||||||
|
display: flex;
|
||||||
|
justify-content: space-between;
|
||||||
|
align-items: center;
|
||||||
|
}
|
||||||
|
.app-content .item {
|
||||||
|
text-align: center;
|
||||||
display: flex;
|
display: flex;
|
||||||
flex-direction: column;
|
flex-direction: column;
|
||||||
align-items: center;
|
align-items: center;
|
||||||
justify-content: center;
|
|
||||||
}
|
}
|
||||||
|
.app-content .title {
|
||||||
.logo {
|
text-align: center;
|
||||||
height: 200rpx;
|
margin-top: 15rpx;
|
||||||
width: 200rpx;
|
|
||||||
margin: 200rpx auto 50rpx auto;
|
|
||||||
}
|
}
|
||||||
|
.app-content .icon {
|
||||||
.text-area {
|
width: 90rpx;
|
||||||
display: flex;
|
height: 90rpx;
|
||||||
justify-content: center;
|
|
||||||
}
|
}
|
||||||
|
.app-content .icon ::v-deep image {
|
||||||
.title {
|
width: 90rpx;
|
||||||
|
height: 90rpx;
|
||||||
|
}
|
||||||
|
|
||||||
|
.rank {
|
||||||
|
background-color: white;
|
||||||
|
padding: 10px;
|
||||||
|
margin: 10px;
|
||||||
|
box-sizing: border-box;
|
||||||
|
border-radius: 20rpx;
|
||||||
|
}
|
||||||
|
.rank .header {
|
||||||
|
text-align: center;
|
||||||
|
font-weight: bold;
|
||||||
|
}
|
||||||
|
.rank .title {
|
||||||
font-size: 36rpx;
|
font-size: 36rpx;
|
||||||
color: #8f8f94;
|
}
|
||||||
|
.rank .tool {
|
||||||
|
float: right;
|
||||||
|
margin-right: 30rpx;
|
||||||
|
}
|
||||||
|
.rank .body {
|
||||||
|
padding-top: 15rpx;
|
||||||
}
|
}
|
||||||
</style>
|
</style>
|
||||||
|
|
|
||||||
|
|
@ -0,0 +1,89 @@
|
||||||
|
<template>
|
||||||
|
<view class="page">
|
||||||
|
<swiper class="swiper" autoplay circular>
|
||||||
|
<swiper-item v-for="item in banners" :key="item.id">
|
||||||
|
<image :src="item.image" style="height: 300rpx;width: 100%;" />
|
||||||
|
</swiper-item>
|
||||||
|
</swiper>
|
||||||
|
<view class="app">
|
||||||
|
<view class="row">
|
||||||
|
<view v-for="(item, index) in categories" :key="item.id" v-if="index < 2" class="item" @click="navigateTo">
|
||||||
|
<view class="icon">
|
||||||
|
<image :src="item.image" />
|
||||||
|
</view>
|
||||||
|
<view class="title">{{ item.name }}</view>
|
||||||
|
</view>
|
||||||
|
</view>
|
||||||
|
<view class="row">
|
||||||
|
<view v-for="(item, index) in categories" :key="item.id" v-if="index >= 2" class="item">
|
||||||
|
<view class="icon">
|
||||||
|
<image :src="item.image" />
|
||||||
|
</view>
|
||||||
|
<view class="title">{{ item.name }}</view>
|
||||||
|
</view>
|
||||||
|
</view>
|
||||||
|
</view>
|
||||||
|
<view class="article">
|
||||||
|
<rich-text :nodes="content" />
|
||||||
|
</view>
|
||||||
|
</view>
|
||||||
|
</template>
|
||||||
|
|
||||||
|
<script>
|
||||||
|
export default {
|
||||||
|
data() {
|
||||||
|
return {
|
||||||
|
banners: [
|
||||||
|
{id: 1, 'image': 'https://via.placeholder.com/800x300.png?text=1'},
|
||||||
|
{id: 2, 'image': 'https://via.placeholder.com/800x300.png?text=2'},
|
||||||
|
{id: 3, 'image': 'https://via.placeholder.com/800x300.png?text=3'},
|
||||||
|
],
|
||||||
|
categories: [
|
||||||
|
{id: 1, name: '政治忠诚', image: 'https://via.placeholder.com/100x100.png?text=1'},
|
||||||
|
{id: 2, name: '政治定力', image: 'https://via.placeholder.com/100x100.png?text=1'},
|
||||||
|
{id: 3, name: '政治担当', image: 'https://via.placeholder.com/100x100.png?text=1'},
|
||||||
|
{id: 4, name: '政治能力', image: 'https://via.placeholder.com/100x100.png?text=1'},
|
||||||
|
{id: 5, name: '政治自律', image: 'https://via.placeholder.com/100x100.png?text=1'},
|
||||||
|
],
|
||||||
|
content: '<h1>富文本</h1><p>哈哈哈</p><img src="https://via.placeholder.com/100x100.png"/><p><b>哈哈哈</b></p>'
|
||||||
|
}
|
||||||
|
},
|
||||||
|
methods: {
|
||||||
|
navigateTo() {
|
||||||
|
uni.navigateTo({
|
||||||
|
url: '/pages/score/form'
|
||||||
|
})
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
</script>
|
||||||
|
|
||||||
|
<style>
|
||||||
|
.swiper {
|
||||||
|
height: 300rpx;
|
||||||
|
}
|
||||||
|
|
||||||
|
.app .row {
|
||||||
|
margin: 20rpx;
|
||||||
|
padding: 20rpx 10rpx;
|
||||||
|
border-radius: 20rpx;
|
||||||
|
background-color: white;
|
||||||
|
display: flex;
|
||||||
|
justify-content: center;
|
||||||
|
}
|
||||||
|
.app .item {
|
||||||
|
text-align: center;
|
||||||
|
margin: 0 10rpx;
|
||||||
|
}
|
||||||
|
.app .icon ::v-deep uni-image {
|
||||||
|
border-radius: 20rpx;
|
||||||
|
width: 200rpx;
|
||||||
|
height: 200rpx;
|
||||||
|
}
|
||||||
|
.article {
|
||||||
|
margin: 20rpx;
|
||||||
|
padding: 20rpx 10rpx;
|
||||||
|
border-radius: 20rpx;
|
||||||
|
background-color: white;
|
||||||
|
}
|
||||||
|
</style>
|
||||||
|
|
@ -0,0 +1,134 @@
|
||||||
|
<template>
|
||||||
|
<view class="page">
|
||||||
|
<view class="form">
|
||||||
|
<u--form :labelStyle="{color:'#000000',fontSize:'34rpx'}" labelWidth="80">
|
||||||
|
<u-form-item label="主题" borderBottom required>
|
||||||
|
<u--input
|
||||||
|
v-model="title"
|
||||||
|
name="title"
|
||||||
|
placeholder="请填写主题"
|
||||||
|
fontSize="17"
|
||||||
|
color="#000000"
|
||||||
|
inputAlign="right"
|
||||||
|
border="none"
|
||||||
|
/>
|
||||||
|
</u-form-item>
|
||||||
|
<u-form-item label="内容" labelPosition="top" borderBottom>
|
||||||
|
<textarea v-model="content" name="content" auto-height placeholder="请填写内容" />
|
||||||
|
</u-form-item>
|
||||||
|
<u-form-item label="图片(最多5张)" labelPosition="top" labelWidth="120" borderBottom>
|
||||||
|
<view class="item">
|
||||||
|
<u-upload
|
||||||
|
:fileList="images"
|
||||||
|
uploadIcon="photo"
|
||||||
|
multiple
|
||||||
|
maxCount="5"
|
||||||
|
previewFullImage
|
||||||
|
@afterRead="uploadImage"
|
||||||
|
@delete="deleteImage"
|
||||||
|
/>
|
||||||
|
</view>
|
||||||
|
</u-form-item>
|
||||||
|
<u-form-item label="附件" labelPosition="top" borderBottom>
|
||||||
|
<view class="item">
|
||||||
|
<u-upload
|
||||||
|
:fileList="files"
|
||||||
|
accept="file"
|
||||||
|
uploadIcon="plus"
|
||||||
|
maxCount="1"
|
||||||
|
@afterRead="uploadFile"
|
||||||
|
@delete="deleteFile"
|
||||||
|
/>
|
||||||
|
</view>
|
||||||
|
</u-form-item>
|
||||||
|
<u-form-item>
|
||||||
|
<button class="btn-danger" @click="submit">提交</button>
|
||||||
|
</u-form-item>
|
||||||
|
</u--form>
|
||||||
|
</view>
|
||||||
|
</view>
|
||||||
|
</template>
|
||||||
|
|
||||||
|
<script>
|
||||||
|
export default {
|
||||||
|
data() {
|
||||||
|
return {
|
||||||
|
title: '',
|
||||||
|
content: '',
|
||||||
|
images: [],
|
||||||
|
files: []
|
||||||
|
}
|
||||||
|
},
|
||||||
|
methods: {
|
||||||
|
deleteImage(event) {
|
||||||
|
this.images.splice(event.index, 1)
|
||||||
|
},
|
||||||
|
async uploadImage(event) {
|
||||||
|
let lists = [].concat(event.file)
|
||||||
|
let fileListLen = this.images.length
|
||||||
|
lists.map((item) => {
|
||||||
|
this.images.push({
|
||||||
|
...item,
|
||||||
|
status: 'uploading',
|
||||||
|
message: '上传中'
|
||||||
|
})
|
||||||
|
})
|
||||||
|
for (let i = 0; i < lists.length; i++) {
|
||||||
|
const result = await this.uploadFilePromise(lists[i].url)
|
||||||
|
let item = this.images[fileListLen]
|
||||||
|
this.images.splice(fileListLen, 1, Object.assign(item, {
|
||||||
|
status: 'success',
|
||||||
|
message: '',
|
||||||
|
url: result
|
||||||
|
}))
|
||||||
|
fileListLen++
|
||||||
|
}
|
||||||
|
},
|
||||||
|
uploadFile(event) {
|
||||||
|
this.files.push(event.file)
|
||||||
|
},
|
||||||
|
deleteFile(event) {
|
||||||
|
this.files.splice(event.index, 1)
|
||||||
|
},
|
||||||
|
uploadFilePromise() {
|
||||||
|
return new Promise((resolve, reject) => {
|
||||||
|
setTimeout(() => {
|
||||||
|
resolve('https://via.placeholder.com/100x100.png')
|
||||||
|
}, 1000)
|
||||||
|
})
|
||||||
|
},
|
||||||
|
submit() {
|
||||||
|
if (!this.title) {
|
||||||
|
return uni.showToast({
|
||||||
|
title: '主题必填',
|
||||||
|
icon: 'error'
|
||||||
|
})
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
</script>
|
||||||
|
|
||||||
|
<style>
|
||||||
|
.page {
|
||||||
|
padding-top: 20rpx;
|
||||||
|
}
|
||||||
|
|
||||||
|
.form {
|
||||||
|
background-color: white;
|
||||||
|
padding: 0 30rpx;
|
||||||
|
}
|
||||||
|
.item {
|
||||||
|
margin-top: 30rpx;
|
||||||
|
}
|
||||||
|
::v-deep uni-textarea {
|
||||||
|
min-height: 110rpx;
|
||||||
|
background-color: #F5F5F5;
|
||||||
|
width: 100%;
|
||||||
|
margin-top: 20rpx;
|
||||||
|
padding: 10rpx 15rpx;
|
||||||
|
}
|
||||||
|
.btn-danger {
|
||||||
|
width: 100%;
|
||||||
|
}
|
||||||
|
</style>
|
||||||
|
|
@ -0,0 +1,51 @@
|
||||||
|
<template>
|
||||||
|
<view class="page">
|
||||||
|
<view class="title">
|
||||||
|
<view class="name1">
|
||||||
|
<picker mode="selector" :range="dates" @change="changeDate">{{ date }}</picker>
|
||||||
|
</view>
|
||||||
|
</view>
|
||||||
|
<view class="rank">
|
||||||
|
<rank :header="header" :list="list" />
|
||||||
|
</view>
|
||||||
|
</view>
|
||||||
|
</template>
|
||||||
|
|
||||||
|
<script>
|
||||||
|
import Rank from '../../components/rank.vue'
|
||||||
|
export default {
|
||||||
|
components: { Rank },
|
||||||
|
data() {
|
||||||
|
return {
|
||||||
|
header: ['排名', '党员', '得分'],
|
||||||
|
list: [
|
||||||
|
{ name: '党员1', score: 100 },
|
||||||
|
{ name: '党员2', score: 200 },
|
||||||
|
],
|
||||||
|
date: '请选择期数',
|
||||||
|
dates: ['2023-1', '2023-2', '2023-3']
|
||||||
|
}
|
||||||
|
},
|
||||||
|
methods: {
|
||||||
|
changeDate(e) {
|
||||||
|
this.date = this.dates[e.detail.value]
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
</script>
|
||||||
|
|
||||||
|
<style>
|
||||||
|
.title {
|
||||||
|
background-color: white;
|
||||||
|
display: flex;
|
||||||
|
padding: 20rpx;
|
||||||
|
justify-content: space-around;
|
||||||
|
}
|
||||||
|
.rank {
|
||||||
|
background-color: white;
|
||||||
|
margin-top: 20rpx;
|
||||||
|
padding: 20rpx;
|
||||||
|
border-radius: 10rpx;
|
||||||
|
box-sizing: border-box;
|
||||||
|
}
|
||||||
|
</style>
|
||||||
|
|
@ -0,0 +1,210 @@
|
||||||
|
<template>
|
||||||
|
<view class="page">
|
||||||
|
<view class="profile">
|
||||||
|
<view class="bg">
|
||||||
|
<view class="bg1"></view>
|
||||||
|
<view class="bg2"></view>
|
||||||
|
</view>
|
||||||
|
<view class="box">
|
||||||
|
<view class="title">
|
||||||
|
<view class="left">
|
||||||
|
<view class="avatar">
|
||||||
|
<image src="https://via.placeholder.com/64x64.png">
|
||||||
|
</view>
|
||||||
|
<view class="name">
|
||||||
|
<view class="name1">党员1</view>
|
||||||
|
<view class="name2">党支部1</view>
|
||||||
|
</view>
|
||||||
|
</view>
|
||||||
|
<view class="icon flex">
|
||||||
|
<image src="../../static/images/arrow-right.png" style="width: 20rpx; height: 20rpx;" />
|
||||||
|
</view>
|
||||||
|
</view>
|
||||||
|
<view class="list">
|
||||||
|
<view class="item">
|
||||||
|
<view class="number">10</view>
|
||||||
|
<view class="text">当前得星</view>
|
||||||
|
</view>
|
||||||
|
<view class="border"></view>
|
||||||
|
<view class="item">
|
||||||
|
<view class="number">10</view>
|
||||||
|
<view class="text">总排名</view>
|
||||||
|
</view>
|
||||||
|
<view class="border"></view>
|
||||||
|
<view class="item">
|
||||||
|
<view class="number">10</view>
|
||||||
|
<view class="text">累计得星</view>
|
||||||
|
</view>
|
||||||
|
</view>
|
||||||
|
</view>
|
||||||
|
</view>
|
||||||
|
<view class="redar">
|
||||||
|
<view id="echart" style="height: 250px;width: 330px;"></view>
|
||||||
|
</view>
|
||||||
|
<view class="options">
|
||||||
|
<view class="item">
|
||||||
|
<view class="flex">
|
||||||
|
<view class="icon">
|
||||||
|
<image src="https://via.placeholder.com/64x64.png">
|
||||||
|
</view>
|
||||||
|
<view class="title">我的填报</view>
|
||||||
|
</view>
|
||||||
|
<view class="badge">
|
||||||
|
<image src="../../static/images/arrow-right.png" style="width: 20rpx; height: 20rpx;" />
|
||||||
|
</view>
|
||||||
|
</view>
|
||||||
|
</view>
|
||||||
|
</view>
|
||||||
|
</template>
|
||||||
|
|
||||||
|
<script>
|
||||||
|
import * as echarts from 'echarts';
|
||||||
|
export default {
|
||||||
|
data() {
|
||||||
|
return {
|
||||||
|
|
||||||
|
}
|
||||||
|
},
|
||||||
|
onLoad() {
|
||||||
|
this.$nextTick(() => {
|
||||||
|
this.init()
|
||||||
|
})
|
||||||
|
},
|
||||||
|
methods: {
|
||||||
|
init() {
|
||||||
|
var option = {
|
||||||
|
radar: {
|
||||||
|
indicator: [
|
||||||
|
{ name: '政治忠诚', max: 50 },
|
||||||
|
{ name: '政治定力', max: 50 },
|
||||||
|
{ name: '政治担当', max: 50 },
|
||||||
|
{ name: '政治能力', max: 50 },
|
||||||
|
{ name: '政治自律', max: 50 },
|
||||||
|
]
|
||||||
|
},
|
||||||
|
series: [
|
||||||
|
{
|
||||||
|
type: 'radar',
|
||||||
|
areaStyle: {
|
||||||
|
opacity: 0.9
|
||||||
|
},
|
||||||
|
data: [
|
||||||
|
{
|
||||||
|
value: [33, 14, 28, 26, 42],
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
]
|
||||||
|
};
|
||||||
|
var chartElement = echarts.init(document.getElementById('echart'));
|
||||||
|
chartElement.setOption(option)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
</script>
|
||||||
|
|
||||||
|
<style>
|
||||||
|
.profile {
|
||||||
|
position: relative;
|
||||||
|
}
|
||||||
|
.profile .avatar {
|
||||||
|
display: inline-block;
|
||||||
|
}
|
||||||
|
.profile .left {
|
||||||
|
display: flex;
|
||||||
|
align-items: center;
|
||||||
|
}
|
||||||
|
.profile .name {
|
||||||
|
margin-left: 20rpx;
|
||||||
|
}
|
||||||
|
.profile .avatar ::v-deep uni-image {
|
||||||
|
border-radius: 100%;
|
||||||
|
width: 120rpx;
|
||||||
|
height: 120rpx;
|
||||||
|
}
|
||||||
|
.profile .bg {
|
||||||
|
height: 400rpx;
|
||||||
|
}
|
||||||
|
.profile .bg1 {
|
||||||
|
width: 100%;
|
||||||
|
height: 200rpx;
|
||||||
|
background-color: #0da0f5;
|
||||||
|
}
|
||||||
|
.profile .bg2 {
|
||||||
|
width: 100%;
|
||||||
|
height: 200rpx;
|
||||||
|
background-color: white;
|
||||||
|
}
|
||||||
|
.profile .box {
|
||||||
|
background-color: white;
|
||||||
|
border: 1px solid #dddddd;
|
||||||
|
border-radius: 20rpx;
|
||||||
|
position: absolute;
|
||||||
|
top: 10%;
|
||||||
|
left: 3%;
|
||||||
|
width: 700rpx;
|
||||||
|
|
||||||
|
padding: 30rpx;
|
||||||
|
box-sizing: border-box;
|
||||||
|
}
|
||||||
|
.profile .title {
|
||||||
|
display: flex;
|
||||||
|
justify-content: space-between;
|
||||||
|
}
|
||||||
|
.profile .name1 {
|
||||||
|
font-weight: bold;
|
||||||
|
font-size: 38rpx;
|
||||||
|
}
|
||||||
|
.profile .name2 {
|
||||||
|
margin-top: 10rpx;
|
||||||
|
font-size: 25rpx;
|
||||||
|
color: gray;
|
||||||
|
}
|
||||||
|
.profile .list {
|
||||||
|
display: flex;
|
||||||
|
justify-content: space-between;
|
||||||
|
margin-top: 30rpx;
|
||||||
|
padding: 0 30rpx;
|
||||||
|
text-align: center;
|
||||||
|
}
|
||||||
|
.list .border {
|
||||||
|
width: 1px;
|
||||||
|
border-left: 1px solid #cbcbcb;
|
||||||
|
}
|
||||||
|
.list .number {
|
||||||
|
font-weight: bold;
|
||||||
|
font-size: 38rpx;
|
||||||
|
}
|
||||||
|
.list .text {
|
||||||
|
margin-top: 10rpx;
|
||||||
|
font-size: 25rpx;
|
||||||
|
color: gray;
|
||||||
|
}
|
||||||
|
.redar {
|
||||||
|
background-color: white;
|
||||||
|
margin: 10rpx auto;
|
||||||
|
padding: 10rpx 0;
|
||||||
|
display: flex;
|
||||||
|
justify-content: center;
|
||||||
|
align-items: center;
|
||||||
|
}
|
||||||
|
.options {
|
||||||
|
margin-top: 10rpx;
|
||||||
|
}
|
||||||
|
.options .item {
|
||||||
|
padding: 10rpx;
|
||||||
|
background-color: white;
|
||||||
|
display: flex;
|
||||||
|
justify-content: space-between;
|
||||||
|
align-items: center;
|
||||||
|
border-bottom: 1px solid #dddddd;
|
||||||
|
}
|
||||||
|
.options .title {
|
||||||
|
margin-left: 15rpx;
|
||||||
|
}
|
||||||
|
.options .icon ::v-deep uni-image {
|
||||||
|
border-radius: 10rpx;
|
||||||
|
width: 60rpx;
|
||||||
|
height: 60rpx;
|
||||||
|
}
|
||||||
|
</style>
|
||||||
|
|
@ -0,0 +1,18 @@
|
||||||
|
.page {
|
||||||
|
background-color: #efefef;
|
||||||
|
/* position: absolute;
|
||||||
|
width: 100%;
|
||||||
|
height: 100%;
|
||||||
|
box-sizing: border-box; */
|
||||||
|
}
|
||||||
|
|
||||||
|
.flex {
|
||||||
|
display: flex;
|
||||||
|
justify-content: space-between;
|
||||||
|
align-items: center;
|
||||||
|
}
|
||||||
|
|
||||||
|
.btn-danger {
|
||||||
|
color: white;
|
||||||
|
background-color: #C20000;
|
||||||
|
}
|
||||||
|
After Width: | Height: | Size: 2.2 KiB |
|
After Width: | Height: | Size: 3.2 KiB |
|
After Width: | Height: | Size: 3.2 KiB |
|
After Width: | Height: | Size: 3.2 KiB |
|
After Width: | Height: | Size: 3.2 KiB |
|
Before Width: | Height: | Size: 3.9 KiB After Width: | Height: | Size: 3.9 KiB |
|
After Width: | Height: | Size: 5.0 KiB |
|
After Width: | Height: | Size: 5.0 KiB |
|
|
@ -5,7 +5,7 @@
|
||||||
* 如果你是插件开发者,建议你使用scss预处理,并在插件代码中直接使用这些变量(无需 import 这个文件),方便用户通过搭积木的方式开发整体风格一致的App
|
* 如果你是插件开发者,建议你使用scss预处理,并在插件代码中直接使用这些变量(无需 import 这个文件),方便用户通过搭积木的方式开发整体风格一致的App
|
||||||
*
|
*
|
||||||
*/
|
*/
|
||||||
|
@import 'uview-ui/theme.scss';
|
||||||
/**
|
/**
|
||||||
* 如果你是App开发者(插件使用者),你可以通过修改这些变量来定制自己的插件主题,实现自定义主题功能
|
* 如果你是App开发者(插件使用者),你可以通过修改这些变量来定制自己的插件主题,实现自定义主题功能
|
||||||
*
|
*
|
||||||
|
|
|
||||||
|
|
@ -0,0 +1,3 @@
|
||||||
|
module.exports = {
|
||||||
|
transpileDependencies: ['uview-ui'],
|
||||||
|
}
|
||||||