bb4a1d23251fd76153a223a27e4e527cb6638f76
从 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、填充跳过上传类、预检不误拦上传类。
Description
No description provided
Languages
Go
58.2%
Vue
35.3%
TypeScript
4.1%
CSS
1.5%
JavaScript
0.6%
Other
0.2%