trunk/pc4mobx/organization/stores/orgchart.js

115 lines
2.5 KiB
JavaScript
Raw Normal View History

2023-03-28 13:43:23 +08:00
import {
observable,
action
} from 'mobx';
import { WeaTools } from 'ecCom';
import * as mobx from 'mobx';
import * as API from '../apis/orgchart';
import {
Modal,
message,
} from 'antd'
import {
i18n
} from '../public/i18n';
import moment from "moment";
const toJS = mobx.toJS;
export class OrgChartStore {
@observable spinning = false;
@observable hasRight = '';
@observable date = moment(new Date()).format('YYYY-MM-DD');
iframe;
/********************* action list *********************/
initData = (refresh = false) => {
this.iframe = null;
//this.hasRight = true;
this.callInitData();
}
callInitData = () => {
if(this.spinning)
return;
this.spinning = true;
this.getChartData();
}
setIframe = (iframe) => {
if(iframe == null || this.iframe != null)
return;
this.iframe = iframe;
this.callInitData();
}
changeDate = (value) => {
this.date = value;
this.getChartData();
}
onInitOrgChart = (status) => {
this.spinning = false;
switch (status) {
case 0:
message.error(i18n.message.dataNone());
break;
case -1:
message.error(i18n.message.dataConstructError());
break
}
}
showSpin = (val) => {
this.spinning = (val === '0');
}
@action getChartData = (reset = false) => {
this.spinning = true;
const params = {};
Object.assign(params, {
arg0: 1,
arg3: true,
arg11: ';;B',
date: this.date
});
API.getOrgChartData(params).then(data => {
if (data.status === '1') {
const msgData = {
act: 'orgChart', // 自定义的消息类型、行为用于switch条件判断等。。
orgData: data.data,
params: {
sorgid: 1,
isShow: params.arg11,
showNum: 'false',
shownum: 25
},
client: {
browser: WeaTools.ua.browser,
browserVersion: {
browser: WeaTools.ua.browser,
version: parseInt(WeaTools.ua.version)
},
version: parseInt(WeaTools.ua.version),
os: WeaTools.ua.os
}
};
const sendMsg = setInterval(() => {
if ($('#orgChartFrame')[0] != null) {
clearInterval(sendMsg);
$('#orgChartFrame')[0].contentWindow.postMessage(msgData, '*');
}
}, 500);
// this.iframe && this.iframe.contentWindow.postMessage(msgData, '*');
} else {
this.spinning = false;
}
}, error => {
this.spinning = false;
})
}
}