ucenter.vue 7.2 KB
Newer Older
L
213  
linju 已提交
1 2
<template>
	<view class="center">
3
		<view class="userInfo" @click="toUserInfo">
DCloud_JSON's avatar
重构  
DCloud_JSON 已提交
4
			<image class="logo-img" :src="userInfo.avatar||avatarUrl"></image>
芊里 已提交
5
			<view class="logo-title">
6
				<text class="uer-name">{{userInfo.nickname||userInfo.username||userInfo.mobile||'未登录'}}</text>
DCloud_JSON's avatar
重构  
DCloud_JSON 已提交
7
				<uni-icons class="icon" color="#FFFFFF" type="arrowright" v-if="!login" size="16"></uni-icons>
L
213  
linju 已提交
8
			</view>
L
123  
linju 已提交
9
		</view>
L
213  
linju 已提交
10
		<uni-grid class="grid" :column="5" :showBorder="false" :square="true">
芊里 已提交
11 12 13
			<uni-grid-item class="item" v-for="(item,index) in gridList" @click.native="tapGrid(index)">
				<uni-icons class="icon" color="#5d5e64" :type="item.icon" size="28"></uni-icons>
				<text class="text">{{item.text}}</text>
L
213  
linju 已提交
14 15 16
			</uni-grid-item>
		</uni-grid>
		<uni-list class="center-list" v-for="(sublist , index) in ucenterList">
L
123  
linju 已提交
17 18 19 20 21 22
			<uni-list-item v-for="item in sublist" :title="item.title" link :rightText="item.rightText"
				:clickable="true" :to="item.to" @click="ucenterListClick(item)">
				<view v-if="item.showBadge" class="item-footer" slot="footer">
					<text class="item-footer-text">{{item.rightText}}</text>
					<view class="item-footer-badge"></view>
				</view>
芊里 已提交
23
			</uni-list-item>
24
		</uni-list>
L
213  
linju 已提交
25 26 27 28 29 30 31 32
	</view>
</template>

<script>
	import {
		mapGetters,
		mapMutations
	} from 'vuex';
芊里 已提交
33 34 35 36
	import checkUpdate from '@/uni_modules/uni-upgrade-center-app/utils/check-update';
	import callCheckVersion from '@/uni_modules/uni-upgrade-center-app/utils/call-check-version';

	const db = uniCloud.database();
芊里 已提交
37
	const dbCollectionName = 'uni-id-scores';
L
213  
linju 已提交
38 39 40
	export default {
		data() {
			return {
芊里 已提交
41
				avatarUrl: '/static/uni-center/logo.png',
L
213  
linju 已提交
42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63
				gridList: [{
						"text": "文字1",
						"icon": "chat"
					},
					{
						"text": "文字2",
						"icon": "cloud-upload"
					},
					{
						"text": "文字3",
						"icon": "contact"
					},
					{
						"text": "文字4",
						"icon": "download"
					},
					{
						"text": "文字5",
						"icon": "paperplane"
					}
				],
				ucenterList: [
芊里 已提交
64 65 66 67 68 69 70
					[
						// #ifdef APP-PLUS
						{
							title: '去评分',
							event: 'gotoMarket'
						},
						// #endif
L
123  
linju 已提交
71 72
						{
							title: '阅读过的文章',
芊里 已提交
73
							to: '/uni_modules/uni-news-favorite/pages/uni-news-favorite/list',
L
123  
linju 已提交
74 75
						}, {
							title: '我的积分',
芊里 已提交
76 77 78 79
							to: '',
							event: 'getScore'
						}
					],
L
213  
linju 已提交
80
					[{
L
123  
linju 已提交
81 82
						title: '问题与反馈',
						to: '/uni_modules/uni-feedback/pages/opendb-feedback/list' // /pages/ucenter/uni-feedback/uni-feedback uni_modules/uni-feedback/pages/opendb-feedback/list
DCloud_JSON's avatar
DCloud_JSON 已提交
83 84 85
					}, {
						title: '设置',
						to: '/pages/ucenter/settings/settings'
86 87
					}],
					[{
DCloud_JSON's avatar
123  
DCloud_JSON 已提交
88 89
						title: '关于',
						to: '/pages/ucenter/about/about'
L
123  
linju 已提交
90
					}]
L
213  
linju 已提交
91 92 93
				]
			}
		},
94
		onLoad() {
芊里 已提交
95
			//#ifdef APP-PLUS
96
			this.ucenterList[this.ucenterList.length - 2].unshift({
芊里 已提交
97 98 99 100 101
				title: '检查更新',
				rightText: this.appVersion.version + '-' + this.appVersion.versionCode,
				event: 'checkVersion',
				showBadge: this.appVersion.hasNew
			})
芊里 已提交
102
			//#endif
L
123  
linju 已提交
103
		},
L
213  
linju 已提交
104 105 106 107
		computed: {
			...mapGetters({
				userInfo: 'user/info',
				login: 'user/hasLogin'
芊里 已提交
108 109
			})
			// #ifdef APP-PLUS
110 111
			,
			appVersion() {
芊里 已提交
112 113
				return getApp().appVersion
			}
DCloud_JSON's avatar
DCloud_JSON 已提交
114 115 116 117
			// #endif
			,appConfig(){
				return getApp().config
			}
L
213  
linju 已提交
118
		},
119 120 121
		methods: {
			...mapMutations({
				setUserInfo: 'user/login'
122
			}),
L
123  
linju 已提交
123
			toSettings() {
124
				uni.navigateTo({
L
123  
linju 已提交
125
					url: "/pages/ucenter/settings/settings"
126
				})
L
123  
linju 已提交
127
			},
L
213  
linju 已提交
128 129 130 131 132 133 134 135
			/**
			 * 个人中心项目列表点击事件
			 */
			ucenterListClick(item) {
				if (!item.to && item.event) {
					this[item.event]();
				}
			},
芊里 已提交
136
			async checkVersion() {
137 138 139 140 141 142 143
				let res = await callCheckVersion()
				console.log(res);
				if (res.result.code == 0) {
					uni.showToast({
						title: res.result.message,
						icon: 'none'
					});
DCloud_JSON's avatar
123  
DCloud_JSON 已提交
144
				}
L
123  
linju 已提交
145
				checkUpdate()
L
213  
linju 已提交
146
			},
147 148 149 150
			toUserInfo() {
				uni.navigateTo({
					url: '/pages/ucenter/edit/edit'
				})
151
			},
L
123  
linju 已提交
152
			tapGrid(index) {
153
				uni.showToast({
L
123  
linju 已提交
154
					title: '你点击了,第' + (index + 1) + '',
155 156
					icon: 'none'
				});
157 158 159 160
			},
			/**
			 * 去应用市场评分
			 */
芊里 已提交
161
			gotoMarket() {
DCloud_JSON's avatar
DCloud_JSON 已提交
162
				// #ifdef APP-PLUS
163 164
				if (uni.getSystemInfoSync().platform == "ios") {
					// 这里填写appstore应用id
DCloud_JSON's avatar
DCloud_JSON 已提交
165
					let appstoreid = this.appConfig.marketId.ios;// 'id1417078253';
L
123  
linju 已提交
166
					plus.runtime.openURL("itms-apps://" + 'itunes.apple.com/cn/app/wechat/' + appstoreid + '?mt=8');
167 168 169
				}
				if (uni.getSystemInfoSync().platform == "android") {
					var Uri = plus.android.importClass("android.net.Uri");
DCloud_JSON's avatar
DCloud_JSON 已提交
170
					var uri = Uri.parse("market://details?id=" + this.appConfig.marketId.android);
L
123  
linju 已提交
171 172 173 174
					var Intent = plus.android.importClass('android.content.Intent');
					var intent = new Intent(Intent.ACTION_VIEW, uri);
					var main = plus.android.runtimeMainActivity();
					main.startActivity(intent);
175 176
				}
				// #endif
芊里 已提交
177 178 179 180 181 182 183 184 185 186 187 188
			},
			/**
			 * 获取积分信息
			 */
			getScore() {
				if (!this.userInfo) return uni.showToast({
					title: '请登录后查看积分',
					icon: 'none'
				});
				uni.showLoading({
					mask: true
				})
芊里 已提交
189
				db.collection(dbCollectionName).where('user_id == $env.uid').field('score,balance').get().then((res) => {
芊里 已提交
190
					const data = res.result.data[0];
191
					let msg = '';
芊里 已提交
192
					msg = data ? ('当前积分为' + data.balance) : '当前无积分';
芊里 已提交
193
					uni.showToast({
芊里 已提交
194
						title: msg,
芊里 已提交
195 196 197 198 199
						icon: 'none'
					});
				}).finally(() => {
					uni.hideLoading()
				})
L
213  
linju 已提交
200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216
			}
		}
	}
</script>

<style>
	/* #ifndef APP-PLUS-NVUE */
	page {
		background-color: #f8f8f8;
	}
	/* #endif*/

	.center {
		flex: 1;
		flex-direction: column;
		background-color: #f8f8f8;
	}
L
213  
linju 已提交
217 218
	.userInfo {
		width: 750rpx;
219
		padding: 20rpx;
L
123  
linju 已提交
220
		padding-top: 50px;
L
213  
linju 已提交
221
		background-color: #2F85FC;
L
213  
linju 已提交
222
		flex-direction: column;
L
213  
linju 已提交
223 224 225
		align-items: center;
	}
	.logo-img {
L
213  
linju 已提交
226 227
		width: 150rpx;
		height: 150rpx;
228
		border-radius: 150rpx;
L
213  
linju 已提交
229
		border: solid 1px #FFFFFF;
L
213  
linju 已提交
230 231
	}
	.logo-title {
L
213  
linju 已提交
232
		height: 150rpx;
L
213  
linju 已提交
233 234 235 236 237 238 239
		flex: 1;
		align-items: center;
		justify-content: space-between;
		flex-direction: row;
	}

	.uer-name {
L
213  
linju 已提交
240 241 242
		height: 60rpx;
		line-height: 60rpx;
		font-size: 38rpx;
L
213  
linju 已提交
243 244
		color: #FFFFFF;
	}
245
	.center-list {
L
213  
linju 已提交
246 247 248 249
		margin-bottom: 30rpx;
		background-color: #f9f9f9;
	}
	.center-list-cell {
250
		width: 750rpx;
L
213  
linju 已提交
251 252 253
		background-color: #007AFF;
		height: 40rpx;
	}
L
123  
linju 已提交
254
	.grid {
255
		background-color: #FFFFFF;
L
123  
linju 已提交
256
		margin: 25rpx 0;
L
213  
linju 已提交
257
	}
L
123  
linju 已提交
258

L
213  
linju 已提交
259 260 261 262 263 264 265 266
	.uni-grid .text {
		font-size: 26rpx;
		color: #817f82;
	}

	.uni-grid .item /deep/ .uni-grid-item__box {
		justify-content: center;
		align-items: center;
267 268
	}

L
123  
linju 已提交
269 270 271

	/*修改边线粗细示例*/
	/* #ifndef APP-NVUE */
272
	.center-list /deep/ .uni-list--border:after,
L
123  
linju 已提交
273 274
	.center-list /deep/ .uni-list--border-top,
	.center-list /deep/ .uni-list--border-bottom {
275 276 277
		-webkit-transform: scaleY(0.2);
		transform: scaleY(0.2);
	}
L
123  
linju 已提交
278 279 280 281 282 283 284 285 286 287 288 289 290 291 292 293 294 295 296 297 298 299

	/* #endif */
	.item-footer {
		flex-direction: row;
		align-items: center;
	}

	.item-footer-text {
		color: #999;
		font-size: 24rpx;
		padding-right: 10rpx;
	}

	.item-footer-badge {
		width: 20rpx;
		height: 20rpx;
		/* #ifndef APP-NVUE */
		border-radius: 50%;
		/* #endif */
		/* #ifdef APP-NVUE */
		border-radius: 10rpx;
		/* #endif */
300
		background-color: #DD524D;
L
123  
linju 已提交
301
	}
302
</style>