|
|
|
@ -3,18 +3,28 @@ |
|
|
|
<div class="flex-row" style="background: white;width: 100%;padding: 10px;"> |
|
|
|
<CropperAvatar :value="avatar" width="90px" @change="uploadAvatarAfter"/> |
|
|
|
<div class="flex-col" style="flex: 1;margin-left: 10px;"> |
|
|
|
<div class="flex-row-center-start"> |
|
|
|
<span style="font-size: 18px;font-weight: bold;">{{details.nickName}}</span> |
|
|
|
<!-- <Icon icon="ant-design:edit-twotone" size="18px" style="margin-left: 12px;color:#0960bd;"/> --> |
|
|
|
<Popconfirm placement="bottom" icon="修改昵称" @confirm="handleNickname"> |
|
|
|
<template #title> |
|
|
|
<Input placeholder="请输入昵称" v-model:value="nickName" style="margin-top: 12px;"/> |
|
|
|
</template> |
|
|
|
<Button type="link"><template #icon><Icon icon="ant-design:edit-twotone" size="16px" style="margin-left: 12px;color:#0960bd;"/></template></Button> |
|
|
|
</Popconfirm> |
|
|
|
|
|
|
|
<span style="color: #666;margin: 0 12px;">(ID:{{details.id}} | 渠道来源:{{channelList.find((find) => find.value === details.channelType)?.label}})</span> |
|
|
|
<Tag color="pink">#{{followStageList.find((find) => find.value === details.followStatus)?.label}}</Tag> |
|
|
|
<div class="flex-row-center-space"> |
|
|
|
<div class="flex-row-center-start"> |
|
|
|
<span style="font-size: 18px;font-weight: bold;">{{details.nickName}}</span> |
|
|
|
<!-- <Icon icon="ant-design:edit-twotone" size="18px" style="margin-left: 12px;color:#0960bd;"/> --> |
|
|
|
<Popconfirm placement="bottom" icon="修改昵称" @confirm="handleNickname"> |
|
|
|
<template #title> |
|
|
|
<Input placeholder="请输入昵称" v-model:value="nickName" style="margin-top: 12px;"/> |
|
|
|
</template> |
|
|
|
<Button type="link"><template #icon><Icon icon="ant-design:edit-twotone" size="16px" style="margin-left: 12px;color:#0960bd;"/></template></Button> |
|
|
|
</Popconfirm> |
|
|
|
|
|
|
|
<span style="color: #666;margin: 0 12px;">(ID:{{details.id}} | 渠道来源:{{channelList.find((find) => find.value === details.channelType)?.label}})</span> |
|
|
|
<Tag color="pink">#{{followStageList.find((find) => find.value === details.followStatus)?.label}}</Tag> |
|
|
|
</div> |
|
|
|
<div class="flex-row-center-start" style="cursor: pointer;padding-right: 24px" @click.stop="handleIntent(0)" v-if="details.markIntendedCustomer"> |
|
|
|
<Icon icon="ant-design:star-filled" size="20px" color="#FAA19D" /> |
|
|
|
<span style="font-size: 14px;color: #FAA19D;margin-left: 4px;">意向客户</span> |
|
|
|
</div> |
|
|
|
<div class="flex-row-center-start" style="cursor: pointer;padding-right: 24px" @click.stop="handleIntent(1)" v-else> |
|
|
|
<Icon icon="ant-design:star-outlined" size="20px" color="#d6d6d6"/> |
|
|
|
<span style="font-size: 14px;color: #666;margin-left: 4px;">标记意向</span> |
|
|
|
</div> |
|
|
|
</div> |
|
|
|
<div class="flex-row-center-start" style="margin-top: 5px;"> |
|
|
|
<div class="flex-row-center-start" style="width: 240px;"> |
|
|
|
@ -259,7 +269,7 @@ |
|
|
|
import { useModal } from '/@/components/Modal' |
|
|
|
import AppointmentModal from './modal.vue' |
|
|
|
import { demandMarriageMoreData, demandMarriageSchema } from '/@/views/clue/components/data' |
|
|
|
import { getClueInfo, editClueRecord, recordClueing, getClueRecord, getAppointmentList, getClueContractList } from '/@/api/clue' |
|
|
|
import { getClueInfo, editClueRecord, recordClueing, getClueRecord, getAppointmentList, getClueContractList, intendedCustomer } from '/@/api/clue' |
|
|
|
import { genderList, channelList, clueStatusList, followTypeList, followStageList } from '/@/enums/customerEnum' |
|
|
|
|
|
|
|
const details = ref<any>() |
|
|
|
@ -481,6 +491,11 @@ |
|
|
|
// }, |
|
|
|
}) |
|
|
|
|
|
|
|
async function handleIntent(status){ |
|
|
|
await intendedCustomer({id: details.value.id}) |
|
|
|
details.value.markIntendedCustomer = status |
|
|
|
} |
|
|
|
|
|
|
|
</script> |
|
|
|
<style scoped lang="less"> |
|
|
|
::v-deep .ant-input-number { |
|
|
|
|