【招生平台用户端】 新增# 线索列表接口
parent
889efd326d
commit
8cf9f6e0ea
|
@ -0,0 +1,10 @@
|
|||
import request from '@/utils/request'
|
||||
|
||||
// 线索详情
|
||||
export function clueDetail(params?: any) {
|
||||
return request.get({ url: '/clue/detail', params })
|
||||
}
|
||||
// 线索列表
|
||||
export function clueLists(params?: any) {
|
||||
return request.get({ url: '/clue/list', params })
|
||||
}
|
|
@ -10,3 +10,21 @@ export enum isDisabledEnum {
|
|||
YES = 1,
|
||||
NO = 0
|
||||
}
|
||||
export enum converStatusEnum {
|
||||
INTENTION = 0, //有意向
|
||||
UN_RECEIVED = 1, //待领取
|
||||
CONVERTED_PROCESS = 2, //转化中
|
||||
ADD_RELATION = 3, //已添加
|
||||
EXCEPTION = 4, //异常待处理
|
||||
CONVERTED = 5, //已成交
|
||||
FAILED = 6 //已战败
|
||||
}
|
||||
export const conversionMap = {
|
||||
[converStatusEnum.INTENTION]: '有意向',
|
||||
[converStatusEnum.UN_RECEIVED]: '待领取',
|
||||
[converStatusEnum.CONVERTED_PROCESS]: '转化中',
|
||||
[converStatusEnum.ADD_RELATION]: '已添加',
|
||||
[converStatusEnum.EXCEPTION]: '异常待处理',
|
||||
[converStatusEnum.CONVERTED]: '已成交',
|
||||
[converStatusEnum.FAILED]: '已战败'
|
||||
}
|
||||
|
|
|
@ -17,14 +17,16 @@ const loading = ref(false)
|
|||
watch(
|
||||
() => props.modelValue,
|
||||
() => {
|
||||
console.log('基础信息')
|
||||
loading.value = true
|
||||
setTimeout(() => {
|
||||
loading.value = false
|
||||
}, 500)
|
||||
fetchClueDetail()
|
||||
},
|
||||
{ immediate: true }
|
||||
)
|
||||
const fetchClueDetail = () => {
|
||||
loading.value = true
|
||||
try {
|
||||
} catch (error) {}
|
||||
loading.value = false
|
||||
}
|
||||
const baseInfo = ref([
|
||||
{
|
||||
title: '线索基本信息',
|
||||
|
|
|
@ -14,16 +14,16 @@
|
|||
import searchForm from './modules/search-form.vue'
|
||||
import clueList from './modules/clue-list.vue'
|
||||
import clueDetail from './modules/clue-detail.vue'
|
||||
import { postLists } from '@/api/org/post'
|
||||
import { usePaging } from '@/hooks/usePaging'
|
||||
import { clueLists } from '@/api/clue'
|
||||
|
||||
const queryParams = reactive({
|
||||
name: '',
|
||||
conversionStatus: ''
|
||||
likeWork: '',
|
||||
situation: ''
|
||||
})
|
||||
|
||||
const { pager, getLists, resetPage, resetParams } = usePaging({
|
||||
fetchFun: postLists,
|
||||
fetchFun: clueLists,
|
||||
params: queryParams
|
||||
})
|
||||
getLists()
|
||||
|
|
|
@ -1,6 +1,12 @@
|
|||
<template>
|
||||
<el-card shadow="never" class="!border-none mt-4">
|
||||
<ProTable ref="proTableRef" :columns="columns" :tableData="tableData" :loading="loading" :maxHeight="530">
|
||||
<template #listSource="{ row }">
|
||||
<span>{{ parseClueSource(row.listSource) }}</span>
|
||||
</template>
|
||||
<template #situation="{ row }">
|
||||
<span>{{ parseConversion(row.situation) }}</span>
|
||||
</template>
|
||||
<template #operation="{ row }">
|
||||
<slot name="operation" :row="row" />
|
||||
</template>
|
||||
|
@ -9,6 +15,8 @@
|
|||
</template>
|
||||
|
||||
<script setup lang="ts">
|
||||
import { converStatusEnum, conversionMap } from '@/enums'
|
||||
|
||||
defineProps({
|
||||
loading: {
|
||||
type: Boolean,
|
||||
|
@ -21,14 +29,20 @@ defineProps({
|
|||
})
|
||||
const proTableRef = ref()
|
||||
const columns = reactive([
|
||||
{ prop: 'accountName', label: '学生名字', width: 180 },
|
||||
{ prop: 'mobile', label: '联系电话', width: 180 },
|
||||
{ prop: 'organization', label: '电销老师', width: 180 },
|
||||
{ prop: 'position', label: '转化老师', width: 180 },
|
||||
{ prop: 'position', label: '名单来源', width: 180 },
|
||||
{ prop: 'position', label: '转化情况', width: 180 },
|
||||
{ prop: 'accountStatus', label: '创建人', width: 180 },
|
||||
{ prop: 'studentName', label: '学生名字', width: 180 },
|
||||
{ prop: 'phone', label: '联系电话', width: 180 },
|
||||
{ prop: 'telemarketingTeacherName', label: '电销老师', width: 180 },
|
||||
{ prop: 'recruitTeacherName', label: '转化老师', width: 180 },
|
||||
{ prop: 'listSource', label: '名单来源', width: 180 },
|
||||
{ prop: 'situation', label: '转化情况', width: 180 },
|
||||
{ prop: 'operation', label: '操作', fixed: 'right', width: 250 }
|
||||
])
|
||||
const clueSource = shallowRef([{ label: '线下名单', value: 0 }])
|
||||
const parseClueSource = (value: number) => {
|
||||
const item = clueSource.value.find((item: any) => item.value === value)
|
||||
return item?.label || ''
|
||||
}
|
||||
|
||||
const parseConversion = computed(() => (value: converStatusEnum) => conversionMap[value])
|
||||
</script>
|
||||
<style scoped></style>
|
||||
|
|
Loading…
Reference in New Issue