Files
MER-2.2_2601/mer_uniapp/pages/admin/workOrder_manage/config.js
2026-03-08 20:07:52 +08:00

161 lines
4.2 KiB
JavaScript
Raw 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.
// 已领取的工单
import {checkinStaffOrderApi, workOrderReceiveApi, workOrderServiceEndApi} from "./workOrder";
import util from "../../../utils/util";
export const ASSIGNED = 2;
// 待领取工单
export const UNASSIGNED = 1;
// 工单主页
export const HOMEPAGE = 3;
/**
* 工单服务类型
*/
export const serviceStatusEnum = {
Unabsorbed: 1, //未分配
WaitingService: 2, //已分配 待服务
inService: 3, // 服务中
ServiceEnd: 4, //服务结束
};
/**
* 工单操作按钮判断
* @type {{COMPLETE: string, SERVICE_RECORD: string, SIGN_IN: string, RUSH_ORDER: string, START: string}}
*/
const BTN_EVENT = {
SERVICE_RECORD: "serviceRecord",
SIGN_IN: "signIn",
COMPLETE: 'complete',
RUSH_ORDER: "rush_order",
START: "start",
}
export function workOrderBottomBar(workOrderNoInfo) {
const reservationConfig = uni.getStorageSync('reservationConfig'); // 商户预约设置
// if (!this.orderInfo || !this.merServiceConfig) return [];
const config = [];
if( workOrderNoInfo.refundStatus > 0 ) return [];
// 上门serviceType === 1,2到店
if (workOrderNoInfo.serviceType === 1) {
// allocateType 分配类型0-未分配1-派单2-抢单
if (workOrderNoInfo.allocateType === 0) {
config.push({
text: "领取工单",
type: "lang",
event: BTN_EVENT.RUSH_ORDER
});
}
if (workOrderNoInfo.serviceStatus === serviceStatusEnum.WaitingService) {
config.push({
text: "上门打卡",
type: "lang",
event: BTN_EVENT.SIGN_IN
});
}
if (workOrderNoInfo.serviceStatus === serviceStatusEnum.inService && reservationConfig
.serviceEvidenceSwitch && !workOrderNoInfo.serviceEvidenceFormId) {
config.push({
text: "服务留凭",
type: "lang",
event: BTN_EVENT.SERVICE_RECORD
});
}
}else{
if (workOrderNoInfo.serviceStatus === serviceStatusEnum.WaitingService) {
config.push({
text: "服务开始",
type: "lang",
event: BTN_EVENT.START
});
}
}
if (workOrderNoInfo.serviceStatus === serviceStatusEnum.inService && ((workOrderNoInfo.serviceEvidenceFormId >0 || !reservationConfig.serviceEvidenceSwitch) || workOrderNoInfo.serviceType === 2)) {
config.push({
text: "服务完成",
type: "lang",
event: BTN_EVENT.COMPLETE
});
}
return config;
}
/**
* 工单按钮操作
* @param event 操作名称
* @param workOrderNo 工单号
* @returns {Promise<unknown>}
*/
export async function handleWorkOrderBarAction(event, workOrderNo) {
switch (event) {
case BTN_EVENT.SERVICE_RECORD:
uni.navigateTo({
url: `/pages/goods/service_record/index?workOrderNo=${workOrderNo}`
});
break;
case BTN_EVENT.SIGN_IN:
util.navigateTo(`/pages/admin/workOrder_manage/checkin?workOrderNo=${workOrderNo}`)
break;
case BTN_EVENT.COMPLETE:
return new Promise(async (resolve) => {
const result = await uni.showModal({
content: "您确定要完成服务吗?",
});
if (result[0] || result[1].cancel) return;
let data = await workOrderServiceEndApi(workOrderNo)
if (data.code === 200) {
util.Tips({
title: '服务完成成功'
});
await resolve(BTN_EVENT.COMPLETE)
}
});
break;
case BTN_EVENT.RUSH_ORDER:
return new Promise(async (resolve) => {
const result = await uni.showModal({
content: "您确定要领取此工单服务吗?",
});
if (result[0] || result[1].cancel) return;
try {
await workOrderReceiveApi(workOrderNo);
util.Tips({
title: '领取成功',
icon: "success"
});
await resolve(BTN_EVENT.RUSH_ORDER)
// uni.navigateTo({
// url: `/pages/admin/workOrder_manage/workOrder_detail?workOrderNo=${workOrderNo}`
// });
} catch (err) {
util.Tips({
title: err,
icon: "none"
});
}
});
break;
case BTN_EVENT.START:
return new Promise(async (resolve) => {
const result = await uni.showModal({
content: "您确定要开始服务吗?",
});
if (result[0] || result[1].cancel) return;
try {
await checkinStaffOrderApi({workOrderNo: workOrderNo});
uni.hideLoading();
util.Tips({
title: '服务开始',
icon: "none"
});
await resolve(BTN_EVENT.START)
} catch (err) {
uni.hideLoading();
util.Tips({
title: err,
icon: "none"
});
}
});
break;
}
}