|
@@ -21,12 +21,12 @@
|
|
|
<div class="table-page-search-wrapper">
|
|
|
<a-form layout="inline">
|
|
|
<a-row :gutter="20">
|
|
|
- <a-col :md="5" :sm="24">
|
|
|
+ <a-col :xl="6" :lg="8" :md="12" :sm="24">
|
|
|
<a-form-item label="搜索线索">
|
|
|
<a-input v-model="queryParam.id" placeholder="请输入线索姓名或手机号"/>
|
|
|
</a-form-item>
|
|
|
</a-col>
|
|
|
- <a-col :md="5" :sm="24">
|
|
|
+ <a-col :xl="6" :lg="8" :md="12" :sm="24">
|
|
|
<a-form-item label="跟进人">
|
|
|
<a-select v-model="queryParam.status" placeholder="请选择跟进人" default-value="0">
|
|
|
<a-select-option value="0">全部</a-select-option>
|
|
@@ -35,27 +35,27 @@
|
|
|
</a-select>
|
|
|
</a-form-item>
|
|
|
</a-col>
|
|
|
- <a-col :md="5" :sm="24">
|
|
|
+ <a-col :xl="6" :lg="8" :md="12" :sm="24">
|
|
|
<a-form-item label="添加时间">
|
|
|
<a-range-picker allowClear v-model="createTime" :format="dateFormat" @change="handleTimeChange" />
|
|
|
</a-form-item>
|
|
|
</a-col>
|
|
|
- <a-col :md="5" :sm="24">
|
|
|
+ <a-col :xl="6" :lg="8" :md="12" :sm="24">
|
|
|
<a-form-item label="跟进添加">
|
|
|
<a-range-picker allowClear v-model="createTime" :format="dateFormat" @change="handleTimeChange" />
|
|
|
</a-form-item>
|
|
|
</a-col>
|
|
|
- <a-col :md="4" :sm="24">
|
|
|
+ <a-col :xl="6" :lg="8" :md="12" :sm="24">
|
|
|
<a-form-item label="最后跟进">
|
|
|
<a-range-picker allowClear v-model="createTime" :format="dateFormat" @change="handleTimeChange" />
|
|
|
</a-form-item>
|
|
|
</a-col>
|
|
|
- <a-col :md="5" :sm="24">
|
|
|
+ <a-col :xl="6" :lg="8" :md="12" :sm="24">
|
|
|
<a-form-item label="待回访日期">
|
|
|
<a-range-picker allowClear v-model="createTime" :format="dateFormat" @change="handleTimeChange" />
|
|
|
</a-form-item>
|
|
|
</a-col>
|
|
|
- <a-col :md="5" :sm="24">
|
|
|
+ <a-col :xl="6" :lg="8" :md="12" :sm="24">
|
|
|
<a-form-item label="来源渠道">
|
|
|
<a-select v-model="queryParam.status" placeholder="请选择来源渠道" default-value="0">
|
|
|
<a-select-option value="0">全部</a-select-option>
|
|
@@ -64,7 +64,7 @@
|
|
|
</a-select>
|
|
|
</a-form-item>
|
|
|
</a-col>
|
|
|
- <a-col :md="5" :sm="24">
|
|
|
+ <a-col :xl="6" :lg="8" :md="12" :sm="24">
|
|
|
<a-form-item label="意向度">
|
|
|
<a-select v-model="queryParam.status" placeholder="请选择意向度" default-value="0">
|
|
|
<a-select-option value="0">全部</a-select-option>
|
|
@@ -73,7 +73,7 @@
|
|
|
</a-select>
|
|
|
</a-form-item>
|
|
|
</a-col>
|
|
|
- <a-col :md="5" :sm="24">
|
|
|
+ <a-col :xl="6" :lg="8" :md="12" :sm="24">
|
|
|
<a-form-item label="意向课程">
|
|
|
<a-select v-model="queryParam.status" placeholder="请选择意向课程" default-value="0">
|
|
|
<a-select-option value="0">全部</a-select-option>
|
|
@@ -82,7 +82,7 @@
|
|
|
</a-select>
|
|
|
</a-form-item>
|
|
|
</a-col>
|
|
|
- <a-col :md="4" :sm="24">
|
|
|
+ <a-col :xl="6" :lg="8" :md="12" :sm="24">
|
|
|
<a-form-item label="采单员">
|
|
|
<a-select v-model="queryParam.status" placeholder="请选择采单员" default-value="0">
|
|
|
<a-select-option value="0">全部</a-select-option>
|
|
@@ -91,7 +91,7 @@
|
|
|
</a-select>
|
|
|
</a-form-item>
|
|
|
</a-col>
|
|
|
- <a-col :md="5" :sm="24">
|
|
|
+ <a-col :xl="6" :lg="8" :md="12" :sm="24">
|
|
|
<a-form-item label="线索状态">
|
|
|
<a-select v-model="queryParam.status" placeholder="请选择线索状态" default-value="0">
|
|
|
<a-select-option value="0">全部</a-select-option>
|
|
@@ -100,7 +100,7 @@
|
|
|
</a-select>
|
|
|
</a-form-item>
|
|
|
</a-col>
|
|
|
- <a-col :md="5" :sm="24">
|
|
|
+ <a-col :xl="6" :lg="8" :md="12" :sm="24">
|
|
|
<a-form-item label="跟进状态">
|
|
|
<a-select v-model="queryParam.status" placeholder="请选择跟进状态" default-value="0">
|
|
|
<a-select-option value="0">全部</a-select-option>
|
|
@@ -109,7 +109,7 @@
|
|
|
</a-select>
|
|
|
</a-form-item>
|
|
|
</a-col>
|
|
|
- <a-col :md="5" :sm="24">
|
|
|
+ <a-col :xl="6" :lg="8" :md="12" :sm="24">
|
|
|
<a-form-item label="就读年级">
|
|
|
<a-select v-model="queryParam.status" placeholder="请选择就读年级" default-value="0">
|
|
|
<a-select-option value="0">全部</a-select-option>
|
|
@@ -146,14 +146,17 @@
|
|
|
:alert="false"
|
|
|
:rowSelection="rowSelection"
|
|
|
showPagination="auto">
|
|
|
- <span slot="serial" slot-scope="text, record, index">
|
|
|
- {{ index + 1 }}
|
|
|
+ <span slot="handleState" slot-scope="text, record, index">
|
|
|
+ {{ record.followState < 1 ? '未跟进' : '已跟进' }}
|
|
|
</span>
|
|
|
- <span slot="status" slot-scope="text">
|
|
|
- <a-badge :status="text | statusTypeFilter" :text="text | statusFilter" />
|
|
|
+ <span slot="important" slot-scope="text">
|
|
|
+ {{ text | importantFilter }}
|
|
|
</span>
|
|
|
- <span slot="description" slot-scope="text">
|
|
|
- <ellipsis :length="4" tooltip>{{ text }}</ellipsis>
|
|
|
+ <span slot="followState" slot-scope="text">
|
|
|
+ {{ text | followStateFilter }}
|
|
|
+ </span>
|
|
|
+ <span slot="babyGender" slot-scope="text">
|
|
|
+ {{ text | genderFilter }}
|
|
|
</span>
|
|
|
<span slot="action" slot-scope="text, record">
|
|
|
<template>
|
|
@@ -217,8 +220,8 @@
|
|
|
|
|
|
<script>
|
|
|
import moment from 'moment'
|
|
|
+import { getSaleLeadsList} from '@/api/markting'
|
|
|
import { STable, Ellipsis } from '@/components';
|
|
|
-import { getRoleList, getServiceList } from '@/api/manage'
|
|
|
import MemberForm from '../modules/MemberForm' // 添加线索
|
|
|
import AssignSales from '../modules/AssignSales' // 分配线索
|
|
|
import CancelLeads from '../modules/CancelLeads' // 标为无效
|
|
@@ -227,38 +230,69 @@ import Info from '../components/Info'
|
|
|
|
|
|
const columns = [
|
|
|
{
|
|
|
- title: '#',
|
|
|
- scopedSlots: { customRender: 'serial' }
|
|
|
+ title: '学员姓名',
|
|
|
+ dataIndex: 'babyName'
|
|
|
+ },
|
|
|
+ {
|
|
|
+ title: '联系电话',
|
|
|
+ dataIndex: 'parentsPhone',
|
|
|
+ },
|
|
|
+ {
|
|
|
+ title: '添加时间',
|
|
|
+ dataIndex: 'parentsPhone',
|
|
|
+ },
|
|
|
+ {
|
|
|
+ title: '线索状态',
|
|
|
+ scopedSlots: { customRender: 'handleState' } // followState< 1 未跟进 否则已跟进
|
|
|
+ },
|
|
|
+ {
|
|
|
+ title: '市场活动名称',
|
|
|
+ dataIndex: 'followState',// 跟进状态,未跟进0,待跟进1,跟进中2,试听3,已听4,已签约5
|
|
|
+ scopedSlots: { customRender: 'followState' }
|
|
|
+ },
|
|
|
+ {
|
|
|
+ title: '意向度',
|
|
|
+ dataIndex: 'important', // 重要程度 0一般1中等2非常
|
|
|
+ scopedSlots: { customRender: 'important' }
|
|
|
+ },
|
|
|
+ {
|
|
|
+ title: '意向课程',
|
|
|
+ dataIndex: 'babyGender', // 宝宝性别012
|
|
|
+ scopedSlots: { customRender: 'babyGender' }
|
|
|
+ },
|
|
|
+ {
|
|
|
+ title: '就读年级',
|
|
|
+ dataIndex: 'preSaleLabel',
|
|
|
+ },
|
|
|
+ {
|
|
|
+ title: '就读学校',
|
|
|
+ dataIndex: 'orderLabel',
|
|
|
},
|
|
|
{
|
|
|
- title: '规则编号',
|
|
|
- dataIndex: 'no'
|
|
|
+ title: '跟进状态',
|
|
|
+ dataIndex: 'marketActivityLabel',
|
|
|
},
|
|
|
{
|
|
|
- title: '描述',
|
|
|
- dataIndex: 'description',
|
|
|
- scopedSlots: { customRender: 'description' }
|
|
|
+ title: '负责销售',
|
|
|
+ dataIndex: 'channelLabel',
|
|
|
},
|
|
|
{
|
|
|
- title: '服务调用次数',
|
|
|
- dataIndex: 'callNo',
|
|
|
- sorter: true,
|
|
|
- needTotal: true,
|
|
|
- customRender: (text) => text + ' 次'
|
|
|
+ title: '最后跟进时间',
|
|
|
+ dataIndex: 'channelLabel',
|
|
|
},
|
|
|
{
|
|
|
- title: '状态',
|
|
|
- dataIndex: 'status',
|
|
|
- scopedSlots: { customRender: 'status' }
|
|
|
+ title: '待回访时间',
|
|
|
+ dataIndex: 'channelLabel',
|
|
|
},
|
|
|
{
|
|
|
- title: '更新时间',
|
|
|
- dataIndex: 'updatedAt',
|
|
|
- sorter: true
|
|
|
+ title: '采单员',
|
|
|
+ dataIndex: 'channelLabel',
|
|
|
},
|
|
|
{
|
|
|
title: '操作',
|
|
|
- scopedSlots: { customRender: 'action' },
|
|
|
+ scopedSlots: {
|
|
|
+ customRender: 'action'
|
|
|
+ }
|
|
|
}
|
|
|
]
|
|
|
|
|
@@ -281,6 +315,54 @@ const statusMap = {
|
|
|
}
|
|
|
}
|
|
|
|
|
|
+const importantMap = {
|
|
|
+ 0: {
|
|
|
+ status: 'default',
|
|
|
+ text: '一般'
|
|
|
+ },
|
|
|
+ 1: {
|
|
|
+ status: 'processing',
|
|
|
+ text: '中等'
|
|
|
+ },
|
|
|
+ 2: {
|
|
|
+ status: 'success',
|
|
|
+ text: '非常'
|
|
|
+ }
|
|
|
+}
|
|
|
+
|
|
|
+const followStateMap = {
|
|
|
+ 0: {
|
|
|
+ text: '未跟进'
|
|
|
+ },
|
|
|
+ 1: {
|
|
|
+ text: '待跟进'
|
|
|
+ },
|
|
|
+ 2: {
|
|
|
+ text: '跟进中'
|
|
|
+ },
|
|
|
+ 3: {
|
|
|
+ text: '试听'
|
|
|
+ },
|
|
|
+ 4: {
|
|
|
+ text: '已听'
|
|
|
+ },
|
|
|
+ 5: {
|
|
|
+ text: '已签约'
|
|
|
+ }
|
|
|
+}
|
|
|
+
|
|
|
+const genderMap = {
|
|
|
+ 0: {
|
|
|
+ text: '女'
|
|
|
+ },
|
|
|
+ 1: {
|
|
|
+ text: '男'
|
|
|
+ },
|
|
|
+ 2: {
|
|
|
+ text: '未知'
|
|
|
+ }
|
|
|
+}
|
|
|
+
|
|
|
export default {
|
|
|
name: 'SeasList',
|
|
|
components: {
|
|
@@ -311,9 +393,9 @@ export default {
|
|
|
loadData: parameter => {
|
|
|
const requestParameters = Object.assign({}, parameter, this.queryParam)
|
|
|
console.log('loadData request parameters:', requestParameters)
|
|
|
- return getServiceList(requestParameters)
|
|
|
+ return getSaleLeadsList(requestParameters)
|
|
|
.then(res => {
|
|
|
- return res.result
|
|
|
+ return res.data
|
|
|
})
|
|
|
},
|
|
|
selectedRowKeys: [],
|
|
@@ -326,6 +408,15 @@ export default {
|
|
|
},
|
|
|
statusTypeFilter (type) {
|
|
|
return statusMap[type].status
|
|
|
+ },
|
|
|
+ importantFilter (type) {
|
|
|
+ return importantMap[type].text
|
|
|
+ },
|
|
|
+ followStateFilter (type) {
|
|
|
+ return followStateMap[type].text
|
|
|
+ },
|
|
|
+ genderFilter (type) {
|
|
|
+ return genderMap[type].text
|
|
|
}
|
|
|
},
|
|
|
created() {
|