@xmszm/core 0.0.3 → 0.0.5
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/index.cjs +2 -2
- package/dist/index.mjs +676 -684
- package/dist/style.css +1 -1
- package/examples/package.json +1 -1
- package/examples/pnpm-lock.yaml +0 -1
- package/examples/pnpm-workspace.yaml +0 -1
- package/package.json +6 -2
- package/src/dialog/commonDialog.tsx +2 -1
- package/src/image/ImagesUpload.vue +65 -67
- package/src/index.ts +1 -0
- package/src/query/CommonQuery.vue +108 -95
- package/src/table/DataTable.vue +121 -116
- package/src/table/FilterDialog.vue +53 -48
- package/types/index.d.ts +311 -11
- package/types/style.d.ts +2 -0
package/types/index.d.ts
CHANGED
|
@@ -161,35 +161,335 @@ export function initRules(args: {
|
|
|
161
161
|
formOpr?: Record<string, any>
|
|
162
162
|
}): any
|
|
163
163
|
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
164
|
+
/**
|
|
165
|
+
* 选项函数类型
|
|
166
|
+
*/
|
|
167
|
+
export type OptionFunction = (value: any, key: string, formOpr?: any) => FormOption
|
|
168
|
+
|
|
169
|
+
/**
|
|
170
|
+
* 初始化默认选项类型(自动注册所有内置选项类型)
|
|
171
|
+
*/
|
|
172
|
+
export function setupInitOptions(): void
|
|
173
|
+
export default setupInitOptions
|
|
174
|
+
|
|
175
|
+
/**
|
|
176
|
+
* 获取所有已注册的选项类型
|
|
177
|
+
* @returns 所有选项类型的Map对象
|
|
178
|
+
*/
|
|
179
|
+
export function getAllOptions(): Map<string, OptionFunction>
|
|
180
|
+
|
|
181
|
+
/**
|
|
182
|
+
* 获取指定类型的选项配置函数
|
|
183
|
+
* @param way - 选项类型标识
|
|
184
|
+
* @returns 选项配置函数
|
|
185
|
+
*/
|
|
186
|
+
export function getOptions(way: string): OptionFunction | undefined
|
|
187
|
+
|
|
188
|
+
/**
|
|
189
|
+
* 注册自定义选项类型
|
|
190
|
+
* @param way - 选项类型标识
|
|
191
|
+
* @param fn - 选项配置函数
|
|
192
|
+
* @example
|
|
193
|
+
* ```typescript
|
|
194
|
+
* setupOptions('customInput', (value, key) => ({
|
|
195
|
+
* key,
|
|
196
|
+
* way: 'input',
|
|
197
|
+
* props: { placeholder: '自定义输入框' }
|
|
198
|
+
* }))
|
|
199
|
+
* ```
|
|
200
|
+
*/
|
|
201
|
+
export function setupOptions(way: string, fn: OptionFunction): void
|
|
167
202
|
|
|
203
|
+
/**
|
|
204
|
+
* 将值转换为数组
|
|
205
|
+
* @param v - 单个值或数组
|
|
206
|
+
* @returns 数组
|
|
207
|
+
*/
|
|
168
208
|
export function toArray<T = any>(v: T | T[]): T[]
|
|
209
|
+
|
|
210
|
+
/**
|
|
211
|
+
* 将数组转换为对象
|
|
212
|
+
* @param arr - 数组
|
|
213
|
+
* @param fields - 字段映射配置
|
|
214
|
+
* @returns 以valueField为key的对象
|
|
215
|
+
*/
|
|
169
216
|
export function ArrayToObject<T = any>(
|
|
170
217
|
arr?: T[],
|
|
171
218
|
fields?: { labelField?: string; valueField?: string },
|
|
172
219
|
): Record<string, T>
|
|
220
|
+
|
|
221
|
+
/**
|
|
222
|
+
* 将对象转换为数组
|
|
223
|
+
* @param obj - 对象
|
|
224
|
+
* @param fields - 字段映射配置
|
|
225
|
+
* @returns 数组,每项包含labelField和valueField
|
|
226
|
+
*/
|
|
173
227
|
export function ObjectToArray<T extends Record<string, any> = any>(
|
|
174
228
|
obj?: T,
|
|
175
229
|
fields?: { labelField?: string; valueField?: string },
|
|
176
|
-
):
|
|
230
|
+
): Array<{ [K in keyof typeof fields]: any }>
|
|
177
231
|
|
|
178
|
-
|
|
179
|
-
|
|
232
|
+
/**
|
|
233
|
+
* 自定义上传函数(需先通过 registryUpload 注册)
|
|
234
|
+
* @param config - 上传配置对象
|
|
235
|
+
* @returns Promise 返回上传结果
|
|
236
|
+
*/
|
|
237
|
+
export function customUpload(config: any): Promise<any>
|
|
238
|
+
|
|
239
|
+
/**
|
|
240
|
+
* 注册全局上传方法
|
|
241
|
+
* @param fn - 上传函数
|
|
242
|
+
*/
|
|
243
|
+
export function registryUpload(fn: (config: any) => Promise<any>): void
|
|
244
|
+
|
|
245
|
+
/**
|
|
246
|
+
* 获取文件URL(支持OSS尺寸参数)
|
|
247
|
+
* @param url - 文件URL
|
|
248
|
+
* @param ossSize - OSS图片尺寸参数
|
|
249
|
+
* @returns 处理后的URL
|
|
250
|
+
*/
|
|
180
251
|
export function getFileUrl(url?: string, ossSize?: number | null): string | undefined
|
|
181
252
|
|
|
182
|
-
|
|
253
|
+
/**
|
|
254
|
+
* 收集子路由的权限
|
|
255
|
+
* @param route - 路由对象
|
|
256
|
+
* @returns 权限数组
|
|
257
|
+
*/
|
|
258
|
+
export function cellectChildenPermission(route: any): string[]
|
|
259
|
+
|
|
260
|
+
/**
|
|
261
|
+
* 处理URL参数字符串
|
|
262
|
+
* @param str - 参数模板字符串
|
|
263
|
+
* @param op - 参数对象
|
|
264
|
+
* @returns 处理后的字符串
|
|
265
|
+
*/
|
|
183
266
|
export function handleParams(str?: string, op?: Record<string, any>): string
|
|
184
|
-
|
|
185
|
-
|
|
267
|
+
|
|
268
|
+
/**
|
|
269
|
+
* 获取API配置对象
|
|
270
|
+
* @returns API配置对象
|
|
271
|
+
*/
|
|
272
|
+
export function useApiConfig(): { baseURL: string }
|
|
273
|
+
|
|
274
|
+
/**
|
|
275
|
+
* 获取权限检查函数
|
|
276
|
+
* @returns 权限相关方法
|
|
277
|
+
*/
|
|
278
|
+
export function useAuthPermission(): {
|
|
279
|
+
hasPermission: (permission: string) => boolean
|
|
280
|
+
checkPermission: (permission: string) => boolean
|
|
281
|
+
}
|
|
282
|
+
|
|
283
|
+
/**
|
|
284
|
+
* 初始化路由元信息
|
|
285
|
+
* @param routes - 路由配置数组
|
|
286
|
+
* @param base - 基础路径
|
|
287
|
+
* @returns 处理后的路由配置
|
|
288
|
+
*/
|
|
186
289
|
export function initRouteMeta(routes: any[], base?: string): any[]
|
|
187
290
|
|
|
188
|
-
|
|
189
|
-
|
|
291
|
+
/**
|
|
292
|
+
* 表格单元格省略配置
|
|
293
|
+
*/
|
|
294
|
+
export const ellipsis: {
|
|
295
|
+
tooltip: boolean
|
|
296
|
+
lineClamp?: number
|
|
297
|
+
}
|
|
298
|
+
|
|
299
|
+
/**
|
|
300
|
+
* 排序枚举
|
|
301
|
+
*/
|
|
302
|
+
export const orderEnum: {
|
|
303
|
+
ascend: string
|
|
304
|
+
descend: string
|
|
305
|
+
}
|
|
306
|
+
|
|
307
|
+
/**
|
|
308
|
+
* 全局标签字段名
|
|
309
|
+
*/
|
|
190
310
|
export const globalLabelField: string
|
|
311
|
+
|
|
312
|
+
/**
|
|
313
|
+
* 全局值字段名
|
|
314
|
+
*/
|
|
191
315
|
export const globalValueField: string
|
|
192
316
|
|
|
317
|
+
// ==================== 配置系统 ====================
|
|
318
|
+
|
|
319
|
+
/**
|
|
320
|
+
* 全局配置对象类型
|
|
321
|
+
*/
|
|
322
|
+
export interface CoreConfig {
|
|
323
|
+
/** API 基础地址 */
|
|
324
|
+
baseURL?: string
|
|
325
|
+
/** 权限检查函数 */
|
|
326
|
+
hasPermission?: (permission: string) => boolean
|
|
327
|
+
/** 上传方法 */
|
|
328
|
+
uploadMethod?: (config: any) => Promise<any>
|
|
329
|
+
/** Dialog 配置 */
|
|
330
|
+
dialog?: {
|
|
331
|
+
/** Dialog 实例 */
|
|
332
|
+
instance?: any
|
|
333
|
+
/** 是否继承外部定义的主题色 */
|
|
334
|
+
inheritTheme?: boolean
|
|
335
|
+
/** 主题色覆盖 */
|
|
336
|
+
themeOverrides?: any
|
|
337
|
+
}
|
|
338
|
+
}
|
|
339
|
+
|
|
340
|
+
/**
|
|
341
|
+
* 初始化全局配置
|
|
342
|
+
* @param options - 配置选项
|
|
343
|
+
*/
|
|
344
|
+
export function setupConfig(options: CoreConfig): void
|
|
345
|
+
|
|
346
|
+
/**
|
|
347
|
+
* 获取完整配置对象
|
|
348
|
+
* @returns 配置对象
|
|
349
|
+
*/
|
|
350
|
+
export function getConfig(): Required<CoreConfig>
|
|
351
|
+
|
|
352
|
+
/**
|
|
353
|
+
* 获取API基础地址
|
|
354
|
+
* @returns 基础地址
|
|
355
|
+
*/
|
|
356
|
+
export function getBaseURL(): string
|
|
357
|
+
|
|
358
|
+
/**
|
|
359
|
+
* 获取权限检查函数
|
|
360
|
+
* @returns 权限检查函数
|
|
361
|
+
*/
|
|
362
|
+
export function getHasPermission(): ((permission: string) => boolean) | null
|
|
363
|
+
|
|
364
|
+
/**
|
|
365
|
+
* 获取上传方法
|
|
366
|
+
* @returns 上传方法
|
|
367
|
+
*/
|
|
368
|
+
export function getUploadMethod(): ((config: any) => Promise<any>) | null
|
|
369
|
+
|
|
370
|
+
/**
|
|
371
|
+
* 检查权限
|
|
372
|
+
* @param permission - 权限标识
|
|
373
|
+
* @returns 是否有权限
|
|
374
|
+
*/
|
|
375
|
+
export function checkPermission(permission: string): boolean
|
|
376
|
+
|
|
377
|
+
/**
|
|
378
|
+
* 获取Dialog配置
|
|
379
|
+
* @returns Dialog配置对象
|
|
380
|
+
*/
|
|
381
|
+
export function getDialogConfig(): CoreConfig['dialog']
|
|
382
|
+
|
|
383
|
+
/**
|
|
384
|
+
* 注册Dialog实例
|
|
385
|
+
* @param instance - Dialog实例
|
|
386
|
+
*/
|
|
387
|
+
export function registerDialogInstance(instance: any): void
|
|
388
|
+
|
|
389
|
+
/**
|
|
390
|
+
* 获取Dialog实例
|
|
391
|
+
* @returns Dialog实例
|
|
392
|
+
*/
|
|
393
|
+
export function getDialogInstance(): any | null
|
|
394
|
+
|
|
395
|
+
// ==================== Dialog工具 ====================
|
|
396
|
+
|
|
397
|
+
/**
|
|
398
|
+
* 创建Dialog实例
|
|
399
|
+
* @returns Dialog API对象
|
|
400
|
+
*/
|
|
401
|
+
export function createDialog(): any
|
|
402
|
+
|
|
403
|
+
/**
|
|
404
|
+
* 创建Dialog方法集合
|
|
405
|
+
* @returns Dialog方法对象
|
|
406
|
+
*/
|
|
407
|
+
export function createDialogMethods(): any
|
|
408
|
+
|
|
409
|
+
/**
|
|
410
|
+
* 创建Dialog配置选项
|
|
411
|
+
* @param options - 选项
|
|
412
|
+
* @returns Dialog配置对象
|
|
413
|
+
*/
|
|
414
|
+
export function createDialogOptions(options?: any): any
|
|
415
|
+
|
|
416
|
+
/**
|
|
417
|
+
* 在组件中使用通用Dialog的Hook
|
|
418
|
+
* @returns Dialog方法对象
|
|
419
|
+
*/
|
|
420
|
+
export function useCommonDialog(): {
|
|
421
|
+
commonDialogMethod: typeof commonDialogMethod
|
|
422
|
+
}
|
|
423
|
+
|
|
424
|
+
// ==================== 表格工具 ====================
|
|
425
|
+
|
|
426
|
+
/**
|
|
427
|
+
* 创建二维码列
|
|
428
|
+
* @param config - 二维码配置
|
|
429
|
+
* @returns 表格列配置
|
|
430
|
+
*/
|
|
431
|
+
export function createQRCode(config?: {
|
|
432
|
+
/** 二维码数据字段 */
|
|
433
|
+
dataKey?: string
|
|
434
|
+
/** 列宽 */
|
|
435
|
+
width?: number
|
|
436
|
+
/** 二维码尺寸 */
|
|
437
|
+
size?: number
|
|
438
|
+
}): TableColumn
|
|
439
|
+
|
|
440
|
+
/**
|
|
441
|
+
* 使用二维码Hook
|
|
442
|
+
* @returns 二维码相关方法
|
|
443
|
+
*/
|
|
444
|
+
export function useQRCode(): {
|
|
445
|
+
/** 生成二维码 */
|
|
446
|
+
generateQRCode: (data: string, size?: number) => Promise<string>
|
|
447
|
+
/** 下载二维码 */
|
|
448
|
+
downloadQRCode: (data: string, filename?: string) => Promise<void>
|
|
449
|
+
}
|
|
450
|
+
|
|
451
|
+
// ==================== 插件和指令 ====================
|
|
452
|
+
|
|
453
|
+
/**
|
|
454
|
+
* Vue插件对象
|
|
455
|
+
*/
|
|
456
|
+
export const CorePlugin: {
|
|
457
|
+
install(app: any, options?: any): void
|
|
458
|
+
}
|
|
459
|
+
|
|
460
|
+
/**
|
|
461
|
+
* 安装插件
|
|
462
|
+
* @param app - Vue应用实例
|
|
463
|
+
* @param options - 插件选项
|
|
464
|
+
*/
|
|
465
|
+
export function install(app: any, options?: any): void
|
|
466
|
+
|
|
467
|
+
/**
|
|
468
|
+
* 权限指令
|
|
469
|
+
*/
|
|
470
|
+
export const permissionDirective: {
|
|
471
|
+
mounted(el: HTMLElement, binding: { value: string }): void
|
|
472
|
+
updated(el: HTMLElement, binding: { value: string }): void
|
|
473
|
+
}
|
|
474
|
+
|
|
475
|
+
/**
|
|
476
|
+
* 注册所有指令
|
|
477
|
+
* @param app - Vue应用实例
|
|
478
|
+
*/
|
|
479
|
+
export function registerDirectives(app: any): void
|
|
480
|
+
|
|
481
|
+
/**
|
|
482
|
+
* 自动注册指令
|
|
483
|
+
* @param app - Vue应用实例
|
|
484
|
+
*/
|
|
485
|
+
export function autoRegisterDirectives(app: any): void
|
|
486
|
+
|
|
487
|
+
/**
|
|
488
|
+
* 获取全局应用实例
|
|
489
|
+
* @returns Vue应用实例
|
|
490
|
+
*/
|
|
491
|
+
export function getGlobalApp(): any | null
|
|
492
|
+
|
|
193
493
|
declare module 'core' {
|
|
194
494
|
export * from './index.d'
|
|
195
495
|
}
|
package/types/style.d.ts
ADDED