@hostlink/nuxt-light 1.45.4 → 1.45.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/dist/module.json +1 -1
- package/dist/runtime/components/l-list.vue +1 -0
- package/dist/runtime/components/l-table.d.vue.ts +1 -0
- package/dist/runtime/components/l-table.vue +8 -7
- package/dist/runtime/components/l-table.vue.d.ts +1 -0
- package/dist/runtime/composables/defineLightModel.d.ts +3 -1
- package/dist/runtime/composables/getGQLFields.d.ts +1 -1
- package/dist/runtime/composables/getModelField.d.ts +1 -1
- package/dist/runtime/composables/getObject.js +5 -1
- package/dist/runtime/composables/list.d.ts +1 -1
- package/dist/runtime/composables/model.js +8 -18
- package/dist/runtime/models/EventLog.d.ts +38 -0
- package/dist/runtime/models/EventLog.js +37 -0
- package/dist/runtime/models/MailLog.d.ts +34 -0
- package/dist/runtime/models/MailLog.js +33 -0
- package/dist/runtime/models/SystemValue.d.ts +14 -0
- package/dist/runtime/models/SystemValue.js +13 -0
- package/dist/runtime/models/User.d.ts +71 -0
- package/dist/runtime/models/User.js +89 -0
- package/dist/runtime/models/UserLog.d.ts +51 -0
- package/dist/runtime/models/UserLog.js +56 -0
- package/dist/runtime/pages/User/_user_id/edit.vue +1 -1
- package/dist/runtime/plugin.js +12 -12
- package/package.json +2 -2
- package/dist/runtime/types/EventLog.d.ts +0 -35
- package/dist/runtime/types/EventLog.js +0 -34
- package/dist/runtime/types/MailLog.d.ts +0 -31
- package/dist/runtime/types/MailLog.js +0 -30
- package/dist/runtime/types/SystemValue.d.ts +0 -11
- package/dist/runtime/types/SystemValue.js +0 -10
- package/dist/runtime/types/User.d.ts +0 -60
- package/dist/runtime/types/User.js +0 -76
- package/dist/runtime/types/UserLog.d.ts +0 -48
- package/dist/runtime/types/UserLog.js +0 -53
- /package/dist/runtime/{model → models}/CustomField.d.ts +0 -0
- /package/dist/runtime/{model → models}/CustomField.js +0 -0
package/dist/module.json
CHANGED
|
@@ -5,6 +5,7 @@ export interface LTableColumn extends QTableColumn {
|
|
|
5
5
|
searchType?: string;
|
|
6
6
|
searchOptions?: Array<any> | Function;
|
|
7
7
|
searchMultiple?: boolean;
|
|
8
|
+
searchIndex?: string;
|
|
8
9
|
gqlField?: string | Array<string> | Object;
|
|
9
10
|
backgroundColor?: string | Function;
|
|
10
11
|
searchMethod?: string;
|
|
@@ -577,12 +577,12 @@ const searchSelectFilter = (val, update, name) => {
|
|
|
577
577
|
|
|
578
578
|
<template v-if="col.searchType == 'number'">
|
|
579
579
|
<q-input style="min-width: 80px;" dense clearable filled square
|
|
580
|
-
v-model.number="filters[col.name]" @keydown.enter.prevent="onFilters"
|
|
581
|
-
mask="##########" :enterkeyhint="$t('search')"></q-input>
|
|
580
|
+
v-model.number="filters[col.searchIndex ?? col.name]" @keydown.enter.prevent="onFilters"
|
|
581
|
+
@clear="onFilters" mask="##########" :enterkeyhint="$t('search')"></q-input>
|
|
582
582
|
</template>
|
|
583
583
|
|
|
584
584
|
<template v-if="col.searchType == 'select'">
|
|
585
|
-
<q-select dense clearable filled square v-model="filters[col.name]"
|
|
585
|
+
<q-select dense clearable filled square v-model="filters[col.searchIndex ?? col.name]"
|
|
586
586
|
@update:model-value="onFilters" options-dense :options="localSearchOptions[col.name]"
|
|
587
587
|
emit-value map-options :multiple="col.searchMultiple" :color="$light.color" use-input
|
|
588
588
|
input-debounce="0" @filter="(val, update) => {
|
|
@@ -592,13 +592,14 @@ const searchSelectFilter = (val, update, name) => {
|
|
|
592
592
|
|
|
593
593
|
<template v-if="col.searchType == 'date'">
|
|
594
594
|
<l-date-picker dense clearable filled square :outlined="false" hide-bottom-space
|
|
595
|
-
v-model="filters[col.name]" @update:model-value="onFilters" range
|
|
595
|
+
v-model="filters[col.searchIndex ?? col.name]" @update:model-value="onFilters" range
|
|
596
|
+
@clear="onFilters" />
|
|
596
597
|
</template>
|
|
597
598
|
|
|
598
599
|
<template v-if="!col.searchType || col.searchType == 'text'">
|
|
599
|
-
<q-input style="min-width: 80px;" dense clearable filled square
|
|
600
|
-
@keydown.enter.prevent="onFilters"
|
|
601
|
-
:color="$light.color"></q-input>
|
|
600
|
+
<q-input style="min-width: 80px;" dense clearable filled square
|
|
601
|
+
v-model="filters[col.searchIndex ?? col.name]" @keydown.enter.prevent="onFilters"
|
|
602
|
+
@clear="onFilters" :enterkeyhint="$t('search')" :color="$light.color"></q-input>
|
|
602
603
|
|
|
603
604
|
</template>
|
|
604
605
|
|
|
@@ -5,6 +5,7 @@ export interface LTableColumn extends QTableColumn {
|
|
|
5
5
|
searchType?: string;
|
|
6
6
|
searchOptions?: Array<any> | Function;
|
|
7
7
|
searchMultiple?: boolean;
|
|
8
|
+
searchIndex?: string;
|
|
8
9
|
gqlField?: string | Array<string> | Object;
|
|
9
10
|
backgroundColor?: string | Function;
|
|
10
11
|
searchMethod?: string;
|
|
@@ -1,8 +1,9 @@
|
|
|
1
1
|
import type { Component } from "vue";
|
|
2
|
+
import { type Field } from "@hostlink/light";
|
|
2
3
|
export interface LightModelGqlField {
|
|
3
4
|
[key: string]: string | LightModelGqlField | boolean;
|
|
4
5
|
}
|
|
5
|
-
export interface LightModelField {
|
|
6
|
+
export interface LightModelField extends Field {
|
|
6
7
|
label: string;
|
|
7
8
|
sortable?: boolean;
|
|
8
9
|
searchable?: boolean;
|
|
@@ -17,6 +18,7 @@ export interface LightModelField {
|
|
|
17
18
|
format?: (value: any) => any;
|
|
18
19
|
style?: any;
|
|
19
20
|
align?: "left" | "center" | "right";
|
|
21
|
+
searchOptions?: Record<string, any>[];
|
|
20
22
|
}
|
|
21
23
|
export interface LightModelFields {
|
|
22
24
|
[key: string]: LightModelField;
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
declare const _default: (name: string, fields: string[]) => any
|
|
1
|
+
declare const _default: (name: string, fields: string[]) => Record<string, any>;
|
|
2
2
|
export default _default;
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
declare const _default: (name: string, field: string) => import("@hostlink/light").
|
|
1
|
+
declare const _default: (name: string, field: string) => import("@hostlink/light").Field | null;
|
|
2
2
|
export default _default;
|
|
@@ -19,7 +19,11 @@ export default async function(fields = []) {
|
|
|
19
19
|
if (typeof field == "string") {
|
|
20
20
|
const f = getModelField(module, field);
|
|
21
21
|
if (f) {
|
|
22
|
-
|
|
22
|
+
if (f.gqlField) {
|
|
23
|
+
return f.gqlField;
|
|
24
|
+
} else {
|
|
25
|
+
return field;
|
|
26
|
+
}
|
|
23
27
|
}
|
|
24
28
|
}
|
|
25
29
|
return field;
|
|
@@ -1,26 +1,16 @@
|
|
|
1
1
|
import { default as api } from "./api.js";
|
|
2
2
|
export default (name) => {
|
|
3
|
-
const m = api.
|
|
3
|
+
const m = api.models.get(name);
|
|
4
4
|
return Object.assign(m, {
|
|
5
5
|
columns(fields) {
|
|
6
6
|
let columns = [];
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
}
|
|
15
|
-
} else {
|
|
16
|
-
for (let f in fields) {
|
|
17
|
-
if (!fields[f]) continue;
|
|
18
|
-
const field = m.field(f);
|
|
19
|
-
if (!field) continue;
|
|
20
|
-
const option = field.getRaw();
|
|
21
|
-
option.name = field.getName();
|
|
22
|
-
columns.push(option);
|
|
23
|
-
}
|
|
7
|
+
const fs = Array.isArray(fields) ? fields : Object.keys(fields);
|
|
8
|
+
for (let f of fs) {
|
|
9
|
+
const field = m.field(f);
|
|
10
|
+
if (!field) continue;
|
|
11
|
+
const option = field;
|
|
12
|
+
option.name = field.name ?? f;
|
|
13
|
+
columns.push(option);
|
|
24
14
|
}
|
|
25
15
|
return columns;
|
|
26
16
|
}
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
declare const _default: {
|
|
2
|
+
name: string;
|
|
3
|
+
fields: {
|
|
4
|
+
eventlog_id: {
|
|
5
|
+
label: string;
|
|
6
|
+
sortable: boolean;
|
|
7
|
+
searchable: boolean;
|
|
8
|
+
autoWidth: boolean;
|
|
9
|
+
};
|
|
10
|
+
class: {
|
|
11
|
+
label: string;
|
|
12
|
+
sortable: boolean;
|
|
13
|
+
searchable: boolean;
|
|
14
|
+
};
|
|
15
|
+
id: {
|
|
16
|
+
label: string;
|
|
17
|
+
sortable: boolean;
|
|
18
|
+
searchable: boolean;
|
|
19
|
+
};
|
|
20
|
+
action: {
|
|
21
|
+
label: string;
|
|
22
|
+
sortable: boolean;
|
|
23
|
+
searchable: boolean;
|
|
24
|
+
};
|
|
25
|
+
created_time: {
|
|
26
|
+
label: string;
|
|
27
|
+
sortable: boolean;
|
|
28
|
+
searchable: boolean;
|
|
29
|
+
searchType: string;
|
|
30
|
+
};
|
|
31
|
+
username: {
|
|
32
|
+
label: string;
|
|
33
|
+
sortable: boolean;
|
|
34
|
+
searchable: boolean;
|
|
35
|
+
};
|
|
36
|
+
};
|
|
37
|
+
};
|
|
38
|
+
export default _default;
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
export default {
|
|
2
|
+
name: "EventLog",
|
|
3
|
+
fields: {
|
|
4
|
+
eventlog_id: {
|
|
5
|
+
label: "EventLog ID",
|
|
6
|
+
sortable: true,
|
|
7
|
+
searchable: true,
|
|
8
|
+
autoWidth: true
|
|
9
|
+
},
|
|
10
|
+
class: {
|
|
11
|
+
label: "Class",
|
|
12
|
+
sortable: true,
|
|
13
|
+
searchable: true
|
|
14
|
+
},
|
|
15
|
+
id: {
|
|
16
|
+
label: "ID",
|
|
17
|
+
sortable: true,
|
|
18
|
+
searchable: true
|
|
19
|
+
},
|
|
20
|
+
action: {
|
|
21
|
+
label: "Action",
|
|
22
|
+
sortable: true,
|
|
23
|
+
searchable: true
|
|
24
|
+
},
|
|
25
|
+
created_time: {
|
|
26
|
+
label: "Created time",
|
|
27
|
+
sortable: true,
|
|
28
|
+
searchable: true,
|
|
29
|
+
searchType: "date"
|
|
30
|
+
},
|
|
31
|
+
username: {
|
|
32
|
+
label: "Username",
|
|
33
|
+
sortable: true,
|
|
34
|
+
searchable: true
|
|
35
|
+
}
|
|
36
|
+
}
|
|
37
|
+
};
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
declare const _default: {
|
|
2
|
+
name: string;
|
|
3
|
+
fields: {
|
|
4
|
+
maillog_id: {
|
|
5
|
+
label: string;
|
|
6
|
+
sortable: boolean;
|
|
7
|
+
searchable: boolean;
|
|
8
|
+
searchType: string;
|
|
9
|
+
autoWidth: boolean;
|
|
10
|
+
};
|
|
11
|
+
from: {
|
|
12
|
+
label: string;
|
|
13
|
+
sortable: boolean;
|
|
14
|
+
searchable: boolean;
|
|
15
|
+
};
|
|
16
|
+
to: {
|
|
17
|
+
label: string;
|
|
18
|
+
sortable: boolean;
|
|
19
|
+
searchable: boolean;
|
|
20
|
+
};
|
|
21
|
+
subject: {
|
|
22
|
+
label: string;
|
|
23
|
+
sortable: boolean;
|
|
24
|
+
searchable: boolean;
|
|
25
|
+
};
|
|
26
|
+
created_time: {
|
|
27
|
+
label: string;
|
|
28
|
+
sortable: boolean;
|
|
29
|
+
searchable: boolean;
|
|
30
|
+
searchType: string;
|
|
31
|
+
};
|
|
32
|
+
};
|
|
33
|
+
};
|
|
34
|
+
export default _default;
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
export default {
|
|
2
|
+
name: "MailLog",
|
|
3
|
+
fields: {
|
|
4
|
+
maillog_id: {
|
|
5
|
+
label: "ID",
|
|
6
|
+
sortable: true,
|
|
7
|
+
searchable: true,
|
|
8
|
+
searchType: "number",
|
|
9
|
+
autoWidth: true
|
|
10
|
+
},
|
|
11
|
+
from: {
|
|
12
|
+
label: "From",
|
|
13
|
+
sortable: true,
|
|
14
|
+
searchable: true
|
|
15
|
+
},
|
|
16
|
+
to: {
|
|
17
|
+
label: "To",
|
|
18
|
+
sortable: true,
|
|
19
|
+
searchable: true
|
|
20
|
+
},
|
|
21
|
+
subject: {
|
|
22
|
+
label: "Subject",
|
|
23
|
+
sortable: true,
|
|
24
|
+
searchable: true
|
|
25
|
+
},
|
|
26
|
+
created_time: {
|
|
27
|
+
label: "Created time",
|
|
28
|
+
sortable: true,
|
|
29
|
+
searchable: true,
|
|
30
|
+
searchType: "date"
|
|
31
|
+
}
|
|
32
|
+
}
|
|
33
|
+
};
|
|
@@ -0,0 +1,71 @@
|
|
|
1
|
+
declare const _default: {
|
|
2
|
+
name: string;
|
|
3
|
+
fields: {
|
|
4
|
+
Name: {
|
|
5
|
+
label: string;
|
|
6
|
+
gql: {
|
|
7
|
+
first_name: boolean;
|
|
8
|
+
last_name: boolean;
|
|
9
|
+
};
|
|
10
|
+
format: (row: any) => string;
|
|
11
|
+
};
|
|
12
|
+
username: {
|
|
13
|
+
label: string;
|
|
14
|
+
sortable: boolean;
|
|
15
|
+
searchable: boolean;
|
|
16
|
+
};
|
|
17
|
+
first_name: {
|
|
18
|
+
label: string;
|
|
19
|
+
sortable: boolean;
|
|
20
|
+
searchable: boolean;
|
|
21
|
+
};
|
|
22
|
+
last_name: {
|
|
23
|
+
label: string;
|
|
24
|
+
sortable: boolean;
|
|
25
|
+
searchable: boolean;
|
|
26
|
+
};
|
|
27
|
+
email: {
|
|
28
|
+
label: string;
|
|
29
|
+
sortable: boolean;
|
|
30
|
+
searchable: boolean;
|
|
31
|
+
};
|
|
32
|
+
phone: {
|
|
33
|
+
label: string;
|
|
34
|
+
sortable: boolean;
|
|
35
|
+
searchable: boolean;
|
|
36
|
+
};
|
|
37
|
+
join_date: {
|
|
38
|
+
label: string;
|
|
39
|
+
sortable: boolean;
|
|
40
|
+
searchable: boolean;
|
|
41
|
+
searchType: string;
|
|
42
|
+
};
|
|
43
|
+
roles: {
|
|
44
|
+
label: string;
|
|
45
|
+
format: (value: any) => any;
|
|
46
|
+
};
|
|
47
|
+
status: {
|
|
48
|
+
label: string;
|
|
49
|
+
searchable: boolean;
|
|
50
|
+
searchType: string;
|
|
51
|
+
searchOptions: {
|
|
52
|
+
label: string;
|
|
53
|
+
value: number;
|
|
54
|
+
}[];
|
|
55
|
+
format: (value: any) => string;
|
|
56
|
+
};
|
|
57
|
+
has2FA: {
|
|
58
|
+
label: string;
|
|
59
|
+
searchType: string;
|
|
60
|
+
format: (value: any) => "" | "✔️";
|
|
61
|
+
};
|
|
62
|
+
_test2: {
|
|
63
|
+
label: string;
|
|
64
|
+
component: any;
|
|
65
|
+
componentProps: (a: any) => {
|
|
66
|
+
test: any;
|
|
67
|
+
};
|
|
68
|
+
};
|
|
69
|
+
};
|
|
70
|
+
};
|
|
71
|
+
export default _default;
|
|
@@ -0,0 +1,89 @@
|
|
|
1
|
+
import MyTest from "../components/MyTest.vue";
|
|
2
|
+
export default {
|
|
3
|
+
name: "User",
|
|
4
|
+
fields: {
|
|
5
|
+
Name: {
|
|
6
|
+
label: "Name",
|
|
7
|
+
gql: {
|
|
8
|
+
first_name: true,
|
|
9
|
+
last_name: true
|
|
10
|
+
},
|
|
11
|
+
format: (row) => {
|
|
12
|
+
return row.first_name + " " + row.last_name;
|
|
13
|
+
}
|
|
14
|
+
},
|
|
15
|
+
username: {
|
|
16
|
+
label: "Username",
|
|
17
|
+
sortable: true,
|
|
18
|
+
searchable: true
|
|
19
|
+
//cellClass: (row: any) => (row.username == "admin" ? "text-danger" : ""),
|
|
20
|
+
/* backgroundColor: (row: any) => {
|
|
21
|
+
|
|
22
|
+
|
|
23
|
+
if (row.username == "admin") {
|
|
24
|
+
return "red";
|
|
25
|
+
} else {
|
|
26
|
+
return "white";
|
|
27
|
+
}
|
|
28
|
+
} */
|
|
29
|
+
},
|
|
30
|
+
first_name: {
|
|
31
|
+
label: "First name",
|
|
32
|
+
sortable: true,
|
|
33
|
+
searchable: true
|
|
34
|
+
},
|
|
35
|
+
last_name: {
|
|
36
|
+
label: "Last name",
|
|
37
|
+
sortable: true,
|
|
38
|
+
searchable: true
|
|
39
|
+
},
|
|
40
|
+
email: {
|
|
41
|
+
label: "Email",
|
|
42
|
+
sortable: true,
|
|
43
|
+
searchable: true
|
|
44
|
+
},
|
|
45
|
+
phone: {
|
|
46
|
+
label: "Phone",
|
|
47
|
+
sortable: true,
|
|
48
|
+
searchable: true
|
|
49
|
+
},
|
|
50
|
+
join_date: {
|
|
51
|
+
label: "Join date",
|
|
52
|
+
sortable: true,
|
|
53
|
+
searchable: true,
|
|
54
|
+
searchType: "date"
|
|
55
|
+
},
|
|
56
|
+
roles: {
|
|
57
|
+
label: "Roles",
|
|
58
|
+
format: (value) => value.join(", ")
|
|
59
|
+
},
|
|
60
|
+
status: {
|
|
61
|
+
label: "Status",
|
|
62
|
+
searchable: true,
|
|
63
|
+
searchType: "select",
|
|
64
|
+
searchOptions: [
|
|
65
|
+
{ label: "Active", value: 0 },
|
|
66
|
+
{ label: "Inactive", value: 1 }
|
|
67
|
+
],
|
|
68
|
+
format: (value) => {
|
|
69
|
+
return ["Active", "Inactive"][value];
|
|
70
|
+
}
|
|
71
|
+
},
|
|
72
|
+
has2FA: {
|
|
73
|
+
label: "2FA",
|
|
74
|
+
searchType: "select",
|
|
75
|
+
format: (value) => {
|
|
76
|
+
return value ? "\u2714\uFE0F" : "";
|
|
77
|
+
}
|
|
78
|
+
},
|
|
79
|
+
_test2: {
|
|
80
|
+
label: "Test",
|
|
81
|
+
component: MyTest,
|
|
82
|
+
componentProps: (a) => {
|
|
83
|
+
return {
|
|
84
|
+
test: a.username
|
|
85
|
+
};
|
|
86
|
+
}
|
|
87
|
+
}
|
|
88
|
+
}
|
|
89
|
+
};
|
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
declare const _default: {
|
|
2
|
+
name: string;
|
|
3
|
+
fields: {
|
|
4
|
+
userlog_id: {
|
|
5
|
+
label: string;
|
|
6
|
+
sortable: boolean;
|
|
7
|
+
searchable: boolean;
|
|
8
|
+
autoWidth: boolean;
|
|
9
|
+
};
|
|
10
|
+
username: {
|
|
11
|
+
label: string;
|
|
12
|
+
sortable: boolean;
|
|
13
|
+
searchable: boolean;
|
|
14
|
+
};
|
|
15
|
+
login_dt: {
|
|
16
|
+
label: string;
|
|
17
|
+
sortable: boolean;
|
|
18
|
+
searchable: boolean;
|
|
19
|
+
searchType: string;
|
|
20
|
+
};
|
|
21
|
+
logout_dt: {
|
|
22
|
+
label: string;
|
|
23
|
+
sortable: boolean;
|
|
24
|
+
searchable: boolean;
|
|
25
|
+
};
|
|
26
|
+
result: {
|
|
27
|
+
label: string;
|
|
28
|
+
sortable: boolean;
|
|
29
|
+
searchable: boolean;
|
|
30
|
+
searchType: string;
|
|
31
|
+
searchOptions: {
|
|
32
|
+
label: string;
|
|
33
|
+
value: string;
|
|
34
|
+
}[];
|
|
35
|
+
autoWidth: boolean;
|
|
36
|
+
};
|
|
37
|
+
user_agent: {
|
|
38
|
+
label: string;
|
|
39
|
+
sortable: boolean;
|
|
40
|
+
searchable: boolean;
|
|
41
|
+
whiteSpace: string;
|
|
42
|
+
};
|
|
43
|
+
last_access_time: {
|
|
44
|
+
label: string;
|
|
45
|
+
sortable: boolean;
|
|
46
|
+
searchable: boolean;
|
|
47
|
+
searchType: string;
|
|
48
|
+
};
|
|
49
|
+
};
|
|
50
|
+
};
|
|
51
|
+
export default _default;
|
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
export default {
|
|
2
|
+
name: "UserLog",
|
|
3
|
+
fields: {
|
|
4
|
+
userlog_id: {
|
|
5
|
+
label: "ID",
|
|
6
|
+
sortable: true,
|
|
7
|
+
searchable: true,
|
|
8
|
+
autoWidth: true
|
|
9
|
+
},
|
|
10
|
+
username: {
|
|
11
|
+
label: "User",
|
|
12
|
+
sortable: true,
|
|
13
|
+
searchable: true
|
|
14
|
+
},
|
|
15
|
+
login_dt: {
|
|
16
|
+
label: "Login time",
|
|
17
|
+
sortable: true,
|
|
18
|
+
searchable: true,
|
|
19
|
+
searchType: "date"
|
|
20
|
+
},
|
|
21
|
+
logout_dt: {
|
|
22
|
+
label: "Logout time",
|
|
23
|
+
sortable: true,
|
|
24
|
+
searchable: true
|
|
25
|
+
},
|
|
26
|
+
result: {
|
|
27
|
+
label: "Result",
|
|
28
|
+
sortable: true,
|
|
29
|
+
searchable: true,
|
|
30
|
+
searchType: "select",
|
|
31
|
+
searchOptions: [
|
|
32
|
+
{
|
|
33
|
+
label: "SUCCESS",
|
|
34
|
+
value: "SUCCESS"
|
|
35
|
+
},
|
|
36
|
+
{
|
|
37
|
+
label: "FAIL",
|
|
38
|
+
value: "FAIL"
|
|
39
|
+
}
|
|
40
|
+
],
|
|
41
|
+
autoWidth: true
|
|
42
|
+
},
|
|
43
|
+
user_agent: {
|
|
44
|
+
label: "User agent",
|
|
45
|
+
sortable: true,
|
|
46
|
+
searchable: true,
|
|
47
|
+
whiteSpace: "pre-line"
|
|
48
|
+
},
|
|
49
|
+
last_access_time: {
|
|
50
|
+
label: "Last access time",
|
|
51
|
+
sortable: true,
|
|
52
|
+
searchable: true,
|
|
53
|
+
searchType: "date"
|
|
54
|
+
}
|
|
55
|
+
}
|
|
56
|
+
};
|
|
@@ -34,7 +34,7 @@ const languages = tt.app.languages.map((lang) => {
|
|
|
34
34
|
<template>
|
|
35
35
|
<l-page>
|
|
36
36
|
<FormKit type="l-form" :value="obj" gutter="none">
|
|
37
|
-
<l-row>
|
|
37
|
+
<l-row class="col col-12">
|
|
38
38
|
<l-col md="6">
|
|
39
39
|
<FormKit type="l-input" label="Username" name="username" validation="required" />
|
|
40
40
|
<FormKit type="l-input" label="First name" name="first_name" validation="required" />
|
package/dist/runtime/plugin.js
CHANGED
|
@@ -14,12 +14,12 @@ import { createLightPlugin } from "./formkit/index.js";
|
|
|
14
14
|
import { plugin, defaultConfig } from "@formkit/vue";
|
|
15
15
|
import getApiBase from "./composables/getApiBase.js";
|
|
16
16
|
import useLight from "./composables/useLight.js";
|
|
17
|
-
import TypeUser from "./
|
|
18
|
-
import TypeUserLog from "./
|
|
19
|
-
import TypeSystemValue from "./
|
|
20
|
-
import TypeMailLog from "./
|
|
21
|
-
import TypeEventLog from "./
|
|
22
|
-
import TypeCustomerField from "./
|
|
17
|
+
import TypeUser from "./models/User.js";
|
|
18
|
+
import TypeUserLog from "./models/UserLog.js";
|
|
19
|
+
import TypeSystemValue from "./models/SystemValue.js";
|
|
20
|
+
import TypeMailLog from "./models/MailLog.js";
|
|
21
|
+
import TypeEventLog from "./models/EventLog.js";
|
|
22
|
+
import TypeCustomerField from "./models/CustomField.js";
|
|
23
23
|
import { zhTW } from "@formkit/i18n";
|
|
24
24
|
export default defineNuxtPlugin((nuxtApp) => {
|
|
25
25
|
addRouteMiddleware("auth", async (to, from) => {
|
|
@@ -44,12 +44,12 @@ export default defineNuxtPlugin((nuxtApp) => {
|
|
|
44
44
|
}
|
|
45
45
|
}, { global: true });
|
|
46
46
|
api.axios.defaults.baseURL = getApiBase();
|
|
47
|
-
api.models.create(
|
|
48
|
-
api.models.create("User", TypeUser);
|
|
49
|
-
api.models.create("UserLog", TypeUserLog);
|
|
50
|
-
api.models.create("SystemValue", TypeSystemValue);
|
|
51
|
-
api.models.create("MailLog", TypeMailLog);
|
|
52
|
-
api.models.create("EventLog", TypeEventLog);
|
|
47
|
+
api.models.create("CustomField", TypeCustomerField.fields);
|
|
48
|
+
api.models.create("User", TypeUser.fields);
|
|
49
|
+
api.models.create("UserLog", TypeUserLog.fields);
|
|
50
|
+
api.models.create("SystemValue", TypeSystemValue.fields);
|
|
51
|
+
api.models.create("MailLog", TypeMailLog.fields);
|
|
52
|
+
api.models.create("EventLog", TypeEventLog.fields);
|
|
53
53
|
api.model("MailLog").setDataPath("app.listMailLog");
|
|
54
54
|
api.model("EventLog").setDataPath("app.listEventLog");
|
|
55
55
|
api.model("User").setDataPath("app.listUser");
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@hostlink/nuxt-light",
|
|
3
|
-
"version": "1.45.
|
|
3
|
+
"version": "1.45.5",
|
|
4
4
|
"description": "HostLink Nuxt Light Framework",
|
|
5
5
|
"repository": {
|
|
6
6
|
"type": "git",
|
|
@@ -32,7 +32,7 @@
|
|
|
32
32
|
"dependencies": {
|
|
33
33
|
"@azure/msal-browser": "^3.26.1",
|
|
34
34
|
"@formkit/drag-and-drop": "^0.5.3",
|
|
35
|
-
"@hostlink/light": "^2.
|
|
35
|
+
"@hostlink/light": "^2.13.2",
|
|
36
36
|
"@nuxt/module-builder": "^1.0.1",
|
|
37
37
|
"@quasar/extras": "^1.17.0",
|
|
38
38
|
"@quasar/quasar-ui-qmarkdown": "^2.0.5",
|
|
@@ -1,35 +0,0 @@
|
|
|
1
|
-
declare const _default: {
|
|
2
|
-
eventlog_id: {
|
|
3
|
-
label: string;
|
|
4
|
-
sortable: boolean;
|
|
5
|
-
searchable: boolean;
|
|
6
|
-
autoWidth: boolean;
|
|
7
|
-
};
|
|
8
|
-
class: {
|
|
9
|
-
label: string;
|
|
10
|
-
sortable: boolean;
|
|
11
|
-
searchable: boolean;
|
|
12
|
-
};
|
|
13
|
-
id: {
|
|
14
|
-
label: string;
|
|
15
|
-
sortable: boolean;
|
|
16
|
-
searchable: boolean;
|
|
17
|
-
};
|
|
18
|
-
action: {
|
|
19
|
-
label: string;
|
|
20
|
-
sortable: boolean;
|
|
21
|
-
searchable: boolean;
|
|
22
|
-
};
|
|
23
|
-
created_time: {
|
|
24
|
-
label: string;
|
|
25
|
-
sortable: boolean;
|
|
26
|
-
searchable: boolean;
|
|
27
|
-
searchType: string;
|
|
28
|
-
};
|
|
29
|
-
username: {
|
|
30
|
-
label: string;
|
|
31
|
-
sortable: boolean;
|
|
32
|
-
searchable: boolean;
|
|
33
|
-
};
|
|
34
|
-
};
|
|
35
|
-
export default _default;
|
|
@@ -1,34 +0,0 @@
|
|
|
1
|
-
export default {
|
|
2
|
-
eventlog_id: {
|
|
3
|
-
label: "EventLog ID",
|
|
4
|
-
sortable: true,
|
|
5
|
-
searchable: true,
|
|
6
|
-
autoWidth: true
|
|
7
|
-
},
|
|
8
|
-
class: {
|
|
9
|
-
label: "Class",
|
|
10
|
-
sortable: true,
|
|
11
|
-
searchable: true
|
|
12
|
-
},
|
|
13
|
-
id: {
|
|
14
|
-
label: "ID",
|
|
15
|
-
sortable: true,
|
|
16
|
-
searchable: true
|
|
17
|
-
},
|
|
18
|
-
action: {
|
|
19
|
-
label: "Action",
|
|
20
|
-
sortable: true,
|
|
21
|
-
searchable: true
|
|
22
|
-
},
|
|
23
|
-
created_time: {
|
|
24
|
-
label: "Created time",
|
|
25
|
-
sortable: true,
|
|
26
|
-
searchable: true,
|
|
27
|
-
searchType: "date"
|
|
28
|
-
},
|
|
29
|
-
username: {
|
|
30
|
-
label: "Username",
|
|
31
|
-
sortable: true,
|
|
32
|
-
searchable: true
|
|
33
|
-
}
|
|
34
|
-
};
|
|
@@ -1,31 +0,0 @@
|
|
|
1
|
-
declare const _default: {
|
|
2
|
-
maillog_id: {
|
|
3
|
-
label: string;
|
|
4
|
-
sortable: boolean;
|
|
5
|
-
searchable: boolean;
|
|
6
|
-
searchType: string;
|
|
7
|
-
autoWidth: boolean;
|
|
8
|
-
};
|
|
9
|
-
from: {
|
|
10
|
-
label: string;
|
|
11
|
-
sortable: boolean;
|
|
12
|
-
searchable: boolean;
|
|
13
|
-
};
|
|
14
|
-
to: {
|
|
15
|
-
label: string;
|
|
16
|
-
sortable: boolean;
|
|
17
|
-
searchable: boolean;
|
|
18
|
-
};
|
|
19
|
-
subject: {
|
|
20
|
-
label: string;
|
|
21
|
-
sortable: boolean;
|
|
22
|
-
searchable: boolean;
|
|
23
|
-
};
|
|
24
|
-
created_time: {
|
|
25
|
-
label: string;
|
|
26
|
-
sortable: boolean;
|
|
27
|
-
searchable: boolean;
|
|
28
|
-
searchType: string;
|
|
29
|
-
};
|
|
30
|
-
};
|
|
31
|
-
export default _default;
|
|
@@ -1,30 +0,0 @@
|
|
|
1
|
-
export default {
|
|
2
|
-
maillog_id: {
|
|
3
|
-
label: "ID",
|
|
4
|
-
sortable: true,
|
|
5
|
-
searchable: true,
|
|
6
|
-
searchType: "number",
|
|
7
|
-
autoWidth: true
|
|
8
|
-
},
|
|
9
|
-
from: {
|
|
10
|
-
label: "From",
|
|
11
|
-
sortable: true,
|
|
12
|
-
searchable: true
|
|
13
|
-
},
|
|
14
|
-
to: {
|
|
15
|
-
label: "To",
|
|
16
|
-
sortable: true,
|
|
17
|
-
searchable: true
|
|
18
|
-
},
|
|
19
|
-
subject: {
|
|
20
|
-
label: "Subject",
|
|
21
|
-
sortable: true,
|
|
22
|
-
searchable: true
|
|
23
|
-
},
|
|
24
|
-
created_time: {
|
|
25
|
-
label: "Created time",
|
|
26
|
-
sortable: true,
|
|
27
|
-
searchable: true,
|
|
28
|
-
searchType: "date"
|
|
29
|
-
}
|
|
30
|
-
};
|
|
@@ -1,60 +0,0 @@
|
|
|
1
|
-
declare const _default: {
|
|
2
|
-
username: {
|
|
3
|
-
label: string;
|
|
4
|
-
sortable: boolean;
|
|
5
|
-
searchable: boolean;
|
|
6
|
-
};
|
|
7
|
-
first_name: {
|
|
8
|
-
label: string;
|
|
9
|
-
sortable: boolean;
|
|
10
|
-
searchable: boolean;
|
|
11
|
-
};
|
|
12
|
-
last_name: {
|
|
13
|
-
label: string;
|
|
14
|
-
sortable: boolean;
|
|
15
|
-
searchable: boolean;
|
|
16
|
-
};
|
|
17
|
-
email: {
|
|
18
|
-
label: string;
|
|
19
|
-
sortable: boolean;
|
|
20
|
-
searchable: boolean;
|
|
21
|
-
};
|
|
22
|
-
phone: {
|
|
23
|
-
label: string;
|
|
24
|
-
sortable: boolean;
|
|
25
|
-
searchable: boolean;
|
|
26
|
-
};
|
|
27
|
-
join_date: {
|
|
28
|
-
label: string;
|
|
29
|
-
sortable: boolean;
|
|
30
|
-
searchable: boolean;
|
|
31
|
-
searchType: string;
|
|
32
|
-
};
|
|
33
|
-
roles: {
|
|
34
|
-
label: string;
|
|
35
|
-
format: (value: any) => any;
|
|
36
|
-
};
|
|
37
|
-
status: {
|
|
38
|
-
label: string;
|
|
39
|
-
searchable: boolean;
|
|
40
|
-
searchType: string;
|
|
41
|
-
searchOptions: {
|
|
42
|
-
label: string;
|
|
43
|
-
value: number;
|
|
44
|
-
}[];
|
|
45
|
-
format: (value: any) => string;
|
|
46
|
-
};
|
|
47
|
-
has2FA: {
|
|
48
|
-
label: string;
|
|
49
|
-
searchType: string;
|
|
50
|
-
format: (value: any) => "" | "✔️";
|
|
51
|
-
};
|
|
52
|
-
_test: {
|
|
53
|
-
label: string;
|
|
54
|
-
component: any;
|
|
55
|
-
componentProps: (a: any) => {
|
|
56
|
-
test: any;
|
|
57
|
-
};
|
|
58
|
-
};
|
|
59
|
-
};
|
|
60
|
-
export default _default;
|
|
@@ -1,76 +0,0 @@
|
|
|
1
|
-
import MyTest from "../components/MyTest.vue";
|
|
2
|
-
export default {
|
|
3
|
-
username: {
|
|
4
|
-
label: "Username",
|
|
5
|
-
sortable: true,
|
|
6
|
-
searchable: true
|
|
7
|
-
//cellClass: (row: any) => (row.username == "admin" ? "text-danger" : ""),
|
|
8
|
-
/* backgroundColor: (row: any) => {
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
if (row.username == "admin") {
|
|
12
|
-
return "red";
|
|
13
|
-
} else {
|
|
14
|
-
return "white";
|
|
15
|
-
}
|
|
16
|
-
} */
|
|
17
|
-
},
|
|
18
|
-
first_name: {
|
|
19
|
-
label: "First name",
|
|
20
|
-
sortable: true,
|
|
21
|
-
searchable: true
|
|
22
|
-
},
|
|
23
|
-
last_name: {
|
|
24
|
-
label: "Last name",
|
|
25
|
-
sortable: true,
|
|
26
|
-
searchable: true
|
|
27
|
-
},
|
|
28
|
-
email: {
|
|
29
|
-
label: "Email",
|
|
30
|
-
sortable: true,
|
|
31
|
-
searchable: true
|
|
32
|
-
},
|
|
33
|
-
phone: {
|
|
34
|
-
label: "Phone",
|
|
35
|
-
sortable: true,
|
|
36
|
-
searchable: true
|
|
37
|
-
},
|
|
38
|
-
join_date: {
|
|
39
|
-
label: "Join date",
|
|
40
|
-
sortable: true,
|
|
41
|
-
searchable: true,
|
|
42
|
-
searchType: "date"
|
|
43
|
-
},
|
|
44
|
-
roles: {
|
|
45
|
-
label: "Roles",
|
|
46
|
-
format: (value) => value.join(", ")
|
|
47
|
-
},
|
|
48
|
-
status: {
|
|
49
|
-
label: "Status",
|
|
50
|
-
searchable: true,
|
|
51
|
-
searchType: "select",
|
|
52
|
-
searchOptions: [
|
|
53
|
-
{ label: "Active", value: 0 },
|
|
54
|
-
{ label: "Inactive", value: 1 }
|
|
55
|
-
],
|
|
56
|
-
format: (value) => {
|
|
57
|
-
return ["Active", "Inactive"][value];
|
|
58
|
-
}
|
|
59
|
-
},
|
|
60
|
-
has2FA: {
|
|
61
|
-
label: "2FA",
|
|
62
|
-
searchType: "select",
|
|
63
|
-
format: (value) => {
|
|
64
|
-
return value ? "\u2714\uFE0F" : "";
|
|
65
|
-
}
|
|
66
|
-
},
|
|
67
|
-
_test: {
|
|
68
|
-
label: "Test",
|
|
69
|
-
component: MyTest,
|
|
70
|
-
componentProps: (a) => {
|
|
71
|
-
return {
|
|
72
|
-
test: a.username
|
|
73
|
-
};
|
|
74
|
-
}
|
|
75
|
-
}
|
|
76
|
-
};
|
|
@@ -1,48 +0,0 @@
|
|
|
1
|
-
declare const _default: {
|
|
2
|
-
userlog_id: {
|
|
3
|
-
label: string;
|
|
4
|
-
sortable: boolean;
|
|
5
|
-
searchable: boolean;
|
|
6
|
-
autoWidth: boolean;
|
|
7
|
-
};
|
|
8
|
-
username: {
|
|
9
|
-
label: string;
|
|
10
|
-
sortable: boolean;
|
|
11
|
-
searchable: boolean;
|
|
12
|
-
};
|
|
13
|
-
login_dt: {
|
|
14
|
-
label: string;
|
|
15
|
-
sortable: boolean;
|
|
16
|
-
searchable: boolean;
|
|
17
|
-
searchType: string;
|
|
18
|
-
};
|
|
19
|
-
logout_dt: {
|
|
20
|
-
label: string;
|
|
21
|
-
sortable: boolean;
|
|
22
|
-
searchable: boolean;
|
|
23
|
-
};
|
|
24
|
-
result: {
|
|
25
|
-
label: string;
|
|
26
|
-
sortable: boolean;
|
|
27
|
-
searchable: boolean;
|
|
28
|
-
searchType: string;
|
|
29
|
-
searchOptions: {
|
|
30
|
-
label: string;
|
|
31
|
-
value: string;
|
|
32
|
-
}[];
|
|
33
|
-
autoWidth: boolean;
|
|
34
|
-
};
|
|
35
|
-
user_agent: {
|
|
36
|
-
label: string;
|
|
37
|
-
sortable: boolean;
|
|
38
|
-
searchable: boolean;
|
|
39
|
-
whiteSpace: string;
|
|
40
|
-
};
|
|
41
|
-
last_access_time: {
|
|
42
|
-
label: string;
|
|
43
|
-
sortable: boolean;
|
|
44
|
-
searchable: boolean;
|
|
45
|
-
searchType: string;
|
|
46
|
-
};
|
|
47
|
-
};
|
|
48
|
-
export default _default;
|
|
@@ -1,53 +0,0 @@
|
|
|
1
|
-
export default {
|
|
2
|
-
userlog_id: {
|
|
3
|
-
label: "ID",
|
|
4
|
-
sortable: true,
|
|
5
|
-
searchable: true,
|
|
6
|
-
autoWidth: true
|
|
7
|
-
},
|
|
8
|
-
username: {
|
|
9
|
-
label: "User",
|
|
10
|
-
sortable: true,
|
|
11
|
-
searchable: true
|
|
12
|
-
},
|
|
13
|
-
login_dt: {
|
|
14
|
-
label: "Login time",
|
|
15
|
-
sortable: true,
|
|
16
|
-
searchable: true,
|
|
17
|
-
searchType: "date"
|
|
18
|
-
},
|
|
19
|
-
logout_dt: {
|
|
20
|
-
label: "Logout time",
|
|
21
|
-
sortable: true,
|
|
22
|
-
searchable: true
|
|
23
|
-
},
|
|
24
|
-
result: {
|
|
25
|
-
label: "Result",
|
|
26
|
-
sortable: true,
|
|
27
|
-
searchable: true,
|
|
28
|
-
searchType: "select",
|
|
29
|
-
searchOptions: [
|
|
30
|
-
{
|
|
31
|
-
label: "SUCCESS",
|
|
32
|
-
value: "SUCCESS"
|
|
33
|
-
},
|
|
34
|
-
{
|
|
35
|
-
label: "FAIL",
|
|
36
|
-
value: "FAIL"
|
|
37
|
-
}
|
|
38
|
-
],
|
|
39
|
-
autoWidth: true
|
|
40
|
-
},
|
|
41
|
-
user_agent: {
|
|
42
|
-
label: "User agent",
|
|
43
|
-
sortable: true,
|
|
44
|
-
searchable: true,
|
|
45
|
-
whiteSpace: "pre-line"
|
|
46
|
-
},
|
|
47
|
-
last_access_time: {
|
|
48
|
-
label: "Last access time",
|
|
49
|
-
sortable: true,
|
|
50
|
-
searchable: true,
|
|
51
|
-
searchType: "date"
|
|
52
|
-
}
|
|
53
|
-
};
|
|
File without changes
|
|
File without changes
|