ContactDetails.vue 3.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293
  1. <template>
  2. <el-collapse v-model="activeNames">
  3. <el-collapse-item name="basicInfo">
  4. <template #title>
  5. <span class="text-base font-bold">基本信息</span>
  6. </template>
  7. <el-descriptions :column="4">
  8. <el-descriptions-item label="姓名">
  9. {{ contact.name }}
  10. </el-descriptions-item>
  11. <el-descriptions-item label="客户名称">
  12. {{ contact.customerName }}
  13. </el-descriptions-item>
  14. <el-descriptions-item label="手机">
  15. {{ contact.mobile }}
  16. </el-descriptions-item>
  17. <el-descriptions-item label="座机">
  18. {{ contact.telephone }}
  19. </el-descriptions-item>
  20. <el-descriptions-item label="邮箱">
  21. {{ contact.email }}
  22. </el-descriptions-item>
  23. <el-descriptions-item label="QQ">
  24. {{ contact.qq }}
  25. </el-descriptions-item>
  26. <el-descriptions-item label="微信">
  27. {{ contact.webchat }}
  28. </el-descriptions-item>
  29. <el-descriptions-item label="详细地址">
  30. {{ contact.address }}
  31. </el-descriptions-item>
  32. <el-descriptions-item label="下次联系时间">
  33. {{ contact.nextTime ? formatDate(contact.nextTime) : '空' }}
  34. </el-descriptions-item>
  35. <el-descriptions-item label="性别">
  36. <dict-tag :type="DICT_TYPE.SYSTEM_USER_SEX" :value="contact.sex" />
  37. </el-descriptions-item>
  38. <el-descriptions-item label="备注">
  39. {{ contact.remark }}
  40. </el-descriptions-item>
  41. </el-descriptions>
  42. </el-collapse-item>
  43. <el-collapse-item name="systemInfo">
  44. <template #title>
  45. <span class="text-base font-bold">系统信息</span>
  46. </template>
  47. <el-descriptions :column="2">
  48. <el-descriptions-item label="负责人">
  49. {{ gotOwnerUser(contact.ownerUserId) }}
  50. </el-descriptions-item>
  51. <el-descriptions-item label="创建人">
  52. {{ contact.creatorName }}
  53. </el-descriptions-item>
  54. <el-descriptions-item label="创建时间">
  55. {{ contact.createTime ? formatDate(contact.createTime) : '空' }}
  56. </el-descriptions-item>
  57. <el-descriptions-item label="更新时间">
  58. {{ contact.updateTime ? formatDate(contact.updateTime) : '空' }}
  59. </el-descriptions-item>
  60. </el-descriptions>
  61. </el-collapse-item>
  62. </el-collapse>
  63. </template>
  64. <script setup lang="ts">
  65. import * as ContactApi from '@/api/crm/contact'
  66. import { DICT_TYPE } from '@/utils/dict'
  67. import { formatDate } from '@/utils/formatTime'
  68. import * as UserApi from '@/api/system/user'
  69. const { contact } = defineProps<{ contact: ContactApi.ContactVO }>()
  70. // 展示的折叠面板
  71. const activeNames = ref(['basicInfo', 'systemInfo'])
  72. const gotOwnerUser = (owerUserId: string) => {
  73. let ownerName = ''
  74. if (owerUserId !== null && owerUserId != undefined) {
  75. owerUserId.split(',').forEach((item: string, index: number) => {
  76. if (index != 0) {
  77. ownerName =
  78. ownerName + ',' + userList.value.find((user: { id: any }) => user.id == item)?.nickname
  79. } else {
  80. ownerName = userList.value.find((user: { id: any }) => user.id == item)?.nickname || ''
  81. }
  82. })
  83. }
  84. return ownerName
  85. }
  86. const userList = ref<UserApi.UserVO[]>([]) // 用户列表
  87. /** 初始化 **/
  88. onMounted(async () => {
  89. userList.value = await UserApi.getSimpleUserList()
  90. })
  91. </script>
  92. <style scoped lang="scss"></style>