2
2
This commit is contained in:
81
src/App.tsx
81
src/App.tsx
@ -283,7 +283,8 @@ export default function App() {
|
|||||||
// 切换功能时重置全局变量,但保留新的mode
|
// 切换功能时重置全局变量,但保留新的mode
|
||||||
resetGlobalState({ resetMode: false });
|
resetGlobalState({ resetMode: false });
|
||||||
setMode(m);
|
setMode(m);
|
||||||
setIsExpectedDeliveryDateLocked(m === 'adjust');
|
setIsExpectedDeliveryDateLocked(false);
|
||||||
|
setLockedExpectedDeliveryDateTs(null);
|
||||||
setModeSelectionVisible(false);
|
setModeSelectionVisible(false);
|
||||||
};
|
};
|
||||||
|
|
||||||
@ -370,6 +371,7 @@ export default function App() {
|
|||||||
const expectedDeliveryDateField: any = await deliveryTable.getField(DELIVERY_EXPECTED_DATE_FIELD_ID);
|
const expectedDeliveryDateField: any = await deliveryTable.getField(DELIVERY_EXPECTED_DATE_FIELD_ID);
|
||||||
|
|
||||||
const nodeDetailsVal = await nodeDetailsField.getValue(deliveryRecordId);
|
const nodeDetailsVal = await nodeDetailsField.getValue(deliveryRecordId);
|
||||||
|
let expectedDeliveryTsFromField: number | null = null;
|
||||||
try {
|
try {
|
||||||
const expectedDeliveryVal = await expectedDeliveryDateField.getValue(deliveryRecordId);
|
const expectedDeliveryVal = await expectedDeliveryDateField.getValue(deliveryRecordId);
|
||||||
let ts: number | null = null;
|
let ts: number | null = null;
|
||||||
@ -384,8 +386,7 @@ export default function App() {
|
|||||||
if (!isNaN(parsed.getTime())) ts = parsed.getTime();
|
if (!isNaN(parsed.getTime())) ts = parsed.getTime();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
setLockedExpectedDeliveryDateTs(ts);
|
expectedDeliveryTsFromField = ts;
|
||||||
setIsExpectedDeliveryDateLocked(true);
|
|
||||||
} catch {}
|
} catch {}
|
||||||
// 读取record_ids文本字段并保留原始文本(用于原样写回)
|
// 读取record_ids文本字段并保留原始文本(用于原样写回)
|
||||||
try {
|
try {
|
||||||
@ -467,19 +468,23 @@ export default function App() {
|
|||||||
|
|
||||||
if (snapshot.timelineAdjustments) setTimelineAdjustments(snapshot.timelineAdjustments);
|
if (snapshot.timelineAdjustments) setTimelineAdjustments(snapshot.timelineAdjustments);
|
||||||
{
|
{
|
||||||
const snapLockedTs = snapshot?.lockedExpectedDeliveryDateTs;
|
|
||||||
if (snapLockedTs === null) {
|
|
||||||
setLockedExpectedDeliveryDateTs(null);
|
|
||||||
} else {
|
|
||||||
const hasLockedTs = snapLockedTs !== undefined && snapLockedTs !== null;
|
|
||||||
if (hasLockedTs) setLockedExpectedDeliveryDateTs(snapLockedTs);
|
|
||||||
}
|
|
||||||
const hasLockedTs = snapLockedTs !== undefined && snapLockedTs !== null;
|
|
||||||
const snapLockedFlag = snapshot?.isExpectedDeliveryDateLocked;
|
const snapLockedFlag = snapshot?.isExpectedDeliveryDateLocked;
|
||||||
if (typeof snapLockedFlag === 'boolean') {
|
const snapLockedTs = snapshot?.lockedExpectedDeliveryDateTs;
|
||||||
setIsExpectedDeliveryDateLocked(snapLockedFlag);
|
const shouldLock = snapLockedFlag === true || (snapLockedFlag === undefined && snapLockedTs !== undefined && snapLockedTs !== null);
|
||||||
} else if (hasLockedTs) {
|
if (shouldLock) {
|
||||||
|
const ts = (typeof snapLockedTs === 'number' && Number.isFinite(snapLockedTs))
|
||||||
|
? snapLockedTs
|
||||||
|
: expectedDeliveryTsFromField;
|
||||||
|
if (ts !== null && ts !== undefined) {
|
||||||
|
setLockedExpectedDeliveryDateTs(ts);
|
||||||
setIsExpectedDeliveryDateLocked(true);
|
setIsExpectedDeliveryDateLocked(true);
|
||||||
|
} else {
|
||||||
|
setLockedExpectedDeliveryDateTs(null);
|
||||||
|
setIsExpectedDeliveryDateLocked(false);
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
setLockedExpectedDeliveryDateTs(null);
|
||||||
|
setIsExpectedDeliveryDateLocked(false);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if (snapshot.expectedDateTimestamp) {
|
if (snapshot.expectedDateTimestamp) {
|
||||||
@ -624,19 +629,15 @@ export default function App() {
|
|||||||
|
|
||||||
if (snapshot.timelineAdjustments) setTimelineAdjustments(snapshot.timelineAdjustments);
|
if (snapshot.timelineAdjustments) setTimelineAdjustments(snapshot.timelineAdjustments);
|
||||||
{
|
{
|
||||||
const snapLockedTs = snapshot?.lockedExpectedDeliveryDateTs;
|
|
||||||
if (snapLockedTs === null) {
|
|
||||||
setLockedExpectedDeliveryDateTs(null);
|
|
||||||
} else {
|
|
||||||
const hasLockedTs = snapLockedTs !== undefined && snapLockedTs !== null;
|
|
||||||
if (hasLockedTs) setLockedExpectedDeliveryDateTs(snapLockedTs);
|
|
||||||
}
|
|
||||||
const hasLockedTs = snapLockedTs !== undefined && snapLockedTs !== null;
|
|
||||||
const snapLockedFlag = snapshot?.isExpectedDeliveryDateLocked;
|
const snapLockedFlag = snapshot?.isExpectedDeliveryDateLocked;
|
||||||
if (typeof snapLockedFlag === 'boolean') {
|
const snapLockedTs = snapshot?.lockedExpectedDeliveryDateTs;
|
||||||
setIsExpectedDeliveryDateLocked(snapLockedFlag);
|
const shouldLock = snapLockedFlag === true || (snapLockedFlag === undefined && snapLockedTs !== undefined && snapLockedTs !== null);
|
||||||
} else if (hasLockedTs) {
|
if (shouldLock && typeof snapLockedTs === 'number' && Number.isFinite(snapLockedTs)) {
|
||||||
|
setLockedExpectedDeliveryDateTs(snapLockedTs);
|
||||||
setIsExpectedDeliveryDateLocked(true);
|
setIsExpectedDeliveryDateLocked(true);
|
||||||
|
} else {
|
||||||
|
setLockedExpectedDeliveryDateTs(null);
|
||||||
|
setIsExpectedDeliveryDateLocked(false);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if (snapshot.expectedDateTimestamp) {
|
if (snapshot.expectedDateTimestamp) {
|
||||||
@ -1087,18 +1088,15 @@ export default function App() {
|
|||||||
setTimelineVisible(true);
|
setTimelineVisible(true);
|
||||||
|
|
||||||
{
|
{
|
||||||
const snapLockedTs = (globalSnapshotData as any)?.lockedExpectedDeliveryDateTs;
|
|
||||||
if (snapLockedTs === null) {
|
|
||||||
setLockedExpectedDeliveryDateTs(null);
|
|
||||||
} else {
|
|
||||||
const hasLockedTs = snapLockedTs !== undefined && snapLockedTs !== null;
|
|
||||||
if (hasLockedTs) setLockedExpectedDeliveryDateTs(snapLockedTs);
|
|
||||||
}
|
|
||||||
const snapLockedFlag = (globalSnapshotData as any)?.isExpectedDeliveryDateLocked;
|
const snapLockedFlag = (globalSnapshotData as any)?.isExpectedDeliveryDateLocked;
|
||||||
if (typeof snapLockedFlag === 'boolean') {
|
const snapLockedTs = (globalSnapshotData as any)?.lockedExpectedDeliveryDateTs;
|
||||||
setIsExpectedDeliveryDateLocked(snapLockedFlag);
|
const shouldLock = snapLockedFlag === true || (snapLockedFlag === undefined && snapLockedTs !== undefined && snapLockedTs !== null);
|
||||||
} else if (snapLockedTs !== undefined && snapLockedTs !== null) {
|
if (shouldLock && typeof snapLockedTs === 'number' && Number.isFinite(snapLockedTs)) {
|
||||||
|
setLockedExpectedDeliveryDateTs(snapLockedTs);
|
||||||
setIsExpectedDeliveryDateLocked(true);
|
setIsExpectedDeliveryDateLocked(true);
|
||||||
|
} else {
|
||||||
|
setLockedExpectedDeliveryDateTs(null);
|
||||||
|
setIsExpectedDeliveryDateLocked(false);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -3540,8 +3538,14 @@ export default function App() {
|
|||||||
setSelectedLabels(s.selectedLabels || {});
|
setSelectedLabels(s.selectedLabels || {});
|
||||||
setTimelineAdjustments(s.timelineAdjustments || {});
|
setTimelineAdjustments(s.timelineAdjustments || {});
|
||||||
setBaseBufferDays(s.baseBufferDays ?? 14);
|
setBaseBufferDays(s.baseBufferDays ?? 14);
|
||||||
setLockedExpectedDeliveryDateTs(s.lockedExpectedDeliveryDateTs ?? null);
|
const shouldLock = s.isExpectedDeliveryDateLocked === true || (s.isExpectedDeliveryDateLocked === undefined && s.lockedExpectedDeliveryDateTs !== null && s.lockedExpectedDeliveryDateTs !== undefined);
|
||||||
setIsExpectedDeliveryDateLocked(!!s.isExpectedDeliveryDateLocked);
|
if (shouldLock && typeof s.lockedExpectedDeliveryDateTs === 'number' && Number.isFinite(s.lockedExpectedDeliveryDateTs)) {
|
||||||
|
setLockedExpectedDeliveryDateTs(s.lockedExpectedDeliveryDateTs);
|
||||||
|
setIsExpectedDeliveryDateLocked(true);
|
||||||
|
} else {
|
||||||
|
setLockedExpectedDeliveryDateTs(null);
|
||||||
|
setIsExpectedDeliveryDateLocked(false);
|
||||||
|
}
|
||||||
setActualCompletionDates(s.actualCompletionDates || {});
|
setActualCompletionDates(s.actualCompletionDates || {});
|
||||||
setCompletionDateAdjustment(s.completionDateAdjustment || 0);
|
setCompletionDateAdjustment(s.completionDateAdjustment || 0);
|
||||||
setHasAppliedSuggestedBuffer(!!s.hasAppliedSuggestedBuffer && s.hasAppliedSuggestedBuffer);
|
setHasAppliedSuggestedBuffer(!!s.hasAppliedSuggestedBuffer && s.hasAppliedSuggestedBuffer);
|
||||||
@ -5356,7 +5360,8 @@ export default function App() {
|
|||||||
<Select value={mode} onChange={(v) => {
|
<Select value={mode} onChange={(v) => {
|
||||||
const next = v as any;
|
const next = v as any;
|
||||||
setMode(next);
|
setMode(next);
|
||||||
setIsExpectedDeliveryDateLocked(next === 'adjust');
|
setIsExpectedDeliveryDateLocked(false);
|
||||||
|
setLockedExpectedDeliveryDateTs(null);
|
||||||
}}
|
}}
|
||||||
optionList={[
|
optionList={[
|
||||||
{ value: 'generate', label: '生成流程日期' },
|
{ value: 'generate', label: '生成流程日期' },
|
||||||
|
|||||||
Reference in New Issue
Block a user