export default { bill: null, param: null, execute: function (bill, param) { this.bill = bill this.param = param if (GMS && GMS.showDetailAction) {//查看详情,则直接关闭弹出 GMS.vbus.$emit('closeModal'); return; } if (param) { bill.setControlsSate(param["_control_name_"], 'enable',false); bill.runFormulaCheckData(param.param, function (msg) { if (msg.length == 0) {//缓存数据 let obj = bill.getBuillData(); obj.billDefine = param.define; this.execuFormula(obj, param);//点击确定,执行公式 } else { GMS.$http.post(`/baseData/data/list`, { pagination: false, tableName: "MD_BILLSTATE_AUDIT", code: '1', }).then((res) => { bill.setControlsSate(param["_control_name_"], 'enable',true); if (res.data.rs.code == 0) { // 给单据赋新的状态值 bill.getMasterData().setValue('BILLSTATEAUDIT',res.data.rows[0]); } }); GAMS.Common.messagePrompt(msg); } GMS.$hideContainer.$Spin.hide(); }.bind(this)); } else { GAMS.Common.messagePrompt('缺少参数'); } }, execuFormula(buidData, param) { let postData = { data: buidData } if (!param.param.actions) { return } let url = `/gms/bill/executed/${param.define}/${param.param.actions}?transmission=total`; GMS.$http.post(url, JSON.stringify(postData), { headers: { post: { "Content-Type": "application/json", } } }).then(response => { // bill.setControlsSate(param["_control_name_"], 'enable',true); let data = response.data; if (data.code == 0) { GMS.vbus.$emit('cacheEcho', buidData);//正常情况回去给子表赋值 }else if(data.code == -1 && data.message){ let stringOne = data.message.split(':')[1]; let stringResult = stringOne.split(';')[0] let msg = stringResult.split('@'); // TODO 仍需解决 包含'@'字符的非CheckBudgetControl公示报错msg 以及else分支的按钮状态问题 if(stringResult.indexOf('@') === -1){ GAMS.Common.messagePrompt(stringResult) if (this.bill&&this.param) { this.bill.setControlsSate(this.param["_control_name_"], 'enable',true); } }else{ if(msg[0]== 1 ){ GAMS.Common.messagePrompt(msg[1]); }else{ GMS.$hideContainer.$Modal.confirm({ title: '信息提示', content: msg[1], onOk: () => { GMS.vbus.$emit('cacheEcho', buidData);//正常情况回去给子表赋值 }, onCancel: () => {} }); } } } }).catch(resp=>{ // bill.setControlsSate(param["_control_name_"], 'enable',true); console.error("cacheSaveAction:接口调用失败 resp:"+ resp) GAMS.Common.messagePrompt('单据保存失败..'); }) } }