From b016d1eb02dd09fd1ffcd24e4e6ddee72fd1b3d6 Mon Sep 17 00:00:00 2001
From: luxiaotao1123 <t1341870251@163.com>
Date: 星期三, 28 二月 2024 10:27:25 +0800
Subject: [PATCH] #

---
 zy-asrs-flow/src/pages/account/setting/components/base.jsx |  167 +++++++++++++++++++++++++++++++++++--------------------
 1 files changed, 106 insertions(+), 61 deletions(-)

diff --git a/zy-asrs-flow/src/pages/account/setting/components/base.jsx b/zy-asrs-flow/src/pages/account/setting/components/base.jsx
index 3c911a5..54b9c80 100644
--- a/zy-asrs-flow/src/pages/account/setting/components/base.jsx
+++ b/zy-asrs-flow/src/pages/account/setting/components/base.jsx
@@ -1,32 +1,41 @@
-import { UploadOutlined } from '@ant-design/icons';
 import {
   ProForm,
-  ProFormDependency,
-  ProFormFieldSet,
-  ProFormSelect,
   ProFormText,
   ProFormTextArea,
+  ProFormSelect,
+  ProFormDigit
 } from '@ant-design/pro-components';
-import { useRequest } from '@umijs/max';
-import { Button, Input, message, Upload } from 'antd';
+import { Button, Input, message, Upload, Form } from 'antd';
 import React from 'react';
 import useStyles from './index.style';
 import Http from '@/utils/http';
 
 import defaultAvat from '/public/img/defaultAva.png'
 
-const validatorPhone = (rule, value, callback) => {
-  if (!value[0]) {
-    callback('Please input your area code!');
+const handleUpdate = async (val) => {
+  const hide = message.loading('姝e湪鏇存柊');
+  try {
+    const resp = await Http.doPost('api/user/update', val);
+    if (resp.code === 200) {
+      message.success('鏇存柊鎴愬姛');
+      return true;
+    } else {
+      message.error(resp.msg);
+      return false;
+    }
+  } catch (error) {
+    message.error('閰嶇疆澶辫触璇烽噸璇曪紒');
+    return false;
+  } finally {
+    hide();
   }
-  if (!value[1]) {
-    callback('Please input your phone number!');
-  }
-  callback();
 };
 
 const BaseView = () => {
   const { styles } = useStyles();
+  const [loading, setLoading] = React.useState(false);
+  const [currentUser, setCurrentUser] = React.useState({});
+  const [form] = Form.useForm();
 
   const AvatarView = ({ avatar }) => (
     <>
@@ -45,29 +54,33 @@
     </>
   );
 
-  const queryCurrent = async () => {
-    await Http.doGet('api/auth/user');
+  const queryCurrent = () => {
+    setLoading(true);
+    Http.doGetPromise('api/auth/user', {}, (res) => {
+      setLoading(false);
+      setCurrentUser(res.data);
+    }).catch((err) => {
+      console.error(err);
+      setLoading(false);
+    })
   }
 
-  
-
-  const { data: currentUser, loading } = useRequest(() => {
-    return queryCurrent();
-  });
+  React.useEffect(() => {
+    queryCurrent();
+  }, []);
 
   const getAvatarURL = () => {
     if (currentUser) {
       if (currentUser.avatar) {
         return currentUser.avatar;
       }
-      const url = { defaultAvat };
-      return url;
     }
     return defaultAvat;
   };
 
-  const handleFinish = async () => {
-    message.success('鏇存柊鍩烘湰淇℃伅鎴愬姛');
+  const handleFinish = async (values) => {
+    // console.log(values); return
+    handleUpdate(values);
   };
 
   return (
@@ -76,6 +89,7 @@
         <>
           <div className={styles.left}>
             <ProForm
+              form={form}
               layout="vertical"
               onFinish={handleFinish}
               submitter={{
@@ -86,71 +100,102 @@
               }}
               initialValues={{
                 ...currentUser,
-                phone: currentUser?.phone.split('-'),
               }}
               hideRequiredMark
             >
+              <ProFormDigit
+                name="id"
+                disabled
+                hidden={true}
+              />
+              <ProFormText
+                width="md"
+                name="username"
+                label="璐﹀彿"
+                disabled
+                rules={[
+                  {
+                    required: true,
+                    message: '璇疯緭鍏ユ偍鐨勮处鍙�!',
+                  },
+                ]}
+              />
+              <ProFormText
+                width="md"
+                name="nickname"
+                label="鍚嶇О"
+                rules={[
+                  {
+                    required: true,
+                    message: '璇疯緭鍏ユ偍鐨勫悕绉�!',
+                  },
+                ]}
+              />
+              <ProFormSelect
+                width="md"
+                name="sex"
+                label="鎬у埆"
+                colProps={{ md: 12, xl: 12 }}
+                options={[
+                  { label: '鏈煡', value: 0 },
+                  { label: '鐢�', value: 1 },
+                  { label: '濂�', value: 2 },
+                ]}
+              />
+              <ProFormText
+                width="md"
+                name="phone"
+                label="鎵嬫満鍙�"
+                rules={[
+                  {
+                    required: false,
+                    message: '璇疯緭鍏ユ偍鐨勬墜鏈哄彿!',
+                  },
+                ]}
+              />
               <ProFormText
                 width="md"
                 name="email"
                 label="閭"
                 rules={[
                   {
-                    required: true,
+                    required: false,
                     message: '璇疯緭鍏ユ偍鐨勯偖绠�!',
                   },
                 ]}
               />
               <ProFormText
                 width="md"
-                name="name"
-                label="鏄电О"
+                name="realName"
+                label="鐪熷疄濮撳悕"
                 rules={[
                   {
-                    required: true,
-                    message: '璇疯緭鍏ユ偍鐨勬樀绉�!',
+                    required: false,
+                    message: '璇疯緭鍏ユ偍鐨勭湡瀹炲鍚�!',
+                  },
+                ]}
+              />
+              <ProFormText
+                width="md"
+                name="idCard"
+                label="韬唤璇佸彿"
+                rules={[
+                  {
+                    required: false,
+                    message: '璇疯緭鍏ユ偍鐨勮韩浠借瘉鍙�!',
                   },
                 ]}
               />
               <ProFormTextArea
-                name="profile"
+                name="introduction"
                 label="涓汉绠�浠�"
                 rules={[
                   {
-                    required: true,
+                    required: false,
                     message: '璇疯緭鍏ヤ釜浜虹畝浠�!',
                   },
                 ]}
-                placeholder="涓汉绠�浠�"
               />
-
-              <ProFormText
-                width="md"
-                name="address"
-                label="鍦板潃"
-                rules={[
-                  {
-                    required: true,
-                    message: '璇疯緭鍏ユ偍鐨勫湴鍧�!',
-                  },
-                ]}
-              />
-              <ProFormFieldSet
-                name="phone"
-                label="鑱旂郴鐢佃瘽"
-                rules={[
-                  {
-                    required: true,
-                    message: '璇疯緭鍏ユ偍鐨勮仈绯荤數璇�!',
-                  },
-                  {
-                    validator: validatorPhone,
-                  },
-                ]}
-              >
-                <Input className={styles.area_code} />
-                <Input className={styles.phone_number} />
-              </ProFormFieldSet>
             </ProForm>
           </div>
           <div className={styles.right}>

--
Gitblit v1.9.1