|
|
|
@ -1613,26 +1613,71 @@ |
|
|
|
this.invalidMaterialsDialog.materials = [] |
|
|
|
}, |
|
|
|
|
|
|
|
// 保存模板修改 |
|
|
|
/** |
|
|
|
* 检查行数据是否已准备好保存模板 |
|
|
|
* @param {Object} row - 行数据 |
|
|
|
* @return {boolean} 是否可以保存 |
|
|
|
*/ |
|
|
|
isRowReadyForSave(row) { |
|
|
|
return !!(row.selectedTemplate && |
|
|
|
row.selectedTemplate.trim() && |
|
|
|
row.selectedCustomer && |
|
|
|
row.selectedCustomer.trim()) |
|
|
|
}, |
|
|
|
|
|
|
|
/** |
|
|
|
* 保存模板修改 |
|
|
|
* @param {Object} row - 行数据 |
|
|
|
*/ |
|
|
|
async saveTemplateChanges(row) { |
|
|
|
// 验证必填字段 |
|
|
|
if (!row.selectedTemplate) { |
|
|
|
this.$message.warning('请先选择客户模板') |
|
|
|
if (!row.selectedTemplate || !row.selectedTemplate.trim()) { |
|
|
|
this.$message.warning('请输入模板名称') |
|
|
|
return |
|
|
|
} |
|
|
|
|
|
|
|
if (!row.selectedCustomer) { |
|
|
|
if (!row.selectedCustomer || !row.selectedCustomer.trim()) { |
|
|
|
this.$message.warning('请填写客户信息') |
|
|
|
return |
|
|
|
} |
|
|
|
|
|
|
|
// 判断操作类型,给用户明确提示 |
|
|
|
const isNewTemplate = !row.originalTemplateName || row.originalTemplateName === '' |
|
|
|
const isNameChanged = row.originalTemplateName && row.selectedTemplate !== row.originalTemplateName |
|
|
|
|
|
|
|
let confirmMessage = '' |
|
|
|
if (isNewTemplate) { |
|
|
|
// 手动输入的新模板名 |
|
|
|
confirmMessage = `确定要保存模板"${row.selectedTemplate}"吗?\n\n如果此模板名已存在,将会覆盖原有模板内容!` |
|
|
|
} else if (isNameChanged) { |
|
|
|
// 基于已选模板另存为新模板 |
|
|
|
confirmMessage = `确定要将模板"${row.originalTemplateName}"另存为"${row.selectedTemplate}"吗?\n\n如果"${row.selectedTemplate}"已存在,将会覆盖原有模板内容!` |
|
|
|
} else { |
|
|
|
// 更新原有模板 |
|
|
|
confirmMessage = `确定要更新模板"${row.selectedTemplate}"吗?\n\n此操作将覆盖原有模板内容!` |
|
|
|
} |
|
|
|
|
|
|
|
// 弹出确认对话框 |
|
|
|
try { |
|
|
|
await this.$confirm(confirmMessage, '操作确认', { |
|
|
|
confirmButtonText: '确定', |
|
|
|
cancelButtonText: '取消', |
|
|
|
type: 'warning', |
|
|
|
distinguishCancelAndClose: true |
|
|
|
}) |
|
|
|
} catch (error) { |
|
|
|
// 用户取消操作 |
|
|
|
return |
|
|
|
} |
|
|
|
|
|
|
|
// 准备保存数据 |
|
|
|
const templateData = { |
|
|
|
templateNo: row.templateNo, |
|
|
|
ccuscode: row.ccuscode, |
|
|
|
templateName: row.selectedTemplate, |
|
|
|
originalTemplateName: row.originalTemplateName || row.selectedTemplate, // 原始模板名称 |
|
|
|
ccusname: row.selectedCustomer, |
|
|
|
templateName: row.selectedTemplate.trim(), |
|
|
|
// ✅ 修复Bug:保持空字符串不变,不要用 || 运算符替换 |
|
|
|
// 空字符串表示"新增或更新同名模板",非空表示"基于原模板修改" |
|
|
|
originalTemplateName: row.originalTemplateName || '', |
|
|
|
ccuscode: '', // 后端会根据实际情况自动处理 |
|
|
|
ccusname: row.selectedCustomer.trim(), |
|
|
|
localShipAddress: row.selectedLocalAddress || '', |
|
|
|
overseasShipper: row.selectedOverseasShipper || '', |
|
|
|
overseasAddress: row.selectedOverseasAddress || '', |
|
|
|
@ -1644,13 +1689,21 @@ |
|
|
|
const { data } = await updateCustomerTemplate(templateData) |
|
|
|
|
|
|
|
if (data && data.code === 0) { |
|
|
|
// 如果模板名称变化了,提示用户已创建新模板 |
|
|
|
const isNameChanged = row.originalTemplateName && row.selectedTemplate !== row.originalTemplateName |
|
|
|
if (isNameChanged) { |
|
|
|
this.$message.success(`新模板"${row.selectedTemplate}"创建成功!`) |
|
|
|
// 判断是新增还是修改,给出不同的成功提示 |
|
|
|
if (isNewTemplate) { |
|
|
|
this.$message.success(`模板"${row.selectedTemplate}"保存成功!`) |
|
|
|
// 保存成功后更新 originalTemplateName,下次保存时就是修改模式 |
|
|
|
row.originalTemplateName = row.selectedTemplate |
|
|
|
} else if (isNameChanged) { |
|
|
|
this.$message.success(`新模板"${row.selectedTemplate}"另存成功!`) |
|
|
|
// 另存为成功后更新 originalTemplateName |
|
|
|
row.originalTemplateName = row.selectedTemplate |
|
|
|
} else { |
|
|
|
this.$message.success(`模板"${row.selectedTemplate}"更新成功!`) |
|
|
|
} |
|
|
|
|
|
|
|
// 保存成功后更新缓存 |
|
|
|
this.saveToCache() |
|
|
|
} else { |
|
|
|
this.$message.error(data.msg || '保存模板失败') |
|
|
|
} |
|
|
|
|