From 92afa84b91a58ca90327fab62f158d6a40cb01d5 Mon Sep 17 00:00:00 2001 From: king <18310653075@163.com> Date: 星期三, 05 二月 2025 22:07:04 +0800 Subject: [PATCH] 2025-02-05 --- src/tabviews/custom/components/card/cardcellList/index.jsx | 4 src/views/menudesign/popview/index.jsx | 2 public/manifest.json | 2 src/views/pcdesign/index.jsx | 4 + src/menu/normalCopy/index.scss | 21 +++++++ src/views/mobdesign/popview/index.jsx | 2 src/menu/components/card/cardcellcomponent/dragaction/index.jsx | 2 src/menu/normalCopy/index.jsx | 33 +++++++++++ src/mob/components/formdragelement/index.jsx | 12 ++- src/templates/sharecomponent/searchcomponent/dragsearch/index.jsx | 12 ++- src/views/tabledesign/index.jsx | 6 + src/menu/modalconfig/index.jsx | 23 +++++-- src/templates/modalconfig/dragelement/index.jsx | 16 +++-- src/mob/modalconfig/index.jsx | 2 src/assets/css/design.scss | 8 ++ src/tabviews/zshare/actionList/normalbutton/index.jsx | 4 src/views/mobdesign/index.jsx | 6 + src/views/menudesign/index.jsx | 4 + src/views/tabledesign/popview/index.jsx | 2 src/menu/normalCss/index.scss | 1 20 files changed, 131 insertions(+), 35 deletions(-) diff --git a/public/manifest.json b/public/manifest.json index dc55290..9376b3c 100644 --- a/public/manifest.json +++ b/public/manifest.json @@ -6,5 +6,5 @@ "display": "standalone", "theme_color": "#000000", "background_color": "#ffffff", - "mk_version": "20250120" + "mk_version": "20250205" } diff --git a/src/assets/css/design.scss b/src/assets/css/design.scss index 2819b7c..1c2be11 100644 --- a/src/assets/css/design.scss +++ b/src/assets/css/design.scss @@ -166,13 +166,17 @@ border-radius: 0px; border: none; border-bottom: 1px solid #e8e8e8!important; - color: rgba(0, 0, 0, 0.85); + color: #26C281; .anticon { display: none; } } button:hover { - color: #1890ff; + color: #26C281; } } + +.menu-setting .ant-typography-copy { + margin-left: 0px; +} diff --git a/src/menu/components/card/cardcellcomponent/dragaction/index.jsx b/src/menu/components/card/cardcellcomponent/dragaction/index.jsx index e3c1ff9..487ccc2 100644 --- a/src/menu/components/card/cardcellcomponent/dragaction/index.jsx +++ b/src/menu/components/card/cardcellcomponent/dragaction/index.jsx @@ -75,7 +75,7 @@ message.warning('澶嶅埗澶辫触銆�') } - if (card.eleType !== 'button') { + if (card.eleType !== 'button' && !window.GLOB.CopyOnly) { _cards.push(copycard) handleList(_cards) diff --git a/src/menu/modalconfig/index.jsx b/src/menu/modalconfig/index.jsx index 884b633..26c3606 100644 --- a/src/menu/modalconfig/index.jsx +++ b/src/menu/modalconfig/index.jsx @@ -19,6 +19,7 @@ const MkIcon = asyncComponent(() => import('@/components/mk-icon')) const TableComponent = asyncComponent(() => import('./tablecomponent')) +const NormalCopy = asyncComponent(() => import('@/menu/normalCopy')) const ModalForm = asyncComponent(() => import('@/templates/zshare/modalform')) const PasteForms = asyncComponent(() => import('@/menu/components/share/pasteforms')) const FormFork = asyncComponent(() => import('@/menu/modalconfig/formfork')) @@ -181,15 +182,21 @@ }) } - submitConfig = () => { + submitConfig = (type) => { const { config } = this.state - this.setState({originConfig: fromJS(config).toJS(), saving: true}) - this.props.handleSave(config) + if (type === 'cache') { + this.setState({originConfig: fromJS(config).toJS()}) + this.props.handleSave(config) - setTimeout(() => { - MKEmitter.emit('triggerMenuSave') - }, 100) + message.success(<span>琛ㄥ崟閰嶇疆宸蹭繚瀛樿嚦鏈湴锛�<span style={{color: 'red'}}>灏氭湭鎻愪氦鑷充簯绔�</span>锛夈��</span>) + } else { + this.setState({originConfig: fromJS(config).toJS(), saving: true}) + this.props.handleSave(config) + setTimeout(() => { + MKEmitter.emit('triggerMenuSave') + }, 100) + } } clearConfig = () => { @@ -378,6 +385,7 @@ <Collapse accordion defaultActiveKey="1" bordered={false}> <Panel header="鍩烘湰淇℃伅" key="0"> <TableComponent /> + <NormalCopy /> </Panel> <Panel header="琛ㄥ崟" key="1"> <div className="search-element"> @@ -392,8 +400,9 @@ <div className="setting"> <Card title="琛ㄥ崟閰嶇疆" bordered={false} extra={ <div> + <Button className="mk-border-green" onClick={() => this.submitConfig('cache')}>瀛樿崏绋�</Button> <PasteForms type="toolbar" config={config} update={this.pasteFields}/> - <Button type="primary" id="save-modal-config" loading={saving} onClick={this.submitConfig}>淇濆瓨</Button> + <Button type="primary" id="save-modal-config" loading={saving} onClick={() => this.submitConfig()}>淇濆瓨</Button> <Button disabled={saving} onClick={this.cancelConfig}>杩斿洖</Button> </div> } style={{ width: '100%' }}> diff --git a/src/menu/normalCopy/index.jsx b/src/menu/normalCopy/index.jsx new file mode 100644 index 0000000..97ca028 --- /dev/null +++ b/src/menu/normalCopy/index.jsx @@ -0,0 +1,33 @@ +import React, { Component } from 'react' +import { Radio } from 'antd' + +import './index.scss' + +class NormalCopy extends Component { + state = { + value: window.GLOB.CopyOnly === true ? 'true' : 'false' + } + + selectChange = (val) => { + if (val === 'true') { + window.GLOB.CopyOnly = true + } else { + window.GLOB.CopyOnly = false + } + } + + render() { + const { value } = this.state + + return ( + <div className="mk-normal-copy"> + 鍏冪礌澶嶅埗锛�<Radio.Group defaultValue={value} onChange={(e) => {this.selectChange(e.target.value)}}> + <Radio value="true">浠呭鍒�</Radio> + <Radio value="false">澶嶅埗+鑷</Radio> + </Radio.Group> + </div> + ) + } +} + +export default NormalCopy \ No newline at end of file diff --git a/src/menu/normalCopy/index.scss b/src/menu/normalCopy/index.scss new file mode 100644 index 0000000..d0c8024 --- /dev/null +++ b/src/menu/normalCopy/index.scss @@ -0,0 +1,21 @@ +.mk-normal-copy { + padding-left: 18px; + white-space: nowrap; + + .ant-radio-wrapper { + margin-right: 2px; + } +} +.model-tablename-manage-view + .mk-normal-copy { + margin-top: 15px; +} +.modal-form-board, .mob-form-board { + .mk-normal-copy { + padding-left: 0px; + + span.ant-radio + * { + padding-right: 2px; + padding-left: 2px; + } + } +} \ No newline at end of file diff --git a/src/menu/normalCss/index.scss b/src/menu/normalCss/index.scss index 872d481..35dc98a 100644 --- a/src/menu/normalCss/index.scss +++ b/src/menu/normalCss/index.scss @@ -1,5 +1,6 @@ .mk-normal-css { padding-left: 18px; + margin-bottom: 15px; .anticon-edit { color: #1890ff; diff --git a/src/mob/components/formdragelement/index.jsx b/src/mob/components/formdragelement/index.jsx index d25eeab..63cccb9 100644 --- a/src/mob/components/formdragelement/index.jsx +++ b/src/mob/components/formdragelement/index.jsx @@ -1,7 +1,7 @@ import React, { useState } from 'react' import { useDrop } from 'react-dnd' import { is, fromJS } from 'immutable' -import { Col } from 'antd' +import { Col, message } from 'antd' import update from 'immutability-helper' import Utils from '@/utils/utils.js' import Card from './card' @@ -72,11 +72,15 @@ oInput.style.display = 'none' document.body.removeChild(oInput) - const _cards = update(cards, { $splice: [[overIndex + 1, 0, _card]] }) + if (window.GLOB.CopyOnly) { + message.success('澶嶅埗鎴愬姛銆�') + } else { + const _cards = update(cards, { $splice: [[overIndex + 1, 0, _card]] }) - setCards(_cards) + setCards(_cards) - handleList(_cards, _card) + handleList(_cards, _card) + } } const [, drop] = useDrop({ diff --git a/src/mob/modalconfig/index.jsx b/src/mob/modalconfig/index.jsx index 0f75a32..7cbc35d 100644 --- a/src/mob/modalconfig/index.jsx +++ b/src/mob/modalconfig/index.jsx @@ -18,6 +18,7 @@ const { confirm } = Modal const TableComponent = asyncComponent(() => import('@/menu/modalconfig/tablecomponent')) const ModalForm = asyncComponent(() => import('@/templates/zshare/modalform')) +const NormalCopy = asyncComponent(() => import('@/menu/normalCopy')) const PasteForms = asyncComponent(() => import('@/menu/components/share/pasteforms')) const DragElement = asyncComponent(() => import('@/mob/components/formdragelement')) const FieldsComponent = asyncComponent(() => import('@/templates/sharecomponent/fieldscomponent')) @@ -339,6 +340,7 @@ <Collapse accordion defaultActiveKey="1" bordered={false}> <Panel header="鍩烘湰淇℃伅" key="0"> <TableComponent /> + <NormalCopy/> </Panel> <Panel header="琛ㄥ崟" key="1"> <div className="search-element"> diff --git a/src/tabviews/custom/components/card/cardcellList/index.jsx b/src/tabviews/custom/components/card/cardcellList/index.jsx index 6f543bb..b591266 100644 --- a/src/tabviews/custom/components/card/cardcellList/index.jsx +++ b/src/tabviews/custom/components/card/cardcellList/index.jsx @@ -225,7 +225,7 @@ // return // } - if (/^http.+(.txt|.doc|.docx|.pdf|.xlsx|.xls|.zip|.rar|.ppt)$/i.test(url) || card.linkType === 'download') { + if (/^(http|\/\/).+(.txt|.doc|.docx|.pdf|.xlsx|.xls|.zip|.rar|.ppt)$/i.test(url) || card.linkType === 'download') { let name = '' if (card.datatype === 'static') { name = card.value || '' @@ -451,7 +451,7 @@ url = data[card.linkurl] } - if (/^http.+(.txt|.doc|.docx|.pdf|.xlsx|.xls|.zip|.rar)$/i.test(url)) { + if (/^(http|\/\/).+(.txt|.doc|.docx|.pdf|.xlsx|.xls|.zip|.rar)$/i.test(url)) { if (/pdf$/i.test(url)) { val = <><img src="./media/pdf.png" className="file-image" alt=""/> {val}</> } else if (/(.doc|.docx)$/i.test(url)) { diff --git a/src/tabviews/zshare/actionList/normalbutton/index.jsx b/src/tabviews/zshare/actionList/normalbutton/index.jsx index 4873a40..279985e 100644 --- a/src/tabviews/zshare/actionList/normalbutton/index.jsx +++ b/src/tabviews/zshare/actionList/normalbutton/index.jsx @@ -2909,7 +2909,7 @@ res.message = res.message.replace(/\s*<<.*>>\s*/g, '') val = val ? val[0].replace(/<<|>>/g, '') : '' - if (/^http/.test(val)) { + if (/^(http|\/\/)/.test(val)) { let audio = document.createElement('audio') audio.src = val audio.play() @@ -3675,7 +3675,7 @@ res.message = res.message.replace(/\s*<<.*>>\s*/g, '') val = val ? val[0].replace(/<<|>>/g, '') : '' - if (/^http/.test(val)) { + if (/^(http|\/\/)/.test(val)) { let audio = document.createElement('audio') audio.src = val audio.play() diff --git a/src/templates/modalconfig/dragelement/index.jsx b/src/templates/modalconfig/dragelement/index.jsx index a7fbb53..eb3a147 100644 --- a/src/templates/modalconfig/dragelement/index.jsx +++ b/src/templates/modalconfig/dragelement/index.jsx @@ -2,7 +2,7 @@ import { useDrop } from 'react-dnd' import { is, fromJS } from 'immutable' import update from 'immutability-helper' -import { Col } from 'antd' +import { Col, message } from 'antd' import Utils from '@/utils/utils.js' import Card from './card' import './index.scss' @@ -72,11 +72,15 @@ oInput.style.display = 'none' document.body.removeChild(oInput) - const _cards = update(cards, { $splice: [[overIndex + 1, 0, _card]] }) - - setCards(_cards) - - handleList(_cards, _card) + if (window.GLOB.CopyOnly) { + message.success('澶嶅埗鎴愬姛銆�') + } else { + const _cards = update(cards, { $splice: [[overIndex + 1, 0, _card]] }) + + setCards(_cards) + + handleList(_cards, _card) + } } const [, drop] = useDrop({ diff --git a/src/templates/sharecomponent/searchcomponent/dragsearch/index.jsx b/src/templates/sharecomponent/searchcomponent/dragsearch/index.jsx index b604984..48c6568 100644 --- a/src/templates/sharecomponent/searchcomponent/dragsearch/index.jsx +++ b/src/templates/sharecomponent/searchcomponent/dragsearch/index.jsx @@ -2,7 +2,7 @@ import { useDrop } from 'react-dnd' import { is, fromJS } from 'immutable' import update from 'immutability-helper' -import { Col, Button, Popover } from 'antd' +import { Col, Button, Popover, message } from 'antd' import { EditOutlined } from '@ant-design/icons' import Utils from '@/utils/utils.js' @@ -68,11 +68,15 @@ document.body.removeChild(oInput) } - const { index: overIndex } = findCard(id) + if (window.GLOB.CopyOnly) { + message.success('澶嶅埗鎴愬姛銆�') + } else { + const { index: overIndex } = findCard(id) - const _cards = update(cards, { $splice: [[overIndex + 1, 0, copycard]] }) + const _cards = update(cards, { $splice: [[overIndex + 1, 0, copycard]] }) - handleList(_cards, copycard) + handleList(_cards, copycard) + } } const [, drop] = useDrop({ diff --git a/src/views/menudesign/index.jsx b/src/views/menudesign/index.jsx index b3a505a..f29c056 100644 --- a/src/views/menudesign/index.jsx +++ b/src/views/menudesign/index.jsx @@ -38,6 +38,7 @@ const LowerField = asyncComponent(() => import('@/menu/lowerField')) const Debug = asyncComponent(() => import('@/menu/debug')) const NormalCss = asyncComponent(() => import('@/menu/normalCss')) +const NormalCopy = asyncComponent(() => import('@/menu/normalCopy')) const Versions = asyncComponent(() => import('@/menu/versions')) const TableNodes = asyncComponent(() => import('@/menu/tablenodes')) const SysInterface = asyncComponent(() => import('@/menu/sysinterface')) @@ -1354,9 +1355,10 @@ /> {/* 琛ㄥ悕娣诲姞 */} <TableComponent config={config} updatetable={this.updateConfig}/> - <Paragraph style={{padding: '15px 0px 0px 37px'}} copyable={{ text: MenuId }}>鑿滃崟ID</Paragraph> + <Paragraph style={{padding: '15px 0px 0px 32px'}} copyable={{ text: MenuId }}>鑿滃崟ID锛�</Paragraph> <Paragraph style={{padding: '0px 0px 0px 18px'}}>鑿滃崟缁勪欢锛�<CopyOutlined onClick={this.copyMenu} style={{cursor: 'pointer', color: '#1890ff'}} /></Paragraph> <NormalCss config={config} updateConfig={this.updateConfig}/> + <NormalCopy /> </> : null} </Panel> {/* 缁勪欢娣诲姞 */} diff --git a/src/views/menudesign/popview/index.jsx b/src/views/menudesign/popview/index.jsx index dfdc154..fa28c25 100644 --- a/src/views/menudesign/popview/index.jsx +++ b/src/views/menudesign/popview/index.jsx @@ -15,6 +15,7 @@ const SourceWrap = asyncComponent(() => import('@/menu/modulesource')) const Modulecell = asyncComponent(() => import('@/menu/modulecell')) const MenuShell = asyncComponent(() => import('@/menu/menushell')) +const NormalCopy = asyncComponent(() => import('@/menu/normalCopy')) const ReplaceField = asyncComponent(() => import('@/menu/replaceField')) const BgController = asyncComponent(() => import('@/pc/bgcontroller')) const PasteController = asyncComponent(() => import('@/menu/pastecontroller')) @@ -260,6 +261,7 @@ <Panel header="鍩烘湰淇℃伅" key="basedata"> {/* 琛ㄥ悕娣诲姞 */} <TableComponent config={config} updatetable={this.updatetable}/> + <NormalCopy /> </Panel> {/* 缁勪欢娣诲姞 */} <Panel header="缁勪欢" key="component"> diff --git a/src/views/mobdesign/index.jsx b/src/views/mobdesign/index.jsx index 3643832..4867d20 100644 --- a/src/views/mobdesign/index.jsx +++ b/src/views/mobdesign/index.jsx @@ -36,6 +36,7 @@ const ReplaceField = asyncComponent(() => import('@/menu/replaceField')) const LowerField = asyncComponent(() => import('@/menu/lowerField')) const NormalCss = asyncComponent(() => import('@/menu/normalCss')) +const NormalCopy = asyncComponent(() => import('@/menu/normalCopy')) const SysInterface = asyncComponent(() => import('@/menu/sysinterface')) const Quotecomponent = asyncComponent(() => import('@/pc/quotecomponent')) const PasteController = asyncComponent(() => import('@/menu/pastecontroller')) @@ -2276,10 +2277,11 @@ <UrlFieldComponent config={config} updateConfig={this.updateConfig}/> {/* 琛ㄥ悕娣诲姞 */} <TableComponent config={config} updatetable={this.updateConfig}/> - <Paragraph style={{padding: '15px 0px 0px 37px'}} copyable={{ text: MenuId }}>鑿滃崟ID</Paragraph> - <Paragraph style={{padding: '0px 0px 0px 23px'}} copyable={{ text: `${window.GLOB.baseurl}mob/index.html#/index/${sessionStorage.getItem('kei_no')}/${sessionStorage.getItem('typename')}/${sessionStorage.getItem('lang')}/${MenuId}/@BID@` }}>鑿滃崟閾炬帴</Paragraph> + <Paragraph style={{padding: '15px 0px 0px 32px'}} copyable={{ text: MenuId }}>鑿滃崟ID锛�</Paragraph> + <Paragraph style={{padding: '0px 0px 0px 18px'}} copyable={{ text: `${window.GLOB.baseurl}mob/index.html#/index/${sessionStorage.getItem('kei_no')}/${sessionStorage.getItem('typename')}/${sessionStorage.getItem('lang')}/${MenuId}/@BID@` }}>鑿滃崟閾炬帴锛�</Paragraph> <Paragraph style={{padding: '0px 0px 0px 18px'}}>鑿滃崟缁勪欢锛�<CopyOutlined onClick={this.copyMenu} style={{cursor: 'pointer', color: '#1890ff'}} /></Paragraph> <NormalCss config={config} updateConfig={this.updateConfig}/> + <NormalCopy /> </> : null} </Panel> {/* 缁勪欢娣诲姞 */} diff --git a/src/views/mobdesign/popview/index.jsx b/src/views/mobdesign/popview/index.jsx index 3893894..c7ce41b 100644 --- a/src/views/mobdesign/popview/index.jsx +++ b/src/views/mobdesign/popview/index.jsx @@ -15,6 +15,7 @@ const MobShell = asyncComponent(() => import('@/mob/mobshell')) const SourceWrap = asyncComponent(() => import('@/mob/modulesource')) const Modulecell = asyncComponent(() => import('@/menu/modulecell')) +const NormalCopy = asyncComponent(() => import('@/menu/normalCopy')) const BgController = asyncComponent(() => import('@/pc/bgcontroller')) const ReplaceField = asyncComponent(() => import('@/menu/replaceField')) const PasteController = asyncComponent(() => import('@/menu/pastecontroller')) @@ -266,6 +267,7 @@ <Panel header="鍩烘湰淇℃伅" forceRender className="basedata" key="basedata"> {/* 琛ㄥ悕娣诲姞 */} <TableComponent config={config} updatetable={this.updateConfig}/> + <NormalCopy /> </Panel> {/* 缁勪欢娣诲姞 */} <Panel header="缁勪欢" className="component" key="component"> diff --git a/src/views/pcdesign/index.jsx b/src/views/pcdesign/index.jsx index 354400f..b4b6958 100644 --- a/src/views/pcdesign/index.jsx +++ b/src/views/pcdesign/index.jsx @@ -41,6 +41,7 @@ const ReplaceField = asyncComponent(() => import('@/menu/replaceField')) const LowerField = asyncComponent(() => import('@/menu/lowerField')) const NormalCss = asyncComponent(() => import('@/menu/normalCss')) +const NormalCopy = asyncComponent(() => import('@/menu/normalCopy')) const SysInterface = asyncComponent(() => import('@/menu/sysinterface')) const UrlFieldComponent = asyncComponent(() => import('@/menu/urlfieldcomponent')) const PictureController = asyncComponent(() => import('@/menu/picturecontroller')) @@ -1902,9 +1903,10 @@ <UrlFieldComponent config={config} updateConfig={this.updateConfig}/> {/* 琛ㄥ悕娣诲姞 */} <TableComponent config={config} updatetable={this.updateConfig}/> - <Paragraph style={{padding: '15px 0px 0px 37px'}} copyable={{ text: MenuId }}>鑿滃崟ID</Paragraph> + <Paragraph style={{padding: '15px 0px 0px 32px'}} copyable={{ text: MenuId }}>鑿滃崟ID锛�</Paragraph> <Paragraph style={{padding: '0px 0px 0px 18px'}}>鑿滃崟缁勪欢锛�<CopyOutlined onClick={this.copyMenu} style={{cursor: 'pointer', color: '#1890ff'}} /></Paragraph> <NormalCss config={config} updateConfig={this.updateConfig}/> + <NormalCopy /> </> : null} </Panel> {/* 缁勪欢娣诲姞 */} diff --git a/src/views/tabledesign/index.jsx b/src/views/tabledesign/index.jsx index 1e20f9d..122600d 100644 --- a/src/views/tabledesign/index.jsx +++ b/src/views/tabledesign/index.jsx @@ -38,6 +38,7 @@ const Versions = asyncComponent(() => import('@/menu/versions')) const Transfer = asyncComponent(() => import('@/menu/transfer')) const Unattended = asyncComponent(() => import('@/templates/zshare/unattended')) +const NormalCopy = asyncComponent(() => import('@/menu/normalCopy')) const UrlFieldComponent = asyncComponent(() => import('@/menu/urlfieldcomponent')) const ModalController = asyncComponent(() => import('@/menu/modalconfig/controller')) const TableComponent = asyncComponent(() => import('@/templates/sharecomponent/tablecomponent')) @@ -1067,8 +1068,9 @@ /> {/* 琛ㄥ悕娣诲姞 */} <TableComponent config={config} updatetable={this.updateConfig}/> - <Paragraph style={{padding: '15px 0px 0px 18px'}} copyable={{ text: MenuId }}>鑿滃崟ID</Paragraph> - <Paragraph style={{padding: '0px 0px 0px 5px'}}>鑿滃崟缁勪欢 <CopyOutlined onClick={this.copyMenu} style={{marginLeft: '3px', cursor: 'pointer', color: '#1890ff'}} /></Paragraph> + <Paragraph style={{padding: '15px 0px 0px 32px'}} copyable={{ text: MenuId }}>鑿滃崟ID锛�</Paragraph> + <Paragraph style={{padding: '0px 0px 0px 18px'}}>鑿滃崟缁勪欢锛�<CopyOutlined onClick={this.copyMenu} style={{cursor: 'pointer', color: '#1890ff'}} /></Paragraph> + <NormalCopy /> </> : null} </Panel> <Panel header="鎼滅储" key="search"> diff --git a/src/views/tabledesign/popview/index.jsx b/src/views/tabledesign/popview/index.jsx index e4aceb2..a824b3b 100644 --- a/src/views/tabledesign/popview/index.jsx +++ b/src/views/tabledesign/popview/index.jsx @@ -15,6 +15,7 @@ const MenuShell = asyncComponent(() => import('@/menu/tableshell')) const ReplaceField = asyncComponent(() => import('@/menu/replaceField')) +const NormalCopy = asyncComponent(() => import('@/menu/normalCopy')) const BgController = asyncComponent(() => import('@/pc/bgcontroller')) const TableComponent = asyncComponent(() => import('@/templates/sharecomponent/tablecomponent')) @@ -195,6 +196,7 @@ <Panel header="鍩烘湰淇℃伅" key="basedata"> {/* 琛ㄥ悕娣诲姞 */} <TableComponent config={config} updatetable={this.updatetable}/> + <NormalCopy /> </Panel> {/* 缁勪欢娣诲姞 */} <Panel header="鎼滅储" key="search"> -- Gitblit v1.8.0