fix(zip): UTF-8 zip 解码失败回退 GBK 漏抓 MalformedInputException + 邀请页守卫/称谓
后端 (3 个文件, 16+/5-):
* ocr/ZipExtractor.java: catch (IllegalArgumentException) →
catch (IllegalArgumentException | MalformedInputException).
ZipInputStream 用错 charset 解码 entry name 抛的是
MalformedInputException (IOException 子类), 旧 catch 漏掉导致 GBK
回退永远是死代码 (中文 Windows 打包的 zip 直接报 MalformedInputException
上抛 500)。
* BizMeetingMaterialServiceImpl.java: 同款修复 (会务材料打包上传)
* BizMeetingAttendeeServiceImpl.java: 同款修复 (参会人批量导入 zip)
前端 (2 个文件, 6+/1-):
* MeetingDetail.vue pushInvite: posterUrl 空阻断 (无日程海报不允许
发送邀请, 批量/行内共用入口, 一处守卫同时卡两路)
* MeetingInvitation.vue line 7: 称谓 "尊敬的 {{ name }}:" → "尊敬的
{{ name }} 教授:" (医生点邀请函链接看到的网页)
This commit is contained in:
@@ -4,7 +4,7 @@
|
||||
<div class="breadcrumb">首页 / 会议邀请函</div>
|
||||
|
||||
<!-- 称谓 -->
|
||||
<p class="salutation">尊敬的 {{ attendeeName || '专家' }}:</p>
|
||||
<p class="salutation">尊敬的 {{ attendeeName || '专家' }} 教授:</p>
|
||||
|
||||
<!-- 正文 -->
|
||||
<p class="body-text">
|
||||
|
||||
@@ -1320,6 +1320,10 @@ function onBatchEsign() {
|
||||
/** 调后端邀请参会 (推"会议邀请"站内信 + 置 is_invited=1, 不发短信); loadingId 非空→单条行级 loading, 否则批量工具栏 loading */
|
||||
async function pushInvite(ids, loadingId) {
|
||||
if (!ids || !ids.length) return
|
||||
if (!row.value.posterUrl) {
|
||||
ElMessage.warning('该会议未上传日程海报,不允许发送邀请。请先上传海报后再发送。')
|
||||
return
|
||||
}
|
||||
if (loadingId != null) inviteLoadingId.value = loadingId
|
||||
else inviteSending.value = true
|
||||
try {
|
||||
|
||||
Reference in New Issue
Block a user