diff --git a/react-ui/src/pages/User/Center/index.tsx b/react-ui/src/pages/User/Center/index.tsx
index 7272fa3..4028e11 100644
--- a/react-ui/src/pages/User/Center/index.tsx
+++ b/react-ui/src/pages/User/Center/index.tsx
@@ -60,122 +60,89 @@
 
 
   //  渲染用户信息
+  // @ts-ignore
   const renderUserInfo = ({
-    userName,
-    phonenumber,
-    email,
-    sex,
-    dept,
-    uploadCount,
-    downloadCount,
-    rateCount,
-    score,
-  }: Partial<API.CurrentUser>) => {
+                            userName,
+                            phonenumber,
+                            email,
+                            sex,
+                            dept,
+                            uploadCount,
+                            downloadCount,
+                            rateCount,
+                            score,
+                            level,
+                          }: Partial<API.CurrentUser>) => {
     return (
       <List>
         <List.Item>
           <div>
-            <UserOutlined
-              style={{
-                marginRight: 8,
-              }}
-            />
+            <UserOutlined style={{ marginRight: 8 }} />
             用户名
           </div>
           <div>{userName}</div>
         </List.Item>
         <List.Item>
           <div>
-            <ManOutlined
-              style={{
-                marginRight: 8,
-              }}
-            />
+            <ManOutlined style={{ marginRight: 8 }} />
             性别
           </div>
           <div>{sex === '1' ? '女' : '男'}</div>
         </List.Item>
         <List.Item>
           <div>
-            <MobileOutlined
-              style={{
-                marginRight: 8,
-              }}
-            />
+            <MobileOutlined style={{ marginRight: 8 }} />
             电话
           </div>
           <div>{phonenumber}</div>
         </List.Item>
         <List.Item>
           <div>
-            <MailOutlined
-              style={{
-                marginRight: 8,
-              }}
-            />
+            <MailOutlined style={{ marginRight: 8 }} />
             邮箱
           </div>
           <div>{email}</div>
         </List.Item>
         <List.Item>
           <div>
-            <MailOutlined
-              style={{
-                marginRight: 8,
-              }}
-            />
+            <MailOutlined style={{ marginRight: 8 }} />
             上传量
           </div>
           <div>{uploadCount}</div>
         </List.Item>
         <List.Item>
           <div>
-            <MailOutlined
-              style={{
-                marginRight: 8,
-              }}
-            />
+            <MailOutlined style={{ marginRight: 8 }} />
             下载量
           </div>
           <div>{downloadCount}</div>
         </List.Item>
         <List.Item>
           <div>
-            <MailOutlined
-              style={{
-                marginRight: 8,
-              }}
-            />
+            <MailOutlined style={{ marginRight: 8 }} />
             分享率
           </div>
           <div>{rateCount}</div>
         </List.Item>
-        {/* <List.Item>
-          <div>
-            <ClusterOutlined
-              style={{
-                marginRight: 8,
-              }}
-            />
-            部门
-          </div>
-          <div>{dept?.deptName}</div>
-        </List.Item> */}
         <List.Item>
           <div>
-            <MailOutlined
-              style={{
-                marginRight: 8,
-              }}
-            />
+            <MailOutlined style={{ marginRight: 8 }} />
             积分
           </div>
           <div>{score}</div>
         </List.Item>
+        <List.Item>
+          <div>
+            <MailOutlined style={{ marginRight: 8 }} />
+            用户等级
+          </div>
+          <div>{level}</div>
+        </List.Item>
       </List>
     );
   };
 
+
   // 渲染tab切换
   const renderChildrenByTabKey = (tabValue: tabKeyType) => {
     if (tabValue === 'base') {
@@ -205,6 +172,8 @@
                 <div className={styles.avatarHolder} onClick={() => { setCropperModalOpen(true) }}>
                   <img alt="" src={currentUser.avatar} />
                 </div>
+
+                  ``  `````````````````````````````````1
                 {renderUserInfo(currentUser)}
                 <Divider dashed />
                 {/* <div className={styles.team}>
