From f66e19dd13af07ee466306632ad43c72f1f16ae7 Mon Sep 17 00:00:00 2001
From: king <18310653075@163.com>
Date: 星期三, 26 五月 2021 14:49:55 +0800
Subject: [PATCH] 2021-05-26

---
 src/menu/components/card/cardcomponent/settingform/index.jsx |  171 +++++++++++++++++++++++++++++++++++++++++++++++++++++---
 1 files changed, 160 insertions(+), 11 deletions(-)

diff --git a/src/menu/components/card/cardcomponent/settingform/index.jsx b/src/menu/components/card/cardcomponent/settingform/index.jsx
index be9b7e0..6424977 100644
--- a/src/menu/components/card/cardcomponent/settingform/index.jsx
+++ b/src/menu/components/card/cardcomponent/settingform/index.jsx
@@ -1,17 +1,46 @@
 import React, {Component} from 'react'
 import PropTypes from 'prop-types'
-import { Form, Row, Col, Radio, Tooltip, Icon, InputNumber } from 'antd'
+import { Form, Row, Col, Radio, Tooltip, Icon, Input, InputNumber, Select, Cascader } from 'antd'
 
 import './index.scss'
 
+const { TextArea } = Input
+
 class SettingForm extends Component {
   static propTpyes = {
-    dict: PropTypes.object,    // 瀛楀吀椤�
-    setting: PropTypes.object, // 鏁版嵁婧愰厤缃�
+    dict: PropTypes.object,      // 瀛楀吀椤�
+    cards: PropTypes.object,     // 鍗$墖闆�
+    setting: PropTypes.object,   // 鏁版嵁婧愰厤缃�
+    inputSubmit: PropTypes.func  // 鍥炶溅浜嬩欢
   }
 
   state = {
-    type: this.props.setting.type || 'simple'
+    type: this.props.setting.type || 'simple',
+    click: this.props.setting.click || '',
+    appType: sessionStorage.getItem('appType'),
+    menulist: []
+  }
+
+  UNSAFE_componentWillMount() {
+    const { appType } = this.state
+    let menulist = null
+
+    if (appType) {
+      menulist = sessionStorage.getItem('appMenus')
+    } else {
+      menulist = sessionStorage.getItem('fstMenuList')
+    }
+
+    if (menulist) {
+      try {
+        menulist = JSON.parse(menulist)
+      } catch {
+        menulist = []
+      }
+    } else {
+      menulist = []
+    }
+    this.setState({menulist})
   }
 
   handleConfirm = () => {
@@ -27,9 +56,18 @@
     })
   }
 
+  handleSubmit = (e) => {
+    e.preventDefault()
+
+    if (this.props.inputSubmit) {
+      this.props.inputSubmit()
+    }
+  }
+
   render() {
-    const { setting } = this.props
+    const { setting, cards } = this.props
     const { getFieldDecorator } = this.props.form
+    const { menulist, click, appType } = this.state
 
     const formItemLayout = {
       labelCol: {
@@ -43,7 +81,7 @@
     }
 
     return (
-      <div className="model-menu-setting-form">
+      <div className="model-menu-card-setting-form">
         <Form {...formItemLayout}>
           <Row gutter={24}>
             <Col span={12}>
@@ -61,10 +99,10 @@
                       message: this.props.dict['form.required.input'] + '瀹藉害!'
                     }
                   ]
-                })(<InputNumber min={1} max={24} precision={0} />)}
+                })(<InputNumber min={1} max={24} precision={0} onPressEnter={this.handleSubmit}/>)}
               </Form.Item>
             </Col>
-            <Col span={12}>
+            {appType !== 'mob' ? <Col span={12}>
               <Form.Item label={
                 <Tooltip placement="topLeft" title="閫夋嫨澶嶅紡鍗℃椂锛屽彲閰嶇疆榧犳爣鎮诞鏃剁殑鏄剧ず淇℃伅銆�">
                   <Icon type="question-circle" />
@@ -80,7 +118,7 @@
                   </Radio.Group>
                 )}
               </Form.Item>
-            </Col>
+            </Col> : null}
             {this.state.type === 'multi' ? <Col span={12}>
               <Form.Item label={
                 <Tooltip placement="topLeft" title="澶嶅紡鍗$墖榧犳爣鎮诞淇℃伅鐨勫姩鐢绘晥鏋溿��">
@@ -91,9 +129,120 @@
                 {getFieldDecorator('transform', {
                   initialValue: setting.transform || 'up'
                 })(
+                  <Select>
+                    <Select.Option value="up">鍚戜笂婊戝姩</Select.Option>
+                    <Select.Option value="down">鍚戜笅婊戝姩</Select.Option>
+                    <Select.Option value="left">鍚戝乏婊戝姩</Select.Option>
+                    <Select.Option value="right">鍚戝彸婊戝姩</Select.Option>
+                    <Select.Option value="scale">缂╂斁</Select.Option>
+                    <Select.Option value="opacity">閫忔槑搴�</Select.Option>
+                    <Select.Option value="rotateX">绾靛悜灞曞紑</Select.Option>
+                    <Select.Option value="rotateY">妯悜灞曞紑</Select.Option>
+                  </Select>
+                )}
+              </Form.Item>
+            </Col> : null}
+            {cards.subtype === 'propcard' ? <Col span={12}>
+              <Form.Item label={
+                <Tooltip placement="topLeft" title="鍗$墖鐐瑰嚮鏃讹紝鍚戝叾浠栫粍浠朵紶閫掔殑BID鍊笺��">
+                  <Icon type="question-circle" />
+                  涓婚敭鍊�
+                </Tooltip>
+              }>
+                {getFieldDecorator('primaryId', {
+                  initialValue: setting.primaryId || ''
+                })(<Input placeholder="" autoComplete="off" onPressEnter={this.handleSubmit}/>)}
+              </Form.Item>
+            </Col> : null}
+            <Col span={12}>
+              <Form.Item label={
+                <Tooltip placement="topLeft" title="褰撻�夋嫨瑙﹀彂鎸夐挳鏃讹紝鍙湁褰撳崱鐗囦腑鍙瓨鍦ㄤ竴涓寜閽椂鏈夋晥銆�">
+                  <Icon type="question-circle" />
+                  鐐瑰嚮浜嬩欢
+                </Tooltip>
+              }>
+                {getFieldDecorator('click', {
+                  initialValue: click
+                })(
+                  <Radio.Group style={{whiteSpace: 'nowrap'}} onChange={(e) => this.setState({click: e.target.value})}>
+                    <Radio value="">鏃�</Radio>
+                    <Radio value="menu">鑿滃崟</Radio>
+                    <Radio value="link">閾炬帴</Radio>
+                    <Radio value="button">鎸夐挳</Radio>
+                  </Radio.Group>
+                )}
+              </Form.Item>
+            </Col>
+            {!appType && click === 'menu' ? <Col span={12}>
+              <Form.Item label="鑿滃崟">
+                {getFieldDecorator('menu', {
+                  initialValue: setting.menu || [],
+                  rules: [
+                    {
+                      required: true,
+                      message: this.props.dict['form.required.select'] + '鑿滃崟!'
+                    }
+                  ]
+                })(
+                  <Cascader options={menulist} placeholder=""/>
+                )}
+              </Form.Item>
+            </Col> : null}
+            {appType && click === 'menu' ? <Col span={12}>
+              <Form.Item label="鍏宠仈鑿滃崟">
+                {getFieldDecorator('menu', {
+                  initialValue: setting.menu || '',
+                  rules: [
+                    {
+                      required: true,
+                      message: this.props.dict['form.required.select'] + '鍏宠仈鑿滃崟!'
+                    }
+                  ]
+                })(
+                  <Select
+                    showSearch
+                    filterOption={(input, option) => option.props.children.toLowerCase().indexOf(input.toLowerCase()) >= 0}
+                  >
+                    {menulist.map(option =>
+                      <Select.Option key={option.MenuID} value={option.MenuID}>{option.MenuName}</Select.Option>
+                    )}
+                  </Select>
+                )}
+              </Form.Item>
+            </Col> : null}
+            {click === 'link' ? <Col span={24} className="textarea">
+              <Form.Item label="閾炬帴">
+                {getFieldDecorator('linkurl', {
+                  initialValue: setting.linkurl || '',
+                  rules: [
+                    {
+                      required: true,
+                      message: this.props.dict['form.required.input'] + '閾炬帴!'
+                    }
+                  ]
+                })( <TextArea rows={2}/> )}
+              </Form.Item>
+            </Col> : null}
+            {appType === 'pc' && click !== '' && click !== 'button' ? <Col span={12}>
+              <Form.Item label="鎵撳紑鏂瑰紡">
+                {getFieldDecorator('open', {
+                  initialValue: setting.open || 'blank'
+                })(
                   <Radio.Group>
-                    <Radio value="up">鍚戜笂婊戝姩</Radio>
-                    <Radio value="down">鍚戜笅婊戝姩</Radio>
+                    <Radio value="blank">鏂扮獥鍙�</Radio>
+                    <Radio value="self">褰撳墠绐楀彛</Radio>
+                  </Radio.Group>
+                )}
+              </Form.Item>
+            </Col> : null}
+            {click !== '' && click !== 'button' ? <Col span={12}>
+              <Form.Item label="鍙傛暟鎷兼帴">
+                {getFieldDecorator('joint', {
+                  initialValue: setting.joint || 'true'
+                })(
+                  <Radio.Group>
+                    <Radio value="true">鏄�</Radio>
+                    <Radio value="false">鍚�</Radio>
                   </Radio.Group>
                 )}
               </Form.Item>

--
Gitblit v1.8.0