|
@@ -3,19 +3,19 @@
|
|
|
<TopBackNav>
|
|
<TopBackNav>
|
|
|
<template #topRight>
|
|
<template #topRight>
|
|
|
<div class="header_content">
|
|
<div class="header_content">
|
|
|
- <span>{{ customerBaseMsg.schoolName }}</span>
|
|
|
|
|
|
|
+ <span>{{ customerBaseMsg.name }}</span>
|
|
|
<el-tag type="success" effect="light" size="small" :disable-transitions="true" class="status_tag">
|
|
<el-tag type="success" effect="light" size="small" :disable-transitions="true" class="status_tag">
|
|
|
- {{ customerBaseMsg.customerType }}
|
|
|
|
|
|
|
+ {{ customerBaseMsg.typeName }}
|
|
|
</el-tag>
|
|
</el-tag>
|
|
|
</div>
|
|
</div>
|
|
|
<div class="desc">
|
|
<div class="desc">
|
|
|
- <span>学段:{{ customerBaseMsg.educationStage }}</span>
|
|
|
|
|
- <span>省份:{{ customerBaseMsg.province }}</span>
|
|
|
|
|
- <span>地区:{{ customerBaseMsg.district }}</span>
|
|
|
|
|
|
|
+ <span>学段:{{ customerBaseMsg.stageName }}</span>
|
|
|
|
|
+ <span>省份:{{ customerBaseMsg.provinceName }}</span>
|
|
|
|
|
+ <span>地区:{{ customerBaseMsg.cityName }}</span>
|
|
|
<span>地址:{{ customerBaseMsg.address }}</span>
|
|
<span>地址:{{ customerBaseMsg.address }}</span>
|
|
|
- <span>归属人:{{ customerBaseMsg.owner }}</span>
|
|
|
|
|
- <span>认领时间:{{ customerBaseMsg.claimTime }}</span>
|
|
|
|
|
- <span>上次跟进时间:{{ customerBaseMsg.lastFollowUpTime }}</span>
|
|
|
|
|
|
|
+ <span>归属人:{{ customerBaseMsg.claimUserName }}</span>
|
|
|
|
|
+ <span>认领时间:{{ customerBaseMsg.claimDatetime }}</span>
|
|
|
|
|
+ <span>上次跟进时间:{{ customerBaseMsg.lastFollowDatetime }}</span>
|
|
|
</div>
|
|
</div>
|
|
|
<div class="action">
|
|
<div class="action">
|
|
|
<el-button class="button_background" @click="OpenFollowlFormDialog"><img :src="peopleEditIcon" alt=""> 写跟进</el-button>
|
|
<el-button class="button_background" @click="OpenFollowlFormDialog"><img :src="peopleEditIcon" alt=""> 写跟进</el-button>
|
|
@@ -36,8 +36,8 @@
|
|
|
<div class="page_jg_20" style="flex-shrink: 0 !important;"></div>
|
|
<div class="page_jg_20" style="flex-shrink: 0 !important;"></div>
|
|
|
|
|
|
|
|
<!-- 联系人详情 -->
|
|
<!-- 联系人详情 -->
|
|
|
- <ContactDetail v-if="defaultShowTab === 'contactDetails'"/>
|
|
|
|
|
- <CustomerStatusOverview v-if="defaultShowTab === 'messageOverview'"/>
|
|
|
|
|
|
|
+ <ContactDetail :contactReloadFlag="contactReloadFlag" v-if="defaultShowTab === 'contactDetails'"/>
|
|
|
|
|
+ <CustomerStatusOverview :followReloadFlag="followReloadFlag" v-if="defaultShowTab === 'messageOverview'"/>
|
|
|
</div>
|
|
</div>
|
|
|
|
|
|
|
|
|
|
|
|
@@ -45,37 +45,27 @@
|
|
|
<FormDialog
|
|
<FormDialog
|
|
|
v-if="transferFormDialogVisible"
|
|
v-if="transferFormDialogVisible"
|
|
|
title="转让" :visible="transferFormDialogVisible"
|
|
title="转让" :visible="transferFormDialogVisible"
|
|
|
- :submit-loading="transferFormDialogSubmitLoading"
|
|
|
|
|
- :default-form-data="transferDefaultFormData"
|
|
|
|
|
|
|
+ :submitLoading="transferFormDialogSubmitLoading"
|
|
|
|
|
+ :defaultFormData="transferDefaultFormData"
|
|
|
:formItemList="formItemList"
|
|
:formItemList="formItemList"
|
|
|
@close="CloseTransferFormDialog"
|
|
@close="CloseTransferFormDialog"
|
|
|
@confirm="HandleTransferFormDialogConfirm">
|
|
@confirm="HandleTransferFormDialogConfirm">
|
|
|
</FormDialog>
|
|
</FormDialog>
|
|
|
|
|
|
|
|
<!-- 操作记录 弹窗 -->
|
|
<!-- 操作记录 弹窗 -->
|
|
|
- <PreviewDialog
|
|
|
|
|
|
|
+ <CustomerOperationDialog
|
|
|
v-if="operationRecordDialogVisible"
|
|
v-if="operationRecordDialogVisible"
|
|
|
- class="operation_dialog"
|
|
|
|
|
- title="操作记录"
|
|
|
|
|
- :previewVisible="operationRecordDialogVisible"
|
|
|
|
|
- :customFooter="true"
|
|
|
|
|
- @close="CloseOperationRecordDialog">
|
|
|
|
|
- <SearchBlock :searchList="operationRecordSearchList"></SearchBlock>
|
|
|
|
|
- <FollowCard :card-list="finalOperationLogRenderData">
|
|
|
|
|
- <template #operation><i></i></template>
|
|
|
|
|
- </FollowCard>
|
|
|
|
|
- <Pagination :currentPage="currentPage" :pageSize="pageSize" :totalNum="totalNum"></Pagination>
|
|
|
|
|
- <template #close>
|
|
|
|
|
- <el-button @click="CloseOperationRecordDialog" class="button_background" >关闭</el-button>
|
|
|
|
|
- </template>
|
|
|
|
|
- <template #confirm><i></i></template>
|
|
|
|
|
- </PreviewDialog>
|
|
|
|
|
|
|
+ v-model:dialogVisible="operationRecordDialogVisible">
|
|
|
|
|
+ </CustomerOperationDialog>
|
|
|
|
|
+
|
|
|
|
|
+
|
|
|
|
|
|
|
|
<!-- 编辑学校弹窗 -->
|
|
<!-- 编辑学校弹窗 -->
|
|
|
<SchoolFormDialog
|
|
<SchoolFormDialog
|
|
|
- v-if="schoolVisible"
|
|
|
|
|
v-model:visible="schoolVisible"
|
|
v-model:visible="schoolVisible"
|
|
|
- :defaultFormData="schoolDefaultFormData">
|
|
|
|
|
|
|
+ v-model:submitLoading="schoolSubmitLoading"
|
|
|
|
|
+ :defaultFormData="schoolDefaultFormData"
|
|
|
|
|
+ @confirm="HandleSchoolFormDialogConfirm">
|
|
|
</SchoolFormDialog>
|
|
</SchoolFormDialog>
|
|
|
|
|
|
|
|
<!-- 新增联系人弹窗 -->
|
|
<!-- 新增联系人弹窗 -->
|
|
@@ -83,14 +73,17 @@
|
|
|
v-if="concactPeopleVisible"
|
|
v-if="concactPeopleVisible"
|
|
|
v-model:visible="concactPeopleVisible"
|
|
v-model:visible="concactPeopleVisible"
|
|
|
title="新增联系人"
|
|
title="新增联系人"
|
|
|
- :default-form-data="concactPeopleDefaultFormData">
|
|
|
|
|
|
|
+ :defaultFormData="concactPeopleDefaultFormData"
|
|
|
|
|
+ v-model:submitLoading="concactPeopleSubmitLoading"
|
|
|
|
|
+ @confirm="HandleConcactPeopleDialogConfirm">
|
|
|
</ConcactPeopleFormDialog>
|
|
</ConcactPeopleFormDialog>
|
|
|
|
|
|
|
|
<!-- 写跟进弹窗 -->
|
|
<!-- 写跟进弹窗 -->
|
|
|
<FollowFormDialog
|
|
<FollowFormDialog
|
|
|
v-if="followVisible"
|
|
v-if="followVisible"
|
|
|
v-model:visible="followVisible"
|
|
v-model:visible="followVisible"
|
|
|
- :defaultFormData="followDefaultFormData">
|
|
|
|
|
|
|
+ :defaultFormData="followDefaultFormData"
|
|
|
|
|
+ @confirm="HandleFollowDialogConfirm">
|
|
|
</FollowFormDialog>
|
|
</FollowFormDialog>
|
|
|
|
|
|
|
|
|
|
|
|
@@ -99,15 +92,14 @@
|
|
|
:submitLoading="transferPublicSubmitLoading"
|
|
:submitLoading="transferPublicSubmitLoading"
|
|
|
@close="CloseTransferPublicDialog"
|
|
@close="CloseTransferPublicDialog"
|
|
|
@confirm="HandleTransferPublicConfirm">
|
|
@confirm="HandleTransferPublicConfirm">
|
|
|
- 请确认是否将【{{customerBaseMsg.schoolName}}】转至公海
|
|
|
|
|
|
|
+ 请确认是否将【{{customerBaseMsg.name}}】转至公海
|
|
|
</Dialog>
|
|
</Dialog>
|
|
|
-
|
|
|
|
|
</div>
|
|
</div>
|
|
|
-
|
|
|
|
|
</template>
|
|
</template>
|
|
|
|
|
|
|
|
<script setup lang="ts">
|
|
<script setup lang="ts">
|
|
|
-import { ref, computed } from 'vue';
|
|
|
|
|
|
|
+import { ref, computed, onMounted, onUnmounted } from 'vue';
|
|
|
|
|
+import { useRoute, useRouter } from 'vue-router';
|
|
|
import TopBackNav from '@/baseComponents/TopBackNav.vue';
|
|
import TopBackNav from '@/baseComponents/TopBackNav.vue';
|
|
|
import addIcon from '@/assets/icon/add.svg';
|
|
import addIcon from '@/assets/icon/add.svg';
|
|
|
import peopleEditIcon from '@/assets/icon/people_edit.png'
|
|
import peopleEditIcon from '@/assets/icon/people_edit.png'
|
|
@@ -121,12 +113,6 @@ import FormDialog from '@/baseComponents/FormDialog.vue';
|
|
|
import {formItemList} from './formDialog'
|
|
import {formItemList} from './formDialog'
|
|
|
import ContactDetail from './contactDetail/index.vue'
|
|
import ContactDetail from './contactDetail/index.vue'
|
|
|
import CustomerStatusOverview from './customerStatusOverview/index.vue'
|
|
import CustomerStatusOverview from './customerStatusOverview/index.vue'
|
|
|
-import PreviewDialog from '@/baseComponents/PreviewDialog.vue';
|
|
|
|
|
-import SearchBlock from '@/baseComponents/SearchBlock.vue';
|
|
|
|
|
-
|
|
|
|
|
-import {operationRecordSearchList} from './searchBlock'
|
|
|
|
|
-import FollowCard from '@/components/FollowCard.vue';
|
|
|
|
|
-import Pagination from '@/baseComponents/Pagination.vue';
|
|
|
|
|
|
|
|
|
|
import SchoolFormDialog from '@/components/SchoolFormDialog/index.vue'
|
|
import SchoolFormDialog from '@/components/SchoolFormDialog/index.vue'
|
|
|
|
|
|
|
@@ -135,17 +121,38 @@ import ConcactPeopleFormDialog from '@/components/ConcactPeopleFormDialog/index.
|
|
|
import FollowFormDialog from './components/FollowFormDialog/index.vue'
|
|
import FollowFormDialog from './components/FollowFormDialog/index.vue'
|
|
|
import Dialog from '@/baseComponents/Dialog.vue';
|
|
import Dialog from '@/baseComponents/Dialog.vue';
|
|
|
|
|
|
|
|
-const customerBaseMsg = ref({
|
|
|
|
|
- schoolName: '北京市第一零九中学',
|
|
|
|
|
- customerType: '首单客户',
|
|
|
|
|
- educationStage: '九年一贯',
|
|
|
|
|
- province: '北京',
|
|
|
|
|
- district: '东城区',
|
|
|
|
|
- address: '北京市东城区葱店西街56号',
|
|
|
|
|
- owner: '张三',
|
|
|
|
|
- claimTime: '2024-09-20',
|
|
|
|
|
- lastFollowUpTime: '2025-03-12'
|
|
|
|
|
-});
|
|
|
|
|
|
|
+import CustomerOperationDialog from '@/components/CustomerOperationDialog/index.vue'
|
|
|
|
|
+
|
|
|
|
|
+import {
|
|
|
|
|
+ updatePrivateCustomerApi,
|
|
|
|
|
+ sendBackHighSeasCustomerApi,
|
|
|
|
|
+ transferCustomerApi,
|
|
|
|
|
+ getTransferPeopleListApi,
|
|
|
|
|
+ addPrivateContactApi,
|
|
|
|
|
+
|
|
|
|
|
+} from '@/api/myCustomer'
|
|
|
|
|
+
|
|
|
|
|
+
|
|
|
|
|
+interface CustomerBaseMsg {
|
|
|
|
|
+ name:string, //学校名称
|
|
|
|
|
+ typeName:string,
|
|
|
|
|
+ stageName:string, //学段
|
|
|
|
|
+ stageId:string,
|
|
|
|
|
+ provinceName:string, //省份
|
|
|
|
|
+ provinceId:string,
|
|
|
|
|
+ cityName:string, // 地区
|
|
|
|
|
+ cityId:string,
|
|
|
|
|
+ address:string, //地址
|
|
|
|
|
+ claimUserName:string, //归属人
|
|
|
|
|
+ claimDatetime:string, //认领时间
|
|
|
|
|
+ lastFollowDatetime:string, //上次跟进时间
|
|
|
|
|
+}
|
|
|
|
|
+
|
|
|
|
|
+
|
|
|
|
|
+const route = useRoute()
|
|
|
|
|
+const router = useRouter()
|
|
|
|
|
+
|
|
|
|
|
+const customerBaseMsg = ref<CustomerBaseMsg>({});
|
|
|
|
|
|
|
|
// 默认列表的tab切换
|
|
// 默认列表的tab切换
|
|
|
const defaultShowTab = ref('messageOverview')
|
|
const defaultShowTab = ref('messageOverview')
|
|
@@ -154,188 +161,236 @@ const HandleTabChange = (val)=>{
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
-/** 转让弹窗相关内容及操作 */
|
|
|
|
|
|
|
+
|
|
|
|
|
+/** 1. 转至公海 弹窗有关数据 及操作 */
|
|
|
|
|
+const transferPublicVisible = ref(false)
|
|
|
|
|
+const transferPublicSubmitLoading = ref(false)
|
|
|
|
|
+const CloseTransferPublicDialog = ()=>{
|
|
|
|
|
+ transferPublicSubmitLoading.value = false
|
|
|
|
|
+ transferPublicVisible.value = false
|
|
|
|
|
+}
|
|
|
|
|
+const OpenTransferPublicDialog = ()=>{
|
|
|
|
|
+ transferPublicVisible.value = true
|
|
|
|
|
+}
|
|
|
|
|
+const HandleTransferPublicConfirm = async ()=>{
|
|
|
|
|
+ transferPublicSubmitLoading.value = true
|
|
|
|
|
+ let res = undefined
|
|
|
|
|
+ try{
|
|
|
|
|
+ res = await sendBackHighSeasCustomerApi(route.query.id)
|
|
|
|
|
+ }catch{}
|
|
|
|
|
+ if(res?.code == 200){
|
|
|
|
|
+ CloseTransferPublicDialog()
|
|
|
|
|
+ router.go(-1)
|
|
|
|
|
+ }else{
|
|
|
|
|
+ transferPublicSubmitLoading.value = false
|
|
|
|
|
+ }
|
|
|
|
|
+}
|
|
|
|
|
+
|
|
|
|
|
+
|
|
|
|
|
+
|
|
|
|
|
+/**2. 转让弹窗相关内容及操作 */
|
|
|
const transferFormDialogVisible = ref(false)
|
|
const transferFormDialogVisible = ref(false)
|
|
|
const transferFormDialogSubmitLoading = ref(false)
|
|
const transferFormDialogSubmitLoading = ref(false)
|
|
|
-const transferDefaultFormData = ref({
|
|
|
|
|
- schoolName: '北京市第一零九中学',
|
|
|
|
|
- currentOwner: '张三',
|
|
|
|
|
- newOwner:'',
|
|
|
|
|
-})
|
|
|
|
|
-const OpenTransferFormDialog=()=>{
|
|
|
|
|
|
|
+const transferDefaultFormData = ref({})
|
|
|
|
|
+
|
|
|
|
|
+const OpenTransferFormDialog = async()=>{
|
|
|
console.log('打开转让弹窗')
|
|
console.log('打开转让弹窗')
|
|
|
transferFormDialogVisible.value = true
|
|
transferFormDialogVisible.value = true
|
|
|
- GetOwnerList()
|
|
|
|
|
|
|
+ transferDefaultFormData.value = {
|
|
|
|
|
+ schoolName: customerBaseMsg.value.name,
|
|
|
|
|
+ currentOwner: customerBaseMsg.value.claimUserName,
|
|
|
|
|
+ newOwner:'',
|
|
|
|
|
+ }
|
|
|
|
|
+ await GetOwnerList()
|
|
|
}
|
|
}
|
|
|
const CloseTransferFormDialog=()=>{
|
|
const CloseTransferFormDialog=()=>{
|
|
|
|
|
+ transferFormDialogSubmitLoading.value = false
|
|
|
transferFormDialogVisible.value = false
|
|
transferFormDialogVisible.value = false
|
|
|
}
|
|
}
|
|
|
-const HandleTransferFormDialogConfirm = ()=>{
|
|
|
|
|
- CloseTransferFormDialog()
|
|
|
|
|
|
|
+// 转让确认
|
|
|
|
|
+const HandleTransferFormDialogConfirm = async (params)=>{
|
|
|
|
|
+ transferFormDialogSubmitLoading.value = true
|
|
|
|
|
+ const {formData,formRef} = params
|
|
|
|
|
+ let finalParams = {
|
|
|
|
|
+ customerId: route.query.id,
|
|
|
|
|
+ userId: JSON.parse(formData.newOwner || '{}')?.userId,
|
|
|
|
|
+ userName: JSON.parse(formData.newOwner || '{}')?.userName,
|
|
|
|
|
+ groupId: JSON.parse(formData.newOwner || '{}')?.groupId,
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ let res = await transferCustomerApi(finalParams)
|
|
|
|
|
+ if(res?.code == 200){
|
|
|
|
|
+ CloseTransferFormDialog()
|
|
|
|
|
+ router.go(-1)
|
|
|
|
|
+ }else{
|
|
|
|
|
+ transferFormDialogSubmitLoading.value = false
|
|
|
|
|
+ }
|
|
|
}
|
|
}
|
|
|
// 获取归属人列表
|
|
// 获取归属人列表
|
|
|
-const GetOwnerList = ()=>{
|
|
|
|
|
- formItemList.value = formItemList.value.map(item=>{
|
|
|
|
|
- if(item.key == 'newOwner'){
|
|
|
|
|
- let list = [
|
|
|
|
|
- {
|
|
|
|
|
- label:'李四',
|
|
|
|
|
- value:'1'
|
|
|
|
|
- },
|
|
|
|
|
- {
|
|
|
|
|
- label:'王五',
|
|
|
|
|
- value:'2'
|
|
|
|
|
- },
|
|
|
|
|
- {
|
|
|
|
|
- label:'赵六',
|
|
|
|
|
- value:'3'
|
|
|
|
|
- },
|
|
|
|
|
- ]
|
|
|
|
|
- item.selectList = [...list]
|
|
|
|
|
- }
|
|
|
|
|
- return item
|
|
|
|
|
- })
|
|
|
|
|
|
|
+const GetOwnerList = async ()=>{
|
|
|
|
|
+ let res = await getTransferPeopleListApi(route.query.id)
|
|
|
|
|
+ if(res?.code == 200){
|
|
|
|
|
+ let userList = res?.data?.map(item=>{
|
|
|
|
|
+ return {
|
|
|
|
|
+ label:item.userName,
|
|
|
|
|
+ value:JSON.stringify({
|
|
|
|
|
+ userId:item.userId,
|
|
|
|
|
+ userName:item.userName,
|
|
|
|
|
+ groupId:item.groupId
|
|
|
|
|
+ })
|
|
|
|
|
+ }
|
|
|
|
|
+ }) || []
|
|
|
|
|
+ formItemList.value = formItemList.value.map(item=>{
|
|
|
|
|
+ if(item.key == 'newOwner'){
|
|
|
|
|
+ item.selectList = userList
|
|
|
|
|
+ }
|
|
|
|
|
+ return item
|
|
|
|
|
+ })
|
|
|
|
|
+ }
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
-/** 操作记录相关内容及操作 */
|
|
|
|
|
-const operationRecordDialogVisible = ref(false)
|
|
|
|
|
-const OpenOperationRecordDialog=()=>{
|
|
|
|
|
- console.log('打开操作记录弹窗')
|
|
|
|
|
- operationRecordDialogVisible.value = true
|
|
|
|
|
|
|
+/** 3. 新增联系人有关数据 及操作 */
|
|
|
|
|
+const concactPeopleVisible = ref(false)
|
|
|
|
|
+const concactPeopleSubmitLoading = ref(false)
|
|
|
|
|
+const concactPeopleDefaultFormData = ref({})
|
|
|
|
|
+const contactReloadFlag = ref(0) //重新加载联系人数据标识
|
|
|
|
|
+
|
|
|
|
|
+const OpenConcactPeoplelFormDialog = ()=>{
|
|
|
|
|
+ concactPeopleVisible.value = true
|
|
|
}
|
|
}
|
|
|
-const CloseOperationRecordDialog=()=>{
|
|
|
|
|
- operationRecordDialogVisible.value = false
|
|
|
|
|
|
|
+const CloseConcactPeoplelFormDialog = ()=>{
|
|
|
|
|
+ concactPeopleVisible.value = false
|
|
|
|
|
+ concactPeopleSubmitLoading.value = false
|
|
|
|
|
+ concactPeopleDefaultFormData.value = {}
|
|
|
|
|
+}
|
|
|
|
|
+// 新增确认
|
|
|
|
|
+const HandleConcactPeopleDialogConfirm = async (params)=>{
|
|
|
|
|
+ concactPeopleSubmitLoading.value = true
|
|
|
|
|
+ const {formData,formRef} = params
|
|
|
|
|
+ let finalParams = {
|
|
|
|
|
+ customerId: route.query.id,
|
|
|
|
|
+ name: formData.name,
|
|
|
|
|
+ positionId:JSON.parse(formData.position || '{}')?.value,
|
|
|
|
|
+ positionName: JSON.parse(formData.position || '{}')?.label,
|
|
|
|
|
+ phoneNo: formData.phoneNo,
|
|
|
|
|
+ officePhoneNo: formData.officePhoneNo,
|
|
|
|
|
+ remark: formData.remark,
|
|
|
|
|
+ }
|
|
|
|
|
+ let res = await addPrivateContactApi(finalParams)
|
|
|
|
|
+ if(res?.code == 200){
|
|
|
|
|
+ CloseConcactPeoplelFormDialog()
|
|
|
|
|
+ // 重新查询联系人信息
|
|
|
|
|
+ contactReloadFlag.value += 1
|
|
|
|
|
+ }else{
|
|
|
|
|
+ concactPeopleSubmitLoading.value = false
|
|
|
|
|
+ }
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
+/** 4. 写跟进 弹窗有关数据 及操作*/
|
|
|
|
|
+const followVisible = ref(false)
|
|
|
|
|
+const followDefaultFormData = ref({})
|
|
|
|
|
+const followReloadFlag = ref(0) //重新加载跟进信息标识
|
|
|
|
|
|
|
|
-/** 操作记录有关数据 */
|
|
|
|
|
-const operationLogList = ref([
|
|
|
|
|
- {
|
|
|
|
|
- id:1,
|
|
|
|
|
- operationTime: '26-02-19 19:00',
|
|
|
|
|
- operatorName: '张安顺',
|
|
|
|
|
- schoolName: '北京师达学校',
|
|
|
|
|
- operationType: '编辑学校信息',
|
|
|
|
|
- operationContent: '学校名称【北京109中学】学段【初中】调整为学校名称【北京一零九中学】学段【九年一贯】。'
|
|
|
|
|
- },
|
|
|
|
|
- {
|
|
|
|
|
- id:2,
|
|
|
|
|
- operationTime: '26-02-19 19:00',
|
|
|
|
|
- operatorName: '张安顺',
|
|
|
|
|
- schoolName: '北京师达学校',
|
|
|
|
|
- operationType: '删除联系人',
|
|
|
|
|
- operationContent: '删除 姓名【张三】职务【校长】手机电话【17820681226】办公电话【17820681226】备注【文案文案】。'
|
|
|
|
|
- },
|
|
|
|
|
- {
|
|
|
|
|
- id:3,
|
|
|
|
|
- operationTime: '26-02-19 19:00',
|
|
|
|
|
- operatorName: '张安顺',
|
|
|
|
|
- schoolName: '北京师达学校',
|
|
|
|
|
- operationType: '新增联系人',
|
|
|
|
|
- operationContent: '新增 姓名【张三】职务【校长】手机电话【17820681226】办公电话【17820681226】备注【文案文案】。'
|
|
|
|
|
- },
|
|
|
|
|
- {
|
|
|
|
|
- id:4,
|
|
|
|
|
- operationTime: '26-02-19 19:00',
|
|
|
|
|
- operatorName: '张安顺',
|
|
|
|
|
- schoolName: '北京师达学校',
|
|
|
|
|
- operationType: '编辑联系人',
|
|
|
|
|
- operationContent: '联系人姓名【张三】职务【校长】手机电话【17820681226】备注【文案文案】调整为 联系人姓名【李四】职务【校长】手机电话【17820681226】备注【文案文案】。'
|
|
|
|
|
- },
|
|
|
|
|
- {
|
|
|
|
|
- id:5,
|
|
|
|
|
- operationTime: '26-02-19 19:00',
|
|
|
|
|
- operatorName: '张安顺',
|
|
|
|
|
- schoolName: '北京师达学校',
|
|
|
|
|
- operationType: '转至公海',
|
|
|
|
|
- operationContent: '将客户转至公海。'
|
|
|
|
|
|
|
+const OpenFollowlFormDialog = ()=>{
|
|
|
|
|
+ followVisible.value = true
|
|
|
|
|
+ followDefaultFormData.value = {
|
|
|
|
|
+ school:customerBaseMsg.value.name,
|
|
|
}
|
|
}
|
|
|
-]);
|
|
|
|
|
-
|
|
|
|
|
-const finalOperationLogRenderData = computed(()=>{
|
|
|
|
|
- return operationLogList.value.map(item=>{
|
|
|
|
|
- return {
|
|
|
|
|
- headerTitleList:[
|
|
|
|
|
- item.operationTime,
|
|
|
|
|
- item.operatorName,
|
|
|
|
|
- item.schoolName,
|
|
|
|
|
- item.operationType
|
|
|
|
|
- ],
|
|
|
|
|
- headerTags:[],
|
|
|
|
|
- middleDesc:[],
|
|
|
|
|
- bottomDesc:`操作内容:${item.operationContent}`
|
|
|
|
|
- }
|
|
|
|
|
- })
|
|
|
|
|
-})
|
|
|
|
|
-// 分页参数 有关数据 *
|
|
|
|
|
-const currentPage = ref(1)
|
|
|
|
|
-const pageSize = ref(20)
|
|
|
|
|
-const totalNum = ref(0)
|
|
|
|
|
|
|
+}
|
|
|
|
|
+
|
|
|
|
|
+// 跟进弹窗关闭后的后续操作
|
|
|
|
|
+const HandleFollowDialogConfirm = ()=>{
|
|
|
|
|
+ followDefaultFormData.value = {}
|
|
|
|
|
+ followReloadFlag.value += 1
|
|
|
|
|
+}
|
|
|
|
|
+
|
|
|
|
|
+/** 5. 操作记录相关内容及操作*/
|
|
|
|
|
+const operationRecordDialogVisible = ref(false)
|
|
|
|
|
+// 打开操作记录弹窗
|
|
|
|
|
+const OpenOperationRecordDialog=()=>{
|
|
|
|
|
+ operationRecordDialogVisible.value = true
|
|
|
|
|
+}
|
|
|
|
|
|
|
|
|
|
|
|
|
-/** 编辑学校 有关数据 及操作 */
|
|
|
|
|
|
|
+/** 6.编辑学校 有关数据 及操作 待完善*/
|
|
|
const schoolVisible = ref(false)
|
|
const schoolVisible = ref(false)
|
|
|
|
|
+const schoolSubmitLoading = ref(false)
|
|
|
const schoolDefaultFormData = ref({})
|
|
const schoolDefaultFormData = ref({})
|
|
|
|
|
+
|
|
|
const OpenSchoolFormDialog = ()=>{
|
|
const OpenSchoolFormDialog = ()=>{
|
|
|
schoolVisible.value = true
|
|
schoolVisible.value = true
|
|
|
schoolDefaultFormData.value = {
|
|
schoolDefaultFormData.value = {
|
|
|
- id: 1,
|
|
|
|
|
- customerType: '首单客户',
|
|
|
|
|
- schoolName: '流星花园学校',
|
|
|
|
|
- schoolStage: 'middle',
|
|
|
|
|
- province:'beijing',
|
|
|
|
|
- provinceName: '北京市',
|
|
|
|
|
- city:'dongcheng',
|
|
|
|
|
- cityName: '东城区',
|
|
|
|
|
- detailAddress:'通州北苑',
|
|
|
|
|
- groupName: '小组',
|
|
|
|
|
- owner: '张三',
|
|
|
|
|
- claimTime: '2026-03-11',
|
|
|
|
|
- lastFollowUpTime: '2026-03-11',
|
|
|
|
|
|
|
+ ...customerBaseMsg.value,
|
|
|
|
|
+ schoolStage:JSON.stringify({
|
|
|
|
|
+ label:customerBaseMsg.value?.stageName,
|
|
|
|
|
+ value:customerBaseMsg.value?.stageId,
|
|
|
|
|
+ }),
|
|
|
provinceArea:{
|
|
provinceArea:{
|
|
|
- province:'beijing',
|
|
|
|
|
- district:'dongcheng',
|
|
|
|
|
|
|
+ province:JSON.stringify({
|
|
|
|
|
+ label:customerBaseMsg.value?.provinceName,
|
|
|
|
|
+ value:customerBaseMsg.value?.provinceId,
|
|
|
|
|
+ }),
|
|
|
|
|
+ district:JSON.stringify({
|
|
|
|
|
+ label:customerBaseMsg.value?.cityName,
|
|
|
|
|
+ value:customerBaseMsg.value?.cityId,
|
|
|
|
|
+ }),
|
|
|
}
|
|
}
|
|
|
}
|
|
}
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
-
|
|
|
|
|
-/** 新增联系人有关数据 及操作 */
|
|
|
|
|
-const concactPeopleVisible = ref(false)
|
|
|
|
|
-const concactPeopleDefaultFormData = ref({})
|
|
|
|
|
-const OpenConcactPeoplelFormDialog = ()=>{
|
|
|
|
|
- concactPeopleVisible.value = true
|
|
|
|
|
- concactPeopleDefaultFormData.value = {}
|
|
|
|
|
|
|
+const CloseSchoolFormDialog = ()=>{
|
|
|
|
|
+ schoolVisible.value = false
|
|
|
|
|
+ schoolSubmitLoading.value = false
|
|
|
|
|
+ schoolDefaultFormData.value = {}
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
-
|
|
|
|
|
-/** 写跟进 弹窗有关数据 及操作 */
|
|
|
|
|
-const followVisible = ref(false)
|
|
|
|
|
-const followDefaultFormData = ref({})
|
|
|
|
|
-const OpenFollowlFormDialog = ()=>{
|
|
|
|
|
- followVisible.value = true
|
|
|
|
|
- followDefaultFormData.value = {
|
|
|
|
|
- school:customerBaseMsg.value.schoolName,
|
|
|
|
|
|
|
+// 修改确认
|
|
|
|
|
+const HandleSchoolFormDialogConfirm = async (params)=>{
|
|
|
|
|
+ schoolSubmitLoading.value = true
|
|
|
|
|
+ const {formData,formRef} = params
|
|
|
|
|
+ let finalParams = {
|
|
|
|
|
+ id: formData.id,
|
|
|
|
|
+ name: formData.name,
|
|
|
|
|
+ stageId: JSON.parse(formData.schoolStage || '{}')?.value,
|
|
|
|
|
+ stageName: JSON.parse(formData.schoolStage || '{}')?.label,
|
|
|
|
|
+ provinceId: JSON.parse(formData.provinceArea.province || '{}')?.value,
|
|
|
|
|
+ provinceName: JSON.parse(formData.provinceArea.province || '{}')?.label,
|
|
|
|
|
+ cityId: JSON.parse(formData.provinceArea.district || '{}')?.value,
|
|
|
|
|
+ cityName: JSON.parse(formData.provinceArea.district || '{}')?.label,
|
|
|
|
|
+ address: formData.address,
|
|
|
|
|
+ }
|
|
|
|
|
+ let res = undefined
|
|
|
|
|
+ try{
|
|
|
|
|
+ res = await updatePrivateCustomerApi(finalParams)
|
|
|
|
|
+ }catch{}
|
|
|
|
|
+ if(res?.code == 200){
|
|
|
|
|
+ customerBaseMsg.value = {
|
|
|
|
|
+ ...customerBaseMsg.value,
|
|
|
|
|
+ name:formData.name,
|
|
|
|
|
+ stageId: JSON.parse(formData.schoolStage || '{}')?.value,
|
|
|
|
|
+ stageName: JSON.parse(formData.schoolStage || '{}')?.label,
|
|
|
|
|
+ provinceId: JSON.parse(formData.provinceArea.province || '{}')?.value,
|
|
|
|
|
+ provinceName: JSON.parse(formData.provinceArea.province || '{}')?.label,
|
|
|
|
|
+ cityId: JSON.parse(formData.provinceArea.district || '{}')?.value,
|
|
|
|
|
+ cityName: JSON.parse(formData.provinceArea.district || '{}')?.label,
|
|
|
|
|
+ address: formData.address,
|
|
|
|
|
+ }
|
|
|
|
|
+ sessionStorage.setItem('customerMsg',JSON.stringify(customerBaseMsg.value))
|
|
|
|
|
+ CloseSchoolFormDialog()
|
|
|
|
|
+ }else{
|
|
|
|
|
+ schoolSubmitLoading.value = false
|
|
|
}
|
|
}
|
|
|
- console.log('跟进弹窗的内容---',followDefaultFormData.value)
|
|
|
|
|
-}
|
|
|
|
|
-
|
|
|
|
|
-
|
|
|
|
|
-/** 转至公海 弹窗有关数据 及操作 */
|
|
|
|
|
-const transferPublicVisible = ref(false)
|
|
|
|
|
-const transferPublicSubmitLoading = ref(false)
|
|
|
|
|
-const CloseTransferPublicDialog = ()=>{
|
|
|
|
|
- transferPublicVisible.value = false
|
|
|
|
|
-}
|
|
|
|
|
-const OpenTransferPublicDialog = ()=>{
|
|
|
|
|
- transferPublicVisible.value = true
|
|
|
|
|
-}
|
|
|
|
|
-const HandleTransferPublicConfirm = ()=>{
|
|
|
|
|
- CloseTransferPublicDialog()
|
|
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
|
|
+onMounted(async ()=>{
|
|
|
|
|
+ // 获取学校的基础信息
|
|
|
|
|
+ customerBaseMsg.value = JSON.parse(sessionStorage.getItem('customerMsg') || '{}')
|
|
|
|
|
+})
|
|
|
|
|
+onUnmounted(()=>{
|
|
|
|
|
+ sessionStorage.removeItem('customerMsg')
|
|
|
|
|
+})
|
|
|
|
|
|
|
|
</script>
|
|
</script>
|
|
|
|
|
|