create-jnrs-vue 1.2.33 → 1.2.35

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 (28) hide show
  1. package/README.md +18 -2
  2. package/jnrs-vue/{agentic → AGENTS}/RULES_API.md +1 -1
  3. package/jnrs-vue/{agentic → AGENTS}/RULES_BASE.md +2 -0
  4. package/jnrs-vue/{agentic → AGENTS}/RULES_CRUD.md +7 -7
  5. package/jnrs-vue/{agentic → AGENTS}/RULES_DEPENDENCIES.md +1 -1
  6. package/jnrs-vue/README.md +3 -3
  7. package/jnrs-vue/package.json +4 -4
  8. package/jnrs-vue/public/system/menu.json +20 -94
  9. package/jnrs-vue/src/api/{agentic → demos}/project.ts +42 -0
  10. package/jnrs-vue/src/components/select/SelectManager.vue +1 -1
  11. package/jnrs-vue/src/views/{agentic → demos}/crud/EditDialog.vue +2 -2
  12. package/jnrs-vue/src/views/demos/crud/index.vue +80 -210
  13. package/jnrs-vue/src/views/demos/{unitTest → playground}/RequestPage.vue +13 -53
  14. package/jnrs-vue/src/views/home/index.vue +8 -8
  15. package/jnrs-vue/src/views/lingshuSmart/editorPage.vue +1 -2
  16. package/jnrs-vue/tsconfig.json +3 -3
  17. package/package.json +1 -1
  18. package/jnrs-vue/src/api/demos/ai_agent_context.ts +0 -159
  19. package/jnrs-vue/src/api/demos/index.ts +0 -213
  20. package/jnrs-vue/src/composables/useCrud.ts +0 -323
  21. package/jnrs-vue/src/views/agentic/crud/index.vue +0 -255
  22. package/jnrs-vue/src/views/demos/compositionCrud/index.vue +0 -350
  23. package/jnrs-vue/src/views/demos/compositionTable/index.vue +0 -85
  24. package/jnrs-vue/src/views/demos/simpleTable/index.vue +0 -41
  25. package/jnrs-vue/{agentic → AGENTS}/RULES_COMMON.md +0 -0
  26. package/jnrs-vue/{agentic → AGENTS}/RULES_MENU.md +0 -0
  27. package/jnrs-vue/src/api/{agentic → demos}/manager.ts +0 -0
  28. package/jnrs-vue/src/views/demos/{unitTest → playground}/index.vue +1 -1
package/README.md CHANGED
@@ -1,13 +1,17 @@
1
1
  # create-jnrs-vue
2
2
 
3
3
  ## ✨ 介绍
4
+
4
5
  巨能前端工程化开发,Vue 项目模板脚手架
5
6
 
6
7
  ## 💻 技术栈
8
+
7
9
  TypeScript、Vue3 生态
8
10
 
9
11
  ## 🧩 安装使用说明
12
+
10
13
  新项目默认名称为 jnrs-vue
14
+
11
15
  ```shell
12
16
  # ✅ 正确用法
13
17
  # 创建新项目
@@ -27,9 +31,23 @@ pnpm build
27
31
  pnpm add create-jnrs-vue
28
32
  ```
29
33
 
34
+ ## 🤖 AI Agent 使用说明
35
+
36
+ - 前置准备
37
+ - 将业务功能原型图作为生成前端代码的参考图
38
+ - 从 api 工具(如 ApiFox) 中导出 openapi 文档,或接入其提供的 MCP 服务
39
+ - 使用 AI Agent 读取并分析当前 `README.md` 文件及 `/AGENTS/RULES_BASE.md` 文件并作为 IDE AI Agent 的记忆
40
+ - 预置提示词
41
+ - 保存记忆:`读取并分析当前 README.md 文件及 /AGENTS/RULES_BASE.md 文件并作为 IDE AI Agent 的记忆`
42
+ - 生成菜单:`根据提供的菜单原型图,生成菜单`
43
+ - 生成服务文件:`根据提供的 openapi 文档或 MCP 服务,生成API 服务文件`
44
+ - 生成增删改查页面文件:`根据提供的界面原型图,生成增删改查页面文件`
45
+
30
46
  ## 📂 模板项目主要结构
47
+
31
48
  ```Text
32
49
  jnrs-vue/
50
+ ├── AGENTS/ # AI Agent 规则与提示词
33
51
  ├── viteMockServe/ # Mock 服务配置
34
52
  ├── public/ # 静态资源
35
53
  ├── src/ # 源码目录
@@ -58,5 +76,3 @@ jnrs-vue/
58
76
  ├── .prettierrc.json # Prettier 格式化配置
59
77
  ├── .cspell.json # Cspell 拼写检查
60
78
  ```
61
-
62
-
@@ -1,6 +1,6 @@
1
1
  # API 服务文件配置规则(Service Layer)
2
2
 
3
- 说明:对提供的 `open api` 进行业务模块解析,最终生成的 `API 服务文件(Service Layer)`代码示例参考 /src/api/agentic/project.ts,最终目的是作为 AI Agent 提示词,基于每个业务模块的 Service Layer 文件直接生成 views 等代码,便于 Vibe Coding。
3
+ 说明:对提供的 `open api` 进行业务模块解析,最终生成的 `API 服务文件(Service Layer)`代码示例参考 /src/api/AGENTS/project.ts,最终目的是作为 AI Agent 提示词,基于每个业务模块的 Service Layer 文件直接生成 views 等代码,便于 Vibe Coding。
4
4
 
5
5
  ## apifox 中对于 open api 的导出规则
6
6
 
@@ -5,4 +5,6 @@
5
5
  - `生成菜单` 时,参考 [菜单配置规则](./RULES_MENU.md)
6
6
  - `生成增删改查页面` 时,参考 [增删改查页面配置规则](./RULES_CRUD.md)
7
7
 
8
+ - 严格按照 ESLint 规范进行编码,参考 [eslint config](../../eslint.config.js)
9
+ - 代码风格按照 Prettier 规范进行编码,参考 [prettierrc config](../../prettierrc.json)
8
10
  - 所有新创建的文件或目录都使用小驼峰命名,命名需简洁精炼,不同目录下但是属于同一个模块的文件命名应保持统一,如 `/src/views/productManagement.vue`、`/src/api/productManagement.ts`
@@ -6,13 +6,13 @@
6
6
 
7
7
  作用:作为上下文权重数组的索引表,基于权重数据来决定下列文件作为上下文的相关性,权重值区间:[-1, 1]。
8
8
 
9
- | 特征文件路径 | 特征描述 | 特征索引 |
10
- | --------------------------------------------------------------------------- | ---------------------------------------------------------------- | -------- |
11
- | /agentic/RULES_BASE.md | 基础规则 | 0 |
12
- | /agentic/RULES_DEPENDENCIES.md | 工程外部依赖包提供的能力 | 1 |
13
- | /agentic/RULES_COMMON.md | 工程内部提供的通用能力 | 2 |
14
- | /src/views/agentic/crud/index.vue 和 /src/views/agentic/crud/EditDialog.vue | 具体的业务功能:数据列表页、新增&修改弹窗面 | 3 |
15
- | /src/api/agentic/project.ts | API 服务文件(Service Layer),即具体的业务功能 API 函数及类型系统 | 4 |
9
+ | 特征文件路径 | 特征描述 | 特征索引 |
10
+ | ----------------------------------------------------------------------- | ---------------------------------------------------------------- | -------- |
11
+ | /AGENTS/RULES_BASE.md | 基础规则 | 0 |
12
+ | /AGENTS/RULES_DEPENDENCIES.md | 工程外部依赖包提供的能力 | 1 |
13
+ | /AGENTS/RULES_COMMON.md | 工程内部提供的通用能力 | 2 |
14
+ | /src/views/demos/crud/index.vue 和 /src/views/demos/crud/EditDialog.vue | 具体的业务功能:数据列表页、新增&修改弹窗面 | 3 |
15
+ | /src/api/demos/project.ts | API 服务文件(Service Layer),即具体的业务功能 API 函数及类型系统 | 4 |
16
16
 
17
17
  ## 通用规则约束
18
18
 
@@ -1,6 +1,6 @@
1
1
  # 工程外部提供的作用域依赖包的规则
2
2
 
3
- 说明:使用当前工程依赖 `@jnrs` 命名空间下的包时,如:`@jnrs/shared`、`@jnrs/vue-core`、`@jnrs/lingshu-smart`,详细描述参考各自的 `README.md` 和 `AGENTIC.md` 文件。
3
+ 说明:使用当前工程依赖 `@jnrs` 命名空间下的包时,如:`@jnrs/shared`、`@jnrs/vue-core`、`@jnrs/lingshu-smart`,详细描述参考各自的 `README.md` 和 `AGENTS.md` 文件。
4
4
 
5
5
  ## 使用优先级
6
6
 
@@ -21,9 +21,9 @@ pnpm build
21
21
  - 前置准备
22
22
  - 将业务功能原型图作为生成前端代码的参考图
23
23
  - 从 api 工具(如 ApiFox) 中导出 openapi 文档,或接入其提供的 MCP 服务
24
- - 使用 AI Agent 读取并分析当前 `README.md` 文件及 `/agentic/RULES_BASE.md` 文件并作为 IDE AI Agent 的记忆
24
+ - 使用 AI Agent 读取并分析当前 `README.md` 文件及 `/AGENTS/RULES_BASE.md` 文件并作为 IDE AI Agent 的记忆
25
25
  - 预置提示词
26
- - 保存记忆:`读取并分析当前 README.md 文件及 /agentic/RULES_BASE.md 文件并作为 IDE AI Agent 的记忆`
26
+ - 保存记忆:`读取并分析当前 README.md 文件及 /AGENTS/RULES_BASE.md 文件并作为 IDE AI Agent 的记忆`
27
27
  - 生成菜单:`根据提供的菜单原型图,生成菜单`
28
28
  - 生成服务文件:`根据提供的 openapi 文档或 MCP 服务,生成API 服务文件`
29
29
  - 生成增删改查页面文件:`根据提供的界面原型图,生成增删改查页面文件`
@@ -32,7 +32,7 @@ pnpm build
32
32
 
33
33
  ```Text
34
34
  jnrs-vue/
35
- ├── agentic/ # AI Agent 规则与提示词
35
+ ├── AGENTS/ # AI Agent 规则与提示词
36
36
  ├── viteMockServe/ # Mock 服务配置
37
37
  ├── public/ # 静态资源
38
38
  ├── src/ # 源码目录
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "jnrs-vue",
3
- "version": "1.2.33",
3
+ "version": "1.2.35",
4
4
  "description": "JNRS 信息化管理系统",
5
5
  "author": "talia_tan",
6
6
  "private": true,
@@ -19,9 +19,9 @@
19
19
  },
20
20
  "dependencies": {
21
21
  "@element-plus/icons-vue": "^2.3.2",
22
- "@jnrs/lingshu-smart": "2.2.19",
23
- "@jnrs/shared": "1.1.24",
24
- "@jnrs/vue-core": "1.2.17",
22
+ "@jnrs/lingshu-smart": "2.2.27",
23
+ "@jnrs/shared": "1.1.26",
24
+ "@jnrs/vue-core": "1.2.20",
25
25
  "@vueuse/core": "^14.1.0",
26
26
  "element-plus": "^2.13.3",
27
27
  "pinia": "^3.0.4",
@@ -6,115 +6,33 @@
6
6
  "meta": {
7
7
  "title": "面向智能体开发",
8
8
  "icon": "ChatDotRound",
9
- "todoCount":2
10
- },
11
- "children": [
12
- {
13
- "path": "/agenticCrud",
14
- "name": "agenticCrud",
15
- "meta": {
16
- "title": "项目管理",
17
- "todoCount": 0
18
- },
19
- "component": "/agentic/crud/index"
20
- }]
21
- },
22
- {
23
- "meta": {
24
- "title": "功能演示",
25
- "icon": "StarFilled",
26
- "todoCount": 4
9
+ "todoCount": 2
27
10
  },
28
11
  "children": [
29
12
  {
30
- "path": "/unitTest",
31
- "name": "unitTest",
13
+ "path": "/playground",
14
+ "name": "playground",
32
15
  "meta": {
33
16
  "title": "基础功能测试",
34
17
  "todoCount": 8
35
18
  },
36
- "component": "/demos/unitTest/index"
37
- },
38
- {
39
- "path": "/simpleTable",
40
- "name": "simpleTable",
41
- "meta": {
42
- "title": "智能体表格模板",
43
- "todoCount": 0
44
- },
45
- "component": "/demos/agenticTable/index"
46
- },
47
- {
48
- "path": "/simpleTable",
49
- "name": "simpleTableData",
50
- "meta": {
51
- "title": "简单数据表格模板",
52
- "todoCount": 0
53
- },
54
- "component": "/demos/simpleTable/index"
55
- },
56
- {
57
- "path": "/compositionTable",
58
- "name": "compositionTable",
59
- "meta": {
60
- "title": "简单数据表格 - 组合式",
61
- "todoCount": 0
62
- },
63
- "component": "/demos/compositionTable/index"
64
- },
65
- {
66
- "path": "/crud",
67
- "name": "crud",
68
- "meta": {
69
- "title": "完整增删改查模板",
70
- "todoCount": 0
71
- },
72
- "component": "/demos/crud/index"
19
+ "component": "/demos/playground/index"
73
20
  },
74
21
  {
75
- "path": "/compositionCrud",
76
- "name": "compositionCrud",
22
+ "path": "/agenticCrud",
23
+ "name": "agenticCrud",
77
24
  "meta": {
78
- "title": "完整增删改查 - 组合式",
25
+ "title": "项目管理",
79
26
  "todoCount": 0
80
27
  },
81
- "component": "/demos/compositionCrud/index"
82
- },
83
- {
84
- "path": "/testRedirect",
85
- "name": "testRedirect",
86
- "meta": {
87
- "title": "重定向测试"
88
- },
89
- "redirect": "/crud"
90
- },
91
- {
92
- "path": "/testAlias",
93
- "name": "testAlias",
94
- "meta": {
95
- "title": "相同component不同path",
96
- "testId": 1
97
- },
98
28
  "component": "/demos/crud/index"
99
29
  }
100
30
  ]
101
31
  },
102
- {
103
- "path": "/visual",
104
- "name": "visual",
105
- "meta": {
106
- "title": "可视化看板",
107
- "icon": "Platform",
108
- "noAuth": true,
109
- "global": true
110
- },
111
- "component": "/visual/index"
112
- },
113
32
  {
114
33
  "meta": {
115
34
  "title": "灵枢智造系统",
116
- "icon": "Promotion",
117
- "todoCount": 2
35
+ "icon": "Promotion"
118
36
  },
119
37
  "children": [
120
38
  {
@@ -141,11 +59,21 @@
141
59
  }
142
60
  ]
143
61
  },
62
+ {
63
+ "path": "/visual",
64
+ "name": "visual",
65
+ "meta": {
66
+ "title": "通用可视化看板",
67
+ "icon": "Platform",
68
+ "noAuth": true,
69
+ "global": true
70
+ },
71
+ "component": "/visual/index"
72
+ },
144
73
  {
145
74
  "meta": {
146
75
  "title": "系统管理",
147
- "icon": "Tools",
148
- "todoCount": 99
76
+ "icon": "Tools"
149
77
  },
150
78
  "children": [
151
79
  {
@@ -153,7 +81,6 @@
153
81
  "name": "systemMine",
154
82
  "meta": {
155
83
  "title": "个人中心",
156
- "todoCount": 999,
157
84
  "permissions": ["mine:view", "mine:edit"]
158
85
  },
159
86
  "component": "/system/mine/index"
@@ -163,7 +90,6 @@
163
90
  "name": "systemUser",
164
91
  "meta": {
165
92
  "title": "用户管理",
166
- "todoCount": 0,
167
93
  "permissions": ["user:view", "user:edit"]
168
94
  },
169
95
  "component": "/system/user/index"
@@ -178,3 +178,45 @@ export const exportProjectApi = (data: Record<string, unknown>): Promise<Blob> =
178
178
  data
179
179
  })
180
180
  }
181
+
182
+ /**
183
+ * 测试 404 错误
184
+ */
185
+ export const NotFoundApi = () => {
186
+ return axiosRequest({
187
+ url: '/notFound',
188
+ method: 'get'
189
+ })
190
+ }
191
+
192
+ /**
193
+ * 测试 不需要权限
194
+ */
195
+ export const NoNeedAuthApi = () => {
196
+ return axiosRequest({
197
+ url: '/auth/no',
198
+ method: 'post',
199
+ noAuth: true // 是否需要权限,默认为 false
200
+ })
201
+ }
202
+
203
+ /**
204
+ * 测试 无权限
205
+ */
206
+ export const NoAuthApi = (showErrorMsg: boolean) => {
207
+ return axiosRequest({
208
+ url: '/auth/no',
209
+ method: 'post',
210
+ showErrorMsg // 是否显示错误信息,默认为 true
211
+ })
212
+ }
213
+
214
+ /**
215
+ * 测试 请求错误
216
+ */
217
+ export const FailApi = () => {
218
+ return axiosRequest({
219
+ url: '/auth/fail',
220
+ method: 'post'
221
+ })
222
+ }
@@ -7,7 +7,7 @@
7
7
  -->
8
8
 
9
9
  <script setup lang="ts">
10
- import { ManagerListApi } from '@/api/agentic/manager'
10
+ import { ManagerListApi } from '@/api/demos/manager'
11
11
  import { JnSelectTemplate } from '@jnrs/vue-core/components'
12
12
  </script>
13
13
 
@@ -9,12 +9,12 @@
9
9
 
10
10
  <script setup lang="ts">
11
11
  import type { FormInstance, FormRules } from 'element-plus'
12
- import type { Project, AddProject, UpdateProject } from '@/api/agentic/project'
12
+ import type { Project, AddProject, UpdateProject } from '@/api/demos/project'
13
13
  import { ref, nextTick } from 'vue'
14
14
  import { ElMessage } from 'element-plus'
15
15
  import { objectMatchAssign, verifyNumberGtZero } from '@jnrs/shared'
16
16
  import { getDictList, downloadFile, extractFieldId } from '@/utils'
17
- import { addProjectApi, editProjectApi } from '@/api/agentic/project'
17
+ import { addProjectApi, editProjectApi } from '@/api/demos/project'
18
18
  import { JnDialog, JnFileUpload } from '@jnrs/vue-core/components'
19
19
  import SelectManager from '@/components/select/SelectManager.vue'
20
20