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)] [ReadOnly(true)]
public bool IsOnline { get; set; } public bool IsOnline { get; set; }
[Required(ErrorMessage = nameof(RequiredAttribute))]
[Display(Name = "图片")] [Display(Name = "图片")]
[DataType(DataType.ImageUrl)] [DataType(DataType.ImageUrl)]
public string Image { get; set; } public string Image { get; set; }

@ -7,6 +7,7 @@ namespace Application.Models
[Display(Name = "产品")] [Display(Name = "产品")]
public class EditProductModel : EditModel public class EditProductModel : EditModel
{ {
[Required(ErrorMessage = nameof(RequiredAttribute))]
[Display(Name = "产品分类")] [Display(Name = "产品分类")]
[DataType("SelectList")] [DataType("SelectList")]
public Guid? CategoryId { get; set; } 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" /> <component :is="getDisplayComponent(key)" :title="value.title" :name="key" :value="data.model[key]" :data="data.data" v-if="data.model" />
</template> </template>
<template v-else> <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> </template>
<div style="height:1em;"> <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-if="hasErrors(key)" class="field-validation-error text-danger">{{getErrors(key)}}</span>
<span v-else class="text-danger field-validation-valid" :data-valmsg-for="key" data-valmsg-replace="true"></span> <span v-else class="text-danger field-validation-valid"></span>
</div> </div>
</div> </div>
<div class="col-sm-4">{{value.description}}</div> <div class="col-sm-4">{{value.description}}</div>
@ -169,7 +169,7 @@
this.data.errors.push(error); this.data.errors.push(error);
} }
else { 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 }); error.value.errors.push({ errorMessage: message });
} }
} }
@ -195,7 +195,7 @@
getErrors: function (key) { getErrors: function (key) {
key = key.toLowerCase(); key = key.toLowerCase();
return Enumerable.from(this.data.errors) 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 () { hasPermission: function () {
var permission = this.mode + '-' + this.entity; var permission = this.mode + '-' + this.entity;

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

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

@ -1,11 +1,11 @@
<template> <template>
<div> <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> </div>
</template> </template>
<script> <script>
export default { export default {
props: ['name', 'value', 'valid', 'data', 'prefix'], props: ['name', 'value', 'data'],
data: function () { data: function () {
return { return {
currentValue: this.value currentValue: this.value
@ -14,7 +14,8 @@
watch: { watch: {
currentValue(val) { currentValue(val) {
this.$emit('update:value', val); this.$emit('update:value', val);
}, this.$emit('change', this.name);
}, }
}
}; };
</script> </script>
Loading…
Cancel
Save