feat(crm): 添加客户联系方式和公司名称字段

在订单和客户管理界面中新增联系方式和公司名称字段显示
调整客户列表和订单列表的布局及字段展示
优化收款表单首次加载时的处理逻辑
This commit is contained in:
砂糖
2026-02-02 10:55:15 +08:00
parent 84f141896c
commit 0cb51f6117
5 changed files with 26 additions and 9 deletions

View File

@@ -116,6 +116,10 @@ public class CrmOrderVo extends BaseEntity {
// @ExcelProperty(value = "地址") // @ExcelProperty(value = "地址")
private String address; private String address;
private String contactWay;
private String companyName;
//创建人 //创建人
private String createByName; private String createByName;
//更新人 //更新人

View File

@@ -47,6 +47,8 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
co.update_time AS updateTime, co.update_time AS updateTime,
cu.customer_code AS customerCode, cu.customer_code AS customerCode,
cu.contact_person AS contactPerson, cu.contact_person AS contactPerson,
cu.contact_way AS contactWay,
cu.company_name AS companyName,
cu.address AS address cu.address AS address
FROM crm_order co FROM crm_order co
LEFT JOIN crm_customer cu ON co.customer_id = cu.customer_id LEFT JOIN crm_customer cu ON co.customer_id = cu.customer_id

View File

@@ -247,7 +247,8 @@ export default {
// 收款表单参数 // 收款表单参数
receiveForm: {}, receiveForm: {},
// 是否显示收款弹出层 // 是否显示收款弹出层
receiveOpen: false receiveOpen: false,
isFirst: true,
}; };
}, },
methods: { methods: {
@@ -258,6 +259,10 @@ export default {
this.receivableList = response.rows; this.receivableList = response.rows;
this.total = response.total; this.total = response.total;
this.loading = false; this.loading = false;
if (this.isFirst) {
this.isFirst = false;
return;
}
updateOrder({ updateOrder({
orderId: this.orderId, orderId: this.orderId,
unpaidAmount: this.unreceivedAmount, unpaidAmount: this.unreceivedAmount,

View File

@@ -2,7 +2,7 @@
<div class="app-container"> <div class="app-container">
<el-row :gutter="20"> <el-row :gutter="20">
<!-- 客户列表区域 --> <!-- 客户列表区域 -->
<el-col :span="5" style="border-right: 1px solid #e4e7ed;"> <el-col :span="6" style="border-right: 1px solid #e4e7ed;">
<div style="font-weight: 900;">客户列表</div> <div style="font-weight: 900;">客户列表</div>
<!-- 搜索区域 --> <!-- 搜索区域 -->
<div style="display: flex; align-items: center; gap: 5px; margin-top: 10px;"> <div style="display: flex; align-items: center; gap: 5px; margin-top: 10px;">
@@ -55,7 +55,9 @@
listKey="customerId" listKey="customerId"
:loading="customerLoading" :loading="customerLoading"
field1="customerCode" field1="customerCode"
field4="companyName" field2="companyName"
field4="contactPerson"
field5="contactWay"
@item-click="handleItemClick" @item-click="handleItemClick"
> >
<template slot="actions" slot-scope="{ item }"> <template slot="actions" slot-scope="{ item }">
@@ -66,7 +68,7 @@
</el-col> </el-col>
<!-- 右侧内容区域 --> <!-- 右侧内容区域 -->
<el-col :span="19"> <el-col :span="18">
<el-tabs v-model="activeTab" type="border-card" v-if="currentCustomer && currentCustomer.customerId"> <el-tabs v-model="activeTab" type="border-card" v-if="currentCustomer && currentCustomer.customerId">
<!-- 客户详情标签页 --> <!-- 客户详情标签页 -->
<el-tab-pane label="客户详情" name="detail"> <el-tab-pane label="客户详情" name="detail">

View File

@@ -8,7 +8,8 @@
<el-input style="flex: 1;" prefix-icon="el-icon-search" placeholder="输入订单编号搜索" <el-input style="flex: 1;" prefix-icon="el-icon-search" placeholder="输入订单编号搜索"
v-model="queryParams.orderCode"></el-input> v-model="queryParams.orderCode"></el-input>
<el-button icon="el-icon-search" @click="toggleQuery"></el-button> <el-button icon="el-icon-search" @click="toggleQuery"></el-button>
<el-button type="primary" icon="el-icon-plus" style="margin-left: 0;" @click="handleAdd" v-hasPermi="['crm:order:add']"></el-button> <el-button type="primary" icon="el-icon-plus" style="margin-left: 0;" @click="handleAdd"
v-hasPermi="['crm:order:add']"></el-button>
</div> </div>
<div v-show="showQuery" <div v-show="showQuery"
style="display: flex; align-items: center; gap: 5px; margin-top: 10px; flex-wrap: wrap;"> style="display: flex; align-items: center; gap: 5px; margin-top: 10px; flex-wrap: wrap;">
@@ -29,10 +30,11 @@
</div> </div>
<div> <div>
<!-- 列表区域 --> <!-- 列表区域 -->
<KLPList :listData="orderList" listKey="orderId" :loading="orderLoading" field1="orderCode" field4="salesman" <KLPList :listData="orderList" listKey="orderId" :loading="orderLoading" field1="orderCode" field2="salesman"
@item-click="handleOrderClick"> field4="companyName" field5="contactPerson" @item-click="handleOrderClick">
<template slot="actions" slot-scope="{ item }"> <template slot="actions" slot-scope="{ item }">
<el-button type="danger" size="mini" @click="handleDelete(item)" icon="el-icon-delete" v-hasPermi="['crm:order:add']"></el-button> <el-button type="danger" size="mini" @click="handleDelete(item)" icon="el-icon-delete"
v-hasPermi="['crm:order:add']"></el-button>
</template> </template>
</KLPList> </KLPList>
</div> </div>
@@ -46,8 +48,10 @@
<!-- 订单详情内容 --> <!-- 订单详情内容 -->
<el-descriptions :column="2" :border="true" title="订单基本信息" style="margin-bottom: 20px;"> <el-descriptions :column="2" :border="true" title="订单基本信息" style="margin-bottom: 20px;">
<el-descriptions-item label="订单编号">{{ form.orderCode }}</el-descriptions-item> <el-descriptions-item label="订单编号">{{ form.orderCode }}</el-descriptions-item>
<el-descriptions-item label="客户">{{ form.customerId }}</el-descriptions-item>
<el-descriptions-item label="销售员">{{ form.salesman }}</el-descriptions-item> <el-descriptions-item label="销售员">{{ form.salesman }}</el-descriptions-item>
<el-descriptions-item label="客户公司">{{ form.companyName }}</el-descriptions-item>
<el-descriptions-item label="联系人">{{ form.contactPerson }}</el-descriptions-item>
<el-descriptions-item label="联系电话">{{ form.contactWay }}</el-descriptions-item>
<el-descriptions-item label="备注" :span="2">{{ form.remark }}</el-descriptions-item> <el-descriptions-item label="备注" :span="2">{{ form.remark }}</el-descriptions-item>
</el-descriptions> </el-descriptions>