From f3d4db769ba9b51b799d981511a710fd443d0e08 Mon Sep 17 00:00:00 2001
From: king <18310653075@163.com>
Date: 星期一, 21 四月 2025 12:18:03 +0800
Subject: [PATCH] Merge branch 'master' into positec

---
 src/views/design/header/editfirstmenu/menuform/index.jsx |  129 ++++++++++++++++++-------------------------
 1 files changed, 54 insertions(+), 75 deletions(-)

diff --git a/src/views/design/header/editfirstmenu/menuform/index.jsx b/src/views/design/header/editfirstmenu/menuform/index.jsx
index e263eba..b446205 100644
--- a/src/views/design/header/editfirstmenu/menuform/index.jsx
+++ b/src/views/design/header/editfirstmenu/menuform/index.jsx
@@ -1,13 +1,14 @@
 import React, {Component} from 'react'
 import PropTypes from 'prop-types'
-import { Form, Row, Col, Input, Select, Radio } from 'antd'
+import { fromJS } from 'immutable'
+import { Form, Row, Col, Input, Radio } from 'antd'
+
 import Utils from '@/utils/utils.js'
 import './index.scss'
 
 class MainSearch extends Component {
   static propTpyes = {
     menu: PropTypes.any,         // 鑿滃崟淇℃伅锛屾柊寤烘椂涓簄ull
-    dict: PropTypes.object,      // 瀛楀吀椤�
     type: PropTypes.string,      // 鎿嶄綔绫诲瀷
     inputSubmit: PropTypes.func
   }
@@ -18,7 +19,7 @@
       {
         type: 'text',
         key: 'menuName',
-        label: this.props.dict['model.menu'] + this.props.dict['model.name'],
+        label: '鑿滃崟鍚嶇О',
         initVal: '',
         required: true,
         readonly: false
@@ -26,12 +27,12 @@
       {
         type: 'radio',
         key: 'openType',
-        label: this.props.dict['model.openway'],
+        label: '鎵撳紑鏂瑰紡',
         initVal: 'menu',
         required: true,
         options: [{
           id: 'menu',
-          text: this.props.dict['model.menu']
+          text: '鑿滃崟'
         }, {
           id: 'outpage',
           text: '澶栭儴椤甸潰'
@@ -44,6 +45,14 @@
         initVal: '',
         hidden: true,
         required: true
+      },
+      {
+        type: 'text',
+        key: 'linkProUrl',
+        label: '姝e紡鍦板潃',
+        initVal: '',
+        hidden: true,
+        required: false
       }
     ]
   }
@@ -51,19 +60,19 @@
   UNSAFE_componentWillMount () {
     const { menu } = this.props
 
-    if (this.props.type === 'add') {
+    if (!menu) {
       this.setState({
-        formlist: this.state.defaultMenu
+        formlist: fromJS(this.state.defaultMenu).toJS()
       })
     } else {
       this.setState({
-        formlist: this.state.defaultMenu.map(item => {
+        formlist: fromJS(this.state.defaultMenu).toJS().map(item => {
           if (item.key === 'menuName') {
             item.initVal = menu.MenuName
           } else if (item.key === 'openType') {
             item.initVal = menu.PageParam.OpenType
-          } else if (item.key === 'linkUrl') {
-            item.initVal = menu.PageParam.linkUrl
+          } else if (item.key === 'linkUrl' || item.key === 'linkProUrl') {
+            item.initVal = menu.PageParam[item.key] || ''
             if (menu.PageParam.OpenType === 'menu') {
               item.hidden = true
             } else if (menu.PageParam.OpenType === 'outpage') {
@@ -78,21 +87,13 @@
 
   openTypeChange = (key, value) => {
     if (key === 'openType') {
-      let formlist = this.state.formlist
-      if (value === 'outpage') {
-        formlist.forEach(item => {
-          if (item.key === 'linkUrl') {
-            item.hidden = false
-            item.initVal = ''
-          }
-        })
-      } else {
-        formlist.forEach(item => {
-          if (item.key === 'linkUrl') {
-            item.hidden = true
-          }
-        })
-      }
+      let formlist = fromJS(this.state.formlist).toJS()
+
+      formlist.forEach(item => {
+        if (item.key === 'linkUrl' || item.key === 'linkProUrl') {
+          item.hidden = value !== 'outpage'
+        }
+      })
 
       this.setState({formlist})
     }
@@ -113,14 +114,14 @@
                 rules: [
                   {
                     required: !!item.required,
-                    message: this.props.dict['form.required.input'] + item.label + '!'
+                    message: '璇疯緭鍏�' + item.label + '!'
                   }
                 ]
               })(<Input placeholder="" autoFocus={item.key.toLowerCase() === 'menuname'} autoComplete="off" disabled={item.readonly} />)}
             </Form.Item>
           </Col>
         )
-      } else if (item.type === 'select') { // 涓嬫媺鎼滅储
+      } else if (item.type === 'radio') {
         fields.push(
           <Col span={24} key={index}>
             <Form.Item label={item.label}>
@@ -129,34 +130,7 @@
                 rules: [
                   {
                     required: !!item.required,
-                    message: this.props.dict['form.required.select'] + item.label + '!'
-                  }
-                ]
-              })(
-                <Select
-                  showSearch
-                  filterOption={(input, option) => option.props.children.toLowerCase().indexOf(input.toLowerCase()) >= 0}
-                  onChange={(value) => {this.openTypeChange(item.key, value)}}
-                  getPopupContainer={() => document.getElementById('first-menu-form-box')}
-                >
-                  {item.options.map(option =>
-                    <Select.Option key={option.id} value={option.id}>{option.text}</Select.Option>
-                  )}
-                </Select>
-              )}
-            </Form.Item>
-          </Col>
-        )
-      } else if (item.type === 'radio') { // 涓嬫媺鎼滅储
-        fields.push(
-          <Col span={24} key={index}>
-            <Form.Item label={item.label}>
-              {getFieldDecorator(item.key, {
-                initialValue: item.initVal || '',
-                rules: [
-                  {
-                    required: !!item.required,
-                    message: this.props.dict['form.required.select'] + item.label + '!'
+                    message: '璇烽�夋嫨' + item.label + '!'
                   }
                 ]
               })(
@@ -180,31 +154,36 @@
   }
 
   handleConfirm = () => {
+    const { menu } = this.props
+
     // 琛ㄥ崟鎻愪氦鏃舵鏌ヨ緭鍏ュ�兼槸鍚︽纭�
     return new Promise((resolve, reject) => {
       this.props.form.validateFieldsAndScroll((err, values) => {
-        if (!err) {
-          if (this.props.type === 'add') {
-            resolve({
-              MenuID: Utils.getuuid(),
-              MenuName: values.menuName,
-              PageParam: JSON.stringify({
-                OpenType: values.openType,
-                linkUrl: values.openType !== 'menu' ? values.linkUrl : ''
-              })
-            })
-          } else {
-            resolve({
-              MenuID: this.props.menu.MenuID,
-              MenuName: values.menuName,
-              PageParam: JSON.stringify({
-                OpenType: values.openType,
-                linkUrl: values.openType !== 'menu' ? values.linkUrl : ''
-              })
-            })
+        if (err) return
+
+        let PageParam = {
+          OpenType: values.openType
+        }
+
+        if (values.openType !== 'menu') {
+          PageParam.linkUrl = values.linkUrl || ''
+          if (values.linkProUrl) {
+            PageParam.linkProUrl = values.linkProUrl
           }
+        }
+
+        if (!menu) {
+          resolve({
+            MenuID: Utils.getuuid(),
+            MenuName: values.menuName,
+            PageParam: JSON.stringify(PageParam)
+          })
         } else {
-          reject(err)
+          resolve({
+            MenuID: menu.MenuID,
+            MenuName: values.menuName,
+            PageParam: JSON.stringify(PageParam)
+          })
         }
       })
     })

--
Gitblit v1.8.0