2026-08-10 f9e6eb6fc2c2e0c2a2b17238b817fcbfcb6bab56
src/views/crm/contract/detail/index.vue
@@ -5,8 +5,8 @@
import { onMounted, ref } from 'vue';
import { useRoute, useRouter } from 'vue-router';
import { Page, useVbenModal } from '..\..\..\..\packages\effects\common-ui\src';
import { useTabs } from '..\..\..\..\packages\effects\hooks\src';
import { Page, useVbenModal } from '@vben/common-ui';
import { useTabs } from '@vben/hooks';
import { Card, Tabs } from 'ant-design-vue';
@@ -38,6 +38,7 @@
const contract = ref<CrmContractApi.Contract>({} as CrmContractApi.Contract); // 合同详情
const logList = ref<SystemOperateLogApi.OperateLog[]>([]); // 操作日志
const permissionListRef = ref<InstanceType<typeof PermissionList>>(); // 团队成员列表 Ref
const activeTab = ref('1'); // 当前激活的 Tab
const [Descriptions] = useDescription({
  bordered: false,
@@ -128,13 +129,13 @@
      <Descriptions :data="contract" />
    </Card>
    <Card class="mt-4 min-h-[60%]">
      <Tabs>
        <Tabs.TabPane tab="跟进记录" key="1" :force-render="true">
          <FollowUp :biz-id="contractId" :biz-type="BizTypeEnum.CRM_CONTRACT" />
        </Tabs.TabPane>
        <Tabs.TabPane tab="基本信息" key="2" :force-render="true">
      <Tabs v-model:activeKey="activeTab">
        <Tabs.TabPane tab="基本信息" key="1" :force-render="true">
          <ContractDetailsInfo :contract="contract" />
        </Tabs.TabPane>
        <Tabs.TabPane tab="跟进记录" key="2" :force-render="true">
          <FollowUp :biz-id="contractId" :biz-type="BizTypeEnum.CRM_CONTRACT" />
        </Tabs.TabPane>
        <Tabs.TabPane tab="产品" key="3" :force-render="true">
          <ProductDetailsList
            :biz-id="contractId"