From a1e9b18a4dbfd21e1bf4d5cb60974ac2f0115efd Mon Sep 17 00:00:00 2001 From: king <18310653075@163.com> Date: 星期五, 30 五月 2025 15:18:44 +0800 Subject: [PATCH] 2025-05-30 --- src/tabviews/zshare/actionList/index.jsx | 123 ++++++++++++++++++++++++++++++++++------- 1 files changed, 102 insertions(+), 21 deletions(-) diff --git a/src/tabviews/zshare/actionList/index.jsx b/src/tabviews/zshare/actionList/index.jsx index 068783c..c0945f5 100644 --- a/src/tabviews/zshare/actionList/index.jsx +++ b/src/tabviews/zshare/actionList/index.jsx @@ -1,7 +1,8 @@ import React, {Component} from 'react' import PropTypes from 'prop-types' import { is, fromJS } from 'immutable' -import { Affix } from 'antd' +import { Affix, Dropdown } from 'antd' +import { DownOutlined } from '@ant-design/icons' import asyncComponent from './asyncButtonComponent' import './index.scss' @@ -14,42 +15,61 @@ const NewPageButton = asyncComponent(() => import('./newpagebutton')) const ChangeUserButton = asyncComponent(() => import('./changeuserbutton')) const PrintButton = asyncComponent(() => import('./printbutton')) +const FuncMegvii = asyncComponent(() => import('./funcMegvii')) +const FuncZip = asyncComponent(() => import('./funczip')) +const EditLine = asyncComponent(() => import('./editLine')) +const ExportPdf = asyncComponent(() => import('./exportPdf')) +const FuncButton = asyncComponent(() => import('./funcbutton')) class ActionList extends Component { static propTpyes = { BID: PropTypes.any, // 涓昏〃ID BData: PropTypes.any, // 涓昏〃鏁版嵁 selectedData: PropTypes.any, // 瀛愯〃涓�夋嫨鏁版嵁 - Tab: PropTypes.any, // 濡傛灉褰撳墠鍏冪礌涓烘爣绛炬椂锛宼ab涓烘爣绛句俊鎭� MenuID: PropTypes.string, // 鑿滃崟ID actions: PropTypes.array, // 鎸夐挳缁� columns: PropTypes.array, // 鏄剧ず鍒� setting: PropTypes.any, // 椤甸潰閫氱敤璁剧疆 - ContainerId: PropTypes.any // tab椤甸潰ID锛岀敤浜庡脊绐楁帶鍒� } - state = {} + state = { + actions: [], + mores: null + } + + UNSAFE_componentWillMount() { + const { setting, actions } = this.props + + if (!setting.btnlimit || setting.btnlimit >= actions.length) { + this.setState({actions: actions}) + } else { + let mores = fromJS(actions).toJS() + + this.setState({ + actions: mores.splice(0, setting.btnlimit), + mores + }) + } + } shouldComponentUpdate (nextProps, nextState) { return !is(fromJS(this.props), fromJS(nextProps)) || !is(fromJS(this.state), fromJS(nextState)) } getButtonList = (actions) => { - const { BID, BData, MenuID, Tab, columns, setting, ContainerId, selectedData } = this.props - + const { BID, BData, MenuID, columns, setting, selectedData } = this.props return actions.map(item => { if (['exec', 'prompt', 'pop'].includes(item.OpenType)) { return ( <NormalButton key={item.uuid} show={item.show || 'actionList'} + disabled={false} BID={BID} - Tab={Tab} btn={item} BData={BData} setting={setting} columns={columns} - ContainerId={ContainerId} selectedData={selectedData} /> ) @@ -58,8 +78,8 @@ <ExcelInButton key={item.uuid} show={item.show || 'actionList'} + disabled={false} BID={BID} - Tab={Tab} btn={item} BData={BData} setting={setting} @@ -71,11 +91,12 @@ <ExcelOutButton key={item.uuid} show={item.show || 'actionList'} + disabled={false} BID={BID} - Tab={Tab} btn={item} BData={BData} setting={setting} + selectedData={selectedData} /> ) } else if (item.OpenType === 'popview') { @@ -83,8 +104,8 @@ <PopupButton key={item.uuid} show={item.show || 'actionList'} + disabled={false} BID={BID} - Tab={Tab} btn={item} BData={BData} setting={setting} @@ -96,10 +117,11 @@ <TabButton key={item.uuid} show={item.show || 'actionList'} + disabled={false} btn={item} + BID={BID} BData={BData} MenuID={MenuID} - setting={setting} selectedData={selectedData} /> ) @@ -107,10 +129,12 @@ return ( <NewPageButton key={item.uuid} - show="actionList" + show={item.show || 'actionList'} + disabled={false} + BID={BID} btn={item} BData={BData} - setting={setting} + columns={columns} selectedData={selectedData} /> ) @@ -120,6 +144,7 @@ <ChangeUserButton key={item.uuid} show={item.show || 'actionList'} + disabled={false} BID={BID} btn={item} BData={BData} @@ -133,12 +158,62 @@ <PrintButton key={item.uuid} show={item.show || 'actionList'} + disabled={false} BID={BID} - Tab={Tab} btn={item} BData={BData} setting={setting} - ContainerId={ContainerId} + columns={columns} + selectedData={selectedData} + /> + ) + } else if (item.funcType === 'megvii') { + return ( + <FuncMegvii + key={item.uuid} + show={item.show || 'actionList'} + disabled={false} + BID={BID} + btn={item} + setting={setting} + selectedData={selectedData} + /> + ) + } else if (item.funcType === 'filezip') { + return ( + <FuncZip + key={item.uuid} + disabled={false} + BID={BID} + btn={item} + BData={BData} + setting={setting} + selectedData={selectedData} + /> + ) + } else if (item.funcType === 'expPdf') { + return ( + <ExportPdf + key={item.uuid} + btn={item} + /> + ) + } else if (item.funcType === 'addline' || item.funcType === 'delline') { + return ( + <EditLine + key={item.uuid} + disabled={false} + btn={item} + selectedData={selectedData} + /> + ) + } else { + return ( + <FuncButton + key={item.uuid} + BID={BID} + btn={item} + columns={columns} selectedData={selectedData} /> ) @@ -149,21 +224,27 @@ } render() { - const { setting, MenuID, actions } = this.props - let fixed = setting.actionfixed && setting.tabType === 'main' // 鎸夐挳鏄惁鍥哄畾鍦ㄥご閮� + const { setting } = this.props + const { actions, mores } = this.state - if (fixed && MenuID) { + if (setting.actionfixed === 'true') { return ( <Affix offsetTop={48}> - <div className="button-list toolbar-button" id={fixed ? MenuID + 'mainaction' : ''}> + <div className="button-list toolbar-button"> {this.getButtonList(actions)} + {mores ? <Dropdown overlay={<div className="mk-button-dropdown-wrap">{this.getButtonList(mores)}</div>} trigger={['hover']}> + <div className="mk-button-more">{window.GLOB.dict['more'] || '鏇村'}<DownOutlined/></div> + </Dropdown> : null} </div> </Affix> ) } else { return ( - <div className="button-list toolbar-button" id={fixed ? MenuID + 'mainaction' : ''}> + <div className="button-list toolbar-button"> {this.getButtonList(actions)} + {mores ? <Dropdown overlay={<div className="mk-button-dropdown-wrap">{this.getButtonList(mores)}</div>} trigger={['hover']}> + <div className="mk-button-more">{window.GLOB.dict['more'] || '鏇村'}<DownOutlined/></div> + </Dropdown> : null} </div> ) } -- Gitblit v1.8.0