trunk/pc4public/stores/workflow/autographStore.js

53 lines
1.5 KiB
JavaScript

import * as API from '../../apis/autographApi';
import { observable, action } from 'mobx';
export default class AutographStore {
@observable initInfo = [];
@observable isMustInput = '';
@observable isAutoResizeSignImage = true;
@observable recordId = '0';
@observable visible = true;
@action
setMobxState = (params = {}) => {
Object.keys(params).forEach((v) => {
this[v] = params[v];
});
}
@action
getAutographInfo = params => new Promise((resolve) => {
API.getAutographInfo(params).then((res) => {
this.initInfo = res;
resolve(res);
});
})
@action
saveAutograph = (src) => {
const isMustInput = this.isMustInput;
if (isMustInput === '1' || (isMustInput === '2' && src === 'reject')) {
if (Consult.DocEmpty && Consult.OpinionText == '') {
return false;
}
}
// TODO save
let record = '';
const timestamp = Date.parse(new Date()) / 1000;
if (Consult.Modify) {
let saveFlag = this.isAutoResizeSignImage ? Consult.SaveAsGifEx(`${timestamp}.gif`, 'All', 'Remote') : Consult.SaveSignature();
if (!saveFlag) {
return false;
}
record = Consult.WebGetMsgByName('RECORDID');
if (parseInt(record) > 0 && this.isAutoResizeSignImage) {
Consult.WebSetMsgByName('TEMPCALL', '1');
Consult.WebSetMsgByName('TEMPID', record);
saveFlag = Consult.SaveSignature();
}
} else {
return this.recordId;
}
return record;
}
}