Compare commits

...

10 Commits

Author SHA1 Message Date
8ea5aabff4 fix: app upgrade should not overwrite the activation status of plugins (#1610)
Co-authored-by: sealday <sealday@gmail.com>
Reviewed-on: daoyoucloud/tachybase#1610
2024-10-16 12:12:03 +08:00
388172e098 feat: improve tachybase presets (#1609)
Co-authored-by: sealday <sealday@gmail.com>
Reviewed-on: daoyoucloud/tachybase#1609
2024-10-16 12:04:27 +08:00
ee7f011b31 feat(client): add welcome card (#1606)
Co-authored-by: sealday <sealday@gmail.com>
Reviewed-on: daoyoucloud/tachybase#1606
2024-10-16 02:53:42 +08:00
e679b0b32e chore(version): release v0.22.7 (#1605)
Co-authored-by: sealday <sealday@gmail.com>
Reviewed-on: daoyoucloud/tachybase#1605
2024-10-15 23:36:48 +08:00
28f843281f chore: clean codes (#1603)
Co-authored-by: sealday <sealday@gmail.com>
Reviewed-on: daoyoucloud/tachybase#1603
2024-10-15 23:35:57 +08:00
959a5c4341 更新 README.md (#1602)
Reviewed-on: daoyoucloud/tachybase#1602
2024-10-15 22:51:54 +08:00
593afea9c7 docs: readme (#1601)
Co-authored-by: sealday <sealday@gmail.com>
Reviewed-on: daoyoucloud/tachybase#1601
2024-10-15 22:50:44 +08:00
970264f86e feat(workflow): support api hooks (#1591)
Co-authored-by: sealday <sealday@gmail.com>
Co-authored-by: Toby <2287769986@qq.com>
Reviewed-on: daoyoucloud/tachybase#1591
2024-10-15 22:16:11 +08:00
f458d590c3 fix(auth): 修复重置数据问题 (#1598)
Reviewed-on: daoyoucloud/tachybase#1598
Reviewed-by: sealday <zhanglin@daoyoucloud.com>
Co-authored-by: bai.zixv <bai.zixv@foxmail.com>
Co-committed-by: bai.zixv <bai.zixv@foxmail.com>
2024-10-15 13:56:46 +08:00
d7269e0058 docs: new readme (#1596)
Co-authored-by: sealday <sealday@gmail.com>
Reviewed-on: daoyoucloud/tachybase#1596
2024-10-15 12:56:54 +08:00
306 changed files with 11791 additions and 12689 deletions

View File

@ -1,8 +0,0 @@
# Changesets
Hello and welcome! This folder has been automatically generated by `@changesets/cli`, a build tool that works
with multi-package repos, or single-package repos to help you version and publish your code. You can
find the full documentation for it [in our repository](https://github.com/changesets/changesets)
We have a quick list of common questions to get you started engaging with this project in
[our documentation](https://github.com/changesets/changesets/blob/main/docs/common-questions.md)

View File

@ -1,5 +0,0 @@
---
"@hera/plugin-rental": patch
---
根据费用录单位置的改变调整订单pdf

View File

@ -1,7 +0,0 @@
---
"@hera/plugin-rental": patch
"@tachybase/client": patch
"@tachybase/utils": patch
---
support fuzzy search in cascader

View File

@ -1,5 +0,0 @@
---
"@hera/plugin-rental": patch
---
合同结算单名称承租单位修改sql返回合同的甲乙方

View File

@ -1,11 +0,0 @@
{
"$schema": "https://unpkg.com/@changesets/config@3.0.0/schema.json",
"changelog": false,
"commit": false,
"fixed": [],
"linked": [],
"access": "restricted",
"baseBranch": "dev",
"updateInternalDependencies": "patch",
"ignore": []
}

View File

@ -1,5 +0,0 @@
---
"@hera/plugin-rental": patch
---
pdf订单备注调整

View File

@ -1,5 +0,0 @@
---
"@hera/plugin-rental": patch
---
二期出入库查询视图调整

View File

@ -1,5 +0,0 @@
---
"@tachybase/plugin-mobile-client": patch
---
tab-search

View File

@ -1,6 +0,0 @@
---
"@hera/plugin-core": patch
"@tachybase/client": patch
---
修复自定义组件没有格式化名称

View File

@ -1,5 +0,0 @@
---
"@hera/plugin-rental": patch
---
整理费用部分

View File

@ -1,5 +0,0 @@
---
"@hera/plugin-rental": patch
---
出入库改视图

View File

@ -1,5 +0,0 @@
---
"@tachybase/client": patch
---
grid card, layoutDirection

View File

@ -1,5 +0,0 @@
---
"@hera/plugin-rental": patch
---
pdf订单添加基础纸张选择功能

View File

@ -1,5 +0,0 @@
---
"@hera/plugin-rental": patch
---
合同改版直接关联报价(短期合同/报价)

View File

@ -1,5 +0,0 @@
---
"@hera/plugin-rental": patch
---
订单hooks调整

View File

@ -1,5 +0,0 @@
---
"@hera/plugin-rental": patch
---
pdf订单纸张字体调整

View File

@ -1,5 +0,0 @@
---
"@hera/plugin-rental": patch
---
图表时区加加上当前时区

View File

@ -1,5 +0,0 @@
---
"@hera/plugin-rental": patch
---
盘点单hooks

View File

@ -1,5 +0,0 @@
---
"@hera/plugin-rental": patch
---
树形结构拼树

View File

@ -1,5 +0,0 @@
---
"@hera/plugin-rental": patch
---
修改结算单的合并规格产品数量不对

View File

@ -1,5 +0,0 @@
---
"@hera/plugin-rental": patch
---
录单二期订单视图,合同视角

View File

@ -14,6 +14,8 @@ packages/*/*/node_modules
/.vscode /.vscode
/.idea /.idea
/.husky
/.gitea
*.sqlite *.sqlite
/uploads /uploads

View File

@ -11,6 +11,3 @@ insert_final_newline = true
[*.md] [*.md]
trim_trailing_whitespace = false trim_trailing_whitespace = false
[Makefile]
indent_style = tab

View File

@ -73,3 +73,9 @@ INIT_ROOT_USERNAME=tachybase
# SENTRY_SESSION_REPLAY_ENABLE=on # 是否启用 Sentry 会话重放,文档 https://docs.sentry.io/platforms/javascript/guides/react/session-replay/ # SENTRY_SESSION_REPLAY_ENABLE=on # 是否启用 Sentry 会话重放,文档 https://docs.sentry.io/platforms/javascript/guides/react/session-replay/
# SENTRY_SESSION_REPLAY_SAMPLE_RATE=0.1 # Sentry 会话重放采样率1.0 为 100%0.0 为 0%,默认为 0.1 # SENTRY_SESSION_REPLAY_SAMPLE_RATE=0.1 # Sentry 会话重放采样率1.0 为 100%0.0 为 0%,默认为 0.1
# SENTRY_SESSION_REPLAY_ONERROR_SAMPLE_RATE=1.0 # Sentry 会话重放错误采样率1.0 为 100%0.0 为 0%,默认为 1.0 # SENTRY_SESSION_REPLAY_ONERROR_SAMPLE_RATE=1.0 # Sentry 会话重放错误采样率1.0 为 100%0.0 为 0%,默认为 1.0
##### PRESETS #####
# 单写名称:添加指定插件且默认启用 名称前加!:移除指定插件 名称前加|:添加指定插件但默认禁用
# PRESETS_CORE_PLUGINS=api-doc,api-keys,!messages
# PRESETS_LOCAL_PLUGINS=gantt,!iframe-block,|audit-logs

3
.gitignore vendored
View File

@ -6,8 +6,6 @@ es/
.env.e2e .env.e2e
.env.local .env.local
.DS_Store .DS_Store
yarn-error.log
lerna-debug.log
/.vscode /.vscode
/.idea /.idea
*.sqlite *.sqlite
@ -42,7 +40,6 @@ tsconfig.paths.json
/storage/playwright /storage/playwright
.swc .swc
ncc-cache/ ncc-cache/
yarn--**
v8-compile-cache-** v8-compile-cache-**
.env.local.* .env.local.*
.pnpm-store .pnpm-store

View File

@ -8,7 +8,6 @@
packages/**/lib/** packages/**/lib/**
packages/**/esm/** packages/**/esm/**
packages/**/node_modules/** packages/**/node_modules/**
packages/core/client/src/locale/*
**/.dumi/tmp **/.dumi/tmp
**/.dumi/tmp-test **/.dumi/tmp-test
**/.dumi/tmp-production **/.dumi/tmp-production

View File

@ -1,39 +1,81 @@
## 塔奇平台 <h1 align="center" style="border-bottom: none">
<div>
<a style="color:#36f" href="https://www.tachybase.com">
<img src="https://private-user-images.githubusercontent.com/4080924/376667122-0930a0f2-41ab-4dff-9646-8f6daade2829.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3MjkwMDQwODYsIm5iZiI6MTcyOTAwMzc4NiwicGF0aCI6Ii80MDgwOTI0LzM3NjY2NzEyMi0wOTMwYTBmMi00MWFiLTRkZmYtOTY0Ni04ZjZkYWFkZTI4MjkucG5nP1gtQW16LUFsZ29yaXRobT1BV1M0LUhNQUMtU0hBMjU2JlgtQW16LUNyZWRlbnRpYWw9QUtJQVZDT0RZTFNBNTNQUUs0WkElMkYyMDI0MTAxNSUyRnVzLWVhc3QtMSUyRnMzJTJGYXdzNF9yZXF1ZXN0JlgtQW16LURhdGU9MjAyNDEwMTVUMTQ0OTQ2WiZYLUFtei1FeHBpcmVzPTMwMCZYLUFtei1TaWduYXR1cmU9OTUyOTUwNDNjNzZmZWEyZDc1ODk2Y2VmNDcwODM0NzMyMTJlNjA5ZTM3MzM4MGI5YTU0MTE2NWQwMDBhMTA0NiZYLUFtei1TaWduZWRIZWFkZXJzPWhvc3QifQ.3QbOn5LhUVGBMWp6JJYE-NFnDqZbV0HHDuZ8QVLVAdI" width="80" />
<br>
塔奇平台
</a>
</div>
</h1>
<br>
[English Version](README.EN-US.md) [English Version](README.EN-US.md)
塔奇平台Tachybase致力于打造一个用户友好的应用研发平台旨在降低开发门槛提升研发效率为开发者提供一站式解决方案。随着企业数字化转型的加速应用研发变得日益复杂尤其是在多样化的业务需求和快速迭代的市场环境下。塔奇平台应运而生针对这一问题专注于将常见的功能组件和系统服务进行高度封装以组件化、模块化的方式为开发者提供开箱即用的工具和功能。 <p align="center">
<span style="color:red; font-weight:bold;">目前框架还在 alpha 阶段,用在生产中请谨慎,碰到任何问题可以联系我们处理</span>
<br>
塔奇平台Tachybase致力于打造一个用户友好的应用研发平台旨在降低开发门槛提升研发效率为企业用户和开发者提供一站式解决方案。
</p>
前端友好:以用户体验为核心 # 安装
塔奇平台的最大特点之一是其前端友好性。传统的应用研发过程往往涉及繁琐的后端开发,前端开发者不仅要编写界面,还需处理业务逻辑、数据交互和服务器配置等复杂内容。这种高耦合性和多层次的开发方式,既增加了开发周期,又提高了维护成本。
塔奇平台通过将复杂的功能模块进行封装让开发者可以更加专注于前端开发减少对后端开发的依赖。例如平台提供了丰富的表格组件帮助开发者轻松实现增删改查CRUD操作而无需重复编写后端接口或数据库操作逻辑。开发者只需调用平台提供的组件即可快速构建功能强大的前端应用大大提升了开发效率。 ## 使用 Sqlite 开始
封装功能组件:灵活组合与定制化 ```bash
塔奇平台的核心在于其功能组件封装,这些组件被设计成模块化的“卡片”,可以自由组合使用,满足不同行业和场景的需求。常见的功能组件包括: pnpm install
pnpm tachybase install
pnpm dev
```
表格卡片:增删改查操作是企业信息系统中最基础的功能,塔奇平台的表格组件通过简化数据交互流程,让开发者可以直接通过拖拽或简单的代码配置,快速生成适合不同业务场景的表格。不论是数据展示、分页管理,还是复杂的条件筛选,平台都可以通过内置的参数化配置实现。 默认的账号为:`tachybase`,默认密码为 `!Admin123.`
抄送卡片:在信息流转过程中,通知和抄送是非常常见的需求。塔奇平台提供了灵活的抄送卡片,用户可以将某个通知或信息抄送给相关负责人或多个业务部门,以确保信息的及时传达。开发者只需配置相关的通知规则,平台便能自动完成信息的发送与接收。 # 特性
AI 流程随着智能化的发展越来越多的企业需要自动化流程以提高效率。塔奇平台集成了AI驱动的自动化流程管理开发者可以通过简单的配置和拖拽操作快速搭建自动化流程从而实现智能化的业务流转。无论是自动化审批、智能推荐还是基于机器学习的预测分析塔奇平台都提供了相应的组件化解决方案。 ### 丰富的操作界面
这些功能组件不仅具有高度的通用性,还能根据业务需求进行灵活定制。开发者可以根据具体应用场景,快速调整组件的外观、交互逻辑和数据处理方式,确保组件在不同的业务场景下发挥最大效用。 - ⚡ &nbsp;基本操作:对表、列和行进行增删改查
- ⚡ &nbsp;字段操作:排序、过滤、隐藏/取消隐藏列
- ⚡ &nbsp;多种数据视图:看板、日历、网格
- ⚡ &nbsp;视图权限:协作视图和锁定的视图
- ⚡ &nbsp;丰富的数据类型ID、链接到另一记录、查找、滚动、单行文本、附件、货币、公式等
- ⚡ &nbsp;基于角色的访问控制:不同层次的精细化地控制访问
- ⚡ &nbsp;以及更多......
系统服务:全面支持后端需求 ### 自动化工作流与审批流
除了前端组件化的封装,塔奇平台还提供了强大的系统服务支持,这使得开发者无需过多关注底层逻辑即可实现复杂的业务功能。塔奇平台的系统服务包括但不限于以下几类:
身份认证与权限管理:平台内置了完善的身份认证和权限管理系统,支持用户登录、注册、角色划分和权限分配等操作。开发者不必自行构建用户管理模块,平台提供的服务可以直接接入应用,确保用户数据的安全性和权限的合理分配。 我们提供了无代码、低代码形式的工作流,通过丰富的触发时机,巧妙满足业务上的不同需求,针对通用的办公审批情况,我们定制了我们的一种方案,在这里
总是可以自行拓展定制更符合业务情况的流程。
数据存储与交互:塔奇平台提供了多种数据存储方式,支持主流的关系型数据库和非关系型数据库,并提供数据缓存、数据备份等功能。开发者只需关注数据的使用,而不必关心数据的存储、查询等具体细节。 - ⚡ &nbsp;外部 API、内部 API、定时、数据发生变动等等可以扩展的触发时机
- ⚡ &nbsp;调用外部 HTTP 请求、接入飞书、企业微信、钉钉机器人
- ⚡ &nbsp;接入 AI 机器人,包含 kimi、豆包等等
消息队列与任务调度:为了应对高并发和异步任务处理,平台集成了消息队列和任务调度服务。无论是处理大量的用户请求,还是进行复杂的后台任务,开发者可以轻松调用这些服务,确保应用的稳定性和高效性。 ### 使用 API 编程访问
前瞻性与扩展性 我们提供以下方式让用户以编程方式调用操作。 您可以使用 Token 来签署您对 Tachybase 授权的请求。
塔奇平台不仅解决了当前开发过程中常见的痛点,还具备很强的前瞻性和扩展性。随着业务需求的不断变化,企业需要一个灵活且可扩展的平台来应对未来的挑战。塔奇平台采用了模块化架构设计,开发者可以根据具体需求添加或移除模块,保证了系统的可扩展性和可维护性。
此外塔奇平台紧跟技术发展的前沿集成了多种现代化的开发工具和框架。例如平台支持微服务架构方便开发者对不同业务模块进行解耦和独立部署同时平台还提供了全面的API接口便于与第三方系统或工具进行无缝对接。 - ⚡ &nbsp;REST APIs
- ⚡ &nbsp;Tachybase SDK
## 感谢 # 我们为什么要做这个?
塔奇平台基于旧版 nocobaseapache 版本)打造,沿用了其大部分思想,在这里十分感谢他们带来了如此优秀的作品。 大多数互联网企业都为自己配备了电子表格或数据库来解决他们的业务需求。每天有十亿多人协作使用电子表格。然而,我们在数据库上以类似的效率工作还有很长的路要走,这些数据库在计算方面是更强大的工具。使用 SaaS 产品解决这个问题意味着可怕的访问控制、供应商锁定、数据锁定、突然的价格变化以及最重要的是未来可能出现的玻璃天花板。
# 我们的任务
我们的使命是为数据库提供最强大的无代码接口并向世界上每一个互联网企业开放源代码。这不仅能让这个强大的计算工具开放给每个人而且10亿或更多的人将会在互联网上拥有激进的修补和建设能力。
# 开源许可证
<p>
此项目在 <a href="./LICENSE">Apache 2.0</a> 下.
</p>
# 贡献
我们不限制贡献的方式,积极使用该项目,向我们回馈就是最大的贡献。
- 使用
- 提建议
- 提合并请求

View File

@ -7,4 +7,4 @@ When reporting a suspected security problem, please bear this in mind:
* Make sure to provide as many details as possible about the vulnerability. * Make sure to provide as many details as possible about the vulnerability.
* Please do not disclose publicly any security issues until we fix them and publish security releases. * Please do not disclose publicly any security issues until we fix them and publish security releases.
Contact us at hello+security@tachybase.com. As soon as we receive the security report, we'll work promptly to confirm the issue and then to provide a security fix. You will receive a response from us within 7 working days. Contact us at https://github.com/tachybase/tachybase/issues. As soon as we receive the security report, we'll work promptly to confirm the issue and then to provide a security fix. You will receive a response from us within 7 working days.

View File

@ -8,7 +8,7 @@ ENV PATH="$PNPM_HOME:$PATH"
COPY . /app COPY . /app
WORKDIR /app WORKDIR /app
RUN npm config set registry $NPM_REGISTRY RUN npm config set registry $NPM_REGISTRY
RUN npm i -g pnpm@9.7.0 RUN npm i -g pnpm@9.12.1
RUN pnpm config set registry $NPM_REGISTRY RUN pnpm config set registry $NPM_REGISTRY
RUN pnpm install --shamefully-hoist --config.build_from_source=sqlite3 RUN pnpm install --shamefully-hoist --config.build_from_source=sqlite3
RUN pnpm build:p RUN pnpm build:p

View File

@ -1,6 +1,6 @@
{ {
"name": "tachybase", "name": "tachybase",
"version": "0.22.6", "version": "0.22.7",
"private": true, "private": true,
"license": "Apache-2.0", "license": "Apache-2.0",
"scripts": { "scripts": {
@ -45,7 +45,6 @@
"rimraf": "^3.0.2" "rimraf": "^3.0.2"
}, },
"devDependencies": { "devDependencies": {
"@changesets/cli": "^2.27.1",
"@commitlint/cli": "^16.3.0", "@commitlint/cli": "^16.3.0",
"@commitlint/config-conventional": "^16.2.4", "@commitlint/config-conventional": "^16.2.4",
"@commitlint/prompt-cli": "^16.3.0", "@commitlint/prompt-cli": "^16.3.0",
@ -55,9 +54,6 @@
"@ianvs/prettier-plugin-sort-imports": "^4.2.1", "@ianvs/prettier-plugin-sort-imports": "^4.2.1",
"@tachybase/build": "workspace:*", "@tachybase/build": "workspace:*",
"@tachybase/cli": "workspace:*", "@tachybase/cli": "workspace:*",
"@tachybase/preset-hera-rental": "workspace:*",
"@tachybase/preset-hera-sancongtou": "workspace:*",
"@tachybase/preset-mini": "workspace:*",
"@tachybase/preset-tachybase": "workspace:*", "@tachybase/preset-tachybase": "workspace:*",
"@tachybase/test": "workspace:*", "@tachybase/test": "workspace:*",
"@types/react": "^18.3.3", "@types/react": "^18.3.3",
@ -86,14 +82,14 @@
"umi": "^4.3.3", "umi": "^4.3.3",
"vitest": "^1.6.0" "vitest": "^1.6.0"
}, },
"packageManager": "pnpm@9.7.0", "packageManager": "pnpm@9.12.1",
"engines": { "engines": {
"node": "20.16.0", "node": "20.16.0",
"pnpm": "9.7.0" "pnpm": "9.12.1"
}, },
"volta": { "volta": {
"node": "20.16.0", "node": "20.16.0",
"pnpm": "9.7.0" "pnpm": "9.12.1"
}, },
"pnpm": { "pnpm": {
"neverBuiltDependencies": [ "neverBuiltDependencies": [

View File

@ -1,6 +1,6 @@
{ {
"name": "@tachybase/acl", "name": "@tachybase/acl",
"version": "0.22.6", "version": "0.22.7",
"description": "", "description": "",
"license": "Apache-2.0", "license": "Apache-2.0",
"main": "./lib/index.js", "main": "./lib/index.js",

View File

@ -1,6 +1,6 @@
{ {
"name": "@tachybase/actions", "name": "@tachybase/actions",
"version": "0.22.6", "version": "0.22.7",
"description": "", "description": "",
"license": "Apache-2.0", "license": "Apache-2.0",
"main": "./lib/index.js", "main": "./lib/index.js",

Binary file not shown.

After

Width:  |  Height:  |  Size: 7.9 KiB

View File

@ -1,15 +1,12 @@
{ {
"name": "@tachybase/app", "name": "@tachybase/app",
"version": "0.22.6", "version": "0.22.7",
"description": "", "description": "",
"license": "Apache-2.0", "license": "Apache-2.0",
"main": "./lib/index.js", "main": "./lib/index.js",
"types": "./lib/index.d.ts", "types": "./lib/index.d.ts",
"dependencies": { "dependencies": {
"@tachybase/database": "workspace:*", "@tachybase/database": "workspace:*",
"@tachybase/preset-hera-rental": "workspace:*",
"@tachybase/preset-hera-sancongtou": "workspace:*",
"@tachybase/preset-mini": "workspace:*",
"@tachybase/preset-tachybase": "workspace:*", "@tachybase/preset-tachybase": "workspace:*",
"@tachybase/server": "workspace:*", "@tachybase/server": "workspace:*",
"@tachybase/telemetry": "workspace:*" "@tachybase/telemetry": "workspace:*"

View File

@ -1,4 +1,3 @@
import process from 'process';
import { PluginConfiguration } from '@tachybase/server'; import { PluginConfiguration } from '@tachybase/server';
export default [process.env.PRESET_NAME ?? 'tachybase'] as PluginConfiguration[]; export default ['tachybase'] as PluginConfiguration[];

View File

@ -1,6 +1,6 @@
{ {
"name": "@tachybase/auth", "name": "@tachybase/auth",
"version": "0.22.6", "version": "0.22.7",
"description": "", "description": "",
"license": "Apache-2.0", "license": "Apache-2.0",
"main": "./lib/index.js", "main": "./lib/index.js",

View File

@ -1,6 +1,6 @@
{ {
"name": "@tachybase/build", "name": "@tachybase/build",
"version": "0.22.6", "version": "0.22.7",
"description": "Library build tool based on rollup.", "description": "Library build tool based on rollup.",
"license": "Apache-2.0", "license": "Apache-2.0",
"main": "lib/index.js", "main": "lib/index.js",

View File

@ -1,6 +1,6 @@
{ {
"name": "@tachybase/cache", "name": "@tachybase/cache",
"version": "0.22.6", "version": "0.22.7",
"description": "", "description": "",
"license": "Apache-2.0", "license": "Apache-2.0",
"main": "./lib/index.js", "main": "./lib/index.js",

View File

@ -1,6 +1,6 @@
{ {
"name": "@tachybase/cli", "name": "@tachybase/cli",
"version": "0.22.6", "version": "0.22.7",
"description": "", "description": "",
"license": "Apache-2.0", "license": "Apache-2.0",
"type": "module", "type": "module",

View File

@ -1,6 +1,6 @@
{ {
"name": "@tachybase/client", "name": "@tachybase/client",
"version": "0.22.6", "version": "0.22.7",
"license": "Apache-2.0", "license": "Apache-2.0",
"main": "lib/index.js", "main": "lib/index.js",
"module": "es/index.mjs", "module": "es/index.mjs",

View File

@ -0,0 +1,48 @@
import React from 'react';
import { css } from '@emotion/css';
import { Button, Card, Flex, Space, Typography } from 'antd';
import { Outlet, useMatch, useParams } from 'react-router';
import { PageTab } from '../page-style/PageTab';
import { usePageStyle } from '../page-style/usePageStyle';
const WelcomeCard = () => {
return (
<Card
className={css`
max-width: 800px;
margin: 24px auto;
`}
>
<Typography.Title></Typography.Title>
<Typography.Text>
</Typography.Text>
<Flex
justify="flex-end"
className={css`
margin-top: 48px;
`}
>
<Space>
<Button>使</Button>
<Button></Button>
<Button type="primary"></Button>
</Space>
</Flex>
</Card>
);
};
export const AdminContent = () => {
const isMatchAdmin = useMatch('/admin');
const params = useParams<any>();
const pageStyle = usePageStyle();
if (isMatchAdmin) {
return <WelcomeCard />;
} else {
return params.name && pageStyle === 'tab' ? <PageTab /> : <Outlet />;
}
};

View File

@ -28,6 +28,7 @@ import { Plugin } from '../../application/Plugin';
import { VariablesProvider } from '../../variables'; import { VariablesProvider } from '../../variables';
import { PageTab } from '../page-style/PageTab'; import { PageTab } from '../page-style/PageTab';
import { usePageStyle } from '../page-style/usePageStyle'; import { usePageStyle } from '../page-style/usePageStyle';
import { AdminContent } from './AdminContent';
import { NoticeArea } from './NoticeArea'; import { NoticeArea } from './NoticeArea';
const useStyles = createStyles(({ css, token }) => { const useStyles = createStyles(({ css, token }) => {
@ -450,7 +451,9 @@ export const InternalAdminLayout = (props: any) => {
{params.name && <Layout.Sider className={styles.sider} theme={'light'} ref={sideMenuRef}></Layout.Sider>} {params.name && <Layout.Sider className={styles.sider} theme={'light'} ref={sideMenuRef}></Layout.Sider>}
<Layout.Content className={styles.main}> <Layout.Content className={styles.main}>
<header className={styles.mainHeader}></header> <header className={styles.mainHeader}></header>
<div className="amplifier-block">{params.name && pageStyle === 'tab' ? <PageTab /> : <Outlet />}</div> <div className="amplifier-block">
<AdminContent />
</div>
</Layout.Content> </Layout.Content>
</Layout> </Layout>
); );

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@ -1,6 +1,6 @@
{ {
"name": "@tachybase/components", "name": "@tachybase/components",
"version": "0.22.6", "version": "0.22.7",
"license": "Apache-2.0", "license": "Apache-2.0",
"main": "lib/index.js", "main": "lib/index.js",
"types": "lib/index.d.ts", "types": "lib/index.d.ts",

View File

@ -1,6 +1,6 @@
{ {
"name": "create-tachybase-app", "name": "create-tachybase-app",
"version": "0.22.6", "version": "0.22.7",
"license": "Apache-2.0", "license": "Apache-2.0",
"main": "src/index.js", "main": "src/index.js",
"bin": { "bin": {

View File

@ -1,6 +1,6 @@
{ {
"name": "@tachybase/data-source-manager", "name": "@tachybase/data-source-manager",
"version": "0.22.6", "version": "0.22.7",
"description": "", "description": "",
"license": "Apache-2.0", "license": "Apache-2.0",
"main": "./lib/index.js", "main": "./lib/index.js",

View File

@ -1,6 +1,6 @@
{ {
"name": "@tachybase/database", "name": "@tachybase/database",
"version": "0.22.6", "version": "0.22.7",
"description": "", "description": "",
"license": "Apache-2.0", "license": "Apache-2.0",
"main": "./lib/index.js", "main": "./lib/index.js",

View File

@ -1,6 +1,6 @@
{ {
"name": "@tachybase/devtools", "name": "@tachybase/devtools",
"version": "0.22.6", "version": "0.22.7",
"description": "", "description": "",
"license": "Apache-2.0", "license": "Apache-2.0",
"main": "./src/index.js", "main": "./src/index.js",

View File

@ -1,6 +1,6 @@
{ {
"name": "@tachybase/evaluators", "name": "@tachybase/evaluators",
"version": "0.22.6", "version": "0.22.7",
"description": "", "description": "",
"license": "Apache-2.0", "license": "Apache-2.0",
"main": "./lib/index.js", "main": "./lib/index.js",

View File

@ -1,6 +1,6 @@
{ {
"name": "@tachybase/logger", "name": "@tachybase/logger",
"version": "0.22.6", "version": "0.22.7",
"description": "logging library", "description": "logging library",
"license": "Apache-2.0", "license": "Apache-2.0",
"main": "./lib/index.js", "main": "./lib/index.js",

View File

@ -1,6 +1,6 @@
{ {
"name": "@tachybase/resourcer", "name": "@tachybase/resourcer",
"version": "0.22.6", "version": "0.22.7",
"description": "", "description": "",
"license": "Apache-2.0", "license": "Apache-2.0",
"main": "./lib/index.js", "main": "./lib/index.js",

View File

@ -1,6 +1,6 @@
{ {
"name": "@tachybase/schema", "name": "@tachybase/schema",
"version": "0.22.6", "version": "0.22.7",
"license": "Apache-2.0", "license": "Apache-2.0",
"main": "lib/index.js", "main": "lib/index.js",
"types": "lib/index.d.ts", "types": "lib/index.d.ts",

View File

@ -1,6 +1,6 @@
{ {
"name": "@tachybase/sdk", "name": "@tachybase/sdk",
"version": "0.22.6", "version": "0.22.7",
"license": "Apache-2.0", "license": "Apache-2.0",
"main": "lib/index.js", "main": "lib/index.js",
"types": "lib/index.d.ts", "types": "lib/index.d.ts",

View File

@ -1,6 +1,6 @@
{ {
"name": "@tachybase/server", "name": "@tachybase/server",
"version": "0.22.6", "version": "0.22.7",
"license": "Apache-2.0", "license": "Apache-2.0",
"main": "lib/index.js", "main": "lib/index.js",
"types": "./lib/index.d.ts", "types": "./lib/index.d.ts",

View File

@ -1,6 +1,6 @@
{ {
"name": "@tachybase/telemetry", "name": "@tachybase/telemetry",
"version": "0.22.6", "version": "0.22.7",
"description": "telemetry library", "description": "telemetry library",
"license": "Apache-2.0", "license": "Apache-2.0",
"main": "./lib/index.js", "main": "./lib/index.js",

View File

@ -1,6 +1,6 @@
{ {
"name": "@tachybase/test", "name": "@tachybase/test",
"version": "0.22.6", "version": "0.22.7",
"license": "Apache-2.0", "license": "Apache-2.0",
"exports": { "exports": {
".": { ".": {

View File

@ -1,6 +1,6 @@
{ {
"name": "@tachybase/utils", "name": "@tachybase/utils",
"version": "0.22.6", "version": "0.22.7",
"license": "Apache-2.0", "license": "Apache-2.0",
"main": "lib/index.js", "main": "lib/index.js",
"types": "./lib/index.d.ts", "types": "./lib/index.d.ts",

View File

@ -1,6 +1,6 @@
{ {
"name": "@hera/plugin-approval-mobile", "name": "@hera/plugin-approval-mobile",
"version": "0.1.6", "version": "0.1.7",
"main": "dist/server/index.js", "main": "dist/server/index.js",
"devDependencies": { "devDependencies": {
"@ant-design/icons": "~5.3.7", "@ant-design/icons": "~5.3.7",

View File

@ -1,72 +1,72 @@
{ {
"Approval": "Approval", "Add assignee": "Add assignee",
"Approvals": "Approvals", "All": "All",
"Approval blocks": "Approval blocks", "And": "And",
"Launch": "Launch", "Anyone approve or reject as result.": "Anyone approve or reject as result.",
"Todos": "Todos",
"Approval applications": "Approval applications",
"Approval todos": "Approval todos",
"Related approvals": "Related approvals",
"Apply new": "Apply new",
"Apply": "Apply",
"Initiator": "Initiator",
"Application content": "Application content", "Application content": "Application content",
"Approval process": "Approval process", "Apply": "Apply",
"History": "History", "Apply form": "Apply form",
"Apply new": "Apply new",
"Approval": "Approval",
"Approval ID": "Approval ID", "Approval ID": "Approval ID",
"Node": "Node", "Approval applications": "Approval applications",
"Approval blocks": "Approval blocks",
"Approval process": "Approval process",
"Approval todos": "Approval todos",
"Approvals": "Approvals",
"Approve": "Approve",
"Approve when approvals rate greater than the set percentage, reject when rejections rate greater than or equal to (1 - percentage).": "Approve when approvals rate greater than the set percentage, reject when rejections rate greater than or equal to (1 - percentage).",
"Approved": "Approved",
"Are you sure you want to withdraw it?": "Are you sure you want to withdraw it?",
"Assigned": "Assigned",
"Assignee": "Assignees", "Assignee": "Assignees",
"Assignees": "Assignees", "Assignees": "Assignees",
"Add assignee": "Add assignee", "Branch mode": "Branch mode",
"Negotiation mode": "Negotiation mode",
"Or": "Or",
"And": "And",
"Voting": "Voting",
"Anyone approve or reject as result.": "Anyone approve or reject as result.",
"Everyone approve as approved, or any one reject as rejected.": "Everyone approve as approved, or any one reject as rejected.",
"Approve when approvals rate greater than the set percentage, reject when rejections rate greater than or equal to (1 - percentage).": "Approve when approvals rate greater than the set percentage, reject when rejections rate greater than or equal to (1 - percentage).",
"Order": "Order",
"Sequentially": "Sequentially",
"Parallelly": "Parallelly",
"Draft": "Draft",
"Withdraw": "Withdraw",
"Are you sure you want to withdraw it?": "Are you sure you want to withdraw it?",
"Returned": "Returned",
"Submitted": "Submitted",
"Processing": "Processing",
"Approved": "Approved",
"Rejected": "Rejected",
"Approve": "Approve",
"Reject": "Reject",
"Return": "Return",
"Canceled": "Canceled", "Canceled": "Canceled",
"Assigned": "Assigned",
"Pending": "Pending",
"Withdrawn": "Withdrawn",
"Unprocessed": "Unprocessed",
"User interface": "User interface",
"View user interface": "View user interface",
"Configure user interface": "Configure user interface",
"Apply form": "Apply form",
"Withdrawable": "Withdrawable",
"Returnable": "Returnable",
"Comment": "Comment", "Comment": "Comment",
"Configure user interface": "Configure user interface",
"Could run different branch based on result.": "Could run different branch based on result.",
"Disabled": "Disabled",
"Draft": "Draft",
"Duplicate": "Duplicate",
"End on reject": "End on reject",
"Event will be triggered when submitted current workflow bound form action, or new application from approval block.": "Event will be triggered when submitted current workflow bound form action, or new application from approval block.", "Event will be triggered when submitted current workflow bound form action, or new application from approval block.": "Event will be triggered when submitted current workflow bound form action, or new application from approval block.",
"Used to perform manual approval operations within approval workflow, approvers can perform approval action through the to-do list in the approval block, such as approval, rejection or return.": "Used to perform manual approval operations within approval workflow, approvers can perform approval action through the to-do list in the approval block, such as approval, rejection or return.", "Everyone approve as approved, or any one reject as rejected.": "Everyone approve as approved, or any one reject as rejected.",
"Executed": "Executed",
"History": "History",
"If checked, the workflow will be terminated after rejection branch processed.": "If checked, the workflow will be terminated after rejection branch processed.",
"Initiations": "Initiations",
"Initiator": "Initiator",
"Launch": "Launch",
"Negotiation mode": "Negotiation mode",
"Node": "Node",
"Or": "Or",
"Order": "Order",
"Parallelly": "Parallelly",
"Pass mode": "Pass mode", "Pass mode": "Pass mode",
"Passthrough mode": "Passthrough mode", "Passthrough mode": "Passthrough mode",
"When rejected or returned, the workflow will be terminated immediately.": "When rejected or returned, the workflow will be terminated immediately.", "Pending": "Pending",
"Branch mode": "Branch mode", "Processed": "Processed",
"Could run different branch based on result.": "Could run different branch based on result.", "Processing": "Processing",
"End on reject": "End on reject", "ReSubmit": "ReSubmit",
"If checked, the workflow will be terminated after rejection branch processed.": "If checked, the workflow will be terminated after rejection branch processed.", "Reject": "Reject",
"Disabled": "Disabled", "Rejected": "Rejected",
"Related approvals": "Related approvals",
"Return": "Return",
"Returnable": "Returnable",
"Returned": "Returned",
"Sequentially": "Sequentially",
"Submitted": "Submitted",
"Todos": "Todos",
"Trigger data": "Trigger data", "Trigger data": "Trigger data",
"All":"All", "Unprocessed": "Unprocessed",
"Initiations":"Initiations", "Used to perform manual approval operations within approval workflow, approvers can perform approval action through the to-do list in the approval block, such as approval, rejection or return.": "Used to perform manual approval operations within approval workflow, approvers can perform approval action through the to-do list in the approval block, such as approval, rejection or return.",
"UserInitiations":"UserInitiations", "User interface": "User interface",
"Processed":"Processed", "UserInitiations": "UserInitiations",
"Duplicate":"Duplicate", "View user interface": "View user interface",
"Executed":"Executed", "Voting": "Voting",
"ReSubmit":"ReSubmit" "When rejected or returned, the workflow will be terminated immediately.": "When rejected or returned, the workflow will be terminated immediately.",
"Withdraw": "Withdraw",
"Withdrawable": "Withdrawable",
"Withdrawn": "Withdrawn"
} }

View File

@ -1,103 +1,103 @@
{ {
"Approval event": "审批事件", "Aborted": "已终止",
"Approval": "审批", "Actions from any form block can be bound to this workflow for initiating approvals, and the approval process can be handled and tracked in the approval block of a single record which is typically applicable to business data.": "可以将任意表单区块的操作绑定到该工作流,用于发起审批,并在单条数据的审批区块里处理和跟踪审批过程,通常适用于业务数据。",
"Approvals": "审批", "Add assignee": "添加审批人",
"Approval blocks": "审批区块", "All": "全部",
"Launch": "发起", "Allow the initiator to withdraw the approval before the approval starts.": "在审批开始之前,允许发起人撤回审批。",
"Todos": "待办", "Allowed to be withdrawn": "允许撤回",
"Approval applications": "审批申请", "And": "会签",
"Approval todos": "审批待办",
"Related approvals": "相关审批",
"Apply new": "发起新申请",
"Apply": "发起",
"Initiator": "发起人",
"Application content": "申请内容", "Application content": "申请内容",
"Approval process": "审批处理", "Apply": "发起",
"No data yet": "暂无数据", "Apply form": "申请表单",
"Apply new": "发起新申请",
"Approval": "审批",
"Approval ID": "单据编号", "Approval ID": "单据编号",
"Current status": "当前状态", "Approval applications": "审批申请",
"Task node": "任务节点", "Approval blocks": "审批区块",
"Approval event": "审批事件",
"Approval process": "审批处理",
"Approval todos": "审批待办",
"Approvals": "审批",
"Approve": "通过",
"Approved": "通过",
"Approved if the approval rate is greater than the set percentage, otherwise rejected.": "通过率大于设置的百分比时通过,否则否决。",
"Approver's interface": "审批人的操作界面",
"Are you sure you want to withdraw it?": "确定要撤回吗?",
"Assigned": "已分配",
"Assignee": "审批人", "Assignee": "审批人",
"Assignees": "审批人", "Assignees": "审批人",
"Add assignee": "添加审批人", "Branch mode": "分支模式",
"Select assignees": "选择审批人", "Canceled": "取消",
"Query assignees": "查询审批人", "Comment": "意见",
"Negotiation mode": "协商模式", "Could run different branch based on result.": "产生结果后可按结果继续不同的分支。",
"Or": "或签", "Current status": "当前状态",
"And": "会签", "Disabled": "已失效",
"Voting": "投票", "Draft": "草稿",
"The approval or rejection by anyone of them is the result.": "任意一人通过或否决即为结果。", "Duplicate": "抄送我",
"End the workflow after rejection branch": "否决后终止流程",
"Error": "出错",
"Executed": "执行处理",
"Failed": "失败",
"Failed to satisfy node configurations.": "未满足节点配置造成的失败。",
"For initiating approvals, or viewing and manipulating initiated approvals.": "用于发起审批,或者查看和操作已发起的审批。",
"General failed but should do another try.": "执行失败,需重试。",
"Go to configure": "进入配置",
"If it's approved by all, it's approved. If it's rejected by anyone, it's rejected.": "所有人通过才通过,任意一人否决则否决。", "If it's approved by all, it's approved. If it's rejected by anyone, it's rejected.": "所有人通过才通过,任意一人否决则否决。",
"Approved if the approval rate is greater than the set percentage, otherwise rejected.": "通过率大于设置的百分比时通过,否则否决。", "In addition to data blocks, a global approval block can also be used to initiates and processes approvals, which typically applies to administrative data.": "除了数据区块,还可以在全局的审批中心发起和处理审批,这通常适用于行政数据。",
"Initiate and approve in both data blocks and global approval blocks": "在数据区块和审批中心都可以发起和审批",
"Initiate and approve in data blocks only": "仅在数据区块中发起和审批",
"Initiations": "发起申请",
"Initiator": "发起人",
"Initiator's interface": "发起人的操作界面",
"Launch": "发起",
"Manual approval operations within the approval process, the approver can approve in the global approval block or in the approval block of a single record.": "在审批流程内进行人工审批操作,审批人可以在全局的审批区块里进行审批,也可以在单条数据的审批区块里审批。",
"Manually canceled whole execution when waiting.": "等待时被手动取消整个执行。",
"Multiple approvers can approve in any order.": "多个审批人可以任意顺序审批。",
"Multiple approvers in sequential order.": "多个审批人按照排序审批。",
"Negotiation mode": "协商模式",
"No data yet": "暂无数据",
"On going": "进行中",
"Or": "或签",
"Order": "多人处理顺序", "Order": "多人处理顺序",
"Parallelly": "并行", "Parallelly": "并行",
"Multiple approvers can approve in any order.": "多个审批人可以任意顺序审批。",
"Sequentially": "顺序",
"Multiple approvers in sequential order.": "多个审批人按照排序审批。",
"Save draft": "保存草稿",
"Draft": "草稿",
"Withdraw": "撤回",
"Are you sure you want to withdraw it?": "确定要撤回吗?",
"Returned": "退回",
"Submitted": "提交",
"Processing": "处理中",
"Approved": "通过",
"Rejected": "否决",
"Approve": "通过",
"Reject": "否决",
"Return": "退回",
"Canceled": "取消",
"Assigned": "已分配",
"Pending": "待处理",
"Withdrawn": "撤回",
"Unprocessed": "未处理",
"Where to initiate and approve": "发起和审批的位置",
"Initiate and approve in data blocks only": "仅在数据区块中发起和审批",
"Actions from any form block can be bound to this workflow for initiating approvals, and the approval process can be handled and tracked in the approval block of a single record which is typically applicable to business data.": "可以将任意表单区块的操作绑定到该工作流,用于发起审批,并在单条数据的审批区块里处理和跟踪审批过程,通常适用于业务数据。",
"Initiate and approve in both data blocks and global approval blocks": "在数据区块和审批中心都可以发起和审批",
"In addition to data blocks, a global approval block can also be used to initiates and processes approvals, which typically applies to administrative data.": "除了数据区块,还可以在全局的审批中心发起和处理审批,这通常适用于行政数据。",
"Initiator's interface": "发起人的操作界面",
"Approver's interface": "审批人的操作界面",
"Go to configure": "进入配置",
"For initiating approvals, or viewing and manipulating initiated approvals.": "用于发起审批,或者查看和操作已发起的审批。",
"Apply form": "申请表单",
"Allowed to be withdrawn": "允许撤回",
"Allow the initiator to withdraw the approval before the approval starts.": "在审批开始之前,允许发起人撤回审批。",
"Returnable": "可退回",
"Comment": "意见",
"Triggered when an approval request is initiated through an action button or API. Dedicated to the approval process, with exclusive approval node and block for managing documents and tracking processing processes.": "通过操作按钮或 API 发起审批申请时触发。专用于审批流程,有专属的审批节点和区块用于管理单据和追踪处理过程。",
"Manual approval operations within the approval process, the approver can approve in the global approval block or in the approval block of a single record.": "在审批流程内进行人工审批操作,审批人可以在全局的审批区块里进行审批,也可以在单条数据的审批区块里审批。",
"Pass mode": "通过模式", "Pass mode": "通过模式",
"Passthrough mode": "直通模式", "Passthrough mode": "直通模式",
"When rejected or returned, the workflow will be terminated immediately.": "当否决或退回时,工作流将立即终止。", "Pending": "待处理",
"Branch mode": "分支模式", "Processed": "已处理",
"Could run different branch based on result.": "产生结果后可按结果继续不同的分支。", "Processing": "处理中",
"End the workflow after rejection branch": "否决后终止流程", "Query assignees": "查询审批人",
"When checked, the workflow will terminate when the rejection branch ends.": "勾选后,否决分支结束后工作流将终止。",
"Disabled": "已失效",
"Submission may be withdrawn, please try refresh the list.": "提交可能已被撤回,请尝试刷新列表。",
"Trigger data": "触发器数据",
"All":"全部",
"Initiations":"发起申请",
"UserInitiations":"我的发起",
"Processed":"已处理",
"Duplicate":"抄送我",
"Executed":"执行处理",
"On going": "进行中",
"Resolved": "完成",
"Failed": "失败",
"Error": "出错",
"Aborted": "已终止",
"Retry needed": "需重试",
"Triggered but still waiting in queue to execute.": "已触发但仍在队列中等待执行。",
"Started and executing, maybe waiting for an async callback (manual, delay etc.).": "已开始执行,可能在等待异步回调(人工、延时等)。",
"Successfully finished.": "成功完成。",
"Failed to satisfy node configurations.": "未满足节点配置造成的失败。",
"Some node meets error.": "某个节点出错。",
"Running of some node was aborted by program flow.": "某个节点被程序流程终止。",
"Manually canceled whole execution when waiting.": "等待时被手动取消整个执行。",
"Rejected from a manual node.": "被人工节点拒绝继续。",
"General failed but should do another try.": "执行失败,需重试。",
"Queueing": "队列中", "Queueing": "队列中",
"ReSubmit":"重新提交" "ReSubmit": "重新提交",
"Reject": "否决",
"Rejected": "否决",
"Rejected from a manual node.": "被人工节点拒绝继续。",
"Related approvals": "相关审批",
"Resolved": "完成",
"Retry needed": "需重试",
"Return": "退回",
"Returnable": "可退回",
"Returned": "退回",
"Running of some node was aborted by program flow.": "某个节点被程序流程终止。",
"Save draft": "保存草稿",
"Select assignees": "选择审批人",
"Sequentially": "顺序",
"Some node meets error.": "某个节点出错。",
"Started and executing, maybe waiting for an async callback (manual, delay etc.).": "已开始执行,可能在等待异步回调(人工、延时等)。",
"Submission may be withdrawn, please try refresh the list.": "提交可能已被撤回,请尝试刷新列表。",
"Submitted": "提交",
"Successfully finished.": "成功完成。",
"Task node": "任务节点",
"The approval or rejection by anyone of them is the result.": "任意一人通过或否决即为结果。",
"Todos": "待办",
"Trigger data": "触发器数据",
"Triggered but still waiting in queue to execute.": "已触发但仍在队列中等待执行。",
"Triggered when an approval request is initiated through an action button or API. Dedicated to the approval process, with exclusive approval node and block for managing documents and tracking processing processes.": "通过操作按钮或 API 发起审批申请时触发。专用于审批流程,有专属的审批节点和区块用于管理单据和追踪处理过程。",
"Unprocessed": "未处理",
"UserInitiations": "我的发起",
"Voting": "投票",
"When checked, the workflow will terminate when the rejection branch ends.": "勾选后,否决分支结束后工作流将终止。",
"When rejected or returned, the workflow will be terminated immediately.": "当否决或退回时,工作流将立即终止。",
"Where to initiate and approve": "发起和审批的位置",
"Withdraw": "撤回",
"Withdrawn": "撤回"
} }

View File

@ -1,7 +1,7 @@
{ {
"name": "@hera/plugin-core", "name": "@hera/plugin-core",
"displayName": "Hera platform", "displayName": "Hera platform",
"version": "1.8.6", "version": "1.8.7",
"description": "Hera platform", "description": "Hera platform",
"keywords": [ "keywords": [
"System management" "System management"

View File

@ -18,21 +18,21 @@
"Create a record": "Create a record", "Create a record": "Create a record",
"Custom filter": "Custom filter", "Custom filter": "Custom filter",
"Custom option label": "Custom option label", "Custom option label": "Custom option label",
"Delete department": "Delete department",
"Delete": "Delete", "Delete": "Delete",
"Department name": "Department name", "Delete department": "Delete department",
"Department": "Department", "Department": "Department",
"Departments management": "Departments management", "Department name": "Department name",
"Departments": "Departments", "Departments": "Departments",
"Departments management": "Departments management",
"Edit department": "Edit department", "Edit department": "Edit department",
"Group block": "Group block",
"Group": "Group", "Group": "Group",
"Group block": "Group block",
"Hera integration": "Hera integration", "Hera integration": "Hera integration",
"HomePage Config": "HomePage Config", "HomePage Config": "HomePage Config",
"Last month": "Last month", "Last month": "Last month",
"Link manager": "Link manager", "Link manager": "Link manager",
"Main department": "Main department",
"Main": "Main", "Main": "Main",
"Main department": "Main department",
"Mobile UI": "Mobile UI", "Mobile UI": "Mobile UI",
"Navigate to new page": "Navigate to new page", "Navigate to new page": "Navigate to new page",
"New department": "New department", "New department": "New department",
@ -43,9 +43,9 @@
"Pagination": "Pagination", "Pagination": "Pagination",
"Parameters": "Parameters", "Parameters": "Parameters",
"Pick a data entry for viewing and editing": "Pick a data entry for viewing and editing", "Pick a data entry for viewing and editing": "Pick a data entry for viewing and editing",
"Please select": "Please select",
"Please select departments": "Please select departments", "Please select departments": "Please select departments",
"Please select members": "Please select members", "Please select members": "Please select members",
"Please select": "Please select",
"Remove department": "Remove department", "Remove department": "Remove department",
"Remove departments": "Remove departments", "Remove departments": "Remove departments",
"Remove member": "Remove member", "Remove member": "Remove member",
@ -63,10 +63,10 @@
"Something went wrong. Please contact the developer to resolve the issue.": "Something went wrong. Please contact the developer to resolve the issue.", "Something went wrong. Please contact the developer to resolve the issue.": "Something went wrong. Please contact the developer to resolve the issue.",
"Superior department": "Superior department", "Superior department": "Superior department",
"System setting": "System setting", "System setting": "System setting",
"Theme": "Theme",
"The department has members, please remove them first": "The department has members, please remove them first", "The department has members, please remove them first": "The department has members, please remove them first",
"The department has sub-departments, please delete them first": "The department has sub-departments, please delete them first", "The department has sub-departments, please delete them first": "The department has sub-departments, please delete them first",
"The following selected requests all trigger interception on submission": "The following selected requests all trigger interception on submission", "The following selected requests all trigger interception on submission": "The following selected requests all trigger interception on submission",
"Theme": "Theme",
"Third-party integration configuration": "Third-party integration configuration", "Third-party integration configuration": "Third-party integration configuration",
"This field is currently not supported for use in form blocks.": "This field is currently not supported for use in form blocks.", "This field is currently not supported for use in form blocks.": "This field is currently not supported for use in form blocks.",
"This month": "This month", "This month": "This month",
@ -75,9 +75,9 @@
"Triggered before submitting a create, update, or delete request to a collection, so that data validation, logical judgment, etc., can be performed before executing the request, and then either approving the request or rejecting the request by using the \"End process\" node.": "Triggered before submitting a create, update, or delete request to a collection, so that data validation, logical judgment, etc., can be performed before executing the request, and then either approving the request or rejecting the request by using the \"End process\" node.", "Triggered before submitting a create, update, or delete request to a collection, so that data validation, logical judgment, etc., can be performed before executing the request, and then either approving the request or rejecting the request by using the \"End process\" node.": "Triggered before submitting a create, update, or delete request to a collection, so that data validation, logical judgment, etc., can be performed before executing the request, and then either approving the request or rejecting the request by using the \"End process\" node.",
"Triggered only when a form bound to this workflow is submitted": "Triggered only when a form bound to this workflow is submitted", "Triggered only when a form bound to this workflow is submitted": "Triggered only when a form bound to this workflow is submitted",
"Update a record": "Update a record", "Update a record": "Update a record",
"Webhook manager": "Webhook manager",
"User acted": "User acted", "User acted": "User acted",
"Values submitted": "Values submitted", "Values submitted": "Values submitted",
"Webhook manager": "Webhook manager",
"classical": "classical", "classical": "classical",
"component": "component", "component": "component",
"default": "default", "default": "default",

View File

@ -20,21 +20,21 @@
"Custom option label": "自定义选项标签", "Custom option label": "自定义选项标签",
"Delete department": "删除部门", "Delete department": "删除部门",
"Delete record action": "删除记录操作", "Delete record action": "删除记录操作",
"Department name": "部门名称",
"Department": "部门", "Department": "部门",
"Departments management": "部门管理", "Department name": "部门名称",
"Departments": "部门", "Departments": "部门",
"Departments management": "部门管理",
"Edit department": "编辑部门", "Edit department": "编辑部门",
"Global mode, triggered before executing the following actions": "全局模式,以下操作执行前都触发", "Global mode, triggered before executing the following actions": "全局模式,以下操作执行前都触发",
"Group block": "汇总区块",
"Group": "汇总", "Group": "汇总",
"Group block": "汇总区块",
"Hera integration": "赫拉集成", "Hera integration": "赫拉集成",
"HomePage Config": "主页配置", "HomePage Config": "主页配置",
"Last month": "上月", "Last month": "上月",
"Link manager": "链接管理器", "Link manager": "链接管理器",
"Local mode, triggered before executing the actions bound to this workflow": "局部模式,绑定该工作流的操作执行前触发", "Local mode, triggered before executing the actions bound to this workflow": "局部模式,绑定该工作流的操作执行前触发",
"Main department": "主属部门",
"Main": "主属部门", "Main": "主属部门",
"Main department": "主属部门",
"Mobile UI": "移动端页面", "Mobile UI": "移动端页面",
"Navigate to new page": "导航到新页面", "Navigate to new page": "导航到新页面",
"New department": "新建部门", "New department": "新建部门",
@ -45,9 +45,9 @@
"Pagination": "分页", "Pagination": "分页",
"Parameters": "参数", "Parameters": "参数",
"Pick a data entry for viewing and editing": "选择一条数据用于查看与编辑", "Pick a data entry for viewing and editing": "选择一条数据用于查看与编辑",
"Please select": "请选择",
"Please select departments": "请选择部门", "Please select departments": "请选择部门",
"Please select members": "请选择成员", "Please select members": "请选择成员",
"Please select": "请选择",
"Pre-action event": "操作前事件", "Pre-action event": "操作前事件",
"Remove department": "移除部门", "Remove department": "移除部门",
"Remove departments": "移除部门", "Remove departments": "移除部门",
@ -67,17 +67,17 @@
"System setting": "系统设置", "System setting": "系统设置",
"The department has members, please remove them first": "部门下有成员,请先移除", "The department has members, please remove them first": "部门下有成员,请先移除",
"The department has sub-departments, please delete them first": "部门下有子部门,请先删除子部门", "The department has sub-departments, please delete them first": "部门下有子部门,请先删除子部门",
"Theme": "主题",
"Third-party integration configuration": "第三方集成配置", "Third-party integration configuration": "第三方集成配置",
"This field is currently not supported for use in form blocks.": "该字段目前不支持在表单区块中使用。", "This field is currently not supported for use in form blocks.": "该字段目前不支持在表单区块中使用。",
"This month": "本月", "This month": "本月",
"This year": "今年", "This year": "今年",
"Theme": "主题",
"Trigger mode": "触发模式", "Trigger mode": "触发模式",
"Triggered before the execution of a request initiated through an action button or API, such as before adding, updating, or deleting data. Suitable for data validation and logic judgment before action, and the request could be rejected by using the \"End process\" node.": "通过操作按钮或 API 发起请求并在执行前触发,比如新增、更新、删除数据之前。适用于在操作前进行数据验证、逻辑判断,并可通过“结束节点”来拦截请求。", "Triggered before the execution of a request initiated through an action button or API, such as before adding, updating, or deleting data. Suitable for data validation and logic judgment before action, and the request could be rejected by using the \"End process\" node.": "通过操作按钮或 API 发起请求并在执行前触发,比如新增、更新、删除数据之前。适用于在操作前进行数据验证、逻辑判断,并可通过“结束节点”来拦截请求。",
"Update record action": "更新记录操作", "Update record action": "更新记录操作",
"Webhook manager": "Webhook 管理",
"User acted": "操作者", "User acted": "操作者",
"Values submitted": "提交的值对象", "Values submitted": "提交的值对象",
"Webhook manager": "Webhook 管理",
"classical": "经典版", "classical": "经典版",
"component": "组件", "component": "组件",
"default": "默认", "default": "默认",

View File

@ -1,6 +1,6 @@
{ {
"name": "@hera/plugin-homepage", "name": "@hera/plugin-homepage",
"version": "0.1.6", "version": "0.1.7",
"main": "dist/server/index.js", "main": "dist/server/index.js",
"devDependencies": { "devDependencies": {
"antd": "5.19.4" "antd": "5.19.4"

View File

@ -1,7 +1,7 @@
{ {
"name": "@hera/plugin-rental", "name": "@hera/plugin-rental",
"displayName": "professional construction materials rental system - customized based on hera", "displayName": "professional construction materials rental system - customized based on hera",
"version": "1.8.6", "version": "1.8.7",
"description": "Offering a standardized leasing management system, encompassing comprehensive administration from materials to contracts to labor personnel, while providing a robust financial management mechanism, and real-time monitoring of the operational capacity of the leasing system.", "description": "Offering a standardized leasing management system, encompassing comprehensive administration from materials to contracts to labor personnel, while providing a robust financial management mechanism, and real-time monitoring of the operational capacity of the leasing system.",
"keywords": [ "keywords": [
"System management" "System management"

View File

@ -1,22 +1,22 @@
{ {
"Add new style": "Add new style", "Add new style": "Add new style",
"Name": "Name", "Add to checklist": "Add to checklist",
"Margin": "Margin", "Classical": "Classical",
"Paper size": "Paper size",
"Paper orientation": "Paper orientation",
"Column style": "Column style", "Column style": "Column style",
"Comment style": "Comment style", "Comment style": "Comment style",
"Landscape": "Landscape",
"Portrait": "Portrait",
"Single column": "Single column",
"Double column": "Double column", "Double column": "Double column",
"Classical": "Classical",
"Unified": "Unified",
"Save": "Save",
"Font size": "Font size", "Font size": "Font size",
"record": "record", "Landscape": "Landscape",
"waybill": "waybill", "Margin": "Margin",
"settlement": "settlement", "Name": "Name",
"Paper orientation": "Paper orientation",
"Paper size": "Paper size",
"Portrait": "Portrait",
"Save": "Save",
"Single column": "Single column",
"Style setup": "Style setup", "Style setup": "Style setup",
"Add to checklist": "Add to checklist" "Unified": "Unified",
"record": "record",
"settlement": "settlement",
"waybill": "waybill"
} }

View File

@ -1,22 +1,22 @@
{ {
"Add new style": "添加新样式", "Add new style": "添加新样式",
"Name": "名称", "Add to checklist": "添加到检查列表",
"Margin": "外边距", "Classical": "经典",
"Paper size": "纸张大小",
"Paper orientation": "纸张方向",
"Column style": "列样式", "Column style": "列样式",
"Comment style": "备注样式", "Comment style": "备注样式",
"Landscape": "横向",
"Portrait": "竖向",
"Single column": "单列",
"Double column": "双列", "Double column": "双列",
"Classical": "经典",
"Unified": "统一备注",
"Save": "保存",
"Font size": "字体大小", "Font size": "字体大小",
"record": "记录单", "Landscape": "横向",
"waybill": "运输单", "Margin": "外边距",
"settlement": "结算单", "Name": "名称",
"Paper orientation": "纸张方向",
"Paper size": "纸张大小",
"Portrait": "竖向",
"Save": "保存",
"Single column": "单列",
"Style setup": "样式配置", "Style setup": "样式配置",
"Add to checklist": "添加到检查列表" "Unified": "统一备注",
"record": "记录单",
"settlement": "结算单",
"waybill": "运输单"
} }

View File

@ -1,7 +1,7 @@
{ {
"name": "@hera/plugin-sancongtou", "name": "@hera/plugin-sancongtou",
"displayName": "Mobile client: Sancongtou Customization", "displayName": "Mobile client: Sancongtou Customization",
"version": "0.1.6", "version": "0.1.7",
"description": "Provide mobile client customization for the sancongtou project.", "description": "Provide mobile client customization for the sancongtou project.",
"main": "dist/server/index.js", "main": "dist/server/index.js",
"dependencies": { "dependencies": {

View File

@ -1,7 +1,7 @@
{ {
"name": "@tachybase/plugin-acl", "name": "@tachybase/plugin-acl",
"displayName": "Access control", "displayName": "Access control",
"version": "0.22.6", "version": "0.22.7",
"description": "Based on roles, resources, and actions, access control can precisely manage interface configuration permissions, data operation permissions, menu access permissions, and plugin permissions.", "description": "Based on roles, resources, and actions, access control can precisely manage interface configuration permissions, data operation permissions, menu access permissions, and plugin permissions.",
"keywords": [ "keywords": [
"Users & permissions" "Users & permissions"

View File

@ -1,6 +1,6 @@
{ {
"The current user has no roles. Please try another account.": "The current user has no roles. Please try another account.",
"The user role does not exist. Please try signing in again": "The user role does not exist. Please try signing in again",
"New role": "New role", "New role": "New role",
"Permissions": "Permissions" "Permissions": "Permissions",
"The current user has no roles. Please try another account.": "The current user has no roles. Please try another account.",
"The user role does not exist. Please try signing in again": "The user role does not exist. Please try signing in again"
} }

View File

@ -1,4 +1,4 @@
{ {
"The current user has no roles. Please try another account.": "현재 사용자에게 역할이 없습니다. 다른 계정을 시도해주세요.", "The current user has no roles. Please try another account.": "현재 사용자에게 역할이 없습니다. 다른 계정을 시도해주세요.",
"The user role does not exist. Please try signing in again": "사용자 역할이 존재하지 않습니다. 다시 로그인을 시도해주세요." "The user role does not exist. Please try signing in again": "사용자 역할이 존재하지 않습니다. 다시 로그인을 시도해주세요."
} }

View File

@ -1,11 +1,11 @@
{ {
"The current user has no roles. Please try another account.": "当前用户没有角色,请使用其他账号。", "Data sources": "数据源",
"The user role does not exist. Please try signing in again": "用户角色不存在,请尝试重新登录。",
"New role": "新建角色",
"Permissions": "权限",
"Roles & Permissions": "角色和权限",
"General": "通用", "General": "通用",
"Menu": "菜单", "Menu": "菜单",
"New role": "新建角色",
"Permissions": "权限",
"Plugin settings": "插件设置", "Plugin settings": "插件设置",
"Data sources": "数据源" "Roles & Permissions": "角色和权限",
"The current user has no roles. Please try another account.": "当前用户没有角色,请使用其他账号。",
"The user role does not exist. Please try signing in again": "用户角色不存在,请尝试重新登录。"
} }

View File

@ -1,7 +1,7 @@
{ {
"name": "@tachybase/plugin-action-bulk-edit", "name": "@tachybase/plugin-action-bulk-edit",
"displayName": "Action: Batch edit", "displayName": "Action: Batch edit",
"version": "0.22.6", "version": "0.22.7",
"description": "Batch edit all records or selected records.", "description": "Batch edit all records or selected records.",
"keywords": [ "keywords": [
"Actions" "Actions"

View File

@ -1,4 +1,4 @@
{ {
"Bulk edit": "대량 편집", "Bulk edit": "대량 편집",
"Data will be updated": "데이터가 업데이트됩니다" "Data will be updated": "데이터가 업데이트됩니다"
} }

View File

@ -1,4 +1,4 @@
{ {
"Bulk edit": "Edição em massa", "Bulk edit": "Edição em massa",
"Data will be updated": "Os dados serão atualizados" "Data will be updated": "Os dados serão atualizados"
} }

View File

@ -1,7 +1,7 @@
{ {
"name": "@tachybase/plugin-action-bulk-update", "name": "@tachybase/plugin-action-bulk-update",
"displayName": "Action: Batch update", "displayName": "Action: Batch update",
"version": "0.22.6", "version": "0.22.7",
"description": "Batch update all records or selected records.", "description": "Batch update all records or selected records.",
"keywords": [ "keywords": [
"Actions" "Actions"

View File

@ -1,7 +1,7 @@
{ {
"name": "@tachybase/plugin-action-duplicate", "name": "@tachybase/plugin-action-duplicate",
"displayName": "Action: Duplicate record", "displayName": "Action: Duplicate record",
"version": "0.22.6", "version": "0.22.7",
"description": "Duplicate a record, you can either duplicate it into a form and edit it before saving it, or you can duplicate it directly to generate a new record.", "description": "Duplicate a record, you can either duplicate it into a form and edit it before saving it, or you can duplicate it directly to generate a new record.",
"keywords": [ "keywords": [
"Actions" "Actions"

View File

@ -1,7 +1,7 @@
{ {
"name": "@tachybase/plugin-action-print", "name": "@tachybase/plugin-action-print",
"displayName": "Action: Print", "displayName": "Action: Print",
"version": "0.22.6", "version": "0.22.7",
"description": "Calls the browser's print function to print a record.", "description": "Calls the browser's print function to print a record.",
"keywords": [ "keywords": [
"Actions" "Actions"

View File

@ -1,6 +1,6 @@
{ {
"name": "@tachybase/plugin-adapter-bullmq", "name": "@tachybase/plugin-adapter-bullmq",
"version": "0.22.6", "version": "0.22.7",
"main": "dist/server/index.js", "main": "dist/server/index.js",
"devDependencies": { "devDependencies": {
"@bull-board/api": "^5.21.1", "@bull-board/api": "^5.21.1",

View File

@ -1,7 +1,7 @@
{ {
"name": "@tachybase/plugin-api-doc", "name": "@tachybase/plugin-api-doc",
"displayName": "API documentation", "displayName": "API documentation",
"version": "0.22.6", "version": "0.22.7",
"description": "An OpenAPI documentation generator for TachyBase HTTP API.", "description": "An OpenAPI documentation generator for TachyBase HTTP API.",
"license": "Apache-2.0", "license": "Apache-2.0",
"main": "./dist/server/index.js", "main": "./dist/server/index.js",

View File

@ -1,5 +1,5 @@
{ {
"API documentation": "API 문서", "API documentation": "API 문서",
"Documentation": "문서", "Documentation": "문서",
"Select a definition": "정의 선택" "Select a definition": "정의 선택"
} }

View File

@ -1,7 +1,7 @@
{ {
"name": "@tachybase/plugin-api-keys", "name": "@tachybase/plugin-api-keys",
"displayName": "Auth: API keys", "displayName": "Auth: API keys",
"version": "0.22.6", "version": "0.22.7",
"description": "Allows users to use API key to access application's HTTP API", "description": "Allows users to use API key to access application's HTTP API",
"keywords": [ "keywords": [
"Authentication" "Authentication"

View File

@ -1,21 +1,21 @@
{ {
"API keys": "API keys",
"API key created successfully": "API key created successfully", "API key created successfully": "API key created successfully",
"Make sure to copy your personal access key now as you will not be able to see this again.": "Make sure to copy your personal access key now as you will not be able to see this again.", "API keys": "API keys",
"Key name": "Key name",
"Expiration": "Expiration",
"Delete API key": "Delete API key",
"Role": "Role",
"Keys manager": "Keys manager",
"Created at": "Created at",
"Add API key": "Add API key", "Add API key": "Add API key",
"Never": "Never", "Allow only your own roles to be selected": "Allow only your own roles to be selected",
"Created at": "Created at",
"Custom": "Custom", "Custom": "Custom",
"Delete API key": "Delete API key",
"Expiration": "Expiration",
"Key name": "Key name",
"Keys manager": "Keys manager",
"Make sure to copy your personal access key now as you will not be able to see this again.": "Make sure to copy your personal access key now as you will not be able to see this again.",
"Never": "Never",
"Never expires": "Never expires", "Never expires": "Never expires",
"Role": "Role",
"Role not found": "Role not found",
"1 Day": "1 Day", "1 Day": "1 Day",
"7 Days": "7 Days", "7 Days": "7 Days",
"30 Days": "30 Days", "30 Days": "30 Days",
"90 Days": "90 Days", "90 Days": "90 Days"
"Role not found": "Role not found",
"Allow only your own roles to be selected": "Allow only your own roles to be selected"
} }

View File

@ -1,21 +1,21 @@
{ {
"API keys": "API 키",
"API key created successfully": "API 키가 성공적으로 생성되었습니다", "API key created successfully": "API 키가 성공적으로 생성되었습니다",
"Make sure to copy your personal access key now as you will not be able to see this again.": "이제 개인 액세스 키를 복사해두십시오. 이후에는 다시 확인할 수 없습니다.", "API keys": "API 키",
"Key name": "키 이름",
"Expiration": "만료",
"Delete API key": "API 키 삭제",
"Role": "역할",
"Keys manager": "키 관리자",
"Created at": "생성일",
"Add API key": "API 키 추가", "Add API key": "API 키 추가",
"Never": "영원히", "Allow only your own roles to be selected": "자신의 역할만 선택할 수 있도록 허용",
"Created at": "생성일",
"Custom": "사용자 설정", "Custom": "사용자 설정",
"Delete API key": "API 키 삭제",
"Expiration": "만료",
"Key name": "키 이름",
"Keys manager": "키 관리자",
"Make sure to copy your personal access key now as you will not be able to see this again.": "이제 개인 액세스 키를 복사해두십시오. 이후에는 다시 확인할 수 없습니다.",
"Never": "영원히",
"Never expires": "만료되지 않음", "Never expires": "만료되지 않음",
"Role": "역할",
"Role not found": "역할을 찾을 수 없음",
"1 Day": "1 일", "1 Day": "1 일",
"7 Days": "7 일", "7 Days": "7 일",
"30 Days": "30 일", "30 Days": "30 일",
"90 Days": "90 일", "90 Days": "90 일"
"Role not found": "역할을 찾을 수 없음",
"Allow only your own roles to be selected": "자신의 역할만 선택할 수 있도록 허용"
} }

View File

@ -1,21 +1,21 @@
{ {
"API keys": "API 密钥",
"API key created successfully": "API 密钥创建成功", "API key created successfully": "API 密钥创建成功",
"Make sure to copy your personal access key now as you will not be able to see this again.": "请确保现在复制你的个人访问密钥,因为你将无法再次看到这个密钥。", "API keys": "API 密钥",
"Key name": "密钥名称",
"Expiration": "过期时间",
"Delete API key": "删除 API 密钥",
"Role": "角色",
"Keys manager": "密钥管理",
"Created at": "创建时间",
"Add API key": "添加 API 密钥", "Add API key": "添加 API 密钥",
"Never": "永不", "Allow only your own roles to be selected": "只允许选择你自己拥有的角色",
"Created at": "创建时间",
"Custom": "自定义", "Custom": "自定义",
"Delete API key": "删除 API 密钥",
"Expiration": "过期时间",
"Key name": "密钥名称",
"Keys manager": "密钥管理",
"Make sure to copy your personal access key now as you will not be able to see this again.": "请确保现在复制你的个人访问密钥,因为你将无法再次看到这个密钥。",
"Never": "永不",
"Never expires": "永不过期", "Never expires": "永不过期",
"Role": "角色",
"Role not found": "角色不存在",
"1 Day": "1 天", "1 Day": "1 天",
"7 Days": "7 天", "7 Days": "7 天",
"30 Days": "30 天", "30 Days": "30 天",
"90 Days": "90 天", "90 Days": "90 天"
"Role not found": "角色不存在",
"Allow only your own roles to be selected": "只允许选择你自己拥有的角色"
} }

View File

@ -1,7 +1,7 @@
{ {
"name": "@tachybase/plugin-audit-logs", "name": "@tachybase/plugin-audit-logs",
"displayName": "Audit logs", "displayName": "Audit logs",
"version": "0.22.6", "version": "0.22.7",
"description": "Audit logs.", "description": "Audit logs.",
"keywords": [ "keywords": [
"System management" "System management"

View File

@ -9,9 +9,9 @@
"Audit logs": "Audit logs", "Audit logs": "Audit logs",
"Before change": "Before change", "Before change": "Before change",
"Cancel": "Cancel", "Cancel": "Cancel",
"Collection": "Collection",
"Collection display name": "Collection display name", "Collection display name": "Collection display name",
"Collection name": "Collection name", "Collection name": "Collection name",
"Collection": "Collection",
"Collections": "Collections", "Collections": "Collections",
"Column width": "Column width", "Column width": "Column width",
"Configure actions": "Configure actions", "Configure actions": "Configure actions",
@ -20,25 +20,25 @@
"Created at": "Created at", "Created at": "Created at",
"Created by": "Created by", "Created by": "Created by",
"Data changes": "Data changes", "Data changes": "Data changes",
"Delete record": "Delete record",
"Delete": "Delete", "Delete": "Delete",
"Details of changes": "Details of changes", "Delete record": "Delete record",
"Details": "Details", "Details": "Details",
"Display fields": "Display fields", "Details of changes": "Details of changes",
"Display association fields": "Display association fields", "Display association fields": "Display association fields",
"Display fields": "Display fields",
"Enable actions": "Enable actions", "Enable actions": "Enable actions",
"Field": "Field",
"Field display name": "Field display name", "Field display name": "Field display name",
"Field value changes": "Field value changes", "Field value changes": "Field value changes",
"Field": "Field",
"Filter": "Filter", "Filter": "Filter",
"Insert": "Insert", "Insert": "Insert",
"Record ID": "Record ID", "Record ID": "Record ID",
"Records per page": "Records per page", "Records per page": "Records per page",
"Refresh": "Refresh", "Refresh": "Refresh",
"Submit": "Submit", "Submit": "Submit",
"Update record": "Update record",
"Update": "Update", "Update": "Update",
"Update record": "Update record",
"User": "User", "User": "User",
"View record": "View record", "View": "View",
"View": "View" "View record": "View record"
} }

View File

@ -1,7 +1,7 @@
{ {
"name": "@tachybase/plugin-auth", "name": "@tachybase/plugin-auth",
"displayName": "Authentication", "displayName": "Authentication",
"version": "0.22.6", "version": "0.22.7",
"description": "User authentication management, including password, SMS, and support for Single Sign-On (SSO) protocols, with extensibility.", "description": "User authentication management, including password, SMS, and support for Single Sign-On (SSO) protocols, with extensibility.",
"keywords": [ "keywords": [
"Authentication" "Authentication"

View File

@ -1,26 +1,26 @@
{ {
"Allow to sign in with": "Allow to sign in with",
"Allow to sign up": "Allow to sign up",
"Auth Type": "Auth Type", "Auth Type": "Auth Type",
"Authenticators": "Authenticators", "Auth UID": "Auth UID",
"Authentication": "Authentication", "Authentication": "Authentication",
"Authenticators": "Authenticators",
"No authentication methods available.": "No authentication methods available.",
"Not a valid cellphone number, please re-enter": "Not a valid cellphone number, please re-enter",
"Not allowed to sign up": "Not allowed to sign up",
"Please enter a valid email": "Please enter a valid email",
"Please enter a valid username": "Please enter a valid username",
"Please enter your username or email": "Please enter your username or email",
"Please keep and enable at least one authenticator": "Please keep and enable at least one authenticator",
"SMS": "SMS",
"Sign in via email": "Sign in via email", "Sign in via email": "Sign in via email",
"Sign in via password": "Sign in via password", "Sign in via password": "Sign in via password",
"Not allowed to sign up": "Not allowed to sign up", "Sign-in": "Sign-in",
"Allow to sign up": "Allow to sign up", "The authentication allows users to sign in via username or email.": "The authentication allows users to sign in via username or email.",
"The username or email is incorrect, please re-enter": "The username or email is incorrect, please re-enter", "The password is inconsistent, please re-enter": "The password is inconsistent, please re-enter",
"The password is incorrect, please re-enter": "The password is incorrect, please re-enter", "The password is incorrect, please re-enter": "The password is incorrect, please re-enter",
"Not a valid cellphone number, please re-enter": "Not a valid cellphone number, please re-enter",
"The phone number has been registered, please login directly": "The phone number has been registered, please login directly", "The phone number has been registered, please login directly": "The phone number has been registered, please login directly",
"The phone number is not registered, please register first": "The phone number is not registered, please register first", "The phone number is not registered, please register first": "The phone number is not registered, please register first",
"Please keep and enable at least one authenticator": "Please keep and enable at least one authenticator", "The username or email is incorrect, please re-enter": "The username or email is incorrect, please re-enter",
"Allow to sign in with": "Allow to sign in with", "Username/Email": "Username/Email"
"Please enter a valid username": "Please enter a valid username",
"Please enter a valid email": "Please enter a valid email",
"Please enter your username or email": "Please enter your username or email",
"SMS": "SMS",
"Username/Email": "Username/Email",
"Auth UID": "Auth UID",
"The authentication allows users to sign in via username or email.": "The authentication allows users to sign in via username or email.",
"No authentication methods available.": "No authentication methods available.",
"The password is inconsistent, please re-enter": "The password is inconsistent, please re-enter",
"Sign-in": "Sign-in"
} }

View File

@ -1,26 +1,26 @@
{ {
"Allow to sign in with": "다음으로 로그인 허용",
"Allow to sign up": "가입 허용",
"Auth Type": "인증 유형", "Auth Type": "인증 유형",
"Authenticators": "인증기", "Auth UID": "인증 UID",
"Authentication": "인증", "Authentication": "인증",
"Authenticators": "인증기",
"No authentication methods available.": "사용 가능한 인증 방법이 없습니다.",
"Not a valid cellphone number, please re-enter": "유효하지 않은 휴대폰 번호입니다. 다시 입력하세요.",
"Not allowed to sign up": "가입할 수 없음",
"Please enter a valid email": "유효한 이메일을 입력하세요.",
"Please enter a valid username": "유효한 사용자 이름을 입력하세요.",
"Please enter your username or email": "사용자 이름 또는 이메일을 입력하세요.",
"Please keep and enable at least one authenticator": "최소한 하나의 인증기를 유지하고 활성화하세요.",
"SMS": "SMS",
"Sign in via email": "이메일로 로그인", "Sign in via email": "이메일로 로그인",
"Sign in via password": "비밀번호로 로그인", "Sign in via password": "비밀번호로 로그인",
"Not allowed to sign up": "가입할 수 없음", "Sign-in": "로그인",
"Allow to sign up": "가입 허용", "The authentication allows users to sign in via username or email.": "이 인증 방식을 사용하면 사용자가 사용자 이름 또는 이메일로 로그인할 수 있습니다.",
"The username or email is incorrect, please re-enter": "사용자 이름 또는 이메일이 잘못되었습니다. 다시 입력하세요.", "The password is inconsistent, please re-enter": "비밀번호가 일치하지 않습니다. 다시 입력하세요.",
"The password is incorrect, please re-enter": "비밀번호가 잘못되었습니다. 다시 입력하세요.", "The password is incorrect, please re-enter": "비밀번호가 잘못되었습니다. 다시 입력하세요.",
"Not a valid cellphone number, please re-enter": "유효하지 않은 휴대폰 번호입니다. 다시 입력하세요.",
"The phone number has been registered, please login directly": "전화번호가 이미 등록되어 있습니다. 직접 로그인하세요.", "The phone number has been registered, please login directly": "전화번호가 이미 등록되어 있습니다. 직접 로그인하세요.",
"The phone number is not registered, please register first": "전화번호가 등록되어 있지 않습니다. 먼저 등록하세요.", "The phone number is not registered, please register first": "전화번호가 등록되어 있지 않습니다. 먼저 등록하세요.",
"Please keep and enable at least one authenticator": "최소한 하나의 인증기를 유지하고 활성화하세요.", "The username or email is incorrect, please re-enter": "사용자 이름 또는 이메일이 잘못되었습니다. 다시 입력하세요.",
"Allow to sign in with": "다음으로 로그인 허용", "Username/Email": "사용자 이름/이메일"
"Please enter a valid username": "유효한 사용자 이름을 입력하세요.",
"Please enter a valid email": "유효한 이메일을 입력하세요.",
"Please enter your username or email": "사용자 이름 또는 이메일을 입력하세요.",
"SMS": "SMS",
"Username/Email": "사용자 이름/이메일",
"Auth UID": "인증 UID",
"The authentication allows users to sign in via username or email.": "이 인증 방식을 사용하면 사용자가 사용자 이름 또는 이메일로 로그인할 수 있습니다.",
"No authentication methods available.": "사용 가능한 인증 방법이 없습니다.",
"The password is inconsistent, please re-enter": "비밀번호가 일치하지 않습니다. 다시 입력하세요.",
"Sign-in": "로그인"
} }

Some files were not shown because too many files have changed in this diff Show More