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/member/user/detail/UserBasicInfo.vue |  165 +++++++++++++++++++++++++++++++++++++++++++++++++++++++
 1 files changed, 165 insertions(+), 0 deletions(-)

diff --git a/src/views/member/user/detail/UserBasicInfo.vue b/src/views/member/user/detail/UserBasicInfo.vue
new file mode 100644
index 0000000..0fe2538
--- /dev/null
+++ b/src/views/member/user/detail/UserBasicInfo.vue
@@ -0,0 +1,165 @@
+<template>
+  <el-card shadow="never">
+    <template #header>
+      <slot name="header"></slot>
+    </template>
+    <el-row v-if="mode === 'member'">
+      <el-col :span="4">
+        <ElAvatar :size="140" :src="user.avatar || undefined" shape="square" />
+      </el-col>
+      <el-col :span="20">
+        <el-descriptions :column="2">
+          <el-descriptions-item>
+            <template #label>
+              <descriptions-item-label icon="ep:user" label="鐢ㄦ埛鍚�" />
+            </template>
+            {{ user.name || '绌�' }}
+          </el-descriptions-item>
+          <el-descriptions-item>
+            <template #label>
+              <descriptions-item-label icon="ep:user" label="鏄电О" />
+            </template>
+            {{ user.nickname }}
+          </el-descriptions-item>
+          <el-descriptions-item label="鎵嬫満鍙�">
+            <template #label>
+              <descriptions-item-label icon="ep:phone" label="鎵嬫満鍙�" />
+            </template>
+            {{ user.mobile }}
+          </el-descriptions-item>
+          <el-descriptions-item>
+            <template #label>
+              <descriptions-item-label icon="fa:mars-double" label="鎬у埆" />
+            </template>
+            <dict-tag :type="DICT_TYPE.SYSTEM_USER_SEX" :value="user.sex" />
+          </el-descriptions-item>
+          <el-descriptions-item>
+            <template #label>
+              <descriptions-item-label icon="ep:location" label="鎵�鍦ㄥ湴" />
+            </template>
+            {{ user.areaName }}
+          </el-descriptions-item>
+          <el-descriptions-item>
+            <template #label>
+              <descriptions-item-label icon="ep:position" label="娉ㄥ唽 IP" />
+            </template>
+            {{ user.registerIp }}
+          </el-descriptions-item>
+          <el-descriptions-item>
+            <template #label>
+              <descriptions-item-label icon="fa:birthday-cake" label="鐢熸棩" />
+            </template>
+            {{ user.birthday ? formatDate(user.birthday as any) : '绌�' }}
+          </el-descriptions-item>
+          <el-descriptions-item>
+            <template #label>
+              <descriptions-item-label icon="ep:calendar" label="娉ㄥ唽鏃堕棿" />
+            </template>
+            {{ user.createTime ? formatDate(user.createTime as any) : '绌�' }}
+          </el-descriptions-item>
+          <el-descriptions-item>
+            <template #label>
+              <descriptions-item-label icon="ep:calendar" label="鏈�鍚庣櫥褰曟椂闂�" />
+            </template>
+            {{ user.loginDate ? formatDate(user.loginDate as any) : '绌�' }}
+          </el-descriptions-item>
+        </el-descriptions>
+      </el-col>
+    </el-row>
+    <template v-if="mode === 'kefu'">
+      <ElAvatar :size="140" :src="user.avatar || undefined" shape="square" />
+      <el-descriptions :column="1" class="kefu-descriptions">
+        <el-descriptions-item>
+          <template #label>
+            <descriptions-item-label icon="ep:user" label="鐢ㄦ埛鍚�" />
+          </template>
+          {{ user.name || '绌�' }}
+        </el-descriptions-item>
+        <el-descriptions-item>
+          <template #label>
+            <descriptions-item-label icon="ep:user" label="鏄电О" />
+          </template>
+          {{ user.nickname }}
+        </el-descriptions-item>
+        <el-descriptions-item>
+          <template #label>
+            <descriptions-item-label icon="ep:phone" label="鎵嬫満鍙�" />
+          </template>
+          {{ user.mobile }}
+        </el-descriptions-item>
+        <el-descriptions-item>
+          <template #label>
+            <descriptions-item-label icon="fa:mars-double" label="鎬у埆" />
+          </template>
+          <dict-tag :type="DICT_TYPE.SYSTEM_USER_SEX" :value="user.sex" />
+        </el-descriptions-item>
+        <el-descriptions-item>
+          <template #label>
+            <descriptions-item-label icon="ep:location" label="鎵�鍦ㄥ湴" />
+          </template>
+          {{ user.areaName }}
+        </el-descriptions-item>
+        <el-descriptions-item>
+          <template #label>
+            <descriptions-item-label icon="ep:position" label="娉ㄥ唽 IP" />
+          </template>
+          {{ user.registerIp }}
+        </el-descriptions-item>
+        <el-descriptions-item>
+          <template #label>
+            <descriptions-item-label icon="fa:birthday-cake" label="鐢熸棩" />
+          </template>
+          {{ user.birthday ? formatDate(user.birthday as any) : '绌�' }}
+        </el-descriptions-item>
+        <el-descriptions-item>
+          <template #label>
+            <descriptions-item-label icon="ep:calendar" label="娉ㄥ唽鏃堕棿" />
+          </template>
+          {{ user.createTime ? formatDate(user.createTime as any) : '绌�' }}
+        </el-descriptions-item>
+        <el-descriptions-item>
+          <template #label>
+            <descriptions-item-label icon="ep:calendar" label="鏈�鍚庣櫥褰曟椂闂�" />
+          </template>
+          {{ user.loginDate ? formatDate(user.loginDate as any) : '绌�' }}
+        </el-descriptions-item>
+      </el-descriptions>
+    </template>
+  </el-card>
+</template>
+<script lang="ts" setup>
+import { DICT_TYPE } from '@/utils/dict'
+import { formatDate } from '@/utils/formatTime'
+import * as UserApi from '@/api/member/user'
+import { DescriptionsItemLabel } from '@/components/Descriptions/index'
+
+withDefaults(defineProps<{ user: UserApi.UserVO; mode?: string }>(), {
+  mode: 'member'
+})
+</script>
+<style lang="scss" scoped>
+.card-header {
+  display: flex;
+  justify-content: space-between;
+  align-items: center;
+}
+
+::v-deep(.kefu-descriptions) {
+  .el-descriptions__cell {
+    display: flex;
+    align-items: center;
+    justify-content: space-between;
+
+    .el-descriptions__label {
+      width: 120px;
+      display: block;
+      text-align: left;
+    }
+
+    .el-descriptions__content {
+      flex: 1;
+      text-align: end;
+    }
+  }
+}
+</style>

--
Gitblit v1.8.0