From 236c99ad92c4a78bde98ce03be18f2eb1ea2fe11 Mon Sep 17 00:00:00 2001 From: "PC-202311141343\\Administrator" <505354293@qq.com> Date: Mon, 18 Aug 2025 16:30:52 +0800 Subject: [PATCH] =?UTF-8?q?=E6=8E=A8=E9=80=81=E5=B8=82=E5=9C=BA=E4=BF=A1?= =?UTF-8?q?=E6=81=AF=E6=A8=A1=E5=9D=97?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/api/crm/api_ys.js | 79 ++++ .../CRM/marketInformation/beCurrent.vue | 5 + .../CRM/marketInformation/beCurrentDetail.vue | 12 +- .../CRM/marketInformation/competitor.vue | 10 +- .../marketInformation/competitorDetail.vue | 12 +- .../CRM/marketInformation/infomationView.vue | 411 ++++++++++++++++++ .../marketInformation/informationDetail.vue | 288 ++++++++++++ .../CRM/marketInformation/keyModelTasks.vue | 5 + .../marketInformation/keyModelTasksDetail.vue | 12 +- .../CRM/marketInformation/majorMatter.vue | 5 + .../marketInformation/majorMatterDetail.vue | 12 +- .../marketInformation/marketInformation.vue | 35 +- .../marketInformationReview.vue | 249 +++++++++++ .../marketInformationReviewDetail.vue | 385 ++++++++++++++++ .../marketInformation/marketOpportunities.vue | 23 +- .../marketOpportunitiesDetail.vue | 11 +- .../marketInformation/personnelChanges.vue | 43 +- .../personnelChangesDetail.vue | 12 +- 18 files changed, 1542 insertions(+), 67 deletions(-) create mode 100644 src/pages/business/CRM/marketInformation/infomationView.vue create mode 100644 src/pages/business/CRM/marketInformation/informationDetail.vue create mode 100644 src/pages/business/CRM/marketInformation/marketInformationReview.vue create mode 100644 src/pages/business/CRM/marketInformation/marketInformationReviewDetail.vue diff --git a/src/api/crm/api_ys.js b/src/api/crm/api_ys.js index ef47b5e..67413af 100644 --- a/src/api/crm/api_ys.js +++ b/src/api/crm/api_ys.js @@ -56,4 +56,83 @@ import request from "@/utils/request" data }) } + //市场信息查询接口 + export function viewingMarketInfForAllMembers(data) { + return request.get({ + url: '/app/informationMarketInformation/viewList', + data + }) + } + //市场信息详情查询接口 + export function viewingMarketInfgetDetail(data) { + return request.get({ + url: '/app/informationMarketInformation/getDetail', + data + }) + } + //市场信审核列表接口 + export function approvalMarketInfget(data) { + return request.get({ + url: 'app/informationMarketInformation/Approval', + data + }) + } + //回款模块列表查询 + export function getPaymentList(data) { + return request.get({ + url: '/app/InformationReviewController/getPaymentList', + data + }) + } + //回款新增接口 + export function addPaymentCollection(data) { + return request.post({ + url: '/app/InformationReviewController/addPaymentCollection', + data + }) + } + //回款更新接口 + export function updatePaymentDetail(data) { + return request.post({ + url: '/app/InformationReviewController/updatePaymentDetail', + data + }) + } + //回款删除接口 + export function deletePaymentDetail(data) { + return request.post({ + url: '/app/InformationReviewController/deletePaymentDetail', + data + }) + } + + //全员查询回款接口 + export function getFullStaffStatisticsViewingTable(data) { + return request.get({ + url: '/app/InformationReviewController/getFullStaffStatisticsViewingTable', + data + }) + } + //个人查询回款接口 + export function getPersonalPaymentCollectionTable(data) { + return request.get({ + url: '/app/InformationReviewController/getPersonalPaymentCollectionTable', + data + }) + } + + //市场信息审核通过接口 + export function crmMarketInformationApprovalSuccess(data) { + return request.get({ + url: '/app/informationMarketInformation/ApprovalSuccess', + data + }) + } + //市场信息审核驳回接口 + export function crmMarketInformationApprovalUnSuccess(data) { + return request.get({ + url: '/app/informationMarketInformation/ApprovalUnSuccess', + data + }) + } \ No newline at end of file diff --git a/src/pages/business/CRM/marketInformation/beCurrent.vue b/src/pages/business/CRM/marketInformation/beCurrent.vue index 048a5d2..313a875 100644 --- a/src/pages/business/CRM/marketInformation/beCurrent.vue +++ b/src/pages/business/CRM/marketInformation/beCurrent.vue @@ -174,6 +174,11 @@ title: '提交成功', icon: 'success' }) + uni.$emit('refreshMarketList'); + setTimeout(() => { + uni.navigateBack(1); + }, 1500); + console.log('表单数据:', formData.value) } catch (err) { console.log('表单验证失败:', err) diff --git a/src/pages/business/CRM/marketInformation/beCurrentDetail.vue b/src/pages/business/CRM/marketInformation/beCurrentDetail.vue index 7481d4a..31b78e6 100644 --- a/src/pages/business/CRM/marketInformation/beCurrentDetail.vue +++ b/src/pages/business/CRM/marketInformation/beCurrentDetail.vue @@ -179,8 +179,10 @@ title: '提交成功', icon: 'success' }) - uni.$emit('refreshMarketOpportunityList') - uni.navigateBack(1) + uni.$emit('refreshMarketList'); + setTimeout(() => { + uni.navigateBack(1); + }, 1500); } catch (err) { console.log('表单验证失败:', err) } @@ -216,8 +218,10 @@ onMounted(() => { title: '删除成功', icon: 'success' }) - uni.$emit('refreshMarketOpportunityList') - uni.navigateBack(1) + uni.$emit('refreshMarketList'); + setTimeout(() => { + uni.navigateBack(1); + }, 1500); } catch (err) { console.log('表单验证失败:', err) } diff --git a/src/pages/business/CRM/marketInformation/competitor.vue b/src/pages/business/CRM/marketInformation/competitor.vue index 5c460e0..e83c481 100644 --- a/src/pages/business/CRM/marketInformation/competitor.vue +++ b/src/pages/business/CRM/marketInformation/competitor.vue @@ -327,15 +327,12 @@ const dynamicPlaceholder = computed(() => { // 当前选中的信息类型 const competitorLevelOneIndex = ref(0) const competitorLevelOne = ref('基本信息') - + const competitorLevelTwo = ref('资质情况') // 当前选中的具体分类索引 const competitorLevelTwoIndex = ref(0) // 当前显示的具体分类选项数组(动态切换 array2 / array3) const currentCompetitorLevelTwoArray = ref(array2.value) - - // 当前选中的具体分类名称 - const competitorLevelTwo = ref('') // 表单引用 & 客户选择器引用 const formRef = ref(null) @@ -374,6 +371,11 @@ const dynamicPlaceholder = computed(() => { title: '提交成功', icon: 'success' }) + uni.$emit('refreshMarketList'); + setTimeout(() => { + uni.navigateBack(1); + }, 1500); + console.log('表单数据:', formData.value) } catch (err) { console.log('表单验证失败:', err) diff --git a/src/pages/business/CRM/marketInformation/competitorDetail.vue b/src/pages/business/CRM/marketInformation/competitorDetail.vue index afa4bb7..42bf8ce 100644 --- a/src/pages/business/CRM/marketInformation/competitorDetail.vue +++ b/src/pages/business/CRM/marketInformation/competitorDetail.vue @@ -379,8 +379,10 @@ const dynamicPlaceholder = computed(() => { title: '提交成功', icon: 'success' }) - uni.$emit('refreshMarketOpportunityList') - uni.navigateBack(1) + uni.$emit('refreshMarketList'); + setTimeout(() => { + uni.navigateBack(1); + }, 1500); } catch (err) { console.log('表单验证失败:', err) } @@ -448,8 +450,10 @@ const dynamicPlaceholder = computed(() => { title: '删除成功', icon: 'success' }) - uni.$emit('refreshMarketOpportunityList') - uni.navigateBack(1) + uni.$emit('refreshMarketList'); + setTimeout(() => { + uni.navigateBack(1); + }, 1500); } catch (err) { console.log('表单验证失败:', err) } diff --git a/src/pages/business/CRM/marketInformation/infomationView.vue b/src/pages/business/CRM/marketInformation/infomationView.vue new file mode 100644 index 0000000..41d8790 --- /dev/null +++ b/src/pages/business/CRM/marketInformation/infomationView.vue @@ -0,0 +1,411 @@ + + + + + \ No newline at end of file diff --git a/src/pages/business/CRM/marketInformation/informationDetail.vue b/src/pages/business/CRM/marketInformation/informationDetail.vue new file mode 100644 index 0000000..98a4fe2 --- /dev/null +++ b/src/pages/business/CRM/marketInformation/informationDetail.vue @@ -0,0 +1,288 @@ + + + + + \ No newline at end of file diff --git a/src/pages/business/CRM/marketInformation/keyModelTasks.vue b/src/pages/business/CRM/marketInformation/keyModelTasks.vue index 2de48b5..3756522 100644 --- a/src/pages/business/CRM/marketInformation/keyModelTasks.vue +++ b/src/pages/business/CRM/marketInformation/keyModelTasks.vue @@ -178,6 +178,11 @@ title: '提交成功', icon: 'success' }) + uni.$emit('refreshMarketList'); + setTimeout(() => { + uni.navigateBack(1); + }, 1500); + console.log('表单数据:', formData.value) } catch (err) { console.log('表单验证失败:', err) diff --git a/src/pages/business/CRM/marketInformation/keyModelTasksDetail.vue b/src/pages/business/CRM/marketInformation/keyModelTasksDetail.vue index 9cadf4a..221ac5d 100644 --- a/src/pages/business/CRM/marketInformation/keyModelTasksDetail.vue +++ b/src/pages/business/CRM/marketInformation/keyModelTasksDetail.vue @@ -183,8 +183,10 @@ title: '提交成功', icon: 'success' }) - uni.$emit('refreshMarketOpportunityList') - uni.navigateBack(1) + uni.$emit('refreshMarketList'); + setTimeout(() => { + uni.navigateBack(1); + }, 1500); } catch (err) { console.log('表单验证失败:', err) } @@ -217,8 +219,10 @@ title: '删除成功', icon: 'success' }) - uni.$emit('refreshMarketOpportunityList') - uni.navigateBack(1) + uni.$emit('refreshMarketList'); + setTimeout(() => { + uni.navigateBack(1); + }, 1500); } catch (err) { console.log('表单验证失败:', err) } diff --git a/src/pages/business/CRM/marketInformation/majorMatter.vue b/src/pages/business/CRM/marketInformation/majorMatter.vue index b4927cd..0d4e999 100644 --- a/src/pages/business/CRM/marketInformation/majorMatter.vue +++ b/src/pages/business/CRM/marketInformation/majorMatter.vue @@ -203,6 +203,11 @@ title: '提交成功', icon: 'success' }) + uni.$emit('refreshMarketList'); + setTimeout(() => { + uni.navigateBack(1); + }, 1500); + console.log('表单数据:', formData.value) } catch (err) { console.log('表单验证失败:', err) diff --git a/src/pages/business/CRM/marketInformation/majorMatterDetail.vue b/src/pages/business/CRM/marketInformation/majorMatterDetail.vue index fc959ff..3c99a93 100644 --- a/src/pages/business/CRM/marketInformation/majorMatterDetail.vue +++ b/src/pages/business/CRM/marketInformation/majorMatterDetail.vue @@ -210,8 +210,10 @@ title: '提交成功', icon: 'success' }) - uni.$emit('refreshMarketOpportunityList') - uni.navigateBack(1) + uni.$emit('refreshMarketList'); + setTimeout(() => { + uni.navigateBack(1); + }, 1500); } catch (err) { console.log('表单验证失败:', err) } @@ -250,8 +252,10 @@ title: '删除成功', icon: 'success' }) - uni.$emit('refreshMarketOpportunityList') - uni.navigateBack(1) + uni.$emit('refreshMarketList'); + setTimeout(() => { + uni.navigateBack(1); + }, 1500); } catch (err) { console.log('表单验证失败:', err) } diff --git a/src/pages/business/CRM/marketInformation/marketInformation.vue b/src/pages/business/CRM/marketInformation/marketInformation.vue index b16f220..d693cf1 100644 --- a/src/pages/business/CRM/marketInformation/marketInformation.vue +++ b/src/pages/business/CRM/marketInformation/marketInformation.vue @@ -32,7 +32,7 @@ {{ item.cusName }} {{ item.state }} + size="mini" @click.stop="itemView(item)">{{ item.state }} 机会类型:{{item.opportunityType}} @@ -51,13 +51,13 @@ {{ item.cusName }} {{ item.state }} + size="mini" @click.stop="itemView(item)">{{ item.state }} 产生的影响:{{item.theImpactGenerated}} - 重大事项类型:{{item.majorTypesOfMatters}} + 重大事项类型:{{item.opportunityType}} @@ -70,7 +70,7 @@ {{ item.competitiveUnits }} {{ item.state }} + size="mini" @click.stop="itemView(item)">{{ item.state }} @@ -89,7 +89,7 @@ {{ item.cusName }} {{ item.state }} + size="mini" @click.stop="itemView(item)">{{ item.state }} 客户人员名称:{{item.cusUserName}} @@ -110,7 +110,7 @@ {{ item.cusName }} {{ item.state }} + size="mini" @click.stop="itemView(item)">{{ item.state }} 重点型号:{{item.keyModels}} @@ -128,7 +128,7 @@ {{ item.cusName }} {{ item.state }} + size="mini" @click.stop="itemView(item)">{{ item.state }} 标签:{{item.generalFormType}} @@ -148,7 +148,8 @@ diff --git a/src/pages/business/CRM/marketInformation/marketInformationReviewDetail.vue b/src/pages/business/CRM/marketInformation/marketInformationReviewDetail.vue new file mode 100644 index 0000000..f7c2907 --- /dev/null +++ b/src/pages/business/CRM/marketInformation/marketInformationReviewDetail.vue @@ -0,0 +1,385 @@ + + + + + \ No newline at end of file diff --git a/src/pages/business/CRM/marketInformation/marketOpportunities.vue b/src/pages/business/CRM/marketInformation/marketOpportunities.vue index 90f91d1..952afa8 100644 --- a/src/pages/business/CRM/marketInformation/marketOpportunities.vue +++ b/src/pages/business/CRM/marketInformation/marketOpportunities.vue @@ -87,9 +87,6 @@ let customerUser = reactive({}) // 客户相关 const guestList = ref([]) - const guestArr = ref([]) - const guestIndex = ref(0) - // 表单数据 const formData = ref({ cusId: null, @@ -186,7 +183,7 @@ const form = ref({ cusId: null, cusName: null, - opportunityType: "", // 机会类型 + opportunityType: array.value[0].name, // 机会类型 understandTheWay: "", // 了解途径 opportunityDescription: "", // 机会描述 opportunityStatus: "", // 机会所处状态 @@ -243,7 +240,12 @@ //监听时间 onMounted(() => { - uni.$on('onCustomerSelected', handleCustomerSelected) + // 设置机会类型的默认值 + formData.value.opportunityType = array.value[0].name; + opportunityTypeIndex.value = 0; + + // 原有的监听客户选择事件 + uni.$on('onCustomerSelected', handleCustomerSelected); }) //取消监听 onUnmounted(() => { @@ -266,17 +268,18 @@ try { // 表单校验 await formRef.value.validate() - const res = await crmMarketInformationAdd(formData.value); + const res = await crmMarketInformationAdd(formData.value); console.log(res) uni.showToast({ title: '提交成功', icon: 'success' }) + uni.$emit('refreshMarketList'); + setTimeout(() => { + uni.navigateBack(1); + }, 1500); + console.log('表单数据:', formData.value) - - // TODO: 在这里添加提交到后端的逻辑,比如调用 api.CrmMarketInformationAdd(formData.value) - // 暂时只做校验提示 - } catch (err) { console.log('表单验证失败:', err) } diff --git a/src/pages/business/CRM/marketInformation/marketOpportunitiesDetail.vue b/src/pages/business/CRM/marketInformation/marketOpportunitiesDetail.vue index d31a02e..a2d22d7 100644 --- a/src/pages/business/CRM/marketInformation/marketOpportunitiesDetail.vue +++ b/src/pages/business/CRM/marketInformation/marketOpportunitiesDetail.vue @@ -293,8 +293,10 @@ onMounted(() => { title: '提交成功', icon: 'success' }) - uni.$emit('refreshMarketOpportunityList') - uni.navigateBack(1) + uni.$emit('refreshMarketList'); + setTimeout(() => { + uni.navigateBack(1); + }, 1500); } catch (err) { console.log('表单验证失败:', err) @@ -309,7 +311,10 @@ onMounted(() => { title: '删除成功', icon: 'success' }) - uni.navigateBack(1) + uni.$emit('refreshMarketList'); + setTimeout(() => { + uni.navigateBack(1); + }, 1500); } catch (err) { console.log('表单验证失败:', err) } diff --git a/src/pages/business/CRM/marketInformation/personnelChanges.vue b/src/pages/business/CRM/marketInformation/personnelChanges.vue index efc0064..50c46be 100644 --- a/src/pages/business/CRM/marketInformation/personnelChanges.vue +++ b/src/pages/business/CRM/marketInformation/personnelChanges.vue @@ -81,7 +81,10 @@ } from 'vue' import customHeader from '@/components/customHeader.vue' import cache from '@/utils/cache' - import { onShow, onUnload } from '@dcloudio/uni-app'; + import { + onShow, + onUnload + } from '@dcloudio/uni-app'; import { getGuestList } from '@/api/business.js' @@ -227,23 +230,23 @@ url: '/pages/business/CRM/customerUserList?cusName=' + formData.value.cusName }) } -//页面渲染完成后,查询catch的get -onShow(() => { + //页面渲染完成后,查询catch的get + onShow(() => { - if (cache.get('checkedRCClientList') != null && cache.get('checkedRCClientList') != []) { - formData.value.cusUserName = cache.get('checkedRCClientList') - } + if (cache.get('checkedRCClientList') != null && cache.get('checkedRCClientList') != []) { + formData.value.cusUserName = cache.get('checkedRCClientList') + } -}) -//页面卸载之后,删除缓存信息 -onUnload(() => { - handleDeleteLocal() -}) + }) + //页面卸载之后,删除缓存信息 + onUnload(() => { + handleDeleteLocal() + }) -//删除缓存 -let handleDeleteLocal = () => { - cache.remove('checkedRCClientList'); -} + //删除缓存 + let handleDeleteLocal = () => { + cache.remove('checkedRCClientList'); + } // 提交表单 const submitForm = async () => { @@ -251,7 +254,7 @@ let handleDeleteLocal = () => { // 表单校验 await formRef.value.validate() const cusUserName1 = formData.value.cusUserName; - const stringOfNames = cusUserName1.join(",") + const stringOfNames = cusUserName1.join(",") formData.value.cusUserName = stringOfNames const res = await crmMarketInformationAdd(formData.value); console.log(res) @@ -259,10 +262,10 @@ let handleDeleteLocal = () => { title: '提交成功', icon: 'success' }) - console.log('表单数据:', formData.value) - - // TODO: 在这里添加提交到后端的逻辑,比如调用 api.CrmMarketInformationAdd(formData.value) - // 暂时只做校验提示 + uni.$emit('refreshMarketList'); + setTimeout(() => { + uni.navigateBack(1); + }, 1500); } catch (err) { console.log('表单验证失败:', err) diff --git a/src/pages/business/CRM/marketInformation/personnelChangesDetail.vue b/src/pages/business/CRM/marketInformation/personnelChangesDetail.vue index f2fae25..3d084c4 100644 --- a/src/pages/business/CRM/marketInformation/personnelChangesDetail.vue +++ b/src/pages/business/CRM/marketInformation/personnelChangesDetail.vue @@ -263,8 +263,10 @@ let handleDeleteLocal = () => { title: '提交成功', icon: 'success' }) - uni.$emit('refreshMarketOpportunityList') - uni.navigateBack(1) + uni.$emit('refreshMarketList'); + setTimeout(() => { + uni.navigateBack(1); + }, 1500); // TODO: 在这里添加提交到后端的逻辑,比如调用 api.CrmMarketInformationAdd(formData.value) // 暂时只做校验提示 @@ -318,8 +320,10 @@ let handleDeleteLocal = () => { title: '删除成功', icon: 'success' }) - uni.$emit('refreshMarketOpportunityList') - uni.navigateBack(1) + uni.$emit('refreshMarketList'); + setTimeout(() => { + uni.navigateBack(1); + }, 1500); } catch (err) { console.log('表单验证失败:', err) }