志汇扫码点餐小程序原始功能前台客户可以预约,但是后台不能取消,这个就太扯淡了,根本不符合现实真实的业务场景,不知道开发这个小程序的人脑子怎么想的,没办法,只能继续二开了:
首先找到后台确认预约的页面,路径->zh_dianc/pages/seller/dd/yddd:
仔细读代码,的确只有一个确认订单的按钮:
<viewclass=”djdde”><viewbindtap=”qrdd”data-oid=”{{item.id}}”>确认预约</view></view>
思路:前台增加一个取消预约按钮,后台增加一个取消预约的接口
第一部增加按钮很简单,直接COPY改名字:
<viewclass=”djdde”><viewbindtap=”qrdd”data-oid=”{{item.id}}”>确认预约</view></view><viewclass=”djdde”><viewbindtap=”qxyy”data-oid=”{{item.id}}”>取消预约</view></view>
后台增加接口也不复杂,参考确认订单改一个取消预约订单的接口:
qrdd: function(a) {var e = this, t = a.currentTarget.dataset.oid;console.log(t), wx.showModal({title: “提示”,content: “确认订单吗?”,success: function(t) {t.confirm ? (console.log(“用户点击确定”), app.util.request({url: “entry/wxapp/OkYdOrder”,cachetime: “0”,data: {order_id: a.currentTarget.dataset.oid},success: function(t) {console.log(t), 1 == t.data && (wx.showToast({title: “操作成功”,duration: 1e3}), setTimeout(function() {e.setData({pagenum: 1,ddlist: [],mygd: !1,jzgd: !0,jzwb: !1}), e.reLoad(e.data.date);}, 1e3));}})) : t.cancel && console.log(“用户点击取消”);}});},
<viewclass=”list_cancel”wx:if=”{{item.state==’1′}}”><viewbindtap=”qxyy”class=”list_surplus”data-yyid=”{{item.id}}”>取消预约</view><viewbindtap=”ckxq”class=”list_surplus1″data-yyid=”{{item.id}}”style=”color:{{color}};border: 1rpx solid {{color}};”>查看详情</view></view>
后台代码:
qxyy: function(e) {var o = this;console.log(“取消预约” + e.currentTarget.dataset.yyid), wx.showModal({title: “提示”,content: “确定取消预约么”,success: function(t) {t.confirm ? (console.log(“用户点击确定”), app.util.request({url: “entry/wxapp/CancelReservation”,cachetime: “0”,data: {id: e.currentTarget.dataset.yyid},success: function(t) {console.log(t.data), “1” == t.data ? (wx.showToast({title: “取消成功”,icon: “success”,duration: 1e3}), setTimeout(function() {o.reLoad();}, 1e3)) : wx.showToast({title: “请重试”,icon: “loading”,duration: 1e3});}})) : t.cancel && console.log(“用户点击取消”);}});},
果然如此啊,前端代码直接参考这个取消预约就可以了,但“CancelReservation”这个接口我们还要去找一下,看看接口代码是怎么写的:
//取消预约
public function doPageCancelReservation() {
global $_W, $_GPC;
$data[‘state’] = 4;
$res = pdo_update(‘wpdc_ydorder’, $data, array(‘id’ => $_GPC[‘id’]));
if ($res) {
echo ‘1’;
} else {
echo ‘2’;
}
}
“wpdc_ydorder”这个是预约订单表,通过对比数据库字段发现 state分别有3个数值范围:1、待审核;2、已确认;4、已取消
忍不住再想吐槽这个开发小程序的脑子,124,请问3去哪了?算了不管了,稍微改动一下代码,二次开发就算完成了,前台取消预约可以使用了。
完整代码下载:
[reply]
付费提供的服务,不喜欢的话可以根据本文自行二次开发
[/reply]