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