refactor conformance related code

This commit is contained in:
Cindy Chang
2024-06-05 10:50:37 +08:00
parent 499ad33d57
commit 205b75450c
2 changed files with 294 additions and 142 deletions

View File

@@ -13,10 +13,12 @@
<!-- radio group --> <!-- radio group -->
<ConformanceRadioGroup></ConformanceRadioGroup> <ConformanceRadioGroup></ConformanceRadioGroup>
<!-- show and hidden button --> <!-- show and hidden button -->
<div v-if="!notShowActList" class="flex items-center justify-between mr-1" :class="isShowBarOpen ? 'text-primary' : ''"> <div v-if="!notShowActList" class="flex items-center justify-between mr-1"
:class="isShowBarOpen ? 'text-primary' : ''">
<p class="h2">{{ i18next.t("Conformance.ActivitySelector") }}</p> <p class="h2">{{ i18next.t("Conformance.ActivitySelector") }}</p>
<span class="material-symbols-outlined cursor-pointer duration-300 hover:bg-primary/50 hover:rounded" <span id="cyp-showbaricon" class="material-symbols-outlined cursor-pointer duration-300
@click="isShowBarOpen = !isShowBarOpen" id="cyp-showbaricon"> hover:bg-primary/50 hover:rounded"
@click="isShowBarOpen = !isShowBarOpen">
{{ isShowBarOpen ? 'keyboard_double_arrow_right' : 'keyboard_double_arrow_left' }} {{ isShowBarOpen ? 'keyboard_double_arrow_right' : 'keyboard_double_arrow_left' }}
</span> </span>
</div> </div>
@@ -48,7 +50,9 @@
<ConformanceTimeRange <ConformanceTimeRange
@min-total-seconds="minTotalSeconds" @min-total-seconds="minTotalSeconds"
@max-total-seconds="maxTotalSeconds" @max-total-seconds="maxTotalSeconds"
:isSubmitDurationTime="isSubmitDurationTime" :isSubmitDurationTime="isSubmitDurationTime"
:isSubmitTimeCfmPtEteAll="isSubmitTimeCfmPtEteAll" :isSubmitTimeCfmPtEteAll="isSubmitTimeCfmPtEteAll"
:isSubmitTimeCfmPtEteStart="isSubmitTimeCfmPtEteStart" :isSubmitTimeCfmPtEteStart="isSubmitTimeCfmPtEteStart"
:isSubmitTimeCfmPtEteEnd="isSubmitTimeCfmPtEteEnd" :isSubmitTimeCfmPtEteEnd="isSubmitTimeCfmPtEteEnd"
@@ -69,12 +73,15 @@
:isSubmitTimeCfmCtEteSE="isSubmitTimeCfmCtEteSE" :isSubmitTimeCfmCtEteSE="isSubmitTimeCfmCtEteSE"
></ConformanceTimeRange> ></ConformanceTimeRange>
</div> </div>
<!-- button --> <!-- buttons -->
<div class="space-x-4 p-4 flex justify-center items-content border-t border-neutral-300"> <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">{{ i18next.t("Global.Clear")}} </button> <button type="button" class="btn btn-sm btn-neutral" @click="reset">
<button id="btn_apply_conformance" type="button" class="btn btn-sm " @click="submitConformance" {{ i18next.t("Global.Clear")}}
:class="this.isDisabled ? 'btn-disable' : 'btn-neutral'" </button>
:disabled="isDisabledButton" <button id="btn_apply_conformance" type="button" class="btn btn-sm "
@click="submitConformance"
:class="this.isMainBtnDisabled ? 'btn-disable' : 'btn-neutral'"
:disabled="isApplyBtnDisabled"
> >
{{ i18next.t("Global.Apply") }} {{ i18next.t("Global.Apply") }}
</button> </button>
@@ -129,14 +136,29 @@ export default {
const loadingStore = LoadingStore(); const loadingStore = LoadingStore();
const conformanceStore = ConformanceStore(); const conformanceStore = ConformanceStore();
const { isLoading } = storeToRefs(loadingStore); const { isLoading } = storeToRefs(loadingStore);
const { selectedRuleType, selectedActivitySequence, selectedMode, selectedProcessScope, selectedActSeqMore, selectedActSeqFromTo, conformanceAllTasks, cfmPtEteWhole, cfmPtEteStart, cfmPtEteEnd, cfmPtEteSE, cfmPtPStart, cfmPtPEnd, cfmPtPSE, cfmWtEteWhole, cfmWtEteStart, cfmWtEteEnd, cfmWtEteSE, cfmWtPStart, cfmWtPEnd, cfmWtPSE, cfmCtEteWhole, cfmCtEteStart, cfmCtEteEnd, cfmCtEteSE, isStartSelected, isEndSelected, conformanceRuleData, conformanceLogCreateCheckId, conformanceFilterCreateCheckId, conformanceTempReportData } = storeToRefs(conformanceStore); const { selectedRuleType, selectedActivitySequence, selectedMode, selectedProcessScope,
selectedActSeqMore, selectedActSeqFromTo, conformanceAllTasks, cfmPtEteWhole,
cfmPtEteStart, cfmPtEteEnd, cfmPtEteSE, cfmPtPStart, cfmPtPEnd, cfmPtPSE, cfmWtEteWhole,
cfmWtEteStart, cfmWtEteEnd, cfmWtEteSE, cfmWtPStart, cfmWtPEnd, cfmWtPSE, cfmCtEteWhole,
cfmCtEteStart, cfmCtEteEnd, cfmCtEteSE, isStartSelected, isEndSelected,
conformanceRuleData, conformanceLogCreateCheckId, conformanceFilterCreateCheckId,
conformanceTempReportData
} = storeToRefs(conformanceStore);
return { isLoading, selectedRuleType, selectedActivitySequence, selectedMode, selectedProcessScope, selectedActSeqMore, selectedActSeqFromTo, conformanceStore, conformanceAllTasks, cfmPtEteWhole, cfmPtEteStart, cfmPtEteEnd, cfmPtEteSE, cfmPtPStart, cfmPtPEnd, cfmPtPSE, cfmWtEteWhole, cfmWtEteStart, cfmWtEteEnd, cfmWtEteSE, cfmWtPStart, cfmWtPEnd, cfmWtPSE, cfmCtEteWhole, cfmCtEteStart, cfmCtEteEnd, cfmCtEteSE, isStartSelected, isEndSelected, conformanceRuleData, conformanceLogCreateCheckId, conformanceFilterCreateCheckId, conformanceTempReportData } return { isLoading, selectedRuleType, selectedActivitySequence, selectedMode,
selectedProcessScope, selectedActSeqMore, selectedActSeqFromTo,
conformanceStore, conformanceAllTasks, cfmPtEteWhole, cfmPtEteStart,
cfmPtEteEnd, cfmPtEteSE, cfmPtPStart, cfmPtPEnd, cfmPtPSE, cfmWtEteWhole,
cfmWtEteStart, cfmWtEteEnd, cfmWtEteSE, cfmWtPStart, cfmWtPEnd, cfmWtPSE,
cfmCtEteWhole, cfmCtEteStart, cfmCtEteEnd, cfmCtEteSE, isStartSelected, isEndSelected,
conformanceRuleData, conformanceLogCreateCheckId, conformanceFilterCreateCheckId,
conformanceTempReportData
};
}, },
data() { data() {
return { return {
i18next: i18next, i18next: i18next,
isDisabled: true, isMainBtnDisabled: true,
isShowBarOpen: false, isShowBarOpen: false,
visibleLeft: false, visibleLeft: false,
selectConformanceTask: null, selectConformanceTask: null,
@@ -170,7 +192,7 @@ export default {
selectCfmCtEteSEStart: null, selectCfmCtEteSEStart: null,
selectCfmCtEteSEEnd: null, selectCfmCtEteSEEnd: null,
isSubmit: false, isSubmit: false,
isSubmitData: null, // 已 Apply 後,沒有重新改變規則的 Data isSubmittedData: null, // 已 Apply 後,沒有重新改變規則的 Data
isSubmitTask: null, isSubmitTask: null,
isSubmitStartAndEnd: null, // Activity sequence isSubmitStartAndEnd: null, // Activity sequence
isSubmitCfmSeqDirectly: [], isSubmitCfmSeqDirectly: [],
@@ -264,31 +286,42 @@ export default {
notShowActList: function() { notShowActList: function() {
return (this.selectedRuleType === 'Activity sequence' && this.selectedActivitySequence === 'Sequence' return (this.selectedRuleType === 'Activity sequence' && this.selectedActivitySequence === 'Sequence'
&& (this.selectedMode === 'Short loop(s)' || this.selectedMode === 'Self loop(s)')) && (this.selectedMode === 'Short loop(s)' || this.selectedMode === 'Self loop(s)'))
|| (this.selectedRuleType === 'Processing time' && this.selectedProcessScope === 'End to end' && this.selectedActSeqMore === 'All') || (this.selectedRuleType === 'Processing time' && this.selectedProcessScope === 'End to end'
|| (this.selectedRuleType === 'Waiting time' && this.selectedProcessScope === 'End to end' && this.selectedActSeqMore === 'All') && this.selectedActSeqMore === 'All')
|| (this.selectedRuleType === 'Cycle 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 * Apply button is disabled or not
*/ */
isDisabledButton() { isApplyBtnDisabled() {
let disabled = true; let disabled = true;
switch (this.selectedRuleType) { switch (this.selectedRuleType) {
case 'Have activity': // Rule Type 選 Have activity 的行為 case 'Have activity': // Rule Type 選 Have activity 的行為
if(this.selectConformanceTask?.length) disabled = false; if(this.selectConformanceTask?.length) {
disabled = false;
}
break break
case 'Activity sequence': // Rule Type 選 Activity sequence 的行為 case 'Activity sequence': // Rule Type 選 Activity sequence 的行為
switch (this.selectedActivitySequence) { switch (this.selectedActivitySequence) {
case 'Start & End': // Activity Sequence 選 Start & End 的行為 case 'Start & End': // Activity Sequence 選 Start & End 的行為
if(this.selectCfmSeqStart && this.selectCfmSeqEnd) disabled = false; if(this.selectCfmSeqStart && this.selectCfmSeqEnd) {
disabled = false;
}
break; break;
case 'Sequence': // Activity Sequence 選 Sequence 的行為 case 'Sequence': // Activity Sequence 選 Sequence 的行為
switch (this.selectedMode) { switch (this.selectedMode) {
case 'Directly follows': case 'Directly follows':
if(this.selectCfmSeqDirectly.length >= 2) disabled = false; if(this.selectCfmSeqDirectly.length >= 2) {
disabled = false;
}
break; break;
case 'Eventually follows': case 'Eventually follows':
if(this.selectCfmSeqEventually.length >= 2) disabled = false; if(this.selectCfmSeqEventually.length >= 2) {
disabled = false;
}
break; break;
case 'Short loop(s)': case 'Short loop(s)':
disabled = false; disabled = false;
@@ -300,7 +333,9 @@ export default {
} }
break; break;
case 'Activity duration': // Rule Type 選 Activity duration 的行為 case 'Activity duration': // Rule Type 選 Activity duration 的行為
if(this.selectDurationData?.length) disabled = false; if(this.selectDurationData?.length) {
disabled = false;
}
break; break;
case 'Processing time': // Rule Type 選 Processing time 的行為 case 'Processing time': // Rule Type 選 Processing time 的行為
switch (this.selectedProcessScope) { switch (this.selectedProcessScope) {
@@ -310,18 +345,28 @@ export default {
disabled = false; disabled = false;
break; break;
case 'Start': case 'Start':
if(this.selectCfmPtEteStart) disabled = false; if(this.selectCfmPtEteStart) {
disabled = false;
}
break; break;
case 'End': case 'End':
if(this.selectCfmPtEteEnd) disabled = false; if(this.selectCfmPtEteEnd) {
disabled = false;
}
break; break;
case 'Start & End': case 'Start & End':
if(!this.isSubmit) { if(!this.isSubmit) {
if(this.selectCfmPtEteSEStart && this.selectCfmPtEteSEEnd) disabled = false; if(this.selectCfmPtEteSEStart && this.selectCfmPtEteSEEnd){
disabled = false;
}
} else { } else {
if((!this.selectCfmPtEteSEStart && this.selectCfmPtEteSEEnd) if((!this.selectCfmPtEteSEStart && this.selectCfmPtEteSEEnd)
|| (this.selectCfmPtEteSEStart && !this.selectCfmPtEteSEEnd)) disabled = true; || (this.selectCfmPtEteSEStart && !this.selectCfmPtEteSEEnd)) {
else disabled = false; disabled = true;
}
else {
disabled = false;
}
} }
break; break;
}; };
@@ -329,18 +374,28 @@ export default {
case 'Partial': case 'Partial':
switch (this.selectedActSeqFromTo) { switch (this.selectedActSeqFromTo) {
case 'From': case 'From':
if(this.selectCfmPtPStart) disabled = false; if(this.selectCfmPtPStart) {
disabled = false;
}
break; break;
case 'To': case 'To':
if(this.selectCfmPtPEnd) disabled = false; if(this.selectCfmPtPEnd) {
disabled = false;
}
break; break;
case 'From & To': case 'From & To':
if(!this.isSubmit) { if(!this.isSubmit) {
if(this.selectCfmPtPSEStart && this.selectCfmPtPSEEnd) disabled = false; if(this.selectCfmPtPSEStart && this.selectCfmPtPSEEnd) {
disabled = false;
}
} else { } else {
if((!this.selectCfmPtPSEStart && this.selectCfmPtPSEEnd) if((!this.selectCfmPtPSEStart && this.selectCfmPtPSEEnd)
|| (this.selectCfmPtPSEStart && !this.selectCfmPtPSEEnd)) disabled = true; || (this.selectCfmPtPSEStart && !this.selectCfmPtPSEEnd)) {
else disabled = false; disabled = true;
}
else {
disabled = false;
}
} }
break; break;
}; };
@@ -351,41 +406,58 @@ export default {
switch (this.selectedProcessScope) { switch (this.selectedProcessScope) {
case 'End to end': case 'End to end':
switch (this.selectedActSeqMore) { switch (this.selectedActSeqMore) {
case 'All':
disabled = false;
break;
case 'Start': case 'Start':
if(this.selectCfmWtEteStart) disabled = false; if(this.selectCfmWtEteStart) {
disabled = false;
}
break; break;
case 'End': case 'End':
if(this.selectCfmWtEteEnd) disabled = false; if(this.selectCfmWtEteEnd) {
disabled = false;
}
break; break;
case 'Start & End': case 'Start & End':
if(!this.isSubmit) { if(!this.isSubmit) {
if(this.selectCfmWtEteSEStart && this.selectCfmWtEteSEEnd) disabled = false; if(this.selectCfmWtEteSEStart && this.selectCfmWtEteSEEnd) {
} else { disabled = false;
if((!this.selectCfmWtEteSEStart && this.selectCfmWtEteSEEnd) } else {
|| (this.selectCfmWtEteSEStart && !this.selectCfmWtEteSEEnd)) disabled = true; if((!this.selectCfmWtEteSEStart && this.selectCfmWtEteSEEnd)
else disabled = false; || (this.selectCfmWtEteSEStart && !this.selectCfmWtEteSEEnd)) {
} disabled = true;
break; }
}; else {
break; disabled = false;
}
}
break;
};
break;
}
case 'Partial': case 'Partial':
switch (this.selectedActSeqFromTo) { switch (this.selectedActSeqFromTo) {
case 'From': case 'From':
if(this.selectCfmWtPStart) disabled = false; if(this.selectCfmWtPStart) {
disabled = false;
}
break; break;
case 'To': case 'To':
if(this.selectCfmWtPEnd) disabled = false; if(this.selectCfmWtPEnd) {
disabled = false;
}
break; break;
case 'From & To': case 'From & To':
if(!this.isSubmit) { if(!this.isSubmit) {
if(this.selectCfmWtPSEStart && this.selectCfmWtPSEEnd) disabled = false; if(this.selectCfmWtPSEStart && this.selectCfmWtPSEEnd) {
disabled = false;
}
} else { } else {
if((!this.selectCfmWtPSEStart && this.selectCfmWtPSEEnd) if((!this.selectCfmWtPSEStart && this.selectCfmWtPSEEnd)
|| (this.selectCfmWtPSEStart && !this.selectCfmWtPSEEnd)) disabled = true; || (this.selectCfmWtPSEStart && !this.selectCfmWtPSEEnd)) {
else disabled = false; disabled = true;
}
else {
disabled = false;
}
} }
break; break;
}; };
@@ -398,29 +470,41 @@ export default {
disabled = false; disabled = false;
break; break;
case 'Start': case 'Start':
if(this.selectCfmCtEteStart) disabled = false; if(this.selectCfmCtEteStart) {
disabled = false;
}
break; break;
case 'End': case 'End':
if(this.selectCfmCtEteEnd) disabled = false; if(this.selectCfmCtEteEnd) {
disabled = false;
}
break; break;
case 'Start & End': case 'Start & End':
if(!this.isSubmit) { if(!this.isSubmit) {
if(this.selectCfmCtEteSEStart && this.selectCfmCtEteSEEnd) disabled = false; if(this.selectCfmCtEteSEStart && this.selectCfmCtEteSEEnd) {
disabled = false;
}
} else { } else {
if((!this.selectCfmCtEteSEStart && this.selectCfmCtEteSEEnd) if((!this.selectCfmCtEteSEStart && this.selectCfmCtEteSEEnd)
|| (this.selectCfmCtEteSEStart && !this.selectCfmCtEteSEEnd)) disabled = true; || (this.selectCfmCtEteSEStart && !this.selectCfmCtEteSEEnd)) {
else disabled = false; disabled = true;
}
else {
disabled = false;
}
} }
break; break;
}; };
break; break;
}; };
return this.isDisabled = disabled;
return this.isMainBtnDisabled = disabled;
}, },
}, },
watch: { watch: {
isSubmitData: function(newValue) { isSubmittedData: function(newValue) {
this.isSubmitData = newValue; this.isSubmittedData = newValue;
}, },
// 打開 rule 檔要顯示儲存的選項、規則、時間 // 打開 rule 檔要顯示儲存的選項、規則、時間
conformanceTempReportData: { conformanceTempReportData: {
@@ -429,7 +513,7 @@ export default {
if(newValue !== null) { if(newValue !== null) {
const rule = newValue.rule; const rule = newValue.rule;
this.isSubmitData = newValue.rule; this.isSubmittedData = newValue.rule;
this.isSubmit = true; this.isSubmit = true;
switch (rule.type) { switch (rule.type) {
case 'contains-tasks': // Rule Type 選 Have activity 的行為 case 'contains-tasks': // Rule Type 選 Have activity 的行為
@@ -522,7 +606,7 @@ export default {
base: newValue.charts.time.x_axis, base: newValue.charts.time.x_axis,
rule: { min: rule.min, max: rule.max}, rule: { min: rule.min, max: rule.max},
}; };
this.isSubmitShowDataPtEte = this.setSubmitShowData(rule.start, rule.end); this.isSubmitShowDataPtEte = this.setSubmitShowDataByStartEnd(rule.start, rule.end);
break; break;
case 'processing-time-partial-starts-with': case 'processing-time-partial-starts-with':
this.selectedRuleType = 'Processing time'; this.selectedRuleType = 'Processing time';
@@ -562,7 +646,7 @@ export default {
base: newValue.charts.time.x_axis, base: newValue.charts.time.x_axis,
rule: { min: rule.min, max: rule.max}, rule: { min: rule.min, max: rule.max},
}; };
this.isSubmitShowDataPtP = this.setSubmitShowData(rule.start, rule.end); this.isSubmitShowDataPtP = this.setSubmitShowDataByStartEnd(rule.start, rule.end);
break; break;
case 'waiting-time-end-to-end-whole': // Rule Type 選 Waiting time 的行為 case 'waiting-time-end-to-end-whole': // Rule Type 選 Waiting time 的行為
this.selectedRuleType = 'Waiting time'; this.selectedRuleType = 'Waiting time';
@@ -611,7 +695,7 @@ export default {
base: newValue.charts.time.x_axis, base: newValue.charts.time.x_axis,
rule: { min: rule.min, max: rule.max}, rule: { min: rule.min, max: rule.max},
}; };
this.isSubmitShowDataWtEte = this.setSubmitShowData(rule.start, rule.end); this.isSubmitShowDataWtEte = this.setSubmitShowDataByStartEnd(rule.start, rule.end);
break; break;
case 'waiting-time-partial-starts-with': case 'waiting-time-partial-starts-with':
this.selectedRuleType = 'Waiting time'; this.selectedRuleType = 'Waiting time';
@@ -651,7 +735,7 @@ export default {
base: newValue.charts.time.x_axis, base: newValue.charts.time.x_axis,
rule: { min: rule.min, max: rule.max}, rule: { min: rule.min, max: rule.max},
}; };
this.isSubmitShowDataWtP = this.setSubmitShowData(rule.start, rule.end); this.isSubmitShowDataWtP = this.setSubmitShowDataByStartEnd(rule.start, rule.end);
break; break;
case 'cycle-time-end-to-end-whole': // Rule Type 選 Cycle time 的行為 case 'cycle-time-end-to-end-whole': // Rule Type 選 Cycle time 的行為
this.selectedRuleType = 'Cycle time'; this.selectedRuleType = 'Cycle time';
@@ -700,7 +784,7 @@ export default {
base: newValue.charts.time.x_axis, base: newValue.charts.time.x_axis,
rule: { min: rule.min, max: rule.max}, rule: { min: rule.min, max: rule.max},
}; };
this.isSubmitShowDataCt = this.setSubmitShowData(rule.start, rule.end); this.isSubmitShowDataCt = this.setSubmitShowDataByStartEnd(rule.start, rule.end);
break; break;
} }
} }
@@ -762,7 +846,7 @@ export default {
* is submit select Reset * is submit select Reset
*/ */
isSubmitReset() { isSubmitReset() {
// 不包含 isSubmitData // 不包含 isSubmittedData
this.isSubmitTask = null; this.isSubmitTask = null;
this.isSubmitStartAndEnd = null; this.isSubmitStartAndEnd = null;
this.isSubmitCfmSeqDirectly = []; this.isSubmitCfmSeqDirectly = [];
@@ -811,7 +895,7 @@ export default {
this.$emitter.emit('coverPlate', true); this.$emitter.emit('coverPlate', true);
// is submit select Reset // is submit select Reset
this.isSubmitReset(); this.isSubmitReset();
this.isSubmitData = null; // 已 Apply 後,沒有重新改變規則的 Data this.isSubmittedData = null; // 已 Apply 後,沒有重新改變規則的 Data
this.isSubmit = false; this.isSubmit = false;
// 其他子元件 reset // 其他子元件 reset
@@ -827,7 +911,7 @@ export default {
* @param {string} end task * @param {string} end task
* @returns {object} * @returns {object}
*/ */
setSubmitShowData(start, end) { setSubmitShowDataByStartEnd(start, end) {
if(this.isStartSelected) { if(this.isStartSelected) {
return { return {
task: start, task: start,
@@ -850,7 +934,7 @@ export default {
* Apply button 發送選項,取得 Check Id. * Apply button 發送選項,取得 Check Id.
*/ */
async submitConformance() { async submitConformance() {
let data ; let dataToSave ;
this.selectDurationTime = await { this.selectDurationTime = await {
min: this.selectTimeRangeMin, min: this.selectTimeRangeMin,
@@ -860,18 +944,18 @@ export default {
switch (this.selectedRuleType) { switch (this.selectedRuleType) {
case 'Have activity': // Rule Type 選 Have activity 的行為 case 'Have activity': // Rule Type 選 Have activity 的行為
data = { dataToSave = {
type: 'contains-tasks', type: 'contains-tasks',
tasks: this.selectConformanceTask, tasks: this.selectConformanceTask,
}; };
// 其他 isSubmitData 為 null // 其他 isSubmittedData 為 null
this.isSubmitReset(); this.isSubmitReset();
this.isSubmitTask = this.selectConformanceTask; this.isSubmitTask = this.selectConformanceTask;
break; break;
case 'Activity sequence': // Rule Type 選 Activity sequence 的行為 case 'Activity sequence': // Rule Type 選 Activity sequence 的行為
switch (this.selectedActivitySequence) { switch (this.selectedActivitySequence) {
case 'Start & End': // Activity Sequence 選 Start & End 的行為 case 'Start & End': // Activity Sequence 選 Start & End 的行為
data = { dataToSave = {
type: 'start-end', type: 'start-end',
starts_with: this.selectCfmSeqStart, starts_with: this.selectCfmSeqStart,
ends_with: this.selectCfmSeqEnd, ends_with: this.selectCfmSeqEnd,
@@ -881,12 +965,12 @@ export default {
{category: 'Start', task: this.selectCfmSeqStart}, {category: 'Start', task: this.selectCfmSeqStart},
{category: 'End', task: this.selectCfmSeqEnd}, {category: 'End', task: this.selectCfmSeqEnd},
]; ];
this.isSubmitShowDataSeq = this.setSubmitShowData(this.selectCfmSeqStart, this.selectCfmSeqEnd); this.isSubmitShowDataSeq = this.setSubmitShowDataByStartEnd(this.selectCfmSeqStart, this.selectCfmSeqEnd);
break; break;
case 'Sequence': // Activity Sequence 選 Sequence 的行為 case 'Sequence': // Activity Sequence 選 Sequence 的行為
switch (this.selectedMode) { switch (this.selectedMode) {
case 'Directly follows': case 'Directly follows':
data = { dataToSave = {
type: 'directly-follows', type: 'directly-follows',
task_seq: this.selectCfmSeqDirectly, task_seq: this.selectCfmSeqDirectly,
}; };
@@ -894,7 +978,7 @@ export default {
this.isSubmitCfmSeqDirectly = JSON.parse(JSON.stringify(this.selectCfmSeqDirectly)); this.isSubmitCfmSeqDirectly = JSON.parse(JSON.stringify(this.selectCfmSeqDirectly));
break; break;
case 'Eventually follows': case 'Eventually follows':
data = { dataToSave = {
type: 'eventually-follows', type: 'eventually-follows',
task_seq: this.selectCfmSeqEventually, task_seq: this.selectCfmSeqEventually,
}; };
@@ -902,12 +986,12 @@ 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)':
data = { dataToSave = {
type: 'short-loops', type: 'short-loops',
}; };
break; break;
case 'Self loop(s)': case 'Self loop(s)':
data = { dataToSave = {
type: 'self-loops', type: 'self-loops',
}; };
break; break;
@@ -919,7 +1003,7 @@ export default {
} }
break; break;
case 'Activity duration': // Rule Type 選 Activity duration 的行為 case 'Activity duration': // Rule Type 選 Activity duration 的行為
data = { dataToSave = {
type: 'task-duration', type: 'task-duration',
task: this.selectDurationData[0], task: this.selectDurationData[0],
min: this.selectDurationTime.min, min: this.selectDurationTime.min,
@@ -934,7 +1018,7 @@ export default {
case 'End to end': case 'End to end':
switch (this.selectedActSeqMore) { switch (this.selectedActSeqMore) {
case 'All': case 'All':
data = { dataToSave = {
min: this.selectDurationTime.min, min: this.selectDurationTime.min,
max: this.selectDurationTime.max, max: this.selectDurationTime.max,
type: 'processing-time-end-to-end-whole', type: 'processing-time-end-to-end-whole',
@@ -943,7 +1027,7 @@ export default {
this.isSubmitTimeCfmPtEteAll.rule = this.selectDurationTime; this.isSubmitTimeCfmPtEteAll.rule = this.selectDurationTime;
break; break;
case 'Start': case 'Start':
data = { dataToSave = {
task: this.selectCfmPtEteStart, task: this.selectCfmPtEteStart,
min: this.selectDurationTime.min, min: this.selectDurationTime.min,
max: this.selectDurationTime.max, max: this.selectDurationTime.max,
@@ -956,7 +1040,7 @@ export default {
this.isSubmitTimeCfmPtEteStart.rule = this.selectDurationTime; this.isSubmitTimeCfmPtEteStart.rule = this.selectDurationTime;
break; break;
case 'End': case 'End':
data = { dataToSave = {
task: this.selectCfmPtEteEnd, task: this.selectCfmPtEteEnd,
min: this.selectDurationTime.min, min: this.selectDurationTime.min,
max: this.selectDurationTime.max, max: this.selectDurationTime.max,
@@ -969,7 +1053,7 @@ export default {
this.isSubmitTimeCfmPtEteEnd.rule = this.selectDurationTime; this.isSubmitTimeCfmPtEteEnd.rule = this.selectDurationTime;
break; break;
case 'Start & End': case 'Start & End':
data = { dataToSave = {
start: this.selectCfmPtEteSEStart, start: this.selectCfmPtEteSEStart,
end: this.selectCfmPtEteSEEnd, end: this.selectCfmPtEteSEEnd,
min: this.selectDurationTime.min, min: this.selectDurationTime.min,
@@ -982,14 +1066,14 @@ export default {
{category: 'End', task: this.selectCfmPtEteSEEnd}, {category: 'End', task: this.selectCfmPtEteSEEnd},
]; ];
this.isSubmitTimeCfmPtEteSE.rule = this.selectDurationTime; this.isSubmitTimeCfmPtEteSE.rule = this.selectDurationTime;
this.isSubmitShowDataPtEte = this.setSubmitShowData(this.selectCfmPtEteSEStart, this.selectCfmPtEteSEEnd); this.isSubmitShowDataPtEte = this.setSubmitShowDataByStartEnd(this.selectCfmPtEteSEStart, this.selectCfmPtEteSEEnd);
break; break;
}; };
break; break;
case 'Partial': case 'Partial':
switch (this.selectedActSeqFromTo) { switch (this.selectedActSeqFromTo) {
case 'From': case 'From':
data = { dataToSave = {
task: this.selectCfmPtPStart, task: this.selectCfmPtPStart,
min: this.selectDurationTime.min, min: this.selectDurationTime.min,
max: this.selectDurationTime.max, max: this.selectDurationTime.max,
@@ -1002,7 +1086,7 @@ export default {
this.isSubmitTimeCfmPtPStart.rule = this.selectDurationTime; this.isSubmitTimeCfmPtPStart.rule = this.selectDurationTime;
break; break;
case 'To': case 'To':
data = { dataToSave = {
task: this.selectCfmPtPEnd, task: this.selectCfmPtPEnd,
min: this.selectDurationTime.min, min: this.selectDurationTime.min,
max: this.selectDurationTime.max, max: this.selectDurationTime.max,
@@ -1015,7 +1099,7 @@ export default {
this.isSubmitTimeCfmPtPEnd.rule = this.selectDurationTime; this.isSubmitTimeCfmPtPEnd.rule = this.selectDurationTime;
break; break;
case 'From & To': case 'From & To':
data = { dataToSave = {
start: this.selectCfmPtPSEStart, start: this.selectCfmPtPSEStart,
end: this.selectCfmPtPSEEnd, end: this.selectCfmPtPSEEnd,
min: this.selectDurationTime.min, min: this.selectDurationTime.min,
@@ -1028,7 +1112,7 @@ export default {
{category: 'To', task: this.selectCfmPtPSEEnd}, {category: 'To', task: this.selectCfmPtPSEEnd},
]; ];
this.isSubmitTimeCfmPtPSE.rule = this.selectDurationTime; this.isSubmitTimeCfmPtPSE.rule = this.selectDurationTime;
this.isSubmitShowDataPtP = this.setSubmitShowData(this.selectCfmPtPSEStart, this.selectCfmPtPSEEnd); this.isSubmitShowDataPtP = this.setSubmitShowDataByStartEnd(this.selectCfmPtPSEStart, this.selectCfmPtPSEEnd);
break; break;
default: default:
break; break;
@@ -1043,7 +1127,7 @@ export default {
case 'End to end': case 'End to end':
switch (this.selectedActSeqMore) { switch (this.selectedActSeqMore) {
case 'All': case 'All':
data = { dataToSave = {
min: this.selectDurationTime.min, min: this.selectDurationTime.min,
max: this.selectDurationTime.max, max: this.selectDurationTime.max,
type: 'waiting-time-end-to-end-whole', type: 'waiting-time-end-to-end-whole',
@@ -1052,7 +1136,7 @@ export default {
this.isSubmitTimeCfmWtEteAll.rule = this.selectDurationTime; this.isSubmitTimeCfmWtEteAll.rule = this.selectDurationTime;
break; break;
case 'Start': case 'Start':
data = { dataToSave = {
task: this.selectCfmWtEteStart, task: this.selectCfmWtEteStart,
min: this.selectDurationTime.min, min: this.selectDurationTime.min,
max: this.selectDurationTime.max, max: this.selectDurationTime.max,
@@ -1065,7 +1149,7 @@ export default {
this.isSubmitTimeCfmWtEteStart.rule = this.selectDurationTime; this.isSubmitTimeCfmWtEteStart.rule = this.selectDurationTime;
break; break;
case 'End': case 'End':
data = { dataToSave = {
task: this.selectCfmWtEteEnd, task: this.selectCfmWtEteEnd,
min: this.selectDurationTime.min, min: this.selectDurationTime.min,
max: this.selectDurationTime.max, max: this.selectDurationTime.max,
@@ -1078,7 +1162,7 @@ export default {
this.isSubmitTimeCfmWtEteEnd.rule = this.selectDurationTime; this.isSubmitTimeCfmWtEteEnd.rule = this.selectDurationTime;
break; break;
case 'Start & End': case 'Start & End':
data = { dataToSave = {
start: this.selectCfmWtEteSEStart, start: this.selectCfmWtEteSEStart,
end: this.selectCfmWtEteSEEnd, end: this.selectCfmWtEteSEEnd,
min: this.selectDurationTime.min, min: this.selectDurationTime.min,
@@ -1091,7 +1175,7 @@ export default {
{category: 'End', task: this.selectCfmWtEteSEEnd}, {category: 'End', task: this.selectCfmWtEteSEEnd},
]; ];
this.isSubmitTimeCfmWtEteSE.rule = this.selectDurationTime; this.isSubmitTimeCfmWtEteSE.rule = this.selectDurationTime;
this.isSubmitShowDataWtEte = this.setSubmitShowData(this.selectCfmWtEteSEStart, this.selectCfmWtEteSEEnd); this.isSubmitShowDataWtEte = this.setSubmitShowDataByStartEnd(this.selectCfmWtEteSEStart, this.selectCfmWtEteSEEnd);
break; break;
default: default:
break; break;
@@ -1100,7 +1184,7 @@ export default {
case 'Partial': case 'Partial':
switch (this.selectedActSeqFromTo) { switch (this.selectedActSeqFromTo) {
case 'From': case 'From':
data = { dataToSave = {
task: this.selectCfmWtPStart, task: this.selectCfmWtPStart,
min: this.selectDurationTime.min, min: this.selectDurationTime.min,
max: this.selectDurationTime.max, max: this.selectDurationTime.max,
@@ -1113,7 +1197,7 @@ export default {
this.isSubmitTimeCfmWtPStart.rule = this.selectDurationTime; this.isSubmitTimeCfmWtPStart.rule = this.selectDurationTime;
break; break;
case 'To': case 'To':
data = { dataToSave = {
task: this.selectCfmWtPEnd, task: this.selectCfmWtPEnd,
min: this.selectDurationTime.min, min: this.selectDurationTime.min,
max: this.selectDurationTime.max, max: this.selectDurationTime.max,
@@ -1126,7 +1210,7 @@ export default {
this.isSubmitTimeCfmWtPEnd.rule = this.selectDurationTime; this.isSubmitTimeCfmWtPEnd.rule = this.selectDurationTime;
break; break;
case 'From & To': case 'From & To':
data = { dataToSave = {
start: this.selectCfmWtPSEStart, start: this.selectCfmWtPSEStart,
end: this.selectCfmWtPSEEnd, end: this.selectCfmWtPSEEnd,
min: this.selectDurationTime.min, min: this.selectDurationTime.min,
@@ -1139,7 +1223,7 @@ export default {
{category: 'To', task: this.selectCfmWtPSEEnd}, {category: 'To', task: this.selectCfmWtPSEEnd},
]; ];
this.isSubmitTimeCfmWtPSE.rule = this.selectDurationTime; this.isSubmitTimeCfmWtPSE.rule = this.selectDurationTime;
this.isSubmitShowDataWtP = this.setSubmitShowData(this.selectCfmWtPSEStart, this.selectCfmWtPSEEnd); this.isSubmitShowDataWtP = this.setSubmitShowDataByStartEnd(this.selectCfmWtPSEStart, this.selectCfmWtPSEEnd);
break; break;
default: default:
break; break;
@@ -1152,7 +1236,7 @@ export default {
case 'Cycle time': // Rule Type 選 Cycle time 的行為 case 'Cycle time': // Rule Type 選 Cycle time 的行為
switch (this.selectedActSeqMore) { switch (this.selectedActSeqMore) {
case 'All': case 'All':
data = { dataToSave = {
min: this.selectDurationTime.min, min: this.selectDurationTime.min,
max: this.selectDurationTime.max, max: this.selectDurationTime.max,
type: 'cycle-time-end-to-end-whole', type: 'cycle-time-end-to-end-whole',
@@ -1161,7 +1245,7 @@ export default {
this.isSubmitTimeCfmCtEteAll.rule = this.selectDurationTime; this.isSubmitTimeCfmCtEteAll.rule = this.selectDurationTime;
break; break;
case 'Start': case 'Start':
data = { dataToSave = {
task: this.selectCfmCtEteStart, task: this.selectCfmCtEteStart,
min: this.selectDurationTime.min, min: this.selectDurationTime.min,
max: this.selectDurationTime.max, max: this.selectDurationTime.max,
@@ -1174,7 +1258,7 @@ export default {
this.isSubmitTimeCfmCtEteStart.rule = this.selectDurationTime; this.isSubmitTimeCfmCtEteStart.rule = this.selectDurationTime;
break; break;
case 'End': case 'End':
data = { dataToSave = {
task: this.selectCfmCtEteEnd, task: this.selectCfmCtEteEnd,
min: this.selectDurationTime.min, min: this.selectDurationTime.min,
max: this.selectDurationTime.max, max: this.selectDurationTime.max,
@@ -1187,7 +1271,7 @@ export default {
this.isSubmitTimeCfmCtEteEnd.rule = this.selectDurationTime; this.isSubmitTimeCfmCtEteEnd.rule = this.selectDurationTime;
break; break;
case 'Start & End': case 'Start & End':
data = { dataToSave = {
start: this.selectCfmCtEteSEStart, start: this.selectCfmCtEteSEStart,
end: this.selectCfmCtEteSEEnd, end: this.selectCfmCtEteSEEnd,
min: this.selectDurationTime.min, min: this.selectDurationTime.min,
@@ -1200,25 +1284,25 @@ export default {
{category: 'End', task: this.selectCfmCtEteSEEnd}, {category: 'End', task: this.selectCfmCtEteSEEnd},
]; ];
this.isSubmitTimeCfmCtEteSE.rule = this.selectDurationTime; this.isSubmitTimeCfmCtEteSE.rule = this.selectDurationTime;
this.isSubmitShowDataCt = this.setSubmitShowData(this.selectCfmCtEteSEStart, this.selectCfmCtEteSEEnd); this.isSubmitShowDataCt = this.setSubmitShowDataByStartEnd(this.selectCfmCtEteSEStart, this.selectCfmCtEteSEEnd);
break; break;
default: default:
break; break;
}; };
break; break;
}; };
if(data.min > data.max) { if(dataToSave.min > dataToSave.max) {
return this.$toast.error('Please check time range setting.'); return this.$toast.error('Please check time range setting.');
} }
if(JSON.stringify(data) === JSON.stringify(this.isSubmitData)) { if(JSON.stringify(dataToSave) === JSON.stringify(this.isSubmittedData)) {
return this.$toast.error('Please set the new rule.'); return this.$toast.error('Please set the new rule.');
} }
this.isLoading = true; this.isLoading = true;
this.isSubmit = true; this.isSubmit = true;
this.isSubmitData = data; // 已 Apply 後,沒有重新改變規則的 Data this.isSubmittedData = dataToSave; // 已 Apply 後,沒有重新改變規則的 Data
this.conformanceRuleData = data; // 給存檔的 Data this.conformanceRuleData = dataToSave; // 給存檔的 Data
await this.conformanceStore.addConformanceCheckId(data); await this.conformanceStore.addConformanceCheckId(dataToSave);
await this.conformanceStore.getConformanceReport(); await this.conformanceStore.getConformanceReport();
this.isShowBarOpen = false; this.isShowBarOpen = false;
this.isLoading = false; this.isLoading = false;

View File

@@ -1,49 +1,99 @@
<template> <template>
<section class="animate-fadein w-full h-full" > <section class="animate-fadein w-full h-full" >
<!-- Have activity --> <!-- Have activity -->
<ActList v-if="selectedRuleType === 'Have activity'" :data="conformanceTask" :select="isSubmitTask"></ActList> <ActList v-if="selectedRuleType === 'Have activity'" :data="conformanceTask" :select="isSubmitTask"></ActList>
<!-- Activity sequence --> <!-- Activity sequence -->
<div v-if="selectedRuleType === 'Activity sequence' && selectedActivitySequence === 'Start & End'" class="flex justify-between items-center w-full h-full"> <div v-if="selectedRuleType === 'Activity sequence' && selectedActivitySequence === 'Start & End'"
<ActRadio :title="'Start activity'" :select="isSubmitStartAndEnd?.[0].task" :data="cfmSeqStartData" :category="'cfmSeqStart'" :task="taskStart" :isSubmit="isSubmit" @selected-task="selectStart" class="w-1/2" /> class="flex justify-between items-center w-full h-full">
<ActRadio :title="'End activity'" :select="isSubmitStartAndEnd?.[1].task" :data="cfmSeqEndData" :category="'cfmSeqEnd'" :task="taskEnd" :isSubmit="isSubmit" @selected-task="selectEnd" class="w-1/2" /> <ActRadio :title="'Start activity'" :select="isSubmitStartAndEnd?.[0].task" :data="cfmSeqStartData"
:category="'cfmSeqStart'" :task="taskStart" :isSubmit="isSubmit" @selected-task="selectStart" class="w-1/2" />
<ActRadio :title="'End activity'" :select="isSubmitStartAndEnd?.[1].task" :data="cfmSeqEndData"
:category="'cfmSeqEnd'" :task="taskEnd" :isSubmit="isSubmit" @selected-task="selectEnd" class="w-1/2" />
</div> </div>
<!-- actSeqDrag --> <!-- actSeqDrag -->
<ActSeqDrag v-if="selectedRuleType === 'Activity sequence' && selectedActivitySequence === 'Sequence' && selectedMode === 'Directly follows'" :data="conformanceTask" :listSeq="isSubmitCfmSeqDirectly" :isSubmit="isSubmit" :category="'cfmSeqDirectly'"></ActSeqDrag> <ActSeqDrag v-if="selectedRuleType === 'Activity sequence' && selectedActivitySequence === 'Sequence'
<ActSeqDrag v-if="selectedRuleType === 'Activity sequence' && selectedActivitySequence === 'Sequence' && selectedMode === 'Eventually follows'" :data="conformanceTask" :listSeq="isSubmitCfmSeqEventually" :isSubmit="isSubmit" :category="'cfmSeqEventually'"></ActSeqDrag> && selectedMode === 'Directly follows'" :data="conformanceTask" :listSeq="isSubmitCfmSeqDirectly"
:isSubmit="isSubmit" :category="'cfmSeqDirectly'"></ActSeqDrag>
<ActSeqDrag v-if="selectedRuleType === 'Activity sequence' && selectedActivitySequence === 'Sequence'
&& selectedMode === 'Eventually follows'" :data="conformanceTask" :listSeq="isSubmitCfmSeqEventually"
:isSubmit="isSubmit" :category="'cfmSeqEventually'"></ActSeqDrag>
<!-- Activity duration --> <!-- Activity duration -->
<ActRadio v-if="selectedRuleType === 'Activity duration'" :title="'Activities include'" :select="isSubmitDurationData?.[0]" :data="conformanceTask" :category="'cfmDur'" :isSubmit="isSubmit"/> <ActRadio v-if="selectedRuleType === 'Activity duration'" :title="'Activities include'"
<!-- Processing time --> :select="isSubmitDurationData?.[0]" :data="conformanceTask" :category="'cfmDur'" :isSubmit="isSubmit"/>
<ActRadio v-if="selectedRuleType === 'Processing time' && selectedProcessScope === 'End to end' && selectedActSeqMore === 'Start'" :title="'Start'" :select="isSubmitCfmPtEteStart?.[0].task" :data="cfmPtEteStartData" :category="'cfmPtEteStart'" :isSubmit="isSubmit" />
<ActRadio v-if="selectedRuleType === 'Processing time' && selectedProcessScope === 'End to end' && selectedActSeqMore === 'End'" :title="'End'" :select="isSubmitCfmPtEteEnd?.[0].task" :data="cfmPtEteEndData" :category="'cfmPtEteEnd'" :isSubmit="isSubmit" /> <!-- Processing time -->
<div v-if="selectedRuleType === 'Processing time' && selectedProcessScope === 'End to end' && selectedActSeqMore === 'Start & End'" class="flex justify-between items-center w-full h-full"> <ActRadio v-if="selectedRuleType === 'Processing time' && selectedProcessScope === 'End to end'
<ActRadio :title="'Start'" :select="isSubmitCfmPtEteSE?.[0].task" :data="cfmPtEteSEStartData" :category="'cfmPtEteSEStart'" :task="taskStart" :isSubmit="isSubmit" @selected-task="selectStart" class="w-1/2" /> && selectedActSeqMore === 'Start'" :title="'Start'" :select="isSubmitCfmPtEteStart?.[0].task"
<ActRadio :title="'End'" :select="isSubmitCfmPtEteSE?.[1].task" :data="cfmPtEteSEEndData" :category="'cfmPtEteSEEnd'" :task="taskEnd" :isSubmit="isSubmit" @selected-task="selectEnd" class="w-1/2" /> :data="cfmPtEteStartData" :category="'cfmPtEteStart'" :isSubmit="isSubmit" />
<ActRadio v-if="selectedRuleType === 'Processing time' && selectedProcessScope === 'End to end'
&& selectedActSeqMore === 'End'" :title="'End'" :select="isSubmitCfmPtEteEnd?.[0].task" :data="cfmPtEteEndData"
:category="'cfmPtEteEnd'" :isSubmit="isSubmit" />
<div v-if="selectedRuleType === 'Processing time' && selectedProcessScope === 'End to end'
&& selectedActSeqMore === 'Start & End'" class="flex justify-between items-center w-full h-full">
<ActRadio :title="'Start'" :select="isSubmitCfmPtEteSE?.[0].task" :data="cfmPtEteSEStartData"
:category="'cfmPtEteSEStart'" :task="taskStart" :isSubmit="isSubmit" @selected-task="selectStart" class="w-1/2" />
<ActRadio :title="'End'" :select="isSubmitCfmPtEteSE?.[1].task" :data="cfmPtEteSEEndData"
:category="'cfmPtEteSEEnd'" :task="taskEnd" :isSubmit="isSubmit" @selected-task="selectEnd" class="w-1/2" />
</div> </div>
<ActRadio v-if="selectedRuleType === 'Processing time' && selectedProcessScope === 'Partial' && selectedActSeqFromTo === 'From'" :title="'From'" :select="isSubmitCfmPtPStart?.[0].task" :data="cfmPtPStartData" :category="'cfmPtPStart'" :isSubmit="isSubmit" /> <ActRadio v-if="selectedRuleType === 'Processing time' && selectedProcessScope === 'Partial'
<ActRadio v-if="selectedRuleType === 'Processing time' && selectedProcessScope === 'Partial' && selectedActSeqFromTo === 'To'" :title="'To'" :select="isSubmitCfmPtPEnd?.[0].task" :data="cfmPtPEndData" :category="'cfmPtPEnd'" :isSubmit="isSubmit" /> && selectedActSeqFromTo === 'From'" :title="'From'" :select="isSubmitCfmPtPStart?.[0].task" :data="cfmPtPStartData"
<div v-if="selectedRuleType === 'Processing time' && selectedProcessScope === 'Partial' && selectedActSeqFromTo === 'From & To'" class="flex justify-between items-center w-full h-full"> :category="'cfmPtPStart'" :isSubmit="isSubmit" />
<ActRadio :title="'From'" :select="isSubmitCfmPtPSE?.[0].task" :data="cfmPtPSEStartData" class="w-1/2" :category="'cfmPtPSEStart'" :task="taskStart" :isSubmit="isSubmit" @selected-task="selectStart" /> <ActRadio v-if="selectedRuleType === 'Processing time' && selectedProcessScope === 'Partial'
<ActRadio :title="'To'" :select="isSubmitCfmPtPSE?.[1].task" :data="cfmPtPSEEndData" class="w-1/2" :category="'cfmPtPSEEnd'" :task="taskEnd" :isSubmit="isSubmit" @selected-task="selectEnd" /> && selectedActSeqFromTo === 'To'" :title="'To'" :select="isSubmitCfmPtPEnd?.[0].task" :data="cfmPtPEndData"
:category="'cfmPtPEnd'" :isSubmit="isSubmit" />
<div v-if="selectedRuleType === 'Processing time' && selectedProcessScope === 'Partial'
&& selectedActSeqFromTo === 'From & To'" class="flex justify-between items-center w-full h-full">
<ActRadio :title="'From'" :select="isSubmitCfmPtPSE?.[0].task" :data="cfmPtPSEStartData"
class="w-1/2" :category="'cfmPtPSEStart'" :task="taskStart" :isSubmit="isSubmit" @selected-task="selectStart" />
<ActRadio :title="'To'" :select="isSubmitCfmPtPSE?.[1].task" :data="cfmPtPSEEndData" class="w-1/2"
:category="'cfmPtPSEEnd'" :task="taskEnd" :isSubmit="isSubmit" @selected-task="selectEnd" />
</div> </div>
<!-- Waiting time --> <!-- Waiting time -->
<ActRadio v-if="selectedRuleType === 'Waiting time' && selectedProcessScope === 'End to end' && selectedActSeqMore === 'Start'" :title="'Start'" :select="isSubmitCfmWtEteStart?.[0].task" :data="cfmWtEteStartData" :category="'cfmWtEteStart'" :isSubmit="isSubmit" /> <ActRadio v-if="selectedRuleType === 'Waiting time' && selectedProcessScope === 'End to end'
<ActRadio v-if="selectedRuleType === 'Waiting time' && selectedProcessScope === 'End to end' && selectedActSeqMore === 'End'" :title="'End'" :select="isSubmitCfmWtEteEnd?.[0].task" :data="cfmWtEteEndData" :category="'cfmWtEteEnd'" :isSubmit="isSubmit" /> && selectedActSeqMore === 'Start'" :title="'Start'" :select="isSubmitCfmWtEteStart?.[0].task"
<div v-if="selectedRuleType === 'Waiting time' && selectedProcessScope === 'End to end' && selectedActSeqMore === 'Start & End'" class="flex justify-between items-center w-full h-full"> :data="cfmWtEteStartData" :category="'cfmWtEteStart'" :isSubmit="isSubmit" />
<ActRadio :title="'Start'" :select="isSubmitCfmWtEteSE?.[0].task" :data="cfmWtEteSEStartData" class="w-1/2" :category="'cfmWtEteSEStart'" :task="taskStart" :isSubmit="isSubmit" @selected-task="selectStart" /> <ActRadio v-if="selectedRuleType === 'Waiting time' && selectedProcessScope === 'End to end'
<ActRadio :title="'End'" :select="isSubmitCfmWtEteSE?.[1].task" :data="cfmWtEteSEEndData" class="w-1/2" :category="'cfmWtEteSEEnd'" :task="taskEnd" :isSubmit="isSubmit" @selected-task="selectEnd" /> && selectedActSeqMore === 'End'" :title="'End'" :select="isSubmitCfmWtEteEnd?.[0].task"
:data="cfmWtEteEndData" :category="'cfmWtEteEnd'" :isSubmit="isSubmit" />
<div v-if="selectedRuleType === 'Waiting time' && selectedProcessScope === 'End to end'
&& selectedActSeqMore === 'Start & End'" class="flex justify-between items-center w-full h-full">
<ActRadio :title="'Start'" :select="isSubmitCfmWtEteSE?.[0].task" :data="cfmWtEteSEStartData" class="w-1/2"
:category="'cfmWtEteSEStart'" :task="taskStart" :isSubmit="isSubmit" @selected-task="selectStart" />
<ActRadio :title="'End'" :select="isSubmitCfmWtEteSE?.[1].task" :data="cfmWtEteSEEndData" class="w-1/2"
:category="'cfmWtEteSEEnd'" :task="taskEnd" :isSubmit="isSubmit" @selected-task="selectEnd" />
</div> </div>
<ActRadio v-if="selectedRuleType === 'Waiting time' && selectedProcessScope === 'Partial' && selectedActSeqFromTo === 'From'" :title="'From'" :select="isSubmitCfmWtPStart?.[0].task" :data="cfmWtPStartData" :category="'cfmWtPStart'" :isSubmit="isSubmit" /> <ActRadio v-if="selectedRuleType === 'Waiting time' && selectedProcessScope === 'Partial'
<ActRadio v-if="selectedRuleType === 'Waiting time' && selectedProcessScope === 'Partial' && selectedActSeqFromTo === 'To'" :title="'To'" :select="isSubmitCfmWtPEnd?.[0].task" :data="cfmWtPEndData" :category="'cfmWtPEnd'" :isSubmit="isSubmit" /> && selectedActSeqFromTo === 'From'" :title="'From'" :select="isSubmitCfmWtPStart?.[0].task" :data="cfmWtPStartData"
<div v-if="selectedRuleType === 'Waiting time' && selectedProcessScope === 'Partial' && selectedActSeqFromTo === 'From & To'" class="flex justify-between items-center w-full h-full"> :category="'cfmWtPStart'" :isSubmit="isSubmit" />
<ActRadio :title="'From'" :select="isSubmitCfmWtPSE?.[0].task" :data="cfmWtPSEStartData" class="w-1/2" :category="'cfmWtPSEStart'" :task="taskStart" :isSubmit="isSubmit" @selected-task="selectStart" /> <ActRadio v-if="selectedRuleType === 'Waiting time' && selectedProcessScope === 'Partial'
<ActRadio :title="'To'" :select="isSubmitCfmWtPSE?.[1].task" :data="cfmWtPSEEndData" class="w-1/2" :category="'cfmWtPSEEnd'" :task="taskEnd" :isSubmit="isSubmit" @selected-task="selectEnd" /> && selectedActSeqFromTo === 'To'" :title="'To'" :select="isSubmitCfmWtPEnd?.[0].task"
:data="cfmWtPEndData" :category="'cfmWtPEnd'" :isSubmit="isSubmit" />
<div v-if="selectedRuleType === 'Waiting time' && selectedProcessScope === 'Partial'
&& selectedActSeqFromTo === 'From & To'" class="flex justify-between items-center w-full h-full">
<ActRadio :title="'From'" :select="isSubmitCfmWtPSE?.[0].task" :data="cfmWtPSEStartData"
class="w-1/2" :category="'cfmWtPSEStart'" :task="taskStart" :isSubmit="isSubmit" @selected-task="selectStart" />
<ActRadio :title="'To'" :select="isSubmitCfmWtPSE?.[1].task" :data="cfmWtPSEEndData"
class="w-1/2" :category="'cfmWtPSEEnd'" :task="taskEnd" :isSubmit="isSubmit" @selected-task="selectEnd" />
</div> </div>
<!-- Cycle time --> <!-- Cycle time -->
<ActRadio v-if="selectedRuleType === 'Cycle time' && selectedProcessScope === 'End to end' && selectedActSeqMore === 'Start'" :title="'Start'" :select="isSubmitCfmCtEteStart?.[0].task" :data="cfmCtEteStartData" :category="'cfmCtEteStart'" :isSubmit="isSubmit" /> <ActRadio v-if="selectedRuleType === 'Cycle time' && selectedProcessScope === 'End to end'
<ActRadio v-if="selectedRuleType === 'Cycle time' && selectedProcessScope === 'End to end' && selectedActSeqMore === 'End'" :title="'End'" :select="isSubmitCfmCtEteEnd?.[0].task" :data="cfmCtEteEndData" :category="'cfmCtEteEnd'" :isSubmit="isSubmit" /> && selectedActSeqMore === 'Start'" :title="'Start'" :select="isSubmitCfmCtEteStart?.[0].task"
<div v-if="selectedRuleType === 'Cycle time' && selectedProcessScope === 'End to end' && selectedActSeqMore === 'Start & End'" class="flex justify-between items-center w-full h-full"> :data="cfmCtEteStartData" :category="'cfmCtEteStart'" :isSubmit="isSubmit" />
<ActRadio :title="'Start'" :select="isSubmitCfmCtEteSE?.[0].task" :data="cfmCtEteSEStartData" class="w-1/2" :category="'cfmCtEteSEStart'" :task="taskStart" :isSubmit="isSubmit" @selected-task="selectStart" /> <ActRadio v-if="selectedRuleType === 'Cycle time' && selectedProcessScope === 'End to end'
<ActRadio :title="'End'" :select="isSubmitCfmCtEteSE?.[1].task" :data="cfmCtEteSEEndData" class="w-1/2" :category="'cfmCtEteSEEnd'" :task="taskEnd" :isSubmit="isSubmit" @selected-task="selectEnd" /> && selectedActSeqMore === 'End'" :title="'End'" :select="isSubmitCfmCtEteEnd?.[0].task" :data="cfmCtEteEndData"
:category="'cfmCtEteEnd'" :isSubmit="isSubmit" />
<div v-if="selectedRuleType === 'Cycle time' && selectedProcessScope === 'End to end' && selectedActSeqMore === 'Start & End'"
class="flex justify-between items-center w-full h-full">
<ActRadio :title="'Start'" :select="isSubmitCfmCtEteSE?.[0].task" :data="cfmCtEteSEStartData" class="w-1/2"
:category="'cfmCtEteSEStart'" :task="taskStart" :isSubmit="isSubmit" @selected-task="selectStart" />
<ActRadio :title="'End'" :select="isSubmitCfmCtEteSE?.[1].task" :data="cfmCtEteSEEndData" class="w-1/2"
:category="'cfmCtEteSEEnd'" :task="taskEnd" :isSubmit="isSubmit" @selected-task="selectEnd" />
</div> </div>
</section> </section>
</template> </template>
@@ -60,11 +110,27 @@ export default {
const loadingStore = LoadingStore(); const loadingStore = LoadingStore();
const conformanceStore = ConformanceStore(); const conformanceStore = ConformanceStore();
const { isLoading } = storeToRefs(loadingStore); const { isLoading } = storeToRefs(loadingStore);
const { selectedRuleType, selectedActivitySequence, selectedMode, selectedProcessScope, selectedActSeqMore, selectedActSeqFromTo, conformanceTask, cfmSeqStart, cfmSeqEnd, cfmPtEteStart, cfmPtEteEnd, cfmPtEteSE, cfmPtPStart, cfmPtPEnd, cfmPtPSE, cfmWtEteStart, cfmWtEteEnd, cfmWtEteSE, cfmWtPStart, cfmWtPEnd, cfmWtPSE, cfmCtEteStart, cfmCtEteEnd, cfmCtEteSE, isStartSelected, isEndSelected } = storeToRefs(conformanceStore); const { selectedRuleType, selectedActivitySequence, selectedMode, selectedProcessScope, selectedActSeqMore,
selectedActSeqFromTo, conformanceTask, cfmSeqStart, cfmSeqEnd, cfmPtEteStart, cfmPtEteEnd, cfmPtEteSE,
cfmPtPStart, cfmPtPEnd, cfmPtPSE, cfmWtEteStart, cfmWtEteEnd, cfmWtEteSE, cfmWtPStart, cfmWtPEnd,
cfmWtPSE, cfmCtEteStart, cfmCtEteEnd, cfmCtEteSE, isStartSelected, isEndSelected
} = storeToRefs(conformanceStore);
return { isLoading, selectedRuleType, selectedActivitySequence, selectedMode, selectedProcessScope, selectedActSeqMore, selectedActSeqFromTo, conformanceTask, cfmSeqStart, cfmSeqEnd, cfmPtEteStart, cfmPtEteEnd, cfmPtEteSE, cfmPtPStart, cfmPtPEnd, cfmPtPSE, cfmWtEteStart, cfmWtEteEnd, cfmWtEteSE, cfmWtPStart, cfmWtPEnd, cfmWtPSE, cfmCtEteStart, cfmCtEteEnd, cfmCtEteSE, isStartSelected, isEndSelected} return { isLoading, selectedRuleType, selectedActivitySequence, selectedMode, selectedProcessScope,
selectedActSeqMore, selectedActSeqFromTo, conformanceTask, cfmSeqStart, cfmSeqEnd, cfmPtEteStart,
cfmPtEteEnd, cfmPtEteSE, cfmPtPStart, cfmPtPEnd, cfmPtPSE, cfmWtEteStart, cfmWtEteEnd, cfmWtEteSE,
cfmWtPStart, cfmWtPEnd, cfmWtPSE, cfmCtEteStart, cfmCtEteEnd, cfmCtEteSE, isStartSelected,
isEndSelected
};
}, },
props: ['isSubmit', 'isSubmitTask', 'isSubmitStartAndEnd', 'isSubmitCfmSeqDirectly', 'isSubmitCfmSeqEventually', 'isSubmitDurationData', 'isSubmitCfmPtEteStart', 'isSubmitCfmPtEteEnd', 'isSubmitCfmPtEteSE', 'isSubmitCfmPtPStart', 'isSubmitCfmPtPEnd', 'isSubmitCfmPtPSE', 'isSubmitCfmWtEteStart', 'isSubmitCfmWtEteEnd', 'isSubmitCfmWtEteSE', 'isSubmitCfmWtPStart', 'isSubmitCfmWtPEnd', 'isSubmitCfmWtPSE', 'isSubmitCfmCtEteStart', 'isSubmitCfmCtEteEnd', 'isSubmitCfmCtEteSE', 'isSubmitShowDataSeq', 'isSubmitShowDataPtEte', 'isSubmitShowDataPtP', 'isSubmitShowDataWtEte', 'isSubmitShowDataWtP', 'isSubmitShowDataCt'], props: ['isSubmit', 'isSubmitTask', 'isSubmitStartAndEnd', 'isSubmitCfmSeqDirectly', 'isSubmitCfmSeqEventually',
'isSubmitDurationData', 'isSubmitCfmPtEteStart', 'isSubmitCfmPtEteEnd', 'isSubmitCfmPtEteSE',
'isSubmitCfmPtPStart', 'isSubmitCfmPtPEnd', 'isSubmitCfmPtPSE', 'isSubmitCfmWtEteStart',
'isSubmitCfmWtEteEnd', 'isSubmitCfmWtEteSE', 'isSubmitCfmWtPStart', 'isSubmitCfmWtPEnd',
'isSubmitCfmWtPSE', 'isSubmitCfmCtEteStart', 'isSubmitCfmCtEteEnd', 'isSubmitCfmCtEteSE',
'isSubmitShowDataSeq', 'isSubmitShowDataPtEte', 'isSubmitShowDataPtP', 'isSubmitShowDataWtEte',
'isSubmitShowDataWtP', 'isSubmitShowDataCt'
],
components: { components: {
ActList, ActList,
ActRadio, ActRadio,
@@ -202,7 +268,8 @@ export default {
methods: { methods: {
/** /**
* 設定 start and end 的 Radio Data * 設定 start and end 的 Radio Data
* @param {object} data cfmSeqStart | cfmSeqEnd | cfmPtEteSE | cfmPtPSE | cfmWtEteSE | cfmWtPSE | cfmCtEteSE傳入以上任一後端接到的 Activities 列表 Data。 * @param {object} data cfmSeqStart | cfmSeqEnd | cfmPtEteSE | cfmPtPSE | cfmWtEteSE | cfmWtPSE | cfmCtEteSE
* 傳入以上任一後端接到的 Activities 列表 Data。
* @param {string} category 'start' | 'end',傳入 'start' 或 'end'。 * @param {string} category 'start' | 'end',傳入 'start' 或 'end'。
* @returns {array} * @returns {array}
*/ */
@@ -213,7 +280,8 @@ export default {
}, },
/** /**
* 重新設定連動的 start and end 的 Radio Data * 重新設定連動的 start and end 的 Radio Data
* @param {object} data cfmPtEteSE | cfmPtPSE | cfmWtEteSE | cfmWtPSE | cfmCtEteSE傳入以上任一後端接到的 Activities 列表 Data。 * @param {object} data cfmPtEteSE | cfmPtPSE | cfmWtEteSE | cfmWtPSE | cfmCtEteSE
* 傳入以上任一後端接到的 Activities 列表 Data。
* @param {string} category 'start' | 'end',傳入 'start' 或 'end'。 * @param {string} category 'start' | 'end',傳入 'start' 或 'end'。
* @param {string} task 已選擇的 Activity task * @param {string} task 已選擇的 Activity task
* @returns {array} * @returns {array}