From a554a78015cb8bd0b9f1e65a4ac478b42f73f5f9 Mon Sep 17 00:00:00 2001
From: luxiaotao1123 <t1341870251@163.com>
Date: 星期五, 08 三月 2024 16:04:45 +0800
Subject: [PATCH] #

---
 zy-asrs-flow/src/pages/map/components/settings.jsx |  375 +++++++++++++++++++++++++++++++++++++++++++----------
 1 files changed, 303 insertions(+), 72 deletions(-)

diff --git a/zy-asrs-flow/src/pages/map/components/settings.jsx b/zy-asrs-flow/src/pages/map/components/settings.jsx
index b1fe434..39d30d5 100644
--- a/zy-asrs-flow/src/pages/map/components/settings.jsx
+++ b/zy-asrs-flow/src/pages/map/components/settings.jsx
@@ -1,20 +1,11 @@
 import React, { useState, useRef, useEffect } from 'react';
-import {
-    ProForm,
-    ProFormDigit,
-    ProFormText,
-    ProFormSelect,
-    ProFormDateTimePicker,
-    ProFormTextArea,
-    ProFormSlider,
-    ProFormSwitch,
-} from '@ant-design/pro-components';
-import moment from 'moment';
-import { Col, Form, Modal, Row, Checkbox, Image, Tree, Drawer, Space, Button, Card, Divider } from 'antd';
+import { Col, Form, Input, Row, Checkbox, Slider, Select, Drawer, Space, Button, InputNumber, Switch } from 'antd';
 import { FormattedMessage, useIntl, useModel } from '@umijs/max';
-import * as PIXI from 'pixi.js';
 import { createStyles } from 'antd-style';
 import './index.css';
+import * as Utils from '../utils'
+import * as PIXI from 'pixi.js';
+import moment from 'moment';
 import Http from '@/utils/http';
 
 const useStyles = createStyles(({ token, css }) => {
@@ -33,9 +24,16 @@
 
     useEffect(() => {
         form.resetFields();
-        form.setFieldsValue({
-            ...props.values
-        })
+        if (curSprite) {
+            form.setFieldsValue({
+                x: curSprite.position.x,
+                y: curSprite.position.y,
+                scale: Math.max(curSprite.scale.x, curSprite.scale.y),
+                scaleSlider: Math.max(curSprite.scale.x, curSprite.scale.y),
+                rotation: curSprite.rotation * 180 / Math.PI,
+                rotationSlider: curSprite.rotation * 180 / Math.PI,
+            })
+        }
     }, [form, props])
 
     const handleCancel = () => {
@@ -50,9 +48,54 @@
         props.onSubmit({ ...values });
     }
 
-    const formValuesChange = (changeValues) => {
-        console.log(changeValues);
+    const formValuesChange = (changeList) => {
+        if (changeList && changeList.length > 0) {
+            changeList.forEach(change => {
+                const { name: nameList, value } = change;
+                nameList.forEach(name => {
+                    switch (name) {
+                        case 'x':
+                            curSprite.position.x = value;
+                            break;
+                        case 'y':
+                            curSprite.position.x = value;
+                            break;
+                        case 'scaleSlider':
+                            form.setFieldsValue({
+                                scale: value
+                            })
+                            curSprite.scale.set(value);
+                            break;
+                        case 'scale':
+                            form.setFieldsValue({
+                                scaleSlider: value
+                            })
+                            curSprite.scale.set(value);
+                            break;
+                        case 'rotationSlider':
+                            form.setFieldsValue({
+                                rotation: value
+                            })
+                            curSprite.rotation = value * Math.PI / 180;
+                            break;
+                        case 'rotation':
+                            form.setFieldsValue({
+                                rotationSlider: value
+                            })
+                            curSprite.rotation = value * Math.PI / 180;
+                            break;
+                        default:
+                            break;
+                    }
+                    Utils.removeSelectedEffect();
+                    Utils.showSelectedEffect(curSprite);
+                })
+            })
+        }
     }
+
+    const onFinishFailed = (errorInfo) => {
+    };
 
     return (
         <>
@@ -74,63 +117,251 @@
                     </Space>
                 }
             >
-                <ProForm
+                <Form
                     form={form}
-                    submitter={false}
+                    onFieldsChange={formValuesChange}
+                    initialValues={{
+                    }}
                     onFinish={handleFinish}
-                    layout="horizontal"
-                    grid={true}
-                    onValuesChange={formValuesChange}
+                    onFinishFailed={onFinishFailed}
+                    autoComplete="off"
+                    style={{
+                        maxWidth: 600,
+                    }}
+                    size='default'    // small | default | large
+                    variant='filled'    // outlined | borderless | filled
+                    labelWrap   // label 鎹㈣
+                    disabled={false}
+                    layout='horizontal'
                 >
-                    {/* 
-                            // position
-                            // scale
-                            // rotation
-                            // copy
-                        */}
-                    <ProForm.Group>
-                        <ProFormText
-                            name="name"
-                            label="鍚嶇О"
-                            colProps={{ md: 12, xl: 12 }}
-                        />
-                        <ProFormDigit
-                            label="InputNumber"
-                            name="input-number"
-                            min={1}
-                            max={10}
-                            colProps={{ md: 12, xl: 12 }}
-                        />
-                    </ProForm.Group>
-                    <ProForm.Group>
-                        <ProFormSlider
-                            name="slider"
-                            label="Slider"
-                            width="lg"
-                            marks={{
-                                0: 'A',
-                                20: 'B',
-                                40: 'C',
-                                60: 'D',
-                                80: 'E',
-                                100: 'F',
-                            }}
-                            colProps={{ md: 12, xl: 12 }}
-                        />
-                        <ProFormSwitch
-                            name="switch"
-                            label="Switch"
-                            colProps={{ md: 12, xl: 12 }}
-                        />
-                    </ProForm.Group>
-                    <ProForm.Group>
-                        <ProFormTextArea
-                            name="memo"
-                            label="澶囨敞"
-                            colProps={{ md: 24, xl: 24 }}
-                        />
-                    </ProForm.Group>
-                </ProForm>
+                    <Row gutter={[24, 16]}>
+
+                        {/*  */}
+                        <Col span={24}>
+                            <Form.Item
+                                label={intl.formatMessage({ id: 'map.settings.type', defaultMessage: '绫诲瀷' })}
+                                labelCol={{ span: 2 }}
+                            >
+                                <span className="ant-form-text">China</span>
+                            </Form.Item>
+                        </Col>
+
+                        {/* position */}
+                        <Col span={24}>
+                            <Form.Item
+                                label={intl.formatMessage({ id: 'map.settings.position', defaultMessage: '鍧愭爣' })}
+                            >
+                                <Space.Compact>
+                                    <Form.Item
+                                        name='x'
+                                        noStyle
+                                        rules={[
+                                            {
+                                                required: true,
+                                            },
+                                        ]}
+                                    >
+                                        <InputNumber
+                                            addonBefore={<Space.Compact>x</Space.Compact>}
+                                            style={{
+                                                width: '50%',
+                                            }}
+                                        />
+                                    </Form.Item>
+                                    <Form.Item
+                                        name='y'
+                                        noStyle
+                                        rules={[
+                                            {
+                                                required: true,
+                                            },
+                                        ]}
+                                    >
+                                        <InputNumber
+                                            addonBefore={<Space.Compact>y</Space.Compact>}
+                                            style={{
+                                                width: '50%',
+                                            }}
+                                        />
+                                    </Form.Item>
+                                </Space.Compact>
+                            </Form.Item>
+                        </Col>
+
+                        {/* scale */}
+                        <Col span={24}>
+                            <Row gutter={24}>
+                                <Col span={18}>
+                                    <Form.Item
+                                        label={intl.formatMessage({ id: 'map.settings.scale', defaultMessage: '缂╂斁' })}
+                                        name="scaleSlider"
+                                        labelCol={{ span: 4 }}
+                                    >
+                                        <Slider
+                                            min={0.1}
+                                            max={10}
+                                            step={0.1}
+                                            marks={{
+                                                0.1: '0.1',
+                                                1: '1',
+                                                10: '10',
+                                            }}
+                                        />
+                                    </Form.Item>
+                                </Col>
+                                <Col span={6}>
+                                    <Form.Item
+                                        name="scale"
+                                        labelCol={{ span: 4 }}
+                                    >
+                                        <InputNumber
+                                            changeOnWheel
+                                            min={0.1} max={10} defaultValue={1} step={0.1}
+                                            rules={[
+                                                {
+                                                    required: true,
+                                                },
+                                            ]}
+                                        />
+                                    </Form.Item>
+                                </Col>
+                            </Row>
+                        </Col>
+
+                        {/* rotation */}
+                        <Col span={24}>
+                            <Row gutter={24}>
+                                <Col span={18}>
+                                    <Form.Item
+                                        label={intl.formatMessage({ id: 'map.settings.rotation', defaultMessage: '瑙掑害' })}
+                                        name="rotationSlider"
+                                        labelCol={{ span: 4 }}
+                                    >
+                                        <Slider
+                                            min={0}
+                                            max={360}
+                                            step={1}
+                                            marks={{
+                                                0: '0掳',
+                                                90: '90掳',
+                                                180: '180掳',
+                                                270: '270掳',
+                                                360: '360掳',
+                                            }}
+                                        />
+                                    </Form.Item>
+                                </Col>
+                                <Col span={6}>
+                                    <Form.Item
+                                        name="rotation"
+                                        labelCol={{ span: 4 }}
+                                    >
+                                        <InputNumber
+                                            changeOnWheel
+                                            min={0} max={360} defaultValue={0}
+                                            rules={[
+                                                {
+                                                    required: true,
+                                                },
+                                            ]}
+                                        />
+                                    </Form.Item>
+                                </Col>
+                            </Row>
+                        </Col>
+
+
+                        {/* <Col span={12}>
+                            <Form.Item
+                                label="Username"
+                                name="username"
+                                hasFeedback
+                                validateTrigger="onBlur"
+                                validateDebounce={1000}
+                                rules={[
+                                    {
+                                        required: false,
+                                    }
+                                ]}
+                            >
+                                <Input disabled={false} />
+                            </Form.Item>
+                        </Col>
+                        <Col span={24}>
+                            <Form.Item
+                                label="Switch"
+                                valuePropName="checked"
+                            >
+                                <Switch />
+                            </Form.Item>
+                        </Col>
+                        <Col span={24}>
+                            <Form.Item label="Memo">
+                                <Input.TextArea />
+                            </Form.Item>
+                        </Col>
+                        <Col span={24}>
+                            <Form.Item label="Address">
+                                <Space.Compact>
+                                    <Form.Item
+                                        name={['address', 'province']}
+                                        noStyle
+                                        rules={[
+                                            {
+                                                required: false,
+                                                message: 'Province is required',
+                                            },
+                                        ]}
+                                    >
+                                        <Select placeholder="Select province">
+                                            <Option value="Zhejiang">Zhejiang</Option>
+                                            <Option value="Jiangsu">Jiangsu</Option>
+                                        </Select>
+                                    </Form.Item>
+                                    <Form.Item
+                                        name={['address', 'street']}
+                                        noStyle
+                                        rules={[
+                                            {
+                                                required: false,
+                                                message: 'Street is required',
+                                            },
+                                        ]}
+                                    >
+                                        <Input
+                                            style={{
+                                                width: '50%',
+                                            }}
+                                            placeholder="Input street"
+                                        />
+                                    </Form.Item>
+                                </Space.Compact>
+                            </Form.Item>
+                        </Col>
+                        <Col span={24}>
+                            <Form.Item
+                                name="phone"
+                                label="Phone Number"
+                                rules={[
+                                    {
+                                        required: false,
+                                        message: 'Please input your phone number!',
+                                    },
+                                ]}
+                            >
+                                <Input
+                                    addonBefore={prefixSelector}
+                                    style={{
+                                        width: '100%',
+                                    }}
+                                />
+                            </Form.Item>
+                        </Col> */}
+
+
+
+                    </Row>
+                </Form>
             </Drawer>
         </>
     )

--
Gitblit v1.9.1