You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

1 line
16 KiB

(window["webpackJsonp"]=window["webpackJsonp"]||[]).push([["pages-order-index"],{"0cc4":function(t,e,a){"use strict";a.r(e);var n=a("8cea"),i=a("263f");for(var o in i)["default"].indexOf(o)<0&&function(t){a.d(e,t,(function(){return i[t]}))}(o);a("fc4d");var r=a("828b"),s=Object(r["a"])(i["default"],n["b"],n["c"],!1,null,"4e9b4c2d",null,!1,n["a"],void 0);e["default"]=s.exports},"263f":function(t,e,a){"use strict";a.r(e);var n=a("e10a"),i=a.n(n);for(var o in n)["default"].indexOf(o)<0&&function(t){a.d(e,t,(function(){return n[t]}))}(o);e["default"]=i.a},"30f7":function(t,e,a){"use strict";a("6a54"),Object.defineProperty(e,"__esModule",{value:!0}),e.default=function(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")},a("7a76"),a("c9b5")},4733:function(t,e,a){"use strict";a("6a54"),Object.defineProperty(e,"__esModule",{value:!0}),e.default=function(t){if(Array.isArray(t))return(0,n.default)(t)};var n=function(t){return t&&t.__esModule?t:{default:t}}(a("8d0b"))},6108:function(t,e,a){var n=a("c86c");e=n(!1),e.push([t.i,".order-page[data-v-4e9b4c2d]{background:linear-gradient(180deg,#cbe6ff,#f6faff);min-height:100vh;padding-bottom:20px;font-family:SourceHanSansCN,PingFang SC,Microsoft YaHei,sans-serif}.header-title[data-v-4e9b4c2d]{text-align:center;font-size:%?36?%;font-weight:700;padding-top:7vh;letter-spacing:%?2?%}.header[data-v-4e9b4c2d]{display:flex;align-items:center;justify-content:space-between;padding:20px 16px 10px 16px;background:linear-gradient(180deg,#cbe6ff,#f6faff)}.back-btn[data-v-4e9b4c2d], .more-btn[data-v-4e9b4c2d]{font-size:24px;color:#333}.title[data-v-4e9b4c2d]{font-size:22px;font-weight:700;color:#222}.order-list[data-v-4e9b4c2d]{padding:10px 0 0 0;margin-top:%?44?%}.order-card[data-v-4e9b4c2d]{background:#fff;border-radius:10px;margin:0 16px 16px 16px;box-shadow:0 2px 8px rgba(0,0,0,.04);padding:18px 18px 12px 18px;height:%?340?%}.order-card-header[data-v-4e9b4c2d]{display:flex;justify-content:space-between;align-items:center;margin-bottom:8px}.status[data-v-4e9b4c2d]{font-size:12px;border-radius:%?8?%;padding:2px 8px;color:#fff;font-weight:500;display:inline-block;-webkit-transform:skewX(-20deg);transform:skewX(-20deg);border:none}.status-text[data-v-4e9b4c2d]{display:inline-block;-webkit-transform:skewX(20deg);transform:skewX(20deg)}.status.purchased[data-v-4e9b4c2d]{background:#22c58b}.status.pending[data-v-4e9b4c2d]{background:#ff9800}.status.rejected[data-v-4e9b4c2d]{background:#ff4d4f}.status.confirmed[data-v-4e9b4c2d]{background:#217aff}.status.cancelled[data-v-4e9b4c2d]{background:#bdbdbd}.status.canceled[data-v-4e9b4c2d]{background:#b0b8c6;color:#fff}.status-wrapper[data-v-4e9b4c2d]{display:flex;align-items:center;gap:%?12?%}.bill-status-tag[data-v-4e9b4c2d]{padding:%?4?% %?16?%;border-radius:%?999?%;font-size:%?24?%;color:#217aff;background:#e4f3fe}.date[data-v-4e9b4c2d]{color:#173766;font-size:15px}.order-info[data-v-4e9b4c2d]{margin-bottom:24px}.flight[data-v-4e9b4c2d]{font-size:16px;font-weight:500;margin-top:12px}.desc[data-v-4e9b4c2d]{color:#888;font-size:14px;margin-top:10px}.order-actions[data-v-4e9b4c2d]{display:flex;gap:12px}uni-button[data-v-4e9b4c2d]{flex:1;border-radius:4px;padding:8px 0;font-size:16px;margin:0}.detail-btn[data-v-4e9b4c2d]{background:#e4f3fe;color:#217aff;height:%?69?%;display:flex;align-items:center;justify-content:center;font-size:14px;margin-left:auto}.order-actions.single-btn[data-v-4e9b4c2d]{justify-content:flex-end}.order-actions.single-btn .detail-btn[data-v-4e9b4c2d]{flex:0 0 auto;width:153px}.buy-btn[data-v-4e9b4c2d], .rebook-btn[data-v-4e9b4c2d]{background:linear-gradient(90deg,#3b7cff,#5bb6ff);color:#fff;height:%?69?%;display:flex;align-items:center;justify-content:center;font-size:14px}.invoice-btn[data-v-4e9b4c2d]{background:#fff5e6;color:#ff9f0a;height:%?69?%;display:flex;align-items:center;justify-content:center;font-size:14px}.cancel-btn[data-v-4e9b4c2d]{background:#ededed;color:#bdbdbd;height:%?69?%;display:flex;align-items:center;justify-content:center;font-size:14px}.cancel-btn[disabled][data-v-4e9b4c2d]{opacity:1}.tabbar[data-v-4e9b4c2d]{position:fixed;left:0;right:0;bottom:0;height:60px;background:#fff;display:flex;border-top:1px solid #eaeaea;z-index:10}.tab-item[data-v-4e9b4c2d]{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;color:#888;font-size:14px}.tab-item.active[data-v-4e9b4c2d]{color:#217aff}.icon[data-v-4e9b4c2d]{font-size:22px;margin-bottom:2px}.detail-modal-mask[data-v-4e9b4c2d]{position:fixed;left:0;top:0;right:0;bottom:0;background:rgba(0,0,0,.5);z-index:9999;display:flex;align-items:center;justify-content:center}.detail-modal[data-v-4e9b4c2d]{background:#fff;border-radius:20px;padding:%?64?% %?56?% %?48?% %?56?%;width:90vw;max-width:500px;min-height:420px;margin:0 auto;position:relative;display:flex;flex-direction:column}.detail-modal-content[data-v-4e9b4c2d]{flex:1 1 auto;min-height:0;overflow-y:auto}.modal-close[data-v-4e9b4c2d]{position:absolute;right:%?24?%;top:%?24?%;font-size:%?44?%;color:#222;z-index:2;cursor:pointer}.modal-title[data-v-4e9b4c2d]{font-size:%?38?%;font-weight:700;margin-bottom:%?40?%;text-align:left}.modal-row[data-v-4e9b4c2d]{display:flex;justify-content:space-between;align-items:center;font-size:%?34?%;color:#222;margin-bottom:%?36?%}.modal-label[data-v-4e9b4c2d]{color:#3b4a6b;min-width:%?180?%;font-size:%?34?%}.modal-amount[data-v-4e9b4c2d]{color:#217aff;font-size:%?32?%;font-weight:700}.modal-confirm-btn[data-v-4e9b4c2d]{width:160px!important;height:44px!important;line-height:44px!important;border-radius:12px!important;background:linear-gradient(90deg,#3b7cff,#5bb6ff)!important;color:#fff!important;font-size:18px!important;font-weight:500!important;margin:40px auto 0 auto!important;border:none!important;outline:none!important;display:block!important;padding:0!important;box-sizing:border-box!important;text-align:center!important;align-self:center!important;flex-shrink:0!important;flex-grow:0!important}.order-card.canceled[data-v-4e9b4c2d]{opacity:.7}.empty-box[data-v-4e9b4c2d]{display:flex;flex-direction:column;align-items:center;justify-content:center;margin-top:%?120?%}.empty-img[data-v-4e9b4c2d]{width:%?320?%;height:%?320?%;margin-bottom:%?32?%}.empty-text[data-v-4e9b4c2d]{color:#888;font-size:%?28?%}.hide-in-wechat[data-v-4e9b4c2d]{display:none!important}.wechat-browser[data-v-4e9b4c2d]{margin-top:%?-44?%}.load-more[data-v-4e9b4c2d]{padding:%?30?% 0;text-align:center}.loading-text[data-v-4e9b4c2d]{color:#888;font-size:%?28?%}.no-more-text[data-v-4e9b4c2d]{color:#999;font-size:%?26?%}",""]),t.exports=e},"8cea":function(t,e,a){"use strict";a.d(e,"b",(function(){return n})),a.d(e,"c",(function(){return i})),a.d(e,"a",(function(){}));var n=function(){var t=this,e=t.$createElement,a=t._self._c||e;return a("v-uni-view",{staticClass:"order-page",class:{"wechat-browser":t.isWeixinBrowser}},[a("v-uni-view",{staticClass:"header-title",class:{"hide-in-wechat":t.isWeixinBrowser}},[t._v("我的购票")]),a("v-uni-view",{staticClass:"order-list"},[t.reservationList.length>0?t._l(t.reservationList,(function(e){return a("v-uni-view",{key:e.id,staticClass:"order-card",class:t.getCardClass(e.status)},[a("v-uni-view",{staticClass:"order-card-header"},[a("v-uni-view",{staticClass:"status-wrapper"},[a("v-uni-view",{staticClass:"status",class:t.getStatusClass(e.status)},[a("span",{staticClass:"status-text"},[t._v(t._s(t.getStatusText(e.status)))])]),t.getBillStatusText(e.bill_status)?a("v-uni-view",{staticClass:"bill-status-tag"},[t._v(t._s(t.getBillStatusText(e.bill_status)))]):t._e()],1),a("v-uni-view",{staticClass:"date"},[t._v(t._s(t.formatChinaDate(e.created_at)))])],1),a("v-uni-view",{staticClass:"order-info"},[a("v-uni-view",{staticClass:"flight"},[t._v("编号:"+t._s(e.id)+" - "+t._s(e.ship?e.ship.ship_number:""))]),a("v-uni-view",{staticClass:"desc"},[t._v(t._s(e.direction_name)+" | "+t._s(e.batch&&e.batch.name?e.batch.name:"-"))])],1),a("v-uni-view",{staticClass:"order-actions",class:{"single-btn":t.isSingleAction(e)}},[t.canCancel(e.status)?[a("v-uni-button",{staticClass:"cancel-btn",on:{click:function(a){arguments[0]=a=t.$handleEvent(a),t.onCancelOrder(e)}}},[t._v("取消预约")])]:t._e(),t.canRebook(e.status)?[a("v-uni-button",{staticClass:"cancel-btn",on:{click:function(a){arguments[0]=a=t.$handleEvent(a),t.goReservation(e)}}},[t._v("重新预约")])]:t._e(),t.canPay(e.status)?[a("v-uni-button",{staticClass:"buy-btn",on:{click:function(a){arguments[0]=a=t.$handleEvent(a),t.goPayOrder(e)}}},[t._v("去支付")])]:t._e(),t.canIssueInvoice(e.bill_status)?[a("v-uni-button",{staticClass:"invoice-btn",on:{click:function(a){arguments[0]=a=t.$handleEvent(a),t.goInvoice(e)}}},[t._v("去开票")])]:t._e(),a("v-uni-button",{staticClass:"detail-btn",on:{click:function(a){arguments[0]=a=t.$handleEvent(a),t.onShowDetail(e)}}},[t._v("查看详情")])],2)],1)})):[a("v-uni-view",{staticClass:"empty-box"},[a("v-uni-image",{staticClass:"empty-img",attrs:{src:"/static/empty.png",mode:"aspectFit"}}),a("v-uni-view",{staticClass:"empty-text"},[t._v("暂无订单")])],1)],t.reservationList.length>0?a("v-uni-view",{staticClass:"load-more"},[t.loading?a("v-uni-view",{staticClass:"loading-text"},[t._v("加载中...")]):t.hasMore?t._e():a("v-uni-view",{staticClass:"no-more-text"},[t._v("没有更多数据了")])],1):t._e()],2)],1)},i=[]},b008:function(t,e,a){var n=a("6108");n.__esModule&&(n=n.default),"string"===typeof n&&(n=[[t.i,n,""]]),n.locals&&(t.exports=n.locals);var i=a("967d").default;i("23fea387",n,!0,{sourceMap:!1,shadowMode:!1})},b7c7:function(t,e,a){"use strict";a("6a54"),Object.defineProperty(e,"__esModule",{value:!0}),e.default=function(t){return(0,n.default)(t)||(0,i.default)(t)||(0,o.default)(t)||(0,r.default)()};var n=s(a("4733")),i=s(a("d14d")),o=s(a("5d6b")),r=s(a("30f7"));function s(t){return t&&t.__esModule?t:{default:t}}},d14d:function(t,e,a){"use strict";a("6a54"),Object.defineProperty(e,"__esModule",{value:!0}),e.default=function(t){if("undefined"!==typeof Symbol&&null!=t[Symbol.iterator]||null!=t["@@iterator"])return Array.from(t)},a("01a2"),a("e39c"),a("bf0f"),a("844d"),a("18f7"),a("de6c"),a("08eb")},e10a:function(t,e,a){"use strict";a("6a54");var n=a("f5bd").default;Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0;var i=n(a("b7c7")),o=n(a("2634")),r=n(a("2fdc"));a("5c47"),a("0506"),a("bf0f"),a("c223"),a("d4b5"),a("8f71"),a("4626");var s=a("25d7"),c=a("bd31"),d={name:"OrderPage",data:function(){return{reservationStatusEnum:[],reservationList:[],isWeixinBrowser:!1,page:1,lastPage:1,loading:!1,hasMore:!0}},onLoad:function(){this.isWeixinBrowser=/MicroMessenger/i.test(navigator.userAgent)},onShow:function(){var t=this;this.fetchReservationStatusEnum().then((function(){t.page=1,t.hasMore=!0,t.fetchReservationList(!0)}))},onPullDownRefresh:function(){this.page=1,this.hasMore=!0,this.fetchReservationList(!0).finally((function(){uni.stopPullDownRefresh()}))},onReachBottom:function(){this.hasMore&&!this.loading&&this.loadMore()},methods:{formatChinaDate:s.base.formatChinaDate,fetchReservationStatusEnum:function(){var t=this;return(0,r.default)((0,o.default)().mark((function e(){var a,n;return(0,o.default)().wrap((function(e){while(1)switch(e.prev=e.next){case 0:if(a=uni.getStorageSync("token"),a){e.next=3;break}return e.abrupt("return");case 3:return e.prev=3,e.next=6,new Promise((function(t,e){uni.request({url:"".concat(c.API.RESERVATION_STATUS_ENUM,"?token=").concat(a),method:"GET",success:t,fail:e})}));case 6:n=e.sent,n.data&&0===n.data.errcode&&(t.reservationStatusEnum=n.data.data),e.next=12;break;case 10:e.prev=10,e.t0=e["catch"](3);case 12:case"end":return e.stop()}}),e,null,[[3,10]])})))()},fetchReservationList:function(){var t=arguments,e=this;return(0,r.default)((0,o.default)().mark((function a(){var n,r,s,d;return(0,o.default)().wrap((function(a){while(1)switch(a.prev=a.next){case 0:if(n=t.length>0&&void 0!==t[0]&&t[0],r=uni.getStorageSync("token"),r){a.next=4;break}return a.abrupt("return");case 4:if(!e.loading){a.next=6;break}return a.abrupt("return");case 6:return e.loading=!0,a.prev=7,a.next=10,new Promise((function(t,a){uni.request({url:"".concat(c.API.RESERVATION_LIST,"?token=").concat(r),method:"GET",data:{page:e.page,page_size:5},success:t,fail:a})}));case 10:s=a.sent,s.data&&0===s.data.errcode?(d=s.data.data.data||[],e.lastPage=s.data.data.last_page||1,e.reservationList=n?d:[].concat((0,i.default)(e.reservationList),(0,i.default)(d)),e.hasMore=e.page<e.lastPage,console.log("当前页:",e.page,"总页数:",e.lastPage,"是否有更多:",e.hasMore)):uni.showToast({title:s.data.errmsg||"获取订单列表失败",icon:"none"}),a.next=18;break;case 14:a.prev=14,a.t0=a["catch"](7),console.error("获取订单列表失败:",a.t0),uni.showToast({title:"网络错误",icon:"none"});case 18:return a.prev=18,e.loading=!1,a.finish(18);case 21:case"end":return a.stop()}}),a,null,[[7,14,18,21]])})))()},loadMore:function(){this.hasMore&&!this.loading&&(this.page+=1,this.fetchReservationList(!1))},onCancelOrder:function(t){var e=this;uni.showModal({title:"提示",content:"确定要取消该预约吗?",confirmText:"确定",cancelText:"再想想",success:function(a){if(a.confirm){var n=uni.getStorageSync("token");if(!n)return void uni.showToast({title:"请先登录",icon:"none"});uni.showLoading({title:"取消中..."}),uni.request({url:"".concat(c.API.CANCEL_RESERVATION,"/").concat(t.id,"?token=").concat(n),method:"POST",success:function(t){uni.hideLoading(),t.data&&0===t.data.errcode?(uni.showToast({title:"已取消预约",icon:"success"}),e.page=1,e.hasMore=!0,e.fetchReservationList(!0)):uni.showToast({title:t.data.errmsg||"取消失败",icon:"none"})},fail:function(){uni.hideLoading(),uni.showToast({title:"网络错误",icon:"none"})}})}}})},onShowDetail:function(t){var e=JSON.stringify(t);uni.navigateTo({url:"/pages/order/pay_order_detail?item=".concat(encodeURIComponent(e))})},goPayOrder:function(t){var e=JSON.stringify(t);uni.navigateTo({url:"/pages/order/pay_order_detail?item=".concat(encodeURIComponent(e))})},goReservation:function(t){uni.navigateTo({url:"/pages/reservation/index"})},getStatusText:function(t){return this.reservationStatusEnum&&this.reservationStatusEnum[t]?this.reservationStatusEnum[t].label:t},getCardClass:function(t){return{paid:"purchased",completed:"purchased",pending:"pending",price_checked:"pending",rejected:"pending",unpaid:"confirmed",approved:"confirmed",canceled:"canceled"}[t]||"pending"},getStatusClass:function(t){return{paid:"purchased",completed:"purchased",pending:"pending",price_checked:"pending",rejected:"rejected",unpaid:"confirmed",approved:"confirmed",canceled:"canceled"}[t]||"pending"},isSingleAction:function(t){var e=[this.canCancel(t.status),this.canRebook(t.status),this.canPay(t.status),this.canIssueInvoice(t.bill_status)];return 0===e.filter(Boolean).length},canCancel:function(t){return["pending","price_checked"].includes(t)},canRebook:function(t){return"rejected"===t},canPay:function(t){return["unpaid","approved"].includes(t)},canIssueInvoice:function(t){return 2===t},getBillStatusText:function(t){return{2:"待开票",3:"已开票"}[t]||""},goInvoice:function(t){var e=this,a=uni.getStorageSync("token");a?t&&t.id?(uni.showLoading({title:"提交中..."}),uni.request({url:"".concat(c.API.GET_INVOICE),method:"GET",data:{reservation_id:t.id,token:a},success:function(t){if(uni.hideLoading(),t.data&&0===t.data.errcode){var a=t.data&&t.data.data,n=a&&a.bill,i=n&&n.billInfoList,o=Array.isArray(i)&&i.length>0?i[0].pictureUrl:"";uni.showToast({title:"开票申请已提交",icon:"success",duration:2e3,success:function(){o&&e.openExternalLink(o)}}),e.page=1,e.hasMore=!0,e.fetchReservationList(!0)}else uni.showToast({title:t.data&&t.data.errmsg||"提交失败",icon:"none"})},fail:function(){uni.hideLoading(),uni.showToast({title:"提交失败",icon:"none"})}})):uni.showToast({title:"订单信息缺失",icon:"none"}):uni.showToast({title:"请先登录",icon:"none"})},openExternalLink:function(t){t&&window.open(t,"_blank")}}};e.default=d},fc4d:function(t,e,a){"use strict";var n=a("b008"),i=a.n(n);i.a}}]);