如图,置顶功能,如果置顶时长设置为2小时,2小时后自动取消置顶功能,并删除数据库中topping的字段,代码该如何写才能实现?
wxml代码:
<view class="right">
<view catchtap="showCode" data-index="{{index}}" >
<view class="right-top" wx:if="{{wehicle.topping}}">已置顶</view>
<view class="right-top" wx:else>置顶</view>
</view>
<view class="right-red" bind:tap="onRedEvent">变红</view>
<view class="right-modify" bind:tap="onModifyEvnet">修改</view>
</view>
</view>
云函数代码:
// 云函数入口文件
const cloud = require('wx-server-sdk')
cloud.init()
const db = cloud.database();
const _ = db.command;
// 云函数入口函数
exports.main = async (event, context) => {
const wxContext = cloud.getWXContext();
const openid = wxContext.OPENID;
const itmelength = event.itmelength;
const topping = event.topping;
const id = event.id;
return await db.collection("wehicle").doc(id).update({
data: {
"topping": _.push({
itmelength: itmelength,
pud_data: new Date(),
}),
},
})
}
js代码:
confirm(e) {
console.log(e)
const that = this;
const itmelength = that.data.code;
const index = that.data.index;
console.log(index);
const wehicle = that.data.wehicles[index];
console.log(wehicle)
wx.showLoading({
title: "正在置顶中..."
})
if(!wehicle.istoppinged){
wx.cloud.callFunction({
name: "topping",
data: {
id: wehicle._id,
topping:{
itmelength: itmelength,
}
},
success: res => {
console.log(res);
if(!wehicle.topping){
wehicle.topping = {itmelength}
}else{
wehicle.topping.push(itmelength)
}
const wehicles = that.data.wehicles;
if (wehicle.topping) {
wx.hideLoading();
wx.showToast({
title: "恭喜!置顶成功!",
})
setTimeout(function () {
that.setData({
show_input: false,
wehicles:wehicles
})
}, 800)
} else {
wx.showToast({
title: "置顶失败,请重新置顶!",
})
}
}
})
}