weaver_trunk_cli/pc4mobx/prj/stores/queryPrjStore.js

179 lines
6.3 KiB
JavaScript

import { observable, action, autorun,toJS } from 'mobx';
import {WeaTableNew,WeaForm} from 'comsMobx'
const {TableStore} = WeaTableNew;
import { ListStore } from './listStore';
import {Modal} from 'antd';
const confirm = Modal.confirm;
import {WeaTools,WeaLocaleProvider} from "ecCom"
import * as Apis from '../apis/project';
import {ShareStore} from './shareStore'
import {ExchangeStore } from "./exchangeStore"
import {ProjectInfoStore } from './projectInfoStore';
const getLabel = WeaLocaleProvider.getLabel;
class QueryPrjStore extends ListStore{
@observable rightMenu =[];
conditiontype = {conditiontype:"search"};
@observable locationparams = "";//门户查询条件:我管理的、我参与的、我查看的项目
@observable showLeft = true;
/** 左侧树store */
@observable leftTree = [];
@observable leftTreeCount = {};
@observable leftTreeCountType = [];
@observable selectedTreeKey = "";
@observable shareStore = new ShareStore();
@observable exchangeStore = new ExchangeStore();
@observable projectInfoStore = new ProjectInfoStore();
@action
initDatas=(params={},needReset=false)=>{
this.loading = true;
this.locationparams = params;
const newParams = {...this.conditiontype,...params};
Apis.getPrjCondition(newParams).then(data=>{
this.loading = false;
this.condition = data.condition;
if(needReset){
this.resetForm();
}
if(this.form && !this.form.isFormInit){
this.form.initFormFields(data.condition);
if(this.form.has("name")){
this.form.updateFields({name:{value:params.name}},false);
}else{
this.form.add('',{key:"name"});
this.form.updateFields({name:{value:params.name}},false);
}
}
})
}
initTreeDatas=(params={})=>{
const searchParamsAd = this.form.getFormParams();
let newParams = { ...searchParamsAd,...this.locationparams };
if(this.form && this.form.isFormInit){
newParams = {...this.locationparams,...searchParamsAd };
}
Apis.getPrjTypeTreePageList({treetype:'prjsearch',...params,...newParams}).then(data=>{
this.leftTree =data.treedata;
this.leftTreeCount = data.treecount;
this.leftTreeCountType = data.treecountcfg;
this.selectedTreeKey = data.selectedKeys;
this.doSearch({prjtype:data.selectedKeys});
})
}
doSearch=(params={})=>{
this.loading = true;
//获取表单的参数值
if(params.prjtype){
this.appendFormFields({prjtype:{value:params.prjtype}});
}
const searchParamsAd = this.form.getFormParams();
if(searchParamsAd.prjtype){
this.selectedTreeKey = searchParamsAd.prjtype;
}
let newParams = { ...searchParamsAd,...this.locationparams };
if(this.form && this.form.isFormInit){
newParams = {...this.locationparams,...searchParamsAd };
}
Apis.getQueryPrjList(newParams).then(data=>{
this.tableStore.getDatas(data.sessionkey, params.current || 1);
this.topTabCount = data.tabnum;
this.dataKey = data.sessionkey;
this.rightMenu = data.rightMenus;
this.loading = false;
})
}
reLoad=()=>{
this.doSearch();
}
onShowColumn=()=>{
this.tableStore.setColSetVisible(true);
this.tableStore.tableColSet(true)
}
setSelectedTreeKey=(key) =>{
this.selectedTreeKey = key;
}
@action
setLeftShow=(bool) =>{
this.showLeft = bool;
}
clearStatus=()=>{
this.showSearchAd = false;
this.selectedTreeKey = "";
this.resetForm();
}
//项目执行操作
@action
doPlanOpt=(params={})=>{
Apis.doPlanOpt(params).then(data=>{
this.doSearch();
});
}
//项目删除
@action
delPrjInfo=(params={})=>{
let _this = this;
const searchParamsAd = this.form.getFormParams();
let newParams = { ...searchParamsAd,...this.locationparams };
if(this.form && this.form.isFormInit){
newParams = {...this.locationparams,...searchParamsAd };
}
Modal.confirm({
title: getLabel(15172,"系统提示"),
content: getLabel(383860,"您确认要删除项目吗?"),
onOk() {
Apis.delPrjInfo(params).then(data=>{
Apis.getPrjTypeTreePageList({treetype:'prjsearch',newParams}).then(data=>{
_this.leftTree =data.treedata;
_this.leftTreeCount = data.treecount;
_this.leftTreeCountType = data.treecountcfg;
_this.doSearch({prjtype:_this.selectedTreeKey});
})
});
},
onCancel() { },
})
}
//导出项目
@action
doPrjExcelExp=(params={})=>{
this.loading = true;
const searchParamsAd = this.form.getFormParams();
let newParams = { ...searchParamsAd,...this.locationparams };
if(this.form && this.form.isFormInit){
newParams = {...this.locationparams,...searchParamsAd };
};
if(window.setShare4ec){
window.setShare4ec({
mouldCode: 'PRJ',
itemCode: 'PRJ_EXPORT_1',
encrypt: '1',
targetid: ""
} ,
(datas)=>{
const {status,sharepassword = '',serialid = ''} = datas;
if(status === '1'){
newParams.sharepassword = sharepassword;
WeaTools.callApi('/api/proj/pcproject/doPrjExcelExp','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/pcproject/doPrjExcelExp','GET',newParams).then(data => {
window.location=(window.ecologyContentPath || '')+"/weaver/weaver.file.ExcelOut";
this.loading = false;
}).catch(err=>message.error(err));
}
}
}
const queryPrjStore = new QueryPrjStore();
export default queryPrjStore;