From a1d7e81859f554f3a53680cc35f0f49bf1f77098 Mon Sep 17 00:00:00 2001
From: wwf <1971391498@qq.com>
Date: 星期四, 14 五月 2026 14:37:02 +0800
Subject: [PATCH] 导入项目

---
 src/views/Profile/Index.vue |   67 +++++++++++++++++++++++++++++++++
 1 files changed, 67 insertions(+), 0 deletions(-)

diff --git a/src/views/Profile/Index.vue b/src/views/Profile/Index.vue
new file mode 100644
index 0000000..29b2694
--- /dev/null
+++ b/src/views/Profile/Index.vue
@@ -0,0 +1,67 @@
+<template>
+  <!-- TODO @鑺嬭壙锛氬彲浼樺寲锛屽鏍� vben 鐗堟湰 -->
+  <div class="flex">
+    <el-card class="user w-1/3" shadow="hover">
+      <template #header>
+        <div class="card-header">
+          <span>{{ t('profile.user.title') }}</span>
+        </div>
+      </template>
+      <ProfileUser ref="profileUserRef" />
+    </el-card>
+    <el-card class="user ml-3 w-2/3" shadow="hover">
+      <div>
+        <el-tabs v-model="activeName" class="profile-tabs" style="height: 400px" tab-position="top">
+          <el-tab-pane :label="t('profile.info.basicInfo')" name="basicInfo">
+            <BasicInfo @success="handleBasicInfoSuccess" />
+          </el-tab-pane>
+          <el-tab-pane :label="t('profile.info.resetPwd')" name="resetPwd">
+            <ResetPwd />
+          </el-tab-pane>
+          <el-tab-pane :label="t('profile.info.userSocial')" name="userSocial">
+            <UserSocial v-model:activeName="activeName" />
+          </el-tab-pane>
+        </el-tabs>
+      </div>
+    </el-card>
+  </div>
+</template>
+<script lang="ts" setup>
+import { BasicInfo, ProfileUser, ResetPwd, UserSocial } from './components'
+
+const { t } = useI18n()
+defineOptions({ name: 'Profile' })
+const activeName = ref('basicInfo')
+const profileUserRef = ref()
+
+// 澶勭悊鍩烘湰淇℃伅鏇存柊鎴愬姛
+const handleBasicInfoSuccess = async () => {
+  await profileUserRef.value?.refresh()
+}
+</script>
+<style scoped>
+.user {
+  max-height: 960px;
+  padding: 15px 20px 20px;
+}
+
+.card-header {
+  display: flex;
+  justify-content: center;
+  align-items: center;
+}
+
+:deep(.el-card .el-card__header, .el-card .el-card__body) {
+  padding: 15px !important;
+}
+
+.profile-tabs > .el-tabs__content {
+  padding: 32px;
+  font-weight: 600;
+  color: #6b778c;
+}
+
+.el-tabs--left .el-tabs__content {
+  height: 100%;
+}
+</style>

--
Gitblit v1.8.0