From ceb1b5273bf41e201ae2a588fb5cdae5d603a943 Mon Sep 17 00:00:00 2001 From: "zangch@mesnac.com" Date: Mon, 24 Nov 2025 16:18:29 +0800 Subject: [PATCH] =?UTF-8?q?feat(crmQuoteInfo):=20=E9=9B=86=E6=88=90?= =?UTF-8?q?=E5=AE=A1=E6=89=B9=E5=8A=9F=E8=83=BD=E5=B9=B6=E4=BC=98=E5=8C=96?= =?UTF-8?q?=E6=8A=A5=E4=BB=B7=E5=8D=95=E7=AE=A1=E7=90=86?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 在报价单编辑页集成审批按钮、审批记录和提交验证组件 - 支持提交报价单同时发起审批流程,新增接口quoteSubmitAndFlowStart - 将付款方式改为下拉选择,使用字典数据payment_method - 供货方联系人选择改用supplierList,并调整事件处理逻辑 - 报价物料管理增加标准物料标识materialFlag,优化相关字段命名展示 - 报价明细表格隐藏技术ID,展示物料编号与名称字段 - 列表页调整部分列的显示与字段对应,实现更直观显示 - 实现查看详情权限控制,仅非草稿状态允许查看 - 统一处理流程状态字典,支持审批模式禁用表单输入 - 优化导出模板功能,修复文件保存逻辑中的类型兼容问题 - 代码结构及命名优化,重构部分回调函数及表单数据初始化逻辑 --- src/api/oa/crm/crmQuoteInfo/index.ts | 38 +- src/api/oa/crm/crmQuoteMaterial/types.ts | 45 +++ src/views/oa/crm/crmQuoteInfo/edit.vue | 463 +++++++++++++++-------- src/views/oa/crm/crmQuoteInfo/index.vue | 259 +++++++------ 4 files changed, 509 insertions(+), 296 deletions(-) diff --git a/src/api/oa/crm/crmQuoteInfo/index.ts b/src/api/oa/crm/crmQuoteInfo/index.ts index 2019b14..f07405b 100644 --- a/src/api/oa/crm/crmQuoteInfo/index.ts +++ b/src/api/oa/crm/crmQuoteInfo/index.ts @@ -1,6 +1,6 @@ import request from '@/utils/request'; import { AxiosPromise } from 'axios'; -import { CrmQuoteInfoVO, CrmQuoteInfoForm, CrmQuoteInfoQuery } from '@/api/oa/crm/crmQuoteInfo/types'; +import { CrmQuoteInfoForm, CrmQuoteInfoQuery, CrmQuoteInfoVO } from '@/api/oa/crm/crmQuoteInfo/types'; /** * 查询报价单信息列表 @@ -67,13 +67,13 @@ export const delCrmQuoteInfo = (quoteId: string | number | Array { }); }; -// -// /** -// * 测试用 -// */ -// export const exportQuoteTemplate = (quoteId: string | number) => { -// return request({ -// url: '/oa/crm/crmQuoteInfo/testExport' , -// method: 'get', -// responseType: 'blob' -// }); -// }; +/** + * 提交报价单并发起流程 + * @param data + */ +export const quoteSubmitAndFlowStart = (data: CrmQuoteInfoForm): AxiosPromise => { + return request({ + url: '/oa/crm/crmQuoteInfo/quoteSubmitAndFlowStart', + method: 'post', + data: data + }); +}; diff --git a/src/api/oa/crm/crmQuoteMaterial/types.ts b/src/api/oa/crm/crmQuoteMaterial/types.ts index 4854824..db2b7a8 100644 --- a/src/api/oa/crm/crmQuoteMaterial/types.ts +++ b/src/api/oa/crm/crmQuoteMaterial/types.ts @@ -14,6 +14,11 @@ export interface CrmQuoteMaterialVO { */ itemNo: number; + /** + * 标准物料标识(1标准物料 2非标物料) + */ + materialFlag: string; + /** * 产品/服务名称 */ @@ -34,6 +39,21 @@ export interface CrmQuoteMaterialVO { */ relationMaterialId: string | number; + /** + * 物料编号(SAP物料编码) + */ + materialCode: string; + + /** + * SAP物料名称 + */ + materialName: string; + + /** + * 销售物料名称 + */ + saleMaterialName: string; + /** * 数量 */ @@ -97,6 +117,11 @@ export interface CrmQuoteMaterialForm extends BaseEntity { */ itemNo?: number; + /** + * 标准物料标识(1标准物料 2非标物料) + */ + materialFlag?: string; + /** * 产品/服务名称 */ @@ -117,6 +142,21 @@ export interface CrmQuoteMaterialForm extends BaseEntity { */ relationMaterialId?: string | number; + /** + * 物料编号(SAP物料编码) + */ + materialCode?: string; + + /** + * SAP物料名称 + */ + materialName?: string; + + /** + * 销售物料名称 + */ + saleMaterialName?: string; + /** * 数量 */ @@ -166,6 +206,11 @@ export interface CrmQuoteMaterialForm extends BaseEntity { export interface CrmQuoteMaterialQuery extends PageQuery { + /** + * 标准物料标识(1标准物料 2非标物料) + */ + materialFlag?: string; + /** * 报价ID */ diff --git a/src/views/oa/crm/crmQuoteInfo/edit.vue b/src/views/oa/crm/crmQuoteInfo/edit.vue index 149ef93..de522dd 100644 --- a/src/views/oa/crm/crmQuoteInfo/edit.vue +++ b/src/views/oa/crm/crmQuoteInfo/edit.vue @@ -1,5 +1,17 @@