becomer bb4a1d2325 xsgz 字段提交按前端 Ie() 语义清洗:上传类去 value、多选 join 逗号
从 studentForm-Dx5Fpjfs.js 的 Ie() 看到字段有三条分支:

  regions:                                   value = 拼接地名
  imageUpload / fileUpload / smoothSignature: o.uploadFiles = 文件列表;不设 value
  其余:                                       o.value = Array.isArray(n) ? n.join(",") : n

我们的实现只有一条路——直接写 value,导致两个偏差:

1. 上传类字段(图片/文件/手写签名)被塞了文本 value,前端根本不会这样提交,
   且从未提供 uploadFiles。学校端若要求附件,行为不可预期。
2. 多选类字段若 value 是数组,xsgzFlatten 会展开成 fields[0].value[0]
   / fields[0].value[1],学校端按 value 取字符串时读不到;
   前端是 join(",") 成单个字符串。

改动:
- 新增 normalizeXsgzFields,按上述三分支净化字段定义:
  上传类删除 value(本平台不代传附件,不臆造 uploadFiles),
  数组 value 按前端规则 join(",")(跳过 nil 与空串);
- 请假、销假两条提交路径都接入;
- fillXsgzFieldValues 跳过上传类字段,避免把「请假原因」写进附件字段;
- checkXsgzUnfilledRequired 不把上传类必填字段算作缺失
  (它们由 uploadFiles 承载,无 value 属正常),避免误拦。

测试:三种上传类型去 value、多选 join、数组含 nil/空串、普通字段不受影响、
空输入不 panic、填充跳过上传类、预检不误拦上传类。
2026-10-17 18:23:06 +08:00
S
Description
No description provided
6.6 MiB
Languages
Go 58.2%
Vue 35.3%
TypeScript 4.1%
CSS 1.5%
JavaScript 0.6%
Other 0.2%