From a963bdef6f160ffae13e93ee4634ee3a39cde490 Mon Sep 17 00:00:00 2001 From: zy Date: Mon, 12 May 2025 21:57:45 +0800 Subject: [PATCH] =?UTF-8?q?=E4=B8=8A=E7=BA=BF=E7=94=B3=E8=AF=B7?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/api/crm/quotation/index.ts | 4 + src/api/task/onlineModule/index.ts | 43 +++ src/main.ts | 1 - src/router/modules/remaining.ts | 28 +- .../ProductProcurementCostForm.vue | 4 +- src/views/crm/quotation/QuotationForm.vue | 11 +- .../quotation/components/RevenueAnalysis.vue | 85 ++++++ src/views/task/online/HandleSign.vue | 74 +++++ .../task/online/OnlineApplicationDetail.vue | 277 ++++++++++++++++++ .../task/online/OnlineApplicationForm.vue | 216 ++++++++++---- src/views/task/online/ceshi.vue | 197 ------------- .../components/OnlineModuleInfoForm.vue | 110 +++++++ src/views/task/online/components/index.vue | 216 ++++++++++++++ src/views/task/online/index.vue | 109 +++++-- 14 files changed, 1087 insertions(+), 288 deletions(-) create mode 100644 src/api/task/onlineModule/index.ts create mode 100644 src/views/crm/quotation/components/RevenueAnalysis.vue create mode 100644 src/views/task/online/HandleSign.vue create mode 100644 src/views/task/online/OnlineApplicationDetail.vue delete mode 100644 src/views/task/online/ceshi.vue create mode 100644 src/views/task/online/components/OnlineModuleInfoForm.vue create mode 100644 src/views/task/online/components/index.vue diff --git a/src/api/crm/quotation/index.ts b/src/api/crm/quotation/index.ts index 9c9aa5735..b9dd497bb 100644 --- a/src/api/crm/quotation/index.ts +++ b/src/api/crm/quotation/index.ts @@ -44,6 +44,10 @@ export const QuotationApi = { getSimpleQuotationList : async () => { return await request.get({ url: `/crm/quotation/simple-all-list` }) }, + // 获得 CRM 方案营收分析 + getRevenueList : async () => { + return await request.get({ url: `/crm/quotation/get-revenue-analysis` }) + }, // 获得 CRM 方案列表(精简) getSelfSimpleQuotationList : async () => { diff --git a/src/api/task/onlineModule/index.ts b/src/api/task/onlineModule/index.ts new file mode 100644 index 000000000..1a96851fd --- /dev/null +++ b/src/api/task/onlineModule/index.ts @@ -0,0 +1,43 @@ +import request from '@/config/axios' + +// 上线模块信息 VO +export interface OnlineModuleInfoVO { + id: number // 唯一主键 + onlineApplicationId: number // 上线申请ID + involvingModule: string // 涉及模块 + version: string // 版本 + moduleDescription: string // 模块说明 +} + +// 上线模块信息 API +export const OnlineModuleInfoApi = { + // 查询上线模块信息分页 + getOnlineModuleInfoPage: async (params: any) => { + return await request.get({ url: `/tts/online-module-info/page`, params }) + }, + + // 查询上线模块信息详情 + getOnlineModuleInfo: async (id: number) => { + return await request.get({ url: `/tts/online-module-info/get?id=` + id }) + }, + + // 新增上线模块信息 + createOnlineModuleInfo: async (data: OnlineModuleInfoVO) => { + return await request.post({ url: `/tts/online-module-info/create`, data }) + }, + + // 修改上线模块信息 + updateOnlineModuleInfo: async (data: OnlineModuleInfoVO) => { + return await request.put({ url: `/tts/online-module-info/update`, data }) + }, + + // 删除上线模块信息 + deleteOnlineModuleInfo: async (id: number) => { + return await request.delete({ url: `/tts/online-module-info/delete?id=` + id }) + }, + + // 导出上线模块信息 Excel + exportOnlineModuleInfo: async (params) => { + return await request.download({ url: `/tts/online-module-info/export-excel`, params }) + } +} \ No newline at end of file diff --git a/src/main.ts b/src/main.ts index 3be899332..dae04a46a 100644 --- a/src/main.ts +++ b/src/main.ts @@ -43,7 +43,6 @@ import Logger from '@/utils/Logger' import VueDOMPurifyHTML from 'vue-dompurify-html' // 解决v-html 的安全隐患 import VueSignaturePad from "vue-signature-pad"; -// import 'vue-signature-pad/dist/vue-signature-pad.css'; // 创建实例 const setupAll = async () => { diff --git a/src/router/modules/remaining.ts b/src/router/modules/remaining.ts index 083baca49..c2f26a2e2 100644 --- a/src/router/modules/remaining.ts +++ b/src/router/modules/remaining.ts @@ -836,7 +836,7 @@ const remainingRouter: AppRouteRecordRaw[] = [ hidden: true, activeMenu: '/project/project' }, - component: () => import('@/views/task/components/TaskDetail.vue') + component: () => import('@/views/task/project/components/TaskDetail.vue') }, { path: 'components/ProjectTaskForm', @@ -847,19 +847,41 @@ const remainingRouter: AppRouteRecordRaw[] = [ hidden: true, activeMenu: '/project/project' }, - component: () => import('@/views/task/components/ProjectTaskForm.vue') + component: () => import('@/views/task/project/components/ProjectTaskForm.vue') }, { path: 'online/OnlineApplicationForm', name: 'OnlineAppAdd', meta: { - title: '上线新增', + title: '上线申请新增', noCache: true, hidden: true, activeMenu: '/project/online' }, component: () => import('@/views/task/online/OnlineApplicationForm.vue') }, + { + path: 'online/OnlineApplicationEdit', + name: 'OnlineAppEdit', + meta: { + title: '上线申请编辑', + noCache: true, + hidden: true, + activeMenu: '/project/online' + }, + component: () => import('@/views/task/online/OnlineApplicationForm.vue') + }, + { + path: 'online/OnlineApplicationDetail', + name: 'OnlineAppDetail', + meta: { + title: '上线申请详情', + noCache: true, + hidden: true, + activeMenu: '/project/online' + }, + component: () => import('@/views/task/online/OnlineApplicationDetail.vue') + }, ] }, { diff --git a/src/views/crm/productprocurementcost/ProductProcurementCostForm.vue b/src/views/crm/productprocurementcost/ProductProcurementCostForm.vue index 67c8b8de8..051331ca6 100644 --- a/src/views/crm/productprocurementcost/ProductProcurementCostForm.vue +++ b/src/views/crm/productprocurementcost/ProductProcurementCostForm.vue @@ -96,9 +96,9 @@ - + - + diff --git a/src/views/crm/quotation/QuotationForm.vue b/src/views/crm/quotation/QuotationForm.vue index 8270ad2af..0614b1593 100644 --- a/src/views/crm/quotation/QuotationForm.vue +++ b/src/views/crm/quotation/QuotationForm.vue @@ -378,10 +378,13 @@ - + + + +
确 定 @@ -395,6 +398,7 @@ import { QuotationApi, QuotationVO } from '@/api/crm/quotation' import { defaultProps, handleTree } from '@/utils/tree' import { BillTemplateApi, BillTemplateVO } from '@/api/crm/billtemplate' import QuotationProductForm from './components/QuotationProductForm.vue' +import RevenueAnalysis from './components/RevenueAnalysis.vue' import * as ContractApi from '@/api/crm/contract' import * as CustomerApi from '@/api/crm/customer' import * as UserApi from '@/api/system/user' @@ -531,6 +535,11 @@ const setSuccess = (val) => { formData.value.products = val } +//获取营收分析 +const handleClick = (val) => { + console.log('%csrc/views/crm/quotation/QuotationForm.vue:540 val', 'color: #007acc;', subTabsName.value); +} + const onBusinessChange = async (businessId: string) => { if (!businessId) return diff --git a/src/views/crm/quotation/components/RevenueAnalysis.vue b/src/views/crm/quotation/components/RevenueAnalysis.vue new file mode 100644 index 000000000..43a81acdc --- /dev/null +++ b/src/views/crm/quotation/components/RevenueAnalysis.vue @@ -0,0 +1,85 @@ + + + \ No newline at end of file diff --git a/src/views/task/online/HandleSign.vue b/src/views/task/online/HandleSign.vue new file mode 100644 index 000000000..55ee764b5 --- /dev/null +++ b/src/views/task/online/HandleSign.vue @@ -0,0 +1,74 @@ + + + + + \ No newline at end of file diff --git a/src/views/task/online/OnlineApplicationDetail.vue b/src/views/task/online/OnlineApplicationDetail.vue new file mode 100644 index 000000000..5a3b6ab95 --- /dev/null +++ b/src/views/task/online/OnlineApplicationDetail.vue @@ -0,0 +1,277 @@ + + + + \ No newline at end of file diff --git a/src/views/task/online/OnlineApplicationForm.vue b/src/views/task/online/OnlineApplicationForm.vue index 17d00b33e..019604d80 100644 --- a/src/views/task/online/OnlineApplicationForm.vue +++ b/src/views/task/online/OnlineApplicationForm.vue @@ -5,56 +5,109 @@ ref="formRef" :model="formData" :rules="formRules" - label-width="100px" + label-width="130px" v-loading="formLoading" > - - - - - - + + + + + + + + + + + + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ {{formData.applicantSign ? '重新签名' : '点击签名'}} + +
+
+
+ + +
+ +
+
+ - + 取 消 +
\ No newline at end of file +const route = useRoute(); +onMounted(async()=> { + formType.value = props.id || route.query.id + + if (formType.value) await open(formType.value) + + deptTree.value = handleTree(await DeptApi.getSimpleDeptList()) + // 获得用户列表 + userOptions.value = await UserApi.getSimpleUserList() +}) + + + \ No newline at end of file diff --git a/src/views/task/online/ceshi.vue b/src/views/task/online/ceshi.vue deleted file mode 100644 index c3979757d..000000000 --- a/src/views/task/online/ceshi.vue +++ /dev/null @@ -1,197 +0,0 @@ - - - - - \ No newline at end of file diff --git a/src/views/task/online/components/OnlineModuleInfoForm.vue b/src/views/task/online/components/OnlineModuleInfoForm.vue new file mode 100644 index 000000000..26e012317 --- /dev/null +++ b/src/views/task/online/components/OnlineModuleInfoForm.vue @@ -0,0 +1,110 @@ + + \ No newline at end of file diff --git a/src/views/task/online/components/index.vue b/src/views/task/online/components/index.vue new file mode 100644 index 000000000..cc9f70c53 --- /dev/null +++ b/src/views/task/online/components/index.vue @@ -0,0 +1,216 @@ + + + \ No newline at end of file diff --git a/src/views/task/online/index.vue b/src/views/task/online/index.vue index 06b5a35c6..24058b9d8 100644 --- a/src/views/task/online/index.vue +++ b/src/views/task/online/index.vue @@ -18,18 +18,20 @@ /> - + node-key="id" + placeholder="请选择申请部门" + /> - + --> - - + + + + + + + - + + + + + + - + @@ -130,7 +157,7 @@ - + \ No newline at end of file