943 lines
26 KiB
JavaScript
943 lines
26 KiB
JavaScript
import { observable, action, autorun, toJS } from 'mobx';
|
||
import { WeaTools, WeaLocaleProvider } from "ecCom"
|
||
import objectAssign from 'object-assign';
|
||
import { message, Modal } from 'antd';
|
||
const confirm = Modal.confirm;
|
||
import isEqual from 'lodash/isEqual';
|
||
import { WeaTableNew, WeaForm } from 'comsMobx'
|
||
const { TableStore } = WeaTableNew;
|
||
const { ls } = WeaTools;
|
||
const getLabel = WeaLocaleProvider.getLabel;
|
||
import * as Apis from '../apis/project';
|
||
import * as BoardApis from '../apis/projecboard';
|
||
import * as Common_Apis from '../apis/index';
|
||
import * as Task_Apis from "../apis/task";
|
||
import { AddProjectStore } from "./addProjectStore";
|
||
import { ProjectInfoStore } from './projectInfoStore';
|
||
import { ShareStore } from './shareStore'
|
||
import { TaskInfoStore } from './task/taskInfoStore'
|
||
import { ExchangeStore } from "./exchangeStore"
|
||
import { RelateListStore } from './taskListStore';
|
||
|
||
export class PrjCardStore {
|
||
@observable tabDatas = [];
|
||
@observable selectTabKey = "1"
|
||
@observable loading = false;
|
||
@observable prjid = "";
|
||
@observable prjname = "";
|
||
@observable targetid = "";
|
||
discusstype = "PP";
|
||
taskname = "";
|
||
|
||
@observable showSearchAd = false // 高级搜索显示
|
||
@observable rightMenu = [];
|
||
|
||
@observable form = new WeaForm(); //项目信息
|
||
|
||
@observable templatename = "";//模板名称
|
||
@observable doSaveVisible = false;
|
||
|
||
@observable fieldInfo = [];
|
||
@observable prjinfoRight = {
|
||
hasRight: false,
|
||
verified: false
|
||
};
|
||
@observable prjisdel = false;
|
||
validateRules = {}; //校验规则
|
||
|
||
@observable prjSubStore = new TableStore(); //子项目
|
||
@observable prjSubform = new WeaForm();
|
||
@observable prjsubRight = {
|
||
hasRight: false,
|
||
verified: false
|
||
}
|
||
@observable condition = []; //高级搜索
|
||
|
||
@observable addProjectStore = new AddProjectStore();
|
||
|
||
@observable exchangeList = "";
|
||
@observable _BrowserList = {
|
||
'create': {remark: ''},
|
||
datas: [],
|
||
};
|
||
|
||
@observable shareTableStore = new TableStore(); //共享
|
||
@observable shareStore = new ShareStore();
|
||
@observable isShowShare = false;
|
||
@observable shareRight = {
|
||
hasRight: false,
|
||
verified: false
|
||
}
|
||
|
||
@observable projectInfoStore = new ProjectInfoStore();
|
||
|
||
@observable stastics = []; //统计报告
|
||
@observable taskListTableStore = new TableStore({
|
||
dataHandle: (datas) => { //任务列表
|
||
datas.forEach((data) => {
|
||
if (typeof (data.subListspan) == 'string') {
|
||
data.subListspan = data.subListspan ? JSON.parse(data.subListspan) : undefined;
|
||
}
|
||
});
|
||
return datas;
|
||
}
|
||
});
|
||
@observable taskListform = new WeaForm();
|
||
@observable taskListquickform = new WeaForm();
|
||
@observable taskListTabs = [];
|
||
@observable taskListSearchParams = {
|
||
version: "0"
|
||
};
|
||
@observable taskListQuickitems = [];
|
||
@observable taskListRight = {
|
||
hasRight: false,
|
||
verified: false
|
||
}
|
||
@observable relateListStore = new RelateListStore();
|
||
@observable taskInfoStore = new TaskInfoStore();
|
||
|
||
@observable exchangeStore = new ExchangeStore();
|
||
|
||
@observable prjLogTableStore = new TableStore(); //日志
|
||
|
||
@observable prjFieldLogTableStore = new TableStore(); //字段日志
|
||
|
||
@observable prjFieldDetailLogTableStore = new TableStore(); //字段详情日志
|
||
|
||
@observable fieldLogVisible = false;
|
||
|
||
@observable fieldDetailLogVisible = false;
|
||
|
||
@observable fieldname = '';
|
||
|
||
@observable field = '';
|
||
|
||
@observable verified = false;
|
||
@observable hasRight = false; //权限
|
||
@observable showEditTask = false;
|
||
|
||
@observable isreload = false;
|
||
|
||
@observable stageInfo = {
|
||
stageColumns: [],
|
||
stageColumnDatas: [],
|
||
selectedRowKeys: [],
|
||
selectedDatas: {},
|
||
canedit:false
|
||
}
|
||
|
||
@observable approveplanstatus = false;
|
||
|
||
@observable resourceInfo = {
|
||
cptList : [],
|
||
prjList : [],
|
||
taskList : [],
|
||
accList : [],
|
||
wfList : [],
|
||
cusList : [],
|
||
docList : []
|
||
}
|
||
|
||
@observable isBatchEdit = 0;
|
||
|
||
@observable isApprove = false;
|
||
|
||
@observable status = '';
|
||
|
||
@action
|
||
reLoad = (tableStore) => {
|
||
tableStore.getDatas(tableStore.dataKey, tableStore.current, tableStore.pageSize, tableStore.sortParams)
|
||
}
|
||
|
||
@action
|
||
refTaskList = () => {
|
||
this.getPrjTaskCondition();
|
||
this.getPrjTaskVersion();
|
||
this.getPrjTaskList();
|
||
}
|
||
//设置选中按钮
|
||
changeTab = (key) => {
|
||
this.selectTabKey = key;
|
||
this.rightMenu = [];
|
||
const tabDatas = toJS(this.tabDatas);
|
||
if (tabDatas) {
|
||
for (let i = 0; i < tabDatas.length; i++) {
|
||
if (tabDatas[i].id == key && tabDatas[i].shortname == "prjinfo") { //基本信息
|
||
this.getPrjInfo({ viewtype: 'view', prjid: this.prjid });
|
||
} else if (tabDatas[i].id == key && tabDatas[i].shortname == "tasklist") {//任务列表
|
||
this.setIsBatchEdit(0);
|
||
this.getPrjTaskCondition();
|
||
this.getPrjTaskVersion();
|
||
this.getPrjTaskList();
|
||
} else if (tabDatas[i].id == key && tabDatas[i].shortname == "childprj") { //子项目
|
||
this.getPrjSubList();
|
||
this.getPrjSubCondition();
|
||
} else if (tabDatas[i].id == key && tabDatas[i].shortname == "prjdiscuss") { //相关交流
|
||
this.targetid = this.prjid;
|
||
this.getExchangeList({});
|
||
} else if (tabDatas[i].id == key && tabDatas[i].shortname == "prjshare") { //共享设置
|
||
this.getPrjShareList();
|
||
} else if (tabDatas[i].id == key && tabDatas[i].shortname == "stareport") { //统计报告
|
||
this.stastics = [];
|
||
this.getPrjStastics();
|
||
} else if (tabDatas[i].id == key && tabDatas[i].shortname == "stageset") { //项目阶段
|
||
this.clearStageStatus();
|
||
this.getPrjTempletStageList();
|
||
} else if (tabDatas[i].id == key && tabDatas[i].shortname == "resources") { //相关资源
|
||
this.getPrjResourceInfo();
|
||
}
|
||
}
|
||
}
|
||
}
|
||
|
||
getPrjTabs = (params = {}) => {
|
||
this.prjid = params.prjid;
|
||
this.selectTabKey = "1";
|
||
this.prjisdel = false;
|
||
Apis.getPrjTabs(params).then(data => {
|
||
if (!data.isright && typeof (data.isright) !== "undefined") {
|
||
this.hasRight = data.isright;
|
||
this.verified = true;
|
||
} else {
|
||
this.hasRight = true;
|
||
this.verified = true;
|
||
this.tabDatas = data.tabs;
|
||
this.changeTab(this.selectTabKey);
|
||
}
|
||
})
|
||
|
||
}
|
||
getPrjInfo = (params = {}) => {
|
||
this.loading = true;
|
||
this.form = new WeaForm();
|
||
Apis.getPrjInfo(params).then(data => {
|
||
if (!data.isright && typeof (data.isright) !== "undefined") {
|
||
this.prjinfoRight = {
|
||
hasRight: data.isright,
|
||
verified: true
|
||
};
|
||
} else {
|
||
this.prjinfoRight = {
|
||
hasRight: true,
|
||
verified: true
|
||
};
|
||
this.isApprove = data.isApprove;
|
||
this.fieldInfo = data.fieldinfo;
|
||
this.rightMenu = data.rightMenus;
|
||
this.prjname = data.prjname;
|
||
this.prjid = data.prjid;
|
||
this.form && !this.form.isFormInit && this.form.initFormFields(data.fieldinfo);
|
||
if(data.accessory){
|
||
this.setFormFields({"accessory":data.accessory});
|
||
}
|
||
|
||
}
|
||
this.loading = false;
|
||
})
|
||
|
||
}
|
||
|
||
//项目看板卡片
|
||
getPrjInfoForBoard = (params = {}) => {
|
||
this.loading = true;
|
||
this.form = new WeaForm();
|
||
BoardApis.getPrjInfoForBoard(params).then(data => {
|
||
if (!data.isright && typeof (data.isright) !== "undefined") {
|
||
this.prjinfoRight = {
|
||
hasRight: data.isright,
|
||
verified: true
|
||
};
|
||
} else {
|
||
this.prjinfoRight = {
|
||
hasRight: true,
|
||
verified: true
|
||
};
|
||
this.fieldInfo = data.fieldinfo;
|
||
this.rightMenu = data.rightMenus;
|
||
this.prjname = data.prjname;
|
||
this.prjid = data.prjid;
|
||
this.form && !this.form.isFormInit && this.form.initFormFields(data.fieldinfo);
|
||
}
|
||
this.loading = false;
|
||
})
|
||
}
|
||
|
||
//项目看板卡片 -- 编辑保存
|
||
savePrjInfoForBoard = (params = {}) => {
|
||
this.loading = true;
|
||
|
||
this.form.validateForm().then(f => {
|
||
if (f.isValid) {
|
||
let newParams = { ...toJS(this.form.getFormParams()), method: "edit", prjid: this.prjid, ...params };
|
||
Apis.savePrjInfo(newParams).then(data => {
|
||
if (data.success) {
|
||
this.getPrjInfoForBoard({ viewtype: "edit", prjid: this.prjid });
|
||
} else {
|
||
// Modal.warning({
|
||
// title: getLabel(15172, "系统提示"),
|
||
// content: data.msg,
|
||
// });
|
||
message.error(data.msg);
|
||
}
|
||
})
|
||
} else {
|
||
f.showErrors();
|
||
}
|
||
});
|
||
}
|
||
|
||
//项目信息 -- 编辑保存
|
||
savePrjInfo = (params = {},parentStore) => {
|
||
|
||
this.form.validateForm().then(f => {
|
||
if (f.isValid) {
|
||
let newParams = { ...toJS(this.form.getFormParams()), method: "edit", prjid: this.prjid, ...params };
|
||
Apis.savePrjInfo(newParams).then(data => {
|
||
if (data.success) {
|
||
this.getPrjInfo({ viewtype: "view", prjid: this.prjid });
|
||
//刷新
|
||
if(parentStore && parentStore.refresh){
|
||
parentStore.refresh();//调用父页面刷新方法
|
||
}else{
|
||
//刷新查询列表
|
||
if (typeof window.opener._table !== "undefined") {
|
||
window.opener._table.reLoad();
|
||
}
|
||
}
|
||
} else {
|
||
// Modal.warning({
|
||
// title: getLabel(15172, "系统提示"),
|
||
// content: data.msg,
|
||
// });
|
||
message.error(data.msg);
|
||
}
|
||
})
|
||
} else {
|
||
f.showErrors();
|
||
}
|
||
});
|
||
}
|
||
|
||
//项目执行操作
|
||
@action
|
||
doPlanOpt = (params = {}) => {
|
||
Apis.doPlanOpt(params).then(data => {
|
||
this.getPrjInfo({ viewtype: "view", prjid: this.prjid });
|
||
});
|
||
}
|
||
|
||
//子项目执行操作
|
||
@action
|
||
doSubPlanOpt = (params = {}) => {
|
||
Apis.doPlanOpt(params).then(data => {
|
||
this.getPrjSubList();
|
||
});
|
||
}
|
||
|
||
//任务列表执行操作
|
||
@action
|
||
doPlanOpt_task = (params = {}) => {
|
||
this.approveplanstatus = true;
|
||
Apis.doPlanOpt(params).then(data => {
|
||
if (data.success) {
|
||
this.getPrjTaskList();
|
||
this.getPrjTaskCondition();
|
||
this.getPrjTaskVersion();
|
||
Modal.success({
|
||
title: getLabel(15172, "系统提示"),
|
||
content: getLabel(16248, "提交成功"),
|
||
});
|
||
if(params.callBack){
|
||
params.callBack();
|
||
}
|
||
} else {
|
||
Modal.error({
|
||
title: getLabel(15172, "系统提示"),
|
||
content: getLabel(15173, "提交失败"),
|
||
});
|
||
}
|
||
this.approveplanstatus = false;
|
||
});
|
||
}
|
||
|
||
//项目任务保存为计划版本操作
|
||
@action
|
||
saveasplan = (params = {}) => {
|
||
let _this = this;
|
||
Modal.confirm({
|
||
title: getLabel(15172, "系统提示"),
|
||
content: getLabel(83928, "您确认要存为计划版本吗?"),
|
||
onOk() {
|
||
Apis.doPlanOpt(params).then(data => {
|
||
_this.getPrjTaskList();
|
||
_this.getPrjTaskCondition();
|
||
_this.getPrjTaskVersion();
|
||
});
|
||
},
|
||
onCancel() { },
|
||
})
|
||
}
|
||
//导出
|
||
@action
|
||
doTaskExcelExp = (params = {}) => {
|
||
this.loading = true;
|
||
let newParams = { ...toJS(this.taskListSearchParams), ...toJS(this.taskListform.getFormParams()), ...toJS(this.taskListquickform.getFormParams()), prjid: this.prjid, ...params };
|
||
//获取表单的参数值
|
||
if(window.setShare4ec){
|
||
window.setShare4ec({
|
||
mouldCode: 'PRJ',
|
||
itemCode: 'PRJ_EXPORT_3',
|
||
encrypt: '1',
|
||
targetid: ""
|
||
} ,
|
||
(datas)=>{
|
||
const {status,sharepassword = '',serialid = ''} = datas;
|
||
if(status === '1'){
|
||
newParams.sharepassword = sharepassword;
|
||
newParams.itemCode = 'PRJ_EXPORT_3';
|
||
WeaTools.callApi('/api/proj/pctask/doTaskExcelExp','GET',newParams).then(data => {
|
||
window.location=(window.ecologyContentPath || '')+"/weaver/weaver.file.ExcelOut";
|
||
this.loading = false;
|
||
}).catch(err=>message.error(err))
|
||
}
|
||
});
|
||
}else{
|
||
WeaTools.callApi('/api/proj/pctask/doTaskExcelExp','GET',newParams).then(data => {
|
||
window.location=(window.ecologyContentPath || '')+"/weaver/weaver.file.ExcelOut";
|
||
this.loading = false;
|
||
}).catch(err=>message.error(err))
|
||
}
|
||
}
|
||
|
||
|
||
setVisiable = (bool) => {
|
||
this.templatename=this.prjname;
|
||
this.doSaveVisible = bool;
|
||
}
|
||
|
||
saveTemplateName =(data)=> {
|
||
this.templatename = data;
|
||
}
|
||
//项目卡片另存为模板
|
||
@action
|
||
doSaveTemplet = (params = {}) => {
|
||
|
||
Apis.doSaveTemplet({
|
||
prjname:this.templatename,
|
||
prjid:this.prjid
|
||
}).then(data => {
|
||
if (data.success) {
|
||
Modal.success({
|
||
title: getLabel(15172, "系统提示"),
|
||
content: getLabel(19468, "另存为模板") + getLabel(84565, "成功!"),
|
||
});
|
||
} else {
|
||
Modal.error({
|
||
title: getLabel(15172, "系统提示"),
|
||
content: getLabel(19468, "另存为模板") + getLabel(84566, "失败!"),
|
||
});
|
||
}
|
||
this.setVisiable(false);
|
||
});
|
||
}
|
||
|
||
//项目删除
|
||
@action
|
||
delPrjInfo = (params = {}) => {
|
||
let _this = this;
|
||
Modal.confirm({
|
||
title: getLabel(15172, "系统提示"),
|
||
content: getLabel(383860, "您确认要删除项目吗?"),
|
||
onOk() {
|
||
Apis.delPrjInfo(params).then(data => {
|
||
_this.prjisdel = true;
|
||
if (typeof window.opener._table !== "undefined") {
|
||
window.opener._table.reLoad();
|
||
window.close();
|
||
}
|
||
});
|
||
},
|
||
onCancel() { },
|
||
})
|
||
}
|
||
|
||
//项目信息-校验规则
|
||
setValidate = (params = {}) => {
|
||
this.validateRules = params;
|
||
}
|
||
|
||
//子项目列表
|
||
getPrjSubList = (params = {}) => {
|
||
this.loading = true;
|
||
const searchParamsAd = this.prjSubform.getFormParams();
|
||
const newParams = { prjid: this.prjid, ...searchParamsAd, ...params };
|
||
Apis.getPrjSubList(newParams).then(data => {
|
||
if (!data.isright && typeof (data.isright) !== "undefined") {
|
||
this.prjsubRight = {
|
||
hasRight: data.isright,
|
||
verified: true
|
||
};
|
||
} else {
|
||
this.prjsubRight = {
|
||
hasRight: true,
|
||
verified: true
|
||
};
|
||
this.prjSubStore.getDatas(data.sessionkey, 1);
|
||
this.rightMenu = data.rightMenus;
|
||
this.loading = false;
|
||
}
|
||
});
|
||
}
|
||
//子项目 高级搜索
|
||
getPrjSubCondition = () => {
|
||
this.prjSubform = new WeaForm();
|
||
Apis.getPrjCondition({ conditiontype: "prjsub" }).then(data => {
|
||
this.condition = data.condition;
|
||
|
||
this.prjSubform && !this.prjSubform.isFormInit && this.prjSubform.initFormFields(data.condition);
|
||
})
|
||
}
|
||
|
||
//删除
|
||
exchangeDelete = (value) => {
|
||
let _this = this;
|
||
Apis.exchangeDelete(value).then(data => {
|
||
if(data.status){
|
||
_this.getExchangeList()
|
||
}else {
|
||
message.error(data.error ? data.error : `${getLabel(384137,'操作失败!')}`);
|
||
}
|
||
})
|
||
}
|
||
|
||
//获取相关交流信息
|
||
@action
|
||
getExchangeList = (value) => {
|
||
let _this = this;
|
||
this.loading = true;
|
||
const newParams = { types: "PP", sortid: this.prjid, ...value };
|
||
Apis.getExchangeList(newParams).then(data => {
|
||
let exchange = { ...data }
|
||
exchange.datas.forEach((element, index) => {
|
||
element.isEdit = false
|
||
})
|
||
exchange.datas.unshift({
|
||
id: 'create',
|
||
isEdit: true,
|
||
remark: '',
|
||
docids: [],
|
||
projectids: [],
|
||
relatedcus: [],
|
||
relateddoc: [],
|
||
relatedprj: [],
|
||
relatedwf: [],
|
||
})
|
||
_this.exchangeList = exchange;
|
||
_this._BrowserList = {
|
||
'create': {remark: ''},
|
||
datas: [],
|
||
};
|
||
_this.exchangeList.datas&&_this.exchangeList.datas.forEach((element, index) => {
|
||
if (_this._BrowserList[element['id']] == undefined) {
|
||
_this._BrowserList[element['id']] = {};
|
||
}
|
||
_this._BrowserList[element['id']].remark = element.remark;
|
||
_this._BrowserList[element['id']].docids = element.docids;
|
||
_this._BrowserList[element['id']].projectids = element.projectids;
|
||
_this._BrowserList[element['id']].relatedcus = element.relatedcus;
|
||
_this._BrowserList[element['id']].relateddoc = element.relateddoc;
|
||
_this._BrowserList[element['id']].relatedprj = element.relatedprj;
|
||
_this._BrowserList[element['id']].relatedwf = element.relatedwf;
|
||
})
|
||
_this._BrowserList.datas = _this.exchangeList.datas;
|
||
this.loading = false;
|
||
})
|
||
}
|
||
|
||
//相关交流datas循环
|
||
changeDiscussList = (value = {}) => {
|
||
this.exchangeList = value;
|
||
this.exchangeList.datas&&this.exchangeList.datas.forEach((element, index) => {
|
||
if (this._BrowserList[element['id']] == undefined) {
|
||
this._BrowserList[element['id']] = {};
|
||
}
|
||
this._BrowserList[element['id']].remark = element.remark;
|
||
this._BrowserList[element['id']].docids = element.docids;
|
||
this._BrowserList[element['id']].projectids = element.projectids;
|
||
this._BrowserList[element['id']].relatedcus = element.relatedcus;
|
||
this._BrowserList[element['id']].relateddoc = element.relateddoc;
|
||
this._BrowserList[element['id']].relatedprj = element.relatedprj;
|
||
this._BrowserList[element['id']].relatedwf = element.relatedwf;
|
||
})
|
||
this._BrowserList.datas = this.exchangeList.datas;
|
||
}
|
||
|
||
//相关交流提交
|
||
exchangeSave = (value) => {
|
||
let _this = this;
|
||
Apis.exchangeSave({...value,discusstype:'PP'}).then(data => {
|
||
if(data.status){
|
||
_this.getExchangeList({ });
|
||
}else {
|
||
message.error(data.error ? data.error : `${getLabel(384137,'操作失败!')}`);
|
||
}
|
||
})
|
||
}
|
||
|
||
//相关交流提交
|
||
setBrowserList = (_BrowserList) => {
|
||
this._BrowserList = _BrowserList;
|
||
}
|
||
|
||
//高级搜索设值
|
||
setFormFields = (value) => {
|
||
if (this.selectTabKey == "1") { //项目信息
|
||
this.form.updateFields(value, false); //true代表完全覆盖方式更新条件值
|
||
}
|
||
if (this.selectTabKey == "3") { //子项目
|
||
this.prjSubform.updateFields(value, false); //true代表完全覆盖方式更新条件值
|
||
}
|
||
if (this.selectTabKey == "2") { //任务列表
|
||
this.taskListform.updateFields(value, false); //true代表完全覆盖方式更新条件值
|
||
}
|
||
}
|
||
|
||
appendFormFields = (value) => {
|
||
this.setFormFields(value);
|
||
}
|
||
//共享
|
||
getPrjShareList = (params = {}) => {
|
||
//获取表单的参数值
|
||
this.loading = true;
|
||
const newParams = { prjid: this.prjid, ...params };
|
||
Apis.getPrjShare(newParams).then(data => {
|
||
if (!data.isright && typeof (data.isright) !== "undefined") {
|
||
this.shareRight = {
|
||
hasRight: data.isright,
|
||
verified: true
|
||
};
|
||
} else {
|
||
this.shareRight = {
|
||
hasRight: true,
|
||
verified: true
|
||
};
|
||
this.shareTableStore.getDatas(data.sessionkey, 1);
|
||
this.rightMenu = data.rightMenus;
|
||
}
|
||
this.loading = false;
|
||
});
|
||
}
|
||
showAddShareModal = (bool) => {
|
||
this.isShowShare = bool;
|
||
}
|
||
//统计报告
|
||
getPrjStastics = (params = {}) => {
|
||
this.loading = true;
|
||
Apis.getPrjStastics({ prjid: this.prjid, ...params }).then(data => {
|
||
this.stastics = data;
|
||
this.loading = false;
|
||
})
|
||
}
|
||
//任务列表
|
||
getPrjTaskList = (params = {}) => {
|
||
this.loading = true;
|
||
let newParams = { ...toJS(this.taskListSearchParams), ...toJS(this.taskListform.getFormParams()), ...toJS(this.taskListquickform.getFormParams()), prjid: this.prjid, ...params };
|
||
for (let item in newParams) {
|
||
if (newParams[item] == "") {
|
||
delete newParams[item]
|
||
}
|
||
}
|
||
if (newParams.version == "0") { newParams.version = "" }
|
||
newParams.isBatchEdit = this.isBatchEdit;
|
||
Apis.getPrjTaskList(newParams).then(data => {
|
||
if (!data.isright && typeof (data.isright) !== "undefined") {
|
||
this.taskListRight = {
|
||
hasRight: data.isright,
|
||
verified: true
|
||
};
|
||
} else {
|
||
this.taskListRight = {
|
||
hasRight: true,
|
||
verified: true
|
||
};
|
||
this.status = data.status;
|
||
this.taskListTableStore.getDatas(data.sessionkey, 1);
|
||
this.rightMenu = data.rightMenus;
|
||
this.taskListSearchParams = params.version==""?{version:"0"}:{...this.taskListSearchParams,...params};
|
||
};
|
||
this.loading = false;
|
||
})
|
||
}
|
||
//任务列表-condition
|
||
getPrjTaskCondition = () => {
|
||
this.taskListform = new WeaForm();
|
||
this.taskListquickform = new WeaForm();
|
||
this.condition = [];
|
||
this.taskListQuickitems = [];
|
||
this.taskListSearchParams = {version: this.taskListSearchParams.version};
|
||
Common_Apis.getTaskCondition({ conditiontype: "prjtasklist", prjid: this.prjid }).then(data => {
|
||
this.condition = data.condition;
|
||
this.taskListQuickitems = data.quickitmes;
|
||
this.taskListform && !this.taskListform.isFormInit && this.taskListform.initFormFields(data.condition);
|
||
this.taskListquickform && !this.taskListquickform.isFormInit && this.taskListquickform.initFormFields(data.quickitmes);
|
||
})
|
||
}
|
||
getPrjTaskVersion = () => {
|
||
Apis.getPrjTaskVersion({ prjid: this.prjid }).then(data => {
|
||
this.taskListTabs = data;
|
||
})
|
||
}
|
||
showEditTaskModal = (bool) => {
|
||
this.showEditTask = bool;
|
||
}
|
||
|
||
//form 重置
|
||
clearFormFields = () => {
|
||
if (this.selectTabKey == "2") { //任务列表
|
||
this.taskListform.reset(); //清除查询条件值
|
||
}
|
||
if (this.selectTabKey == "3") {
|
||
this.prjSubform.reset(); //清除查询条件值
|
||
}
|
||
}
|
||
|
||
//添加共享v
|
||
addShare = (value) => {
|
||
Apis.addPrjShare({ ...value, method: 'add', prjid: this.prjid, opttype: 'prj' }).then(data => {
|
||
if(data.success){
|
||
this.getPrjShareList();
|
||
}else{
|
||
message.error(data.msg);
|
||
}
|
||
})
|
||
}
|
||
//批量删除
|
||
delBatchShare = (value) => {
|
||
let _this = this;
|
||
Modal.confirm({
|
||
title: getLabel(15172, "系统提示"),
|
||
content: getLabel(83601, "您确认要删除选中的记录吗?"),
|
||
onOk() {
|
||
Apis.delBatchPjrShare({ id: value, method: 'batchdelete', opttype: 'prj',prjid: _this.prjid }).then(data => {
|
||
if(data.success){
|
||
_this.getPrjShareList();
|
||
}else{
|
||
message.error(data.msg);
|
||
}
|
||
});
|
||
},
|
||
onCancel() { },
|
||
})
|
||
}
|
||
//高级搜索显隐
|
||
setShowSearchAd = (bool) => {
|
||
this.showSearchAd = bool
|
||
}
|
||
onShowColumn = () => { //显示定制列
|
||
if (this.selectTabKey == "3") {
|
||
this.prjSubStore.setColSetVisible(true);
|
||
this.prjSubStore.tableColSet(true)
|
||
}
|
||
}
|
||
getPrjLogList = (params = {}) => {
|
||
Apis.getPrjLogList(params).then(data => {
|
||
this.prjLogTableStore.getDatas(data.sessionkey, 1);
|
||
})
|
||
}
|
||
|
||
getPrjFieldLogList = (params = {}) => {
|
||
Apis.getPrjFieldLogList(params).then(data => {
|
||
this.prjFieldLogTableStore.getDatas(data.sessionkey, 1);
|
||
})
|
||
}
|
||
|
||
getPrjFieldDetaiLogList = (params = {}) => {
|
||
Apis.getPrjFieldDetaiLogList(params).then(data => {
|
||
this.prjFieldDetailLogTableStore.getDatas(data.sessionkey, 1);
|
||
})
|
||
}
|
||
|
||
@action
|
||
setFieldLogVisible = (v) =>{
|
||
this.fieldLogVisible = v;
|
||
}
|
||
|
||
@action
|
||
setFieldDetailLogVisible = (v) =>{
|
||
this.fieldDetailLogVisible = v;
|
||
}
|
||
|
||
@action
|
||
setFieldName = (v) =>{
|
||
this.fieldname = v;
|
||
}
|
||
|
||
@action
|
||
setField = (v) =>{
|
||
this.field = v;
|
||
}
|
||
|
||
@action
|
||
setLoaded = () => {
|
||
this.isreload = true;
|
||
}
|
||
|
||
|
||
getPrjTempletStageList = (params = {}) => {
|
||
this.loading = true;
|
||
let newParams = { prjid: this.prjid, ...params };
|
||
Apis.getPrjTempletStageList(newParams).then(data => {
|
||
this.stageInfo.stageColumns = data.columns;
|
||
this.stageInfo.stageColumnDatas = data.columnDatas;
|
||
this.stageInfo.canedit = data.canedit;
|
||
this.rightMenu = data.rightMenus;
|
||
this.loading = false;
|
||
})
|
||
}
|
||
|
||
onRowSelect = (sRowKeys, rows, dataIndex, selectedDatas) => {
|
||
this.stageInfo.selectedRowKeys = sRowKeys;
|
||
if (selectedDatas) {
|
||
this.stageInfo.selectedDatas = selectedDatas;
|
||
}
|
||
}
|
||
|
||
onChange = (datas) => {
|
||
this.stageInfo.stageColumnDatas = datas;
|
||
}
|
||
|
||
saveStageSet = (checkProps) => {
|
||
const { pass } = checkProps;
|
||
if (pass&&this.checkRepeat()) {
|
||
let keepgroupids = "";
|
||
this.stageInfo.stageColumnDatas.forEach(element => {
|
||
if (element.id) {
|
||
keepgroupids += "," + element.id
|
||
}
|
||
});
|
||
keepgroupids = keepgroupids.substr(1, keepgroupids.length);
|
||
Apis.savePrjTempletStage({ datas: JSON.stringify(this.stageInfo.stageColumnDatas), keepgroupids: keepgroupids, prjid: this.prjid }).then(data => {
|
||
if (data.success) {
|
||
this.clearStageStatus();
|
||
message.success(data.msg);
|
||
this.getPrjTempletStageList();
|
||
} else {
|
||
message.error(data.msg);
|
||
}
|
||
})
|
||
}
|
||
}
|
||
|
||
checkRepeat = () => {
|
||
let repeat = true;
|
||
let datas = toJS(this.stageInfo.stageColumnDatas);
|
||
datas && datas.length>0 && datas.map((d1,i1) => {
|
||
if(repeat){
|
||
datas && datas.length>0 && datas.map((d2,i2) => {
|
||
if(i1 !== i2 && d1.name == d2.name){
|
||
message.warning(getLabel('387703',"阶段名称重复!"));
|
||
repeat = false;
|
||
}
|
||
})
|
||
}
|
||
|
||
})
|
||
return repeat;
|
||
}
|
||
|
||
clearStageStatus = () => {
|
||
let _canedit = this.stageInfo.canedit;
|
||
this.stageInfo = {
|
||
stageColumns: [],
|
||
stageColumnDatas: [],
|
||
selectedRowKeys: [],
|
||
selectedDatas: {},
|
||
canedit:_canedit
|
||
}
|
||
}
|
||
|
||
getPrjResourceInfo = (params) => {
|
||
this.loading = true;
|
||
let newParams = { prjid: this.prjid, ...params };
|
||
Apis.getPrjResources(newParams).then(data => {
|
||
if(data.success){
|
||
this.resourceInfo = {
|
||
...data
|
||
}
|
||
}
|
||
this.loading = false;
|
||
})
|
||
}
|
||
|
||
//龙烟二次开发独立代码
|
||
@action
|
||
sendMsg = (params = {}) => {
|
||
const newParams = { prjid: this.prjid,...params}
|
||
this.loading = true;
|
||
WeaTools.callApi('/api/proj/mindmapdev/sendMsg', 'GET', newParams).then(data => {
|
||
this.loading = false;
|
||
message.success("发送通知成功!");
|
||
});
|
||
}
|
||
|
||
setIsBatchEdit = (v) =>{
|
||
this.isBatchEdit = v;
|
||
}
|
||
|
||
resetTaskInfoStore = () =>{
|
||
this.taskInfoStore = new TaskInfoStore();
|
||
}
|
||
|
||
triggerBreakDownWF = (params = {}) =>{
|
||
const newParams = { prjid: this.prjid,...params}
|
||
WeaTools.callApi('/api/proj/pctask/triggerBreakDownWF', 'POST', newParams).then(data => {
|
||
if(data.msg=='success'){
|
||
this.getPrjTaskList();
|
||
this.getPrjTaskCondition();
|
||
this.getPrjTaskVersion();
|
||
if(params.callBack){
|
||
params.callBack();
|
||
}
|
||
message.success(getLabel('513071',"触发流程成功!"));
|
||
}else{
|
||
message.error(getLabel('513072',"触发流程失败!"));
|
||
}
|
||
});
|
||
}
|
||
|
||
@action
|
||
delTaskBatch=(type,params)=>{
|
||
let _this = this;
|
||
if(this.taskInfoStore.selectedRowKeys.length > 0){
|
||
Modal.confirm({
|
||
title: getLabel(15172,"系统提示"),
|
||
content: getLabel(83925,"该任务及其子任务都会被删除,您确认要删除吗?"),
|
||
onOk() {
|
||
Task_Apis.delTask({method:type,taskids:`${_this.taskInfoStore.selectedRowKeys}`}).then(data=>{
|
||
if(data.success){
|
||
_this.taskInfoStore.selectedRowKeys = [];
|
||
window._table.reLoad();
|
||
Modal.success({
|
||
title: getLabel(15172,"系统提示"),
|
||
content: getLabel(83472,"删除成功!"),
|
||
});
|
||
_this.getPrjTaskList();
|
||
_this.getPrjTaskCondition();
|
||
_this.getPrjTaskVersion();
|
||
if(params.callBack){
|
||
params.callBack();
|
||
}
|
||
}else{
|
||
message.error(getLabel(383746,"请求失败")+":"+data.msgcode);
|
||
}
|
||
|
||
})
|
||
},
|
||
onCancel() { },
|
||
})
|
||
}
|
||
}
|
||
|
||
}
|
||
|