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 |  145 +++++++++++++++++++++++++++++++++++++++++++++---
 1 files changed, 136 insertions(+), 9 deletions(-)

diff --git a/src/menu/components/card/cardcomponent/settingform/index.jsx b/src/menu/components/card/cardcomponent/settingform/index.jsx
index 6e52747..6424977 100644
--- a/src/menu/components/card/cardcomponent/settingform/index.jsx
+++ b/src/menu/components/card/cardcomponent/settingform/index.jsx
@@ -1,8 +1,10 @@
 import React, {Component} from 'react'
 import PropTypes from 'prop-types'
-import { Form, Row, Col, Radio, Tooltip, Icon, Input, 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 = {
@@ -13,7 +15,32 @@
   }
 
   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 = () => {
@@ -40,6 +67,7 @@
   render() {
     const { setting, cards } = this.props
     const { getFieldDecorator } = this.props.form
+    const { menulist, click, appType } = this.state
 
     const formItemLayout = {
       labelCol: {
@@ -53,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}>
@@ -74,7 +102,7 @@
                 })(<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" />
@@ -90,7 +118,7 @@
                   </Radio.Group>
                 )}
               </Form.Item>
-            </Col>
+            </Col> : null}
             {this.state.type === 'multi' ? <Col span={12}>
               <Form.Item label={
                 <Tooltip placement="topLeft" title="澶嶅紡鍗$墖榧犳爣鎮诞淇℃伅鐨勫姩鐢绘晥鏋溿��">
@@ -101,10 +129,16 @@
                 {getFieldDecorator('transform', {
                   initialValue: setting.transform || 'up'
                 })(
-                  <Radio.Group>
-                    <Radio value="up">鍚戜笂婊戝姩</Radio>
-                    <Radio value="down">鍚戜笅婊戝姩</Radio>
-                  </Radio.Group>
+                  <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}
@@ -120,6 +154,99 @@
                 })(<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="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>
+            </Col> : null}
           </Row>
         </Form>
       </div>

--
Gitblit v1.8.0