v-nuxt-ui 0.1.32 → 0.1.34
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/module.json +1 -1
- package/dist/runtime/assets/css/main.css +1 -1
- package/dist/runtime/components/form/create-modal-template/index.d.vue.ts +3 -1
- package/dist/runtime/components/form/create-modal-template/index.vue +1 -0
- package/dist/runtime/components/form/create-modal-template/index.vue.d.ts +3 -1
- package/dist/runtime/components/sys/role/CreateModal.vue +14 -2
- package/dist/runtime/components/sys/table/CreateModal.d.vue.ts +13 -0
- package/dist/runtime/components/sys/table/CreateModal.vue +239 -0
- package/dist/runtime/components/sys/table/CreateModal.vue.d.ts +13 -0
- package/dist/runtime/components/sys/table/Table.d.vue.ts +3 -0
- package/dist/runtime/components/sys/table/Table.vue +116 -0
- package/dist/runtime/components/sys/table/Table.vue.d.ts +3 -0
- package/dist/runtime/components/sys/table/TableColumnModal.d.vue.ts +22 -0
- package/dist/runtime/components/sys/table/TableColumnModal.vue +107 -0
- package/dist/runtime/components/sys/table/TableColumnModal.vue.d.ts +22 -0
- package/dist/runtime/components/sys/user/CreateModal.vue +14 -2
- package/dist/runtime/components/table/permission/TablePermissionConfig.d.vue.ts +14 -0
- package/dist/runtime/components/table/permission/TablePermissionConfig.vue +230 -0
- package/dist/runtime/components/table/permission/TablePermissionConfig.vue.d.ts +14 -0
- package/dist/runtime/components/table/permission/TablePermissionTab.d.vue.ts +11 -0
- package/dist/runtime/components/table/permission/TablePermissionTab.vue +95 -0
- package/dist/runtime/components/table/permission/TablePermissionTab.vue.d.ts +11 -0
- package/dist/runtime/components/table/settings/TableSettings.d.vue.ts +3 -0
- package/dist/runtime/components/table/settings/TableSettings.vue +118 -0
- package/dist/runtime/components/table/settings/TableSettings.vue.d.ts +3 -0
- package/dist/runtime/components/table/settings/UserTableColumnModal.d.vue.ts +17 -0
- package/dist/runtime/components/table/settings/UserTableColumnModal.vue +106 -0
- package/dist/runtime/components/table/settings/UserTableColumnModal.vue.d.ts +17 -0
- package/dist/runtime/composables/api/sys/index.d.ts +3 -0
- package/dist/runtime/composables/api/sys/index.js +3 -0
- package/dist/runtime/composables/api/useTableApi.d.ts +2 -0
- package/dist/runtime/composables/api/useTableApi.js +5 -0
- package/dist/runtime/composables/api/useTableColumnApi.d.ts +11 -0
- package/dist/runtime/composables/api/useTableColumnApi.js +11 -0
- package/dist/runtime/composables/api/useTablePermissionApi.d.ts +8 -0
- package/dist/runtime/composables/api/useTablePermissionApi.js +8 -0
- package/dist/runtime/composables/table/useTableColumnPermission.d.ts +34 -0
- package/dist/runtime/composables/table/useTableColumnPermission.js +47 -0
- package/dist/runtime/composables/useAuth.d.ts +56 -0
- package/dist/runtime/composables/useForm.d.ts +1 -1
- package/dist/runtime/composables/useForm.js +7 -3
- package/dist/runtime/types/cmds/sys.d.ts +3 -0
- package/dist/runtime/types/models/index.d.ts +1 -0
- package/dist/runtime/types/models/index.js +1 -0
- package/dist/runtime/types/models/sys.d.ts +3 -0
- package/dist/runtime/types/models/table.d.ts +59 -0
- package/dist/runtime/types/models/table.js +0 -0
- package/package.json +1 -1
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import type { ApiGroup, TableColumn, UserTableColumn, MergedTableColumn } from '#v/types';
|
|
2
|
+
import type { Ref } from 'vue';
|
|
3
|
+
import type { RequestResult } from '#v/types';
|
|
4
|
+
export declare const useTableColumnApi: () => ApiGroup<TableColumn> & {
|
|
5
|
+
getMergedColumns(tblName: string): Promise<{
|
|
6
|
+
data: Ref<RequestResult<MergedTableColumn[]>>;
|
|
7
|
+
}>;
|
|
8
|
+
saveUserColumns(tblName: string, configs: UserTableColumn[]): Promise<{
|
|
9
|
+
data: Ref<RequestResult<void>>;
|
|
10
|
+
}>;
|
|
11
|
+
};
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import { createSharedComposable } from "@vueuse/core";
|
|
2
|
+
import { useApi, usePostFetch, useGetFetch } from "./useApi.js";
|
|
3
|
+
export const useTableColumnApi = createSharedComposable(() => ({
|
|
4
|
+
...useApi("/table-columns"),
|
|
5
|
+
async getMergedColumns(tblName) {
|
|
6
|
+
return useGetFetch(`/table-columns/merged?tblName=${encodeURIComponent(tblName)}`);
|
|
7
|
+
},
|
|
8
|
+
async saveUserColumns(tblName, configs) {
|
|
9
|
+
return usePostFetch("/table-columns/user-config", { tblName, configs });
|
|
10
|
+
}
|
|
11
|
+
}));
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import type { ApiGroup, TablePermission, EffectiveTablePermission } from '#v/types';
|
|
2
|
+
import type { Ref } from 'vue';
|
|
3
|
+
import type { RequestResult } from '#v/types';
|
|
4
|
+
export declare const useTablePermissionApi: () => ApiGroup<TablePermission> & {
|
|
5
|
+
getEffectivePermissions(tblName: string): Promise<{
|
|
6
|
+
data: Ref<RequestResult<EffectiveTablePermission>>;
|
|
7
|
+
}>;
|
|
8
|
+
};
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import { createSharedComposable } from "@vueuse/core";
|
|
2
|
+
import { useApi, useGetFetch } from "./useApi.js";
|
|
3
|
+
export const useTablePermissionApi = createSharedComposable(() => ({
|
|
4
|
+
...useApi("/table-permissions"),
|
|
5
|
+
async getEffectivePermissions(tblName) {
|
|
6
|
+
return useGetFetch(`/table-permissions/effective?tblName=${encodeURIComponent(tblName)}`);
|
|
7
|
+
}
|
|
8
|
+
}));
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
import type { Table, TableColumn, UserTableColumn, MergedTableColumn, EffectiveTablePermission } from '#v/types';
|
|
2
|
+
export declare function useTableColumnPermission(): {
|
|
3
|
+
tables: import("vue").Ref<{
|
|
4
|
+
tblName?: string | undefined;
|
|
5
|
+
label?: string | undefined;
|
|
6
|
+
labelI18nKey?: string | undefined;
|
|
7
|
+
id: number;
|
|
8
|
+
createdAt?: string | undefined;
|
|
9
|
+
updatedAt?: string | undefined;
|
|
10
|
+
version?: number | undefined;
|
|
11
|
+
createdBy?: number | undefined;
|
|
12
|
+
creator?: any;
|
|
13
|
+
updatedBy?: number | undefined;
|
|
14
|
+
updater?: any;
|
|
15
|
+
}[], Table[] | {
|
|
16
|
+
tblName?: string | undefined;
|
|
17
|
+
label?: string | undefined;
|
|
18
|
+
labelI18nKey?: string | undefined;
|
|
19
|
+
id: number;
|
|
20
|
+
createdAt?: string | undefined;
|
|
21
|
+
updatedAt?: string | undefined;
|
|
22
|
+
version?: number | undefined;
|
|
23
|
+
createdBy?: number | undefined;
|
|
24
|
+
creator?: any;
|
|
25
|
+
updatedBy?: number | undefined;
|
|
26
|
+
updater?: any;
|
|
27
|
+
}[]>;
|
|
28
|
+
tablesLoading: import("vue").Ref<boolean, boolean>;
|
|
29
|
+
fetchTables: () => Promise<void>;
|
|
30
|
+
fetchColumnsByTableId: (tableId: number) => Promise<TableColumn[]>;
|
|
31
|
+
fetchMergedColumns: (tblName: string) => Promise<MergedTableColumn[]>;
|
|
32
|
+
fetchEffectivePermissions: (tblName: string) => Promise<EffectiveTablePermission | null>;
|
|
33
|
+
saveUserColumns: (tblName: string, configs: UserTableColumn[]) => Promise<void>;
|
|
34
|
+
};
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
import { ref } from "vue";
|
|
2
|
+
import { useTableApi, useTableColumnApi, useTablePermissionApi } from "#v/composables/api";
|
|
3
|
+
export function useTableColumnPermission() {
|
|
4
|
+
const tableApi = useTableApi();
|
|
5
|
+
const tableColumnApi = useTableColumnApi();
|
|
6
|
+
const tablePermissionApi = useTablePermissionApi();
|
|
7
|
+
const tables = ref([]);
|
|
8
|
+
const tablesLoading = ref(false);
|
|
9
|
+
async function fetchTables() {
|
|
10
|
+
tablesLoading.value = true;
|
|
11
|
+
try {
|
|
12
|
+
const { data } = await tableApi.list({ pagination: { pageNum: 0, pageSize: 0 } });
|
|
13
|
+
if (data.value.data) {
|
|
14
|
+
tables.value = data.value.data.list;
|
|
15
|
+
}
|
|
16
|
+
} finally {
|
|
17
|
+
tablesLoading.value = false;
|
|
18
|
+
}
|
|
19
|
+
}
|
|
20
|
+
async function fetchColumnsByTableId(tableId) {
|
|
21
|
+
const { data } = await tableColumnApi.list({
|
|
22
|
+
pagination: { pageNum: 0, pageSize: 0 },
|
|
23
|
+
whereQuery: { items: [{ field: "tableId", opr: "eq", value: tableId }] }
|
|
24
|
+
});
|
|
25
|
+
return data.value.data?.list ?? [];
|
|
26
|
+
}
|
|
27
|
+
async function fetchMergedColumns(tblName) {
|
|
28
|
+
const { data } = await tableColumnApi.getMergedColumns(tblName);
|
|
29
|
+
return data.value.data ?? [];
|
|
30
|
+
}
|
|
31
|
+
async function fetchEffectivePermissions(tblName) {
|
|
32
|
+
const { data } = await tablePermissionApi.getEffectivePermissions(tblName);
|
|
33
|
+
return data.value.data ?? null;
|
|
34
|
+
}
|
|
35
|
+
async function saveUserColumns(tblName, configs) {
|
|
36
|
+
await tableColumnApi.saveUserColumns(tblName, configs);
|
|
37
|
+
}
|
|
38
|
+
return {
|
|
39
|
+
tables,
|
|
40
|
+
tablesLoading,
|
|
41
|
+
fetchTables,
|
|
42
|
+
fetchColumnsByTableId,
|
|
43
|
+
fetchMergedColumns,
|
|
44
|
+
fetchEffectivePermissions,
|
|
45
|
+
saveUserColumns
|
|
46
|
+
};
|
|
47
|
+
}
|
|
@@ -32,6 +32,34 @@ export declare const useAuth: () => {
|
|
|
32
32
|
updatedBy?: number | undefined;
|
|
33
33
|
updater?: any;
|
|
34
34
|
}[] | undefined;
|
|
35
|
+
tablePermissions?: {
|
|
36
|
+
name?: string | undefined;
|
|
37
|
+
tableId?: number | undefined;
|
|
38
|
+
canView?: boolean | undefined;
|
|
39
|
+
canEdit?: boolean | undefined;
|
|
40
|
+
columnPermissions?: {
|
|
41
|
+
tablePermissionId?: number | undefined;
|
|
42
|
+
columnKey?: string | undefined;
|
|
43
|
+
canView?: boolean | undefined;
|
|
44
|
+
canEdit?: boolean | undefined;
|
|
45
|
+
id: number;
|
|
46
|
+
createdAt?: string | undefined;
|
|
47
|
+
updatedAt?: string | undefined;
|
|
48
|
+
version?: number | undefined;
|
|
49
|
+
createdBy?: number | undefined;
|
|
50
|
+
creator?: any;
|
|
51
|
+
updatedBy?: number | undefined;
|
|
52
|
+
updater?: any;
|
|
53
|
+
}[] | undefined;
|
|
54
|
+
id: number;
|
|
55
|
+
createdAt?: string | undefined;
|
|
56
|
+
updatedAt?: string | undefined;
|
|
57
|
+
version?: number | undefined;
|
|
58
|
+
createdBy?: number | undefined;
|
|
59
|
+
creator?: any;
|
|
60
|
+
updatedBy?: number | undefined;
|
|
61
|
+
updater?: any;
|
|
62
|
+
}[] | undefined;
|
|
35
63
|
id: number;
|
|
36
64
|
createdAt?: string | undefined;
|
|
37
65
|
updatedAt?: string | undefined;
|
|
@@ -66,6 +94,34 @@ export declare const useAuth: () => {
|
|
|
66
94
|
updatedBy?: number | undefined;
|
|
67
95
|
updater?: any;
|
|
68
96
|
}[] | undefined;
|
|
97
|
+
tablePermissions?: {
|
|
98
|
+
name?: string | undefined;
|
|
99
|
+
tableId?: number | undefined;
|
|
100
|
+
canView?: boolean | undefined;
|
|
101
|
+
canEdit?: boolean | undefined;
|
|
102
|
+
columnPermissions?: {
|
|
103
|
+
tablePermissionId?: number | undefined;
|
|
104
|
+
columnKey?: string | undefined;
|
|
105
|
+
canView?: boolean | undefined;
|
|
106
|
+
canEdit?: boolean | undefined;
|
|
107
|
+
id: number;
|
|
108
|
+
createdAt?: string | undefined;
|
|
109
|
+
updatedAt?: string | undefined;
|
|
110
|
+
version?: number | undefined;
|
|
111
|
+
createdBy?: number | undefined;
|
|
112
|
+
creator?: any;
|
|
113
|
+
updatedBy?: number | undefined;
|
|
114
|
+
updater?: any;
|
|
115
|
+
}[] | undefined;
|
|
116
|
+
id: number;
|
|
117
|
+
createdAt?: string | undefined;
|
|
118
|
+
updatedAt?: string | undefined;
|
|
119
|
+
version?: number | undefined;
|
|
120
|
+
createdBy?: number | undefined;
|
|
121
|
+
creator?: any;
|
|
122
|
+
updatedBy?: number | undefined;
|
|
123
|
+
updater?: any;
|
|
124
|
+
}[] | undefined;
|
|
69
125
|
id: number;
|
|
70
126
|
createdAt?: string | undefined;
|
|
71
127
|
updatedAt?: string | undefined;
|
|
@@ -4,6 +4,6 @@ export declare const useFormValues: <T>(raw: Ref<T>, defaultValues?: Partial<T>)
|
|
|
4
4
|
oldValues: Ref<T>;
|
|
5
5
|
newValues: Ref<T>;
|
|
6
6
|
};
|
|
7
|
-
export declare const useFormSubmission: <T extends BaseModel>(oldValues: Ref<T>, newValues: Ref<T>, close: (ok: boolean) => void, save: (model: T) => void, apiGroup: () => ApiGroup<T>, arrayTypeFieldKeys?: (keyof T)[], rowKey?: keyof T, versionKey?: keyof T) => {
|
|
7
|
+
export declare const useFormSubmission: <T extends BaseModel>(oldValues: Ref<T>, newValues: Ref<T>, close: (ok: boolean) => void, save: (model: T) => void, apiGroup: () => ApiGroup<T>, arrayTypeFieldKeys?: (keyof T)[], rowKey?: keyof T, versionKey?: keyof T, getExtraFields?: () => Record<string, any>) => {
|
|
8
8
|
onSubmit: () => Promise<void>;
|
|
9
9
|
};
|
|
@@ -18,7 +18,7 @@ export const useFormValues = (raw, defaultValues) => {
|
|
|
18
18
|
);
|
|
19
19
|
return { oldValues, newValues };
|
|
20
20
|
};
|
|
21
|
-
export const useFormSubmission = (oldValues, newValues, close, save, apiGroup, arrayTypeFieldKeys = [], rowKey = "id", versionKey = "version") => {
|
|
21
|
+
export const useFormSubmission = (oldValues, newValues, close, save, apiGroup, arrayTypeFieldKeys = [], rowKey = "id", versionKey = "version", getExtraFields) => {
|
|
22
22
|
const apiFns = apiGroup();
|
|
23
23
|
async function onSubmit() {
|
|
24
24
|
if (oldValues.value[rowKey] === 0) {
|
|
@@ -28,7 +28,9 @@ export const useFormSubmission = (oldValues, newValues, close, save, apiGroup, a
|
|
|
28
28
|
}
|
|
29
29
|
}
|
|
30
30
|
async function onCreate() {
|
|
31
|
-
const
|
|
31
|
+
const extraFields = getExtraFields ? getExtraFields() : void 0;
|
|
32
|
+
const payload = extraFields ? { ...apiFns.prune(newValues.value), ...extraFields } : apiFns.prune(newValues.value);
|
|
33
|
+
const { data } = await apiFns.create(payload);
|
|
32
34
|
if (!data.value.error) {
|
|
33
35
|
save(data.value.data);
|
|
34
36
|
close(true);
|
|
@@ -50,7 +52,9 @@ export const useFormSubmission = (oldValues, newValues, close, save, apiGroup, a
|
|
|
50
52
|
});
|
|
51
53
|
return;
|
|
52
54
|
}
|
|
53
|
-
const
|
|
55
|
+
const extraFields = getExtraFields ? getExtraFields() : void 0;
|
|
56
|
+
const payload = extraFields ? { ...apiFns.prune(objWithModifiedFields), ...extraFields } : apiFns.prune(objWithModifiedFields);
|
|
57
|
+
const { data } = await apiFns.update(payload);
|
|
54
58
|
if (!data.value.error) {
|
|
55
59
|
save(data.value.data);
|
|
56
60
|
close(true);
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import type { BaseModel } from './base.js';
|
|
2
|
+
import type { TablePermission } from './table.js';
|
|
2
3
|
export type Menu = {
|
|
3
4
|
isAdmin?: boolean;
|
|
4
5
|
type?: string;
|
|
@@ -18,6 +19,7 @@ export type Role = {
|
|
|
18
19
|
disabled?: boolean;
|
|
19
20
|
remark?: string;
|
|
20
21
|
menus?: Menu[];
|
|
22
|
+
tablePermissions?: TablePermission[];
|
|
21
23
|
} & BaseModel;
|
|
22
24
|
export type Company = {
|
|
23
25
|
fullname?: string;
|
|
@@ -74,6 +76,7 @@ export type User = {
|
|
|
74
76
|
needChangePwd?: boolean;
|
|
75
77
|
needFillWh?: boolean;
|
|
76
78
|
isAdmin?: boolean;
|
|
79
|
+
tablePermissions?: TablePermission[];
|
|
77
80
|
};
|
|
78
81
|
export type RowRecord = {
|
|
79
82
|
rowId?: number;
|
|
@@ -0,0 +1,59 @@
|
|
|
1
|
+
import type { BaseModel } from './base.js';
|
|
2
|
+
export interface Table extends BaseModel {
|
|
3
|
+
tblName?: string;
|
|
4
|
+
label?: string;
|
|
5
|
+
labelI18nKey?: string;
|
|
6
|
+
}
|
|
7
|
+
export interface TableColumn extends BaseModel {
|
|
8
|
+
tableId?: number;
|
|
9
|
+
columnKey?: string;
|
|
10
|
+
label?: string;
|
|
11
|
+
labelI18nKey?: string;
|
|
12
|
+
order?: number;
|
|
13
|
+
width?: number;
|
|
14
|
+
fixed?: 'left' | 'right' | '';
|
|
15
|
+
visible?: boolean;
|
|
16
|
+
}
|
|
17
|
+
export interface UserTableColumn extends BaseModel {
|
|
18
|
+
userId?: number;
|
|
19
|
+
tableColumnId?: number;
|
|
20
|
+
order?: number;
|
|
21
|
+
width?: number;
|
|
22
|
+
fixed?: 'left' | 'right' | '';
|
|
23
|
+
visible?: boolean;
|
|
24
|
+
}
|
|
25
|
+
export interface MergedTableColumn {
|
|
26
|
+
tableColumnId?: number;
|
|
27
|
+
columnKey?: string;
|
|
28
|
+
label?: string;
|
|
29
|
+
i18nKey?: string;
|
|
30
|
+
order?: number;
|
|
31
|
+
width?: number;
|
|
32
|
+
fixed?: 'left' | 'right' | '';
|
|
33
|
+
visible?: boolean;
|
|
34
|
+
canView?: boolean;
|
|
35
|
+
canEdit?: boolean;
|
|
36
|
+
}
|
|
37
|
+
export interface TablePermission extends BaseModel {
|
|
38
|
+
name?: string;
|
|
39
|
+
tableId?: number;
|
|
40
|
+
canView?: boolean;
|
|
41
|
+
canEdit?: boolean;
|
|
42
|
+
columnPermissions?: TableColumnPermission[];
|
|
43
|
+
}
|
|
44
|
+
export interface TableColumnPermission extends BaseModel {
|
|
45
|
+
tablePermissionId?: number;
|
|
46
|
+
columnKey?: string;
|
|
47
|
+
canView?: boolean;
|
|
48
|
+
canEdit?: boolean;
|
|
49
|
+
}
|
|
50
|
+
export interface EffectiveTablePermission {
|
|
51
|
+
isConfigured: boolean;
|
|
52
|
+
canViewTable: boolean;
|
|
53
|
+
canEditTable: boolean;
|
|
54
|
+
columns: Record<string, ColumnEffectivePerm>;
|
|
55
|
+
}
|
|
56
|
+
export interface ColumnEffectivePerm {
|
|
57
|
+
canView: boolean;
|
|
58
|
+
canEdit: boolean;
|
|
59
|
+
}
|
|
File without changes
|
package/package.json
CHANGED