// 工具库
import util from '@/common/js/util.js'
// api
import api from '@/api/index.js'

const order = {
	/**
	 * 订单取消
	 * @param {Object} event 事件对象
	 */
	orderCancel: (event) => {
		return new Promise((resolve, reject) => {
			util.alert({
				content: '取消订单后不可恢复,确认取消订单?',
			}).then(res => {
				if (!res.confirm) return
				// 
				return api.shop.orderCancel({
					query: {
						id: event.orderId,
					},
				})
			}).then(res => {
				if (res.code == 200) {
					resolve(res.data)
					return
				}
				util.alert({
					content: res.msg,
					showCancel: false,
				})
			})
		})
	},

	/**
	 * 订单支付
	 * @param {Object} event 事件对象
	 */
	orderPay(event) {
		uni.navigateTo({
			url: util.setUrl('/pages/shop/commodity/payment', {
				orderId: event.id,
			})
		})
	},

	/**
	 * 查看物流
	 * @param {Object} event 事件对象
	 */
	logistics(event) {
		uni.navigateTo({
			url: util.setUrl('/pages/shop/order/logistics', {
				orderId: event.id,
			})
		})
	},

	/**
	 * 订单确认收货
	 * @param {Object} event 事件对象
	 */
	orderReceived: (event) => {
		return new Promise((resolve, reject) => {
			api.shop.orderReceived({
				query: {
					id: event.orderId,
				},
			}).then(res => {
				if (res.code == 200) {
					resolve(res.data)
					return
				}
				util.alert({
					content: res.msg,
					showCancel: false,
				})
			})
		})
	},

	/**
	 * 申请售后
	 * @param {Object} event 事件对象
	 */
	orderAfterSales(event) {
		uni.navigateTo({
			url: util.setUrl('/pages/shop/order/refundStar', {
				orderId: event.id,
			})
		})
	},

	/**
	 * 售后订单更新
	 * @param {Object} event 事件对象
	 */
	orderupdateRefund: (event) => {
		return new Promise((resolve, reject) => {
			api.shop.orderupdateRefund({
				data: {
					id: event.orderId,
					expressName: event.expressName,
					trackingNumber: event.trackingNumber,
				},
			}).then(res => {
				if (res.code == 200) {
					resolve(res.data)
					return
				}
				util.alert({
					content: res.msg,
					showCancel: false,
				})
			})
		})
	},

	/**
	 * 去评价
	 * @param {Object} event 事件对象
	 */
	orderComment(event) {
		uni.navigateTo({
			url: util.setUrl('/pages/shop/order/evaluate', {
				orderId: event.id,
			})
		})
	},
}

export default order