diff --git a/common/api/customer.js b/common/api/customer.js index 9c3954e..d5bfc7e 100644 --- a/common/api/customer.js +++ b/common/api/customer.js @@ -7,7 +7,7 @@ * @param {Object} params 请求参数(可选) * @param {number} params.pageNum 页码(从1开始) * @param {number} params.pageSize 每页数量 - * @param {string[]} params.statusList 客户状态列表:["1"] 正在跟进, ["2"] 待跟进 + * @param {string[]} params.statusList 客户状态列表:["1"] 潜在, ["2"] 意向, ["3"] 成交, ["4"] 失效 * @param {string} params.excludeld 排除id * @param {string[]} params.ids id列表 * @param {string} params.intent 意向 diff --git a/components/CustomerManagement.vue b/components/CustomerManagement.vue index 382b498..f9c2bd8 100644 --- a/components/CustomerManagement.vue +++ b/components/CustomerManagement.vue @@ -21,14 +21,24 @@ >全部 正在跟进 + :class="{ 'active': filterStatus === 'potential' }" + @click="filterStatus = 'potential'" + >潜在 待跟进 + :class="{ 'active': filterStatus === 'intent' }" + @click="filterStatus = 'intent'" + >意向 + 成交 + 失效 @@ -73,7 +83,7 @@ - + 跟进 @@ -147,18 +157,20 @@ const { // 获取状态样式类 const getStatusClass = (status) => { return { - 'status-following': status === '1', // 正在跟进 - 'status-pending': status === '2' // 待跟进 + 'status-potential': status === '1', // 潜在 + 'status-intent': status === '2', // 意向 + 'status-deal': status === '3', // 成交 + 'status-invalid': status === '4' // 失效 }; }; // 获取状态文本 const getStatusText = (status) => { const statusMap = { - '1': '正在跟进', - '2': '待跟进', - '3': '其他', - '4': '无效客户' + '1': '潜在', + '2': '意向', + '3': '成交', + '4': '失效' }; return statusMap[status] || '未知'; }; @@ -187,9 +199,10 @@ const buildQueryParams = () => { // 只有有效的筛选状态才添加statusList参数 if (filterStatus.value) { const statusMap = { - 'following': ['1'], // 正在跟进 - 'pending': ['2'], // 待跟进 - + 'potential': ['1'], // 潜在 + 'intent': ['2'], // 意向 + 'deal': ['3'], // 成交 + 'invalid': ['4'] // 失效 }; const statusList = statusMap[filterStatus.value]; @@ -593,13 +606,24 @@ defineExpose({ border-radius: 50%; flex-shrink: 0; - &.status-following { - background-color: #2885ff; - box-shadow: 0 0 4px rgba(40, 133, 255, 0.4); + &.status-potential { + background-color: #e6a23c; + box-shadow: 0 0 4px rgba(230, 162, 60, 0.4); } - &.status-pending { - background-color: #909399; + &.status-intent { + background-color: #409eff; + box-shadow: 0 0 4px rgba(64, 158, 255, 0.4); + } + + &.status-deal { + background-color: #67c23a; + box-shadow: 0 0 4px rgba(103, 194, 58, 0.4); + } + + &.status-invalid { + background-color: #f56c6c; + box-shadow: 0 0 4px rgba(245, 108, 108, 0.4); } } diff --git a/pages/customer/detail/index.vue b/pages/customer/detail/index.vue index 317c827..6f30b00 100644 --- a/pages/customer/detail/index.vue +++ b/pages/customer/detail/index.vue @@ -219,18 +219,20 @@ const loadProjectList = async () => { // 获取状态样式类 const getStatusClass = (status) => { return { - 'status-following': status === '1', - 'status-pending': status === '2' + 'status-potential': status === '1', // 潜在 + 'status-intent': status === '2', // 意向 + 'status-deal': status === '3', // 成交 + 'status-invalid': status === '4' // 失效 }; }; // 获取状态文本 const getStatusText = (status) => { const statusMap = { - '1': '正在跟进', - '2': '待跟进', - '3': '其他', - '4': '无效客户' + '1': '潜在', + '2': '意向', + '3': '成交', + '4': '失效' }; return statusMap[status] || '未知'; }; @@ -495,14 +497,24 @@ onShow(() => { border-radius: 4px; font-size: 12px; - &.status-following { - background-color: #e3f2fd; - color: #1976d2; + &.status-potential { + background-color: #fdf6ec; + color: #e6a23c; } - &.status-pending { - background-color: #f5f5f5; - color: #666; + &.status-intent { + background-color: #ecf5ff; + color: #409eff; + } + + &.status-deal { + background-color: #f0f9ff; + color: #67c23a; + } + + &.status-invalid { + background-color: #fef0f0; + color: #f56c6c; } } diff --git a/pages/customer/follow/detail/index.vue b/pages/customer/follow/detail/index.vue index cb3b444..1c0de6c 100644 --- a/pages/customer/follow/detail/index.vue +++ b/pages/customer/follow/detail/index.vue @@ -293,18 +293,20 @@ const formatIntents = (intents) => { // 获取状态样式类 const getStatusClass = (status) => { return { - 'status-following': status === '1', - 'status-pending': status === '2' + 'status-potential': status === '1', // 潜在 + 'status-intent': status === '2', // 意向 + 'status-deal': status === '3', // 成交 + 'status-invalid': status === '4' // 失效 }; }; // 获取状态文本 const getStatusText = (status) => { const statusMap = { - '1': '正在跟进', - '2': '待跟进', - '3': '其他', - '4': '无效客户' + '1': '潜在', + '2': '意向', + '3': '成交', + '4': '失效' }; return statusMap[status] || '未知'; }; @@ -312,18 +314,20 @@ const getStatusText = (status) => { // 获取客户状态样式类 const getCustomerStatusClass = (status) => { return { - 'status-following': status === '1', - 'status-pending': status === '2' + 'status-potential': status === '1', // 潜在 + 'status-intent': status === '2', // 意向 + 'status-deal': status === '3', // 成交 + 'status-invalid': status === '4' // 失效 }; }; // 获取客户状态文本 const getCustomerStatusText = (status) => { const statusMap = { - '1': '正在跟进', - '2': '待跟进', - '3': '其他', - '4': '无效客户' + '1': '潜在', + '2': '意向', + '3': '成交', + '4': '失效' }; return statusMap[status] || '未知'; }; @@ -536,14 +540,24 @@ onMounted(() => { border-radius: 4px; font-size: 12px; - &.status-following { - background-color: #e3f2fd; - color: #1976d2; + &.status-potential { + background-color: #fdf6ec; + color: #e6a23c; } - &.status-pending { - background-color: #f5f5f5; - color: #666; + &.status-intent { + background-color: #ecf5ff; + color: #409eff; + } + + &.status-deal { + background-color: #f0f9ff; + color: #67c23a; + } + + &.status-invalid { + background-color: #fef0f0; + color: #f56c6c; } }