1、新增结算模块
2、调整业务模块 3、调整客商模块
This commit is contained in:
@@ -63,15 +63,6 @@ const parseProcessNodes = value => {
|
||||
return Array.isArray(value.nodes) ? value.nodes : [];
|
||||
};
|
||||
|
||||
const requiresDriverAcceptConfirmation = processJson =>
|
||||
parseProcessNodes(processJson).some(
|
||||
node =>
|
||||
(node.key === 'accept' || node.name === '接单') &&
|
||||
node.enabled !== false &&
|
||||
node.confirmMode === 'yes' &&
|
||||
node.confirmDriver === true
|
||||
);
|
||||
|
||||
const getProcessConfigNodes = row => {
|
||||
const sources = [
|
||||
row.processJson,
|
||||
@@ -99,11 +90,79 @@ const getProcessConfigNodes = row => {
|
||||
});
|
||||
};
|
||||
|
||||
const hasAcceptProcessNode = row =>
|
||||
const isAcceptProcessNode = node => node.key === 'accept' || node.name === '接单';
|
||||
|
||||
const requiresDriverAcceptConfirmation = row =>
|
||||
getProcessConfigNodes(row).some(
|
||||
node => node.enabled !== false && (node.key === 'accept' || node.name === '接单')
|
||||
node =>
|
||||
isAcceptProcessNode(node) &&
|
||||
node.enabled !== false &&
|
||||
node.confirmMode === 'yes' &&
|
||||
node.confirmDriver === true
|
||||
);
|
||||
|
||||
const isDriverRejectedStatus = value => {
|
||||
if (value === null || value === undefined || typeof value === 'boolean') return false;
|
||||
return [
|
||||
'-1',
|
||||
'2',
|
||||
'reject',
|
||||
'rejected',
|
||||
'refuse',
|
||||
'refused',
|
||||
'decline',
|
||||
'declined',
|
||||
'deny',
|
||||
'denied',
|
||||
'拒绝',
|
||||
'已拒绝',
|
||||
'拒绝接单',
|
||||
'已拒绝接单',
|
||||
].includes(String(value).trim().toLowerCase());
|
||||
};
|
||||
|
||||
const hasDriverRejectRecord = row => {
|
||||
const rejectRecordValues = [
|
||||
row.driverRejectTime,
|
||||
row.driverRejectedTime,
|
||||
row.driverRefuseTime,
|
||||
row.acceptRejectTime,
|
||||
row.driverRejectReason,
|
||||
row.driverRefuseReason,
|
||||
row.acceptRejectReason,
|
||||
];
|
||||
if (rejectRecordValues.some(value => !isEmpty(value))) return true;
|
||||
|
||||
const driverStatusProps = [
|
||||
'driverAcceptStatus',
|
||||
'driverAccepted',
|
||||
'driverAccept',
|
||||
'accepted',
|
||||
'isAccepted',
|
||||
'acceptStatus',
|
||||
'driverResponseStatus',
|
||||
'driverOrderStatus',
|
||||
'driverAcceptResult',
|
||||
'acceptResult',
|
||||
];
|
||||
if (driverStatusProps.some(prop => isDriverRejectedStatus(row[prop]))) return true;
|
||||
|
||||
const nodeStatusProps = [
|
||||
...driverStatusProps,
|
||||
'confirmStatus',
|
||||
'executionStatus',
|
||||
'nodeStatus',
|
||||
'status',
|
||||
'result',
|
||||
];
|
||||
return getProcessConfigNodes(row)
|
||||
.filter(isAcceptProcessNode)
|
||||
.some(node => nodeStatusProps.some(prop => isDriverRejectedStatus(node[prop])));
|
||||
};
|
||||
|
||||
const isDriverRejectedWaybill = row =>
|
||||
requiresDriverAcceptConfirmation(row) && hasDriverRejectRecord(row);
|
||||
|
||||
const hasDriverAcceptRecord = row => {
|
||||
const recordValues = [
|
||||
row.driverAcceptTime,
|
||||
@@ -304,7 +363,7 @@ export const config = {
|
||||
formatStatus(row, prop, defaultText) {
|
||||
if (
|
||||
prop === 'businessStatus' &&
|
||||
hasAcceptProcessNode(row) &&
|
||||
requiresDriverAcceptConfirmation(row) &&
|
||||
isInProgressStatus(row, defaultText) &&
|
||||
!hasDriverAcceptRecord(row)
|
||||
) {
|
||||
@@ -313,12 +372,18 @@ export const config = {
|
||||
if (
|
||||
prop === 'businessStatus' &&
|
||||
row.businessStatus === 'pending' &&
|
||||
!requiresDriverAcceptConfirmation(row.processJson)
|
||||
!requiresDriverAcceptConfirmation(row)
|
||||
) {
|
||||
return '进行中';
|
||||
}
|
||||
return defaultText;
|
||||
},
|
||||
canReassign(row) {
|
||||
return isDriverRejectedWaybill(row);
|
||||
},
|
||||
canEdit(row) {
|
||||
return !isDriverRejectedWaybill(row);
|
||||
},
|
||||
deleteStatus: ['draft'],
|
||||
editStatus: ['draft', 'pending'],
|
||||
};
|
||||
|
||||
Reference in New Issue
Block a user