refactor submitConformance

This commit is contained in:
Cindy Chang
2024-07-22 15:20:31 +08:00
parent 28cdf9822d
commit 5230a3a99b

View File

@@ -759,7 +759,7 @@ export default {
* Apply button 發送選項,取得 Check Id. * Apply button 發送選項,取得 Check Id.
*/ */
async submitConformance() { async submitConformance() {
let dataToSave ; let dataToSave;
this.selectDurationTime = await { this.selectDurationTime = await {
min: this.selectTimeRangeMin, min: this.selectTimeRangeMin,
@@ -769,17 +769,58 @@ export default {
switch (this.selectedRuleType) { switch (this.selectedRuleType) {
case 'Have activity': // Rule Type 選 Have activity 的行為 case 'Have activity': // Rule Type 選 Have activity 的行為
dataToSave = { dataToSave = this.getHaveActivityData();
break;
case 'Activity sequence': // Rule Type 選 Activity sequence 的行為
dataToSave = this.getActivitySequenceData();
break;
case 'Activity duration': // Rule Type 選 Activity duration 的行為
dataToSave = this.getActivityDurationData();
break;
case 'Processing time': // Rule Type 選 Processing time 的行為
dataToSave = this.getProcessingTimeData();
break;
case 'Waiting time': // Rule Type 選 Waiting time 的行為
dataToSave = this.getWaitingTimeData();
break;
case 'Cycle time': // Rule Type 選 Cycle time 的行為
dataToSave = this.getCycleTimeData();
break;
}
if (dataToSave.min > dataToSave.max) {
return this.$toast.error(i18next.t("Conformance.PleaseCheckTimeRange"));
}
if (JSON.stringify(dataToSave) === JSON.stringify(this.isSubmittedData)) {
return this.$toast.error(i18next.t("Conformance.PleaseSetNewRule"));
}
this.isLoading = true;
this.isAlreadySubmit = true;
this.isSubmittedData = dataToSave; // 已 Apply 後,沒有重新改變規則的 Data
this.conformanceRuleData = dataToSave; // 給存檔的 Data
await this.conformanceStore.addConformanceCheckId(dataToSave);
await this.conformanceStore.getConformanceReport();
this.isShowBarOpen = false;
this.isLoading = false;
// Results page Cover Plate
this.$emitter.emit('coverPlate', false);
this.$toast.success(i18next.t("Conformance.RuleApplied"));
},
getHaveActivityData() {
const dataToSave = {
type: 'contains-tasks', type: 'contains-tasks',
tasks: this.selectConformanceTask, tasks: this.selectConformanceTask,
}; };
// 其他 isSubmittedData 為 null
this.isSubmitReset(); this.isSubmitReset();
this.isSubmitTask = this.selectConformanceTask; this.isSubmitTask = this.selectConformanceTask;
break; return dataToSave;
case 'Activity sequence': // Rule Type 選 Activity sequence 的行為 },
getActivitySequenceData() {
let dataToSave;
switch (this.selectedActivitySequence) { switch (this.selectedActivitySequence) {
case 'Start & End': // Activity Sequence 選 Start & End 的行為 case 'Start & End':
dataToSave = { dataToSave = {
type: 'start-end', type: 'start-end',
starts_with: this.selectCfmSeqStart, starts_with: this.selectCfmSeqStart,
@@ -787,12 +828,20 @@ export default {
}; };
this.isSubmitReset(); this.isSubmitReset();
this.isSubmitStartAndEnd = [ this.isSubmitStartAndEnd = [
{category: 'Start', task: this.selectCfmSeqStart}, { category: 'Start', task: this.selectCfmSeqStart },
{category: 'End', task: this.selectCfmSeqEnd}, { category: 'End', task: this.selectCfmSeqEnd },
]; ];
this.isSubmitShowDataSeq = this.setSubmitShowDataByStartEnd(this.selectCfmSeqStart, this.selectCfmSeqEnd); this.isSubmitShowDataSeq = this.setSubmitShowDataByStartEnd(this.selectCfmSeqStart, this.selectCfmSeqEnd);
break; break;
case 'Sequence': // Activity Sequence 選 Sequence 的行為 case 'Sequence':
dataToSave = this.getSequenceData();
break;
}
return dataToSave;
},
getSequenceData() {
let dataToSave;
switch (this.selectedMode) { switch (this.selectedMode) {
case 'Directly follows': case 'Directly follows':
dataToSave = { dataToSave = {
@@ -811,24 +860,17 @@ export default {
this.isSubmitCfmSeqEventually = JSON.parse(JSON.stringify(this.selectCfmSeqEventually)); this.isSubmitCfmSeqEventually = JSON.parse(JSON.stringify(this.selectCfmSeqEventually));
break; break;
case 'Short loop(s)': case 'Short loop(s)':
dataToSave = { dataToSave = { type: 'short-loops' };
type: 'short-loops',
};
break; break;
case 'Self loop(s)': case 'Self loop(s)':
dataToSave = { dataToSave = { type: 'self-loops' };
type: 'self-loops',
};
break;
default:
break;
};
default:
break; break;
} }
break; return dataToSave;
case 'Activity duration': // Rule Type 選 Activity duration 的行為 },
dataToSave = {
getActivityDurationData() {
const dataToSave = {
type: 'task-duration', type: 'task-duration',
task: this.selectDurationData[0], task: this.selectDurationData[0],
min: this.selectDurationTime.min, min: this.selectDurationTime.min,
@@ -837,10 +879,24 @@ export default {
this.isSubmitReset(); this.isSubmitReset();
this.isSubmitDurationData = this.selectDurationData; this.isSubmitDurationData = this.selectDurationData;
this.isSubmitDurationTime.rule = this.selectDurationTime; this.isSubmitDurationTime.rule = this.selectDurationTime;
break; return dataToSave;
case 'Processing time': // Rule Type 選 Processing time 的行為 },
getProcessingTimeData() {
let dataToSave;
switch (this.selectedProcessScope) { switch (this.selectedProcessScope) {
case 'End to end': case 'End to end':
dataToSave = this.getEndToEndProcessingTimeData();
break;
case 'Partial':
dataToSave = this.getPartialProcessingTimeData();
break;
}
return dataToSave;
},
getEndToEndProcessingTimeData() {
let dataToSave;
switch (this.selectedActSeqMore) { switch (this.selectedActSeqMore) {
case 'All': case 'All':
dataToSave = { dataToSave = {
@@ -859,9 +915,7 @@ export default {
type: 'processing-time-end-to-end-starts-with', type: 'processing-time-end-to-end-starts-with',
}; };
this.isSubmitReset(); this.isSubmitReset();
this.isSubmitCfmPtEteStart = [ this.isSubmitCfmPtEteStart = [{ category: 'Start', task: this.selectCfmPtEteStart }];
{category: 'Start', task: this.selectCfmPtEteStart},
];
this.isSubmitTimeCfmPtEteStart.rule = this.selectDurationTime; this.isSubmitTimeCfmPtEteStart.rule = this.selectDurationTime;
break; break;
case 'End': case 'End':
@@ -872,9 +926,7 @@ export default {
type: 'processing-time-end-to-end-ends-with', type: 'processing-time-end-to-end-ends-with',
}; };
this.isSubmitReset(); this.isSubmitReset();
this.isSubmitCfmPtEteEnd = [ this.isSubmitCfmPtEteEnd = [{ category: 'End', task: this.selectCfmPtEteEnd }];
{category: 'End', task: this.selectCfmPtEteEnd},
];
this.isSubmitTimeCfmPtEteEnd.rule = this.selectDurationTime; this.isSubmitTimeCfmPtEteEnd.rule = this.selectDurationTime;
break; break;
case 'Start & End': case 'Start & End':
@@ -887,15 +939,18 @@ export default {
}; };
this.isSubmitReset(); this.isSubmitReset();
this.isSubmitCfmPtEteSE = [ this.isSubmitCfmPtEteSE = [
{category: 'Start', task: this.selectCfmPtEteSEStart}, { category: 'Start', task: this.selectCfmPtEteSEStart },
{category: 'End', task: this.selectCfmPtEteSEEnd}, { category: 'End', task: this.selectCfmPtEteSEEnd },
]; ];
this.isSubmitTimeCfmPtEteSE.rule = this.selectDurationTime; this.isSubmitTimeCfmPtEteSE.rule = this.selectDurationTime;
this.isSubmitShowDataPtEte = this.setSubmitShowDataByStartEnd(this.selectCfmPtEteSEStart, this.selectCfmPtEteSEEnd); this.isSubmitShowDataPtEte = this.setSubmitShowDataByStartEnd(this.selectCfmPtEteSEStart, this.selectCfmPtEteSEEnd);
break; break;
}; }
break; return dataToSave;
case 'Partial': },
getPartialProcessingTimeData() {
let dataToSave;
switch (this.selectedActSeqFromTo) { switch (this.selectedActSeqFromTo) {
case 'From': case 'From':
dataToSave = { dataToSave = {
@@ -905,9 +960,7 @@ export default {
type: 'processing-time-partial-starts-with', type: 'processing-time-partial-starts-with',
}; };
this.isSubmitReset(); this.isSubmitReset();
this.isSubmitCfmPtPStart = [ this.isSubmitCfmPtPStart = [{ category: 'From', task: this.selectCfmPtPStart }];
{category: 'From', task: this.selectCfmPtPStart},
];
this.isSubmitTimeCfmPtPStart.rule = this.selectDurationTime; this.isSubmitTimeCfmPtPStart.rule = this.selectDurationTime;
break; break;
case 'To': case 'To':
@@ -918,15 +971,10 @@ export default {
type: 'processing-time-partial-ends-with', type: 'processing-time-partial-ends-with',
}; };
this.isSubmitReset(); this.isSubmitReset();
this.isSubmitCfmPtPEnd = [ this.isSubmitCfmPtPEnd = [{ category: 'To', task: this.selectCfmPtPEnd }];
{category: 'To', task: this.selectCfmPtPEnd},
];
this.isSubmitTimeCfmPtPEnd.rule = this.selectDurationTime; this.isSubmitTimeCfmPtPEnd.rule = this.selectDurationTime;
break; break;
case 'From & To': case 'From & To':
// If user didn't click any start-end radio button this time,
// the start, end value might be null as their initial values are.
// So we need to use the earliest value stored in pinia.
dataToSave = { dataToSave = {
start: this.selectCfmPtPSEStart ? this.selectCfmPtPSEStart : this.activityRadioData.task[0], start: this.selectCfmPtPSEStart ? this.selectCfmPtPSEStart : this.activityRadioData.task[0],
end: this.selectCfmPtPSEEnd ? this.selectCfmPtPSEEnd : this.activityRadioData.task[this.activityRadioData.task.length - 1], end: this.selectCfmPtPSEEnd ? this.selectCfmPtPSEEnd : this.activityRadioData.task[this.activityRadioData.task.length - 1],
@@ -936,23 +984,31 @@ export default {
}; };
this.isSubmitReset(); this.isSubmitReset();
this.isSubmitCfmPtPSE = [ this.isSubmitCfmPtPSE = [
{category: 'From', task: this.selectCfmPtPSEStart}, { category: 'From', task: this.selectCfmPtPSEStart },
{category: 'To', task: this.selectCfmPtPSEEnd}, { category: 'To', task: this.selectCfmPtPSEEnd },
]; ];
this.isSubmitTimeCfmPtPSE.rule = this.selectDurationTime; this.isSubmitTimeCfmPtPSE.rule = this.selectDurationTime;
this.isSubmitShowDataPtP = this.setSubmitShowDataByStartEnd(this.selectCfmPtPSEStart, this.selectCfmPtPSEEnd); this.isSubmitShowDataPtP = this.setSubmitShowDataByStartEnd(this.selectCfmPtPSEStart, this.selectCfmPtPSEEnd);
break; break;
default: }
break; return dataToSave;
}; },
break;
default: getWaitingTimeData() {
break; let dataToSave;
};
break;
case 'Waiting time': // Rule Type 選 Waiting time 的行為
switch (this.selectedProcessScope) { switch (this.selectedProcessScope) {
case 'End to end': case 'End to end':
dataToSave = this.getEndToEndWaitingTimeData();
break;
case 'Partial':
dataToSave = this.getPartialWaitingTimeData();
break;
}
return dataToSave;
},
getEndToEndWaitingTimeData() {
let dataToSave;
switch (this.selectedActSeqMore) { switch (this.selectedActSeqMore) {
case 'All': case 'All':
dataToSave = { dataToSave = {
@@ -971,9 +1027,7 @@ export default {
type: 'waiting-time-end-to-end-starts-with', type: 'waiting-time-end-to-end-starts-with',
}; };
this.isSubmitReset(); this.isSubmitReset();
this.isSubmitCfmWtEteStart = [ this.isSubmitCfmWtEteStart = [{ category: 'Start', task: this.selectCfmWtEteStart }];
{category: 'Start', task: this.selectCfmWtEteStart},
];
this.isSubmitTimeCfmWtEteStart.rule = this.selectDurationTime; this.isSubmitTimeCfmWtEteStart.rule = this.selectDurationTime;
break; break;
case 'End': case 'End':
@@ -984,9 +1038,7 @@ export default {
type: 'waiting-time-end-to-end-ends-with', type: 'waiting-time-end-to-end-ends-with',
}; };
this.isSubmitReset(); this.isSubmitReset();
this.isSubmitCfmWtEteEnd = [ this.isSubmitCfmWtEteEnd = [{ category: 'End', task: this.selectCfmWtEteEnd }];
{category: 'End', task: this.selectCfmWtEteEnd},
];
this.isSubmitTimeCfmWtEteEnd.rule = this.selectDurationTime; this.isSubmitTimeCfmWtEteEnd.rule = this.selectDurationTime;
break; break;
case 'Start & End': case 'Start & End':
@@ -999,17 +1051,18 @@ export default {
}; };
this.isSubmitReset(); this.isSubmitReset();
this.isSubmitCfmWtEteSE = [ this.isSubmitCfmWtEteSE = [
{category: 'Start', task: this.selectCfmWtEteSEStart}, { category: 'Start', task: this.selectCfmWtEteSEStart },
{category: 'End', task: this.selectCfmWtEteSEEnd}, { category: 'End', task: this.selectCfmWtEteSEEnd },
]; ];
this.isSubmitTimeCfmWtEteSE.rule = this.selectDurationTime; this.isSubmitTimeCfmWtEteSE.rule = this.selectDurationTime;
this.isSubmitShowDataWtEte = this.setSubmitShowDataByStartEnd(this.selectCfmWtEteSEStart, this.selectCfmWtEteSEEnd); this.isSubmitShowDataWtEte = this.setSubmitShowDataByStartEnd(this.selectCfmWtEteSEStart, this.selectCfmWtEteSEEnd);
break; break;
default: }
break; return dataToSave;
}; },
break;
case 'Partial': getPartialWaitingTimeData() {
let dataToSave;
switch (this.selectedActSeqFromTo) { switch (this.selectedActSeqFromTo) {
case 'From': case 'From':
dataToSave = { dataToSave = {
@@ -1019,9 +1072,7 @@ export default {
type: 'waiting-time-partial-starts-with', type: 'waiting-time-partial-starts-with',
}; };
this.isSubmitReset(); this.isSubmitReset();
this.isSubmitCfmWtPStart = [ this.isSubmitCfmWtPStart = [{ category: 'From', task: this.selectCfmWtPStart }];
{category: 'From', task: this.selectCfmWtPStart},
];
this.isSubmitTimeCfmWtPStart.rule = this.selectDurationTime; this.isSubmitTimeCfmWtPStart.rule = this.selectDurationTime;
break; break;
case 'To': case 'To':
@@ -1032,9 +1083,7 @@ export default {
type: 'waiting-time-partial-ends-with', type: 'waiting-time-partial-ends-with',
}; };
this.isSubmitReset(); this.isSubmitReset();
this.isSubmitCfmWtPEnd = [ this.isSubmitCfmWtPEnd = [{ category: 'To', task: this.selectCfmWtPEnd }];
{category: 'To', task: this.selectCfmWtPEnd},
];
this.isSubmitTimeCfmWtPEnd.rule = this.selectDurationTime; this.isSubmitTimeCfmWtPEnd.rule = this.selectDurationTime;
break; break;
case 'From & To': case 'From & To':
@@ -1047,21 +1096,18 @@ export default {
}; };
this.isSubmitReset(); this.isSubmitReset();
this.isSubmitCfmWtPSE = [ this.isSubmitCfmWtPSE = [
{category: 'From', task: this.selectCfmWtPSEStart}, { category: 'From', task: this.selectCfmWtPSEStart },
{category: 'To', task: this.selectCfmWtPSEEnd}, { category: 'To', task: this.selectCfmWtPSEEnd },
]; ];
this.isSubmitTimeCfmWtPSE.rule = this.selectDurationTime; this.isSubmitTimeCfmWtPSE.rule = this.selectDurationTime;
this.isSubmitShowDataWtP = this.setSubmitShowDataByStartEnd(this.selectCfmWtPSEStart, this.selectCfmWtPSEEnd); this.isSubmitShowDataWtP = this.setSubmitShowDataByStartEnd(this.selectCfmWtPSEStart, this.selectCfmWtPSEEnd);
break; break;
default: }
break; return dataToSave;
}; },
break;
default: getCycleTimeData() {
break; let dataToSave;
};
break;
case 'Cycle time': // Rule Type 選 Cycle time 的行為
switch (this.selectedActSeqMore) { switch (this.selectedActSeqMore) {
case 'All': case 'All':
dataToSave = { dataToSave = {
@@ -1080,9 +1126,7 @@ export default {
type: 'cycle-time-end-to-end-starts-with', type: 'cycle-time-end-to-end-starts-with',
}; };
this.isSubmitReset(); this.isSubmitReset();
this.isSubmitCfmCtEteStart = [ this.isSubmitCfmCtEteStart = [{ category: 'Start', task: this.selectCfmCtEteStart }];
{category: 'Start', task: this.selectCfmCtEteStart},
];
this.isSubmitTimeCfmCtEteStart.rule = this.selectDurationTime; this.isSubmitTimeCfmCtEteStart.rule = this.selectDurationTime;
break; break;
case 'End': case 'End':
@@ -1093,9 +1137,7 @@ export default {
type: 'cycle-time-end-to-end-ends-with', type: 'cycle-time-end-to-end-ends-with',
}; };
this.isSubmitReset(); this.isSubmitReset();
this.isSubmitCfmCtEteEnd = [ this.isSubmitCfmCtEteEnd = [{ category: 'End', task: this.selectCfmCtEteEnd }];
{category: 'End', task: this.selectCfmCtEteEnd},
];
this.isSubmitTimeCfmCtEteEnd.rule = this.selectDurationTime; this.isSubmitTimeCfmCtEteEnd.rule = this.selectDurationTime;
break; break;
case 'Start & End': case 'Start & End':
@@ -1108,35 +1150,14 @@ export default {
}; };
this.isSubmitReset(); this.isSubmitReset();
this.isSubmitCfmCtEteSE = [ this.isSubmitCfmCtEteSE = [
{category: 'Start', task: this.selectCfmCtEteSEStart}, { category: 'Start', task: this.selectCfmCtEteSEStart },
{category: 'End', task: this.selectCfmCtEteSEEnd}, { category: 'End', task: this.selectCfmCtEteSEEnd },
]; ];
this.isSubmitTimeCfmCtEteSE.rule = this.selectDurationTime; this.isSubmitTimeCfmCtEteSE.rule = this.selectDurationTime;
this.isSubmitShowDataCt = this.setSubmitShowDataByStartEnd(this.selectCfmCtEteSEStart, this.selectCfmCtEteSEEnd); this.isSubmitShowDataCt = this.setSubmitShowDataByStartEnd(this.selectCfmCtEteSEStart, this.selectCfmCtEteSEEnd);
break; break;
default:
break;
};
break;
};
if(dataToSave.min > dataToSave.max) {
return this.$toast.error(i18next.t("Conformance.PleaseCheckTimeRange"));
} }
if(JSON.stringify(dataToSave) === JSON.stringify(this.isSubmittedData)) { return dataToSave;
return this.$toast.error(i18next.t("Conformance.PleaseSetNewRule"));
}
this.isLoading = true;
this.isAlreadySubmit = true;
this.isSubmittedData = dataToSave; // 已 Apply 後,沒有重新改變規則的 Data
this.conformanceRuleData = dataToSave; // 給存檔的 Data
await this.conformanceStore.addConformanceCheckId(dataToSave);
await this.conformanceStore.getConformanceReport();
this.isShowBarOpen = false;
this.isLoading = false;
// Results page Cover Plate
this.$emitter.emit('coverPlate', false);
this.$toast.success(i18next.t("Conformance.RuleApplied"));
}, },
/** /**
* 設置根據類別的任務選擇邏輯 * 設置根據類別的任務選擇邏輯