From cb9ade2afd2a367ad767bc605ab7086c695dd010 Mon Sep 17 00:00:00 2001 From: king <18310653075@163.com> Date: 星期五, 09 十二月 2022 15:53:32 +0800 Subject: [PATCH] 2022-12-09 --- src/tabviews/zshare/actionList/tabbutton/index.jsx | 125 ++++++++++++++++------------------------- 1 files changed, 49 insertions(+), 76 deletions(-) diff --git a/src/tabviews/zshare/actionList/tabbutton/index.jsx b/src/tabviews/zshare/actionList/tabbutton/index.jsx index 353a566..c4b2567 100644 --- a/src/tabviews/zshare/actionList/tabbutton/index.jsx +++ b/src/tabviews/zshare/actionList/tabbutton/index.jsx @@ -1,6 +1,5 @@ import React, {Component} from 'react' import PropTypes from 'prop-types' -import {connect} from 'react-redux' import { is, fromJS } from 'immutable' import { Button, notification } from 'antd' @@ -12,14 +11,12 @@ class TabButton extends Component { static propTpyes = { - show: PropTypes.any, // 鎸夐挳鏄剧ず鏍峰紡鎺у埗 BData: PropTypes.any, // 涓昏〃鏁版嵁 + BID: PropTypes.any, MenuID: PropTypes.string, // 鑿滃崟ID btn: PropTypes.object, // 鎸夐挳 selectedData: PropTypes.any, // 瀛愯〃涓�夋嫨鏁版嵁 - setting: PropTypes.any, // 椤甸潰閫氱敤璁剧疆 disabled: PropTypes.any, // 琛屾寜閽鐢� - lineId: PropTypes.any, // 琛岀储寮�+涓婚敭鍊硷紝鐢ㄤ簬琛屾寜閽弻鍑� } state = { @@ -112,21 +109,14 @@ * @description 瑙﹀彂鎸夐挳鎿嶄綔 */ actionTrigger = (triggerId, record, type) => { - const { setting, btn, selectedData } = this.props + const { btn, selectedData, BID } = this.props const { disabled } = this.state if (disabled) return - if (triggerId) { - if (btn.uuid !== triggerId) return - if (this.props.lineId && record && record[0] && this.props.lineId !== record[0].$$key) { - return - } - } + if (triggerId && btn.uuid !== triggerId) return - if (type === 'linkbtn' && selectedData && selectedData.length === 1) { - if (record[0].$Index !== selectedData[0].$Index) { - return - } + if (type === 'linkbtn' && !btn.$toolbtn && !is(fromJS(selectedData || []), fromJS(record))) { + return } let data = record || selectedData || [] @@ -143,8 +133,10 @@ let primaryId = '' - if (btn.Ot === 'requiredSgl' && setting.primaryKey) { - primaryId = data[0][setting.primaryKey] || '' + if (btn.Ot === 'requiredSgl') { + primaryId = data[0].$$uuid || '' + } else if (btn.Ot === 'notRequired' && BID) { + primaryId = BID } let newtab = {} @@ -162,19 +154,17 @@ primaryId: primaryId } } - } else { - let menu = null + } else if (btn.linkmenu && btn.linkmenu.length > 0) { + let menuId = btn.linkmenu.slice(-1)[0] + let menu = window.GLOB.mkThdMenus.filter(m => m.MenuID === menuId)[0] - if (btn.MenuID) { + if (!menu && btn.MenuName && btn.MenuID) { menu = { MenuID: btn.MenuID, MenuName: btn.MenuName, MenuNo: btn.MenuNo, type: btn.tabType } - } else if (btn.linkmenu && btn.linkmenu.length > 0) { - let menu_id = btn.linkmenu.slice(-1)[0] - menu = this.props.permMenus.filter(m => m.MenuID === menu_id)[0] || '' } if (!menu) { @@ -194,11 +184,7 @@ } } - if (['linkage_navigation', 'linkage', 'menu_board'].includes(window.GLOB.navBar)) { - MKEmitter.emit('modifyTabs', newtab, 'replace') - } else { - MKEmitter.emit('modifyTabs', newtab, 'plus', true) - } + MKEmitter.emit('modifyTabs', newtab, true) MKEmitter.emit('openNewTab') if (window.GLOB.systemType === 'production') { @@ -207,60 +193,47 @@ } render() { - const { btn, show } = this.props + const { btn } = this.props const { disabled, hidden } = this.state if (hidden) return null - if (show === 'actionList') { - return ( - <Button - className={'mk-btn mk-' + btn.class} - icon={btn.icon} - disabled={disabled} - title={disabled ? (btn.reason || '') : ''} - onClick={(e) => {e.stopPropagation(); this.actionTrigger()}} - >{btn.label}</Button> - ) - } else { // icon銆乼ext銆� all 鍗$墖 - let label = '' - let icon = '' + let label = '' + let icon = '' + let type = 'link' + let className = '' - if (show === 'button') { - label = btn.label - icon = btn.icon || '' - } else if (show === 'link') { - label = <span>{btn.label}{btn.icon ? <MkIcon style={{marginLeft: '8px'}} type={btn.icon}/> : ''}</span> - icon = '' - } else if (show === 'icon') { - icon = btn.icon || '' - // } else if (show === 'text') { - } else { - label = btn.label - } - - return ( - <Button - type="link" - title={disabled ? (btn.reason || '') : (show === 'icon' ? btn.label : '')} - style={btn.style} - disabled={disabled} - icon={icon} - onClick={(e) => {e.stopPropagation(); this.actionTrigger()}} - >{label}</Button> - ) + if (btn.show === 'button') { + label = btn.label + icon = btn.icon || '' + } else if (btn.show === 'link') { + label = <span>{btn.label}{btn.icon ? <MkIcon style={{marginLeft: '8px'}} type={btn.icon}/> : ''}</span> + icon = '' + } else if (btn.show === 'icon') { + icon = btn.icon || '' + } else if (!btn.$toolbtn) { + icon = btn.icon || '' + label = btn.label + className = 'mk-btn mk-' + btn.class + } else { + type = '' + icon = btn.icon || '' + label = btn.label + className = 'mk-btn mk-' + btn.class } + + return ( + <Button + type={type} + title={disabled ? (btn.reason || '') : (btn.show === 'icon' ? btn.label : '')} + style={btn.style || null} + disabled={disabled} + icon={icon} + className={className} + onClick={(e) => {e.stopPropagation(); this.actionTrigger()}} + >{label}</Button> + ) } } -const mapStateToProps = (state) => { - return { - permMenus: state.permMenus, - } -} - -const mapDispatchToProps = () => { - return {} -} - -export default connect(mapStateToProps, mapDispatchToProps)(TabButton) \ No newline at end of file +export default TabButton \ No newline at end of file -- Gitblit v1.8.0