UserPreview.vue 1.3 KB

123456789101112131415161718192021222324252627282930313233343536
  1. <script setup lang="ts">
  2. import type { UserModel } from '@/model/system.model';
  3. import { userMethod } from '@/request/api/system.api';
  4. import { useRequest } from 'alova/client';
  5. const props = withDefaults(defineProps<{ data: UserModel, request?: boolean; }>(), {
  6. request: true,
  7. });
  8. const { data, loading } = useRequest(
  9. () => userMethod(props.data),
  10. {
  11. initialData: props.data,
  12. middleware: (_, next) => { if ( props.request ) next(); },
  13. },
  14. );
  15. </script>
  16. <template>
  17. <a-spin :spinning="loading">
  18. <a-descriptions bordered>
  19. <a-descriptions-item label="系统账号">{{ data.userId }}</a-descriptions-item>
  20. <a-descriptions-item label="角色" :span="2">{{ data.roles?.map(t => t.roleName)?.join(', ') }}
  21. </a-descriptions-item>
  22. <a-descriptions-item label="医院 / 科室" :span="2">{{ data.dept?.deptFullPathName }}</a-descriptions-item>
  23. <a-descriptions-item label="工号">{{ data.jobnumber }}</a-descriptions-item>
  24. <a-descriptions-item label="姓名">{{ data.nickName }}</a-descriptions-item>
  25. <a-descriptions-item label="手机号码">{{ data.phonenumber }}</a-descriptions-item>
  26. </a-descriptions>
  27. </a-spin>
  28. </template>
  29. <style scoped lang="scss">
  30. .separate + .separate::before{
  31. content: '/';
  32. margin: 0 2px;
  33. }
  34. </style>