@drax/crud-vue 3.11.0 → 3.14.0
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/package.json
CHANGED
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
"publishConfig": {
|
|
4
4
|
"access": "public"
|
|
5
5
|
},
|
|
6
|
-
"version": "3.
|
|
6
|
+
"version": "3.14.0",
|
|
7
7
|
"type": "module",
|
|
8
8
|
"main": "./src/index.ts",
|
|
9
9
|
"module": "./src/index.ts",
|
|
@@ -26,8 +26,8 @@
|
|
|
26
26
|
"dependencies": {
|
|
27
27
|
"@drax/common-front": "^3.11.0",
|
|
28
28
|
"@drax/crud-front": "^3.11.0",
|
|
29
|
-
"@drax/crud-share": "^3.
|
|
30
|
-
"@drax/media-vue": "^3.
|
|
29
|
+
"@drax/crud-share": "^3.14.0",
|
|
30
|
+
"@drax/media-vue": "^3.14.0"
|
|
31
31
|
},
|
|
32
32
|
"peerDependencies": {
|
|
33
33
|
"pinia": "^3.0.4",
|
|
@@ -50,5 +50,5 @@
|
|
|
50
50
|
"vue-tsc": "^3.2.4",
|
|
51
51
|
"vuetify": "^3.11.8"
|
|
52
52
|
},
|
|
53
|
-
"gitHead": "
|
|
53
|
+
"gitHead": "cec0f824be0bfff0965d7bc7b95241406c53c04d"
|
|
54
54
|
}
|
package/src/components/Crud.vue
CHANGED
|
@@ -16,12 +16,13 @@ const {entity} = defineProps({
|
|
|
16
16
|
const {
|
|
17
17
|
onView, onCreate, onEdit, onDelete, resetCrudStore,
|
|
18
18
|
operation, dialog, notify, message, doExport, doImport,
|
|
19
|
-
prepareFilters
|
|
19
|
+
prepareFilters, prepareSort, form
|
|
20
20
|
} = useCrud(entity);
|
|
21
21
|
|
|
22
22
|
onBeforeMount(() => {
|
|
23
23
|
resetCrudStore()
|
|
24
24
|
prepareFilters()
|
|
25
|
+
prepareSort()
|
|
25
26
|
})
|
|
26
27
|
|
|
27
28
|
const emit = defineEmits(['created', 'updated', 'deleted', 'viewed', 'canceled'])
|
|
@@ -130,7 +131,8 @@ const {xs} = useDisplay()
|
|
|
130
131
|
|
|
131
132
|
</slot>
|
|
132
133
|
|
|
133
|
-
<slot name="form">
|
|
134
|
+
<slot name="form" v-bind="{form, operation}">
|
|
135
|
+
|
|
134
136
|
<crud-form
|
|
135
137
|
:entity="entity"
|
|
136
138
|
@created="item => emit('created', item)"
|
|
@@ -3,13 +3,14 @@ import type {
|
|
|
3
3
|
IDraxPaginateResult,
|
|
4
4
|
IEntityCrud,
|
|
5
5
|
IEntityCrudFilter,
|
|
6
|
+
IEntityCrudOperation
|
|
6
7
|
} from "@drax/crud-share";
|
|
7
8
|
import {useCrudStore} from "../stores/UseCrudStore";
|
|
8
9
|
import {computed, nextTick, toRaw} from "vue";
|
|
9
10
|
import getItemId from "../helpers/getItemId";
|
|
10
11
|
import {useI18n} from "vue-i18n";
|
|
11
12
|
import {useRouter} from "vue-router";
|
|
12
|
-
|
|
13
|
+
|
|
13
14
|
|
|
14
15
|
export function useCrud(entity: IEntityCrud) {
|
|
15
16
|
|
|
@@ -55,6 +56,14 @@ export function useCrud(entity: IEntityCrud) {
|
|
|
55
56
|
}
|
|
56
57
|
})
|
|
57
58
|
|
|
59
|
+
const getOperation = computed(() => {
|
|
60
|
+
return store.operation
|
|
61
|
+
})
|
|
62
|
+
|
|
63
|
+
const setOperation = (operation: IEntityCrudOperation) => {
|
|
64
|
+
store.setOperation(operation)
|
|
65
|
+
}
|
|
66
|
+
|
|
58
67
|
const form = computed({
|
|
59
68
|
get() {
|
|
60
69
|
return store.form
|
|
@@ -63,6 +72,14 @@ export function useCrud(entity: IEntityCrud) {
|
|
|
63
72
|
}
|
|
64
73
|
})
|
|
65
74
|
|
|
75
|
+
const getForm = computed(() => {
|
|
76
|
+
return store.form
|
|
77
|
+
})
|
|
78
|
+
|
|
79
|
+
const setForm = (form: any) => {
|
|
80
|
+
store.setForm(form)
|
|
81
|
+
}
|
|
82
|
+
|
|
66
83
|
const formValid = computed({
|
|
67
84
|
get() {
|
|
68
85
|
return store.formValid
|
|
@@ -216,7 +233,7 @@ export function useCrud(entity: IEntityCrud) {
|
|
|
216
233
|
})
|
|
217
234
|
|
|
218
235
|
const prepareDynamicFilters = computed(() => {
|
|
219
|
-
return store.dynamicFilters.map((filter:
|
|
236
|
+
return store.dynamicFilters.map((filter: IEntityCrudFilter) => {
|
|
220
237
|
return {
|
|
221
238
|
field: filter.name,
|
|
222
239
|
operator: filter.operator,
|
|
@@ -515,6 +532,12 @@ export function useCrud(entity: IEntityCrud) {
|
|
|
515
532
|
store.setFilters(staticFilters)
|
|
516
533
|
}
|
|
517
534
|
|
|
535
|
+
function prepareSort(){
|
|
536
|
+
if(entity.sortBy){
|
|
537
|
+
store.setSortBy([{key: entity.sortBy, order: entity.sortOrder}])
|
|
538
|
+
}
|
|
539
|
+
}
|
|
540
|
+
|
|
518
541
|
async function clearFilters() {
|
|
519
542
|
prepareFilters()
|
|
520
543
|
store.setSearch("")
|
|
@@ -533,9 +556,11 @@ export function useCrud(entity: IEntityCrud) {
|
|
|
533
556
|
return {
|
|
534
557
|
doPaginate, doExport, doImport, doUpdate, doCreate, doDelete,
|
|
535
558
|
onView, onCreate, onEdit, onDelete, onCancel, onSubmit, resetCrudStore,
|
|
536
|
-
|
|
559
|
+
dialog, notify, error, paginationError, message, formValid,
|
|
560
|
+
form, getForm, setForm,
|
|
561
|
+
operation, getOperation, setOperation,
|
|
537
562
|
loading, itemsPerPage, page, sortBy, search, totalItems, items,
|
|
538
|
-
prepareFilters, filters, clearFilters, applyFilters,
|
|
563
|
+
prepareFilters, filters, clearFilters, applyFilters, prepareSort,
|
|
539
564
|
exportFiles, importFiles, exportLoading, importLoading, exportListVisible, importListVisible, exportError, importError,
|
|
540
565
|
cloneItem, cast, prepareEdit,
|
|
541
566
|
isDynamicFiltersEnable
|
package/src/cruds/EntityCrud.ts
CHANGED
|
@@ -85,6 +85,14 @@ class EntityCrud implements IEntityCrud {
|
|
|
85
85
|
]
|
|
86
86
|
}
|
|
87
87
|
|
|
88
|
+
get sortBy(): string | undefined {
|
|
89
|
+
return undefined
|
|
90
|
+
}
|
|
91
|
+
|
|
92
|
+
get sortOrder(): 'desc' | 'asc' {
|
|
93
|
+
return 'asc'
|
|
94
|
+
}
|
|
95
|
+
|
|
88
96
|
objectFields(field: IEntityCrudField) {
|
|
89
97
|
let value: any = {}
|
|
90
98
|
if (field.objectFields) {
|