@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/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
- export function getAllOptions(...args: any[]): any
165
- export function getOptions(...args: any[]): any
166
- export function setupOptions(...args: any[]): any
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
- ): any[]
230
+ ): Array<{ [K in keyof typeof fields]: any }>
177
231
 
178
- export function customUpload(...args: any[]): Promise<any>
179
- export function registryUpload(fn: (...args: any[]) => Promise<any>): void
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
- export function cellectChildenPermission(route: any): any
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
- export function useApiConfig(...args: any[]): Record<string, any>
185
- export function useAuthPermission(...args: any[]): Record<string, any>
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
- export const ellipsis: any
189
- export const orderEnum: Record<string, any>
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
  }
@@ -0,0 +1,2 @@
1
+ declare const styles: string
2
+ export default styles