feat: 新增积分外部页面(免认证三页 + 配套基础设施)
前端: - 新增 EmptyLayout 空壳布局(无侧边栏/导航) - 新增 requestNoAuth Axios 实例(不注入 token) - 新增 integralExternal 路由模块(/integral-external/*) - permission.js 加入 whiteListPrefixes 前缀白名单跳过登录 - 新增 phoneDesensitize 手机号脱敏过滤器 - 新增三个免认证页面: · 积分订单页(/integral-external/order) · 用户积分页(/integral-external/user,手机号脱敏) · 用户积分明细子页(/integral-external/user/integral-detail) 后端: - 新增 ExternalIntegralController(无 @PreAuthorize) · GET /api/external/integral/order/list · GET /api/external/integral/user/list · POST /api/external/integral/log/list - WebSecurityConfig 加入 /api/external/integral/** permitAll 文档与工具: - 新增 coding plan、schedule、测试报告 - 新增 start-backend.sh / start-frontend.sh 本地启动脚本 - 新增 .mvn/wrapper/maven-wrapper.properties Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
30
backend-adminend/src/router/modules/integralExternal.js
Normal file
30
backend-adminend/src/router/modules/integralExternal.js
Normal file
@@ -0,0 +1,30 @@
|
||||
const EmptyLayout = () => import('@/layout/EmptyLayout');
|
||||
|
||||
const integralExternalRouter = {
|
||||
path: '/integral-external',
|
||||
component: EmptyLayout,
|
||||
redirect: '/integral-external/order',
|
||||
hidden: true,
|
||||
children: [
|
||||
{
|
||||
path: 'order',
|
||||
component: () => import('@/views/integral-external/order/index'),
|
||||
name: 'IntegralExternalOrder',
|
||||
meta: { title: '积分订单' },
|
||||
},
|
||||
{
|
||||
path: 'user',
|
||||
component: () => import('@/views/integral-external/user/index'),
|
||||
name: 'IntegralExternalUser',
|
||||
meta: { title: '用户积分' },
|
||||
},
|
||||
{
|
||||
path: 'user/integral-detail',
|
||||
component: () => import('@/views/integral-external/user-integral-detail/index'),
|
||||
name: 'IntegralExternalUserDetail',
|
||||
meta: { title: '用户积分明细' },
|
||||
},
|
||||
],
|
||||
};
|
||||
|
||||
export default integralExternalRouter;
|
||||
Reference in New Issue
Block a user