//调用接口
this.socialSecurityInfoResApi(returnPremiumRes)
//循环list
async socialSecurityInfoResApi(returnPremiumRes){
//根据socialSecurityInfoResList的条数 循环调用医保退费
for(let item of returnPremiumRes.data.socialSecurityInfoResList) {
if(JSON.stringify(item) == JSON.stringify(returnPremiumRes.data.socialSecurityInfoResList[returnPremiumRes.data.socialSecurityInfoResList.length - 1])){
this.refreshEmitOK = true;//控制如果是最后一次请求则为true 可控制请求数据后刷新页面
}else{
this.refreshEmitOK = false;
}
await this.handlerSocial(item)
}
},
//串行请求接口进行退费
handlerSocial(item){
let _this = this;
let id = Vue.ls.get("primaryPresriptionID");
return new Promise((resolve,jeject)=>{
setTimeout(()=>{
//医保退费
person('http://127.0.0.1:8086/v2/refund', item).then(yibaoReturnRes => {
if (yibaoReturnRes.code != 10000) {
//失败
setTimeout(() => {
_this.$setLoading(false)
}, 2000)
this.$warning({
content: "调用医保退费接口失败,原因是:" + yibaoReturnRes.message,
})
//医保退费失败,则把医保退费返回数据返回给接口
}
//医保退费后,则把医保退费返回数据返回给接口
person('/encounterMgmt/socialSecurityResult', {
body: {
id: id,
hisClinicPayDetailsId:item.hisClinicPayDetailsId,
data: yibaoReturnRes.data
}
}).then(resultRes => {
if (resultRes.success) {
//成功。
this.$message.success("操作成功!");
if(this.refreshEmitOK){
this.$emit('ok');
}
setTimeout(()=>{
_this.$setLoading(false)
},2000)
} else {
setTimeout(()=>{
_this.$setLoading(false)
},2000)
this.$warning({
content: "医保退费返回数据传入接口失败,原因是:" + resultRes.message,
})
}
resolve()
})
})
},1000)
})
},
for循环阻塞请求接口(串行请求)
最新推荐文章于 2024-04-07 10:45:15 发布
文章描述了一个异步处理流程,通过循环调用`socialSecurityInfoResApi`处理医保退费。每次退费请求使用Promise包装,并在成功或失败后更新状态。如果最后一个请求成功,会触发页面刷新。医保退费失败时,会显示警告信息并将失败原因告知用户。
摘要由CSDN通过智能技术生成