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);