pages
|
|
@ -69,7 +69,9 @@
|
|||
"@dcloudio/uni-stat": "^2.0.2-3061420221215001",
|
||||
"@vue/shared": "^3.0.0",
|
||||
"core-js": "^3.8.3",
|
||||
"echarts": "^5.4.3",
|
||||
"flyio": "^0.6.2",
|
||||
"uview-ui": "2.0.36",
|
||||
"vue": ">= 2.6.14 < 2.7",
|
||||
"vuex": "^3.2.0"
|
||||
},
|
||||
|
|
@ -92,6 +94,8 @@
|
|||
"cross-env": "^7.0.2",
|
||||
"jest": "^25.4.0",
|
||||
"postcss-comment": "^2.0.0",
|
||||
"sass": "^1.69.5",
|
||||
"sass-loader": "10",
|
||||
"vue-template-compiler": ">= 2.6.14 < 2.7"
|
||||
},
|
||||
"browserslist": [
|
||||
|
|
|
|||
|
|
@ -68,9 +68,15 @@ dependencies:
|
|||
core-js:
|
||||
specifier: ^3.8.3
|
||||
version: 3.8.3
|
||||
echarts:
|
||||
specifier: ^5.4.3
|
||||
version: 5.4.3
|
||||
flyio:
|
||||
specifier: ^0.6.2
|
||||
version: 0.6.2
|
||||
uview-ui:
|
||||
specifier: 2.0.36
|
||||
version: 2.0.36
|
||||
vue:
|
||||
specifier: '>= 2.6.14 < 2.7'
|
||||
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)
|
||||
'@vue/cli-service':
|
||||
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:
|
||||
specifier: ^1.11.0
|
||||
version: 1.11.0
|
||||
|
|
@ -133,6 +139,12 @@ devDependencies:
|
|||
postcss-comment:
|
||||
specifier: ^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:
|
||||
specifier: '>= 2.6.14 < 2.7'
|
||||
version: 2.6.14
|
||||
|
|
@ -2915,7 +2927,7 @@ packages:
|
|||
dependencies:
|
||||
'@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/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
|
||||
babel-loader: 8.3.0(@babel/core@7.23.5)(webpack@5.89.0)
|
||||
thread-loader: 3.0.4(webpack@5.89.0)
|
||||
|
|
@ -2936,7 +2948,7 @@ packages:
|
|||
peerDependencies:
|
||||
'@vue/cli-service': ^3.0.0 || ^4.0.0 || ^5.0.0-0
|
||||
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
|
||||
transitivePeerDependencies:
|
||||
- encoding
|
||||
|
|
@ -2947,10 +2959,10 @@ packages:
|
|||
peerDependencies:
|
||||
'@vue/cli-service': ^3.0.0 || ^4.0.0 || ^5.0.0-0
|
||||
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
|
||||
|
||||
/@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==}
|
||||
engines: {node: ^12.0.0 || >= 14.0.0}
|
||||
hasBin: true
|
||||
|
|
@ -3024,6 +3036,7 @@ packages:
|
|||
postcss: 8.4.32
|
||||
postcss-loader: 6.2.1(postcss@8.4.32)(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
|
||||
terser-webpack-plugin: 5.3.9(webpack@5.89.0)
|
||||
thread-loader: 3.0.4(webpack@5.89.0)
|
||||
|
|
@ -4056,6 +4069,7 @@ packages:
|
|||
/binary-extensions@2.2.0:
|
||||
resolution: {integrity: sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==}
|
||||
engines: {node: '>=8'}
|
||||
requiresBuild: true
|
||||
|
||||
/bindings@1.5.0:
|
||||
resolution: {integrity: sha512-p2q/t/mhvuOj/UeLlV6566GD/guowlr0hHxClI0W9m7MWYkL1F0hLo+0Aexs9HSPCtR1SXQ0TD3MMKrXZajbiQ==}
|
||||
|
|
@ -5601,6 +5615,13 @@ packages:
|
|||
jsbn: 0.1.1
|
||||
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:
|
||||
resolution: {integrity: sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow==}
|
||||
|
||||
|
|
@ -6798,6 +6819,10 @@ packages:
|
|||
resolution: {integrity: sha512-XXOFtyqDjNDAQxVfYxuF7g9Il/IbWmmlQg2MYKOH8ExIT1qg6xc4zyS3HaEEATgs1btfzxq15ciUiY7gjSXRGQ==}
|
||||
dev: false
|
||||
|
||||
/immutable@4.3.4:
|
||||
resolution: {integrity: sha512-fsXeu4J4i6WNWSikpI88v/PcVflZz+6kMhUfIwc5SY+poQRPnaf5V7qds6SUyUN3cVxEzuCab7QIoLOQ+DQ1wA==}
|
||||
dev: true
|
||||
|
||||
/import-fresh@3.3.0:
|
||||
resolution: {integrity: sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==}
|
||||
engines: {node: '>=6'}
|
||||
|
|
@ -6909,6 +6934,7 @@ packages:
|
|||
/is-binary-path@2.1.0:
|
||||
resolution: {integrity: sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==}
|
||||
engines: {node: '>=8'}
|
||||
requiresBuild: true
|
||||
dependencies:
|
||||
binary-extensions: 2.2.0
|
||||
|
||||
|
|
@ -9803,6 +9829,7 @@ packages:
|
|||
/readdirp@3.6.0:
|
||||
resolution: {integrity: sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==}
|
||||
engines: {node: '>=8.10.0'}
|
||||
requiresBuild: true
|
||||
dependencies:
|
||||
picomatch: 2.3.1
|
||||
|
||||
|
|
@ -10124,6 +10151,41 @@ packages:
|
|||
- supports-color
|
||||
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:
|
||||
resolution: {integrity: sha512-0s+oAmw9zLl1V1cS9BtZN7JAd0cW5e0QH4W3LWEK6a4LaLEA2OTpGYWDY+6XasBLtz6wkm3u1xRw95mRuJ59WA==}
|
||||
dev: true
|
||||
|
|
@ -11084,6 +11146,10 @@ packages:
|
|||
punycode: 2.3.1
|
||||
dev: true
|
||||
|
||||
/tslib@2.3.0:
|
||||
resolution: {integrity: sha512-N82ooyxVNm6h1riLCoyS9e3fuJ3AMG2zIZs2Gd1ATcSFjSA23Q0fzjjZeh0jbJvWVDZ0cJT8yaNNaaXHzueNjg==}
|
||||
dev: false
|
||||
|
||||
/tslib@2.6.2:
|
||||
resolution: {integrity: sha512-AEYxH93jGFPn/a2iVAwW87VuUIkR1FVUKB77NwMF7nBTDkDrrT/Hpt/IrCJ0QXhW27jTBDcf5ZY7w6RiqTMw2Q==}
|
||||
dev: true
|
||||
|
|
@ -11327,6 +11393,11 @@ packages:
|
|||
hasBin: 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:
|
||||
resolution: {integrity: sha512-Rw6vJHj1mbdK8edjR7+zuJrpDtKIgNdAvTSAcpYfgMIw+u2dPDntD3dgN4XQFLU2/fvFQdzj+EeSGfd/jnY5fQ==}
|
||||
engines: {node: 8.x.x || >=10.10.0}
|
||||
|
|
@ -12154,3 +12225,9 @@ packages:
|
|||
resolution: {integrity: sha512-RXRJzMiK6U2ye0BlGGZnmpwJDPgakn6aNQ0A7gHRbD4I0uvK4TW6UqkK1V0pp9jskjJBAXd3dRrbzWkqJ+6cxA==}
|
||||
engines: {node: '>= 4.0.0'}
|
||||
dev: false
|
||||
|
||||
/zrender@5.4.4:
|
||||
resolution: {integrity: sha512-0VxCNJ7AGOMCWeHVyTrGzUgrK4asT4ml9PEkeGirAkKNYXYzoPJCLvmyfdoOXcjTHPs10OZVMfD1Rwg16AZyYw==}
|
||||
dependencies:
|
||||
tslib: 2.3.0
|
||||
dev: false
|
||||
|
|
|
|||
|
|
@ -12,6 +12,7 @@
|
|||
}
|
||||
</script>
|
||||
|
||||
<style>
|
||||
/*每个页面公共css */
|
||||
<style lang="scss">
|
||||
@import "uview-ui/index.scss";
|
||||
@import url("static/css/base.css");
|
||||
</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 App from './App'
|
||||
import './uni.promisify.adaptor'
|
||||
import uView from 'uview-ui'
|
||||
|
||||
Vue.config.productionTip = false
|
||||
Vue.use(uView)
|
||||
|
||||
App.mpType = 'app'
|
||||
|
||||
|
|
|
|||
|
|
@ -1,66 +1,67 @@
|
|||
{
|
||||
"name": "",
|
||||
"appid": "",
|
||||
"description": "",
|
||||
"versionName": "1.0.0",
|
||||
"versionCode": "100",
|
||||
"transformPx": false,
|
||||
"app-plus": { /* 5+App特有相关 */
|
||||
"usingComponents": true,
|
||||
"splashscreen": {
|
||||
"alwaysShowBeforeRender": true,
|
||||
"waiting": true,
|
||||
"autoclose": true,
|
||||
"delay": 0
|
||||
},
|
||||
"modules": { /* 模块配置 */
|
||||
|
||||
},
|
||||
"distribute": { /* 应用发布信息 */
|
||||
"android": { /* android打包配置 */
|
||||
"permissions": ["<uses-permission android:name=\"android.permission.CHANGE_NETWORK_STATE\"/>",
|
||||
"<uses-permission android:name=\"android.permission.MOUNT_UNMOUNT_FILESYSTEMS\"/>",
|
||||
"<uses-permission android:name=\"android.permission.READ_CONTACTS\"/>",
|
||||
"<uses-permission android:name=\"android.permission.VIBRATE\"/>",
|
||||
"<uses-permission android:name=\"android.permission.READ_LOGS\"/>",
|
||||
"<uses-permission android:name=\"android.permission.ACCESS_WIFI_STATE\"/>",
|
||||
"<uses-feature android:name=\"android.hardware.camera.autofocus\"/>",
|
||||
"<uses-permission android:name=\"android.permission.WRITE_CONTACTS\"/>",
|
||||
"<uses-permission android:name=\"android.permission.ACCESS_NETWORK_STATE\"/>",
|
||||
"<uses-permission android:name=\"android.permission.CAMERA\"/>",
|
||||
"<uses-permission android:name=\"android.permission.RECORD_AUDIO\"/>",
|
||||
"<uses-permission android:name=\"android.permission.GET_ACCOUNTS\"/>",
|
||||
"<uses-permission android:name=\"android.permission.MODIFY_AUDIO_SETTINGS\"/>",
|
||||
"<uses-permission android:name=\"android.permission.READ_PHONE_STATE\"/>",
|
||||
"<uses-permission android:name=\"android.permission.CHANGE_WIFI_STATE\"/>",
|
||||
"<uses-permission android:name=\"android.permission.WAKE_LOCK\"/>",
|
||||
"<uses-permission android:name=\"android.permission.CALL_PHONE\"/>",
|
||||
"<uses-permission android:name=\"android.permission.FLASHLIGHT\"/>",
|
||||
"<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\"/>",
|
||||
"<uses-permission android:name=\"android.permission.WRITE_SETTINGS\"/>"
|
||||
]
|
||||
},
|
||||
"ios": { /* ios打包配置 */
|
||||
|
||||
},
|
||||
"sdkConfigs": { /* SDK配置 */
|
||||
|
||||
}
|
||||
}
|
||||
},
|
||||
"quickapp": { /* 快应用特有相关 */
|
||||
|
||||
},
|
||||
"mp-weixin": { /* 微信小程序特有相关 */
|
||||
"appid": "",
|
||||
"setting": {
|
||||
"urlCheck": false
|
||||
},
|
||||
"usingComponents": true
|
||||
},
|
||||
"mp-alipay" : {
|
||||
"name" : "PartyRank",
|
||||
"appid" : "__UNI__828F200",
|
||||
"description" : "五星党建",
|
||||
"versionName" : "1.0.0",
|
||||
"versionCode" : "100",
|
||||
"transformPx" : false,
|
||||
"app-plus" : {
|
||||
/* 5+App特有相关 */
|
||||
"usingComponents" : true,
|
||||
"splashscreen" : {
|
||||
"alwaysShowBeforeRender" : true,
|
||||
"waiting" : true,
|
||||
"autoclose" : true,
|
||||
"delay" : 0
|
||||
},
|
||||
"modules" : {},
|
||||
/* 模块配置 */
|
||||
"distribute" : {
|
||||
/* 应用发布信息 */
|
||||
"android" : {
|
||||
/* android打包配置 */
|
||||
"permissions" : [
|
||||
"<uses-permission android:name=\"android.permission.CHANGE_NETWORK_STATE\"/>",
|
||||
"<uses-permission android:name=\"android.permission.MOUNT_UNMOUNT_FILESYSTEMS\"/>",
|
||||
"<uses-permission android:name=\"android.permission.READ_CONTACTS\"/>",
|
||||
"<uses-permission android:name=\"android.permission.VIBRATE\"/>",
|
||||
"<uses-permission android:name=\"android.permission.READ_LOGS\"/>",
|
||||
"<uses-permission android:name=\"android.permission.ACCESS_WIFI_STATE\"/>",
|
||||
"<uses-feature android:name=\"android.hardware.camera.autofocus\"/>",
|
||||
"<uses-permission android:name=\"android.permission.WRITE_CONTACTS\"/>",
|
||||
"<uses-permission android:name=\"android.permission.ACCESS_NETWORK_STATE\"/>",
|
||||
"<uses-permission android:name=\"android.permission.CAMERA\"/>",
|
||||
"<uses-permission android:name=\"android.permission.RECORD_AUDIO\"/>",
|
||||
"<uses-permission android:name=\"android.permission.GET_ACCOUNTS\"/>",
|
||||
"<uses-permission android:name=\"android.permission.MODIFY_AUDIO_SETTINGS\"/>",
|
||||
"<uses-permission android:name=\"android.permission.READ_PHONE_STATE\"/>",
|
||||
"<uses-permission android:name=\"android.permission.CHANGE_WIFI_STATE\"/>",
|
||||
"<uses-permission android:name=\"android.permission.WAKE_LOCK\"/>",
|
||||
"<uses-permission android:name=\"android.permission.CALL_PHONE\"/>",
|
||||
"<uses-permission android:name=\"android.permission.FLASHLIGHT\"/>",
|
||||
"<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\"/>",
|
||||
"<uses-permission android:name=\"android.permission.WRITE_SETTINGS\"/>"
|
||||
]
|
||||
},
|
||||
"ios" : {},
|
||||
/* ios打包配置 */
|
||||
"sdkConfigs" : {}
|
||||
}
|
||||
},
|
||||
/* SDK配置 */
|
||||
"quickapp" : {},
|
||||
/* 快应用特有相关 */
|
||||
"mp-weixin" : {
|
||||
/* 微信小程序特有相关 */
|
||||
"appid" : "",
|
||||
"setting" : {
|
||||
"urlCheck" : false
|
||||
},
|
||||
"usingComponents" : true
|
||||
},
|
||||
"mp-alipay" : {
|
||||
"usingComponents" : true
|
||||
},
|
||||
"mp-baidu" : {
|
||||
|
|
@ -71,5 +72,15 @@
|
|||
},
|
||||
"mp-qq" : {
|
||||
"usingComponents" : true
|
||||
},
|
||||
"h5" : {
|
||||
"title" : "五星党建",
|
||||
"router" : {
|
||||
"mode" : "history",
|
||||
"base" : "/h5/"
|
||||
},
|
||||
"devServer" : {
|
||||
"https" : false
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -3,14 +3,89 @@
|
|||
{
|
||||
"path": "pages/index/index",
|
||||
"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": {
|
||||
"navigationBarTextStyle": "black",
|
||||
"navigationBarTitleText": "uni-app",
|
||||
"navigationBarBackgroundColor": "#F8F8F8",
|
||||
"backgroundColor": "#F8F8F8"
|
||||
"navigationBarTextStyle": "white",
|
||||
"navigationBarTitleText": "五星党建",
|
||||
"navigationBarBackgroundColor": "#C20000",
|
||||
"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>
|
||||
<view class="content">
|
||||
<image class="logo" src="/static/logo.png"></image>
|
||||
<view>
|
||||
<text class="title">{{title}}</text>
|
||||
<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-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>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
import Rank from '../../components/rank.vue'
|
||||
export default {
|
||||
components: { Rank },
|
||||
data() {
|
||||
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() {
|
||||
|
||||
},
|
||||
methods: {
|
||||
|
||||
userRank() {
|
||||
uni.navigateTo({
|
||||
url: '/pages/score/user-rank'
|
||||
})
|
||||
},
|
||||
navigateArticle() {
|
||||
uni.navigateTo({
|
||||
url: '/pages/article/detail'
|
||||
})
|
||||
},
|
||||
feedback() {
|
||||
uni.navigateTo({
|
||||
url: '/pages/feedback/add'
|
||||
})
|
||||
}
|
||||
}
|
||||
}
|
||||
</script>
|
||||
|
||||
<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;
|
||||
flex-direction: column;
|
||||
align-items: center;
|
||||
justify-content: center;
|
||||
}
|
||||
|
||||
.logo {
|
||||
height: 200rpx;
|
||||
width: 200rpx;
|
||||
margin: 200rpx auto 50rpx auto;
|
||||
.app-content .title {
|
||||
text-align: center;
|
||||
margin-top: 15rpx;
|
||||
}
|
||||
|
||||
.text-area {
|
||||
display: flex;
|
||||
justify-content: center;
|
||||
.app-content .icon {
|
||||
width: 90rpx;
|
||||
height: 90rpx;
|
||||
}
|
||||
|
||||
.title {
|
||||
.app-content .icon ::v-deep image {
|
||||
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;
|
||||
color: #8f8f94;
|
||||
}
|
||||
.rank .tool {
|
||||
float: right;
|
||||
margin-right: 30rpx;
|
||||
}
|
||||
.rank .body {
|
||||
padding-top: 15rpx;
|
||||
}
|
||||
</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
|
||||
*
|
||||
*/
|
||||
|
||||
@import 'uview-ui/theme.scss';
|
||||
/**
|
||||
* 如果你是App开发者(插件使用者),你可以通过修改这些变量来定制自己的插件主题,实现自定义主题功能
|
||||
*
|
||||
|
|
|
|||
|
|
@ -0,0 +1,3 @@
|
|||
module.exports = {
|
||||
transpileDependencies: ['uview-ui'],
|
||||
}
|
||||