@@ -353,6 +472,7 @@ export default {
prop: "name",
type: "Input",
required: true,
+ maxlength: "30",
rules: {
required: true,
message: "请输入商品名称",
@@ -374,6 +494,7 @@ export default {
return (
@@ -404,7 +525,7 @@ export default {
return (
);
})}
@@ -415,6 +536,12 @@ export default {
{
label: "规格",
prop: "productSpecificationList",
+ // required: true,
+ // rules: {
+ // required: true,
+ // message: "请选择销售单位",
+ // trigger: "blur",
+ // },
type: "jsx",
render: () => {
return (
@@ -424,6 +551,22 @@ export default {
);
},
},
+ {
+ label: "成本",
+ prop: "minCostPrice",
+ type: "jsx",
+ render: () => {
+ return (
+
+ 单位(元)
+
+ );
+ },
+ },
{
label: "价格",
prop: "singlePrice",
@@ -431,12 +574,12 @@ export default {
render: () => {
return (
0
- }
+ readonly={this.modalData.specType != 0}
placeholder="请输入价格"
v-model={this.modalData.singlePrice}
- >
+ >
+
单位(元)
+
);
},
},
@@ -447,15 +590,41 @@ export default {
render: () => {
return (
0
- }
+ readonly={this.modalData.specType != 0}
placeholder="请输入库存"
v-model={this.modalData.singleStock}
>
);
},
},
+ {
+ label: "重量",
+ prop: "weight",
+ type: "jsx",
+ render: () => {
+ return (
+
+ );
+ },
+ },
+ {
+ label: "体积",
+ prop: "volume",
+ type: "jsx",
+ render: () => {
+ return (
+
+ );
+ },
+ },
{
label: "其他属性",
prop: "productAttributeList",
@@ -482,7 +651,6 @@ export default {
const change = (e) => {
console.log(e);
this.modalData.productPlace = e.join("-");
- console.log(aa);
};
return (
{
@@ -547,6 +715,8 @@ export default {
drag
action={this.$api.mer_admin.uploadFile()}
limit={1}
+ file-list={this.fileListOne}
+ list-type="picture"
{...{
props: {
"on-change": handleChange,
@@ -573,12 +743,12 @@ export default {
{
label: "商品视频",
prop: "productVideo",
- required: true,
- rules: {
- required: true,
- message: "请填写商品描述",
- trigger: "blur",
- },
+ // required: true,
+ // rules: {
+ // required: true,
+ // message: "请填写商品描述",
+ // trigger: "blur",
+ // },
type: "jsx",
render: () => {
const handleChange = (file, fileList) => {
@@ -596,6 +766,8 @@ export default {
drag
action={this.$api.mer_admin.uploadFile()}
limit={1}
+ file-list={this.fileListTwo}
+ list-type="picture"
{...{
props: {
"on-change": handleChange,
@@ -629,7 +801,7 @@ export default {
modalHandles() {
return [
{
- label: this.currentPanel === "其他信息" ? "确定" : "下一步",
+ label: this.currentPanel === "其他信息" ? "立即上架" : "下一步",
type: "primary",
loading: this.isLoading,
submit: true,
@@ -640,12 +812,67 @@ export default {
this.currentPanel = "其他信息";
} else {
console.log("请求接口", this.modalData);
+ if (this.modalData.specType == 0) {
+ this.modalData.productAttributeList = [
+ {
+ id: "1821213026050191360",
+ attributeName: "重量",
+ attributeValue: "1斤",
+ },
+ ];
+ this.modalData.productSpecificationList = [
+ {
+ attributeValue: "默认",
+ costPrice: this.modalData.minCostPrice,
+ salePrice: this.modalData.singlePrice,
+ stockNum: this.modalData.singleStock,
+ weight: this.modalData.weight,
+ volume: this.modalData.volume,
+ },
+ ];
+ }
this.$api.mer_admin.saveProduct(this.modalData).then((res) => {
console.log(res);
+ this.$emit("queryList");
+ this.toggle();
});
}
}, 300),
},
+ {
+ disabled: () => this.currentPanel != "其他信息",
+ label: "放入仓库",
+ type: "primary",
+ loading: this.isLoading,
+ submit: true,
+ handle: debounce(() => {
+ if (this.modalData.specType == 0) {
+ this.modalData.productAttributeList = [
+ {
+ id: "1821213026050191360",
+ attributeName: "重量",
+ attributeValue: "1斤",
+ },
+ ];
+ this.modalData.productSpecificationList = [
+ {
+ attributeValue: "默认",
+ costPrice: this.modalData.minCostPrice,
+ salePrice: this.modalData.singlePrice,
+ stockNum: this.modalData.singleStock,
+ weight: this.modalData.weight,
+ volume: this.modalData.volume,
+ },
+ ];
+ }
+ this.modalData.status = "DOWN";
+ this.$api.mer_admin.saveProduct(this.modalData).then((res) => {
+ console.log(res);
+ this.$emit("queryList");
+ this.toggle();
+ });
+ }, 300),
+ },
];
},
},
diff --git a/src/views/modules/product/popup/add-price.vue b/src/views/modules/product/popup/add-price.vue
new file mode 100644
index 0000000..8178a1c
--- /dev/null
+++ b/src/views/modules/product/popup/add-price.vue
@@ -0,0 +1,185 @@
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/src/views/modules/product/popup/add-specifications.vue b/src/views/modules/product/popup/add-specifications.vue
index b2f451a..15b1c23 100644
--- a/src/views/modules/product/popup/add-specifications.vue
+++ b/src/views/modules/product/popup/add-specifications.vue
@@ -133,15 +133,51 @@ export default {
this.init(cloneDeep(e.row));
}
return {
- add: () => {
- this.modalConfig.title = "属性";
- this.$nextTick(() => {
- this.modalData = {};
- this.$refs.modal.resetFields();
- });
+ add: (productAttributeList, productSpecificationList) => {
+ this.modalConfig.title = "添加属性";
+ if (productAttributeList.length == 0) {
+ this.AttributeData = [
+ {
+ attributeName: "",
+ attributeValue: [],
+ inputVisible: false,
+ },
+ ];
+ } else {
+ this.AttributeData = productAttributeList.map((item) => {
+ return {
+ attributeName: item.attributeName,
+ attributeValue: item.attributeValue.split(","),
+ id: item.id,
+ inputVisible: false,
+ };
+ });
+ }
+ this.tableData = productSpecificationList;
this.isAdd = true;
},
- update: () => {
+ update: (productAttributeList, productSpecificationList) => {
+ this.modalConfig.title = "编辑属性";
+ console.log(productAttributeList, productSpecificationList);
+ if (productAttributeList.length == 0) {
+ this.AttributeData = [
+ {
+ attributeName: "",
+ attributeValue: [],
+ inputVisible: false,
+ },
+ ];
+ } else {
+ this.AttributeData = productAttributeList.map((item) => {
+ return {
+ attributeName: item.attributeName,
+ attributeValue: item.attributeValue.split(","),
+ id: item.id,
+ inputVisible: false,
+ };
+ });
+ }
+ this.tableData = productSpecificationList;
this.isAdd = false;
},
};
@@ -211,9 +247,11 @@ export default {
this.tableData = data.map((item) => {
return {
attributeValue: item,
- salePrice: "",
- costPrice: "",
- stockNum: "",
+ salePrice: 0,
+ costPrice: 0,
+ stockNum: 0,
+ weight: 0,
+ volume: 0,
};
});
console.log(data);
@@ -230,7 +268,7 @@ export default {
"min-width": "160px",
},
{
- title: "价格",
+ title: "价格(元)",
field: "salePrice",
align: "center",
"min-width": "160px",
@@ -249,7 +287,7 @@ export default {
},
},
{
- title: "成本",
+ title: "成本(元)",
field: "costPrice",
align: "center",
"min-width": "160px",
@@ -259,6 +297,7 @@ export default {
{
+ return (
+
+
+
+ );
+ },
+ },
+ {
+ title: "体积(立方米)",
+ field: "volume",
+ align: "center",
+ "min-width": "160px",
+ type: "jsx",
+ render: ({ row }) => {
+ return (
+
+
+
+ );
+ },
+ },
{
title: "操作",
fixed: "right",
@@ -319,6 +396,7 @@ export default {
label: this.isAdd ? "确认添加" : "确认修改",
type: "primary",
loading: this.isLoading,
+ disabled: () => this.tableData.length <= 0,
// submit: true,
handle: () => {
let salePrice = ""; //价格范围
diff --git a/src/views/modules/product/popup/add-stock.vue b/src/views/modules/product/popup/add-stock.vue
new file mode 100644
index 0000000..e88c7ae
--- /dev/null
+++ b/src/views/modules/product/popup/add-stock.vue
@@ -0,0 +1,185 @@
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file