| | |
| | | import React, { useState, useRef, useEffect } from 'react'; |
| | | import { Col, Form, Input, Row, Checkbox, Slider, Select, Drawer, Space, Button, InputNumber, Switch } from 'antd'; |
| | | import { Col, Form, Input, Row, Switch, Slider, message, Drawer, Space, Button, InputNumber, Segmented } from 'antd'; |
| | | import { FormattedMessage, useIntl, useModel } from '@umijs/max'; |
| | | import { createStyles } from 'antd-style'; |
| | | import * as Utils from '../utils' |
| | |
| | | const { styles } = useStyles(); |
| | | const { curSprite } = props; |
| | | const [form] = Form.useForm(); |
| | | const [autoIncrement, setAutoIncrement] = useState(false); |
| | | const [autoIncrementError, setAutoIncrementError] = useState(null); |
| | | |
| | | useEffect(() => { |
| | | setAutoIncrement(false); |
| | | form.resetFields(); |
| | | if (curSprite && props) { |
| | | form.setFieldsValue({ |
| | | ...props.values, |
| | | copyGap: 0 |
| | | }); |
| | | } |
| | | }, [form, props]); |
| | | |
| | | useEffect(() => { |
| | | if (autoIncrement === true && curSprite) { |
| | | switch (curSprite.data?.type) { |
| | | case Utils.SENSOR_TYPE.SHELF: |
| | | if (!curSprite.data?.row || !curSprite.data?.bay) { |
| | | setAutoIncrementError(intl.formatMessage({ id: 'map.settings.sub.copy.warn.config.shelf', defaultMessage: '请先设置货架参数!' })); |
| | | } else { |
| | | setAutoIncrementError(null); |
| | | } |
| | | break; |
| | | default: |
| | | break; |
| | | } |
| | | } else { |
| | | setAutoIncrementError(null); |
| | | } |
| | | }, [autoIncrement]) |
| | | |
| | | const handleCancel = () => { |
| | | props.onClose(); |
| | |
| | | } |
| | | |
| | | const handleFinish = (values) => { |
| | | props.submit({ ...values, ...props.values }) |
| | | } |
| | | |
| | | const formValuesChange = () => { |
| | | |
| | | props.submit({ |
| | | ...values |
| | | , ...props.values |
| | | , autoIncrement: autoIncrement |
| | | , type: curSprite?.data?.type |
| | | }) |
| | | } |
| | | |
| | | return ( |
| | |
| | | > |
| | | <Form |
| | | form={form} |
| | | onFieldsChange={formValuesChange} |
| | | initialValues={{ |
| | | copyGap: 0, |
| | | autoIncrement: false, |
| | | incrementMode: 'ascending', |
| | | }} |
| | | onFinish={handleFinish} |
| | | autoComplete="off" |
| | |
| | | style={{ |
| | | width: '60%', |
| | | }} |
| | | // min={0} |
| | | // min={0} |
| | | /> |
| | | </Form.Item> |
| | | </Col> |
| | | |
| | | {curSprite?.data?.type === 'AGV' && ( |
| | | <Col span={24}> |
| | | <Form.Item |
| | | name='id' |
| | | label={intl.formatMessage({ id: 'map.settings.sub.copy.id', defaultMessage: '序号' })} |
| | | labelCol={{ span: 8 }} |
| | | > |
| | | <InputNumber |
| | | style={{ |
| | | width: '60%', |
| | | }} |
| | | min={0} |
| | | /> |
| | | </Form.Item> |
| | | </Col> |
| | | {/* switch auto increment */} |
| | | <Col span={24}> |
| | | <Form.Item |
| | | label={intl.formatMessage({ id: 'map.settings.sub.copy.shelf.auto-increment', defaultMessage: '自增长' })} |
| | | labelCol={{ span: 8 }} |
| | | help={autoIncrementError} |
| | | validateStatus={autoIncrementError ? "error" : null} |
| | | > |
| | | <Switch value={autoIncrement} onChange={setAutoIncrement} /> |
| | | </Form.Item> |
| | | </Col> |
| | | |
| | | {autoIncrement && curSprite?.data?.type === Utils.SENSOR_TYPE.AGV && ( |
| | | <> |
| | | <Col span={24}> |
| | | <Form.Item |
| | | name='incrementValue' |
| | | label={intl.formatMessage({ id: 'map.settings.sub.copy.shelf.increment-value', defaultMessage: '自增长值' })} |
| | | labelCol={{ span: 8 }} |
| | | initialValue='no' |
| | | > |
| | | <Segmented |
| | | block |
| | | options={[ |
| | | { |
| | | label: intl.formatMessage({ id: 'map.settings.no', defaultMessage: '编号' }), |
| | | value: 'no' |
| | | }, |
| | | ]} |
| | | onChange={(value) => { |
| | | }} |
| | | /> |
| | | </Form.Item> |
| | | </Col> |
| | | <Col span={24}> |
| | | <Form.Item |
| | | name='incrementMode' |
| | | label={intl.formatMessage({ id: 'map.settings.sub.copy.increment.mode', defaultMessage: '增长方式' })} |
| | | labelCol={{ span: 8 }} |
| | | > |
| | | <Segmented |
| | | block |
| | | options={[ |
| | | { |
| | | label: intl.formatMessage({ id: 'map.settings.sub.copy.ascend', defaultMessage: '升序' }), |
| | | value: 'ascending' |
| | | }, |
| | | { |
| | | label: intl.formatMessage({ id: 'map.settings.sub.copy.descend', defaultMessage: '降序' }), |
| | | value: 'descending' |
| | | }, |
| | | ]} |
| | | onChange={(value) => { |
| | | }} |
| | | /> |
| | | </Form.Item> |
| | | </Col> |
| | | </> |
| | | )} |
| | | |
| | | {autoIncrement && curSprite?.data?.type === Utils.SENSOR_TYPE.SHELF && ( |
| | | <> |
| | | <Col span={24}> |
| | | <Form.Item |
| | | name='incrementValue' |
| | | label={intl.formatMessage({ id: 'map.settings.sub.copy.shelf.increment-value', defaultMessage: '自增长值' })} |
| | | labelCol={{ span: 8 }} |
| | | initialValue='row' |
| | | > |
| | | <Segmented |
| | | block |
| | | options={[ |
| | | { |
| | | label: intl.formatMessage({ id: 'map.settings.shelf.row', defaultMessage: '排' }), |
| | | value: 'row' |
| | | }, |
| | | { |
| | | label: intl.formatMessage({ id: 'map.settings.shelf.bay', defaultMessage: '列' }), |
| | | value: 'bay' |
| | | }, |
| | | ]} |
| | | onChange={(value) => { |
| | | }} |
| | | /> |
| | | </Form.Item> |
| | | </Col> |
| | | <Col span={24}> |
| | | <Form.Item |
| | | name='incrementMode' |
| | | label={intl.formatMessage({ id: 'map.settings.sub.copy.increment.mode', defaultMessage: '增长方式' })} |
| | | labelCol={{ span: 8 }} |
| | | > |
| | | <Segmented |
| | | block |
| | | options={[ |
| | | { |
| | | label: intl.formatMessage({ id: 'map.settings.sub.copy.ascend', defaultMessage: '升序' }), |
| | | value: 'ascending' |
| | | }, |
| | | { |
| | | label: intl.formatMessage({ id: 'map.settings.sub.copy.descend', defaultMessage: '降序' }), |
| | | value: 'descending' |
| | | }, |
| | | ]} |
| | | onChange={(value) => { |
| | | }} |
| | | /> |
| | | </Form.Item> |
| | | </Col> |
| | | </> |
| | | )} |
| | | |
| | | </Row> |