gi-component 0.0.6 → 0.0.8

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 (59) hide show
  1. package/dist/gi.css +1 -1
  2. package/dist/index.d.ts +22 -10
  3. package/dist/index.es.js +42 -41
  4. package/dist/index.es.js.map +1 -1
  5. package/dist/index.umd.js +1 -1
  6. package/dist/index.umd.js.map +1 -1
  7. package/package.json +10 -3
  8. package/packages/components/button/index.ts +4 -4
  9. package/packages/components/button/src/button.vue +32 -32
  10. package/packages/components/button/src/type.ts +2 -2
  11. package/packages/components/card/index.ts +4 -4
  12. package/packages/components/card/src/card.vue +21 -21
  13. package/packages/components/card/src/type.ts +9 -9
  14. package/packages/components/dialog/index.ts +5 -5
  15. package/packages/components/dialog/src/dialog.ts +33 -33
  16. package/packages/components/dialog/src/dialog.vue +34 -32
  17. package/packages/components/dialog/src/type.ts +13 -13
  18. package/packages/components/edit-table/index.ts +4 -4
  19. package/packages/components/edit-table/src/edit-table.vue +49 -49
  20. package/packages/components/edit-table/src/type.ts +42 -62
  21. package/packages/components/form/index.ts +4 -4
  22. package/packages/components/form/src/form.vue +98 -98
  23. package/packages/components/form/src/type.ts +74 -88
  24. package/packages/components/grid/index.ts +6 -6
  25. package/packages/components/grid/src/context.ts +17 -17
  26. package/packages/components/grid/src/grid-item.vue +40 -40
  27. package/packages/components/grid/src/grid.vue +38 -38
  28. package/packages/components/grid/src/hook/use-index.ts +24 -24
  29. package/packages/components/grid/src/hook/use-responsive-state.ts +26 -26
  30. package/packages/components/grid/src/hook/use-responsive-value.ts +24 -24
  31. package/packages/components/grid/src/interface.ts +32 -32
  32. package/packages/components/grid/src/utils/global-config.ts +3 -3
  33. package/packages/components/grid/src/utils/index.ts +25 -25
  34. package/packages/components/grid/src/utils/is.ts +2 -2
  35. package/packages/components/grid/src/utils/responsive-observe.ts +53 -53
  36. package/packages/components/input-group/index.ts +4 -4
  37. package/packages/components/input-group/src/input-group.vue +2 -2
  38. package/packages/components/input-search/index.ts +4 -4
  39. package/packages/components/input-search/src/input-search.vue +15 -15
  40. package/packages/components/input-search/src/type.ts +4 -4
  41. package/packages/components/page-layout/index.ts +4 -4
  42. package/packages/components/page-layout/src/page-layout.vue +25 -25
  43. package/packages/components/page-layout/src/split-button.vue +22 -22
  44. package/packages/components/page-layout/src/type.ts +9 -9
  45. package/packages/components/table/index.ts +4 -4
  46. package/packages/components/table/src/TableColumn.vue +10 -10
  47. package/packages/components/table/src/table.vue +14 -14
  48. package/packages/components/table/src/type.ts +8 -16
  49. package/packages/components/tabs/index.ts +4 -4
  50. package/packages/components/tabs/src/tabs.vue +26 -36
  51. package/packages/components/tabs/src/type.ts +9 -9
  52. package/packages/hooks/index.ts +2 -2
  53. package/packages/hooks/useBemClass.ts +7 -7
  54. package/packages/hooks/useTable.ts +6 -7
  55. package/packages/index.ts +44 -44
  56. package/packages/styles/index.scss +6 -0
  57. package/packages/types/tool.ts +14 -0
  58. package/packages/utils/createSelectDialog.ts +28 -27
  59. package/packages/utils/index.ts +1 -1
@@ -28,6 +28,12 @@ body {
28
28
  }
29
29
  }
30
30
 
31
+ .el-dialog__headerbtn {
32
+ display: flex;
33
+ justify-content: center;
34
+ align-items: center;
35
+ }
36
+
31
37
  .gi-w-full {
32
38
  width: 100%;
33
39
  }
@@ -0,0 +1,14 @@
1
+ // 辅助类型:获取所有类型的键的联合
2
+ type AllKeys<T> = T extends any ? keyof T : never
3
+
4
+ // 辅助类型:获取属性在所有类型中的联合类型
5
+ type UnionType<T, K extends PropertyKey> = T extends any
6
+ ? K extends keyof T
7
+ ? T[K]
8
+ : never
9
+ : never
10
+
11
+ // 合并多个类型,同名属性转为联合类型
12
+ export type MergeMultiple<T extends any[]> = {
13
+ [K in AllKeys<T[number]>]: UnionType<T[number], K>
14
+ }
@@ -1,25 +1,26 @@
1
- import type { Component } from 'vue';
2
- import { ElMessage } from 'element-plus';
3
- import { h, ref } from 'vue';
4
- import { Dialog, type DialogOptions } from '../index';
1
+ import type { Component } from 'vue'
2
+ import type { DialogOptions } from '../index'
3
+ import { ElMessage } from 'element-plus'
4
+ import { h, ref } from 'vue'
5
+ import { Dialog } from '../index'
5
6
 
6
7
  interface CreateSelectDialogParams extends Omit<DialogOptions, 'content' | 'onOk' | 'onBeforeOk'> {
7
- component: Component;
8
- componentProps?: Record<string, any>;
9
- tip?: string;
8
+ component: Component
9
+ componentProps?: Record<string, any>
10
+ tip?: string
10
11
  };
11
12
 
12
13
  interface DefOption {
13
- queryParams: Record<string, any>;
14
+ queryParams: Record<string, any>
14
15
  }
15
16
 
16
17
  type DialogOption<T, Q extends DefOption = DefOption> = {
17
- title?: string;
18
- multiple?: boolean;
19
- queryParams?: Q['queryParams'];
20
- onOk?: (data: T) => void;
21
- onBeforeOk?: (data: T) => Promise<boolean>;
22
- };
18
+ title?: string
19
+ multiple?: boolean
20
+ queryParams?: Q['queryParams']
21
+ onOk?: (data: T) => void
22
+ onBeforeOk?: (data: T) => Promise<boolean>
23
+ }
23
24
 
24
25
  /**
25
26
  * 创建选择弹窗
@@ -29,8 +30,8 @@ export const createSelectDialog = <T, Q extends DefOption = DefOption>(
29
30
  params: CreateSelectDialogParams
30
31
  ) => {
31
32
  return function (options: DialogOption<T, Q>) {
32
- const { multiple = false, onOk, onBeforeOk, queryParams } = options;
33
- const DialogTableRef = ref<any>();
33
+ const { multiple = false, onOk, onBeforeOk, queryParams } = options
34
+ const DialogTableRef = ref<any>()
34
35
 
35
36
  Dialog.open({
36
37
  bodyClass: 'gi-p0',
@@ -46,21 +47,21 @@ export const createSelectDialog = <T, Q extends DefOption = DefOption>(
46
47
  style: { maxWidth: '1000px', ...params.style },
47
48
  onBeforeOk: async () => {
48
49
  if (!DialogTableRef.value.getSelectedData) {
49
- ElMessage.error('组件必须暴露getSelectedData方法');
50
- return false;
50
+ ElMessage.error('组件必须暴露getSelectedData方法')
51
+ return false
51
52
  }
52
- const data = DialogTableRef.value?.getSelectedData();
53
+ const data = DialogTableRef.value?.getSelectedData()
53
54
  if (!data.length) {
54
- ElMessage.warning(params.tip || '请选择数据');
55
- return false;
55
+ ElMessage.warning(params.tip || '请选择数据')
56
+ return false
56
57
  }
57
58
  if (onBeforeOk) {
58
- return await onBeforeOk(data);
59
+ return await onBeforeOk(data)
59
60
  } else {
60
- onOk?.(data);
61
- return true;
61
+ onOk?.(data)
62
+ return true
62
63
  }
63
64
  }
64
- });
65
- };
66
- };
65
+ })
66
+ }
67
+ }
@@ -1 +1 @@
1
- export * from './createSelectDialog';
1
+ export * from './createSelectDialog'