Former-commit-id: 04f5fa567dc4440aa186c30839078691e31fd618
Former-commit-id: 09351787e42bbefe9d4c9c6abb8bfa68223a9289
TSXN
wanggang 5 years ago
parent 7128bfde22
commit ffe009f094

@ -46,6 +46,7 @@ namespace Application.Models
[ReadOnly(true)]
public bool IsOnline { get; set; }
[Required(ErrorMessage = nameof(RequiredAttribute))]
[Display(Name = "图片")]
[DataType(DataType.ImageUrl)]
public string Image { get; set; }

@ -7,6 +7,7 @@ namespace Application.Models
[Display(Name = "产品")]
public class EditProductModel : EditModel
{
[Required(ErrorMessage = nameof(RequiredAttribute))]
[Display(Name = "产品分类")]
[DataType("SelectList")]
public Guid? CategoryId { get; set; }

@ -22,11 +22,11 @@
<component :is="getDisplayComponent(key)" :title="value.title" :name="key" :value="data.model[key]" :data="data.data" v-if="data.model" />
</template>
<template v-else>
<component :is="getEditComponent(key)" :mode="'edit'" :title="value.title" :name="key" :value.sync="data.model[key]" :data="data.data" v-on:change="change" />
<component :is="getEditComponent(key)" :mode="'edit'" :title="value.title" :name="key" :value.sync="data.model[key]" @change="change" :data="data.data" />
</template>
<div style="height:1em;">
<span v-if="hasErrors(key)" class="field-validation-error text-danger" data-valmsg-for="UserName" data-valmsg-replace="true">{{getErrors(key)}}</span>
<span v-else class="text-danger field-validation-valid" :data-valmsg-for="key" data-valmsg-replace="true"></span>
<span v-if="hasErrors(key)" class="field-validation-error text-danger">{{getErrors(key)}}</span>
<span v-else class="text-danger field-validation-valid"></span>
</div>
</div>
<div class="col-sm-4">{{value.description}}</div>
@ -169,7 +169,7 @@
this.data.errors.push(error);
}
else {
if (!Enumerable.from(error.value.errors).any(o => o === message)) {
if (!Enumerable.from(error.value.errors).any(o => o.errorMessage === message)) {
error.value.errors.push({ errorMessage: message });
}
}
@ -195,7 +195,7 @@
getErrors: function (key) {
key = key.toLowerCase();
return Enumerable.from(this.data.errors)
.where(o => o.key.toLowerCase() === key).selectMany(o => o.value.errors).select(o => o.errorMessage).toArray();
.where(o => o.key.toLowerCase() === key).selectMany(o => o.value.errors).select(o => o.errorMessage).toArray().join(',');
},
hasPermission: function () {
var permission = this.mode + '-' + this.entity;

@ -1,6 +1,6 @@
<template>
<div>
<input ref="input" type="text" style="visibility: hidden; position: absolute;" :value="src" />
<input ref="input" type="text" style="visibility: hidden; position: absolute;" :value="currentValue" />
<a ref="link" :href="src"><img ref="img" style="height:32px;" :src="src" /></a>
<br />
<button ref="btn" class="btn btn-sm btn-default" type="button" id="btn_Image" style="margin-top:5px;">上传</button>
@ -8,11 +8,17 @@
</template>
<script>
export default {
props: ['value'],
props: ['name', 'value', 'data'],
data: function () {
return {
currentValue: this.value
};
},
watch: {
value(val) {
this.$emit('update:value', val)
},
currentValue(val) {
this.$emit('update:value', val);
this.$emit('change', this.name);
}
},
mounted: function () {
var vm = this;
@ -27,12 +33,14 @@
editor.plugin.fileDialog({
fileUrl: vm.src,
clickFn: function (url, title) {
$(vm.$refs.input).attr('value', url);
//if (isRequired) {
// $('#' + id).parents('form').validate().element('#' + id);
//}
$(vm.$refs.link).attr('href', vm.baseUrl + url);
$(vm.$refs.img).attr('src', vm.baseUrl + url);
//$(vm.$refs.input).attr('value', url);
////if (isRequired) {
//// $('#' + id).parents('form').validate().element('#' + id);
////}
//$(vm.$refs.link).attr('href', vm.baseUrl + url);
//$(vm.$refs.img).attr('src', vm.baseUrl + url);
vm.currentValue = url;
vm.$emit('change', vm.name);
editor.hideDialog();
}
});
@ -41,7 +49,7 @@
},
computed: {
src: function () {
return this.value || '/images/empty.png';
return this.currentValue || '/images/empty.png';
}
}
};

@ -1,21 +1,24 @@
<template>
<div>
<select class="form-control" :name="name" v-valid="valid">
<option value="">请选择</option>
<template v-for="item in list">
<option v-if="item.value===value" :value="item.value" selected>{{item.text}}</option>
<option v-else :value="item.value">{{item.text}}</option>
</template>
<select class="form-control" :name="name" v-model="currentValue">
<option :value="null">请选择</option>
<option v-for="item in list" :value="item.value">{{item.text}}</option>
</select>
</div>
</template>
<script>
export default {
props: ['name', 'value', 'valid', 'data', 'prefix'],
props: ['name', 'value', 'data'],
data: function () {
return {
currentValue: this.value
};
},
watch: {
value(val) {
this.$emit('update:value', val)
},
currentValue(val) {
this.$emit('update:value', val);
this.$emit('change', this.name);
}
},
computed: {
list: function () {

@ -1,11 +1,11 @@
<template>
<div>
<input type="text" :name="name" class="form-control" v-model="currentValue" v-on:change="$emit('change',name)" />
<input type="text" :name="name" class="form-control" v-model="currentValue" />
</div>
</template>
<script>
export default {
props: ['name', 'value', 'valid', 'data', 'prefix'],
props: ['name', 'value', 'data'],
data: function () {
return {
currentValue: this.value
@ -14,7 +14,8 @@
watch: {
currentValue(val) {
this.$emit('update:value', val);
},
},
this.$emit('change', this.name);
}
}
};
</script>
Loading…
Cancel
Save