import { Button, Row, Col, Icon, message, Modal } from 'antd';
import { WeaTab, WeaAlertPage, WeaProgress, WeaSearchGroup, WeaFormItem, WeaLocaleProvider } from 'ecCom';
import { inject, observer } from "mobx-react";
import { toJS } from 'mobx';
import { WeaTableNew, WeaSwitch } from 'comsMobx';
import { Condition } from "../list/listCondition"
import TaskInfoDialog from '../dialog/taskDialog'
import ExchangeDialog from '../dialog/exchangeDialog'
import ShareDialog from '../dialog/shareDialog'
import RelateListDialog from "../dialog/relateListDialog"
import EditPrjTaskDataDialog from "../dialog/editPrjTaskDataDialog"
import TaskBatchEditDialog from '../dialog/taskBatchEditDialog';
const WeaTable = WeaTableNew.WeaTable;
const getLabel = WeaLocaleProvider.getLabel;
@observer
export default class TaskList extends React.Component {
constructor(props) {
super(props);
this.state = {
taskid: "",
coWorkVisiable: false,
workPlanVisible: false
}
}
componentDidMount() {
if(!window.weaWorkplan && !window.weaCowork){
eventRegister.loadModule('f_workplan', ()=> {
eventRegister.loadModule('f_cowork', ()=> {
}, ()=> {
// 加载文件失败 的业务处理, 网络超时,没文件之类
alert("加载协作模块失败,请联系系统管理员!");
});
}, ()=> {
// 加载文件失败 的业务处理, 网络超时,没文件之类
alert("加载日程模块失败,请联系系统管理员!");
});
return;
}
if(window.weaWorkplan && !window.weaCowork){
eventRegister.loadModule('f_cowork', ()=> {
}, ()=> {
// 加载文件失败 的业务处理, 网络超时,没文件之类
alert("加载协作模块失败,请联系系统管理员!");
});
}else{
eventRegister.loadModule('f_workplan', ()=> {
}, ()=> {
// 加载文件失败 的业务处理, 网络超时,没文件之类
alert("加载协作模块失败,请联系系统管理员!");
});
}
}
render() {
const { contentStore, account, taskBatchEditDialogStore, delCallBack } = this.props;
const { taskListTableStore, taskListRight: { hasRight, verified }, taskListTabs, taskListform, showSearchAd, taskListSearchParams, shareStore, exchangeStore, taskInfoStore, reLoad, prjid, refTaskList, showEditTask } = contentStore;
const formParams = taskListform.getFormParams() || {};
const rowSelection = {
onChange(selectedRowKeys, selectedRows) {
taskInfoStore.onRowSelect(selectedRowKeys);
}
};
if (verified && !hasRight) {
return (
{getLabel(2012, "对不起,您暂时没有权限!")}
)
}
if (verified && hasRight) {
return (
{
{ contentStore.setShowSearchAd(bool) }}
hideSearchAd={() => contentStore.setShowSearchAd(false)}
searchsAd={
}
showSearchAd={showSearchAd}
onSearch={v => { contentStore.getPrjTaskList() }}
onSearchChange={v => { contentStore.taskListform.updateFields({ taskname: { value: v } }, false); }}
onChange={this.changeVision}
/>
}
{this.getQuickSearch()}
reLoad(taskListTableStore)}
getColumns={c => this.reRenderColumns(c)}
onOperatesClick={this.onOperatesClick.bind(this)}
rowSelection={rowSelection}
/>
{contentStore.resetTaskInfoStore()}}/>
{
refTaskList();
if(delCallBack){
delCallBack();
}
}} />
{window.weaCowork && window.weaCowork.com && window.weaCowork.com.CreateCowork && this.state.coWorkVisiable && this.state.taskid !== "" && (
{
this.setState({
coWorkVisiable: false
});
}}
/>)
}
{
window.weaWorkplan && window.weaWorkplan.com && window.weaWorkplan.com.WorkPlanCreate &&
( { this.setWorkPlanVisible(false); }}//关闭回调
onlyClose={() => { this.setWorkPlanVisible(false) }}//关闭回调,只做关闭操作
workPlanId={""} //日程id,1查看日程时用到
createConditionParams={[]}//创建的默认值日期和时间,没有传[]
activeKey={""} //查看页面显示的面板1是基本信息,7是相关交流
//changeTab={(key) => { }}//查看页面切换面板的回调
selectUser={account && account.userid}//新建日程的创建人id
workPlanTypeOptions={"2"}//客户模块的新建日程,普通新建传'',客户新建传3
crmIDs={[]}//通过客户模块新建日程,并自动带出相关客户,[{'id':'','name':''}]
projectid={prjid}
taskid={this.state.taskid}
description={""}//客户模块需求,支持新建时传入的'基本信息-内容'
/>)
}
)
}
return
}
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;
}
getQuickSearch() {
const { taskListQuickitems, taskListquickform, getPrjTaskList } = this.props.contentStore;
const { isFormInit } = taskListquickform;
let group = [];
const formParams = taskListquickform.getFormParams();
isFormInit && toJS(taskListQuickitems).map((c,i) => {
let items = [];
c.items.map((fields, index) => {
items.push({
com: (
{ getPrjTaskList({ [fields.domkey[0]]: res[fields.domkey[0]].value }); }} />
),
colSpan: 1,
})
});
group.push()
});
return group;
}
onOperatesClick(record, index, operate, flag) {
let that = this;
const { contentStore, delCallBack } = this.props;
const { shareStore, exchangeStore, taskInfoStore, prjid } = contentStore;
let _href = operate && operate.href ? operate.href : "";
let fn = _href.replace("javascript:", "");
fn = fn.substring(0, fn.indexOf('('));
if (fn != "") {
if ("onShare" == fn) { //共享
shareStore.handleShareDialog(true, "task", record.randomFieldId, {})
} else if ('onNewCowork' == fn) { //新建协作
this.setState({ taskid: record.randomFieldId, coWorkVisiable: true });
const coworkStoreMap = window.weaCowork.store && window.weaCowork.store.coworkStoreMap;
const cowortore = coworkStoreMap && coworkStoreMap.getMapStore(3);
cowortore && cowortore.setCreateState({ showNewCowork: true, createOrEdit: 0 });
} else if ('onNewWorkplan' == fn) { //新建日程
this.setState({ taskid: record.randomFieldId, workPlanVisible: true });
} else if ('onAddSubTask' == fn) { //新建子任务
taskInfoStore.handleDialog(true, "add", '', { prjid: prjid, parentid: record.randomFieldId });
} else if ('onEditTask' == fn) { //编辑
taskInfoStore.handleDialog(true, "edit", record.randomFieldId);
} else if ('onDiscuss' == fn) { //相关交流
exchangeStore.handleExchangeDialog(true, "task", record.randomFieldId, {})
} else if ('onDel' == fn) { //删除
taskInfoStore.delTask("del", record.randomFieldId, ()=> {if(delCallBack) delCallBack()});
}
}
}
changeVision = (key) => {
const { contentStore, getRightMenu } = this.props;
contentStore.getPrjTaskList({ version: key == "0" ? "" : key })
getRightMenu&&getRightMenu({type:'tasklist',version: key == "0" ? "" : key});
}
getAdButtons = () => {
const { contentStore,ecid } = this.props;
const { getPrjTaskList, setShowSearchAd, taskListform } = contentStore;
return [
(),
(),
()
];
}
setWorkPlanVisible = (bool) => {
this.setState({ workPlanVisible: bool })
}
onEnterSearch=() =>{
const { contentStore } = this.props;
contentStore.getPrjTaskList();
contentStore.setShowSearchAd(false);
}
}