From 03a22ec6f9ad7303d10b4c65bb5bc6fa5cbd448a Mon Sep 17 00:00:00 2001 From: king <18310653075@163.com> Date: 星期六, 22 十月 2022 23:21:42 +0800 Subject: [PATCH] 2022-10-22 --- src/menu/datasource/index.jsx | 135 ++++++++++++++++++++------------------------ 1 files changed, 62 insertions(+), 73 deletions(-) diff --git a/src/menu/datasource/index.jsx b/src/menu/datasource/index.jsx index c0c34ad..569dbba 100644 --- a/src/menu/datasource/index.jsx +++ b/src/menu/datasource/index.jsx @@ -1,11 +1,11 @@ import React, {Component} from 'react' import PropTypes from 'prop-types' import { is, fromJS } from 'immutable' -import { Icon, Modal } from 'antd' +import { Modal } from 'antd' +import { SettingOutlined } from '@ant-design/icons' -import zhCN from '@/locales/zh-CN/model.js' -import enUS from '@/locales/en-US/model.js' import VerifyCard from './verifycard' +import MKEmitter from '@/utils/events.js' import './index.scss' class DataSource extends Component { @@ -15,7 +15,6 @@ } state = { - dict: sessionStorage.getItem('lang') !== 'en-US' ? zhCN : enUS, appType: sessionStorage.getItem('appType'), sourcelist: [], mainSearch: [], @@ -38,51 +37,30 @@ const { config } = this.props const { appType } = this.state + if (config.type === 'interface') { // 鍏叡鏁版嵁婧愪笉浣跨敤鎼滅储 + this.setState({visible: true}) + return + } + let search = [] let menu = fromJS(window.GLOB.customMenu).toJS() if (appType === 'mob') { let ms = null menu.components.forEach(item => { - if (item.type === 'topbar' && (item.wrap.type === 'search' || (item.wrap.type === 'navbar' && item.wrap.search === 'true'))) { + if (item.type === 'topbar' && item.wrap.type !== 'navbar' && item.search) { ms = item.search - } - }) - - if (config.floor > 1) { - let _search = null - let filterComponent = (box) => { - box.components.forEach(item => { - if (_search) return - - if (item.uuid === config.uuid) { - _search = box.slist.pop() - } else if (item.type === 'group') { - item.components.forEach(m => { - if (m.uuid !== config.uuid) return - _search = box.slist.pop() - }) - } else if (item.type === 'tabs') { - let able = item.setting.display === 'inline-block' && item.setting.position === 'top' - item.subtabs.forEach(tab => { - if (able && tab.hasSearch === 'icon' && tab.search) { - tab.slist = [...box.slist, tab.search] - } else { - tab.slist = [...box.slist] - } - - filterComponent(tab) - }) - } + } else if (item.type === 'search' && item.wrap.field) { + search.push({ + type: 'text', + label: item.wrap.label, + field: item.wrap.field, + match: item.wrap.match, + required: item.wrap.required, + value: item.wrap.initval || '' }) } - menu.slist = [] - filterComponent(menu) - - if (_search) { - ms = _search - } - } + }) if (ms) { if (ms.setting.type === 'search') { @@ -123,35 +101,33 @@ }) } } else { - if (config.floor > 1) { - let _search = null - let filterComponent = (box) => { - box.components.forEach(item => { - if (_search) return + let _search = null + let filterComponent = (box) => { + box.components.forEach(item => { + if (_search) return - if (item.type === 'search') { - box.slist = [...box.slist, item.search] - } else if (item.uuid === config.uuid) { + if (item.type === 'search') { + box.slist = [...box.slist, item.search] + } else if (item.uuid === config.uuid) { + _search = box.slist.pop() + } else if (item.type === 'group') { + item.components.forEach(m => { + if (m.uuid !== config.uuid) return _search = box.slist.pop() - } else if (item.type === 'group') { - item.components.forEach(m => { - if (m.uuid !== config.uuid) return - _search = box.slist.pop() - }) - } else if (item.type === 'tabs') { - item.subtabs.forEach(tab => { - tab.slist = [...box.slist] - filterComponent(tab) - }) - } - }) - } - menu.slist = [] - filterComponent(menu) + }) + } else if (item.type === 'tabs') { + item.subtabs.forEach(tab => { + tab.slist = [...box.slist] + filterComponent(tab) + }) + } + }) + } + menu.slist = [] + filterComponent(menu) - if (_search) { - search = _search - } + if (_search) { + search = _search } else { menu.components.forEach(item => { if (item.type !== 'search') return @@ -164,6 +140,8 @@ visible: true, mainSearch: search }) + + MKEmitter.emit('modalStatus', '鏁版嵁婧�') } verifySubmit = () => { @@ -209,12 +187,24 @@ } }) }) + } else { + res.scripts.forEach(item => { + if (item.status === 'false') return + + if (/exec\s/ig.test(item.sql)) { + maxScript = 1000 + } else if (item.sql.length > maxScript) { + maxScript = item.sql.length + } + }) } res.setting.maxScript = maxScript this.setState({loading: false, visible: false}) this.props.updateConfig({...config, ...res}) + + MKEmitter.emit('modalStatus', false) }, () => { this.setState({loading: false}) }) @@ -222,25 +212,24 @@ render () { const { config } = this.props - const { visible, dict, loading, mainSearch } = this.state + const { visible, loading, mainSearch } = this.state return ( <div className="model-datasource"> - <Icon type="setting" title="鏁版嵁婧�" onClick={() => this.editDataSource()} /> + <SettingOutlined title="鏁版嵁婧�" onClick={() => this.editDataSource()} /> <Modal - wrapClassName="popview-modal" - title={'鏁版嵁婧愰厤缃�'} + wrapClassName="mk-pop-modal" + title="" visible={visible} width={'75vw'} maskClosable={false} - okText={dict['model.submit']} + okText="鎻愪氦" onOk={this.verifySubmit} confirmLoading={loading} - onCancel={() => { this.setState({ visible: false }) }} + onCancel={() => { MKEmitter.emit('modalStatus', false);this.setState({ visible: false }) }} destroyOnClose > <VerifyCard - dict={dict} mainSearch={mainSearch} config={config} wrappedComponentRef={(inst) => this.verifyRef = inst} -- Gitblit v1.8.0