diff --git a/package.json b/package.json index 5e9442e..8ee0ea6 100644 --- a/package.json +++ b/package.json @@ -9,7 +9,7 @@ "lint:eslint": "eslint \"./src/**/*.{vue,ts,tsx}\" --fix" }, "dependencies": { - "@cool-vue/crud": "^7.0.11", + "@cool-vue/crud": "^7.1.0", "@element-plus/icons-vue": "^2.1.0", "@vueuse/core": "^10.4.0", "@wangeditor/editor": "^5.1.23", diff --git a/packages/crud/index.d.ts b/packages/crud/index.d.ts index fbf903f..df3b09e 100644 --- a/packages/crud/index.d.ts +++ b/packages/crud/index.d.ts @@ -10,7 +10,7 @@ declare namespace Vue { // element-plus declare namespace ElementPlus { type Size = "large" | "default" | "small"; - type Align = "large" | "default" | "small"; + type Align = "left" | "center" | "right"; interface FormProps { inline?: boolean; @@ -40,8 +40,8 @@ declare type obj = { declare type DeepPartial = T extends Function ? T : T extends object - ? { [P in keyof T]?: DeepPartial } - : T; + ? { [P in keyof T]?: DeepPartial } + : T; // 合并 declare type Merge = Omit & B; @@ -143,7 +143,8 @@ declare namespace Render { } } -declare type PropKey = Extract, string>; +// 获取keys +type PropKey = keyof RemoveIndex | (string & {}); declare namespace ClCrud { interface Label { @@ -290,10 +291,6 @@ declare namespace ClCrud { ): void; } - interface Options extends Config { - service: any; - } - interface Ref { "cl-table": ClTable.Ref; "cl-upsert": ClUpsert.Ref; @@ -320,6 +317,10 @@ declare namespace ClCrud { refresh: Service["api"]["page"]; [key: string]: any; } + + interface Options extends DeepPartial { + service?: any; + } } declare namespace ClTable { @@ -340,7 +341,7 @@ declare namespace ClTable { dictSeparator: string; dictAllLevels: boolean; buttons: OpButton | ((options: { scope: T }) => OpButton); - align: "left" | "center" | "right"; + align: ElementPlus.Align; label: any; className: string; prop: PropKey; @@ -353,7 +354,7 @@ declare namespace ClTable { sortBy: string | ((row: T, index: number) => any) | any[]; resizable: boolean; columnKey: string; - headerAlign: string; + headerAlign: ElementPlus.Align; showOverflowTooltip: boolean; fixed: boolean | string; formatter: (row: T, column: any, value: any, index: number) => any; @@ -506,7 +507,7 @@ declare namespace ClForm { label?: string; renderLabel?: any; flex?: boolean; - hidden?: boolean | Vue.Ref | ((options: { scope: obj }) => boolean); + hidden?: (options: { scope: obj }) => boolean; prepend?: Render.Component; component?: Render.Component; append?: Render.Component; @@ -516,7 +517,7 @@ declare namespace ClForm { [key: string]: any; } - interface Config { + interface Config { title?: any; height?: string; width?: string; @@ -525,9 +526,9 @@ declare namespace ClForm { form: obj; isReset?: boolean; on?: { - open?(data: obj): void; + open?(data: T): void; close?(action: CloseAction, done: fn): void; - submit?(data: obj, event: { close: fn; done: fn }): void; + submit?(data: T, event: { close: fn; done: fn }): void; }; op: { hidden?: boolean; @@ -600,7 +601,7 @@ declare namespace ClForm { } declare namespace ClUpsert { - interface Config { + interface Config { sync: boolean; items: ClForm.Item[]; props: ClForm.Config["props"]; @@ -625,11 +626,15 @@ declare namespace ClUpsert { mode: "add" | "update" | "info"; } - interface Options extends DeepPartial> { + interface Options extends DeepPartial { items?: ClForm.Items; } } +interface UpsertOptions { + items: ClForm.Items; +} + declare namespace ClAdvSearch { interface Config { items?: ClForm.Item[]; @@ -749,11 +754,3 @@ declare type Options = DeepPartial; declare interface CrudOptions { options: Options; } - -interface obj2 { - [prop: string]: any; -} - -interface Item2 { - prop: keyof T; -} diff --git a/packages/crud/package.json b/packages/crud/package.json index 69ac7a4..293f79e 100644 --- a/packages/crud/package.json +++ b/packages/crud/package.json @@ -1,6 +1,6 @@ { "name": "@cool-vue/crud", - "version": "7.0.11", + "version": "7.1.0", "private": false, "main": "./dist/index.umd.min.js", "typings": "types/index.d.ts", diff --git a/packages/crud/src/App.vue b/packages/crud/src/App.vue index ed8f3d4..40c51f1 100644 --- a/packages/crud/src/App.vue +++ b/packages/crud/src/App.vue @@ -1,17 +1,49 @@