Browse Source

no message

master
xpz2018 9 months ago
parent
commit
1fabebcfeb
12 changed files with 115 additions and 189 deletions
  1. 48
      src/views/clue/clueList/index.vue
  2. 8
      src/views/clue/cluePool/index.vue
  3. 3
      src/views/clue/customer/index.vue
  4. 42
      src/views/clue/followlist/index.vue
  5. 8
      src/views/clue/poolist/index.vue
  6. 59
      src/views/components/Timeline.vue
  7. 6
      src/views/invite/index/index.vue
  8. 2
      src/views/invite/list/data.ts
  9. 32
      src/views/invite/list/index.vue
  10. 44
      src/views/invite/myList/index.vue
  11. 44
      src/views/invite/seasList/index.vue
  12. 8
      src/views/staff/staff/data.ts

48
src/views/clue/clueList/index.vue

@ -8,17 +8,17 @@
<InputNumber placeholder="请输入" style="width: 46%" v-model:value="ageModel.maxAge" />
</div>
</template>
<template #toolbar>
<!-- <template #toolbar>
<div style="width: 100%; padding: 2px" class="flex-row-center-space">
<RadioGroup button-style="solid" v-model:value="radioVal" @change="handleRadioChange">
<RadioButton v-for="item in followStatusList" :key="item.value" :value="item.value">{{item.label}}</RadioButton>
</RadioGroup>
</div>
</template>
</template> -->
<template #userinfo="{ text, record }">
<div class="flex-row" style="padding-left: 12px;">
<Image style="width: 40px;height: 40px;" :src="record.profilePhoto || 'https://dating-agency-prod.oss-cn-shenzhen.aliyuncs.com/827036501B11.png'" />
<div class="flex-col" style="margin-left: 8px;">
<div class="flex-row-center-start" style="padding-left: 12px;">
<Avatar :src="record.profilePhoto || 'https://dating-agency-prod.oss-cn-shenzhen.aliyuncs.com/827036501B11.png'" :size="64" />
<div class="flex-col" style="margin-left: 12px;">
<div class="flex-row">
<span class="single-line" style="font-size: 14px;color: #333;font-weight: bold;max-width: 160px;">{{record.nickName}}</span>
<!-- <span class="single-line" style="font-size: 13px;color: #666;margin: 0 12px;">(ID{{record.id}})</span> -->
@ -35,40 +35,7 @@
</div>
</template>
<template #allocateInfo="{ text, record }">
<ul class="ant-timeline" style="padding-top: 10px;" v-if="record.datingClueFollowRecordList && record.datingClueFollowRecordList.length">
<li class="ant-timeline-item" style="padding: 0 0 10px;">
<div class="ant-timeline-item-tail"></div>
<div class="ant-timeline-item-head ant-timeline-item-head-blue"><!----></div>
<div class="ant-timeline-item-content">
<div class="flex-row-center-start">
<span style="color: rgb(153, 153, 153);">2025年6月26日 14:38:26</span>
<span style="color: rgb(51, 51, 51); margin-left: 10px;"></span>
</div>
</div>
</li>
<li class="ant-timeline-item" style="padding: 0 0 10px;">
<div class="ant-timeline-item-tail"></div>
<div class="ant-timeline-item-head ant-timeline-item-head-blue"><!----></div>
<div class="ant-timeline-item-content">
<div class="flex-row-center-start">
<span style="color: rgb(153, 153, 153);">2025年6月26日 14:38:26</span>
<span style="color: rgb(51, 51, 51); margin-left: 10px;">果然非-飞鹅趣招亲-电话线索</span>
</div>
</div>
</li>
<li class="ant-timeline-item" style="padding: 0px;">
<div class="ant-timeline-item-head ant-timeline-item-head-blue"><!----></div>
<div class="ant-timeline-item-content">
<div class="flex-row-center-start">
<span style="color: rgb(153, 153, 153);">2025年6月26日 14:38:26</span>
<span style="color: rgb(51, 51, 51); margin-left: 10px;">果然非-飞鹅趣招亲-电话线索</span>
</div>
</div>
</li>
</ul>
<div class="flex-row-center-center" style="padding: 8px;" v-else>
<span style="color: #999;">暂无数据</span>
</div>
<Timeline :list="record.datingClueFollowRecordList"/>
</template>
<template #action="{ record }">
<TableAction
@ -95,11 +62,12 @@
<script setup lang="ts">
import moment from 'moment/moment'
import { computed, ref, reactive } from 'vue'
import { Card, Image, InputNumber, Timeline, TimelineItem, Result } from 'ant-design-vue'
import { Avatar, Card, Image, InputNumber, Result } from 'ant-design-vue'
import { useRouter } from 'vue-router'
import { tableColumns, tableFormSchema } from './data'
import { BasicTable, useTable, TableAction } from '/@/components/Table'
import { getClueList } from '/@/api/clue'
import Timeline from '../../components/Timeline.vue'
import { educationList, maritalList, genderList, followStageList } from '/@/enums/customerEnum'
const [registerTable, { reload, setPagination }] = useTable({

8
src/views/clue/cluePool/index.vue

@ -32,9 +32,9 @@
</div>
</template>
<template #userinfo="{ text, record }">
<div class="flex-row" style="padding-left: 12px;">
<Image style="width: 40px;height: 40px;" :src="record.profilePhoto || 'https://dating-agency-prod.oss-cn-shenzhen.aliyuncs.com/827036501B11.png'" />
<div class="flex-col" style="margin-left: 8px;">
<div class="flex-row-center-start" style="padding-left: 12px;">
<Avatar :src="record.profilePhoto || 'https://dating-agency-prod.oss-cn-shenzhen.aliyuncs.com/827036501B11.png'" :size="64" />
<div class="flex-col" style="margin-left: 12px;">
<div class="flex-row">
<span class="single-line" style="font-size: 14px;color: #333;font-weight: bold;max-width: 160px;">{{record.nickName}}</span>
<!-- <span class="single-line" style="font-size: 13px;color: #666;margin: 0 12px;">(ID{{record.id}})</span> -->
@ -92,7 +92,7 @@
<script setup lang="ts">
import moment from 'moment/moment'
import { onMounted, reactive, ref } from 'vue'
import { Card, Image, Button, InputNumber, Popconfirm, Checkbox } from 'ant-design-vue'
import { Avatar, Card, Image, Button, InputNumber, Popconfirm, Checkbox } from 'ant-design-vue'
import { useRouter } from 'vue-router'
import { useMessage } from '/@/hooks/web/useMessage'
import { tableColumns, tableFormSchema } from './data'

3
src/views/clue/customer/index.vue

@ -182,8 +182,7 @@
<div class="flex-row-center-space">
<div class="flex-row-center-start">
<span style="color: #333;">{{item.operatorName || item.operator}}</span>
<span style="color: #666;margin-left: 8px;">[{{followTypeList.find((find) => find.value === item.datingClueFollowType)?.label}}]</span>
<span style="color: #999;margin-left: 8px;">{{item.nextFollowTime}}</span>
<span style="color: #999;margin-left: 8px;">{{item.createTime}}</span>
</div>
<span style="color: #333;">[{{followStageList.find((find) => find.value === item.datingClueFollowStage)?.label}}]</span>
</div>

42
src/views/clue/followlist/index.vue

@ -16,8 +16,8 @@
</div>
</template> -->
<template #userinfo="{ text, record }">
<div class="flex-row" style="padding-left: 12px;">
<Image style="width: 40px;height: 40px;" :src="record.profilePhoto || 'https://dating-agency-prod.oss-cn-shenzhen.aliyuncs.com/827036501B11.png'" />
<div class="flex-row-center-start" style="padding-left: 12px;">
<Avatar :src="record.profilePhoto || 'https://dating-agency-prod.oss-cn-shenzhen.aliyuncs.com/827036501B11.png'" :size="64" />
<div class="flex-col" style="margin-left: 8px;">
<div class="flex-row">
<span class="single-line" style="font-size: 14px;color: #333;font-weight: bold;max-width: 160px;">{{record.nickName}}</span>
@ -35,40 +35,7 @@
</div>
</template>
<template #allocateInfo="{ text, record }">
<ul class="ant-timeline" style="padding-top: 10px;" v-if="record.datingClueFollowRecordList && record.datingClueFollowRecordList.length">
<li class="ant-timeline-item" style="padding: 0 0 10px;">
<div class="ant-timeline-item-tail"></div>
<div class="ant-timeline-item-head ant-timeline-item-head-blue"><!----></div>
<div class="ant-timeline-item-content">
<div class="flex-row-center-start">
<span style="color: rgb(153, 153, 153);">2025年6月26日 14:38:26</span>
<span style="color: rgb(51, 51, 51); margin-left: 10px;"></span>
</div>
</div>
</li>
<li class="ant-timeline-item" style="padding: 0 0 10px;">
<div class="ant-timeline-item-tail"></div>
<div class="ant-timeline-item-head ant-timeline-item-head-blue"><!----></div>
<div class="ant-timeline-item-content">
<div class="flex-row-center-start">
<span style="color: rgb(153, 153, 153);">2025年6月26日 14:38:26</span>
<span style="color: rgb(51, 51, 51); margin-left: 10px;">果然非-飞鹅趣招亲-电话线索</span>
</div>
</div>
</li>
<li class="ant-timeline-item" style="padding: 0px;">
<div class="ant-timeline-item-head ant-timeline-item-head-blue"><!----></div>
<div class="ant-timeline-item-content">
<div class="flex-row-center-start">
<span style="color: rgb(153, 153, 153);">2025年6月26日 14:38:26</span>
<span style="color: rgb(51, 51, 51); margin-left: 10px;">果然非-飞鹅趣招亲-电话线索</span>
</div>
</div>
</li>
</ul>
<div class="flex-row-center-center" style="padding: 8px;" v-else>
<span style="color: #999;">暂无数据</span>
</div>
<Timeline :list="record.datingClueFollowRecordList"/>
</template>
<template #action="{ record }">
<TableAction
@ -95,11 +62,12 @@
<script setup lang="ts">
import moment from 'moment/moment'
import { computed, ref, reactive } from 'vue'
import { Card, Image, InputNumber, Timeline, TimelineItem, Result } from 'ant-design-vue'
import { Avatar, Card, Image, InputNumber, Timeline, TimelineItem, Result } from 'ant-design-vue'
import { useRouter } from 'vue-router'
import { tableColumns, tableFormSchema } from './data'
import { BasicTable, useTable, TableAction } from '/@/components/Table'
import { getClueFollow } from '/@/api/clue'
import Timeline from '../../components/Timeline.vue'
import { educationList, maritalList, genderList, followStageList } from '/@/enums/customerEnum'
const [registerTable, { reload, setPagination }] = useTable({

8
src/views/clue/poolist/index.vue

@ -32,9 +32,9 @@
</div>
</template>
<template #userinfo="{ text, record }">
<div class="flex-row" style="padding-left: 12px;">
<Image style="width: 40px;height: 40px;" :src="record.profilePhoto || 'https://dating-agency-prod.oss-cn-shenzhen.aliyuncs.com/827036501B11.png'" />
<div class="flex-col" style="margin-left: 8px;">
<div class="flex-row-center-start" style="padding-left: 12px;">
<Avatar :src="record.profilePhoto || 'https://dating-agency-prod.oss-cn-shenzhen.aliyuncs.com/827036501B11.png'" :size="64" />
<div class="flex-col" style="margin-left: 12px;">
<div class="flex-row">
<span class="single-line" style="font-size: 14px;color: #333;font-weight: bold;max-width: 160px;">{{record.nickName}}</span>
<!-- <span class="single-line" style="font-size: 13px;color: #666;margin: 0 12px;">(ID{{record.id}})</span> -->
@ -92,7 +92,7 @@
<script setup lang="ts">
import moment from 'moment/moment'
import { onMounted, reactive, ref } from 'vue'
import { Card, Image, Button, InputNumber, Popconfirm, Checkbox } from 'ant-design-vue'
import { Avatar, Card, Image, Button, InputNumber, Popconfirm, Checkbox } from 'ant-design-vue'
import { useRouter } from 'vue-router'
import { useMessage } from '/@/hooks/web/useMessage'
import { tableColumns, tableFormSchema } from './data'

59
src/views/components/Timeline.vue

@ -0,0 +1,59 @@
<template>
<ul class="ant-timeline" v-if="list && list.length" :style="{paddingTop: list.length == 1 ? '24px' : '10px'}" >
<li class="ant-timeline-item" :style="{padding: list.length > 1 ? '0 0 10px' : '0px'}" v-if="list.length >= 1">
<div class="ant-timeline-item-tail" v-if="list.length > 1"></div>
<div class="ant-timeline-item-head ant-timeline-item-head-blue"><!----></div>
<div class="ant-timeline-item-content">
<div class="flex-row-center-start">
<span style="color: rgb(153, 153, 153);">{{list[0].createTime}}</span>
<span style="color: rgb(51, 51, 51);margin-left: 10px;">{{list[0].operatorName}}</span>
<span style="color: #333;" v-if="list[0].datingClueFollowStage">-{{followStageList.find((find) => find.value === list[0].datingClueFollowStage)?.label}}</span>
</div>
</div>
</li>
<li class="ant-timeline-item" :style="{padding: list.length > 2 ? '0 0 10px' : '0px'}" v-if="list.length >= 2">
<div class="ant-timeline-item-tail" v-if="list.length > 2"></div>
<div class="ant-timeline-item-head ant-timeline-item-head-blue"><!----></div>
<div class="ant-timeline-item-content">
<div class="flex-row-center-start">
<span style="color: rgb(153, 153, 153);">{{list[1].createTime}}</span>
<span style="color: rgb(51, 51, 51);margin-left: 10px;">{{list[1].operatorName}}</span>
<span style="color: #333;" v-if="list[1].datingClueFollowStage">-{{followStageList.find((find) => find.value === list[1].datingClueFollowStage)?.label}}</span>
</div>
</div>
</li>
<li class="ant-timeline-item" style="padding: 0px;" v-if="list.length >= 3">
<div class="ant-timeline-item-head ant-timeline-item-head-blue"><!----></div>
<div class="ant-timeline-item-content">
<div class="flex-row-center-start">
<span style="color: rgb(153, 153, 153);">{{list[2].createTime}}</span>
<span style="color: rgb(51, 51, 51);margin-left: 10px;">{{list[2].operatorName}}</span>
<span style="color: #333;" v-if="list[2].datingClueFollowStage">-{{followStageList.find((find) => find.value === list[2].datingClueFollowStage)?.label}}</span>
</div>
</div>
</li>
</ul>
<div class="flex-row-center-center" style="padding: 8px;" v-else>
<span style="color: #999;">暂无数据</span>
</div>
</template>
<script>
import { followStageList } from '/@/enums/customerEnum'
export default {
name: 'Timeline',
props: {
list: { //
type: Array,
default: () => {
return []
}
},
},
data() {
return {
followStageList
};
},
}
</script>

6
src/views/invite/index/index.vue

@ -9,10 +9,10 @@
</div>
</template>
<template #toolbar>
<div style="width: 100%; padding: 2px" class="flex-row-center-space">
<RadioGroup button-style="solid" v-model:value="radioVal" @change="handleRadioChange">
<div style="width: 100%; padding: 2px" class="flex-row-center-end">
<!-- <RadioGroup button-style="solid" v-model:value="radioVal" @change="handleRadioChange">
<RadioButton v-for="item in clueStatusList" :key="item.value" :value="item.value">{{item.label}}</RadioButton>
</RadioGroup>
</RadioGroup> -->
<div class="flex-row-center-start">
<Popconfirm placement="bottomRight" icon="分配线索" :disabled="datingClueIdList.length == 0" @confirm="allocateList(null)">
<template #title>

2
src/views/invite/list/data.ts

@ -11,7 +11,7 @@ export const tableColumns: BasicColumn[] = [
// return channelList.find((find) => find.value === text)?.label
// },
// },
{ title: '录入信息', dataIndex: 'recordInfo', slots: { customRender: 'recordInfo' } },
{ title: '录入信息', dataIndex: 'allocateInfo', slots: { customRender: 'allocateInfo' } },
// { width: 80, title: '状态', dataIndex: 'allocationStatus',
// customRender: ({ text }) => {
// return clueStatusList.find((find) => find.value === text)?.label

32
src/views/invite/list/index.vue

@ -8,8 +8,8 @@
<InputNumber placeholder="请输入" style="width: 46%" v-model:value="ageModel.maxAge" />
</div>
</template>
<template #toolbar>
<div style="width: 100%; padding: 2px" class="flex-row-center-space">
<!-- <template #toolbar>
<div style="width: 100%; padding: 2px" class="flex-row-center-end">
<RadioGroup button-style="solid" v-model:value="radioVal" @change="handleRadioChange">
<RadioButton v-for="item in clueStatusList" :key="item.value" :value="item.value">{{item.label}}</RadioButton>
</RadioGroup>
@ -29,11 +29,11 @@
<Button :type="'primary'" style="margin-left: 16px;" @click="handleAdd(false)">新增</Button>
</div>
</div>
</template>
</template> -->
<template #userinfo="{ text, record }">
<div class="flex-row">
<Image style="width: 40px;height: 40px;" :src="record.profilePhoto || 'https://dating-agency-prod.oss-cn-shenzhen.aliyuncs.com/827036501B11.png'" />
<div class="flex-col" style="margin-left: 8px;">
<div class="flex-row-center-start">
<Avatar :src="record.profilePhoto || 'https://dating-agency-prod.oss-cn-shenzhen.aliyuncs.com/827036501B11.png'" :size="64" />
<div class="flex-col" style="margin-left: 12px;">
<div class="flex-row">
<span class="single-line" style="font-size: 14px;color: #333;font-weight: bold;max-width: 160px;">{{record.nickName}}</span>
<!-- <span class="single-line" style="font-size: 13px;color: #666;margin: 0 12px;">(ID{{record.id}})</span> -->
@ -47,15 +47,10 @@
</div>
</div>
</template>
<template #allocateInfo="{ text, record }">
<Timeline :list="record.datingClueFollowRecordList"/>
</template>
<template #action="{ record }">
<!-- <TableAction
:actions="[
{
label: '详情',
onClick: toDetail.bind(null, record),
},
]"
/> -->
<div class="flex-row-center-start">
<Button type="link" @click="toDetail(record)">详情</Button>
<span style="color: #999;">|</span>
@ -87,15 +82,16 @@
<script setup lang="ts">
import moment from 'moment/moment'
import { onMounted, reactive, ref } from 'vue'
import { Card, Image, Button, InputNumber, Popconfirm, Checkbox } from 'ant-design-vue'
import { Avatar, Card, Image, Button, InputNumber, Popconfirm, Checkbox } from 'ant-design-vue'
import { useRouter } from 'vue-router'
import { useMessage } from '/@/hooks/web/useMessage'
import { tableColumns, tableFormSchema } from './data'
import { useModal } from '/@/components/Modal'
import { BasicTable, useTable, TableAction } from '/@/components/Table'
import { getInvitationList, allocateCluing } from '/@/api/clue'
import Timeline from '../../components/Timeline.vue'
import { pageOrganizationMember } from '/@/api/staff/staff'
import { educationList, maritalList } from '/@/enums/customerEnum'
import { educationList, maritalList, followStageList } from '/@/enums/customerEnum'
const radioVal = ref<any>('')
const verifier = ref<any>('')
@ -120,10 +116,10 @@
})
const [registerTable, { reload, setPagination, getSelectRowKeys, clearSelectedRowKeys }] = useTable({
bordered: true,
bordered: false,
useSearchForm: true,
columns: tableColumns,
showIndexColumn: true,
showIndexColumn: false,
showTableSetting: false,
api: getInvitationList,
// rowKey: 'id',

44
src/views/invite/myList/index.vue

@ -16,9 +16,9 @@
</div>
</template>
<template #userinfo="{ text, record }">
<div class="flex-row" style="padding-left: 12px;">
<Image style="width: 40px;height: 40px;" :src="record.profilePhoto || 'https://dating-agency-prod.oss-cn-shenzhen.aliyuncs.com/827036501B11.png'" />
<div class="flex-col" style="margin-left: 8px;">
<div class="flex-row-center-start" style="padding-left: 12px;">
<Avatar :src="record.profilePhoto || 'https://dating-agency-prod.oss-cn-shenzhen.aliyuncs.com/827036501B11.png'" :size="64" />
<div class="flex-col" style="margin-left: 12px;">
<div class="flex-row">
<span class="single-line" style="font-size: 14px;color: #333;font-weight: bold;max-width: 160px;">{{record.nickName}}</span>
<!-- <span class="single-line" style="font-size: 13px;color: #666;margin: 0 12px;">(ID{{record.id}})</span> -->
@ -35,40 +35,7 @@
</div>
</template>
<template #allocateInfo="{ text, record }">
<ul class="ant-timeline" style="padding-top: 10px;" v-if="record.datingClueFollowRecordList && record.datingClueFollowRecordList.length">
<li class="ant-timeline-item" style="padding: 0 0 10px;">
<div class="ant-timeline-item-tail"></div>
<div class="ant-timeline-item-head ant-timeline-item-head-blue"><!----></div>
<div class="ant-timeline-item-content">
<div class="flex-row-center-start">
<span style="color: rgb(153, 153, 153);">2025年6月26日 14:38:26</span>
<span style="color: rgb(51, 51, 51); margin-left: 10px;"></span>
</div>
</div>
</li>
<li class="ant-timeline-item" style="padding: 0 0 10px;">
<div class="ant-timeline-item-tail"></div>
<div class="ant-timeline-item-head ant-timeline-item-head-blue"><!----></div>
<div class="ant-timeline-item-content">
<div class="flex-row-center-start">
<span style="color: rgb(153, 153, 153);">2025年6月26日 14:38:26</span>
<span style="color: rgb(51, 51, 51); margin-left: 10px;">果然非-飞鹅趣招亲-电话线索</span>
</div>
</div>
</li>
<li class="ant-timeline-item" style="padding: 0px;">
<div class="ant-timeline-item-head ant-timeline-item-head-blue"><!----></div>
<div class="ant-timeline-item-content">
<div class="flex-row-center-start">
<span style="color: rgb(153, 153, 153);">2025年6月26日 14:38:26</span>
<span style="color: rgb(51, 51, 51); margin-left: 10px;">果然非-飞鹅趣招亲-电话线索</span>
</div>
</div>
</li>
</ul>
<div class="flex-row-center-center" style="padding: 8px;" v-else>
<span style="color: #999;">暂无数据</span>
</div>
<Timeline :list="record.datingClueFollowRecordList"/>
</template>
<template #action="{ record }">
<TableAction
@ -100,12 +67,13 @@
<script setup lang="ts">
import moment from 'moment/moment'
import { computed, ref, reactive } from 'vue'
import { Card, Image, InputNumber, Timeline, TimelineItem, Result } from 'ant-design-vue'
import { Avatar, Card, Image, InputNumber, Timeline, TimelineItem, Result } from 'ant-design-vue'
import { useRouter } from 'vue-router'
import { tableColumns, tableFormSchema } from './data'
import { BasicTable, useTable, TableAction } from '/@/components/Table'
import { useModal } from '/@/components/Modal'
import FollowModal from '../components/modal.vue'
import Timeline from '../../components/Timeline.vue'
import { getMyInvitationList } from '/@/api/clue'
import { educationList, maritalList, genderList, followStageList } from '/@/enums/customerEnum'

44
src/views/invite/seasList/index.vue

@ -16,9 +16,9 @@
</div>
</template> -->
<template #userinfo="{ text, record }">
<div class="flex-row" style="padding-left: 12px;">
<Image style="width: 40px;height: 40px;" :src="record.profilePhoto || 'https://dating-agency-prod.oss-cn-shenzhen.aliyuncs.com/827036501B11.png'" />
<div class="flex-col" style="margin-left: 8px;">
<div class="flex-row-canter-start" style="padding-left: 12px;">
<Avatar :src="record.profilePhoto || 'https://dating-agency-prod.oss-cn-shenzhen.aliyuncs.com/827036501B11.png'" :size="64" />
<div class="flex-col" style="margin-left: 12px;">
<div class="flex-row">
<span class="single-line" style="font-size: 14px;color: #333;font-weight: bold;max-width: 160px;">{{record.nickName}}</span>
<!-- <span class="single-line" style="font-size: 13px;color: #666;margin: 0 12px;">(ID{{record.id}})</span> -->
@ -35,40 +35,7 @@
</div>
</template>
<template #allocateInfo="{ text, record }">
<ul class="ant-timeline" style="padding-top: 10px;" v-if="record.datingClueFollowRecordList && record.datingClueFollowRecordList.length">
<li class="ant-timeline-item" style="padding: 0 0 10px;">
<div class="ant-timeline-item-tail"></div>
<div class="ant-timeline-item-head ant-timeline-item-head-blue"><!----></div>
<div class="ant-timeline-item-content">
<div class="flex-row-center-start">
<span style="color: rgb(153, 153, 153);">2025年6月26日 14:38:26</span>
<span style="color: rgb(51, 51, 51); margin-left: 10px;"></span>
</div>
</div>
</li>
<li class="ant-timeline-item" style="padding: 0 0 10px;">
<div class="ant-timeline-item-tail"></div>
<div class="ant-timeline-item-head ant-timeline-item-head-blue"><!----></div>
<div class="ant-timeline-item-content">
<div class="flex-row-center-start">
<span style="color: rgb(153, 153, 153);">2025年6月26日 14:38:26</span>
<span style="color: rgb(51, 51, 51); margin-left: 10px;">果然非-飞鹅趣招亲-电话线索</span>
</div>
</div>
</li>
<li class="ant-timeline-item" style="padding: 0px;">
<div class="ant-timeline-item-head ant-timeline-item-head-blue"><!----></div>
<div class="ant-timeline-item-content">
<div class="flex-row-center-start">
<span style="color: rgb(153, 153, 153);">2025年6月26日 14:38:26</span>
<span style="color: rgb(51, 51, 51); margin-left: 10px;">果然非-飞鹅趣招亲-电话线索</span>
</div>
</div>
</li>
</ul>
<div class="flex-row-center-center" style="padding: 8px;" v-else>
<span style="color: #999;">暂无数据</span>
</div>
<Timeline :list="record.datingClueFollowRecordList"/>
</template>
<template #action="{ record }">
<TableAction
@ -99,11 +66,12 @@
<script setup lang="ts">
import moment from 'moment/moment'
import { computed, ref, reactive } from 'vue'
import { Card, Image, InputNumber, Timeline, TimelineItem, Result } from 'ant-design-vue'
import { Avatar, Card, Image, InputNumber, Timeline, TimelineItem, Result } from 'ant-design-vue'
import { useRouter } from 'vue-router'
import { tableColumns, tableFormSchema } from './data'
import { useMessage } from '/@/hooks/web/useMessage'
import { BasicTable, useTable, TableAction } from '/@/components/Table'
import Timeline from '../../components/Timeline.vue'
import { getSeasList, receiveCluing } from '/@/api/clue'
import { educationList, maritalList, genderList, followStageList } from '/@/enums/customerEnum'

8
src/views/staff/staff/data.ts

@ -3,12 +3,12 @@ import { ref } from 'vue'
import { getRoleListByPage } from '/@/api/sys/menu';
export const tableColumns: BasicColumn[] = [
{ title: '用户id', dataIndex: 'userId' },
{ width: 100, title: '姓名', dataIndex: 'realName' },
{ width: 120,title: '手机号', dataIndex: 'phone' },
// { title: '用户id', dataIndex: 'userId' },
{ width: 120, title: '姓名', dataIndex: 'realName' },
{ width: 160,title: '手机号', dataIndex: 'phone' },
{ title: '角色', dataIndex: 'role', slots: { customRender: 'role' }, },
{ title: '部门', dataIndex: 'departmentName' },
{ width: 80, title: '员工码', dataIndex: 'code' },
// { width: 80, title: '员工码', dataIndex: 'code' },
{ title: '添加时间', dataIndex: 'joinedTime' },
]
export const tableFormSchema: FormSchema[] = [

Loading…
Cancel
Save