From f26f29d84e0a68831a6af14dab3eec5500496d2e Mon Sep 17 00:00:00 2001 From: spring <2396852758@qq.com> Date: 星期三, 28 五月 2025 16:48:52 +0800 Subject: [PATCH] 初始化项目 --- pages/sys/user/info.vue | 161 +++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 files changed, 161 insertions(+), 0 deletions(-) diff --git a/pages/sys/user/info.vue b/pages/sys/user/info.vue new file mode 100644 index 0000000..c382afe --- /dev/null +++ b/pages/sys/user/info.vue @@ -0,0 +1,161 @@ +<template> + <view class="wrap"> + <view class="u-m-t-50 u-flex u-flex-col u-text-center"> + <u-avatar size="150" :src="image"></u-avatar> + <u-button size="medium" shape="circle" class="u-m-t-40" + style="font-size:34rpx" @click="chooseAvatar">閫夋嫨澶村儚</u-button> + </view> + <u-form class="form" :model="model" :rules="rules" ref="uForm"> + <u-form-item label="鐢ㄦ埛鍚�" prop="username" label-width="120"> + <u-input placeholder="璇疯緭鍏ョ敤鎴峰悕" v-model="model.username" type="text"></u-input> + </u-form-item> + <u-form-item label="鎵嬫満" prop="phone" label-width="120"> + <u-input placeholder="璇疯緭鍏ユ墜鏈哄彿鐮�" v-model="model.phone" type="text" maxlength="11"></u-input> + </u-form-item> + <u-form-item label="鏄电О" prop="nickname" label-width="120"> + <u-input placeholder="璇疯緭鍏ユ樀绉�" v-model="model.nickname" type="text"></u-input> + </u-form-item> + <u-form-item label="濮撳悕" prop="name" label-width="120"> + <u-input placeholder="璇疯緭鍏ュ鍚�" v-model="model.name" type="text"></u-input> + </u-form-item> + <u-form-item label="閭" prop="email" label-width="120"> + <u-input placeholder="璇疯緭鍏ョ數瀛愰偖绠�" v-model="model.email" type="text"></u-input> + </u-form-item> + <u-form-item label="瀵嗙爜" prop="password" label-width="120"> + <u-input placeholder="璇疯緭鍏ュ瘑鐮�" v-model="model.password" type="text"></u-input> + </u-form-item> + </u-form> + <view class="form-footer"> + <u-button class="btn" type="primary" @click="submit">鎻愪氦</u-button> + <u-button class="btn" type="default" @click="cancel">鍏抽棴</u-button> + </view> + </view> +</template> +<script> +import config from "../../../common/config"; + +/** + * Copyright (c) 2013-Now http://jeesite.com All rights reserved. + */ +export default { + data() { + return { + image: '', + model: { + avatar:undefined, + username:undefined, + phone:undefined, + nickname:undefined, + name:undefined, + email:undefined + }, + rules: { + username: [ + { + required: true, + message: '璇疯緭鍏ュ鍚�', + trigger: 'blur' , + }, + { + min: 2, + max: 32, + message: '濮撳悕闀垮害鍦� 2 鍒� 32 涓瓧绗�', + trigger: ['change', 'blur'], + } + ], + phone: [ + { + validator: (rule, value, callback) => { + return value == '' || this.$u.test.mobile(value); + }, + message: '鎵嬫満鍙风爜涓嶆纭�', + trigger: ['change','blur'], + } + ], + password:[ + { + required: true, + message: '璇疯緭鍏ュ瘑鐮�', + trigger: 'blur' , + }, + ] + }, + avatarBase64: '' + }; + }, + onLoad() { + this.model = this.vuex_user + this.model.password = undefined + this.image = this.vuex_config.baseUrl+this.model.avatar + }, + onReady() { + this.$refs.uForm.setRules(this.rules); + }, + methods: { + chooseAvatar() { + let token = this.vuex_token + let temp = this + uni.chooseImage({ + success: (chooseImageRes) => { + const tempFilePaths = chooseImageRes.tempFilePaths; + uni.uploadFile({ + url: temp.vuex_config.baseUrl+config.adminPath+'/sys-file/upload', + filePath: tempFilePaths[0], + name: 'file', + header: {Authorization:'Bearer '+token}, + success: (res) => { + let result =JSON.parse(res.data) + temp.image = temp.vuex_config.baseUrl+result.data.url + temp.model.avatar = result.data.url + } + }); + } + }); + }, + submit() { + this.$refs.uForm.validate(valid => { + if (valid) { + this.model.userId = this.vuex_userId + this.model.username = this.vuex_username + + //鏇存柊鐢ㄦ埛淇℃伅 + this.$u.api.user.updateUserInfo(this.model).then(res => { + let temp = this + uni.showModal({ + title: '鎻愮ず', + content: '鏇存柊鐢ㄦ埛淇℃伅鎴愬姛,璇烽噸鏂扮櫥褰�.', + showCancel: false, + success: function () { + temp.$u.api.logout().then(res => { + //娓呯┖瀛樺偍淇℃伅 + temp.$u.vuex('vuex_token', '') + temp.$u.vuex('vuex_refresh_token', '') + temp.$u.vuex('vuex_username', '') + temp.$u.vuex('vuex_userId', '') + temp.$u.vuex('vuex_client_id', '') + temp.$u.vuex('vuex_user', {}) + + setTimeout(() => { + uni.reLaunch({ + url: '/pages/sys/login/index' + }); + }, 500); + + }); + } + }); + }) + } else { + this.$u.toast('鎮ㄥ~鍐欑殑淇℃伅鏈夎锛岃鏍规嵁鎻愮ず淇銆�'); + } + }); + }, + cancel() { + uni.navigateBack(); + } + } +}; +</script> +<style lang="scss"> + +</style> -- Gitblit v1.9.3