From 31ec63f0419895876cbaba99637a884a32d33d0d Mon Sep 17 00:00:00 2001 From: king <18310653075@163.com> Date: 星期三, 01 九月 2021 10:31:45 +0800 Subject: [PATCH] 2021-09-01 --- src/templates/sharecomponent/searchcomponent/searchform/index.jsx | 95 ++++++++++++++++++++++++++++++++++++++++++----- 1 files changed, 84 insertions(+), 11 deletions(-) diff --git a/src/templates/sharecomponent/searchcomponent/searchform/index.jsx b/src/templates/sharecomponent/searchcomponent/searchform/index.jsx index 4ea9001..377235b 100644 --- a/src/templates/sharecomponent/searchcomponent/searchform/index.jsx +++ b/src/templates/sharecomponent/searchcomponent/searchform/index.jsx @@ -87,7 +87,7 @@ ] const searchTypeOptions = { - text: ['label', 'field', 'initval', 'type', 'match', 'ratio', 'blacklist', 'required', 'Hide', 'labelShow', 'advanced'], + text: ['label', 'field', 'initval', 'type', 'match', 'ratio', 'blacklist', 'required', 'Hide', 'labelShow', 'inputType', 'advanced'], select: ['label', 'field', 'resourceType', 'initval', 'type', 'match', 'ratio', 'blacklist', 'required', 'Hide', 'labelShow', 'advanced', 'setAll'], multiselect: ['label', 'field', 'resourceType', 'initval', 'type', 'match', 'ratio', 'blacklist', 'required', 'Hide', 'labelShow', 'advanced'], link: ['label', 'field', 'resourceType', 'initval', 'type', 'linkField', 'match', 'ratio', 'blacklist', 'required', 'Hide', 'labelShow', 'advanced', 'setAll'], @@ -96,7 +96,8 @@ dateweek: ['label', 'field', 'initval', 'type', 'match', 'ratio', 'blacklist', 'required', 'Hide', 'labelShow', 'advanced'], datemonth: ['label', 'field', 'initval', 'type', 'match', 'ratio', 'blacklist', 'required', 'Hide', 'labelShow', 'advanced'], daterange: ['label', 'field', 'initval', 'type', 'match', 'ratio', 'blacklist', 'required', 'Hide', 'labelShow', 'advanced'], - group: ['label', 'type', 'field', 'datefield', 'initval', 'blacklist', 'ratio', 'items', 'required', 'transfer', 'labelShow'] + group: ['label', 'type', 'field', 'datefield', 'initval', 'blacklist', 'ratio', 'items', 'required', 'labelShow'], + range: ['label', 'type', 'field', 'initval', 'match', 'blacklist', 'Hide', 'required', 'maxValue', 'minValue', 'step', 'labelShow'] } class MainSearch extends Component { @@ -129,6 +130,7 @@ let resourceType = '' let display = '' let cFields = [] + let multiple = 'false' formlist.forEach(cell => { if (cell.key === 'type') { @@ -141,6 +143,8 @@ resourceType = cell.initVal } else if (cell.key === 'fields') { cFields = cell.initVal + } else if (cell.key === 'multiple') { + multiple = cell.initVal } }) @@ -163,7 +167,7 @@ } else if (form.key === 'match') { // 琛ㄥ崟涓哄尮閰嶅瓧娈垫椂锛屾牴鎹笉鍚岀殑绫诲瀷锛屾樉绀哄搴旂殑鍖归厤瑙勫垯 if (type === 'text') { form.options = matchReg.text - } else if (type === 'multiselect') { + } else if (type === 'multiselect' || (type === 'checkcard' && multiple === 'true')) { form.options = matchReg.multiselect } else if (type === 'select' || type === 'link' || type === 'checkcard') { form.options = matchReg.select @@ -171,12 +175,13 @@ form.options = matchReg.date } else if (type === 'datemonth') { form.options = matchReg.datemonth - } else if (type === 'dateweek' || type === 'daterange') { + } else if (type === 'dateweek' || type === 'daterange' || type === 'range') { form.options = matchReg.daterange } - } else if (form.key === 'field' && type === 'text') { + } else if (form.key === 'field' && (type === 'text' || type === 'select')) { form.tooltip = this.state.textTooltip } else if (form.key === 'field' && type === 'group') { + form.tooltip = '鏌ヨ鏁版嵁鏃讹紙鑷畾涔夎剼鏈垨缁熻鏁版嵁婧愶級锛岀被鍨嬪瓧娈靛皢鐢ㄤ綔鏇挎崲鑴氭湰涓殑 @瀛楁@ 锛岀被鍨嬪瓧娈靛搴斿�间负 {"鏃�": "day", "鍛�": "week", "鏈�": "month", "瀛�": "quarter", "骞�": "year", "鑷畾涔�": "customized"}銆�' form.label = dict['model.form.type'] + dict['model.form.field'] } form.hidden = !_options.includes(form.key) @@ -192,7 +197,7 @@ try { let _form = document.getElementById('label') _form.select() - } catch { + } catch (e) { console.warn('琛ㄥ崟focus澶辫触锛�') } } @@ -261,16 +266,17 @@ form.options = matchReg.date } else if (value === 'datemonth') { form.options = matchReg.datemonth - } else if (value === 'dateweek' || value === 'daterange') { + } else if (value === 'dateweek' || value === 'daterange' || value === 'range') { form.options = matchReg.daterange } matchs = form.options } else if (form.key === 'field') { form.tooltip = '' form.label = dict['model.form.field'] - if (value === 'text') { + if (value === 'text' || value === 'select') { form.tooltip = this.state.textTooltip } else if (value === 'group') { + form.tooltip = '鏌ヨ鏁版嵁鏃讹紙鑷畾涔夎剼鏈垨缁熻鏁版嵁婧愶級锛岀被鍨嬪瓧娈靛皢鐢ㄤ綔鏇挎崲鑴氭湰涓殑 @瀛楁@ 锛岀被鍨嬪瓧娈靛搴斿�间负 {"鏃�": "day", "鍛�": "week", "鏈�": "month", "瀛�": "quarter", "骞�": "year", "鑷畾涔�": "customized"}銆�' form.label = dict['model.form.type'] + dict['model.form.field'] } } @@ -283,6 +289,9 @@ } if (this.props.form.getFieldValue('match') !== undefined) { this.props.form.setFieldsValue({match: matchs[0].value}) + } + if (this.props.form.getFieldValue('multiple') !== undefined) { + this.props.form.setFieldsValue({multiple: 'false'}) } }) } @@ -314,6 +323,26 @@ form.hidden = !_options.includes(form.key) return form }) + }) + } else if (key === 'multiple') { + let matchs = [] + this.setState({ + formlist: this.state.formlist.map(form => { + if (form.key === 'match') { + if (value === 'true') { + form.options = matchReg.multiselect + } else { + form.options = matchReg.select + } + matchs = form.options + } + + return form + }) + }, () => { + if (this.props.form.getFieldValue('match') !== undefined) { + this.props.form.setFieldsValue({match: matchs[0].value}) + } }) } } @@ -365,7 +394,7 @@ const { getFieldDecorator } = this.props.form const fields = [] this.state.formlist.forEach((item, index) => { - if (item.hidden) return + if (item.hidden || item.forbid) return if (item.type === 'text') { // 鏂囨湰鎼滅储 let rules = [] @@ -415,14 +444,17 @@ </Tooltip> : item.label }> {getFieldDecorator(item.key, { - initialValue: item.initVal || 6, + initialValue: item.initVal, rules: [ { required: item.required, message: this.props.dict['form.required.input'] + item.label + '!' } ] - })(<InputNumber min={item.min} max={item.max} precision={0} onPressEnter={this.handleSubmit}/>)} + })(item.max ? + <InputNumber min={item.min} max={item.max} precision={0} onPressEnter={this.handleSubmit}/> : + <InputNumber onPressEnter={this.handleSubmit}/> + )} </Form.Item> </Col> ) @@ -624,6 +656,47 @@ values.options = [] } + if (values.type === 'range') { + let error = '' + if (values.maxValue <= values.minValue) { + error = '鏈�澶у�煎繀椤诲ぇ浜庢渶灏忓��' + } else if (values.step <= 0) { + error = '姝ラ暱蹇呴』澶т簬0' + } else { + let s = (values.maxValue - values.minValue) / values.step + if (s !== parseInt(s)) { + error = '姝ラ暱蹇呴』琚� (max - min) 鏁撮櫎' + } + } + + if (!error && values.initval) { + let vals = values.initval.split(',') + if (vals.length !== 2) { + error = '鍒濆鍊艰缃敊璇紒' + } else if (isNaN(parseFloat(vals[0])) || isNaN(parseFloat(vals[1]))) { + error = '鍒濆鍊艰缃敊璇紒' + } else { + let start = parseFloat(vals[0]) + let end = parseFloat(vals[1]) + let s = (values.maxValue - start) / values.step + let e = (values.maxValue - end) / values.step + if (start > end || start < values.minValue || end > values.maxValue) { + error = '鍒濆鍊艰缃敊璇紒' + } else if (s !== parseInt(s) || e !== parseInt(e)) { + error = '鍒濆鍊艰缃敊璇紒' + } + } + } + if (error) { + notification.warning({ + top: 92, + message: error, + duration: 5 + }) + return + } + } + if (isvalid) { ['linkField', 'valueField', 'valueText', 'orderBy'].forEach(item => { if (values[item]) { -- Gitblit v1.8.0