From 9d0acfb65c80c4948c305ca01338f894b87346a0 Mon Sep 17 00:00:00 2001
From: luxiaotao1123 <t1341870251@163.com>
Date: 星期一, 08 四月 2024 09:44:37 +0800
Subject: [PATCH] Merge branch 'Four-Way-Rack' of http://47.97.1.152:5880/r/zy-asrs-master into Four-Way-Rack

---
 zy-asrs-flow/src/pages/system/menu/components/edit.jsx |  179 ++++++++++++++++++++++-------------------------------------
 1 files changed, 66 insertions(+), 113 deletions(-)

diff --git a/zy-asrs-flow/src/pages/system/menu/components/edit.jsx b/zy-asrs-flow/src/pages/system/menu/components/edit.jsx
index 7c5dd94..7a929f5 100644
--- a/zy-asrs-flow/src/pages/system/menu/components/edit.jsx
+++ b/zy-asrs-flow/src/pages/system/menu/components/edit.jsx
@@ -1,16 +1,25 @@
-import React, { useState, useRef, useEffect } from 'react';
+import React, { useState, useRef, useEffect, useMemo } from 'react';
 import {
     ProForm,
     ProFormDigit,
     ProFormText,
     ProFormSelect,
-    ProFormDateTimePicker
+    ProFormDateTimePicker,
+    ProFormTreeSelect
 } from '@ant-design/pro-components';
-import { Form, Modal } from 'antd';
+import { FormattedMessage, useIntl } from '@umijs/max';
+import { Form, Modal, Col } from 'antd';
 import moment from 'moment';
 import Http from '@/utils/http';
+import { createIcon } from '@/utils/icon-util'
+import IconSelector from '@/components/IconSelector';
 
 const Edit = (props) => {
+    const intl = useIntl();
+    const [menuType, setMenuType] = useState(0);
+    const [menuIconName, setMenuIconName] = useState();
+    const [iconSelectorOpen, setIconSelectorOpen] = useState(false);
+
     const [form] = Form.useForm();
     const { } = props;
 
@@ -36,7 +45,11 @@
     return (
         <>
             <Modal
-                title="Edit"
+                title={
+                    Object.keys(props.values).length > 0
+                        ? intl.formatMessage({ id: 'page.edit', defaultMessage: '缂栬緫' })
+                        : intl.formatMessage({ id: 'page.add', defaultMessage: '娣诲姞' })
+                }
                 width={640}
                 forceRender
                 destroyOnClose
@@ -57,93 +70,72 @@
                         hidden={true}
                     />
                     <ProForm.Group>
-                        <ProFormText
-                            name="name"
-                            label="鍚嶇О"
-                            colProps={{ md: 12, xl: 12 }}
-                            placeholder="璇疯緭鍏�"
-                            rules={[{ required: true, message: "鍚嶇О涓嶈兘涓虹┖锛�" }]}
-                        />
-                        <ProFormDigit
+                        <ProFormTreeSelect
                             name="parentId"
                             label="涓婄骇鑿滃崟"
+                            params={props.treeData}
+                            request={async () => {
+                                return props.treeData;
+                            }}
                             colProps={{ md: 12, xl: 12 }}
-                            fieldProps={{ precision: 0 }}
-                            placeholder="璇疯緭鍏�"
+                            rules={[{ required: true, message: "涓婄骇鑿滃崟涓嶈兘涓虹┖" }]}
+                            fieldProps={{
+                                treeDefaultExpandedKeys: [0]
+                            }}
+                        />
+                        <ProFormText
+                            name="name"
+                            label="鑿滃崟鍚嶇О"
+                            colProps={{ md: 12, xl: 12 }}
+                            rules={[{ required: true, message: "鑿滃崟鍚嶇О涓嶈兘涓虹┖锛�" }]}
                         />
                     </ProForm.Group>
                     <ProForm.Group>
-                        <ProFormText
-                            name="parentName"
-                            label="涓婄骇鑿滃崟鍚�"
-                            colProps={{ md: 12, xl: 12 }}
-                            placeholder="璇疯緭鍏�"
-                        />
-                        <ProFormText
-                            name="path"
-                            label="鍏宠仈璺緞"
-                            colProps={{ md: 12, xl: 12 }}
-                            placeholder="璇疯緭鍏�"
-                        />
-                    </ProForm.Group>
-                    <ProForm.Group>
-                        <ProFormText
-                            name="pathName"
-                            label="鍏宠仈璺緞鍚�"
-                            colProps={{ md: 12, xl: 12 }}
-                            placeholder="璇疯緭鍏�"
-                        />
                         <ProFormText
                             name="route"
                             label="璺敱鍦板潃"
                             colProps={{ md: 12, xl: 12 }}
-                            placeholder="璇疯緭鍏�"
                         />
-                    </ProForm.Group>
-                    <ProForm.Group>
                         <ProFormText
                             name="component"
                             label="椤甸潰缁勪欢"
                             colProps={{ md: 12, xl: 12 }}
-                            placeholder="璇疯緭鍏�"
-                        />
-                        <ProFormText
-                            name="brief"
-                            label="绠�杩�"
-                            colProps={{ md: 12, xl: 12 }}
-                            placeholder="璇疯緭鍏�"
                         />
                     </ProForm.Group>
                     <ProForm.Group>
-                        <ProFormText
-                            name="code"
-                            label="鏍囪瘑"
-                            colProps={{ md: 12, xl: 12 }}
-                            placeholder="璇疯緭鍏�"
-                        />
                         <ProFormSelect
                             name="type"
                             label="绫诲瀷"
-                            colProps={{ md: 12, xl: 12 }}
-                            placeholder="璇烽�夋嫨"
+                            colProps={{ md: 10, xl: 610 }}
                             options={[
                                 { label: '鑿滃崟', value: 0 },
                                 { label: '鎸夐挳', value: 1 },
                             ]}
+                            fieldProps={{
+                                onChange: (e) => {
+                                    setMenuType(e);
+                                },
+                            }}
+                            rules={[{ required: true, message: "绫诲瀷涓嶈兘涓虹┖锛�" }]}
                         />
-                    </ProForm.Group>
-                    <ProForm.Group>
                         <ProFormText
                             name="authority"
                             label="鏉冮檺鏍囪瘑"
+                            hidden={menuType !== 1}
                             colProps={{ md: 12, xl: 12 }}
-                            placeholder="璇疯緭鍏�"
                         />
-                        <ProFormText
+                        <ProFormSelect
                             name="icon"
                             label="鑿滃崟鍥炬爣"
+                            hidden={menuType !== 0}
                             colProps={{ md: 12, xl: 12 }}
-                            placeholder="璇疯緭鍏�"
+                            valueEnum={{}}
+                            addonBefore={createIcon(menuIconName)}
+                            fieldProps={{
+                                onClick: () => {
+                                    setIconSelectorOpen(true);
+                                },
+                            }}
                         />
                     </ProForm.Group>
                     <ProForm.Group>
@@ -152,74 +144,35 @@
                             label="鎺掑簭"
                             colProps={{ md: 12, xl: 12 }}
                             fieldProps={{ precision: 0 }}
-                            placeholder="璇疯緭鍏�"
                         />
-                        <ProFormText
-                            name="meta"
-                            label="鍏冧俊鎭�"
-                            colProps={{ md: 12, xl: 12 }}
-                            placeholder="璇疯緭鍏�"
-                        />
-                    </ProForm.Group>
-                    <ProForm.Group>
                         <ProFormSelect
                             name="status"
                             label="鐘舵��"
                             colProps={{ md: 12, xl: 12 }}
-                            placeholder="璇烽�夋嫨"
                             options={[
                                 { label: '姝e父', value: 1 },
                                 { label: '绂佺敤', value: 0 },
                             ]}
                         />
-                        <ProFormDateTimePicker
-                            name="createTime"
-                            label="娣诲姞鏃堕棿"
-                            colProps={{ md: 12, xl: 12 }}
-                            placeholder="璇烽�夋嫨"
-                            transform={(value) => moment(value).toISOString()}
-                        />
                     </ProForm.Group>
-                    <ProForm.Group>
-                        <ProFormSelect
-                            name="createBy"
-                            label="娣诲姞浜哄憳"
-                            colProps={{ md: 12, xl: 12 }}
-                            fieldProps={{ precision: 0 }}
-                            placeholder="璇烽�夋嫨"
-                            showSearch
-                            debounceTime={300}
-                            request={async ({ keyWords }) => {
-                                const resp = await Http.doPostForm('api/user/query', { condition: keyWords });
-                            return resp.data;
-                            }}
-                        />
-                        <ProFormDateTimePicker
-                            name="updateTime"
-                            label="淇敼鏃堕棿"
-                            colProps={{ md: 12, xl: 12 }}
-                            placeholder="璇烽�夋嫨"
-                            transform={(value) => moment(value).toISOString()}
-                        />
-                    </ProForm.Group>
-                    <ProForm.Group>
-                        <ProFormSelect
-                            name="updateBy"
-                            label="淇敼浜哄憳"
-                            colProps={{ md: 12, xl: 12 }}
-                            fieldProps={{ precision: 0 }}
-                            placeholder="璇烽�夋嫨"
-                            showSearch
-                            debounceTime={300}
-                            request={async ({ keyWords }) => {
-                                const resp = await Http.doPostForm('api/user/query', { condition: keyWords });
-                            return resp.data;
-                            }}
-                        />
-                    </ProForm.Group>
-
                 </ProForm>
-            </Modal>
+                <Modal
+                    width={800}
+                    open={iconSelectorOpen}
+                    onCancel={() => {
+                        setIconSelectorOpen(false);
+                    }}
+                    footer={null}
+                >
+                    <IconSelector
+                        onSelect={(name) => {
+                            form.setFieldsValue({ icon: name });
+                            setMenuIconName(name);
+                            setIconSelectorOpen(false);
+                        }}
+                    />
+                </Modal>
+            </Modal >
         </>
     )
 }

--
Gitblit v1.9.1