import Bridge from '../../components-control/util/bridge' import { compareData } from "../../components-control/util/dataChange" import { SIGNATURE_TABLE_NAME, BILL_GLOBAL_PARAM } from '../../constant' import { saveBill, showCommentModal } from '../util' export default { execute: function (bill, param) { if (bill) { bill = bill.dom || bill let curTagId = window.nros.context.getCurrTag(); let oldObj = curTagId && GMS.oldBillDataMap[curTagId] ? GMS.oldBillDataMap[curTagId] : GMS.oldBillData; let flag = compareData(oldObj, bill.getBuillData()) || bill.getGlobalParam("noRunTimeFormula"); if (flag) { this.approvalLogical(bill, param, this) } else { GMS.$hideContainer.$Modal.confirm({ title: "信息提示", content: "信息发生变化, 是否保存", onOk: () => { saveBill(bill, param).then(() => { this.approvalLogical(bill, param) }) }, onCancel: () => { } }) } } else { GMS.$hideContainer.$Message.error('缺少参数'); } }, approvalLogical: function (bill, param) { bill.setControlsSate(param["_control_name_"], "enable", false) if (param.param.actions) { let saveParam = { actions: param.param.actions, } bill.executeServerAction(saveParam, function (code, data) { if (code === 200) { this.approval(bill, param); } else { bill.setControlsSate(param["_control_name_"], "enable", true) GMS.$hideContainer.$message.error("操作异常请联系管理员"); } }.bind(this)); } else { this.approval(bill, param); } }, approval: function (bill, param) { const fn = () => { let comments = bill.getGlobalParam(BILL_GLOBAL_PARAM.APPROVAL_COMMENT).suggestions ? bill.getGlobalParam(BILL_GLOBAL_PARAM.APPROVAL_COMMENT).suggestions : '' bill.clearSubDatas(SIGNATURE_TABLE_NAME) saveBill(bill, param).then(() => { GMS.$http.post( `/rbc/bill/action/zgh/change/work/${param.define}/bill.Basic.reject`, { approvalComments: comments, data: bill.getBuillData(), detailData: [], }, ).then( function (response) { if (response.status == 200 || response.statusText == 'OK') { if (response.data.code != 0) { GMS.$hideContainer.$Message.error(response.data.message) return } bill.setControlsSate(param["_control_name_"], "enable", true) bill.setControlsSate(param["_control_name_"], "loading", false) let curTagId = window.nros.context.getCurrTag(); GMS.vbus.$emit('change-form-state', { state: 'readOnly' }, curTagId) GMS.$hideContainer.$Message.success('驳回成功!') if ( window.osConfig.appOpenMode && window.osConfig.appOpenMode == "apploader" ) { GMS.$hideContainer.$portalAPI.emit('entry-tag-close') } else if (Bridge.vm) { Bridge.vm.modal_visible = false } window.GMS.vbus.$emit('refresh-workflow-job-view') } }.bind(this) ) .catch( function (error) { bill.setControlsSate(param["_control_name_"], "loading", false) bill.setControlsSate(param["_control_name_"], "enable", true) GMS.$hideContainer.$Message.error('工作流配置错误,请联系管理员') }.bind(this) ); }) } showCommentModal(bill, param, true).then(fn).catch((error) => { bill.setControlsSate(param["_control_name_"], "enable", true) bill.setControlsSate(param["_control_name_"], "loading", false) }) }, }