商家端优化库存预警,管理端 商家端隐藏所有促销活动的删除按钮
parent
9ce1c966eb
commit
9908b83b18
|
@ -99,16 +99,16 @@
|
||||||
@click="close(row)"
|
@click="close(row)"
|
||||||
>关闭
|
>关闭
|
||||||
</Button>
|
</Button>
|
||||||
<Button
|
<!--<Button-->
|
||||||
class="ml_5"
|
<!--class="ml_5"-->
|
||||||
v-if="
|
<!--v-if="-->
|
||||||
row.promotionStatus === 'CLOSE' || row.promotionStatus === 'END'
|
<!--row.promotionStatus === 'CLOSE' || row.promotionStatus === 'END'-->
|
||||||
"
|
<!--"-->
|
||||||
type="error"
|
<!--type="error"-->
|
||||||
size="small"
|
<!--size="small"-->
|
||||||
@click="remove(row)"
|
<!--@click="remove(row)"-->
|
||||||
>删除
|
<!-->删除-->
|
||||||
</Button>
|
<!--</Button>-->
|
||||||
<Button
|
<Button
|
||||||
style="margin: 5px"
|
style="margin: 5px"
|
||||||
type="info"
|
type="info"
|
||||||
|
@ -286,7 +286,7 @@ export default {
|
||||||
slot: "action",
|
slot: "action",
|
||||||
align: "center",
|
align: "center",
|
||||||
fixed: "right",
|
fixed: "right",
|
||||||
width: 150,
|
width: 250,
|
||||||
},
|
},
|
||||||
],
|
],
|
||||||
data: [], // 表单数据
|
data: [], // 表单数据
|
||||||
|
|
|
@ -111,13 +111,13 @@
|
||||||
@click="edit(row, 'onlyView')"
|
@click="edit(row, 'onlyView')"
|
||||||
>查看
|
>查看
|
||||||
</Button>
|
</Button>
|
||||||
<Button
|
<!--<Button-->
|
||||||
type="error"
|
<!--type="error"-->
|
||||||
size="small"
|
<!--size="small"-->
|
||||||
style="margin-right: 10px"
|
<!--style="margin-right: 10px"-->
|
||||||
@click="delAll(row)"
|
<!--@click="delAll(row)"-->
|
||||||
>删除
|
<!-->删除-->
|
||||||
</Button>
|
<!--</Button>-->
|
||||||
</template>
|
</template>
|
||||||
</Table>
|
</Table>
|
||||||
<Row type="flex" justify="end" class="page">
|
<Row type="flex" justify="end" class="page">
|
||||||
|
|
|
@ -124,14 +124,14 @@
|
||||||
style="margin-right: 5px"
|
style="margin-right: 5px"
|
||||||
>关闭</Button
|
>关闭</Button
|
||||||
>
|
>
|
||||||
<Button
|
<!--<Button-->
|
||||||
v-if="row.promotionStatus === 'CLOSE' || row.promotionStatus === 'END'"
|
<!--v-if="row.promotionStatus === 'CLOSE' || row.promotionStatus === 'END'"-->
|
||||||
type="error"
|
<!--type="error"-->
|
||||||
size="small"
|
<!--size="small"-->
|
||||||
@click="close(row.id)"
|
<!--@click="close(row.id)"-->
|
||||||
style="margin-right: 5px"
|
<!--style="margin-right: 5px"-->
|
||||||
>删除</Button
|
<!-->删除</Button-->
|
||||||
>
|
<!-->-->
|
||||||
</template>
|
</template>
|
||||||
</Table>
|
</Table>
|
||||||
<Row type="flex" justify="end" class="mt_10">
|
<Row type="flex" justify="end" class="mt_10">
|
||||||
|
|
|
@ -93,14 +93,14 @@
|
||||||
>关闭</Button
|
>关闭</Button
|
||||||
>
|
>
|
||||||
|
|
||||||
<Button
|
<!--<Button-->
|
||||||
type="error"
|
<!--type="error"-->
|
||||||
size="small"
|
<!--size="small"-->
|
||||||
v-if="row.promotionStatus == 'CLOSE' || row.promotionStatus == 'END'"
|
<!--v-if="row.promotionStatus == 'CLOSE' || row.promotionStatus == 'END'"-->
|
||||||
ghost
|
<!--ghost-->
|
||||||
@click="expire(row)"
|
<!--@click="expire(row)"-->
|
||||||
>删除</Button
|
<!-->删除</Button-->
|
||||||
>
|
<!-->-->
|
||||||
</template>
|
</template>
|
||||||
</Table>
|
</Table>
|
||||||
|
|
||||||
|
|
|
@ -231,6 +231,13 @@ export const updateGoodsSkuStocks = params => {
|
||||||
"Content-Type": "application/json"
|
"Content-Type": "application/json"
|
||||||
});
|
});
|
||||||
};
|
};
|
||||||
|
// 更新商品库存预警
|
||||||
|
export const updateGoodsAlertStocks = params => {
|
||||||
|
return putRequest("/goods/goods/update/alert/stocks", params, {
|
||||||
|
"Content-Type": "application/json"
|
||||||
|
});
|
||||||
|
};
|
||||||
|
|
||||||
// 获取商品分页列表
|
// 获取商品分页列表
|
||||||
export const getGoodsListDataSeller = params => {
|
export const getGoodsListDataSeller = params => {
|
||||||
return getRequest("/goods/goods/list", params);
|
return getRequest("/goods/goods/list", params);
|
||||||
|
|
|
@ -148,9 +148,9 @@
|
||||||
title="更新库存"
|
title="更新库存"
|
||||||
v-model="updateStockModalVisible"
|
v-model="updateStockModalVisible"
|
||||||
:mask-closable="false"
|
:mask-closable="false"
|
||||||
:width="500"
|
:width="610"
|
||||||
>
|
>
|
||||||
<Tabs value="updateStock">
|
<Tabs value="updateStock" v-model="updateStockType">
|
||||||
<TabPane label="手动规格更新" name="updateStock">
|
<TabPane label="手动规格更新" name="updateStock">
|
||||||
<Table
|
<Table
|
||||||
class="mt_10"
|
class="mt_10"
|
||||||
|
@ -162,8 +162,11 @@
|
||||||
<TabPane label="批量规格更新" name="stockAll">
|
<TabPane label="批量规格更新" name="stockAll">
|
||||||
<Input type="number" v-model="stockAllUpdate" placeholder="统一规格修改" />
|
<Input type="number" v-model="stockAllUpdate" placeholder="统一规格修改" />
|
||||||
</TabPane>
|
</TabPane>
|
||||||
<TabPane label="库存预警更新" name="yujing">
|
<TabPane label="手动库存预警更新" name="alertQuantity">
|
||||||
<Table class="mt_10" :columns="yujingColumns" :data="stockList" border></Table>
|
<Table class="mt_10" :columns="alertQuantityColumns" :data="alertQuantityList" border></Table>
|
||||||
|
</TabPane>
|
||||||
|
<TabPane label="批量库存预警更新" name="alertQuantityAll">
|
||||||
|
<Input type="number" v-model="stockAllAlertQuantity" placeholder="统一库存预警修改" />
|
||||||
</TabPane>
|
</TabPane>
|
||||||
</Tabs>
|
</Tabs>
|
||||||
|
|
||||||
|
@ -218,6 +221,7 @@ import {
|
||||||
getGoodsListDataSeller,
|
getGoodsListDataSeller,
|
||||||
getGoodsSkuListDataSeller,
|
getGoodsSkuListDataSeller,
|
||||||
updateGoodsSkuStocks,
|
updateGoodsSkuStocks,
|
||||||
|
updateGoodsAlertStocks,
|
||||||
upGoods,
|
upGoods,
|
||||||
lowGoods,
|
lowGoods,
|
||||||
deleteGoods,
|
deleteGoods,
|
||||||
|
@ -244,6 +248,7 @@ export default {
|
||||||
logisticsTemplate: [], // 物流列表
|
logisticsTemplate: [], // 物流列表
|
||||||
updateStockModalVisible: false, // 更新库存模态框显隐
|
updateStockModalVisible: false, // 更新库存模态框显隐
|
||||||
stockAllUpdate: undefined, // 更新库存数量
|
stockAllUpdate: undefined, // 更新库存数量
|
||||||
|
stockAllAlertQuantity: undefined, // 更新规格预警数量
|
||||||
searchForm: {
|
searchForm: {
|
||||||
// 搜索框初始化对象
|
// 搜索框初始化对象
|
||||||
pageNumber: 1, // 当前页数
|
pageNumber: 1, // 当前页数
|
||||||
|
@ -252,6 +257,7 @@ export default {
|
||||||
order: "desc", // 默认排序方式
|
order: "desc", // 默认排序方式
|
||||||
},
|
},
|
||||||
stockList: [], // 库存列表
|
stockList: [], // 库存列表
|
||||||
|
alertQuantityList: [], // 库存预警列表
|
||||||
form: {
|
form: {
|
||||||
// 添加或编辑表单对象初始化数据
|
// 添加或编辑表单对象初始化数据
|
||||||
goodsName: "",
|
goodsName: "",
|
||||||
|
@ -262,7 +268,7 @@ export default {
|
||||||
},
|
},
|
||||||
updateStockColumns: [
|
updateStockColumns: [
|
||||||
{
|
{
|
||||||
title: "库存预警",
|
title: "sku规格",
|
||||||
key: "sn",
|
key: "sn",
|
||||||
minWidth: 120,
|
minWidth: 120,
|
||||||
render: (h, params) => {
|
render: (h, params) => {
|
||||||
|
@ -303,9 +309,9 @@ export default {
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
],
|
],
|
||||||
yujingColumns: [
|
alertQuantityColumns: [
|
||||||
{
|
{
|
||||||
title: "sku规格",
|
title: "库存预警",
|
||||||
key: "sn",
|
key: "sn",
|
||||||
minWidth: 120,
|
minWidth: 120,
|
||||||
render: (h, params) => {
|
render: (h, params) => {
|
||||||
|
@ -335,11 +341,11 @@ export default {
|
||||||
let vm = this;
|
let vm = this;
|
||||||
return h("InputNumber", {
|
return h("InputNumber", {
|
||||||
props: {
|
props: {
|
||||||
value: params.row.quantity,
|
value: params.row.alertQuantity,
|
||||||
},
|
},
|
||||||
on: {
|
on: {
|
||||||
"on-change": (event) => {
|
"on-change": (event) => {
|
||||||
vm.stockList[params.index].quantity = event;
|
vm.alertQuantityList[params.index].alertQuantity = event;
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
});
|
});
|
||||||
|
@ -537,6 +543,7 @@ export default {
|
||||||
],
|
],
|
||||||
data: [], // 表单数据
|
data: [], // 表单数据
|
||||||
total: 0, // 表单数据总数
|
total: 0, // 表单数据总数
|
||||||
|
updateStockType: 'updateStock', // 更新库存状态
|
||||||
};
|
};
|
||||||
},
|
},
|
||||||
methods: {
|
methods: {
|
||||||
|
@ -577,8 +584,11 @@ export default {
|
||||||
getGoodsSkuListDataSeller({ goodsId: id, pageSize: 1000 }).then((res) => {
|
getGoodsSkuListDataSeller({ goodsId: id, pageSize: 1000 }).then((res) => {
|
||||||
if (res.success) {
|
if (res.success) {
|
||||||
this.updateStockModalVisible = true;
|
this.updateStockModalVisible = true;
|
||||||
|
this.updateStockType = 'updateStock';
|
||||||
this.stockAllUpdate = undefined;
|
this.stockAllUpdate = undefined;
|
||||||
this.stockList = res.result.records;
|
this.stockList = res.result.records;
|
||||||
|
this.stockAllAlertQuantity = undefined;
|
||||||
|
this.alertQuantityList = res.result.records;
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
},
|
},
|
||||||
|
@ -631,21 +641,41 @@ export default {
|
||||||
});
|
});
|
||||||
},
|
},
|
||||||
// 更新库存
|
// 更新库存
|
||||||
updateStock() {
|
updateStock () {
|
||||||
let updateStockList = this.stockList.map((i) => {
|
if (this.updateStockType === 'alertQuantity' || this.updateStockType === 'alertQuantityAll') {
|
||||||
let j = { skuId: i.id, quantity: i.quantity };
|
// alertQuantity 手动库存预警更新,alertQuantityAll 批量库存预警更新
|
||||||
if (this.stockAllUpdate) {
|
let updateAlertQuantityList = this.alertQuantityList.map((i) => {
|
||||||
j.quantity = this.stockAllUpdate;
|
let j = { skuId: i.id, alertQuantity: i.alertQuantity };
|
||||||
}
|
if (this.stockAllAlertQuantity) {
|
||||||
return j;
|
j.alertQuantity = this.stockAllAlertQuantity;
|
||||||
});
|
}
|
||||||
updateGoodsSkuStocks(updateStockList).then((res) => {
|
return j;
|
||||||
if (res.success) {
|
});
|
||||||
this.updateStockModalVisible = false;
|
updateGoodsAlertStocks(updateAlertQuantityList).then((res) => {
|
||||||
this.$Message.success("更新库存成功");
|
if (res.success) {
|
||||||
this.getDataList();
|
this.updateStockModalVisible = false;
|
||||||
}
|
this.$Message.success("更新库存预警成功");
|
||||||
});
|
this.getDataList();
|
||||||
|
}
|
||||||
|
});
|
||||||
|
} else if (this.updateStockType === 'updateStock' || this.updateStockType === 'stockAll') {
|
||||||
|
// updateStock 手动规格更新,stockAll 批量规格更新
|
||||||
|
let updateStockList = this.stockList.map((i) => {
|
||||||
|
let j = { skuId: i.id, quantity: i.quantity };
|
||||||
|
if (this.stockAllUpdate) {
|
||||||
|
j.quantity = this.stockAllUpdate;
|
||||||
|
}
|
||||||
|
return j;
|
||||||
|
});
|
||||||
|
updateGoodsSkuStocks(updateStockList).then((res) => {
|
||||||
|
if (res.success) {
|
||||||
|
this.updateStockModalVisible = false;
|
||||||
|
this.$Message.success("更新库存成功");
|
||||||
|
this.getDataList();
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
},
|
},
|
||||||
// 改变页码
|
// 改变页码
|
||||||
changePage(v) {
|
changePage(v) {
|
||||||
|
|
|
@ -213,8 +213,8 @@
|
||||||
overflow-x: hidden;
|
overflow-x: hidden;
|
||||||
}
|
}
|
||||||
">
|
">
|
||||||
<template slot="yujing" slot-scope="{ row }">
|
<template slot="alertQuantity" slot-scope="{ row }">
|
||||||
<Input v-model="row.yujing" clearable placeholder="请输入库存预警" @on-change="updateSkuTable(row, 'yujing')">
|
<Input v-model="row.alertQuantity" clearable placeholder="请输入库存预警" @on-change="updateSkuTable(row, 'alertQuantity')">
|
||||||
<span slot="append">{{baseInfoForm.goodsUnit || ""}}</span>
|
<span slot="append">{{baseInfoForm.goodsUnit || ""}}</span>
|
||||||
</Input>
|
</Input>
|
||||||
</template>
|
</template>
|
||||||
|
@ -644,6 +644,7 @@ export default {
|
||||||
"price",
|
"price",
|
||||||
"weight",
|
"weight",
|
||||||
"quantity",
|
"quantity",
|
||||||
|
"alertQuantity",
|
||||||
"specId",
|
"specId",
|
||||||
"specValueId",
|
"specValueId",
|
||||||
],
|
],
|
||||||
|
@ -1057,6 +1058,7 @@ export default {
|
||||||
price: e.price,
|
price: e.price,
|
||||||
// cost: e.cost,
|
// cost: e.cost,
|
||||||
quantity: e.quantity,
|
quantity: e.quantity,
|
||||||
|
alertQuantity: e.alertQuantity,
|
||||||
weight: e.weight,
|
weight: e.weight,
|
||||||
};
|
};
|
||||||
e.specList.forEach((u) => {
|
e.specList.forEach((u) => {
|
||||||
|
@ -1360,6 +1362,7 @@ export default {
|
||||||
find.sn && (find.sn = "");
|
find.sn && (find.sn = "");
|
||||||
// find.cost && (find.cost = "");
|
// find.cost && (find.cost = "");
|
||||||
find.quantity && (find.quantity = "");
|
find.quantity && (find.quantity = "");
|
||||||
|
find.alertQuantity && (find.alertQuantity = "");
|
||||||
find.weight && (find.weight = "");
|
find.weight && (find.weight = "");
|
||||||
|
|
||||||
this.skuTableData.splice(this.skuTableData.length, 0, find);
|
this.skuTableData.splice(this.skuTableData.length, 0, find);
|
||||||
|
@ -1374,6 +1377,7 @@ export default {
|
||||||
find.sn && (find.sn = "");
|
find.sn && (find.sn = "");
|
||||||
// find.cost && (find.cost = "");
|
// find.cost && (find.cost = "");
|
||||||
find.quantity && (find.quantity = "");
|
find.quantity && (find.quantity = "");
|
||||||
|
find.alertQuantity && (find.alertQuantity = "");
|
||||||
find.weight && (find.weight = "");
|
find.weight && (find.weight = "");
|
||||||
|
|
||||||
this.skuTableData.splice(index, 0, find);
|
this.skuTableData.splice(index, 0, find);
|
||||||
|
@ -1421,10 +1425,7 @@ export default {
|
||||||
key: columnName,
|
key: columnName,
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
pushData.push({
|
|
||||||
title: "库存预警",
|
|
||||||
slot: "yujing",
|
|
||||||
});
|
|
||||||
// 有成本价和价格的情况
|
// 有成本价和价格的情况
|
||||||
if (this.baseInfoForm.salesModel !== "WHOLESALE") {
|
if (this.baseInfoForm.salesModel !== "WHOLESALE") {
|
||||||
pushData.push(
|
pushData.push(
|
||||||
|
@ -1458,12 +1459,15 @@ export default {
|
||||||
slot: "weight",
|
slot: "weight",
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
pushData.push(
|
pushData.push(
|
||||||
{
|
{
|
||||||
title: "库存",
|
title: "库存",
|
||||||
slot: "quantity",
|
slot: "quantity",
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
title: "库存预警",
|
||||||
|
slot: "alertQuantity",
|
||||||
|
},
|
||||||
{
|
{
|
||||||
title: "货号",
|
title: "货号",
|
||||||
slot: "sn",
|
slot: "sn",
|
||||||
|
@ -1510,6 +1514,7 @@ export default {
|
||||||
id: skus[index].id,
|
id: skus[index].id,
|
||||||
sn: skus[index].sn,
|
sn: skus[index].sn,
|
||||||
quantity: skus[index].quantity,
|
quantity: skus[index].quantity,
|
||||||
|
alertQuantity: skus[index].alertQuantity,
|
||||||
cost: 1,
|
cost: 1,
|
||||||
price: skus[index].price,
|
price: skus[index].price,
|
||||||
[spec[0].name]: specItem.value,
|
[spec[0].name]: specItem.value,
|
||||||
|
@ -1591,7 +1596,18 @@ export default {
|
||||||
this.validatatxt = "请输入0~99999999之间的整数";
|
this.validatatxt = "请输入0~99999999之间的整数";
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
}
|
} else if (item === "alertQuantity") {
|
||||||
|
if (
|
||||||
|
!/^[0-9]\d*$/.test(row[item]) ||
|
||||||
|
parseInt(row[item]) < 0 ||
|
||||||
|
parseInt(row[item]) > 99999999
|
||||||
|
) {
|
||||||
|
// 库存预警
|
||||||
|
this.validateError.push([index, item]);
|
||||||
|
this.validatatxt = "请输入0~99999999之间的整数";
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
}
|
||||||
// else if (item === "cost" || item === "price") {
|
// else if (item === "cost" || item === "price") {
|
||||||
// if (
|
// if (
|
||||||
// !regular.money.test(row[item]) ||
|
// !regular.money.test(row[item]) ||
|
||||||
|
@ -1684,6 +1700,7 @@ export default {
|
||||||
cost: 1,
|
cost: 1,
|
||||||
price: sku.price,
|
price: sku.price,
|
||||||
quantity: sku.quantity,
|
quantity: sku.quantity,
|
||||||
|
alertQuantity: sku.alertQuantity,
|
||||||
sn: sku.sn,
|
sn: sku.sn,
|
||||||
images: sku.images,
|
images: sku.images,
|
||||||
};
|
};
|
||||||
|
|
|
@ -235,7 +235,7 @@ export default {
|
||||||
slot: "action",
|
slot: "action",
|
||||||
align: "center",
|
align: "center",
|
||||||
fixed: "right",
|
fixed: "right",
|
||||||
maxWidth: 140,
|
maxWidth: 240,
|
||||||
},
|
},
|
||||||
],
|
],
|
||||||
data: [], // 表单数据
|
data: [], // 表单数据
|
||||||
|
|
|
@ -43,8 +43,8 @@
|
||||||
@click="openOrClose(row)">关闭</Button>
|
@click="openOrClose(row)">关闭</Button>
|
||||||
<Button type="success" v-if="row.promotionStatus === 'CLOSE'" style="margin-left: 5px" size="small"
|
<Button type="success" v-if="row.promotionStatus === 'CLOSE'" style="margin-left: 5px" size="small"
|
||||||
@click="openOrClose(row)">开启</Button>
|
@click="openOrClose(row)">开启</Button>
|
||||||
<Button type="error" :disabled="row.promotionStatus == 'START'" style="margin-left: 5px" size="small"
|
<!--<Button type="error" :disabled="row.promotionStatus == 'START'" style="margin-left: 5px" size="small"-->
|
||||||
@click="del(row)">删除</Button>
|
<!--@click="del(row)">删除</Button>-->
|
||||||
</div>
|
</div>
|
||||||
</template>
|
</template>
|
||||||
</Table>
|
</Table>
|
||||||
|
|
|
@ -77,13 +77,13 @@
|
||||||
@click="manage(row, 'view')"
|
@click="manage(row, 'view')"
|
||||||
>查看</Button
|
>查看</Button
|
||||||
>
|
>
|
||||||
<Button
|
<!--<Button-->
|
||||||
type="error"
|
<!--type="error"-->
|
||||||
size="small"
|
<!--size="small"-->
|
||||||
v-if="row.promotionStatus != 'START'"
|
<!--v-if="row.promotionStatus != 'START'"-->
|
||||||
@click="remove(row)"
|
<!--@click="remove(row)"-->
|
||||||
>删除</Button
|
<!-->删除</Button-->
|
||||||
>
|
<!-->-->
|
||||||
<Button
|
<Button
|
||||||
type="success"
|
type="success"
|
||||||
v-if="row.promotionStatus == 'CLOSE'"
|
v-if="row.promotionStatus == 'CLOSE'"
|
||||||
|
|
Loading…
Reference in New Issue