feat(shopro_huifu): 完善汇付进件功能的表单验证和错误处理

- 增加支行搜索功能的城市筛选支持,优化搜索逻辑
- 添加前端表单验证机制,包括身份证、银行卡、区域等必填字段校验
- 改进支行选择验证,确保必须从搜索结果中选择带联行号的支行
- 优化后端保存逻辑,添加强制保存参数控制
- 统一异常处理机制,增加HttpResponseException的正确抛出
- 完善用户界面提示信息,明确操作指引和错误反馈
- 修复表单提交前的数据准备逻辑,确保数据完整性
```
这个提交包含在:
可乐加冰
2026-09-29 16:08:44 +08:00
父节点 98bd0be5e4
当前提交 38c66b8f5e
共有 10 个文件被更改,包括 142 次插入 和 18 次删除

查看文件

@@ -233,17 +233,24 @@ define(['jquery', 'bootstrap', 'backend'], function ($, undefined, Backend) {
},
onBranchInput: function () {
var vm = this;
var keyword = (vm.branchKeyword || '').trim();
if (keyword !== vm.form.branch_name) {
vm.form.branch_code = '';
vm.form.branch_name = keyword;
}
clearTimeout(branchTimer);
branchTimer = setTimeout(function () {
if (!vm.branchKeyword) {
if (!keyword) {
vm.branchResults = [];
vm.form.branch_code = '';
vm.form.branch_name = '';
return;
}
Fast.api.ajax({
url: 'shopro_huifu/onboard/searchBranch',
type: 'GET',
data: {
keyword: vm.branchKeyword,
keyword: keyword,
area_id: vm.form.area_id || vm.form.shopro_city_id
}
}, function (ret, res) {
@@ -252,6 +259,47 @@ define(['jquery', 'bootstrap', 'backend'], function ($, undefined, Backend) {
});
}, 300);
},
prepareFormBeforeSubmit: function () {
var keyword = (this.branchKeyword || '').trim();
if (keyword) {
this.form.branch_name = keyword;
}
this.form.mp = this.bankMobile;
},
validateFormBeforeSubmit: function () {
var form = this.form;
if (form.account_type === 'indv') {
if (!form.name || !form.cert_no || !form.mobile_no || !form.reg_detail) {
Toastr.error('请完整填写身份实名信息');
return false;
}
if (!form.id_card_front_url || !form.id_card_back_url) {
Toastr.error('请上传身份证人像面和国徽面');
return false;
}
}
if (!form.card_no) {
Toastr.error('请填写银行卡号');
return false;
}
if (!this.bankMobile) {
Toastr.error('请填写银行预留手机号');
return false;
}
if (!form.branch_code) {
if ((this.branchKeyword || '').trim() || form.branch_name) {
Toastr.error('请从支行搜索结果中点击选择开户银行(需联行号)');
} else {
Toastr.error('请搜索并选择开户银行支行');
}
return false;
}
if (!form.shopro_province_id && !form.prov_id) {
Toastr.error('请选择所在区域');
return false;
}
return true;
},
selectBranch: function (item) {
this.form.branch_code = item.branch_code;
this.form.branch_name = item.branch_name;
@@ -282,6 +330,10 @@ define(['jquery', 'bootstrap', 'backend'], function ($, undefined, Backend) {
return;
}
}
vm.prepareFormBeforeSubmit();
if (!vm.validateFormBeforeSubmit()) {
return;
}
vm.saving = true;
var url = vm.isEdit
? ('shopro_huifu/onboard/edit/ids/' + vm.editId)