From ab60d53b67f802878662aaa5a5b52580cca421b8 Mon Sep 17 00:00:00 2001 From: king <18310653075@163.com> Date: 星期六, 26 九月 2020 08:52:46 +0800 Subject: [PATCH] 2020-09-26 --- src/menu/components/card/cardcellcomponent/elementform/index.jsx | 77 +++++++++++++++++++++++++++++++++----- 1 files changed, 67 insertions(+), 10 deletions(-) diff --git a/src/menu/components/card/cardcellcomponent/elementform/index.jsx b/src/menu/components/card/cardcellcomponent/elementform/index.jsx index 0107902..e3f6386 100644 --- a/src/menu/components/card/cardcellcomponent/elementform/index.jsx +++ b/src/menu/components/card/cardcellcomponent/elementform/index.jsx @@ -1,19 +1,20 @@ import React, {Component} from 'react' import PropTypes from 'prop-types' import { fromJS } from 'immutable' -import { Form, Row, Col, Input, Select, Icon, Radio, Tooltip, InputNumber } from 'antd' -import { formRule } from '@/utils/option.js' +import { Form, Row, Col, Input, Select, Icon, Radio, Tooltip, InputNumber, notification } from 'antd' +import { formRule } from '@/utils/option.js' +import FileUpload from '@/tabviews/zshare/fileupload' import ColorSketch from '@/mob/colorsketch' import './index.scss' const cardTypeOptions = { text: ['eleType', 'datatype', 'value', 'format', 'fontSize', 'fontWeight', 'width', 'height', 'color', 'align', 'padding', 'prefix', 'postfix'], number: ['eleType', 'datatype', 'value', 'format', 'fontSize', 'fontWeight', 'width', 'height', 'color', 'align', 'padding', 'prefix', 'postfix'], - picture: ['eleType', 'datatype', 'width', 'lenWidRadio', 'radius', 'padding'], + picture: ['eleType', 'datatype', 'width', 'lenWidRadio', 'radius', 'padding', 'url'], icon: ['eleType', 'icon', 'fontSize', 'width', 'height', 'color', 'align', 'padding', 'tooltip'], - slider: ['eleType', 'field', 'width', 'sildercolor', 'padding'], - splitline: ['eleType', 'color', 'padding'], + slider: ['eleType', 'field', 'width', 'color', 'padding', 'maxValue'], + splitline: ['eleType', 'color', 'width', 'padding'], } class MainSearch extends Component { @@ -92,6 +93,7 @@ let _formlist = this.state.formlist.map(item => { item.hidden = !_options.includes(item.key) + if (item.key === 'field') { item.options = [] config.columns.forEach(col => { @@ -116,10 +118,10 @@ eleType: value, formlist: _formlist }, () => { - if (value === 'slider' || value === 'splitline') { - if (this.props.form.getFieldValue('width') !== undefined) { - this.props.form.setFieldsValue({width: 24}) - } + if (value === 'slider') { + this.props.form.setFieldsValue({width: 24, color: '#1890ff'}) + } else if (value === 'splitline') { + this.props.form.setFieldsValue({width: 24, color: '#e8e8e8'}) } }) } else if (key === 'field') { @@ -135,7 +137,9 @@ if (key === 'datatype') { let _options = this.getOptions(eleType, value) + this.setState({ + datatype: value, formlist: this.state.formlist.map(item => { item.hidden = !_options.includes(item.key) @@ -212,7 +216,7 @@ message: this.props.dict['form.required.input'] + item.label + '!' } ] - })(<InputNumber min={0} max={10000} precision={0} />)} + })(<InputNumber min={item.min || 0} max={item.max || 10000} precision={item.precision || 0} />)} </Form.Item> </Col> ) @@ -294,6 +298,35 @@ </Form.Item> </Col> ) + } else if (item.type === 'file') { + let filelist = [] + if (item.initVal) { + filelist = [{ + uid: `1`, + name: item.initVal.slice(item.initVal.lastIndexOf('/') + 1), + status: 'done', + url: item.initVal, + origin: true + }] + } + + fields.push( + <Col span={12} key={index}> + <Form.Item label={item.label}> + {getFieldDecorator(item.key, { + initialValue: filelist, + rules: [ + { + required: !!item.required, + message: this.props.dict['form.required.select'] + item.label + '!' + } + ] + })( + <FileUpload maxFile={item.maxfile} fileType={'text'} /> + )} + </Form.Item> + </Col> + ) } }) return fields @@ -306,6 +339,30 @@ if (!err) { values.uuid = this.props.card.uuid values.marks = this.props.card.marks || null + + if (values.url) { + if (values.url.length > 0) { + if (values.url[0].origin && values.url[0].url) { + values.url = values.url[0].url + } else if (!values.url[0].origin && values.url[0].status === 'done' && values.url[0].response) { + values.url = values.url[0].response + } else { + values.url = '' + } + } else { + values.url = '' + } + } + + if (values.eleType === 'picture' && values.datatype === 'static' && !values.url) { + notification.warning({ + top: 92, + message: '灏氭湭娣诲姞鍥剧墖鎴栧浘鐗囦笂浼犲け璐ワ紝璇烽噸鏂版坊鍔狅紒', + duration: 5 + }) + return + } + resolve(values) } else { reject(err) -- Gitblit v1.8.0