From 42fae277ae5ebe794fc070bf38482a919eb661fc Mon Sep 17 00:00:00 2001 From: king <18310653075@163.com> Date: 星期三, 25 十一月 2020 14:36:02 +0800 Subject: [PATCH] 2020-11-25 --- src/menu/components/chart/antv-bar/chartcompile/index.jsx | 9 src/menu/components/card/table-card/index.jsx | 2 src/menu/components/search/main-search/wrapsetting/settingform/index.jsx | 25 + src/templates/treepageconfig/index.jsx | 4 src/templates/modalconfig/index.jsx | 19 - src/menu/searchcomponent/index.jsx | 2 src/templates/sharecomponent/settingcalcomponent/verifycard/index.jsx | 2 src/templates/sharecomponent/settingcomponent/settingform/index.jsx | 4 src/menu/components/tabs/tabsetting/index.jsx | 2 src/templates/sharecomponent/settingcalcomponent/verifycard/settingform/index.jsx | 29 + src/views/menudesign/index.jsx | 20 src/templates/formtabconfig/settingform/index.jsx | 20 + src/menu/components/card/cardcellcomponent/index.jsx | 15 + src/store/reducer.js | 11 src/templates/sharecomponent/settingcomponent/settingform/datasource/index.jsx | 20 + src/templates/sharecomponent/treesettingcomponent/settingform/datasource/index.jsx | 20 + src/store/action-type.js | 3 src/templates/calendarconfig/index.jsx | 19 - src/templates/subtableconfig/index.jsx | 30 - src/menu/components/card/data-card/index.jsx | 2 src/menu/components/chart/antv-pie/index.jsx | 2 src/templates/sharecomponent/treesettingcomponent/settingform/index.jsx | 2 src/menu/modelsource/option.jsx | 2 src/menu/components/card/data-card/wrapsetting/settingform/index.jsx | 25 + src/menu/components/card/prop-card/index.jsx | 2 src/menu/components/table/normal-table/index.jsx | 25 + src/menu/components/tabs/antv-tabs/index.jsx | 3 src/templates/sharecomponent/treesettingcomponent/index.jsx | 2 src/templates/sharecomponent/settingcomponent/index.jsx | 4 src/components/header/index.jsx | 9 src/templates/formtabconfig/index.jsx | 36 +- src/menu/actioncomponent/formconfig.jsx | 6 src/templates/comtableconfig/index.jsx | 60 --- src/menu/actioncomponent/index.jsx | 15 + src/templates/sharecomponent/searchcomponent/index.jsx | 25 - src/templates/zshare/editcomponent/index.jsx | 2 src/menu/components/chart/antv-bar/index.jsx | 2 src/menu/components/table/normal-table/index.scss | 6 src/templates/sharecomponent/columncomponent/index.jsx | 17 - src/store/action.js | 9 src/api/index.js | 5 src/menu/components/card/data-card/wrapsetting/index.jsx | 4 src/templates/sharecomponent/settingcalcomponent/index.jsx | 2 src/index.js | 9 src/menu/components/chart/antv-bar/chartcompile/formconfig.jsx | 15 src/templates/comtableconfig/menuform/index.jsx | 12 src/templates/zshare/formconfig.jsx | 69 ++++ src/menu/components/chart/antv-pie/chartcompile/index.jsx | 5 src/menu/datasource/verifycard/settingform/index.jsx | 22 + src/menu/components/search/main-search/index.jsx | 6 src/menu/components/card/cardcellcomponent/formconfig.jsx | 2 src/menu/components/search/main-search/wrapsetting/index.jsx | 2 src/templates/sharecomponent/actioncomponent/index.jsx | 38 +- src/menu/modalconfig/index.jsx | 15 - src/menu/components/tabs/tabsetting/settingform/index.jsx | 25 + src/templates/sharecomponent/chartgroupcomponent/index.jsx | 3 56 files changed, 407 insertions(+), 339 deletions(-) diff --git a/src/api/index.js b/src/api/index.js index 8d1b215..b6024f5 100644 --- a/src/api/index.js +++ b/src/api/index.js @@ -56,7 +56,7 @@ return Promise.reject(error) }) -const setCurrentUrl = () => { +const setCurrentUrl = (res) => { if (!!(window.history && window.history.pushState)) { if (window.location.href.indexOf('paramsmain') > -1) { let _href = window.location.href.split('#') @@ -64,6 +64,7 @@ } sessionStorage.clear() + sessionStorage.setItem('loginError', JSON.stringify({request: res.config ? res.config.data : '', response: JSON.stringify(res.data)})) window.history.replaceState(null, null, window.location.href.split('#')[0] + '#/login') window.location.reload() } @@ -77,7 +78,7 @@ response.data.ErrCode = 'E' return Promise.resolve(response.data) } else { - setCurrentUrl() + setCurrentUrl(response) } } else { return Promise.resolve(response.data) diff --git a/src/components/header/index.jsx b/src/components/header/index.jsx index 7d2eb82..c41a04f 100644 --- a/src/components/header/index.jsx +++ b/src/components/header/index.jsx @@ -15,7 +15,6 @@ resetState, resetEditState, resetEditLevel, - initPermission, modifyDataManager, initActionPermission, initMenuPermission, @@ -473,7 +472,8 @@ _permFuncField = _permFuncField.sort() } - this.props.initPermission(_sysRoles, _permFuncField) + sessionStorage.setItem('sysRoles', JSON.stringify(_sysRoles)) + sessionStorage.setItem('permFuncField', JSON.stringify(_permFuncField)) } }) } @@ -844,9 +844,7 @@ editState: state.editState, editLevel: state.editLevel, permAction: state.permAction, - sysRoles: state.sysRoles, - memberLevel: state.memberLevel, - permFuncField: state.permFuncField + memberLevel: state.memberLevel } } @@ -859,7 +857,6 @@ resetEditState: (state) => dispatch(resetEditState(state)), resetEditLevel: (level) => dispatch(resetEditLevel(level)), initActionPermission: (permAction) => dispatch(initActionPermission(permAction)), - initPermission: (sysRoles, permFuncField) => dispatch(initPermission(sysRoles, permFuncField)), initMenuPermission: (permMenus) => dispatch(initMenuPermission(permMenus)), modifyDataManager: (dataManager) => dispatch(modifyDataManager(dataManager)), resetState: () => dispatch(resetState()), diff --git a/src/index.js b/src/index.js index 5d93fdd..9cdc192 100644 --- a/src/index.js +++ b/src/index.js @@ -43,7 +43,16 @@ ) } + +if (sessionStorage.getItem('loginError')) { + try { + let res = JSON.parse(sessionStorage.getItem('loginError')) + console.info(res.request) + console.info(res.response) + } catch {} +} sessionStorage.removeItem('isEditState') +sessionStorage.removeItem('loginError') // fetch(`./${process.env.NODE_ENV === 'production' ? 'build/' : ''}options.json`) fetch(`./options.json`) diff --git a/src/menu/actioncomponent/formconfig.jsx b/src/menu/actioncomponent/formconfig.jsx index de09940..9461434 100644 --- a/src/menu/actioncomponent/formconfig.jsx +++ b/src/menu/actioncomponent/formconfig.jsx @@ -8,10 +8,10 @@ * @param {*} card 缂栬緫鎸夐挳 * @param {*} functip 鐢熸垚瀛樺偍杩囩▼鎻愮ず * @param {*} setting 缁勪欢閰嶇疆 - * @param {*} permFuncField 瀛樺偍杩囩▼鍙敤鐨勫紑濮嬪瓧娈� + * @param {*} usefulFields 瀛樺偍杩囩▼鍙敤鐨勫紑濮嬪瓧娈� * @param {*} type 鎸夐挳绫诲瀷锛岀敤浜庡尯鍒嗗彲閫夌殑鎵撳紑鏂瑰紡 */ -export function getActionForm (card, functip, setting, permFuncField = [], type, menulist = [], modules = []) { +export function getActionForm (card, functip, setting, usefulFields, type, menulist = [], modules = []) { let opentypes = [ { value: 'pop', @@ -138,7 +138,7 @@ label: Formdict['header.form.innerFunc'], initVal: card.innerFunc || '', tooltip: functip, - fields: permFuncField, + fields: usefulFields, tooltipClass: 'middle', required: false, readonly: false diff --git a/src/menu/actioncomponent/index.jsx b/src/menu/actioncomponent/index.jsx index 4e070de..14507c5 100644 --- a/src/menu/actioncomponent/index.jsx +++ b/src/menu/actioncomponent/index.jsx @@ -160,7 +160,18 @@ handleAction = (card) => { const { menu, config } = this.props - let ableField = menu.permFuncField ? menu.permFuncField.join(', ') : '' + let usefulFields = sessionStorage.getItem('permFuncField') + if (usefulFields) { + try { + usefulFields = JSON.parse(usefulFields) + } catch { + usefulFields = [] + } + } else { + usefulFields = [] + } + + let ableField = usefulFields.join(', ') let functip = <div> <p style={{marginBottom: '5px'}}>{this.state.dict['model.tooltip.func.innerface'].replace('@ableField', ableField)}</p> <p>{this.state.dict['model.tooltip.func.outface']}</p> @@ -196,7 +207,7 @@ this.setState({ visible: true, card: card, - formlist: getActionForm(card, functip, config.setting, menu.permFuncField, this.props.type, menulist, modules) + formlist: getActionForm(card, functip, config.setting, usefulFields, this.props.type, menulist, modules) }) } diff --git a/src/menu/components/card/cardcellcomponent/formconfig.jsx b/src/menu/components/card/cardcellcomponent/formconfig.jsx index cfb5189..b0fc153 100644 --- a/src/menu/components/card/cardcellcomponent/formconfig.jsx +++ b/src/menu/components/card/cardcellcomponent/formconfig.jsx @@ -6,8 +6,6 @@ /** * @description 鑾峰彇鎸夐挳琛ㄥ崟閰嶇疆淇℃伅 * @param {*} card 缂栬緫鎸夐挳 - * @param {*} setting 缁勪欢閰嶇疆 - * @param {*} permFuncField 瀛樺偍杩囩▼鍙敤鐨勫紑濮嬪瓧娈� * @param {*} type 鎸夐挳绫诲瀷锛岀敤浜庡尯鍒嗗彲閫夌殑鎵撳紑鏂瑰紡 */ export function getCardCellForm (card, type) { diff --git a/src/menu/components/card/cardcellcomponent/index.jsx b/src/menu/components/card/cardcellcomponent/index.jsx index 36d0659..8faa4f7 100644 --- a/src/menu/components/card/cardcellcomponent/index.jsx +++ b/src/menu/components/card/cardcellcomponent/index.jsx @@ -244,7 +244,18 @@ handleAction = (card) => { const { menu, cards } = this.props - let ableField = menu.permFuncField ? menu.permFuncField.join(', ') : '' + let usefulFields = sessionStorage.getItem('permFuncField') + if (usefulFields) { + try { + usefulFields = JSON.parse(usefulFields) + } catch { + usefulFields = [] + } + } else { + usefulFields = [] + } + + let ableField = usefulFields.join(', ') let functip = <div> <p style={{marginBottom: '5px'}}>{this.state.dict['model.tooltip.func.innerface'].replace('@ableField', ableField)}</p> <p>{this.state.dict['model.tooltip.func.outface']}</p> @@ -279,7 +290,7 @@ this.setState({ actvisible: true, card: card, - formlist: getActionForm(card, functip, cards.setting, menu.permFuncField, 'card', menulist, modules) + formlist: getActionForm(card, functip, cards.setting, usefulFields, 'card', menulist, modules) }) } diff --git a/src/menu/components/card/data-card/index.jsx b/src/menu/components/card/data-card/index.jsx index e0ae543..409cf2c 100644 --- a/src/menu/components/card/data-card/index.jsx +++ b/src/menu/components/card/data-card/index.jsx @@ -193,7 +193,7 @@ <div className="menu-data-card-edit-box" style={{...card.style, minHeight: card.wrap.minHeight}}> <Popover overlayClassName="mk-popover-control-wrap" mouseLeaveDelay={0.2} mouseEnterDelay={0.2} content={ <div className="mk-popover-control"> - {menu ? <WrapComponent sysRoles={menu.sysRoles} MenuType={menu.MenuType} config={card} updateConfig={this.updateComponent} /> : null} + {menu ? <WrapComponent MenuType={menu.MenuType} config={card} updateConfig={this.updateComponent} /> : null} <Icon className="style" title="璋冩暣鏍峰紡" onClick={this.changeStyle} type="font-colors" /> <Icon className="close" title="鍒犻櫎缁勪欢" type="delete" onClick={() => this.props.deletecomponent(card.uuid)} /> <SettingComponent config={card} updateConfig={this.updateComponent} /> diff --git a/src/menu/components/card/data-card/wrapsetting/index.jsx b/src/menu/components/card/data-card/wrapsetting/index.jsx index 505a4a7..bd9c89a 100644 --- a/src/menu/components/card/data-card/wrapsetting/index.jsx +++ b/src/menu/components/card/data-card/wrapsetting/index.jsx @@ -12,7 +12,6 @@ static propTpyes = { config: PropTypes.any, MenuType: PropTypes.any, - sysRoles: PropTypes.array, updateConfig: PropTypes.func } @@ -52,7 +51,7 @@ } render () { - const { config, sysRoles, MenuType } = this.props + const { config, MenuType } = this.props const { visible, dict, wrap } = this.state return ( @@ -74,7 +73,6 @@ wrap={wrap} config={config} MenuType={MenuType} - sysRoles={sysRoles || []} inputSubmit={this.verifySubmit} wrappedComponentRef={(inst) => this.verifyRef = inst} /> diff --git a/src/menu/components/card/data-card/wrapsetting/settingform/index.jsx b/src/menu/components/card/data-card/wrapsetting/settingform/index.jsx index 60d2469..0de3f34 100644 --- a/src/menu/components/card/data-card/wrapsetting/settingform/index.jsx +++ b/src/menu/components/card/data-card/wrapsetting/settingform/index.jsx @@ -7,11 +7,29 @@ class SettingForm extends Component { static propTpyes = { MenuType: PropTypes.any, // 鑿滃崟绫诲瀷 - sysRoles: PropTypes.array, // 瑙掕壊鍒楄〃 dict: PropTypes.object, // 瀛楀吀椤� config: PropTypes.object, // 鍗$墖琛屼俊鎭� wrap: PropTypes.object, // 鏁版嵁婧愰厤缃� inputSubmit: PropTypes.func // 鍥炶溅浜嬩欢 + } + + state = { + roleList: [] + } + + UNSAFE_componentWillMount () { + let roleList = sessionStorage.getItem('sysRoles') + if (roleList) { + try { + roleList = JSON.parse(roleList) + } catch { + roleList = [] + } + } else { + roleList = [] + } + + this.setState({roleList}) } handleConfirm = () => { @@ -36,8 +54,9 @@ } render() { - const { wrap, config, sysRoles, MenuType } = this.props + const { wrap, config, MenuType } = this.props const { getFieldDecorator } = this.props.form + const { roleList } = this.state const formItemLayout = { labelCol: { @@ -199,7 +218,7 @@ mode="multiple" filterOption={(input, option) => option.props.children.toLowerCase().indexOf(input.toLowerCase()) >= 0} > - {sysRoles.map(option => + {roleList.map(option => <Select.Option key={option.uuid} value={option.value}>{option.text}</Select.Option> )} </Select> diff --git a/src/menu/components/card/prop-card/index.jsx b/src/menu/components/card/prop-card/index.jsx index ce18d75..9288996 100644 --- a/src/menu/components/card/prop-card/index.jsx +++ b/src/menu/components/card/prop-card/index.jsx @@ -229,7 +229,7 @@ <Popover overlayClassName="mk-popover-control-wrap" mouseLeaveDelay={0.2} mouseEnterDelay={0.2} content={ <div className="mk-popover-control"> <Icon className="plus" title="娣诲姞鍗$墖" onClick={this.addCard} type="plus" /> - {menu ? <WrapComponent config={card} sysRoles={menu.sysRoles} MenuType={menu.MenuType} updateConfig={this.updateComponent} /> : null} + {menu ? <WrapComponent config={card} MenuType={menu.MenuType} updateConfig={this.updateComponent} /> : null} <Icon className="style" title="璋冩暣鏍峰紡" onClick={this.changeStyle} type="font-colors" /> <Icon className="close" title="鍒犻櫎缁勪欢" type="delete" onClick={() => this.props.deletecomponent(card.uuid)} /> {card.wrap.datatype !== 'static' ? <SettingComponent config={card} updateConfig={this.updateComponent} /> : null} diff --git a/src/menu/components/card/table-card/index.jsx b/src/menu/components/card/table-card/index.jsx index fd79a3f..cc606ed 100644 --- a/src/menu/components/card/table-card/index.jsx +++ b/src/menu/components/card/table-card/index.jsx @@ -262,7 +262,7 @@ <div className="mk-popover-control"> <Icon className="plus" title="娣诲姞鍗$墖" onClick={this.addCard} type="plus" /> <Icon className="plus" title="娣诲姞鎼滅储" onClick={this.addSearch} type="plus-circle" /> - {menu ? <WrapComponent config={card} sysRoles={menu.sysRoles} MenuType={menu.MenuType} updateConfig={this.updateComponent} /> : null} + {menu ? <WrapComponent config={card} MenuType={menu.MenuType} updateConfig={this.updateComponent} /> : null} <Icon className="style" title="璋冩暣鏍峰紡" onClick={this.changeStyle} type="font-colors" /> <Icon className="close" title="鍒犻櫎缁勪欢" type="delete" onClick={() => this.props.deletecomponent(card.uuid)} /> {card.wrap.datatype !== 'static' ? <SettingComponent config={card} updateConfig={this.updateComponent} /> : null} diff --git a/src/menu/components/chart/antv-bar/chartcompile/formconfig.jsx b/src/menu/components/chart/antv-bar/chartcompile/formconfig.jsx index 9b14404..71194ee 100644 --- a/src/menu/components/chart/antv-bar/chartcompile/formconfig.jsx +++ b/src/menu/components/chart/antv-bar/chartcompile/formconfig.jsx @@ -8,8 +8,17 @@ * @param {object} card // 鍥捐〃瀵硅薄 * @param {Array} columns // 鏄剧ず鍒� */ -export function getBaseForm (card, sysRoles = [], MenuType) { - let _sysRoles = sysRoles.map(item => ({...item, field: item.value, label: item.text})) +export function getBaseForm (card, MenuType) { + let roleList = sessionStorage.getItem('sysRoles') + if (roleList) { + try { + roleList = JSON.parse(roleList) + } catch { + roleList = [] + } + } else { + roleList = [] + } return [ { @@ -56,7 +65,7 @@ multi: true, required: false, forbid: MenuType === 'billPrint', - options: _sysRoles + options: roleList } ] } diff --git a/src/menu/components/chart/antv-bar/chartcompile/index.jsx b/src/menu/components/chart/antv-bar/chartcompile/index.jsx index 283faf1..de83451 100644 --- a/src/menu/components/chart/antv-bar/chartcompile/index.jsx +++ b/src/menu/components/chart/antv-bar/chartcompile/index.jsx @@ -19,7 +19,6 @@ MenuType: PropTypes.any, dict: PropTypes.object, plot: PropTypes.object, - sysRoles: PropTypes.array, config: PropTypes.object, plotchange: PropTypes.func } @@ -148,7 +147,7 @@ } showDrawer = () => { - const { config, sysRoles, MenuType } = this.props + const { config, MenuType } = this.props let fieldName = {} config.columns.forEach(col => { @@ -168,7 +167,7 @@ datatype: config.plot.datatype || 'query', fieldName: fieldName, plot: fromJS(config.plot).toJS(), - baseFormlist: getBaseForm(config.plot, sysRoles, MenuType), + baseFormlist: getBaseForm(config.plot, MenuType), formlist: getOptionForm(config.plot, config.columns, MenuType) }) } @@ -266,8 +265,8 @@ })( <Select mode={item.multi ? 'multiple' : ''}> {item.options.map((option, index) => - <Select.Option key={index} value={option.field}> - {option.label} + <Select.Option key={index} value={option.field || option.value}> + {option.label || option.text} </Select.Option> )} </Select> diff --git a/src/menu/components/chart/antv-bar/index.jsx b/src/menu/components/chart/antv-bar/index.jsx index f07c014..a2efa3a 100644 --- a/src/menu/components/chart/antv-bar/index.jsx +++ b/src/menu/components/chart/antv-bar/index.jsx @@ -856,7 +856,7 @@ <div className="mk-popover-control"> {menu && menu.MenuType !== 'billPrint' ? <Icon className="plus" title="娣诲姞鎼滅储" onClick={this.addSearch} type="plus-circle" /> : null} {menu && menu.MenuType !== 'billPrint' ? <Icon className="plus" title="娣诲姞鎸夐挳" onClick={this.addButton} type="plus-square" /> : null} - {menu ? <ChartCompileForm config={card} sysRoles={menu.sysRoles} MenuType={menu.MenuType} dict={this.state.dict} plotchange={this.updateComponent}/> : null} + {menu ? <ChartCompileForm config={card} MenuType={menu.MenuType} dict={this.state.dict} plotchange={this.updateComponent}/> : null} <Icon className="style" title="璋冩暣鏍峰紡" onClick={this.changeStyle} type="font-colors" /> <Icon className="close" title="delete" type="delete" onClick={() => this.props.deletecomponent(card.uuid)} /> <SettingComponent config={card} updateConfig={this.updateComponent}/> diff --git a/src/menu/components/chart/antv-pie/chartcompile/index.jsx b/src/menu/components/chart/antv-pie/chartcompile/index.jsx index 790cfc2..e54f4a5 100644 --- a/src/menu/components/chart/antv-pie/chartcompile/index.jsx +++ b/src/menu/components/chart/antv-pie/chartcompile/index.jsx @@ -20,7 +20,6 @@ MenuType: PropTypes.any, dict: PropTypes.object, plot: PropTypes.object, - sysRoles: PropTypes.array, config: PropTypes.object, plotchange: PropTypes.func } @@ -53,13 +52,13 @@ } showDrawer = () => { - const { config, sysRoles, MenuType } = this.props + const { config, MenuType } = this.props this.setState({ visible: true, view: 'normal', plot: fromJS(config.plot).toJS(), - baseFormlist: getBaseForm(config.plot, sysRoles, MenuType), + baseFormlist: getBaseForm(config.plot, MenuType), formlist: getOptionForm(config.plot, config.columns) }) } diff --git a/src/menu/components/chart/antv-pie/index.jsx b/src/menu/components/chart/antv-pie/index.jsx index 82d6720..e65d64a 100644 --- a/src/menu/components/chart/antv-pie/index.jsx +++ b/src/menu/components/chart/antv-pie/index.jsx @@ -426,7 +426,7 @@ <Popover overlayClassName="mk-popover-control-wrap" mouseLeaveDelay={0.2} mouseEnterDelay={0.2} content={ <div className="mk-popover-control"> {menu && menu.MenuType !== 'billPrint' ? <Icon className="plus" title="娣诲姞鎼滅储" onClick={this.addSearch} type="plus-circle" /> : null} - {menu ? <ChartCompileForm config={card} sysRoles={menu.sysRoles} MenuType={menu.MenuType} dict={this.state.dict} plotchange={this.updateComponent}/> : null} + {menu ? <ChartCompileForm config={card} MenuType={menu.MenuType} dict={this.state.dict} plotchange={this.updateComponent}/> : null} <Icon className="style" title="璋冩暣鏍峰紡" onClick={this.changeStyle} type="font-colors" /> <Icon className="close" title="delete" type="delete" onClick={() => this.props.deletecomponent(card.uuid)} /> <SettingComponent config={card} updateConfig={this.updateComponent}/> diff --git a/src/menu/components/search/main-search/index.jsx b/src/menu/components/search/main-search/index.jsx index 982ab49..53be372 100644 --- a/src/menu/components/search/main-search/index.jsx +++ b/src/menu/components/search/main-search/index.jsx @@ -142,7 +142,6 @@ * @description 鎼滅储鏉′欢缂栬緫锛岃幏鍙栨悳绱㈡潯浠惰〃鍗曚俊鎭� */ handleSearch = (cell) => { - const { menu } = this.props const { card } = this.state let linkableFields = [] @@ -158,7 +157,7 @@ this.setState({ visible: true, editcard: cell, - formlist: getSearchForm(cell, menu.sysRoles, linkableFields) + formlist: getSearchForm(cell, linkableFields) }) } @@ -339,7 +338,6 @@ } render() { - const { menu } = this.props const { dict, card, visible, sqlVerifing } = this.state return ( @@ -354,7 +352,7 @@ <Popover overlayClassName="mk-popover-control-wrap" mouseLeaveDelay={0.2} mouseEnterDelay={0.2} content={ <div className="mk-popover-control"> <Icon className="plus" title="娣诲姞" onClick={this.addSearch} type="plus" /> - <WrapComponent config={card} sysRoles={menu ? menu.sysRoles : []} updateConfig={this.updateComponent}/> + <WrapComponent config={card} updateConfig={this.updateComponent}/> <Icon className="style" title="璋冩暣鏍峰紡" onClick={this.changeStyle} type="font-colors" /> <Icon className="close" title="delete" type="delete" onClick={() => this.props.deletecomponent(card.uuid)} /> </div> diff --git a/src/menu/components/search/main-search/wrapsetting/index.jsx b/src/menu/components/search/main-search/wrapsetting/index.jsx index f2bc03d..08c3f72 100644 --- a/src/menu/components/search/main-search/wrapsetting/index.jsx +++ b/src/menu/components/search/main-search/wrapsetting/index.jsx @@ -10,7 +10,6 @@ class DataSource extends Component { static propTpyes = { - sysRoles: PropTypes.any, // 瑙掕壊鍒楄〃 config: PropTypes.any, updateConfig: PropTypes.func } @@ -70,7 +69,6 @@ <SettingForm dict={dict} wrap={wrap} - sysRoles={this.props.sysRoles || []} inputSubmit={this.verifySubmit} wrappedComponentRef={(inst) => this.verifyRef = inst} /> diff --git a/src/menu/components/search/main-search/wrapsetting/settingform/index.jsx b/src/menu/components/search/main-search/wrapsetting/settingform/index.jsx index 03954cf..9d728db 100644 --- a/src/menu/components/search/main-search/wrapsetting/settingform/index.jsx +++ b/src/menu/components/search/main-search/wrapsetting/settingform/index.jsx @@ -8,12 +8,27 @@ static propTpyes = { dict: PropTypes.object, // 瀛楀吀椤� wrap: PropTypes.object, // 鏁版嵁婧愰厤缃� - sysRoles: PropTypes.array, // 瑙掕壊鍒楄〃 inputSubmit: PropTypes.func // 鍥炶溅浜嬩欢 } state = { - float: this.props.wrap.float + float: this.props.wrap.float, + roleList: [] + } + + UNSAFE_componentWillMount () { + let roleList = sessionStorage.getItem('sysRoles') + if (roleList) { + try { + roleList = JSON.parse(roleList) + } catch { + roleList = [] + } + } else { + roleList = [] + } + + this.setState({roleList}) } handleConfirm = () => { @@ -38,9 +53,9 @@ } render() { - const { wrap, sysRoles } = this.props + const { wrap } = this.props const { getFieldDecorator } = this.props.form - const { float } = this.state + const { float, roleList } = this.state const formItemLayout = { labelCol: { @@ -132,7 +147,7 @@ mode="multiple" filterOption={(input, option) => option.props.children.toLowerCase().indexOf(input.toLowerCase()) >= 0} > - {sysRoles.map(option => + {roleList.map(option => <Select.Option key={option.uuid} value={option.value}>{option.text}</Select.Option> )} </Select> diff --git a/src/menu/components/table/normal-table/index.jsx b/src/menu/components/table/normal-table/index.jsx index b30ea71..4f408e0 100644 --- a/src/menu/components/table/normal-table/index.jsx +++ b/src/menu/components/table/normal-table/index.jsx @@ -4,18 +4,20 @@ import { is, fromJS } from 'immutable' import { Icon, Popover, Modal } from 'antd' -import asyncComponent from '@/utils/asyncComponent' +// import asyncComponent from '@/utils/asyncComponent' import asyncIconComponent from '@/utils/asyncIconComponent' import MKEmitter from '@/utils/events.js' import Utils from '@/utils/utils.js' import zhCN from '@/locales/zh-CN/model.js' import enUS from '@/locales/en-US/model.js' + +import SearchComponent from '@/templates/sharecomponent/searchcomponent' import './index.scss' const SettingComponent = asyncIconComponent(() => import('@/menu/datasource')) // const WrapComponent = asyncIconComponent(() => import('../data-card/wrapsetting')) -const SearchComponent = asyncComponent(() => import('@/menu/searchcomponent')) +// const SearchComponent = asyncComponent(() => import('@/menu/searchcomponent')) const { confirm } = Modal @@ -241,11 +243,24 @@ MKEmitter.emit('addSearch', card.uuid, newcard) } + /** + * @description 鏇存柊鎼滅储鏉′欢閰嶇疆淇℃伅 + */ + updatesearch = (config) => { + this.setState({ + card: config + }) + } + render() { const { card } = this.state return ( - <div className="menu-table-card-edit-box" style={{...card.style, height: card.wrap.height}}> + <div className="menu-normal-table-edit-box" style={{...card.style, height: card.wrap.height}}> + <SearchComponent + config={card} + updatesearch={this.updatesearch} + /> <div className="table-header" style={card.headerStyle}> <Popover overlayClassName="mk-popover-control-wrap" mouseLeaveDelay={0.2} mouseEnterDelay={0.2} content={ <div className="mk-popover-control"> @@ -254,13 +269,13 @@ } trigger="hover"> <span className="table-title">{card.wrap.title || ''}</span> </Popover> - <SearchComponent config={card} updatesearch={this.updateComponent}/> + {/* <SearchComponent config={card} updatesearch={this.updateComponent}/> */} </div> <Popover overlayClassName="mk-popover-control-wrap" mouseLeaveDelay={0.2} mouseEnterDelay={0.2} content={ <div className="mk-popover-control"> <Icon className="plus" title="娣诲姞鍗$墖" onClick={this.addCard} type="plus" /> <Icon className="plus" title="娣诲姞鎼滅储" onClick={this.addSearch} type="plus-circle" /> - {/* {menu ? <WrapComponent config={card} sysRoles={menu.sysRoles} MenuType={menu.MenuType} updateConfig={this.updateComponent} /> : null} */} + {/* {menu ? <WrapComponent config={card} MenuType={menu.MenuType} updateConfig={this.updateComponent} /> : null} */} <Icon className="style" title="璋冩暣鏍峰紡" onClick={this.changeStyle} type="font-colors" /> <Icon className="close" title="鍒犻櫎缁勪欢" type="delete" onClick={() => this.props.deletecomponent(card.uuid)} /> {card.wrap.datatype !== 'static' ? <SettingComponent config={card} updateConfig={this.updateComponent} /> : null} diff --git a/src/menu/components/table/normal-table/index.scss b/src/menu/components/table/normal-table/index.scss index 88da58c..6ca24a0 100644 --- a/src/menu/components/table/normal-table/index.scss +++ b/src/menu/components/table/normal-table/index.scss @@ -1,4 +1,4 @@ -.menu-table-card-edit-box { +.menu-normal-table-edit-box { position: relative; box-sizing: border-box; background: #ffffff; @@ -82,11 +82,11 @@ } } } -.menu-table-card-edit-box::after { +.menu-normal-table-edit-box::after { display: block; content: ' '; clear: both; } -.menu-table-card-edit-box:hover { +.menu-normal-table-edit-box:hover { box-shadow: 0px 0px 2px #e8e8e8; } diff --git a/src/menu/components/tabs/antv-tabs/index.jsx b/src/menu/components/tabs/antv-tabs/index.jsx index 598c98a..e5b9733 100644 --- a/src/menu/components/tabs/antv-tabs/index.jsx +++ b/src/menu/components/tabs/antv-tabs/index.jsx @@ -227,7 +227,6 @@ } render() { - const { menu } = this.props const { tabs, dict, labelvisible, editab } = this.state return ( @@ -253,7 +252,7 @@ <Popover overlayClassName="mk-popover-control-wrap" mouseLeaveDelay={0.2} mouseEnterDelay={0.2} content={ <div className="mk-popover-control"> <Icon className="plus" title="娣诲姞鏍囩" type="plus" onClick={this.tabAdd} /> - <SettingComponent config={tabs} sysRoles={menu ? menu.sysRoles : []} updateConfig={this.updateComponent} /> + <SettingComponent config={tabs} updateConfig={this.updateComponent} /> <Icon className="style" title="璋冩暣鏍峰紡" onClick={this.changeStyle} type="font-colors" /> <Icon className="close" title="delete" type="delete" onClick={() => this.props.deletecomponent(tabs.uuid)} /> </div> diff --git a/src/menu/components/tabs/tabsetting/index.jsx b/src/menu/components/tabs/tabsetting/index.jsx index 956e4b0..b913fc8 100644 --- a/src/menu/components/tabs/tabsetting/index.jsx +++ b/src/menu/components/tabs/tabsetting/index.jsx @@ -11,7 +11,6 @@ class DataSource extends Component { static propTpyes = { config: PropTypes.any, - sysRoles: PropTypes.any, // 瑙掕壊鍒楄〃 updateConfig: PropTypes.func } @@ -70,7 +69,6 @@ <SettingForm dict={dict} setting={setting} - sysRoles={this.props.sysRoles || []} inputSubmit={this.verifySubmit} wrappedComponentRef={(inst) => this.verifyRef = inst} /> diff --git a/src/menu/components/tabs/tabsetting/settingform/index.jsx b/src/menu/components/tabs/tabsetting/settingform/index.jsx index c82dd8c..6362d5a 100644 --- a/src/menu/components/tabs/tabsetting/settingform/index.jsx +++ b/src/menu/components/tabs/tabsetting/settingform/index.jsx @@ -8,11 +8,27 @@ static propTpyes = { dict: PropTypes.object, // 瀛楀吀椤� setting: PropTypes.object, // 鏁版嵁婧愰厤缃� - sysRoles: PropTypes.array, // 瑙掕壊鍒楄〃 inputSubmit: PropTypes.func // 鍥炶溅浜嬩欢 } - state = {} + state = { + roleList: [] + } + + UNSAFE_componentWillMount () { + let roleList = sessionStorage.getItem('sysRoles') + if (roleList) { + try { + roleList = JSON.parse(roleList) + } catch { + roleList = [] + } + } else { + roleList = [] + } + + this.setState({roleList}) + } handleConfirm = () => { // 琛ㄥ崟鎻愪氦鏃舵鏌ヨ緭鍏ュ�兼槸鍚︽纭� @@ -36,8 +52,9 @@ } render() { - const { setting, sysRoles } = this.props + const { setting } = this.props const { getFieldDecorator } = this.props.form + const { roleList } = this.state const formItemLayout = { labelCol: { @@ -131,7 +148,7 @@ mode="multiple" filterOption={(input, option) => option.props.children.toLowerCase().indexOf(input.toLowerCase()) >= 0} > - {sysRoles.map(option => + {roleList.map(option => <Select.Option key={option.uuid} value={option.value}>{option.text}</Select.Option> )} </Select> diff --git a/src/menu/datasource/verifycard/settingform/index.jsx b/src/menu/datasource/verifycard/settingform/index.jsx index 66c48d5..3cfed31 100644 --- a/src/menu/datasource/verifycard/settingform/index.jsx +++ b/src/menu/datasource/verifycard/settingform/index.jsx @@ -22,6 +22,7 @@ interType: this.props.setting.interType || 'system', laypage: this.props.setting.laypage || 'true', modules: [], + usefulFields: [], useMSearch: this.props.setting.useMSearch || 'false', supModule: this.props.setting.supModule || [] } @@ -39,7 +40,18 @@ label: '鏃�' }) - this.setState({modules}) + let usefulFields = sessionStorage.getItem('permFuncField') + if (usefulFields) { + try { + usefulFields = JSON.parse(usefulFields) + } catch { + usefulFields = [] + } + } else { + usefulFields = [] + } + + this.setState({modules, usefulFields}) } getModules = (components, selfId) => { @@ -180,7 +192,7 @@ render() { const { setting, menu, columns, config } = this.props const { getFieldDecorator } = this.props.form - const { interType, modules, useMSearch, laypage, supModule } = this.state + const { interType, modules, useMSearch, laypage, supModule, usefulFields } = this.state const formItemLayout = { labelCol: { @@ -196,9 +208,9 @@ let tooltip = null let rules = [] - if (menu.permFuncField && menu.permFuncField.length > 0) { - tooltip = '寮�澶村彲鐢ㄥ瓧绗︼細' + menu.permFuncField.join(', ') - let str = '^(' + menu.permFuncField.join('|') + ')' + if (usefulFields.length > 0) { + tooltip = '寮�澶村彲鐢ㄥ瓧绗︼細' + usefulFields.join(', ') + let str = '^(' + usefulFields.join('|') + ')' let _patten = new RegExp(str + formRule.func.innerPattern + '$', 'g') rules.push({ diff --git a/src/menu/modalconfig/index.jsx b/src/menu/modalconfig/index.jsx index cb8a9eb..da88ec3 100644 --- a/src/menu/modalconfig/index.jsx +++ b/src/menu/modalconfig/index.jsx @@ -177,7 +177,7 @@ * 3銆佽缃紪杈戝弬鏁伴」-formlist */ handleForm = (_card) => { - const { componentConfig, menu } = this.props + const { componentConfig } = this.props let card = fromJS(_card).toJS() const { config } = this.state @@ -238,21 +238,10 @@ card.linkSubField = card.linkSubField.filter(item => fields.includes(item)) } - let roleList = [] - if (menu.sysRoles && menu.sysRoles.length > 0) { - roleList = menu.sysRoles.map(role => { - return { - uuid: role.uuid, - field: role.value, - label: role.text - } - }) - } - this.setState({ visible: true, card: card, - formlist: getModalForm(card, _inputfields, _linkableFields, _linksupFields, !!this.props.editTab, roleList) + formlist: getModalForm(card, _inputfields, _linkableFields, _linksupFields, !!this.props.editTab) }) } diff --git a/src/menu/modelsource/option.jsx b/src/menu/modelsource/option.jsx index c40e0f3..d6bf059 100644 --- a/src/menu/modelsource/option.jsx +++ b/src/menu/modelsource/option.jsx @@ -22,8 +22,8 @@ { type: 'menu', url: Mainsearch, component: 'search', subtype: 'mainsearch', title: '鎼滅储鏉′欢', width: 24, forbid: ['billPrint'] }, { type: 'menu', url: card1, component: 'card', subtype: 'datacard', title: '鏁版嵁鍗�', config: `[{"uuid":"160135809128212dm7i29fim9ksto9od","setting":{"width":6},"style":{"paddingTop":"15px","marginTop":"4px","paddingRight":"15px","marginRight":"8px","marginLeft":"8px","backgroundColor":"rgba(255, 255, 255, 1)","borderColor":"#e8e8e8","paddingLeft":"15px","marginBottom":"4px","borderWidth":"1px","paddingBottom":"10px"},"backStyle":{},"elements":[{"datatype":"static","width":12,"marks":null,"height":1,"value":"鍏冲崟","style":{},"prefix":"","postfix":"","format":"","eleType":"text","uuid":"160231860159931untbea62sgokunc5s"},{"datatype":"static","width":12,"marks":null,"style":{"color":"rgba(250, 219, 20, 1)","textAlign":"right"},"btnstyle":{},"eleType":"icon","icon":"question-circle","field":"","uuid":"1602318768361nv8ql4t47sgcsn88b0u"},{"datatype":"static","width":24,"marks":null,"height":1,"innerHeight":36,"value":"100","style":{"fontSize":"24px","fontWeight":"500","color":"rgba(0, 0, 0, 1)"},"prefix":"","btnstyle":{},"postfix":"","format":"","eleType":"text","uuid":"1602318817884v70gtgb65ubnm8mbcvv"},{"color":"#1890ff","width":24,"marks":null,"maxValue":100,"style":{"color":"rgba(250, 140, 22, 1)","paddingTop":"20px","paddingBottom":"10px"},"btnstyle":{},"eleType":"slider","field":"int1","uuid":"16023188871233rkktuvpp1h077igrsu"},{"eleType":"splitline","width":24,"color":"#e8e8e8","uuid":"1602320017038n31bk9o831ggug0tu0b","marks":null,"style":{"marginTop":"10px","marginBottom":"10px"},"btnstyle":{}},{"datatype":"static","width":12,"marks":null,"height":1,"value":"100","style":{"marginTop":"6px"},"prefix":"鍏冲崟","btnstyle":{},"postfix":"","format":"","eleType":"text","uuid":"1602320061243drd7lf3agvn04kgr175"}],"backElements":[]}]` }, { type: 'menu', url: card2, component: 'card', subtype: 'propcard', title: '灞炴�у崱', config: `[{"uuid":"1603681387259qaqf1127f72esmtchge","setting":{"width":6,"type":"simple"},"style":{"paddingTop":"15px","marginTop":"8px","paddingRight":"15px","marginRight":"8px","marginLeft":"8px","borderColor":"#e8e8e8","paddingLeft":"15px","marginBottom":"8px","borderWidth":"1px","paddingBottom":"15px"},"backStyle":{},"elements":[{"datatype":"static","width":12,"marks":null,"height":1,"value":"瓒呮椂宸ュ崟","style":{"color":"rgba(67, 67, 67, 0.51)"},"prefix":"","postfix":"","format":"","eleType":"text","uuid":"1603681402945qnkgm7q8cng65evn5ev"},{"eleType":"icon","datatype":"static","width":12,"icon":"question-circle","tooltip":"瓒呮椂宸ュ崟","uuid":"1603681473384i2crkbtofg4pu76k06a","marks":null,"style":{"textAlign":"right","color":"rgba(250, 219, 20, 1)"}},{"datatype":"static","width":24,"marks":null,"height":1,"innerHeight":36,"value":"100","style":{"fontSize":"24px","color":"rgba(0, 0, 0, 1)"},"prefix":"","postfix":"","format":"","eleType":"number","uuid":"1603681539870d704ufqf98kc6t7537t"},{"color":"rgba(250, 219, 20, 1)","datatype":"static","width":24,"marks":null,"maxValue":100,"value":50,"style":{"paddingTop":"10px","paddingBottom":"10px"},"eleType":"slider","uuid":"1603683067556mvupau0odvrtv45u7o8"},{"eleType":"splitline","width":24,"color":"#e8e8e8","uuid":"1603683117981t9k55k8an430fuppmci","marks":null,"style":{"paddingTop":"5px","paddingBottom":"5px"}},{"datatype":"static","width":12,"marks":null,"height":1,"value":"100","style":{"color":"rgba(0, 0, 0, 0.65)","marginTop":"10px"},"prefix":"瓒呮椂宸ュ崟 ","postfix":"","format":"","eleType":"text","uuid":"1603683136553uvsmkfohkft9idbfkhu"}],"backElements":[]}]` }, + { type: 'menu', url: NormalTable, component: 'table', subtype: 'normaltable', title: '甯哥敤琛�', width: 24 }, { type: 'menu', url: TableCard, component: 'table', subtype: 'tablecard', title: '琛ㄦ牸', width: 12 }, - { type: 'menu', url: NormalTable, component: 'table', subtype: 'normaltable', title: '琛ㄦ牸', width: 12 }, { type: 'menu', url: line, component: 'line', subtype: 'line', title: '鎶樼嚎鍥�' }, { type: 'menu', url: line1, component: 'line', subtype: 'line1', title: '闃舵鎶樼嚎鍥�' }, { type: 'menu', url: bar, component: 'bar', subtype: 'bar', title: '鏌辩姸鍥�' }, diff --git a/src/menu/searchcomponent/index.jsx b/src/menu/searchcomponent/index.jsx index 327004c..51b2634 100644 --- a/src/menu/searchcomponent/index.jsx +++ b/src/menu/searchcomponent/index.jsx @@ -114,7 +114,7 @@ this.setState({ visible: true, card: card, - formlist: getSearchForm(card, this.props.menu.sysRoles, linkableFields) + formlist: getSearchForm(card, linkableFields) }) } diff --git a/src/store/action-type.js b/src/store/action-type.js index c636928..a9386d6 100644 --- a/src/store/action-type.js +++ b/src/store/action-type.js @@ -34,9 +34,6 @@ // 鍒濆鍖栨寜閽潈闄� export const INIT_ACTIONPERMISSION = 'INIT_ACTIONPERMISSION' -// 鍒濆鍖栬鑹插垪琛ㄥ強鍒涘缓瀛樺偍杩囩▼鍙敤瀛楁 -export const INIT_PERMISSION = 'INIT_PERMISSION' - // 鍒濆鍖栬彍鍗曟潈闄� export const INIT_MENUPERMISSION = 'INIT_MENUPERMISSION' diff --git a/src/store/action.js b/src/store/action.js index 946142b..e37227b 100644 --- a/src/store/action.js +++ b/src/store/action.js @@ -86,15 +86,6 @@ } } -// 鍒濆鍖栬鑹插垪琛ㄥ強鍒涘缓瀛樺偍杩囩▼鍙敤瀛楁 -export const initPermission = (sysRoles, permFuncField) => { - return { - type: user.INIT_PERMISSION, - sysRoles: sysRoles, - permFuncField: permFuncField - } -} - // 鍒濆鍖栬彍鍗曟潈闄� export const initMenuPermission = (permMenus) => { return { diff --git a/src/store/reducer.js b/src/store/reducer.js index 63fe9bb..16613ce 100644 --- a/src/store/reducer.js +++ b/src/store/reducer.js @@ -28,8 +28,6 @@ permRoles: [], // 鐢ㄦ埛瑙掕壊鍒楄〃 permAction: {}, // 鐢ㄦ埛鎸夐挳鏉冮檺 permMenus: {}, // 鐢ㄦ埛涓夌骇鑿滃崟鏉冮檺 - permFuncField: [], // 绯荤粺妯″潡 - sysRoles: [], // 绯荤粺瑙掕壊鍒楄〃 dataManager: false, // 鏁版嵁绠$悊鍛� memberLevel: _level, // 浼氬憳绛夌骇 customMenu: null // 缂栬緫涓殑鑿滃崟锛堣嚜瀹氫箟椤甸潰锛� @@ -112,13 +110,6 @@ ...state, permAction: action.permAction } - case Type.INIT_PERMISSION: - // 鍒濆鍖栬鑹插垪琛ㄥ強鍒涘缓瀛樺偍杩囩▼鍙敤瀛楁 - return { - ...state, - sysRoles: action.sysRoles, - permFuncField: action.permFuncField - } case Type.INIT_MENUPERMISSION: // 鍒濆鍖栦笁绾ц彍鍗曟潈闄� return { @@ -154,8 +145,6 @@ editState: false, editLevel: null, permAction: {}, - permFuncField: [], - sysRoles: [], permMenus: {}, customMenu: null } diff --git a/src/templates/calendarconfig/index.jsx b/src/templates/calendarconfig/index.jsx index d0ebf5a..5929c3f 100644 --- a/src/templates/calendarconfig/index.jsx +++ b/src/templates/calendarconfig/index.jsx @@ -52,7 +52,6 @@ originConfig: null, // 鍘熼厤缃� tabviews: [], // 鎵�鏈夋爣绛鹃〉 activeKey: '0', // 榛樿灞曞紑鍩烘湰淇℃伅 - pasteContent: null, // 绮樿创鍐呭 openEdition: '', // 缂栬緫鐗堟湰鏍囪锛岄槻姝㈠浜烘搷浣� mockdata: [], // 娴嬭瘯鏁版嵁 } @@ -687,13 +686,12 @@ config: res.config }) } else if (res.type === 'paste') { - this.setState({ - pasteContent: res.content - }, () => { - this.setState({ - pasteContent: null - }) - }) + let config = fromJS(this.state.config).toJS() + if (res.content.copyType === 'search') { + config.search.push(res.content) + } + + this.setState({config}) } } @@ -795,14 +793,11 @@ config={config} MenuID={menu.MenuID} tableFields={this.state.tableFields} - permFuncField={this.props.permFuncField} updateConfig={this.updateconfig} /> <SearchComponent menu={{MenuID: menu.MenuID, MenuName: config.MenuName}} config={config} - pasteContent={this.state.pasteContent} - sysRoles={this.props.sysRoles} updatesearch={this.updatesearch} /> <div className="calendar-wrap"> @@ -838,8 +833,6 @@ const mapStateToProps = (state) => { return { - sysRoles: state.sysRoles, - permFuncField: state.permFuncField, memberLevel: state.memberLevel } } diff --git a/src/templates/comtableconfig/index.jsx b/src/templates/comtableconfig/index.jsx index 0dee3c7..d637149 100644 --- a/src/templates/comtableconfig/index.jsx +++ b/src/templates/comtableconfig/index.jsx @@ -59,7 +59,6 @@ thawButtons: [], // 宸查�夋嫨瑕佽В鍐荤殑鎸夐挳 activeKey: '0', // 榛樿灞曞紑鍩烘湰淇℃伅 chartview: null, // 褰撳墠瑙嗗浘 - pasteContent: null, // 绮樿创閰嶇疆淇℃伅 openEdition: '' // 缂栬緫鐗堟湰鏍囪锛岄槻姝㈠浜烘搷浣� } @@ -902,7 +901,7 @@ MenuNo: config.MenuNo, ParentId: config.ParentId, fstMenuId: config.fstMenuId, - supMenuList: submenu ? submenu.options : [] + supMenuList: submenu ? submenu.children : [] } // 鑿滃崟淇℃伅楠岃瘉閫氳繃鍚庯紝璺宠浆瀛愰厤缃〉闈� @@ -1107,50 +1106,24 @@ * @description 缂栬緫鍔熻兘瀹屾垚鏇存柊锛屽寘鎷В鍐绘寜閽�佺矘璐淬�佹浛鎹㈢瓑 */ editConfig = (res) => { + + if (res.type === 'thaw') { this.setState({ thawButtons: res.thawButtons, config: res.config }) } else if (res.type === 'paste') { - this.setState({ - pasteContent: res.content - }, () => { - this.setState({ - pasteContent: null - }) - }) - } else if (res.type === 'replace') { let config = fromJS(this.state.config).toJS() - - if (res.repType === 'field') { - let origin = res.origin.toLowerCase() - let value = res.value - - config.search = config.search.map(item => { - if (item.field && item.field.toLowerCase() === origin) { - item.field = value - } else if (item.datefield && item.datefield.toLowerCase() === origin) { - item.datefield = value - } - return item - }) - config.columns = config.columns.map(item => { - if (item.field && item.field.toLowerCase() === origin) { - item.field = value - } else if (item.nameField && item.nameField.toLowerCase() === origin) { - item.nameField = value - } - return item - }) + if (res.content.copyType === 'search') { + config.search.push(res.content) + } else if (res.content.copyType === 'action') { + config.action.push(res.content) + } else if (res.content.copyType === 'columns' && res.content.columns && res.content.columns.length > 0) { + config.columns = config.columns.filter(col => !col.origin) + config.columns = [...config.columns, ...res.content.columns] } - - notification.success({ - top: 92, - message: '鏇挎崲鎴愬姛銆�', - duration: 2 - }) - this.setState({ config }) + this.setState({config}) } } @@ -1347,21 +1320,16 @@ <SettingComponent config={config} MenuID={this.props.menu.MenuID} - permFuncField={this.props.permFuncField} updatesetting={this.updateconfig} /> <SearchComponent - menu={{MenuID: this.props.menu.MenuID, MenuName: config.MenuName}} config={config} - pasteContent={this.state.pasteContent} - sysRoles={this.props.sysRoles} updatesearch={this.updatesearch} /> <div className="chart-view" style={{position: 'relative'}}> {/* 瑙嗗浘缁� 鏉冮檺 浼氬憳绛夌骇20+ */} {this.props.memberLevel >= 20 ? <ChartGroupComponent config={config} - sysRoles={this.props.sysRoles} updatechartgroup={this.updatechartgroup} /> : null} {config.charts.map(item => { @@ -1376,16 +1344,12 @@ menu={{ MenuID: this.props.menu.MenuID, MenuName: config.MenuName, MenuNo: config.MenuNo, fstMenuList: this.props.menu.fstMenuList }} config={config} tabs={this.state.tabviews} - pasteContent={this.state.pasteContent} - usefulFields={this.props.permFuncField} setSubConfig={(_btn) => this.setSubConfig(_btn, 'button')} updateaction={this.updateaction} /> <ColumnComponent config={config} menu={this.props.menu} - sysRoles={this.props.sysRoles} - pasteContent={this.state.pasteContent} updatecolumn={this.updateconfig} /> </Col> @@ -1447,8 +1411,6 @@ const mapStateToProps = (state) => { return { - sysRoles: state.sysRoles, - permFuncField: state.permFuncField, memberLevel: state.memberLevel } } diff --git a/src/templates/comtableconfig/menuform/index.jsx b/src/templates/comtableconfig/menuform/index.jsx index c428598..e8a2261 100644 --- a/src/templates/comtableconfig/menuform/index.jsx +++ b/src/templates/comtableconfig/menuform/index.jsx @@ -21,17 +21,9 @@ UNSAFE_componentWillMount () { const { menu } = this.props - let supList = [] - if (menu.supMenuList && menu.supMenuList.length > 0) { - supList = menu.supMenuList - } else if (menu.fstMenuList && menu.FstId) { - let _menu = menu.fstMenuList.filter(cell => cell.MenuID === menu.FstId)[0] - supList = _menu ? _menu.children : [] - } - this.setState({ - menulist: menu.fstMenuList, - submenulist: supList + menulist: menu.fstMenuList || [], + submenulist: menu.supMenuList || [] }) } diff --git a/src/templates/formtabconfig/index.jsx b/src/templates/formtabconfig/index.jsx index 627a566..6ccf8df 100644 --- a/src/templates/formtabconfig/index.jsx +++ b/src/templates/formtabconfig/index.jsx @@ -478,21 +478,10 @@ }) } - let roleList = [] - if (this.props.sysRoles && this.props.sysRoles.length > 0) { - roleList = this.props.sysRoles.map(role => { - return { - uuid: role.uuid, - field: role.value, - label: role.text - } - }) - } - this.setState({ modaltype: 'search', card: card, - formlist: getModalForm(card, _inputfields, _linkableFields, _linksupFields, false, roleList).map(item => { + formlist: getModalForm(card, _inputfields, _linkableFields, _linksupFields, false).map(item => { if (item.key === 'type') { item.options = item.options.filter(option => !['switch', 'checkbox', 'radio', 'checkcard', 'hint'].includes(option.value)) } @@ -502,7 +491,18 @@ } handleAction = (card) => { - let ableField = this.props.permFuncField.join(', ') + let usefulFields = sessionStorage.getItem('permFuncField') + if (usefulFields) { + try { + usefulFields = JSON.parse(usefulFields) + } catch { + usefulFields = [] + } + } else { + usefulFields = [] + } + + let ableField = usefulFields.join(', ') let functip = <div> <p style={{marginBottom: '5px'}}>{this.state.dict['model.tooltip.func.innerface'].replace('@ableField', ableField)}</p> <p>{this.state.dict['model.tooltip.func.outface']}</p> @@ -511,7 +511,7 @@ this.setState({ modaltype: 'actionEdit', card: card, - formlist: getActionForm(card, functip, this.state.config, this.props.permFuncField) + formlist: getActionForm(card, functip, this.state.config, usefulFields) }) } @@ -2073,7 +2073,6 @@ menu={this.props.menu} config={this.state.config} inputSubmit={this.settingSave} - usefulFields={this.props.permFuncField} wrappedComponentRef={(inst) => this.settingRef = inst} /> </Modal> @@ -2130,11 +2129,8 @@ } } -const mapStateToProps = (state) => { - return { - sysRoles: state.sysRoles, - permFuncField: state.permFuncField - } +const mapStateToProps = () => { + return {} } const mapDispatchToProps = () => { diff --git a/src/templates/formtabconfig/settingform/index.jsx b/src/templates/formtabconfig/settingform/index.jsx index a807e3d..9a407ea 100644 --- a/src/templates/formtabconfig/settingform/index.jsx +++ b/src/templates/formtabconfig/settingform/index.jsx @@ -12,13 +12,13 @@ dict: PropTypes.object, // 瀛楀吀椤� menu: PropTypes.object, config: PropTypes.object, - usefulFields: PropTypes.array, inputSubmit: PropTypes.any // 鍥炶溅鎻愪氦浜嬩欢 } state = { interType: (this.props.config.setting && this.props.config.setting.interType) || 'inner', columns: null, + usefulFields: [], interReadonly: false, } @@ -51,12 +51,24 @@ }) } + let usefulFields = sessionStorage.getItem('permFuncField') + if (usefulFields) { + try { + usefulFields = JSON.parse(usefulFields) + } catch { + usefulFields = [] + } + } else { + usefulFields = [] + } + this.setState({ columns: _columns, setting: _setting, interType: _setting.interType || 'inner', interReadonly: _setting.sysInterface === 'true', - datatype: _setting.datatype || 'maintable' + datatype: _setting.datatype || 'maintable', + usefulFields }) } @@ -154,9 +166,9 @@ } render() { - const { dict, usefulFields, menu } = this.props + const { dict, menu } = this.props const { getFieldDecorator } = this.props.form - const { interType, setting, datatype } = this.state + const { interType, setting, datatype, usefulFields } = this.state const formItemLayout = { labelCol: { diff --git a/src/templates/modalconfig/index.jsx b/src/templates/modalconfig/index.jsx index 04b0365..85f7f06 100644 --- a/src/templates/modalconfig/index.jsx +++ b/src/templates/modalconfig/index.jsx @@ -436,21 +436,10 @@ card.linkSubField = card.linkSubField.filter(item => fields.includes(item)) } - let roleList = [] - if (this.props.sysRoles && this.props.sysRoles.length > 0) { - roleList = this.props.sysRoles.map(role => { - return { - uuid: role.uuid, - field: role.value, - label: role.text - } - }) - } - this.setState({ visible: true, card: card, - formlist: getModalForm(card, _inputfields, _linkableFields, _linksupFields, !!this.props.editTab, roleList) + formlist: getModalForm(card, _inputfields, _linkableFields, _linksupFields, !!this.props.editTab) }) } @@ -1311,10 +1300,8 @@ } } -const mapStateToProps = (state) => { - return { - sysRoles: state.sysRoles - } +const mapStateToProps = () => { + return {} } const mapDispatchToProps = () => { diff --git a/src/templates/sharecomponent/actioncomponent/index.jsx b/src/templates/sharecomponent/actioncomponent/index.jsx index 11d168b..a0190f0 100644 --- a/src/templates/sharecomponent/actioncomponent/index.jsx +++ b/src/templates/sharecomponent/actioncomponent/index.jsx @@ -28,8 +28,6 @@ type: PropTypes.string, // 鑿滃崟绫诲瀷锛屼富琛ㄦ垨瀛愯〃 menu: PropTypes.object, // 鑿滃崟淇℃伅锛堣彍鍗昳d锛岃彍鍗曞弬鏁帮紝鑿滃崟鍚嶇О锛� config: PropTypes.object, // 鑿滃崟閰嶇疆淇℃伅 - pasteContent: PropTypes.object, // 绮樿创閰嶇疆淇℃伅 - usefulFields: PropTypes.array, // 鑷畾涔夊嚱鏁板彲鐢ㄥ瓧娈� tabs: PropTypes.array, // 鎵�鏈夋爣绛� setSubConfig: PropTypes.func, // 璁剧疆瀛愰厤缃俊鎭� updateaction: PropTypes.func // 鑿滃崟閰嶇疆鏇存柊 @@ -61,10 +59,12 @@ UNSAFE_componentWillReceiveProps (nextProps) { const { actionlist } = this.state - if (nextProps.pasteContent && nextProps.pasteContent.copyType === 'action') { - this.setState({actionlist: [...actionlist, nextProps.pasteContent]}) - this.handleAction(nextProps.pasteContent) - } else if (!is(fromJS(nextProps.config.action), fromJS(this.props.config.action)) && !is(fromJS(nextProps.config.action), fromJS(actionlist))) { + if (!is(fromJS(nextProps.config.action), fromJS(this.props.config.action)) && !is(fromJS(nextProps.config.action), fromJS(actionlist))) { + let len = nextProps.config.action.length + let item = nextProps.config.action[len - 1] + if (item.copyType && item.focus) { + this.handleAction(item) + } this.setState({actionlist: fromJS(nextProps.config.action).toJS()}) } } @@ -138,7 +138,19 @@ */ handleAction = (card) => { const { menu } = this.props - let ableField = this.props.usefulFields.join(', ') + + let usefulFields = sessionStorage.getItem('permFuncField') + if (usefulFields) { + try { + usefulFields = JSON.parse(usefulFields) + } catch { + usefulFields = [] + } + } else { + usefulFields = [] + } + + let ableField = usefulFields.join(', ') let functip = <div> <p style={{marginBottom: '5px'}}>{this.state.dict['model.tooltip.func.innerface'].replace('@ableField', ableField)}</p> <p>{this.state.dict['model.tooltip.func.outface']}</p> @@ -172,7 +184,7 @@ this.setState({ visible: true, card: card, - formlist: getActionForm(card, functip, this.props.config, this.props.usefulFields, this.props.type, menulist, this.state.printTemps) + formlist: getActionForm(card, functip, this.props.config, usefulFields, this.props.type, menulist, this.state.printTemps) }) } @@ -180,18 +192,18 @@ * @description 鍙栨秷淇濆瓨锛屽鏋滃厓绱犱负鏂版坊鍏冪礌锛屽垯浠庡簭鍒椾腑鍒犻櫎 */ editModalCancel = () => { - const { card } = this.state + const { config } = this.props + const { card, actionlist } = this.state if (card.focus) { - let actionlist = fromJS(this.state.actionlist).toJS() - - actionlist = actionlist.filter(item => item.uuid !== card.uuid) + let _actionlist = actionlist.filter(item => item.uuid !== card.uuid) this.setState({ card: null, - actionlist: actionlist, + actionlist: _actionlist, visible: false }) + this.props.updateaction({...config, action: _actionlist}) } else { this.setState({ card: null, diff --git a/src/templates/sharecomponent/chartgroupcomponent/index.jsx b/src/templates/sharecomponent/chartgroupcomponent/index.jsx index 1ba31d0..8596cd8 100644 --- a/src/templates/sharecomponent/chartgroupcomponent/index.jsx +++ b/src/templates/sharecomponent/chartgroupcomponent/index.jsx @@ -17,7 +17,6 @@ class ChartGroupComponent extends Component { static propTpyes = { config: PropTypes.object, // 鑿滃崟閰嶇疆淇℃伅 - sysRoles: PropTypes.array, // 瑙掕壊鍒楄〃锛岄粦鍚嶅崟浣跨敤 updatechartgroup: PropTypes.func // 鍥捐〃鏇存柊 } @@ -148,7 +147,7 @@ this.setState({ card: item, modaltype: _type, - formlist: getChartViewForm(item, this.props.sysRoles, _columns, actions, extraActions) + formlist: getChartViewForm(item, _columns, actions, extraActions) }) } diff --git a/src/templates/sharecomponent/columncomponent/index.jsx b/src/templates/sharecomponent/columncomponent/index.jsx index a1e0242..b24f1db 100644 --- a/src/templates/sharecomponent/columncomponent/index.jsx +++ b/src/templates/sharecomponent/columncomponent/index.jsx @@ -20,8 +20,6 @@ static propTpyes = { menu: PropTypes.object, // 涓夌骇鑿滃崟淇℃伅 config: PropTypes.object, // 閰嶇疆淇℃伅 - pasteContent: PropTypes.object, // 绮樿创閰嶇疆淇℃伅 - sysRoles: PropTypes.array, // 瑙掕壊鍒楄〃锛屾潈闄愬垎閰� updatecolumn: PropTypes.func // 鏇存柊 } @@ -50,18 +48,7 @@ const { config } = this.props const { columnlist } = this.state - if ( - nextProps.pasteContent && - nextProps.pasteContent.columns && - nextProps.pasteContent.copyType === 'columns' && - nextProps.pasteContent.columns.length > 0 - ) { - if (columnlist.filter(col => !col.origin).length === 0) { - this.setState({columnlist: nextProps.pasteContent.columns}, () => { - this.props.updatecolumn({...config, columns: nextProps.pasteContent.columns}) - }) - } - } else if (!is(fromJS(nextProps.config.columns), fromJS(config.columns)) && !is(fromJS(nextProps.config.columns), fromJS(columnlist))) { + if (!is(fromJS(nextProps.config.columns), fromJS(config.columns)) && !is(fromJS(nextProps.config.columns), fromJS(columnlist))) { this.setState({columnlist: fromJS(nextProps.config.columns).toJS()}) } } @@ -117,7 +104,7 @@ this.setState({ modaltype: 'columns', card: card, - formlist: getColumnForm(card, this.props.sysRoles, menulist) + formlist: getColumnForm(card, menulist) }) } else { this.setState({ diff --git a/src/templates/sharecomponent/searchcomponent/index.jsx b/src/templates/sharecomponent/searchcomponent/index.jsx index 6c70ffb..73306fc 100644 --- a/src/templates/sharecomponent/searchcomponent/index.jsx +++ b/src/templates/sharecomponent/searchcomponent/index.jsx @@ -18,10 +18,7 @@ class SearchComponent extends Component { static propTpyes = { - menu: PropTypes.object, // 褰撳墠鑿滃崟淇℃伅 config: PropTypes.object, // 閰嶇疆淇℃伅 - pasteContent: PropTypes.object, // 绮樿创閰嶇疆淇℃伅 - sysRoles: PropTypes.array, // 瑙掕壊鍒楄〃锛岄粦鍚嶅崟 updatesearch: PropTypes.func // 鏇存柊 } @@ -48,10 +45,12 @@ UNSAFE_componentWillReceiveProps (nextProps) { const { searchlist } = this.state - if (nextProps.pasteContent && nextProps.pasteContent.copyType === 'search') { - this.setState({searchlist: [...searchlist, nextProps.pasteContent]}) - this.handleSearch(nextProps.pasteContent) - } else if (!is(fromJS(nextProps.config.search), fromJS(this.props.config.search)) && !is(fromJS(nextProps.config.search), fromJS(searchlist))) { + if (!is(fromJS(nextProps.config.search), fromJS(this.props.config.search)) && !is(fromJS(nextProps.config.search), fromJS(searchlist))) { + let len = nextProps.config.search.length + let item = nextProps.config.search[len - 1] + if (item.copyType && item.focus) { + this.handleSearch(item) + } this.setState({searchlist: fromJS(nextProps.config.search).toJS()}) } } @@ -91,7 +90,7 @@ this.setState({ visible: true, card: card, - formlist: getSearchForm(card, this.props.sysRoles, linkableFields) + formlist: getSearchForm(card, linkableFields) }) } @@ -99,18 +98,18 @@ * @description 鍙栨秷淇濆瓨锛屽鏋滃厓绱犱负鏂版坊鍏冪礌锛屽垯浠庡簭鍒椾腑鍒犻櫎 */ editModalCancel = () => { - const { card } = this.state + const { config } = this.props + const { card, searchlist } = this.state if (card.focus) { - let searchlist = fromJS(this.state.searchlist).toJS() - - searchlist = searchlist.filter(item => item.uuid !== card.uuid) + let _searchlist = searchlist.filter(item => item.uuid !== card.uuid) this.setState({ card: null, - searchlist: searchlist, + searchlist: _searchlist, visible: false }) + this.props.updatesearch({...config, search: _searchlist}) } else { this.setState({ card: null, diff --git a/src/templates/sharecomponent/settingcalcomponent/index.jsx b/src/templates/sharecomponent/settingcalcomponent/index.jsx index 10a1a46..2f641c6 100644 --- a/src/templates/sharecomponent/settingcalcomponent/index.jsx +++ b/src/templates/sharecomponent/settingcalcomponent/index.jsx @@ -13,7 +13,6 @@ config: PropTypes.any, MenuID: PropTypes.string, tableFields: PropTypes.any, - permFuncField: PropTypes.any, updateConfig: PropTypes.func } @@ -78,7 +77,6 @@ dict={dict} config={config} tableFields={this.props.tableFields} - permFuncField={this.props.permFuncField} menuId={this.props.config.uuid} searches={config.search} wrappedComponentRef={(inst) => this.verifyRef = inst} diff --git a/src/templates/sharecomponent/settingcalcomponent/verifycard/index.jsx b/src/templates/sharecomponent/settingcalcomponent/verifycard/index.jsx index 2cc9b20..ebe803d 100644 --- a/src/templates/sharecomponent/settingcalcomponent/verifycard/index.jsx +++ b/src/templates/sharecomponent/settingcalcomponent/verifycard/index.jsx @@ -22,7 +22,6 @@ static propTpyes = { dict: PropTypes.object, // 瀛楀吀椤� tableFields: PropTypes.any, // 鏁版嵁婧愪俊鎭� - permFuncField: PropTypes.any, // 鏁版嵁婧愪俊鎭� config: PropTypes.object, // 鏁版嵁婧愪俊鎭� menuId: PropTypes.string, // 鑿滃崟Id searches: PropTypes.array, // 鎼滅储鏉′欢 @@ -338,7 +337,6 @@ <SettingForm menuId={this.props.menuId} dict={this.props.dict} - permFuncField={this.props.permFuncField} columns={columns} setting={setting} scripts={scripts} diff --git a/src/templates/sharecomponent/settingcalcomponent/verifycard/settingform/index.jsx b/src/templates/sharecomponent/settingcalcomponent/verifycard/settingform/index.jsx index 913df71..da7e7b1 100644 --- a/src/templates/sharecomponent/settingcalcomponent/verifycard/settingform/index.jsx +++ b/src/templates/sharecomponent/settingcalcomponent/verifycard/settingform/index.jsx @@ -13,7 +13,6 @@ static propTpyes = { dict: PropTypes.object, // 瀛楀吀椤� menuId: PropTypes.string, // 鑿滃崟Id - permFuncField: PropTypes.any, // 鑿滃崟Id setting: PropTypes.object, // 鏁版嵁婧愰厤缃� columns: PropTypes.array, // 鍒楄缃� scripts: PropTypes.array, // 鑷畾涔夎剼鏈� @@ -21,6 +20,24 @@ state = { interType: this.props.setting.interType || 'system', + usefulFields: [] + } + + UNSAFE_componentWillMount() { + let usefulFields = sessionStorage.getItem('permFuncField') + if (usefulFields) { + try { + usefulFields = JSON.parse(usefulFields) + } catch { + usefulFields = [] + } + } else { + usefulFields = [] + } + + this.setState({ + usefulFields + }) } handleConfirm = () => { @@ -123,9 +140,9 @@ } render() { - const { setting, permFuncField } = this.props + const { setting } = this.props const { getFieldDecorator } = this.props.form - const { interType } = this.state + const { interType, usefulFields } = this.state const formItemLayout = { labelCol: { @@ -141,9 +158,9 @@ let tooltip = null let rules = [] - if (permFuncField && permFuncField.length > 0) { - tooltip = '寮�澶村彲鐢ㄥ瓧绗︼細' + permFuncField.join(', ') - let str = '^(' + permFuncField.join('|') + ')' + if (usefulFields.length > 0) { + tooltip = '寮�澶村彲鐢ㄥ瓧绗︼細' + usefulFields.join(', ') + let str = '^(' + usefulFields.join('|') + ')' let _patten = new RegExp(str + formRule.func.innerPattern + '$', 'g') rules.push({ diff --git a/src/templates/sharecomponent/settingcomponent/index.jsx b/src/templates/sharecomponent/settingcomponent/index.jsx index ca71c7b..c96f5c3 100644 --- a/src/templates/sharecomponent/settingcomponent/index.jsx +++ b/src/templates/sharecomponent/settingcomponent/index.jsx @@ -19,7 +19,6 @@ mainsearch: PropTypes.any, // 涓昏〃鐨勬悳绱㈡潯浠讹紝褰撳瓙琛ㄨ缃帴鏀朵富琛ㄦ潯浠舵椂鏈夋晥 MenuID: PropTypes.string, // 鑿滃崟ID config: PropTypes.object, // 鑿滃崟閰嶇疆淇℃伅 - permFuncField: PropTypes.array, // 瀛樺偍杩囩▼鍙敤寮�澶村瓧娈� updatesetting: PropTypes.func } @@ -131,7 +130,7 @@ } render() { - const { config, permFuncField } = this.props + const { config } = this.props const { dict, visible, search, menu } = this.state return ( @@ -158,7 +157,6 @@ menu={menu} config={config} search={search} - permFuncField={permFuncField} wrappedComponentRef={(inst) => this.settingRef = inst} /> </Modal> diff --git a/src/templates/sharecomponent/settingcomponent/settingform/datasource/index.jsx b/src/templates/sharecomponent/settingcomponent/settingform/datasource/index.jsx index 93db0bd..c37066a 100644 --- a/src/templates/sharecomponent/settingcomponent/settingform/datasource/index.jsx +++ b/src/templates/sharecomponent/settingcomponent/settingform/datasource/index.jsx @@ -14,7 +14,6 @@ type: PropTypes.string, // 鑿滃崟绫诲瀷锛宮ain鎴杝ubtable dict: PropTypes.object, // 瀛楀吀椤� menu: PropTypes.object, // 鑿滃崟淇℃伅 - permFuncField: PropTypes.any, // 瀛樺偍杩囩▼鍙敤寮�濮嬪瓧绗� setting: PropTypes.object, // 鏁版嵁婧愰厤缃� columns: PropTypes.array, // 鍒楄缃� scripts: PropTypes.array, // 鑷畾涔夎剼鏈� @@ -27,14 +26,25 @@ } UNSAFE_componentWillMount () { - const { setting, permFuncField } = this.props + const { setting } = this.props + let usefulFields = sessionStorage.getItem('permFuncField') + if (usefulFields) { + try { + usefulFields = JSON.parse(usefulFields) + } catch { + usefulFields = [] + } + } else { + usefulFields = [] + } + let tooltip = null let rules = [] - if (permFuncField && permFuncField.length > 0) { - tooltip = '寮�澶村彲鐢ㄥ瓧绗︼細' + permFuncField.join(', ') - let str = '^(' + permFuncField.join('|') + ')' + if (usefulFields.length > 0) { + tooltip = '寮�澶村彲鐢ㄥ瓧绗︼細' + usefulFields.join(', ') + let str = '^(' + usefulFields.join('|') + ')' let _patten = new RegExp(str + formRule.func.innerPattern + '$', 'g') rules.push({ diff --git a/src/templates/sharecomponent/settingcomponent/settingform/index.jsx b/src/templates/sharecomponent/settingcomponent/settingform/index.jsx index 7755636..55002a4 100644 --- a/src/templates/sharecomponent/settingcomponent/settingform/index.jsx +++ b/src/templates/sharecomponent/settingcomponent/settingform/index.jsx @@ -18,7 +18,6 @@ dict: PropTypes.object, // 瀛楀吀椤� menu: PropTypes.object, // 鑿滃崟淇℃伅 config: PropTypes.object, // 椤甸潰閰嶇疆淇℃伅 - permFuncField: PropTypes.array, // 鑷畾涔夊嚱鏁板彲鐢ㄥ瓧娈� search: PropTypes.array // 鎼滅储鏉′欢 } @@ -378,7 +377,7 @@ } render() { - const { config, menu, dict, permFuncField } = this.props + const { config, menu, dict } = this.props const { loading, activeKey, setting, defaultSql, columns, scripts } = this.state return ( @@ -393,7 +392,6 @@ columns={columns} setting={setting} scripts={scripts} - permFuncField={permFuncField} wrappedComponentRef={(inst) => this.settingForm = inst} /> </TabPane> diff --git a/src/templates/sharecomponent/treesettingcomponent/index.jsx b/src/templates/sharecomponent/treesettingcomponent/index.jsx index 70a2779..9f99261 100644 --- a/src/templates/sharecomponent/treesettingcomponent/index.jsx +++ b/src/templates/sharecomponent/treesettingcomponent/index.jsx @@ -12,7 +12,6 @@ static propTpyes = { MenuID: PropTypes.string, // 鑿滃崟ID config: PropTypes.object, // 鑿滃崟閰嶇疆淇℃伅 - permFuncField: PropTypes.array, // 瀛樺偍杩囩▼鍙敤寮�澶村瓧娈� updatesetting: PropTypes.func } @@ -92,7 +91,6 @@ config={config} menu={this.state.menu} inputSubmit={this.settingSave} - permFuncField={this.props.permFuncField} wrappedComponentRef={(inst) => this.settingRef = inst} /> </Modal> diff --git a/src/templates/sharecomponent/treesettingcomponent/settingform/datasource/index.jsx b/src/templates/sharecomponent/treesettingcomponent/settingform/datasource/index.jsx index 02acde2..0e2884c 100644 --- a/src/templates/sharecomponent/treesettingcomponent/settingform/datasource/index.jsx +++ b/src/templates/sharecomponent/treesettingcomponent/settingform/datasource/index.jsx @@ -13,7 +13,6 @@ static propTpyes = { dict: PropTypes.object, // 瀛楀吀椤� menu: PropTypes.object, // 鑿滃崟淇℃伅 - permFuncField: PropTypes.any, // 瀛樺偍杩囩▼鍙敤寮�濮嬪瓧绗� setting: PropTypes.object, // 鏁版嵁婧愰厤缃� inputSubmit: PropTypes.func // 瑙﹀彂鎻愪氦 } @@ -25,14 +24,25 @@ } UNSAFE_componentWillMount () { - const { setting, permFuncField } = this.props + const { setting } = this.props + let usefulFields = sessionStorage.getItem('permFuncField') let tooltip = null let rules = [] - if (permFuncField && permFuncField.length > 0) { - tooltip = '寮�澶村彲鐢ㄥ瓧绗︼細' + permFuncField.join(', ') - let str = '^(' + permFuncField.join('|') + ')' + if (usefulFields) { + try { + usefulFields = JSON.parse(usefulFields) + } catch { + usefulFields = [] + } + } else { + usefulFields = [] + } + + if (usefulFields.length > 0) { + tooltip = '寮�澶村彲鐢ㄥ瓧绗︼細' + usefulFields.join(', ') + let str = '^(' + usefulFields.join('|') + ')' let _patten = new RegExp(str + formRule.func.innerPattern + '$', 'g') rules.push({ diff --git a/src/templates/sharecomponent/treesettingcomponent/settingform/index.jsx b/src/templates/sharecomponent/treesettingcomponent/settingform/index.jsx index badfe77..33a5f76 100644 --- a/src/templates/sharecomponent/treesettingcomponent/settingform/index.jsx +++ b/src/templates/sharecomponent/treesettingcomponent/settingform/index.jsx @@ -18,7 +18,6 @@ dict: PropTypes.object, // 瀛楀吀椤� menu: PropTypes.object, // 鑿滃崟淇℃伅 config: PropTypes.object, // 椤甸潰閰嶇疆淇℃伅 - permFuncField: PropTypes.array, // 瀛樺偍杩囩▼鍙敤瀛楁 inputSubmit: PropTypes.any // 鍥炶溅鎻愪氦浜嬩欢 } @@ -243,7 +242,6 @@ menu={menu} dict={this.props.dict} setting={setting} - permFuncField={this.props.permFuncField} inputSubmit={this.props.inputSubmit} wrappedComponentRef={(inst) => this.settingForm = inst} /> diff --git a/src/templates/subtableconfig/index.jsx b/src/templates/subtableconfig/index.jsx index 6cdd3a1..a5e680a 100644 --- a/src/templates/subtableconfig/index.jsx +++ b/src/templates/subtableconfig/index.jsx @@ -63,7 +63,6 @@ thawButtons: [], // 宸查�夋嫨瑕佽В鍐荤殑鎸夐挳 activeKey: '0', // 榛樿灞曞紑鍩烘湰淇℃伅 chartview: null, // 褰撳墠瑙嗗浘 - pasteContent: null, // 绮樿创鍐呭 openEdition: '' // 缂栬緫鐗堟湰鏍囪锛岄槻姝㈠浜烘搷浣� } @@ -922,13 +921,17 @@ config: res.config }) } else if (res.type === 'paste') { - this.setState({ - pasteContent: res.content - }, () => { - this.setState({ - pasteContent: null - }) - }) + let config = fromJS(this.state.config).toJS() + if (res.content.copyType === 'search') { + config.search.push(res.content) + } else if (res.content.copyType === 'action') { + config.action.push(res.content) + } else if (res.content.copyType === 'columns' && res.content.columns && res.content.columns.length > 0) { + config.columns = config.columns.filter(col => !col.origin) + config.columns = [...config.columns, ...res.content.columns] + } + + this.setState({config}) } } @@ -1099,21 +1102,16 @@ config={config} mainsearch={!this.props.editSubTab && this.props.editTab.mainsearch ? this.props.editTab.mainsearch : ''} MenuID={config.uuid} - permFuncField={this.props.permFuncField} updatesetting={this.updateconfig} /> <SearchComponent - menu={{MenuID: config.uuid, MenuName: config.tabName}} config={config} - pasteContent={this.state.pasteContent} - sysRoles={this.props.sysRoles} updatesearch={this.updatesearch} /> <div className="chart-view" style={{position: 'relative'}}> {/* 瑙嗗浘缁� 鏉冮檺 浼氬憳绛夌骇20+ */} {this.props.memberLevel >= 20 ? <ChartGroupComponent config={config} - sysRoles={this.props.sysRoles} updatechartgroup={this.updatechartgroup} /> : null} {config.charts.map(item => { @@ -1128,16 +1126,12 @@ menu={{MenuID: config.uuid, MenuName: config.tabName, MenuNo: config.tabNo, fstMenuList: this.props.menu.fstMenuList}} config={config} tabs={this.state.tabviews} - pasteContent={this.state.pasteContent} - usefulFields={this.props.permFuncField} setSubConfig={this.setSubConfig} updateaction={this.updateaction} /> <ColumnComponent config={config} menu={this.props.menu} - sysRoles={this.props.sysRoles} - pasteContent={this.state.pasteContent} updatecolumn={this.updateconfig} /> </Col> @@ -1191,8 +1185,6 @@ const mapStateToProps = (state) => { return { - sysRoles: state.sysRoles, - permFuncField: state.permFuncField, memberLevel: state.memberLevel } } diff --git a/src/templates/treepageconfig/index.jsx b/src/templates/treepageconfig/index.jsx index 991ad20..4b887e6 100644 --- a/src/templates/treepageconfig/index.jsx +++ b/src/templates/treepageconfig/index.jsx @@ -45,7 +45,6 @@ delTabs: [], // 鍒犻櫎鏍囩鍒楄〃 tabviews: [], // 鎵�鏈夋爣绛鹃〉 activeKey: '0', // 榛樿灞曞紑鍩烘湰淇℃伅 - pasteContent: null, // 绮樿创閰嶇疆淇℃伅 openEdition: '' // 缂栬緫鐗堟湰鏍囪锛岄槻姝㈠浜烘搷浣� } @@ -798,7 +797,6 @@ <TreeSettingComponent config={config} MenuID={this.props.menu.MenuID} - permFuncField={this.props.permFuncField} updatesetting={this.updateconfig} /> <Card @@ -867,8 +865,6 @@ const mapStateToProps = (state) => { return { - sysRoles: state.sysRoles, - permFuncField: state.permFuncField, memberLevel: state.memberLevel } } diff --git a/src/templates/zshare/editcomponent/index.jsx b/src/templates/zshare/editcomponent/index.jsx index 8d4083f..7d7268f 100644 --- a/src/templates/zshare/editcomponent/index.jsx +++ b/src/templates/zshare/editcomponent/index.jsx @@ -164,6 +164,7 @@ res.type = 'date' } } + res.copyType = 'search' this.setState({ pasteVisible: false @@ -207,6 +208,7 @@ res.type = 'date' } } + res.copyType = 'form' if (_config.groups.length > 0) { _config.groups.forEach(group => { diff --git a/src/templates/zshare/formconfig.jsx b/src/templates/zshare/formconfig.jsx index 46ceaa8..a5d10b9 100644 --- a/src/templates/zshare/formconfig.jsx +++ b/src/templates/zshare/formconfig.jsx @@ -284,10 +284,20 @@ /** * @description 鑾峰彇鎼滅储鏉′欢琛ㄥ崟閰嶇疆淇℃伅 * @param {object} card // 鎼滅储鏉′欢瀵硅薄 - * @param {Array} roleList // 瑙掕壊鍒楄〃 * @param {Array} linkableFields // 鍙叧鑱斿瓧娈� */ -export function getSearchForm (card, roleList, linkableFields) { +export function getSearchForm (card, linkableFields) { + let roleList = sessionStorage.getItem('sysRoles') + if (roleList) { + try { + roleList = JSON.parse(roleList) + } catch { + roleList = [] + } + } else { + roleList = [] + } + return [ { type: 'text', @@ -602,10 +612,10 @@ * @param {*} card 缂栬緫鎸夐挳 * @param {*} functip 鐢熸垚瀛樺偍杩囩▼鎻愮ず * @param {*} config 椤甸潰閰嶇疆 - * @param {*} permFuncField 瀛樺偍杩囩▼鍙敤鐨勫紑濮嬪瓧娈� + * @param {*} usefulFields 瀛樺偍杩囩▼鍙敤鐨勫紑濮嬪瓧娈� * @param {*} type 鎸夐挳绫诲瀷锛岀敤浜庡尯鍒嗗彲閫夌殑鎵撳紑鏂瑰紡 */ -export function getActionForm (card, functip, config, permFuncField, type, menulist = [], printTemps = []) { +export function getActionForm (card, functip, config, usefulFields, type, menulist = [], printTemps = []) { let opentypes = [ { value: 'pop', @@ -753,7 +763,7 @@ label: Formdict['header.form.innerFunc'], initVal: card.innerFunc || '', tooltip: functip, - fields: permFuncField, + fields: usefulFields, tooltipClass: 'middle', required: card.intertype === 'inner', readonly: false @@ -1055,10 +1065,20 @@ /** * @description 鑾峰彇鏄剧ず鍒楄〃鍗曢厤缃俊鎭� * @param {object} card // 鎼滅储鏉′欢瀵硅薄 - * @param {Array} roleList // 瑙掕壊鍒楄〃-榛戝悕鍗� * @param {Array} menulist // 鑿滃崟鍒楄〃-鐢ㄤ簬瀛楁閫忚 */ -export function getColumnForm (card, roleList = [], menulist = []) { +export function getColumnForm (card, menulist = []) { + let roleList = sessionStorage.getItem('sysRoles') + if (roleList) { + try { + roleList = JSON.parse(roleList) + } catch { + roleList = [] + } + } else { + roleList = [] + } + return [ { type: 'text', @@ -1341,12 +1361,22 @@ /** * @description 鑾峰彇鍥捐〃瑙嗗浘澶栭儴閰嶇疆琛ㄥ崟 * @param {object} card // 鎼滅储鏉′欢瀵硅薄 - * @param {Array} roleList // 瑙掕壊鍒楄〃-榛戝悕鍗� * @param {Array} columns // 鏄剧ず鍒� * @param {Array} actions // 鎸夐挳缁別xcel * @param {Array} extraActions // 甯歌鎸夐挳 */ -export function getChartViewForm (card, roleList = [], _columns, actions, extraActions) { +export function getChartViewForm (card, _columns, actions, extraActions) { + let roleList = sessionStorage.getItem('sysRoles') + if (roleList) { + try { + roleList = JSON.parse(roleList) + } catch { + roleList = [] + } + } else { + roleList = [] + } + let _charts = [{ value: 'line', text: '鎶樼嚎鍥�' @@ -1787,9 +1817,26 @@ * @param {*} linkableFields // 鍙叧鑱旇〃鍗� * @param {*} linksupFields // 涓婄骇琛ㄥ崟 * @param {*} subtable // 鏄惁涓哄瓙琛ㄨ〃鍗� - * @param {*} roleList // 瑙掕壊鍒楄〃-榛戝悕鍗� */ -export function getModalForm (card, inputfields, linkableFields, linksupFields, subtable = false, roleList = []) { +export function getModalForm (card, inputfields, linkableFields, linksupFields, subtable = false) { + let roleList = sessionStorage.getItem('sysRoles') + if (roleList) { + try { + roleList = JSON.parse(roleList) + roleList = roleList.map(role => { + return { + uuid: role.uuid, + field: role.value, + label: role.text + } + }) + } catch { + roleList = [] + } + } else { + roleList = [] + } + let _openType = [] let _fieldlength = 50 diff --git a/src/views/menudesign/index.jsx b/src/views/menudesign/index.jsx index 5b7d7aa..49ff781 100644 --- a/src/views/menudesign/index.jsx +++ b/src/views/menudesign/index.jsx @@ -14,7 +14,7 @@ import antdEnUS from 'antd/es/locale/en_US' import antdZhCN from 'antd/es/locale/zh_CN' import asyncComponent from '@/utils/asyncComponent' -import { modifyCustomMenu, initPermission } from '@/store/action' +import { modifyCustomMenu } from '@/store/action' import './index.scss' @@ -91,10 +91,13 @@ closeView = () => { const { oriConfig, config } = this.state + if (!config) { + window.close() + return + } + let _config = fromJS(config).toJS() delete _config.fstMenuList - delete _config.permFuncField - delete _config.sysRoles delete _config.tableFields if (!is(fromJS(oriConfig), fromJS(_config))) { @@ -260,8 +263,6 @@ let _config = fromJS(config).toJS() delete _config.fstMenuList - delete _config.permFuncField - delete _config.sysRoles delete _config.tableFields let param = { @@ -411,10 +412,8 @@ _permFuncField = _permFuncField.sort() } - let config = {...this.state.config, sysRoles: _sysRoles, permFuncField: _permFuncField} - - this.setState({config}) - this.props.modifyCustomMenu(config) + sessionStorage.setItem('sysRoles', JSON.stringify(_sysRoles)) + sessionStorage.setItem('permFuncField', JSON.stringify(_permFuncField)) } }) } @@ -576,8 +575,7 @@ const mapDispatchToProps = (dispatch) => { return { - modifyCustomMenu: (customMenu) => dispatch(modifyCustomMenu(customMenu)), - initPermission: (sysRoles, permFuncField) => dispatch(initPermission(sysRoles, permFuncField)) + modifyCustomMenu: (customMenu) => dispatch(modifyCustomMenu(customMenu)) } } -- Gitblit v1.8.0