From bef3d94968fc70667f3123cb23ee69550e08a5ca Mon Sep 17 00:00:00 2001
From: 云 <2163098428@qq.com>
Date: 星期四, 15 十月 2026 14:03:17 +0800
Subject: [PATCH] feat(crm): 优化合同管理及待办功能

---
 src/views/crm/backlog/modules/contract-audit-list.vue |   36 ++++++++++++++++++++++++++++++------
 1 files changed, 30 insertions(+), 6 deletions(-)

diff --git a/src/views/crm/backlog/modules/contract-audit-list.vue b/src/views/crm/backlog/modules/contract-audit-list.vue
index 98f944c..c43df5d 100644
--- a/src/views/crm/backlog/modules/contract-audit-list.vue
+++ b/src/views/crm/backlog/modules/contract-audit-list.vue
@@ -5,7 +5,7 @@
 
 import { useRouter } from 'vue-router';
 
-import { Button } from 'ant-design-vue';
+import { Button, Tag } from 'ant-design-vue';
 
 import { ACTION_ICON, TableAction, useVbenVxeGrid } from '#/adapter/vxe-table';
 import { getContractPage } from '#/api/crm/contract';
@@ -29,17 +29,21 @@
 }
 /** 鎵撳紑瀹㈡埛璇︽儏 */
 function handleCustomerDetail(row: CrmContractApi.Contract) {
-  push({ name: 'CrmCustomerDetail', params: { id: row.id } });
+  if (row.customerId) push({ name: 'CrmCustomerDetail', params: { id: row.customerId } });
 }
 
 /** 鎵撳紑鑱旂郴浜鸿鎯� */
 function handleContactDetail(row: CrmContractApi.Contract) {
-  push({ name: 'CrmContactDetail', params: { id: row.id } });
+  if (row.signContactId) push({ name: 'CrmContactDetail', params: { id: row.signContactId } });
 }
 
 /** 鎵撳紑鍟嗘満璇︽儏 */
 function handleBusinessDetail(row: CrmContractApi.Contract) {
-  push({ name: 'CrmBusinessDetail', params: { id: row.id } });
+  if (row.businessId) push({ name: 'CrmBusinessDetail', params: { id: row.businessId } });
+}
+
+function handleViewOrder(row: CrmContractApi.Contract) {
+  if (row.orderId) push({ name: 'ErpSaleOrder', query: { id: row.orderId } });
 }
 
 const [Grid] = useVbenVxeGrid({
@@ -87,6 +91,11 @@
 
 <template>
   <Grid>
+    <template #no="{ row }">
+      <Button type="link" @click="handleContractDetail(row)">
+        {{ row.no }}
+      </Button>
+    </template>
     <template #name="{ row }">
       <Button type="link" @click="handleContractDetail(row)">
         {{ row.name }}
@@ -102,10 +111,23 @@
         {{ row.businessName }}
       </Button>
     </template>
-    <template #contactName="{ row }">
+    <template #signContactName="{ row }">
       <Button type="link" @click="handleContactDetail(row)">
-        {{ row.contactName }}
+        {{ row.signContactName }}
       </Button>
+    </template>
+    <template #auditStatus="{ row }">
+      <Tag v-if="row.auditStatus === 0">鏈彁浜�</Tag>
+      <Tag v-else-if="row.auditStatus === 10" color="warning">瀹℃壒涓�</Tag>
+      <Tag v-else-if="row.auditStatus === 20" color="success">瀹℃牳閫氳繃</Tag>
+      <Tag v-else-if="row.auditStatus === 30" color="error">瀹℃牳涓嶉�氳繃</Tag>
+      <Tag v-else-if="row.auditStatus === 40">宸插彇娑�</Tag>
+      <Tag v-else-if="row.auditStatus === 50" color="error">宸蹭綔搴�</Tag>
+      <span v-else>鈥�</span>
+    </template>
+    <template #orderNo="{ row }">
+      <Button v-if="row.orderId" type="link" @click="handleViewOrder(row)">{{ row.orderNo }}</Button>
+      <span v-else>鈥�</span>
     </template>
     <template #actions="{ row }">
       <TableAction
@@ -114,6 +136,8 @@
             label: '鏌ョ湅瀹℃壒',
             type: 'link',
             icon: ACTION_ICON.VIEW,
+            auth: ['crm:contract:update'],
+            ifShow: !!row.processInstanceId,
             onClick: handleProcessDetail.bind(null, row),
           },
         ]"

--
Gitblit v1.9.3