cloudcc-cli 2.3.0 → 2.3.1

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.
Files changed (96) hide show
  1. package/.cloudcc-cache.json +4 -52
  2. package/.cursor/skills/cloudcc-cli-dev/BACKEND_CLASS.md +15 -1
  3. package/.cursor/skills/cloudcc-cli-dev/BACKEND_SCHEDULE.md +82 -8
  4. package/.cursor/skills/cloudcc-cli-dev/BACKEND_TRIGGER.md +13 -0
  5. package/.cursor/skills/cloudcc-cli-dev/CLI_CHEATSHEET.md +234 -77
  6. package/.cursor/skills/cloudcc-cli-dev/CUSTOM-SETTING-API.md +37 -216
  7. package/.cursor/skills/cloudcc-cli-dev/INSTALL_AND_BOOTSTRAP.md +9 -6
  8. package/.cursor/skills/cloudcc-cli-dev/OBJECTS_AND_FIELDS.md +99 -5
  9. package/.cursor/skills/cloudcc-cli-dev/REQUIREMENTS_BREAKDOWN.md +15 -0
  10. package/.cursor/skills/cloudcc-cli-dev/SKILL.md +29 -7
  11. package/.cursor/skills/cloudcc-cli-dev/STATIC-RESOURCE-API.md +60 -0
  12. package/.cursor/skills/cloudcc-cli-dev/VUE_CUSTOM_PAGE.md +216 -0
  13. package/.cursor/skills/cloudcc-cli-dev/docs//350/207/252/345/256/232/344/271/211/351/241/265/351/235/242.md +228 -0
  14. package/README.md +11 -0
  15. package/bin/index.js +3 -0
  16. package/package.json +2 -2
  17. package/src/application/delete.js +59 -0
  18. package/src/application/get.js +31 -5
  19. package/src/application/index.js +1 -0
  20. package/src/classes/delete.js +43 -0
  21. package/src/classes/detail.js +14 -7
  22. package/src/classes/index.js +1 -0
  23. package/src/customPage/create.js +74 -12
  24. package/src/customPage/delete.js +2 -2
  25. package/src/customPage/get.js +1 -1
  26. package/src/customSetting/create.js +27 -0
  27. package/src/customSetting/delete.js +26 -0
  28. package/src/customSetting/detail.js +24 -0
  29. package/src/customSetting/get.js +25 -0
  30. package/src/customSetting/index.js +4 -0
  31. package/src/fields/delete.js +52 -0
  32. package/src/fields/index.js +1 -0
  33. package/src/menu/create-page.js +16 -25
  34. package/src/menu/create.js +9 -3
  35. package/src/menu/delete.js +59 -0
  36. package/src/menu/get.js +56 -0
  37. package/src/menu/index.js +2 -0
  38. package/src/object/delete.js +51 -0
  39. package/src/object/index.js +1 -0
  40. package/src/plugin/detail.js +14 -6
  41. package/src/plugin/publish1.js +3 -3
  42. package/src/recordType/get.js +1 -1
  43. package/src/scheduleJob/delete.js +26 -0
  44. package/src/scheduleJob/detail.js +23 -0
  45. package/src/scheduleJob/get.js +26 -0
  46. package/src/scheduleJob/index.js +10 -0
  47. package/src/staticResource/count.js +25 -0
  48. package/src/staticResource/delete.js +26 -0
  49. package/src/staticResource/detail.js +24 -0
  50. package/src/staticResource/doc.js +106 -0
  51. package/src/staticResource/get.js +25 -0
  52. package/src/staticResource/index.js +12 -0
  53. package/src/timer/delete.js +43 -0
  54. package/src/timer/index.js +1 -0
  55. package/src/triggers/delete.js +46 -0
  56. package/src/triggers/index.js +1 -0
  57. package/test/application.cli.test.js +49 -8
  58. package/test/classes.cli.test.js +9 -3
  59. package/test/customSetting.cli.test.js +84 -0
  60. package/test/fields.cli.test.js +18 -3
  61. package/test/menu.cli.test.js +34 -4
  62. package/test/object.cli.test.js +17 -1
  63. package/test/scheduleJob.cli.test.js +52 -0
  64. package/test/staticResource.cli.test.js +78 -0
  65. package/test/timer.cli.test.js +8 -2
  66. package/test/trigger.cli.test.js +8 -2
  67. package/build/component-cc-test-001.common.js +0 -831
  68. package/build/component-cc-test-001.common.js.map +0 -1
  69. package/build/component-cc-test-001.css +0 -1
  70. package/build/component-cc-test-001.umd.js +0 -874
  71. package/build/component-cc-test-001.umd.js.map +0 -1
  72. package/build/component-cc-test-001.umd.min.js +0 -8
  73. package/build/component-cc-test-001.umd.min.js.map +0 -1
  74. package/build/demo.html +0 -1
  75. package/classes/CCdd/CCdd.java +0 -22
  76. package/classes/CCdd/CCddTest.java +0 -11
  77. package/classes/CCdd/config.json +0 -1
  78. package/core.zip +0 -0
  79. package/plugins/cc-test-001/cc-test-001.vue +0 -32
  80. package/plugins/cc-test-001/components/HelloWorld.vue +0 -11
  81. package/plugins/cc-test-001/config.json +0 -6
  82. package/schedule/CCdd/CCdd.java +0 -11
  83. package/schedule/CCdd/config.json +0 -1
  84. package/target/ccopenapi-0.0.4-classes.jar +0 -0
  85. package/target/ccopenapi-0.0.4.jar +0 -0
  86. package/target/classes/CCdd/CCdd.class +0 -0
  87. package/target/classes/CCdd/CCddTest.class +0 -0
  88. package/target/classes/CCdd/config.json +0 -1
  89. package/target/maven-archiver/pom.properties +0 -3
  90. package/target/maven-status/maven-compiler-plugin/compile/default-compile/createdFiles.lst +0 -20
  91. package/target/maven-status/maven-compiler-plugin/compile/default-compile/inputFiles.lst +0 -19
  92. /package/{docs → .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" +0 -0
  93. /package/{docs → .cursor/skills/cloudcc-cli-dev/docs}/cloudcc/345/256/232/346/227/266/344/275/234/344/270/232.md" +0 -0
  94. /package/{docs → .cursor/skills/cloudcc-cli-dev/docs}/cloudcc/345/256/232/346/227/266/347/261/273.md" +0 -0
  95. /package/{docs → .cursor/skills/cloudcc-cli-dev/docs}//350/207/252/345/256/232/344/271/211/347/261/273.md" +0 -0
  96. /package/{docs → .cursor/skills/cloudcc-cli-dev/docs}//350/247/246/345/217/221/345/231/250/347/261/273.md" +0 -0
@@ -1,241 +1,62 @@
1
- # 自定义设置相关接口
1
+ # 自定义设置(cc 命令模式)
2
2
 
3
- ## 指导文档
4
-
5
- 直接使用以下命令查看指导文档:
6
-
7
- ```bash
8
- cc doc customSetting
9
- ```
10
-
11
-
12
- ---
13
-
14
- ## 查询自定义设置列表
15
-
16
- 路径:`{服务名称}/api/customsetting/list`
17
-
18
- 方法:POST
19
-
20
- 接口描述:分页/查询自定义设置主列表,返回 `objList` 等。
21
-
22
- ### 请求参数
23
-
24
- | 参数名称 | 类型 | 是否必须 | 默认值 | 备注 |
25
- | :--- | :--- | :--- | :--- | :--- |
26
- | (请求体) | object | 非必须 | {} | 当前前端传空对象 |
27
-
28
- ---
29
-
30
- ## 新建/更新自定义设置(保存主对象)
31
-
32
- 路径:`{服务名称}/api/customsetting/save`
33
-
34
- 方法:POST
35
-
36
- 接口描述:新建或编辑自定义设置主记录(标签、对象 API 名、类型、可见性、描述等)。
37
-
38
- ### 请求参数
39
-
40
- | 参数名称 | 类型 | 是否必须 | 默认值 | 备注 |
41
- | :--- | :--- | :--- | :--- | :--- |
42
- | tpSysObjectVO | object | 必须 | — | 主对象载体,见下表子字段 |
43
-
44
- **tpSysObjectVO 子字段:**
45
-
46
- | 参数名称 | 类型 | 是否必须 | 默认值 | 备注 |
47
- | :--- | :--- | :--- | :--- | :--- |
48
- | accessable | string | 视业务 | — | 可见性(如 `"2"` 表示公用等,与表单选项一致) |
49
- | dataType | string | 视业务 | — | 设置类型:`L` 列表,`H` 层次结构 |
50
- | id | string | 视业务 | `""` | 新建传空字符串;编辑传记录 id |
51
- | label | string | 视业务 | — | 标签 |
52
- | remark | string | 非必须 | — | 描述 |
53
- | schemetableName | string | 视业务 | — | 对象名(编辑时前端通常禁用修改) |
54
-
55
- ---
56
-
57
- ## 编辑前回显(自定义设置主对象)
58
-
59
- 路径:`{服务名称}/api/customsetting/modify`
60
-
61
- 方法:POST
62
-
63
- 接口描述:根据主记录 id 拉取表单回显数据。
64
-
65
- ### 请求参数
66
-
67
- | 参数名称 | 类型 | 是否必须 | 默认值 | 备注 |
68
- | :--- | :--- | :--- | :--- | :--- |
69
- | objid | string | 必须 | — | 记录id |
3
+ 本文已从“直接调用 API”重构为“优先使用 `cc` 命令”。
70
4
 
71
5
  ---
72
6
 
73
- ## 删除自定义设置主对象
74
-
75
- 路径:`{服务名称}/api/customsetting/deleteobj`
7
+ ## 覆盖范围
76
8
 
77
- 方法:POST
9
+ 通过 `cc` 管理自定义设置主记录:
78
10
 
79
- 接口描述:删除一条自定义设置主记录。
80
-
81
- ### 请求参数
82
-
83
- | 参数名称 | 类型 | 是否必须 | 默认值 | 备注 |
84
- | :--- | :--- | :--- | :--- | :--- |
85
- | objid | string | 必须 | — | 记录id |
11
+ - 列表查询
12
+ - 详情查询
13
+ - 新建/编辑(save 透传)
14
+ - 删除
15
+ - 文档查看
86
16
 
87
17
  ---
88
18
 
89
- ## 查询自定义设置详情(含字段列表)
90
-
91
- 路径:`{服务名称}/api/customsetting/detail`
92
-
93
- 方法:POST
19
+ ## 命令速查
94
20
 
95
- 接口描述:详情页使用,返回主对象信息及 `cusFields` 字段列表。
96
-
97
- ### 请求参数
98
-
99
- | 参数名称 | 类型 | 是否必须 | 默认值 | 备注 |
100
- | :--- | :--- | :--- | :--- | :--- |
101
- | objid | string | 必须 | — | 记录id |
102
-
103
- ---
104
-
105
- ## 进入字段编辑(取字段编辑所需数据)
106
-
107
- 路径:`{服务名称}/api/customsetting/editfile`
21
+ ```bash
22
+ # 文档
23
+ cc doc customSetting
108
24
 
109
- 方法:POST
25
+ # 列表(condition 可选)
26
+ cc get customSetting <projectPath> [encodedCondJson]
110
27
 
111
- 接口描述:点击某字段「编辑」时调用,用于打开字段编辑器。
28
+ # 详情
29
+ cc detail customSetting <projectPath> <settingId>
112
30
 
113
- ### 请求参数
31
+ # 新建/编辑(请求体透传到 save)
32
+ cc create customSetting <projectPath> <encodedBodyJson>
114
33
 
115
- | 参数名称 | 类型 | 是否必须 | 默认值 | 备注 |
116
- | :--- | :--- | :--- | :--- | :--- |
117
- | queryrecordid | string | 必须 | — | 字段行 id |
34
+ # 删除主记录
35
+ cc delete customSetting <projectPath> <settingId>
36
+ ```
118
37
 
119
38
  ---
120
39
 
121
- ## 删除自定义字段
122
-
123
- 路径:`{服务名称}/api/customsetting/deletefield`
124
-
125
- 方法:POST
126
-
127
- 接口描述:在详情页删除某条自定义字段。
128
-
129
- ### 请求参数
130
-
131
- | 参数名称 | 类型 | 是否必须 | 默认值 | 备注 |
132
- | :--- | :--- | :--- | :--- | :--- |
133
- | id | string | 必须 | — | 字段行 id |
134
- | objid | string | 必须 | — | 所属自定义设置 id |
40
+ ## 参数说明
135
41
 
136
- ---
42
+ - `projectPath`:项目根目录(包含 `cloudcc-cli.config.js`)。
43
+ - `encodedCondJson`:`encodeURI(JSON.stringify({...}))` 形式的查询体。
44
+ - `encodedBodyJson`:`encodeURI(JSON.stringify({...}))` 形式的保存请求体。
137
45
 
46
+ 示例:
138
47
 
139
- ## 自定义字段类型静态配置
140
- > 前端静态配置,非后端接口返回)
141
- ```json
142
- [
143
- {
144
- "id": "0001",
145
- "name": "URL",
146
- "type": "U",
147
- "address": "允许用户输入任何有效的网址。如果用户单击该字段,将根据用户选择的模式在浏览器的新窗口或当前窗口中打开该 URL。系统默认在浏览器的新窗口中打开该URL。"
148
- },
149
- {
150
- "id": "0002",
151
- "name": "百分比",
152
- "type": "P",
153
- "address": "允许用户输入百分比数字(例如,10),并自动向数字添加百分号。"
154
- },
155
- {
156
- "id": "0003",
157
- "name": "币种",
158
- "type": "c",
159
- "address": "币种"
160
- },
161
- {
162
- "id": "0004",
163
- "name": "电话",
164
- "type": "H",
165
- "address": "允许用户输入任何电话号码。自动将其转换为电话号码格式。"
166
- },
167
- {
168
- "id": "0005",
169
- "name": "电子邮件",
170
- "type": "E",
171
- "address": "允许用户输入电子邮件地址,对其进行验证以确保格式正确。如果对于一个联系人和潜在客户指定了此字段,则用户单击“发送电子邮件”时可以选择地址。注意,自定义电子邮件地址无法用于批量电子邮件。"
172
- },
173
- {
174
- "id": "0006",
175
- "name": "复选框",
176
- "type": "B",
177
- "address": "允许用户选择“真”(选取)或“假”(不选取)值。"
178
- },
179
- {
180
- "id": "0007",
181
- "name": "日期",
182
- "type": "D",
183
- "address": "允许用户输入日期或从弹出式日历中选择日期。"
184
- },
185
- {
186
- "id": "0008",
187
- "name": "日期和时间",
188
- "type": "F",
189
- "address": "允许用户输入日期和时间,或从弹出式日历中选择日期。当用户单击弹出式日历中的某个日期后,该日期和当前时间将输入到日期/时间字段。"
190
- },
191
- {
192
- "id": "0009",
193
- "name": "数字",
194
- "type": "N",
195
- "address": "允许用户输入任何数字。将删除前置零。"
196
- },
197
- {
198
- "id": "0010",
199
- "name": "文本",
200
- "type": "S",
201
- "address": "允许用户输入任何字母和数字组合。"
202
- },
203
- {
204
- "id": "0011",
205
- "name": "长文本",
206
- "type": "X",
207
- "address": "允许用户输入多行文本,最多可输入 4000 个字符。"
208
- }
209
- ]
48
+ ```bash
49
+ cc get customSetting . "$(node -e 'console.log(encodeURI(JSON.stringify({shownum:20,showpage:1})))')"
210
50
  ```
211
51
 
212
- ## 保存字段(新增/编辑字段)
213
- 路径:`{服务名称}/api/customsetting/saveField`
214
- 方法:POST
215
- 接口描述:在自定义设置详情页中保存字段定义(字段新建或编辑)。
216
- ### 请求参数
217
- | 参数名称 | 类型 | 是否必须 | 默认值 | 备注 |
218
- | :--- | :--- | :--- | :--- | :--- |
219
- | tpSysSchemetableVO | object | 必须 | — | 字段对象,见下方子字段表 |
220
- | fdtype | string | 必须 | — | 字段类型代码(如 `U` 表示 URL) |
221
- **tpSysSchemetableVO 子字段:**
222
- | 参数名称 | 类型 | 是否必须 | 默认值 | 备注 |
223
- | :--- | :--- | :--- | :--- | :--- |
224
- | schemetableId | string | 必须 | — | 所属自定义设置(对象)id |
225
- | id | string | 非必须 | — | 字段 id;编辑时传,新增可不传或传空 |
226
- | nameLabel | string | 必须 | — | 字段显示名称(标签) |
227
- | apiname | string | 必须 | — | 字段 API 名 |
228
- | edittype | string | 非必须 | — | 字段编辑类型(例如 URL 打开方式 `_blank`) |
229
- | schemefieldLength | string | 非必须 | — | 字段长度 |
230
- | defaultValue | string | 非必须 | — | 默认值 |
231
- | datafieldRef | string | 非必须 | — | 数据字段引用名 |
232
- | isDeleted | string | 非必须 | `"0"` | 删除标记 |
233
- | fieldState | string | 非必须 | `"enable"` | 字段状态 |
234
- | iscustom | string | 非必须 | `"1"` | 是否自定义字段 |
235
- | schemefieldType | string | 必须 | — | 字段类型代码(例如 `U`) |
236
- | schemefieldName | string | 必须 | — | 字段物理名/存储名 |
237
-
238
-
52
+ ```bash
53
+ cc create customSetting . "$(node -e 'console.log(encodeURI(JSON.stringify({label:\"DemoSetting\",schemetableName:\"demo_setting\",setType:\"list\",shareType:\"public\",description:\"demo\"})))')"
54
+ ```
239
55
 
56
+ ---
240
57
 
58
+ ## 说明与边界
241
59
 
60
+ - `create customSetting` 是“透传模式”:请求体字段需符合平台 `save` 接口契约。
61
+ - 字段级管理(如 `saveField`、`deletefield`)当前未单独封装命令;建议在平台页面完成,或后续再补 `cc` 子命令。
62
+ - 生产环境执行删除前,先做依赖检查与备份。
@@ -1,6 +1,7 @@
1
1
  ## 目标
2
2
 
3
- 让开发者(或 AI)在一台新机器上,完成 `cloudcc-cli` 的安装、模板项目创建、开发密钥配置,并能通过 `cc` 命令进行开发与发布。
3
+ 让开发者(或 AI)在一台新机器上,完成 `cloudcc-cli`
4
+ 的安装、模板项目创建、开发密钥配置,并能通过 `cc` 命令进行开发与发布。
4
5
 
5
6
  ---
6
7
 
@@ -22,7 +23,7 @@ sudo npm i -g cloudcc-cli
22
23
  cc -v
23
24
  ```
24
25
 
25
- > 说明:`cc` 是该 CLI 的统一入口命令之一(见本仓库 `package.json` 的 bin 配置)。
26
+ > 说明:`cc` 是该 CLI 的统一入口命令之一。
26
27
 
27
28
  ---
28
29
 
@@ -47,13 +48,15 @@ npm run serve
47
48
 
48
49
  你需要一个具备“代码管理/开发者权限”的账号。
49
50
 
50
- - **开发者密钥(CloudCCDev)**:在 CRM 后台「连接的应用程序」中新建后获取并复制。
51
+ - **开发者密钥(CloudCCDev)**:在 CRM
52
+ 后台「连接的应用程序」中新建后获取并复制。
51
53
  - **安全标记(safetyMark)**:在个人设置中重置安全标记后,通过邮箱获取。
52
54
 
53
55
  ### 写入项目的 `cloudcc-cli.config.js`
54
56
 
55
- 模板项目根目录通常会有 `cloudcc-cli.config.js`(或你们约定的同名配置文件),核心原则:
57
+ 模板项目根目录通常会有
58
+ `cloudcc-cli.config.js`(或你们约定的同名配置文件),核心原则:
56
59
 
57
60
  - **多环境**:用 `use` 字段选择当前环境(如 `dev/uat/prod`)。
58
- - **不要提交真实密钥到 Git**:建议 `.gitignore` 忽略配置文件,或用本地私密文件方式管理。
59
-
61
+ - **不要提交真实密钥到 Git**:建议 `.gitignore`
62
+ 忽略配置文件,或用本地私密文件方式管理。
@@ -3,10 +3,12 @@
3
3
  本篇聚焦用 `cloudcc-cli` 的 `cc` 命令完成:
4
4
 
5
5
  - 创建自定义对象(Custom Object)
6
+ - 删除自定义对象
6
7
  - 查询对象列表
7
8
  - 查询对象字段
8
9
  - 为对象创建字段(支持多字段类型)
9
- -(可选)创建菜单、创建应用(把对象挂到导航中)
10
+ - 删除字段
11
+ -(可选)创建菜单、创建应用(把对象挂到导航中)
10
12
 
11
13
  ---
12
14
 
@@ -21,14 +23,40 @@
21
23
 
22
24
  ```bash
23
25
  cc create object <projectPath> <label>
26
+ cc create object <projectPath> <label> <nameLabel>
24
27
  ```
25
28
 
26
29
  示例:
27
30
 
28
31
  ```bash
29
32
  cc create object . 客户
33
+ cc create object . 客户 customer_custom_object
30
34
  ```
31
35
 
36
+ 说明:
37
+
38
+ - `nameLabel` 可选,不传时会由工具根据 `label` 自动生成(例如 `customer_custom_object`)。
39
+
40
+ ---
41
+
42
+ ## 删除自定义对象
43
+
44
+ ### CLI 命令(项目已有实现)
45
+
46
+ ```bash
47
+ cc delete object <projectPath> <objid>
48
+ ```
49
+
50
+ 示例:
51
+
52
+ ```bash
53
+ cc delete object . 20261EF49B88F9269cVr
54
+ ```
55
+
56
+ 说明:
57
+
58
+ - `objid` 为对象 ID,可先用 `cc get object <projectPath> custom` 查询。
59
+
32
60
  ---
33
61
 
34
62
  ## 查询对象列表
@@ -36,19 +64,27 @@ cc create object . 客户
36
64
  ### CLI 命令(输出 JSON)
37
65
 
38
66
  ```bash
39
- # type 可选:standard / custom / both(默认:both)
67
+ # type 可选:standard / custom / chat / trigger / fields
68
+ # 不传 type 时返回 standard + custom
40
69
  cc get object <projectPath> [type]
70
+
71
+ # 当 type=fields 时,需要额外传对象 JSON(至少含 objprefix)
72
+ cc get object <projectPath> fields <encodedObjectJson>
41
73
  ```
42
74
 
43
75
  示例:
44
76
 
45
77
  ```bash
46
- cc get object . both
78
+ cc get object .
79
+ cc get object . custom
80
+ cc get object . fields "$(node -e 'console.log(encodeURI(JSON.stringify({objprefix:\"a01\"})))')"
47
81
  ```
48
82
 
49
83
  用途:
50
84
 
51
85
  - 获取对象 `objprefix` / 对象 `id`(后续创建字段、触发器会用到)
86
+ - `type=trigger` 时可拿到触发器创建所需的目标对象信息
87
+ - `type=fields` 时用于基于对象前缀查询字段(需额外传 encodedObjectJson,通常更建议直接使用 `cc get fields`)
52
88
 
53
89
  ---
54
90
 
@@ -94,18 +130,65 @@ cc create fields <projectPath> <fieldType> <objid> <nameLabel> [ptext|lookupObj]
94
130
 
95
131
  ---
96
132
 
133
+ ## 删除字段(Field)
134
+
135
+ ### CLI 命令(项目已有实现)
136
+
137
+ ```bash
138
+ cc delete fields <projectPath> <fieldId> <objid>
139
+ ```
140
+
141
+ 示例:
142
+
143
+ ```bash
144
+ cc delete fields . ffe2026F12B15D3sCX5R 202688F2CF34EE6vnMQ5
145
+ ```
146
+
147
+ 说明:
148
+
149
+ - 删除接口为“彻底删除”,执行前请确认该字段未被公式字段、触发器、脚本、页面布局依赖。
150
+
151
+ ---
152
+
97
153
  ## 菜单与应用(让对象可访问)
98
154
 
99
155
  ### 创建菜单(CLI)
100
156
 
101
157
  ```bash
102
- cc create menu <type> <projectPath> <resourceId> <tabName> [tabStyle] [mobileimg] [cloudccservicetab]
158
+ cc create menu object <projectPath> <objectId> <tabName> [tabStyle] [mobileimg] [cloudccservicetab]
159
+ cc create menu page <projectPath> <pageApi> <tabName> <pname> [tabStyle] [mobileimg] [cloudccservicetab] [mobileurl]
160
+ cc create menu script <projectPath> <scriptId> <tabName> [tabStyle] [mobileimg] [cloudccservicetab]
161
+ cc create menu site <projectPath> <siteId> <tabName> [tabStyle] [mobileimg] [cloudccservicetab]
103
162
  ```
104
163
 
105
164
  示例:
106
165
 
107
166
  ```bash
108
167
  cc create menu object . <objectId> "我的对象菜单"
168
+ cc create menu page . contract-assistant "合同助手" contract_assistant_menu
169
+ ```
170
+
171
+ 说明:
172
+
173
+ - `pageApi` 为自定义页面 API 名,命令内部会自动拼接为 `lightningPage`(`pageApi#lightning`)。
174
+ - `create menu page` 的 `pageType` 固定为 `customPage`,`mobileurl` 默认空字符串。
175
+ - `pname` 为菜单名称字段,必填。
176
+
177
+ ### 查询菜单(CLI)
178
+
179
+ ```bash
180
+ cc get menu <projectPath> [encodedCondJson]
181
+ ```
182
+
183
+ 说明:
184
+
185
+ - 接口若返回分组结构(如 `botlist/objectlist/objlist/pagelist/scriptlist`),CLI 会自动聚合为数组并输出。
186
+ - 聚合结果每一项会附带 `__group` 字段,表示来源分组。
187
+
188
+ ### 删除菜单(CLI)
189
+
190
+ ```bash
191
+ cc delete menu <projectPath> <tabId>
109
192
  ```
110
193
 
111
194
  ### 创建应用(CLI)
@@ -114,7 +197,18 @@ cc create menu object . <objectId> "我的对象菜单"
114
197
  cc create application <projectPath> <appName> <appCode> [menuIds]
115
198
  ```
116
199
 
200
+ ### 查询应用(CLI)
201
+
202
+ ```bash
203
+ cc get application <projectPath> [encodedCondJson]
204
+ ```
205
+
206
+ ### 删除应用(CLI)
207
+
208
+ ```bash
209
+ cc delete application <projectPath> <appId>
210
+ ```
211
+
117
212
  说明:
118
213
 
119
214
  - `menuIds`:可选,多个用逗号分隔;系统会确保默认菜单 `acf000001` 被包含。
120
-
@@ -4,6 +4,21 @@
4
4
 
5
5
  ---
6
6
 
7
+ ## 设计前阅读(先看模块文档)
8
+
9
+ 在做需求拆解与技术方案设计前,优先阅读 `docs` 目录中对应模块说明,先建立能力边界与适用场景认知,再进行选型与设计,避免组件误选。
10
+
11
+ - 自定义类:`docs/自定义类.md`
12
+ - 触发器:`docs/触发器类.md`
13
+ - 定时类:`docs/cloudcc定时类.md`
14
+ - 定时作业:`docs/cloudcc定时作业.md`
15
+ - 自定义页面:`docs/自定义页面.md`
16
+ - 自定义组件:`docs/CloudCC自定义组件使用说明.md`
17
+
18
+ 如需求涉及多个模块,按“后端能力 -> 页面能力 -> 组合方案”顺序阅读,再输出拆解结果与交付物清单。
19
+
20
+ ---
21
+
7
22
  ## 需求拆解模板(AI 必须输出)
8
23
 
9
24
  拿到需求后,先输出以下结构(缺信息则显式标注“待确认”):
@@ -1,6 +1,6 @@
1
1
  ---
2
2
  name: cloudcc-cli-dev
3
- description: CloudCC CRM 二次开发 CLI 助手。用于需求拆解与方案选型,并通过 cloudcc-cli(cc 命令)创建/拉取/发布自定义对象、字段、菜单/应用、自定义类、定时器、触发器与 Vue 自定义组件等资产。用户提到 CloudCC、cloudcc-cli、cc 命令、对象/字段/触发器/定时器/自定义组件 时应优先使用。
3
+ description: CloudCC CRM 二次开发 CLI 助手。用于需求拆解与方案选型,并通过 cloudcc-cli(cc 命令)创建/拉取/发布类、定时类、定时作业、触发器、自定义组件、自定义页面、自定义设置、客户端脚本与静态资源。用户提到 CloudCC、cloudcc-cli、cc 命令、类/定时类/定时作业/触发器/自定义组件/自定义页面/自定义设置/客户端脚本/静态资源 时应优先使用。
4
4
  ---
5
5
 
6
6
  # CloudCC CLI Development Skill
@@ -10,19 +10,39 @@ description: CloudCC CRM 二次开发 CLI 助手。用于需求拆解与方案
10
10
 
11
11
  ## 工作目录
12
12
  - 在openclaw环境中,需要在agent的workspace中创建code文件夹,然后在code文件中使用cc create project xxx,创建一个模版项目。
13
+ - 每次启动这个技能,要扫描下code文件夹,查看创建的项目
13
14
 
14
15
  ## 使用方式(AI 必须遵循)
15
16
 
16
- - 先阅读 `REQUIREMENTS_BREAKDOWN.md`,输出需求拆解与交付物清单,再进入落地步骤。
17
+ - 设计实现方案时,重点阅读 `REQUIREMENTS_BREAKDOWN.md`,输出需求拆解与交付物清单,发开时可以忽略
17
18
  - 需要环境/密钥 配置时,阅读 `INSTALL_AND_BOOTSTRAP.md`。
18
19
  - 需要建模时(对象/字段/菜单/应用),阅读 `OBJECTS_AND_FIELDS.md`。
19
- - 需要后端逻辑时(类/定时器/触发器),按主题阅读:
20
+ - 需要开发后端逻辑时(类/定时器/触发器),按主题阅读:
20
21
  - `BACKEND_CLASS.md`
21
22
  - `BACKEND_SCHEDULE.md`
22
23
  - `BACKEND_TRIGGER.md`
23
- - 需要自定义组件时,阅读 `VUE_CUSTOM_COMPONENT.md`。
24
+ - 需要开发自定义组件时,阅读 `VUE_CUSTOM_COMPONENT.md`。
25
+ - 需要开发自定义页面时,阅读 `VUE_CUSTOM_PAGE.md`。
26
+ - 需要开发自定义设置时,阅读 `CUSTOM-SETTING-API.md`。
27
+ - 需要管理静态资源时,阅读 `STATIC-RESOURCE-API.md`。
28
+ - 需要开发客户端脚本时,优先阅读 `CLI_CHEATSHEET.md` 中的 `script` 命令章节。
24
29
  - 需要快速对照命令与参数时,阅读 `CLI_CHEATSHEET.md`。
25
30
 
31
+ ## 密钥配置
32
+
33
+ 密钥应配置在每个项目的 `cloudcc-cli.config.js` 文件中,不要存储在技能目录中。
34
+
35
+ 示例配置:
36
+ ```javascript
37
+ module.exports = {
38
+ "use": "junjiedemo",
39
+ "junjiedemo": {
40
+ "safetyMark": "xxx",
41
+ "CloudCCDev": "xxx"
42
+ }
43
+ }
44
+ ```
45
+
26
46
  ## 强制安全边界
27
47
 
28
48
  - 不要在输出/代码/提交中包含真实密钥(`CloudCCDev`、`safetyMark`、`secretKey`、`openSecretKey`、token
@@ -37,8 +57,10 @@ description: CloudCC CRM 二次开发 CLI 助手。用于需求拆解与方案
37
57
  - 安装与初始化:`INSTALL_AND_BOOTSTRAP.md`
38
58
  - 需求拆解与方案选择:`REQUIREMENTS_BREAKDOWN.md`
39
59
  - 自定义对象与字段:`OBJECTS_AND_FIELDS.md`
40
- - 自定义类:`BACKEND_CLASS.md`
41
- - 定时类:`BACKEND_SCHEDULE.md`
42
- - 触发器:`BACKEND_TRIGGER.md`
60
+ - 类/定时类/定时作业/触发器:`BACKEND_CLASS.md`、`BACKEND_SCHEDULE.md`、`BACKEND_TRIGGER.md`
43
61
  - Vue 自定义组件:`VUE_CUSTOM_COMPONENT.md`
62
+ - 自定义页面:`VUE_CUSTOM_PAGE.md`
63
+ - 自定义设置:`CUSTOM-SETTING-API.md`
64
+ - 静态资源:`STATIC-RESOURCE-API.md`
65
+ - 客户端脚本:`CLI_CHEATSHEET.md`(`script` 章节)
44
66
  - CLI 速查:`CLI_CHEATSHEET.md`
@@ -0,0 +1,60 @@
1
+ # 静态资源(cc 命令模式)
2
+
3
+ 本文已从“直接 API 文档”重构为“`cc` 命令优先”。
4
+
5
+ ---
6
+
7
+ ## 覆盖范围
8
+
9
+ 通过 `cc` 管理静态资源:
10
+
11
+ - 列表查询
12
+ - 详情查询
13
+ - 删除
14
+ - 容量统计
15
+ - 文档查看
16
+
17
+ ---
18
+
19
+ ## 命令速查
20
+
21
+ ```bash
22
+ # 文档
23
+ cc doc staticResource
24
+
25
+ # 列表(condition 可选)
26
+ cc get staticResource <projectPath> [encodedCondJson]
27
+
28
+ # 详情
29
+ cc detail staticResource <projectPath> <resourceId>
30
+
31
+ # 删除
32
+ cc delete staticResource <projectPath> <resourceId>
33
+
34
+ # 容量统计
35
+ cc count staticResource <projectPath> [encodedCondJson]
36
+ ```
37
+
38
+ ---
39
+
40
+ ## 参数说明
41
+
42
+ - `projectPath`:项目根目录(包含 `cloudcc-cli.config.js`)。
43
+ - `encodedCondJson`:`encodeURI(JSON.stringify({...}))` 形式条件参数。
44
+
45
+ 示例:
46
+
47
+ ```bash
48
+ cc get staticResource . "$(node -e 'console.log(encodeURI(JSON.stringify({label:\"logo\"})))')"
49
+ ```
50
+
51
+ ```bash
52
+ cc count staticResource .
53
+ ```
54
+
55
+ ---
56
+
57
+ ## 说明与边界
58
+
59
+ - 当前未封装“文件上传/更新”命令(`saveStaticResource` 涉及 `FormData` 上传文件)。
60
+ - 需要上传文件时,建议使用平台页面操作;后续可按需求补 `cc create staticResource`。