Former-commit-id: 4556fb1eec9c31b99985e1fadb82c3154d1f68f0
Former-commit-id: da385167d51e5eee3a1c603947734f1d973a679d
TSXN
wanggang 5 years ago
parent 1aa27072e4
commit 828dd17e7c

@ -121,6 +121,6 @@
<value>必须同意才能继续</value>
</data>
<data name="RequiredAttribute" xml:space="preserve">
<value>必填项</value>
<value>必须输入{0}</value>
</data>
</root>

@ -121,6 +121,6 @@
<value>必须同意才能继续</value>
</data>
<data name="RequiredAttribute" xml:space="preserve">
<value>必填项</value>
<value>必须输入{0}</value>
</data>
</root>

@ -7,9 +7,9 @@
<div class="card" v-if="data.schema">
<div class="card-body">
<template v-if="data.errors">
<div class="form-group" v-for="error in data.errors">
<div class="el-col-sm-offset-2 col-sm-10 ">
<div style="color:red">{{error}}</div>
<div class="form-group" v-for="error in getValidationSummary(true)">
<div class="offset-sm-2 col-sm-10 ">
<div style="color:#dc3545;">{{error}}</div>
</div>
</div>
</template>
@ -24,7 +24,8 @@
<template v-else>
<component :is="getEditComponent(key)" :title="value.title" :name="key" :value.sync="data.model[key]" :data="data.data" :valid="valid(value,key,data.model[key])" :mode="'edit'" v-if="data.model" />
</template>
<span class="text-danger field-validation-valid" :data-valmsg-for="key" data-valmsg-replace="true"></span>
<span class="field-validation-error text-danger" data-valmsg-for="UserName" data-valmsg-replace="true" v-if="hasErrors(key)">{{getErrors(key)}}</span>
<span class="text-danger field-validation-valid" :data-valmsg-for="key" data-valmsg-replace="true" v-else></span>
</div>
<div class="col-sm-4">{{value.description}}</div>
</div>
@ -81,16 +82,33 @@
var url = this.baseUrl + this.url;
axios.get(url).then(function (response) {
vm.data = response.data;
this.validInit();
vm.validInit();
});
},
validInit: function () {
vm.$nextTick(function () {
$(vm.$refs.form).removeData('validator');
$(vm.$refs.form).removeData('unobtrusiveValidation');
$.validator.unobtrusive.parse(vm.$refs.form);
this.$nextTick(function () {
$(this.$refs.form).removeData('validator');
$(this.$refs.form).removeData('unobtrusiveValidation');
$.validator.unobtrusive.parse(this.$refs.form);
});
},
getValidationSummary: function (excludePropertyErrors) {
var query = Enumerable.from(this.data.errors);
if (excludePropertyErrors) {
query = query.where(o => o.key === '')
}
return query.select(o => o.value.errors[0].errorMessage).toArray();
},
hasErrors: function (key) {
key = key.toLowerCase();
return Enumerable.from(this.data.errors).any(o => o.key.toLowerCase() === key);
},
getErrors: function (key) {
key = key.toLowerCase();
return Enumerable.from(this.data.errors)
.firstOrDefault(o => o.key.toLowerCase() === key)
.value.errors[0].errorMessage;
},
hasPermission: function () {
var permission = this.mode + '-' + this.entity;
return Enumerable.from(store.state.permissions).any(o => o === permission);

Loading…
Cancel
Save