diff --git a/apps/web-antd/src/views/crm/business/modules/detail-info.vue b/apps/web-antd/src/views/crm/business/modules/detail-info.vue
new file mode 100644
index 000000000..da6c78661
--- /dev/null
+++ b/apps/web-antd/src/views/crm/business/modules/detail-info.vue
@@ -0,0 +1,4 @@
+
+
+ businessInfo
+
diff --git a/apps/web-antd/src/views/crm/business/modules/detail-list.vue b/apps/web-antd/src/views/crm/business/modules/detail-list.vue
new file mode 100644
index 000000000..b6466c322
--- /dev/null
+++ b/apps/web-antd/src/views/crm/business/modules/detail-list.vue
@@ -0,0 +1,4 @@
+
+
+ businessList
+
diff --git a/apps/web-antd/src/views/crm/contact/modules/detail-info.vue b/apps/web-antd/src/views/crm/contact/modules/detail-info.vue
new file mode 100644
index 000000000..a9a8f4cb1
--- /dev/null
+++ b/apps/web-antd/src/views/crm/contact/modules/detail-info.vue
@@ -0,0 +1,4 @@
+
+
+ contactInfo
+
diff --git a/apps/web-antd/src/views/crm/contact/modules/detail-list.vue b/apps/web-antd/src/views/crm/contact/modules/detail-list.vue
new file mode 100644
index 000000000..1f5fe358f
--- /dev/null
+++ b/apps/web-antd/src/views/crm/contact/modules/detail-list.vue
@@ -0,0 +1,4 @@
+
+
+ contactList
+
diff --git a/apps/web-antd/src/views/crm/contract/data.ts b/apps/web-antd/src/views/crm/contract/data.ts
index 32847eb3b..79118dd3f 100644
--- a/apps/web-antd/src/views/crm/contract/data.ts
+++ b/apps/web-antd/src/views/crm/contract/data.ts
@@ -146,73 +146,73 @@ export function useGridColumns(): VxeTableGridOptions['columns'] {
{
title: '合同编号',
field: 'no',
- width: 150,
+ minWidth: 150,
fixed: 'left',
},
{
title: '合同名称',
field: 'name',
- width: 150,
+ minWidth: 150,
fixed: 'left',
slots: { default: 'name' },
},
{
title: '客户名称',
field: 'customerName',
- width: 150,
+ minWidth: 150,
slots: { default: 'customerName' },
},
{
title: '商机名称',
field: 'businessName',
- width: 150,
+ minWidth: 150,
slots: { default: 'businessName' },
},
{
title: '合同金额(元)',
field: 'totalPrice',
- width: 150,
+ minWidth: 150,
formatter: 'formatNumber',
},
{
title: '下单时间',
field: 'orderDate',
- width: 150,
+ minWidth: 150,
formatter: 'formatDateTime',
},
{
title: '合同开始时间',
field: 'startTime',
- width: 150,
+ minWidth: 150,
formatter: 'formatDateTime',
},
{
title: '合同结束时间',
field: 'endTime',
- width: 150,
+ minWidth: 150,
formatter: 'formatDateTime',
},
{
title: '客户签约人',
field: 'signContactName',
- width: 150,
+ minWidth: 150,
slots: { default: 'signContactName' },
},
{
title: '公司签约人',
field: 'signUserName',
- width: 150,
+ minWidth: 150,
},
{
title: '已回款金额(元)',
field: 'totalReceivablePrice',
- width: 150,
+ minWidth: 150,
formatter: 'formatNumber',
},
{
title: '未回款金额(元)',
field: 'unpaidPrice',
- width: 150,
+ minWidth: 150,
formatter: ({ row }) => {
return floatToFixed2(row.totalPrice - row.totalReceivablePrice);
},
@@ -220,46 +220,46 @@ export function useGridColumns(): VxeTableGridOptions['columns'] {
{
title: '最后跟进时间',
field: 'contactLastTime',
- width: 150,
+ minWidth: 150,
formatter: 'formatDateTime',
},
{
title: '负责人',
field: 'ownerUserName',
- width: 150,
+ minWidth: 150,
},
{
title: '所属部门',
field: 'ownerUserDeptName',
- width: 150,
+ minWidth: 150,
},
{
title: '更新时间',
field: 'updateTime',
- width: 150,
+ minWidth: 150,
formatter: 'formatDateTime',
},
{
title: '创建时间',
field: 'createTime',
- width: 150,
+ minWidth: 150,
formatter: 'formatDateTime',
},
{
title: '创建人',
field: 'creatorName',
- width: 150,
+ minWidth: 150,
},
{
title: '备注',
field: 'remark',
- width: 150,
+ minWidth: 150,
},
{
title: '合同状态',
field: 'auditStatus',
fixed: 'right',
- width: 100,
+ minWidth: 100,
cellRender: {
name: 'CellDict',
props: { type: DICT_TYPE.CRM_AUDIT_STATUS },
diff --git a/apps/web-antd/src/views/crm/contract/modules/detail-info.vue b/apps/web-antd/src/views/crm/contract/modules/detail-info.vue
new file mode 100644
index 000000000..f952e7f2f
--- /dev/null
+++ b/apps/web-antd/src/views/crm/contract/modules/detail-info.vue
@@ -0,0 +1,4 @@
+
+
+ contractInfo
+
diff --git a/apps/web-antd/src/views/crm/contract/modules/detail-list.vue b/apps/web-antd/src/views/crm/contract/modules/detail-list.vue
new file mode 100644
index 000000000..3114fe4bc
--- /dev/null
+++ b/apps/web-antd/src/views/crm/contract/modules/detail-list.vue
@@ -0,0 +1,4 @@
+
+
+ contractList
+
diff --git a/apps/web-antd/src/views/crm/customer/modules/detail-list.vue b/apps/web-antd/src/views/crm/customer/modules/detail-list.vue
new file mode 100644
index 000000000..8e6c73393
--- /dev/null
+++ b/apps/web-antd/src/views/crm/customer/modules/detail-list.vue
@@ -0,0 +1,4 @@
+
+
+ customerList
+
diff --git a/apps/web-antd/src/views/crm/customer/pool/data.ts b/apps/web-antd/src/views/crm/customer/pool/data.ts
index b0909b004..177742ea4 100644
--- a/apps/web-antd/src/views/crm/customer/pool/data.ts
+++ b/apps/web-antd/src/views/crm/customer/pool/data.ts
@@ -57,14 +57,14 @@ export function useGridColumns(): VxeTableGridOptions['columns'] {
{
title: '客户名称',
field: 'name',
- width: 160,
+ minWidth: 160,
fixed: 'left',
slots: { default: 'name' },
},
{
title: '客户来源',
field: 'source',
- width: 100,
+ minWidth: 100,
cellRender: {
name: 'CellDict',
props: { type: DICT_TYPE.CRM_CUSTOMER_SOURCE },
@@ -73,22 +73,22 @@ export function useGridColumns(): VxeTableGridOptions['columns'] {
{
title: '手机',
field: 'mobile',
- width: 120,
+ minWidth: 120,
},
{
title: '电话',
field: 'telephone',
- width: 120,
+ minWidth: 120,
},
{
title: '邮箱',
field: 'email',
- width: 140,
+ minWidth: 140,
},
{
title: '客户级别',
field: 'level',
- width: 135,
+ minWidth: 135,
cellRender: {
name: 'CellDict',
props: { type: DICT_TYPE.CRM_CUSTOMER_LEVEL },
@@ -97,7 +97,7 @@ export function useGridColumns(): VxeTableGridOptions['columns'] {
{
title: '客户行业',
field: 'industryId',
- width: 100,
+ minWidth: 100,
cellRender: {
name: 'CellDict',
props: { type: DICT_TYPE.CRM_CUSTOMER_INDUSTRY },
@@ -106,18 +106,18 @@ export function useGridColumns(): VxeTableGridOptions['columns'] {
{
title: '下次联系时间',
field: 'contactNextTime',
- width: 180,
+ minWidth: 180,
formatter: 'formatDateTime',
},
{
title: '备注',
field: 'remark',
- width: 200,
+ minWidth: 200,
},
{
title: '成交状态',
field: 'dealStatus',
- width: 80,
+ minWidth: 80,
cellRender: {
name: 'CellDict',
props: { type: DICT_TYPE.INFRA_BOOLEAN_STRING },
@@ -126,30 +126,30 @@ export function useGridColumns(): VxeTableGridOptions['columns'] {
{
title: '最后跟进时间',
field: 'contactLastTime',
- width: 180,
+ minWidth: 180,
formatter: 'formatDateTime',
},
{
title: '最后跟进记录',
field: 'contactLastContent',
- width: 200,
+ minWidth: 200,
},
{
title: '更新时间',
field: 'updateTime',
- width: 180,
+ minWidth: 180,
formatter: 'formatDateTime',
},
{
title: '创建时间',
field: 'createTime',
- width: 180,
+ minWidth: 180,
formatter: 'formatDateTime',
},
{
title: '创建人',
field: 'creatorName',
- width: 100,
+ minWidth: 100,
},
];
}
diff --git a/apps/web-antd/src/views/crm/followup/index.vue b/apps/web-antd/src/views/crm/followup/index.vue
new file mode 100644
index 000000000..410e10c13
--- /dev/null
+++ b/apps/web-antd/src/views/crm/followup/index.vue
@@ -0,0 +1,205 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/apps/web-antd/src/views/crm/followup/modules/form.vue b/apps/web-antd/src/views/crm/followup/modules/form.vue
new file mode 100644
index 000000000..40cddb4cd
--- /dev/null
+++ b/apps/web-antd/src/views/crm/followup/modules/form.vue
@@ -0,0 +1,87 @@
+
+
+
+
+
+
+
diff --git a/apps/web-antd/src/views/crm/product/modules/detail-info.vue b/apps/web-antd/src/views/crm/product/modules/detail-info.vue
new file mode 100644
index 000000000..c6bcbfbcd
--- /dev/null
+++ b/apps/web-antd/src/views/crm/product/modules/detail-info.vue
@@ -0,0 +1,4 @@
+
+
+ productInfo
+
diff --git a/apps/web-antd/src/views/crm/product/modules/detail-list.vue b/apps/web-antd/src/views/crm/product/modules/detail-list.vue
new file mode 100644
index 000000000..4a0fbfd34
--- /dev/null
+++ b/apps/web-antd/src/views/crm/product/modules/detail-list.vue
@@ -0,0 +1,4 @@
+
+
+ productList
+
diff --git a/apps/web-antd/src/views/crm/receivable/data.ts b/apps/web-antd/src/views/crm/receivable/data.ts
index cbbc5c25f..1c33d1aec 100644
--- a/apps/web-antd/src/views/crm/receivable/data.ts
+++ b/apps/web-antd/src/views/crm/receivable/data.ts
@@ -173,38 +173,38 @@ export function useGridColumns(): VxeTableGridOptions['columns'] {
{
title: '回款编号',
field: 'no',
- width: 150,
+ minWidth: 150,
fixed: 'left',
slots: { default: 'no' },
},
{
title: '客户名称',
field: 'customerName',
- width: 150,
+ minWidth: 150,
slots: { default: 'customerName' },
},
{
title: '合同编号',
field: 'contract',
- width: 150,
+ minWidth: 150,
slots: { default: 'contractNo' },
},
{
title: '回款日期',
field: 'returnTime',
- width: 150,
+ minWidth: 150,
formatter: 'formatDateTime',
},
{
title: '回款金额(元)',
field: 'price',
- width: 150,
+ minWidth: 150,
formatter: 'formatNumber',
},
{
title: '回款方式',
field: 'returnType',
- width: 150,
+ minWidth: 150,
cellRender: {
name: 'CellDict',
props: { type: DICT_TYPE.CRM_RECEIVABLE_RETURN_TYPE },
@@ -213,45 +213,45 @@ export function useGridColumns(): VxeTableGridOptions['columns'] {
{
title: '备注',
field: 'remark',
- width: 150,
+ minWidth: 150,
},
{
title: '合同金额(元)',
field: 'contract.totalPrice',
- width: 150,
+ minWidth: 150,
formatter: 'formatNumber',
},
{
title: '负责人',
field: 'ownerUserName',
- width: 150,
+ minWidth: 150,
},
{
title: '所属部门',
field: 'ownerUserDeptName',
- width: 150,
+ minWidth: 150,
},
{
title: '更新时间',
field: 'updateTime',
- width: 150,
+ minWidth: 150,
formatter: 'formatDateTime',
},
{
title: '创建时间',
field: 'createTime',
- width: 150,
+ minWidth: 150,
formatter: 'formatDateTime',
},
{
title: '创建人',
field: 'creatorName',
- width: 150,
+ minWidth: 150,
},
{
title: '回款状态',
field: 'auditStatus',
- width: 100,
+ minWidth: 100,
fixed: 'right',
cellRender: {
name: 'CellDict',
diff --git a/apps/web-antd/src/views/crm/receivable/modules/detail-info.vue b/apps/web-antd/src/views/crm/receivable/modules/detail-info.vue
new file mode 100644
index 000000000..bac747f62
--- /dev/null
+++ b/apps/web-antd/src/views/crm/receivable/modules/detail-info.vue
@@ -0,0 +1,4 @@
+
+
+ receivableInfo
+
diff --git a/apps/web-antd/src/views/crm/receivable/modules/detail-list.vue b/apps/web-antd/src/views/crm/receivable/modules/detail-list.vue
new file mode 100644
index 000000000..d9444469c
--- /dev/null
+++ b/apps/web-antd/src/views/crm/receivable/modules/detail-list.vue
@@ -0,0 +1,4 @@
+
+
+ receivableList
+
diff --git a/apps/web-antd/src/views/crm/receivable/plan/data.ts b/apps/web-antd/src/views/crm/receivable/plan/data.ts
index cc76b1eeb..519c41f13 100644
--- a/apps/web-antd/src/views/crm/receivable/plan/data.ts
+++ b/apps/web-antd/src/views/crm/receivable/plan/data.ts
@@ -122,48 +122,48 @@ export function useGridColumns(): VxeTableGridOptions['columns'] {
{
title: '客户名称',
field: 'customerName',
- width: 150,
+ minWidth: 150,
fixed: 'left',
slots: { default: 'customerName' },
},
{
title: '合同编号',
field: 'contractNo',
- width: 200,
+ minWidth: 200,
},
{
title: '期数',
field: 'period',
- width: 150,
+ minWidth: 150,
slots: { default: 'period' },
},
{
title: '计划回款金额(元)',
field: 'price',
- width: 160,
+ minWidth: 160,
formatter: 'formatNumber',
},
{
title: '计划回款日期',
field: 'returnTime',
- width: 180,
+ minWidth: 180,
formatter: 'formatDateTime',
},
{
title: '提前几天提醒',
field: 'remindDays',
- width: 150,
+ minWidth: 150,
},
{
title: '提醒日期',
field: 'remindTime',
- width: 180,
+ minWidth: 180,
formatter: 'formatDateTime',
},
{
title: '回款方式',
field: 'returnType',
- width: 130,
+ minWidth: 130,
cellRender: {
name: 'CellDict',
props: { type: DICT_TYPE.CRM_RECEIVABLE_RETURN_TYPE },
@@ -172,28 +172,29 @@ export function useGridColumns(): VxeTableGridOptions['columns'] {
{
title: '备注',
field: 'remark',
+ minWidth: 120,
},
{
title: '负责人',
field: 'ownerUserName',
- width: 120,
+ minWidth: 120,
},
{
title: '实际回款金额(元)',
field: 'receivable.price',
- width: 160,
+ minWidth: 160,
formatter: 'formatNumber',
},
{
title: '实际回款日期',
field: 'receivable.returnTime',
- width: 180,
+ minWidth: 180,
formatter: 'formatDateTime',
},
{
title: '未回款金额(元)',
field: 'unpaidPrice',
- width: 160,
+ minWidth: 160,
formatter: ({ row }) => {
if (row.receivable) {
return row.price - row.receivable.price;
@@ -204,19 +205,19 @@ export function useGridColumns(): VxeTableGridOptions['columns'] {
{
title: '更新时间',
field: 'updateTime',
- width: 180,
+ minWidth: 180,
formatter: 'formatDateTime',
},
{
title: '创建时间',
field: 'createTime',
- width: 180,
+ minWidth: 180,
formatter: 'formatDateTime',
},
{
title: '创建人',
field: 'creatorName',
- width: 100,
+ minWidth: 100,
},
{
title: '操作',
diff --git a/apps/web-antd/src/views/crm/receivable/plan/modules/detail-info.vue b/apps/web-antd/src/views/crm/receivable/plan/modules/detail-info.vue
new file mode 100644
index 000000000..d94b1e3b9
--- /dev/null
+++ b/apps/web-antd/src/views/crm/receivable/plan/modules/detail-info.vue
@@ -0,0 +1,4 @@
+
+
+ receivablePlanInfo
+
diff --git a/apps/web-antd/src/views/crm/receivable/plan/modules/detail-list.vue b/apps/web-antd/src/views/crm/receivable/plan/modules/detail-list.vue
new file mode 100644
index 000000000..bec4aa4b6
--- /dev/null
+++ b/apps/web-antd/src/views/crm/receivable/plan/modules/detail-list.vue
@@ -0,0 +1,4 @@
+
+
+ receivablePlanList
+