You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
wuzuowei 4c92545972 平台跳转 6 months ago
..
config 初始化 11 months ago
mock 初始化 11 months ago
public 初始化 11 months ago
src 平台跳转 6 months ago
tests 初始化 11 months ago
.editorconfig 初始化 11 months ago
.eslintignore 初始化 11 months ago
.eslintrc.js 初始化 11 months ago
.gitignore 初始化 11 months ago
.prettierignore 初始化 11 months ago
.prettierrc.js 初始化 11 months ago
.stylelintrc.js 初始化 11 months ago
README.md 初始化 11 months ago
jest.config.js 初始化 11 months ago
jsconfig.json 初始化 11 months ago
package.json 初始化 11 months ago
plat-helper.md 初始化 11 months ago
tsconfig.json 初始化 11 months ago

README.md

此处维护暂停转移至ibklinker/platform-home-frontend

系统平台 v3.0

基于umi + ant-design/pro-layout + qiankun
根据系统配置菜单权限及属性,动态注册路由;
不同路由Component内部处理功能逻辑可扩展可延展

一、新特性

  1. 支持app、link以及microapp三种接入方式
  2. 新增“本地调试模式”
  3. 基于ProLayout自带路由重构菜单延展对多个同模块页面打开的支持
  4. 退出浏览器需要重新登陆
  5. 新增底部栏下载等功能移到footer内
  6. 新增菜单查找并打开
  7. 后端主动推送系统级提醒,打开模块
  8. 多主题

二、TODO

  1. 浏览状态记忆

北科工研智慧平台使用说明

一、后端接口

  • 系统通知

    如果通知需要打开模块,则用户需要对该模块有浏览权限 10秒内会过滤同模块通知请求

    //POST /api/trunk/notice/post
    //参数
    {
        mid: string //指定模块id可在导航管理获得用户需有权限
        app: string //预留
        title: string //推送标题
        msg: string //推送内容
        showtype: 0|1|2 //0-仅通知 1-通知且提供跳转 2-通知且直接跳转
        filter: { //可选参数,推送过滤
            loginId: string //可选参数,指定接收人
        }
        param: { //可选参数给模块传递get参数
            //参数名:参数值
        }
    }
    
  • 群发消息

    前端模块需要连接平台websocket服务

    //POST /api/trunk/custom/post
    //参数
    {
        data: object, //任意数据
    }
    

二、前端组件

  • 监听kafka

    前端接收消息的频率会被限制,不适用高频消息处理

    import Kafka from "@/components/iBKLinker/comm/kafka"
    
    const mq = new Kafka({
        ws: "ws://172.15.199.73:12116",
        onGranted(isGranted) {
            mq.startListen(["SCAN_GUN"]); //授权完毕后开始监听Topic列表
        },
        onReceive(msg) {
            console.log("receive mq message", msg); //收到消息
        }
    })
    mq.seconds = 1; //频率限制最低0.5秒
    mq.start(); //启动ws服务
    
    mq.stopListen(["SCAN_GUN"]); //停止监听Topic
    
  • 协同作业

    import Cooperation from "@/components/iBKLinker/comm/coop"
    
    const cooperate = new Cooperation({
        ws: "ws://172.15.199.73:12116",
        onGranted(isGranted) {
            cooperate.startListen(); //授权完毕后,开始监听,未经授权无法监听
        },
        client: "", //客户端名称可以设为undefined
        groups: ["Hostmain"], //参与协同分组,可以同时参与多个分组,建议以所在页面为名
        onTrigger: (msg) => {
            //所有消息触发回调如果设置onTrigger那么其他次级回调函数将会被忽略
            console.log("cooperation onTrigger", msg)
        },
        onReceive(who, data) {
            //收到协同消息who谁发送的对应配置的client客户端名称data数据
            console.log("cooperation onReceive", who, data)
        },
    })
    cooperate.start(); //启动ws服务
    cooperate.stopListen(); //退出
    cooperate.doc.updated(); //通知群组数据发生更新
    
  • 对应用开放功能

    需要引用@/library/union针对以单应用、完整连接接入平台的第三方应用

    1.打开其他模块

    let app = new ControlledFrameRuntime()
    app.openPage(moduleId, true, {
        name: "Longe", age: 20, male: true,
    })
    
    //moduleId模块id在模块配置注册后的id登录账号需有访问权限
    //是否打开新页面
    //传递参数
    

    2.系统提醒

    let app = new ControlledFrameRuntime()
    app.systemWarn(moduleId, title, msg)
    

    3.重新登录

    let app = new ControlledFrameRuntime()
    app.doLogin()
    

    4.监听主题变更事件

    let app = new ControlledFrameRuntime()
    app.onChangeTheme((theme) => {
        //do something
    })
    

三、系统设置

  • 调试模式

    进入系统后,连续点击底部栏右侧 Powered By iBKLinker 6次

    名称 功能
    本地地址 本地调试地址
    启用状态 启动、禁用调试模式
    展示区域 框架外部、内部展示

    外部打开需要调试的模块右键Tab标签新开浏览器 内部点击目录将会直接在框架内容区打开其他模块会存在页面404的情况

  • 模块属性

    配置在:系统任务-模块管理

    名称 功能
    固定 固定必须
    全屏 打开后进入浏览器全屏。同时为首屏时无效
    外链 点击目录,在新浏览器窗口打开外部链接
    隐藏 目录中隐藏,但是可被代码打开
    公共 无需权限的公共模块(预留)
    首屏 登录系统后首屏界面,多个首屏时,将会打开序号靠前的