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/receivable-plan-remind-list.vue | 30 +++++++++++++++++++++---------
1 files changed, 21 insertions(+), 9 deletions(-)
diff --git a/src/views/crm/backlog/modules/receivable-plan-remind-list.vue b/src/views/crm/backlog/modules/receivable-plan-remind-list.vue
index 4bafa46..697e673 100644
--- a/src/views/crm/backlog/modules/receivable-plan-remind-list.vue
+++ b/src/views/crm/backlog/modules/receivable-plan-remind-list.vue
@@ -9,7 +9,7 @@
import { Button } from 'ant-design-vue';
-import { useVbenVxeGrid } from '#/adapter/vxe-table';
+import { TableAction, useVbenVxeGrid } from '#/adapter/vxe-table';
import { getReceivablePlanPage } from '#/api/crm/receivable/plan';
import Form from '#/views/crm/receivable/modules/form.vue';
import { useGridColumns } from '#/views/crm/receivable/plan/data';
@@ -17,15 +17,21 @@
import { RECEIVABLE_REMIND_TYPE } from '../data';
const { push } = useRouter();
+const emit = defineEmits<{ refresh: [] }>();
+
+function handleRefresh() {
+ gridApi.query();
+ emit('refresh');
+}
const [FormModal, formModalApi] = useVbenModal({
connectedComponent: Form,
destroyOnClose: true,
});
-/** 鎵撳紑鍥炴璇︽儏 */
+/** 鎵撳紑鍥炴璁″垝璇︽儏 */
function handleDetail(row: CrmReceivablePlanApi.Plan) {
- push({ name: 'CrmReceivableDetail', params: { id: row.id } });
+ push({ name: 'CrmReceivablePlanDetail', params: { id: row.id } });
}
/** 鎵撳紑瀹㈡埛璇︽儏 */
@@ -35,15 +41,16 @@
/** 鍒涘缓鍥炴 */
function handleCreateReceivable(row: CrmReceivablePlanApi.Plan) {
+ if (row.receivableId) return;
formModalApi.setData({ plan: row }).open();
}
-const [Grid] = useVbenVxeGrid({
+const [Grid, gridApi] = useVbenVxeGrid({
formOptions: {
schema: [
{
fieldName: 'remindType',
- label: '鍚堝悓鐘舵��',
+ label: '鍥炴鐘舵��',
component: 'Select',
componentProps: {
allowClear: true,
@@ -63,6 +70,7 @@
return await getReceivablePlanPage({
pageNo: page.currentPage,
pageSize: page.pageSize,
+ sceneType: 1,
...formValues,
});
},
@@ -82,7 +90,7 @@
<template>
<div>
- <FormModal />
+ <FormModal @success="handleRefresh" />
<Grid>
<template #customerName="{ row }">
<Button type="link" @click="handleCustomerDetail(row)">
@@ -93,9 +101,13 @@
<Button type="link" @click="handleDetail(row)">{{ row.period }}</Button>
</template>
<template #actions="{ row }">
- <Button type="link" @click="handleCreateReceivable(row)">
- 鍒涘缓鍥炴
- </Button>
+ <TableAction :actions="[{
+ label: '鍒涘缓鍥炴',
+ type: 'link',
+ auth: ['crm:receivable:create'],
+ ifShow: !row.receivableId,
+ onClick: handleCreateReceivable.bind(null, row),
+ }]" />
</template>
</Grid>
</div>
--
Gitblit v1.9.3