客户列表页调整

This commit is contained in:
WindowBird 2025-11-11 11:01:50 +08:00
parent e9a80b7c8b
commit 8840d08929

View File

@ -70,14 +70,53 @@
</view>
</view>
<!-- 分配用户 -->
<view class="assigned-user">
<image
class="user-avatar"
:src="customer.assignedUserAvatar || '/static/default-avatar.png'"
mode="aspectFill"
/>
<text class="user-name">{{ customer.followName || '未分配' }}</text>
<!-- 客户详细信息 -->
<view class="customer-details">
<!-- 客户意向 -->
<view class="detail-row" v-if="customer.intents && customer.intents.length > 0">
<text class="detail-label">客户意向</text>
<view class="intent-tags">
<text
v-for="(intent, index) in customer.intents"
:key="index"
class="intent-tag"
>{{ intent }}</text>
</view>
</view>
<!-- 意向强度 -->
<view class="detail-row">
<text class="detail-label">意向强度</text>
<text class="detail-value">{{ getIntentLevelText(customer.intentLevel) }}</text>
</view>
<!-- 微信号 -->
<view class="detail-row">
<text class="detail-label">微信号</text>
<text class="detail-value">{{ customer.wechat || '--' }}</text>
</view>
<!-- 手机号 -->
<view class="detail-row">
<text class="detail-label">手机号</text>
<text class="detail-value">{{ customer.mobile || '--' }}</text>
</view>
<!-- 上次跟进内容 -->
<view class="detail-row" v-if="customer.lastFollowRecord && customer.lastFollowRecord.content">
<text class="detail-label">跟进内容</text>
<text class="detail-value follow-content">{{ truncateText(customer.lastFollowRecord.content, 30) }}</text>
</view>
<!-- 分配用户 -->
<view class="detail-row">
<text class="detail-label">客户归属</text>
<text class="detail-value">{{ customer.followName || '--' }}</text>
</view>
</view>
<!-- 操作按钮 -->
@ -175,6 +214,23 @@ const getStatusText = (status) => {
return statusMap[status] || '未知';
};
//
const getIntentLevelText = (intentLevel) => {
const levelMap = {
'1': '高',
'2': '中',
'3': '低'
};
return levelMap[intentLevel] || '--';
};
//
const truncateText = (text, maxLength) => {
if (!text) return '--';
if (text.length <= maxLength) return text;
return text.substring(0, maxLength) + '...';
};
//
const formatDateTime = (dateTime) => {
if (!dateTime) return '暂无';
@ -561,7 +617,7 @@ defineExpose({
display: flex;
justify-content: space-between;
align-items: flex-start;
margin-bottom: 14px;
padding-bottom: 12px;
border-bottom: 1px solid #f0f2f5;
}
@ -638,8 +694,8 @@ defineExpose({
display: flex;
align-items: center;
gap: 10px;
margin-bottom: 14px;
padding: 8px 12px;
background-color: #fafbfc;
border-radius: 8px;
}
@ -659,6 +715,67 @@ defineExpose({
font-weight: 500;
}
/* 客户详细信息 */
.customer-details {
padding: 12px;
background-color: #fafbfc;
border-radius: 8px;
}
.detail-row {
display: flex;
align-items: center;
flex-wrap: wrap;
margin-bottom: 10px;
font-size: 13px;
line-height: 1.6;
&:last-child {
margin-bottom: 0;
}
}
.detail-label {
color: #909399;
font-weight: 500;
flex-shrink: 0;
margin-right: 4px;
white-space: nowrap;
}
.detail-value {
color: #606266;
word-break: break-all;
flex: 1;
min-width: 0;
}
.follow-content {
color: #303133;
line-height: 1.6;
}
/* 客户意向标签 */
.intent-tags {
display: flex;
flex-wrap: wrap;
gap: 6px;
flex: 1;
}
.intent-tag {
display: inline-block;
padding: 4px 10px;
font-size: 12px;
color: #2885ff;
background-color: #e6f2ff;
border-radius: 12px;
border: 1px solid #b3d8ff;
white-space: nowrap;
}
/* 操作按钮 */
.action-buttons {
display: flex;