import React, {Component} from 'react'
|
import PropTypes from 'prop-types'
|
import { Form, Row, Col, Select, Radio, Input, Tooltip, Icon, notification } from 'antd'
|
|
import asyncComponent from '@/utils/asyncComponent'
|
import './index.scss'
|
|
const SourceComponent = asyncComponent(() => import('@/menu/components/share/sourcecomponent'))
|
|
class MainSearch extends Component {
|
static propTpyes = {
|
type: PropTypes.any, // 编辑类型
|
card: PropTypes.any, // 编辑应用
|
inputSubmit: PropTypes.func // input回车提交
|
}
|
|
state = {msgs: [], typename: 'mob', user_binding: []}
|
|
UNSAFE_componentWillMount() {
|
const { card } = this.props
|
let msgs = sessionStorage.getItem('msgTemplate')
|
let user_binding = []
|
let typename = 'mob'
|
|
if (card) {
|
typename = card.typename || 'mob'
|
user_binding = card.user_binding ? card.user_binding.split(',') : []
|
}
|
|
this.setState({msgs: JSON.parse(msgs), typename, user_binding})
|
}
|
|
/**
|
* @description 获取表单值
|
*/
|
handleConfirm = () => {
|
return new Promise(resolve => {
|
this.props.form.validateFieldsAndScroll((err, values) => {
|
if (!err) {
|
values.user_binding = values.user_binding ? values.user_binding.join(',') : ''
|
if (values.user_binding.indexOf('sms_vcode') > -1 && !values.sms_id) {
|
notification.warning({
|
top: 92,
|
message: '手机号绑定时,需要短信模板!',
|
duration: 5
|
})
|
return
|
}
|
resolve(values)
|
}
|
})
|
})
|
}
|
|
/**
|
* @description 回车提交
|
*/
|
handleSubmit = (e) => {
|
e.preventDefault()
|
this.props.inputSubmit()
|
}
|
|
render() {
|
const { card, type } = this.props
|
const { getFieldDecorator } = this.props.form
|
const { msgs, typename, user_binding } = this.state
|
const formItemLayout = {
|
labelCol: {
|
xs: { span: 24 },
|
sm: { span: 8 }
|
},
|
wrapperCol: {
|
xs: { span: 24 },
|
sm: { span: 16 }
|
}
|
}
|
|
return (
|
<Form {...formItemLayout} className="sub-app-edit-form">
|
<Row gutter={24}>
|
<Col span={12}>
|
<Form.Item label="应用类型">
|
{getFieldDecorator('typename', {
|
initialValue: typename
|
})(
|
<Select disabled={type === 'edit'} onChange={(val) => this.setState({typename: val})}>
|
<Select.Option value="mob">移动端(包括android、ios)</Select.Option>
|
<Select.Option value="pad">Pad端</Select.Option>
|
<Select.Option value="pc">PC端</Select.Option>
|
</Select>
|
)}
|
</Form.Item>
|
</Col>
|
<Col span={12}>
|
<Form.Item label="语言">
|
{getFieldDecorator('lang', {
|
initialValue: card ? card.lang || 'zh-CN' : 'zh-CN'
|
})(
|
<Radio.Group disabled={type === 'edit'}>
|
<Radio value="zh-CN">中文</Radio>
|
<Radio value="en-US">英文</Radio>
|
</Radio.Group>
|
)}
|
</Form.Item>
|
</Col>
|
{/* <Col span={12}>
|
<Form.Item label="登录">
|
{getFieldDecorator('login_types', {
|
initialValue: card ? card.login_types || 'true' : 'true'
|
})(
|
<Radio.Group>
|
<Radio value="true">需要</Radio>
|
<Radio value="false">不需要</Radio>
|
</Radio.Group>
|
)}
|
</Form.Item>
|
</Col> */}
|
<Col span={12}>
|
<Form.Item label="权限管理">
|
{getFieldDecorator('role_type', {
|
initialValue: card ? card.role_type || 'true' : 'true'
|
})(
|
<Radio.Group>
|
<Radio value="true">启用</Radio>
|
<Radio value="false">不启用</Radio>
|
</Radio.Group>
|
)}
|
</Form.Item>
|
</Col>
|
{typename !== 'pc' ? <Col span={12}>
|
<Form.Item label={
|
<Tooltip placement="topLeft" title="使用微信授权登录时,是否需要绑定用户。">
|
<Icon type="question-circle" />
|
用户绑定
|
</Tooltip>
|
}>
|
{getFieldDecorator('user_binding', {
|
initialValue: user_binding
|
})(
|
<Select mode="multiple">
|
<Select.Option value="uname_pwd">用户名</Select.Option>
|
<Select.Option value="sms_vcode">手机号</Select.Option>
|
</Select>
|
)}
|
</Form.Item>
|
</Col> : null}
|
{typename !== 'pc' ? <Col span={12}>
|
<Form.Item label={
|
<Tooltip placement="topLeft" title="短信模板可在管理系统 HS-奇云短信模板 处添加。">
|
<Icon type="question-circle" />
|
短信模板
|
</Tooltip>
|
}>
|
{getFieldDecorator('sms_id', {
|
initialValue: card ? card.sms_id || '' : ''
|
})(
|
<Select allowClear>
|
{msgs.map(option =>
|
<Select.Option key={option.ID} value={option.ID}>{option.SignName + ' - ' + option.TemplateCode}</Select.Option>
|
)}
|
</Select>
|
)}
|
</Form.Item>
|
</Col> : null}
|
<Col span={12}>
|
<Form.Item label="皮肤">
|
{getFieldDecorator('css', {
|
initialValue: card ? card.css : 'bg_black_style_blue'
|
})(
|
<Select>
|
<Select.Option value="bg_black_style_blue">蓝色</Select.Option>
|
<Select.Option value="bg_black_style_red">红色</Select.Option>
|
<Select.Option value="bg_black_style_orange_red">橙红色</Select.Option>
|
<Select.Option value="bg_black_style_orange">橙色</Select.Option>
|
<Select.Option value="bg_black_style_orange_yellow">橙黄色</Select.Option>
|
<Select.Option value="bg_black_style_yellow">黄色</Select.Option>
|
<Select.Option value="bg_black_style_yellow_green">黄绿色</Select.Option>
|
<Select.Option value="bg_black_style_green">绿色</Select.Option>
|
<Select.Option value="bg_black_style_cyan">青色</Select.Option>
|
<Select.Option value="bg_black_style_blue_purple">蓝紫色</Select.Option>
|
<Select.Option value="bg_black_style_purple">紫色</Select.Option>
|
<Select.Option value="bg_black_style_magenta">洋红色</Select.Option>
|
<Select.Option value="bg_black_style_grass_green">草绿色</Select.Option>
|
<Select.Option value="bg_black_style_deep_red">深红色</Select.Option>
|
</Select>
|
)}
|
</Form.Item>
|
</Col>
|
<Col span={12}>
|
<Form.Item label="标题">
|
{getFieldDecorator('title', {
|
initialValue: card ? card.title || '' : ''
|
})(<Input placeholder="" autoComplete="off" onPressEnter={this.handleSubmit} />)}
|
</Form.Item>
|
</Col>
|
<Col span={12}>
|
<Form.Item label="图标">
|
{getFieldDecorator('favicon', {
|
initialValue: card ? card.favicon : ''
|
})(
|
<SourceComponent type="picture" placement="right"/>
|
)}
|
</Form.Item>
|
</Col>
|
</Row>
|
</Form>
|
)
|
}
|
}
|
|
export default Form.create()(MainSearch)
|