safety-eval-service-frontend/.cursor/skills/specs/03-项目页面结构/07-应用首页/SKILL.md

3.8 KiB
Raw Blame History

name description
jjb-app-entry 定义 JJB 应用首页Entry规范。涉及 Entry 页面、应用首页菜单列表、CloudComponent 云组件、contextInject.appKey 配置时使用。

项目页面结构

应用首页Entry

概述

Entry 是每个微应用内置的一个固定路由页面,相当于应用的"关于页面"。除 base 底座应用外,每一个微应用都内置了这个路由。底座通过这个固定路由打开应用首页,用户可以清晰地了解应用的基本信息、可用菜单、应用更新日志等内容。

  • 文件路径src/pages/Container/Entry/index.js
  • 路由访问:底座访问该固定路由时,渲染云组件,展示应用相关信息

页面代码

import React from 'react';
import { CloudComponent } from '@cqsjjb/jjb-cloud-component';

export default class Entry extends React.Component {
  render() {
    return (
      process.env.app.appKey && (
        <CloudComponent
          from="https://cdn.cqjjb.cn/jcloud/use/plugin/b31c9840a57f11ef91cf7f3cabbb7484/latest"
          componentKey="appInterceptor"
          componentProps={{
            appKey: process.env.app.appKey
          }}
        />
      )
    );
  }
}

创建/检查流程

当需要为新应用创建 Entry 页面,或检查已有应用首页是否就绪时,按以下步骤执行:

  1. 检查 Entry 文件:确认 src/pages/Container/Entry/index.js 是否存在
  2. 创建页面文件:若不存在,使用上方「页面代码」中的标准代码创建该文件
  3. 检查 appKey 配置:打开 jjb.config.js,确认 contextInject.appKey 是否已配置
  4. 补全 appKey:若未配置,提示开发者联系平台管理员获取 appKey,然后补全到 contextInject
  5. 告知风险:若 appKey 缺失或不正确,应用首页将无法展示信息并显示错误警告,务必在开发阶段解决

核心机制

  • 云组件加载:通过 @cqsjjb/jjb-cloud-componentCloudComponent 组件,从 CDN 远程加载 appInterceptor 云组件
  • 数据获取:云组件内部通过接口查询应用的基本信息、注册菜单列表、更新日志等数据
  • 菜单可用性控制:可在应用中心关闭应用的某个菜单,被禁用的菜单会显示"应用菜单已被禁用"的提示

关键配置:process.env.app.appKey

process.env.app.appKey 是云组件查询接口的关键参数,直接影响页面能否正常展示:

  • 来源appKey 是应用在平台注册时生成的唯一 key配置在 jjb.config.jscontextInject 中,构建时注入到 process.env.app.appKey。若不知道 appKey,请联系平台管理员获取
  • 作用:作为云组件内部接口的查询参数,用于获取应用的基本信息、可用菜单、应用更新日志等
  • 风险
    • 如果 appKey 为空或未配置,云组件内部接口无法查出应用数据,页面会显示错误警告
    • 如果 appKey 不正确(与后端注册不一致),同样会导致接口查询失败

检查清单

在开发或代码审查时,务必确认以下事项:

  1. 检查 jjb.config.js 中是否配置了 contextInject.appKey
  2. 确认 appKey 的值与后端应用中心注册的 key 一致
  3. 如果发现未配置,提示开发者补全 contextInject.appKey,并告知上述风险
// jjb.config.js 示例
module.exports = {
  contextInject: {
    appKey: 'your-app-key'  // 必填:与后端应用中心注册的 key 保持一致
  }
};

约束

  • 非必要禁止修改Entry 目录下的代码为标准实现,非必要情况下禁止修改此目录
  • appKey 必填:每个微应用的 jjb.config.js 中必须配置 contextInject.appKey,否则应用首页无法正常工作