diff --git a/src/views/App.jsx b/src/views/App.jsx index 0ff7fa7..4689721 100644 --- a/src/views/App.jsx +++ b/src/views/App.jsx @@ -102,7 +102,7 @@ function App() {
- + App logo diff --git a/src/views/products/Detail/PriceCompactInput.jsx b/src/views/products/Detail/PriceCompactInput.jsx new file mode 100644 index 0000000..dd246bb --- /dev/null +++ b/src/views/products/Detail/PriceCompactInput.jsx @@ -0,0 +1,107 @@ +import { useState } from 'react' +import { Input, Space } from 'antd' + +export const PriceCompactInput = (props) => { + const { id, value = {}, onChange } = props + const [numberStart, setNumberStart] = useState(0) + const [numberEnd, setNumberEnd] = useState(0) + const [audultPrice, setAudultPrice] = useState(0) + const [childrenPrice, setChildrenPrice] = useState(0) + const triggerChange = (changedValue) => { + onChange?.({ + numberStart, + numberEnd, + audultPrice, + childrenPrice, + ...value, + ...changedValue, + }) + } + const onNumberStartChange = (e) => { + const newNumber = parseInt(e.target.value || '0', 10) + if (Number.isNaN(numberStart)) { + return + } + if (!('numberStart' in value)) { + setNumberStart(newNumber) + } + triggerChange({ + numberStart: newNumber, + }) + } + const onNumberEndChange = (e) => { + const newNumber = parseInt(e.target.value || '0', 10) + if (Number.isNaN(numberEnd)) { + return + } + if (!('numberEnd' in value)) { + setNumberEnd(newNumber) + } + triggerChange({ + numberEnd: newNumber, + }) + } + const onAudultPriceChange = (e) => { + const newNumber = parseInt(e.target.value || '0', 10) + if (Number.isNaN(audultPrice)) { + return + } + if (!('audultPrice' in value)) { + setAudultPrice(newNumber) + } + triggerChange({ + audultPrice: newNumber, + }) + } + const onChildrenPriceChange = (e) => { + const newNumber = parseInt(e.target.value || '0', 10) + if (Number.isNaN(childrenPrice)) { + return + } + if (!('childrenPrice' in value)) { + setChildrenPrice(newNumber) + } + triggerChange({ + childrenPrice: newNumber, + }) + } + return ( + + + + + + + ) +} \ No newline at end of file diff --git a/src/views/products/Detail/ProductInfoQuotation.jsx b/src/views/products/Detail/ProductInfoQuotation.jsx index ae8b99d..3d59f44 100644 --- a/src/views/products/Detail/ProductInfoQuotation.jsx +++ b/src/views/products/Detail/ProductInfoQuotation.jsx @@ -5,114 +5,10 @@ import { CloseOutlined, StarTwoTone, PlusOutlined, ExclamationCircleFilled } fro import { useDatePresets } from '@/hooks/useDatePresets' import dayjs from 'dayjs' import useProductsStore from '@/stores/Products/Index' +import PriceCompactInput from './PriceCompactInput' const { RangePicker } = DatePicker -const PriceInput = (props) => { - const { id, value = {}, onChange } = props - const [numberStart, setNumberStart] = useState(0) - const [numberEnd, setNumberEnd] = useState(0) - const [audultPrice, setAudultPrice] = useState(0) - const [childrenPrice, setChildrenPrice] = useState(0) - const triggerChange = (changedValue) => { - onChange?.({ - numberStart, - numberEnd, - audultPrice, - childrenPrice, - ...value, - ...changedValue, - }) - } - const onNumberStartChange = (e) => { - const newNumber = parseInt(e.target.value || '0', 10) - if (Number.isNaN(numberStart)) { - return - } - if (!('numberStart' in value)) { - setNumberStart(newNumber) - } - triggerChange({ - numberStart: newNumber, - }) - } - const onNumberEndChange = (e) => { - const newNumber = parseInt(e.target.value || '0', 10) - if (Number.isNaN(numberEnd)) { - return - } - if (!('numberEnd' in value)) { - setNumberEnd(newNumber) - } - triggerChange({ - numberEnd: newNumber, - }) - } - const onAudultPriceChange = (e) => { - const newNumber = parseInt(e.target.value || '0', 10) - if (Number.isNaN(audultPrice)) { - return - } - if (!('audultPrice' in value)) { - setAudultPrice(newNumber) - } - triggerChange({ - audultPrice: newNumber, - }) - } - const onChildrenPriceChange = (e) => { - const newNumber = parseInt(e.target.value || '0', 10) - if (Number.isNaN(childrenPrice)) { - return - } - if (!('childrenPrice' in value)) { - setChildrenPrice(newNumber) - } - triggerChange({ - childrenPrice: newNumber, - }) - } - return ( - - - - - - - ) -} - const batchSetupInitialValues = { 'defList': [ // 旺季 @@ -420,7 +316,7 @@ const ProductInfoQuotation = ({ editable, ...props }) => { {priceFieldList.map((priceField, index) => ( - + {index == 0 ? : priceOptList.remove(priceField.name)} />}