@jnrs/vue-core 1.2.16 → 1.2.17

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 (2) hide show
  1. package/README.md +6 -229
  2. package/package.json +2 -2
package/README.md CHANGED
@@ -1,7 +1,9 @@
1
1
  # @jnrs/vue-core
2
2
 
3
3
  ## ✨ 介绍
4
+
4
5
  巨能前端工程化开发,Vue 专用核心功能包。
6
+
5
7
  - Pinia store
6
8
  - Vue composables
7
9
  - Vue Router
@@ -10,14 +12,17 @@
10
12
  - 公共 Vue 组件
11
13
 
12
14
  ## 💻 技术栈
15
+
13
16
  TypeScript、Vue3 生态
14
17
 
15
18
  ## 🧩 安装教程
19
+
16
20
  ```shell
17
21
  pnpm add @jnrs/vue-core
18
22
  ```
19
23
 
20
24
  ## 🔍 使用示例
25
+
21
26
  ```typescript
22
27
  import type { IPageData } from '@jnrs/vue-core'
23
28
  import { useRouter, useRoute } from '@jnrs/vue-core/router'
@@ -26,232 +31,4 @@ import { useSystemStore } from '@jnrs/vue-core/pinia'
26
31
 
27
32
  ## 📋 API
28
33
 
29
- #### @jnrs/vue-core 模块
30
- 接口
31
-
32
- - ElSize(Element 尺寸类型)
33
- ```
34
- 类型定义:字面量联合类型
35
- 可选值:'' | 'large' | 'default' | 'small'
36
- ```
37
-
38
- - ElButtonType(Element 按钮类型)
39
- ```
40
- 类型定义:字面量联合类型
41
- 可选值:'default' | 'primary' | 'success' | 'info' | 'warning' | 'text' | 'danger'
42
- ```
43
-
44
- - IMenuItem 菜单项
45
-
46
- | 属性名 | 描述 | 类型 |
47
- |--------|------|------|
48
- | meta | 路由元信息 | `RouteMeta` |
49
- | path | 路径 | `string` |
50
- | name | 名称(可选) | `string` |
51
- | component | 组件路径(可选) | `string` |
52
- | redirect | 重定向路径(可选) | `string` |
53
- | children | 子菜单项(可选) | `IMenuItem[]` |
54
-
55
- - Attachment(文件信息)
56
-
57
- | 属性名 | 描述 | 类型 |
58
- |--------|------|------|
59
- | id | 数据 id | `number` |
60
- | documentId | 文件 id | `number` |
61
- | fileName | 文件名 | `string` |
62
- | uniqueFileName | 文件名唯一标识(用于文件获取 API) | `string` |
63
- | fileType | MIME 类型 | `string` |
64
- | fileSize | 文件大小(单位:字节) | `number` |
65
-
66
- - Pagination(分页)
67
-
68
- | 属性名 | 描述 | 类型 |
69
- |--------|------|------|
70
- | pageNo | 当前页码 | `number` |
71
- | pageSize | 每页大小 | `number` |
72
-
73
- - IPageData<T>(分页列表数据)继承自 IPagination
74
-
75
- | 属性名 | 描述 | 类型 |
76
- |--------|------|------|
77
- | list | 数据列表 | `T[]` |
78
- | count | 数据总数 | `number` |
79
-
80
-
81
- #### @jnrs/vue-core/pinia 模块
82
- 函数
83
- ``` typescript
84
- /**
85
- * useSystemStore 系统仓库
86
- * @returns theme 主题(国际化、主题、自定义强调色)
87
- * @returns menuCollapse 菜单是否折叠
88
- * @returns documentFullscreen 文档是否全屏
89
- * @methods toggleCollapse 折叠菜单切换
90
- * @methods toggleFullScreen 全屏切换
91
- * @methods setTheme 设置主题
92
- */
93
- ```
94
- ``` typescript
95
- /**
96
- * useMenuStore 菜单仓库
97
- * @returns hasFetchedAsyncMenus 菜单是否已获取
98
- * @returns menus 菜单项
99
- * @methods asyncSetMenus 设置菜单信息
100
- * @methods asyncClearMenu 清除菜单信息
101
- */
102
- ```
103
-
104
- #### @jnrs/vue-core/router 模块
105
- 接口
106
- - RouteMeta
107
- - RouteLocationNormalizedGeneric
108
- - RouteLocationNormalizedLoadedGeneric
109
- - FileModules
110
-
111
- 函数
112
- - useRouter 原生 vue-router 函数
113
- - useRoute 原生 vue-router 函数
114
- - handleRouter 路由跳转或替换
115
- - getRoutes 获取已注册路由
116
- - createVueRouter 创建 vue-router 实例
117
- - asyncGenerateRoute 设置动态路由,生成路由记录
118
-
119
- #### @jnrs/vue-core/components 模块
120
- Vue 组件
121
- - JnTable 表格组件
122
-
123
- | 属性名 | 描述 | 类型 | 默认值 |
124
- |--------|------|------|--------|
125
- | data | 表数据 | `Record<string, any>[]` | — |
126
- | rowKey | 行数据的 Key,在使用 reserve-selection 功能与显示树形数据时,该属性是必填的。支持多层访问:user.info.id | `string` | `'id'` |
127
- | showScrollbar | 总是显示横向滚动条 | `boolean` | `false` |
128
- | height | 表格高度,默认为 100% | `string \| number` | `'100%'` |
129
- | autoHeight | 表格高度是否自动计算 | `boolean` | `false` |
130
- | autoHeightOptions | 表格高度自动计算配置项 | `UseReactivityTableHeighOptions` | `{}` |
131
- | showIndexColumn | 是否显示序号列 | `boolean` | `false` |
132
- | showSelectionColumn | 是否显示选择列 | `boolean` | `false` |
133
- | showMouseSelection | 是否开启鼠标框选 | `boolean` | `false` |
134
- | pagination | 当前页码和每页大小(用于序号计算) | `IPagination` | `{ pageNo: 0, pageSize: 0 }` |
135
-
136
- - JnSelectTemplate 选择组件通用模板
137
-
138
- | 属性名 | 描述 | 类型 | 默认值 |
139
- |--------|------|------|--------|
140
- | listApi | 列表接口(必填) | `Function` | — |
141
- | tableName | 列表名称 | `string` | `''` |
142
- | tableWidth | 列表宽度 | `string` | `'60%'` |
143
- | listParams | 列表查询参数 | `Record<string, unknown>` | `{}` |
144
- | listParamsHandle | 列表查询参数前置处理函数 | `(params: Record<string, unknown>) => Record<string, unknown>` | `(params) => params` |
145
- | listParamsHandleAfter | 列表查询参数后置处理函数 | `(params: Record<string, unknown>) => Record<string, unknown>` | `(params) => params` |
146
- | keyValue | 真实数据匹配的键值对名,后续取值赋值都用 keyValue.name 和 keyValue.id | `{ name: string; id: string; [key: string]: string }` | `{ name: 'name', id: 'id' }` |
147
- | optionSecondaryField | keyValue 的拓展字段,用于 el-option 中显示,使用时必须在 keyValue 中定义 | `string` | — |
148
- | modelValue | 双向绑定值(支持多种类型) | `Record<string, unknown> \| Record<string, unknown>[] \| number \| string` | — |
149
- | width | 宽度 | `string` | `'100%'` |
150
- | simpleValue | 简单数据类型,仅返回 keyValue.id | `boolean` | `true` |
151
- | showAllTips | option 组件是否显示 [全部] | `boolean` | `false` |
152
- | onlyOption | 仅显示选择器 | `boolean` | `false` |
153
- | onlyButton | 仅显示选择按钮 | `boolean` | `false` |
154
- | filterable | 是否可筛选 | `boolean` | `true` |
155
- | clearable | 是否可清空 | `boolean` | `true` |
156
- | buttonDialogText | 按钮文字 | `string` | `'更多'` |
157
- | size | 按钮大小 | `ElSize` | `'default'` |
158
- | plain | 按钮 plain | `boolean` | `true` |
159
- | formRef | 父级组件的表单对象 | `FormInstance` | `null` |
160
- | validateFieldName | 父级表单验证的字段名(使用时必须同时传递 formRef) | `string` | `''` |
161
- | limit | 可选择的数量 | `number` | `1` |
162
- | queryForm | 表单查询参数 | `Record<string, unknown>` | — |
163
- | initialParams | 初始查询参数 | `Record<string, unknown>` | — |
164
- | remoteFilterKey | 下拉框查询参数远程过滤参数的 key 值 | `string` | `'name'` |
165
-
166
- - JnPdfView PDF 文件预览组件
167
-
168
- | 属性名 | 描述 | 类型 | 默认值 |
169
- |--------|------|------|--------|
170
- | fileList | 文件列表 | `IFileItem[]` | `[]` |
171
- | showFileName | 是否显示文件名 | `boolean` | `true` |
172
- | isPdf | 是否是 pdf 文件(pdf 文件直接预览,其他文件下载) | `boolean` | `false` |
173
- | windowWidth | 预览窗口宽度 | `number` | `800` |
174
- | windowHeight | 预览窗口高度 | `number` | `600` |
175
-
176
- - JnPagination 分页组件
177
-
178
- | 属性名 | 描述 | 类型 | 默认值 |
179
- |--------|------|------|--------|
180
- | modelValue | 分页模型值 | `IPagination` | `{ pageNo: 1, pageSize: 20 }` |
181
- | total | 总条数 | `number` | `0` |
182
- | size | 按钮尺寸 | `ComponentSize` | `'small'` |
183
- | background | 是否带背景色 | `boolean` | `true` |
184
- | marginTop | 上边距 | `string` | `'10px'` |
185
-
186
- - JnImportAndExport 导入 & 导出,此组件依赖 JnFileUpload 文件上传组件
187
-
188
- | 属性名 | 描述 | 类型 | 默认值 |
189
- |--------|------|------|--------|
190
- | importTemplateApi | 下载导入模板文件的 api 函数 | `() => Promise<Blob>` | — |
191
- | importApi | 数据导入 api 函数 | `(data: FormData) => Promise<IFullResponse>` | — |
192
- | importFieldName | 数据导入的字段名 | `string` | `'file'` |
193
- | importParams | 导入的参数 | `Record<string, unknown>` | — |
194
- | fileUploadConfig | 导入的文件上传配置 | `{ accept: string; limit: number }` | `{ accept: '.xls,.xlsx', limit: 1 }` |
195
- | importBtnName | 导入的按钮名称 | `string` | `'导入'` |
196
- | importDisabled | 是否禁用导入按钮 | `boolean` | `false` |
197
- | exportApi | 数据导出的 api 函数 | `(data: Record<string, unknown>) => Promise<Blob>` | — |
198
- | exportParams | 导出的参数 | `Record<string, unknown>` | — |
199
- | exportDynamicParamsConfig | 导出操作时,MessageBox 的参数配置 | `{ label: string; prop: string }` | — |
200
- | messageBoxInputPattern | MessageBox 中输入框的校验表达式(正则) | `RegExp` | `/^\S+(?:\s+\S+)* $ /` |
201
- | messageBoxInputErrorMessage | 校验未通过时的提示文本 | `string` | `'请输入参数'` |
202
- | exportBtnName | 导出的按钮名称 | `string` | `'导出'` |
203
- | exportDisabled | 是否禁用导出按钮 | `boolean` | `false` |
204
- | size | 按钮尺寸 | `ElSize` | `'default'` |
205
- | buttonType | 按钮类型 | `ElButtonType` | `'primary'` |
206
- | plain | 是否为朴素按钮 | `boolean` | `true` |
207
- | text | 是否为文字按钮 | `boolean` | `false` |
208
- | icon | 是否显示图标 | `boolean` | `true` |
209
-
210
- - JnImageView 图片预览组件
211
-
212
- | 属性名 | 描述 | 类型 | 默认值 |
213
- |--------|------|------|--------|
214
- | src | 图片源地址,同原生属性一致 | `string` | `''` |
215
- | previewSrcList | 开启图片预览功能 | `IFileItem[]` | `[]` |
216
- | preview | 是否开启预览功能 | `boolean` | `false` |
217
- | height | 图片高度 | `string` | — |
218
- | maxHeight | 图片最大高度 | `string` | `'200px'` |
219
-
220
- - JnFileUpload 通用上传 & 回显组件
221
-
222
- | 属性名 | 描述 | 类型 | 默认值 |
223
- |--------|------|------|--------|
224
- | modelValue | 绑定的模型值(文件列表) | `MixedUploadFile[]` | — |
225
- | uploadName | 上传的文件字段名 | `string` | `'file'` |
226
- | drag | 是否启用拖拽上传 | `boolean` | `false` |
227
- | disabled | 是否禁用 | `boolean` | `false` |
228
- | showFileList | 是否显示已上传文件列表 | `boolean` | `true` |
229
- | accept | 接受的文件类型(如 .xls,.xlsx) | `string` | `''` |
230
- | fileSizeMb | 单个文件大小限制(单位:MB) | `number` | `100` |
231
- | limit | 最大上传文件数量,0 表示不限制 | `number` | `0` |
232
- | size | Element Plus 组件的尺寸 | `'' \| 'small' \| 'default' \| 'large'` | `'small'` |
233
- | formRef | 父级组件的表单引用 | `FormInstance` | — |
234
- | validateFieldName | 父级表单中用于校验的字段名 | `string` | `''` |
235
- | downloadFileFn | 文件下载的函数 | `(data: IAttachment) => void` | — |
236
- | autoUploadApi | 自动上传文件的 api 函数 | `(data: File) => void` | — |
237
-
238
- - JnDialog 表格编辑组件
239
-
240
- | 属性名 | 描述 | 类型 | 默认值 |
241
- |--------|------|------|--------|
242
- | title | 对话框的标题 | `string` | `''` |
243
- | width | 对话框的宽度 | `string \| number` | `'50%'` |
244
-
245
- - JnDatetime 显示时间格式化,第一行是日期,第二行是时间
246
-
247
- | 属性名 | 描述 | 类型 | 默认值 |
248
- |--------|------|------|--------|
249
- | value | 时间字符串(支持 ISO 或空格分隔) | `string` | `''` |
250
- | color | 文字颜色 | `string` | `''` |
251
-
252
-
253
- #### @jnrs/vue-core/composables 模块
254
- Vue 组合式 API
255
- - useMouseSelection 鼠标框选表格进行多选
256
- - useReactivityTableHeight 响应式根据视口动态计算表格高度
257
- - useWebSocket WebSocket 封装(支持心跳机制)
34
+ 详细文档请查看 `AGENTIC.md`
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@jnrs/vue-core",
3
- "version": "1.2.16",
3
+ "version": "1.2.17",
4
4
  "description": "巨能前端工程化开发,Vue 专用核心功能包。",
5
5
  "keywords": [
6
6
  "jnrs",
@@ -58,7 +58,7 @@
58
58
  "vue": "^3.5.22",
59
59
  "vue-i18n": "^11.2.8",
60
60
  "vue-router": "^4.5.1",
61
- "@jnrs/shared": "1.1.23"
61
+ "@jnrs/shared": "1.1.24"
62
62
  },
63
63
  "devDependencies": {
64
64
  "@vitejs/plugin-vue": "^6.0.1",