Commit f3fee090 authored by 武广's avatar 武广

fix: 修改校验库存

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