|
|
|
@ -155,21 +155,10 @@ |
|
|
|
</TabPane> |
|
|
|
<TabPane key="2" tab="邀约进店"> |
|
|
|
<div style="height: 100%;width: 100%;position: relative;"> |
|
|
|
<!-- <Button shape="circle" type="primary" ghost style="position: absolute;right: 24rpx;bottom: 24rpx;"> |
|
|
|
<template #icon><Icon icon="ant-design:plus-outlined" size="16px" style="color: #0960bd;"/></template> |
|
|
|
</Button> --> |
|
|
|
<!-- <Table bordered :pagination="false" :columns="tableColumns" :dataSource="appointmentList"> |
|
|
|
|
|
|
|
</Table> --> |
|
|
|
<BasicTable @register="registerTable"> |
|
|
|
<template #action="{ record }"> |
|
|
|
<TableAction |
|
|
|
:actions="[ |
|
|
|
{ |
|
|
|
label: '取消', |
|
|
|
color: 'error', |
|
|
|
// onClick: handleCancel.bind(null, record['id']), |
|
|
|
}, |
|
|
|
{ |
|
|
|
label: '编辑', |
|
|
|
onClick: handleAppointment.bind(null, record), |
|
|
|
@ -178,17 +167,26 @@ |
|
|
|
label: '结算', |
|
|
|
color: 'error', |
|
|
|
ifShow: record['status'] === 5, |
|
|
|
// onClick: handleSettle.bind(null, record['id']), |
|
|
|
} |
|
|
|
]" |
|
|
|
/> |
|
|
|
</template> |
|
|
|
</BasicTable> |
|
|
|
<!-- <Result subTitle="暂无数据"></Result> --> |
|
|
|
</div> |
|
|
|
</TabPane> |
|
|
|
<TabPane key="3" tab="合同"> |
|
|
|
<Result subTitle="暂无数据"></Result> |
|
|
|
<BasicTable @register="registerContractTable"> |
|
|
|
<template #contractImageList="{ text }"> |
|
|
|
<ImagePreviewGroup v-if="text && text.length"> |
|
|
|
<Image |
|
|
|
v-for="(item, index) in text" |
|
|
|
style="width: 40px; height: 40px; border-radius: 5px; margin: 0 5px 5px 0" |
|
|
|
:key="index" |
|
|
|
:src="item.url" |
|
|
|
/> |
|
|
|
</ImagePreviewGroup> |
|
|
|
</template> |
|
|
|
</BasicTable> |
|
|
|
</TabPane> |
|
|
|
<TabPane key="4" tab="约见记录"> |
|
|
|
<Result subTitle="暂无数据"></Result> |
|
|
|
@ -248,7 +246,7 @@ |
|
|
|
<script setup lang="ts"> |
|
|
|
import { useRoute } from 'vue-router' |
|
|
|
import { onMounted, ref, nextTick } from 'vue' |
|
|
|
import { Tabs, Input, Popconfirm, Button, TabPane, Tag, Timeline, TimelineItem, Result, Spin, InputNumber, Table } from 'ant-design-vue' |
|
|
|
import { Tabs, Input, Popconfirm, Button, TabPane, Tag, Timeline, TimelineItem, Result, Spin, InputNumber, Table, ImagePreviewGroup, Image } from 'ant-design-vue' |
|
|
|
import { Icon } from '/@/components/Icon' |
|
|
|
import { useMessage } from '/@/hooks/web/useMessage' |
|
|
|
import { CropperAvatar } from '/@/components/Cropper'; |
|
|
|
@ -257,11 +255,11 @@ |
|
|
|
import { BasicTable, useTable, TableAction } from '/@/components/Table' |
|
|
|
import { useForm } from '/@/components/Form' |
|
|
|
import { formatToDateTime } from '/@/utils/dateUtil' |
|
|
|
import { basicSchema, modalFormSchema, tableColumns } from './data' |
|
|
|
import { basicSchema, modalFormSchema, tableColumns, tableContractColumns } from './data' |
|
|
|
import { useModal } from '/@/components/Modal' |
|
|
|
import AppointmentModal from './modal.vue' |
|
|
|
import { demandMarriageMoreData, demandMarriageSchema } from '/@/views/clue/components/data' |
|
|
|
import { getClueInfo, editClueRecord, recordClueing, getClueRecord, getAppointmentList } from '/@/api/clue' |
|
|
|
import { getClueInfo, editClueRecord, recordClueing, getClueRecord, getAppointmentList, getClueContractList } from '/@/api/clue' |
|
|
|
import { genderList, channelList, clueStatusList, followTypeList, followStageList } from '/@/enums/customerEnum' |
|
|
|
|
|
|
|
const details = ref<any>() |
|
|
|
@ -308,6 +306,8 @@ |
|
|
|
function onTabChange(){ |
|
|
|
if(activeKey.value == '2'){ |
|
|
|
reloadTable() |
|
|
|
} else if(activeKey.value == '3'){ |
|
|
|
reloadContractTable() |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
@ -315,6 +315,11 @@ |
|
|
|
const dataSource= await getAppointmentList({datingClueId: details.value.id}) |
|
|
|
setTableData(dataSource) |
|
|
|
} |
|
|
|
|
|
|
|
async function reloadContractTable(){ |
|
|
|
const dataSource= await getClueContractList({datingClueId: details.value.id}) |
|
|
|
setContractData(dataSource) |
|
|
|
} |
|
|
|
|
|
|
|
const activeKey = ref<string>('1') |
|
|
|
const activeKey2 = ref<string>('1') |
|
|
|
@ -458,6 +463,24 @@ |
|
|
|
reloadTable() |
|
|
|
initFetch() |
|
|
|
} |
|
|
|
const [registerContractTable, { setTableData: setContractData }] = useTable({ |
|
|
|
bordered: true, |
|
|
|
immediate: false, |
|
|
|
canResize: false, |
|
|
|
pagination: false, |
|
|
|
useSearchForm: false, |
|
|
|
showIndexColumn: false, |
|
|
|
showTableSetting: false, |
|
|
|
columns: tableContractColumns, |
|
|
|
// actionColumn: { |
|
|
|
// width: 120, |
|
|
|
// title: '操作', |
|
|
|
// fixed: 'right', |
|
|
|
// dataIndex: 'action', |
|
|
|
// slots: { customRender: 'action' }, |
|
|
|
// }, |
|
|
|
}) |
|
|
|
|
|
|
|
</script> |
|
|
|
<style scoped lang="less"> |
|
|
|
::v-deep .ant-input-number { |
|
|
|
|