From a757b75163d77acc5111637fbe20ec61d895a72b Mon Sep 17 00:00:00 2001 From: king <18310653075@163.com> Date: 星期三, 11 八月 2021 23:15:29 +0800 Subject: [PATCH] 2021-08-11 --- src/pc/components/login/wrapsetting/settingform/index.jsx | 230 +++++++++++++++++++++++++++++++-------------------------- 1 files changed, 124 insertions(+), 106 deletions(-) diff --git a/src/pc/components/login/wrapsetting/settingform/index.jsx b/src/pc/components/login/wrapsetting/settingform/index.jsx index 08b58e2..0c32e57 100644 --- a/src/pc/components/login/wrapsetting/settingform/index.jsx +++ b/src/pc/components/login/wrapsetting/settingform/index.jsx @@ -1,23 +1,28 @@ import React, {Component} from 'react' import PropTypes from 'prop-types' -import { Form, Row, Col, Input, Radio, Tooltip, Icon, InputNumber, Select } from 'antd' +import { Form, Row, Col, Input, Tooltip, Icon, InputNumber, Select, Checkbox, notification, Radio } from 'antd' +import StyleInput from '@/menu/stylecontroller/styleInput' import './index.scss' class SettingForm extends Component { static propTpyes = { dict: PropTypes.object, // 瀛楀吀椤� - config: PropTypes.object, // 鍗$墖琛屼俊鎭� wrap: PropTypes.object, // 鏁版嵁婧愰厤缃� inputSubmit: PropTypes.func // 鍥炶溅浜嬩欢 } state = { - roleList: [] + roleList: [], + msgTemps: [], + appMenus: [], + link: this.props.wrap.link || 'menu' } UNSAFE_componentWillMount () { let roleList = sessionStorage.getItem('sysRoles') + let msgTemps = sessionStorage.getItem('msgTemplate') + if (roleList) { try { roleList = JSON.parse(roleList) @@ -28,7 +33,28 @@ roleList = [] } - this.setState({roleList}) + if (msgTemps) { + try { + msgTemps = JSON.parse(msgTemps) + } catch { + msgTemps = [] + } + } else { + msgTemps = [] + } + + let appMenus = sessionStorage.getItem('appMenus') + if (appMenus) { + try { + appMenus = JSON.parse(appMenus) + } catch { + appMenus = [] + } + } else { + appMenus = [] + } + + this.setState({roleList, msgTemps, appMenus}) } handleConfirm = () => { @@ -36,6 +62,14 @@ return new Promise((resolve, reject) => { this.props.form.validateFieldsAndScroll((err, values) => { if (!err) { + if (values.loginWays.includes('sms_vcode') && !values.tempId) { + notification.warning({ + top: 92, + message: '浣跨敤鐭俊楠岃瘉鐮佺櫥褰曟椂锛岄渶瑕侀�夋嫨鐭俊妯℃澘锛�', + duration: 5 + }) + return + } resolve(values) } else { reject(err) @@ -53,9 +87,9 @@ } render() { - const { wrap, config } = this.props + const { wrap } = this.props const { getFieldDecorator } = this.props.form - const { roleList } = this.state + const { roleList, msgTemps, appMenus, link } = this.state const formItemLayout = { labelCol: { @@ -73,13 +107,6 @@ <Form {...formItemLayout}> <Row gutter={24}> <Col span={12}> - <Form.Item label="鏍囬"> - {getFieldDecorator('title', { - initialValue: wrap.title || '' - })(<Input placeholder={''} autoComplete="off" onPressEnter={this.handleSubmit} />)} - </Form.Item> - </Col> - <Col span={12}> <Form.Item label={ <Tooltip placement="topLeft" title="鐢ㄤ簬缁勪欢闂寸殑鍖哄垎銆�"> <Icon type="question-circle" /> @@ -95,6 +122,27 @@ } ] })(<Input placeholder={''} autoComplete="off" onPressEnter={this.handleSubmit} />)} + </Form.Item> + </Col> + <Col span={12}> + <Form.Item label="鐧诲綍鏂瑰紡"> + {getFieldDecorator('loginWays', { + initialValue: wrap.loginWays || [], + rules: [ + { + required: true, + message: this.props.dict['form.required.select'] + '鐧诲綍鏂瑰紡!' + } + ] + })( + <Checkbox.Group + options={[ + { label: '璐﹀彿', value: 'uname_pwd' }, + { label: '鐭俊', value: 'sms_vcode' }, + { label: '鎵爜', value: 'app_scan' }, + ]} + /> + )} </Form.Item> </Col> <Col span={12}> @@ -115,117 +163,87 @@ })(<InputNumber min={1} max={24} precision={0} onPressEnter={this.handleSubmit} />)} </Form.Item> </Col> - {config.subtype === 'propcard' ? <Col span={12}> + <Col span={12}> <Form.Item label={ - <Tooltip placement="topLeft" title="閫夋嫨闈欐�佸�硷紝鏃犻渶閰嶇疆鏁版嵁婧愩��"> + <Tooltip placement="topLeft" title="鐧诲綍妗嗙殑鏈�澶у搴﹀�笺��"> <Icon type="question-circle" /> - 鏁版嵁鏉ユ簮 + 鏈�澶у搴� </Tooltip> }> - {getFieldDecorator('datatype', { - initialValue: wrap.datatype || 'dynamic' - })( - <Radio.Group> - <Radio value="dynamic">鍔ㄦ��</Radio> - <Radio value="static">闈欐��</Radio> - </Radio.Group> - )} + {getFieldDecorator('maxWidth', { + initialValue: wrap.maxWidth || '' + })(<InputNumber min={100} max={2000} precision={0} onPressEnter={this.handleSubmit} />)} </Form.Item> - </Col> : null} - {config.subtype === 'datacard' ? <Col span={12}> + </Col> + <Col span={12}> <Form.Item label={ - <Tooltip placement="topLeft" title="鏁版嵁婧愪腑閫夋嫨鍒嗛〉鏃舵湁鏁堛��"> - <Icon type="question-circle" /> - 鍒嗛〉椋庢牸 - </Tooltip> - }> - {getFieldDecorator('pagestyle', { - initialValue: wrap.pagestyle || 'page' - })( - <Radio.Group> - <Radio value="page">椤电爜</Radio> - <Radio value="switch">宸﹀彸鍒囨崲</Radio> - </Radio.Group> - )} - </Form.Item> - </Col> : null} - {config.subtype !== 'tablecard' ? <Col span={12}> - <Form.Item label="鍗$墖灞炴��"> - {getFieldDecorator('cardType', { - initialValue: wrap.cardType || '' - })( - <Radio.Group style={{whiteSpace: 'nowrap'}}> - <Radio key="" value=""> 涓嶅彲閫� </Radio> - <Radio key="radio" value={'radio'}> 鍗曢�� </Radio> - {config.subtype !== 'propcard' ? <Radio key="checkbox" value={'checkbox'}> 澶氶�� </Radio> : null} - </Radio.Group> - )} - </Form.Item> - </Col> : null} - {config.subtype !== 'tablecard' ? <Col span={12}> - <Form.Item label={ - <Tooltip placement="topLeft" title="璁剧疆涓哄眳涓榻愭垨鍙冲榻愶紝鍙湪鍗$墖涓�1琛屾椂鏈夋晥銆�"> - <Icon type="question-circle" /> - 鍗$墖鎺掑垪 - </Tooltip> - }> - {getFieldDecorator('cardFloat', { - initialValue: wrap.cardFloat || 'left' - })( - <Radio.Group style={{whiteSpace: 'nowrap'}}> - <Radio key="left" value="left"> 宸﹀榻� </Radio> - <Radio key="center" value="center"> 灞呬腑 </Radio> - <Radio key="right" value="right"> 鍙冲榻� </Radio> - </Radio.Group> - )} - </Form.Item> - </Col> : null} - {config.subtype !== 'tablecard' ? <Col span={12}> - <Form.Item label={ - <Tooltip placement="topLeft" title="榧犳爣鎮诞浜庡崱鐗囦笂鏂规椂锛屽崱鐗囨斁澶�1.05鍊嶃��"> - <Icon type="question-circle" /> - 鍗$墖鏀惧ぇ - </Tooltip> - }> - {getFieldDecorator('scale', { - initialValue: wrap.scale || 'false' - })( - <Radio.Group> - <Radio key="false" value="false"> 鍚� </Radio> - <Radio key="true" value="true"> 鏄� </Radio> - </Radio.Group> - )} - </Form.Item> - </Col> : null} - {config.subtype === 'tablecard' ? <Col span={12}> - <Form.Item label={ - <Tooltip placement="topLeft" title="琛ㄦ牸楂樺害锛岃秴鍑烘椂婊氬姩锛岄珮搴︿负绌烘椂鏍规嵁鍐呭鑷�傚簲銆�"> + <Tooltip placement="topLeft" title="缁勪欢鍗犵敤鐨勬渶灏忛珮搴︼紝鐢ㄤ簬椤甸潰甯冨眬銆�"> <Icon type="question-circle" /> 楂樺害 </Tooltip> }> {getFieldDecorator('height', { initialValue: wrap.height - })(<InputNumber min={100} max={2000} precision={0} onPressEnter={this.handleSubmit} />)} + })(<StyleInput options={['px', 'vh', 'vw', '%']}/>)} </Form.Item> - </Col> : null} - {config.subtype === 'propcard' ? <Col span={12}> - <Form.Item label={ - <Tooltip placement="topLeft" title="閫夋嫨绫诲瀷涓恒�婇〉鐪�/椤佃剼銆嬫椂锛屾墦鍗扮殑姣忛〉閲岄兘浼氬甫鏈夎缁勪欢銆�"> - <Icon type="question-circle" /> - 缁勪欢绫诲瀷 - </Tooltip> - }> - {getFieldDecorator('printType', { - initialValue: wrap.printType || 'content' + </Col> + <Col span={12}> + <Form.Item label="閾炬帴"> + {getFieldDecorator('link', { + initialValue: wrap.link || 'menu' })( - <Radio.Group> - <Radio value="content">鍐呭</Radio> - <Radio value="headerOrfooter">椤电湁/椤佃剼</Radio> + <Radio.Group onChange={(e) => this.setState({link: e.target.value})}> + <Radio key="menu" value="menu"> 鑿滃崟 </Radio> + <Radio key="linkmenu" value="linkmenu"> 鍏宠仈鑿滃崟 </Radio> </Radio.Group> )} </Form.Item> + </Col> + {link === 'linkmenu' ? <Col span={12}> + <Form.Item label="鍏宠仈鑿滃崟"> + {getFieldDecorator('linkmenu', { + initialValue: wrap.linkmenu || '', + rules: [ + { + required: true, + message: this.props.dict['form.required.select'] + '鑿滃崟!' + } + ] + })( + <Select + showSearch + filterOption={(input, option) => option.props.children.toLowerCase().indexOf(input.toLowerCase()) >= 0} + > + {appMenus.map(option => + <Select.Option key={option.MenuID} value={option.MenuID}>{option.MenuName}</Select.Option> + )} + </Select> + )} + </Form.Item> </Col> : null} + {/* $楠岃瘉鐮�$ $mob$ $send_type$ */} + <Col span={12}> + <Form.Item label={ + <Tooltip placement="topLeft" title="鐭俊妯℃澘鍙湪绠$悊绯荤粺 HS-濂囦簯鐭俊妯℃澘 澶勬坊鍔犮��"> + <Icon type="question-circle" /> + 鐭俊妯℃澘 + </Tooltip> + }> + {getFieldDecorator('tempId', { + initialValue: wrap.tempId || '' + })( + <Select + showSearch + allowClear + filterOption={(input, option) => option.props.children.toLowerCase().indexOf(input.toLowerCase()) >= 0} + > + {msgTemps.map(option => + <Select.Option key={option.ID} value={option.ID}>{option.SignName + ' - ' + option.TemplateCode}</Select.Option> + )} + </Select> + )} + </Form.Item> + </Col> <Col span={12}> <Form.Item label="榛戝悕鍗�"> {getFieldDecorator('blacklist', { -- Gitblit v1.8.0