From 0847aeed380492bafaf5b27a49ac4e4b77a819b1 Mon Sep 17 00:00:00 2001 From: king <18310653075@163.com> Date: 星期四, 08 七月 2021 16:39:09 +0800 Subject: [PATCH] 2021-07-08 --- src/mob/searchconfig/index.jsx | 87 ++++++++++++++++++++++++++++++++++++++++--- 1 files changed, 81 insertions(+), 6 deletions(-) diff --git a/src/mob/searchconfig/index.jsx b/src/mob/searchconfig/index.jsx index 2d7aa16..74d36b4 100644 --- a/src/mob/searchconfig/index.jsx +++ b/src/mob/searchconfig/index.jsx @@ -148,20 +148,49 @@ * 3銆侀�氳繃loading鍒锋柊 */ handleSubmit = () => { + const { config } = this.state this.formRef.handleConfirm().then(res => { let _group = fromJS(this.state.group).toJS() - let fieldrepet = false // 瀛楁閲嶅 - + _group.fields = _group.fields.map(item => { - if (item.uuid !== res.uuid && item.field.toLowerCase() === res.field.toLowerCase()) { - fieldrepet = true - } - if (item.uuid === res.uuid) { return res } else { return item } + }) + + let fieldrepet = false // 瀛楁閲嶅 + let lowerField = res.field.toLowerCase() + + if (config.setting.field) { + let m = config.setting.field.toLowerCase().split(',') + if (m.includes(lowerField)) { + fieldrepet = true + } + } + config.fields.forEach(item => { + if (item.uuid === res.uuid) return + if (res.type === 'date' && item.type === 'date') return + if (item.field.toLowerCase() === lowerField) { + fieldrepet = true + } + }) + + config.groups.forEach(group => { + if (group.setting.field) { + let m = group.setting.field.toLowerCase().split(',') + if (m.includes(lowerField)) { + fieldrepet = true + } + } + group.fields.forEach(item => { + if (item.uuid === res.uuid) return + if (res.type === 'date' && item.type === 'date') return + if (item.field.toLowerCase() === lowerField) { + fieldrepet = true + } + }) }) if (fieldrepet) { @@ -285,8 +314,54 @@ * @description 淇濆瓨鍒嗙粍璁剧疆 */ settingSave = () => { + const { config } = this.state this.settingRef.handleConfirm().then(res => { let _group = {...this.state.group, setting: res} + let lowers = _group.setting.field ? _group.setting.field.toLowerCase() : '' + + if (lowers) { + let fieldrepet = false // 瀛楁閲嶅 + lowers = lowers.split(',') + let length = lowers.length + + if (_group.floor !== 1 && config.setting.field) { + let m = config.setting.field.toLowerCase().split(',') + if (Array.from(new Set([...m, ...lowers])).length < m.length + length) { + fieldrepet = true + } + } + + config.fields.forEach(item => { + if (lowers.includes(item.field.toLowerCase())) { + fieldrepet = true + } + }) + + config.groups.forEach(group => { + if (_group.uuid === group.uuid) return + if (group.setting.field) { + let m = group.setting.field.toLowerCase().split(',') + if (Array.from(new Set([...m, ...lowers])).length < m.length + length) { + fieldrepet = true + } + } + group.fields.forEach(item => { + if (lowers.includes(item.field.toLowerCase())) { + fieldrepet = true + } + }) + }) + + if (fieldrepet) { + notification.warning({ + top: 92, + message: '瀛楁宸插瓨鍦紒', + duration: 10 + }) + return + } + } + this.setState({ group: _group, settingVisible: false -- Gitblit v1.8.0