king
2022-08-02 8d66ff34fae5b048a6b7923cc75d34f13a08be9d
src/views/design/sidemenu/thdmenuform/index.jsx
copy from src/templates/menuconfig/editthdmenu/menuform/index.jsx copy to src/views/design/sidemenu/thdmenuform/index.jsx
File was copied from src/templates/menuconfig/editthdmenu/menuform/index.jsx
@@ -1,38 +1,43 @@
import React, {Component} from 'react'
import PropTypes from 'prop-types'
import { fromJS } from 'immutable'
import { Form, Row, Col, Input, Select } from 'antd'
import './index.scss'
// import './index.scss'
const { TextArea } = Input
class MainSearch extends Component {
  static propTpyes = {
    menu: PropTypes.object,      // 菜单信息
    dict: PropTypes.object,      // 字典项
    supMenuList: PropTypes.any,  // 表格数据
    inputSubmit: PropTypes.func  // 回车提交
  }
  state = {
    menu: null
    supMenuList: []
  }
  UNSAFE_componentWillMount () {
    this.setState({
      menu: this.props.menu
      supMenuList: fromJS(this.props.menu.supMenuList).toJS()
    })
  }
  changeMenu = (val) => {
    const { menu } = this.state
    const { menu } = this.props
    let submenu = menu.fstMenuList.filter(item => item.MenuID === val)[0]
    if (submenu) {
      this.setState({
        menu: {...menu, supMenuList: submenu.children}
        supMenuList: submenu.children
      }, () => {
        this.props.form.setFieldsValue({ParentID: submenu.children[0] ? submenu.children[0].MenuID : ''})
      })
    } else {
      this.setState({
        supMenuList: []
      }, () => {
        this.props.form.setFieldsValue({ParentID: ''})
      })
    }
  }
@@ -50,16 +55,10 @@
    })
  }
  onEnterSubmit = (e) => {
    // 表单回车提交
    if (e.key !== 'Enter') return
    this.props.inputSubmit && this.props.inputSubmit()
  }
  render() {
    const { menu } = this.props
    const { getFieldDecorator } = this.props.form
    const { menu } = this.state
    const { supMenuList } = this.state
    const formItemLayout = {
      labelCol: {
        xs: { span: 24 },
@@ -72,16 +71,16 @@
    }
    return (
      <Form {...formItemLayout} style={{paddingRight: '20px'}} onKeyDown={this.onEnterSubmit}>
      <Form {...formItemLayout} style={{paddingRight: '20px'}}>
        <Row gutter={24}>
          <Col span={24}>
          <Col span={22}>
            <Form.Item label={'一级菜单'}>
              {getFieldDecorator('fstMenuId', {
                initialValue: menu.fstMenuId,
                rules: [
                  {
                    required: true,
                    message: this.props.dict['form.required.select'] + '上级菜单!'
                    message: '请选择上级菜单!'
                  }
                ]
              })(
@@ -97,14 +96,14 @@
              )}
            </Form.Item>
          </Col>
          <Col span={24}>
          <Col span={22}>
            <Form.Item label={'二级菜单'}>
              {getFieldDecorator('ParentID', {
                initialValue: menu.ParentId,
                rules: [
                  {
                    required: true,
                    message: this.props.dict['form.required.select'] + '上级菜单!'
                    message: '请选择上级菜单!'
                  }
                ]
              })(
@@ -112,47 +111,47 @@
                  showSearch
                  filterOption={(input, option) => option.props.children.toLowerCase().indexOf(input.toLowerCase()) >= 0}
                >
                  {menu.supMenuList.map(option =>
                  {supMenuList.map(option =>
                    <Select.Option key={option.MenuID} value={option.MenuID}>{option.text || option.MenuName}</Select.Option>
                  )}
                </Select>
              )}
            </Form.Item>
          </Col>
          <Col span={24}>
          <Col span={22}>
            <Form.Item label={'菜单名称'}>
              {getFieldDecorator('MenuName', {
                initialValue: menu.MenuName || '',
                rules: [
                  {
                    required: true,
                    message: this.props.dict['form.required.input'] + '菜单名称!'
                    message: '请输入菜单名称!'
                  }
                ]
              })(<Input placeholder="" autoFocus autoComplete="off" />)}
              })(<Input placeholder="" autoFocus autoComplete="off" onPressEnter={() => this.props.inputSubmit()}/>)}
            </Form.Item>
          </Col>
          <Col span={24}>
          <Col span={22}>
            <Form.Item label={'菜单参数'}>
              {getFieldDecorator('MenuNo', {
                initialValue: menu.MenuNo || '',
                rules: [
                  {
                    required: true,
                    message: this.props.dict['form.required.input'] + '菜单参数!'
                    message: '请输入菜单参数!'
                  }
                ]
              })(<Input placeholder="" autoComplete="off" />)}
              })(<Input placeholder="" autoComplete="off" onPressEnter={() => this.props.inputSubmit()}/>)}
            </Form.Item>
          </Col>
          {menu.Template === 'NewPage' ? <Col span={24}>
          {menu.Template === 'NewPage' ? <Col span={22}>
            <Form.Item label={'链接地址'}>
              {getFieldDecorator('url', {
                initialValue: menu.url || '',
                rules: [
                  {
                    required: true,
                    message: this.props.dict['form.required.input'] + '页面地址!'
                    message: '请输入页面地址!'
                  },
                  {
                    max: 1024,