import React from 'react'; import { inject, observer } from 'mobx-react'; import { Button, Tabs,Card,Pagination,Row,Col } from 'antd'; import {toJS} from "mobx"; import {Condition,getAdButtons} from './list/listCondition'; import {WeaTableNew} from 'comsMobx'; import ModifyLogDialog from "./dialog/modifyLogDialog" import ExchangeDialog from './dialog/exchangeDialog' const WeaTable = WeaTableNew.WeaTable; import {WeaRightMenu,WeaTop,WeaTab,WeaErrorPage,WeaBrowser,WeaTools,WeaProgress,WeaLocaleProvider} from 'ecCom'; const getLabel = WeaLocaleProvider.getLabel; @inject('prjApprovalStore') @observer class Approval extends React.Component { constructor(props) { super(props); window._cptTable = { reLoad: props.prjApprovalStore.reLoad } } componentDidMount() { this.doInit(this.props); } doInit(props){ const { location,prjApprovalStore } = props; const {initDatas,doSearch,initTreeDatas} = prjApprovalStore; initDatas(); doSearch(); } componentWillReceiveProps(nextProps){ if(this.props.location.key !== nextProps.location.key){ const { location,prjApprovalStore } = nextProps; prjApprovalStore.clearStatus(); this.doInit(nextProps); } } componentWillUnmount(){ const { prjApprovalStore } = this.props; prjApprovalStore.clearStatus(); } render(){ const {prjApprovalStore} = this.props; const {loading,tableStore,showSearchAd,form,exchangeStore,logTableStore,logVisible} = prjApprovalStore; const formParams = form.getFormParams() || {}; return ( } iconBgcolor='#217346' buttons={this.getTopButtons()} buttonSpace={10} showDropIcon={true} dropMenuDatas={this.getRightMenu()} onDropMenuClick={this.onRightMenuClick.bind(this)} > {prjApprovalStore.setShowSearchAd(bool)}} hideSearchAd={()=> prjApprovalStore.setShowSearchAd(false)} searchsAd={
} showSearchAd={showSearchAd} onSearch={v=>{prjApprovalStore.doSearch()}} onSearchChange={v=>{prjApprovalStore.appendFormFields({taskname:{value:v}})}} /> this.reRenderColumns(c)} tableWidth={this.tableWidth} onOperatesClick={this.onOperatesClick.bind(this)} />
) } getTopButtons(){ const {prjApprovalStore} = this.props; const {rightMenu,tableStore} = prjApprovalStore; let {selectedRowKeys} = tableStore; let btnArr = []; let that = this; const isDisabled = !(selectedRowKeys.length>0 && `${toJS(selectedRowKeys)}`); rightMenu && rightMenu.length>0 && toJS(rightMenu).map(m=>{ m.isTop == '1' && btnArr.length < 4 && btnArr.push( ); }); return btnArr; } getRightMenu(){ const {prjApprovalStore }= this.props; const {rightMenu,tableStore} = prjApprovalStore; let {selectedRowKeys} = tableStore; let btnArr = []; const isDisabled = !(selectedRowKeys.length>0 && `${toJS(selectedRowKeys)}`); rightMenu && rightMenu.length>0 && rightMenu.map(m=>{ btnArr.push({ icon: , content: m.menuName, disabled:isDisabled && m.isControl == "1" }) }); return btnArr } onRightMenuClick(key){ const {prjApprovalStore }= this.props; const {rightMenu,tableStore} = prjApprovalStore; let {selectedRowKeys} = tableStore; let that = this; rightMenu && rightMenu.length>0 && rightMenu.map((m,i)=>{ if(Number(key) == i){ let fn = m.menuFun.indexOf('this') >= 0 ? `${m.menuFun.split('this')[0]})` : m.menuFun; if(m.type == "BTN_COLUMN"){ //定制列 prjApprovalStore.onShowColumn(); }else if(m.type == "BTN_BATCHAPPROVE"){ prjApprovalStore.doTaskApprovalOpt({method:'approve',taskids:`${toJS(selectedRowKeys)}`}); }else if(m.type == "BTN_BATCHBACK"){ prjApprovalStore.doTaskApprovalOpt({method:"refuse",taskids:`${toJS(selectedRowKeys)}`}); } } }); } reRenderColumns(columns){ columns.forEach((c,i)=>{ if(c.dataIndex=='finish'){ c.render = function(text, record){ return } } else { // c.render = function(text, record){ // let valueSpan = record[c.dataIndex + "span"] !== undefined ? record[c.dataIndex + "span"] : record[c.dataIndex]; // return // } } }) return columns; } tableWidth = (columns) => { let width = 0; let cols = 0; columns.map(col => { if (col.display === 'true') { let oldwidth = col.oldWidth || '10%'; let widthInt = parseFloat(oldwidth.replace('%', '')); if (widthInt <= 0) { widthInt = 10; } width += widthInt; cols++ } }) //超过10列,才出现滚动条,width>100才出现滚动条 if(cols<=10){ width = 100 ; } return `${width}%`; } onOperatesClick(record,index,operate,flag){ let that = this; const {prjApprovalStore }= this.props; const {doTaskApprovalOpt,viewModifyLog,exchangeStore} = prjApprovalStore; let _href = operate && operate.href ? operate.href : ""; let fn = _href.replace("javascript:",""); fn = fn.substring(0,fn.indexOf('(')); if(fn != ""){ if("onApprove"==fn){ doTaskApprovalOpt({method:'approve',taskids:record.randomFieldId}); }else if('onReject' == fn){ doTaskApprovalOpt({method:"refuse",taskids:record.randomFieldId}); }else if('onLog' == fn){ viewModifyLog(record.randomFieldId); this.refs.modifyLogDialog.setVisible(true); }else if('onDiscuss' == fn){ //相关交流 exchangeStore.handleExchangeDialog(true,"task",record.randomFieldId,{}) } } } onEnterSearch = () =>{ const {prjApprovalStore} = this.props; prjApprovalStore.doSearch(); prjApprovalStore.setShowSearchAd(false); } } export default WeaTools.tryCatch(React, props => , {error: ""} )(Approval);