Skip to content

Commit 7c92728

Browse files
committed
Merge branch 'develop' of https://github.com/betterdancing/tiny-engine into feat/chart-options-configurator
2 parents 49f9106 + 96f221a commit 7c92728

File tree

17 files changed

+139
-85
lines changed

17 files changed

+139
-85
lines changed

.github/workflows/deploy-gh-pages.yml

Lines changed: 20 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,16 @@ name: Deploy to GitHub Pages
33
on:
44
push:
55
branches: [develop]
6+
workflow_dispatch:
7+
inputs:
8+
environment:
9+
description: 'Backend environment'
10+
required: true
11+
default: 'alpha'
12+
type: choice
13+
options:
14+
- alpha
15+
- production
616

717
jobs:
818
deploy-gh-pages:
@@ -31,14 +41,17 @@ jobs:
3141

3242
- name: add environment variable
3343
run: |
34-
cat <<'EOF' >> designer-demo/env/.env.alpha
35-
// ---- appended by CI (gh-pages) ----
36-
VITE_ORIGIN=https://agent.opentiny.design/
44+
ENV=${{ github.event.inputs.environment || 'alpha' }}
45+
VITE_ORIGIN_URL="https://agent-alpha.opentiny.design/"
46+
if [ "$ENV" = "production" ]; then
47+
VITE_ORIGIN_URL="https://agent.opentiny.design/"
48+
fi
49+
cat <<EOF >> designer-demo/env/.env.alpha
50+
# ---- appended by CI (gh-pages) ----
51+
VITE_ORIGIN=$VITE_ORIGIN_URL
3752
EOF
38-
- name: change material url
39-
run: |
40-
sed -i "s#material: \['/mock/bundle.json'\]#material: \['https://opentiny.github.io/tiny-engine/mock/bundle.json'\]#g" designer-demo/engine.config.js
41-
echo "Updated material url in designer-demo/engine.config.js"
53+
echo "DEPLOY_ENV=$ENV"
54+
echo "VITE_ORIGIN_URL=$VITE_ORIGIN_URL"
4255
- name: Run Build
4356
run: |
4457
set -eo pipefail

designer-demo/engine.config.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
export default {
22
id: 'engine.config',
33
theme: 'light',
4-
material: ['/mock/bundle.json'],
4+
material: ['./mock/bundle.json'],
55
scripts: [],
66
styles: [],
77
// 是否开启 TailWindCSS 特性

designer-demo/package.json

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@
55
"type": "module",
66
"scripts": {
77
"dev": "cross-env vite",
8+
"dev:withAuth": "cross-env VITE_AUTH=true vite",
89
"build:alpha": "cross-env NODE_OPTIONS=--max-old-space-size=10240 vite build --mode alpha",
910
"build": "cross-env NODE_OPTIONS=--max-old-space-size=10240 vite build",
1011
"test": "vitest run",

docs/development-getting-started/debugging-of-java-backend.md

Lines changed: 67 additions & 45 deletions
Original file line numberDiff line numberDiff line change
@@ -2,9 +2,10 @@
22

33
本篇主要介绍在本地启动TinyEngine前端并对接本地Java版本后端方式(默认为前端使用mockServer方式)进行开发联调。
44

5-
Tips:
6-
- 对接Node.js版本服务端与Java版本服务端过程类似。另外Node.js版本后续不再进行新特性开发,只维护基础功能,建议使用Java版本服务端。
7-
- 本篇以Clone前端源码方式启动为例,使用CLI创建新设计器启动前端方式对接后端与之类似。
5+
**Tips:**
6+
7+
- 对接 Node.js 版本服务端与 Java 版本服务端过程类似。另外 Node.js 版本后续不再进行新特性开发,只维护基础功能,建议使用 Java 版本服务端。
8+
- 本篇以 Clone 前端源码方式启动为例,使用 CLI 创建新设计器启动前端方式对接后端与之类似。
89

910
## 启动前的准备
1011

@@ -13,85 +14,106 @@ Tips:
1314

1415
## 启动服务
1516

16-
### 1.前端启动
1717

18-
- 把前端项目工程导入 vscode 后下载依赖,进入项目根目录下执行  `pnpm i`
18+
### 1.后端启动
1919

20-
- 在项目根目录下执行构建`pnpm run setup`
20+
#### 1.1 新建数据库
21+
首先新建 MySQL 数据库连接,以 Navicat 为例:
2122

22-
- 修改文件配置
23+
选择“新建连接”->“MySQL”->“下一步”->输入连接名称、用户名、密码->“测试连接”->“确定”
2324

24-
修改`tiny-engine/designer-demo/env/.env.development`中的 VITE_ORIGIN 变量为自己本地的服务端地址端口
25+
如下图所示
2526

26-
![](./imgs/java-debugging-image33.png)
27+
![](./imgs/java-debugging-image36.png)
2728

28-
修改`tiny-engine/designer-demo/engine.config.js`中的 material 获取物料组件
29+
继续新建数据库:
30+
“新建数据库”->输入数据库名称
2931

30-
![](./imgs/java-debugging-image34.png)
32+
如下图所示
3133

32-
- 在项目根目录下执行启动`pnpm run serve:frontend`
34+
![](./imgs/java-debugging-image37.png)
3335

34-
出现如下图所示表示启动成功,启动成功后浏览器会自动打开设计器页面
36+
#### 1.2 执行 SQL 文件导入数据库表与基础数据
3537

36-
![](./imgs/java-debugging-image35.png)
38+
**在按照上述操作后的新建的数据库名称上右键选择“运行 SQL 文件”->在文件项选择下面两个 SQL 文件导入运行**
3739

38-
### 2.后端启动
40+
如下图所示
3941

40-
#### 新建数据库
42+
![](./imgs/java-debugging-image38.png)
4143

42-
**步骤 1 鼠标右键选择“新建连接”->“MySQL”->“下一步”->输入连接名称、用户名、密码->“测试连接”->“确定”**
44+
执行以下 SQL 文件去创建设计器涉及的表(按照序号依次导入执行),目录如下:
4345

44-
如下图所示
46+
`tiny-engine-backend-java/app/src/main/resources/sql/mysql/*.sql`
4547

46-
![](./imgs/java-debugging-image36.png)
4748

48-
**步骤二 在步骤一新建的连接上右键选择“新建数据库”->输入数据库名称**
49+
执行以下 SQL 文件去添加表的基础数据(按照日期依次导入执行),目录如下:
4950

50-
如下图所示
51+
`tiny-engine-backend-java/app/src/main/resources/sql/mysql/init_data*.sql`
5152

52-
![](./imgs/java-debugging-image37.png)
53+
**Tips:** 多条 SQL 依次导入比较麻烦,可以拼接成一条 SQL 一次性导入该 SQL:
5354

54-
#### 执行脚本文件
55+
```sh
56+
cd docker-deploy-data/mysql/init
57+
cat ./*.sql > complete.sql
58+
# 导入complete.sql
59+
```
5560

56-
**步骤一   在按照上述操作后的新建的数据库名称上右键选择“运行 SQL 文件”->在文件项选择下面两个 SQL 文件导入运行**
5761

58-
如下图所示
62+
#### 1.3 修改数据库等相关的配置项
5963

60-
![](./imgs/java-debugging-image38.png)
64+
`tiny-engine-backend-java/app/src/main/resources/application-dev.yml` 文件中设置自己的端口号 `port`(和前端 `tiny-engine/designer-demo/env/.env.development` 文件中的 `VITE_ORIGIN` 变量中的端口号保持一致)、还有数据库连接信息(用户名 `username`、密码 `password``URL`
6165

62-
执行以下 SQL 文件去创建设计器涉及的表,目录如下:
66+
![](./imgs/java-debugging-image39.png)
6367

64-
`tiny-engine-backend-java/app/src/main/resources/sql/mysql/create_all_tables_ddl_v1.mysql.sql`
68+
#### 1.4 启动后端项目
6569

66-
执行以下 SQL 文件去添加表的基础数据,目录如下:
70+
**步骤一**:先安装 Maven,若没有从 [Maven 官网](https://maven.apache.org/download.cgi) 下载并解压,Maven 3.5 以上即可,并配置环境变量
6771

68-
`tiny-engine-backend-java/app/src/main/resources/sql/mysql/init_data_for_test.sql`
72+
**步骤二**:在项目根目录执行构建打包
6973

70-
#### 修改数据库等相关的配置项
74+
```sh
75+
mvn clean package
76+
```
7177

72-
`tiny-engine-backend-java/app/src/main/resources/application-dev.yml`文件中设置自己的端口号 port(和前端`tiny-engine/designer-demo/env/.env.development`文件中的 VITE_ORIGIN 变量中的端口号保持一致)、还有数据库连接信息(用户名 username、密码 password、URL)
78+
**步骤三**:在项目根目录执行启动
7379

74-
![](./imgs/java-debugging-image39.png)
80+
```sh
81+
java -jar app/target/tiny-engine-app-1.0-SNAPSHOT.jar
82+
```
7583

76-
#### 启动后端项目
84+
执行后终端中看到下图界面表示后端服务启动成功:
7785

78-
步骤一   先安装 maven,若没有从[Maven 官网](https://maven.apache.org/download.cgi)下载并解压,Maven 3.5 以上即可,并配置环境变量
86+
![](./imgs/java-debugging-image40.png)
7987

80-
步骤二 在项目根目录执行构建打包`mvn clean package`
88+
Swagger 访问链接路径:
89+
`localhost:9091/swagger-ui.html`
8190

82-
步骤三 在项目根目录执行启动`java -jar app/target/tiny-engine-app-1.0-SNAPSHOT.jar`
91+
**可详细查看接口 API**
8392

84-
按照以上步骤执行前后端操作,即能成功启动本地前后端关联进行调试
93+
![](./imgs/java-debugging-image42.png)
8594

86-
![](./imgs/java-debugging-image40.png)
95+
### 2. 前端启动
8796

88-
前后端启动成功后页面会自动弹出,如下可看连接数据库数据接口调通能返回正常数据
97+
- 把前端项目工程导入 VSCode 后下载依赖,进入项目根目录下执行  `pnpm i`
8998

90-
![](./imgs/java-debugging-image41.png)
99+
- 修改文件配置
91100

92-
三、swagger 访问链接路径:
93-
`localhost:9091/swagger-ui.html`
101+
修改 `tiny-engine/designer-demo/env/.env.development`中的 `VITE_ORIGIN` 变量为自己本地的服务端地址端口:
94102

95-
**可详细查看接口 api**
103+
![](./imgs/java-debugging-image33.png)
96104

97-
![](./imgs/java-debugging-image42.png)
105+
- 在项目根目录下执行启动
106+
107+
```sh
108+
pnpm dev:withAuth
109+
```
110+
111+
出现如下图所示表示启动成功,启动成功后浏览器会自动打开设计器页面:
112+
113+
![](./imgs/java-debugging-image35.png)
114+
115+
前后端启动成功后页面自动弹出,如下可看连接数据库数据接口调通能返回正常数据:
116+
117+
![](./imgs/java-debugging-image41.png)
118+
119+
按照以上步骤执行前后端操作,即已成功启动本地前后端关联进行调试。
-54.5 KB
Binary file not shown.

docs/solutions/server-deployment-solution-java.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@
77
- **安装 jdk 8**
88

99
```
10-
suto yum install java-1.8.0-openjdk-devel
10+
sudo yum install java-1.8.0-openjdk-devel
1111
```
1212

1313
安装完成后,可以使用`java -version`命令来验证 JDK 是否安装成功
@@ -21,7 +21,7 @@ export PATH=$JAVA_HOME/bin:$PATH
2121

2222
再使用 source 命令使配置生效`source ~/.bash_profile`
2323

24-
- **安装 maven** `suto yum install maven`
24+
- **安装 maven** `sudo yum install maven`
2525

2626
若执行命令后报错如下,那么就进行手动安装
2727

package.json

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@
44
"scripts": {
55
"preinstall": "npx only-allow pnpm",
66
"dev": "pnpm run setup && concurrently 'pnpm:serve:backend' 'pnpm:serve:frontend'",
7+
"dev:withAuth": "pnpm run setup && pnpm --filter designer-demo dev:withAuth",
78
"serve:frontend": "pnpm --filter designer-demo dev",
89
"serve:backend": "pnpm --filter @opentiny/tiny-engine-mock dev",
910
"build:plugin": "pnpm --filter @opentiny/tiny-engine-* --filter @opentiny/tiny-engine build",

packages/common/composable/defaultGlobalService.ts

Lines changed: 21 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -49,32 +49,30 @@ const userState = reactive({
4949
username: '',
5050
token: null,
5151
expireTime: null,
52-
tenantId: ''
52+
tenantId: '',
53+
tenant: []
5354
},
5455
needToLogin: false
5556
})
5657

5758
const getLoginStatus = () => userState.needToLogin
5859

59-
const setNeedToLogin = (value: boolean, tenantId: any) => {
60+
const setNeedToLogin = (value: boolean) => {
6061
userState.needToLogin = value
6162
if (!value) {
62-
const baseUrl = `${window.location.origin}${window.location.pathname}?type=app&`
63-
const id = getBaseInfo().id
64-
const baseTenantId = getBaseInfo().tenantId
65-
66-
// 浏览器Url没有组织id,都默认公共组织,应用id默认为公共组织的应用1
67-
if (!baseTenantId) {
68-
window.location.href = `${baseUrl}id=1&tenant=${tenantId}`
69-
}
70-
71-
if (baseTenantId && !id) {
72-
window.location.href = `${baseUrl}tenant=${baseTenantId}`
73-
}
74-
75-
if (baseTenantId && id) {
76-
window.location = window.location
63+
const defaultTenantId = userState.userInfo.tenant?.[0]?.id
64+
if (defaultTenantId) {
65+
const currentUrl = new URL(window.location.href)
66+
const currentTenant = getBaseInfo().tenantId
67+
68+
const filterList = userState.userInfo.tenant.filter((item) => item.id === currentTenant) || []
69+
// 只有当tenant值不存在时才更新
70+
if (!filterList?.length) {
71+
currentUrl.searchParams.set('tenant', String(defaultTenantId))
72+
window.history.replaceState(window.history.state, '', currentUrl.href)
73+
}
7774
}
75+
window.location.reload()
7876
}
7977
}
8078

@@ -86,7 +84,12 @@ const setUserInfo = (data: any) => {
8684

8785
const fetchUserInfo = () => {
8886
// 获取登录用户信息
89-
return getMetaApi(META_SERVICE.Http).get('/platform-center/api/user/me')
87+
return getMetaApi(META_SERVICE.Http).get('/platform-center/api/user/me', {
88+
transformRequest: (data: any, headers: any) => {
89+
delete headers['x-lowcode-org']
90+
return data
91+
}
92+
})
9093
}
9194

9295
const setTenantInfo = (id: any) => {

packages/common/composable/http/index.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -117,7 +117,7 @@ const createAbortController = (config) => {
117117

118118
// 取消所有进行中的请求
119119
const abortAllRequests = (message = '用户未登录,请求已取消') => {
120-
abortControllers.forEach((controller, key) => {
120+
abortControllers.forEach((controller) => {
121121
controller.abort(message)
122122
})
123123
abortControllers.clear()

packages/design-core/registry.js

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -58,6 +58,8 @@ import {
5858
} from './re-export'
5959

6060
const isDevelopEnv = import.meta.env.MODE?.includes('dev')
61+
const useAuth = import.meta.env.VITE_AUTH === 'true'
62+
6163
window.__TINY_ENGINE_REMOVED_REGISTRY = {}
6264

6365
export default {
@@ -136,7 +138,7 @@ export default {
136138
}
137139
],
138140
enableTailwindCSS: true,
139-
enableLogin: isDevelopEnv ? false : true
141+
enableLogin: useAuth || !isDevelopEnv
140142
},
141143
layout: __TINY_ENGINE_REMOVED_REGISTRY['engine.layout'] === false ? null : Layout,
142144
toolbars: [

0 commit comments

Comments
 (0)