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.
- package/dist/gi.css +1 -1
- package/dist/index.d.ts +22 -10
- package/dist/index.es.js +42 -41
- package/dist/index.es.js.map +1 -1
- package/dist/index.umd.js +1 -1
- package/dist/index.umd.js.map +1 -1
- package/package.json +10 -3
- package/packages/components/button/index.ts +4 -4
- package/packages/components/button/src/button.vue +32 -32
- package/packages/components/button/src/type.ts +2 -2
- package/packages/components/card/index.ts +4 -4
- package/packages/components/card/src/card.vue +21 -21
- package/packages/components/card/src/type.ts +9 -9
- package/packages/components/dialog/index.ts +5 -5
- package/packages/components/dialog/src/dialog.ts +33 -33
- package/packages/components/dialog/src/dialog.vue +34 -32
- package/packages/components/dialog/src/type.ts +13 -13
- package/packages/components/edit-table/index.ts +4 -4
- package/packages/components/edit-table/src/edit-table.vue +49 -49
- package/packages/components/edit-table/src/type.ts +42 -62
- package/packages/components/form/index.ts +4 -4
- package/packages/components/form/src/form.vue +98 -98
- package/packages/components/form/src/type.ts +74 -88
- package/packages/components/grid/index.ts +6 -6
- package/packages/components/grid/src/context.ts +17 -17
- package/packages/components/grid/src/grid-item.vue +40 -40
- package/packages/components/grid/src/grid.vue +38 -38
- package/packages/components/grid/src/hook/use-index.ts +24 -24
- package/packages/components/grid/src/hook/use-responsive-state.ts +26 -26
- package/packages/components/grid/src/hook/use-responsive-value.ts +24 -24
- package/packages/components/grid/src/interface.ts +32 -32
- package/packages/components/grid/src/utils/global-config.ts +3 -3
- package/packages/components/grid/src/utils/index.ts +25 -25
- package/packages/components/grid/src/utils/is.ts +2 -2
- package/packages/components/grid/src/utils/responsive-observe.ts +53 -53
- package/packages/components/input-group/index.ts +4 -4
- package/packages/components/input-group/src/input-group.vue +2 -2
- package/packages/components/input-search/index.ts +4 -4
- package/packages/components/input-search/src/input-search.vue +15 -15
- package/packages/components/input-search/src/type.ts +4 -4
- package/packages/components/page-layout/index.ts +4 -4
- package/packages/components/page-layout/src/page-layout.vue +25 -25
- package/packages/components/page-layout/src/split-button.vue +22 -22
- package/packages/components/page-layout/src/type.ts +9 -9
- package/packages/components/table/index.ts +4 -4
- package/packages/components/table/src/TableColumn.vue +10 -10
- package/packages/components/table/src/table.vue +14 -14
- package/packages/components/table/src/type.ts +8 -16
- package/packages/components/tabs/index.ts +4 -4
- package/packages/components/tabs/src/tabs.vue +26 -36
- package/packages/components/tabs/src/type.ts +9 -9
- package/packages/hooks/index.ts +2 -2
- package/packages/hooks/useBemClass.ts +7 -7
- package/packages/hooks/useTable.ts +6 -7
- package/packages/index.ts +44 -44
- package/packages/styles/index.scss +6 -0
- package/packages/types/tool.ts +14 -0
- package/packages/utils/createSelectDialog.ts +28 -27
- package/packages/utils/index.ts +1 -1
|
@@ -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 {
|
|
3
|
-
import {
|
|
4
|
-
import {
|
|
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
|
+
}
|
package/packages/utils/index.ts
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
export * from './createSelectDialog'
|
|
1
|
+
export * from './createSelectDialog'
|