From 71e3da644eca32a5aa40503e903efb0640748093 Mon Sep 17 00:00:00 2001 From: king <18310653075@163.com> Date: 星期五, 21 七月 2023 17:00:59 +0800 Subject: [PATCH] 2023-07-21 --- src/tabviews/custom/components/share/tabtransfer/index.jsx | 238 +++++++++++++++++++++++++++++----------------------------- 1 files changed, 119 insertions(+), 119 deletions(-) diff --git a/src/tabviews/custom/components/share/tabtransfer/index.jsx b/src/tabviews/custom/components/share/tabtransfer/index.jsx index 2e26fb1..8ef2320 100644 --- a/src/tabviews/custom/components/share/tabtransfer/index.jsx +++ b/src/tabviews/custom/components/share/tabtransfer/index.jsx @@ -1,7 +1,7 @@ import React, {Component} from 'react' import PropTypes from 'prop-types' -import { is, fromJS } from 'immutable' -import { Row, Col, Empty, notification } from 'antd' +import { fromJS } from 'immutable' +import { Row, Col, Empty, notification, Modal } from 'antd' import Api from '@/api' import asyncComponent from '@/utils/asyncComponent' @@ -9,7 +9,7 @@ getStructuredParams, getStructDefaultParam } from '@/utils/utils-datamanage.js' -import Utils from '@/utils/utils.js' +import MKEmitter from '@/utils/events.js' import './index.scss' // 閫氱敤缁勪欢 @@ -45,89 +45,80 @@ class TabTransfer extends Component { static propTpyes = { config: PropTypes.object, // 缁勪欢閰嶇疆淇℃伅 - mainSearch: PropTypes.any, // 鍏ㄥ眬鎼滅储鏉′欢 - } - - state = { - mainSearch: [], - self: false, - data: null } UNSAFE_componentWillMount () { - const { config, mainSearch } = this.props + let _config = fromJS(this.props.config).toJS() - // 鑾峰彇涓绘悳绱㈡潯浠� - let _mainSearch = [] - let self = false - config.components.forEach(component => { - if (component.type === 'search') { - self = true - _mainSearch = Utils.initMainSearch(component.search) + if (_config.type !== 'group') { + let params = [] + + _config.components = this.formatSetting(_config.components, params) + + if (params.length > 0) { + this.loadmaindata(params) } - }) - - if (!self) { - _mainSearch = fromJS(mainSearch).toJS() + } else { + let delay = 110 + _config.components.forEach(item => { + if (!item.setting || item.setting.interType !== 'system') return + if (!item.format) return + + item.setting.delay = delay + delay += 20 + }) } - let params = [] - let delay = 20 - config.components.forEach(item => { - if (item.type === 'tabs' || item.type === 'group') return + this.setState({ + config: _config + }) + } - if (!item.setting || item.setting.interType !== 'system') return - if (!item.format) return + formatSetting = (components, params) => { + let delay = 110 + return components.map(item => { + if (item.type === 'tabs') return item + if (item.type === 'group') { + item.components = this.formatSetting(item.components, params) + return item + } - if ((!item.pageable || (item.pageable && !item.setting.laypage)) && item.setting.onload === 'true' && item.setting.sync === 'true') { - let searchlist = [] - if (item.search && item.search.length > 0) { - searchlist = Utils.initMainSearch(item.search) - } + if (!item.setting || item.setting.interType !== 'system') return item + if (!item.format) return item + + if (item.setting.sync === 'true') { + let searchlist = item.$searches || [] + if (item.setting.useMSearch) { - let keys = searchlist.map(item => item.key) - _mainSearch.forEach(item => { - if (!keys.includes(item.key)) { - searchlist.push(item) - } + let mainSearch = window.GLOB.SearchBox.get(item.$searchId) + let keys = item.$s_keys || [] + mainSearch.forEach(item => { + if (keys.includes(item.key.toLowerCase())) return + + searchlist.push(item) }) } - if (searchlist.filter(cell => cell.required && cell.value === '').length > 0) { + if (item.$s_req && searchlist.filter(item => item.required && item.value === '').length > 0) { item.setting.sync = 'false' item.setting.onload = 'false' } else { params.push(getStructDefaultParam(item, searchlist, params.length === 0)) } - } else { - item.setting.sync = 'false' - item.setting.delay = delay - delay += 20 } + + item.setting.delay = delay + delay += 20 + + return item }) - - this.setState({mainSearch: _mainSearch, self}) - - if (params.length > 0) { - this.loadmaindata(params) - } - } - - UNSAFE_componentWillReceiveProps(nextProps) { - const { self } = this.state - - if (!self && nextProps.mainSearch && !is(fromJS(this.props.mainSearch), fromJS(nextProps.mainSearch))) { - this.setState({mainSearch: null}, () => { - this.setState({mainSearch: fromJS(nextProps.mainSearch).toJS()}) - }) - } } /** * @description 涓昏〃鏁版嵁鍔犺浇 */ loadmaindata = (params) => { - const { config } = this.props + const { config } = this.state let BID = '' let BData = window.GLOB.CacheData.get(config.$pageId) @@ -139,46 +130,49 @@ Api.genericInterface(param).then(result => { if (result.status) { - delete result.status - delete result.message - delete result.ErrMesg - delete result.ErrCode - - if (config.$cache) { - params.forEach((item) => { - let _data = result[item.name] || '' - if (_data && !Array.isArray(_data)) { - _data = [_data] - } - Api.writeCacheConfig(item.uuid, _data) - }) + if (result.message) { + if (result.ErrCode === 'Y') { + Modal.success({ + title: result.message + }) + } else if (result.ErrCode === 'S') { + notification.success({ + top: 92, + message: result.message, + duration: 2 + }) + } } - this.setState({ - data: result + params.forEach((item) => { + let _data = result[item.name] || '' + if (_data && !Array.isArray(_data)) { + _data = [_data] + } + window.GLOB.SyncData.set(item.name, _data) }) + + MKEmitter.emit('transferSyncData', config.uuid) } else { - this.setState({ - data: '' - }) - notification.error({ - top: 92, - message: result.message, - duration: 10 - }) + MKEmitter.emit('transferSyncData', config.uuid) + + if (!result.message) return + if (result.ErrCode === 'N') { + Modal.error({ + title: result.message, + }) + } else if (result.ErrCode !== '-2') { + notification.error({ + top: 92, + message: result.message, + duration: 10 + }) + } } }) } - resetSearch = (search) => { - this.setState({mainSearch: null}, () => { - this.setState({mainSearch: search}) - }) - } - getComponents = (components) => { - const { mainSearch, data } = this.state - return components.map(item => { let style = null @@ -191,49 +185,49 @@ if (item.type === 'card' && item.subtype === 'datacard') { return ( <Col span={item.width} style={style} key={item.uuid}> - <DataCard config={item} data={data} mainSearch={mainSearch}/> + <DataCard config={item}/> </Col> ) } else if (item.type === 'card' && item.subtype === 'propcard') { return ( <Col span={item.width} style={style} key={item.uuid}> - <PropCard config={item} data={data} mainSearch={mainSearch}/> + <PropCard config={item}/> </Col> ) } else if (item.type === 'table' && item.subtype === 'normaltable') { return ( <Col span={item.width} style={style} key={item.uuid}> - <NormalTable config={item} data={data} mainSearch={mainSearch}/> + <NormalTable config={item}/> </Col> ) } else if (item.type === 'card' && item.subtype === 'dualdatacard') { return ( <Col span={item.width} style={style} key={item.uuid}> - <DoubleDataCard config={item} mainSearch={mainSearch}/> + <DoubleDataCard config={item}/> </Col> ) } else if (item.type === 'bar' || item.type === 'line') { return ( <Col span={item.width} style={style} key={item.uuid}> - <AntvBarAndLine data={data} config={item} mainSearch={mainSearch}/> + <AntvBarAndLine config={item}/> </Col> ) } else if (item.type === 'pie') { return ( <Col span={item.width} style={style} key={item.uuid}> - <AntvPie data={data} config={item} mainSearch={mainSearch}/> + <AntvPie config={item}/> </Col> ) } else if (item.type === 'dashboard') { return ( <Col span={item.width} style={style} key={item.uuid}> - <AntvDashboard config={item} data={data} mainSearch={mainSearch}/> + <AntvDashboard config={item}/> </Col> ) } else if (item.type === 'scatter') { return ( <Col span={item.width} style={style} key={item.uuid}> - <AntvScatter config={item} data={data} mainSearch={mainSearch}/> + <AntvScatter config={item}/> </Col> ) } else if (item.type === 'search') { @@ -244,115 +238,115 @@ } return ( <Col span={item.width} style={style} key={item.uuid}> - <MainSearch config={item} BID={BID} refreshdata={this.resetSearch} /> + <MainSearch config={item} BID={BID}/> </Col> ) } else if (item.type === 'tabs') { return ( <Col span={item.width} style={style} key={item.uuid}> - <AntvTabs config={item} mainSearch={mainSearch}/> + <AntvTabs config={item}/> </Col> ) } else if (item.type === 'carousel' && item.subtype === 'datacard') { return ( <Col span={item.width} style={style} key={item.uuid}> - <CarouselDataCard config={item} data={data} mainSearch={mainSearch}/> + <CarouselDataCard config={item}/> </Col> ) } else if (item.type === 'carousel' && item.subtype === 'propcard') { return ( <Col span={item.width} style={style} key={item.uuid}> - <CarouselPropCard config={item} data={data} mainSearch={mainSearch}/> + <CarouselPropCard config={item}/> </Col> ) } else if (item.type === 'card' && item.subtype === 'tablecard') { return ( <Col span={item.width} style={style} key={item.uuid}> - <TableCard config={item} data={data} mainSearch={mainSearch}/> + <TableCard config={item}/> </Col> ) } else if (item.type === 'table' && item.subtype === 'basetable') { return ( <Col span={item.width} style={style} key={item.uuid}> - <MkBaseTable config={item} data={data} mainSearch={mainSearch}/> + <MkBaseTable config={item}/> </Col> ) } else if (item.type === 'table' && item.subtype === 'editable') { return ( <Col span={item.width} style={style} key={item.uuid}> - <EditTable config={item} mainSearch={mainSearch}/> + <EditTable config={item}/> </Col> ) } else if (item.type === 'group' && item.subtype === 'normalgroup') { return ( <Col span={item.width} style={style} key={item.uuid}> - <NormalGroup config={item} mainSearch={mainSearch}/> + <NormalGroup config={item}/> </Col> ) } else if (item.type === 'form' && item.subtype === 'simpleform') { return ( <Col span={item.width} style={style} key={item.uuid}> - <SimpleForm config={item} data={data} mainSearch={mainSearch}/> + <SimpleForm config={item}/> </Col> ) } else if (item.type === 'form' && item.subtype === 'stepform') { return ( <Col span={item.width} style={style} key={item.uuid}> - <StepForm config={item} data={data} mainSearch={mainSearch}/> + <StepForm config={item}/> </Col> ) } else if (item.type === 'form' && item.subtype === 'tabform') { return ( <Col span={item.width} style={style} key={item.uuid}> - <TabForm config={item} data={data} mainSearch={mainSearch}/> + <TabForm config={item}/> </Col> ) } else if (item.type === 'tree') { return ( <Col span={item.width} style={style} key={item.uuid}> - <NormalTree config={item} data={data} mainSearch={mainSearch}/> + <NormalTree config={item}/> </Col> ) } else if (item.type === 'calendar') { return ( <Col span={item.width} style={style} key={item.uuid}> - <Calendar config={item} mainSearch={mainSearch}/> + <Calendar config={item}/> </Col> ) } else if (item.type === 'editor') { return ( <Col span={item.width} style={style} key={item.uuid}> - <BraftEditor config={item} data={data} mainSearch={mainSearch}/> + <BraftEditor config={item}/> </Col> ) } else if (item.type === 'code') { return ( <Col span={item.width} style={style} key={item.uuid}> - <SandBox config={item} data={data} mainSearch={mainSearch}/> + <SandBox config={item}/> </Col> ) } else if (item.type === 'balcony') { return ( <Col span={item.width} style={style} key={item.uuid}> - <Balcony config={item} data={data}/> + <Balcony config={item}/> </Col> ) } else if (item.type === 'timeline') { return ( <Col span={item.width} style={style} key={item.uuid}> - <TimeLine config={item} data={data} mainSearch={mainSearch}/> + <TimeLine config={item}/> </Col> ) } else if (item.type === 'chart') { return ( <Col span={item.width} style={style} key={item.uuid}> - <CustomChart config={item} data={data} mainSearch={mainSearch}/> + <CustomChart config={item}/> </Col> ) } else if (item.type === 'antvG6') { return ( <Col span={item.width} style={style} key={item.uuid}> - <AntvG6 config={item} data={data} mainSearch={mainSearch}/> + <AntvG6 config={item}/> </Col> ) } else if (item.type === 'antvX6') { @@ -368,10 +362,16 @@ } render() { - const { config } = this.props + const { config } = this.state if (!config || !config.components || config.components.length === 0) return (<Empty description={false} />) + if (config.type === 'group') { + return ( + <Row className="component-wrap">{this.getComponents(config.components)}</Row> + ) + } + return ( <Row className="component-wrap" id={'anchor' + config.uuid} gutter={8}>{this.getComponents(config.components)}</Row> ) -- Gitblit v1.8.0