king
2021-09-01 31ec63f0419895876cbaba99637a884a32d33d0d
src/mob/components/navbar/normal-navbar/menusetting/menuform/index.jsx
@@ -2,13 +2,16 @@
import PropTypes from 'prop-types'
import { Form, Row, Col, Input, Radio, Tooltip, Icon, Select } from 'antd'
import asyncComponent from '@/utils/asyncComponent'
import './index.scss'
const { TextArea } = Input
const MkIcon = asyncComponent(() => import('@/components/mkIcon'))
class SettingForm extends Component {
  static propTpyes = {
    menu: PropTypes.object,    // 卡片行信息
    menu: PropTypes.object,      // 菜单信息
    cols: PropTypes.array,       // 字段集
    inputSubmit: PropTypes.func  // 回车事件
  }
@@ -22,7 +25,7 @@
    if (appMenus) {
      try {
        appMenus = JSON.parse(appMenus)
      } catch {
      } catch (e) {
        appMenus = []
      }
    } else {
@@ -69,7 +72,7 @@
  }
  render() {
    const { menu } = this.props
    const { menu, cols } = this.props
    const { getFieldDecorator } = this.props.form
    const { property, appMenus } = this.state
@@ -85,9 +88,9 @@
    }
    return (
      <Form {...formItemLayout}>
      <Form {...formItemLayout} className="mob-menu-form">
        <Row gutter={24}>
          <Col span={22}>
          <Col span={12}>
            <Form.Item label="菜单名称">
              {getFieldDecorator('name', {
                initialValue: menu.name,
@@ -100,7 +103,7 @@
              })(<Input placeholder={''} autoComplete="off" onPressEnter={this.handleSubmit} />)}
            </Form.Item>
          </Col>
          <Col span={22}>
          <Col span={12}>
            <Form.Item label="菜单参数">
              {getFieldDecorator('MenuNo', {
                initialValue: menu.MenuNo || '',
@@ -113,31 +116,46 @@
              })(<Input placeholder={''} autoComplete="off" onPressEnter={this.handleSubmit} />)}
            </Form.Item>
          </Col>
          <Col span={22}>
          <Col span={12}>
            <Form.Item label="图标">
              {getFieldDecorator('icon', {
                initialValue: menu.icon || ''
              })(
                <Select>
                  {appMenus.map(item => (<Select.Option key={item.MenuID} value={item.MenuID}>{item.MenuName}</Select.Option>))}
                <MkIcon allowClear />
              )}
            </Form.Item>
          </Col>
          <Col span={12}>
            <Form.Item label={
              <Tooltip placement="topLeft" title="绑定提示字段后,会在菜单右上角显示提示信息。注:在添加图标时有效。">
                <Icon type="question-circle" style={{color: '#c49f47', marginRight: '3px'}}/>
                提示
              </Tooltip>
            }>
              {getFieldDecorator('tip', {
                initialValue: menu.tip || ''
              })(
                <Select allowClear>
                  {cols.map(item => <Select.Option key={item.uuid} value={item.field}>{item.label}</Select.Option>)}
                </Select>
              )}
            </Form.Item>
          </Col>
          <Col span={22}>
          <Col span={12}>
            <Form.Item label="菜单属性">
              {getFieldDecorator('property', {
                initialValue: menu.property || 'menu'
              })(
                <Radio.Group onChange={this.changeProperty}>
                <Radio.Group onChange={this.changeProperty} className="over">
                  <Radio value="menu">菜单</Radio>
                  <Radio value="link">链接</Radio>
                  <Radio value="linkmenu">关联菜单</Radio>
                  <Radio value="sysmenu">系统页</Radio>
                  <Radio value="link">链接</Radio>
                </Radio.Group>
              )}
            </Form.Item>
          </Col>
          <Col span={22}>
          <Col span={12}>
            <Form.Item label="隐藏">
              {getFieldDecorator('hidden', {
                initialValue: menu.hidden || 'false'
@@ -149,8 +167,23 @@
              )}
            </Form.Item>
          </Col>
          {property === 'link' ? <Col span={22}>
            <Form.Item label="链接地址">
          {property === 'sysmenu' ? <Col span={12}>
            <Form.Item label="系统页面">
              {getFieldDecorator('sysmenu', {
                initialValue: menu.sysmenu || '',
                rules: [{
                  required: true,
                  message: '请选择系统页面!'
                }]
              })(
                <Select>
                  <Select.Option value="AIService">智能客服</Select.Option>
                </Select>
              )}
            </Form.Item>
          </Col> : null}
          {property === 'link' ? <Col span={24}>
            <Form.Item label="链接地址" className="textarea">
              {getFieldDecorator('link', {
                initialValue: menu.link || '',
                rules: [{
@@ -160,7 +193,7 @@
              })(<TextArea rows={2} />)}
            </Form.Item>
          </Col> : null}
          {property === 'linkmenu' ? <Col span={22}>
          {property === 'linkmenu' ? <Col span={12}>
            <Form.Item label={
              <Tooltip placement="topLeft" title="关联当前app中已有的菜单。">
                <Icon type="question-circle" style={{color: '#c49f47', marginRight: '3px'}}/>
@@ -180,7 +213,7 @@
              )}
            </Form.Item>
          </Col> : null}
          {property === 'menu' ? <Col span={22}>
          {property === 'menu' ? <Col span={12}>
            <Form.Item label={
              <Tooltip placement="topLeft" title="复制菜单仅在当前菜单不存在时有效。">
                <Icon type="question-circle" style={{color: '#c49f47', marginRight: '3px'}}/>