diff --git a/src/views/oa/crm/crmQuoteInfo/edit.vue b/src/views/oa/crm/crmQuoteInfo/edit.vue
index 161a9d3..4b59702 100644
--- a/src/views/oa/crm/crmQuoteInfo/edit.vue
+++ b/src/views/oa/crm/crmQuoteInfo/edit.vue
@@ -68,6 +68,8 @@
/>
+
+
-
-
-
+
+ 报价单查看
+
@@ -603,6 +607,16 @@ const materialRules = {
};
const saleMaterialSelectRef = ref>();
const openSaleMaterialSelect = () => saleMaterialSelectRef.value?.open();
+const ensureStandardMaterialProductName = (
+ row: CrmQuoteMaterialForm & { materialFlag?: string; materialName?: string; saleMaterialName?: string }
+) => {
+ if (row.materialFlag !== '1' || row.productName) {
+ return;
+ }
+ // 标准物料新增时前端先兜底一次,避免用户未手填产品名称时表格显示为空;
+ // 真正的客户销售物料关联仍以后端保存逻辑为准,前后端共同保证不漏建。
+ row.productName = row.saleMaterialName || row.materialName || undefined;
+};
const saleMaterialSelectCallBack = (data: any) => {
const list = data || [];
if (list.length) {
@@ -620,6 +634,7 @@ const saleMaterialSelectCallBack = (data: any) => {
if (m.unitName) {
materialForm.value.unitName = m.unitName;
}
+ ensureStandardMaterialProductName(materialForm.value as any);
}
};
const handleMaterialFlagChange = (flag: string) => {
@@ -712,9 +727,12 @@ const submitMaterialForm = () => {
materialData.materialCode = undefined;
materialData.materialName = undefined;
materialData.saleMaterialName = undefined;
- } else if (!materialData.relationMaterialId && materialData.productName) {
- // 保存前的本地表格先展示用户最新输入的产品名称,真正的销售物料关联由后端保存时补齐。
- materialData.saleMaterialName = materialData.productName;
+ } else {
+ ensureStandardMaterialProductName(materialData);
+ if (!materialData.relationMaterialId && materialData.productName) {
+ // 保存前的本地表格先展示用户最新输入的产品名称,真正的销售物料关联由后端保存时补齐。
+ materialData.saleMaterialName = materialData.productName;
+ }
}
if (currentMaterialIndex.value !== null && currentMaterialIndex.value >= 0) {
materialRows.value[currentMaterialIndex.value] = materialData;
@@ -954,10 +972,10 @@ const handleApprovalRecord = () => {
}
};
-/** 报价单模板预览/PDF导出 */
+/** 报价单查看/PDF预览 */
const handleQuoteTemplateDownload = () => {
if (!form.quoteId) {
- proxy?.$modal.msgWarning('请先保存报价单后再导出PDF');
+ proxy?.$modal.msgWarning('请先保存报价单后再查看PDF');
return;
}
if (!form.templateId) {
diff --git a/src/views/oa/crm/crmQuoteInfo/index.vue b/src/views/oa/crm/crmQuoteInfo/index.vue
index 44f0ebb..ca87aba 100644
--- a/src/views/oa/crm/crmQuoteInfo/index.vue
+++ b/src/views/oa/crm/crmQuoteInfo/index.vue
@@ -206,11 +206,14 @@
+
+
@@ -560,7 +563,7 @@ const columns = ref([
{ key: 6, label: `业务方向`, visible: false },
{ key: 7, label: `部门`, visible: false },
{ key: 8, label: `报价日期`, visible: true },
- { key: 9, label: `报价有效期起`, visible: true },
+ { key: 9, label: `报价有效期起`, visible: false },
{ key: 10, label: `报价有效期`, visible: false },
{ key: 11, label: `报价有效期止`, visible: true },
{ key: 12, label: `交货期`, visible: false },