326 lines
		
	
	
		
			12 KiB
		
	
	
	
		
			Vue
		
	
	
			
		
		
	
	
			326 lines
		
	
	
		
			12 KiB
		
	
	
	
		
			Vue
		
	
	
| <template>
 | |
| 	<view>
 | |
| 		<form @submit="formSubmit" report-submit='true'>
 | |
| 			<view class='personal-data pad30'>
 | |
| 				<view class='list borRadius14'>
 | |
| 					<view class="item acea-row row-between-wrapper">
 | |
| 						<view>头像</view>
 | |
| 						<view class="pictrue" @click.stop='uploadpic'>
 | |
| 							<image :src='newAvatar ? newAvatar : userInfo.avatar'></image>
 | |
| 							<image src='../../../static/images/alter.png' class="alter"></image>
 | |
| 						</view>
 | |
| 					</view>
 | |
| 					<view class='item acea-row row-between-wrapper'>
 | |
| 						<view>昵称</view>
 | |
| 						<view class='input'>
 | |
|               <input type='text' name='nickname' :value='userInfo.nickname' />
 | |
|             </view>
 | |
| 					</view>
 | |
| 					<view class='item acea-row row-between-wrapper'>
 | |
| 						<view>手机号码</view>
 | |
| 						<navigator url="/pages/users/app_login/index" hover-class="none" class="input"
 | |
|                        v-if="!userInfo.mobile">
 | |
|               点击绑定手机号 <text class="iconfont icon-xiangyou" />
 | |
| 						</navigator>
 | |
| 						<navigator url="/pages/users/user_phone/index" hover-class="none" class="input" v-else>
 | |
| 							<view class='input acea-row row-between-wrapper'>
 | |
| 								<input type='text' disabled='true' name='phone' :value='userInfo.mobile' class='id' />
 | |
| 								<text class='iconfont icon-xiangyou'></text>
 | |
| 							</view>
 | |
| 						</navigator>
 | |
| 					</view>
 | |
| 					<!-- #ifdef MP -->
 | |
| 					<view class='item acea-row row-between-wrapper'>
 | |
| 						<view>权限设置</view>
 | |
| 						<view class="input" @click="Setting">
 | |
| 							点击管理<text class="iconfont icon-xiangyou"></text>
 | |
| 						</view>
 | |
| 					</view>
 | |
| 					<!-- #endif -->
 | |
| 					<view class="item acea-row row-between-wrapper" v-if="userInfo.mobile">
 | |
| 						<view>密码</view>
 | |
| 						<navigator url="/pages/users/user_pwd_edit/index" hover-class="none" class="input">
 | |
| 							点击修改密码<text class="iconfont icon-xiangyou"></text>
 | |
| 						</navigator>
 | |
| 					</view>
 | |
| 				</view>
 | |
| 				<button class='modifyBnt bg-color' formType="submit">保存修改</button>
 | |
| 				<!-- #ifdef H5 -->
 | |
| 				<view class="logOut cart-color acea-row row-center-wrapper" @click="outLogin"
 | |
| 					v-if="!this.$wechat.isWeixin()">退出登录</view>
 | |
| 				<!-- #endif -->
 | |
| 			</view>
 | |
| 		</form>
 | |
| 	</view>
 | |
| </template>
 | |
| 
 | |
| <script>
 | |
| 	import { toLogin } from '@/libs/login.js';
 | |
| 	import { mapGetters } from "vuex";
 | |
|   import * as UserApi from '@/api/member/user.js';
 | |
|   import * as AuthApi from '@/api/member/auth.js';
 | |
|   export default {
 | |
| 		components: {},
 | |
| 		data() {
 | |
| 			return {
 | |
| 				memberInfo: {},
 | |
| 				loginType: 'h5', //app.globalData.loginType
 | |
| 				newAvatar: '',
 | |
| 			};
 | |
| 		},
 | |
| 		computed: mapGetters(['isLogin', 'userInfo']),
 | |
| 		onLoad() {
 | |
| 			if (!this.isLogin) {
 | |
| 				toLogin();
 | |
| 			}
 | |
| 		},
 | |
| 		methods: {
 | |
| 			/**
 | |
| 			 * 小程序设置
 | |
| 			 */
 | |
| 			Setting: function() {
 | |
| 				uni.openSetting({
 | |
| 					success: function(res) {
 | |
| 						console.log(res.authSetting)
 | |
| 					}
 | |
| 				});
 | |
| 			},
 | |
| 			/**
 | |
| 			 * 退出登录
 | |
| 			 */
 | |
| 			outLogin: function() {
 | |
| 				if (this.loginType === 'h5') {
 | |
| 					uni.showModal({
 | |
| 						title: '提示',
 | |
| 						content: '确认退出登录?',
 | |
| 						success: res => {
 | |
| 							if (!res.confirm) {
 | |
|                 console.log('用户点击取消');
 | |
|                 return
 | |
|               }
 | |
|               AuthApi.logout().then(res => {
 | |
|                 this.$store.commit("LOGOUT");
 | |
|                 uni.reLaunch({
 | |
|                   url: '/pages/index/index'
 | |
|                 });
 | |
|               }).catch(err => {
 | |
|                 console.log(err);
 | |
|               });
 | |
| 						}
 | |
| 					});
 | |
| 				}
 | |
| 			},
 | |
| 			/**
 | |
| 			 * 上传文件
 | |
| 			 */
 | |
| 			uploadpic: function() {
 | |
|         this.$util.uploadImageOne({}, res => {
 | |
|           this.newAvatar = res.data;
 | |
|         });
 | |
| 			},
 | |
| 
 | |
| 			/**
 | |
| 			 * 提交修改
 | |
| 			 */
 | |
| 			formSubmit: function(e) {
 | |
| 				const formData = e.detail.value
 | |
| 				if (!formData.nickname) {
 | |
|           return this.$util.Tips({
 | |
|             title: '用户姓名不能为空'
 | |
|           });
 | |
|         }
 | |
|         UserApi.updateUser({
 | |
|           nickname: formData.nickname,
 | |
|           avatar: this.newAvatar ? this.newAvatar : this.userInfo.avatar
 | |
|         }).then(res => {
 | |
|           // 刷新用户信息
 | |
|           this.$store.dispatch('USERINFO');
 | |
|           // 提示
 | |
| 					return this.$util.Tips({
 | |
| 						title: '保存成功',
 | |
| 						icon: 'success'
 | |
| 					}, {
 | |
| 						tab: 3,
 | |
| 						url: 1
 | |
| 					});
 | |
| 				}).catch(msg => {
 | |
| 					return this.$util.Tips({
 | |
| 						title: msg || '保存失败,您并没有修改'
 | |
| 					});
 | |
| 				});
 | |
| 			}
 | |
| 		}
 | |
| 	}
 | |
| </script>
 | |
| <style scoped lang="scss">
 | |
| 	.personal-data .wrapper {
 | |
| 		margin: 10rpx 0;
 | |
| 		background-color: #fff;
 | |
| 		padding: 36rpx 30rpx 13rpx 30rpx;
 | |
| 	}
 | |
| 
 | |
| 	.personal-data .wrapper .title {
 | |
| 		margin-bottom: 30rpx;
 | |
| 		font-size: 32rpx;
 | |
| 		color: #282828;
 | |
| 	}
 | |
| 
 | |
| 	.personal-data .wrapper .wrapList .item {
 | |
| 		width: 690rpx;
 | |
| 		height: 160rpx;
 | |
| 		background-color: #f8f8f8;
 | |
| 		border-radius: 20rpx;
 | |
| 		margin-bottom: 22rpx;
 | |
| 		padding: 0 30rpx;
 | |
| 		position: relative;
 | |
| 		border: 2rpx solid #f8f8f8;
 | |
| 		box-sizing: border-box;
 | |
| 	}
 | |
| 
 | |
| 	.personal-data .wrapper .wrapList .item.on {
 | |
| 		border-color: $theme-color;
 | |
| 		border-radius: 20rpx;
 | |
| 		background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAArIAAACgCAYAAADw+I85AAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyhpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuNi1jMTQ1IDc5LjE2MzQ5OSwgMjAxOC8wOC8xMy0xNjo0MDoyMiAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENDIDIwMTkgKE1hY2ludG9zaCkiIHhtcE1NOkluc3RhbmNlSUQ9InhtcC5paWQ6M0QzNkY3NzlCNzJCMTFFOTgyNEU4QzhGQTRFRUY2REQiIHhtcE1NOkRvY3VtZW50SUQ9InhtcC5kaWQ6M0QzNkY3N0FCNzJCMTFFOTgyNEU4QzhGQTRFRUY2REQiPiA8eG1wTU06RGVyaXZlZEZyb20gc3RSZWY6aW5zdGFuY2VJRD0ieG1wLmlpZDozRDM2Rjc3N0I3MkIxMUU5ODI0RThDOEZBNEVFRjZERCIgc3RSZWY6ZG9jdW1lbnRJRD0ieG1wLmRpZDozRDM2Rjc3OEI3MkIxMUU5ODI0RThDOEZBNEVFRjZERCIvPiA8L3JkZjpEZXNjcmlwdGlvbj4gPC9yZGY6UkRGPiA8L3g6eG1wbWV0YT4gPD94cGFja2V0IGVuZD0iciI/Pn3rJMAAAArUSURBVHja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");
 | |
| 		background-size: 100% 100%;
 | |
| 		background-color: #fff9f9;
 | |
| 		background-repeat: no-repeat;
 | |
| 	}
 | |
| 
 | |
| 	.personal-data .wrapper .wrapList .item .picTxt {
 | |
| 		width: 445rpx;
 | |
| 	}
 | |
| 
 | |
| 	.personal-data .wrapper .wrapList .item .picTxt .pictrue {
 | |
| 		width: 96rpx;
 | |
| 		height: 96rpx;
 | |
| 		position: relative;
 | |
| 	}
 | |
| 
 | |
| 	.personal-data .wrapper .wrapList .item .picTxt .pictrue image {
 | |
| 		width: 100%;
 | |
| 		height: 100%;
 | |
| 		border-radius: 50%;
 | |
| 	}
 | |
| 
 | |
| 	.personal-data .wrapper .wrapList .item .picTxt .pictrue .alter {
 | |
| 		width: 30rpx;
 | |
| 		height: 30rpx;
 | |
| 		border-radius: 50%;
 | |
| 		position: absolute;
 | |
| 		bottom: 0;
 | |
| 		right: 0;
 | |
| 	}
 | |
| 
 | |
| 	.personal-data .wrapper .wrapList .item .picTxt .text {
 | |
| 		width: 325rpx;
 | |
| 	}
 | |
| 
 | |
| 	.personal-data .wrapper .wrapList .item .picTxt .text .name {
 | |
| 		width: 100%;
 | |
| 		font-size: 30rpx;
 | |
| 		color: #282828;
 | |
| 	}
 | |
| 
 | |
| 	.personal-data .wrapper .wrapList .item .picTxt .text .phone {
 | |
| 		font-size: 24rpx;
 | |
| 		color: #999;
 | |
| 		margin-top: 10rpx;
 | |
| 	}
 | |
| 
 | |
| 	.personal-data .wrapper .wrapList .item .bnt {
 | |
| 		font-size: 24rpx;
 | |
| 		background-color: #fff;
 | |
| 		border-radius: 27rpx;
 | |
| 		width: 140rpx;
 | |
| 		height: 54rpx;
 | |
| 		border: 2rpx solid $theme-color;
 | |
| 	}
 | |
| 
 | |
| 	.personal-data .wrapper .wrapList .item .currentBnt {
 | |
| 		position: absolute;
 | |
| 		right: 0;
 | |
| 		top: 0;
 | |
| 		font-size: 26rpx;
 | |
| 		background-color: rgba(233, 51, 35, 0.1);
 | |
| 		width: 140rpx;
 | |
| 		height: 48rpx;
 | |
| 		border-radius: 0 20rpx 0 20rpx;
 | |
| 	}
 | |
| 
 | |
| 	.personal-data .list {
 | |
| 		margin-top: 30rpx;
 | |
| 		background-color: #fff;
 | |
| 	}
 | |
| 
 | |
| 	.personal-data .list .item {
 | |
| 		border-bottom: 1rpx solid #f2f2f2;
 | |
| 		padding: 24rpx;
 | |
| 		font-size: 32rpx;
 | |
| 		color: #282828;
 | |
| 	}
 | |
| 
 | |
| 	.personal-data .list .item .phone {
 | |
| 		width: 160rpx;
 | |
| 		height: 56rpx;
 | |
| 		font-size: 24rpx;
 | |
| 		color: #fff;
 | |
| 		line-height: 56rpx;
 | |
| 		border-radius: 32rpx
 | |
| 	}
 | |
| 
 | |
| 	.personal-data .list .item .pictrue {
 | |
| 		width: 88rpx;
 | |
| 		height: 88rpx;
 | |
| 		position: relative;
 | |
| 	}
 | |
| 
 | |
| 	.personal-data .list .item .pictrue image {
 | |
| 		width: 100%;
 | |
| 		height: 100%;
 | |
| 		border-radius: 50%;
 | |
| 	}
 | |
| 
 | |
| 	.personal-data .list .item .pictrue .alter {
 | |
| 		width: 30rpx;
 | |
| 		height: 30rpx;
 | |
| 		border-radius: 50%;
 | |
| 		position: absolute;
 | |
| 		bottom: 0;
 | |
| 		right: 0;
 | |
| 	}
 | |
| 
 | |
| 	.personal-data .list .item .input {
 | |
| 		width: 415rpx;
 | |
| 		text-align: right;
 | |
| 		color: #868686;
 | |
| 	}
 | |
| 
 | |
| 	.personal-data .list .item .input .id {
 | |
| 		width: 365rpx;
 | |
| 	}
 | |
| 
 | |
| 	.personal-data .list .item .input .iconfont {
 | |
| 		font-size: 35rpx;
 | |
| 	}
 | |
| 
 | |
| 	.personal-data .modifyBnt {
 | |
| 		font-size: 32rpx;
 | |
| 		color: #fff;
 | |
| 		width: 690rpx;
 | |
| 		height: 90rpx;
 | |
| 		border-radius: 50rpx;
 | |
| 		text-align: center;
 | |
| 		line-height: 90rpx;
 | |
| 		margin: 76rpx auto 0 auto;
 | |
| 	}
 | |
| 
 | |
| 	.personal-data .logOut {
 | |
| 		font-size: 32rpx;
 | |
| 		text-align: center;
 | |
| 		width: 690rpx;
 | |
| 		height: 90rpx;
 | |
| 		border-radius: 45rpx;
 | |
| 		margin: 30rpx auto 0 auto;
 | |
| 	}
 | |
| </style>
 |