Issue #136: Done.

This commit is contained in:
chiayin
2023-09-21 17:19:27 +08:00
parent 040e8b707a
commit c73ef5d4ba

View File

@@ -67,7 +67,7 @@
<!-- button -->
<div class="space-x-4 p-4 flex justify-center items-content border-t border-neutral-300">
<button type="button" class="btn btn-sm btn-neutral" @click="reset">Clear</button>
<button type="button" class="btn btn-sm btn-neutral" @click="submit">Apply</button>
<button type="button" class="btn btn-sm " @click="submit" :class="this.isDisabled ? 'btn-disable' : 'btn-neutral'" :disabled="isDisabledButton" >Apply</button>
</div>
</div>
<!-- show bar -->
@@ -124,6 +124,7 @@ export default {
},
data() {
return {
isDisabled: true,
isShowBar: false,
visibleLeft: false,
selectConformanceTask: null,
@@ -250,7 +251,146 @@ export default {
computed: {
notShowActList: function() {
return (this.selectedRuleType === 'Activity sequence' && this.selectedActivitySequence === 'Sequence' && (this.selectedMode === 'Short loop(s)' || this.selectedMode === 'Self loop(s)')) || (this.selectedRuleType === 'Processing time' && this.selectedProcessScope === 'End to end' && this.selectedActSeqMore === 'All') || (this.selectedRuleType === 'Waiting time' && this.selectedProcessScope === 'End to end' && this.selectedActSeqMore === 'All') || (this.selectedRuleType === 'Cycle time' && this.selectedProcessScope === 'End to end' && this.selectedActSeqMore === 'All')
},
/**
* Apply button is disabled or not
*/
isDisabledButton() {
let disabled = true;
switch (this.selectedRuleType) {
case 'Have activity': // Rule Type 選 Have activity 的行為
if(this.selectConformanceTask?.length) disabled = false;
break
case 'Activity sequence': // Rule Type 選 Activity sequence 的行為
switch (this.selectedActivitySequence) {
case 'Start & End': // Activity Sequence 選 Start & End 的行為
if(this.selectCfmSeqStart && this.selectCfmSeqEnd) disabled = false;
break;
case 'Sequence': // Activity Sequence 選 Sequence 的行為
switch (this.selectedMode) {
case 'Directly follows':
if(this.selectCfmSeqDirectly.length >= 2) disabled = false;
break;
case 'Eventually follows':
if(this.selectCfmSeqEventually.length >= 2) disabled = false;
break;
case 'Short loop(s)':
disabled = false;
break;
case 'Self loop(s)':
disabled = false;
break;
default:
break;
};
default:
break;
}
break;
case 'Activity duration': // Rule Type 選 Activity duration 的行為
if(this.selectDurationData?.length) disabled = false;
break;
case 'Processing time': // Rule Type 選 Processing time 的行為
switch (this.selectedProcessScope) {
case 'End to end':
switch (this.selectedActSeqMore) {
case 'All':
disabled = false;
break;
case 'Start':
if(this.selectCfmPtEteStart) disabled = false;
break;
case 'End':
if(this.selectCfmPtEteEnd) disabled = false;
break;
case 'Start & End':
if(this.selectCfmPtEteSEStart && this.selectCfmPtEteSEEnd) disabled = false;
break;
default:
break;
};
break;
case 'Partial':
switch (this.selectedActSeqFromTo) {
case 'From':
if(this.selectCfmPtPStart) disabled = false;
break;
case 'To':
if(this.selectCfmPtPEnd) disabled = false;
break;
case 'From & To':
if(this.selectCfmPtPSEStart && this.selectCfmPtPSEEnd) disabled = false;
break;
default:
break;
};
break;
default:
break;
};
break;
case 'Waiting time': // Rule Type 選 Waiting time 的行為
switch (this.selectedProcessScope) {
case 'End to end':
switch (this.selectedActSeqMore) {
case 'All':
disabled = false;
break;
case 'Start':
if(this.selectCfmWtEteStart) disabled = false;
break;
case 'End':
if(this.selectCfmWtEteEnd) disabled = false;
break;
case 'Start & End':
if(this.selectCfmWtEteSEStart && this.selectCfmWtEteSEEnd) disabled = false;
break;
default:
break;
};
break;
case 'Partial':
switch (this.selectedActSeqFromTo) {
case 'From':
if(this.selectCfmWtPStart) disabled = false;
break;
case 'To':
if(this.selectCfmWtPEnd) disabled = false;
break;
case 'From & To':
if(this.selectCfmWtPSEStart && this.selectCfmWtPSEEnd) disabled = false;
break;
default:
break;
};
break;
default:
break;
};
break;
case 'Cycle time': // Rule Type 選 Cycle time 的行為
switch (this.selectedActSeqMore) {
case 'All':
disabled = false;
break;
case 'Start':
if(this.selectCfmCtEteStart) disabled = false;
break;
case 'End':
if(this.selectCfmCtEteEnd) disabled = false;
break;
case 'Start & End':
if(this.selectCfmCtEteSEStart && this.selectCfmCtEteSEEnd) disabled = false;
break;
default:
break;
};
break;
default:
break;
};
return this.isDisabled = disabled;
},
},
watch: {
isSubmitData: function(newValue) {
@@ -409,8 +549,6 @@ export default {
switch (this.selectedRuleType) {
case 'Have activity': // Rule Type 選 Have activity 的行為
if(!this.selectConformanceTask?.length) return this.$toast.error('Not selected.');
else {
data = {
type: 'contains-tasks',
tasks: this.selectConformanceTask,
@@ -418,13 +556,10 @@ export default {
// 其他 isSubmitData 為 null
this.isSubmitReset();
this.isSubmitTask = this.selectConformanceTask;
}
break;
case 'Activity sequence': // Rule Type 選 Activity sequence 的行為
switch (this.selectedActivitySequence) {
case 'Start & End': // Activity Sequence 選 Start & End 的行為
if(this.selectCfmSeqStart === null || this.selectCfmSeqEnd === null) return this.$toast.error('Start and End activity must be selected.');
else {
data = {
type: 'start-end',
starts_with: this.selectCfmSeqStart,
@@ -436,13 +571,11 @@ export default {
{category: 'End', task: this.selectCfmSeqEnd},
];
this.isSubmitShowDataSeq = this.setSubmitShowData(this.selectCfmSeqStart, this.selectCfmSeqEnd);
};
break;
case 'Sequence': // Activity Sequence 選 Sequence 的行為
switch (this.selectedMode) {
case 'Directly follows':
if(this.selectCfmSeqDirectly.length < 2) return this.$toast.error('Select two or more.');
else data = {
data = {
type: 'directly-follows',
task_seq: this.selectCfmSeqDirectly,
};
@@ -450,8 +583,7 @@ export default {
this.isSubmitCfmSeqDirectly = this.selectCfmSeqDirectly;
break;
case 'Eventually follows':
if(this.selectCfmSeqEventually.length < 2) return this.$toast.error('Select two or more.');
else data = {
data = {
type: 'eventually-follows',
task_seq: this.selectCfmSeqEventually,
};
@@ -476,8 +608,6 @@ export default {
}
break;
case 'Activity duration': // Rule Type 選 Activity duration 的行為
if(!this.selectDurationData?.length) return this.$toast.error('Not selected.');
else {
data = {
type: 'task-duration',
task: this.selectDurationData[0],
@@ -487,7 +617,6 @@ export default {
this.isSubmitReset();
this.isSubmitDurationData = this.selectDurationData;
this.isSubmitDurationTime = this.selectDurationTime;
};
break;
case 'Processing time': // Rule Type 選 Processing time 的行為
switch (this.selectedProcessScope) {
@@ -503,8 +632,6 @@ export default {
this.isSubmitTimeCfmPtEteAll = this.selectDurationTime;
break;
case 'Start':
if(!this.selectCfmPtEteStart) return this.$toast.error('Not selected.');
else {
data = {
task: this.selectCfmPtEteStart,
min: this.selectDurationTime.min,
@@ -516,11 +643,8 @@ export default {
{category: 'Start', task: this.selectCfmPtEteStart},
];
this.isSubmitTimeCfmPtEteStart = this.selectDurationTime;
}
break;
case 'End':
if(!this.selectCfmPtEteEnd) return this.$toast.error('Not selected.');
else {
data = {
task: this.selectCfmPtEteEnd,
min: this.selectDurationTime.min,
@@ -532,11 +656,8 @@ export default {
{category: 'End', task: this.selectCfmPtEteEnd},
];
this.isSubmitTimeCfmPtEteEnd = this.selectDurationTime;
}
break;
case 'Start & End':
if(!this.selectCfmPtEteSEStart || !this.selectCfmPtEteSEEnd) return this.$toast.error('Start and End activity must be selected.');
else {
data = {
start: this.selectCfmPtEteSEStart,
end: this.selectCfmPtEteSEEnd,
@@ -551,7 +672,6 @@ export default {
];
this.isSubmitTimeCfmPtEteSE = this.selectDurationTime;
this.isSubmitShowDataPtEte = this.setSubmitShowData(this.selectCfmPtEteSEStart, this.selectCfmPtEteSEEnd);
}
break;
default:
break;
@@ -560,8 +680,6 @@ export default {
case 'Partial':
switch (this.selectedActSeqFromTo) {
case 'From':
if(!this.selectCfmPtPStart) return this.$toast.error('Not selected.');
else {
data = {
task: this.selectCfmPtPStart,
min: this.selectDurationTime.min,
@@ -573,11 +691,8 @@ export default {
{category: 'From', task: this.selectCfmPtPStart},
];
this.isSubmitTimeCfmPtPStart = this.selectDurationTime;
}
break;
case 'To':
if(!this.selectCfmPtPEnd) return this.$toast.error('Not selected.');
else {
data = {
task: this.selectCfmPtPEnd,
min: this.selectDurationTime.min,
@@ -589,11 +704,8 @@ export default {
{category: 'To', task: this.selectCfmPtPEnd},
];
this.isSubmitTimeCfmPtPEnd = this.selectDurationTime;
}
break;
case 'From & To':
if(!this.selectCfmPtPSEStart || !this.selectCfmPtPSEEnd) return this.$toast.error('From and To activity must be selected.');
else {
data = {
start: this.selectCfmPtPSEStart,
end: this.selectCfmPtPSEEnd,
@@ -608,7 +720,6 @@ export default {
];
this.isSubmitTimeCfmPtPSE = this.selectDurationTime;
this.isSubmitShowDataPtP = this.setSubmitShowData(this.selectCfmPtPSEStart, this.selectCfmPtPSEEnd);
}
break;
default:
break;
@@ -632,8 +743,6 @@ export default {
this.isSubmitTimeCfmWtEteAll = this.selectDurationTime;
break;
case 'Start':
if(!this.selectCfmWtEteStart) return this.$toast.error('Not selected.');
else {
data = {
task: this.selectCfmWtEteStart,
min: this.selectDurationTime.min,
@@ -645,11 +754,8 @@ export default {
{category: 'Start', task: this.selectCfmWtEteStart},
];
this.isSubmitTimeCfmWtEteStart = this.selectDurationTime;
}
break;
case 'End':
if(!this.selectCfmWtEteEnd) return this.$toast.error('Not selected.');
else {
data = {
task: this.selectCfmWtEteEnd,
min: this.selectDurationTime.min,
@@ -661,11 +767,8 @@ export default {
{category: 'End', task: this.selectCfmWtEteEnd},
];
this.isSubmitTimeCfmWtEteEnd = this.selectDurationTime;
}
break;
case 'Start & End':
if(!this.selectCfmWtEteSEStart || !this.selectCfmWtEteSEEnd) return this.$toast.error('Start and End activity must be selected.');
else {
data = {
start: this.selectCfmWtEteSEStart,
end: this.selectCfmWtEteSEEnd,
@@ -680,7 +783,6 @@ export default {
];
this.isSubmitTimeCfmWtEteSE = this.selectDurationTime;
this.isSubmitShowDataWtEte = this.setSubmitShowData(this.selectCfmWtEteSEStart, this.selectCfmWtEteSEEnd);
}
break;
default:
break;
@@ -689,8 +791,6 @@ export default {
case 'Partial':
switch (this.selectedActSeqFromTo) {
case 'From':
if(!this.selectCfmWtPStart) return this.$toast.error('Not selected.');
else {
data = {
task: this.selectCfmWtPStart,
min: this.selectDurationTime.min,
@@ -702,11 +802,8 @@ export default {
{category: 'From', task: this.selectCfmWtPStart},
];
this.isSubmitTimeCfmWtPStart = this.selectDurationTime;
}
break;
case 'To':
if(!this.selectCfmWtPEnd) return this.$toast.error('Not selected.');
else {
data = {
task: this.selectCfmWtPEnd,
min: this.selectDurationTime.min,
@@ -718,11 +815,8 @@ export default {
{category: 'To', task: this.selectCfmWtPEnd},
];
this.isSubmitTimeCfmWtPEnd = this.selectDurationTime;
}
break;
case 'From & To':
if(!this.selectCfmWtPSEStart || !this.selectCfmWtPSEEnd) return this.$toast.error('From and To activity must be selected.');
else {
data = {
start: this.selectCfmWtPSEStart,
end: this.selectCfmWtPSEEnd,
@@ -737,7 +831,6 @@ export default {
];
this.isSubmitTimeCfmWtPSE = this.selectDurationTime;
this.isSubmitShowDataWtP = this.setSubmitShowData(this.selectCfmWtPSEStart, this.selectCfmWtPSEEnd);
}
break;
default:
break;
@@ -759,8 +852,7 @@ export default {
this.isSubmitTimeCfmCtEteAll = this.selectDurationTime;
break;
case 'Start':
if(!this.selectCfmCtEteStart) return this.$toast.error('Not selected.');
else data = {
data = {
task: this.selectCfmCtEteStart,
min: this.selectDurationTime.min,
max: this.selectDurationTime.max,
@@ -773,8 +865,6 @@ export default {
this.isSubmitTimeCfmCtEteStart = this.selectDurationTime;
break;
case 'End':
if(!this.selectCfmCtEteEnd) return this.$toast.error('Not selected.');
else {
data = {
task: this.selectCfmCtEteEnd,
min: this.selectDurationTime.min,
@@ -786,11 +876,8 @@ export default {
{category: 'End', task: this.selectCfmCtEteEnd},
];
this.isSubmitTimeCfmCtEteEnd = this.selectDurationTime;
}
break;
case 'Start & End':
if(!this.selectCfmCtEteSEStart || !this.selectCfmCtEteSEEnd) return this.$toast.error('Start and End activity must be selected.');
else {
data = {
start: this.selectCfmCtEteSEStart,
end: this.selectCfmCtEteSEEnd,
@@ -805,7 +892,6 @@ export default {
];
this.isSubmitTimeCfmCtEteSE = this.selectDurationTime;
this.isSubmitShowDataCt = this.setSubmitShowData(this.selectCfmCtEteSEStart, this.selectCfmCtEteSEEnd);
}
break;
default:
break;
@@ -947,23 +1033,24 @@ export default {
});
this.$emitter.on('isRadioSeqChange', (data) => {
if(data) {
this.selectConformanceStartAndEnd = null;
this.selectCfmSeqDirectly = [];
this.selectCfmSeqEventually = [];
this.selectTimeReset();
};
});
this.$emitter.on('isRadioProcessScopeChange', (data) => {
if(data) {
this.selectTimeReset();
this.selectDurationTime = { min: 0, max: 0};
};
});
this.$emitter.on('isRadioActSeqMoreChange', (data) => {
if(data) {
this.selectTimeReset();
if(this.selectedActSeqMore !== 'All') this.selectDurationTime = { min: 0, max: 0};
};
});
this.$emitter.on('isRadioActSeqFromToChange', (data) => {
if(data) {
this.selectTimeReset();
this.selectDurationTime = { min: 0, max: 0};
};
});