Skip to content

Commit 94a2199

Browse files
committed
fix template of errors
1 parent e3a31cf commit 94a2199

File tree

2 files changed

+19
-9
lines changed

2 files changed

+19
-9
lines changed

dev/full/app.vue

+7-3
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@
1515
<div class="errors text-center">
1616
<div v-for="(item, index) in validationErrors" track-by="index" class="alert alert-danger">{{ item.field.label}}: <strong>{{ item.error }}</strong></div>
1717
</div>
18-
<vue-form-generator :schema="schema" :model="model" :options="formOptions" :multiple="selected.length > 1" ref="form" :is-new-model="isNewModel" @model-updated="modelUpdated"></vue-form-generator>
18+
<vue-form-generator :schema="schema" :model="model" :options="formOptions" :multiple="selected.length > 1" ref="form" :is-new-model="isNewModel" @model-updated="modelUpdated" @validated="onValidated"></vue-form-generator>
1919
</div>
2020
<div class="col-md-6">
2121
<pre v-if="model" v-html="prettyModel"></pre>
@@ -113,7 +113,11 @@
113113
clearSelection() {
114114
this.selected.splice(0);
115115
this.generateModel();
116-
},
116+
},
117+
118+
onValidated(res, errors) {
119+
console.log("VFG validated:", res, errors);
120+
},
117121
118122
generateModel() {
119123
if (this.selected.length == 1) {
@@ -185,7 +189,7 @@
185189
},
186190
187191
validate() {
188-
console.log("validate", this.$refs.form, this.$refs.form.validate());
192+
//console.log("validate", this.$refs.form, this.$refs.form.validate());
189193
return this.$refs.form.validate();
190194
},
191195

src/formGenerator.vue

+12-6
Original file line numberDiff line numberDiff line change
@@ -13,8 +13,8 @@ div
1313
.buttons(v-if='buttonVisibility(field)')
1414
button(v-for='btn in field.buttons', @click='btn.onclick(model, field)', :class='btn.classes') {{ btn.label }}
1515
.hint(v-if='field.hint') {{ field.hint }}
16-
.errors(v-if='errorsVisibility(field)')
17-
span(v-for='(error, index) in field.errors', track-by='index') {{ error }}
16+
.errors(v-if='fieldErrors(field).length > 0')
17+
span(v-for='(error, index) in fieldErrors(field)', track-by='index') {{ error }}
1818
</template>
1919

2020
<script>
@@ -126,7 +126,7 @@ div
126126
// Get style classes of field
127127
getFieldRowClasses(field) {
128128
let baseClasses = {
129-
error: field.errors && field.errors.length > 0,
129+
error: this.fieldErrors(field).length > 0,
130130
disabled: this.fieldDisabled(field),
131131
readonly: this.fieldReadonly(field),
132132
featured: this.fieldFeatured(field),
@@ -208,7 +208,7 @@ div
208208
// Child field executed validation
209209
onFieldValidated(res, errors, field) {
210210
this.errors = this.errors.filter(e => e.field != field.schema);
211-
211+
212212
// Remove old errors for this field
213213
if (!res && errors && errors.length > 0) {
214214
// Add errors with this field
@@ -263,8 +263,14 @@ div
263263
return field.buttons && field.buttons.length > 0;
264264
},
265265
266-
errorsVisibility(field) {
267-
return field.errors && field.errors.length > 0;
266+
fieldErrors(field) {
267+
let res = this.errors.filter(e => e.field == field);
268+
if (res.length > 0)
269+
console.log("res", res);
270+
let res2 = res.map(item => item.error);
271+
if (res2.length > 0)
272+
console.log("res2", res2);
273+
return res2;
268274
}
269275
}
270276
};

0 commit comments

Comments
 (0)