xx-applets/src/core/models/order.js

267 lines
11 KiB
JavaScript

import Vue from "vue"
let prototype = Vue.prototype;
export default {
stateText(listType, orderType, state) {
if (listType == 't1') {
switch (state) {
case 0: return ['待支付', '为保证师傅按时上门,建议尽快选择师傅并完成支付'];
case 1: return ['待师傅接单'];
case 2: return ['服务中'];
case 4: return ['待支付尾款'];
case 5: return ['服务已完成,待确认'];
case 6: return ['订单已完成'];
case 7: return ['退款申请审核中'];
case 8: return ['已退款'];
case 9: return ['退款未通过'];
}
} else if (listType == 't2') {
switch (state) {
case 0:
if (orderType == 2) {
return ['待选择师傅'];
}
return ['待师傅接单'];
case 1:
if (orderType == 2) {
return ['已选择师傅,待支付'];
}
return ['师傅已接单,待支付'];
case 2: return ['服务中'];
case 4: return ['待支付尾款'];
case 5: return ['服务已完成,待确认'];
case 6: return ['订单已完成'];
case 7: return ['退款申请审核中'];
case 8: return ['已退款'];
case 9: return ['退款未通过'];
}
} else if (listType == 't3') {
switch (state) {
case 0: return ['待支付'];
case 1: return ['待接单'];
case 2: return ['进行中'];
case 3: return ['已完成'];
}
}
return ['未知', '#000000'];
},
/**
* 下单
*/
createOrder(order) {
return new Promise((resolve, reject) => {
prototype.$request({
api: "order.create.t1",
data: order,
}).then((response) => {
if (response.code == 1) {
return resolve(response.data);
}
return reject(response.msg);
}).catch(e => { });
});
},
/**
* 支付
*/
pay(options) {
return new Promise((resolve, reject) => {
prototype.$request(options.request).then(response => {
if (response.code == 1) {
uni.requestPayment({
...response.data,
provider: "wxpay",
success() {
resolve();
},
fail() {
reject();
},
});
}
}).catch(e => {
throw e
});
});
},
/**
* 订单列表
*/
orderList(options) {
return new Promise((resolve, reject) => {
prototype.$request(options.request).then(response => {
if (response.code == 1) {
let list = [];
if (options.listType == 't1' || options.listType == 't2') {
response.data.forEach((item) => {
// 基础数据
let order = {
listType: options.listType,
id: item.id,
orderId: item.order,
cate: "待返数据",
content: item.desc,
createTime: item.time,
serviceTime: item.times,
orderType: item.types,
price: item.money,
state: item.status,
workerList: [],
};
// 尾款
if (options.listType == 't1' || options.listType == 't2') {
order.retainageMoney = item.moneyb;
}
// 师傅
if (prototype.$utils.isType(item.shifu, "object")) {
order.worker = {
id: item.shifu.id,
name: item.shifu.name,
avatar: item.shifu.avatar,
type: item.shifu.status,
times: item.shifu.shifu_date.count,
favorableRate: item.shifu.shifu_date.good,
grade: item.shifu.shifu_date.score,
price: item.money,
}
}
// 师傅列表
if (options.listType == 't2' && item.shifus.length > 0) {
item.shifus.forEach(worker => {
order.workerList.push({
id: worker.id,
name: worker.name,
avatar: worker.avatar,
price: worker.money,
})
});
}
list.push(order);
});
} else if (options.listType == 't3') {
response.data.forEach((item) => {
let order = {
listType: options.listType,
id: item.id,
orderId: item.order,
cate: "货运订单",
content: item.desc,
createTime: item.times,
serviceTime: item.starttime,
orderType: item.types,
price: item.money,
state: item.status,
worker: item.shifu,
};
list.push(order);
});
}
return resolve(list);
}
return reject(response.msg);
}).catch(e => { throw e });
});
},
/**
* 订单详情
*/
orderDetail(options) {
return new Promise((resolve, reject) => {
prototype.$request(options.request).then(response => {
if (response.code == 1) {
let order = {}, data = response.data;
if (options.listType == 't1' || options.listType == 't2') {
// 基础信息
order = {
id: data.id,
orderId: data.order,
cate: "待返数据",
content: data.desc,
createTime: data.time,
serviceTime: data.times,
orderType: data.types,
state: data.status,
retainageMoney: data.moneyb,
images: prototype.$utils.isType(data.img, "array") ? data.img : [],
worker: {},
workerList: [],
};
// 地址
order.address = {
id: data.address.id,
address: data.address.address,
detail: data.address.doorplate,
name: data.address.name,
mobile: data.address.mobil,
gender: data.address.sex == "男" ? 1 : 2,
}
// 师傅
if (prototype.$utils.isType(data.shifu, "object")) {
order.worker = {
id: data.shifu.id,
uid: data.shifu.uid,
name: data.shifu.name,
avatar: data.shifu.avatar,
price: data.money,
}
}
// 师傅列表
if (options.listType == 't2' && data.shifus.length > 0) {
data.shifus.forEach(worker => {
order.workerList.push({
id: worker.id,
uid: worker.uid,
name: worker.name,
avatar: worker.avatar,
price: worker.money,
createTime: worker.date,
type: worker.status,
times: worker.data.count,
favorableRate: worker.data.good,
grade: worker.data.score,
})
});
}
} else if (options.listType == 't3') {
order = {
id: 1,
orderId: 2,
cate: "货运订单",
content: 4,
createTime: 5,
serviceTime: 6,
orderType: 7,
state: 8,
images: 9,
};
}
return resolve(order);
}
return reject(response.msg);
}).catch(e => {
throw e
});
});
},
/**
* 选择师傅
*/
chooseWorker(id, workerId) {
return new Promise((resolve, reject) => {
prototype.$request({
api: "order.chooseWorker",
data: {
id: id,
worker: workerId,
}
}).then(response => {
if (response.code == 1) {
return resolve(response.msg);
}
return reject(response.msg);
}).catch(e => { });
});
},
}