cloudcc-cli 2.3.1 → 2.3.3
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/.claude/settings.json +25 -0
- package/.cloudcc-cache.json +21 -4
- package/.cursor/skills/cloudcc-cli-dev.zip +0 -0
- package/.cursor/skills/cloudcc-cli-usage/SKILL.md +68 -0
- package/README.md +22 -0
- package/bin/cc.js +13 -8
- package/bin/index.js +9 -2
- package/bin/mcp.js +1 -1
- package/build/component-CCPlugin1774500425584.common.js +831 -0
- package/build/component-CCPlugin1774500425584.common.js.map +1 -0
- package/build/component-CCPlugin1774500425584.css +1 -0
- package/build/component-CCPlugin1774500425584.umd.js +874 -0
- package/build/component-CCPlugin1774500425584.umd.js.map +1 -0
- package/build/component-CCPlugin1774500425584.umd.min.js +8 -0
- package/build/component-CCPlugin1774500425584.umd.min.js.map +1 -0
- package/build/demo.html +1 -0
- package/{src/mcp → mcp}/tools/Class Editor Guide/handler.js +12 -4
- package/{src/mcp → mcp}/tools/Component Editor Guide/handler.js +15 -14
- package/{src/mcp → mcp}/tools/Trigger Editor Guide/handler.js +8 -2
- package/package.json +3 -2
- package/src/application/doc.js +46 -0
- package/src/application/docs/devguide.md +173 -0
- package/src/application/docs/introduction.md +81 -0
- package/src/application/index.js +1 -0
- package/src/brief/get.js +1 -1
- package/src/classes/create.js +6 -1
- package/src/classes/delete.js +7 -1
- package/src/classes/detail.js +8 -1
- package/src/classes/doc.js +49 -472
- package/src/classes/docs/devguide.md +541 -0
- package/src/classes/get.js +9 -2
- package/src/classes/index.js +2 -1
- package/src/classes/publish.js +6 -1
- package/src/classes/pull.js +6 -1
- package/src/classes/pullList.js +6 -3
- package/src/config/doc.js +31 -0
- package/src/config/docs/devguide.md +100 -0
- package/src/config/index.js +5 -0
- package/src/customPage/create.js +52 -19
- package/src/customPage/doc.js +46 -0
- package/src/customPage/docs/devguide.md +200 -0
- package/{.cursor/skills/cloudcc-cli-dev/docs//350/207/252/345/256/232/344/271/211/351/241/265/351/235/242.md → src/customPage/docs/introduction.md} +1 -5
- package/src/customPage/index.js +1 -0
- package/src/customSetting/create.js +9 -0
- package/src/customSetting/delete.js +10 -1
- package/src/customSetting/deleteCustomSettingField.js +43 -0
- package/src/customSetting/detail.js +10 -1
- package/src/customSetting/doc.js +22 -179
- package/src/customSetting/docs/devguide.md +181 -0
- package/src/customSetting/docs/introduction.md +3 -0
- package/src/customSetting/editCustomSettingField.js +34 -0
- package/src/customSetting/get.js +9 -0
- package/src/customSetting/index.js +6 -1
- package/src/customSetting/modify.js +30 -0
- package/src/customSetting/saveCustomSettingField.js +46 -0
- package/src/fields/doc.js +45 -0
- package/src/fields/docs/devguide.md +224 -0
- package/src/fields/docs/introduction.md +217 -0
- package/src/fields/index.js +1 -0
- package/src/globalSelectList/create.js +51 -0
- package/src/globalSelectList/delete.js +56 -0
- package/src/globalSelectList/detail.js +45 -0
- package/src/globalSelectList/doc.js +52 -0
- package/src/globalSelectList/docs/devguide.md +153 -0
- package/src/globalSelectList/docs/introduction.md +82 -0
- package/src/globalSelectList/get.js +31 -0
- package/src/globalSelectList/index.js +16 -0
- package/src/menu/create-page.js +43 -6
- package/src/menu/create-script.js +67 -19
- package/src/menu/doc.js +57 -0
- package/src/menu/docs/devguide.md +129 -0
- package/src/menu/docs/introduction.md +99 -0
- package/src/menu/index.js +1 -0
- package/src/menu/validator.js +80 -0
- package/src/object/doc.js +45 -0
- package/src/object/docs/devguide.md +112 -0
- package/src/object/docs/introduction.md +187 -0
- package/src/object/get.js +1 -23
- package/src/object/index.js +1 -0
- package/src/pagelayout/create.js +123 -0
- package/src/pagelayout/delete.js +57 -0
- package/src/pagelayout/doc.js +46 -0
- package/src/pagelayout/docs/devguide.md +83 -0
- package/src/pagelayout/docs/introduction.md +44 -0
- package/src/pagelayout/get.js +46 -0
- package/src/pagelayout/index.js +10 -0
- package/src/plugin/doc.js +43 -863
- package/src/plugin/docs/devguide.md +996 -0
- package/src/profile/create.js +108 -0
- package/src/profile/delete.js +59 -0
- package/src/profile/doc.js +46 -0
- package/src/profile/docs/devguide.md +77 -0
- package/src/profile/docs/introduction.md +123 -0
- package/src/profile/get.js +55 -0
- package/src/profile/index.js +14 -0
- package/src/project/doc.js +39 -372
- package/src/project/docs/devguide.md +359 -0
- package/src/project/docs/introduction.md +3 -0
- package/src/recordType/create.js +77 -0
- package/src/recordType/delete.js +52 -0
- package/src/recordType/doc.js +36 -0
- package/src/recordType/docs/devguide.md +160 -0
- package/src/recordType/docs/introduction.md +53 -0
- package/src/recordType/editInfo.js +39 -0
- package/src/recordType/editSave.js +47 -0
- package/src/recordType/getList.js +31 -0
- package/src/recordType/index.js +16 -3
- package/src/recordType/newInfo.js +39 -0
- package/src/recordType/validDelete.js +91 -0
- package/src/res.md +66 -0
- package/src/role/create.js +153 -0
- package/src/role/delete.js +59 -0
- package/src/role/doc.js +46 -0
- package/src/role/docs/devguide.md +81 -0
- package/src/role/docs/introduction.md +124 -0
- package/src/role/get.js +57 -0
- package/src/role/index.js +10 -0
- package/src/scheduleJob/doc.js +49 -0
- package/src/scheduleJob/docs/devguide.md +79 -0
- package/src/scheduleJob/docs/introduction.md +101 -0
- package/src/scheduleJob/index.js +5 -0
- package/src/script/delete.js +112 -0
- package/src/script/doc.js +31 -245
- package/src/script/docs/devguide.md +290 -0
- package/src/script/docs/introduction.md +48 -0
- package/src/script/index.js +1 -0
- package/src/staticResource/count.js +31 -10
- package/src/staticResource/create.js +97 -0
- package/src/staticResource/delete.js +30 -8
- package/src/staticResource/detail.js +32 -10
- package/src/staticResource/doc.js +21 -88
- package/src/staticResource/docs/devguide.md +157 -0
- package/src/staticResource/docs/introduction.md +3 -0
- package/src/staticResource/get.js +31 -8
- package/src/staticResource/index.js +2 -1
- package/src/timer/create.js +6 -1
- package/src/timer/delete.js +7 -1
- package/src/timer/detail.js +5 -5
- package/src/timer/doc.js +57 -0
- package/{.cursor/skills/cloudcc-cli-dev/docs/cloudcc/345/256/232/346/227/266/344/275/234/344/270/232.md → src/timer/docs/devguide.md} +83 -1
- package/src/timer/get.js +7 -1
- package/src/timer/index.js +3 -1
- package/src/timer/publish.js +6 -1
- package/src/timer/pull.js +6 -1
- package/src/timer/pullList.js +5 -3
- package/src/triggers/detail.js +5 -5
- package/src/triggers/doc.js +49 -364
- package/src/triggers/docs/devguide.md +442 -0
- package/src/triggers/get.js +7 -3
- package/src/triggers/index.js +1 -4
- package/src/triggers/pullList.js +7 -7
- package/src/user/create.js +50 -0
- package/src/user/delete.js +59 -0
- package/src/user/doc.js +46 -0
- package/src/user/docs/devguide.md +122 -0
- package/src/user/docs/introduction.md +124 -0
- package/src/user/get.js +112 -0
- package/src/user/index.js +12 -0
- package/src/user/update.js +96 -0
- package/src/user/view.js +60 -0
- package/test/classes.cli.test.js +7 -4
- package/test/customPage.cli.test.js +96 -0
- package/test/globalSelectList.cli.test.js +94 -0
- package/test/menu-script.cli.test.js +147 -0
- package/test/menu.cli.test.js +8 -1
- package/test/plugin.cli.test.js +5 -3
- package/test/timer.cli.test.js +15 -8
- package/test/trigger.cli.test.js +5 -3
- package/.cursor/skills/cloudcc-cli-dev/BACKEND_CLASS.md +0 -111
- package/.cursor/skills/cloudcc-cli-dev/BACKEND_SCHEDULE.md +0 -152
- package/.cursor/skills/cloudcc-cli-dev/BACKEND_TRIGGER.md +0 -150
- package/.cursor/skills/cloudcc-cli-dev/CLI_CHEATSHEET.md +0 -372
- package/.cursor/skills/cloudcc-cli-dev/CUSTOM-SETTING-API.md +0 -62
- package/.cursor/skills/cloudcc-cli-dev/INSTALL_AND_BOOTSTRAP.md +0 -62
- package/.cursor/skills/cloudcc-cli-dev/OBJECTS_AND_FIELDS.md +0 -214
- package/.cursor/skills/cloudcc-cli-dev/REQUIREMENTS_BREAKDOWN.md +0 -113
- package/.cursor/skills/cloudcc-cli-dev/SKILL.md +0 -66
- package/.cursor/skills/cloudcc-cli-dev/STATIC-RESOURCE-API.md +0 -60
- package/.cursor/skills/cloudcc-cli-dev/VUE_CUSTOM_COMPONENT.md +0 -151
- package/.cursor/skills/cloudcc-cli-dev/VUE_CUSTOM_PAGE.md +0 -216
- package/src/approval/approve.js +0 -105
- package/src/approval/get.js +0 -245
- package/src/approval/index.js +0 -11
- package/src/approval/reject.js +0 -105
- package/src/plugin/readme.md +0 -7
- /package/{src/mcp → mcp}/cliRunner.js +0 -0
- /package/{src/mcp → mcp}/index.js +0 -0
- /package/{src/mcp → mcp}/readme.md +0 -0
- /package/{src/mcp → mcp}/tools/Application Creator/handler.js +0 -0
- /package/{src/mcp → mcp}/tools/Approval/handler.js +0 -0
- /package/{src/mcp → mcp}/tools/Class Creator/handler.js +0 -0
- /package/{src/mcp → mcp}/tools/Class Detail Retriever/handler.js +0 -0
- /package/{src/mcp → mcp}/tools/Class List Retriever/handler.js +0 -0
- /package/{src/mcp → mcp}/tools/Class Publisher/handler.js +0 -0
- /package/{src/mcp → mcp}/tools/Class Puller/handler.js +0 -0
- /package/{src/mcp → mcp}/tools/Client Script Detail Retriever/handler.js +0 -0
- /package/{src/mcp → mcp}/tools/Client Script Editor Guide/handler.js +0 -0
- /package/{src/mcp → mcp}/tools/Client Script List Retriever/handler.js +0 -0
- /package/{src/mcp → mcp}/tools/Client Script Publisher/handler.js +0 -0
- /package/{src/mcp → mcp}/tools/Client Script Puller/handler.js +0 -0
- /package/{src/mcp → mcp}/tools/CloudCC Development Overview/handler.js +0 -0
- /package/{src/mcp → mcp}/tools/Component Creator/handler.js +0 -0
- /package/{src/mcp → mcp}/tools/Component Detail Retriever/handler.js +0 -0
- /package/{src/mcp → mcp}/tools/Component List Retriever/handler.js +0 -0
- /package/{src/mcp → mcp}/tools/Component Publisher/handler.js +0 -0
- /package/{src/mcp → mcp}/tools/Component Puller/handler.js +0 -0
- /package/{src/mcp → mcp}/tools/Dev Environment Creator/fetcher.js +0 -0
- /package/{src/mcp → mcp}/tools/Dev Environment Creator/handler.js +0 -0
- /package/{src/mcp → mcp}/tools/Dev Environment Validator/handler.js +0 -0
- /package/{src/mcp → mcp}/tools/Developer Key Setup Guide/fetcher.js +0 -0
- /package/{src/mcp → mcp}/tools/Developer Key Setup Guide/handler.js +0 -0
- /package/{src/mcp → mcp}/tools/JSP Migrator/handler.js +0 -0
- /package/{src/mcp → mcp}/tools/Menu Creator/handler.js +0 -0
- /package/{src/mcp → mcp}/tools/Object Creator/handler.js +0 -0
- /package/{src/mcp → mcp}/tools/Object Fields Creator/handler.js +0 -0
- /package/{src/mcp → mcp}/tools/Object Fields Retriever/handler.js +0 -0
- /package/{src/mcp → mcp}/tools/Object List Retriever/handler.js +0 -0
- /package/{src/mcp → mcp}/tools/Scheduled Class Creator/handler.js +0 -0
- /package/{src/mcp → mcp}/tools/Scheduled Class Detail Retriever/handler.js +0 -0
- /package/{src/mcp → mcp}/tools/Scheduled Class List Retriever/handler.js +0 -0
- /package/{src/mcp → mcp}/tools/Scheduled Class Publisher/handler.js +0 -0
- /package/{src/mcp → mcp}/tools/Scheduled Class Puller/handler.js +0 -0
- /package/{src/mcp → mcp}/tools/Trigger Creator/handler.js +0 -0
- /package/{src/mcp → mcp}/tools/Trigger Detail Retriever/handler.js +0 -0
- /package/{src/mcp → mcp}/tools/Trigger List Retriever/handler.js +0 -0
- /package/{src/mcp → mcp}/tools/Trigger Publisher/handler.js +0 -0
- /package/{src/mcp → mcp}/tools/Trigger Puller/handler.js +0 -0
- /package/{src/mcp → mcp}/tools/index.js +0 -0
- /package/{.cursor/skills/cloudcc-cli-dev/docs//350/207/252/345/256/232/344/271/211/347/261/273.md" → src/classes/docs/introduction.md} +0 -0
- /package/{.cursor/skills/cloudcc-cli-dev/docs/CloudCC/350/207/252/345/256/232/344/271/211/347/273/204/344/273/266/344/275/277/347/224/250/350/257/264/346/230/216.md" → src/plugin/docs/introduction.md} +0 -0
- /package/{.cursor/skills/cloudcc-cli-dev/docs/cloudcc/345/256/232/346/227/266/347/261/273.md" → src/timer/docs/introduction.md} +0 -0
- /package/{.cursor/skills/cloudcc-cli-dev/docs//350/247/246/345/217/221/345/231/250/347/261/273.md" → src/triggers/docs/introduction.md} +0 -0
package/src/customSetting/doc.js
CHANGED
|
@@ -1,193 +1,36 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* customSetting
|
|
2
|
+
* customSetting 文档入口:仅读取 docs/devguide.md。
|
|
3
3
|
*/
|
|
4
4
|
const fs = require("fs");
|
|
5
5
|
const path = require("path");
|
|
6
6
|
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
"",
|
|
11
|
-
"> 本文档按实际页面操作顺序整理,覆盖你提供的 7 个步骤图:",
|
|
12
|
-
"> 列表 -> 新建 -> 编辑 -> 详情建字段 -> 字段类型选择 -> 字段属性填写 -> 字段编辑。",
|
|
13
|
-
"",
|
|
14
|
-
"直接查看 CLI 文档:`cc doc customSetting`",
|
|
15
|
-
"",
|
|
16
|
-
"---",
|
|
17
|
-
"",
|
|
18
|
-
"## 1. 入口与列表页(图一)",
|
|
19
|
-
"",
|
|
20
|
-
"进入路径:`设置 -> 开发者空间 -> 自定义设置`。",
|
|
21
|
-
"",
|
|
22
|
-
"在列表页可看到:",
|
|
23
|
-
"- 标签",
|
|
24
|
-
"- 可见性",
|
|
25
|
-
"- 设置类型",
|
|
26
|
-
"- 描述",
|
|
27
|
-
"",
|
|
28
|
-
"右上角点击「新建」进入自定义设置创建弹窗。",
|
|
29
|
-
"",
|
|
30
|
-
"---",
|
|
31
|
-
"",
|
|
32
|
-
"## 2. 新建自定义设置(图二)",
|
|
33
|
-
"",
|
|
34
|
-
"点击图一右上角「新建」,弹出「自定义设置:新建」窗口,需要填写:",
|
|
35
|
-
"",
|
|
36
|
-
"- `标签`(必填)",
|
|
37
|
-
"- `对象名`(必填)",
|
|
38
|
-
"- `设置类型`(如:列表)",
|
|
39
|
-
"- `可见性`(如:公用)",
|
|
40
|
-
"- `描述`(可选)",
|
|
41
|
-
"",
|
|
42
|
-
"填写后保存,返回列表可看到新建记录。",
|
|
43
|
-
"",
|
|
44
|
-
"---",
|
|
45
|
-
"",
|
|
46
|
-
"## 3. 编辑自定义设置基础信息(图三)",
|
|
47
|
-
"",
|
|
48
|
-
"在列表中选择一条记录进入编辑弹窗「自定义设置:编辑」。",
|
|
49
|
-
"",
|
|
50
|
-
"常见行为:",
|
|
51
|
-
"- 可编辑:标签、可见性、描述等",
|
|
52
|
-
"- 对象名、设置类型通常按产品规则受限(常见为不可改)",
|
|
53
|
-
"",
|
|
54
|
-
"保存后回到列表,确认信息更新成功。",
|
|
55
|
-
"",
|
|
56
|
-
"---",
|
|
57
|
-
"",
|
|
58
|
-
"## 4. 进入详情并管理字段(图四)",
|
|
59
|
-
"",
|
|
60
|
-
"点击某条自定义设置后进入详情页,页面分为两块:",
|
|
61
|
-
"",
|
|
62
|
-
"1. 自定义设置详细信息(头部)",
|
|
63
|
-
"2. 自定义设置字段列表(下半区)",
|
|
64
|
-
"",
|
|
65
|
-
"在字段列表区域可点击「新建」,为当前自定义设置新增字段。",
|
|
66
|
-
"",
|
|
67
|
-
"---",
|
|
68
|
-
"",
|
|
69
|
-
"## 5. 新建字段 - 选择数据类型(图五)",
|
|
70
|
-
"",
|
|
71
|
-
"点击图四的「新建」后,进入「自定义字段」向导第一步:",
|
|
72
|
-
"",
|
|
73
|
-
"- 选择字段数据类型(如 URL、百分比、货币、电话、电子邮件、文本、日期等)",
|
|
74
|
-
"- 该步骤决定下一步字段属性表单内容",
|
|
75
|
-
"",
|
|
76
|
-
"选择完成后点击「下一步」。",
|
|
77
|
-
"",
|
|
78
|
-
"---",
|
|
79
|
-
"",
|
|
80
|
-
"## 6. 新建字段 - 填写字段属性并保存(图六)",
|
|
81
|
-
"",
|
|
82
|
-
"在第二步填写字段属性(示例为文本字段):",
|
|
83
|
-
"",
|
|
84
|
-
"- 字段标签(必填)",
|
|
85
|
-
"- 长度(如文本长度 255)",
|
|
86
|
-
"- 字段名 / API 名称(必填)",
|
|
87
|
-
"- 独有配置(如不允许重复值,按需开启)",
|
|
88
|
-
"",
|
|
89
|
-
"点击「保存」后,即在当前自定义设置下创建了一个新字段。",
|
|
90
|
-
"",
|
|
91
|
-
"---",
|
|
92
|
-
"",
|
|
93
|
-
"## 7. 编辑已有字段(图七)",
|
|
94
|
-
"",
|
|
95
|
-
"保存成功后回到字段列表,可看到新字段。点击某字段的操作菜单(如「...」)可进行:",
|
|
96
|
-
"",
|
|
97
|
-
"- 编辑:修改字段属性(可修改范围受字段类型和系统规则限制)",
|
|
98
|
-
"- 删除:移除该字段(建议先确认是否已有业务依赖)",
|
|
99
|
-
"",
|
|
100
|
-
"编辑保存后,字段列表会展示最新结果。",
|
|
101
|
-
"",
|
|
102
|
-
"---",
|
|
103
|
-
"",
|
|
104
|
-
"## 8. 新建字段支持的所有字段类型",
|
|
105
|
-
"",
|
|
106
|
-
"自定义设置详情页「新建字段」当前支持以下字段类型(与前端字段类型选择一致):",
|
|
107
|
-
"",
|
|
108
|
-
"| 类型代码(fdtype) | 类型名称 | 说明 |",
|
|
109
|
-
"|---|---|---|",
|
|
110
|
-
"| `U` | URL | 允许输入有效网址;点击后按打开方式在新/当前窗口打开 |",
|
|
111
|
-
"| `P` | 百分比 | 输入数字并自动添加百分号(如 10 -> 10%) |",
|
|
112
|
-
"| `c` | 币种 | 金额/币种类型字段 |",
|
|
113
|
-
"| `H` | 电话 | 输入电话号码并按电话格式展示 |",
|
|
114
|
-
"| `E` | 电子邮件 | 输入邮箱并校验格式(可用于“发送电子邮件”选择地址) |",
|
|
115
|
-
"| `B` | 复选框 | 布尔值(真/假) |",
|
|
116
|
-
"| `D` | 日期 | 输入或选择日期 |",
|
|
117
|
-
"| `F` | 日期和时间 | 输入或选择日期时间 |",
|
|
118
|
-
"| `N` | 数字 | 输入数字(会删除前置零) |",
|
|
119
|
-
"| `S` | 文本 | 字母数字组合文本 |",
|
|
120
|
-
"| `X` | 长文本 | 多行文本,最多 4000 字符 |",
|
|
121
|
-
"",
|
|
122
|
-
"在接口层面:新建/编辑字段使用 `POST /api/customsetting/saveField`,其中 `fdtype` 与 `tpSysSchemetableVO.schemefieldType` 建议保持一致(例如文本为 `S`,百分比为 `P`)。",
|
|
123
|
-
"",
|
|
124
|
-
"---",
|
|
125
|
-
"",
|
|
126
|
-
"## 9. Java 侧读取自定义设置(CCService)",
|
|
127
|
-
"",
|
|
128
|
-
"### 9.1 列表类型(List)",
|
|
129
|
-
"",
|
|
130
|
-
"```java",
|
|
131
|
-
"// 某 API 名称下的全部数据",
|
|
132
|
-
"Map listSettings = cs.getListCustomSetting(\"MyListSettingApiName\");",
|
|
133
|
-
"",
|
|
134
|
-
"// 指定 Name 的单条",
|
|
135
|
-
"Map singleSetting = cs.getListCustomSetting(\"MyListSettingApiName\", \"SomeName\");",
|
|
136
|
-
"```",
|
|
137
|
-
"",
|
|
138
|
-
"### 9.2 层次结构类型(Hierarchy)",
|
|
139
|
-
"",
|
|
140
|
-
"```java",
|
|
141
|
-
"// id 为简档 ID 或用户 ID",
|
|
142
|
-
"Map hiSetting = cs.getCustomSetting(\"MyHierarchySettingApiName\", profileOrUserId);",
|
|
143
|
-
"```",
|
|
144
|
-
"",
|
|
145
|
-
"---",
|
|
146
|
-
"",
|
|
147
|
-
"## 10. 操作 Checklist",
|
|
148
|
-
"",
|
|
149
|
-
"- [ ] 已在列表页确认目标自定义设置(标签/对象名)",
|
|
150
|
-
"- [ ] 新建时已正确选择设置类型与可见性",
|
|
151
|
-
"- [ ] 进入详情后通过字段向导完成字段新增",
|
|
152
|
-
"- [ ] 字段 `标签`、`API 名称`、`长度` 等配置符合规范",
|
|
153
|
-
"- [ ] 保存后已在字段列表验证新增或编辑结果",
|
|
154
|
-
"- [ ] 代码侧读取时,API 名称与平台配置保持一致",
|
|
155
|
-
"",
|
|
156
|
-
];
|
|
7
|
+
const DOCS_DIR = path.join(__dirname, "docs");
|
|
8
|
+
const INTRODUCTION = path.join(DOCS_DIR, "introduction.md");
|
|
9
|
+
const DEVGUIDE = path.join(DOCS_DIR, "devguide.md");
|
|
157
10
|
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
__dirname,
|
|
161
|
-
"..",
|
|
162
|
-
"..",
|
|
163
|
-
"cloudcc-cli-dev",
|
|
164
|
-
"CUSTOM-SETTING-API.md"
|
|
165
|
-
);
|
|
166
|
-
let apiContent = "";
|
|
11
|
+
function generateFullMarkdownDoc() {
|
|
12
|
+
let content = "";
|
|
167
13
|
try {
|
|
168
|
-
|
|
14
|
+
content = fs.readFileSync(DEVGUIDE, "utf8").trim();
|
|
169
15
|
} catch (e) {
|
|
170
|
-
|
|
16
|
+
content = `# CloudCC 自定义设置操作指南\n\n(未找到文件:${DEVGUIDE})\n`;
|
|
171
17
|
}
|
|
172
|
-
|
|
173
|
-
return [
|
|
174
|
-
base,
|
|
175
|
-
"",
|
|
176
|
-
"---",
|
|
177
|
-
"",
|
|
178
|
-
"## 附录:自定义设置 Setup 接口速查",
|
|
179
|
-
"",
|
|
180
|
-
"> 来源:`cloudcc-cli-dev/CUSTOM-SETTING-API.md`",
|
|
181
|
-
"",
|
|
182
|
-
apiContent.trim(),
|
|
183
|
-
"",
|
|
184
|
-
].join("\n");
|
|
18
|
+
return content;
|
|
185
19
|
}
|
|
186
20
|
|
|
187
|
-
function doc() {
|
|
188
|
-
const
|
|
189
|
-
|
|
190
|
-
|
|
21
|
+
function doc(argvs = []) {
|
|
22
|
+
const subType = String(argvs[2] || "").trim().toLowerCase();
|
|
23
|
+
if (!subType || subType === "devguide") {
|
|
24
|
+
const content = generateFullMarkdownDoc();
|
|
25
|
+
console.log(content);
|
|
26
|
+
return content;
|
|
27
|
+
}
|
|
28
|
+
if (subType === "introduction") {
|
|
29
|
+
const content = getIntroductionDoc();
|
|
30
|
+
console.log(content);
|
|
31
|
+
return content;
|
|
32
|
+
}
|
|
33
|
+
throw new Error(`doc 不支持的子命令: ${argvs[2]},请使用 introduction 或 devguide`);
|
|
191
34
|
}
|
|
192
35
|
|
|
193
36
|
doc.getClassEditorDoc = doc;
|
|
@@ -0,0 +1,181 @@
|
|
|
1
|
+
# CloudCC 自定义设置操作指南
|
|
2
|
+
|
|
3
|
+
直接查看 CLI 文档:`cc doc customSetting`
|
|
4
|
+
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
## 1. 入口与列表页
|
|
8
|
+
|
|
9
|
+
进入路径:`设置 -> 开发者空间 -> 自定义设置`。
|
|
10
|
+
|
|
11
|
+
列表页可查看标签、可见性、设置类型、描述等信息,并支持新建、编辑、删除。
|
|
12
|
+
|
|
13
|
+
---
|
|
14
|
+
|
|
15
|
+
## 2. 新建/编辑主对象
|
|
16
|
+
|
|
17
|
+
主对象常见输入项:
|
|
18
|
+
|
|
19
|
+
- 标签
|
|
20
|
+
- 对象名
|
|
21
|
+
- 设置类型(列表/层次结构)
|
|
22
|
+
- 可见性
|
|
23
|
+
- 描述
|
|
24
|
+
|
|
25
|
+
保存后会回到列表页并显示最新结果。
|
|
26
|
+
|
|
27
|
+
---
|
|
28
|
+
|
|
29
|
+
## 3. 详情页与字段管理
|
|
30
|
+
|
|
31
|
+
进入详情页后通常包含两块:
|
|
32
|
+
|
|
33
|
+
1. 自定义设置主对象信息
|
|
34
|
+
2. 自定义设置字段列表
|
|
35
|
+
|
|
36
|
+
在字段列表区域可完成新增、编辑、删除字段。
|
|
37
|
+
|
|
38
|
+
---
|
|
39
|
+
|
|
40
|
+
## 4. 字段类型(新建字段)
|
|
41
|
+
|
|
42
|
+
当前常用字段类型代码:
|
|
43
|
+
|
|
44
|
+
- `U` URL
|
|
45
|
+
- `P` 百分比
|
|
46
|
+
- `c` 币种
|
|
47
|
+
- `H` 电话
|
|
48
|
+
- `E` 电子邮件
|
|
49
|
+
- `B` 复选框
|
|
50
|
+
- `D` 日期
|
|
51
|
+
- `F` 日期和时间
|
|
52
|
+
- `N` 数字
|
|
53
|
+
- `S` 文本
|
|
54
|
+
- `X` 长文本
|
|
55
|
+
|
|
56
|
+
---
|
|
57
|
+
|
|
58
|
+
## 5. 常用 CLI 命令
|
|
59
|
+
|
|
60
|
+
### 主对象
|
|
61
|
+
|
|
62
|
+
#### 1) 查询自定义设置列表
|
|
63
|
+
命令:
|
|
64
|
+
```bash
|
|
65
|
+
cc get customSetting <projectPath> [encodedCondJson]
|
|
66
|
+
```
|
|
67
|
+
请求参数:
|
|
68
|
+
| 参数名称 | 类型 | 是否必须 | 默认值 | 备注 |
|
|
69
|
+
| :--- | :--- | :--- | :--- | :--- |
|
|
70
|
+
| body | object | 非必须 | `{}` | `encodedCondJson` 解码后的请求体 |
|
|
71
|
+
|
|
72
|
+
#### 2) 查询自定义设置详情(含字段列表)
|
|
73
|
+
命令:
|
|
74
|
+
```bash
|
|
75
|
+
cc detail customSetting <projectPath> <settingId>
|
|
76
|
+
```
|
|
77
|
+
请求参数:
|
|
78
|
+
| 参数名称 | 类型 | 是否必须 | 默认值 | 备注 |
|
|
79
|
+
| :--- | :--- | :--- | :--- | :--- |
|
|
80
|
+
| objid | string | 必须 | — | 对应命令中的 `settingId` |
|
|
81
|
+
|
|
82
|
+
#### 3) 新建/更新自定义设置主对象
|
|
83
|
+
命令:
|
|
84
|
+
```bash
|
|
85
|
+
cc create customSetting <projectPath> <encodedBodyJson>
|
|
86
|
+
```
|
|
87
|
+
请求参数:
|
|
88
|
+
| 参数名称 | 类型 | 是否必须 | 默认值 | 备注 |
|
|
89
|
+
| :--- | :--- | :--- | :--- | :--- |
|
|
90
|
+
| tpSysObjectVO | object | 必须 | — | 主对象载体,见下表子字段 |
|
|
91
|
+
**tpSysObjectVO 子字段:**
|
|
92
|
+
| 参数名称 | 类型 | 是否必须 | 默认值 | 备注 |
|
|
93
|
+
| :--- | :--- | :--- | :--- | :--- |
|
|
94
|
+
| accessable | string | 视业务 | — | 可见性(如 `"2"` 表示公用) |
|
|
95
|
+
| dataType | string | 视业务 | — | 设置类型:`L` 列表,`H` 层次结构 |
|
|
96
|
+
| id | string | 视业务 | `""` | 新建传空;编辑传记录 id |
|
|
97
|
+
| label | string | 视业务 | — | 标签 |
|
|
98
|
+
| remark | string | 非必须 | — | 描述 |
|
|
99
|
+
| schemetableName | string | 视业务 | — | 对象名 |
|
|
100
|
+
|
|
101
|
+
#### 4) 编辑前回显主对象表单数据
|
|
102
|
+
命令:
|
|
103
|
+
```bash
|
|
104
|
+
cc modify customSetting <projectPath> <settingId>
|
|
105
|
+
```
|
|
106
|
+
请求参数:
|
|
107
|
+
| 参数名称 | 类型 | 是否必须 | 默认值 | 备注 |
|
|
108
|
+
| :--- | :--- | :--- | :--- | :--- |
|
|
109
|
+
| objid | string | 必须 | — | 对应命令中的 `settingId` |
|
|
110
|
+
|
|
111
|
+
#### 5) 删除自定义设置主对象
|
|
112
|
+
命令:
|
|
113
|
+
```bash
|
|
114
|
+
cc delete customSetting <projectPath> <settingId>
|
|
115
|
+
```
|
|
116
|
+
请求参数:
|
|
117
|
+
| 参数名称 | 类型 | 是否必须 | 默认值 | 备注 |
|
|
118
|
+
| :--- | :--- | :--- | :--- | :--- |
|
|
119
|
+
| objid | string | 必须 | — | 对应命令中的 `settingId` |
|
|
120
|
+
|
|
121
|
+
### 字段
|
|
122
|
+
|
|
123
|
+
#### 6) 进入字段编辑(取字段编辑所需数据)
|
|
124
|
+
命令:
|
|
125
|
+
```bash
|
|
126
|
+
cc editCustomSettingField customSetting <projectPath> <queryrecordid>
|
|
127
|
+
```
|
|
128
|
+
请求参数:
|
|
129
|
+
| 参数名称 | 类型 | 是否必须 | 默认值 | 备注 |
|
|
130
|
+
| :--- | :--- | :--- | :--- | :--- |
|
|
131
|
+
| queryrecordid | string | 必须 | — | 字段行 id |
|
|
132
|
+
|
|
133
|
+
#### 7) 保存字段(新增/编辑字段)
|
|
134
|
+
命令:
|
|
135
|
+
```bash
|
|
136
|
+
cc saveCustomSettingField customSetting <projectPath> <encodedBodyJson>
|
|
137
|
+
```
|
|
138
|
+
请求参数:
|
|
139
|
+
| 参数名称 | 类型 | 是否必须 | 默认值 | 备注 |
|
|
140
|
+
| :--- | :--- | :--- | :--- | :--- |
|
|
141
|
+
| tpSysSchemetableVO | object | 必须 | — | 字段对象,见下方子字段表 |
|
|
142
|
+
| fdtype | string | 必须 | — | 字段类型代码(如 `U` 表示 URL) |
|
|
143
|
+
**tpSysSchemetableVO 子字段:**
|
|
144
|
+
| 参数名称 | 类型 | 是否必须 | 默认值 | 备注 |
|
|
145
|
+
| :--- | :--- | :--- | :--- | :--- |
|
|
146
|
+
| schemetableId | string | 必须 | — | 所属自定义设置 id |
|
|
147
|
+
| id | string | 非必须 | — | 字段 id;编辑时传 |
|
|
148
|
+
| nameLabel | string | 必须 | — | 字段显示名称 |
|
|
149
|
+
| apiname | string | 必须 | — | 字段 API 名 |
|
|
150
|
+
| edittype | string | 非必须 | — | 字段编辑类型(如 URL 打开方式) |
|
|
151
|
+
| schemefieldLength | string | 非必须 | — | 字段长度 |
|
|
152
|
+
| defaultValue | string | 非必须 | — | 默认值 |
|
|
153
|
+
| datafieldRef | string | 非必须 | — | 数据字段引用名 |
|
|
154
|
+
| isDeleted | string | 非必须 | `"0"` | 删除标记 |
|
|
155
|
+
| fieldState | string | 非必须 | `"enable"` | 字段状态 |
|
|
156
|
+
| iscustom | string | 非必须 | `"1"` | 是否自定义字段 |
|
|
157
|
+
| schemefieldType | string | 必须 | — | 字段类型代码(如 `U`) |
|
|
158
|
+
| schemefieldName | string | 必须 | — | 字段物理名/存储名 |
|
|
159
|
+
|
|
160
|
+
#### 8) 删除自定义字段
|
|
161
|
+
命令:
|
|
162
|
+
```bash
|
|
163
|
+
cc deleteCustomSettingField customSetting <projectPath> <fieldId> <settingId>
|
|
164
|
+
```
|
|
165
|
+
请求参数:
|
|
166
|
+
| 参数名称 | 类型 | 是否必须 | 默认值 | 备注 |
|
|
167
|
+
| :--- | :--- | :--- | :--- | :--- |
|
|
168
|
+
| id | string | 必须 | — | 对应命令中的 `fieldId` |
|
|
169
|
+
| objid | string | 必须 | — | 对应命令中的 `settingId` |
|
|
170
|
+
|
|
171
|
+
---
|
|
172
|
+
|
|
173
|
+
## 6. Checklist
|
|
174
|
+
|
|
175
|
+
- [ ] 已确认目标自定义设置(标签/对象名)
|
|
176
|
+
- [ ] 保存主对象前已校验设置类型与可见性
|
|
177
|
+
- [ ] 字段新增/编辑时已校验字段类型与 API 名
|
|
178
|
+
- [ ] 删除前已确认字段/主对象无业务依赖
|
|
179
|
+
|
|
180
|
+
---
|
|
181
|
+
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* 自定义设置字段 - 进入字段编辑(取字段编辑所需数据)
|
|
3
|
+
* API: POST {setupSvc}/api/customsetting/editfile
|
|
4
|
+
* CLI: cc editCustomSettingField customSetting <projectPath> <queryrecordid>
|
|
5
|
+
* 参数说明:
|
|
6
|
+
* - projectPath: 项目根目录
|
|
7
|
+
* - queryrecordid: 字段行 id
|
|
8
|
+
* - 请求体: { queryrecordid }
|
|
9
|
+
*/
|
|
10
|
+
const { getPackageJson } = require("../../utils/config");
|
|
11
|
+
const { postClass } = require("../../utils/http");
|
|
12
|
+
|
|
13
|
+
async function editfile(projectPath = process.cwd(), queryrecordid, isMcp = false) {
|
|
14
|
+
if (!queryrecordid) {
|
|
15
|
+
throw new Error("Custom Setting editfile Failed: queryrecordid is required");
|
|
16
|
+
}
|
|
17
|
+
const config = await getPackageJson(projectPath);
|
|
18
|
+
const res = await postClass(
|
|
19
|
+
config.setupSvc + "/api/customsetting/editfile",
|
|
20
|
+
{ queryrecordid },
|
|
21
|
+
config.accessToken
|
|
22
|
+
);
|
|
23
|
+
if (res && res.result) {
|
|
24
|
+
const data = res.data || {};
|
|
25
|
+
if (!isMcp) {
|
|
26
|
+
console.log(JSON.stringify(data));
|
|
27
|
+
}
|
|
28
|
+
return data;
|
|
29
|
+
}
|
|
30
|
+
throw new Error("Custom Setting editfile Failed: " + (res?.returnInfo || res?.message || "Unknown error"));
|
|
31
|
+
}
|
|
32
|
+
|
|
33
|
+
module.exports = editfile;
|
|
34
|
+
|
package/src/customSetting/get.js
CHANGED
|
@@ -1,3 +1,12 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* 自定义设置 - 查询列表
|
|
3
|
+
* API: POST {setupSvc}/api/customsetting/list
|
|
4
|
+
* CLI: cc get customSetting <projectPath> [encodedCondJson]
|
|
5
|
+
* 参数说明:
|
|
6
|
+
* - projectPath: 项目根目录
|
|
7
|
+
* - encodedCondJson(可选): encodeURI(JSON.stringify(body))
|
|
8
|
+
* - body: 查询条件对象(可为空 {})
|
|
9
|
+
*/
|
|
1
10
|
const { getPackageJson } = require("../../utils/config");
|
|
2
11
|
const { postClass } = require("../../utils/http");
|
|
3
12
|
|
|
@@ -4,8 +4,13 @@ cc.get = require("./get");
|
|
|
4
4
|
cc.create = require("./create");
|
|
5
5
|
cc.detail = require("./detail");
|
|
6
6
|
cc.delete = require("./delete");
|
|
7
|
+
cc.modify = require("./modify");
|
|
8
|
+
cc.editCustomSettingField = require("./editCustomSettingField");
|
|
9
|
+
cc.saveCustomSettingField = require("./saveCustomSettingField");
|
|
10
|
+
cc.deleteCustomSettingField = require("./deleteCustomSettingField");
|
|
7
11
|
function CustomSetting(action, argvs) {
|
|
8
|
-
|
|
12
|
+
// 兼容字段类接口(例如 deletefield 需要 id + objid)
|
|
13
|
+
cc[action](argvs[2], argvs[3], argvs[4]);
|
|
9
14
|
}
|
|
10
15
|
|
|
11
16
|
module.exports = CustomSetting;
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* 自定义设置 - 编辑前回显(主对象)
|
|
3
|
+
* API: POST {setupSvc}/api/customsetting/modify
|
|
4
|
+
* CLI: cc modify customSetting <projectPath> <settingId>
|
|
5
|
+
* 参数说明:
|
|
6
|
+
* - projectPath: 项目根目录
|
|
7
|
+
* - objid(命令参数名 settingId): 自定义设置 id
|
|
8
|
+
* - 请求体: { objid }
|
|
9
|
+
*/
|
|
10
|
+
const { getPackageJson } = require("../../utils/config");
|
|
11
|
+
const { postClass } = require("../../utils/http");
|
|
12
|
+
|
|
13
|
+
async function modify(projectPath = process.cwd(), objid, isMcp = false) {
|
|
14
|
+
if (!objid) {
|
|
15
|
+
throw new Error("Custom Setting modify Failed: objid is required");
|
|
16
|
+
}
|
|
17
|
+
const config = await getPackageJson(projectPath);
|
|
18
|
+
const res = await postClass(config.setupSvc + "/api/customsetting/modify", { objid }, config.accessToken);
|
|
19
|
+
if (res && res.result) {
|
|
20
|
+
const data = res.data || {};
|
|
21
|
+
if (!isMcp) {
|
|
22
|
+
console.log(JSON.stringify(data));
|
|
23
|
+
}
|
|
24
|
+
return data;
|
|
25
|
+
}
|
|
26
|
+
throw new Error("Custom Setting modify Failed: " + (res?.returnInfo || res?.message || "Unknown error"));
|
|
27
|
+
}
|
|
28
|
+
|
|
29
|
+
module.exports = modify;
|
|
30
|
+
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* 自定义设置字段 - 保存字段(新增/编辑)
|
|
3
|
+
* API: POST {setupSvc}/api/customsetting/saveField
|
|
4
|
+
* CLI: cc saveCustomSettingField customSetting <projectPath> <encodedBodyJson>
|
|
5
|
+
* 参数说明:
|
|
6
|
+
* - projectPath: 项目根目录
|
|
7
|
+
* - encodedBodyJson: encodeURI(JSON.stringify(body))
|
|
8
|
+
* - body: { fdtype, tpSysSchemetableVO }
|
|
9
|
+
* - tpSysSchemetableVO 常用子字段:
|
|
10
|
+
* schemetableId, id, nameLabel, apiname, edittype, schemefieldLength,
|
|
11
|
+
* defaultValue, datafieldRef, isDeleted, fieldState, iscustom,
|
|
12
|
+
* schemefieldType, schemefieldName
|
|
13
|
+
*/
|
|
14
|
+
const chalk = require("chalk");
|
|
15
|
+
const { getPackageJson } = require("../../utils/config");
|
|
16
|
+
const { postClass } = require("../../utils/http");
|
|
17
|
+
|
|
18
|
+
/**
|
|
19
|
+
* 保存字段(新增/编辑)
|
|
20
|
+
* 入参约定:encodedBodyJson 使用 CLI 约定的 encodeURI(JSON.stringify(obj)) 透传
|
|
21
|
+
*/
|
|
22
|
+
async function saveField(projectPath = process.cwd(), encodedBodyJson, isMcp = false) {
|
|
23
|
+
if (!encodedBodyJson) {
|
|
24
|
+
throw new Error("Custom Setting saveField Failed: encodedBodyJson is required");
|
|
25
|
+
}
|
|
26
|
+
|
|
27
|
+
const body = typeof encodedBodyJson === "string" ? JSON.parse(decodeURI(encodedBodyJson)) : encodedBodyJson;
|
|
28
|
+
const config = await getPackageJson(projectPath);
|
|
29
|
+
|
|
30
|
+
const res = await postClass(
|
|
31
|
+
config.setupSvc + "/api/customsetting/saveField",
|
|
32
|
+
body,
|
|
33
|
+
config.accessToken
|
|
34
|
+
);
|
|
35
|
+
|
|
36
|
+
if (res && res.result) {
|
|
37
|
+
if (!isMcp) {
|
|
38
|
+
console.error(chalk.green("Success! Custom setting field saved."));
|
|
39
|
+
}
|
|
40
|
+
return res;
|
|
41
|
+
}
|
|
42
|
+
throw new Error("Custom Setting saveField Failed: " + (res?.returnInfo || res?.message || "Unknown error"));
|
|
43
|
+
}
|
|
44
|
+
|
|
45
|
+
module.exports = saveField;
|
|
46
|
+
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
const fs = require("fs");
|
|
2
|
+
const path = require("path");
|
|
3
|
+
|
|
4
|
+
const DOCS_DIR = path.join(__dirname, "docs");
|
|
5
|
+
const INTRODUCTION = path.join(DOCS_DIR, "introduction.md");
|
|
6
|
+
const DEVGUIDE = path.join(DOCS_DIR, "devguide.md");
|
|
7
|
+
|
|
8
|
+
function readDocOrFallback(filePath, fallback) {
|
|
9
|
+
try {
|
|
10
|
+
return fs.readFileSync(filePath, "utf8").trim();
|
|
11
|
+
} catch (e) {
|
|
12
|
+
return fallback;
|
|
13
|
+
}
|
|
14
|
+
}
|
|
15
|
+
|
|
16
|
+
function getIntroductionDoc() {
|
|
17
|
+
return readDocOrFallback(
|
|
18
|
+
INTRODUCTION,
|
|
19
|
+
`# CloudCC 字段介绍\n\n(未找到文件:${INTRODUCTION})\n`
|
|
20
|
+
);
|
|
21
|
+
}
|
|
22
|
+
|
|
23
|
+
function getDevGuideDoc() {
|
|
24
|
+
return readDocOrFallback(
|
|
25
|
+
DEVGUIDE,
|
|
26
|
+
`# CloudCC 字段开发指南\n\n(未找到文件:${DEVGUIDE})\n`
|
|
27
|
+
);
|
|
28
|
+
}
|
|
29
|
+
|
|
30
|
+
function doc(argvs = []) {
|
|
31
|
+
const subType = String(argvs[2] || "").trim().toLowerCase();
|
|
32
|
+
if (!subType || subType === "devguide") {
|
|
33
|
+
const content = getDevGuideDoc();
|
|
34
|
+
console.log(content);
|
|
35
|
+
return content;
|
|
36
|
+
}
|
|
37
|
+
if (subType === "introduction") {
|
|
38
|
+
const content = getIntroductionDoc();
|
|
39
|
+
console.log(content);
|
|
40
|
+
return content;
|
|
41
|
+
}
|
|
42
|
+
throw new Error(`doc 不支持的子命令: ${argvs[2]},请使用 introduction 或 devguide`);
|
|
43
|
+
}
|
|
44
|
+
|
|
45
|
+
module.exports = doc;
|