You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 

187 lines
5.2 KiB

<template>
<el-dialog :close-on-click-modal="false" :close-on-press-escape="true" :title="title" :type="type"
:visible.sync="isVisible" :width="width" top="50px" v-el-drag-dialog>
<el-form :model="creditGoodsImg" :rules="rules" label-position="right" label-width="100px" ref="form">
<el-form-item :label="$t('table.creditGoodsImg.goodsId')" prop="goodsId">
<el-input type="" v-model="creditGoodsImg.goodsId" placeholder="商品ID"/>
</el-form-item>
<el-form-item :label="$t('table.creditGoodsImg.imgPath')" prop="imgPath">
<el-input type="" v-model="creditGoodsImg.imgPath" placeholder="图片路径"/>
</el-form-item>
<el-form-item :label="$t('table.creditGoodsImg.sortOrder')" prop="sortOrder">
<el-input type="" v-model="creditGoodsImg.sortOrder" placeholder="显示顺序"/>
</el-form-item>
<el-form-item :label="$t('table.creditGoodsImg.typed')" prop="typed">
<el-input type="" v-model="creditGoodsImg.typed" placeholder="类型:1-主图,2-副图"/>
</el-form-item>
<el-form-item :label="$t('table.creditGoodsImg.enabled')" prop="enabled">
<el-radio-group v-model="creditGoodsImg.enabled" size="medium">
<el-radio-button :label="true">{{ $t("common.yes") }}</el-radio-button>
<el-radio-button :label="false">{{ $t("common.no") }}</el-radio-button>
</el-radio-group>
</el-form-item>
<el-form-item :label="$t('table.creditGoodsImg.isDelete')" prop="isDelete">
<el-input type="" v-model="creditGoodsImg.isDelete" placeholder="逻辑删除:1-删除 0-未删除"/>
</el-form-item>
</el-form>
<div class="dialog-footer" slot="footer">
<el-button @click="isVisible = false" plain type="warning">
{{ $t("common.cancel") }}
</el-button>
<el-button @click="submitForm" :disabled="confirmDisabled" plain type="primary">
{{ $t("common.confirm") }}
</el-button>
</div>
</el-dialog>
</template>
<script>
import elDragDialog from '@/directive/el-drag-dialog'
import creditGoodsImgApi from "@/api/creditGoods/CreditGoodsImg.js";
export default {
name: "CreditGoodsImgEdit",
directives: { elDragDialog },
components: { },
props: {
dialogVisible: {
type: Boolean,
default: false
},
type: {
type: String,
default: "add"
}
},
data() {
return {
confirmDisabled: false,
creditGoodsImg: this.initCreditGoodsImg(),
screenWidth: 0,
width: this.initWidth(),
rules: {
},
// 枚举
enums: {
},
// 字典
dicts: {
}
};
},
computed: {
isVisible: {
get() {
return this.dialogVisible;
},
set() {
this.close();
this.reset();
}
},
title() {
return this.$t("common." + this.type);
}
},
watch: {},
mounted() {
window.onresize = () => {
return (() => {
this.width = this.initWidth();
})();
};
},
methods: {
initCreditGoodsImg() {
return {
id: "",
goodsId: null,
imgPath: '',
sortOrder: null,
typed: null,
enabled: true,
isDelete: null,
};
},
initWidth() {
this.screenWidth = document.body.clientWidth;
if (this.screenWidth < 991) {
return "90%";
} else if (this.screenWidth < 1400) {
return "45%";
} else {
return "800px";
}
},
setCreditGoodsImg(val = {}) {
const vm = this;
vm.dicts = val['dicts'];
vm.enums = val['enums'];
if (val['row']) {
vm.creditGoodsImg = { ...val['row'] };
}
},
close() {
this.$emit("close");
},
reset() {
// 先清除校验,再清除表单,不然有奇怪的bug
this.$refs.form.clearValidate();
this.$refs.form.resetFields();
this.confirmDisabled = false;
this.creditGoodsImg = this.initCreditGoodsImg();
},
submitForm() {
const vm = this;
this.$refs.form.validate(valid => {
if (valid) {
vm.editSubmit();
} else {
return false;
}
});
},
editSubmit() {
const vm = this;
if (vm.type === "edit") {
vm.update();
} else {
vm.save();
}
},
save() {
const vm = this;
vm.confirmDisabled = true;
creditGoodsImgApi.save(this.creditGoodsImg).then(response => {
const res = response.data;
if (res.isSuccess) {
vm.isVisible = false;
vm.$message({
message: vm.$t("tips.createSuccess"),
type: "success"
});
vm.$emit("success");
}
}).finally(()=> vm.confirmDisabled = false);
},
update() {
const vm = this;
vm.confirmDisabled = true;
creditGoodsImgApi.update(this.creditGoodsImg).then(response => {
const res = response.data;
if (res.isSuccess) {
vm.isVisible = false;
vm.$message({
message: this.$t("tips.updateSuccess"),
type: "success"
});
vm.$emit("success");
}
}).finally(()=> vm.confirmDisabled = false);
}
}
};
</script>
<style lang="scss" scoped></style>