index.vue 2.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960
  1. <template>
  2. <CustomerDetailsHeader :customer="customer" :loading="loading" @refresh="getCustomer(id)" />
  3. <el-col>
  4. <el-tabs>
  5. <el-tab-pane label="详细资料">
  6. <CustomerDetailsInfo :customer="customer" />
  7. </el-tab-pane>
  8. <el-tab-pane label="操作日志" lazy>TODO 待开发</el-tab-pane>
  9. <el-tab-pane label="联系人" lazy>
  10. <ContactList :biz-id="customer.id!" :biz-type="BizTypeEnum.CRM_CUSTOMER" />
  11. </el-tab-pane>
  12. <el-tab-pane label="团队成员" lazy>
  13. <PermissionList :biz-id="customer.id!" :biz-type="BizTypeEnum.CRM_CUSTOMER" />
  14. </el-tab-pane>
  15. <el-tab-pane label="商机" lazy> 商机</el-tab-pane>
  16. <el-tab-pane label="合同" lazy>TODO 待开发</el-tab-pane>
  17. <el-tab-pane label="回款" lazy>TODO 待开发</el-tab-pane>
  18. <el-tab-pane label="回访" lazy>TODO 待开发</el-tab-pane>
  19. <el-tab-pane label="发票" lazy>TODO 待开发</el-tab-pane>
  20. </el-tabs>
  21. </el-col>
  22. </template>
  23. <script lang="ts" setup>
  24. import { useTagsViewStore } from '@/store/modules/tagsView'
  25. import * as CustomerApi from '@/api/crm/customer'
  26. import CustomerDetailsInfo from './CustomerDetailsInfo.vue' // 客户明细 - 详细信息
  27. import CustomerDetailsHeader from './CustomerDetailsHeader.vue' // 客户明细 - 头部
  28. import ContactList from '@/views/crm/contact/components/ContactList.vue' // 联系人列表
  29. import PermissionList from '@/views/crm/permission/components/PermissionList.vue' // 权限列表
  30. import { BizTypeEnum } from '@/api/crm/permission'
  31. defineOptions({ name: 'CrmCustomerDetail' })
  32. const route = useRoute()
  33. const id = Number(route.params.id) // 客户编号
  34. const loading = ref(true) // 加载中
  35. /** 获取详情 */
  36. const customer = ref<CustomerApi.CustomerVO>({} as CustomerApi.CustomerVO) // 客户详情
  37. const getCustomer = async (id: number) => {
  38. loading.value = true
  39. try {
  40. customer.value = await CustomerApi.getCustomer(id)
  41. } finally {
  42. loading.value = false
  43. }
  44. }
  45. /** 初始化 */
  46. const { delView } = useTagsViewStore() // 视图操作
  47. const { currentRoute } = useRouter() // 路由
  48. onMounted(() => {
  49. if (!id) {
  50. ElMessage.warning('参数错误,客户不能为空!')
  51. delView(unref(currentRoute))
  52. return
  53. }
  54. getCustomer(id)
  55. })
  56. </script>