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'; const WeaTable = WeaTableNew.WeaTable; import {WeaRightMenu,WeaTop,WeaTab,WeaErrorPage,WeaBrowser,WeaTools,WeaLeftRightLayout,WeaProgress,WeaLocaleProvider} from 'ecCom'; import ListLeftTree from '../list/listLeftTree' import ShareDialog from '../dialog/shareDialog' import ExchangeDialog from '../dialog/exchangeDialog' import ProjectDialog from '../dialog/projectDialog' const getLabel = WeaLocaleProvider.getLabel; @inject('queryPrjStore') @observer class QueryProjectResult extends React.Component { constructor(props) { super(props); this.doInit(this.props); } doInit(props){ const { location:{query},queryPrjStore } = props; const {initTreeDatas,doSearch,initDatas,form} = queryPrjStore; initDatas(query); //doSearch(); initTreeDatas(); } componentDidMount() { const {queryPrjStore, location:{query},} = this.props; queryPrjStore.initDatas(query); } componentWillReceiveProps(nextProps){ const keyOld = this.props.location.key; const keyNew = nextProps.location.key; const queryOld = this.props.location.query; const queryNew = nextProps.location.query; //点击菜单路由刷新组件 const { queryPrjStore } = nextProps; if(keyOld !== keyNew||queryOld !== queryNew) { queryPrjStore.clearStatus(); this.doInit(nextProps); } } componentWillUnmount(){ const { queryPrjStore } = this.props; queryPrjStore.clearStatus(); } render(){ const {queryPrjStore} = this.props; const {title,loading,tableStore,showSearchAd,form,exchangeStore,projectInfoStore,reLoad,showLeft} = queryPrjStore; const formParams = form.getFormParams() || {}; return ( } iconBgcolor='#217346' buttons={this.getTopButtons()} buttonSpace={10} showDropIcon={true} dropMenuDatas={this.getRightMenu()} onDropMenuClick={this.onRightMenuClick.bind(this)} > } onCollapse={showLeft => queryPrjStore.setLeftShow(showLeft)} > {queryPrjStore.setShowSearchAd(bool)}} hideSearchAd={()=> queryPrjStore.setShowSearchAd(false)} searchsAd={
} showSearchAd={showSearchAd} onSearch={v=>{queryPrjStore.doSearch()}} onSearchChange={v=>{queryPrjStore.appendFormFields({name:{value:v}})}} onChange={ this.changeData } /> reLoad()} getColumns={c=>this.reRenderColumns(c)} tableWidth={this.tableWidth} onOperatesClick={this.onOperatesClick.bind(this)} />
) } 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}%`; } onEnterSearch=() =>{ const {queryPrjStore} = this.props; queryPrjStore.doSearch(); queryPrjStore.setShowSearchAd(false); } getTopButtons(){ const {queryPrjStore} = this.props; const {rightMenu,tableStore} = queryPrjStore; let {selectedRowKeys} = tableStore; let btnArr = []; let that = this; const isDisabled = !(selectedRowKeys.length>0 && `${toJS(selectedRowKeys)}`); rightMenu && rightMenu.length>0 && toJS(rightMenu).map(m=>{ let fn = m.menuFun.indexOf('this') >= 0 ? `${m.menuFun.split('this')[0]})` : m.menuFun; m.isTop == '1' && btnArr.length < 4 && btnArr.push( ); }); return btnArr; } getRightMenu(){ const {queryPrjStore }= this.props; const {rightMenu} = queryPrjStore; let btnArr = []; rightMenu && rightMenu.length>0 && rightMenu.map(m=>{ btnArr.push({ icon: , content: m.menuName }) }); return btnArr } onRightMenuClick(key){ const {queryPrjStore }= this.props; const {rightMenu} = queryPrjStore; 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_SEARCH"){ queryPrjStore.doSearch(); }else if(m.type == "BTN_COLUMN"){ //定制列 queryPrjStore.onShowColumn(); }else if(m.type == "BTN_EXPORT"){ queryPrjStore.doPrjExcelExp(); } } }); } 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; } changeData=(key)=>{ const {queryPrjStore} = this.props; queryPrjStore.setShowSearchAd(false); queryPrjStore.doSearch({ tabkey:key }); } onOperatesClick(record,index,operate,flag){ const {queryPrjStore} = this.props; const {shareStore,exchangeStore,projectInfoStore} = queryPrjStore; let _href = operate && operate.href ? operate.href : ""; let fn = _href.replace("javascript:",""); fn = fn.substring(0,fn.indexOf('(')); let that = this; if(fn != ""){ if("onShare"==fn){ //共享 shareStore.handleShareDialog(true,"prj",record.randomFieldId) }else if('onNormal' == fn){ //正常 queryPrjStore.doPlanOpt({method:'normal',prjid:record.randomFieldId}) }else if('onOver' == fn){ //延期 queryPrjStore.doPlanOpt({method:'delay',prjid:record.randomFieldId}) }else if('onFinish' == fn){ //完成 queryPrjStore.doPlanOpt({method:'complete',prjid:record.randomFieldId}) }else if('onFrozen' == fn){ //冻结 queryPrjStore.doPlanOpt({method:'freeze',prjid:record.randomFieldId}) }else if('onEdit' == fn){ //编辑 projectInfoStore.handleDialog(true,record.randomFieldId,{viewtype:'edit',prjid:record.randomFieldId}) ; }else if('onListTask' == fn){ //任务列表 }else if('onDiscuss' == fn){ //相关交流 exchangeStore.handleExchangeDialog(true,"prj",record.randomFieldId,{}) }else if('onDel' == fn){ //项目删除 queryPrjStore.delPrjInfo({method:"del",prjid:record.randomFieldId,from:"mymanagerproject"}) } } } } export default WeaTools.tryCatch(React, props => , {error: ""} )(QueryProjectResult);