From 2e7cbefdcd5ecdbdc92fc6bc9818cdb55f8c54ec Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=8F=AF=E4=B9=90=E5=8A=A0=E5=86=B0?= <11869599+addie66@user.noreply.gitee.com> Date: Tue, 29 Sep 2026 15:40:36 +0800 Subject: [PATCH] =?UTF-8?q?```=20feat(shopro=5Fhuifu):=20=E6=B7=BB?= =?UTF-8?q?=E5=8A=A0=E6=B1=87=E4=BB=98=E8=BF=9B=E4=BB=B6=E7=AE=A1=E7=90=86?= =?UTF-8?q?=E5=8A=9F=E8=83=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 新增汇付进件管理模块,支持新建、编辑进件流程 - 实现用户角色绑定验证功能,确保进件角色的有效性 - 集成Vue.js前端界面,提供完整的表单操作体验 - 支持个人和企业两种账户类型的进件资料录入 - 添加银行支行搜索功能,方便结算账户信息填写 - 完善进件状态管理和审核流程控制 - 增加图片上传组件,支持身份证、营业执照等证件上传 ``` --- .../admin/controller/shopro_huifu/Onboard.php | 77 +++++ .../admin/view/shopro_huifu/onboard/add.html | 180 +++++++++++ .../view/shopro_huifu/onboard/index.html | 5 +- addons/shopro_huifu/config/menu.php | 4 + .../onboard/HuifuOnboardAdminService.php | 47 +++ .../library/onboard/HuifuOnboardAdminView.php | 136 ++++++++ .../assets/js/backend/shopro_huifu/onboard.js | 299 +++++++++++++++++ .../admin/controller/shopro_huifu/Onboard.php | 76 +++++ .../admin/view/shopro_huifu/onboard/add.html | 180 +++++++++++ .../view/shopro_huifu/onboard/index.html | 5 +- .../assets/js/backend/shopro_huifu/onboard.js | 301 +++++++++++++++++- 11 files changed, 1307 insertions(+), 3 deletions(-) create mode 100644 addons/shopro_huifu/application/admin/view/shopro_huifu/onboard/add.html create mode 100644 addons/shopro_huifu/library/onboard/HuifuOnboardAdminService.php create mode 100644 application/admin/view/shopro_huifu/onboard/add.html diff --git a/addons/shopro_huifu/application/admin/controller/shopro_huifu/Onboard.php b/addons/shopro_huifu/application/admin/controller/shopro_huifu/Onboard.php index bdd4324..b128ba4 100644 --- a/addons/shopro_huifu/application/admin/controller/shopro_huifu/Onboard.php +++ b/addons/shopro_huifu/application/admin/controller/shopro_huifu/Onboard.php @@ -2,7 +2,10 @@ namespace app\admin\controller\shopro_huifu; +use addons\shopro_huifu\library\onboard\HuifuOnboardAdminService; use addons\shopro_huifu\library\onboard\HuifuOnboardAdminView; +use addons\shopro_huifu\library\onboard\HuifuOnboardBankBranch; +use addons\shopro_huifu\library\onboard\HuifuOnboardError; use addons\shopro_huifu\library\onboard\HuifuOnboardQuery; use addons\shopro_huifu\library\onboard\HuifuOnboardService; use addons\shopro_huifu\model\Onboard as OnboardModel; @@ -10,6 +13,8 @@ use app\admin\controller\shopro\Base; class Onboard extends Base { + protected $noNeedRight = ['userRoles', 'searchBranch']; + public function index() { if ($this->request->isAjax()) { @@ -74,6 +79,78 @@ class Onboard extends Base } } + public function add() + { + if ($this->request->isPost()) { + return $this->persistDraft(); + } + return $this->view->fetch(); + } + + public function edit($ids = null) + { + $row = OnboardModel::get($ids); + if (!$row) { + $this->error('记录不存在'); + } + if ($this->request->isPost()) { + return $this->persistDraft($row); + } + $this->assignconfig('onboardForm', HuifuOnboardAdminView::formDataFromRow($row)); + return $this->view->fetch('shopro_huifu/onboard/add'); + } + + public function userRoles() + { + $userId = intval($this->request->get('user_id', 0)); + if ($userId <= 0) { + $this->error('请选择用户'); + } + $user = HuifuOnboardAdminView::enrichListRow(['user_id' => $userId, 'payload' => '']); + $this->success('ok', null, [ + 'user' => [ + 'id' => $userId, + 'nickname' => $user['user_nickname'] ?? '', + 'mobile' => $user['user_mobile'] ?? '', + ], + 'roles' => HuifuOnboardAdminView::listRolesForUser($userId), + ]); + } + + public function searchBranch() + { + $keyword = trim((string) $this->request->get('keyword', '')); + $areaId = trim((string) $this->request->get('area_id', '')); + $this->success('ok', null, HuifuOnboardBankBranch::search($keyword, $areaId, 20)); + } + + protected function persistDraft($row = null) + { + $userId = intval($this->request->post('user_id', 0)); + $roleType = trim((string) $this->request->post('role_type', '')); + $roleRefId = intval($this->request->post('role_ref_id', 0)); + $form = $this->request->post('form/a', []); + if ($row) { + $userId = intval($row['user_id']); + $roleType = $row['role_type']; + $roleRefId = intval($row['role_ref_id']); + } + if (!$form || !is_array($form)) { + $this->error('请填写进件资料'); + } + try { + $service = new HuifuOnboardAdminService(); + $saved = $service->saveDraft($userId, $roleType, $roleRefId, $form); + $this->success('进件资料已保存,状态为待后台审核', null, [ + 'id' => $saved ? $saved['id'] : 0, + ]); + } catch (\InvalidArgumentException $e) { + $this->error($e->getMessage()); + } catch (\Throwable $e) { + $this->error(HuifuOnboardError::translate($e->getMessage())); + } + } + public function retry($ids = null) { $row = OnboardModel::get($ids); diff --git a/addons/shopro_huifu/application/admin/view/shopro_huifu/onboard/add.html b/addons/shopro_huifu/application/admin/view/shopro_huifu/onboard/add.html new file mode 100644 index 0000000..18f46cd --- /dev/null +++ b/addons/shopro_huifu/application/admin/view/shopro_huifu/onboard/add.html @@ -0,0 +1,180 @@ + + + + +
+ +
用户与角色
+ + + + + + + {{ userLabel }} + + + + + {{ item.role_label }} + {{ item.disabled_reason || (item.onboard_status ? '已有记录:' + item.onboard_status : '新建') }} + + + + + {{ roleLabel }} + + +
账户类型
+ + + 个人 + 个体户/企业 + + + + + 对私 + 对公 + + + + + + + +
结算账户信息
+ + + + + +
已选:{{ form.branch_name }}({{ form.branch_code }})
+
+
+
{{ item.branch_name }}
+
{{ item.branch_code }}
+
+
+
+ + + + + +
点击上传
+
+
建议上传,可加快审核
+
+ + +
点击上传
+
+
+ + + {{ isEdit ? '保存修改' : '保存进件资料' }} + 取消 + +
+
diff --git a/addons/shopro_huifu/application/admin/view/shopro_huifu/onboard/index.html b/addons/shopro_huifu/application/admin/view/shopro_huifu/onboard/index.html index af7e9be..3cf659b 100644 --- a/addons/shopro_huifu/application/admin/view/shopro_huifu/onboard/index.html +++ b/addons/shopro_huifu/application/admin/view/shopro_huifu/onboard/index.html @@ -33,6 +33,7 @@ + 新建进件 刷新列表 @@ -55,9 +56,10 @@ - +