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-remind-list.vue | 31 +++++++++++++++++++++++++++----
1 files changed, 27 insertions(+), 4 deletions(-)
diff --git a/src/views/crm/backlog/modules/contract-remind-list.vue b/src/views/crm/backlog/modules/contract-remind-list.vue
index a394b3b..cdd4078 100644
--- a/src/views/crm/backlog/modules/contract-remind-list.vue
+++ b/src/views/crm/backlog/modules/contract-remind-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 { TableAction, useVbenVxeGrid } from '#/adapter/vxe-table';
import { getContractPage } from '#/api/crm/contract';
@@ -30,17 +30,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({
@@ -88,6 +92,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 }}
@@ -108,6 +117,19 @@
{{ 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
:actions="[
@@ -115,6 +137,7 @@
label: '鏌ョ湅瀹℃壒',
type: 'link',
auth: ['crm:contract:update'],
+ ifShow: !!row.processInstanceId,
onClick: handleProcessDetail.bind(null, row),
},
]"
--
Gitblit v1.9.3