|
今天有个需求,在onshow里面执行函数,请求过来一堆代取的包裹(快递),然后勾选之后把数据集合放到一个list里面给后端发过去,这些包裹状态就变成了已取,正常情况下应该是到了下一个界面,但是uni-app的request请求并没有实时更新,这些勾选完的快递还在,只有刷新页面才会消失,我这时候的第一想法是在勾选完之后发送list的函数之后重新调用页面加载函数,但是服务器处理数据明显需要时间,要远不及js的执行顺序来的快,但是这种重新请求数据的逻辑上是可行的,所以我利用了一个延时器,在一秒之后重新请求,这个时间足够服务器响应,也就完成了一个数据虚假实时更新,希望uni-app以后能更加完善,解决掉这个问题,还有v-for在自定义组件失效,以及诸多坑。
页面加载函数
getWaiting() {
var that=this
that.Post(
'http://192.168.3.148:8084/takeServiceOrder/findServiceOrderBySubstitute',
{
serviceUserId: that.userId,
status: 0
},
data => {
that.listone.length = 0;
for (var i = 0; i < data.length; i++) {
that.listone.push({
id: data.id,
takeDeliveryOrderId: data.takeDeliveryOrderId,
parcelId: data.parcelId,
cuId: data.cuId,
name: data.nickName,
phone: data.phone,
address: data.campusName + data.floorNumber + '号楼' + data.doorNumber,
point: data.pickupAddress,
company: data.logisticsName,
number: data.pickCode,
checked: true
});
}
}
);
},
提交请求函数
sendId() {
var that=this
that.sendlistone.length = 0;
for (var i = 0; i < that.listone.length; i++) {
if (that.listone.checked == true) {
that.sendlistone.push({
id: that.listone.id,
takeDeliveryOrderId: that.listone.takeDeliveryOrderId,
parcelId: that.listone.parcelId,
cuId: that.listone.cuId,
status: '1'
});
}
}
that.Post(
'http://192.168.3.148:8084/takeServiceOrder/update',
{
"commonIdBos":that.sendlistone
},
(data)=>{
console.log(data)
}
)
setTimeout(()=>{
this.getWaiting()
}, 1000)
},
来源:https://www.cnblogs.com/hurenjie/p/11856808.html |