From 14a8fc6434a3367012cbb74bb86ae1af8b03b37f Mon Sep 17 00:00:00 2001 From: hhyykk Date: Sat, 6 Jul 2024 20:22:49 +0800 Subject: [PATCH] =?UTF-8?q?[feat]=20=E6=96=B0=E5=A2=9E=E9=A1=B9=E7=9B=AE?= =?UTF-8?q?=E4=BF=A1=E6=81=AF=E7=AE=A1=E7=90=86=E6=A8=A1=E5=9D=97?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .env.local | 2 + src/api/cms/customerCompany/index.ts | 91 ++--- src/api/infra/file/index.ts | 5 + src/api/pms/project/index.ts | 66 ++++ src/layout/components/Footer/src/Footer.vue | 2 +- src/utils/dict.ts | 8 +- src/views/pms/project/ProjectForm.vue | 403 ++++++++++++++++++++ src/views/pms/project/index.vue | 226 +++++++++++ 8 files changed, 758 insertions(+), 45 deletions(-) create mode 100644 src/api/pms/project/index.ts create mode 100644 src/views/pms/project/ProjectForm.vue create mode 100644 src/views/pms/project/index.vue diff --git a/.env.local b/.env.local index 005d2f0d..9027aee3 100644 --- a/.env.local +++ b/.env.local @@ -5,11 +5,13 @@ VITE_DEV=true # 请求路径 VITE_BASE_URL='http://localhost:48080' +#VITE_BASE_URL='http://16ba17bc.r2.cpolar.cn' # 文件上传类型:server - 后端上传, client - 前端直连上传,仅支持 S3 服务 VITE_UPLOAD_TYPE=server # 上传路径 VITE_UPLOAD_URL='http://localhost:48080/admin-api/infra/file/upload' +# VITE_UPLOAD_URL='http://16ba17bc.r2.cpolar.cn/admin-api/infra/file/upload' # 接口地址 VITE_API_URL=/admin-api diff --git a/src/api/cms/customerCompany/index.ts b/src/api/cms/customerCompany/index.ts index 5a38ca13..3d03d17f 100644 --- a/src/api/cms/customerCompany/index.ts +++ b/src/api/cms/customerCompany/index.ts @@ -1,43 +1,48 @@ -import request from '@/config/axios' - -// 客户公司 VO -export interface CustomerCompanyVO { - id: number // 主键 - contacts: string // 联系人 - name: string // 公司名称 - address: string // 地址 - phone: string // 电话 -} - -// 客户公司 API -export const CustomerCompanyApi = { - // 查询客户公司分页 - getCustomerCompanyPage: async (params: any) => { - return await request.get({ url: `/cms/customer-company/page`, params }) - }, - - // 查询客户公司详情 - getCustomerCompany: async (id: number) => { - return await request.get({ url: `/cms/customer-company/get?id=` + id }) - }, - - // 新增客户公司 - createCustomerCompany: async (data: CustomerCompanyVO) => { - return await request.post({ url: `/cms/customer-company/create`, data }) - }, - - // 修改客户公司 - updateCustomerCompany: async (data: CustomerCompanyVO) => { - return await request.put({ url: `/cms/customer-company/update`, data }) - }, - - // 删除客户公司 - deleteCustomerCompany: async (id: number) => { - return await request.delete({ url: `/cms/customer-company/delete?id=` + id }) - }, - - // 导出客户公司 Excel - exportCustomerCompany: async (params) => { - return await request.download({ url: `/cms/customer-company/export-excel`, params }) - }, -} \ No newline at end of file +import request from '@/config/axios' + +// 客户公司 VO +export interface CustomerCompanyVO { + id: number // 主键 + contacts: string // 联系人 + name: string // 公司名称 + address: string // 地址 + phone: string // 电话 +} + +// 客户公司 API +export const CustomerCompanyApi = { + // 查询客户公司分页 + getCustomerCompanyPage: async (params: any) => { + return await request.get({ url: `/cms/customer-company/page`, params }) + }, + + // 查询客户公司详情 + getCustomerCompany: async (id: number) => { + return await request.get({ url: `/cms/customer-company/get?id=` + id }) + }, + + // 新增客户公司 + createCustomerCompany: async (data: CustomerCompanyVO) => { + return await request.post({ url: `/cms/customer-company/create`, data }) + }, + + // 修改客户公司 + updateCustomerCompany: async (data: CustomerCompanyVO) => { + return await request.put({ url: `/cms/customer-company/update`, data }) + }, + + // 删除客户公司 + deleteCustomerCompany: async (id: number) => { + return await request.delete({ url: `/cms/customer-company/delete?id=` + id }) + }, + + // 导出客户公司 Excel + exportCustomerCompany: async (params) => { + return await request.download({ url: `/cms/customer-company/export-excel`, params }) + }, + + // 获取客户公司列表 + getCustomerCompanyList: async () => { + return await request.get({ url: `/cms/customer-company/list`}) + }, +} diff --git a/src/api/infra/file/index.ts b/src/api/infra/file/index.ts index 0e1b2e7c..75bd6124 100644 --- a/src/api/infra/file/index.ts +++ b/src/api/infra/file/index.ts @@ -43,3 +43,8 @@ export const createFile = (data: any) => { export const updateFile = (data: any) => { return request.upload({ url: '/infra/file/upload', data }) } + +// 上传文件 +export const updateFileEx = (data: any) => { + return request.upload({ url: '/infra/file/uploadEx', data }) +} diff --git a/src/api/pms/project/index.ts b/src/api/pms/project/index.ts new file mode 100644 index 00000000..2fb7d4c4 --- /dev/null +++ b/src/api/pms/project/index.ts @@ -0,0 +1,66 @@ +import request from '@/config/axios' + +// 项目基本信息 VO +export interface ProjectVO { + id: number // 主键 + name: string // 名称 + code: string // 项目编号 + customerUser: string // 客户联系人 + drawingCompany: string // 出图公司 + trackingDepId: number // 跟踪部门id + endTime: Date // 落地时间 + possibility: string // 落地可能性 + funnelExpectation: string // 漏斗预期 + entrustMethod: string // 委托方式 + reason: string // 未落地原因 + processStatus: string // 审批状态 + trackingCode: string // 跟踪编号 + type: string // 类型 + customerCompanyId: number // 客户公司id + projectManagerId: number // 项目经理id + startTime: Date // 开始时间 + situation: string // 跟踪情况 + reviewFileUrl: string // 评审附件 + confirmation: boolean // 是否落地 + winFileUrl: string // 中标附件 + contractAmount: string // 预计合同金额 + customerPhone: string // 客户电话 + provinceId: number // 省份id + cityId: number // 城市id + trackingDeptName: string // 跟踪部门名称 + projectManagerName: string // 项目经理名称 + customerCompanyName: string // 客户公司名称 +} + +// 项目基本信息 API +export const ProjectApi = { + // 查询项目基本信息分页 + getProjectPage: async (params: any) => { + return await request.get({ url: `/pms/project/page`, params }) + }, + + // 查询项目基本信息详情 + getProject: async (id: number) => { + return await request.get({ url: `/pms/project/get?id=` + id }) + }, + + // 新增项目基本信息 + createProject: async (data: ProjectVO) => { + return await request.post({ url: `/pms/project/create`, data }) + }, + + // 修改项目基本信息 + updateProject: async (data: ProjectVO) => { + return await request.put({ url: `/pms/project/update`, data }) + }, + + // 删除项目基本信息 + deleteProject: async (id: number) => { + return await request.delete({ url: `/pms/project/delete?id=` + id }) + }, + + // 导出项目基本信息 Excel + exportProject: async (params) => { + return await request.download({ url: `/pms/project/export-excel`, params }) + }, +} diff --git a/src/layout/components/Footer/src/Footer.vue b/src/layout/components/Footer/src/Footer.vue index 3eede386..55101592 100644 --- a/src/layout/components/Footer/src/Footer.vue +++ b/src/layout/components/Footer/src/Footer.vue @@ -19,6 +19,6 @@ const title = computed(() => appStore.getTitle) :class="prefixCls" class="h-[var(--app-footer-height)] bg-[var(--app-content-bg-color)] text-center leading-[var(--app-footer-height)] text-[var(--el-text-color-placeholder)] dark:bg-[var(--el-bg-color)]" > - Copyright ©2022-{{ title }} + Copyright ©2024-{{ title }} diff --git a/src/utils/dict.ts b/src/utils/dict.ts index 631a40b0..80043bf4 100644 --- a/src/utils/dict.ts +++ b/src/utils/dict.ts @@ -209,5 +209,11 @@ export enum DICT_TYPE { // ========== ERP - 企业资源计划模块 ========== ERP_AUDIT_STATUS = 'erp_audit_status', // ERP 审批状态 - ERP_STOCK_RECORD_BIZ_TYPE = 'erp_stock_record_biz_type' // 库存明细的业务类型 + ERP_STOCK_RECORD_BIZ_TYPE = 'erp_stock_record_biz_type', // 库存明细的业务类型 + + // ============== PMS ================= + PROJECT_TYPE = 'project_type', // 项目类型 + ENTRUST_METHOD = 'entrust_method', // 委托方式 + PROCESS_STATUS = "process_status", // 流程状态 + POSSIBILITY_OF_LANDING = "possibility_of_landing" // 可能性 } diff --git a/src/views/pms/project/ProjectForm.vue b/src/views/pms/project/ProjectForm.vue new file mode 100644 index 00000000..ba6ed1ae --- /dev/null +++ b/src/views/pms/project/ProjectForm.vue @@ -0,0 +1,403 @@ + + diff --git a/src/views/pms/project/index.vue b/src/views/pms/project/index.vue new file mode 100644 index 00000000..a5841013 --- /dev/null +++ b/src/views/pms/project/index.vue @@ -0,0 +1,226 @@ + + +