weaver_trunk_cli/pc4mobx/prj/stores/projectBoard/taskInfoStore.js

143 lines
4.9 KiB
JavaScript
Raw Normal View History

2023-03-08 15:22:38 +08:00
import { observable, action } from 'mobx';
import {WeaTableNew,WeaForm} from 'comsMobx'
import { WeaTools,WeaLocaleProvider } from 'ecCom';
const getLabel = WeaLocaleProvider.getLabel;
import * as Task_Apis from "../../apis/task"
import {getFormInitDatas,cptAddFormRules} from "../../util/index"
import {message,Modal} from "antd"
const confirm = Modal.confirm;
/**
* @author ljc 2017-12-19
* 任务的编辑新增等
*/
export class TaskInfoStore{
@observable title = getLabel(15284,"编辑任务");
@observable rightMenu = [];
@observable taskid = "";
@observable taskForm = new WeaForm();
@observable visible = false;
@observable taskInfo = {};
@observable fieldinfo = [];
@observable type = "";
@observable baseParams = {} ; //基本数据保存
@observable validateRules = {};
@observable selectedRowKeys = [];
@action
handleDialog = (bool,type,id,params={} ) =>{
this.visible = bool;
if(bool){
this.taskid = id;
this.type = type;
if(type=='add'){
this.title= getLabel(1342,"添加任务");
}else if(type=='view'){
this.title= getLabel(382572,"查看任务");
}else if(type=='edit'){
this.title= getLabel(15284,"编辑任务");
}
this.baseParams =params ;
this.getTaskInfo(type,id,params);
if(params.callBack){
params.callBack();
}
}
}
getTaskInfo=(type,id,params={})=>{
this.taskForm = new WeaForm();
Task_Apis.getTaskForm({viewtype:type,taskid:this.taskid,...params}).then(data=>{
this.taskInfo = data;
this.rightMenu = data.rightMenus;
this.fieldinfo = data.fieldinfo;
this.taskForm && !this.taskForm.isFormInit && this.taskForm.initFormFields(this.fieldinfo);
this.taskForm.isFormInit && this.taskForm.updateFields(getFormInitDatas(this.fieldinfo),false);
})
}
setFormFields=(value)=>{
this.taskForm.updateFields(value, false); //true代表完全覆盖方式更新条件值
}
//保存规则
setValidate=(params={})=>{
this.validateRules = params;
}
@action
delTask=(type,taskid,params)=>{
let _this = this;
Modal.confirm({
title: getLabel(15172,"系统提示"),
content: getLabel(83925,"该任务及其子任务都会被删除,您确认要删除吗?"),
onOk() {
Task_Apis.delTask({method:type,taskid:taskid}).then(data=>{
if(data.success){
if(params.callBack){
params.callBack();
}
}else{
message.error(getLabel(383746,"请求失败")+""+data.msgcode);
}
})
},
onCancel() { },
})
}
resetStage = (params,taskid) => {
const { isFormInit } = this.taskForm;
let conditions = this.fieldinfo ;
isFormInit && conditions.map(c => {
let items = [];
c.items.map((field, index) => {
if(field.domkey[0]=="stageid"){
field.viewAttr = params.viewAttr;
if(params.viewAttr == "1"){
Task_Apis.getTaskStage({taskid: taskid }).then(data => {
this.taskForm.updateFields({stageid : { value : data.stageid}}, false); //true代表完全覆盖方式更新条件值
});
}else{
this.taskForm.updateFields({stageid : { value : ""}}, false);
}
}
})
})
this.fieldinfo = conditions;
}
@action
delTaskBatch=(type,taskid)=>{
let _this = this;
if(this.selectedRowKeys.length > 0){
Modal.confirm({
title: getLabel(15172,"系统提示"),
content: getLabel(83925,"该任务及其子任务都会被删除,您确认要删除吗?"),
onOk() {
Task_Apis.delTask({method:type,taskids:`${_this.selectedRowKeys}`}).then(data=>{
if(data.success){
_this.selectedRowKeys = [];
window._table.reLoad();
Modal.success({
title: getLabel(15172,"系统提示"),
content: getLabel(83472,"删除成功!"),
});
}else{
message.error(getLabel(383746,"请求失败")+""+data.msgcode);
}
})
},
onCancel() { },
})
}
}
@action
onRowSelect = (rows) => {
this.selectedRowKeys = rows;
}
}