zhou zhou
3 天以前 0a1d91e42e6c5af96e1108e9ebcc37e99eb3b22c
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
<template>
  <ElDrawer
    :model-value="visible"
    title="用户详情"
    size="520px"
    @update:model-value="handleVisibleChange"
  >
    <ElSkeleton :loading="loading" animated :rows="10">
      <ElDescriptions :column="1" border>
        <ElDescriptionsItem label="用户名">{{ displayData.username || '--' }}</ElDescriptionsItem>
        <ElDescriptionsItem label="昵称">{{ displayData.nickname || '--' }}</ElDescriptionsItem>
        <ElDescriptionsItem label="部门">{{ displayData.deptLabel || '--' }}</ElDescriptionsItem>
        <ElDescriptionsItem label="角色">{{ displayData.roleNames || '--' }}</ElDescriptionsItem>
        <ElDescriptionsItem label="状态">{{ statusLabel }}</ElDescriptionsItem>
        <ElDescriptionsItem label="手机号">{{ displayData.phone || '--' }}</ElDescriptionsItem>
        <ElDescriptionsItem label="邮箱">{{ displayData.email || '--' }}</ElDescriptionsItem>
        <ElDescriptionsItem label="真实姓名">{{ displayData.realName || '--' }}</ElDescriptionsItem>
        <ElDescriptionsItem label="身份证号">{{ displayData.idCard || '--' }}</ElDescriptionsItem>
        <ElDescriptionsItem label="工号">{{ displayData.code || '--' }}</ElDescriptionsItem>
        <ElDescriptionsItem label="性别">{{ sexLabel }}</ElDescriptionsItem>
        <ElDescriptionsItem label="创建时间">{{ displayData.createTimeText || '--' }}</ElDescriptionsItem>
        <ElDescriptionsItem label="更新时间">{{ displayData.updateTimeText || '--' }}</ElDescriptionsItem>
        <ElDescriptionsItem label="备注">{{ displayData.memo || '--' }}</ElDescriptionsItem>
      </ElDescriptions>
    </ElSkeleton>
  </ElDrawer>
</template>
 
<script setup>
  import { getUserStatusMeta, normalizeUserListRow } from '../userPage.helpers'
 
  const props = defineProps({
    visible: { required: false, default: false },
    loading: { required: false, default: false },
    userData: { required: false, default: () => ({}) }
  })
 
  const emit = defineEmits(['update:visible'])
 
  const displayData = computed(() => normalizeUserListRow(props.userData))
  const statusLabel = computed(() => getUserStatusMeta(displayData.value.statusBool ?? displayData.value.status).text)
  const sexLabel = computed(() => {
    switch (displayData.value.sex) {
      case 1:
        return '男'
      case 2:
        return '女'
      default:
        return '未知'
    }
  })
 
  const handleVisibleChange = (visible) => {
    emit('update:visible', visible)
  }
</script>