diff --git a/fryl_h5/src/api/enterpriseOpen.js b/fryl_h5/src/api/enterpriseOpen.js new file mode 100644 index 0000000..415bf4d --- /dev/null +++ b/fryl_h5/src/api/enterpriseOpen.js @@ -0,0 +1,43 @@ +import request from './request' + +// 企业开户移动端H5确认页接口契约(2026-08-07新增,详见《缺失的后端接口.md》登记): +// - draft-detail:真实后端目前没有对应的匿名详情查询接口(与个人开户不同,企业开户后端仅提供 +// confirm 这一个"直接提交确认"接口),本次前端参照个人开户 mobile/draft-detail 的契约模式 +// 假设新增该接口,详情字段(尤其 id/channelName)均为前端假设,待后端确认。 +// - send-verify-code:企业开户没有专属的发码接口,直接复用个人开户H5确认页在用的通用发码接口 +// (该接口本身是透传给短信网关的通用参数,技术上可复用,待后端确认是否允许非个人开户场景调用)。 +// tradeNo/tradeType 固定值取自个人开户H5当前已修正的正确取值(2026-08-06 修正记录,见 +// personalOpen.js 同名字段注释):tradeNo 固定 "221506",tradeType 固定 "0"。 +// - confirm:后端已提供的真实接口,语义为"申请人扫码核实信息后点击确认,提交凡荣e链", +// 与个人开户的 mobile/submit 不同,请求体是 {channelNo, verifyCode, confirmBto:{id, +// applicationStatus, confirmTime}},confirmBto.id 取自本次假设的 draft-detail 接口。 + +export const fetchDraftDetailApi = (applicationNo) => + request.post('/api/wallet-management/enterprise-open-application/mobile/draft-detail', { applicationNo }) + +// cardName(银行卡户名):企业场景没有个人开户那种"卡户名与客户姓名一致"的天然对应关系, +// 企业银行账号的户名通常即企业名称,故取 enterpriseName 代替(与个人开户用 customerName +// 的处理思路一致)。 +export const sendVerifyCodeApi = ({ channelNo, mobile, cardNo, cardName, idNo }) => + request.post('/api/wallet-management/personal-opening/mobile/send-verify-code/general', { + channelNo, + tradeNo: '221506', + tradeType: '0', + mobile, + cardNo, + cardName, + idNo + }) + +// confirm 为真实已有接口,直接对接真实后端(不在 mock-server 实现),applicationStatus 固定传 +// 'CONFIRMED'(枚举含义"已确认",对应"申请人扫码确认"这一步),confirmTime 为提交时的当前时间。 +export const confirmApplicationApi = ({ channelNo, verifyCode, id, confirmTime }) => + request.post('/api/wallet-management/enterprise-open-application/confirm', { + channelNo, + verifyCode, + confirmBto: { + id, + applicationStatus: 'CONFIRMED', + confirmTime + } + }) diff --git a/fryl_h5/src/router/index.js b/fryl_h5/src/router/index.js index a8eb52a..a222e53 100644 --- a/fryl_h5/src/router/index.js +++ b/fryl_h5/src/router/index.js @@ -1,7 +1,8 @@ // 与主项目 src/router/index.js 的定位不同:本工程无需登录鉴权/动态菜单路由, -// 仅一个业务路由,直接静态声明即可。 +// 业务路由静态声明即可。 import { createRouter, createWebHistory } from 'vue-router' import PersonalOpenMobile from '@/views/PersonalOpenMobile.vue' +import EnterpriseOpenMobile from '@/views/EnterpriseOpenMobile.vue' const router = createRouter({ history: createWebHistory(), @@ -11,7 +12,12 @@ const router = createRouter({ name: 'PersonalOpenMobile', component: PersonalOpenMobile }, - // 兜底:任何其它路径都重定向到唯一业务页面(本工程不做多页面导航) + { + path: '/mobile/enterprise-open', + name: 'EnterpriseOpenMobile', + component: EnterpriseOpenMobile + }, + // 兜底:未知路径重定向到个人开户页面(本工程默认业务场景,与既有行为保持一致) { path: '/:pathMatch(.*)*', redirect: '/mobile/personal-open' } ] }) diff --git a/fryl_h5/src/views/EnterpriseOpenMobile.vue b/fryl_h5/src/views/EnterpriseOpenMobile.vue new file mode 100644 index 0000000..c6348e5 --- /dev/null +++ b/fryl_h5/src/views/EnterpriseOpenMobile.vue @@ -0,0 +1,246 @@ + + + + + + + diff --git a/fryl_h5/src/views/steps/enterprise/EnterpriseAgreementStep.vue b/fryl_h5/src/views/steps/enterprise/EnterpriseAgreementStep.vue new file mode 100644 index 0000000..da67a27 --- /dev/null +++ b/fryl_h5/src/views/steps/enterprise/EnterpriseAgreementStep.vue @@ -0,0 +1,76 @@ + + + + + diff --git a/fryl_h5/src/views/steps/enterprise/EnterpriseInfoConfirmStep.vue b/fryl_h5/src/views/steps/enterprise/EnterpriseInfoConfirmStep.vue new file mode 100644 index 0000000..8d18918 --- /dev/null +++ b/fryl_h5/src/views/steps/enterprise/EnterpriseInfoConfirmStep.vue @@ -0,0 +1,37 @@ + + + + + diff --git a/fryl_h5/src/views/steps/enterprise/EnterpriseSmsVerifyStep.vue b/fryl_h5/src/views/steps/enterprise/EnterpriseSmsVerifyStep.vue new file mode 100644 index 0000000..b9a395f --- /dev/null +++ b/fryl_h5/src/views/steps/enterprise/EnterpriseSmsVerifyStep.vue @@ -0,0 +1,155 @@ + + + + +