//保存前校验

      let  SetXStatus = 0;
viewModel.on("beforeSave", function (args) {
let _this = this;
console.log(_this); let rows = viewModel.getGridModel().getRows();
if (rows <= 0) {
cb.utils.alert("未匹配到认证方案,无法保存单据!", "error");
return false;
} var promisex = new cb.promise();
this.SetXStatus = 0; Promise.all([supMaterial(_this), SetsupCertTask(_this)]).then((res) => { if (_this.SetXStatus == 0) {
console.log("失败");
promisex.reject(); // 失败
} else if (_this.SetXStatus == 1) {
console.log("失败");
promisex.reject(); // 失败
} else if (_this.SetXStatus == 2) {
console.log("放行");
promisex.resolve(); // 放行
}
}); return promisex; // -------------------------------
}); function supMaterial(_this) {
// let _this = this;
let proxy = viewModel.setProxy({
ensure: {
url: "/supCertTask/supMaterial",
method: "POST",
},
});
let param = {
state: viewModel.getParams().mode,
certMaterialClass: viewModel.get("certMaterialClass").getValue(),
certSupplier: viewModel.get("certSupplier").getValue(),
}; var promise = new cb.promise();
proxy.ensure(param, function (error, result) {
if (_this.SetXStatus == 0) {
_this.SetXStatus = 1;
} else if (_this.SetXStatus == 1) {
_this.SetXStatus = 2;
} if (!result) {
_this.SetXStatus = 0;
cb.utils.alert(
"存在同一供应商和物料分类的未完成的供应商认证任务,当前不允许新增同一维度的认证任务!",
"error"
);
promise.reject(); // 失败
}
promise.resolve(); // 放行
});
return promise;
} function SetsupCertTask(_this) {
// let _this = this;
var prom = new cb.promise();
let proxy = viewModel.setProxy({
ensure: {
url: "/supCertTask/savebefore",
method: "POST",
},
}); let tempIds = [];
let Rows = viewModel.getGridModel().getRows(); if (Rows.length > 0) {
for (let i = 0; i < Rows.length; i++) {
tempIds.push(Rows[i]["tempId"]);
}
} let param = {
tempIds: tempIds,
count: viewModel.getGridModel().getRows().length,
id: viewModel.get("certstepId").getValue(),
};
proxy.ensure(param, function (error, result) {
if (_this.SetXStatus == 0) {
_this.SetXStatus = 1;
} else if (_this.SetXStatus == 1) {
_this.SetXStatus = 2;
} if (result.flag == "true") {
} else {
_this.SetXStatus = 0;
cb.utils.alert(
result.msg || "上游任认证方案数据异常,请确认和重试",
"error"
);
prom.reject(); // 失败
}
prom.resolve(); // 放行
});
return prom;
}

BIP 两个请求成功后,才能做某一件事的更多相关文章

  1. 安装 CentOS 7 后必做的七件事

    原文 安装 CentOS 7 后必做的七件事 CentOS 是最多人用来运行服务器的 Linux 版本,最新版本是 CentOS 7.当你兴趣勃勃地在一台主机或 VPS 上安装 CentOS 7 后, ...

  2. 安装 Kali Linux 后需要做的 20 件事

    安装 Kali Linux 后需要做的 20 件事 本文含有我觉得有用的每一件事情.本文分为三大部分: 专门针对Kali用户 Kali Linux是来自Debian的一个特殊版本,Kali Linux ...

  3. 安装Ubuntu 13.04后要做的六件事

    2013-05-07 09:23    最新版本的Ubuntu已经新鲜出炉:Ubuntu 13.04,代号为Raring Ringtail.作为幕后开发Ubuntu Linux的公司,Canonica ...

  4. Ubuntu装完后要做的几件事

    Ubuntu装完后要做的几件事 改hosts 无论哪里,改hosts都是第一件事,没hosts咋google.没google咋活.在终端输入命令 sudo gedit /etc/hosts在# The ...

  5. debian 9 安装后需做的几件事

    debian 9 安装后需做的几件事 安装环境:X86 >> Debian 9 Linux/GNU apt源更新 注意连上有线网络 刚安装好的debian系统中,/etc/apt/sour ...

  6. 安装完CentOS 7 后必做的七件事

    CentOS是最多人用来运行服务器的 Linux 版本,最新版本是 CentOS 7.当你兴趣勃勃地在一台主机或 VPS 上安装 CentOS 7 后,首要的工作肯定是加强它的安全性,以下列出的七件事 ...

  7. 安装完CentOS 7 后必做的七件事[转]

    CentOS是最多人用来运行服务器的 Linux 版本,最新版本是 CentOS 7.当你兴趣勃勃地在一台主机或 VPS 上安装 CentOS 7 后,首要的工作肯定是加强它的安全性,以下列出的七件事 ...

  8. 安装Kali Linux 后需要做的 20 件事 - 51CTO.COM

    我在本文中整理出了安装一份全新的Kali Linux后总是要做的若干件事情.由于我有多台笔记本电脑和工作站,所以尽量扩大下列操作步骤的适用范围,以满足每个人的需求.这是我在安装Kali Linux后做 ...

  9. 安装Linux Mint 17后要做的20件事

    Linux Mint 17 Qiana Cinnamon Linux Mint 17已经发布,定名为Qiana.Mint是Linux最佳发行版之一,它定位于桌面用户,关注可用性和简洁.它携带了风格迥异 ...

  10. Jetson tk1 刷机后要做的几件事

    参考简书文章: http://www.jianshu.com/p/997ede860d74 1. 查看Jetson TK1 L4T版本 head -n 1 /etc/nv_tegra_release ...

随机推荐

  1. Android:Fragment

    Fragment 概念 把 Activity 中的一段 UI 和逻辑封装到一个 Fragment 中,实现可拔插,减少对 Activity 代码的侵入. Fragment 定义和管理自己的布局,具有自 ...

  2. swiper滑动异常

    遇到这样的情况,一共5张slide,但是从第三个起再往右划就不动了.后来发现是已经初始化swiper后又追加了slide.(大概意思是这样.太久的程序了,也不想仔细捋了) 暂且用到的办法: 先定义好: ...

  3. DataTransfer.setDragImage()自定义拖拽图像遇到的坑

    发生拖动时,从拖动目标(dragstart事件触发的元素)生成半透明图像,并在拖动过程中跟随鼠标指针.这个图片是自动创建的,你不需要自己去创建它.然而,如果想要设置为自定义图像,那么 DataTran ...

  4. 布尔类型:boolean

    布尔类型 基本介绍 布尔类型也叫boolean类型,其数据只允许取值true和false,无null boolean类型占1个字节 boolean类型适于逻辑运算,一般用于程序流程控制: if条件控制 ...

  5. WDA学习(26):Phase Indicator使用

    1.19 UI Element:Phase Indicator使用 本实例测试创建Phase Indicator; 运行结果: 1.创建Component,View: V_PHASE_IND; 2.创 ...

  6. 利用for循环同步执行异步方法

    //定义一个异步函数 const foo1 = (i) => { return new Promise((resolve, reject) => { setTimeout(() => ...

  7. (app笔记)如何执行monkey命令测试稳定性

    1.monkeyMonkey 就是SDK中附带的一个工具,向系统发送伪随机的用户事件流,为了测试软件的稳定性.健壮性,验证app是否出现ANR or Crush 操作: 2. adb devices ...

  8. 067_VFPage中Js与controller交互方式(二) RemoteAction

    上篇文章介绍了Toolkit API,是一种js的前台写法 同步调用格式:sforce.connection.method("argument1","argument2& ...

  9. AgilePoin规则执行

    我在写窗体规则时,明明默认值已经绑定,但是在页面加载时规则并没有起作用,导致改隐藏的没隐藏,该显示的不显示.找了半天,发现规则设置时可选择执行事件. 设置在页面加载时执行规则后,发现还是不能正确显隐组 ...

  10. Pytest 插件

    1. 执行标记用例执行次数 首先安装 repeat: pip install pytest-repeat @pytest.mark.repeat(n)执行当前用例 n 次 然后再往下执行其他用例 im ...