Skip to content

Commit 3405b2d

Browse files
added maps to forms and deepclone
1 parent 4f4f077 commit 3405b2d

3 files changed

Lines changed: 33 additions & 7 deletions

File tree

generator/index.js

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@ module.exports = (api, options) => {
88
'vuex': '^3.1.0',
99
'vuex-persistedstate': '^2.5.4',
1010
'@fortawesome/fontawesome-pro': '^5.8.1',
11+
"lodash.clonedeep": "^4.5.0",
1112
},
1213
});
1314
if (options.useCrud) {

generator/templates/Crud/src/components/BaseForm.vue

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,10 @@
1515
},
1616
type: Object,
1717
},
18+
isUpdateForm: {
19+
type: Boolean,
20+
default: false,
21+
},
1822
},
1923
2024
watch: {
@@ -46,7 +50,7 @@
4650
data() {
4751
return {
4852
valid: false,
49-
values: {}
53+
values: {},
5054
};
5155
},
5256
methods: {

generator/templates/Crud/src/components/BaseResource.vue

Lines changed: 27 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
<template>
2-
<v-container fluid pt-5>
2+
<v-container fluid pt-12>
33
<vuetify-resource
44
:beforeCreateCallback="beforeOpenCreate"
55
:beforeUpdateCallback="beforeOpenUpdate"
@@ -15,16 +15,25 @@
1515
v-model="selected"
1616
>
1717
<div slot="createContent">
18-
<component :errors="errors" :is="createFormComponent" ref="createForm" v-model="createForm"/>
18+
<component :errors="errors"
19+
:is="createFormComponent"
20+
:is-update-form="false"
21+
ref="createForm"
22+
v-model="createForm"/>
1923
</div>
2024
<div slot="updateContent">
21-
<component :errors="errors" :is="updateFormComponent" ref="updateForm" v-model="updateForm"/>
25+
<component :errors="errors"
26+
:is="updateFormComponent"
27+
:is-update-form="true"
28+
ref="updateForm"
29+
v-model="updateForm"/>
2230
</div>
2331
</vuetify-resource>
2432
</v-container>
2533
</template>
2634
<script>
27-
import FormDataValues from '../mixins/formDataValues';
35+
import FormDataValues from './../mixins/formDataValues';
36+
import cloneDeep from 'lodash.clonedeep';
2837
2938
export default {
3039
components: {},
@@ -88,9 +97,13 @@
8897
},
8998
getCreateFormValues() {
9099
let form_data = new FormData();
91-
this.appendFormData(form_data, this.createForm.values);
100+
this.appendFormData(form_data, this.mapCreateFormValues(cloneDeep(this.createForm.values)));
92101
93102
return form_data;
103+
104+
},
105+
mapCreateFormValues(values) {
106+
return this.mapCreateAndUpdateFormValues(values);
94107
},
95108
createEvent() {
96109
this.errors = {};
@@ -105,6 +118,7 @@
105118
},
106119
})
107120
.then((response) => {
121+
this.createForm.values = {};
108122
if (typeof this.afterCreate === 'function') {
109123
this.afterCreate(response.data.data).then(() => {
110124
resolve();
@@ -127,10 +141,16 @@
127141
},
128142
getUpdateFormValues() {
129143
let form_data = new FormData();
130-
this.appendFormData(form_data, this.updateForm.values);
144+
this.appendFormData(form_data, this.mapUpdateFormValues(cloneDeep(this.updateForm.values)));
131145
132146
return form_data;
133147
},
148+
mapUpdateFormValues(values) {
149+
return this.mapCreateAndUpdateFormValues(values);
150+
},
151+
mapCreateAndUpdateFormValues(values) {
152+
return values;
153+
},
134154
updateEvent(selected) {
135155
this.errors = {};
136156
this.$refs.updateForm.validate();
@@ -168,6 +188,7 @@
168188
this.updateForm.values = selected[0];
169189
},
170190
beforeOpenCreate() {
191+
171192
},
172193
deleteEvent(ids) {
173194
return new Promise((resolve) => {

0 commit comments

Comments
 (0)