weaver_trunk_cli/pc4mobx/prj/stores/taskBatchEditDialogStore.js

158 lines
4.6 KiB
JavaScript
Raw Normal View History

2023-03-08 15:22:38 +08:00
import { observable, action } from 'mobx';
import { WeaLocaleProvider } from 'ecCom';
import { WeaForm } from 'comsMobx';
const getLabel = WeaLocaleProvider.getLabel;
import * as Apis from "../apis/task"
import { message } from 'antd';
import {toJS} from "mobx"
/**
* @author yxd 2019-09-30
* 任务批量编辑
*/
export class TaskBatchEditDialogStore{
@observable visible = false;
@observable bmOptions = [];
@observable bmOptionValue = "";
@observable bmFieldValue = "";
@observable bmform = new WeaForm();
@observable bmCondition = []
@observable selectField = {
fieldname : "",
showname : "",
};
@observable bmDatas = [];
@observable bmSelectedDatas = [];
@observable bmSelectedRowKeys = [];
@observable bmSelectComs = [];
@observable prjid = '';
@action
setVisible = (v)=>{
const that = this;
if(v){
that.visible = v;
Apis.getModifySelect({prjid:this.prjid}).then(data => {
that.bmOptions = toJS(data.options);
that.fieldChange("","");
that.resetBmOptions();
});
this.bmDatas = [];
}else{
that.visible = v;
that.bmOptions = []
that.resetBmOptions();
}
}
@action
appendBmData = () => {
let formDatas = this.bmform.getFormDatas();
let showname = "";
let fieldname = "";
let valuespan = "";
let value = "";
let bmDatas = this.bmDatas;
if(this.selectField.fieldname !== ""){
const _fieldname = this.selectField.fieldname;
showname = this.selectField.showname;
fieldname = _fieldname;
if(typeof(formDatas[_fieldname].valueObj) !== "undefined" || typeof(formDatas[_fieldname].valueSpan) !== "undefined"){
valuespan = formDatas[_fieldname].valueSpan;
value = formDatas[_fieldname].value;
}else{
valuespan = formDatas[_fieldname].value;
value = formDatas[_fieldname].value;
}
bmDatas.push({
id : Math.ceil(Math.random()*10000),
showname : showname,
fieldname : fieldname,
valuespan : valuespan,
value : value
});
}
this.bmDatas = bmDatas;
this.resetBmOptions();
}
@action
resetBmOptions = () => {
let options = toJS(this.bmOptions);
let selectedDatas = toJS(this.bmDatas);
let new_options = [];
options.map((option)=>{
let key = option.key;
let disabled = false;
let selected = false;
selectedDatas.map((data)=>{
if(data.fieldname == key){
disabled = true;
}
});
if(option.key == ""){
selected = true;
}
new_options.push({
...option,
disabled : disabled,
selected : selected
});
});
this.bmOptionValue = Math.ceil(Math.random()*10000);
this.bmOptions = new_options;
this.bmform = new WeaForm();
}
@action
onBmRowSelect = (selectedRowKeys,selectComs) => {
this.bmSelectedRowKeys = selectedRowKeys;
this.bmSelectComs = selectComs;
}
@action
onBmChange = (datas) => {
this.bmDatas = datas;
this.resetBmOptions();
}
@action
fieldChange = (fieldname , showname, prjid=0) => {
this.selectField = {
fieldname : fieldname,
showname : showname,
}
this.bmOptionValue = fieldname;
Apis.getModifyFields({ fieldname:fieldname,type:'prjtsk',viewattr:2,prjid:prjid }).then(data => {
this.bmform = new WeaForm();
this.bmCondition = data.fieldinfo;
this.bmform.initFormFields(this.bmCondition);
});
}
@action
submitBatchModify = (selectedRowKeys) => {
if(this.bmDatas.length == 0){
message.error(getLabel('500403','请选择需要更改的数据!') );
return;
}
Apis.submitBatchModify({ datas : JSON.stringify(this.bmDatas),ids : selectedRowKeys}).then(data => {
if(data.success){
message.success(data.msg);
this.setVisible(false);
window._table.reLoad();
}else{
message.error(data.msg);
}
});
}
setPrjid = (v) =>{
this.prjid = v;
}
}
export default new TaskBatchEditDialogStore