Files
xingque/components/order-card/order-card.js

102 lines
3.8 KiB
JavaScript
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
const app = getApp();
Component({
properties: {
orderId: { type: String, value: '' }
},
data: {
order: null,
loading: false,
errorMsg: '',
// 跨平台字段
isCross: false, // 是否跨平台订单
dispatchType: 0, // 1-我方派单2-对方派单
partnerClubId: '', // 对方俱乐部ID
},
lifetimes: {
attached() {
if (this.properties.orderId) {
this.fetchOrderDetail();
}
}
},
methods: {
// 获取订单详情(含跨平台字段)
fetchOrderDetail() {
if (!this.properties.orderId) return;
this.setData({ loading: true, errorMsg: '' });
const baseUrl = app.globalData.apiBaseUrl;
wx.request({
url: `${baseUrl}/dingdan/order_detail/`, // 需后端返回 is_cross, dispatch_type, partner_club_id
method: 'POST',
data: { order_id: this.properties.orderId },
header: { 'content-type': 'application/json' },
success: (res) => {
if (res.statusCode === 200 && res.data && res.data.code === 0) {
const order = res.data.data;
// 处理图片URL
if (order.tupian && !order.tupian.startsWith('http')) {
order.tupian = app.globalData.ossImageUrl + order.tupian;
}
this.setData({
order,
loading: false,
isCross: order.is_cross === 1,
dispatchType: order.dispatch_type || 0,
partnerClubId: order.partner_club_id || '',
});
// 通知父页面状态
this.triggerEvent('statusready', {
isCross: this.data.isCross,
dispatchType: this.data.dispatchType,
partnerClubId: this.data.partnerClubId
});
} else {
this.setData({ errorMsg: res.data?.msg || '获取订单失败', loading: false });
}
},
fail: () => {
this.setData({ errorMsg: '网络请求失败', loading: false });
}
});
},
// 发送订单卡片消息(原有)
sendOrderMessage() {
if (!this.data.order) return;
this.triggerEvent('sendorder', { order: this.data.order });
},
// 跨平台消息转发(供父页面调用)
forwardMessage(payload) {
const that = this;
const baseUrl = app.globalData.apiBaseUrl;
return new Promise((resolve, reject) => {
wx.request({
url: `${baseUrl}/dingdan/kptxxts`,
method: 'POST',
data: {
order_id: that.properties.orderId,
message_type: payload.type || 'text',
content: payload.content || '',
image_url: payload.imageUrl || '', // 图片等
},
header: { 'content-type': 'application/json' },
success: (res) => {
if (res.statusCode === 200 && res.data && res.data.code === 0) {
resolve(res.data);
} else {
reject(res.data);
}
},
fail: (err) => {
reject(err);
}
});
});
}
}
});