king
2022-12-23 31871ca836e6fcbea9b1c54e2ec15f49667bf093
src/pc/components/navbar/normal-navbar/menusetting/menuform/index.jsx
@@ -1,6 +1,7 @@
import React, {Component} from 'react'
import PropTypes from 'prop-types'
import { Form, Row, Col, Input, Radio, Tooltip, Icon, Select } from 'antd'
import { Form, Row, Col, Input, Radio, Tooltip, Select } from 'antd'
import { QuestionCircleOutlined } from '@ant-design/icons'
import './index.scss'
@@ -14,6 +15,7 @@
  state = {
    property: this.props.menu.property || 'menu',
    copyMenu: this.props.menu.copyMenuId || '',
    appMenus: [],
  }
@@ -22,7 +24,7 @@
    if (appMenus) {
      try {
        appMenus = JSON.parse(appMenus)
      } catch {
      } catch (e) {
        appMenus = []
      }
    } else {
@@ -71,7 +73,7 @@
  render() {
    const { menu } = this.props
    const { getFieldDecorator } = this.props.form
    const { property, appMenus } = this.state
    const { property, appMenus, copyMenu } = this.state
    const formItemLayout = {
      labelCol: {
@@ -100,7 +102,7 @@
              })(<Input placeholder={''} autoComplete="off" onPressEnter={this.handleSubmit} />)}
            </Form.Item>
          </Col>
          <Col span={22}>
          {/* <Col span={22}>
            <Form.Item label="菜单参数">
              {getFieldDecorator('MenuNo', {
                initialValue: menu.MenuNo || '',
@@ -112,7 +114,7 @@
                ]
              })(<Input placeholder={''} autoComplete="off" onPressEnter={this.handleSubmit} />)}
            </Form.Item>
          </Col>
          </Col> */}
          <Col span={22}>
            <Form.Item label="菜单属性">
              {getFieldDecorator('property', {
@@ -127,6 +129,59 @@
              )}
            </Form.Item>
          </Col>
          {property === 'linkmenu' ? <Col span={22}>
            <Form.Item label={
              <Tooltip placement="topLeft" title="关联当前app中已有的菜单。">
                <QuestionCircleOutlined className="mk-form-tip" />
                关联菜单
              </Tooltip>
            }>
              {getFieldDecorator('linkMenuId', {
                initialValue: menu.linkMenuId || '',
                rules: [{
                  required: true,
                  message: '请选择关联菜单!'
                }]
              })(
                <Select>
                  {appMenus.map(item => (<Select.Option key={item.MenuID} value={item.MenuID}>{item.MenuName}</Select.Option>))}
                </Select>
              )}
            </Form.Item>
          </Col> : null}
          {property === 'menu' ? <Col span={22}>
            <Form.Item label={
              <Tooltip placement="topLeft" title="复制菜单仅在当前菜单不存在时有效。">
                <QuestionCircleOutlined className="mk-form-tip" />
                复制菜单
              </Tooltip>
            }>
              {getFieldDecorator('copyMenuId', {
                initialValue: menu.copyMenuId || ''
              })(
                <Select allowClear onChange={(val) => this.setState({copyMenu: val})}>
                  {appMenus.map(item => (<Select.Option key={item.MenuID} value={item.MenuID}>{item.MenuName}</Select.Option>))}
                </Select>
              )}
            </Form.Item>
          </Col> : null}
          {property === 'menu' && copyMenu ? <Col span={12}>
            <Form.Item label={
              <Tooltip placement="topLeft" title="复制菜单时,是否清空原页面中的关联菜单。">
                <QuestionCircleOutlined className="mk-form-tip" />
                清空关联菜单
              </Tooltip>
            }>
              {getFieldDecorator('clearMenu', {
                initialValue: menu.clearMenu || 'true'
              })(
                <Radio.Group>
                  <Radio value="true">是</Radio>
                  <Radio value="false">否</Radio>
                </Radio.Group>
              )}
            </Form.Item>
          </Col> : null}
          <Col span={22}>
            <Form.Item label="隐藏">
              {getFieldDecorator('hidden', {
@@ -160,42 +215,6 @@
                  message: '请输入链接地址!'
                }]
              })(<TextArea rows={2} />)}
            </Form.Item>
          </Col> : null}
          {property === 'linkmenu' ? <Col span={22}>
            <Form.Item label={
              <Tooltip placement="topLeft" title="关联当前app中已有的菜单。">
                <Icon type="question-circle" style={{color: '#c49f47', marginRight: '3px'}}/>
                关联菜单
              </Tooltip>
            }>
              {getFieldDecorator('linkMenuId', {
                initialValue: menu.linkMenuId || '',
                rules: [{
                  required: true,
                  message: '请选择关联菜单!'
                }]
              })(
                <Select>
                  {appMenus.map(item => (<Select.Option key={item.MenuID} value={item.MenuID}>{item.MenuName}</Select.Option>))}
                </Select>
              )}
            </Form.Item>
          </Col> : null}
          {property === 'menu' ? <Col span={22}>
            <Form.Item label={
              <Tooltip placement="topLeft" title="复制菜单仅在当前菜单不存在时有效。">
                <Icon type="question-circle" style={{color: '#c49f47', marginRight: '3px'}}/>
                复制菜单
              </Tooltip>
            }>
              {getFieldDecorator('copyMenuId', {
                initialValue: menu.copyMenuId || ''
              })(
                <Select allowClear>
                  {appMenus.map(item => (<Select.Option key={item.MenuID} value={item.MenuID}>{item.MenuName}</Select.Option>))}
                </Select>
              )}
            </Form.Item>
          </Col> : null}
        </Row>