Преглед изворни кода

添加我的客户详情默认页的接口调用

lm пре 1 месец
родитељ
комит
a25ef05902

+ 39 - 1
src/api/myCustomer.ts

@@ -20,7 +20,7 @@ export const getPrivateCustomerListApi = (data:any) => {
     })
 }
 
-// 修改私域客户信息接口
+// 修改客户信息接口
 export const updatePrivateCustomerApi = (data:any) => {
     return request({
         url: `${adminPrefix}/api/v1/private/customer/data/update`,
@@ -73,6 +73,44 @@ export const getPrivateOperationLogApi = (data:any) => {
     })
 }
 
+
+// 查询联系人信息接口
+export const getPrivateContactListApi = (data:any) => {
+    return request({
+        url: `${adminPrefix}/api/v1/private/customer/data/select`,
+        method: 'post',
+        data,
+    })
+}
+
+// 添加联系人信息接口
+export const addPrivateContactApi = (data:any) => {
+    return request({
+        url: `${adminPrefix}/api/v1/private/customer/data/insert`,
+        method: 'post',
+        data,
+    })
+}
+
+// 修改联系人信息接口
+export const updatePrivateContactApi = (data:any) => {
+    return request({
+        url: `${adminPrefix}/api/v1/private/customer/person/update`,
+        method: 'post',
+        data,
+    })
+}
+
+// 删除联系人信息接口
+export const deletePrivateContactApi = (id:any) => {
+    return request({
+        url: `${adminPrefix}/api/v1/private/customer/data/delete/${id}`,
+        method: 'get',
+    })
+}
+
+
+
 // 查询详情信息接口 --信息概览
 export const getOverviewDetailApi = (data:any) => {
     return request({

+ 35 - 10
src/components/CustomerOperationDialog/index.vue

@@ -32,20 +32,30 @@
 
 
 <script setup lang="ts">
-import { ref, computed, onMounted, onUnmounted } from 'vue';
-import { useRoute, useRouter } from 'vue-router';
-
+import { ref, onMounted } from 'vue';
+import { useRoute } from 'vue-router';
 
 import PreviewDialog from '@/baseComponents/PreviewDialog.vue';
 import SearchBlock from '@/baseComponents/SearchBlock.vue';
 import FollowCard from '@/components/FollowCard.vue';
 import Pagination from '@/baseComponents/Pagination.vue';
 import {operationRecordSearchList} from './searchBlock'
-
 import {
     getOperationLogApi,
 } from '@/api/highSeasCustomer'
 
+import {
+    getPrivateOperationLogApi,
+
+} from '@/api/myCustomer'
+
+
+const props = defineProps({
+    interfaceSource:{
+        type:String as ()=>'highSeasCustomer'|'myCustomer',
+        default:'highSeasCustomer',  //
+    }, //查询操作日志 接口来源 
+})
 
 const operationRecordDialogVisible = defineModel('dialogVisible')
 
@@ -94,13 +104,28 @@ const HandleLogPaginationChange = async (params)=>{
 
 //获取日志列表
 const GetOperationList = async ()=>{
-    let params = {
-        customerId: route.query.id,
-        operUserId: searchParams.value.personnel == 'all' ? '' : searchParams.value.personnel,
-        pageNum: currentPage.value,
-        pageSize: pageSize.value
+
+    let res = undefined
+    if(props.interfaceSource == 'highSeasCustomer'){
+        let params = {
+            customerId: route.query.id,
+            operUserId: searchParams.value.personnel == 'all' ? '' : searchParams.value.personnel,
+            pageNum: currentPage.value,
+            pageSize: pageSize.value
+        }
+        res = await getOperationLogApi(params)
+    }else if(props.interfaceSource == 'myCustomer'){
+        let params = {
+            customerId: route.query.id,
+            operUserId: searchParams.value.personnel == 'all' ? '' : searchParams.value.personnel,
+            "startDate": "",
+            "endDate": "",
+            pageNum: currentPage.value,
+            pageSize: pageSize.value
+        }
+        res = await getPrivateOperationLogApi(params)
     }
-    let res = await getOperationLogApi(params)
+   
     if(res?.code == 200){
        const {data:operationData, dateData, groupData, memberData} =  res?.data
        totalNum.value = operationData.total

+ 10 - 29
src/views/myCustomer/myCustomerDetail/components/FollowFormDialog/formDialog.ts

@@ -22,13 +22,7 @@ export const formItemList = ref([
     key: 'status',
     label: '跟进状态',
     type: 'radio',
-    selectList: [
-      { label: '线索建立', value: 'lead_established' },
-      { label: '方案演示', value: 'proposal_demo' },
-      { label: '试用测试', value: 'trial_test' },
-      { label: '赢单', value: 'won' },
-      { label: '输单', value: 'lost' }
-    ],
+    selectList: [],
     rules:[{required:true,trigger:'blur',message:'请填写信息'}],
     style: {  }
   },
@@ -37,16 +31,7 @@ export const formItemList = ref([
     label: '联系人',
     type: 'select',
     placeholder: '请选择跟进的联系人',
-    selectList: [
-      {
-        label:"张三",
-        value:'zhangsan'
-      },
-      {
-        label:"李四",
-        value:'lisi'
-      },
-    ], 
+    selectList: [], 
     rules:[{required:true,trigger:'blur',message:'请填写信息'}],
     style: {  }
   },
@@ -57,16 +42,7 @@ export const formItemList = ref([
     placeholder: '请选择职务',
     disabled: true,
     hidden:true,
-    selectList: [
-      {
-        label:'校长',
-        value:"schoolMaster"
-      },
-      {
-        label:'教师',
-        value:"teacher"
-      },
-    ], 
+    selectList: [], 
     rules:[{required:true,trigger:'blur',message:'请填写信息'}],
     style: { width: '100%' }
   },
@@ -80,12 +56,17 @@ export const formItemList = ref([
     style: { }
   },
   {
+    /**
+     * 预约待办类型,0-预约,1-待办,
+     * (follow_id=33时为预约,其它为待办),
+     * 这个数据可以为null
+     */
     key: 'appointmentType',
     label: '预约待办',
     type: 'radio',
     selectList: [
-      { label: '预约', value: 'appointment' },
-      { label: '待办', value: 'todo' }
+      { label: '预约', value: 0 },
+      { label: '待办', value: 1 }
     ],
     style: { }
   },

+ 98 - 17
src/views/myCustomer/myCustomerDetail/components/FollowFormDialog/index.vue

@@ -2,7 +2,7 @@
      <FormDialog width="640px" :title="title" 
         :visible="editFormDialogVisible" 
         :submitLoading="editFormDialogSubmitLoading"
-        :defaultFormData="formData"
+        :defaultFormData="defaultFormData"
         :formItemList="finalFormItemList"
         :formDisabled="formDisabled"
         @close="CloseFormDialog"
@@ -14,11 +14,17 @@
 
 
 <script setup lang="ts">
-import {  computed, onMounted, ref,watch } from 'vue';
+import { onMounted, ref} from 'vue';
+import { useStore } from 'vuex';
+import { useRoute } from 'vue-router';
 
 import FormDialog from '@/baseComponents/FormDialog.vue';
 import {formItemList} from './formDialog'
 
+import {addFollowUpInfoApi} from '@/api/myCustomer'
+import {getPrivateContactListApi} from '@/api/myCustomer'
+import {unioformDateTransform} from '@/utils/dateTransform'
+
 const props = defineProps({
     defaultFormData:{
         type:Object,
@@ -33,24 +39,52 @@ const props = defineProps({
         default:false
     }
 })
-
-const formData = ref({})
-
+const emit = defineEmits(['confirm'])
 const editFormDialogVisible = defineModel('visible')
-const editFormDialogSubmitLoading = ref(false)
 
-const finalFormItemList = ref(JSON.parse(JSON.stringify(formItemList.value)))
+const store = useStore()
+const route = useRoute()
 
+/**表单有关数据及操作 */
+const finalFormItemList = ref(JSON.parse(JSON.stringify(formItemList.value)))
+const editFormDialogSubmitLoading = ref(false)
 const CloseFormDialog = ()=>{
     editFormDialogVisible.value = false
+    editFormDialogSubmitLoading.value = false
 }
-const HandleConfirmFormDialog = ()=>{
-    CloseFormDialog()
+
+// 新增确认
+const HandleConfirmFormDialog = async (params)=>{
+    editFormDialogSubmitLoading.value = true
+
+    const {formData} = params
+    let orderDatetime = formData.appointmentType == 0 ? 
+                        formData.appointmentTime :
+                        (formData.appointmentType == 1 ? 
+                            formData.todoTime : "") 
+    let finalParams = {
+        customerId: route.query.id,
+        productId: JSON.parse(formData.product).value,
+        followId: JSON.parse(formData.status).value,
+        followName: JSON.parse(formData.status).label,
+        customerPersonId: JSON.parse(formData.contact).id,
+        positionId: JSON.parse(formData.position).value, 
+        followContent: formData.content,
+        orderType: formData.appointmentType,
+        orderDatetime:unioformDateTransform(orderDatetime)
+    }
+    let res = await addFollowUpInfoApi(finalParams)
+    if(res?.code == 200){
+        CloseFormDialog()
+        emit('confirm')
+    }else{
+        editFormDialogSubmitLoading.value = false
+    }
 }
 
+// 表单项变更操作
 const HandleFormItemChange =(params)=>{
     const { key,val,formData } = params
-
     switch(key){
         case 'contact':
             if(val){
@@ -60,6 +94,13 @@ const HandleFormItemChange =(params)=>{
                     }
                     return item
                 })
+                let aimPosition  = JSON.stringify({
+                    label:JSON.parse(val).positionName,
+                    value:JSON.parse(val).positionId
+                })
+                formData.position = store.state.positionList.find(item=>{
+                    return item.value = aimPosition
+                })?.value
             }else{
                 finalFormItemList.value = finalFormItemList.value.map(item=>{
                     if(item.key == 'position'){
@@ -70,7 +111,7 @@ const HandleFormItemChange =(params)=>{
             }
             break
         case 'appointmentType':
-            if(val == 'appointment'){
+            if(val === 0){
                 finalFormItemList.value = finalFormItemList.value.map(item=>{
                     if(item.key == 'appointmentTime'){
                         item.hidden = false
@@ -79,7 +120,7 @@ const HandleFormItemChange =(params)=>{
                     }{}
                     return item
                 })
-            }else if(val == 'todo'){
+            }else if(val === 1){    
                 finalFormItemList.value = finalFormItemList.value.map(item=>{
                     if(item.key == 'appointmentTime'){
                         item.hidden = true
@@ -93,12 +134,52 @@ const HandleFormItemChange =(params)=>{
     }
 }
 
-watch(()=>props.defaultFormData,(newVal)=>{
-    formData.value = {...newVal}
-},{immediate:true})
+/**联系人信息获取 */
+const contactPeopleList = ref([])
+// 获取联系人列表
+const GetContactList = async ()=>{
+    let params = {
+        customerId: route.query.id    ,
+        userId:'',
+        queryStr: "",
+        positionId:''
+    }
+    let res = await getPrivateContactListApi(params)
+    if(res?.code == 200){
+        contactPeopleList.value = res.data.map(item=>{
+            return {
+                label:item.name,
+                value:JSON.stringify({
+                    id:item.id,
+                    positionId:item.positionId,
+                    positionName:item.positionName
+                }),
+            }
+        }) || []
+        finalFormItemList.value = finalFormItemList.value.map(item=>{
+            if(item.key == 'contact'){
+                item.selectList = contactPeopleList.value
+            }
+            return item
+        })
+    }
+}
 
-onMounted(()=>{
-    console.log('页面加载了--',formItemList.value)
+onMounted(async ()=>{
+    await store.dispatch('updateProductList')
+    await store.dispatch('updateFollowUpStatus')
+    await store.dispatch('updatePositionList')
+    await GetContactList()
+    finalFormItemList.value = finalFormItemList.value.map(item=>{
+        if(item.key == 'product'){
+            item.selectList = store.state.productList
+        }else if(item.key == 'status'){
+            item.selectList = store.state.followUpStatus
+        }else if(item.key == 'position'){
+            item.selectList = store.state.positionList
+        }
+        return item
+    })
 })
 </script>
 

+ 254 - 199
src/views/myCustomer/myCustomerDetail/index.vue

@@ -3,19 +3,19 @@
         <TopBackNav>
             <template #topRight>
                 <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">
-                        {{ customerBaseMsg.customerType }}
+                        {{ customerBaseMsg.typeName }}
                     </el-tag>
                 </div>
                 <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.owner }}</span>
-                    <span>认领时间:{{ customerBaseMsg.claimTime }}</span>
-                    <span>上次跟进时间:{{ customerBaseMsg.lastFollowUpTime }}</span>
+                    <span>归属人:{{ customerBaseMsg.claimUserName }}</span>
+                    <span>认领时间:{{ customerBaseMsg.claimDatetime }}</span>
+                    <span>上次跟进时间:{{ customerBaseMsg.lastFollowDatetime }}</span>
                 </div>
                 <div class="action">
                     <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>
 
             <!-- 联系人详情 -->
-            <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>
 
 
@@ -45,37 +45,27 @@
         <FormDialog 
             v-if="transferFormDialogVisible"    
             title="转让" :visible="transferFormDialogVisible" 
-            :submit-loading="transferFormDialogSubmitLoading" 
-            :default-form-data="transferDefaultFormData" 
+            :submitLoading="transferFormDialogSubmitLoading" 
+            :defaultFormData="transferDefaultFormData" 
             :formItemList="formItemList"
             @close="CloseTransferFormDialog"
             @confirm="HandleTransferFormDialogConfirm">
         </FormDialog>
 
         <!-- 操作记录 弹窗 -->
-        <PreviewDialog 
+         <CustomerOperationDialog 
             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 
-            v-if="schoolVisible"
             v-model:visible="schoolVisible"  
-            :defaultFormData="schoolDefaultFormData">
+            v-model:submitLoading="schoolSubmitLoading"
+            :defaultFormData="schoolDefaultFormData"
+            @confirm="HandleSchoolFormDialogConfirm">
         </SchoolFormDialog>
 
         <!-- 新增联系人弹窗 -->
@@ -83,14 +73,17 @@
             v-if="concactPeopleVisible"
             v-model:visible="concactPeopleVisible" 
             title="新增联系人"
-            :default-form-data="concactPeopleDefaultFormData">
+            :defaultFormData="concactPeopleDefaultFormData"
+            v-model:submitLoading="concactPeopleSubmitLoading"
+            @confirm="HandleConcactPeopleDialogConfirm">
         </ConcactPeopleFormDialog>
 
         <!-- 写跟进弹窗 -->
         <FollowFormDialog 
             v-if="followVisible"
             v-model:visible="followVisible"
-            :defaultFormData="followDefaultFormData">
+            :defaultFormData="followDefaultFormData"
+            @confirm="HandleFollowDialogConfirm">
         </FollowFormDialog>
 
 
@@ -99,15 +92,14 @@
             :submitLoading="transferPublicSubmitLoading"
             @close="CloseTransferPublicDialog"
             @confirm="HandleTransferPublicConfirm">
-            请确认是否将【{{customerBaseMsg.schoolName}}】转至公海
+            请确认是否将【{{customerBaseMsg.name}}】转至公海
         </Dialog>
-
     </div>
-
 </template>
 
 <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 addIcon from '@/assets/icon/add.svg';
 import peopleEditIcon from '@/assets/icon/people_edit.png'
@@ -121,12 +113,6 @@ import FormDialog from '@/baseComponents/FormDialog.vue';
 import {formItemList} from './formDialog'
 import ContactDetail from './contactDetail/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'
 
@@ -135,17 +121,38 @@ import ConcactPeopleFormDialog from '@/components/ConcactPeopleFormDialog/index.
 import FollowFormDialog from './components/FollowFormDialog/index.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切换
 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 transferFormDialogSubmitLoading = ref(false)
-const transferDefaultFormData = ref({
-    schoolName: '北京市第一零九中学',
-    currentOwner: '张三',
-    newOwner:'',
-})
-const OpenTransferFormDialog=()=>{
+const transferDefaultFormData = ref({})
+
+const OpenTransferFormDialog = async()=>{
     console.log('打开转让弹窗')
     transferFormDialogVisible.value = true
-    GetOwnerList()
+    transferDefaultFormData.value = {
+       schoolName: customerBaseMsg.value.name,
+        currentOwner: customerBaseMsg.value.claimUserName,
+        newOwner:'',
+    }
+    await GetOwnerList()
 }
 const CloseTransferFormDialog=()=>{
+    transferFormDialogSubmitLoading.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 schoolSubmitLoading = ref(false)
 const schoolDefaultFormData = ref({})
+
 const OpenSchoolFormDialog = ()=>{
     schoolVisible.value = true
     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:{
-            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>