Commit f3fee090 authored by 武广's avatar 武广

fix: 修改校验库存

parent d2960ac7
import { Form } from '@ant-design/compatible';
import '@ant-design/compatible/assets/index.css';
import { Modal, InputNumber, notification, Input, Radio } from 'antd';
import React from 'react';
import React, { useState } from 'react';
import { apiCreateGoodsLog } from '../service';
import styles from '../style.less';
const UpdateStock = props => {
const { getFieldDecorator, validateFields, resetFields, getFieldValue } = props.form;
const valueInfo = props.info;
getFieldDecorator('changeType', { initialValue: 1 });
getFieldDecorator('changeType', { initialValue: 28 });
const [loading, setLoading] = useState(false);
const submit = async () => {
validateFields(async (err, { stock, changeReason, changeType }) => {
if (err) return;
const error = await apiCreateGoodsLog({
setLoading(true);
const params = {
afterChange: stock,
// id: valueInfo.id,
supplierId: valueInfo.supplierId,
productIdType: 2,
changeType,
changeReason,
productIds: valueInfo.id ? [valueInfo.id] : props.skuIds,
});
if (!error) {
notification.success({ message: '操作成功!' });
productIds: props.skuIds,
};
console.log('params :>> ', params);
const res = await apiCreateGoodsLog(params);
if (res?.businessCode === '0000') {
notification.success({ message: '库存更改申请已提交!' });
props.onCancel('success');
resetFields();
}
setLoading(false);
});
};
const onCancel = () => {
......@@ -34,23 +40,40 @@ const UpdateStock = props => {
};
const formItemLayout = {
labelCol: {
span: 6,
span: 7,
},
wrapperCol: {
span: 16,
span: 15,
},
};
const validatorCallback = (rule, value, callback) => {
// 减库存存时,校验可售库存-输入值>=0,即可售库存不可为负;
const changeType = getFieldValue('changeType');
const increment = valueInfo.marketableStock - value;
const increment = valueInfo.stock - value;
console.log('valueInfo :>> ', valueInfo, increment);
return +changeType === 29 && increment < 0 ? callback(new Error(rule.message)) : callback();
};
return (
<Modal title="修改库存" visible={props.visible} onCancel={onCancel} onOk={submit} width={500}>
<Modal
title="修改库存"
visible={props.visible}
okButtonProps={{ loading }}
onCancel={onCancel}
onOk={submit}
width={500}
>
<Form {...formItemLayout}>
{props.skuIds.length > 1 ? (
<Form.Item label="可修改库存商品数:">
<span>{props.skuIds.length}</span>
</Form.Item>
) : (
<Form.Item label="当前库存:">
<span>{valueInfo.stock}</span>
</Form.Item>
)}
<Form.Item label="变更类型:">
{getFieldDecorator('changeType', {
rules: [{ required: true, message: '请选择类型!' }],
......@@ -69,7 +92,7 @@ const UpdateStock = props => {
{ required: true, message: '请输入库存!' },
{ validator: validatorCallback, message: '减库存,输入库存数不可大于可售库存!' },
],
validateTrigger: ['onSubmit'],
validateTrigger: ['onSubmit', 'onChange'],
})(<InputNumber min={0} precision={0} placeholder="请输入库存" style={{ width: 200 }} />)}
</Form.Item>
<Form.Item label="变更原因:">
......
......@@ -48,6 +48,7 @@ class goodsManage extends Component {
selectedRowKeys: [],
isAll: 0,
templateList: [],
stockSkuIds: [],
isType: '',
};
......@@ -230,7 +231,10 @@ class goodsManage extends Component {
if (ids) {
const res = await apiEnableUpdataStock(ids);
if (res.data) {
if (res.data.allResult || res.data.successSkuIds?.length) {
if (res.data.successSkuIds?.length) {
this.setState({
stockSkuIds: res.data.successSkuIds,
});
this.openModal(row, 1);
} else {
const message = res.data.failedInfoList[0]?.message || '未存在可修改库存的商品';
......@@ -418,7 +422,7 @@ class goodsManage extends Component {
<UpdateStock
visible={this.state.updateStockVisible}
skuIds={this.state.selectedRowKeys}
skuIds={this.state.stockSkuIds}
info={this.state.priceInfo}
onCancel={this.cancel}
/>
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment