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