Просмотр исходного кода

:zap: 增加个人信息修改、头像上传、密码更新功能

smallchill 6 лет назад
Родитель
Сommit
8ef6ea2ab2
3 измененных файлов с 142 добавлено и 98 удалено
  1. 29 9
      src/api/system/user.js
  2. 71 73
      src/const/user/info.js
  3. 42 16
      src/views/user/info.vue

+ 29 - 9
src/api/system/user.js

@@ -1,14 +1,5 @@
 import request from '@/router/axios';
 
-export const resetPassword = (userIds) => {
-  return request({
-    url: '/api/blade-user/reset-password',
-    method: 'post',
-    params: {
-      userIds,
-    }
-  })
-}
 export const getList = (current, size, params) => {
   return request({
     url: '/api/blade-user/list',
@@ -55,3 +46,32 @@ export const getUser = (id) => {
     }
   })
 }
+
+export const getUserInfo = () => {
+  return request({
+    url: '/api/blade-user/info',
+    method: 'get',
+  })
+}
+
+export const resetPassword = (userIds) => {
+  return request({
+    url: '/api/blade-user/reset-password',
+    method: 'post',
+    params: {
+      userIds,
+    }
+  })
+}
+
+export const updatePassword = (oldPassword, newPassword, newPassword1) => {
+  return request({
+    url: '/api/blade-user/update-password',
+    method: 'post',
+    params: {
+      oldPassword,
+      newPassword,
+      newPassword1,
+    }
+  })
+}

+ 71 - 73
src/const/user/info.js

@@ -1,74 +1,72 @@
 export default {
-    column: [{
-        label: '个人信息',
-        prop: 'info',
-        option: {
-            submitText: '修改',
-            column: [{
-                label: '头像',
-                type: 'upload',
-                listType: 'picture-img',
-                propsHttp: {
-                    res: 'data.0'
-                },
-                canvasOption: {
-                    text: 'avue',
-                    ratio: 0.1
-                },
-                action: 'https://avueupload.91eic.com/upload/list',
-                tip: '只能上传jpg/png用户头像,且不超过500kb',
-                span: 12,
-                row: true,
-                prop: 'img'
-            }, {
-                label: '姓名',
-                span: 6,
-                row: true,
-                prop: 'name'
-            }, {
-                label: '用户名',
-                span: 12,
-                row: true,
-                prop: 'username'
-            }, {
-                label: '手机号',
-                span: 12,
-                row: true,
-                prop: 'phone'
-            }, {
-                label: '个性签名',
-                prop: 'detail',
-                span: 24,
-                row: true,
-                type: 'textarea',
-                minRows: 5,
-                maxRows: 8,
-            }]
-        }
-    }, {
-        label: '修改密码',
-        prop: 'password',
-        option: {
-            submitText: '修改',
-            column: [{
-                label: '原密码',
-                span: 12,
-                row: true,
-                type: 'password',
-                prop: 'oldpassword'
-            }, {
-                label: '新密码',
-                span: 12,
-                row: true,
-                type: 'password',
-                prop: 'newpassword'
-            }, {
-                label: '确认密码',
-                span: 12,
-                row: true,
-                type: 'password',
-                prop: 'newpasswords'
-            }]
-        }
-    }]
-}
+  column: [{
+    label: '个人信息',
+    prop: 'info',
+    option: {
+      submitText: '修改',
+      column: [{
+        label: '头像',
+        type: 'upload',
+        listType: 'picture-img',
+        propsHttp: {
+          res: 'data',
+          url: 'link',
+        },
+        canvasOption: {
+          text: 'bladex',
+          ratio: 0.1
+        },
+        action: '/api/blade-resource/oss/endpoint/put-file',
+        tip: '只能上传jpg/png用户头像,且不超过500kb',
+        span: 12,
+        row: true,
+        prop: 'avatar'
+      }, {
+        label: '姓名',
+        span: 12,
+        row: true,
+        prop: 'name'
+      }, {
+        label: '用户名',
+        span: 12,
+        row: true,
+        prop: 'realName'
+      }, {
+        label: '手机号',
+        span: 12,
+        row: true,
+        prop: 'phone'
+      }, {
+        label: '邮箱',
+        prop: 'email',
+        span: 12,
+        row: true,
+      }]
+    }
+  }, {
+    label: '修改密码',
+    prop: 'password',
+    option: {
+      submitText: '修改',
+      column: [{
+        label: '原密码',
+        span: 12,
+        row: true,
+        type: 'password',
+        prop: 'oldPassword'
+      }, {
+        label: '新密码',
+        span: 12,
+        row: true,
+        type: 'password',
+        prop: 'newPassword'
+      }, {
+        label: '确认密码',
+        span: 12,
+        row: true,
+        type: 'password',
+        prop: 'newPassword1'
+      }]
+    }
+  }]
+}

+ 42 - 16
src/views/user/info.vue

@@ -11,6 +11,8 @@
 
 <script>
   import option from "@/const/user/info";
+  import {getUserInfo, update, updatePassword} from "@/api/system/user";
+
 
   export default {
     data() {
@@ -25,25 +27,49 @@
     },
     methods: {
       handleSubmit() {
-        this.$message({
-          message: this.form,
-          type: "success"
-        });
+        if (this.type === "info") {
+          update(this.form).then(res => {
+            if (res.data.success) {
+              this.$message({
+                type: "success",
+                message: "修改信息成功!"
+              });
+            } else {
+              this.$message({
+                type: "error",
+                message: res.data.msg
+              });
+            }
+          })
+        } else {
+          updatePassword(this.form.oldPassword, this.form.newPassword, this.form.newPassword1).then(res => {
+            if (res.data.success) {
+              this.$message({
+                type: "success",
+                message: "修改密码成功!"
+              });
+            } else {
+              this.$message({
+                type: "error",
+                message: res.data.msg
+              });
+            }
+          })
+        }
       },
       handleWitch() {
         if (this.type === "info") {
-          this.form = {
-            username: "smallwei",
-            name: "smallwei",
-            phone: "1888888888888",
-            detail: "这是一个个性签名"
-          };
-        } else if (this.type === "password") {
-          this.form = {
-            oldpassword: 11111111,
-            newpassword: 22222222,
-            newpasswords: 22222222
-          };
+          getUserInfo().then(res => {
+            const user = res.data.data;
+            this.form = {
+              id: user.id,
+              avatar: user.avatar,
+              name: user.name,
+              realName: user.realName,
+              phone: user.phone,
+              email: user.email,
+            }
+          });
         }
       },
       handleChange(item) {