diff --git a/src/views/budget/collection/components/MultiPackageSubmitForm.vue b/src/views/budget/collection/components/MultiPackageSubmitForm.vue index 8133df7..27a9c22 100644 --- a/src/views/budget/collection/components/MultiPackageSubmitForm.vue +++ b/src/views/budget/collection/components/MultiPackageSubmitForm.vue @@ -220,7 +220,7 @@ :rows="4" placeholder="请输入项目内容..." :readonly="isViewMode" - maxlength="1000" + maxlength="2000" show-word-limit /> @@ -413,7 +413,7 @@ :rows="4" placeholder="请详细说明整体项目实施进度安排..." :readonly="isViewMode" - maxlength="1000" + maxlength="2000" show-word-limit /> diff --git a/src/views/budget/collection/package.vue b/src/views/budget/collection/package.vue index 18c2eea..b460fa4 100644 --- a/src/views/budget/collection/package.vue +++ b/src/views/budget/collection/package.vue @@ -2554,10 +2554,20 @@ export default { fileName = '预算分配汇总表_按经济分类统计' } - // 构建CSV内容 - let csvContent = headers.join(',') + '\n' + // 构建CSV内容 - 正确处理包含逗号的数据 + const escapeCsvValue = (value) => { + if (value == null) return '' + const stringValue = String(value) + // 如果包含逗号、双引号或换行符,需要用双引号包围并转义内部的双引号 + if (stringValue.includes(',') || stringValue.includes('"') || stringValue.includes('\n')) { + return `"${stringValue.replace(/"/g, '""')}"` + } + return stringValue + } + + let csvContent = headers.map(escapeCsvValue).join(',') + '\n' data.forEach(row => { - csvContent += row.join(',') + '\n' + csvContent += row.map(escapeCsvValue).join(',') + '\n' }) // 下载文件