1. 没有部署过V1.6.0

代码仓库使用统一的天舟云代码仓库,Apollo配置和鲸云应用由各产品线创建。

1.1 代码仓库

配置系统:it-frontend / lcp-workspace

应用系统:it-frontend / lcp-app

1.2 代码分支

如果需要跟随平台天舟云的改动

分支:1.8

如果各业务域需要固定自己的天舟云代码分支须联系【袁子涵yuanzihan】辅助冻结代码并创建对应业务域的版本分支

1.3 Apollo配置

配置步骤 👉 :参照天舟云v1.6.0 Apollo配置流程

1.4 鲸云配置

配置步骤 👉 :参照天舟云v1.6.0 鲸云配置流程

2. 部署过V1.6.0,增量部署V1.8.1

2.1 增加Apollo转发

2.1.1 tianzhou.api

apollo的API转发中增加如下转发路径:

# tianzhou.api
lcp.datart = https://lcptest.gz.cvte.cn/dataview #需改为本业务域下「天舟云数据报表」的api地址
lcp.common.server = https://lcptest.gz.cvte.cn

⚠️ 注意!域名地址需要根据运行环境发生变化!

2.1.2 tianzhou.env

apollo的环境配置中增加如下配置:


# tianzhou.env
tianzhou.tenent.id = #多租户场景下的默认租户id,如果不配置该字段,则无法使用多租户场景
// 如果要开启企业微信免登录,则要加上以下配置
wmp.enable = true  // 开启企业微信免登录, 默认值为true
wmp.isQy = true  // 默认值为true
wmp.host = https://wmp.cvte.com   // (wmp的域名是固定的,测试环境和正式环境都用这个host)
wmp.appId = d72afa0c-f3c7-40c8-b9cd-ede07599a0cc  // (wmp的appId是固定的,测试环境和正式环境都用这个appId)
wmp.opMobileByWeChat = true    // 当开启门户统一登录时,系统在企业微信打开是展示统一登录的页面还是免登录;为true时是免登录,为false是展示统一登录页面,默认值为true

⚠️ 注意!该字段「tianzhou.tenent.id」的「tenent」英文拼写是开发过程中误拼写,非文档文本输入错误!请接入方忽略瑕疵,依然按照该文档内容接入!

2.2 业务系统接入修改(未接入业务系统则不做如下修改)

待接入的业务系统工程中需要做如下修改

2.2.1 config/server.js

须增加如下内容:

module.exports = {
    // 企业微信免登录配置
    wmp: {
         enable: process.env['wmp.enable'] === 'true',
        isQy: process.env['wmp.isQy'] === 'true',
        host: process.env['wmp.host'],
        appId: process.env['wmp.appId'],
        opMobileByWeChat: process.env['wmp.opMobileByWeChat'] === 'true',
    },
    // 其他代码
    cirapi: ((plugins) => {
        const cirapi = {
            // 其他代码
            lcpDatart: {
                url: process.env['lcp.datart'],
            },
            annex: {
                url: process.env['annex.domain'],
            },
            lcpCommonServer: {
                url: process.env['lcp.common.server'],
            },
        };
        plugins.forEach((plugin) => {
            cirapi[plugin] = { url: process.env[`cirapi.${plugin}`] };
        });
        return cirapi;
    },
    injectData: [
        // 其他代码
        { key: 'categoryId', value: process.env['annex.categoryId'] || 'csb_obj_file' },    // 附件服务存储目录名称,默认值应根据各业务域自定
        { key: 'tenantId', value: process.env['cplp.tenantId'] || 'c518f53d-b405-4111-afe1-5c082b284971' }, // 附件服务的租户id
        { key: 'annexDomain', value: process.env['annex.domain'] || 'https://csbtest-api.gz.cvte.cn/cfile/' },  // 附件服务的地址
        { key: 'tianzhouTenentId', value: process.env['tianzhou.tenent.id'] },
        { key: 'lcpAppRcRootApp', value: process.env.lcpAppRcRootApp || 'lcp-app' }, // 增加天舟云预览系统的宿主资源名称
    ],
};

2.2.2 app/modules/App/global.js

须增加如下内容(如下内容为全量内容,已有的部分则不需要增加):

工程需安装最新版本的@cvte/cir-lcp-sdk@cvte/resource-center-sdk依赖并固定其使用版本。

import { LCPDetailGlobalContext as generatorGlobalContext } from '@cvte/cir-lcp-sdk';
import globalStore from '@cvte/cir-tools/utils/globalStore';
import { observe } from 'mobx';
import { pluginStore } from '@cvte/cir-framework';
import menuEntity from '@cvte/cir-antdframe/entities/menu';
import GlobalRootApp from '@cvte/resource-center-sdk/src/loader/rootAppController';

// 设置根宿主容器资源名称
GlobalRootApp.setRootApp({
  // 此处填写根应用资源名称,如果业务系统的apollo配置了lcpAppRcRootApp,则建议从此处读取,如果没有则自行查找并写在此处
  name: document.getElementById?.('lcpAppRcRootApp')?.getAttribute?.('value') || 'lcp-app', // 天舟云预览系统的宿主应用资源名称
});

// 增加初始化用户信息上下文数据
if (globalStore?.userInfo?.data?.id) {
  generatorGlobalContext?.getContext?.()?.session?.setUser?.(globalStore?.userInfo?.data);
}

// 增加注入用户信息上下文数据
observe(globalStore.userInfo, (change) => {
  const { newValue, name } = change;
  if (name === 'data') {
    generatorGlobalContext?.getContext?.()?.session?.setUser?.(newValue);
  }
});

// 增加初始化组织信息上下文数据
if (menuEntity.globalMultiOrgData?.data && menuEntity?.surrentOrgId) {
  const xOrgId = pluginStore.get(menuEntity.surrentOrgId);
  if (xOrgId) {
    const currentData = menuEntity.globalMultiOrgData?.data?.find?.((item) => item.id === xOrgId);
    if (currentData) {
      generatorGlobalContext?.getContext?.()?.session?.setOrg?.(currentData);
    }
  }
}

// 增加注入组织信息上下文数据
observe(menuEntity.globalMultiOrgData, (change) => {
  const { newValue, name } = change;
  if (name === 'data') {
    const xOrgId = pluginStore.get(menuEntity.surrentOrgId);
    if (xOrgId) {
      const currentData = newValue?.find?.((item) => item.id === xOrgId);
      if (currentData) {
        generatorGlobalContext?.getContext?.()?.session?.setOrg?.(currentData);
      }
    }
  }
});

3. 资源版本

3.1 天舟云配置系统依赖资源版本列表

序号 模块 资源名称 版本号
1 应用管理框架 cir-lcp-app-frame 1.0.4.2
2 功能页框架 cir-lcp-feature-frame 1.0.5
3 应用管理「天舟云首页」 cir-app-manager 1.0.9
4 数据源管理 cir-multiple-data-source 1.0.3.1
5 表单设计器 cir-form-make 1.1.4.2
6 列表设计器 cir-page-make 1.2.12
7 高级列表设计器 cir-page-view 1.0.2
8 表单转换、属性联动、唯一校验、页面发布 cir-formtransfer 1.0.22.2
9 模型管理 cir-data-model 1.0.2
10 事件管理、程序触发 cir-event-center 1.0.2
11 状态流模版管理、状态机设计器 cir-state-flow-manager 1.0.7
12 天舟云开发包 cir-lcp-sdk 1.0.2
13 低代码页面模版渲染引擎 cir-csb-common-view 1.0.14
14 低代码表单业务渲染引擎 cir-csb-generator 1.1.25.6
15 低代码表单渲染引擎 cir-form-generator 1.0.13.5
16 低代码高级列表渲染引擎 cir-page-generator 1.1.14
17 路由控制器 cir-csb-router 1.0.3
18 动态表单 cir-dynamic-modal 1.0.7
19 视图渲染引擎 viewTable 1.0.8.2
20 字典管理模块 cir-dictionary 1.0.4
21 数据图表模块 cir-datart 1.0.0

3.2 天舟云预览系统或接入业务系统依赖资源版本列表

序号 模块 资源名称 版本号
1 天舟云开发包(接入时使用资源的方式接入才配置该模块) cir-lcp-sdk 1.0.2
2 低代码页面模版渲染引擎 cir-csb-common-view 1.0.14
3 低代码表单业务渲染引擎 cir-csb-generator 1.1.25.6
4 低代码表单渲染引擎 cir-form-generator 1.0.13.5
5 低代码高级列表渲染引擎 cir-page-generator 1.1.14
6 视图渲染引擎 viewTable 1.0.8.2
7 动态表单 cir-dynamic-modal 1.0.7
8 全局跳转方法 csbResource 1.0.7
9 路由控制器 cir-csb-router 1.0.3

4. 注意事项

4.1 业务系统

4.1.1 共享依赖

axios:接入天舟云的业务系统的webpack模块联邦共享中,建议配置如下

axios: {
  eager: true,
  // singleton: true,
  requiredVersion: packageJson['dependencies']['axios'] // 建议固定版本
},
作者:袁子涵  创建时间:2023-05-08 10:01
最后编辑:袁子涵  更新时间:2024-12-11 10:09