Issue #53: done.

This commit is contained in:
chiayin
2023-09-14 21:01:09 +08:00
parent 47ca3d8f21
commit c00123ddcb
5 changed files with 263 additions and 52 deletions

View File

@@ -93,6 +93,12 @@
:isSubmitCfmCtEteStart="isSubmitCfmCtEteStart"
:isSubmitCfmCtEteEnd="isSubmitCfmCtEteEnd"
:isSubmitCfmCtEteSE="isSubmitCfmCtEteSE"
:isSubmitShowDataSeq="isSubmitShowDataSeq"
:isSubmitShowDataPtEte="isSubmitShowDataPtEte"
:isSubmitShowDataPtP="isSubmitShowDataPtP"
:isSubmitShowDataWtEte="isSubmitShowDataWtEte"
:isSubmitShowDataWtP="isSubmitShowDataWtP"
:isSubmitShowDataCt="isSubmitShowDataCt"
></ConformanceShowBar>
</div>
</section>
@@ -112,9 +118,9 @@ export default {
const loadingStore = LoadingStore();
const conformanceStore = ConformanceStore();
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 } = 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 } = 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 }
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 }
},
data() {
return {
@@ -191,6 +197,48 @@ export default {
isSubmitTimeCfmCtEteStart: null,
isSubmitTimeCfmCtEteEnd: null,
isSubmitTimeCfmCtEteSE: null,
isSubmitShowDataSeq: {
task: null,
taskStart: null,
taskEnd: null,
isStartSelected: null,
isEndSelected: null
}, // To Start & End 連動資料
isSubmitShowDataPtEte: {
task: null,
taskStart: null,
taskEnd: null,
isStartSelected: null,
isEndSelected: null
},
isSubmitShowDataPtP: {
task: null,
taskStart: null,
taskEnd: null,
isStartSelected: null,
isEndSelected: null
},
isSubmitShowDataWtEte: {
task: null,
taskStart: null,
taskEnd: null,
isStartSelected: null,
isEndSelected: null
},
isSubmitShowDataWtP: {
task: null,
taskStart: null,
taskEnd: null,
isStartSelected: null,
isEndSelected: null
},
isSubmitShowDataCt: {
task: null,
taskStart: null,
taskEnd: null,
isStartSelected: null,
isEndSelected: null
},
}
},
components: {
@@ -321,6 +369,32 @@ export default {
// reset 成功訊息
this.$toast.success('Reset Success.');
},
/**
* 設定 Start & End Data 連動資料
* @param {string} start task
* @param {string} end task
* @returns {object}
*/
setSubmitShowData(start, end) {
if(this.isStartSelected) {
return {
task: start,
taskStart: start,
taskEnd: end,
isStartSelected:true,
isEndSelected: false
};
}else {
return {
task: end,
taskStart: start,
taskEnd: end,
isStartSelected:false,
isEndSelected: true
};
}
},
/**
* Apply button 發送選項,取得 Checker Id.
*/
@@ -361,6 +435,7 @@ export default {
{category: 'Start', task: this.selectCfmSeqStart},
{category: 'End', task: this.selectCfmSeqEnd},
];
this.isSubmitShowDataSeq = this.setSubmitShowData(this.selectCfmSeqStart, this.selectCfmSeqEnd);
};
break;
case 'Sequence': // Activity Sequence 選 Sequence 的行為
@@ -471,10 +546,11 @@ export default {
};
this.isSubmitReset();
this.isSubmitCfmPtEteSE = [
{category: 'Start', task: this.selectCfmPtEteStart},
{category: 'Start', task: this.selectCfmPtEteSEStart},
{category: 'End', task: this.selectCfmPtEteSEEnd},
];
this.isSubmitTimeCfmPtEteSE = this.selectDurationTime;
this.isSubmitShowDataPtEte = this.setSubmitShowData(this.selectCfmPtEteSEStart, this.selectCfmPtEteSEEnd);
}
break;
default:
@@ -531,6 +607,7 @@ export default {
{category: 'To', task: this.selectCfmPtPSEEnd},
];
this.isSubmitTimeCfmPtPSEd = this.selectDurationTime;
this.isSubmitShowDataPtP = this.setSubmitShowData(this.selectCfmPtPSEStart, this.selectCfmPtPSEEnd);
}
break;
default:
@@ -602,6 +679,7 @@ export default {
{category: 'End', task: this.selectCfmWtEteSEEnd},
];
this.isSubmitTimeCfmWtEteSE = this.selectDurationTime;
this.isSubmitShowDataWtEte = this.setSubmitShowData(this.selectCfmWtEteSEStart, this.selectCfmWtEteSEEnd);
}
break;
default:
@@ -658,6 +736,7 @@ export default {
{category: 'To', task: this.selectCfmWtPSEEnd},
];
this.isSubmitTimeCfmWtPSE = this.selectDurationTime;
this.isSubmitShowDataWtP = this.setSubmitShowData(this.selectCfmWtPSEStart, this.selectCfmWtPSEEnd);
}
break;
default:
@@ -725,6 +804,7 @@ export default {
{category: 'End', task: this.selectCfmCtEteSEEnd},
];
this.isSubmitTimeCfmCtEteSE = this.selectDurationTime;
this.isSubmitShowDataCt = this.setSubmitShowData(this.selectCfmCtEteSEStart, this.selectCfmCtEteSEEnd);
}
break;
default:
@@ -750,6 +830,7 @@ export default {
},
created() {
this.isShowBar = true;
// 選取 list 的結果
this.$emitter.on('actListData', (data) => {
this.selectConformanceTask = data;
});
@@ -757,9 +838,11 @@ export default {
switch (data.category) {
// Activity sequence
case 'cfmSeqStart':
if(this.isStartSelected === true && data.task !== this.selectCfmSeqStart) this.selectCfmSeqEnd = null;
this.selectCfmSeqStart = data.task;
break;
case 'cfmSeqEnd':
if(this.isEndSelected === true && data.task !== this.selectCfmSeqEnd) this.selectCfmSeqStart = null;
this.selectCfmSeqEnd = data.task;
break;
// Processing time
@@ -770,9 +853,11 @@ export default {
this.selectCfmPtEteEnd = data.task;
break;
case 'cfmPtEteSEStart':
if(this.isStartSelected === true && data.task !== this.selectCfmPtEteSEStart) this.selectCfmPtEteSEEnd = null;
this.selectCfmPtEteSEStart = data.task;
break;
case 'cfmPtEteSEEnd':
if(this.isEndSelected === true && data.task !== this.selectCfmPtEteSEEnd) this.selectCfmPtEteSEStart = null;
this.selectCfmPtEteSEEnd = data.task;
break;
case 'cfmPtPStart':
@@ -782,9 +867,11 @@ export default {
this.selectCfmPtPEnd = data.task;
break;
case 'cfmPtPSEStart':
if(this.isStartSelected === true && data.task !== this.selectCfmPtPSEStart) this.selectCfmPtPSEEnd = null;
this.selectCfmPtPSEStart = data.task;
break;
case 'cfmPtPSEEnd':
if(this.isEndSelected === true && data.task !== this.selectCfmPtPSEEnd) this.selectCfmPtPSEStart = null;
this.selectCfmPtPSEEnd = data.task;
break;
// Waiting time
@@ -795,9 +882,11 @@ export default {
this.selectCfmWtEteEnd = data.task;
break;
case 'cfmWtEteSEStart':
if(this.isStartSelected === true && data.task !== this.selectCfmWtEteSEStart) this.selectCfmWtEteSEEnd = null;
this.selectCfmWtEteSEStart = data.task;
break;
case 'cfmWtEteSEEnd':
if(this.isEndSelected === true && data.task !== this.selectCfmWtEteSEEnd) this.selectCfmWtEteSEStart = null;
this.selectCfmWtEteSEEnd = data.task;
break;
case 'cfmWtPStart':
@@ -807,9 +896,11 @@ export default {
this.selectCfmWtPEnd = data.task;
break;
case 'cfmWtPSEStart':
if(this.isStartSelected === true && data.task !== this.selectCfmWtPSEStart) this.selectCfmWtPSEEnd = null;
this.selectCfmWtPSEStart = data.task;
break;
case 'cfmWtPSEEnd':
if(this.isEndSelected === true && data.task !== this.selectCfmWtPSEEnd) this.selectCfmWtPSEStart = null;
this.selectCfmWtPSEEnd = data.task;
break;
// Cycle time
@@ -820,9 +911,11 @@ export default {
this.selectCfmCtEteEnd = data.task;
break;
case 'cfmCtEteSEStart':
if(this.isStartSelected === true && data.task !== this.selectCfmCtEteSEStart) this.selectCfmCtEteSEEnd = null;
this.selectCfmCtEteSEStart = data.task;
break;
case 'cfmCtEteSEEnd':
if(this.isEndSelected === true && data.task !== this.selectCfmCtEteSEEnd) this.selectCfmCtEteSEStart = null;
this.selectCfmCtEteSEEnd = data.task;
break;
default:

View File

@@ -14,14 +14,21 @@
</template>
<script>
export default {
props: ['title', 'select', 'data', 'category'],
props: ['title', 'select', 'data', 'category', 'task', 'isSubmit'],
data() {
return {
selectedRadio: this.select,
localSelect: null,
selectedRadio: null,
}
},
watch: {
task: function(newValue) {
this.selectedRadio = newValue;
}
},
methods: {
actRadioData() {
this.localSelect = null;
this.$emitter.emit('actRadioData', {
category: this.category,
task: this.selectedRadio,
@@ -30,6 +37,8 @@ export default {
}
},
created() {
this.localSelect = this.isSubmit ? this.select : null;
this.selectedRadio = this.localSelect;
this.$emitter.on('reset', (data) => {
this.selectedRadio = data;
});

View File

@@ -38,9 +38,9 @@ import ResultDot from '@/components/Discover/Conformance/ConformanceSidebar/Resu
export default {
setup() {
const conformanceStore = ConformanceStore();
const { selectedRuleType, selectedActivitySequence, selectedMode, selectedProcessScope, selectedActSeqMore, selectedActSeqFromTo } = storeToRefs(conformanceStore);
const { selectedRuleType, selectedActivitySequence, selectedMode, selectedProcessScope, selectedActSeqMore, selectedActSeqFromTo, isStartSelected, isEndSelected } = storeToRefs(conformanceStore);
return { selectedRuleType, selectedActivitySequence, selectedMode, selectedProcessScope, selectedActSeqMore, selectedActSeqFromTo }
return { selectedRuleType, selectedActivitySequence, selectedMode, selectedProcessScope, selectedActSeqMore, selectedActSeqFromTo, isStartSelected, isEndSelected }
},
props: ['isSubmit', 'isSubmitTask', 'isSubmitStartAndEnd', 'isSubmitCfmSeqDirectly', 'isSubmitCfmSeqEventually', 'isSubmitDurationData', 'isSubmitCfmPtEteStart', 'isSubmitCfmPtEteEnd', 'isSubmitCfmPtEteSE', 'isSubmitCfmPtPStart', 'isSubmitCfmPtPEnd', 'isSubmitCfmPtPSE', 'isSubmitCfmWtEteStart', 'isSubmitCfmWtEteEnd', 'isSubmitCfmWtEteSE', 'isSubmitCfmWtPStart', 'isSubmitCfmWtPEnd', 'isSubmitCfmWtPSE', 'isSubmitCfmCtEteStart', 'isSubmitCfmCtEteEnd', 'isSubmitCfmCtEteSE'],
components: {
@@ -208,10 +208,12 @@ export default {
switch (data.category) {
// Activity sequence
case 'cfmSeqStart':
if(this.isStartSelected === true && data.task !== this.selectCfmSeqStart) this.selectCfmSeqEnd = null;
data.category = 'Start';
this.selectCfmSeqStart = data;
break;
case 'cfmSeqEnd':
if(this.isEndSelected === true && data.task !== this.selectCfmSeqEnd)this.selectCfmSeqStart = null;
data.category = 'End';
this.selectCfmSeqEnd = data;
break;
@@ -225,10 +227,12 @@ export default {
this.selectCfmPtEteEnd = [data];
break;
case 'cfmPtEteSEStart':
if(this.isStartSelected === true && data.task !== this.selectCfmPtEteSEStart) this.selectCfmPtEteSEEnd = null;
data.category = 'Start';
this.selectCfmPtEteSEStart = data;
break;
case 'cfmPtEteSEEnd':
if(this.isEndSelected === true && data.task !== this.selectCfmPtEteSEEnd)this.selectCfmPtEteSEStart = null;
data.category = 'End';
this.selectCfmPtEteSEEnd = data;
break;
@@ -241,10 +245,12 @@ export default {
this.selectCfmPtPEnd = [data];
break;
case 'cfmPtPSEStart':
if(this.isStartSelected === true && data.task !== this.selectCfmPtPSEStart) this.selectCfmPtPSEEnd = null;
data.category = 'From';
this.selectCfmPtPSEStart = data;
break;
case 'cfmPtPSEEnd':
if(this.isEndSelected === true && data.task !== this.selectCfmPtPSEEnd)this.selectCfmPtPSEStart = null;
data.category = 'To';
this.selectCfmPtPSEEnd = data;
break;
@@ -258,10 +264,12 @@ export default {
this.selectCfmWtEteEnd = [data];
break;
case 'cfmWtEteSEStart':
if(this.isStartSelected === true && data.task !== this.selectCfmWtEteSEStart) this.selectCfmWtEteSEEnd = null;
data.category = 'Start';
this.selectCfmWtEteSEStart = data;
break;
case 'cfmWtEteSEEnd':
if(this.isEndSelected === true && data.task !== this.selectCfmWtEteSEEnd)this.selectCfmWtEteSEStart = null;
data.category = 'End';
this.selectCfmWtEteSEEnd = data;
break;
@@ -274,10 +282,12 @@ export default {
this.selectCfmWtPEnd = [data];
break;
case 'cfmWtPSEStart':
if(this.isStartSelected === true && data.task !== this.selectCfmWtPSEStart) this.selectCfmWtPSEEnd = null;
data.category = 'From';
this.selectCfmWtPSEStart = data;
break;
case 'cfmWtPSEEnd':
if(this.isEndSelected === true && data.task !== this.selectCfmWtPSEEnd)this.selectCfmWtPSEStart = null;
data.category = 'To';
this.selectCfmWtPSEEnd = data;
break;
@@ -291,10 +301,12 @@ export default {
this.selectCfmCtEteEnd = [data];
break;
case 'cfmCtEteSEStart':
if(this.isStartSelected === true && data.task !== this.selectCfmCtEteSEStart) this.selectCfmCtEteSEEnd = null;
data.category = 'Start';
this.selectCfmCtEteSEStart = data;
break;
case 'cfmCtEteSEEnd':
if(this.isEndSelected === true && data.task !== this.selectCfmCtEteSEEnd)this.selectCfmCtEteSEStart = null;
data.category = 'End';
this.selectCfmCtEteSEEnd = data;
break;

View File

@@ -4,46 +4,46 @@
<ActList v-if="selectedRuleType === 'Have activity'" :data="conformanceTask" :select="isSubmitTask"></ActList>
<!-- Activity sequence -->
<div v-if="selectedRuleType === 'Activity sequence' && selectedActivitySequence === 'Start & End'" class="flex justify-between items-center w-full h-full">
<ActRadio :title="'Start activity'" :select="isSubmitStartAndEnd?.[0].task" :data="cfmSeqStartData" :category="'cfmSeqStart'" @selected-task="selectStart" class="w-1/2" />
<ActRadio :title="'End activity'" :select="isSubmitStartAndEnd?.[1].task" :data="cfmSeqEndData" :category="'cfmSeqEnd'" @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>
<!-- 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' && selectedMode === 'Eventually follows'" :data="conformanceTask" :listSeq="isSubmitCfmSeqEventually" :isSubmit="isSubmit" :category="'cfmSeqEventually'"></ActSeqDrag>
<!-- Activity duration -->
<ActRadio v-if="selectedRuleType === 'Activity duration'" :title="'Activities include'" :select="isSubmitDurationData?.[0]" :data="conformanceTask" :category="'cfmDur'"/>
<ActRadio v-if="selectedRuleType === 'Activity duration'" :title="'Activities include'" :select="isSubmitDurationData?.[0]" :data="conformanceTask" :category="'cfmDur'" :isSubmit="isSubmit"/>
<!-- Processing time -->
<ActRadio v-if="selectedRuleType === 'Processing time' && selectedProcessScope === 'End to end' && selectedActSeqMore === 'Start'" :title="'Start'" :select="isSubmitCfmPtEteStart?.[0].task" :data="cfmPtEteStartData" :category="'cfmPtEteStart'" />
<ActRadio v-if="selectedRuleType === 'Processing time' && selectedProcessScope === 'End to end' && selectedActSeqMore === 'End'" :title="'End'" :select="isSubmitCfmPtEteEnd?.[0].task" :data="cfmPtEteEndData" :category="'cfmPtEteEnd'" />
<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" />
<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'" @selected-task="selectStart" class="w-1/2" />
<ActRadio :title="'End'" :select="isSubmitCfmPtEteSE?.[1].task" :data="cfmPtEteSEEndData" :category="'cfmPtEteSEEnd'" @selected-task="selectEnd" class="w-1/2" />
<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>
<ActRadio v-if="selectedRuleType === 'Processing time' && selectedProcessScope === 'Partial' && selectedActSeqFromTo === 'From'" :title="'From'" :select="isSubmitCfmPtPStart?.[0].task" :data="cfmPtPStartData" :category="'cfmPtPStart'"/>
<ActRadio v-if="selectedRuleType === 'Processing time' && selectedProcessScope === 'Partial' && selectedActSeqFromTo === 'To'" :title="'To'" :select="isSubmitCfmPtPEnd?.[0].task" :data="cfmPtPEndData" :category="'cfmPtPEnd'"/>
<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' && 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'" @selected-task="selectStart" />
<ActRadio :title="'To'" :select="isSubmitCfmPtPSE?.[1].task" :data="cfmPtPSEEndData" class="w-1/2" :category="'cfmPtPSEEnd'" @selected-task="selectEnd" />
<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>
<!-- Waiting time -->
<ActRadio v-if="selectedRuleType === 'Waiting time' && selectedProcessScope === 'End to end' && selectedActSeqMore === 'Start'" :title="'Start'" :select="isSubmitCfmWtEteStart?.[0].task" :data="cfmWtEteStartData" :category="'cfmWtEteStart'"/>
<ActRadio v-if="selectedRuleType === 'Waiting time' && selectedProcessScope === 'End to end' && selectedActSeqMore === 'End'" :title="'End'" :select="isSubmitCfmWtEteEnd?.[0].task" :data="cfmWtEteEndData" :category="'cfmWtEteEnd'"/>
<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' && 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'" @selected-task="selectStart" />
<ActRadio :title="'End'" :select="isSubmitCfmWtEteSE?.[1].task" :data="cfmWtEteSEEndData" class="w-1/2" :category="'cfmWtEteSEEnd'" @selected-task="selectEnd" />
<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>
<ActRadio v-if="selectedRuleType === 'Waiting time' && selectedProcessScope === 'Partial' && selectedActSeqFromTo === 'From'" :title="'From'" :select="isSubmitCfmWtPStart?.[0].task" :data="cfmWtPStartData" :category="'cfmWtPStart'"/>
<ActRadio v-if="selectedRuleType === 'Waiting time' && selectedProcessScope === 'Partial' && selectedActSeqFromTo === 'To'" :title="'To'" :select="isSubmitCfmWtPEnd?.[0].task" :data="cfmWtPEndData" :category="'cfmWtPEnd'"/>
<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' && 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'" @selected-task="selectStart" />
<ActRadio :title="'To'" :select="isSubmitCfmWtPSE?.[1].task" :data="cfmWtPSEEndData" class="w-1/2" :category="'cfmWtPSEEnd'" @selected-task="selectEnd" />
<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>
<!-- Cycle time -->
<ActRadio v-if="selectedRuleType === 'Cycle time' && selectedProcessScope === 'End to end' && selectedActSeqMore === 'Start'" :title="'Start'" :select="isSubmitCfmCtEteStart?.[0].task" :data="cfmCtEteStartData" :category="'cfmCtEteStart'"/>
<ActRadio v-if="selectedRuleType === 'Cycle time' && selectedProcessScope === 'End to end' && selectedActSeqMore === 'End'" :title="'End'" :select="isSubmitCfmCtEteEnd?.[0].task" :data="cfmCtEteEndData" :category="'cfmCtEteEnd'"/>
<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' && 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'" @selected-task="selectStart" />
<ActRadio :title="'End'" :select="isSubmitCfmCtEteSE?.[1].task" :data="cfmCtEteSEEndData" class="w-1/2" :category="'cfmCtEteSEEnd'" @selected-task="selectEnd" />
<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>
</section>
</template>
@@ -60,11 +60,11 @@ export default {
const loadingStore = LoadingStore();
const conformanceStore = ConformanceStore();
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 } = 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 }
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'],
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: {
ActList,
ActRadio,
@@ -73,16 +73,18 @@ export default {
data() {
return {
task: null,
isStartSelected: null,
isEndSelected: null,
taskStart: null,
taskEnd: null,
}
},
computed: {
// Activity sequence
cfmSeqStartData: function() {
if(this.isSubmit && this.task === null)this.task = this.isSubmitShowDataSeq.task;
return this.isEndSelected ? this.setSeqStartAndEndData(this.cfmSeqEnd, 'sources', this.task) : this.cfmSeqStart.map(i => i.label);
},
cfmSeqEndData: function() {
if(this.isSubmit && this.task === null)this.task = this.isSubmitShowDataSeq.task;
return this.isStartSelected ? this.setSeqStartAndEndData(this.cfmSeqStart, 'sinks', this.task) : this.cfmSeqEnd.map(i => i.label);
},
// Processing time
@@ -93,9 +95,11 @@ export default {
return this.cfmPtEteEnd.map(i => i.task);
},
cfmPtEteSEStartData: function() {
if(this.isSubmit && this.task === null)this.task = this.isSubmitShowDataPtEte.task;
return this.isEndSelected ? this.setStartAndEndData(this.cfmPtEteSE, 'end', this.task) : this.setTaskData(this.cfmPtEteSE, 'start');
},
cfmPtEteSEEndData: function() {
if(this.isSubmit && this.task === null)this.task = this.isSubmitShowDataPtEte.task;
return this.isStartSelected ? this.setStartAndEndData(this.cfmPtEteSE, 'start', this.task) : this.setTaskData(this.cfmPtEteSE, 'end');
},
cfmPtPStartData: function() {
@@ -105,9 +109,11 @@ export default {
return this.cfmPtPEnd.map(i => i.task);
},
cfmPtPSEStartData: function() {
if(this.isSubmit && this.task === null)this.task = this.isSubmitShowDataPtP.task;
return this.isEndSelected ? this.setStartAndEndData(this.cfmPtPSE, 'end', this.task) : this.setTaskData(this.cfmPtPSE, 'start');
},
cfmPtPSEEndData: function() {
if(this.isSubmit && this.task === null)this.task = this.isSubmitShowDataPtP.task;
return this.isStartSelected ? this.setStartAndEndData(this.cfmPtPSE, 'start', this.task) : this.setTaskData(this.cfmPtPSE, 'end');
},
// Waiting time
@@ -118,9 +124,11 @@ export default {
return this.cfmWtEteEnd.map(i => i.task);
},
cfmWtEteSEStartData: function() {
if(this.isSubmit && this.task === null)this.task = this.isSubmitShowDataWtEte.task;
return this.isEndSelected ? this.setStartAndEndData(this.cfmWtEteSE, 'end', this.task) : this.setTaskData(this.cfmWtEteSE, 'start');
},
cfmWtEteSEEndData: function() {
if(this.isSubmit && this.task === null)this.task = this.isSubmitShowDataWtEte.task;
return this.isStartSelected ? this.setStartAndEndData(this.cfmWtEteSE, 'start', this.task) : this.setTaskData(this.cfmWtEteSE, 'end');
},
cfmWtPStartData: function() {
@@ -130,9 +138,11 @@ export default {
return this.cfmWtPEnd.map(i => i.task);
},
cfmWtPSEStartData: function() {
if(this.isSubmit && this.task === null)this.task = this.isSubmitShowDataWtP.task;
return this.isEndSelected ? this.setStartAndEndData(this.cfmWtPSE, 'end', this.task) : this.setTaskData(this.cfmWtPSE, 'start');
},
cfmWtPSEEndData: function() {
if(this.isSubmit && this.task === null)this.task = this.isSubmitShowDataWtP.task;
return this.isStartSelected ? this.setStartAndEndData(this.cfmWtPSE, 'start', this.task) : this.setTaskData(this.cfmWtPSE, 'end');
},
// Cycle time
@@ -143,9 +153,11 @@ export default {
return this.cfmCtEteEnd.map(i => i.task);
},
cfmCtEteSEStartData: function() {
if(this.isSubmit && this.task === null)this.task = this.isSubmitShowDataCt.task;
return this.isEndSelected ? this.setStartAndEndData(this.cfmCtEteSE, 'end', this.task) : this.setTaskData(this.cfmCtEteSE, 'start');
},
cfmCtEteSEEndData: function() {
if(this.isSubmit && this.task === null)this.task = this.isSubmitShowDataCt.task;
return this.isStartSelected ? this.setStartAndEndData(this.cfmCtEteSE, 'start', this.task) : this.setTaskData(this.cfmCtEteSE, 'end');
},
},
@@ -182,7 +194,7 @@ export default {
* @param {string} task task
* @returns {array}
*/
setSeqStartAndEndData(data, category, task = 'a') {
setSeqStartAndEndData(data, category, task) {
let newData = data.filter(i => i.label === task).map(i => i[category]);
newData = [...new Set(...newData)];
return newData;
@@ -192,10 +204,16 @@ export default {
* @param {event} e
*/
selectStart(e) {
this.taskStart = e;
if(this.isStartSelected === null || this.isStartSelected === true){
this.isStartSelected = true;
this.isEndSelected = false;
this.task = e;
this.taskEnd = null;
this.$emitter.emit('sratrAndEndToStart', {
start: true,
end: false,
});
};
},
/**
@@ -203,45 +221,122 @@ export default {
* @param {event} e
*/
selectEnd(e) {
this.taskEnd = e;
if(this.isEndSelected === null || this.isEndSelected === true){
this.isEndSelected = true;
this.isStartSelected = false;
this.task = e;
this.taskStart = null;
this.$emitter.emit('sratrAndEndToStart', {
start: false,
end: true,
});
}
},
/**
* reset all data.
*/
reset() {
this.task = null;
this.isStartSelected = null;
this.isEndSelected = null;
this.taskStart = null;
this.taskEnd = null;
},
/**
* Radio 切換時Start & End Data 連動改變
* @param {boolean} data true | false
*/
setResetData(data) {
if(data) {
if(this.isSubmit) {
switch (this.selectedRuleType) {
case 'Activity sequence':
this.task = this.isSubmitShowDataSeq.task;
this.isStartSelected = this.isSubmitShowDataSeq.isStartSelected;
this.isEndSelected = this.isSubmitShowDataSeq.isEndSelected;
// this.taskStart = this.isSubmitShowDataSeq.taskStart;
// this.taskEnd = this.isSubmitShowDataSeq.taskEnd;
break;
case 'Processing time':
switch (this.selectedProcessScope) {
case 'End to end':
this.task = this.isSubmitShowDataPtEte.task;
this.isStartSelected = this.isSubmitShowDataPtEte.isStartSelected;
this.isEndSelected = this.isSubmitShowDataPtEte.isEndSelected;
// this.taskStart = this.isSubmitShowDataPtEte.taskStart;
// this.taskEnd = this.isSubmitShowDataPtEte.taskEnd;
break;
case 'Partial':
this.task = this.isSubmitShowDataPtP.task;
this.isStartSelected = this.isSubmitShowDataPtP.isStartSelected;
this.isEndSelected = this.isSubmitShowDataPtP.isEndSelected;
// this.taskStart = this.isSubmitShowDataPtP.taskStart;
// this.taskEnd = this.isSubmitShowDataPtP.taskEnd;
break;
default:
break;
}
break;
case 'Waiting time':
switch (this.selectedProcessScope) {
case 'End to end':
this.task = this.isSubmitShowDataWtEte.task;
this.isStartSelected = this.isSubmitShowDataWtEte.isStartSelected;
this.isEndSelected = this.isSubmitShowDataWtEte.isEndSelected;
// this.taskStart = this.isSubmitShowDataWtEte.taskStart;
// this.taskEnd = this.isSubmitShowDataWtEte.taskEnd;
break;
case 'Partial':
this.task = this.isSubmitShowDataWtP.task;
this.isStartSelected = this.isSubmitShowDataWtP.isStartSelected;
this.isEndSelected = this.isSubmitShowDataWtP.isEndSelected;
// this.taskStart = this.isSubmitShowDataWtP.taskStart;
// this.taskEnd = this.isSubmitShowDataWtP.taskEnd;
break;
default:
break;
}
case 'Cycle time':
this.task = this.isSubmitShowDataCt.task;
this.isStartSelected = this.isSubmitShowDataCt.isStartSelected;
this.isEndSelected = this.isSubmitShowDataCt.isEndSelected;
// this.taskStart = this.isSubmitShowDataCt.taskStart;
// this.taskEnd = this.isSubmitShowDataCt.taskEnd;
break;
default:
break;
}
} else {
this.reset();
}
}
}
},
created() {
this.$emitter.on('isRadioChange', (data) => {
if(data) {
this.task = null;
this.isStartSelected = null;
this.isEndSelected = null;
};
this.setResetData(data);
});
this.$emitter.on('isRadioSeqChange', (data) => {
this.setResetData(data);
});
this.$emitter.on('isRadioProcessScopeChange', (data) => {
if(data) {
this.task = null;
this.isStartSelected = null;
this.isEndSelected = null;
this.setResetData(data);
};
});
this.$emitter.on('isRadioActSeqMoreChange', (data) => {
if(data) {
this.task = null;
this.isStartSelected = null;
this.isEndSelected = null;
this.setResetData(data);
};
});
this.$emitter.on('isRadioActSeqFromToChange', (data) => {
if(data) {
this.task = null;
this.isStartSelected = null;
this.isEndSelected = null;
this.setResetData(data);
};
});
this.$emitter.on('reset', data => {
this.isStartSelected = data;
this.isEndSelected = data;
this.reset();
});
}
}