wip: 待办事项
parent
25347b3ea5
commit
24849335a8
@ -0,0 +1,39 @@
|
|||||||
|
import request from '@/config/axios'
|
||||||
|
|
||||||
|
export interface CustomerVO {
|
||||||
|
id?: number
|
||||||
|
name: string
|
||||||
|
industryId: number
|
||||||
|
level: number
|
||||||
|
source: number
|
||||||
|
followUpStatus?: boolean
|
||||||
|
lockStatus?: boolean
|
||||||
|
dealStatus?: boolean
|
||||||
|
mobile: string
|
||||||
|
telephone: string
|
||||||
|
website: string
|
||||||
|
qq: string
|
||||||
|
wechat: string
|
||||||
|
email: string
|
||||||
|
description: string
|
||||||
|
remark: string
|
||||||
|
ownerUserId?: number
|
||||||
|
ownerUserName?: string
|
||||||
|
ownerUserDept?: string
|
||||||
|
roUserIds?: string
|
||||||
|
rwUserIds?: string
|
||||||
|
areaId?: number
|
||||||
|
areaName?: string
|
||||||
|
detailAddress: string
|
||||||
|
contactLastTime?: Date
|
||||||
|
contactNextTime: Date
|
||||||
|
createTime?: Date
|
||||||
|
updateTime?: Date
|
||||||
|
creator?: string
|
||||||
|
creatorName?: string
|
||||||
|
}
|
||||||
|
|
||||||
|
// 查询客户列表
|
||||||
|
export const getTodayCustomerPage = async (params) => {
|
||||||
|
return await request.get({ url: `/crm/message/todayCustomer`, params })
|
||||||
|
}
|
||||||
@ -0,0 +1,134 @@
|
|||||||
|
<template>
|
||||||
|
<el-row :gutter="20">
|
||||||
|
<el-col :span="4" class="min-w-[200px]">
|
||||||
|
<div class="side-item-list">
|
||||||
|
<div
|
||||||
|
v-for="(item, index) in leftSides"
|
||||||
|
:key="index"
|
||||||
|
:class="leftType == item.infoType ? 'side-item-select' : 'side-item-default'"
|
||||||
|
class="side-item"
|
||||||
|
@click="sideClick(item)"
|
||||||
|
>
|
||||||
|
{{ item.name }}
|
||||||
|
<el-badge v-if="item.msgCount > 0" :max="99" :value="item.msgCount" />
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</el-col>
|
||||||
|
<el-col :span="20" :xs="24">
|
||||||
|
<TodayCustomer v-if="leftType === 'todayCustomer'" />
|
||||||
|
<FollowLeads v-if="leftType === 'followLeads'" />
|
||||||
|
</el-col>
|
||||||
|
</el-row>
|
||||||
|
</template>
|
||||||
|
|
||||||
|
<script lang="ts" setup>
|
||||||
|
import TodayCustomer from './tables/TodayCustomer.vue'
|
||||||
|
import FollowLeads from './tables/FollowLeads.vue'
|
||||||
|
|
||||||
|
const leftType = ref('todayCustomer')
|
||||||
|
const leftSides = ref([
|
||||||
|
{
|
||||||
|
name: '今日需联系客户',
|
||||||
|
infoType: 'todayCustomer',
|
||||||
|
msgCount: 1,
|
||||||
|
tips: '下次跟进时间为今日的客户'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name: '分配给我的线索',
|
||||||
|
infoType: 'followLeads',
|
||||||
|
msgCount: 0,
|
||||||
|
tips: '转移之后未跟进的线索'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name: '分配给我的客户',
|
||||||
|
infoType: 'followCustomer',
|
||||||
|
msgCount: 0,
|
||||||
|
tips: '转移、领取、分配之后未跟进的客户,默认显示自己负责的客户'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name: '待进入公海的客户',
|
||||||
|
infoType: 'putInPoolRemind',
|
||||||
|
msgCount: 0,
|
||||||
|
tips: ''
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name: '待审核合同',
|
||||||
|
infoType: 'checkContract',
|
||||||
|
msgCount: 0,
|
||||||
|
tips: ''
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name: '待审核回款',
|
||||||
|
crmType: 'receivables',
|
||||||
|
infoType: 'checkReceivables',
|
||||||
|
msgCount: 0,
|
||||||
|
tips: ''
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name: '待回款提醒',
|
||||||
|
infoType: 'remindReceivablesPlan',
|
||||||
|
msgCount: 4,
|
||||||
|
tips: ''
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name: '即将到期的合同',
|
||||||
|
infoType: 'endContract',
|
||||||
|
msgCount: 20,
|
||||||
|
tips: '根据“合同到期时间”及设置的“提前提醒天数”提醒'
|
||||||
|
}
|
||||||
|
])
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 侧边点击
|
||||||
|
*/
|
||||||
|
const sideClick = (item) => {
|
||||||
|
leftType.value = item.infoType
|
||||||
|
}
|
||||||
|
</script>
|
||||||
|
|
||||||
|
<style lang="scss" scoped>
|
||||||
|
.side-item-list {
|
||||||
|
top: 0;
|
||||||
|
bottom: 0;
|
||||||
|
left: 0;
|
||||||
|
z-index: 1;
|
||||||
|
font-size: 14px;
|
||||||
|
background-color: white;
|
||||||
|
border: 1px solid #e6e6e6;
|
||||||
|
border-radius: 5px;
|
||||||
|
|
||||||
|
.side-item {
|
||||||
|
position: relative;
|
||||||
|
height: 50px;
|
||||||
|
padding: 0 20px;
|
||||||
|
line-height: 50px;
|
||||||
|
cursor: pointer;
|
||||||
|
|
||||||
|
i {
|
||||||
|
color: #999;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
.side-item-default {
|
||||||
|
color: #333;
|
||||||
|
border-right: 2px solid transparent;
|
||||||
|
}
|
||||||
|
|
||||||
|
.side-item-select {
|
||||||
|
color: #409eff;
|
||||||
|
background-color: #ecf5ff;
|
||||||
|
border-right: 2px solid var(--el-color-primary);
|
||||||
|
}
|
||||||
|
|
||||||
|
.el-badge :deep(.el-badge__content) {
|
||||||
|
top: 0;
|
||||||
|
border: none;
|
||||||
|
}
|
||||||
|
|
||||||
|
.el-badge {
|
||||||
|
position: absolute;
|
||||||
|
top: 0;
|
||||||
|
right: 15px;
|
||||||
|
}
|
||||||
|
</style>
|
||||||
@ -0,0 +1,14 @@
|
|||||||
|
<!-- 分配给我的线索 -->
|
||||||
|
<template>
|
||||||
|
<div>
|
||||||
|
TODO: 分配给我的线索
|
||||||
|
</div>
|
||||||
|
</template>
|
||||||
|
|
||||||
|
<script setup lang="ts" name="FollowLeads">
|
||||||
|
|
||||||
|
</script>
|
||||||
|
|
||||||
|
<style scoped>
|
||||||
|
|
||||||
|
</style>
|
||||||
Loading…
Reference in New Issue