// nova-tourism/pages/my/my-order/index.js let Parse = getApp().Parse; const company = getApp().globalData.company const uid = Parse.User.current()?.id const dateF = require("../../../../utils/date") const req = require('../../../../utils/request') Page({ /** * 页面的初始数据 */ data: { currentTab: 0, //订单状态-页面(处理中0,进行中1,已完成2) roomList: [], show: false, showid: null, roomTabMap: { 0: "(100,500,601,602)", //已支付,申请退款,退款审核通过,退款已驳回 1: "(200,102,104)", //已入住,申请退房,退房被驳回 2: "(400,700,800,103)", //已退房,退款成功,已完成,退房成功 }, goodTabMap: { 0: "('200','500','601','602')", //已支付,申请退款,退款审核通过,退款已驳回 1: "('300')", //已发货 2: "('400','700','800')", //已收货,退款成功,订单完成 }, order: [], //订单列表 }, onClose() { this.setData({ show: false, }); }, ONShow(e) { const id = e.currentTarget.dataset.item.objectId this.setData({ showid: id, show: true, }); // 设置弹窗显示 console.log(this.data.showid); }, //订单完成 async ordercom(e) { console.log(e.currentTarget.dataset.item.objectId); let objectId = e.currentTarget.dataset.item.objectId let newOrder = new Parse.Query('RoomOrder'); newOrder.equalTo('company', company); newOrder.equalTo('objectId', objectId); newOrder.notEqualTo('isDeleted', true); let order = await newOrder.first(); console.log(order); order.set('status', 102) try { let saveDate = await order.save(); console.log('保存成功'); this.setData({ showid: null }) this.getOrder() } catch (error) { console.error("保存数据时出现错误:", error); } }, /** * 生命周期函数--监听页面加载 */ onLoad: function (options) { this.setData({ currentTab: Number(options.active) }) this.refersh() }, async refersh() { this.getOrder() }, /**获取订单 */ async getOrder() { let { order, currentTab, roomTabMap, goodTabMap } = this.data let rosql = `AND ro."status" IN ${roomTabMap[currentTab]}` let gosql = `AND o."status" IN ${goodTabMap[currentTab]}` let sql = `WITH "order" AS( SELECT t1."objectId",t1."createdAt",t1."startTime",t1."endTime",t1."status",t1."totalPrice",sg."name",'order' AS "table",sg."image",sg."tag"::jsonb AS "tags",(t1."spec"::jsonb->'spec')::text AS "spec",(t1."spec"::jsonb->'list')::text AS "list" FROM ( SELECT o."objectId",o."createdAt",o."status"::text,o."totalPrice"::text,o."startTime",o."endTime", jsonb_array_elements(o."targetObject")::json->>'objectId' AS "gid",spec.value AS "spec" FROM "Order" o, jsonb_each(o."specMap") AS spec (key, value) WHERE o."company"='${company}' AND o."isDeleted" IS NOT TRUE AND o."user"='${uid}' AND o."type"='scenery' ${gosql} AND o."isPay" IS TRUE )t1 LEFT JOIN "ShopGoods" sg ON sg."objectId" = t1."gid" ), "room_order" AS( SELECT ro."objectId",ro."createdAt",ro."startTime",ro."endTime", ro."status"::text,ro."price"::text AS "totalPrice",r."name",store."storeName" AS "table", r."images"->> 0 AS "image",r."tags"::jsonb AS "tags",''::text AS "spec",''::text AS "list" FROM "RoomOrder" ro LEFT JOIN "ShopRoom" r ON r."objectId"=ro."room" LEFT JOIN "ShopStore" store ON store."objectId"=r."shop" WHERE ro."company"='${company}' AND ro."isDeleted" IS NOT TRUE AND ro."user"='${uid}' AND ro."isPay" IS TRUE ${rosql} ), "tog" AS ( SELECT * FROM "order" UNION ALL SELECT * FROM "room_order" ) SELECT * FROM "tog" ORDER BY "tog"."createdAt" DESC LIMIT 20 OFFSET ${order?.length||0}` let d = await req.customSQL(sql) || [] d?.map(item => { console.log(item) if(item.list){ item.list = JSON.parse(item.list||'[]')||[] } if (item.startTime && item.endTime) { item.fromto = `${dateF.formatTime('YYYY年mm月dd日',item.startTime)}入住 - ${dateF.formatTime('YYYY年mm月dd日',item.endTime)}离店` } return item }) console.log(d) this.setData({ order: [...order, ...(d || [])] }) }, /**切换状态 */ async switchTab(e) { const index = e.currentTarget.dataset.index; await this.setData({ currentTab: index, order:[] }); this.getOrder() }, tourl(e){ let url = e.currentTarget.dataset.url wx.navigateTo({ url: `${url}`, }); }, /** * 生命周期函数--监听页面初次渲染完成 */ onReady: function () { }, /** * 生命周期函数--监听页面显示 */ onShow: function () { }, /** * 生命周期函数--监听页面隐藏 */ onHide: function () { }, /** * 生命周期函数--监听页面卸载 */ onUnload: function () { }, /** * 页面相关事件处理函数--监听用户下拉动作 */ onPullDownRefresh: function () { }, /** * 页面上拉触底事件的处理函数 */ onReachBottom: function () { this.getOrder() }, /** * 用户点击右上角分享 */ onShareAppMessage: function () { } })