123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899 |
- <template>
- <div>
- <div class="text-center">
- <UserAvatar :img="userInfo?.avatar" />
- </div>
- <ul class="list-group list-group-striped">
- <li class="list-group-item">
- <Icon class="mr-5px" icon="ep:user" />
- {{ t('profile.user.username') }}
- <div class="pull-right">{{ userInfo?.username }}</div>
- </li>
- <li class="list-group-item">
- <Icon class="mr-5px" icon="ep:phone" />
- {{ t('profile.user.mobile') }}
- <div class="pull-right">{{ userInfo?.mobile }}</div>
- </li>
- <li class="list-group-item">
- <Icon class="mr-5px" icon="fontisto:email" />
- {{ t('profile.user.email') }}
- <div class="pull-right">{{ userInfo?.email }}</div>
- </li>
- <li class="list-group-item">
- <Icon class="mr-5px" icon="carbon:tree-view-alt" />
- {{ t('profile.user.dept') }}
- <div v-if="userInfo?.dept" class="pull-right">{{ userInfo?.dept.name }}</div>
- </li>
- <li class="list-group-item">
- <Icon class="mr-5px" icon="ep:suitcase" />
- {{ t('profile.user.posts') }}
- <div v-if="userInfo?.posts" class="pull-right">
- {{ userInfo?.posts.map((post) => post.name).join(',') }}
- </div>
- </li>
- <li class="list-group-item">
- <Icon class="mr-5px" icon="icon-park-outline:peoples" />
- {{ t('profile.user.roles') }}
- <div v-if="userInfo?.roles" class="pull-right">
- {{ userInfo?.roles.map((role) => role.name).join(',') }}
- </div>
- </li>
- <li class="list-group-item">
- <Icon class="mr-5px" icon="ep:calendar" />
- {{ t('profile.user.createTime') }}
- <div class="pull-right">{{ formatDate(userInfo.createTime) }}</div>
- </li>
- </ul>
- </div>
- </template>
- <script lang="ts" setup>
- import { formatDate } from '@/utils/formatTime'
- import UserAvatar from './UserAvatar.vue'
- import { getUserProfile, ProfileVO } from '@/api/system/user/profile'
- defineOptions({ name: 'ProfileUser' })
- const { t } = useI18n()
- const userInfo = ref({} as ProfileVO)
- const getUserInfo = async () => {
- const users = await getUserProfile()
- userInfo.value = users
- }
- onMounted(async () => {
- await getUserInfo()
- })
- </script>
- <style scoped>
- .text-center {
- position: relative;
- height: 120px;
- text-align: center;
- }
- .list-group-striped > .list-group-item {
- padding-right: 0;
- padding-left: 0;
- border-right: 0;
- border-left: 0;
- border-radius: 0;
- }
- .list-group {
- padding-left: 0;
- list-style: none;
- }
- .list-group-item {
- padding: 11px 0;
- margin-bottom: -1px;
- font-size: 13px;
- border-top: 1px solid #e7eaec;
- border-bottom: 1px solid #e7eaec;
- }
- .pull-right {
- float: right !important;
- }
- </style>
|