From 0ab0d84955180a35d3bb42de612a046aba4e0bbe Mon Sep 17 00:00:00 2001
From: 张含笑 <zhx18749296735@163.com>
Date: Thu, 05 Jun 2025 09:17:40 +0800
Subject: [PATCH] feat:个人中心

---
 src/views/system/userinfo.vue |   33 ++++++++++++++++++++++++++++-----
 src/store/modules/user.js     |    2 +-
 src/option/user/info.js       |   15 +++++++++++++++
 3 files changed, 44 insertions(+), 6 deletions(-)

diff --git a/src/option/user/info.js b/src/option/user/info.js
index b9d4ea9..b8a7ccf 100644
--- a/src/option/user/info.js
+++ b/src/option/user/info.js
@@ -1,6 +1,10 @@
 export default {
   tabs: true,
   tabsActive: 1,
+  // 全局禁用自动填充
+  formAttrs: {
+    autocomplete: 'off'
+  },
   group: [
     {
       label: '个人信息',
@@ -25,14 +29,25 @@
           span: 12,
           row: true,
           prop: 'realName',
+          rules: [
+            { 
+              required: true, 
+              message: '姓名不能为空', 
+              trigger: 'blur' 
+            }
+          ],
+          required: true
+         
         },
         {
           label: '手机号',
           span: 12,
           row: true,
           prop: 'phone',
+         
         },
         {
+          slot: true,
           label: '邮箱',
           prop: 'email',
           span: 12,
diff --git a/src/store/modules/user.js b/src/store/modules/user.js
index 734dfc0..3b6a410 100644
--- a/src/store/modules/user.js
+++ b/src/store/modules/user.js
@@ -39,7 +39,7 @@
     token: getStore({ name: 'token' }) || '',
     refreshToken: getStore({ name: 'refreshToken' }) || '',
     parentDeptInfo: getStore({ name: 'parentDeptInfo' }) || '',
-    defaultAva: defaultAva, // 将图片路径存入 state(可选)
+   
   },
   actions: {
     //根据用户名登录
diff --git a/src/views/system/userinfo.vue b/src/views/system/userinfo.vue
index b798ccc..7e75935 100644
--- a/src/views/system/userinfo.vue
+++ b/src/views/system/userinfo.vue
@@ -2,11 +2,27 @@
   <div>
     <basic-container>
       <avue-form
+        ref="form"
         :option="option"
         v-model="form"
         @tab-click="handleTabClick"
         @submit="handleSubmit"
-      ></avue-form>
+       
+      >
+        <template #email="{ disabled, size }">
+            <el-input
+            id="adfsdafdsf"
+              type="text"
+              :disabled="disabled"
+              :size="size"
+              v-model="form.email"
+              placeholder="请输入邮箱"
+              :readonly="readonly"
+              @focus="readonly = false"
+            >
+            </el-input>
+        </template>
+      </avue-form>
     </basic-container>
   </div>
 </template>
@@ -17,13 +33,14 @@
 import md5 from 'js-md5';
 import func from '@/utils/func';
 import { validatenull } from '@/utils/validate';
-
+import defaultAva from '@/assets/images/defaultava.png';
 export default {
   data() {
     return {
       index: 0,
       option: option,
-      form: {},
+      form: {  },
+      readonly: true
     };
   },
   created() {
@@ -32,7 +49,9 @@
   methods: {
     handleSubmit(form, done) {
       if (this.index === 0) {
-        form.name = form.realName
+        form.name = form.realName;
+        console.log('form, done', form, done);
+
         updateInfo(form).then(
           res => {
             if (res.data.success) {
@@ -80,17 +99,21 @@
       if (this.index === 0) {
         getUserInfo().then(res => {
           const user = res.data.data;
+
           this.form = {
             id: user.id,
-            avatar: user.avatar,
+            avatar: user.avatar ? user.avatar :defaultAva,
             name: user.name,
             realName: user.realName,
             phone: user.phone,
             email: user.email,
           };
+          // console.log('用户信息',user);
+          
         });
       }
     },
+
     handleTabClick(tabs) {
       if (validatenull(tabs.index)) {
         return;

--
Gitblit v1.9.3