openxiangda 2.5.0 → 2.6.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/browser/application.d.ts +3 -1
- package/dist/browser/application.d.ts.map +1 -1
- package/dist/browser/application.js +2 -2
- package/dist/browser/application.js.map +1 -1
- package/dist/browser/components/platform-fields/DateTimeField.d.ts +5 -3
- package/dist/browser/components/platform-fields/DateTimeField.d.ts.map +1 -1
- package/dist/browser/components/platform-fields/DateTimeField.js +24 -7
- package/dist/browser/components/platform-fields/DateTimeField.js.map +1 -1
- package/dist/browser/components/platform-fields/MobileDateTimeField.d.ts +2 -1
- package/dist/browser/components/platform-fields/MobileDateTimeField.d.ts.map +1 -1
- package/dist/browser/components/platform-fields/MobileDateTimeField.js +10 -1
- package/dist/browser/components/platform-fields/MobileDateTimeField.js.map +1 -1
- package/dist/browser/components/platform-fields/MobileZonedDateTimeField.d.ts +6 -0
- package/dist/browser/components/platform-fields/MobileZonedDateTimeField.d.ts.map +1 -0
- package/dist/browser/components/platform-fields/MobileZonedDateTimeField.js +68 -0
- package/dist/browser/components/platform-fields/MobileZonedDateTimeField.js.map +1 -0
- package/dist/browser/components/platform-fields/SignatureField.d.ts.map +1 -1
- package/dist/browser/components/platform-fields/SignatureField.js +2 -1
- package/dist/browser/components/platform-fields/SignatureField.js.map +1 -1
- package/dist/browser/components/platform-fields/ZonedDateTimeField.d.ts +12 -0
- package/dist/browser/components/platform-fields/ZonedDateTimeField.d.ts.map +1 -0
- package/dist/browser/components/platform-fields/ZonedDateTimeField.js +81 -0
- package/dist/browser/components/platform-fields/ZonedDateTimeField.js.map +1 -0
- package/dist/browser/components/platform-fields/zoned-date-time.d.ts +25 -0
- package/dist/browser/components/platform-fields/zoned-date-time.d.ts.map +1 -0
- package/dist/browser/components/platform-fields/zoned-date-time.js +91 -0
- package/dist/browser/components/platform-fields/zoned-date-time.js.map +1 -0
- package/dist/browser/components/resource/GeneratedResourceCrud.d.ts.map +1 -1
- package/dist/browser/components/resource/GeneratedResourceCrud.js +5 -3
- package/dist/browser/components/resource/GeneratedResourceCrud.js.map +1 -1
- package/dist/browser/components/resource/RecordChangeHistory.d.ts.map +1 -1
- package/dist/browser/components/resource/RecordChangeHistory.js +2 -1
- package/dist/browser/components/resource/RecordChangeHistory.js.map +1 -1
- package/dist/browser/components/resource/RecordDetailFrame.d.ts +1 -1
- package/dist/browser/components/resource/RecordDetailFrame.d.ts.map +1 -1
- package/dist/browser/components/resource/RecordDetailFrame.js +5 -3
- package/dist/browser/components/resource/RecordDetailFrame.js.map +1 -1
- package/dist/browser/components/resource/ResourceFormDrafts.d.ts.map +1 -1
- package/dist/browser/components/resource/ResourceFormDrafts.js +2 -1
- package/dist/browser/components/resource/ResourceFormDrafts.js.map +1 -1
- package/dist/browser/components/resource/useResourceFormDrafts.d.ts.map +1 -1
- package/dist/browser/components/resource/useResourceFormDrafts.js +3 -1
- package/dist/browser/components/resource/useResourceFormDrafts.js.map +1 -1
- package/dist/browser/components/todo/ApplicationTodoCenterPage.d.ts.map +1 -1
- package/dist/browser/components/todo/ApplicationTodoCenterPage.js +8 -7
- package/dist/browser/components/todo/ApplicationTodoCenterPage.js.map +1 -1
- package/dist/browser/components/workflow/StandardWorkflowPages.d.ts.map +1 -1
- package/dist/browser/components/workflow/StandardWorkflowPages.js +4 -9
- package/dist/browser/components/workflow/StandardWorkflowPages.js.map +1 -1
- package/dist/browser/presentation-time.d.ts +10 -0
- package/dist/browser/presentation-time.d.ts.map +1 -0
- package/dist/browser/presentation-time.js +33 -0
- package/dist/browser/presentation-time.js.map +1 -0
- package/dist/browser/ui-provider.d.ts +2 -1
- package/dist/browser/ui-provider.d.ts.map +1 -1
- package/dist/browser/ui-provider.js +4 -2
- package/dist/browser/ui-provider.js.map +1 -1
- package/dist/field-kit.d.ts +1 -0
- package/dist/field-kit.d.ts.map +1 -1
- package/dist/field-kit.js.map +1 -1
- package/documentation/field-components.md +25 -0
- package/documentation/frontend.md +4 -0
- package/documentation/getting-started.md +7 -7
- package/documentation/manifest.json +4 -4
- package/package.json +19 -17
- package/releases/2.6.0.json +37 -0
- package/skills/manifest.json +1 -1
- package/skills/openxiangda-v2/SKILL.md +4 -4
- package/skills/openxiangda-v2/references/field-components.md +25 -0
- package/skills/openxiangda-v2/references/frontend.md +4 -0
- package/skills/openxiangda-v2/references/getting-started.md +7 -7
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
{
|
|
2
2
|
"schemaVersion": "openxiangda.documentation/v1",
|
|
3
|
-
"version": "2.
|
|
3
|
+
"version": "2.6.0",
|
|
4
4
|
"topics": [
|
|
5
5
|
{
|
|
6
6
|
"id": "getting-started",
|
|
7
7
|
"title": "安装与开始开发",
|
|
8
8
|
"file": "getting-started.md",
|
|
9
|
-
"sha256": "
|
|
9
|
+
"sha256": "156d5177d012bd0646d65336c319171558e2ac9dffaa58ae0ee7ff22d0a0ea21"
|
|
10
10
|
},
|
|
11
11
|
{
|
|
12
12
|
"id": "product-design",
|
|
@@ -48,13 +48,13 @@
|
|
|
48
48
|
"id": "frontend",
|
|
49
49
|
"title": "页面与标准组件扩展",
|
|
50
50
|
"file": "frontend.md",
|
|
51
|
-
"sha256": "
|
|
51
|
+
"sha256": "4a9797610d297a244e99c1c377e6483d6f798f7e57c4799c8e7d3d263db96714"
|
|
52
52
|
},
|
|
53
53
|
{
|
|
54
54
|
"id": "field-components",
|
|
55
55
|
"title": "字段、表单与移动控件",
|
|
56
56
|
"file": "field-components.md",
|
|
57
|
-
"sha256": "
|
|
57
|
+
"sha256": "4bb36d6b6162be84aaf95b86fabe2e44805d5f9441dc8cfa5f951c24ce6d6102"
|
|
58
58
|
},
|
|
59
59
|
{
|
|
60
60
|
"id": "data-authz",
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "openxiangda",
|
|
3
|
-
"version": "2.
|
|
3
|
+
"version": "2.6.0",
|
|
4
4
|
"description": "OpenXiangda 2.0 的统一命令、应用 SDK、MCP 与中文 AI 技能资料。",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "./dist/index.js",
|
|
@@ -55,16 +55,18 @@
|
|
|
55
55
|
"README.md"
|
|
56
56
|
],
|
|
57
57
|
"dependencies": {
|
|
58
|
+
"@js-temporal/polyfill": "0.5.1",
|
|
59
|
+
"@rc-component/picker": "1.10.0",
|
|
58
60
|
"antd-mobile": "5.42.3",
|
|
59
61
|
"dayjs": "1.11.18",
|
|
60
62
|
"docx-preview": "0.3.7",
|
|
61
|
-
"openxiangda-cli": "2.2.
|
|
63
|
+
"openxiangda-cli": "2.2.8",
|
|
62
64
|
"openxiangda-contracts": "2.5.0",
|
|
63
65
|
"openxiangda-devkit-core": "2.4.1",
|
|
64
66
|
"openxiangda-legacy": "npm:openxiangda@1.0.268",
|
|
65
67
|
"openxiangda-mcp": "2.0.7",
|
|
66
68
|
"openxiangda-nest": "2.1.0",
|
|
67
|
-
"openxiangda-skill-kit": "2.0.
|
|
69
|
+
"openxiangda-skill-kit": "2.0.10",
|
|
68
70
|
"xlsx": "https://cdn.sheetjs.com/xlsx-0.20.3/xlsx-0.20.3.tgz"
|
|
69
71
|
},
|
|
70
72
|
"peerDependencies": {
|
|
@@ -130,18 +132,18 @@
|
|
|
130
132
|
},
|
|
131
133
|
"openxiangdaRelease": {
|
|
132
134
|
"schemaVersion": "openxiangda.release-notes/v1",
|
|
133
|
-
"version": "2.
|
|
134
|
-
"title": "
|
|
135
|
+
"version": "2.6.0",
|
|
136
|
+
"title": "统一应用时区与日期时间输入",
|
|
135
137
|
"status": "reviewed",
|
|
136
|
-
"summary": "
|
|
138
|
+
"summary": "应用可指定业务展示时区,标准字段、审批详情、待办、通知和审计时间统一显示,日期时间输入仍保存 UTC。",
|
|
137
139
|
"newFeatures": [
|
|
138
|
-
"
|
|
140
|
+
"OpenXiangdaApplication 和 OpenXiangdaUiProvider 接受可选 timeZone;日期时间字段可覆盖时区并声明 min、max 和 minuteStep。"
|
|
139
141
|
],
|
|
140
142
|
"fixes": [
|
|
141
|
-
"
|
|
143
|
+
"修复设备时区不同导致日期时间编辑和公共详情、中心时间不一致的问题,拒绝夏令时不存在或重复的本地时间。"
|
|
142
144
|
],
|
|
143
145
|
"affectedUsers": [
|
|
144
|
-
"
|
|
146
|
+
"需要固定业务时区或限制日期时间输入的 V2 应用开发者。"
|
|
145
147
|
],
|
|
146
148
|
"compatibility": {
|
|
147
149
|
"node": ">=24",
|
|
@@ -150,20 +152,20 @@
|
|
|
150
152
|
"v2"
|
|
151
153
|
],
|
|
152
154
|
"v1Policy": "V1 引擎和已有应用不变。",
|
|
153
|
-
"platformPolicy": "
|
|
155
|
+
"platformPolicy": "展示与输入能力,无新增服务端契约或数据库迁移。未配置时区和限制的应用保留设备本地行为。"
|
|
154
156
|
},
|
|
155
157
|
"upgradeSteps": [
|
|
156
|
-
"将应用精确依赖升级至 openxiangda 2.
|
|
157
|
-
"
|
|
158
|
+
"将应用精确依赖升级至 openxiangda 2.6.0,更新锁文件并刷新技能资料。",
|
|
159
|
+
"在应用入口指定业务 timeZone,验证 PC 和移动端编辑、审批摘要与各中心显示。"
|
|
158
160
|
],
|
|
159
161
|
"knownLimitations": [
|
|
160
|
-
"
|
|
161
|
-
"
|
|
162
|
-
"
|
|
162
|
+
"时区只影响呈现;服务端仍须独立验证业务时间窗口和授权。",
|
|
163
|
+
"手机指定时区的日期时间滚轮提供当前选择前后各 365 天并按限制收窄;夏令时重复时间需选择其他无歧义时间。",
|
|
164
|
+
"包发布、应用部署和实际业务验收分别验证。"
|
|
163
165
|
],
|
|
164
166
|
"issues": [],
|
|
165
|
-
"sha256": "
|
|
166
|
-
"url": "https://github.com/1377385356/openxiangda/releases/tag/v2.
|
|
167
|
+
"sha256": "ba11ac3a69cbd9dd27e339c1d84642af99e107ca1170f0876b8be0583abda79f",
|
|
168
|
+
"url": "https://github.com/1377385356/openxiangda/releases/tag/v2.6.0"
|
|
167
169
|
},
|
|
168
170
|
"scripts": {
|
|
169
171
|
"build": "node ../../scripts/prune-package-dist.mjs && tsc -p tsconfig.json && node scripts/copy-assets.mjs",
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
{
|
|
2
|
+
"schemaVersion": "openxiangda.release-notes/v1",
|
|
3
|
+
"version": "2.6.0",
|
|
4
|
+
"title": "统一应用时区与日期时间输入",
|
|
5
|
+
"status": "reviewed",
|
|
6
|
+
"summary": "应用可指定业务展示时区,标准字段、审批详情、待办、通知和审计时间统一显示,日期时间输入仍保存 UTC。",
|
|
7
|
+
"newFeatures": [
|
|
8
|
+
"OpenXiangdaApplication 和 OpenXiangdaUiProvider 接受可选 timeZone;日期时间字段可覆盖时区并声明 min、max 和 minuteStep。"
|
|
9
|
+
],
|
|
10
|
+
"fixes": [
|
|
11
|
+
"修复设备时区不同导致日期时间编辑和公共详情、中心时间不一致的问题,拒绝夏令时不存在或重复的本地时间。"
|
|
12
|
+
],
|
|
13
|
+
"affectedUsers": [
|
|
14
|
+
"需要固定业务时区或限制日期时间输入的 V2 应用开发者。"
|
|
15
|
+
],
|
|
16
|
+
"compatibility": {
|
|
17
|
+
"node": ">=24",
|
|
18
|
+
"workspaceGenerations": [
|
|
19
|
+
"v1",
|
|
20
|
+
"v2"
|
|
21
|
+
],
|
|
22
|
+
"v1Policy": "V1 引擎和已有应用不变。",
|
|
23
|
+
"platformPolicy": "展示与输入能力,无新增服务端契约或数据库迁移。未配置时区和限制的应用保留设备本地行为。"
|
|
24
|
+
},
|
|
25
|
+
"upgradeSteps": [
|
|
26
|
+
"将应用精确依赖升级至 openxiangda 2.6.0,更新锁文件并刷新技能资料。",
|
|
27
|
+
"在应用入口指定业务 timeZone,验证 PC 和移动端编辑、审批摘要与各中心显示。"
|
|
28
|
+
],
|
|
29
|
+
"knownLimitations": [
|
|
30
|
+
"时区只影响呈现;服务端仍须独立验证业务时间窗口和授权。",
|
|
31
|
+
"手机指定时区的日期时间滚轮提供当前选择前后各 365 天并按限制收窄;夏令时重复时间需选择其他无歧义时间。",
|
|
32
|
+
"包发布、应用部署和实际业务验收分别验证。"
|
|
33
|
+
],
|
|
34
|
+
"issues": [],
|
|
35
|
+
"sha256": "ba11ac3a69cbd9dd27e339c1d84642af99e107ca1170f0876b8be0583abda79f",
|
|
36
|
+
"url": "https://github.com/1377385356/openxiangda/releases/tag/v2.6.0"
|
|
37
|
+
}
|
package/skills/manifest.json
CHANGED
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
{
|
|
5
5
|
"name": "openxiangda-v2",
|
|
6
6
|
"description": "使用 OpenXiangda 2.0 从模糊业务想法、已有资料或具体变更出发,通过对话发现模块、完成详细产品设计,再开发、检查和交付应用。维护 1.x 应用时使用对应的 1.x 技能。",
|
|
7
|
-
"sha256": "
|
|
7
|
+
"sha256": "490bdc9d5e3cd6fed2a7ce48b04341e67d3d9e78b2a2b02f0984afee68ba17c7"
|
|
8
8
|
}
|
|
9
9
|
]
|
|
10
10
|
}
|
|
@@ -18,10 +18,10 @@ description: 使用 OpenXiangda 2.0 从模糊业务想法、已有资料或具
|
|
|
18
18
|
未创建工作区时使用本 Skill 随根包发布的精确版本:
|
|
19
19
|
|
|
20
20
|
```bash
|
|
21
|
-
pnpm dlx openxiangda@2.
|
|
22
|
-
pnpm dlx openxiangda@2.
|
|
23
|
-
pnpm dlx openxiangda@2.
|
|
24
|
-
pnpm dlx openxiangda@2.
|
|
21
|
+
pnpm dlx openxiangda@2.6.0 auth status --base-url <平台地址> --json
|
|
22
|
+
pnpm dlx openxiangda@2.6.0 login --base-url <平台地址>
|
|
23
|
+
pnpm dlx openxiangda@2.6.0 create <应用目录> --base-url <同一平台地址>
|
|
24
|
+
pnpm dlx openxiangda@2.6.0 skill install --force
|
|
25
25
|
```
|
|
26
26
|
|
|
27
27
|
创建前把产品要求的目标平台明确带入命令,不从旧登录态推断站点。已有工作区从原绑定恢复,平台不一致时先解决登录与目标,不改 link 文件跨站创建。
|
|
@@ -214,6 +214,31 @@ pnpm openxiangda check
|
|
|
214
214
|
|
|
215
215
|
## 移动字段呈现与分组
|
|
216
216
|
|
|
217
|
+
### 应用时区与时间限制
|
|
218
|
+
|
|
219
|
+
`OpenXiangdaApplication` 的可选 `timeZone="Asia/Shanghai"` 统一标准表单、详情、
|
|
220
|
+
审批业务摘要、待办/通知、审计和草稿时间的展示。独立使用组件时可在
|
|
221
|
+
`OpenXiangdaUiProvider` 传同一参数;不指定时保留浏览器本地时区。
|
|
222
|
+
这只影响输入与展示,`datetime` / `datetime-range` 仍读写 UTC ISO instant。
|
|
223
|
+
`date` / `date-range` 保留自然日期,`time` 保留无日期时间。
|
|
224
|
+
|
|
225
|
+
`DateTimeField`、`DateTimeFilter`、`DateTimeValueDisplay` 和 `MobileDateTimeField`
|
|
226
|
+
可显式传 `timeZone` 覆盖应用默认。日期时间输入还可传 `min` / `max`(含端点的
|
|
227
|
+
ISO instant)与 `minuteStep`(1 到 60 且整除 60)。设置步长后只接受整分钟,秒和
|
|
228
|
+
毫秒为零;例如 `minuteStep={15}`。服务端仍须验证最终业务窗口与授权。
|
|
229
|
+
|
|
230
|
+
```tsx
|
|
231
|
+
<DateTimeField field={startsAtField} value={startsAt} onChange={setStartsAt}
|
|
232
|
+
timeZone="Asia/Shanghai" minuteStep={15}
|
|
233
|
+
min="2026-09-08T01:00:00Z" max="2026-10-08T01:00:00Z" />
|
|
234
|
+
```
|
|
235
|
+
|
|
236
|
+
输入到夏令时不存在或重复的墙上时间时显示错误,不自动选偏移。无效时区、步长或
|
|
237
|
+
上下限配置会报错。手机指定时区的日期时间使用日期/时间滚轮,最多提供当前选择前后
|
|
238
|
+
各 365 天并按限制收窄;范围仍分两步确认,取消不修改原值。
|
|
239
|
+
|
|
240
|
+
### 字段布局
|
|
241
|
+
|
|
217
242
|
移动字段自身提供无边框输入、上下标签、行分隔和错误提示;标准表单与自定义页面使用同一
|
|
218
243
|
字段组件。页面负责把相关字段组织在浅色背景上的白色分组中,不另设移动主题配置。
|
|
219
244
|
|
|
@@ -41,6 +41,10 @@ DataQuery 使用有界 where 条件树,支持 and/or/not。标准列表的筛
|
|
|
41
41
|
|
|
42
42
|
## 标准后台扩展
|
|
43
43
|
|
|
44
|
+
如业务采用固定时区,在现有 `OpenXiangdaApplication` 传可选 `timeZone`,例如
|
|
45
|
+
`Asia/Shanghai`。标准表单、审批摘要和各中心时间随同一 UI Provider 展示,应用无需
|
|
46
|
+
修改设备时区或保存第二份时间。具体控件参数见[字段组件](field-components.md)。
|
|
47
|
+
|
|
44
48
|
默认 CRUD、统一 Shell、current-user 权限和 Data Provider 都由 `openxiangda/react`
|
|
45
49
|
维护;应用拥有后台信息架构声明。页面实现、路由可达、菜单可见是三个不同合同:
|
|
46
50
|
|
|
@@ -11,10 +11,10 @@ OpenXiangda 2.0 默认生成 React 应用和共享契约。普通 CRUD、标准
|
|
|
11
11
|
以下命令的版本占位符由随包资料替换为该根包的精确版本。网站源码阅读者应先确认要使用的发行版本。
|
|
12
12
|
|
|
13
13
|
```bash
|
|
14
|
-
pnpm dlx openxiangda@2.
|
|
15
|
-
pnpm dlx openxiangda@2.
|
|
16
|
-
pnpm dlx openxiangda@2.
|
|
17
|
-
pnpm dlx openxiangda@2.
|
|
14
|
+
pnpm dlx openxiangda@2.6.0 skill install --force
|
|
15
|
+
pnpm dlx openxiangda@2.6.0 auth status --base-url <平台地址> --json
|
|
16
|
+
pnpm dlx openxiangda@2.6.0 login --base-url https://platform.example.com
|
|
17
|
+
pnpm dlx openxiangda@2.6.0 create my-app --base-url https://platform.example.com
|
|
18
18
|
cd my-app
|
|
19
19
|
pnpm openxiangda context --json
|
|
20
20
|
pnpm openxiangda dev
|
|
@@ -114,9 +114,9 @@ MCP 的 `docs_read` 可以读取本说明,当前没有独立的源码操作 MC
|
|
|
114
114
|
无需本地工作区,使用本 Skill 随包精确版本或已安装的对应 CLI:
|
|
115
115
|
|
|
116
116
|
```bash
|
|
117
|
-
pnpm dlx openxiangda@2.
|
|
118
|
-
pnpm dlx openxiangda@2.
|
|
119
|
-
pnpm dlx openxiangda@2.
|
|
117
|
+
pnpm dlx openxiangda@2.6.0 auth status --base-url <平台> --json
|
|
118
|
+
pnpm dlx openxiangda@2.6.0 source resolve <仓库URL> --base-url <平台> --json
|
|
119
|
+
pnpm dlx openxiangda@2.6.0 source clone <仓库URL> <新目录> --base-url <平台> --json
|
|
120
120
|
```
|
|
121
121
|
|
|
122
122
|
登录缺失或站点不匹配时,先按该平台执行 login。resolve 根据平台已经登记的绑定返回
|