|
|
@@ -1,6 +1,6 @@
|
|
|
<template>
|
|
|
<Base-dialog
|
|
|
- :title="form.id ? '编辑分类' : '添加分类'"
|
|
|
+ :title="form.id ? '编辑商品' : '添加商品'"
|
|
|
:isShow.sync="isShow"
|
|
|
@close="close"
|
|
|
@open="open"
|
|
|
@@ -17,7 +17,7 @@
|
|
|
>
|
|
|
<el-form-item label="所属店铺:" prop="storeId">
|
|
|
<el-select
|
|
|
- :disabled="goodsId"
|
|
|
+ :disabled="!!goodsId"
|
|
|
:style="{ width: '100%' }"
|
|
|
v-model="form.storeId"
|
|
|
placeholder="请选择所属店铺"
|
|
|
@@ -34,10 +34,10 @@
|
|
|
<el-form-item label="商品分类:" prop="categoryIds">
|
|
|
<el-cascader
|
|
|
@change="changeCategory"
|
|
|
- :disabled="goodsId"
|
|
|
+ :disabled="!!goodsId"
|
|
|
ref="cascader"
|
|
|
placeholder="请选择商品分类"
|
|
|
- :options="computerTree(categorytreeList)"
|
|
|
+ :options="computerTree(categoryList)"
|
|
|
:show-all-levels="false"
|
|
|
clearable
|
|
|
filterable
|
|
|
@@ -58,26 +58,27 @@
|
|
|
<file-upload v-model="form.mainImg" :limit="20"></file-upload>
|
|
|
</el-form-item>
|
|
|
<el-form-item label="产品原价:" prop="standPrice">
|
|
|
- <el-input v-model.Number="form.standPrice" placeholder="请输入产品原价">
|
|
|
+ <el-input
|
|
|
+ v-int
|
|
|
+ v-model.Number="form.standPrice"
|
|
|
+ placeholder="请输入产品原价"
|
|
|
+ >
|
|
|
</el-input>
|
|
|
</el-form-item>
|
|
|
<el-form-item label="会员优惠价:" prop="specialPrice">
|
|
|
<el-input
|
|
|
+ v-int
|
|
|
v-model.Number="form.specialPrice"
|
|
|
placeholder="请输入会员优惠价"
|
|
|
>
|
|
|
</el-input>
|
|
|
</el-form-item>
|
|
|
<el-form-item label="可抵扣积分:">
|
|
|
- <el-input
|
|
|
- disable
|
|
|
- v-model.Number="form.userName"
|
|
|
- placeholder="请输入可抵扣积分"
|
|
|
- >
|
|
|
+ <el-input disabled v-model="integral" placeholder="请输入可抵扣积分">
|
|
|
</el-input>
|
|
|
</el-form-item>
|
|
|
- <el-form-item label="上架状态:" prop="status">
|
|
|
- <el-radio-group v-model="form.status">
|
|
|
+ <el-form-item label="上架状态:" prop="goodsStatus">
|
|
|
+ <el-radio-group v-model="form.goodsStatus">
|
|
|
<el-radio :label="1">上架</el-radio
|
|
|
><el-radio :label="0">下架</el-radio>
|
|
|
</el-radio-group>
|
|
|
@@ -87,7 +88,7 @@
|
|
|
class="ql-editor"
|
|
|
ref="myQuillEditor"
|
|
|
:options="editorOption"
|
|
|
- @change="onEditorChange($event)"
|
|
|
+ v-model="form.mobileDetailHtml"
|
|
|
>
|
|
|
</quill-editor>
|
|
|
</el-form-item>
|
|
|
@@ -99,7 +100,11 @@
|
|
|
import { mapGetters } from "vuex";
|
|
|
import FileUpload from "../../../components/FileUpload/index.vue";
|
|
|
import { quillEditor } from "vue-quill-editor";
|
|
|
-import { goodscategorytree } from "../../../api/goods/index";
|
|
|
+import {
|
|
|
+ editgoodspoints,
|
|
|
+ addgoodspoints,
|
|
|
+ getGoodsDetail,
|
|
|
+} from "../../../api/goods/index";
|
|
|
export default {
|
|
|
props: {
|
|
|
dialogVisible: {
|
|
|
@@ -109,8 +114,19 @@ export default {
|
|
|
goodsId: {
|
|
|
type: [Number, String],
|
|
|
},
|
|
|
+ getRules: {
|
|
|
+ type: Number,
|
|
|
+ default: 0,
|
|
|
+ },
|
|
|
},
|
|
|
data() {
|
|
|
+ const checkPrice = (rule, value, callback) => {
|
|
|
+ if (value > this.form.standPrice) {
|
|
|
+ callback(new Error("会员优惠价需小于原价"));
|
|
|
+ } else {
|
|
|
+ callback();
|
|
|
+ }
|
|
|
+ };
|
|
|
return {
|
|
|
form: {},
|
|
|
rules: {
|
|
|
@@ -122,6 +138,10 @@ export default {
|
|
|
],
|
|
|
specialPrice: [
|
|
|
{ required: true, message: "请输入会员优惠价", trigger: "blur" },
|
|
|
+ {
|
|
|
+ validator: checkPrice,
|
|
|
+ trigger: "change",
|
|
|
+ },
|
|
|
],
|
|
|
categoryIds: [
|
|
|
{ required: true, message: "请选择商品分类", trigger: "change" },
|
|
|
@@ -163,13 +183,11 @@ export default {
|
|
|
],
|
|
|
},
|
|
|
},
|
|
|
- categorytreeList: [],
|
|
|
};
|
|
|
},
|
|
|
methods: {
|
|
|
open() {
|
|
|
this.resetForm();
|
|
|
- this.goodscategorytree();
|
|
|
this.goodsId && this.getDatail();
|
|
|
},
|
|
|
resetForm() {
|
|
|
@@ -180,19 +198,27 @@ export default {
|
|
|
standPrice: undefined,
|
|
|
specialPrice: undefined,
|
|
|
categoryIds: undefined,
|
|
|
+ mobileDetailHtml: undefined,
|
|
|
mainImg: [],
|
|
|
+ goodsStatus: 1,
|
|
|
status: 1,
|
|
|
+ goodsType: undefined,
|
|
|
};
|
|
|
this.clearForm("form");
|
|
|
},
|
|
|
submitForm() {
|
|
|
this.$refs.form.validate(async (valid) => {
|
|
|
if (valid) {
|
|
|
- withdrawal(this.form).then((res) => {
|
|
|
+ const fn = this.goodsId ? editgoodspoints : addgoodspoints;
|
|
|
+ let { mainImg } = this.form;
|
|
|
+ this.form.mainImg = Array.isArray(mainImg)
|
|
|
+ ? mainImg.map((e) => e.oUrl).join(",")
|
|
|
+ : mainImg;
|
|
|
+ fn(this.form).then((res) => {
|
|
|
if (res.code == 200) {
|
|
|
- this.$message.success("提现申请成功");
|
|
|
+ this.$message.success(this.goodsId ? "修改成功" : "新增成功");
|
|
|
+ this.$emit("search");
|
|
|
this.isShow = false;
|
|
|
- this.$emit("getSellerInfo");
|
|
|
}
|
|
|
});
|
|
|
} else {
|
|
|
@@ -201,18 +227,16 @@ export default {
|
|
|
});
|
|
|
},
|
|
|
close() {
|
|
|
- // this.isShow = false;
|
|
|
- this.clearForm("form");
|
|
|
- },
|
|
|
- onEditorChange({ quill, html, text }) {
|
|
|
- this.form.mobileDetailHtml = html;
|
|
|
+ this.resetForm();
|
|
|
},
|
|
|
- goodscategorytree() {
|
|
|
- goodscategorytree({ status: 1 }).then((res) => {
|
|
|
- this.categorytreeList = res.data;
|
|
|
+ getDatail() {
|
|
|
+ getGoodsDetail(this.goodsId).then(({ data }) => {
|
|
|
+ data.categoryIds = data.categoryIds * 1;
|
|
|
+ Object.keys(this.form).forEach((key) => {
|
|
|
+ this.form[key] = data[key];
|
|
|
+ });
|
|
|
});
|
|
|
},
|
|
|
- getDatail() {},
|
|
|
changeCategory(val) {
|
|
|
if (this.form.storeId) return;
|
|
|
let data = this.$refs["cascader"].getCheckedNodes()[0].data;
|
|
|
@@ -236,7 +260,15 @@ export default {
|
|
|
return rows;
|
|
|
};
|
|
|
},
|
|
|
- ...mapGetters(["roleList", "storeList"]),
|
|
|
+ integral() {
|
|
|
+ let { standPrice, specialPrice } = this.form;
|
|
|
+ const integral = standPrice - specialPrice;
|
|
|
+ if (integral < 0 || Number.isNaN(integral)) {
|
|
|
+ return 0;
|
|
|
+ }
|
|
|
+ return parseInt(integral) * this.getRules;
|
|
|
+ },
|
|
|
+ ...mapGetters(["roleList", "storeList", "categoryList"]),
|
|
|
},
|
|
|
created() {},
|
|
|
components: { FileUpload, quillEditor },
|